Commit e95833a7 by yuananting
parents 7d9a19c6 671ba6b2
...@@ -10,6 +10,7 @@ import React, { useState, useEffect, useRef } from 'react'; ...@@ -10,6 +10,7 @@ import React, { useState, useEffect, useRef } from 'react';
import { Route, withRouter } from 'react-router-dom'; import { Route, withRouter } from 'react-router-dom';
import User from '@/common/js/user'; import User from '@/common/js/user';
import Service from '@/common/js/service'; import Service from '@/common/js/service';
import Lottie from 'lottie-web';
import './AnswerDescPage.less'; import './AnswerDescPage.less';
import { message } from 'antd'; import { message } from 'antd';
import XMAudio from './XMAudio'; import XMAudio from './XMAudio';
...@@ -58,7 +59,6 @@ function AnswerDescPage(props) { ...@@ -58,7 +59,6 @@ function AnswerDescPage(props) {
const [showScanFile, setShowScanFile] = useState(false); const [showScanFile, setShowScanFile] = useState(false);
const [scanFileAddress, setScanFileAddress] = useState(false); const [scanFileAddress, setScanFileAddress] = useState(false);
const [scanFileType, setScanFileType] = useState(false); const [scanFileType, setScanFileType] = useState(false);
const questionTypeList = { const questionTypeList = {
SINGLE_CHOICE: '单选题', SINGLE_CHOICE: '单选题',
MULTI_CHOICE: '多选题', MULTI_CHOICE: '多选题',
...@@ -71,14 +71,23 @@ function AnswerDescPage(props) { ...@@ -71,14 +71,23 @@ function AnswerDescPage(props) {
getPaperDetail(); getPaperDetail();
getExamDetail(); getExamDetail();
}, []); }, []);
useEffect(() => {
Lottie.loadAnimation({
path: 'https://image.xiaomaiketang.com/xm/AcQWnGATCM.json',
name: 'test',
renderer: 'svg',
loop: true,
autoplay: true,
container: document.getElementById('empty-img-box'),
});
}, []);
// 获取考试详情 // 获取考试详情
function getExamDetail() { function getExamDetail() {
const params = { const params = {
examId, examId,
source: 0, source: 0,
tenantId: User.getStoreId() || window.getParameterByName('id'), tenantId: User.getStoreId() || window.getParameterByName('id'),
userId: User.getCustomerId(), userId: props.userId,
}; };
Service.Hades('public/customerHades/queryUserExamResult', params, { Service.Hades('public/customerHades/queryUserExamResult', params, {
reject: true, reject: true,
...@@ -104,7 +113,7 @@ function AnswerDescPage(props) { ...@@ -104,7 +113,7 @@ function AnswerDescPage(props) {
readAnswer: true, readAnswer: true,
source: 0, source: 0,
tenantId: User.getStoreId() || window.getParameterByName('id'), tenantId: User.getStoreId() || window.getParameterByName('id'),
userId: User.getCustomerId(), userId: props.userId,
}).then((res) => { }).then((res) => {
const { paperDetailVO, userExamAnswerVO } = res.result; const { paperDetailVO, userExamAnswerVO } = res.result;
const paperDetail = { ...paperDetailVO }; const paperDetail = { ...paperDetailVO };
...@@ -667,18 +676,19 @@ function AnswerDescPage(props) { ...@@ -667,18 +676,19 @@ function AnswerDescPage(props) {
</div> </div>
</div> </div>
</div> </div>
{errorCount === 0 && onlyError ? (
<div className='empty'> <div className={`empty ${errorCount === 0 && onlyError ? '' : 'empty-hide'}`}>
<div className='img-box'> <div className='img-box'>
<img src={'https://image.xiaomaiketang.com/xm/sz3CMdQKQE.png'} alt='' /> <div id='empty-img-box'></div>
</div> </div>
<div className='empty-text'>本次考试无错题</div> <div className='empty-text'>本次考试无错题</div>
</div> </div>
) : (
<If condition={!(errorCount === 0 && onlyError)}>
<div className='answer-desc-content'> <div className='answer-desc-content'>
<div className='question-list-box'>{handleRenderQuestionItem()}</div> <div className='question-list-box'>{handleRenderQuestionItem()}</div>
</div> </div>
)} </If>
{/* {renderFooterText()} */} {/* {renderFooterText()} */}
</div> </div>
{showScanFile && ( {showScanFile && (
......
...@@ -23,7 +23,7 @@ ...@@ -23,7 +23,7 @@
transform: translateY(-50%); transform: translateY(-50%);
width: 4px; width: 4px;
height: 16px; height: 16px;
background: #336dff; background-image: linear-gradient(#2966ff 83.5%, #0acca4 16.5%);
} }
} }
.choose-error-box { .choose-error-box {
...@@ -176,7 +176,7 @@ ...@@ -176,7 +176,7 @@
transform: translateY(-50%); transform: translateY(-50%);
width: 4px; width: 4px;
height: 16px; height: 16px;
background: #336dff; background-image: linear-gradient(#2966ff 83.5%, #0acca4 16.5%);
} }
} }
.text-dom { .text-dom {
...@@ -412,4 +412,9 @@ ...@@ -412,4 +412,9 @@
margin: 0 auto; margin: 0 auto;
text-align: center; text-align: center;
} }
&.empty-hide {
position: absolute;
left: -9999px;
top: -9999px;
}
} }
...@@ -18,6 +18,7 @@ import Breadcrumbs from '@/components/Breadcrumbs'; ...@@ -18,6 +18,7 @@ import Breadcrumbs from '@/components/Breadcrumbs';
function TestDetailPage(props) { function TestDetailPage(props) {
const examId = props.match.params.testId.replace(/\?.+/, ''); const examId = props.match.params.testId.replace(/\?.+/, '');
const paperId = window.getParameterByName('paperId'); const paperId = window.getParameterByName('paperId');
const userId = window.getParameterByName('userId');
const [examDetail, setExamDetail] = useState({ const [examDetail, setExamDetail] = useState({
answerAnalysis: '', answerAnalysis: '',
resultShow: '', resultShow: '',
...@@ -59,7 +60,7 @@ function TestDetailPage(props) { ...@@ -59,7 +60,7 @@ function TestDetailPage(props) {
examId, examId,
source: 0, source: 0,
tenantId: User.getStoreId() || window.getParameterByName('id'), tenantId: User.getStoreId() || window.getParameterByName('id'),
userId: User.getCustomerId(), userId,
}; };
Service.Hades('public/customerHades/queryUserExamResult', params, { Service.Hades('public/customerHades/queryUserExamResult', params, {
reject: true, reject: true,
...@@ -84,7 +85,7 @@ function TestDetailPage(props) { ...@@ -84,7 +85,7 @@ function TestDetailPage(props) {
source: 0, source: 0,
readAnswer: true, readAnswer: true,
tenantId: User.getStoreId() || window.getParameterByName('id'), tenantId: User.getStoreId() || window.getParameterByName('id'),
userId: User.getCustomerId(), userId,
}).then((res) => { }).then((res) => {
if (res.success) { if (res.success) {
const { paperDetailVO, userExamAnswerVO } = res.result; const { paperDetailVO, userExamAnswerVO } = res.result;
...@@ -194,7 +195,7 @@ function TestDetailPage(props) { ...@@ -194,7 +195,7 @@ function TestDetailPage(props) {
})} })}
</div> </div>
</div> </div>
<AnswerDescPage /> <AnswerDescPage userId={userId} />
</div> </div>
); );
} }
......
...@@ -214,7 +214,7 @@ ...@@ -214,7 +214,7 @@
transform: translateY(-50%); transform: translateY(-50%);
width: 4px; width: 4px;
height: 16px; height: 16px;
background: #336dff; background-image: linear-gradient(#2966ff 83.5%, #0acca4 16.5%);
} }
} }
.exam-result { .exam-result {
......
...@@ -80,7 +80,6 @@ function DataAnalysic(props: any) { ...@@ -80,7 +80,6 @@ function DataAnalysic(props: any) {
useEffect(() => { useEffect(() => {
queryRef.current = query; queryRef.current = query;
queryExamUserDataList(); queryExamUserDataList();
getCustomerId();
}, [query]); }, [query]);
function queryExamUserData() { function queryExamUserData() {
...@@ -176,8 +175,6 @@ function DataAnalysic(props: any) { ...@@ -176,8 +175,6 @@ function DataAnalysic(props: any) {
title: '操作', title: '操作',
key: '', key: '',
dataIndex: 'edit', dataIndex: 'edit',
width: '30%',
align: 'right',
render: (value: any, record: any) => { render: (value: any, record: any) => {
return ( return (
<Choose> <Choose>
...@@ -221,25 +218,11 @@ function DataAnalysic(props: any) { ...@@ -221,25 +218,11 @@ function DataAnalysic(props: any) {
}); });
} }
//查看答题详情 //查看答题详情
function checkAnswerDetail(record: object) { function checkAnswerDetail(record: any) {
const { paperId, userExamState } = props.examDetail?.examPaper; const { paperId, userExamState } = props.examDetail?.examPaper;
const { userId } = record;
window.RCHistory.push({ window.RCHistory.push({
pathname: `/test-detail/${props.examId}?paperId=${paperId}&userExamState=${userExamState}`, pathname: `/test-detail/${props.examId}?paperId=${paperId}&userExamState=${userExamState}&userId=${userId}`,
});
// console.log(record);
}
//C端 的学员学院列表
function getCustomerId() {
let params = {
userId: User.getUserId(),
};
Service.Hades('public/customerHades/getStoreListCustomer', params).then((res) => {
res.result.map((item: any) => {
if (User.getStoreId() === item.storeId) {
User.setCustomerId(item.storeCustomerId);
}
});
}); });
} }
...@@ -359,8 +342,8 @@ function DataAnalysic(props: any) { ...@@ -359,8 +342,8 @@ function DataAnalysic(props: any) {
</Button> </Button>
)} )}
<div className='content'> <div className='content analysic-content'>
<Table bordered size='small' columns={columns} dataSource={list} onChange={onChange} pagination={false}></Table> <Table bordered size='small' rowClassName='analysic-content-row' columns={columns} dataSource={list} onChange={onChange} pagination={false}></Table>
{total > 0 && ( {total > 0 && (
<PageControl <PageControl
size='small' size='small'
......
.dataAnalysic{ .dataAnalysic {
.titleBox{ .titleBox {
position: relative; position: relative;
padding-left: 28px;
font-size: 19px; font-size: 19px;
font-family: PingFangSC-Medium, PingFang SC; font-family: PingFangSC-Medium, PingFang SC;
font-weight: 500; font-weight: 500;
color: #333333; color: #333333;
line-height: 26px; line-height: 26px;
background: #FFFFFF; background: #ffffff;
&::before{ &::before {
width:4px; width: 4px;
height:12px; height: 12px;
content:''; content: '';
background-image: linear-gradient(#2966FF 83.5%, #0ACCA4 16.5%); background-image: linear-gradient(#2966ff 83.5%, #0acca4 16.5%);
display:inline-block; display: inline-block;
position: absolute; margin-right: 8px;
left:16px;
top:7px;
} }
} }
.ant-tabs-content-holder { .ant-tabs-content-holder {
......
...@@ -81,3 +81,10 @@ ...@@ -81,3 +81,10 @@
.answer-detail { .answer-detail {
color: rgb(35, 143, 255); color: rgb(35, 143, 255);
} }
.analysic-content {
.ant-table-bordered .ant-table-tbody tr {
&.analysic-content-row {
height: 50px;
}
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment