import { echartOptionProfixHandle, PublicConfigClass } from '@/packages/public'
import { ScatterLogarithmicRegressionConfig } from './index'
import { CreateComponentType } from '@/packages/index.d'
import cloneDeep from 'lodash/cloneDeep'
import dataJson from './data.json'
export const includes = ['legend', 'xAxis', 'yAxis', 'grid']
export const option = {
dataset: dataJson,
tooltip: {
showDelay: 0,
formatter: (params: { value: string | any[]; seriesName: string; name: string }) => {
// console.log(params)
return params.value.length > 1
? `${params.seriesName}:
${params.value[0]} ${params.value[1]}`
: `${params.seriesName}:
${params.name} ${params.value}`
},
axisPointer: {
show: true,
type: 'cross',
lineStyle: {
type: 'dashed',
width: 1
}
}
},
legend: {
data: dataJson
.filter(i => i?.transform?.type === 'filter' && i?.transform?.config?.eq)
.map(i => i.transform?.config?.eq?.toString())
},
xAxis: {
show: true,
type: 'value',
splitLine: {
lineStyle: {
type: 'dashed'
}
}
},
yAxis: {
show: true,
type: 'value',
splitLine: {
lineStyle: {
type: 'dashed'
}
}
},
visualMap: {
show: false,
dimension: 2,
min: 20000,
max: 1500000000,
seriesIndex: [0, 1],
inRange: {
symbolSize: [10, 70]
}
},
series: [
{
type: 'scatter',
datasetIndex: 1
},
{
type: 'scatter',
datasetIndex: 2
},
{
type: 'line',
smooth: true,
datasetIndex: 3,
symbolSize: 0.1,
symbol: 'circle',
label: { show: true, fontSize: 16 },
labelLayout: { dx: -20 },
encode: { label: 2, tooltip: 1 }
}
]
}
export default class Config extends PublicConfigClass implements CreateComponentType {
public key = ScatterLogarithmicRegressionConfig.key
public chartConfig = cloneDeep(ScatterLogarithmicRegressionConfig)
// 图表配置项
public option = echartOptionProfixHandle(option, includes)
}