feat: 正式结算单详情新增开票发票查看下载(金蝶回写直链)
- 发票信息卡片内新增只读开票发票表格(issuedInvoices,金蝶A303-5回写) - 查看:数电PDF优先,退预览图/板式文件直链新窗口打开 - 下载:按直链扩展名命名,不经A801-2代理
This commit is contained in:
@@ -437,6 +437,30 @@
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
|
||||
<div v-if="issuedInvoices.length" class="formal-editor__issued-invoices">
|
||||
<div class="formal-editor__issued-title">
|
||||
开票发票(本结算单开票申请经金蝶开票回写,文件由金蝶发票云直链提供)
|
||||
</div>
|
||||
<el-table :data="issuedInvoices" border>
|
||||
<el-table-column type="index" label="序号" width="64" align="center" />
|
||||
<el-table-column prop="invoiceNo" label="发票号" min-width="150" align="center" />
|
||||
<el-table-column prop="invoiceDate" label="开票日期" min-width="130" align="center">
|
||||
<template #default="{ row }">{{ displayValue(row.invoiceDate) }}</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="invoiceAmount" label="价税合计" min-width="130" align="center">
|
||||
<template #default="{ row }">{{ formatMoney(row.invoiceAmount) }}</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="操作" width="160" align="center">
|
||||
<template #default="{ row }">
|
||||
<div class="formal-editor__links">
|
||||
<el-link type="primary" @click="viewIssuedInvoice(row)">查看</el-link>
|
||||
<el-link type="primary" @click="downloadIssuedInvoice(row)">下载</el-link>
|
||||
</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
</div>
|
||||
</section-card>
|
||||
|
||||
<kingdee-invoice-pool-dialog
|
||||
@@ -985,6 +1009,8 @@ export default {
|
||||
attachments: [],
|
||||
selectedAttachmentRows: [],
|
||||
invoices: [],
|
||||
// 开票申请经金蝶回写的发票结果(只读展示,含板式文件/数电PDF下载地址)
|
||||
issuedInvoices: [],
|
||||
invoiceClaimNo: '',
|
||||
invoiceClaimLoading: false,
|
||||
// 金蝶侧发票附件查看/下载进行中(行组级 loading 守卫)
|
||||
@@ -1206,6 +1232,7 @@ export default {
|
||||
this.attachments = this.parseAttachments(data.attachmentsJson);
|
||||
this.selectedAttachmentRows = [];
|
||||
this.invoices = data.invoices || [];
|
||||
this.issuedInvoices = data.issuedInvoices || [];
|
||||
this.sortAttachments();
|
||||
this.contracts = this.filterContracts(this.allContracts, this.form.projectId);
|
||||
},
|
||||
@@ -1235,6 +1262,7 @@ export default {
|
||||
this.attachments = [];
|
||||
this.selectedAttachmentRows = [];
|
||||
this.invoices = [];
|
||||
this.issuedInvoices = [];
|
||||
this.invoiceClaimNo = '';
|
||||
this.invoiceClaimDialog.visible = false;
|
||||
this.invoiceClaimDialog.selected = [];
|
||||
@@ -2406,6 +2434,30 @@ export default {
|
||||
if (!url) return this.$message.warning('当前发票暂无可下载附件');
|
||||
downloadFileByUrl(url, this.invoiceAttachmentName(row));
|
||||
},
|
||||
// 开票发票预览地址:数电PDF优先(OFD浏览器无法预览),退预览图、板式文件
|
||||
issuedInvoicePreviewUrl(row) {
|
||||
return row.invoicePdfFileUrl || row.invoiceImageUrl || row.invoiceFileUrl || '';
|
||||
},
|
||||
// 开票发票下载地址:数电PDF优先,退板式文件、数电XML
|
||||
issuedInvoiceDownloadUrl(row) {
|
||||
return row.invoicePdfFileUrl || row.invoiceFileUrl || row.invoiceXmlFileUrl || '';
|
||||
},
|
||||
// 下载文件名按直链扩展名推断(数电票 .pdf / 板式文件 .ofd|.pdf),缺省 .pdf
|
||||
issuedInvoiceFileName(row, url) {
|
||||
const match = String(url || '').split('?')[0].match(/\.([a-zA-Z0-9]+)$/);
|
||||
const extension = match ? `.${match[1].toLowerCase()}` : '.pdf';
|
||||
return `${row.invoiceNo || '发票'}${extension}`;
|
||||
},
|
||||
viewIssuedInvoice(row) {
|
||||
const url = this.issuedInvoicePreviewUrl(row);
|
||||
if (!url) return this.$message.warning('当前发票暂无可查看文件,可稍后重试开票结果同步');
|
||||
window.open(url, '_blank');
|
||||
},
|
||||
downloadIssuedInvoice(row) {
|
||||
const url = this.issuedInvoiceDownloadUrl(row);
|
||||
if (!url) return this.$message.warning('当前发票暂无可下载文件,可稍后重试开票结果同步');
|
||||
downloadFileByUrl(url, this.issuedInvoiceFileName(row, url));
|
||||
},
|
||||
buildSavePayload() {
|
||||
return {
|
||||
id: this.form.id,
|
||||
@@ -2887,6 +2939,14 @@ export default {
|
||||
.formal-editor__invoice-claim :deep(.el-input) {
|
||||
width: 360px;
|
||||
}
|
||||
.formal-editor__issued-invoices {
|
||||
margin-top: 16px;
|
||||
}
|
||||
.formal-editor__issued-title {
|
||||
margin-bottom: 8px;
|
||||
color: var(--el-text-color-secondary);
|
||||
font-size: 13px;
|
||||
}
|
||||
.formal-editor__negative-amount {
|
||||
color: var(--el-color-danger);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user