diff --git a/src/packages/components/Charts/Mores/Radar/config.ts b/src/packages/components/Charts/Mores/Radar/config.ts new file mode 100644 index 00000000..7dc5e880 --- /dev/null +++ b/src/packages/components/Charts/Mores/Radar/config.ts @@ -0,0 +1,49 @@ +import { echartOptionProfixHandle, publicConfig } from '@/packages/public' +import { RadarConfig } from './index' +import { CreateComponentType } from '@/packages/index.d' +import cloneDeep from 'lodash/cloneDeep' +import dataJson from './data.json' + +export const includes = ['legend'] + +// 雷达形状 +export const RadarShapeEnumList = [ + { label: '多边形', value: 'polygon' }, + { label: '圆形', value: 'circle' } +] + +export const option = { + tooltip: { + show: true + }, + legend: { + data: dataJson.seriesData.map(i => i.name) + }, + dataset: { ...dataJson }, + radar: { + shape: 'polygon', + splitArea: { show: true }, + splitLine: { show: true }, + axisName: { show: true, color: '#eee', fontSize: 12 }, + axisLine: { show: true }, + axisTick: { show: true }, + indicator: dataJson.radarIndicator + }, + series: [ + { + name: 'Budget vs spending', + type: 'radar', + areaStyle: { + opacity: 0.1 + }, + data: dataJson.seriesData + } + ] +} + +export default class Config extends publicConfig implements CreateComponentType { + public key = RadarConfig.key + public chartConfig = cloneDeep(RadarConfig) + // 图表配置项 + public option = echartOptionProfixHandle(option, includes) +} diff --git a/src/packages/components/Charts/Mores/Radar/config.vue b/src/packages/components/Charts/Mores/Radar/config.vue index 44a7bc22..1db8a6be 100644 --- a/src/packages/components/Charts/Mores/Radar/config.vue +++ b/src/packages/components/Charts/Mores/Radar/config.vue @@ -1,6 +1,67 @@ diff --git a/src/packages/components/Charts/Mores/Radar/data.json b/src/packages/components/Charts/Mores/Radar/data.json new file mode 100644 index 00000000..612a97fc --- /dev/null +++ b/src/packages/components/Charts/Mores/Radar/data.json @@ -0,0 +1,20 @@ +{ + "radarIndicator": [ + { "name": "Sales", "max": 6500 }, + { "name": "Administration", "max": 16000 }, + { "name": "Information Technology", "max": 30000 }, + { "name": "Customer Support", "max": 38000 }, + { "name": "Development", "max": 52000 }, + { "name": "Marketing", "max": 25000 } + ], + "seriesData": [ + { + "value": [4200, 3000, 20000, 35000, 50000, 18000], + "name": "Allocated Budget" + }, + { + "value": [5000, 14000, 28000, 26000, 42000, 21000], + "name": "Actual Spending" + } + ] +} diff --git a/src/packages/components/Charts/Mores/Radar/index.ts b/src/packages/components/Charts/Mores/Radar/index.ts index 8b330e3c..006f2e5d 100644 --- a/src/packages/components/Charts/Mores/Radar/index.ts +++ b/src/packages/components/Charts/Mores/Radar/index.ts @@ -1,5 +1,5 @@ import image from '@/assets/images/chart/charts/radar.png' -import { ConfigType, PackagesCategoryEnum } from '@/packages/index.d' +import { ConfigType, PackagesCategoryEnum, ChartFrameEnum } from '@/packages/index.d' import { ChatCategoryEnum, ChatCategoryEnumName } from '../../index.d' export const RadarConfig: ConfigType = { @@ -10,5 +10,6 @@ export const RadarConfig: ConfigType = { category: ChatCategoryEnum.MORE, categoryName: ChatCategoryEnumName.MORE, package: PackagesCategoryEnum.CHARTS, + chartFrame: ChartFrameEnum.COMMON, image } diff --git a/src/packages/components/Charts/Mores/Radar/index.vue b/src/packages/components/Charts/Mores/Radar/index.vue index 31fe77be..912d27e6 100644 --- a/src/packages/components/Charts/Mores/Radar/index.vue +++ b/src/packages/components/Charts/Mores/Radar/index.vue @@ -1,13 +1,59 @@ - - \ No newline at end of file