Merge remote-tracking branch 'origin/main'

main
hujunpeng 4 months ago
commit bc052dfa73
  1. 7
      packages/examination/src/api/exam-online/index.tsx
  2. 4
      packages/examination/src/components/contentMain/index.js
  3. 6
      packages/examination/src/views/exam-online/compoents/ESBreadcrumbComponent.tsx
  4. 36
      packages/examination/src/views/exam-online/compoents/ExamStatisticsPage.tsx
  5. 34
      packages/examination/src/views/exam-online/exam-detail-analysis.tsx
  6. 34
      packages/examination/src/views/exam-online/exam-paper-analysis.tsx

@ -83,3 +83,10 @@ export const examStatisticsInit = async () => {
const response = await axios.get('/ex/exam-statistics/init'); const response = await axios.get('/ex/exam-statistics/init');
return response.data; return response.data;
}; };
// 考试统计初期化
export const examStatisticsChange = async (id:string) => {
const response = await axios.get('/ex/exam-statistics/change',{
params:{id:id}
});
return response.data;
};

@ -32,6 +32,8 @@ import QuestionList from 'views/question/questionList';
import QuestionAdd from 'views/question/questionAdd'; import QuestionAdd from 'views/question/questionAdd';
import QuestionUp from 'views/question/questionUp'; import QuestionUp from 'views/question/questionUp';
import ExamPaperList from 'views/examPaper/examPaperList'; import ExamPaperList from 'views/examPaper/examPaperList';
import ExamDetailAnalysis from "../../views/exam-online/exam-detail-analysis";
import ExamPaperAnalysis from "../../views/exam-online/exam-paper-analysis";
import ExamPaperAdd from 'views/examPaper/examPaperAdd'; import ExamPaperAdd from 'views/examPaper/examPaperAdd';
@ -56,6 +58,8 @@ class ContentMain extends Component {
<Route exact path='/exam-edit' component={ ExamEdit }/> <Route exact path='/exam-edit' component={ ExamEdit }/>
<Route exact path='/exam-detail' component={ ExamDetail }/> <Route exact path='/exam-detail' component={ ExamDetail }/>
<Route exact path='/exam-statistics' component={ ExamStatistics }/> <Route exact path='/exam-statistics' component={ ExamStatistics }/>
<Route exact path='/exam-detail-analysis' component={ ExamDetailAnalysis }/>
<Route exact path='/exam-paper-analysis' component={ ExamPaperAnalysis }/>
<Route exact path='/questionList' component={ QuestionList }/> <Route exact path='/questionList' component={ QuestionList }/>
<Route exact path='/questionAdd' component={ QuestionAdd }/> <Route exact path='/questionAdd' component={ QuestionAdd }/>
<Route exact path='/questionUp' component={ QuestionUp }/> <Route exact path='/questionUp' component={ QuestionUp }/>

@ -4,16 +4,20 @@ import { Link } from 'react-router-dom';
// 定义组件的 Props 类型 // 定义组件的 Props 类型
interface ESBreadcrumbComponentProps { interface ESBreadcrumbComponentProps {
url?:string;
previousText?:string;
currentText?: string; currentText?: string;
} }
const ESBreadcrumbComponent: React.FC<ESBreadcrumbComponentProps> = ({ const ESBreadcrumbComponent: React.FC<ESBreadcrumbComponentProps> = ({
url = '/exam-schedule',
previousText='考试安排',
currentText = '新增考试', currentText = '新增考试',
}) => { }) => {
return ( return (
<Breadcrumb> <Breadcrumb>
<Breadcrumb.Item> <Breadcrumb.Item>
<Link to="/exam-schedule"></Link> <Link to={url}>{previousText}</Link>
</Breadcrumb.Item> </Breadcrumb.Item>
<Breadcrumb.Item>{currentText}</Breadcrumb.Item> <Breadcrumb.Item>{currentText}</Breadcrumb.Item>
</Breadcrumb> </Breadcrumb>

@ -1,8 +1,8 @@
import React, { useEffect, useState, useRef } from 'react'; import React, { useEffect, useState, useRef } from 'react';
import { Row, Col, Select, Table, Card } from 'antd'; import { Row, Col, Select, Table, Card } from 'antd';
import ReactECharts from 'echarts-for-react'; 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 { Option } = Select;
const examTableColumns = [ const examTableColumns = [
@ -43,13 +43,11 @@ type initData = {
scoreDistributionData: { value: number; name: string }[]; scoreDistributionData: { value: number; name: string }[];
paperDistributionData: { value: number; name: string }[]; paperDistributionData: { value: number; name: string }[];
}; };
// 模拟题型占比数据
const questionTypeDistributionData = [ type changeData={
{ value: 25, name: '选择题' }, aqServiceDimensionData: { value: number; name: string }[];
{ value: 25, name: '填空题' }, questionTypeDistributionData: { value: number; name: string }[];
{ value: 25, name: '判断题' }, }
{ value: 25, name: '简答题' },
];
const Dashboard: React.FC = () => { const Dashboard: React.FC = () => {
const industrySelectRef = useRef<HTMLSelectElement>(null); const industrySelectRef = useRef<HTMLSelectElement>(null);
@ -70,6 +68,7 @@ const Dashboard: React.FC = () => {
}[]>([]); }[]>([]);
const [scoreDistributionData, setScoreDistributionData] = useState<{ value: number; name: string }[]>([]); const [scoreDistributionData, setScoreDistributionData] = useState<{ value: number; name: string }[]>([]);
const [paperDistributionData, setPaperDistributionData] = 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); const [showIndustryDimension, setShowIndustryDimension] = useState(true);
@ -106,7 +105,7 @@ const Dashboard: React.FC = () => {
// 可以在这里添加下拉框选择变化的监听逻辑 // 可以在这里添加下拉框选择变化的监听逻辑
if (industrySelectRef.current) { if (industrySelectRef.current) {
industrySelectRef.current.addEventListener('change', () => { industrySelectRef.current.addEventListener('change', () => {
// 处理选择变化逻辑
}); });
} }
}, []); }, []);
@ -121,6 +120,19 @@ const Dashboard: React.FC = () => {
// 选择其他选项 // 选择其他选项
setShowIndustryDimension(false); setShowIndustryDimension(false);
setShowAQServiceDimension(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={( title={(
<div style={{ display: 'flex', justifyContent: 'space-between', alignItems: 'center' }}> <div style={{ display: 'flex', justifyContent: 'space-between', alignItems: 'center' }}>
<span></span> <span></span>
<a>{('详情>>')}</a> <Link to='exam-detail-analysis'>{('详情>>')}</Link>
</div> </div>
)} )}
> >
@ -260,7 +272,7 @@ const Dashboard: React.FC = () => {
title={( title={(
<div style={{ display: 'flex', justifyContent: 'space-between', alignItems: 'center' }}> <div style={{ display: 'flex', justifyContent: 'space-between', alignItems: 'center' }}>
<span></span> <span></span>
<a>{('详情>>')}</a> <Link to='exam-paper-analysis'>{('详情>>')}</Link>
</div> </div>
)} )}
style={{ marginTop: 20 }} style={{ marginTop: 20 }}

@ -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<any, States> {
constructor(props: any) {
super(props);
this.state = {
resData: undefined,
visible: false,
title: '',
current: {}
}
}
componentDidMount() {
// this.getList()
}
render() {
return (
<div className="container">
<ExamEditPage isEdit={false}/>
</div>
)
}
}
export default ExamDetailAnalysis;

@ -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<any, States> {
constructor(props: any) {
super(props);
this.state = {
resData: undefined,
visible: false,
title: '',
current: {}
}
}
componentDidMount() {
// this.getList()
}
render() {
return (
<div className="container">
<ExamEditPage isEdit={false}/>
</div>
)
}
}
export default ExamPaperAnalysis;
Loading…
Cancel
Save