import fetch from '@/utils/fetch'

const CACHES = {}

/**
 * 【查】 - 获取统计数据
 *
 * @returns
 */
export const findStatisticDataApi = async (fun, { noCatch, ...params } = {}) => {
  const module = window.__CHART_MODULE__
  const cacheKey = noCatch ? undefined : `${module}_${fun}_${JSON.stringify(params)}`

  if (cacheKey && CACHES[cacheKey]) return CACHES[cacheKey]

  const { data } = await fetch({ url: 'statistic', params: { module, fun, ...params } })

  if (cacheKey) CACHES[cacheKey] = data

  return data
}

/**
 * 上报数据
 *
 * @param {Object} data 存储数据
 * @param {string} data.type 数据类型
 * @param {string} data.page 上报页面
 *
 * @param {number?} data.id 上报记录ID，为空时创建，不为空时则修改
 * @param {string?} data.field01 备用字段
 * @param {string?} data.field02 备用字段
 * @param {string?} data.field03 备用字段
 * @param {string?} data.remarks 备注说明
 * @returns {Promise}
 */
export const reportDataApi = (data) =>
  fetch({ url: 'statistic/reportData', method: 'post', data: { ...data, page: location.href.split(location.host)[1] } })
