From b2a6d73bacbe673b46ef8dfe7d5bbf18b5a2233b Mon Sep 17 00:00:00 2001 From: weicw1996 Date: Fri, 16 Oct 2026 12:10:47 +0800 Subject: [PATCH 01/14] =?UTF-8?q?:bug:=20=E4=BF=AE=E5=A4=8D=E5=AF=BC?= =?UTF-8?q?=E5=85=A5=E8=BF=90=E5=8D=95=E6=98=8E=E7=BB=86=E9=87=8D=E8=BD=BD?= =?UTF-8?q?=E5=90=8E=E5=AE=9E=E9=99=85/=E9=A2=84=E8=AE=A1=E6=97=B6?= =?UTF-8?q?=E9=97=B4=E5=88=97=E4=B8=BA=E7=A9=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 明细接口返回运单实体字段 startDate/endDate/estimatedStartTime/estimatedEndTime, 明细表与编辑回填按导入列字段名 actualStartDate 等读取,重载后统一在 normalizeDetailRow 对齐。 --- .../business/components/waybill-import-dialog.vue | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/views/business/components/waybill-import-dialog.vue b/src/views/business/components/waybill-import-dialog.vue index 3645750..5db574c 100644 --- a/src/views/business/components/waybill-import-dialog.vue +++ b/src/views/business/components/waybill-import-dialog.vue @@ -1348,11 +1348,23 @@ const formatOptionalNumber = value => { const normalized = normalizeOptionalImportNumber(value); return normalized === null || normalized === undefined ? '' : normalized; }; +// 明细接口返回运单实体字段 startDate/endDate/estimatedStartTime/estimatedEndTime, +// 而明细表与编辑回填按导入列字段名 actualStartDate 等读取,重载后在此对齐,否则实际/预计时间列为空。 +const detailDateAliases = { + actualStartDate: 'startDate', + actualEndDate: 'endDate', + planStartDate: 'estimatedStartTime', + planEndDate: 'estimatedEndTime', +}; const normalizeDetailRow = row => { const next = { ...(row || {}) }; OPTIONAL_NUMBER_PROPS.forEach(prop => { next[prop] = formatOptionalNumber(next[prop]); }); + Object.entries(detailDateAliases).forEach(([prop, source]) => { + if (String(next[prop] ?? '').trim()) return; + if (String(next[source] ?? '').trim()) next[prop] = next[source]; + }); return next; }; const normalizeImportRow = row => ({ From 91cb3ee8c24c2eb7425eea839426cbf238d3adc6 Mon Sep 17 00:00:00 2001 From: weicw1996 Date: Fri, 16 Oct 2026 12:57:14 +0800 Subject: [PATCH 02/14] =?UTF-8?q?:bug:=20=E4=BF=AE=E5=A4=8D=E8=BF=90?= =?UTF-8?q?=E8=BE=93=E8=AE=A1=E5=88=92=E8=B0=83=E5=BA=A6=E7=A1=AE=E8=AE=A4?= =?UTF-8?q?=E7=94=9F=E6=88=90=E4=BB=8D=E5=BC=BA=E5=88=B6=E6=A0=A1=E9=AA=8C?= =?UTF-8?q?=E5=8F=B8=E6=9C=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/business/transport-plan-dispatch.vue | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/src/views/business/transport-plan-dispatch.vue b/src/views/business/transport-plan-dispatch.vue index 1005f0f..6acc086 100644 --- a/src/views/business/transport-plan-dispatch.vue +++ b/src/views/business/transport-plan-dispatch.vue @@ -577,10 +577,7 @@ export default { this.$message.warning(`第${index + 1}条调度明细缺少承运商信息`); return; } - if (!row.driverName) { - this.$message.warning(`第${index + 1}条调度明细缺少司机信息`); - return; - } + // 司机是否必填由调度明细弹窗按承运类型判定(承运商承运时司机选填),此处不再重复校验 if (!row.vehicleNo) { this.$message.warning(`第${index + 1}条调度明细缺少车牌号`); return; From 6d80ffde6c781e0c38c9accd09fe213b0bce2711 Mon Sep 17 00:00:00 2001 From: weicw1996 Date: Sat, 17 Oct 2026 12:38:17 +0800 Subject: [PATCH 03/14] =?UTF-8?q?:sparkles:=20=E8=AE=A4=E8=AF=81=E5=AE=A1?= =?UTF-8?q?=E6=A0=B8=E5=AF=B9=E6=AF=94=E8=A1=A5=E5=85=85=E5=87=BA=E7=94=9F?= =?UTF-8?q?=E5=B9=B4=E6=9C=88=E4=B8=8E=E4=BD=8F=E5=9D=80=E5=AD=97=E6=AE=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 审核对比的字段元数据加上 birthday / addressRegion / address:司机端本次新提交 的这几项若不登记,审核页既不展示也 diff 不出改动,审核员等于在不知情下通过。 --- src/utils/cert-audit.js | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/utils/cert-audit.js b/src/utils/cert-audit.js index 331eced..3448596 100644 --- a/src/utils/cert-audit.js +++ b/src/utils/cert-audit.js @@ -106,6 +106,9 @@ const CERT_SNAPSHOT_GROUPS = { fields: [ { key: 'realName', label: '真实姓名' }, { key: 'idCardNo', label: '身份证号' }, + { key: 'birthday', label: '出生年月', type: TYPE_DATE }, + { key: 'addressRegion', label: '住址-区划' }, + { key: 'address', label: '住址-详细地址' }, { key: 'idCardFrontUrl', label: '身份证正面照', type: TYPE_IMAGE }, { key: 'idCardBackUrl', label: '身份证反面照', type: TYPE_IMAGE }, { key: 'idCardValidStart', label: '身份证有效期起', type: TYPE_DATE }, From 2ae817ec38af9f17837554a8ded86540d8f20f4b Mon Sep 17 00:00:00 2001 From: weicw1996 Date: Sun, 18 Oct 2026 12:15:07 +0800 Subject: [PATCH 04/14] =?UTF-8?q?:sparkles:=20=E8=BF=90=E5=8D=95=E7=AE=A1?= =?UTF-8?q?=E7=90=86=E6=96=B0=E5=A2=9E=E3=80=8C=E7=A1=AE=E8=AE=A4=E5=9B=9E?= =?UTF-8?q?=E5=8D=95=E3=80=8D=E8=A1=8C=E6=93=8D=E4=BD=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 回单节点配成「需业务员确认」时,运单会一直停在进行中等人确认,此前后台没有这个入口。 在与「完成」并列的位置加一个「确认回单」行操作:只在进行中的运单上出现,沿用「完成」的 权限码(它比完成更严——后端还要校验司机打卡节点齐全且无未了结异常,故不会多开出任何权限)。 确认后不可撤销,提示里写明。 --- src/api/business/waybill-manage.js | 7 ++++++ src/option/business/waybill-manage.js | 2 +- .../components/waybill-manage-page.vue | 24 ++++++++++++++++++- 3 files changed, 31 insertions(+), 2 deletions(-) diff --git a/src/api/business/waybill-manage.js b/src/api/business/waybill-manage.js index ac31975..e90982c 100644 --- a/src/api/business/waybill-manage.js +++ b/src/api/business/waybill-manage.js @@ -14,6 +14,13 @@ export const cancel = api.cancel; export const reassign = api.reassign; export const complete = api.complete; export const batchComplete = api.batchComplete; +/** 确认回单:回单节点配成「需业务员确认」时用;后端校验司机打卡节点齐全且无未了结异常后才置完成 */ +export const confirmReturn = id => + request({ + url: `${baseUrl}/confirm-return`, + method: 'post', + params: { id }, + }); export const changeRoute = data => request({ url: `${baseUrl}/change-route`, diff --git a/src/option/business/waybill-manage.js b/src/option/business/waybill-manage.js index 9f617d3..a86078d 100644 --- a/src/option/business/waybill-manage.js +++ b/src/option/business/waybill-manage.js @@ -471,7 +471,7 @@ export const config = { endDateRange: ['endDateStart', 'endDateEnd'], createTimeRange: ['createTimeStart', 'createTimeEnd'], }, - actions: ['copy', 'cancel', 'reassign', 'complete', 'batchComplete'], + actions: ['copy', 'cancel', 'reassign', 'complete', 'batchComplete', 'confirmReturn'], detailButton: true, statusProp: 'businessStatus', statusTextProp: 'businessStatusName', diff --git a/src/views/business/components/waybill-manage-page.vue b/src/views/business/components/waybill-manage-page.vue index dad89a3..9cb1a3d 100644 --- a/src/views/business/components/waybill-manage-page.vue +++ b/src/views/business/components/waybill-manage-page.vue @@ -1594,6 +1594,13 @@ {{ completeActionLabel }} + + 确认回单 + 维护里程 @@ -5113,6 +5120,15 @@ export default { const status = this.statusValue(row); return status === 'processing' || status === 'running'; }, + canConfirmReturn(row) { + return ( + this.hasAction('confirmReturn') && + this.hasPermission(`${this.config.permission}_complete`) && + !this.readonlyScope && + !row.readonly && + this.statusValue(row) === 'running' + ); + }, canMaintainMileage(row) { return ( this.config.permission === 'waybill_manage' && @@ -10150,8 +10166,14 @@ export default { cancel: '取消', complete: this.completeActionLabel, reassign: '重新派单', + confirmReturn: '确认回单', }[action]; - this.$confirm(`确定${actionName}该${this.config.title}?`, '提示', { + // 确认回单是终态动作(本轮不做撤销),把后果写在提示里,别让人以为还能退回 + const confirmText = + action === 'confirmReturn' + ? '确认回单后该运单将置为已完成,且不可撤销。是否继续?' + : `确定${actionName}该${this.config.title}?`; + this.$confirm(confirmText, '提示', { confirmButtonText: '确定', cancelButtonText: '取消', type: 'warning', From 847f09b14d7b86e9978b9fc9a08a96a1a6ab29ea Mon Sep 17 00:00:00 2001 From: weicw1996 Date: Sun, 18 Oct 2026 14:51:33 +0800 Subject: [PATCH 05/14] =?UTF-8?q?:recycle:=20=E8=BF=90=E5=8D=95=E7=AE=A1?= =?UTF-8?q?=E7=90=86=E5=85=AC=E8=B7=AF=E9=85=8D=E8=BD=BD=E6=94=B9=E7=94=A8?= =?UTF-8?q?=E5=8F=AF=E9=85=8D=E8=BD=BD=E6=9F=A5=E8=AF=A2=E5=9B=9E=E6=9F=A5?= =?UTF-8?q?=E5=B9=B6=E6=B8=85=E7=90=86=E8=87=AA=E9=80=A0=E5=88=A4=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../components/business-crud-page.vue | 16402 ---------------- .../components/waybill-manage-page.vue | 47 +- src/views/business/loading-manage.vue | 51 +- 3 files changed, 68 insertions(+), 16432 deletions(-) delete mode 100644 src/views/business/components/business-crud-page.vue diff --git a/src/views/business/components/business-crud-page.vue b/src/views/business/components/business-crud-page.vue deleted file mode 100644 index 115eb11..0000000 --- a/src/views/business/components/business-crud-page.vue +++ /dev/null @@ -1,16402 +0,0 @@ - -