diff --git a/src/packages/components/Charts/Bars/Bar3d/config.ts b/src/packages/components/Charts/Bars/Bar3d/config.ts new file mode 100644 index 0000000..54ddf9f --- /dev/null +++ b/src/packages/components/Charts/Bars/Bar3d/config.ts @@ -0,0 +1,79 @@ +import { echartOptionProfixHandle, PublicConfigClass } from '@/packages/public' +import { Bar3DConfig } 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', 'dataZoom'] +export const seriesItem = { + type: 'bar', + barWidth: 19, + + itemStyle: { + color: { + type: 'linear', + x: 0, + y: 1, + x2: 0, + y2: 0, + colorStops: [ + { offset: 0, color: '#01c5ff' }, // 底部颜色(深蓝) + { offset: 1, color: '#fbff01ff' } // 顶部颜色(浅蓝) + ] + }, + borderRadius: 2 + }, + +} +export const option = { + tooltip: { + show: false, + trigger: 'axis', + axisPointer: { + show: false, + type: 'shadow' + } + }, + legend: { + show: false // 新增或修改这行,隐藏图例(即“当日作业情况”文字和旁边的小点) + }, + xAxis: { + show: false, + type: 'category' + }, + yAxis: { + show: false, + type: 'value', + min: 0, + max: 100, + interval: 25 + }, + dataZoom: [ + { + show: false, + height: 15, + start: 0, + end: 100 + }, + { + show: false, + yAxisIndex: 0, + filterMode: 'empty', + width: 15, + height: 200, + showDataShadow: false, + left: '93%', + start: 0, + end: 100 + }, + ], + dataset: { ...dataJson }, + series: [seriesItem] +} + + +export default class Config extends PublicConfigClass implements CreateComponentType { + public key = Bar3DConfig.key + public chartConfig = cloneDeep(Bar3DConfig) + public option = echartOptionProfixHandle(option, includes) +} diff --git a/src/packages/components/Charts/Bars/Bar3d/config.vue b/src/packages/components/Charts/Bars/Bar3d/config.vue new file mode 100644 index 0000000..ea63259 --- /dev/null +++ b/src/packages/components/Charts/Bars/Bar3d/config.vue @@ -0,0 +1,82 @@ + + + diff --git a/src/packages/components/Charts/Bars/Bar3d/data.json b/src/packages/components/Charts/Bars/Bar3d/data.json new file mode 100644 index 0000000..3797d14 --- /dev/null +++ b/src/packages/components/Charts/Bars/Bar3d/data.json @@ -0,0 +1,9 @@ +{ + "dimensions": ["场所分布情况", "当日作业分布情况"], + "source": [ + { + "场所分布情况": 150, + "当日作业分布情况": 75 + } + ] +} diff --git a/src/packages/components/Charts/Bars/Bar3d/index.ts b/src/packages/components/Charts/Bars/Bar3d/index.ts new file mode 100644 index 0000000..77e4eb1 --- /dev/null +++ b/src/packages/components/Charts/Bars/Bar3d/index.ts @@ -0,0 +1,14 @@ +import { ConfigType, PackagesCategoryEnum, ChartFrameEnum } from '@/packages/index.d' +import { ChatCategoryEnum, ChatCategoryEnumName } from '../../index.d' + +export const Bar3DConfig: ConfigType = { + key: 'Bar3D', + chartKey: 'VBar3D', + conKey: 'VCBar3D', + title: '3D柱状图', + category: ChatCategoryEnum.BAR, + categoryName: ChatCategoryEnumName.BAR, + package: PackagesCategoryEnum.CHARTS, + chartFrame: ChartFrameEnum.ECHARTS, + image: 'bar_x.png' +} diff --git a/src/packages/components/Charts/Bars/Bar3d/index.vue b/src/packages/components/Charts/Bars/Bar3d/index.vue new file mode 100644 index 0000000..35a81ec --- /dev/null +++ b/src/packages/components/Charts/Bars/Bar3d/index.vue @@ -0,0 +1,97 @@ + + + diff --git a/src/packages/components/Charts/Bars/index.ts b/src/packages/components/Charts/Bars/index.ts index 97aaedc..d58a459 100644 --- a/src/packages/components/Charts/Bars/index.ts +++ b/src/packages/components/Charts/Bars/index.ts @@ -7,6 +7,7 @@ import { BarRankConfig } from './BarRank' import { BarRank2Config } from './BarRank2' import { BarRank3Config } from './BarRank3' import { BarLinearConfig } from './BarLinear/index' +import { Bar3DConfig } from './Bar3d/index' export default [ BarCommonConfig, @@ -17,5 +18,6 @@ export default [ BarRankConfig, BarRank2Config, BarRank3Config, - BarLinearConfig + BarLinearConfig, + Bar3DConfig ] diff --git a/src/packages/components/Charts/Pies/Pie/config.ts b/src/packages/components/Charts/Pies/Pie/config.ts new file mode 100644 index 0000000..c976b29 --- /dev/null +++ b/src/packages/components/Charts/Pies/Pie/config.ts @@ -0,0 +1,100 @@ + +import { echartOptionProfixHandle, PublicConfigClass } from '@/packages/public' +import { CreateComponentType } from '@/packages/index.d' +import { PieConfig } from './index' +import cloneDeep from 'lodash/cloneDeep' +import dataJson from './data.json' + +export const includes = ['legend'] + + +export const indicatorPlacements = [ + { + label: '内部', + value: 'inside' + }, + { + label: '外部', + value: 'outside' + } +] + +export enum FontWeightEnum { + NORMAL = '常规', + BOLD = '加粗', +} + +export const FontWeightObject = { + [FontWeightEnum.NORMAL]: 'normal', + [FontWeightEnum.BOLD]: 'bold', +} + +export enum LegendOrientEnum { + HORIZONTAL = '水平', + VERTICAL = '垂直' +} + +export const legendOrientObject = { + [LegendOrientEnum.HORIZONTAL]: 'horizontal', + [LegendOrientEnum.VERTICAL]: 'vertical' +} + +const option = { + renderer: 'canvas', + dataset: dataJson, + labelStyleType: '样式一', + labelColor1: '#ffffff', + labelColor2: '#ffffff', + labelPadding1: "0,3,0,-5", + labelPadding2: "0,3,-10,5", + showDataLabels: false, + showLegendValue: false, + showLegendPercent: false, + showLableLineImage: false, + labelLineColor: '#ffffff', + lableLineLength1: 30, + lableLineLength2: 40, + series: [], + legend: { + itemGap: 10, + x: 0, + y: 0, + orient: 'vertical', + // top: "center", + //@ts-ignore + data: dataJson, + icon: 'rectangle', + textStyle: { + color: '#fff', + fontSize: 14, + padding: [5, 0], + } + }, + grid3D: { + show: false, + boxHeight: 3, //圆环的高度 + //@ts-ignore + left: '-15%', + //@ts-ignore + top: '5%', //3d饼图的位置 + viewControl: { + //3d效果可以放大、旋转等,请自己去查看官方配置 + alpha: 15, //角度 + distance: 280, //调整视角到主体的距离,类似调整zoom + rotateSensitivity: 0, //设置为0无法旋转 + zoomSensitivity: 1, //设置为0无法缩放 + panSensitivity: 1, //设置为0无法平移 + autoRotate: false, //自动旋转 + }, + }, +} + + +export default class Config extends PublicConfigClass implements CreateComponentType { + public key: string = PieConfig.key + + public chartConfig = cloneDeep(PieConfig) + + // 图表配置项 + public option = echartOptionProfixHandle(option, includes) +} \ No newline at end of file diff --git a/src/packages/components/Charts/Pies/Pie/config.vue b/src/packages/components/Charts/Pies/Pie/config.vue new file mode 100644 index 0000000..e35f634 --- /dev/null +++ b/src/packages/components/Charts/Pies/Pie/config.vue @@ -0,0 +1,122 @@ + + + diff --git a/src/packages/components/Charts/Pies/Pie/data.json b/src/packages/components/Charts/Pies/Pie/data.json new file mode 100644 index 0000000..e7cd1b0 --- /dev/null +++ b/src/packages/components/Charts/Pies/Pie/data.json @@ -0,0 +1,27 @@ +[ + { + "name": "分类一", + "value": 94, + "itemStyle": { "color": "#9751c2" }, + "ratio": 0, + "isSelected": true + }, + { + "name": "分类二", + "value": 82, + "itemStyle": { "color": "#199ed4" }, + "ratio": 0 + }, + { + "name": "分类三", + "value": 78, + "itemStyle": { "color": "#06c1cd" }, + "ratio": 0 + }, + { + "name": "分类四", + "value": 60, + "itemStyle": { "color": "#f7a35c" }, + "ratio": 0 + } +] \ No newline at end of file diff --git a/src/packages/components/Charts/Pies/Pie/index.ts b/src/packages/components/Charts/Pies/Pie/index.ts new file mode 100644 index 0000000..d5a820b --- /dev/null +++ b/src/packages/components/Charts/Pies/Pie/index.ts @@ -0,0 +1,23 @@ +// 公共类型声明 +import { ConfigType, PackagesCategoryEnum } from '@/packages/index.d' +// 当前[信息模块]分类声明 +import { ChatCategoryEnum,ChatCategoryEnumName } from '../../index.d' + +export const PieConfig: ConfigType = { + // 唯一key + key: 'Pie', + // 图表组件渲染 Components 格式: V + key + chartKey: 'VPie', + // 配置组件渲染 Components 格式: VC + key + conKey: 'VCPie', + // 名称 + title: '3D环状饼图', + // 子分类目录 + category: ChatCategoryEnum.PIE, + // 子分类目录 + categoryName: ChatCategoryEnumName.PIE, + // 包分类 + package: PackagesCategoryEnum.CHARTS, + // 图片 + image: 'pie_3d.png' +} \ No newline at end of file diff --git a/src/packages/components/Charts/Pies/Pie/index.vue b/src/packages/components/Charts/Pies/Pie/index.vue new file mode 100644 index 0000000..1031df6 --- /dev/null +++ b/src/packages/components/Charts/Pies/Pie/index.vue @@ -0,0 +1,891 @@ + + + + + diff --git a/src/packages/components/Charts/Pies/index.ts b/src/packages/components/Charts/Pies/index.ts index 8754aa0..86c615c 100644 --- a/src/packages/components/Charts/Pies/index.ts +++ b/src/packages/components/Charts/Pies/index.ts @@ -2,5 +2,6 @@ import { PieCommonConfig } from './PieCommon/index' import { PieCircleConfig } from './PieCircle/index' import { PieThreeConfig } from './PieThree' import { PieMultConfig } from './PieMult/index' +import {PieConfig} from './Pie/index' -export default [PieCommonConfig, PieCircleConfig, PieThreeConfig, PieMultConfig] \ No newline at end of file +export default [PieCommonConfig, PieCircleConfig, PieThreeConfig, PieMultConfig, PieConfig]