From 65fdfc6dd82f0bcf6c6826fe1ab645b309f6045c Mon Sep 17 00:00:00 2001
From: zhengyiming <540361168@qq.com>
Date: 星期四, 23 十月 2025 19:37:06 +0800
Subject: [PATCH] fix: bug
---
src/views/Home/components/UploadInsurePersonDialog.vue | 121 ++++++++++++++++++++++++++++++++++++++-
1 files changed, 116 insertions(+), 5 deletions(-)
diff --git a/src/views/Home/components/UploadInsurePersonDialog.vue b/src/views/Home/components/UploadInsurePersonDialog.vue
index 0473413..502a410 100644
--- a/src/views/Home/components/UploadInsurePersonDialog.vue
+++ b/src/views/Home/components/UploadInsurePersonDialog.vue
@@ -3,21 +3,84 @@
title="涓婁紶鎶曚繚浜哄憳娓呭崟"
v-model="innerVisible"
destroy-on-close
+ :close-on-click-modal="false"
+ :close-on-press-escape="false"
draggable
bodyNoPaddingBottom
@close="onDialogClose"
+ width="600px"
>
<ProForm :model="innerForm" ref="dialogForm" label-width="120px">
<ProFormItemV2
- label="鎵规鍙凤細"
- prop="materialName"
- :check-rules="[{ message: '璇疯緭鍏ユ壒娆″彿' }]"
+ label="鎶曚繚浜у搧锛�"
+ prop="productIdNumber"
+ :check-rules="[{ message: '璇烽�夋嫨鎶曚繚浜у搧' }]"
+ v-if="form.isOnLineInsurance && 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="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: '璇疯緭鍏ユ壒娆″彿' }]">
<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"
+ @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="涓婁紶鏂囦欢锛�"
@@ -47,6 +110,7 @@
</template>
<script setup lang="ts">
+import { useUserInsureProductSetting, useInsureProductSchemeAllList } from '@/hooks';
import {
ProDialog,
UploadUserFile,
@@ -54,8 +118,13 @@
ProFormItemV2,
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',
@@ -64,13 +133,22 @@
type Props = {
modelValue: boolean;
form?: {
- orderNo: string;
+ 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<{
@@ -80,6 +158,39 @@
(e: 'onCancel'): void;
}>();
+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() {
return props.modelValue;
--
Gitblit v1.9.1