Files
pda-uniapp/utils/user-facing.js
T
2026-08-31 17:10:46 +08:00

40 lines
1.7 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
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
}
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}` : '集装箱号 —'
}
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
}