Merge remote-tracking branch 'origin/master'

main
liu.shiyi 2 years ago
commit 4faa66c210

@ -6,6 +6,7 @@ import com.gccloud.common.exception.GlobalException;
import com.gccloud.common.utils.BeanConvertUtils;
import com.gccloud.dataroom.core.module.basic.dao.DataRoomPagePreviewDao;
import com.gccloud.dataroom.core.module.basic.entity.PagePreviewEntity;
import com.gccloud.dataroom.core.module.chart.bean.Chart;
import com.gccloud.dataroom.core.module.manage.dto.DataRoomPageDTO;
import com.gccloud.dataroom.core.module.manage.service.IDataRoomPagePreviewService;
import com.gccloud.dataroom.core.utils.CodeGenerateUtils;
@ -32,6 +33,7 @@ public class DataRoomPagePreviewServiceImpl extends ServiceImpl<DataRoomPagePrev
if (list != null && !list.isEmpty()) {
// 有则直接更新
PagePreviewEntity pagePreviewEntity = list.get(0);
bigScreenPageDTO.setCode(code);
pagePreviewEntity.setConfig(bigScreenPageDTO);
pagePreviewEntity.setCreateDate(new Date());
this.updateById(pagePreviewEntity);

@ -1,4 +1,3 @@
import * as echarts from 'echarts'
// 配置版本号
const version = '2023091901'
// 标题
@ -65,7 +64,16 @@ const setting = [
groupName: 'graph'
},
{
label: '柱子背景顶部颜色',
label: '阴影柱子颜色',
type: 'colorPicker', // 设置组件类型
field: 'seriesCustom_shadowColor', // 字段
optionField: 'seriesCustom.shadowColor', // 对应options中的字段
value: '#041133',
tabName: 'custom',
groupName: 'graph'
},
{
label: '阴影柱子顶部颜色',
type: 'colorPicker', // 设置组件类型
field: 'seriesCustom_shadowTopColor', // 字段
optionField: 'seriesCustom.shadowTopColor', // 对应options中的字段
@ -74,25 +82,92 @@ const setting = [
groupName: 'graph'
},
{
label: '阴影柱子颜色',
label: '数据标签',
type: 'switch', // 设置组件类型
field: 'series_barColor_label_show', // 字段
optionField: 'series.barColor.label.show', // 对应options中的字段
value: 0,
active: 1,
inactive: 0,
tabName: 'custom',
groupName: 'graph'
},
{
label: '数据标签位置',
type: 'select', // 设置组件类型
field: 'series_barColor_label_position', // 字段
optionField: 'series.barColor.label.position', // 对应options中的字段
// 是否多选
multiple: false,
value: 'inside',
tabName: 'custom',
options: [
{
label: '顶部',
value: 'top'
},
{
label: '居中',
value: 'inside'
},
{
label: '底部',
value: 'bottom'
}
],
groupName: 'graph'
},
{
label: '数据标签颜色',
type: 'colorPicker', // 设置组件类型
field: 'seriesCustom_shadowColor', // 字段
optionField: 'seriesCustom.shadowColor', // 对应options中的字段
value: '#041133',
field: 'series_barColor_label_color', // 字段
optionField: 'series.barColor.label.color', // 对应options中的字段
value: '#ffffff',
tabName: 'custom',
groupName: 'graph'
},
{
label: '数据标签大小',
// 设置组件类型
type: 'inputNumber',
// 字段
field: 'series_barColor_label_fontSize',
// 对应options中的字段
optionField: 'series.barColor.label.fontSize',
value: 12,
tabName: 'custom',
groupName: 'graph'
},
// {
// label: '数据标签',
// type: 'switch', // 设置组件类型
// field: 'label_style_opacity', // 字段
// // optionField: 'series', // 对应options中的字段
// value: 0,
// active: 1,
// inactive: 0,
// tabName: 'custom',
// groupName: 'graph'
// },
// 网格线
{
label: '分隔线',
type: 'switch',
field: 'yAxis_splitLine_show',
optionField: 'yAxis.splitLine.show',
value: 0,
active: 1,
inactive: 0,
tabName: 'custom',
groupName: 'grid'
},
{
label: '宽度',
type: 'inputNumber',
field: 'yAxis_splitLine_lineStyle_width',
optionField: 'yAxis.splitLine.lineStyle.width',
value: 2,
tabName: 'custom',
groupName: 'grid'
},
{
label: '颜色',
type: 'colorPicker',
field: 'yAxis_splitLine_lineStyle_color',
optionField: 'yAxis.splitLine.lineStyle.color',
value: '#fff',
tabName: 'custom',
groupName: 'grid'
},
// x轴 xAxis
{
label: '显示',
@ -252,6 +327,39 @@ const setting = [
tabName: 'custom',
groupName: 'yAxis'
},
{
label: '刻度显示',
type: 'switch',
field: 'yAxis_axisTick_show',
optionField: 'yAxis.axisTick.show',
value: 1,
active: 1,
inactive: 0,
tabName: 'custom',
groupName: 'yAxis'
},
{
label: '刻度颜色',
type: 'colorPicker',
field: 'yAxis_axisTick_lineStyle_color',
optionField: 'yAxis.axisTick.lineStyle.color',
// 是否多选
multiple: false,
value: '#fff',
tabName: 'custom',
groupName: 'yAxis'
},
{
label: '刻度宽度',
type: 'inputNumber',
field: 'yAxis_axisTick_lineStyle_width',
optionField: 'yAxis.axisTick.lineStyle.width',
// 是否多选
multiple: false,
value: 1,
tabName: 'custom',
groupName: 'yAxis'
},
{
label: '标签显示',
type: 'switch',
@ -471,9 +579,20 @@ const option = {
},
margin: 10
},
axisTick: {
show: true,
lineStyle: {
color: '#fff',
width: 1
}
},
// 分隔线
splitLine: {
show: false // yAxis.show配置为true时该配置才有效
show: true, // yAxis.show配置为true时该配置才有效
lineStyle: {
color: '#fff',
width: 2
}
},
// y轴轴线是否显示
axisLine: {
@ -509,13 +628,7 @@ const option = {
symbolPosition: 'end',
z: 12,
label: {
normal: {
show: false,
position: 'top',
fontSize: 15,
fontWeight: 'bold',
color: '#27a7ce'
}
show: false
},
color: '#2DB1EF',
tooltip: {
@ -536,6 +649,9 @@ const option = {
tooltip: {
show: false
},
label: {
show: false
},
data: yData
},
// 柱子
@ -562,6 +678,12 @@ const option = {
// shadowBlur: 0 // 阴影模糊值
// }
// },
label: {
show: true,
position: 'inside',
color: '#fff',
fontSize: 12
},
data: yData
},
// 阴影柱子
@ -597,13 +719,7 @@ const option = {
symbolPosition: 'end',
z: 12,
label: {
normal: {
show: false,
position: 'top',
fontSize: 15,
fontWeight: 'bold',
color: '#27a7ce'
}
show: false
},
color: '#142f5a',
tooltip: {

@ -194,6 +194,30 @@ export default {
option = option[field]
}
})
} else if (optionField[0] === 'series') {
// series
let changeObject = {}
// series
let changedObject = {}
optionField.forEach((field, index) => {
if (index === 0) {
option = option[field]
} else if (index === 1) {
// idtype
changeObject = option.find(obj => obj.id === field)
changedObject = changeObject
option = option.filter(obj => obj.id !== field)
} else if (index === optionField.length - 1) {
//
if ((set.tabName === type && type === 'data' && set.value) || (set.tabName === type && type === 'custom')) {
changeObject[field] = set.value
}
} else {
changeObject = changeObject[field]
}
})
changeObject = { ...changeObject, ...changedObject }
option.push(changeObject)
} else {
optionField.forEach((field, index) => {
if (index === optionField.length - 1) {
@ -261,8 +285,6 @@ export default {
const yField = config.setting.find(item => item.optionField === 'yField')?.value
const hasSeries = config.setting.find(item => item.optionField === 'seriesField' && item.value !== '')
const { xData, yData } = this.getxDataAndYData(xField, yField, data, hasSeries)
// const xData = [...new Set(data.map(item => item[xField]))]
// const yData = data.map(item => item[yField])
const maxY = Math.max(...yData) + Math.max(...yData) * 0.2
//
const shadowData = Array.from({ length: xData.length }, () => maxY)
@ -390,110 +412,14 @@ export default {
option.series.push(...seriesItem)
}
} else {
option.series = [
{
id: 'barTopColor', //
type: 'pictorialBar', //
symbol: 'diamond',
symbolOffset: [0, '-50%'], //
symbolSize: [30, 15],
// symbolOffset: [0, -6], //
symbolPosition: 'end',
z: 12,
label: {
normal: {
show: true,
position: 'top',
fontSize: 15,
fontWeight: 'bold',
color: '#27a7ce'
}
},
color: option.seriesCustom.barTopColor,
data: yData
},
{
id: 'barBottomColor', //
type: 'pictorialBar',
symbol: 'diamond',
symbolSize: [30, 15],
symbolOffset: ['0%', '50%'], //
// symbolOffset: [0, 7], //
z: 12,
color: option.seriesCustom.barBottomColor,
data: yData
},
{
id: 'barColor', //
type: 'bar',
barWidth: 30,
z: 10,
itemStyle: {
normal: {
color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
{
offset: 0,
color: option.seriesCustom.barColor1
},
{
offset: 1,
color: option.seriesCustom.barColor2
}
]),
opacity: 0.8,
shadowColor: 'rgba(0, 0, 0, 0.5)', //
shadowBlur: 0 //
}
},
data: yData
},
{
id: 'shadowColor', //
type: 'bar',
barWidth: 30,
xAxisIndex: 1,
itemStyle: {
normal: {
color: option.seriesCustom.shadowColor,
opacity: 0.8,
shadowColor: 'rgba(0, 0, 0, 0.5)', //
shadowBlur: 0 //
}
},
label: {
show: false
},
tooltip: {
show: false
},
data: shadowData
},
{
id: 'shadowTopColor', //
type: 'pictorialBar', //
xAxisIndex: 1,
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: option.seriesCustom.shadowTopColor,
tooltip: {
show: false
},
data: shadowData
// seriesseries
option.series.forEach(item => {
if (item.id.includes('shadow')) {
item.data = shadowData
} else {
item.data = yData
}
]
})
}
return option
},

Loading…
Cancel
Save