2026-08-30 17:36:57 +08:00
|
|
|
|
const INTERNAL_ID_FIELD_PATTERN = /(?:taskId|inboundId|orderId|loadingPlanId|containerBookingId|任务ID|入库单ID|订单ID|装柜计划ID|柜次ID)\s*[:=:]?\s*[A-Za-z0-9_-]*/gi
|
|
|
|
|
|
const LONG_INTERNAL_NUMBER_PATTERN = /(^|[^A-Za-z0-9])\d{18,20}(?=$|[^A-Za-z0-9])/g
|
|
|
|
|
|
|
|
|
|
|
|
export function displayBusinessValue(value, missing = '—') {
|
|
|
|
|
|
const text = String(value ?? '').trim()
|
|
|
|
|
|
return text || missing
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2026-08-31 17:10:46 +08:00
|
|
|
|
export function containerReference(source = {}) {
|
|
|
|
|
|
const containerNo = [source?.currentContainerNo, source?.containerNo, source?.boxNo]
|
|
|
|
|
|
.map((value) => String(value ?? '').trim())
|
|
|
|
|
|
.find((value) => value && value !== '同步中') || ''
|
|
|
|
|
|
if (containerNo) return `集装箱号 ${containerNo}`
|
|
|
|
|
|
const cabinetNo = String(source?.cabinetNo ?? '').trim()
|
|
|
|
|
|
return cabinetNo ? `柜次号 ${cabinetNo}` : '集装箱号 —'
|
2026-08-30 17:36:57 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
export function sanitizeUserMessage(message, fallback = '操作失败') {
|
|
|
|
|
|
const raw = String(message ?? '').trim()
|
|
|
|
|
|
if (!raw) return fallback
|
|
|
|
|
|
if (/^internal server error$/i.test(raw)) return '服务端处理异常,请联系管理员'
|
|
|
|
|
|
const sanitized = raw
|
|
|
|
|
|
.replace(INTERNAL_ID_FIELD_PATTERN, '内部标识已隐藏')
|
|
|
|
|
|
.replace(LONG_INTERNAL_NUMBER_PATTERN, '$1内部标识已隐藏')
|
|
|
|
|
|
return sanitized || fallback
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
export function formatApiError(error, fallback = '操作失败') {
|
|
|
|
|
|
const message = sanitizeUserMessage(error?.message, fallback)
|
|
|
|
|
|
const code = String(error?.code ?? '').trim()
|
|
|
|
|
|
const requestId = String(error?.requestId ?? '').trim()
|
|
|
|
|
|
const traceId = String(error?.traceId ?? '').trim()
|
|
|
|
|
|
const evidence = [
|
|
|
|
|
|
code ? `错误码:${code}` : '',
|
|
|
|
|
|
requestId ? `requestId:${requestId}` : '',
|
|
|
|
|
|
traceId ? `traceId:${traceId}` : ''
|
|
|
|
|
|
].filter(Boolean)
|
|
|
|
|
|
return evidence.length ? `${message}(${evidence.join(';')})` : message
|
|
|
|
|
|
}
|