utils-echart
Version:
Echart component
118 lines (113 loc) • 2.82 kB
text/typescript
import { val } from "../methods/methods";
/** 雷达图 */
export class Radar {
/**
* 获取雷达图数据
* @param name 名称
* @param indicatorName 指示器名称
* @param max 指示器最大值
* @param range 数据范围
* @returns obj
*/
static getRadarData(name: string[], indicatorName: string[], max: number[], range?: number[]) {
const obj = {
indicator: [] as any[],
data: [] as any[],
};
const r = range ? range : [10, 100];
let n: number[] = [];
// series
name.forEach((e) => {
n = [];
indicatorName.forEach(() => {
n.push(Math.round(Math.random() * (r[1] - r[0]) + r[0]));
});
obj.data.push({
value: n,
name: e,
});
});
// indicator
indicatorName.forEach((e, index) => {
obj.indicator.push({
name: e,
max: max[index] ? max[index] : max[0],
});
});
return obj;
}
/**
* 雷达图0
* @param obj 数据
* @param colorArr 颜色组
* @param areaColor 区域颜色
* @returns option
*/
static radar0(obj: any, colorArr?: any, areaColor?: any) {
const _colorArr = colorArr ? colorArr : val("colorData");
const _areaColor = areaColor ? areaColor : val("colorData")[0];
const option = {
backgroundColor: val("backgroundColor"),
color: _colorArr,
grid: val("grid"),
tooltip: {
trigger: "axis",
},
radar: {
indicator: obj.indicator,
},
series: [
{
type: "radar",
areaStyle: {
color: _areaColor,
},
data: obj.data,
},
],
};
return option;
}
/**
* 雷达图1
* @param obj 数据
* @param areaColor 区域颜色
* @param shadowColor 阴影颜色
* @returns option
*/
static radar1(obj: any, areaColor?: any, shadowColor?: any) {
const _areaColor = areaColor ? areaColor : val("colorData")[0];
const shadow_color = shadowColor ? shadowColor : val("colorData")[1];
const option: any = {
backgroundColor: val("backgroundColor"),
grid: val("grid"),
tooltip: {
trigger: "axis",
},
radar: {
indicator: obj.indicator,
},
series: [
{
type: "radar",
areaStyle: {
shadowOffsetX: 10,
color: _areaColor,
shadowColor: shadow_color,
},
lineStyle: {
width: 0,
},
itemStyle: {
opacity: 0,
},
tooltip: {
trigger: "item",
},
data: obj.data,
},
],
};
return option;
}
}