MCPcopy
hub / github.com/zxlie/FeHelper / generateChart

Function generateChart

apps/chart-maker/main.js:127–171  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

125
126 // 生成图表按钮点击事件 (修改为独立的函数)
127 function generateChart() {
128 try {
129 let parsedData;
130 const method = document.querySelector('input[name="data-input-method"]:checked').value;
131
132 if (method === 'upload-csv' && uploadedData) {
133 parsedData = uploadedData;
134 } else if (method === 'manual') {
135 parsedData = parseInputData(); // 使用现有的手动数据解析函数
136 } else if (method === 'upload-csv' && !uploadedData) {
137 throw new Error('请先上传文件');
138 } else {
139 throw new Error('请选择有效的数据输入方式并提供数据');
140 }
141
142 if (!parsedData ||
143 (parsedData.labels && parsedData.labels.length === 0) ||
144 (parsedData.datasets && parsedData.datasets.length === 0)) {
145 throw new Error('无法解析数据或数据为空');
146 }
147
148 // 保存数据到全局变量,方便其他函数访问
149 window.chartData = parsedData;
150
151 const chartSettings = getChartSettings();
152
153 // 将简单数据标记添加到设置中
154 if (parsedData.isSimpleData) {
155 chartSettings.isSimpleData = true;
156 }
157
158 // 调用chart-generator.js中的createChart函数
159 if (typeof createChart !== 'function') {
160 throw new Error('createChart函数未定义,请确保chart-generator.js正确加载');
161 }
162
163 createChart(parsedData, chartSettings);
164
165 exportPngBtn.disabled = false;
166 exportJpgBtn.disabled = false;
167 copyImgBtn.disabled = false;
168 } catch (error) {
169 showNotification(error.message, true);
170 }
171 }
172
173 // 将generateChart函数暴露为全局函数
174 window.generateChart = generateChart;

Callers 2

main.jsFile · 0.85
initChartTypeGalleryFunction · 0.85

Calls 4

parseInputDataFunction · 0.85
getChartSettingsFunction · 0.85
createChartFunction · 0.85
showNotificationFunction · 0.70

Tested by

no test coverage detected