From de2f2740e030479db4ea16b4b9316f68f8c49fd4 Mon Sep 17 00:00:00 2001
From: wupengfei <834520024@qq.com>
Date: 星期一, 30 六月 2025 15:22:20 +0800
Subject: [PATCH] fix: bug

---
 src/views/Home/Home.vue |  170 ++++++++++++++++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 164 insertions(+), 6 deletions(-)

diff --git a/src/views/Home/Home.vue b/src/views/Home/Home.vue
index 0512c24..0a2e6dc 100644
--- a/src/views/Home/Home.vue
+++ b/src/views/Home/Home.vue
@@ -26,6 +26,15 @@
           </QueryFilterItem>
           <QueryFilterItem>
             <FieldRadio
+              v-model="extraParamState.auditStatus"
+              :value-enum="InsurancePolicyAuditStatusEnumText"
+              buttonStyle
+              showAllBtn
+              @change="getList()"
+            />
+          </QueryFilterItem>
+          <QueryFilterItem>
+            <FieldRadio
               v-model="extraParamState.status"
               :value-enum="InsurancePolicyStatusEnumText"
               buttonStyle
@@ -44,14 +53,26 @@
           </QueryFilterItem>
         </template>
         <template #btn>
+          <el-button
+            @click="handleDownloadOccupationType()"
+            type="primary"
+            style="margin-right: 10px"
+            link
+            >鑱屼笟绫诲瀷瀵圭収琛�</el-button
+          >
           <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
+            >瀵煎叆鎶曚繚浜哄憳</el-button
           >
-
+          <!-- <el-button
+            v-if="AppType === 'jx'"
+            @click="handleUpload()"
+            type="primary"
+            style="margin-right: 10px"
+            >澶ф壒閲忔暟鎹鍏�</el-button
+          > -->
           <el-button @click="getInsurancePageExport()" type="primary" link>瀵煎嚭淇濆崟鍒楄〃</el-button>
           <el-button @click="getInsuranceStaffPageExport()" type="primary" link
             >瀵煎嚭鍦ㄤ繚浜哄憳</el-button
@@ -68,6 +89,24 @@
           rowKey: 'id',
         }"
       >
+        <template #auditStatus="{ row }">
+          <el-tooltip
+            class="box-item"
+            effect="dark"
+            :content="row.auditRemark"
+            placement="top"
+            v-if="row.auditStatus === InsurancePolicyAuditStatusEnum.Reject && row.auditRemark"
+            popper-class="max-width-popper"
+          >
+            <div style="display: inline-flex; align-items: center; color: inherit">
+              {{ InsurancePolicyAuditStatusEnumText[row.auditStatus] }}
+              <el-icon size="16" color="#3a71ff"><QuestionFilled /></el-icon>
+            </div>
+          </el-tooltip>
+          <el-text v-else style="color: inherit">
+            {{ InsurancePolicyAuditStatusEnumText[row.auditStatus] }}
+          </el-text>
+        </template>
       </ProTableV2>
     </AppContainer>
     <UploadInsurePersonDialog v-bind="dialogProps" />
@@ -103,6 +142,13 @@
   insuranceTypeText,
   InsurancePolicyStatusEnumText,
   InsurancePolicyStatusEnum,
+  AppType,
+  InsurancePolicyAuditStatusEnumText,
+  InsurancePolicyAuditStatusEnum,
+  InsurancePolicyProductIdNumberEnum,
+  InsurancePolicyListPayStatusEnum,
+  InsurancePolicyListPayStatusEnumText,
+  InsuranceOccupationTypeTempPath,
 } from '@/constants';
 import dayjs from 'dayjs';
 import _ from 'lodash';
@@ -130,7 +176,8 @@
       onClick: (role) => handleBatch(role),
     },
     extraProps: {
-      hide: (row: API.GetInsurancePageOutput) => row.status !== InsurancePolicyStatusEnum.Effecting,
+      hide: (row: API.GetInsurancePageOutput) =>
+        row.productOnline || row.status !== InsurancePolicyStatusEnum.Effecting,
     },
   },
   {
@@ -143,6 +190,7 @@
     },
     extraProps: {
       hide: (row: API.GetInsurancePageOutput) =>
+        row.auditStatus !== InsurancePolicyAuditStatusEnum.Pass ||
         row.status !== InsurancePolicyStatusEnum.WaitEffect,
     },
   },
@@ -155,10 +203,56 @@
       onClick: (role) => handleDownloadInsureFile(role),
     },
     extraProps: {
-      hide: (row: API.GetInsurancePageOutput) =>
-        row.status === InsurancePolicyStatusEnum.WaitEffect,
+      hide: (row: API.GetInsurancePageOutput) => row.productOnline || !row.insureBillUrl,
     },
   },
+  {
+    data: {
+      enCode: 'payBtn',
+      name: '鏀粯',
+    },
+    emits: {
+      onClick: (role) => handlePay(role),
+    },
+    extraProps: {
+      hide: (row: API.GetInsurancePageOutput) =>
+        row.payStatus != InsurancePolicyListPayStatusEnum.WaitPay,
+    },
+  },
+  {
+    data: {
+      enCode: 'stampFilesBtn',
+      name: '淇濆崟涓嬭浇',
+    },
+    emits: {
+      onClick: (role) => handleGoStampFiles(role),
+    },
+    extraProps: {
+      hide: (row: API.GetInsurancePageOutput) => !(row.productOnline && row.anyPayComplete),
+    },
+  },
+  {
+    data: {
+      enCode: 'downloadInvoiceBtn',
+      name: '鍙戠エ涓嬭浇',
+    },
+    emits: {
+      onClick: (role) => handleGoDownloadInvoice(role),
+    },
+    extraProps: {
+      hide: (row: API.GetInsurancePageOutput) => !(row.productOnline && row.anyPayComplete),
+    },
+  },
+
+  // {
+  //   data: {
+  //     enCode: 'standarEndoBtn',
+  //     name: '鐢宠閫�淇�',
+  //   },
+  //   emits: {
+  //     onClick: (role) => handleStandarEndo(role),
+  //   },
+  // },
 ]).filter(Boolean);
 
 const BaseState = {
@@ -194,6 +288,7 @@
       creationDate: [] as unknown as ModelValueType,
       condition: '',
       status: '' as any as InsurancePolicyStatusEnum,
+      auditStatus: '' as any as InsurancePolicyAuditStatusEnum,
       insurancePeriod: '',
     },
     columnsRenderProps: {
@@ -212,6 +307,7 @@
         formatter: (row: API.GetInsurancePageOutput) =>
           row.amount == null ? '' : toThousand(row.amount),
       },
+      payStatus: { type: 'enum', valueEnum: InsurancePolicyListPayStatusEnumText },
     },
   }
 );
@@ -228,6 +324,7 @@
     condition: extraParamState.condition,
     insurancePeriod: extraParamState.insurancePeriod,
     status: extraParamState.status,
+    auditStatus: extraParamState.auditStatus,
   };
   return params;
 }
@@ -237,6 +334,8 @@
   defaultFormParams: {
     serialNum: '',
     url: [] as UploadUserFile[],
+    productIdNumber: '',
+    productSchemeIdNumber: '',
   },
   closeAfterConfirm: false,
 });
@@ -266,6 +365,8 @@
     let params: API.APIimportInsStaffToListParams = {
       serialNum: editForm.serialNum,
       url: editForm.url?.[0]?.path,
+      productIdNumber: editForm.productIdNumber,
+      productSchemeIdNumber: editForm.productSchemeIdNumber,
     };
     let res = await insuranceOrderServices.importInsStaffToList(params);
     if (res.length > 0) {
@@ -331,6 +432,10 @@
       downloadFile(res.data, `鍦ㄤ繚浜哄憳瀵煎嚭`, 'xlsx');
     }
   } catch (error) {}
+}
+
+function handleDownloadOccupationType() {
+  downloadFileByUrl(InsuranceOccupationTypeTempPath, '鑱屼笟绫诲瀷瀵圭収琛�');
 }
 
 function handleDownload() {
@@ -403,6 +508,13 @@
   });
 }
 function handleBatch(row: API.GetInsurancePageOutput) {
+  if (
+    dayjs(row.effectEndTime).isBefore(dayjs()) ||
+    dayjs(row.effectEndTime).isSame(dayjs(), 'day')
+  ) {
+    Message.errorMessage('淇濋櫓浠婂ぉ鍒版湡锛屾棤娉曟壒鏀�');
+    return;
+  }
   router.push({
     name: 'BatchChange',
     params: {
@@ -415,4 +527,50 @@
     },
   });
 }
+
+async function handleStandarEndo(row: API.GetInsurancePageOutput) {
+  try {
+    await Message.deleteMessage('鏄惁鐢宠閫�淇�?');
+    let params = {
+      id: row.id,
+    };
+    // let res = await userServices.deleteRole(params);
+    // if (res) {
+    //   Message.successMessage('鎿嶄綔鎴愬姛');
+    //   getList(paginationState.pageIndex);
+    // }
+  } catch (error) {}
+}
+
+async function handleGoStampFiles(row: API.GetInsurancePageOutput) {
+  try {
+    router.push({
+      name: 'InsurancePolicyStampFiles',
+      params: {
+        id: row.id,
+      },
+    });
+  } catch (error) {}
+}
+
+function handlePay(row: API.GetInsurancePageOutput) {
+  router.push({
+    name: 'InsurePayDetail',
+    params: {
+      id: row.id,
+    },
+  });
+}
+
+async function handleGoDownloadInvoice(row: API.GetInsurancePageOutput) {
+  try {
+    await insuranceOrderServices.getInvoiceId({ id: row.id });
+    router.push({
+      name: 'InsureDownloadInvoice',
+      params: {
+        id: row.id,
+      },
+    });
+  } catch (error) {}
+}
 </script>

--
Gitblit v1.9.1