<template>
|
<LoadingLayout :loading="isLoading">
|
<AppContainer>
|
<ProTableV2
|
:columns="InsurancePolicyStampFilesColumns"
|
:operationBtns="operationBtns"
|
:tableData="insurancePolicyPayList"
|
:columnRenderMap="InsurancePolicyPayRenderProps"
|
>
|
</ProTableV2>
|
</AppContainer>
|
</LoadingLayout>
|
</template>
|
|
<script setup lang="ts">
|
import {
|
OperationBtnType,
|
ProTableV2,
|
LoadingLayout,
|
AppContainer,
|
useTable,
|
ProTableV2Props,
|
defineOperationBtns,
|
} from '@bole-core/components';
|
import { useAccess, useInsurancePolicyPay } from '@/hooks';
|
import { paginateList, downloadFileByUrl, setOSSLink, downloadFile } from '@/utils';
|
import { InsurancePolicyStampFilesColumns } from './constants';
|
import * as insuranceOrderServices from '@/services/api/InsuranceOrder';
|
|
defineOptions({
|
name: 'InsurancePolicyStampFiles',
|
});
|
|
const operationBtns = defineOperationBtns([
|
{
|
data: {
|
enCode: 'downloadBtn',
|
name: '下载',
|
},
|
emits: { onClick: (role) => handleDownload(role) },
|
extraProps: {
|
hide: (row: API.InsurancePolicyPayDto) => !row.policyOssUrl,
|
},
|
},
|
]);
|
|
const route = useRoute();
|
const id = route.params.id as string;
|
|
const { insurancePolicyPayList, isLoading } = useInsurancePolicyPay({ id: id });
|
|
const InsurancePolicyPayRenderProps: ProTableV2Props['columnRenderMap'] = {
|
sumSignPremium: { type: 'money' },
|
};
|
|
async function handleDownload(row: API.InsurancePolicyPayDto) {
|
try {
|
if (row.policyOssUrl) {
|
downloadFileByUrl(setOSSLink(row.policyOssUrl), `保单_${row.channelOrderNo}`);
|
} else {
|
let res = await insuranceOrderServices.downloadPolicyFileId({ id: row.id });
|
if (res) {
|
window.open(res, '_blank');
|
}
|
}
|
} catch (error) {}
|
}
|
</script>
|