26 lines
938 B
JavaScript
26 lines
938 B
JavaScript
const FORBIDDEN_CODES = new Set(['403', 'A0403'])
|
|
const CONFLICT_CODES = new Set(['409', 'A0409', 'B0409'])
|
|
const VEHICLE_PLATE_REQUIRED = 'Vehicle plate is required before PDA push or picking'
|
|
|
|
export function toDispatchError(error, fallback = '排车作业失败') {
|
|
const code = String(error?.code || '')
|
|
const originalMessage = String(error?.message || '').trim()
|
|
let message = originalMessage || fallback
|
|
|
|
if (error?.network) {
|
|
message = '网络连接失败,请检查网络后重试,当前作业已保留'
|
|
} else if (FORBIDDEN_CODES.has(code)) {
|
|
message = '当前账号没有海外仓 PDA 作业权限,请联系管理员授权'
|
|
} else if (CONFLICT_CODES.has(code) && originalMessage === VEHICLE_PLATE_REQUIRED) {
|
|
message = '请先在平台维护车牌信息后再拣货'
|
|
}
|
|
|
|
return {
|
|
message,
|
|
code: error?.code,
|
|
requestId: error?.requestId,
|
|
traceId: error?.traceId,
|
|
network: Boolean(error?.network)
|
|
}
|
|
}
|