From 7508a26c00c2ce93ad8c08394f0f9d3d13ebb4ab Mon Sep 17 00:00:00 2001
From: wupengfei <834520024@qq.com>
Date: 星期四, 26 六月 2025 14:25:40 +0800
Subject: [PATCH] feat: 接口对接

---
 src/constants/insuranceClaim.ts                   |   15 +++++++
 src/services/api/typings.d.ts                     |   18 +++++++++
 src/views/Home/components/InsureOrderInfoView.vue |    5 ++
 src/views/Home/Home.vue                           |   14 +++++++
 pnpm-lock.yaml                                    |   46 +++++++++++-----------
 src/services/api/InsuranceOrder.ts                |   15 +++++++
 6 files changed, 89 insertions(+), 24 deletions(-)

diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index a1d7665..6b8c375 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -21,13 +21,13 @@
     version: 1.0.3(@bole-12333/chat-kit@1.0.1)(@tiptap/core@2.1.13)(@tiptap/extension-document@2.1.13)(@tiptap/extension-image@2.1.13)(@tiptap/extension-mention@2.1.13)(@tiptap/extension-paragraph@2.1.13)(@tiptap/extension-placeholder@2.1.13)(@tiptap/extension-text@2.1.13)(@tiptap/pm@2.1.13)(@tiptap/suggestion@2.1.13)(dayjs@1.11.6)(vue@3.5.11)
   '@bole-core/components':
     specifier: latest
-    version: 1.3.10(@bole-core/core@1.0.6)(@bole-core/sass-utils@0.0.1)(@element-plus/icons-vue@2.3.1)(@tanstack/vue-query@4.37.1)(@videojs-player/vue@1.0.0)(@vueuse/core@11.1.0)(@vueuse/shared@11.1.0)(dayjs@1.11.6)(element-plus@2.9.1)(lodash@4.17.21)(mitt@3.0.0)(senin-help@1.0.5)(senin-vue@1.0.4)(video.js@7.20.3)(vue-component-type-helpers@2.1.6)(vue@3.5.11)
+    version: 1.3.10(@bole-core/core@1.0.7)(@bole-core/sass-utils@0.0.1)(@element-plus/icons-vue@2.3.1)(@tanstack/vue-query@4.37.1)(@videojs-player/vue@1.0.0)(@vueuse/core@11.1.0)(@vueuse/shared@11.1.0)(dayjs@1.11.6)(element-plus@2.9.1)(lodash@4.17.21)(mitt@3.0.0)(senin-help@1.0.5)(senin-vue@1.0.4)(video.js@7.20.3)(vue-component-type-helpers@2.1.6)(vue@3.5.11)
   '@bole-core/core':
     specifier: latest
-    version: 1.0.6(@ywwlmm/openapi@0.0.3)(ali-oss@6.21.0)(axios@1.7.7)(dayjs@1.11.6)(element-plus@2.9.1)(file-saver@2.0.5)(jszip@3.10.1)(lodash@4.17.21)(senior-request@1.0.1)(vue-router@4.4.5)(vue@3.5.11)(xlsx-style@0.8.13)(xlsx@0.18.5)
+    version: 1.0.7(@ywwlmm/openapi@0.0.3)(ali-oss@6.21.0)(axios@1.7.7)(dayjs@1.11.6)(element-plus@2.9.1)(file-saver@2.0.5)(jszip@3.10.1)(lodash@4.17.21)(senior-request@1.0.1)(vue-router@4.4.5)(vue@3.5.11)(xlsx-style@0.8.13)(xlsx@0.18.5)
   '@bole-core/pretty-layout':
     specifier: latest
-    version: 1.2.0(@bole-core/core@1.0.6)(@bole-core/sass-utils@0.0.1)(@element-plus/icons-vue@2.3.1)(@vueuse/core@11.1.0)(element-plus@2.9.1)(fuse.js@6.6.2)(lottie-web@5.10.2)(path-browserify@1.0.1)(path-to-regexp@6.2.1)(pinia@2.2.4)(vue-router@4.4.5)(vue@3.5.11)
+    version: 1.2.0(@bole-core/core@1.0.7)(@bole-core/sass-utils@0.0.1)(@element-plus/icons-vue@2.3.1)(@vueuse/core@11.1.0)(element-plus@2.9.1)(fuse.js@6.6.2)(lottie-web@5.10.2)(path-browserify@1.0.1)(path-to-regexp@6.2.1)(pinia@2.2.4)(vue-router@4.4.5)(vue@3.5.11)
   '@bole-core/sass-utils':
     specifier: latest
     version: 0.0.1(element-plus@2.9.1)
@@ -1889,7 +1889,7 @@
       vue: 3.5.11(typescript@4.8.4)
     dev: false
 
-  /@bole-core/components@1.3.10(@bole-core/core@1.0.6)(@bole-core/sass-utils@0.0.1)(@element-plus/icons-vue@2.3.1)(@tanstack/vue-query@4.37.1)(@videojs-player/vue@1.0.0)(@vueuse/core@11.1.0)(@vueuse/shared@11.1.0)(dayjs@1.11.6)(element-plus@2.9.1)(lodash@4.17.21)(mitt@3.0.0)(senin-help@1.0.5)(senin-vue@1.0.4)(video.js@7.20.3)(vue-component-type-helpers@2.1.6)(vue@3.5.11):
+  /@bole-core/components@1.3.10(@bole-core/core@1.0.7)(@bole-core/sass-utils@0.0.1)(@element-plus/icons-vue@2.3.1)(@tanstack/vue-query@4.37.1)(@videojs-player/vue@1.0.0)(@vueuse/core@11.1.0)(@vueuse/shared@11.1.0)(dayjs@1.11.6)(element-plus@2.9.1)(lodash@4.17.21)(mitt@3.0.0)(senin-help@1.0.5)(senin-vue@1.0.4)(video.js@7.20.3)(vue-component-type-helpers@2.1.6)(vue@3.5.11):
     resolution: {integrity: sha512-SRE33nhD4i8MQVvBGbCGH++RfozRM74ctmkhCOCeCoZnlKSqI/i9UlYVrg1Yre5P9TLjh7vEXmSI4TlALrTNXQ==}
     peerDependencies:
       '@bole-core/core': '*'
@@ -1909,7 +1909,7 @@
       vue: 3.5.11
       vue-component-type-helpers: ^2.1.6
     dependencies:
-      '@bole-core/core': 1.0.6(@ywwlmm/openapi@0.0.3)(ali-oss@6.21.0)(axios@1.7.7)(dayjs@1.11.6)(element-plus@2.9.1)(file-saver@2.0.5)(jszip@3.10.1)(lodash@4.17.21)(senior-request@1.0.1)(vue-router@4.4.5)(vue@3.5.11)(xlsx-style@0.8.13)(xlsx@0.18.5)
+      '@bole-core/core': 1.0.7(@ywwlmm/openapi@0.0.3)(ali-oss@6.21.0)(axios@1.7.7)(dayjs@1.11.6)(element-plus@2.9.1)(file-saver@2.0.5)(jszip@3.10.1)(lodash@4.17.21)(senior-request@1.0.1)(vue-router@4.4.5)(vue@3.5.11)(xlsx-style@0.8.13)(xlsx@0.18.5)
       '@bole-core/sass-utils': 0.0.1(element-plus@2.9.1)
       '@element-plus/icons-vue': 2.3.1(vue@3.5.11)
       '@tanstack/vue-query': 4.37.1(vue@3.5.11)
@@ -1927,8 +1927,8 @@
       vue-component-type-helpers: 2.1.6
     dev: false
 
-  /@bole-core/core@1.0.6(@ywwlmm/openapi@0.0.3)(ali-oss@6.21.0)(axios@1.7.7)(dayjs@1.11.6)(element-plus@2.9.1)(file-saver@2.0.5)(jszip@3.10.1)(lodash@4.17.21)(senior-request@1.0.1)(vue-router@4.4.5)(vue@3.5.11)(xlsx-style@0.8.13)(xlsx@0.18.5):
-    resolution: {integrity: sha512-0q0E0ebl6+Arqgg2+OxewmeyizwlxGQdHLLivA9WaFxAY6a5rskVYyEgCwf7hCr4C3saXpNVTzhmmvjVxrr6Lw==}
+  /@bole-core/core@1.0.7(@ywwlmm/openapi@0.0.3)(ali-oss@6.21.0)(axios@1.7.7)(dayjs@1.11.6)(element-plus@2.9.1)(file-saver@2.0.5)(jszip@3.10.1)(lodash@4.17.21)(senior-request@1.0.1)(vue-router@4.4.5)(vue@3.5.11)(xlsx-style@0.8.13)(xlsx@0.18.5):
+    resolution: {integrity: sha512-VICs9m+qAaMvORNcaKSP1Gkr4thhxvwooh2hd7fBmkIYqDitOYmcssBsPno7jjp+5fuZYQ3LwHQ9Vl/whbTpCw==}
     peerDependencies:
       '@ywwlmm/openapi': '*'
       ali-oss: '*'
@@ -1959,7 +1959,7 @@
       xlsx-style: 0.8.13(patch_hash=6ixwdxwh5a3amidwu6vee22jpi)
     dev: false
 
-  /@bole-core/pretty-layout@1.2.0(@bole-core/core@1.0.6)(@bole-core/sass-utils@0.0.1)(@element-plus/icons-vue@2.3.1)(@vueuse/core@11.1.0)(element-plus@2.9.1)(fuse.js@6.6.2)(lottie-web@5.10.2)(path-browserify@1.0.1)(path-to-regexp@6.2.1)(pinia@2.2.4)(vue-router@4.4.5)(vue@3.5.11):
+  /@bole-core/pretty-layout@1.2.0(@bole-core/core@1.0.7)(@bole-core/sass-utils@0.0.1)(@element-plus/icons-vue@2.3.1)(@vueuse/core@11.1.0)(element-plus@2.9.1)(fuse.js@6.6.2)(lottie-web@5.10.2)(path-browserify@1.0.1)(path-to-regexp@6.2.1)(pinia@2.2.4)(vue-router@4.4.5)(vue@3.5.11):
     resolution: {integrity: sha512-LvneMdMfGj6dpFR7voQd2F+v02P4zYHGP3BAWKcrTj8BMeWXRt08Sz7qBrhq1F8lidjqi7TCttQbx2cEV1qBEA==}
     peerDependencies:
       '@bole-core/core': '*'
@@ -1975,7 +1975,7 @@
       vue: 3.5.11
       vue-router: '*'
     dependencies:
-      '@bole-core/core': 1.0.6(@ywwlmm/openapi@0.0.3)(ali-oss@6.21.0)(axios@1.7.7)(dayjs@1.11.6)(element-plus@2.9.1)(file-saver@2.0.5)(jszip@3.10.1)(lodash@4.17.21)(senior-request@1.0.1)(vue-router@4.4.5)(vue@3.5.11)(xlsx-style@0.8.13)(xlsx@0.18.5)
+      '@bole-core/core': 1.0.7(@ywwlmm/openapi@0.0.3)(ali-oss@6.21.0)(axios@1.7.7)(dayjs@1.11.6)(element-plus@2.9.1)(file-saver@2.0.5)(jszip@3.10.1)(lodash@4.17.21)(senior-request@1.0.1)(vue-router@4.4.5)(vue@3.5.11)(xlsx-style@0.8.13)(xlsx@0.18.5)
       '@bole-core/sass-utils': 0.0.1(element-plus@2.9.1)
       '@element-plus/icons-vue': 2.3.1(vue@3.5.11)
       '@vueuse/core': 11.1.0(vue@3.5.11)
@@ -3692,8 +3692,8 @@
       vue-demi: 0.13.11(vue@3.5.11)
     dev: false
 
-  /@tencentcloud/call-engine-js@3.0.1:
-    resolution: {integrity: sha512-OafM512KDbk4b9dpVVymLvuQuoVNqp7ZQmnZVjDmC5v/bQxA1FSUaAinty+7AU1Fb1FxQwxuHKDPysQAU+9M0g==}
+  /@tencentcloud/call-engine-js@3.1.0:
+    resolution: {integrity: sha512-ygbGO+NDsqVoF4ud4bAto4zLzqC6CYSJ1lvkoMsRHdaTeXi2M4qrcAqbqbrFD9L8VjLTsbw1o2MzbQCQfYnv3g==}
     dependencies:
       '@tencentcloud/chat': 3.5.5
       core-js: 3.38.1
@@ -3703,10 +3703,10 @@
       tuikit-logger: 0.0.4-beta.1
     dev: false
 
-  /@tencentcloud/call-uikit-vue2.6@4.0.6(vue@3.5.11):
-    resolution: {integrity: sha512-As0qoW6TncyZ0y10Ogm6KrziZGznM5DX5HBPdYfZDbDm6eIYxG13HD3K8BzUC/GRlny8Nxn4EfhSkn48StBruQ==}
+  /@tencentcloud/call-uikit-vue2.6@4.0.7(vue@3.5.11):
+    resolution: {integrity: sha512-w3EankGnt74+S6rDrsVsLY/sRm+R4PtnHQEKHiJyySOGUKlgthq8/gOh2Lee03mh3+Yd6gRivOnEmlBbVNEmQA==}
     dependencies:
-      '@tencentcloud/call-engine-js': 3.0.1
+      '@tencentcloud/call-engine-js': 3.1.0
       '@tencentcloud/chat': 3.5.5
       '@tencentcloud/tui-core': 2.4.0
       '@vue/composition-api': 1.7.2(vue@3.5.11)
@@ -3714,10 +3714,10 @@
       - vue
     dev: false
 
-  /@tencentcloud/call-uikit-vue2@4.0.6:
-    resolution: {integrity: sha512-egV/rS0T77vj3+d3YpurJxynFBJ41hbBO8WPmwc5z9BD2qjM2HSKgbMR2jGF6XAxjherCK/qlaIZLQQiNIKmNQ==}
+  /@tencentcloud/call-uikit-vue2@4.0.7:
+    resolution: {integrity: sha512-EzLrlzOgAnIY+aSVT2if06D0ebPgqIXTcVQuY+xj6NQI+PTpfkRu/SAlC50CHuaGOdH7F5P+U32dCOjcCoS4BQ==}
     dependencies:
-      '@tencentcloud/call-engine-js': 3.0.1
+      '@tencentcloud/call-engine-js': 3.1.0
       '@tencentcloud/chat': 3.5.5
       '@tencentcloud/tui-core': 2.4.0
     dev: false
@@ -3729,10 +3729,10 @@
       tuicall-engine-webrtc: 3.1.7
     dev: false
 
-  /@tencentcloud/call-uikit-vue@4.0.6:
-    resolution: {integrity: sha512-eqcIv2QcsH1iRdpbBJu6sv73wVMzaeb4Bap5A2B+uVJrnrwEd1KwOzk8wV4gNIbtF08fK933R4OnkuCRMhoH4A==}
+  /@tencentcloud/call-uikit-vue@4.0.7:
+    resolution: {integrity: sha512-FGaCeCOAyk0z/qiobT+d9F1RFKLal1/lhk51pDso38MlJbvhzk7/s/feubO1Fbi5nHqRBF71m7+RS44m/Fcspg==}
     dependencies:
-      '@tencentcloud/call-engine-js': 3.0.1
+      '@tencentcloud/call-engine-js': 3.1.0
       '@tencentcloud/chat': 3.5.5
       '@tencentcloud/tui-core': 2.4.0
     dev: false
@@ -3758,9 +3758,9 @@
       '@tiptap/pm': ^2.0.0-beta.220
       '@tiptap/suggestion': ^2.0.0-beta.220
     dependencies:
-      '@tencentcloud/call-uikit-vue': 4.0.6
-      '@tencentcloud/call-uikit-vue2': 4.0.6
-      '@tencentcloud/call-uikit-vue2.6': 4.0.6(vue@3.5.11)
+      '@tencentcloud/call-uikit-vue': 4.0.7
+      '@tencentcloud/call-uikit-vue2': 4.0.7
+      '@tencentcloud/call-uikit-vue2.6': 4.0.7(vue@3.5.11)
       '@tencentcloud/chat-uikit-engine': 2.4.4
       '@tencentcloud/tui-core': 2.4.0
       '@tencentcloud/tui-customer-service-plugin': 2.2.6(@tencentcloud/tui-core@2.4.0)(vue@3.5.11)
diff --git a/src/constants/insuranceClaim.ts b/src/constants/insuranceClaim.ts
index e35e4e6..e5d7e69 100644
--- a/src/constants/insuranceClaim.ts
+++ b/src/constants/insuranceClaim.ts
@@ -86,3 +86,18 @@
   '30D': '鏈堜繚',
   '360D': '骞翠繚',
 };
+
+export enum InsuranceClaimAuditStatusEnum {
+  /**椹冲洖 */
+  Reject = -10,
+  /**寰呭鏍� */
+  WaitAudit = 10,
+  /**閫氳繃 */
+  Pass = 20,
+}
+
+export const InsuranceClaimAuditStatusEnumText = {
+  [InsuranceClaimAuditStatusEnum.Reject]: '椹冲洖',
+  [InsuranceClaimAuditStatusEnum.WaitAudit]: '寰呭鏍�',
+  [InsuranceClaimAuditStatusEnum.Pass]: '閫氳繃',
+};
diff --git a/src/services/api/InsuranceOrder.ts b/src/services/api/InsuranceOrder.ts
index a0906de..9fc8e40 100644
--- a/src/services/api/InsuranceOrder.ts
+++ b/src/services/api/InsuranceOrder.ts
@@ -398,6 +398,21 @@
   });
 }
 
+/** 淇濆崟瀹℃牳 POST /api/InsuranceOrder/InsurancePolicyAudit */
+export async function insurancePolicyAudit(
+  body: API.InsurancePolicyAuditInput,
+  options?: API.RequestConfig
+) {
+  return request<number>('/api/InsuranceOrder/InsurancePolicyAudit', {
+    method: 'POST',
+    headers: {
+      'Content-Type': 'application/json',
+    },
+    data: body,
+    ...(options || {}),
+  });
+}
+
 /** 淇敼淇濆崟浜哄憳淇℃伅 POST /api/InsuranceOrder/UpdateInsuranceStaffInfo */
 export async function updateInsuranceStaffInfo(
   body: API.UpdateInsuranceStaffInfoInput,
diff --git a/src/services/api/typings.d.ts b/src/services/api/typings.d.ts
index 265e288..676f2d5 100644
--- a/src/services/api/typings.d.ts
+++ b/src/services/api/typings.d.ts
@@ -897,6 +897,8 @@
     companyName?: string;
     isClosedOutTime?: boolean;
     auditStatus?: InsuranceClaimAuditStatusEnum;
+    /** 瀹℃牳澶囨敞 */
+    auditRemark?: string;
     /** 淇濋櫓浜у搧IdNumber */
     productIdNumber?: string;
   }
@@ -1467,6 +1469,22 @@
     materialName?: string;
   }
 
+  interface InsurancePolicyAuditInput {
+    /** 淇濆崟Id */
+    insurancePolicyId?: string;
+    /** 淇濆崟璧锋湡 */
+    effectStartTime?: string;
+    /** 淇濆崟姝㈡湡 */
+    effectEndTime?: string;
+    /** 淇濋 */
+    sumInsured?: number;
+    /** 淇濊垂 */
+    amount?: number;
+    auditStatus?: InsuranceClaimAuditStatusEnum;
+    /** 瀹℃牳澶囨敞 */
+    auditRemark?: string;
+  }
+
   type InsurancePolicyStatusEnum = 10 | 20 | 30;
 
   interface InsureBatchBillDetailDto {
diff --git a/src/views/Home/Home.vue b/src/views/Home/Home.vue
index 1dc4f3a..d8736f1 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="InsuranceClaimAuditStatusEnumText"
+              buttonStyle
+              showAllBtn
+              @change="getList()"
+            />
+          </QueryFilterItem>
+          <QueryFilterItem>
+            <FieldRadio
               v-model="extraParamState.status"
               :value-enum="InsurancePolicyStatusEnumText"
               buttonStyle
@@ -109,6 +118,8 @@
   InsurancePolicyStatusEnumText,
   InsurancePolicyStatusEnum,
   AppType,
+  InsuranceClaimAuditStatusEnumText,
+  InsuranceClaimAuditStatusEnum,
 } from '@/constants';
 import dayjs from 'dayjs';
 import _ from 'lodash';
@@ -209,10 +220,12 @@
       creationDate: [] as unknown as ModelValueType,
       condition: '',
       status: '' as any as InsurancePolicyStatusEnum,
+      auditStatus: '' as any as InsuranceClaimAuditStatusEnum,
       insurancePeriod: '',
     },
     columnsRenderProps: {
       status: { type: 'enum', valueEnum: InsurancePolicyStatusEnumText },
+      auditStatus: { type: 'enum', valueEnum: InsuranceClaimAuditStatusEnumText },
       insurancePeriod: { type: 'enum', valueEnum: insuranceTypeText },
       creationTime: { type: 'date', format: 'YYYY-MM-DD' },
       effectStartTime: { type: 'date', format: 'YYYY-MM-DD' },
@@ -243,6 +256,7 @@
     condition: extraParamState.condition,
     insurancePeriod: extraParamState.insurancePeriod,
     status: extraParamState.status,
+    auditStatus: extraParamState.auditStatus,
   };
   return params;
 }
diff --git a/src/views/Home/components/InsureOrderInfoView.vue b/src/views/Home/components/InsureOrderInfoView.vue
index 6969481..841ce59 100644
--- a/src/views/Home/components/InsureOrderInfoView.vue
+++ b/src/views/Home/components/InsureOrderInfoView.vue
@@ -85,6 +85,7 @@
             <template v-if="detail.status === InsurancePolicyStatusEnum.WaitEffect">
               <el-button @click="handleTemplateDownload()" link type="primary">妯℃澘涓嬭浇</el-button>
               <BlFileUpload
+                v-if="detail.auditStatus !== InsuranceClaimAuditStatusEnum.Pass"
                 :limitFileSize="10"
                 accept="xls,xlsx"
                 :showTip="false"
@@ -149,6 +150,7 @@
   insuranceTypeText,
   InsurancePolicyStatusEnum,
   InsurancePolicyStatusEnumText,
+  InsuranceClaimAuditStatusEnum,
 } from '@/constants';
 import ChangePersonInfoDialog from './ChangePersonInfoDialog.vue';
 import InsureClaimDetailDialog from './InsureClaimDetailDialog.vue';
@@ -239,7 +241,8 @@
     },
     extraProps: {
       hide: (row: API.GetInsuranceStaffPageTemplate) =>
-        detail.value?.status !== InsurancePolicyStatusEnum.WaitEffect,
+        detail.value?.status !== InsurancePolicyStatusEnum.WaitEffect ||
+        detail.value?.auditStatus === InsuranceClaimAuditStatusEnum.Pass,
     },
   },
   {

--
Gitblit v1.9.1