<template>
|
<LoadingLayout :loading="isLoading">
|
<AppContainer>
|
<ProTableV2
|
:columns="InsureDownloadInvoiceColumns"
|
: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 { downloadFileByUrl, setOSSLink } from '@/utils';
|
import { InsureDownloadInvoiceColumns } from './constants';
|
|
defineOptions({
|
name: 'InsureDownloadInvoice',
|
});
|
|
const operationBtns = defineOperationBtns([
|
{
|
data: {
|
enCode: 'downloadBtn',
|
name: '下载',
|
},
|
emits: { onClick: (role) => handleDownload(role) },
|
extraProps: {
|
hide: (row: API.InsurancePolicyPayDto) => !row.invoiceDownloadOssUrl,
|
},
|
},
|
]);
|
|
const route = useRoute();
|
const id = route.params.id as string;
|
|
const { insurancePolicyPayList, isLoading } = useInsurancePolicyPay({ id: id });
|
|
const InsurancePolicyPayRenderProps: ProTableV2Props['columnRenderMap'] = {
|
invoicePlanFee: { type: 'money' },
|
};
|
|
function handleDownload(row: API.InsurancePolicyPayDto) {
|
downloadFileByUrl(setOSSLink(row.invoiceDownloadOssUrl));
|
}
|
</script>
|