import Decimal from 'decimal.js';

/**
 * 将查询结果的表头信息格式化
 * */
export const formatColumns=(props)=>{
  let columns = [];
  try {
    if (props && props.length>0){
      columns = props.map(item=> (
        {
          title: item.name||item.nameEn,
          dataIndex: item.nameEn,
          key: item.nameEn,
          width: 100,
        }
      ))
    }
  }catch(e){}
  return columns
}

/**
 * 查询结果的维度信息格式化
 * */
export const formatDimensions=(props)=>{
  let dimensions = [];
  try {
    if (props && props.length>0){
      dimensions = props.map(item=> (
        {
          title: item.name,
          value: item.nameEn,
        }
      ))
    }
  }catch (e) {}
  return dimensions
}

/**
 * 查询结果的维度信息格式化
 * */
export const formatMetrics=(props)=>{
  let metrics = [];
  if (props && props.length>0){
    metrics = props.map(item=> (
      {
        title: item.name,
        value: item.nameEn,
        dataType: item.dataFormatType
      }
    ))
  }
  return metrics
}


/**
 * 格式化索引
 * */
export const formatIndex=(props)=> ( props && props.length>0 && props.map(item=> item.nameEn) ) || []


/**
 * 数据格式化
 * */
export const formatData=(data, dim, mtc, cat)=>(
  data && data.length>0 && mtc &&
  data.map(item=> {
    const mtcType = mtc.dataType;
    const mtcData = item[mtc?.value];
    const metric = mtcType==="PERCENT" && mtcData
      ? new Decimal(parseFloat(mtcData.replace('%', '')) / 100).toDP(4).toNumber()
      : new Decimal(mtcData||'0').toNumber()
    return {
      dimension:item[dim?.value],
      category:item[cat?.value],
      metric,
    }

  })
) || []