【发布时间】:2021-07-30 22:26:36
【问题描述】:
我的应用程序中的图表很少,是使用 Chart.js 库创建的。我需要将它们导出并包含在我的应用程序生成的某种报告中。下面附上一个示例图表代码:
export default {
extends: Line,
mixins: [reactiveProp],
data() {
return {
options: {
maintainAspectRatio: false,
responsive: true,
legend: {
display: true,
position: 'bottom',
},
scales: {
yAxes: [
{
ticks: {
suggestedMin: 0,
callback(tick) {
return `${tick}%`;
},
},
},
],
},
tooltips: {
callbacks: {
label(tooltipItem, data) {
const dataset = data.datasets[tooltipItem.datasetIndex];
const currentValue = dataset.data[tooltipItem.index];
return ` ${dataset.label}: ${currentValue}%`;
},
},
},
animation: {
// eslint-disable-next-line no-unused-vars
onComplete(animation) {
store.commit('myModule/myMutation', this.toBase64Image());
},
},
},
};
},
mounted() {
this.renderChart(this.chartData, this.options);
},
};
正如您所注意到的,我使用 onComplete 将图表保存在我的商店中。我在那里调用函数 toBase64Image() 。几乎可以正确保存图像,但忽略背景,因此结果是透明的。我想要图表,但序列化后有白色背景。有可能实现吗?我该如何解决这个问题(我尝试使用图表样式设置背景颜色,但序列化结果仍然是透明的)?感谢您的帮助
【问题讨论】:
-
我不太清楚你要扩展的
Line组件是什么。
标签: javascript vue.js chart.js