调整业务模块

This commit is contained in:
2026-09-07 10:05:32 +08:00
parent 6a6d10dc79
commit 0d070d4b34
16 changed files with 264 additions and 157 deletions
+5 -26
View File
@@ -169,8 +169,8 @@
<script>
import { ArrowDown, ArrowUp } from '@element-plus/icons-vue';
import { mapGetters } from 'vuex';
import * as XLSX from 'xlsx';
import { createSettlementTransfer } from '@/utils/settlement-transfer';
import { downloadFile } from '@/utils/util';
import * as api from '@/api/settlement/formalSettlement';
import * as paymentApi from '@/api/payment/paymentApplication';
import {
@@ -503,31 +503,10 @@ export default {
win.document.close();
},
async handleExport() {
const response = await api.getList(1, 100000, this.buildQueryParams());
const data = this.unwrapData(response);
const rows = (data.records || []).map(item => ({
结算单号: item.formalSettlementNo,
预结算单号: item.preSettlementNos,
来源: item.sourceType,
付款方: item.payerName,
收款方: item.payeeName,
项目名称: item.projectName,
所属组织: item.deptName,
合同编号: item.contractNo,
合同名称: item.contractName,
原币结算金额: item.settlementAmount,
本位币结算金额: item.localSettlementAmount,
结算汇率: item.exchangeRate,
发票状态: this.invoiceName(item.invoiceStatus, item.settlementType),
收付款状态: this.paymentName(item.paymentStatus),
审核状态: item.approvalStatusName,
金蝶单据号: item.kingdeeBillNo,
创建人: item.createUserName,
创建时间: item.createTime,
}));
const workbook = XLSX.utils.book_new();
XLSX.utils.book_append_sheet(workbook, XLSX.utils.json_to_sheet(rows), '正式结算单');
XLSX.writeFile(workbook, `正式结算单${this.$dayjs().format('YYYY-MM-DD HH-mm-ss')}.xlsx`);
const params = this.buildQueryParams();
if (this.selection.length) params.ids = this.selection.map(item => item.id).join(',');
const { data } = await api.exportList(params);
downloadFile(data, `正式结算单${this.$dayjs().format('YYYY-MM-DD HH-mm-ss')}.xlsx`);
},
buildQueryParams() {
// 所属组织级联返回 id 路径,转成组织名称传给后端(用副本,避免污染搜索框回显)
+3 -1
View File
@@ -622,7 +622,9 @@ export default {
)}</div></div><h2>结算合计</h2><table><thead><tr><th>序号</th><th>费用类型</th><th>费用项</th><th>原金额</th><th>调整金额</th><th>结算金额</th></tr></thead><tbody>${summaryRows}</tbody></table><div class="actions"><button onclick="window.print()">打印 / 另存为 PDF</button></div></body></html>`;
},
async handleExport() {
const { data } = await exportList(this.buildQuery());
const params = this.buildQuery();
if (this.selection.length) params.ids = this.selection.map(item => item.id).join(',');
const { data } = await exportList(params);
downloadFile(data, `预结算单${this.$dayjs().format('YYYY-MM-DD HH-mm-ss')}.xlsx`);
},
openFlow(row) {
@@ -93,7 +93,7 @@
<script>
import { ArrowDown, ArrowUp, Refresh } from '@element-plus/icons-vue';
import { mapGetters } from 'vuex';
import * as XLSX from 'xlsx';
import { downloadFile } from '@/utils/util';
import * as api from '@/api/settlement/transportReconciliation';
import { transportReconciliationSearchFields } from '@/option/settlement/transportReconciliationSearch';
import { transportReconciliationTableColumns } from '@/option/settlement/transportReconciliationTable';
@@ -217,30 +217,13 @@ export default {
this.loadTable();
},
async handleExport() {
const response = await api.getList(1, 100000, {
...this.query,
const params = {
...this.normalizeOrganizationSearch({ ...this.query }, 'deptName'),
settlementType: this.settlementType,
});
const data = response?.data?.data || response?.data || response || {};
const exportRows = (data.records || []).map(item => ({
对账单号: item.reconciliationNo,
付款方: item.payerName,
收款方: item.payeeName,
项目名称: item.projectName,
所属组织: item.deptName,
合同编号: item.contractNo,
合同名称: item.contractName,
结算金额: Number(item.settlementAmount || 0).toFixed(2),
对账模式: item.reconciliationModeName,
账单总数: item.externalBillCount,
匹配数: item.matchedCount,
对账状态: item.reconciliationStatusName,
创建人: item.createUserName,
创建时间: item.createTime,
}));
const workbook = XLSX.utils.book_new();
XLSX.utils.book_append_sheet(workbook, XLSX.utils.json_to_sheet(exportRows), '运输对账');
XLSX.writeFile(workbook, `运输对账${this.$dayjs().format('YYYY-MM-DD HH-mm-ss')}.xlsx`);
};
if (this.selection.length) params.ids = this.selection.map(item => item.id).join(',');
const { data } = await api.exportList(params);
downloadFile(data, `运输对账${this.$dayjs().format('YYYY-MM-DD HH-mm-ss')}.xlsx`);
},
isEditable(row) {
return row.reconciliationStatus === 'unfinished';