diff --git a/package.json b/package.json index 8c920d3..97bf90a 100644 --- a/package.json +++ b/package.json @@ -52,6 +52,7 @@ "@umijs/route-utils": "^2.2.2", "antd": "^5.2.2", "classnames": "^2.3.2", + "echarts-for-react": "^3.0.2", "lodash": "^4.17.21", "moment": "^2.29.4", "omit.js": "^2.0.2", diff --git a/src/pages/AddChart/index.tsx b/src/pages/AddChart/index.tsx index faf7f5e..f5f0f89 100644 --- a/src/pages/AddChart/index.tsx +++ b/src/pages/AddChart/index.tsx @@ -1,13 +1,23 @@ import { genChartByAiUsingPOST } from '@/services/answerbi/chartController'; import { UploadOutlined } from '@ant-design/icons'; -import { Button, Form, Input, Select, Space, Upload, message } from 'antd'; +import { Button, Card, Col, Divider, Form, Input, Row, Select, Space, Spin, Upload, message } from 'antd'; import TextArea from 'antd/es/input/TextArea'; -import React from 'react'; +import React, { useState } from 'react'; +import ReactECharts from 'echarts-for-react'; -const addChart: React.FC = () => { +const AddChart: React.FC = () => { + //定义状态,用来接收后端返回值,让它实时展示再页面上 + const [chart, setChart] = useState(); + const [option, setOption] = useState(); + const [submitting, setSubmitting] = useState(false); + const onFinish = async (values: any) => { + if(submitting) return; + setSubmitting(true); + setChart(undefined); + setOption(undefined); //对接后端,上传数据 const params = { ...values, @@ -21,59 +31,88 @@ const addChart: React.FC = () => { message.error('分析失败'); }else{ message.success('分析成功'); + //解析成对象 + console.log(res.data.genChart); + const chartOption = JSON.parse(res.data.genChart ?? ''); + console.log(chartOption); + if(!chartOption){ + throw new Error('图表代码解析错误') + }else{ + setChart(res.data); + setOption(chartOption); + } } }catch(e: any){ //异常情况下,提示分析失败+具体失败原因 message.error('分析失败,' + e.message); } + setSubmitting(false); }; return (
-
- -