瀏覽代碼

reactor:对手拍补充发放记录;

zhangchong 3 月之前
父節點
當前提交
a466ff33d6

+ 22 - 0
src/api/snapshot/reSend.ts

@@ -57,4 +57,26 @@ export const getRedEnvelopeApprovalDetail = (params?: object) => {
 		method: 'get',
 		params,
 	});
+};
+/**
+ * @description 获取红包补充发放记录基础参数
+ * @param {object} params
+ */
+export const getRedEnvelopeApprovalSupplementBaseData = (params?: object) => {
+	return request({
+		url: '/api/v1/RedPack/record/supplement/basedata',
+		method: 'get',
+		params,
+	});
+};
+/**
+ * @description 获取红包补充发放记录
+ * @param {object} params
+ */
+export const getRedEnvelopeApprovalSupplementList = (params?: object) => {
+	return request({
+		url: '//api/v1/RedPack/record/supplement',
+		method: 'get',
+		params,
+	});
 };

+ 0 - 264
src/views/snapshot/reAudit/supplyLog.vue

@@ -1,264 +0,0 @@
-<template>
-  <div class="snapshot-re-audit-supply=log-container layout-padding">
-    <div class="layout-padding-auto layout-padding-view pd20">
-      <vxe-grid v-bind="gridOptions" ref="gridRef">
-        <template #form>
-          <el-form :model="state.queryParams" ref="ruleFormRef" inline @submit.native.prevent :disabled="gridOptions.loading">
-            <el-form-item label="行业" prop="IndustryId">
-              <el-select v-model="state.queryParams.IndustryId" class="w100" placeholder="请选择行业" @change="handleQuery" clearable>
-                <el-option v-for="item in industry" :key="item.id" :label="item.name" :value="item.id" />
-              </el-select>
-            </el-form-item>
-            <el-form-item label="工单编码" prop="No">
-              <el-input v-model="state.queryParams.No" placeholder="请填写工单编码" clearable @keyup.enter="handleQuery" class="keyword-input" />
-            </el-form-item>
-            <el-form-item label="工单标题" prop="Title">
-              <el-input v-model="state.queryParams.Title" placeholder="请填写工单标题" clearable @keyup.enter="handleQuery" class="keyword-input" />
-            </el-form-item>
-            <el-form-item>
-              <el-button type="primary" @click="handleQuery" :loading="state.loading"> <SvgIcon name="ele-Search" class="mr5" />查询 </el-button>
-              <el-button @click="drawer = true" class="default-button"> <SvgIcon name="ele-Search" class="mr5" />更多查询</el-button>
-            </el-form-item>
-          </el-form>
-        </template>
-        <template #statusTxt="{ row }">
-          <el-text type="danger" tag="b" v-if="[1, 2, 3, 9, 101, 102, 103, 104, 105, 200].includes(row.status)">{{ row.statusTxt }}</el-text>
-          <span v-else>{{ row.statusTxt }}</span>
-        </template>
-        <template #order_detail="{ row }">
-          <order-detail :order="{ id: row.orderId }" @updateList="queryList">{{ row.no }}</order-detail>
-        </template>
-        <template #pager>
-          <pagination
-              @pagination="queryList"
-              :total="state.total"
-              v-model:current-page="state.queryParams.PageIndex"
-              v-model:page-size="state.queryParams.PageSize"
-              :disabled="state.loading"
-          />
-        </template>
-      </vxe-grid>
-    </div>
-    <!--	更多查询	-->
-    <el-drawer v-model="drawer" title="更多查询" size="500px">
-      <el-form :model="state.queryParams" ref="drawerRuleFormRef" @submit.native.prevent label-width="100px">
-        <el-form-item label="来电人电话" prop="FromPhone">
-          <el-input v-model="state.queryParams.FromPhone" placeholder="请填写来电人电话" clearable @keyup.enter="handleQuery" class="keyword-input" />
-        </el-form-item>
-        <el-form-item label="发放时间" prop="ffTime">
-          <el-date-picker
-              v-model="state.queryParams.ffTime"
-              type="datetimerange"
-              unlink-panels
-              range-separator="至"
-              start-placeholder="开始时间"
-              end-placeholder="结束时间"
-              :shortcuts="shortcuts"
-              @change="handleQuery"
-              value-format="YYYY-MM-DD[T]HH:mm:ss"
-              :default-time="defaultTimeStartEnd"
-          />
-        </el-form-item>
-      </el-form>
-      <template #footer>
-        <el-button type="primary" @click="handleQuery" :loading="state.loading"> <SvgIcon name="ele-Search" class="mr5" />查询 </el-button>
-        <el-button @click="resetQuery(drawerRuleFormRef)" class="default-button"> <SvgIcon name="ele-Refresh" class="mr5" />重置 </el-button>
-      </template>
-    </el-drawer>
-  </div>
-</template>
-
-<script lang="tsx" setup name="snapshotReAuditSupplyLog">
-import { defineAsyncComponent, onMounted, reactive, ref } from 'vue';
-import { FormInstance } from 'element-plus';
-import { defaultTimeStartEnd, shortcuts } from '@/utils/constants';
-import { getRedEnvelopeApprovalBaseData, getRedEnvelopeApprovalDetail } from '@/api/snapshot/reSend';
-import Other from '@/utils/other';
-
-// 引入组件
-const pagination = defineAsyncComponent(() => import('@/components/ProTable/components/Pagination.vue')); // 分页
-const OrderDetail = defineAsyncComponent(() => import('@/components/OrderDetail/index.vue')); // 工单详情
-
-// 定义变量内容
-const state = reactive<any>({
-  loading: false,
-  queryParams: {
-    // 查询参数
-    PageIndex: 1,
-    PageSize: 20,
-    ffTime: [], // 发放时间
-    BeginCreationTime: null,
-    EndCreationTime: null,
-    No:null, // 工单编码
-    IndustryId:null,// 行业类型
-    Title:null, // 工单标题
-  },
-  total: 0, // 总条数
-});
-
-const gridOptions = reactive<any>({
-  loading: false,
-  border: true,
-  showOverflow: true,
-  columnConfig: {
-    resizable: true,
-  },
-  scrollY: {
-    enabled: true,
-    gt: 100,
-  },
-  toolbarConfig: {
-    zoom: true,
-    custom: true,
-    refresh: {
-      queryMethod: () => {
-        handleQuery();
-      },
-    },
-  },
-  customConfig: {
-    storage: true,
-  },
-  id: 'snapshotReAuditSupplyLog',
-  rowConfig: { isHover: true, height: 30, isCurrent: true, useKey: true },
-  height: 'auto',
-  columns: [
-
-    {
-      field: 'statusTxt',
-      title: '工单状态',
-      width: 110,
-      slots: {
-        default: 'statusTxt',
-      },
-    },
-    {
-      field: 'sourceChannel',
-      title: '来源渠道',
-      width: 110,
-    },
-    {
-      field: 'no',
-      title: '工单编码',
-      width: 140,
-    },
-    {
-      field: 'title',
-      title: '工单标题',
-      slots: { default: 'order_detail' },
-      minWidth: 200,
-    },
-    {
-      field: 'industryName',
-      title: '行业',
-      width: 120,
-    },
-    {
-      field: 'fromName',
-      title: '来电人姓名',
-      width: 120,
-    },
-    {
-      field: 'fromPhone',
-      title: '来电人电话',
-      width: 140,
-    },
-    {
-      field: 'county',
-      title: '区域',
-      width: 120,
-    },
-    {
-      field: 'userTypeTxt',
-      title: '补充发放金额',
-      width: 120,
-    },
-    {
-      field: 'userTypeTxt',
-      title: '姓名',
-      width: 120,
-    },
-    {
-      field: 'userTypeTxt',
-      title: '卡号',
-      width: 150,
-    },
-    {
-      field: 'userTypeTxt',
-      title: '开户行',
-      width: 150,
-    },
-    {
-      field: 'creationTime',
-      title: '补充发放时间',
-      formatter: 'formatDate',
-      width: 160,
-    },
-    {
-      field: 'userTypeTxt',
-      title: '补充发放人员',
-      width: 140,
-    },
-    {
-      field: 'remark',
-      title: '备注',
-      minWidth: 200,
-    },
-  ],
-  data: [],
-});
-/** 搜索按钮操作 节流操作 */
-const handleQuery = () => {
-  state.queryParams.PageIndex = 1;
-  queryList();
-};
-// 获取参数列表
-const requestParams = ref<EmptyObjectType>({});
-const queryList = () => {
-  state.loading = true;
-  gridOptions.loading = true;
-  requestParams.value = Other.deepClone(state.queryParams);
-  requestParams.value.BeginCreationTime = state.queryParams.ffTime === null ? null : state.queryParams.ffTime[0]; // 发放时间
-  requestParams.value.EndCreationTime = state.queryParams.ffTime === null ? null : state.queryParams.ffTime[1];
-  Reflect.deleteProperty(requestParams.value, 'ffTime'); // 删除无用的参数
-  getRedEnvelopeApprovalDetail(requestParams.value)
-      .then((res) => {
-        state.loading = false;
-        gridOptions.data = res.result.items ?? [];
-        state.total = res.result.total ?? 0;
-        gridOptions.loading = false;
-      })
-      .finally(() => {
-        state.loading = false;
-        gridOptions.loading = false;
-      });
-};
-// 重置表单
-const drawerRuleFormRef = ref<RefType>();
-const ruleFormRef = ref<any>(null); // 表单ref
-const drawer = ref(false);
-const resetQuery = (formEl: FormInstance | undefined) => {
-  if (!formEl) return;
-  formEl.resetFields();
-  ruleFormRef.value?.resetFields();
-  queryList();
-};
-const industry = ref<EmptyArrayType>([]); // 行业
-const sendStatus = ref<EmptyArrayType>([]); // 发送状态
-const userType = ref<EmptyArrayType>([]); // 用户类型
-const getBaseData = async () => {
-  try {
-    const { result } = await getRedEnvelopeApprovalBaseData();
-    industry.value = result.industry ?? [];
-    sendStatus.value = result.sendStatus ?? [];
-    userType.value = result.userType ?? [];
-  } catch (e) {
-    console.log(e);
-  }
-};
-// 页面加载时
-onMounted(() => {
-  queryList();
-  getBaseData();
-});
-</script>

+ 259 - 0
src/views/snapshot/reSend/supplyLog.vue

@@ -0,0 +1,259 @@
+<template>
+	<div class="snapshot-re-send-supply=log-container layout-padding">
+		<div class="layout-padding-auto layout-padding-view pd20">
+			<vxe-grid v-bind="gridOptions" ref="gridRef">
+				<template #form>
+					<el-form :model="state.queryParams" ref="ruleFormRef" inline @submit.native.prevent :disabled="gridOptions.loading">
+						<el-form-item label="行业" prop="IndustryId">
+							<el-select v-model="state.queryParams.IndustryId" class="w100" placeholder="请选择行业" @change="handleQuery" clearable>
+								<el-option v-for="item in industry" :key="item.id" :label="item.name" :value="item.id" />
+							</el-select>
+						</el-form-item>
+						<el-form-item label="工单编码" prop="No">
+							<el-input v-model="state.queryParams.No" placeholder="请填写工单编码" clearable @keyup.enter="handleQuery" class="keyword-input" />
+						</el-form-item>
+						<el-form-item label="工单标题" prop="Title">
+							<el-input v-model="state.queryParams.Title" placeholder="请填写工单标题" clearable @keyup.enter="handleQuery" class="keyword-input" />
+						</el-form-item>
+						<el-form-item>
+							<el-button type="primary" @click="handleQuery" :loading="state.loading"> <SvgIcon name="ele-Search" class="mr5" />查询 </el-button>
+							<el-button @click="drawer = true" class="default-button"> <SvgIcon name="ele-Search" class="mr5" />更多查询</el-button>
+						</el-form-item>
+					</el-form>
+				</template>
+				<template #statusTxt="{ row }">
+					<el-text type="danger" tag="b" v-if="[1, 2, 3, 9, 101, 102, 103, 104, 105, 200].includes(row.status)">{{ row.statusTxt }}</el-text>
+					<span v-else>{{ row.statusTxt }}</span>
+				</template>
+				<template #order_detail="{ row }">
+					<order-detail :order="{ id: row.orderId }" @updateList="queryList">{{ row.no }}</order-detail>
+				</template>
+				<template #pager>
+					<pagination
+						@pagination="queryList"
+						:total="state.total"
+						v-model:current-page="state.queryParams.PageIndex"
+						v-model:page-size="state.queryParams.PageSize"
+						:disabled="state.loading"
+					/>
+				</template>
+			</vxe-grid>
+		</div>
+		<!--	更多查询	-->
+		<el-drawer v-model="drawer" title="更多查询" size="500px">
+			<el-form :model="state.queryParams" ref="drawerRuleFormRef" @submit.native.prevent label-width="100px">
+				<el-form-item label="来电人电话" prop="FromPhone">
+					<el-input v-model="state.queryParams.FromPhone" placeholder="请填写来电人电话" clearable @keyup.enter="handleQuery" class="keyword-input" />
+				</el-form-item>
+				<el-form-item label="发放时间" prop="ffTime">
+					<el-date-picker
+						v-model="state.queryParams.ffTime"
+						type="datetimerange"
+						unlink-panels
+						range-separator="至"
+						start-placeholder="开始时间"
+						end-placeholder="结束时间"
+						:shortcuts="shortcuts"
+						@change="handleQuery"
+						value-format="YYYY-MM-DD[T]HH:mm:ss"
+						:default-time="defaultTimeStartEnd"
+					/>
+				</el-form-item>
+			</el-form>
+			<template #footer>
+				<el-button type="primary" @click="handleQuery" :loading="state.loading"> <SvgIcon name="ele-Search" class="mr5" />查询 </el-button>
+				<el-button @click="resetQuery(drawerRuleFormRef)" class="default-button"> <SvgIcon name="ele-Refresh" class="mr5" />重置 </el-button>
+			</template>
+		</el-drawer>
+	</div>
+</template>
+
+<script lang="tsx" setup name="snapshotReSendSupplyLog">
+import { defineAsyncComponent, onMounted, reactive, ref } from 'vue';
+import { FormInstance } from 'element-plus';
+import { defaultTimeStartEnd, shortcuts } from '@/utils/constants';
+import { getRedEnvelopeApprovalSupplementBaseData, getRedEnvelopeApprovalSupplementList } from '@/api/snapshot/reSend';
+import Other from '@/utils/other';
+
+// 引入组件
+const pagination = defineAsyncComponent(() => import('@/components/ProTable/components/Pagination.vue')); // 分页
+const OrderDetail = defineAsyncComponent(() => import('@/components/OrderDetail/index.vue')); // 工单详情
+
+// 定义变量内容
+const state = reactive<any>({
+	loading: false,
+	queryParams: {
+		// 查询参数
+		PageIndex: 1,
+		PageSize: 20,
+		ffTime: [], // 发放时间
+		BeginCreationTime: null,
+		EndCreationTime: null,
+		No: null, // 工单编码
+		IndustryId: null, // 行业类型
+		Title: null, // 工单标题
+	},
+	total: 0, // 总条数
+});
+
+const gridOptions = reactive<any>({
+	loading: false,
+	border: true,
+	showOverflow: true,
+	columnConfig: {
+		resizable: true,
+	},
+	scrollY: {
+		enabled: true,
+		gt: 100,
+	},
+	toolbarConfig: {
+		zoom: true,
+		custom: true,
+		refresh: {
+			queryMethod: () => {
+				handleQuery();
+			},
+		},
+	},
+	customConfig: {
+		storage: true,
+	},
+	id: 'snapshotReAuditSupplyLog',
+	rowConfig: { isHover: true, height: 30, isCurrent: true, useKey: true },
+	height: 'auto',
+	columns: [
+		{
+			field: 'statusTxt',
+			title: '工单状态',
+			width: 110,
+			slots: {
+				default: 'statusTxt',
+			},
+		},
+		{
+			field: 'sourceChannel',
+			title: '来源渠道',
+			width: 110,
+		},
+		{
+			field: 'no',
+			title: '工单编码',
+			width: 140,
+		},
+		{
+			field: 'title',
+			title: '工单标题',
+			slots: { default: 'order_detail' },
+			minWidth: 200,
+		},
+		{
+			field: 'industryName',
+			title: '行业',
+			width: 120,
+		},
+		{
+			field: 'fromName',
+			title: '来电人姓名',
+			width: 120,
+		},
+		{
+			field: 'fromPhone',
+			title: '来电人电话',
+			width: 140,
+		},
+		{
+			field: 'county',
+			title: '区域',
+			width: 120,
+		},
+		{
+			field: 'replenishAmount',
+			title: '补充发放金额',
+			width: 120,
+		},
+		{
+			field: 'name',
+			title: '姓名',
+			width: 120,
+		},
+		{
+			field: 'bankCardNo',
+			title: '卡号',
+			width: 150,
+		},
+		{
+			field: 'openBank',
+			title: '开户行',
+			width: 150,
+		},
+		{
+			field: 'creationTime',
+			title: '补充发放时间',
+			formatter: 'formatDate',
+			width: 160,
+		},
+		{
+			field: 'creatorName',
+			title: '补充发放人员',
+			width: 140,
+		},
+		{
+			field: 'remark',
+			title: '备注',
+			minWidth: 200,
+		},
+	],
+	data: [],
+});
+/** 搜索按钮操作 节流操作 */
+const handleQuery = () => {
+	state.queryParams.PageIndex = 1;
+	queryList();
+};
+// 获取参数列表
+const requestParams = ref<EmptyObjectType>({});
+const queryList = () => {
+	state.loading = true;
+	gridOptions.loading = true;
+	requestParams.value = Other.deepClone(state.queryParams);
+	requestParams.value.BeginCreationTime = state.queryParams.ffTime === null ? null : state.queryParams.ffTime[0]; // 发放时间
+	requestParams.value.EndCreationTime = state.queryParams.ffTime === null ? null : state.queryParams.ffTime[1];
+	Reflect.deleteProperty(requestParams.value, 'ffTime'); // 删除无用的参数
+	getRedEnvelopeApprovalSupplementList(requestParams.value)
+		.then((res) => {
+			state.loading = false;
+			gridOptions.data = res.result.items ?? [];
+			state.total = res.result.total ?? 0;
+			gridOptions.loading = false;
+		})
+		.finally(() => {
+			state.loading = false;
+			gridOptions.loading = false;
+		});
+};
+// 重置表单
+const drawerRuleFormRef = ref<RefType>();
+const ruleFormRef = ref<any>(null); // 表单ref
+const drawer = ref(false);
+const resetQuery = (formEl: FormInstance | undefined) => {
+	if (!formEl) return;
+	formEl.resetFields();
+	ruleFormRef.value?.resetFields();
+	queryList();
+};
+const industry = ref<EmptyArrayType>([]); // 行业
+const getBaseData = async () => {
+	try {
+		const { result } = await getRedEnvelopeApprovalSupplementBaseData();
+		industry.value = result.industry ?? [];
+	} catch (e) {
+		console.log(e);
+	}
+};
+// 页面加载时
+onMounted(() => {
+	queryList();
+	getBaseData();
+});
+</script>

+ 1 - 1
src/views/statistics/department/handle.vue

@@ -164,7 +164,7 @@
 								</el-button>
 							</template>
 						</vxe-column>
-						<vxe-column title="期率" field="hqOverdueRate" min-width="100"></vxe-column>
+						<vxe-column title="期率" field="hqOverdueRate" min-width="100"></vxe-column>
 					</vxe-colgroup>
 					<vxe-colgroup title="会签信息" align="center">
 						<vxe-column title="会签已办" field="delayEnd" min-width="100">