08335 / hivui-platform-template
hivui平台项目模板
Newer
Older
hivui-platform-template / project / hivuiBirt / funclib / LineUtil.js
/**
 * 线图工具类
 * @author cls
 * @date 2019-05-16
 */

/**
 * 转换成线图数据
 * @param {*} datas 预转换数据包[{},{}]
 * @param {*} groupByField string 分组字段名
 * @param {*} calcFields [{},{}] 计算字段名
 * 
 * @return [[series.data1],[series.data2]]
 */
export function convertLineData(datas, groupByField, calcFields) {
  let lineDatas = [];
  calcFields.forEach(item => {
    let seriesData = [];
    datas.forEach(recd => {
      let lineItem = {
        name: recd[groupByField],
        value: recd[item.name],
      }
      seriesData.push({
        ...recd,
        ...lineItem
      })
    });
    lineDatas.push(seriesData);
  })
  return lineDatas
}

/**
 * 是否生成多坐标,最多两个坐标轴(左,右)
 * @param {*} calcFields [{name:"fieldId",title:"字段名",summaryType:"统计类型",yAxsi:[true,false]}]
 */
export function yAxis(calcFields) {
  let yAxis = {
    type: "value"
  }
  for (var i = 0, l = calcFields.length; i < l; i++) {
    let field = calcFields[i];
    if (field.yAxis) {
      if (i === 0) {
        yAxis = [{
          name: field.title,
          type: "value"
        }]
      } else {
        yAxis.push({
          name: field.title,
          type: "value"
        })
      }
      if (yAxis.length > 1) break;
    }
  }
  return yAxis
}