From 23093df749742fe98fcee61cf0fe00957aa176d1 Mon Sep 17 00:00:00 2001
From: zhengyiming <540361168@qq.com>
Date: 星期一, 07 七月 2025 09:43:51 +0800
Subject: [PATCH] Merge branch 'dev-2.2.1' of http://120.26.58.240:8888/r/JYBIndependentFront into dev-2.2.1

---
 src/views/Home/components/UploadInsurePersonDialog.vue |   80 +++++++++++++++++++++++++++++++++++++--
 1 files changed, 75 insertions(+), 5 deletions(-)

diff --git a/src/views/Home/components/UploadInsurePersonDialog.vue b/src/views/Home/components/UploadInsurePersonDialog.vue
index ba9bc53..6be682b 100644
--- a/src/views/Home/components/UploadInsurePersonDialog.vue
+++ b/src/views/Home/components/UploadInsurePersonDialog.vue
@@ -3,6 +3,8 @@
     title="涓婁紶鎶曚繚浜哄憳娓呭崟"
     v-model="innerVisible"
     destroy-on-close
+    :close-on-click-modal="false"
+    :close-on-press-escape="false"
     draggable
     bodyNoPaddingBottom
     @close="onDialogClose"
@@ -10,15 +12,59 @@
   >
     <ProForm :model="innerForm" ref="dialogForm" label-width="120px">
       <ProFormItemV2
-        label="鎵规鍙凤細"
-        prop="materialName"
-        :check-rules="[{ message: '璇疯緭鍏ユ壒娆″彿' }]"
+        label="鎶曚繚浜у搧锛�"
+        prop="productIdNumber"
+        :check-rules="[{ message: '璇烽�夋嫨鎶曚繚浜у搧' }]"
+        v-if="allUserInsureProductSettingList.length > 0"
       >
+        <ProFormSelect
+          placeholder="璇烽�夋嫨鎶曚繚浜у搧"
+          :value-enum="allUserInsureProductSettingList"
+          clearable
+          v-model="form.productIdNumber"
+          enum-label-key="productName"
+          enum-value-key="productIdNumber"
+          @change="handleProductChange"
+          :disabled="isSupply"
+        ></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"
+          :disabled="isSupply"
+        ></ProFormSelect>
+      </ProFormItemV2>
+      <ProFormItemV2 label="鎵规鍙凤細" prop="serialNum" :check-rules="[{ message: '璇疯緭鍏ユ壒娆″彿' }]">
         <ProFormText
           placeholder="璇疯緭鍏ユ壒娆″彿"
-          v-model.trim="innerForm.orderNo"
+          v-model.trim="innerForm.serialNum"
           :maxlength="30"
+          :disabled="isSupply"
         ></ProFormText>
+      </ProFormItemV2>
+      <ProFormItemV2
+        label="璧蜂繚鏃ユ湡:"
+        prop="effectStartTime"
+        :check-rules="[{ message: '璇烽�夋嫨璧蜂繚鏃ユ湡' }]"
+      >
+        <ProFormDatePicker
+          v-model="form.effectStartTime"
+          type="date"
+          value-format="YYYY-MM-DD"
+          placeholder="璇烽�夋嫨璧蜂繚鏃ユ湡"
+          :disabled-date="disabledStartDate"
+          :disabled="isSupply"
+        ></ProFormDatePicker>
       </ProFormItemV2>
       <ProFormItemV2
         label="涓婁紶鏂囦欢锛�"
@@ -48,6 +94,7 @@
 </template>
 
 <script setup lang="ts">
+import { useUserInsureProductSetting, useInsureProductSchemeAllList } from '@/hooks';
 import {
   ProDialog,
   UploadUserFile,
@@ -55,8 +102,12 @@
   ProFormItemV2,
   ProFormText,
   ProFormUpload,
+  ProFormSelect,
+  ProFormDatePicker,
 } from '@bole-core/components';
+import dayjs from 'dayjs';
 import { FormInstance } from 'element-plus';
+import _ from 'lodash';
 
 defineOptions({
   name: 'UploadInsurePersonDialog',
@@ -65,13 +116,18 @@
 type Props = {
   modelValue: boolean;
   form?: {
-    orderNo: string;
+    serialNum: string;
     url: UploadUserFile[];
+    productIdNumber: string;
+    productSchemeIdNumber: string;
+    effectStartTime: string;
   };
+  isSupply?: boolean;
 };
 
 const props = withDefaults(defineProps<Props>(), {
   modelValue: false,
+  isSupply: false,
 });
 
 const emit = defineEmits<{
@@ -81,6 +137,20 @@
   (e: 'onCancel'): void;
 }>();
 
+const { allUserInsureProductSettingList, getInsureProductIdByIdNumber } =
+  useUserInsureProductSetting();
+const { allInsureProductSchemeList } = useInsureProductSchemeAllList({
+  insureProductId: computed(() => getInsureProductIdByIdNumber(props.form.productIdNumber)),
+});
+
+function handleProductChange() {
+  innerForm.value.productSchemeIdNumber = '';
+}
+
+const disabledStartDate = (time: Date) => {
+  return dayjs(time).isBefore(dayjs()) || dayjs(time).isAfter(dayjs().add(60, 'day'));
+};
+
 const innerVisible = computed({
   get() {
     return props.modelValue;

--
Gitblit v1.9.1