From 33f3506c93c0b84f6abc165e7d22d2bae1c8fcb1 Mon Sep 17 00:00:00 2001
From: wupengfei <834520024@qq.com>
Date: 星期四, 23 十月 2025 22:21:33 +0800
Subject: [PATCH] feat: 接口
---
src/views/Home/BatchChange.vue | 148 ++++++++++++++++++++++++++++++++++++++-----------
1 files changed, 115 insertions(+), 33 deletions(-)
diff --git a/src/views/Home/BatchChange.vue b/src/views/Home/BatchChange.vue
index 2fa1b22..a32695e 100644
--- a/src/views/Home/BatchChange.vue
+++ b/src/views/Home/BatchChange.vue
@@ -21,6 +21,7 @@
type="date"
value-format="YYYY-MM-DD"
placeholder="璇烽�夋嫨鏃ユ湡"
+ :disabled-date="disabledDate"
></ProFormDatePicker>
</ProFormItemV2>
</ProFormColItem>
@@ -110,6 +111,7 @@
ProTableV2,
ProFormUpload,
UploadUserFile,
+ XLSXUtils,
} from '@bole-core/components';
import * as insuranceOrderServices from '@/services/api/InsuranceOrder';
import * as insureBatchBillServices from '@/services/api/InsureBatchBill';
@@ -119,6 +121,8 @@
import { FormInstance } from 'element-plus';
import { useQuery, useQueryClient } from '@tanstack/vue-query';
import { paginateList } from '@/utils';
+import dayjs from 'dayjs';
+import _ from 'lodash';
defineOptions({
name: 'BatchChange',
@@ -142,26 +146,46 @@
},
{
id: '4',
+ enCode: 'occupationType',
+ name: '鑱屼笟绫诲瀷',
+ },
+ {
+ id: '5',
+ enCode: 'occupationCode',
+ name: '鑱屼笟鐮佸��',
+ },
+ {
+ id: '6',
+ enCode: 'workEnterprise',
+ name: '鐢ㄥ伐鍗曚綅',
+ },
+ {
+ id: '7',
+ enCode: 'workAddress',
+ name: '鐢ㄥ伐鍦扮偣',
+ },
+ {
+ id: '8',
enCode: 'workType',
name: '闆囧憳宸ョ',
},
{
- id: '5',
+ id: '9',
enCode: 'gender',
name: '鎬у埆',
},
{
- id: '6',
+ id: '10',
enCode: 'age',
name: '骞撮緞',
},
{
- id: '7',
+ id: '11',
enCode: 'birthDay',
name: '鍑虹敓鏃ユ湡',
},
{
- id: '8',
+ id: '12',
enCode: 'phoneNumber',
name: '鎵嬫満鍙风爜',
},
@@ -172,6 +196,7 @@
const id = route.params.id as string;
const insurerName = route.query.insurerName as string;
const insureBillNo = route.query.insureBillNo as string;
+const effectEndTime = route.query.effectEndTime as string;
const BaseState = {
loading: true,
form: {
@@ -183,6 +208,12 @@
};
const state = reactive({ ...BaseState });
+
+const disabledDate = computed(() => {
+ return (time: Date) => {
+ return dayjs(time).isBefore(dayjs(), 'day') || dayjs(time).isAfter(dayjs(effectEndTime), 'day');
+ };
+});
const urlDisabled = computed(() => {
return state.form.addOrReduceUrl.length > 0 || state.form.replaceUrl.length > 0;
@@ -207,25 +238,39 @@
url: response.path,
insurePolicyId: id,
};
- let checkRes = await insureBatchBillServices.importCheckBatchAddOrSubOrderData(params, {
- getResponse: true,
- responseType: 'blob',
- });
- if (checkRes?.data?.size) {
+ let res = await insureBatchBillServices.importBatchAddOrSubOrderData(params);
+ if (res?.error.length > 0) {
Message.tipMessage('瀛樺湪閿欒鏁版嵁锛屾槸鍚﹀鍑猴紵')
.then(() => {
- downloadFile(checkRes.data, `閿欒浜哄憳鍚嶅崟`, 'xlsx');
+ XLSXUtils.exportToXLSX({
+ workbookDataList: res?.error,
+ fileName: '閿欒浜哄憳鍚嶅崟',
+ workbookHeaderMap: {
+ changeFlag: '鎵规敼鏍囧織',
+ insuranceScheme: '鏂规浠g爜',
+ name: '琚繚闄╀汉濮撳悕',
+ certType: '璇佷欢绫诲瀷',
+ idNumber: '璇佷欢鍙风爜',
+ age: '骞撮緞',
+ phoneNumber: '鎵嬫満鍙�',
+ occupationType: '鑱屼笟绫诲瀷',
+ occupationCode: '鑱屼笟鐮佸��',
+ workEnterprise: '鐢ㄥ伐鍗曚綅',
+ workAddress: '鐢ㄥ伐鍦扮偣',
+ workType: '鑱屼笟/宸ョ',
+ gender: '鎬у埆',
+ birthDay: '鍑虹敓鏃ユ湡',
+ remark: '澶囨敞',
+ },
+ });
})
.catch(() => {
- // getList(paginationState.pageIndex);
+ state.staffList = _.uniqBy(res.addOrSub, 'idNumber');
+ getList();
});
- } else {
- let res = await insureBatchBillServices.importBatchAddOrSubOrderData(params);
- if (res?.addOrSub?.length) {
- state.staffList = res.addOrSub;
- getList();
- }
}
+ state.staffList = _.uniqBy(res.addOrSub, 'idNumber');
+ getList();
} catch (error) {}
}
async function handleUploadReplace(response: UploadUserFile) {
@@ -234,25 +279,58 @@
url: response.path,
insurePolicyId: id,
};
- let checkRes = await insureBatchBillServices.importCheckBatchUpdateOrderData(params, {
- getResponse: true,
- responseType: 'blob',
- });
- if (checkRes?.data?.size) {
+ // let checkRes = await insureBatchBillServices.importCheckBatchUpdateOrderData(params, {
+ // getResponse: true,
+ // responseType: 'blob',
+ // });
+ // if (checkRes?.data?.size) {
+ // Message.tipMessage('瀛樺湪閿欒鏁版嵁锛屾槸鍚﹀鍑猴紵')
+ // .then(() => {
+ // downloadFile(checkRes.data, `閿欒浜哄憳鍚嶅崟`, 'xlsx');
+ // })
+ // .catch(() => {
+ // // getList(paginationState.pageIndex);
+ // });
+ // } else {
+ // let res = await insureBatchBillServices.importBatchUpdateOrderData(params);
+ // if (res?.update?.length) {
+ // state.staffList = res.update;
+ // getList();
+ // }
+ // }
+ let res = await insureBatchBillServices.importBatchUpdateOrderData(params);
+ if (res?.error.length > 0) {
Message.tipMessage('瀛樺湪閿欒鏁版嵁锛屾槸鍚﹀鍑猴紵')
.then(() => {
- downloadFile(checkRes.data, `閿欒浜哄憳鍚嶅崟`, 'xlsx');
+ XLSXUtils.exportToXLSX({
+ workbookDataList: res?.error,
+ fileName: '閿欒浜哄憳鍚嶅崟',
+ workbookHeaderMap: {
+ orginName: '鍘熻淇濅汉濮撳悕',
+ orginIdNumber: '鍘熻淇濅汉璇佷欢鍙风爜',
+ name: '琚繚闄╀汉濮撳悕',
+ certType: '璇佷欢绫诲瀷',
+ idNumber: '璇佷欢鍙风爜',
+ phoneNumber: '鎵嬫満鍙�',
+ occupationType: '鑱屼笟绫诲瀷',
+ occupationCode: '鑱屼笟鐮佸��',
+ workEnterprise: '鐢ㄥ伐鍗曚綅',
+ workAddress: '鐢ㄥ伐鍦扮偣',
+ workType: '鑱屼笟/宸ョ',
+ gender: '鎬у埆',
+ age: '骞撮緞',
+ birthDay: '鍑虹敓鏃ユ湡',
+ remark: '澶囨敞',
+ },
+ });
})
.catch(() => {
- // getList(paginationState.pageIndex);
+ state.staffList = _.uniqBy(_.uniqBy(res.update, 'idNumber'), 'orginIdNumber');
+ getList();
});
- } else {
- let res = await insureBatchBillServices.importBatchUpdateOrderData(params);
- if (res?.update?.length) {
- state.staffList = res.update;
- getList();
- }
}
+ state.staffList = _.uniqBy(_.uniqBy(res.update, 'idNumber'), 'orginIdNumber');
+ getList();
} catch (error) {}
}
@@ -283,12 +361,16 @@
Message.errorMessage('璇峰厛涓婁紶浜哄憳鍚嶅崟');
return;
}
+ let _addInsStaffList = _.uniqBy(state.staffList, 'idNumber');
let params: API.InsureBatchBillInput = {
insurancePolicyId: id,
effectTime: state.form.time,
- addInsStaffList: state.staffList.filter((x) => x.changeFlag.includes('澧炲姞')),
- updateInsStaffList: state.staffList.filter((x) => x.changeFlag.includes('鏇挎崲')),
- delInsStaffList: state.staffList.filter((x) => x.changeFlag.includes('鍒犻櫎')),
+ addInsStaffList: _addInsStaffList.filter((x) => x.changeFlag.includes('澧炲姞')),
+ updateInsStaffList: _.uniqBy(
+ _addInsStaffList.filter((x) => x.changeFlag.includes('鏇挎崲')),
+ 'orginIdNumber'
+ ),
+ delInsStaffList: _addInsStaffList.filter((x) => x.changeFlag.includes('鍒犻櫎')),
};
let res = await insureBatchBillServices.addOrUpdateInsureBatchBill(params);
if (res) {
--
Gitblit v1.9.1