From 8a82ce3065d6169480afb3403a4854fb64078c46 Mon Sep 17 00:00:00 2001
From: wupengfei <834520024@qq.com>
Date: 星期四, 23 十月 2025 22:20:24 +0800
Subject: [PATCH] Merge branch 'dev-2.2.3' of http://120.26.58.240:8888/r/JYBIndependentFront into dev-2.2.3
---
src/views/Home/components/InsureOrderInfoView.vue | 278 +++++++++++++++++++++++++++++++++++++++++--------------
1 files changed, 208 insertions(+), 70 deletions(-)
diff --git a/src/views/Home/components/InsureOrderInfoView.vue b/src/views/Home/components/InsureOrderInfoView.vue
index 229edc5..bd96540 100644
--- a/src/views/Home/components/InsureOrderInfoView.vue
+++ b/src/views/Home/components/InsureOrderInfoView.vue
@@ -11,7 +11,7 @@
<el-button
type="primary"
link
- @click="handleGoStampFiles"
+ @click="handleGoStampFiles(id)"
v-if="detail.productOnline && detail.anyPayComplete"
>璇︽儏</el-button
>
@@ -60,6 +60,22 @@
</ProFormItemV2>
</ProFormColItem>
</ProFormCol>
+ <ProFormCol v-if="detail.productOnline">
+ <ProFormColItem :span="8">
+ <ProFormItemV2 label="鎬讳繚璐�:" prop="amount">
+ <ProFormInputNumber v-model="detail.amount" unit="鍏�" formatValue="money" />
+ </ProFormItemV2>
+ </ProFormColItem>
+ <ProFormColItem :span="8">
+ <ProFormItemV2 label="鎬讳繚棰�:" prop="sumInsured">
+ <ProFormInputNumber
+ v-model.trim="detail.sumInsured"
+ unit="鍏�"
+ formatValue="money"
+ />
+ </ProFormItemV2>
+ </ProFormColItem>
+ </ProFormCol>
<ProFormCol>
<ProFormColItem :span="8">
<ProFormItemV2 label="鎶曚繚浜�:" prop="insurerName">
@@ -91,35 +107,63 @@
</QueryFilterItem>
</template>
<template #btn>
- <template v-if="detail.status === InsurancePolicyStatusEnum.WaitEffect">
- <el-button @click="handleTemplateDownload()" link type="primary">妯℃澘涓嬭浇</el-button>
- <BlFileUpload
- v-if="
- detail.auditStatus !== InsurancePolicyAuditStatusEnum.Pass &&
- !detail.productOnline
- "
- :limitFileSize="10"
- accept="xls,xlsx"
- :showTip="false"
- :show-file-list="false"
- :on-success="handleUploadSuccess"
- style="margin-right: 10px; margin-left: 10px"
+ <template v-if="detail.productOnline">
+ <el-button
+ v-if="detail.auditStatus === InsurancePolicyAuditStatusEnum.Pass"
+ @click="handleSupplySubmit()"
+ type="primary"
+ >琛ユ彁</el-button
>
- <template #default>
- <el-button icon="Plus" type="primary">瀵煎叆</el-button>
- </template>
- </BlFileUpload>
- <el-button @click="handleClear()" type="primary">瀵煎嚭鎶曚繚閿欒浜哄憳娓呭崟</el-button>
- <el-button @click="handleClear()" type="primary">娓呯┖鏁版嵁</el-button>
+ <el-button @click="handleExport(InsuranceDetailStatusEnum.Effecting)" type="primary"
+ >瀵煎嚭鍦ㄤ繚浜哄憳</el-button
+ >
+ <el-button @click="handleExport(InsuranceDetailStatusEnum.Fail)" type="primary"
+ >瀵煎嚭閿欒浜哄憳</el-button
+ >
+ <template v-if="detail.auditStatus === InsurancePolicyAuditStatusEnum.WaitAdd">
+ <BlFileUpload
+ :limitFileSize="10"
+ accept="xls,xlsx"
+ :showTip="false"
+ :show-file-list="false"
+ :on-success="handleUploadSuccess"
+ style="margin-right: 10px; margin-left: 10px"
+ >
+ <template #default>
+ <el-button icon="Plus" type="primary">瀵煎叆</el-button>
+ </template>
+ </BlFileUpload>
+ <el-button @click="handleClear()" type="primary">娓呯┖鏁版嵁</el-button>
+ </template>
+ <template v-if="detail.status !== InsurancePolicyStatusEnum.WaitEffect">
+ <el-button @click="handleGoStampFiles(id)" type="primary">涓嬭浇淇濆崟</el-button>
+ <el-button @click="handleGoDownloadInvoice(id)" type="primary">涓嬭浇鍙戠エ</el-button>
+ </template>
</template>
<template v-else>
- <el-button @click="handleDownloadPerson()" type="primary">涓嬭浇浜哄憳娓呭崟</el-button>
- <template v-if="detail.productOnline">
- <el-button v-if="detail.anyPayComplete" @click="handleGoStampFiles()" type="primary"
- >涓嬭浇淇濆崟</el-button
+ <template v-if="detail.status === InsurancePolicyStatusEnum.WaitEffect">
+ <el-button @click="handleTemplateDownload()" link type="primary"
+ >妯℃澘涓嬭浇</el-button
>
+ <BlFileUpload
+ v-if="detail.auditStatus !== InsurancePolicyAuditStatusEnum.Pass"
+ :limitFileSize="10"
+ accept="xls,xlsx"
+ :showTip="false"
+ :show-file-list="false"
+ :on-success="handleUploadSuccess"
+ style="margin-right: 10px; margin-left: 10px"
+ >
+ <template #default>
+ <el-button icon="Plus" type="primary">瀵煎叆</el-button>
+ </template>
+ </BlFileUpload>
+ <el-button @click="handleClear()" type="primary">娓呯┖鏁版嵁</el-button>
</template>
- <el-button v-else @click="handleDownloadOrder()" type="primary">涓嬭浇淇濆崟</el-button>
+ <template v-else>
+ <el-button @click="handleExport(null)" type="primary">涓嬭浇浜哄憳娓呭崟</el-button>
+ <el-button @click="handleDownloadOrder()" type="primary">涓嬭浇淇濆崟</el-button>
+ </template>
</template>
</template>
</ProTableQueryFilterBar>
@@ -135,6 +179,7 @@
</ChunkCell>
<ChangePersonInfoDialog v-bind="dialogProps"></ChangePersonInfoDialog>
<InsureClaimDetailDialog v-bind="dialogInsureClaimProps"></InsureClaimDetailDialog>
+ <UploadInsurePersonDialog v-bind="dialogSupplyProps" isSupply />
</AppContainer>
</LoadingLayout>
</template>
@@ -170,6 +215,7 @@
InsurancePolicyStatusEnumText,
InsurancePolicyAuditStatusEnum,
InsuranceDetailStatusEnumText,
+ InsuranceDetailStatusEnum,
} from '@/constants';
import ChangePersonInfoDialog from './ChangePersonInfoDialog.vue';
import InsureClaimDetailDialog from './InsureClaimDetailDialog.vue';
@@ -179,6 +225,12 @@
import { downloadFile, downloadFileByUrl, Message, OrderInputType } from '@bole-core/core';
import { setOSSLink } from '@/utils';
import dayjs from 'dayjs';
+import {
+ useInsureActions,
+ useInsureProductSchemeAllList,
+ useUserInsureProductSetting,
+} from '@/hooks';
+import UploadInsurePersonDialog from './UploadInsurePersonDialog.vue';
defineOptions({
name: 'InsureOrderInfoView',
@@ -287,10 +339,16 @@
onClick: (role) => handleChangeInfo(role),
},
extraProps: {
- hide: (row: API.GetInsuranceStaffPageTemplate) =>
- detail.value?.productOnline ||
- detail.value?.status !== InsurancePolicyStatusEnum.WaitEffect ||
- detail.value?.auditStatus === InsurancePolicyAuditStatusEnum.Pass,
+ hide: (row: API.GetInsuranceStaffPageTemplate) => {
+ if (detail.value?.productOnline) {
+ return detail.value?.auditStatus !== InsurancePolicyAuditStatusEnum.WaitAdd;
+ } else {
+ return (
+ detail.value?.status !== InsurancePolicyStatusEnum.WaitEffect ||
+ detail.value?.auditStatus === InsurancePolicyAuditStatusEnum.Pass
+ );
+ }
+ },
},
},
{
@@ -362,6 +420,7 @@
let res = await insuranceOrderServices.getInsuranceStaffList(params, {
showLoading: !state.loading,
});
+ console.log('res: ', res);
return res;
} catch (error) {}
},
@@ -405,21 +464,23 @@
url: response.url,
});
if (res?.length > 0) {
- await Message.tipMessage('瀛樺湪閿欒鏁版嵁锛屾槸鍚﹀鍑猴紵');
- XLSXUtils.exportToXLSX({
- workbookDataList: res,
- fileName: '閿欒浜哄憳鍚嶅崟',
- workbookHeaderMap: {
- name: '闆囧憳濮撳悕',
- sex: '鎬у埆',
- certType: '璇佷欢绫诲瀷',
- certNo: '璇佷欢鍙风爜',
- jobName: '闆囧憳宸ョ',
- useEmploer: '鐢ㄥ伐鍗曚綅',
- address: '鐢ㄥ伐鍦扮偣',
- note: '澶囨敞',
- },
- });
+ try {
+ await Message.tipMessage('瀛樺湪閿欒鏁版嵁锛屾槸鍚﹀鍑猴紵');
+ XLSXUtils.exportToXLSX({
+ workbookDataList: res,
+ fileName: '閿欒浜哄憳鍚嶅崟',
+ workbookHeaderMap: {
+ name: '闆囧憳濮撳悕',
+ sex: '鎬у埆',
+ certType: '璇佷欢绫诲瀷',
+ certNo: '璇佷欢鍙风爜',
+ jobName: '闆囧憳宸ョ',
+ useEmploer: '鐢ㄥ伐鍗曚綅',
+ address: '鐢ㄥ伐鍦扮偣',
+ note: '澶囨敞',
+ },
+ });
+ } catch (error) {}
}
queryClient.invalidateQueries({
queryKey: ['insuranceOrderServices/getInsuranceStaffList'],
@@ -428,36 +489,11 @@
} catch (error) {}
}
-async function handleDownloadPerson() {
- try {
- if (paginationState.total === 0) {
- Message.warnMessage('娌℃湁鏁版嵁鍙互瀵煎嚭鍝');
- return;
- }
- let res = await insuranceOrderServices.getInsuranceStaffListExport(
- { id: id },
- {
- responseType: 'blob',
- getResponse: true,
- }
- );
- if (res) {
- downloadFile(res.data, `浜哄憳娓呭崟`, 'xlsx');
- }
- } catch (error) {}
-}
function handleDownloadOrder() {
downloadFileByUrl(setOSSLink(detail.value?.insureBillUrl));
}
-function handleGoStampFiles() {
- router.push({
- name: 'InsurancePolicyStampFiles',
- params: {
- id: id,
- },
- });
-}
+const { handleGoDownloadInvoice, handleGoStampFiles } = useInsureActions();
function handleBatchChange() {
if (
@@ -542,6 +578,108 @@
});
} catch (error) {}
}
+
+async function handleExport(status: InsuranceDetailStatusEnum) {
+ try {
+ if (paginationState.total === 0) {
+ Message.warnMessage('娌℃湁鏁版嵁鍙互瀵煎嚭鍝');
+ return;
+ }
+ let res = await insuranceOrderServices.getInsuranceStaffListExport(
+ { insurancePolicyId: id, status: status },
+ {
+ responseType: 'blob',
+ getResponse: true,
+ }
+ );
+ if (res) {
+ downloadFile(res.data, `浜哄憳娓呭崟`, 'xlsx');
+ }
+ } catch (error) {}
+}
+
+const { getInsureProductIdByIdNumber } = useUserInsureProductSetting();
+const { getInsureProductSchemeByCode } = useInsureProductSchemeAllList({
+ insureProductId: computed(() => getInsureProductIdByIdNumber(detail.value.productIdNumber)),
+});
+
+function handleSupplySubmit() {
+ handleSupplyAdd({
+ serialNum: detail.value.serialNum,
+ productIdNumber: detail.value.productIdNumber,
+ productSchemeIdNumber: getInsureProductSchemeByCode(detail.value.productSchemeCode)?.idNumber,
+ effectStartTime: detail.value.effectStartTime,
+ effectEndTime: detail.value.effectEndTime,
+ isOnLineInsurance: detail.value.productOnline ?? false,
+ });
+}
+
+const {
+ dialogProps: dialogSupplyProps,
+ handleAdd: handleSupplyAdd,
+ editForm: supplyForm,
+ dialogState: dialogSupplyState,
+} = useFormDialog({
+ onConfirm: supplySubmit,
+ defaultFormParams: {
+ serialNum: '',
+ url: [] as UploadUserFile[],
+ productIdNumber: '',
+ productSchemeIdNumber: '',
+ effectStartTime: dayjs().add(1, 'day').format('YYYY-MM-DD'),
+ effectEndTime: '',
+ isOnLineInsurance: false,
+ },
+ closeAfterConfirm: false,
+});
+
+async function supplySubmit() {
+ try {
+ let params: API.FillInsStaffToListFrontInput = {
+ insurancePolicyId: id,
+ url: supplyForm.url?.[0]?.path,
+ };
+ let res = await insuranceOrderServices.fillInsStaffToList(params, {
+ timeout: 60 * 1000 * 10,
+ });
+ if (res) {
+ // await Message.tipMessage('瀛樺湪閿欒鏁版嵁锛屾槸鍚﹀鍑猴紵');
+ try {
+ if (res.errorList.length > 0) {
+ await Message.tipMessage(
+ `鎬绘姇淇濅汉鏁�${res.importAllCount}浜猴紝鎶曚繚鎴愬姛${res.successCount}浜猴紝鎶曚繚澶辫触${res.errorList.length}浜烘槸鍚﹀鍑烘姇淇濆け璐ヤ汉鍛樻竻鍗曪紵`,
+ {
+ confirmButtonText: '瀵煎嚭',
+ }
+ );
+ XLSXUtils.exportToXLSX({
+ workbookDataList: res.errorList,
+ fileName: '閿欒浜哄憳鍚嶅崟',
+ workbookHeaderMap: {
+ name: '闆囧憳濮撳悕',
+ sex: '鎬у埆',
+ certType: '璇佷欢绫诲瀷',
+ certNo: '璇佷欢鍙风爜',
+ jobName: '闆囧憳宸ョ',
+ useEmploer: '鐢ㄥ伐鍗曚綅',
+ address: '鐢ㄥ伐鍦扮偣',
+ note: '澶囨敞',
+ },
+ });
+ } else {
+ await Message.tipMessage(
+ `鎬绘姇淇濅汉鏁�${res.importAllCount}浜猴紝鎶曚繚鎴愬姛${res.successCount}浜篳,
+ {
+ showCancelButton: false,
+ }
+ );
+ }
+ } catch (error) {}
+ dialogSupplyState.dialogVisible = false;
+ getInsuranceStaffList(paginationState.pageIndex);
+ }
+ } catch (error) {}
+}
</script>
<style lang="scss" scoped>
--
Gitblit v1.9.1