From 5dd440c489f26e51d210e7bb07875452d8ab3e49 Mon Sep 17 00:00:00 2001 From: sunhonglei Date: Thu, 6 Mar 2025 17:47:49 +0800 Subject: [PATCH] =?UTF-8?q?=E8=80=83=E8=AF=95=E7=BB=9F=E8=AE=A1=E9=A1=B5?= =?UTF-8?q?=E9=9D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../examination/src/api/exam-online/index.tsx | 7 ++++ .../src/components/contentMain/index.js | 4 +++ .../compoents/ESBreadcrumbComponent.tsx | 6 +++- .../compoents/ExamStatisticsPage.tsx | 36 ++++++++++++------- .../exam-online/exam-detail-analysis.tsx | 34 ++++++++++++++++++ .../views/exam-online/exam-paper-analysis.tsx | 34 ++++++++++++++++++ 6 files changed, 108 insertions(+), 13 deletions(-) create mode 100644 packages/examination/src/views/exam-online/exam-detail-analysis.tsx create mode 100644 packages/examination/src/views/exam-online/exam-paper-analysis.tsx diff --git a/packages/examination/src/api/exam-online/index.tsx b/packages/examination/src/api/exam-online/index.tsx index c7e5e47..1ab6847 100644 --- a/packages/examination/src/api/exam-online/index.tsx +++ b/packages/examination/src/api/exam-online/index.tsx @@ -83,3 +83,10 @@ export const examStatisticsInit = async () => { const response = await axios.get('/ex/exam-statistics/init'); return response.data; }; +// 考试统计初期化 +export const examStatisticsChange = async (id:string) => { + const response = await axios.get('/ex/exam-statistics/change',{ + params:{id:id} + }); + return response.data; +}; diff --git a/packages/examination/src/components/contentMain/index.js b/packages/examination/src/components/contentMain/index.js index 491aa32..d3ad3b9 100644 --- a/packages/examination/src/components/contentMain/index.js +++ b/packages/examination/src/components/contentMain/index.js @@ -32,6 +32,8 @@ import QuestionList from 'views/question/questionList'; import QuestionAdd from 'views/question/questionAdd'; import QuestionUp from 'views/question/questionUp'; import ExamPaperList from 'views/examPaper/examPaperList'; +import ExamDetailAnalysis from "../../views/exam-online/exam-detail-analysis"; +import ExamPaperAnalysis from "../../views/exam-online/exam-paper-analysis"; class ContentMain extends Component { @@ -55,6 +57,8 @@ class ContentMain extends Component { + + diff --git a/packages/examination/src/views/exam-online/compoents/ESBreadcrumbComponent.tsx b/packages/examination/src/views/exam-online/compoents/ESBreadcrumbComponent.tsx index 75da507..eb0f982 100644 --- a/packages/examination/src/views/exam-online/compoents/ESBreadcrumbComponent.tsx +++ b/packages/examination/src/views/exam-online/compoents/ESBreadcrumbComponent.tsx @@ -4,16 +4,20 @@ import { Link } from 'react-router-dom'; // 定义组件的 Props 类型 interface ESBreadcrumbComponentProps { + url?:string; + previousText?:string; currentText?: string; } const ESBreadcrumbComponent: React.FC = ({ + url = '/exam-schedule', + previousText='考试安排', currentText = '新增考试', }) => { return ( - 考试安排 + {previousText} {currentText} diff --git a/packages/examination/src/views/exam-online/compoents/ExamStatisticsPage.tsx b/packages/examination/src/views/exam-online/compoents/ExamStatisticsPage.tsx index 4f3c639..12d1817 100644 --- a/packages/examination/src/views/exam-online/compoents/ExamStatisticsPage.tsx +++ b/packages/examination/src/views/exam-online/compoents/ExamStatisticsPage.tsx @@ -1,8 +1,8 @@ import React, { useEffect, useState, useRef } from 'react'; import { Row, Col, Select, Table, Card } from 'antd'; import ReactECharts from 'echarts-for-react'; -import {examStatisticsInit, getIndustryList} from "api/exam-online/index"; // 修改接口为获取带详情的试卷列表 - +import {examStatisticsChange, examStatisticsInit, getIndustryList} from "api/exam-online/index"; // 修改接口为获取带详情的试卷列表 +import { Link } from 'react-router-dom'; const { Option } = Select; const examTableColumns = [ @@ -43,13 +43,11 @@ type initData = { scoreDistributionData: { value: number; name: string }[]; paperDistributionData: { value: number; name: string }[]; }; -// 模拟题型占比数据 -const questionTypeDistributionData = [ - { value: 25, name: '选择题' }, - { value: 25, name: '填空题' }, - { value: 25, name: '判断题' }, - { value: 25, name: '简答题' }, -]; + +type changeData={ + aqServiceDimensionData: { value: number; name: string }[]; + questionTypeDistributionData: { value: number; name: string }[]; +} const Dashboard: React.FC = () => { const industrySelectRef = useRef(null); @@ -70,6 +68,7 @@ const Dashboard: React.FC = () => { }[]>([]); const [scoreDistributionData, setScoreDistributionData] = useState<{ value: number; name: string }[]>([]); const [paperDistributionData, setPaperDistributionData] = useState<{ value: number; name: string }[]>([]); + const [questionTypeDistributionData, setQuestionTypeDistributionData] = useState<{ value: number; name: string }[]>([]); // 新增状态来控制显示的数据 const [showIndustryDimension, setShowIndustryDimension] = useState(true); @@ -106,7 +105,7 @@ const Dashboard: React.FC = () => { // 可以在这里添加下拉框选择变化的监听逻辑 if (industrySelectRef.current) { industrySelectRef.current.addEventListener('change', () => { - // 处理选择变化逻辑 + }); } }, []); @@ -121,6 +120,19 @@ const Dashboard: React.FC = () => { // 选择其他选项 setShowIndustryDimension(false); setShowAQServiceDimension(false); + + const fetchData = async () => { + try { + // 获取监管行业列表 + const response: changeData = await examStatisticsChange(value); + debugger + setAqServiceDimensionData(response.aqServiceDimensionData); + setQuestionTypeDistributionData(response.questionTypeDistributionData); + } catch (error) { + console.error('数据获取失败:', error); + } + }; + fetchData(); } }; @@ -247,7 +259,7 @@ const Dashboard: React.FC = () => { title={(
考试情况 - {('详情>>')} + {('详情>>')}
)} > @@ -260,7 +272,7 @@ const Dashboard: React.FC = () => { title={(
试卷情况 - {('详情>>')} + {('详情>>')}
)} style={{ marginTop: 20 }} diff --git a/packages/examination/src/views/exam-online/exam-detail-analysis.tsx b/packages/examination/src/views/exam-online/exam-detail-analysis.tsx new file mode 100644 index 0000000..fffff8b --- /dev/null +++ b/packages/examination/src/views/exam-online/exam-detail-analysis.tsx @@ -0,0 +1,34 @@ +import React, { Component } from "react"; +import ExamEditPage from "./compoents/ExamEditPage"; +interface States { + resData: any + visible: boolean + title: string + current: any +} + +class ExamDetailAnalysis extends Component { + constructor(props: any) { + super(props); + this.state = { + resData: undefined, + visible: false, + title: '', + current: {} + } + } + + componentDidMount() { + // this.getList() + } + + render() { + return ( +
+ +
+ ) + } +} + +export default ExamDetailAnalysis; \ No newline at end of file diff --git a/packages/examination/src/views/exam-online/exam-paper-analysis.tsx b/packages/examination/src/views/exam-online/exam-paper-analysis.tsx new file mode 100644 index 0000000..b341da0 --- /dev/null +++ b/packages/examination/src/views/exam-online/exam-paper-analysis.tsx @@ -0,0 +1,34 @@ +import React, { Component } from "react"; +import ExamEditPage from "./compoents/ExamEditPage"; +interface States { + resData: any + visible: boolean + title: string + current: any +} + +class ExamPaperAnalysis extends Component { + constructor(props: any) { + super(props); + this.state = { + resData: undefined, + visible: false, + title: '', + current: {} + } + } + + componentDidMount() { + // this.getList() + } + + render() { + return ( +
+ +
+ ) + } +} + +export default ExamPaperAnalysis; \ No newline at end of file