From b92625528c121b66d6b78dde173de3ebb51be0eb Mon Sep 17 00:00:00 2001 From: b2894lxlx <517289602@qq.com> Date: Sun, 27 Sep 2026 23:16:18 +0800 Subject: [PATCH] =?UTF-8?q?:zap:=20=E4=BC=98=E5=8C=96=E5=8C=BA=E5=88=92?= =?UTF-8?q?=E5=9B=BD=E5=AE=B6=E5=85=A5=E5=8F=A3=E3=80=81=E8=AE=A1=E5=88=92?= =?UTF-8?q?-1=E5=B1=95=E7=A4=BA=E3=80=81=E8=B7=AF=E7=BA=BF=E5=9C=B0?= =?UTF-8?q?=E5=9B=BE=E7=82=B9=E9=80=89=E4=B8=8E=E5=AF=B9=E8=B4=A6=E5=AF=BC?= =?UTF-8?q?=E5=87=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Cursor --- src/option/business/waybill-manage.js | 13 ++ src/views/base/region.vue | 15 +- .../components/business-crud-page.vue | 162 +++++--------- .../components/waybill-import-dialog.vue | 14 +- .../components/waybill-manage-page.vue | 209 +++++++++--------- src/views/business/loading-manage.vue | 134 ++--------- .../transport-reconciliation-editor.vue | 65 ++++++ 7 files changed, 275 insertions(+), 337 deletions(-) diff --git a/src/option/business/waybill-manage.js b/src/option/business/waybill-manage.js index e2b9760..3e2349d 100644 --- a/src/option/business/waybill-manage.js +++ b/src/option/business/waybill-manage.js @@ -738,6 +738,19 @@ export const option = { span: 6, order: 870, minWidth: 150, + formatter: row => { + const value = row?.planName; + if ( + value === undefined || + value === null || + value === '' || + String(value) === '-1' || + Number(value) === -1 + ) { + return ''; + } + return value; + }, }, { label: '货物类型', diff --git a/src/views/base/region.vue b/src/views/base/region.vue index 8b256ea..876d7b9 100644 --- a/src/views/base/region.vue +++ b/src/views/base/region.vue @@ -26,6 +26,7 @@ + @@ -42,6 +43,13 @@ + 新增国家 + { const list = Array.isArray(response) ? response : response?.data; - return (Array.isArray(list) ? list : []) - .filter(item => Number(item.dictKey) !== 0) - .map(item => ({ ...item, dictKey: Number(item.dictKey) })); + return (Array.isArray(list) ? list : []).map(item => ({ + ...item, + dictKey: Number(item.dictKey), + })); }, props: { label: 'dictValue', diff --git a/src/views/business/components/business-crud-page.vue b/src/views/business/components/business-crud-page.vue index 7498184..9378460 100644 --- a/src/views/business/components/business-crud-page.vue +++ b/src/views/business/components/business-crud-page.vue @@ -2909,14 +2909,15 @@ 原:{{ row.originalDepartureAddress || '-' }} - -
- 查询 -
- - -
@@ -5167,14 +5077,6 @@ export default { color: #606266; } } -.loading-common-address-dialog__toolbar { - display: flex; - gap: 8px; - margin-bottom: 12px; -} -.loading-common-address-dialog__toolbar .el-input { - flex: 1; -} :global(.loading-manage-form-page) { width: 100%; min-height: 100%; diff --git a/src/views/settlement/components/transport-reconciliation-editor.vue b/src/views/settlement/components/transport-reconciliation-editor.vue index 413d557..77eb1ce 100644 --- a/src/views/settlement/components/transport-reconciliation-editor.vue +++ b/src/views/settlement/components/transport-reconciliation-editor.vue @@ -127,6 +127,13 @@ 重置 查询 + 导出 import { mapGetters } from 'vuex'; +import * as XLSX from 'xlsx'; import * as api from '@/api/settlement/transportReconciliation'; import * as formalSettlementApi from '@/api/settlement/formalSettlement'; import { getDictionary } from '@/api/system/dictbiz'; @@ -1807,6 +1815,63 @@ export default { formatNumber(value) { return Number(value || 0).toFixed(2); }, + formatExportMoney(value) { + if (value === null || value === undefined || value === '' || Number(value) === -1) { + return ''; + } + return Number(value || 0).toFixed(2); + }, + formatInternalExportCell(row, column) { + if (column.prop === 'matchResult') return this.matchName(row.matchResult); + if (column.prop === 'updateResult') return this.updateName(row.updateResult); + if (column.prop === 'matchedExternalLineNo') { + return this.hasMatchedExternal(row) + ? this.formatMatchedExternalLineNo(row.matchedExternalLineNo) + : ''; + } + if (column.prop === 'transportType') return this.transportTypeLabel(row.transportType); + if (column.prop === 'transportQuantity') { + return row.transportQuantity === null || + row.transportQuantity === undefined || + row.transportQuantity === '' + ? '' + : Number(row.transportQuantity || 0).toFixed(2); + } + if (column.feeItemName) { + return this.formatExportMoney(this.getFeeItemAmount(row, column.feeItemName)); + } + if (column.prop === 'mileage') { + return Number(row.mileage) === -1 ? '' : this.formatExportMoney(row.mileage); + } + if (column.prop === 'actualDepartureTime' || column.prop === 'actualCompletionTime') { + const text = this.formatDate(row[column.prop]); + return text === '-' ? '' : text; + } + if (column.money || column.number) return this.formatExportMoney(row[column.prop]); + const value = row[column.prop]; + return value === null || value === undefined || value === '' ? '' : value; + }, + exportInternalDetails() { + if (!this.filteredInternalRows.length) { + this.$message.warning('暂无可导出的内部账单明细'); + return; + } + const rows = this.filteredInternalRows.map((row, index) => { + const result = { 序号: index + 1 }; + this.internalTableColumns.forEach(column => { + result[column.label] = this.formatInternalExportCell(row, column); + }); + return result; + }); + const workbook = XLSX.utils.book_new(); + XLSX.utils.book_append_sheet(workbook, XLSX.utils.json_to_sheet(rows), '内部账单明细'); + XLSX.writeFile( + workbook, + `${this.form.reconciliationNo || '运输对账'}内部账单明细${this.$dayjs().format( + 'YYYY-MM-DD HH-mm-ss' + )}.xlsx` + ); + }, }, };