fix:优化3D固定柱状图渲染方式

main
zhu.yawen 2 years ago
parent f513732722
commit 74bbe70974

@ -1,6 +1,6 @@
{
"name": "@gcpaas/data-room-ui",
"version": "1.0.1-2023083002-Alpha",
"version": "1.0.1-2023091801-Alpha",
"lockfileVersion": 1,
"requires": true,
"dependencies": {
@ -3397,6 +3397,27 @@
"whatwg-fetch": "^3.6.2"
},
"dependencies": {
"@vue/vue-loader-v15": {
"version": "npm:vue-loader@15.10.2",
"resolved": "https://registry.npmmirror.com/vue-loader/-/vue-loader-15.10.2.tgz",
"integrity": "sha512-ndeSe/8KQc/nlA7TJ+OBhv2qalmj1s+uBs7yHDRFaAXscFTApBzY9F1jES3bautmgWjDlDct0fw8rPuySDLwxw==",
"dev": true,
"requires": {
"@vue/component-compiler-utils": "^3.1.0",
"hash-sum": "^1.0.2",
"loader-utils": "^1.1.0",
"vue-hot-reload-api": "^2.3.0",
"vue-style-loader": "^4.1.0"
},
"dependencies": {
"hash-sum": {
"version": "1.0.2",
"resolved": "https://registry.npmmirror.com/hash-sum/-/hash-sum-1.0.2.tgz",
"integrity": "sha512-fUs4B4L+mlt8/XAtSOGMUO1TXmAelItBPtJG7CyHJfYTdDjwisntGO2JQz7oUsatOY9o68+57eziUVNw/mRHmA==",
"dev": true
}
}
},
"acorn-walk": {
"version": "8.2.0",
"resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz",
@ -3468,6 +3489,26 @@
"tapable": "^2.0.0"
}
},
"json5": {
"version": "1.0.2",
"resolved": "https://registry.npmmirror.com/json5/-/json5-1.0.2.tgz",
"integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==",
"dev": true,
"requires": {
"minimist": "^1.2.0"
}
},
"loader-utils": {
"version": "1.4.2",
"resolved": "https://registry.npmmirror.com/loader-utils/-/loader-utils-1.4.2.tgz",
"integrity": "sha512-I5d00Pd/jwMD2QCduo657+YM/6L3KZu++pmX9VFncxaxvHcru9jx1lBaFft+r4Mt2jK0Yhp41XlRAihzPxHNCg==",
"dev": true,
"requires": {
"big.js": "^5.2.2",
"emojis-list": "^3.0.0",
"json5": "^1.0.1"
}
},
"ms": {
"version": "2.1.2",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
@ -3685,47 +3726,6 @@
"lodash": "^4.17.4"
}
},
"@vue/vue-loader-v15": {
"version": "npm:vue-loader@15.10.2",
"resolved": "https://registry.npmjs.org/vue-loader/-/vue-loader-15.10.2.tgz",
"integrity": "sha512-ndeSe/8KQc/nlA7TJ+OBhv2qalmj1s+uBs7yHDRFaAXscFTApBzY9F1jES3bautmgWjDlDct0fw8rPuySDLwxw==",
"dev": true,
"requires": {
"@vue/component-compiler-utils": "^3.1.0",
"hash-sum": "^1.0.2",
"loader-utils": "^1.1.0",
"vue-hot-reload-api": "^2.3.0",
"vue-style-loader": "^4.1.0"
},
"dependencies": {
"hash-sum": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/hash-sum/-/hash-sum-1.0.2.tgz",
"integrity": "sha512-fUs4B4L+mlt8/XAtSOGMUO1TXmAelItBPtJG7CyHJfYTdDjwisntGO2JQz7oUsatOY9o68+57eziUVNw/mRHmA==",
"dev": true
},
"json5": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz",
"integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==",
"dev": true,
"requires": {
"minimist": "^1.2.0"
}
},
"loader-utils": {
"version": "1.4.2",
"resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.2.tgz",
"integrity": "sha512-I5d00Pd/jwMD2QCduo657+YM/6L3KZu++pmX9VFncxaxvHcru9jx1lBaFft+r4Mt2jK0Yhp41XlRAihzPxHNCg==",
"dev": true,
"requires": {
"big.js": "^5.2.2",
"emojis-list": "^3.0.0",
"json5": "^1.0.1"
}
}
}
},
"@vue/vue2-jest": {
"version": "27.0.0",
"resolved": "https://registry.npmjs.org/@vue/vue2-jest/-/vue2-jest-27.0.0.tgz",

@ -1,8 +1,3 @@
/*
* @description: 配置参考https://g2plot.antv.antgroup.com/examples
* @Date: 2023-03-27 14:38:23
* @Author: xing.heng
*/
import * as echarts from 'echarts'
// 配置版本号
const version = '2023071001'

@ -225,6 +225,28 @@ export default {
const seriesField = config.setting.find(item => item.optionField === 'seriesField')?.value
const seriesFieldList = [...new Set(data.map(item => item[seriesField]))]
option.series = []
const offsetArr = []
let index = 0
let barWidth = 10
if (seriesFieldList.length % 2 === 0) {
const length = seriesFieldList.length / 2
for (let i = 0; i < length; i++) {
const offsetX = (parseInt('10%') + parseInt('50%')) * (2 * i + 1)
offsetArr.push(offsetX)
offsetArr.unshift(-offsetX)
}
} else {
const length = Math.ceil(seriesFieldList.length / 2)
for (let i = 0; i < length; i++) {
if (i === 0) {
offsetArr.push(0)
} else {
const offsetX = (parseInt('20%') + parseInt('100%')) * i
offsetArr.push(offsetX)
offsetArr.unshift(-offsetX)
}
}
}
for (const seriesFieldItem of seriesFieldList) {
const seriesData = (data.filter(item => item[seriesField] === seriesFieldItem))?.map(item => item[yField])
const seriesItem = [
@ -233,8 +255,8 @@ export default {
type: 'pictorialBar',
tooltip: { show: false },
symbol: 'diamond',
symbolSize: [30, 10],
symbolOffset: ['-60%', -5],
symbolSize: [barWidth, barWidth / 2],
symbolOffset: [offsetArr[index] + '%', -barWidth / 4],
symbolPosition: 'end',
z: 15,
zlevel: 2,
@ -245,7 +267,7 @@ export default {
name: seriesFieldItem,
type: 'bar',
barGap: '20%',
barWidth: 30,
barWidth: barWidth,
itemStyle: {
normal: {
color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
@ -276,8 +298,8 @@ export default {
type: 'pictorialBar',
tooltip: { show: false },
symbol: 'diamond',
symbolSize: [30, 10],
symbolOffset: ['-60%', 5],
symbolSize: [barWidth, barWidth / 2],
symbolOffset: [offsetArr[index] + '%', barWidth / 4],
zlevel: 2,
z: 15,
color: 'rgb(2, 192, 255)',
@ -291,7 +313,7 @@ export default {
barGap: '20%',
data: shadowData,
zlevel: 1,
barWidth: 30,
barWidth: barWidth,
itemStyle: {
normal: {
color: 'rgba(9, 44, 76,.8)'
@ -303,8 +325,8 @@ export default {
type: 'pictorialBar',
tooltip: { show: false },
symbol: 'diamond',
symbolSize: [30, 10],
symbolOffset: ['-60%', -5],
symbolSize: [barWidth, barWidth / 2],
symbolOffset: [offsetArr[index] + '%', -barWidth / 4],
symbolPosition: 'end',
z: 15,
color: 'rgb(15, 69, 133)',
@ -312,6 +334,7 @@ export default {
data: shadowData
}
]
index++
option.series.push(...seriesItem)
}
} else {

Loading…
Cancel
Save