From 98b88860d68494a81007a2a1737dfd37a4b70c99 Mon Sep 17 00:00:00 2001
From: zhengyiming <540361168@qq.com>
Date: 星期三, 02 七月 2025 16:59:46 +0800
Subject: [PATCH] fix: 江佑保系统健壮性修复

---
 src/views/Home/Home.vue |   95 +++++++++++++++++++++++++++++++++--------------
 1 files changed, 67 insertions(+), 28 deletions(-)

diff --git a/src/views/Home/Home.vue b/src/views/Home/Home.vue
index 0568350..ddd83ce 100644
--- a/src/views/Home/Home.vue
+++ b/src/views/Home/Home.vue
@@ -63,7 +63,7 @@
           <el-button @click="handleDownload()" type="primary" style="margin-right: 10px" link
             >妯℃澘涓嬭浇</el-button
           >
-          <el-button @click="handleUpload()" type="primary" style="margin-right: 10px"
+          <el-button @click="handleOpenInstructions()" type="primary" style="margin-right: 10px"
             >瀵煎叆鎶曚繚浜哄憳</el-button
           >
           <!-- <el-button
@@ -137,7 +137,14 @@
 import { columns } from './constants';
 import UploadInsurePersonDialog from './components/UploadInsurePersonDialog.vue';
 import UploadStampFileDialog from './components/UploadStampFileDialog.vue';
-import { format, downloadFile, setOSSLink, toThousand, convertApi2FormUrl } from '@/utils';
+import {
+  format,
+  downloadFile,
+  setOSSLink,
+  toThousand,
+  convertApi2FormUrl,
+  convertFormUrl2Api,
+} from '@/utils';
 import { ModelValueType } from 'element-plus';
 import {
   InsuranceOrderTempPath,
@@ -155,6 +162,7 @@
 import dayjs from 'dayjs';
 import _ from 'lodash';
 import InsureInstructionsDialog from './components/InsureInstructionsDialog.vue';
+// import { Recorder } from '@/utils/record';
 
 defineOptions({
   name: 'Home',
@@ -262,12 +270,22 @@
 };
 
 const state = reactive({ ...BaseState });
+// const recorder = ref(new Recorder());
 
 onMounted(async () => {
   await getList();
   state.loading = false;
-  handleOpenInstructions();
+  // handleOpenInstructions();
+
+  // setTimeout(() => {
+  //   // recorder.value.init();
+  //   recorder.value.replaySession('9cb24e5a-0423-4dcd-abd5-fa7a4117cadc');
+  // }, 3000);
 });
+
+// onUnmounted(() => {
+//   recorder.value.stopRecordingAndSave();
+// });
 
 const {
   getDataSource: getList,
@@ -339,15 +357,16 @@
     url: [] as UploadUserFile[],
     productIdNumber: '',
     productSchemeIdNumber: '',
+    effectStartTime: dayjs().add(1, 'day').format('YYYY-MM-DD'),
   },
   closeAfterConfirm: false,
 });
 
 async function checkInrancesSerialNumStatus() {
   try {
-    let params: API.APIimportInsStaffToListParams = {
+    let params: API.APIcheckInrancesSerialNumStatusParams = {
       serialNum: editForm.serialNum,
-      url: editForm.url?.[0]?.path,
+      // url: editForm.url?.[0]?.path,
     };
     let res = await insuranceOrderServices.checkInrancesSerialNumStatus(params);
     if (res === InsurancePolicyStatusEnum.Effecting) {
@@ -365,42 +384,62 @@
 
 async function importInsStaffToList() {
   try {
-    let params: API.APIimportInsStaffToListParams = {
+    let params: API.ImportInsStaffToListFrontInput = {
       serialNum: editForm.serialNum,
       url: editForm.url?.[0]?.path,
       productIdNumber: editForm.productIdNumber,
       productSchemeIdNumber: editForm.productSchemeIdNumber,
+      effectStartTime: editForm.effectStartTime,
     };
-    let res = await insuranceOrderServices.importInsStaffToList(params);
-    if (res.length > 0) {
-      await Message.tipMessage('瀛樺湪閿欒鏁版嵁锛屾槸鍚﹀鍑猴紵');
-      XLSXUtils.exportToXLSX({
-        workbookDataList: res,
-        fileName: '閿欒浜哄憳鍚嶅崟',
-        workbookHeaderMap: {
-          name: '闆囧憳濮撳悕',
-          sex: '鎬у埆',
-          certType: '璇佷欢绫诲瀷',
-          certNo: '璇佷欢鍙风爜',
-          jobName: '闆囧憳宸ョ',
-          useEmploer: '鐢ㄥ伐鍗曚綅',
-          address: '鐢ㄥ伐鍦扮偣',
-          note: '澶囨敞',
-        },
-      });
+    let res = await insuranceOrderServices.importInsStaffToList(params, {
+      timeout: 60 * 1000 * 10,
+    });
+    if (res) {
+      dialogState.dialogVisible = false;
+      getList(paginationState.pageIndex);
+      // await Message.tipMessage('瀛樺湪閿欒鏁版嵁锛屾槸鍚﹀鍑猴紵');
+      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,
+          }
+        );
+      }
     }
-    dialogState.dialogVisible = false;
-    getList(paginationState.pageIndex);
   } catch (error) {}
 }
 
-const { dialogProps: dialogInstructionsProps, dialogState: dialogInstructionsState } = useDialog();
+const { dialogProps: dialogInstructionsProps, dialogState: dialogInstructionsState } = useDialog({
+  onConfirm: handleUpload,
+});
 
 function handleOpenInstructions() {
   dialogInstructionsState.dialogVisible = true;
 }
 
-function handleUpload() {
+async function handleUpload() {
   handleAdd({
     serialNum: `${dayjs().format('YYYYMMDD')}${_.random(0, 9999).toString().padStart(4, '0')}`,
     url: [] as UploadUserFile[],
@@ -488,7 +527,7 @@
   try {
     let params: API.UploadInsuranceStampFilesInput = {
       insurancePolicyId: stampFileForm.id,
-      listFiles: stampFileForm.url?.map((x) => x.path) ?? [],
+      listFiles: convertFormUrl2Api(stampFileForm.url),
     };
     let res = await insuranceOrderServices.uploadInsuranceStampFiles(params);
     if (res) {

--
Gitblit v1.9.1