From ac452fd9dd2b7703a81374d171df3604fae78b7a Mon Sep 17 00:00:00 2001
From: zhengyiming <540361168@qq.com>
Date: 星期二, 29 七月 2025 19:45:38 +0800
Subject: [PATCH] fix: 新增生煎保(短期方案)

---
 src/views/Home/components/UploadInsurePersonDialog.vue |   70 +++++++++++++++++++++++++++++++++-
 1 files changed, 67 insertions(+), 3 deletions(-)

diff --git a/src/views/Home/components/UploadInsurePersonDialog.vue b/src/views/Home/components/UploadInsurePersonDialog.vue
index 2222d09..9640f65 100644
--- a/src/views/Home/components/UploadInsurePersonDialog.vue
+++ b/src/views/Home/components/UploadInsurePersonDialog.vue
@@ -25,6 +25,7 @@
           enum-label-key="productName"
           enum-value-key="productIdNumber"
           @change="handleProductChange"
+          :disabled="isSupply"
         ></ProFormSelect>
       </ProFormItemV2>
       <ProFormItemV2
@@ -40,6 +41,7 @@
           v-model="form.productSchemeIdNumber"
           enum-label-key="name"
           enum-value-key="idNumber"
+          :disabled="isSupply"
         ></ProFormSelect>
       </ProFormItemV2>
       <ProFormItemV2 label="鎵规鍙凤細" prop="serialNum" :check-rules="[{ message: '璇疯緭鍏ユ壒娆″彿' }]">
@@ -47,7 +49,38 @@
           placeholder="璇疯緭鍏ユ壒娆″彿"
           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"
+          @change="handleStartDateChange"
+        ></ProFormDatePicker>
+      </ProFormItemV2>
+      <ProFormItemV2
+        label="鎴鏃ユ湡:"
+        prop="effectEndTime"
+        :check-rules="[{ message: '璇烽�夋嫨鎴鏃ユ湡' }]"
+        v-if="currentInsureProductScheme?.period === InsurancePeriodEnum['1-29D']"
+      >
+        <ProFormDatePicker
+          v-model="form.effectEndTime"
+          type="date"
+          value-format="YYYY-MM-DD"
+          placeholder="璇烽�夋嫨鎴鏃ユ湡"
+          :disabled-date="disabledEndDate"
+          :disabled="isSupply"
+        ></ProFormDatePicker>
       </ProFormItemV2>
       <ProFormItemV2
         label="涓婁紶鏂囦欢锛�"
@@ -86,9 +119,12 @@
   ProFormText,
   ProFormUpload,
   ProFormSelect,
+  ProFormDatePicker,
 } from '@bole-core/components';
+import dayjs from 'dayjs';
 import { FormInstance } from 'element-plus';
 import _ from 'lodash';
+import { InsurancePeriodEnum } from '@/constants';
 
 defineOptions({
   name: 'UploadInsurePersonDialog',
@@ -101,11 +137,16 @@
     url: UploadUserFile[];
     productIdNumber: string;
     productSchemeIdNumber: string;
+    effectStartTime: string;
+    effectEndTime: string;
   };
+  //鏄惁鏄ˉ鎻�
+  isSupply?: boolean;
 };
 
 const props = withDefaults(defineProps<Props>(), {
   modelValue: false,
+  isSupply: false,
 });
 
 const emit = defineEmits<{
@@ -117,14 +158,37 @@
 
 const { allUserInsureProductSettingList, getInsureProductIdByIdNumber } =
   useUserInsureProductSetting();
-const { allInsureProductSchemeList } = useInsureProductSchemeAllList({
-  insureProductId: computed(() => getInsureProductIdByIdNumber(props.form.productIdNumber)),
-});
+const { allInsureProductSchemeList, getInsureProductSchemeByIdNumber } =
+  useInsureProductSchemeAllList({
+    insureProductId: computed(() => getInsureProductIdByIdNumber(props.form.productIdNumber)),
+  });
+
+const currentInsureProductScheme = computed(() =>
+  getInsureProductSchemeByIdNumber(props.form.productSchemeIdNumber)
+);
 
 function handleProductChange() {
   innerForm.value.productSchemeIdNumber = '';
 }
 
+const disabledStartDate = (time: Date) => {
+  return dayjs(time).isBefore(dayjs()) || dayjs(time).isAfter(dayjs().add(60, 'day'));
+};
+
+const disabledEndDate = (time: Date) => {
+  const startDate = dayjs(props.form.effectStartTime);
+  return (
+    dayjs(time).isBefore(startDate) ||
+    dayjs(time).isAfter(dayjs(props.form.effectStartTime).add(28, 'day'))
+  );
+};
+
+function handleStartDateChange() {
+  if (disabledEndDate(props.form.effectEndTime as any)) {
+    innerForm.value.effectEndTime = '';
+  }
+}
+
 const innerVisible = computed({
   get() {
     return props.modelValue;

--
Gitblit v1.9.1