From 2a4aecd380fad4ccb1303be0526eabf56bd3d9a6 Mon Sep 17 00:00:00 2001
From: wupengfei <834520024@qq.com>
Date: 星期五, 27 六月 2025 16:49:08 +0800
Subject: [PATCH] Merge branch 'dev-2.2.0' of http://120.26.58.240:8888/r/JYBIndependentFront into dev-2.2.0

---
 src/views/Home/components/UploadInsurePersonDialog.vue |   33 ++++++++++++++--
 src/services/api/TaiPing.ts                            |   11 ++---
 src/hooks/dic.ts                                       |   40 ++++++++++++++++++++
 src/services/api/typings.d.ts                          |    7 +--
 src/views/Home/Home.vue                                |    2 +
 src/services/api/Dictionary.ts                         |   15 +++++++
 6 files changed, 93 insertions(+), 15 deletions(-)

diff --git a/src/hooks/dic.ts b/src/hooks/dic.ts
index ce60fd7..48489a0 100644
--- a/src/hooks/dic.ts
+++ b/src/hooks/dic.ts
@@ -27,8 +27,48 @@
     placeholderData: () => [] as API.InsureProductSettingDto[],
   });
 
+  function getInsureProductByIdNumber(productIdNumber: string) {
+    return allUserInsureProductSettingList.value.find((x) => x.productIdNumber === productIdNumber);
+  }
+
+  function getInsureProductIdByIdNumber(productIdNumber: string) {
+    const insureProduct = getInsureProductByIdNumber(productIdNumber);
+    return insureProduct?.id ?? '';
+  }
+
   return {
     allUserInsureProductSettingList,
+    getInsureProductByIdNumber,
+    getInsureProductIdByIdNumber,
+    refetch,
+  };
+}
+
+type UseInsureProductSchemeAllListOptions = {
+  insureProductId?: MaybeRef<string>;
+};
+
+export function useInsureProductSchemeAllList(options: UseInsureProductSchemeAllListOptions = {}) {
+  const { insureProductId } = options;
+
+  const { data: allInsureProductSchemeList, refetch } = useQuery({
+    queryKey: ['dictionaryServices/getInsureProductSchemeAllList', insureProductId],
+    queryFn: async () => {
+      let res = await dictionaryServices.getInsureProductSchemeAllList(
+        {
+          insureProductId: unref(insureProductId),
+        },
+        { showLoading: false }
+      );
+      return res;
+    },
+    placeholderData: () => [] as API.InsureProductSchemeDto[],
+    enabled: computed(() => !!unref(insureProductId)),
+    staleTime: Infinity,
+  });
+
+  return {
+    allInsureProductSchemeList,
     refetch,
   };
 }
diff --git a/src/services/api/Dictionary.ts b/src/services/api/Dictionary.ts
index a378f67..ca58aca 100644
--- a/src/services/api/Dictionary.ts
+++ b/src/services/api/Dictionary.ts
@@ -62,6 +62,21 @@
   });
 }
 
+/** 鑾峰彇淇濋櫓浜у搧鏂规涓嬫媺鍒楄〃 POST /api/Dictionary/GetInsureProductSchemeAllList */
+export async function getInsureProductSchemeAllList(
+  body: API.GetInsureProductSchemePageInput,
+  options?: API.RequestConfig
+) {
+  return request<API.InsureProductSchemeDto[]>('/api/Dictionary/GetInsureProductSchemeAllList', {
+    method: 'POST',
+    headers: {
+      'Content-Type': 'application/json',
+    },
+    data: body,
+    ...(options || {}),
+  });
+}
+
 /** 鑾峰彇淇濋櫓浜у搧鏂规鍒楄〃 POST /api/Dictionary/GetInsureProductSchemePage */
 export async function getInsureProductSchemePage(
   body: API.GetInsureProductSchemePageInput,
diff --git a/src/services/api/TaiPing.ts b/src/services/api/TaiPing.ts
index 331f5f0..5e37d8d 100644
--- a/src/services/api/TaiPing.ts
+++ b/src/services/api/TaiPing.ts
@@ -15,16 +15,13 @@
 }
 
 /** 澶钩淇濋櫓鎵夸繚鎴愬姛閫氱煡 POST /api/TaiPing/Success */
-export async function success(
-  // 鍙犲姞鐢熸垚鐨凱aram绫诲瀷 (闈瀊ody鍙傛暟swagger榛樿娌℃湁鐢熸垚瀵硅薄)
-  params: API.APIsuccessParams,
-  options?: API.RequestConfig
-) {
+export async function success(body: string, options?: API.RequestConfig) {
   return request<string>('/api/TaiPing/Success', {
     method: 'POST',
-    params: {
-      ...params,
+    headers: {
+      'Content-Type': 'application/json',
     },
+    data: body,
     ...(options || {}),
   });
 }
diff --git a/src/services/api/typings.d.ts b/src/services/api/typings.d.ts
index 5480026..86d2666 100644
--- a/src/services/api/typings.d.ts
+++ b/src/services/api/typings.d.ts
@@ -363,6 +363,7 @@
     url?: string;
     serialNum?: string;
     productIdNumber?: string;
+    productSchemeIdNumber?: string;
   }
 
   interface APIsearchParams {
@@ -380,10 +381,6 @@
   interface APIsetForUserParams {
     userId?: string;
     permissionName?: string;
-  }
-
-  interface APIsuccessParams {
-    input?: string;
   }
 
   interface APIupdateDefaultConnectionStringParams {
@@ -1512,6 +1509,8 @@
     auditStatus?: InsurancePolicyAuditStatusEnum;
     /** 瀹℃牳澶囨敞 */
     auditRemark?: string;
+    /** 杩斿洖鍦板潃 */
+    returnUrl?: string;
   }
 
   type InsurancePolicyAuditStatusEnum = 10 | 20 | -10;
diff --git a/src/views/Home/Home.vue b/src/views/Home/Home.vue
index e628e7b..ea15a1a 100644
--- a/src/views/Home/Home.vue
+++ b/src/views/Home/Home.vue
@@ -287,6 +287,7 @@
     serialNum: '',
     url: [] as UploadUserFile[],
     productIdNumber: '',
+    productSchemeIdNumber: '',
   },
   closeAfterConfirm: false,
 });
@@ -317,6 +318,7 @@
       serialNum: editForm.serialNum,
       url: editForm.url?.[0]?.path,
       productIdNumber: editForm.productIdNumber,
+      productSchemeIdNumber: editForm.productSchemeIdNumber,
     };
     let res = await insuranceOrderServices.importInsStaffToList(params);
     if (res.length > 0) {
diff --git a/src/views/Home/components/UploadInsurePersonDialog.vue b/src/views/Home/components/UploadInsurePersonDialog.vue
index 46c9c2e..2222d09 100644
--- a/src/views/Home/components/UploadInsurePersonDialog.vue
+++ b/src/views/Home/components/UploadInsurePersonDialog.vue
@@ -10,7 +10,7 @@
     @close="onDialogClose"
     width="600px"
   >
-    <ProForm :model="innerForm" ref="dialogForm" label-width="100px">
+    <ProForm :model="innerForm" ref="dialogForm" label-width="120px">
       <ProFormItemV2
         label="鎶曚繚浜у搧锛�"
         prop="productIdNumber"
@@ -22,8 +22,24 @@
           :value-enum="allUserInsureProductSettingList"
           clearable
           v-model="form.productIdNumber"
-          enum-label-key="insuranceScheme"
+          enum-label-key="productName"
           enum-value-key="productIdNumber"
+          @change="handleProductChange"
+        ></ProFormSelect>
+      </ProFormItemV2>
+      <ProFormItemV2
+        label="鎶曚繚浜у搧鏂规锛�"
+        prop="productSchemeIdNumber"
+        :check-rules="[{ message: '璇烽�夋嫨鎶曚繚浜у搧鏂规' }]"
+        v-if="allUserInsureProductSettingList.length > 0"
+      >
+        <ProFormSelect
+          placeholder="璇烽�夋嫨鎶曚繚浜у搧鏂规"
+          :value-enum="allInsureProductSchemeList"
+          clearable
+          v-model="form.productSchemeIdNumber"
+          enum-label-key="name"
+          enum-value-key="idNumber"
         ></ProFormSelect>
       </ProFormItemV2>
       <ProFormItemV2 label="鎵规鍙凤細" prop="serialNum" :check-rules="[{ message: '璇疯緭鍏ユ壒娆″彿' }]">
@@ -61,7 +77,7 @@
 </template>
 
 <script setup lang="ts">
-import { useUserInsureProductSetting } from '@/hooks';
+import { useUserInsureProductSetting, useInsureProductSchemeAllList } from '@/hooks';
 import {
   ProDialog,
   UploadUserFile,
@@ -84,6 +100,7 @@
     serialNum: string;
     url: UploadUserFile[];
     productIdNumber: string;
+    productSchemeIdNumber: string;
   };
 };
 
@@ -98,7 +115,15 @@
   (e: 'onCancel'): void;
 }>();
 
-const { allUserInsureProductSettingList } = useUserInsureProductSetting();
+const { allUserInsureProductSettingList, getInsureProductIdByIdNumber } =
+  useUserInsureProductSetting();
+const { allInsureProductSchemeList } = useInsureProductSchemeAllList({
+  insureProductId: computed(() => getInsureProductIdByIdNumber(props.form.productIdNumber)),
+});
+
+function handleProductChange() {
+  innerForm.value.productSchemeIdNumber = '';
+}
 
 const innerVisible = computed({
   get() {

--
Gitblit v1.9.1