|
@@ -0,0 +1,496 @@
|
|
|
+import * as echarts from 'echarts'
|
|
|
+// 配置版本号
|
|
|
+const version = '2023091901'
|
|
|
+// 标题
|
|
|
+const title = '3D基础柱状图'
|
|
|
+// 用于标识,唯一,和文件夹名称一致
|
|
|
+const name = '3DJiChuZhuZhuangTu'
|
|
|
+// 右侧配置项
|
|
|
+const setting = [
|
|
|
+ {
|
|
|
+ label: '维度',
|
|
|
+ type: 'select', // 设置组件类型
|
|
|
+ field: 'xField', // 字段
|
|
|
+ optionField: 'xField', // 对应options中的字段
|
|
|
+ // 是否多选
|
|
|
+ multiple: false,
|
|
|
+ value: '',
|
|
|
+ tabName: 'data'
|
|
|
+ },
|
|
|
+ {
|
|
|
+ label: '指标',
|
|
|
+ type: 'select', // 设置组件类型
|
|
|
+ field: 'yField', // 字段
|
|
|
+ optionField: 'yField', // 对应options中的字段
|
|
|
+ // 是否多选
|
|
|
+ multiple: false,
|
|
|
+ value: '',
|
|
|
+ tabName: 'data'
|
|
|
+ },
|
|
|
+ // 样式配置
|
|
|
+ {
|
|
|
+ label: '柱子宽度',
|
|
|
+ type: 'inputNumber', // 设置组件类型
|
|
|
+ field: 'seriesCustom_barWidth', // 字段
|
|
|
+ optionField: 'seriesCustom.barWidth', // 对应options中的字段
|
|
|
+ value: 30,
|
|
|
+ tabName: 'custom',
|
|
|
+ groupName: 'graph'
|
|
|
+ },
|
|
|
+ {
|
|
|
+ label: '数据标签',
|
|
|
+ type: 'switch', // 设置组件类型
|
|
|
+ field: 'label_style_opacity', // 字段
|
|
|
+ // optionField: 'series', // 对应options中的字段
|
|
|
+ value: 0,
|
|
|
+ active: 1,
|
|
|
+ inactive: 0,
|
|
|
+ tabName: 'custom',
|
|
|
+ groupName: 'graph'
|
|
|
+ },
|
|
|
+ // x轴 xAxis
|
|
|
+ {
|
|
|
+ label: '显示',
|
|
|
+ type: 'switch',
|
|
|
+ field: 'xAxis_show',
|
|
|
+ optionField: 'xAxis.show',
|
|
|
+ value: 1,
|
|
|
+ active: 1,
|
|
|
+ inactive: 0,
|
|
|
+ tabName: 'custom',
|
|
|
+ groupName: 'xAxis'
|
|
|
+ },
|
|
|
+ {
|
|
|
+ label: '轴线显示',
|
|
|
+ type: 'switch',
|
|
|
+ field: 'xAxis_axisLine_show',
|
|
|
+ optionField: 'xAxis.axisLine.show',
|
|
|
+ value: 1,
|
|
|
+ active: 1,
|
|
|
+ inactive: 0,
|
|
|
+ tabName: 'custom',
|
|
|
+ groupName: 'xAxis'
|
|
|
+ },
|
|
|
+ {
|
|
|
+ label: '刻度显示',
|
|
|
+ type: 'switch',
|
|
|
+ field: 'xAxis_axisTick_show',
|
|
|
+ optionField: 'xAxis.axisTick.show',
|
|
|
+ value: 0,
|
|
|
+ active: 1,
|
|
|
+ inactive: 0,
|
|
|
+ tabName: 'custom',
|
|
|
+ groupName: 'xAxis'
|
|
|
+ },
|
|
|
+ {
|
|
|
+ label: '标签显示',
|
|
|
+ type: 'switch',
|
|
|
+ field: 'xAxis_axisLabel_show',
|
|
|
+ optionField: 'xAxis.axisLabel.show',
|
|
|
+ value: 0,
|
|
|
+ active: 1,
|
|
|
+ inactive: 0,
|
|
|
+ tabName: 'custom',
|
|
|
+ groupName: 'xAxis'
|
|
|
+ },
|
|
|
+ {
|
|
|
+ label: '标签颜色',
|
|
|
+ type: 'colorPicker',
|
|
|
+ field: 'xAxis_axisLabel_textStyle_color',
|
|
|
+ optionField: 'xAxis.axisLabel.textStyle.color',
|
|
|
+ // 是否多选
|
|
|
+ multiple: false,
|
|
|
+ value: '#8C8C8C',
|
|
|
+ tabName: 'custom',
|
|
|
+ groupName: 'xAxis'
|
|
|
+ },
|
|
|
+ {
|
|
|
+ label: '标题',
|
|
|
+ type: 'input',
|
|
|
+ field: 'xAxis_name',
|
|
|
+ optionField: 'xAxis.name',
|
|
|
+ value: '',
|
|
|
+ tabName: 'custom',
|
|
|
+ groupName: 'xAxis'
|
|
|
+ },
|
|
|
+ {
|
|
|
+ label: '标题颜色',
|
|
|
+ type: 'colorPicker',
|
|
|
+ field: 'xAxis_nameTextStyle_color',
|
|
|
+ optionField: 'xAxis.nameTextStyle.color',
|
|
|
+ // 是否多选
|
|
|
+ multiple: false,
|
|
|
+ value: '#8C8C8C',
|
|
|
+ tabName: 'custom',
|
|
|
+ groupName: 'xAxis'
|
|
|
+ },
|
|
|
+ {
|
|
|
+ label: '标题大小',
|
|
|
+ type: 'inputNumber',
|
|
|
+ field: 'xAxis_nameTextStyle_fontSize',
|
|
|
+ optionField: 'xAxis.nameTextStyle.fontSize',
|
|
|
+ value: 12,
|
|
|
+ tabName: 'custom',
|
|
|
+ groupName: 'xAxis'
|
|
|
+ },
|
|
|
+ {
|
|
|
+ label: '标题位置',
|
|
|
+ type: 'select',
|
|
|
+ field: 'xAxis_nameLocation',
|
|
|
+ optionField: 'xAxis.nameLocation',
|
|
|
+ value: 'start',
|
|
|
+ tabName: 'custom',
|
|
|
+ options: [
|
|
|
+ {
|
|
|
+ label: '左',
|
|
|
+ value: 'start'
|
|
|
+ },
|
|
|
+ {
|
|
|
+ label: '中',
|
|
|
+ value: 'center'
|
|
|
+ },
|
|
|
+ {
|
|
|
+ label: '右',
|
|
|
+ value: 'end'
|
|
|
+ }],
|
|
|
+ groupName: 'xAxis'
|
|
|
+ },
|
|
|
+ // Y轴 yAxis
|
|
|
+ {
|
|
|
+ label: '显示',
|
|
|
+ type: 'switch',
|
|
|
+ field: 'yAxis_show',
|
|
|
+ optionField: 'yAxis.show',
|
|
|
+ value: 1,
|
|
|
+ active: 1,
|
|
|
+ inactive: 0,
|
|
|
+ tabName: 'custom',
|
|
|
+ groupName: 'yAxis'
|
|
|
+ },
|
|
|
+ {
|
|
|
+ label: '名称',
|
|
|
+ type: 'input',
|
|
|
+ field: 'yAxis_name',
|
|
|
+ optionField: 'yAxis.name',
|
|
|
+ value: '',
|
|
|
+ tabName: 'custom',
|
|
|
+ groupName: 'yAxis'
|
|
|
+ },
|
|
|
+ {
|
|
|
+ label: '名称颜色',
|
|
|
+ type: 'colorPicker',
|
|
|
+ field: 'yAxis_nameTextStyle_color',
|
|
|
+ optionField: 'yAxis.nameTextStyle.color',
|
|
|
+ // 是否多选
|
|
|
+ multiple: false,
|
|
|
+ value: '#8C8C8C',
|
|
|
+ tabName: 'custom',
|
|
|
+ groupName: 'yAxis'
|
|
|
+ },
|
|
|
+ {
|
|
|
+ label: '名称大小',
|
|
|
+ type: 'inputNumber',
|
|
|
+ field: 'yAxis_nameTextStyle_fontSize',
|
|
|
+ optionField: 'yAxis.nameTextStyle.fontSize',
|
|
|
+ value: 12,
|
|
|
+ tabName: 'custom',
|
|
|
+ groupName: 'yAxis'
|
|
|
+ },
|
|
|
+ {
|
|
|
+ label: '名称位置',
|
|
|
+ type: 'select',
|
|
|
+ field: 'yAxis_nameLocation',
|
|
|
+ optionField: 'yAxis.nameLocation',
|
|
|
+ value: 'end',
|
|
|
+ tabName: 'custom',
|
|
|
+ options: [
|
|
|
+ {
|
|
|
+ label: '下',
|
|
|
+ value: 'start'
|
|
|
+ },
|
|
|
+ {
|
|
|
+ label: '中',
|
|
|
+ value: 'center'
|
|
|
+ },
|
|
|
+ {
|
|
|
+ label: '上',
|
|
|
+ value: 'end'
|
|
|
+ }],
|
|
|
+ groupName: 'yAxis'
|
|
|
+ },
|
|
|
+ {
|
|
|
+ label: '刻度颜色',
|
|
|
+ type: 'colorPicker',
|
|
|
+ field: 'yAxis_axisLabel_textStyle',
|
|
|
+ optionField: 'yAxis.axisLabel.textStyle.color',
|
|
|
+ // 是否多选
|
|
|
+ multiple: false,
|
|
|
+ value: '#d0d0d0',
|
|
|
+ tabName: 'custom',
|
|
|
+ groupName: 'yAxis'
|
|
|
+ }
|
|
|
+]
|
|
|
+
|
|
|
+// 配置处理脚本
|
|
|
+const optionHandler = ''
|
|
|
+
|
|
|
+// 数据处理脚本
|
|
|
+const dataHandler = ''
|
|
|
+
|
|
|
+// 图表配置 new Line('domName', option)
|
|
|
+const xData = ['本年话务总量', '本年人工话务量', '每万客户呼入量', '本年话务总量']
|
|
|
+const yData = [300, 1230, 425, 300]
|
|
|
+const maxData = [1500, 1500, 1500, 1500]
|
|
|
+const option = {
|
|
|
+ animation: false,
|
|
|
+ tooltip: {
|
|
|
+ show: true
|
|
|
+ },
|
|
|
+ grid: {
|
|
|
+ left: '15%',
|
|
|
+ right: '5%',
|
|
|
+ bottom: '15%',
|
|
|
+ z: 100,
|
|
|
+ containLabel: false,
|
|
|
+ show: false
|
|
|
+ },
|
|
|
+ graphic: {
|
|
|
+ type: 'group',
|
|
|
+ bottom: '8%',
|
|
|
+ left: '10%',
|
|
|
+ z: 100,
|
|
|
+ children: [
|
|
|
+ {
|
|
|
+ type: 'rect',
|
|
|
+ left: 0,
|
|
|
+ bottom: 0,
|
|
|
+ shape: {
|
|
|
+ width: 400,
|
|
|
+ height: 10
|
|
|
+ },
|
|
|
+ style: {
|
|
|
+ fill: '#3f4867'
|
|
|
+ }
|
|
|
+ },
|
|
|
+ {
|
|
|
+ type: 'polygon',
|
|
|
+ left: 0,
|
|
|
+ bottom: 10,
|
|
|
+ shape: {
|
|
|
+ // 左上、右上、右下、左下
|
|
|
+ points: [[40, -50], [360, -50], [400, 0], [0, 0]]
|
|
|
+ },
|
|
|
+ style: {
|
|
|
+ fill: '#303256'
|
|
|
+ }
|
|
|
+ }
|
|
|
+ ]
|
|
|
+ },
|
|
|
+ xAxis: [
|
|
|
+ {
|
|
|
+ show: false,
|
|
|
+ name: '',
|
|
|
+ type: 'category',
|
|
|
+ data: xData,
|
|
|
+ nameTextStyle: {
|
|
|
+ color: '',
|
|
|
+ fontSize: 12
|
|
|
+ },
|
|
|
+ nameLocation: '',
|
|
|
+ // 坐标轴刻度设置:x轴数据展示
|
|
|
+ axisTick: {
|
|
|
+ show: false,
|
|
|
+ alignWithLabel: true
|
|
|
+ },
|
|
|
+ // 是否显示坐标轴的轴线
|
|
|
+ axisLine: {
|
|
|
+ show: false
|
|
|
+ },
|
|
|
+ // 坐标轴刻度标签
|
|
|
+ axisLabel: {
|
|
|
+ show: false,
|
|
|
+ textStyle: {
|
|
|
+ fontSize: 10,
|
|
|
+ color: 'rgb(40, 129, 170)'
|
|
|
+ },
|
|
|
+ margin: 30
|
|
|
+ }
|
|
|
+ },
|
|
|
+ {
|
|
|
+ show: false,
|
|
|
+ type: 'category',
|
|
|
+ axisLine: {
|
|
|
+ show: false
|
|
|
+ },
|
|
|
+ axisTick: {
|
|
|
+ show: false
|
|
|
+ },
|
|
|
+ axisLabel: {
|
|
|
+ show: false
|
|
|
+ },
|
|
|
+ splitArea: {
|
|
|
+ show: false
|
|
|
+ },
|
|
|
+ splitLine: {
|
|
|
+ show: false
|
|
|
+ },
|
|
|
+ data: xData
|
|
|
+ }
|
|
|
+ ],
|
|
|
+ yAxis: {
|
|
|
+ name: '',
|
|
|
+ nameTextStyle: {
|
|
|
+ color: '',
|
|
|
+ fontSize: 12
|
|
|
+ },
|
|
|
+ nameLocation: 'end',
|
|
|
+ show: true, // y轴文本标签显示
|
|
|
+ type: 'value',
|
|
|
+ axisLabel: {
|
|
|
+ textStyle: {
|
|
|
+ color: 'rgb(40, 129, 170)'
|
|
|
+ }
|
|
|
+ },
|
|
|
+ // 分隔线
|
|
|
+ splitLine: {
|
|
|
+ show: false // yAxis.show配置为true时,该配置才有效
|
|
|
+ },
|
|
|
+ // y轴轴线是否显示
|
|
|
+ axisLine: {
|
|
|
+ show: true
|
|
|
+ }
|
|
|
+ },
|
|
|
+ seriesCustom: {
|
|
|
+ barWidth: 30,
|
|
|
+ barTopColor: '#2DB1EF',
|
|
|
+ barBottomColor: '#187dcb',
|
|
|
+ barColor1: '#115ba6',
|
|
|
+ barColor2: '#1db0dd',
|
|
|
+ shadowColor: '#041133',
|
|
|
+ shadowTopColor: '#142f5a'
|
|
|
+ },
|
|
|
+ series: [
|
|
|
+ // 顶部
|
|
|
+ {
|
|
|
+ id: 'barTopColor', // 用于区分是图表的什么部分
|
|
|
+ type: 'pictorialBar', // 象形柱图
|
|
|
+ symbol: 'diamond',
|
|
|
+ symbolOffset: [0, '-50%'], // 上部菱形
|
|
|
+ symbolSize: [30, 15],
|
|
|
+ // symbolOffset: [0, -6], // 上部椭圆
|
|
|
+ symbolPosition: 'end',
|
|
|
+ z: 12,
|
|
|
+ label: {
|
|
|
+ normal: {
|
|
|
+ show: false,
|
|
|
+ position: 'top',
|
|
|
+ fontSize: 15,
|
|
|
+ fontWeight: 'bold',
|
|
|
+ color: '#27a7ce'
|
|
|
+ }
|
|
|
+ },
|
|
|
+ color: '#2DB1EF',
|
|
|
+ tooltip: {
|
|
|
+ show: false
|
|
|
+ },
|
|
|
+ data: yData
|
|
|
+ },
|
|
|
+ // 底部
|
|
|
+ {
|
|
|
+ id: 'barBottomColor', // 用于区分是图表的什么部分
|
|
|
+ type: 'pictorialBar',
|
|
|
+ symbol: 'diamond',
|
|
|
+ symbolSize: [30, 15],
|
|
|
+ symbolOffset: ['0%', '50%'], // 下部菱形
|
|
|
+ // symbolOffset: [0, 7], // 下部椭圆
|
|
|
+ z: 12,
|
|
|
+ color: '#187dcb',
|
|
|
+ tooltip: {
|
|
|
+ show: false
|
|
|
+ },
|
|
|
+ data: yData
|
|
|
+ },
|
|
|
+ // 柱子
|
|
|
+ {
|
|
|
+ id: 'barColor', // 用于区分是图表的什么部分
|
|
|
+ type: 'bar',
|
|
|
+ barWidth: 30,
|
|
|
+ z: 10,
|
|
|
+ itemStyle: {
|
|
|
+ normal: {
|
|
|
+ color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
|
|
|
+ {
|
|
|
+ offset: 0,
|
|
|
+ color: '#115ba6'
|
|
|
+ },
|
|
|
+ {
|
|
|
+ offset: 1,
|
|
|
+ color: '#1db0dd'
|
|
|
+ }
|
|
|
+ ]),
|
|
|
+ opacity: 0.8,
|
|
|
+ shadowColor: 'rgba(0, 0, 0, 0.5)', // 阴影颜色
|
|
|
+ shadowBlur: 0 // 阴影模糊值
|
|
|
+ }
|
|
|
+ },
|
|
|
+ data: yData
|
|
|
+ },
|
|
|
+ // 阴影柱子
|
|
|
+ {
|
|
|
+ id: 'shadowColor', // 用于区分是图表的什么部分
|
|
|
+ type: 'bar',
|
|
|
+ barWidth: 30,
|
|
|
+ barGap: '-100%',
|
|
|
+ itemStyle: {
|
|
|
+ normal: {
|
|
|
+ opacity: 0.8,
|
|
|
+ shadowColor: 'rgba(0, 0, 0, 0.5)', // 阴影颜色
|
|
|
+ shadowBlur: 0 // 阴影模糊值
|
|
|
+ }
|
|
|
+ },
|
|
|
+ label: {
|
|
|
+ show: false
|
|
|
+ },
|
|
|
+ color: '#041133',
|
|
|
+ tooltip: {
|
|
|
+ show: false
|
|
|
+ },
|
|
|
+ data: maxData
|
|
|
+ },
|
|
|
+ // 阴影顶部
|
|
|
+ {
|
|
|
+ id: 'shadowTopColor', // 用于区分是图表的什么部分
|
|
|
+ type: 'pictorialBar', // 象形柱图
|
|
|
+ symbol: 'diamond',
|
|
|
+ symbolOffset: [0, '-50%'], // 上部菱形
|
|
|
+ symbolSize: [30, 15],
|
|
|
+ // symbolOffset: [0, -6], // 上部椭圆
|
|
|
+ symbolPosition: 'end',
|
|
|
+ z: 12,
|
|
|
+ label: {
|
|
|
+ normal: {
|
|
|
+ show: false,
|
|
|
+ position: 'top',
|
|
|
+ fontSize: 15,
|
|
|
+ fontWeight: 'bold',
|
|
|
+ color: '#27a7ce'
|
|
|
+ }
|
|
|
+ },
|
|
|
+ color: '#142f5a',
|
|
|
+ tooltip: {
|
|
|
+ show: false
|
|
|
+ },
|
|
|
+ data: maxData
|
|
|
+
|
|
|
+ }
|
|
|
+ ]
|
|
|
+}
|
|
|
+export default {
|
|
|
+ version,
|
|
|
+ title,
|
|
|
+ name,
|
|
|
+ option,
|
|
|
+ setting,
|
|
|
+ optionHandler,
|
|
|
+ dataHandler
|
|
|
+}
|