From ac452fd9dd2b7703a81374d171df3604fae78b7a Mon Sep 17 00:00:00 2001
From: zhengyiming <540361168@qq.com>
Date: 星期二, 29 七月 2025 19:45:38 +0800
Subject: [PATCH] fix: 新增生煎保(短期方案)

---
 src/views/Home/components/InsureOrderInfoView.vue |  143 ++++++++++++++++++++++++++++++++++++++---------
 1 files changed, 116 insertions(+), 27 deletions(-)

diff --git a/src/views/Home/components/InsureOrderInfoView.vue b/src/views/Home/components/InsureOrderInfoView.vue
index e53bb76..fba9f62 100644
--- a/src/views/Home/components/InsureOrderInfoView.vue
+++ b/src/views/Home/components/InsureOrderInfoView.vue
@@ -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">
@@ -101,13 +117,28 @@
                 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="handleExport(InsuranceDetailStatusEnum.Effecting)" type="primary"
-                  >瀵煎嚭鍦ㄤ繚浜哄憳</el-button
-                >
-                <el-button @click="handleExport(InsuranceDetailStatusEnum.Fail)" type="primary"
-                  >瀵煎嚭閿欒浜哄憳</el-button
-                >
                 <el-button @click="handleGoStampFiles(id)" type="primary">涓嬭浇淇濆崟</el-button>
                 <el-button @click="handleGoDownloadInvoice(id)" type="primary">涓嬭浇鍙戠エ</el-button>
               </template>
@@ -311,10 +342,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
+          );
+        }
+      },
     },
   },
   {
@@ -386,6 +423,7 @@
       let res = await insuranceOrderServices.getInsuranceStaffList(params, {
         showLoading: !state.loading,
       });
+      console.log('res: ', res);
       return res;
     } catch (error) {}
   },
@@ -429,21 +467,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'],
@@ -572,6 +612,7 @@
     productIdNumber: detail.value.productIdNumber,
     productSchemeIdNumber: getInsureProductSchemeByCode(detail.value.productSchemeCode)?.idNumber,
     effectStartTime: detail.value.effectStartTime,
+    effectEndTime: detail.value.effectEndTime,
   });
 }
 
@@ -579,6 +620,7 @@
   dialogProps: dialogSupplyProps,
   handleAdd: handleSupplyAdd,
   editForm: supplyForm,
+  dialogState: dialogSupplyState,
 } = useFormDialog({
   onConfirm: supplySubmit,
   defaultFormParams: {
@@ -587,11 +629,58 @@
     productIdNumber: '',
     productSchemeIdNumber: '',
     effectStartTime: dayjs().add(1, 'day').format('YYYY-MM-DD'),
+    effectEndTime: '',
   },
+  closeAfterConfirm: false,
 });
 
-// TODO 琛ユ彁
-async function supplySubmit() {}
+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