zhengyiming
4 天以前 d54c9c48c0b4f7c609e0aa65671a6c3fd26f94b4
src/views/Home/components/InsureOrderInfoView.vue
@@ -11,7 +11,7 @@
                  <el-button
                    type="primary"
                    link
                    @click="handleGoStampFiles"
                    @click="handleGoStampFiles(id)"
                    v-if="detail.productOnline && detail.anyPayComplete"
                    >详情</el-button
                  >
@@ -75,7 +75,10 @@
        </ProForm>
      </ChunkCell>
      <ChunkCell title="人员信息" class="full-table-chunk">
        <template #titleRight v-if="detail.status !== InsurancePolicyStatusEnum.WaitEffect">
        <template
          #titleRight
          v-if="detail.status !== InsurancePolicyStatusEnum.WaitEffect && !detail.productOnline"
        >
          <el-button type="primary" @click="handleBatchChange">批改申请</el-button>
        </template>
        <ProTableQueryFilterBar @on-reset="reset">
@@ -92,12 +95,12 @@
          </template>
          <template #btn>
            <template v-if="detail.status === InsurancePolicyStatusEnum.WaitEffect">
              <el-button @click="handleTemplateDownload()" link type="primary">模板下载</el-button>
              <template v-if="!detail.productOnline">
                <el-button @click="handleTemplateDownload()" link type="primary"
                  >模板下载</el-button
                >
              <BlFileUpload
                v-if="
                  detail.auditStatus !== InsurancePolicyAuditStatusEnum.Pass &&
                  !detail.productOnline
                "
                  v-if="detail.auditStatus !== InsurancePolicyAuditStatusEnum.Pass"
                :limitFileSize="10"
                accept="xls,xlsx"
                :showTip="false"
@@ -109,17 +112,24 @@
                  <el-button icon="Plus" type="primary">导入</el-button>
                </template>
              </BlFileUpload>
              <el-button @click="handleClear()" type="primary">导出投保错误人员清单</el-button>
              <el-button @click="handleClear()" type="primary">清空数据</el-button>
            </template>
            <template v-else>
              <el-button @click="handleDownloadPerson()" type="primary">下载人员清单</el-button>
              <template v-if="detail.productOnline">
                <el-button v-if="detail.anyPayComplete" @click="handleGoStampFiles()" type="primary"
                  >下载保单</el-button
                >
              </template>
              <el-button v-else @click="handleDownloadOrder()" type="primary">下载保单</el-button>
            <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>
                <el-button @click="handleDownloadOrder()" type="primary">下载保单</el-button>
              </template>
            </template>
          </template>
        </ProTableQueryFilterBar>
@@ -170,6 +180,7 @@
  InsurancePolicyStatusEnumText,
  InsurancePolicyAuditStatusEnum,
  InsuranceDetailStatusEnumText,
  InsuranceDetailStatusEnum,
} from '@/constants';
import ChangePersonInfoDialog from './ChangePersonInfoDialog.vue';
import InsureClaimDetailDialog from './InsureClaimDetailDialog.vue';
@@ -179,6 +190,7 @@
import { downloadFile, downloadFileByUrl, Message, OrderInputType } from '@bole-core/core';
import { setOSSLink } from '@/utils';
import dayjs from 'dayjs';
import { useInsureActions } from '@/hooks';
defineOptions({
  name: 'InsureOrderInfoView',
@@ -428,36 +440,11 @@
  } catch (error) {}
}
async function handleDownloadPerson() {
  try {
    if (paginationState.total === 0) {
      Message.warnMessage('没有数据可以导出哦~');
      return;
    }
    let res = await insuranceOrderServices.getInsuranceStaffListExport(
      { id: id },
      {
        responseType: 'blob',
        getResponse: true,
      }
    );
    if (res) {
      downloadFile(res.data, `人员清单`, 'xlsx');
    }
  } catch (error) {}
}
function handleDownloadOrder() {
  downloadFileByUrl(setOSSLink(detail.value?.insureBillUrl));
}
function handleGoStampFiles() {
  router.push({
    name: 'InsurancePolicyStampFiles',
    params: {
      id: id,
    },
  });
}
const { handleGoDownloadInvoice, handleGoStampFiles } = useInsureActions();
function handleBatchChange() {
  if (
@@ -542,6 +529,25 @@
    });
  } catch (error) {}
}
async function handleExport(status: InsuranceDetailStatusEnum) {
  try {
    if (paginationState.total === 0) {
      Message.warnMessage('没有数据可以导出哦~');
      return;
    }
    let res = await insuranceOrderServices.getInsuranceStaffListExport(
      { insurancePolicyId: id, status: status },
      {
        responseType: 'blob',
        getResponse: true,
      }
    );
    if (res) {
      downloadFile(res.data, `人员清单`, 'xlsx');
    }
  } catch (error) {}
}
</script>
<style lang="scss" scoped>