Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
52a245e044 | ||
|
|
479d95cb2c |
@@ -941,11 +941,18 @@ function generateCombine() {
|
|||||||
const chart = echarts.init(holder, null, { renderer: 'canvas' });
|
const chart = echarts.init(holder, null, { renderer: 'canvas' });
|
||||||
chart.setOption(option);
|
chart.setOption(option);
|
||||||
setTimeout(() => {
|
setTimeout(() => {
|
||||||
const cvs = holder.querySelector('canvas');
|
const srcCvs = holder.querySelector('canvas');
|
||||||
if (!cvs) { reject(new Error('子图渲染失败')); return; }
|
if (!srcCvs) { reject(new Error('子图渲染失败')); return; }
|
||||||
resolve(cvs);
|
// 关键:先把内容复制到独立 canvas 再 dispose。
|
||||||
|
// 直接 resolve 原 canvas 的话,Promise 微任务在 chart.dispose() 之后才执行,
|
||||||
|
// 此时 canvas 内容已被 echarts 清空,合并出来就是白图。
|
||||||
|
const copy = document.createElement('canvas');
|
||||||
|
copy.width = srcCvs.width;
|
||||||
|
copy.height = srcCvs.height;
|
||||||
|
copy.getContext('2d').drawImage(srcCvs, 0, 0);
|
||||||
chart.dispose();
|
chart.dispose();
|
||||||
holder.remove();
|
holder.remove();
|
||||||
|
resolve(copy);
|
||||||
}, 80);
|
}, 80);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
@@ -882,7 +882,7 @@ app.get('/api/health', (req, res) => {
|
|||||||
res.json({
|
res.json({
|
||||||
status: 'ok',
|
status: 'ok',
|
||||||
service: 'data-chart-tool',
|
service: 'data-chart-tool',
|
||||||
version: '1.8.0',
|
version: '1.9.0',
|
||||||
endpoints: {
|
endpoints: {
|
||||||
'POST /api/chart': '生成图表图片(JSON body)',
|
'POST /api/chart': '生成图表图片(JSON body)',
|
||||||
'GET /api/chart': '生成图表图片(URL 参数)',
|
'GET /api/chart': '生成图表图片(URL 参数)',
|
||||||
@@ -897,7 +897,7 @@ app.get('/api/health', (req, res) => {
|
|||||||
app.get('/api/docs', (req, res) => {
|
app.get('/api/docs', (req, res) => {
|
||||||
res.json({
|
res.json({
|
||||||
name: '数据可视化图表生成器 API',
|
name: '数据可视化图表生成器 API',
|
||||||
version: '1.8.0',
|
version: '1.9.0',
|
||||||
endpoints: [
|
endpoints: [
|
||||||
{
|
{
|
||||||
method: 'POST',
|
method: 'POST',
|
||||||
|
|||||||
Reference in New Issue
Block a user