Files
jc-club-front/src/views/practise/practise-analytic/components/assessment-report/index.jsx
2024-04-13 23:41:51 +08:00

139 lines
3.8 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import AnalysisAtlas from '@components/analysis-atlas'
import { splicingQuery } from '@utils'
import req from '@utils/request'
import { Button, Spin } from 'antd'
import React, { useEffect, useState } from 'react'
import { useNavigate } from 'react-router-dom'
import { ApiName, ModuleName } from '../../constant'
import RecommendList from '../recommend-list'
import './index.less'
const AssessmentReport = props => {
const navigate = useNavigate()
const [title, setTitle] = useState('测试试卷')
const [correctSubject, setCorrectSubject] = useState('3')
const [spinning, setSpinning] = useState(false)
const [recommendSetList, setRecommendSetList] = useState([])
const [skill, setSkill] = useState([])
useEffect(() => {
getReport()
}, [props.practiceId])
/**
* 答案解析-获得评估报告
*/
const getReport = async () => {
const { practiceId } = props
let params = {
practiceId
}
await req(
{
method: 'post',
data: params,
url: ApiName.getReport
},
'/practice'
)
.then(res => {
if (res?.data) {
const { skill, correctSubject, title } = res.data
let list = skill || []
let len = skill.length
if (len === 1) {
let l1 = [
{ name: skill[0].name + ' ', star: skill[0].star },
{
name: ' ' + skill[0].name + ' ',
star: skill[0].star
}
]
list = list.concat(l1)
} else if (len === 2) {
let l1 = [{ name: skill[1].name + ' ', star: skill[1].star }]
list = list.concat(l1)
}
setSkill(list)
setCorrectSubject(correctSubject)
setTitle(title)
}
})
.catch(err => console.log(err))
}
/**
* 练习其他技能
*/
const onChangePracticeOther = () => {
navigate('/practise-questions')
}
/**
* 查看答案解析
*/
const onChangeAnswerAnalysis = () => {
props.onHandleAnswerAnalysis && props.onHandleAnswerAnalysis(ModuleName.analysis)
}
/**
* 点击推荐套题
* @param {*} setId
* @returns
*/
const onChangeSetId = setId => {
this.props.history.push(
splicingQuery('/practise-details', {
setId
})
)
}
return (
<Spin spinning={spinning}>
<div className='assessment-report-box'>
<div className='assessment-report-top'>
<div className='assessment-report-main'>
<div className='assessment-report-item'>试卷{title}</div>
<div className='assessment-report-item'>正确题数{correctSubject}</div>
<Button
className='assessment-report-submit'
type='primary'
onClick={onChangePracticeOther}
>
练习其他技能
</Button>
</div>
<div className='assessment-report-tupu'>
<div className='assessment-report-tupu-tip'>你的技能图谱</div>
<div className='assessment-report-tupu-content'>
<AnalysisAtlas
aliasStr='正确率'
atlasList={skill || []}
atlasMin={-25}
atlasWidth={200}
atlasHeight={200}
/>
</div>
</div>
</div>
{recommendSetList?.length > 0 && (
<RecommendList recommendSetList={recommendSetList} onHandleSetId={onChangeSetId} />
)}
<div className='assessment-report-answer-analysis'>
<Button
className='assessment-report-answer-btn'
type='primary'
onClick={onChangeAnswerAnalysis}
>
查看答案解析
</Button>
</div>
</div>
</Spin>
)
}
export default AssessmentReport