zhengyiming
7 天以前 65fdfc6dd82f0bcf6c6826fe1ab645b309f6045c
src/views/Home/components/UploadInsurePersonDialog.vue
@@ -15,7 +15,7 @@
        label="投保产品:"
        prop="productIdNumber"
        :check-rules="[{ message: '请选择投保产品' }]"
        v-if="allUserInsureProductSettingList.length > 0"
        v-if="form.isOnLineInsurance && allUserInsureProductSettingList.length > 0"
      >
        <ProFormSelect
          placeholder="请选择投保产品"
@@ -32,7 +32,7 @@
        label="投保产品方案:"
        prop="productSchemeIdNumber"
        :check-rules="[{ message: '请选择投保产品方案' }]"
        v-if="allUserInsureProductSettingList.length > 0"
        v-if="form.isOnLineInsurance && allUserInsureProductSettingList.length > 0"
      >
        <ProFormSelect
          placeholder="请选择投保产品方案"
@@ -63,6 +63,22 @@
          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>
@@ -108,6 +124,7 @@
import dayjs from 'dayjs';
import { FormInstance } from 'element-plus';
import _ from 'lodash';
import { InsurancePeriodEnum } from '@/constants';
defineOptions({
  name: 'UploadInsurePersonDialog',
@@ -121,6 +138,9 @@
    productIdNumber: string;
    productSchemeIdNumber: string;
    effectStartTime: string;
    effectEndTime: string;
    //是否是线上投保
    isOnLineInsurance: boolean;
  };
  //是否是补提
  isSupply?: boolean;
@@ -140,9 +160,14 @@
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 = '';
@@ -152,6 +177,20 @@
  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;