63 lines
1.5 KiB
TypeScript
63 lines
1.5 KiB
TypeScript
import { echartOptionProfixHandle, publicConfig } from '@/packages/public'
|
|
import { FunnelConfig } from './index'
|
|
import { CreateComponentType } from '@/packages/index.d'
|
|
import cloneDeep from 'lodash/cloneDeep'
|
|
import dataJson from './data.json'
|
|
|
|
export const includes = ['legend']
|
|
|
|
// 排序枚举
|
|
export const FunnelOrderEnumList = [
|
|
{ label: '倒三角', value: 'descending' },
|
|
{ label: '正三角', value: 'ascending' }
|
|
]
|
|
// 标签位置枚举
|
|
export const FunnelLabelPositionEnumList = [
|
|
{ label: '内部', value: 'inside' },
|
|
{ label: '外部', value: 'outside' },
|
|
{ label: '内部左侧', value: 'insideLeft' },
|
|
{ label: '内部右侧', value: 'insideRight' }
|
|
]
|
|
|
|
export const option = {
|
|
tooltip: {},
|
|
legend: {},
|
|
dataset: { ...dataJson },
|
|
series: [
|
|
{
|
|
name: 'Funnel',
|
|
type: 'funnel',
|
|
left: '10%',
|
|
width: '80%',
|
|
bottom: 10,
|
|
min: 0,
|
|
minSize: '0%',
|
|
maxSize: '100%',
|
|
sort: 'descending', // descending | ascending
|
|
gap: 5,
|
|
label: {
|
|
show: true,
|
|
position: 'inside',
|
|
fontSize: 12
|
|
},
|
|
itemStyle: {
|
|
borderColor: '#fff',
|
|
borderWidth: 0
|
|
},
|
|
emphasis: {
|
|
label: {
|
|
fontSize: 20
|
|
}
|
|
}
|
|
}
|
|
]
|
|
}
|
|
|
|
export default class Config extends publicConfig implements CreateComponentType {
|
|
public key: string = FunnelConfig.key
|
|
public chartConfig = cloneDeep(FunnelConfig)
|
|
|
|
// 图表配置项
|
|
public option = echartOptionProfixHandle(option, includes)
|
|
}
|