From e251a1c57089424788d3471429289a2e5412c406 Mon Sep 17 00:00:00 2001 From: ouyangxq <775153912@qq.com> Date: Fri, 9 Oct 2026 17:36:40 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- output/gray-h5-scan/gray-release-candidate.json | 16 ++++++++++++++++ src/utils/dispatch-error.js | 4 +++- tests/fulfillment-workflows.test.mjs | 10 ++++++++++ 3 files changed, 29 insertions(+), 1 deletion(-) create mode 100644 output/gray-h5-scan/gray-release-candidate.json diff --git a/output/gray-h5-scan/gray-release-candidate.json b/output/gray-h5-scan/gray-release-candidate.json new file mode 100644 index 0000000..d2c4f50 --- /dev/null +++ b/output/gray-h5-scan/gray-release-candidate.json @@ -0,0 +1,16 @@ +{ + "base": "3133aac01953a2b7034517171cb098148407cd6e", + "commit": "a7388914cdd1ae654efa08867edb51fc4e0b6e5c", + "files": [ + "src/pages/dispatch/dispatch.vue", + "src/utils/dispatch-error.js", + "tests/fulfillment-workflows.test.mjs" + ], + "supersedes": "cf984ab4812d64b33e1ad2c98bc2804a272c6c77", + "deployed": false, + "checks": { + "tests": 215, + "h5Build": "PASS", + "browser": "local corrected H5 with gray API" + } +} diff --git a/src/utils/dispatch-error.js b/src/utils/dispatch-error.js index df1d285..acd9aac 100644 --- a/src/utils/dispatch-error.js +++ b/src/utils/dispatch-error.js @@ -7,7 +7,9 @@ export function toDispatchError(error, fallback = '排车作业失败') { const originalMessage = String(error?.message || '').trim() let message = originalMessage || fallback - if (FORBIDDEN_CODES.has(code)) { + if (error?.network) { + message = '网络连接失败,请检查网络后重试,当前作业已保留' + } else if (FORBIDDEN_CODES.has(code)) { message = '当前账号没有海外仓 PDA 作业权限,请联系管理员授权' } else if (CONFLICT_CODES.has(code) && originalMessage === VEHICLE_PLATE_REQUIRED) { message = '请先在平台维护车牌信息后再拣货' diff --git a/tests/fulfillment-workflows.test.mjs b/tests/fulfillment-workflows.test.mjs index fef2092..a498fdd 100644 --- a/tests/fulfillment-workflows.test.mjs +++ b/tests/fulfillment-workflows.test.mjs @@ -11,6 +11,16 @@ import { import { session } from '../src/stores/session.js' import { toDispatchError } from '../src/utils/dispatch-error.js' +test('dispatch network failures show recovery guidance and retain diagnostics', () => { + const error = toDispatchError({ message: 'request:fail', network: true, code: 'NETWORK_ERROR', requestId: 'network-request', traceId: 'network-trace' }) + assert.equal(error.message, '网络连接失败,请检查网络后重试,当前作业已保留') + assert.equal(error.network, true) + assert.equal(error.code, 'NETWORK_ERROR') + assert.equal(error.requestId, 'network-request') + assert.equal(error.traceId, 'network-trace') + assert.equal(toDispatchError({ message: '业务校验失败' }).message, '业务校验失败') +}) + const read = (path) => readFile(new URL(path, import.meta.url), 'utf8') test('dispatch merge retains return carton picking and review gates together', async () => {