From 6250509f6dec599c11b68179cb33513e5d4b8a7d Mon Sep 17 00:00:00 2001
From: wupengfei <834520024@qq.com>
Date: 星期四, 23 十月 2025 13:49:53 +0800
Subject: [PATCH] fix: bug
---
src/views/Home/components/UploadInsurePersonDialog.vue | 103 ++++++++++++++++++++++++++++++++++++++++++++++++---
1 files changed, 97 insertions(+), 6 deletions(-)
diff --git a/src/views/Home/components/UploadInsurePersonDialog.vue b/src/views/Home/components/UploadInsurePersonDialog.vue
index 5b421ed..502a410 100644
--- a/src/views/Home/components/UploadInsurePersonDialog.vue
+++ b/src/views/Home/components/UploadInsurePersonDialog.vue
@@ -10,19 +10,38 @@
@close="onDialogClose"
width="600px"
>
- <ProForm :model="innerForm" ref="dialogForm" label-width="100px">
+ <ProForm :model="innerForm" ref="dialogForm" label-width="120px">
<ProFormItemV2
label="鎶曚繚浜у搧锛�"
prop="productIdNumber"
:check-rules="[{ message: '璇烽�夋嫨鎶曚繚浜у搧' }]"
+ v-if="form.isOnLineInsurance && allUserInsureProductSettingList.length > 0"
>
<ProFormSelect
placeholder="璇烽�夋嫨鎶曚繚浜у搧"
- :value-enum="allInsureProductSettingList"
+ :value-enum="allUserInsureProductSettingList"
clearable
v-model="form.productIdNumber"
- enum-label-key="insuranceScheme"
+ enum-label-key="productName"
enum-value-key="productIdNumber"
+ @change="handleProductChange"
+ :disabled="isSupply"
+ ></ProFormSelect>
+ </ProFormItemV2>
+ <ProFormItemV2
+ label="鎶曚繚浜у搧鏂规锛�"
+ prop="productSchemeIdNumber"
+ :check-rules="[{ message: '璇烽�夋嫨鎶曚繚浜у搧鏂规' }]"
+ v-if="form.isOnLineInsurance && 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: '璇疯緭鍏ユ壒娆″彿' }]">
@@ -30,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="涓婁紶鏂囦欢锛�"
@@ -60,7 +110,7 @@
</template>
<script setup lang="ts">
-import { useInsureProductSettingAllList } from '@/hooks';
+import { useUserInsureProductSetting, useInsureProductSchemeAllList } from '@/hooks';
import {
ProDialog,
UploadUserFile,
@@ -69,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',
@@ -83,11 +136,19 @@
serialNum: string;
url: UploadUserFile[];
productIdNumber: string;
+ productSchemeIdNumber: string;
+ effectStartTime: string;
+ effectEndTime: string;
+ //鏄惁鏄嚎涓婃姇淇�
+ isOnLineInsurance: boolean;
};
+ //鏄惁鏄ˉ鎻�
+ isSupply?: boolean;
};
const props = withDefaults(defineProps<Props>(), {
modelValue: false,
+ isSupply: false,
});
const emit = defineEmits<{
@@ -97,8 +158,38 @@
(e: 'onCancel'): void;
}>();
-// TODO 淇濋櫓浜у搧瑕佽窡褰撳墠鐢ㄦ埛鍏宠仈 杩欎釜鑾峰彇鏂瑰紡鍚庣画瑕佷慨鏀�
-const { allInsureProductSettingList } = useInsureProductSettingAllList();
+const { allUserInsureProductSettingList, getInsureProductIdByIdNumber } =
+ useUserInsureProductSetting();
+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() {
--
Gitblit v1.9.1