/** * 门户信封 { code, message, data } 的业务失败文案。 * HTTP 200 仍可能携带 code=400;code 缺失或非数字时视为裸 JSON。 * @param {unknown} data * @returns {string | null} */ export function portalBusinessErrorMessage(data) { if (!data || typeof data !== 'object' || Array.isArray(data)) return null if (!Object.prototype.hasOwnProperty.call(data, 'code')) return null const code = Number(data.code) if (!Number.isFinite(code) || code === 200 || code === 0) return null const message = typeof data.message === 'string' ? data.message.trim() : '' const msg = typeof data.msg === 'string' ? data.msg.trim() : '' return message || msg || '请求失败' }