zhengyiming
4 天以前 babd7a49ba48c83334bbe9a4c992d784e062f6e3
fix: 江佑保系统健壮性修复
8个文件已修改
114 ■■■■ 已修改文件
src/constants/insuranceClaim.ts 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/hooks/dic.ts 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/services/api/InsuranceOrder.ts 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/services/api/typings.d.ts 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/Home/Home.vue 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/Home/components/InsureInstructionsDialog.vue 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/Home/components/InsureOrderInfoView.vue 74 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/Home/components/UploadInsurePersonDialog.vue 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/constants/insuranceClaim.ts
@@ -92,6 +92,10 @@
  Reject = -10,
  /**待审核 */
  WaitAudit = 10,
  /**待审核 强制再审后的再审状态*/
  WaitReAudit = 11,
  /**待审核 补提后的再审状态*/
  WaitFillAudit = 12,
  /**审核中 */
  Auditing = 15,
  /**通过 */
@@ -101,6 +105,15 @@
export const InsurancePolicyAuditStatusEnumText = {
  [InsurancePolicyAuditStatusEnum.Reject]: '驳回',
  [InsurancePolicyAuditStatusEnum.WaitAudit]: '待审核',
  [InsurancePolicyAuditStatusEnum.WaitReAudit]: '待审核',
  [InsurancePolicyAuditStatusEnum.WaitFillAudit]: '待审核',
  [InsurancePolicyAuditStatusEnum.Auditing]: '审核中',
  [InsurancePolicyAuditStatusEnum.Pass]: '通过',
};
export const InsurancePolicyAuditStatusEnumTextForFilter = {
  [InsurancePolicyAuditStatusEnum.Reject]: '驳回',
  [InsurancePolicyAuditStatusEnum.WaitAudit]: '待审核',
  [InsurancePolicyAuditStatusEnum.Auditing]: '审核中',
  [InsurancePolicyAuditStatusEnum.Pass]: '通过',
};
src/hooks/dic.ts
@@ -80,8 +80,13 @@
    staleTime: Infinity,
  });
  function getInsureProductSchemeByCode(code: string) {
    return allInsureProductSchemeList.value.find((x) => x.code === code);
  }
  return {
    allInsureProductSchemeList,
    refetch,
    getInsureProductSchemeByCode,
  };
}
src/services/api/InsuranceOrder.ts
@@ -460,7 +460,7 @@
  body: API.RestorePolicyInput,
  options?: API.RequestConfig
) {
  return request<any>('/api/InsuranceOrder/RestorePolicyStatus', {
  return request<boolean>('/api/InsuranceOrder/RestorePolicyStatus', {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json',
src/services/api/typings.d.ts
@@ -935,6 +935,8 @@
    auditRemark?: string;
    /** 保险产品IdNumber */
    productIdNumber?: string;
    /** 方案代码 */
    productSchemeCode?: string;
    /** 是否走线上流程 */
    productOnline?: boolean;
    payStatus?: InsurancePolicyListPayStatusEnum;
@@ -1576,7 +1578,7 @@
    failCount?: number;
  }
  type InsurancePolicyAuditStatusEnum = 10 | 15 | 20 | -10;
  type InsurancePolicyAuditStatusEnum = 10 | 11 | 12 | 15 | 20 | -10;
  type InsurancePolicyListPayStatusEnum = 1 | 2;
@@ -1611,7 +1613,7 @@
    invoiceDownloadOssUrl?: string;
  }
  type InsurancePolicyPayStatusEnum = 1 | 2 | -1;
  type InsurancePolicyPayStatusEnum = 0 | 1 | 2 | -1;
  type InsurancePolicyStatusEnum = 10 | 20 | 30;
@@ -2083,8 +2085,6 @@
  }
  interface RestorePolicyDto {
    /** Id */
    id?: string;
    /** 订单号 */
    channelOrderNo?: string;
    /** 保单号 */
src/views/Home/Home.vue
@@ -27,7 +27,7 @@
          <QueryFilterItem>
            <FieldRadio
              v-model="extraParamState.auditStatus"
              :value-enum="InsurancePolicyAuditStatusEnumText"
              :value-enum="InsurancePolicyAuditStatusEnumTextForFilter"
              buttonStyle
              showAllBtn
              @change="getList()"
@@ -154,6 +154,7 @@
  InsurancePolicyStatusEnum,
  AppType,
  InsurancePolicyAuditStatusEnumText,
  InsurancePolicyAuditStatusEnumTextForFilter,
  InsurancePolicyAuditStatusEnum,
  InsurancePolicyProductIdNumberEnum,
  InsurancePolicyListPayStatusEnum,
src/views/Home/components/InsureInstructionsDialog.vue
@@ -8,6 +8,7 @@
    width="600px"
    :close-on-click-modal="false"
    :close-on-press-escape="false"
    @close="goTo(`step0`)"
  >
    <div class="insureInstructionsDialog-content">
      <!-- <img :src="IconTaipingLogo" alt="" class="logo" /> -->
@@ -97,7 +98,7 @@
const visibleFiles = ref(false);
const { isCurrent, goToNext, goToPrevious, isLast, isFirst } = useStepper(
const { isCurrent, goToNext, goToPrevious, isLast, isFirst, goTo } = useStepper(
  InsuranceTempList.map((x, index) => `step${index}`)
);
</script>
src/views/Home/components/InsureOrderInfoView.vue
@@ -94,8 +94,26 @@
            </QueryFilterItem>
          </template>
          <template #btn>
            <template v-if="detail.status === InsurancePolicyStatusEnum.WaitEffect">
              <template v-if="!detail.productOnline">
            <template v-if="detail.productOnline">
              <el-button
                v-if="detail.auditStatus === InsurancePolicyAuditStatusEnum.Pass"
                @click="handleSupplySubmit()"
                type="primary"
                >补提</el-button
              >
              <template v-if="detail.status !== InsurancePolicyStatusEnum.WaitEffect">
                <el-button @click="handleExport(InsuranceDetailStatusEnum.Effecting)" type="primary"
                  >导出在保人员</el-button
                >
                <el-button @click="handleExport(InsuranceDetailStatusEnum.Fail)" type="primary"
                  >导出错误人员</el-button
                >
                <el-button @click="handleGoStampFiles(id)" type="primary">下载保单</el-button>
                <el-button @click="handleGoDownloadInvoice(id)" type="primary">下载发票</el-button>
              </template>
            </template>
            <template v-else>
              <template v-if="detail.status === InsurancePolicyStatusEnum.WaitEffect">
                <el-button @click="handleTemplateDownload()" link type="primary"
                  >模板下载</el-button
                >
@@ -113,18 +131,6 @@
                  </template>
                </BlFileUpload>
                <el-button @click="handleClear()" type="primary">清空数据</el-button>
              </template>
            </template>
            <template v-else>
              <template v-if="detail.productOnline">
                <el-button @click="handleExport(InsuranceDetailStatusEnum.Effecting)" type="primary"
                  >导出在保人员</el-button
                >
                <el-button @click="handleExport(InsuranceDetailStatusEnum.Fail)" type="primary"
                  >导出错误人员</el-button
                >
                <el-button @click="handleGoStampFiles(id)" type="primary">下载保单</el-button>
                <el-button @click="handleGoDownloadInvoice(id)" type="primary">下载发票</el-button>
              </template>
              <template v-else>
                <el-button @click="handleExport(null)" type="primary">下载人员清单</el-button>
@@ -145,6 +151,7 @@
      </ChunkCell>
      <ChangePersonInfoDialog v-bind="dialogProps"></ChangePersonInfoDialog>
      <InsureClaimDetailDialog v-bind="dialogInsureClaimProps"></InsureClaimDetailDialog>
      <UploadInsurePersonDialog v-bind="dialogSupplyProps" isSupply />
    </AppContainer>
  </LoadingLayout>
</template>
@@ -190,7 +197,12 @@
import { downloadFile, downloadFileByUrl, Message, OrderInputType } from '@bole-core/core';
import { setOSSLink } from '@/utils';
import dayjs from 'dayjs';
import { useInsureActions } from '@/hooks';
import {
  useInsureActions,
  useInsureProductSchemeAllList,
  useUserInsureProductSetting,
} from '@/hooks';
import UploadInsurePersonDialog from './UploadInsurePersonDialog.vue';
defineOptions({
  name: 'InsureOrderInfoView',
@@ -548,6 +560,38 @@
    }
  } catch (error) {}
}
const { getInsureProductIdByIdNumber } = useUserInsureProductSetting();
const { getInsureProductSchemeByCode } = useInsureProductSchemeAllList({
  insureProductId: computed(() => getInsureProductIdByIdNumber(detail.value.productIdNumber)),
});
function handleSupplySubmit() {
  handleSupplyAdd({
    serialNum: detail.value.serialNum,
    productIdNumber: detail.value.productIdNumber,
    productSchemeIdNumber: getInsureProductSchemeByCode(detail.value.productSchemeCode)?.idNumber,
    effectStartTime: dayjs().add(1, 'day').format('YYYY-MM-DD'),
  });
}
const {
  dialogProps: dialogSupplyProps,
  handleAdd: handleSupplyAdd,
  editForm: supplyForm,
} = useFormDialog({
  onConfirm: supplySubmit,
  defaultFormParams: {
    serialNum: '',
    url: [] as UploadUserFile[],
    productIdNumber: '',
    productSchemeIdNumber: '',
    effectStartTime: dayjs().add(1, 'day').format('YYYY-MM-DD'),
  },
});
// TODO 补提
async function supplySubmit() {}
</script>
<style lang="scss" scoped>
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,6 +49,7 @@
          placeholder="请输入批次号"
          v-model.trim="innerForm.serialNum"
          :maxlength="30"
          :disabled="isSupply"
        ></ProFormText>
      </ProFormItemV2>
      <ProFormItemV2
@@ -60,6 +63,7 @@
          value-format="YYYY-MM-DD"
          placeholder="请选择起保日期"
          :disabled-date="disabledStartDate"
          :disabled="isSupply"
        ></ProFormDatePicker>
      </ProFormItemV2>
      <ProFormItemV2
@@ -118,10 +122,12 @@
    productSchemeIdNumber: string;
    effectStartTime: string;
  };
  isSupply?: boolean;
};
const props = withDefaults(defineProps<Props>(), {
  modelValue: false,
  isSupply: false,
});
const emit = defineEmits<{