zhengyiming
7 天以前 c55c548308e6a1adef6670f8acf1ee5f57e77da6
src/views/Home/components/UploadInsurePersonDialog.vue
@@ -3,19 +3,49 @@
    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="allUserInsureProductSettingList.length > 0"
      >
        <ProFormSelect
          placeholder="请选择投保产品"
          :value-enum="allUserInsureProductSettingList"
          clearable
          v-model="form.productIdNumber"
          enum-label-key="productName"
          enum-value-key="productIdNumber"
          @change="handleProductChange"
        ></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"
        ></ProFormSelect>
      </ProFormItemV2>
      <ProFormItemV2 label="批次号:" prop="serialNum" :check-rules="[{ message: '请输入批次号' }]">
        <ProFormText
          placeholder="请输入批次号"
          v-model.trim="innerForm.orderNo"
          v-model.trim="innerForm.serialNum"
          :maxlength="30"
        ></ProFormText>
      </ProFormItemV2>
@@ -47,6 +77,7 @@
</template>
<script setup lang="ts">
import { useUserInsureProductSetting, useInsureProductSchemeAllList } from '@/hooks';
import {
  ProDialog,
  UploadUserFile,
@@ -54,8 +85,10 @@
  ProFormItemV2,
  ProFormText,
  ProFormUpload,
  ProFormSelect,
} from '@bole-core/components';
import { FormInstance } from 'element-plus';
import _ from 'lodash';
defineOptions({
  name: 'UploadInsurePersonDialog',
@@ -64,8 +97,10 @@
type Props = {
  modelValue: boolean;
  form?: {
    orderNo: string;
    serialNum: string;
    url: UploadUserFile[];
    productIdNumber: string;
    productSchemeIdNumber: string;
  };
};
@@ -80,6 +115,16 @@
  (e: 'onCancel'): void;
}>();
const { allUserInsureProductSettingList, getInsureProductIdByIdNumber } =
  useUserInsureProductSetting();
const { allInsureProductSchemeList } = useInsureProductSchemeAllList({
  insureProductId: computed(() => getInsureProductIdByIdNumber(props.form.productIdNumber)),
});
function handleProductChange() {
  innerForm.value.productSchemeIdNumber = '';
}
const innerVisible = computed({
  get() {
    return props.modelValue;