quota-summary.js 1.24 KB
/**
 * 请假额度 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
}