Version
5.1.0
Steps to reproduce
<script>
import macarons from '@json/macarons.json'
import echarts from 'echarts'
export default {
props: ['line_data'],
data() {
return {
chart: null,
options: {
color: ['#13d6b2'],
legend: {
show: true,
},
toolbox: {
show: true,
orient: 'vertical',
right: 5,
feature: {
dataZoom: {
show: true,
yAxisIndex: 'none',
},
restore: {},
},
},
tooltip: {
trigger: 'axis',
},
xAxis: {
type: 'category',
axisLabel: {
formatter: function (value, index) {
const arr = value.split(' ')
const arr1 = arr[0].split('-')
if (index === 0) {
return value
} else {
return arr1[1] '-' arr1[2] ' ' arr[1]
}
},
},
boundaryGap: false,
data: [],
},
yAxis: {
type: 'value',
axisLabel: {
formatter: (val) => {
return val this.line_data.unit
},
},
},
series: [
{
name: '',
type: 'line',
data: [],
symbol: 'diamond',
symbolSize: '4',
smooth: false,
lineStyle: {
width: 1.5,
},
itemStyle: {
color: '',
},
},
],
},
}
},
methods: {
init_chart() {
if (!this.chart) {
echarts.registerTheme('macarons', macarons)
this.chart = echarts.init(this.$refs.chart, 'macarons')
this.chart_click()
}
this.chart.resize()
this.chart.setOption(this.options)
},
chart_click() {
this.chart.on('click', (params) => {
this.$emit('view_client', params.name)
})
},
listen_resize() {
if (this.chart) {
this.chart.resize()
}
},
},
watch: {
line_data: {
handler(newValue) {
this.options.xAxis.data = newValue.time
this.options.series[0].data = newValue.value
this.options.series[0].name = newValue.series_name
this.options.series[0].itemStyle.color = newValue.line_color
this.$nextTick(() => {
this.init_chart()
})
},
deep: true,
immediate: false,
},
},
created() {
window.addEventListener('resize', this.listen_resize)
this.$once('hook:beforeDestroy', () => {
window.removeEventListener('resize', this.listen_resize)
})
},
}
</script>
What is expected?
None
7条答案
按热度按时间yvfmudvl1#
Hi! We've received your issue and please be patient to get responded. 🎉
The average response time is expected to be within one day for weekdays.
In the meanwhile, please make sure that it containsa minimum reproducible demoand necessaryimagesto illustrate. Otherwise, our committers will ask you to do so.
You may also check out the API and chart option to get the answer.
If you don't get helped for a long time (over a week) or have an urgent question to ask, you may also send an email to dev@echarts.apache.org . Please attach the issue link if it's a technical question.
If you are interested in the project, you may also subscribe to our mailing list .
Have a nice day! 🍵
vawmfj5a2#
@yrx0823 It seems you are not using English, I've helped translate the content automatically. To make your issue understood by more people, we'd like to suggest using English next time. 🤗
TRANSLATED
TITLE
After upgrading to version 5.1, click the restore button and the image disappears
ki0zmccv3#
@yrx0823 Please provide a minimum reproducible demo for the issue either with https://codepen.io/Ovilia/pen/dyYWXWM , https://www.makeapie.com/editor.html or https://codesandbox.io/s/mystifying-bash-2uthz .
agyaoht74#
请问这个问题解决了吗?我也遇到这个问题了。
uwopmtnx5#
还原为什么还原到初始化未赋值的状态,以前都是还原到最后赋值的状态的呀
z9ju0rcb6#
请问这个问题解决了吗?我也遇到这个问题了。
解决了。
首先,这个问题出现的原因是5.x版本的toolbox.feature.restore会恢复到第一次chart.setOption(option1)后的状态,之后执行setOption是对之前的option1配置项的更新,大致意思是:option1 + option2 + ... , restore事件会直接恢复到option1状态。
解决方式:官方文档配置项里有 https://echarts.apache.org/zh/api.html#echartsInstance.setOption
更新图表时,加个参数:
setOption(option, { notMerge: true }) // 精简写法:setOption(option, true)
例如:
import { merge } from 'lodash'
nwwlzxa77#
请问这个问题解决了吗?我也遇到这个问题了。
解决了。
首先,这个问题出现的原因是5.x版本的toolbox.feature.restore会恢复到第一次chart.setOption(option1)后的状态,之后执行setOption是对之前的option1配置项的更新,大致意思是:option1 + option2 + ... , restore事件会直接恢复到option1状态。
解决方式:官方文档配置项里有 https://echarts.apache.org/zh/api.html#echartsInstance.setOption 更新图表时,加个参数:
setOption(option, { notMerge: true }) // 精简写法:setOption(option, true)
例如: import { merge } from 'lodash'
感觉这种修改就很多余,组件修复的难点是什么呢?