update pay function
This commit is contained in:
@@ -5,6 +5,33 @@ import React, { useEffect, useRef } from 'react';
|
||||
import { Box, useColorModeValue } from '@chakra-ui/react';
|
||||
import * as echarts from 'echarts';
|
||||
|
||||
/**
|
||||
* 验证 ECharts 配置是否有效
|
||||
*/
|
||||
const isValidOption = (option) => {
|
||||
if (!option || typeof option !== 'object') return false;
|
||||
|
||||
// 检查 xAxis 配置
|
||||
if (option.xAxis) {
|
||||
const xAxis = Array.isArray(option.xAxis) ? option.xAxis[0] : option.xAxis;
|
||||
if (xAxis && xAxis.type === 'category' && (!xAxis.data || xAxis.data.length === 0)) {
|
||||
// category 类型的 xAxis 必须有数据
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
// 检查 series 配置
|
||||
if (option.series) {
|
||||
const series = Array.isArray(option.series) ? option.series : [option.series];
|
||||
const hasValidSeries = series.some(s => s && s.data && s.data.length > 0);
|
||||
if (!hasValidSeries) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
};
|
||||
|
||||
/**
|
||||
* ECharts 图表渲染组件
|
||||
* @param {Object} option - ECharts 配置对象
|
||||
@@ -26,6 +53,12 @@ export const EChartsRenderer = ({ option, height = 400, variant = 'auto' }) => {
|
||||
useEffect(() => {
|
||||
if (!chartRef.current || !option) return;
|
||||
|
||||
// 验证配置是否有效
|
||||
if (!isValidOption(option)) {
|
||||
console.warn('EChartsRenderer: Invalid or empty chart configuration, skipping render');
|
||||
return;
|
||||
}
|
||||
|
||||
// 初始化图表(支持深色模式)
|
||||
if (!chartInstance.current) {
|
||||
chartInstance.current = echarts.init(chartRef.current, isDarkMode ? 'dark' : null);
|
||||
|
||||
Reference in New Issue
Block a user