|
|
import * as echarts from 'echarts'
|
|
|
// 配置版本号
|
|
|
const version = '2023091901'
|
|
|
// 标题
|
|
|
const title = '3D分组柱状图'
|
|
|
// 用于标识,唯一,和文件夹名称一致
|
|
|
const name = '3DFenZuZhuZhuangTu'
|
|
|
|
|
|
// 右侧配置项
|
|
|
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: 'select', // 设置组件类型
|
|
|
field: 'seriesField', // 字段
|
|
|
optionField: 'seriesField', // 对应options中的字段
|
|
|
// 是否多选
|
|
|
multiple: false,
|
|
|
value: '',
|
|
|
tabName: 'data'
|
|
|
},
|
|
|
{
|
|
|
label: '柱子顶部颜色',
|
|
|
type: 'colorPicker', // 设置组件类型
|
|
|
field: 'seriesCustom_barTopColor', // 字段
|
|
|
optionField: 'seriesCustom.barTopColor', // 对应options中的字段
|
|
|
value: '#2DB1EF',
|
|
|
tabName: 'custom',
|
|
|
groupName: 'graph'
|
|
|
},
|
|
|
{
|
|
|
label: '柱子颜色1',
|
|
|
type: 'colorPicker', // 设置组件类型
|
|
|
field: 'seriesCustom_barColor1', // 字段
|
|
|
optionField: 'seriesCustom.barColor1', // 对应options中的字段
|
|
|
value: '#115ba6',
|
|
|
tabName: 'custom',
|
|
|
groupName: 'graph'
|
|
|
},
|
|
|
{
|
|
|
label: '柱子颜色2',
|
|
|
type: 'colorPicker', // 设置组件类型
|
|
|
field: 'seriesCustom_barColor2', // 字段
|
|
|
optionField: 'seriesCustom.barColor2', // 对应options中的字段
|
|
|
value: '#1db0dd',
|
|
|
tabName: 'custom',
|
|
|
groupName: 'graph'
|
|
|
},
|
|
|
{
|
|
|
label: '柱子底部颜色',
|
|
|
type: 'colorPicker', // 设置组件类型
|
|
|
field: 'seriesCustom_barBottomColor', // 字段
|
|
|
optionField: 'seriesCustom.barBottomColor', // 对应options中的字段
|
|
|
value: '#187dcb',
|
|
|
tabName: 'custom',
|
|
|
groupName: 'graph'
|
|
|
},
|
|
|
{
|
|
|
label: '柱子背景顶部颜色',
|
|
|
type: 'colorPicker', // 设置组件类型
|
|
|
field: 'seriesCustom_shadowTopColor', // 字段
|
|
|
optionField: 'seriesCustom.shadowTopColor', // 对应options中的字段
|
|
|
value: '#142f5a',
|
|
|
tabName: 'custom',
|
|
|
groupName: 'graph'
|
|
|
},
|
|
|
{
|
|
|
label: '柱子背景颜色',
|
|
|
type: 'colorPicker', // 设置组件类型
|
|
|
field: 'seriesCustom_shadowColor', // 字段
|
|
|
optionField: 'seriesCustom.shadowColor', // 对应options中的字段
|
|
|
value: '#041133',
|
|
|
tabName: 'custom',
|
|
|
groupName: 'graph'
|
|
|
}
|
|
|
]
|
|
|
|
|
|
// 配置处理脚本
|
|
|
const optionHandler = ''
|
|
|
|
|
|
// 数据处理脚本
|
|
|
const dataHandler = ''
|
|
|
|
|
|
// 图表配置 new Line('domName', option)
|
|
|
const xData = ['本年话务总量', '本年人工话务量', '每万客户呼入量', '每万客户呼入量'
|
|
|
]
|
|
|
const yData1 = [300, 1230, 425, 1200]
|
|
|
const yData2 = [400, 400, 400, 1200]
|
|
|
const maxData1 = [1500, 1500, 1500, 1500]
|
|
|
const maxData2 = [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: [
|
|
|
{
|
|
|
type: 'category',
|
|
|
data: xData,
|
|
|
// 坐标轴刻度设置:x轴数据展示
|
|
|
axisTick: {
|
|
|
show: true,
|
|
|
alignWithLabel: true
|
|
|
},
|
|
|
// 横坐标颜色
|
|
|
nameTextStyle: {
|
|
|
color: '#82b0ec'
|
|
|
},
|
|
|
// 是否显示坐标轴的轴线
|
|
|
axisLine: {
|
|
|
show: false
|
|
|
},
|
|
|
// 坐标轴刻度标签
|
|
|
axisLabel: {
|
|
|
textStyle: {
|
|
|
fontSize: 10,
|
|
|
color: 'rgb(40, 129, 170)'
|
|
|
},
|
|
|
margin: 30
|
|
|
}
|
|
|
},
|
|
|
{
|
|
|
type: 'category',
|
|
|
axisLine: {
|
|
|
show: false
|
|
|
},
|
|
|
axisTick: {
|
|
|
show: false
|
|
|
},
|
|
|
axisLabel: {
|
|
|
show: false
|
|
|
},
|
|
|
splitArea: {
|
|
|
show: false
|
|
|
},
|
|
|
splitLine: {
|
|
|
show: false
|
|
|
},
|
|
|
data: xData
|
|
|
}
|
|
|
],
|
|
|
yAxis: [
|
|
|
{
|
|
|
show: true, // y轴文本标签显示
|
|
|
type: 'value',
|
|
|
axisLabel: {
|
|
|
textStyle: {
|
|
|
color: 'rgb(40, 129, 170)'
|
|
|
}
|
|
|
},
|
|
|
// 分隔线
|
|
|
splitLine: {
|
|
|
show: false // yAxis.show配置为true时,该配置才有效
|
|
|
},
|
|
|
// y轴轴线是否显示
|
|
|
axisLine: {
|
|
|
show: true
|
|
|
}
|
|
|
}
|
|
|
],
|
|
|
seriesCustom: {
|
|
|
barTopColor: '#2DB1EF',
|
|
|
barBottomColor: '#187dcb',
|
|
|
barColor1: '#115ba6',
|
|
|
barColor2: '#1db0dd',
|
|
|
shadowColor: '#041133',
|
|
|
shadowTopColor: '#142f5a'
|
|
|
},
|
|
|
series: [
|
|
|
{
|
|
|
name: 'y1柱子顶部',
|
|
|
type: 'pictorialBar',
|
|
|
tooltip: { show: false },
|
|
|
symbol: 'diamond',
|
|
|
symbolSize: [30, 10],
|
|
|
symbolOffset: ['-60%', -5],
|
|
|
symbolPosition: 'end',
|
|
|
z: 15,
|
|
|
zlevel: 2,
|
|
|
color: 'rgba(2, 175, 249,1)',
|
|
|
data: yData1
|
|
|
},
|
|
|
{
|
|
|
name: 'y2柱子顶部',
|
|
|
type: 'pictorialBar',
|
|
|
tooltip: { show: false },
|
|
|
symbol: 'diamond',
|
|
|
symbolSize: [30, 10],
|
|
|
symbolOffset: ['60%', -5],
|
|
|
symbolPosition: 'end',
|
|
|
z: 15,
|
|
|
zlevel: 2,
|
|
|
color: 'rgba(45, 206, 177,0.9)',
|
|
|
data: yData2
|
|
|
},
|
|
|
{
|
|
|
name: 'y1',
|
|
|
type: 'bar',
|
|
|
barGap: '20%',
|
|
|
30: 30,
|
|
|
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 // 阴影模糊值
|
|
|
}
|
|
|
},
|
|
|
label: {
|
|
|
show: false
|
|
|
},
|
|
|
zlevel: 2,
|
|
|
z: 12,
|
|
|
data: yData1
|
|
|
},
|
|
|
{
|
|
|
name: 'y2',
|
|
|
type: 'bar',
|
|
|
// barGap: '60%',
|
|
|
30: 30,
|
|
|
itemStyle: {
|
|
|
normal: {
|
|
|
color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
|
|
|
{
|
|
|
offset: 0,
|
|
|
color: '#73eccd'
|
|
|
},
|
|
|
{
|
|
|
offset: 1,
|
|
|
color: '#4dd9e5'
|
|
|
}
|
|
|
]),
|
|
|
opacity: 0.8,
|
|
|
shadowColor: 'rgba(0, 0, 0, 0.5)', // 阴影颜色
|
|
|
shadowBlur: 0 // 阴影模糊值
|
|
|
}
|
|
|
},
|
|
|
label: {
|
|
|
show: false
|
|
|
},
|
|
|
zlevel: 2,
|
|
|
z: 12,
|
|
|
data: yData2
|
|
|
},
|
|
|
{
|
|
|
name: 'y1柱子底部',
|
|
|
type: 'pictorialBar',
|
|
|
tooltip: { show: false },
|
|
|
symbol: 'diamond',
|
|
|
symbolSize: [30, 10],
|
|
|
symbolOffset: ['-60%', 5],
|
|
|
zlevel: 2,
|
|
|
z: 15,
|
|
|
color: 'rgb(2, 192, 255)',
|
|
|
data: yData1
|
|
|
},
|
|
|
{
|
|
|
name: 'y2柱子底部',
|
|
|
type: 'pictorialBar',
|
|
|
tooltip: { show: false },
|
|
|
symbol: 'diamond',
|
|
|
symbolSize: [30, 10],
|
|
|
symbolOffset: ['60%', 5],
|
|
|
zlevel: 2,
|
|
|
z: 15,
|
|
|
color: 'rgba(45, 206, 177,0.9)',
|
|
|
data: yData2
|
|
|
},
|
|
|
{
|
|
|
name: '背景柱子1',
|
|
|
type: 'bar',
|
|
|
tooltip: { show: false },
|
|
|
xAxisIndex: 1,
|
|
|
barGap: '20%',
|
|
|
data: maxData1,
|
|
|
zlevel: 1,
|
|
|
30: 30,
|
|
|
itemStyle: {
|
|
|
normal: {
|
|
|
color: 'rgba(9, 44, 76,.8)'
|
|
|
}
|
|
|
}
|
|
|
},
|
|
|
{
|
|
|
name: '背景柱子2',
|
|
|
type: 'bar',
|
|
|
tooltip: { show: false },
|
|
|
xAxisIndex: 1,
|
|
|
barGap: '20%',
|
|
|
data: maxData2,
|
|
|
zlevel: 1,
|
|
|
30: 30,
|
|
|
itemStyle: {
|
|
|
normal: {
|
|
|
color: 'rgba(16, 56, 70,.8)'
|
|
|
}
|
|
|
}
|
|
|
},
|
|
|
{
|
|
|
name: 'y1背景柱子顶部',
|
|
|
type: 'pictorialBar',
|
|
|
tooltip: { show: false },
|
|
|
symbol: 'diamond',
|
|
|
symbolSize: [30, 10],
|
|
|
symbolOffset: ['-60%', -5],
|
|
|
symbolPosition: 'end',
|
|
|
z: 15,
|
|
|
color: 'rgb(15, 69, 133)',
|
|
|
zlevel: 1,
|
|
|
data: maxData1
|
|
|
},
|
|
|
{
|
|
|
name: 'y2背景柱子顶部',
|
|
|
type: 'pictorialBar',
|
|
|
tooltip: { show: false },
|
|
|
symbol: 'diamond',
|
|
|
symbolSize: [30, 10],
|
|
|
symbolOffset: ['60%', -5],
|
|
|
symbolPosition: 'end',
|
|
|
z: 15,
|
|
|
color: 'rgb(30, 100, 112)',
|
|
|
zlevel: 1,
|
|
|
data: maxData2
|
|
|
}
|
|
|
]
|
|
|
}
|
|
|
export default {
|
|
|
version,
|
|
|
title,
|
|
|
name,
|
|
|
option,
|
|
|
setting,
|
|
|
optionHandler,
|
|
|
dataHandler
|
|
|
}
|