wupengfei
8 天以前 16621fd3bdb28fae887fd95bf61d0e5c7c65d121
src/views/Home/Home.vue
@@ -26,6 +26,15 @@
          </QueryFilterItem>
          <QueryFilterItem>
            <FieldRadio
              v-model="extraParamState.auditStatus"
              :value-enum="InsurancePolicyAuditStatusEnumText"
              buttonStyle
              showAllBtn
              @change="getList()"
            />
          </QueryFilterItem>
          <QueryFilterItem>
            <FieldRadio
              v-model="extraParamState.status"
              :value-enum="InsurancePolicyStatusEnumText"
              buttonStyle
@@ -47,11 +56,16 @@
          <el-button @click="handleDownload()" type="primary" style="margin-right: 10px" link
            >模板下载</el-button
          >
          <el-button @click="handleUpload()" type="primary" style="margin-right: 10px"
            >导入</el-button
            >导入投保人员</el-button
          >
          <!-- <el-button
            v-if="AppType === 'jx'"
            @click="handleUpload()"
            type="primary"
            style="margin-right: 10px"
            >大批量数据导入</el-button
          > -->
          <el-button @click="getInsurancePageExport()" type="primary" link>导出保单列表</el-button>
          <el-button @click="getInsuranceStaffPageExport()" type="primary" link
            >导出在保人员</el-button
@@ -68,6 +82,23 @@
          rowKey: 'id',
        }"
      >
        <template #auditStatus="{ row }">
          <el-tooltip
            class="box-item"
            effect="dark"
            :content="row.auditRemark"
            placement="top-start"
            v-if="row.auditStatus === InsurancePolicyAuditStatusEnum.Reject"
          >
            <div style="display: inline-flex; align-items: center; color: inherit">
              {{ InsurancePolicyAuditStatusEnumText[row.auditStatus] }}
              <el-icon size="16" color="#3a71ff"><QuestionFilled /></el-icon>
            </div>
          </el-tooltip>
          <el-text v-else style="color: inherit">
            {{ InsurancePolicyAuditStatusEnumText[row.auditStatus] }}
          </el-text>
        </template>
      </ProTableV2>
    </AppContainer>
    <UploadInsurePersonDialog v-bind="dialogProps" />
@@ -103,6 +134,10 @@
  insuranceTypeText,
  InsurancePolicyStatusEnumText,
  InsurancePolicyStatusEnum,
  AppType,
  InsurancePolicyAuditStatusEnumText,
  InsurancePolicyAuditStatusEnum,
  InsurancePolicyProductIdNumberEnum,
} from '@/constants';
import dayjs from 'dayjs';
import _ from 'lodash';
@@ -130,7 +165,9 @@
      onClick: (role) => handleBatch(role),
    },
    extraProps: {
      hide: (row: API.GetInsurancePageOutput) => row.status !== InsurancePolicyStatusEnum.Effecting,
      hide: (row: API.GetInsurancePageOutput) =>
        row.productIdNumber === InsurancePolicyProductIdNumberEnum.SJB ||
        row.status !== InsurancePolicyStatusEnum.Effecting,
    },
  },
  {
@@ -143,6 +180,8 @@
    },
    extraProps: {
      hide: (row: API.GetInsurancePageOutput) =>
        row.productIdNumber === InsurancePolicyProductIdNumberEnum.SJB ||
        row.auditStatus !== InsurancePolicyAuditStatusEnum.Pass ||
        row.status !== InsurancePolicyStatusEnum.WaitEffect,
    },
  },
@@ -155,10 +194,18 @@
      onClick: (role) => handleDownloadInsureFile(role),
    },
    extraProps: {
      hide: (row: API.GetInsurancePageOutput) =>
        row.status === InsurancePolicyStatusEnum.WaitEffect,
      hide: (row: API.GetInsurancePageOutput) => !row.insureBillUrl,
    },
  },
  // {
  //   data: {
  //     enCode: 'standarEndoBtn',
  //     name: '申请退保',
  //   },
  //   emits: {
  //     onClick: (role) => handleStandarEndo(role),
  //   },
  // },
]).filter(Boolean);
const BaseState = {
@@ -194,6 +241,7 @@
      creationDate: [] as unknown as ModelValueType,
      condition: '',
      status: '' as any as InsurancePolicyStatusEnum,
      auditStatus: '' as any as InsurancePolicyAuditStatusEnum,
      insurancePeriod: '',
    },
    columnsRenderProps: {
@@ -228,6 +276,7 @@
    condition: extraParamState.condition,
    insurancePeriod: extraParamState.insurancePeriod,
    status: extraParamState.status,
    auditStatus: extraParamState.auditStatus,
  };
  return params;
}
@@ -237,6 +286,7 @@
  defaultFormParams: {
    serialNum: '',
    url: [] as UploadUserFile[],
    productIdNumber: '',
  },
  closeAfterConfirm: false,
});
@@ -266,6 +316,7 @@
    let params: API.APIimportInsStaffToListParams = {
      serialNum: editForm.serialNum,
      url: editForm.url?.[0]?.path,
      productIdNumber: editForm.productIdNumber,
    };
    let res = await insuranceOrderServices.importInsStaffToList(params);
    if (res.length > 0) {
@@ -403,11 +454,37 @@
  });
}
function handleBatch(row: API.GetInsurancePageOutput) {
  if (
    dayjs(row.effectEndTime).isBefore(dayjs()) ||
    dayjs(row.effectEndTime).isSame(dayjs(), 'day')
  ) {
    Message.errorMessage('保险今天到期,无法批改');
    return;
  }
  router.push({
    name: 'BatchChange',
    params: {
      id: row.id,
    },
    query: {
      insurerName: row.insurerName ?? '',
      insureBillNo: row.insureBillNo ?? '',
      effectEndTime: row.effectEndTime ?? '',
    },
  });
}
async function handleStandarEndo(row: API.GetInsurancePageOutput) {
  try {
    await Message.deleteMessage('是否申请退保?');
    let params = {
      id: row.id,
    };
    // let res = await userServices.deleteRole(params);
    // if (res) {
    //   Message.successMessage('操作成功');
    //   getList(paginationState.pageIndex);
    // }
  } catch (error) {}
}
</script>