/** * 请假额度 QuotaSummary 接口解析(兼容 RESTful 包装、PascalCase、字符串 JSON) * 与小程序 `service/quota-summary.js` 保持一致,避免 PC 与移动端额度结构不一致。 * 注意:此处避免使用 ?? 等语法,以兼容当前 webpack/babel 对部分 .js 的转译配置。 */ export function extractQuotaSummaryPayload(res) { if (!res || typeof res !== 'object') return null var code = res.code != null ? res.code : res.Code var ok = Number(code) === 200 || code === 200 || code === '200' var raw = res.data != null ? res.data : res.Data if (typeof raw === 'string') { try { raw = JSON.parse(raw) } catch (e) { raw = null } } if (raw && typeof raw === 'object' && raw.paid === undefined && raw.Paid === undefined) { var inner = raw.data != null ? raw.data : raw.Data if ( inner && typeof inner === 'object' && (inner.paid !== undefined || inner.Paid !== undefined || inner.serverDate !== undefined || inner.ServerDate !== undefined) ) { raw = inner } } if (ok && raw !== undefined && raw !== null) return raw if (res.paid !== undefined || res.Paid !== undefined) return res if (raw !== undefined && raw !== null) return raw return null }