Commit 9633c104 by wangshuo

课后练习题初版

parent 3aa20a1f
import React, {Component} from 'react';
import {api, getParam, http, browser} from "@/utils";
class CampResolve extends Component {
constructor(props) {
super(props);
this.state = {
}
}
componentDidMount() {
console.log(getParam('id'));
}
render() {
return (
<div>
</div>
);
}
}
export default CampResolve;
\ No newline at end of file
import React, {Component} from 'react';
import {api, getParam, http, browser} from "@/utils";
class CampTest extends Component {
constructor(props) {
super(props);
this.state = {
}
}
componentDidMount() {
console.log(getParam('id'));
}
render() {
return (
<div>
</div>
);
}
}
export default CampTest;
\ No newline at end of file
......@@ -110,13 +110,13 @@ class OutLine extends Component {
{
// 返现课程 是返现课程 未开课 已开课 是返现课程 未开课 已开课 已练习
introduce.is_aist && item.isopen &&
introduce.is_aist && item.is_open &&
<i className='aist aist_open'></i>
}
{
// 返现课程 是返现课程 未开课 已开课 是返现课程 未开课 已开课 已练习
introduce.is_aist && !item.isopen &&
introduce.is_aist && !item.is_open &&
<i className='aist aist_close'></i>
}
</h2>
......@@ -145,21 +145,21 @@ class OutLine extends Component {
{
<>
{
introduce.is_aist && item.practice.title !== "" && !item.isopen &&
introduce.is_aist && item.practice.title !== "" && !item.is_open &&
<span className='camp camp_test' key={index}>
<span>课后练习:{item.practice.title}</span>
<i className='exam exam_close' />
</span>
}
{
introduce.is_aist && item.practice.title !== "" && item.isopen && !item.is_tested &&
<Link to={`/campTest?id=${item.video_id}`} className='camp camp_test' key={index}>
introduce.is_aist && item.practice.title !== "" && item.is_open && !item.practice.is_tested &&
<Link to={`/campTest?keshi_id=${item.video_id}&qid=${item.practice.qid}`} className='camp camp_test' key={index}>
<span>课后练习:{item.practice.title}</span>
</Link>
}
{
introduce.is_aist && item.practice.title !== "" && item.isopen && item.is_tested &&
<Link to={`/campResolve?id=${item.video_id}`} className='camp camp_test' key={index}>
introduce.is_aist && item.practice.title !== "" && item.is_open && item.practice.is_tested &&
<Link to={`/campResolve?keshi_id=${item.video_id}&qid=${item.practice.qid}`} className='camp camp_test' key={index}>
<span>课后练习:{item.practice.title}</span>
<i className='exam exam_open' />
</Link>
......
.camp-test-container {
height: 100vh;
background-color: #F7F8F9;
.icon {
display: inline-block;
}
.layout-flex-center {
display: flex;
justify-content: center;
align-items: center;
}
.layout-flex-between {
display: flex;
flex-direction: row;
justify-content: space-between;
align-items: center;
}
.layout-flex-around {
display: flex;
flex-direction: row;
justify-content: space-around;
align-items: center;
}
.fixed_container {
position: fixed;
top: 0;
left: 0;
right: 0;
width: 100%;
background-color: #F7F8F9;
}
.camp-test-header {
width: 100%;
height: 44px;
padding: 0 16px;
background-color: #FFFFFF;
.camp-test-time {
span {
color: #111111;
}
}
.icon-close {
font-size: 20px;
color: #333333;
}
.icon-clock {
margin-right: 10px;
width: 18px;
height: 18px;
background: url("../image/clock.png") no-repeat;
background-size: 100% 100%;
}
.icon-order {
width: 19px;
height: 19px;
background: url("../image/order.png") no-repeat;
background-size: 100% 100%;
}
.no_height {
height: 0;
}
}
.camp-test-title {
width: 100%;
height: 44px;
padding: 0 16px;
background-color: #FFF;
border-bottom: 1px solid #E5E5E5;
margin-top: 10px;
.qtitle {
font-size: 14px;
color: #111111;
}
.qnumber {
font-size: 14px;
color: #0099FF;
}
}
.test-item-container {
background-color: #F7F8F9;
font-size: 14px;
color: #333333;
padding-bottom: 60px;
padding-top: 96px;
.ques {
min-height: 50px;
color: #222;
text-align: left;
padding: 18px 16px;
background-color: #FFF;
}
ul {
background-color: #FFF;
}
ul > li {
color: #333;
min-height: 50px;
text-align: left;
padding: 12px 16px;
display: flex;
flex-direction: row;
justify-content: flex-start;
align-items: stretch;
.letter {
display: flex;
justify-content: center;
align-items: center;
width: 24px;
height: 24px;
line-height: 24px;
border: 1px solid #999999;
border-radius: 50%;
font-size: 16px;
color: #333;
flex: 0 0 auto;
margin-right: 12px
}
.des {
/* height: 100%; */
display: flex;
flex-direction: row;
justify-content: flex-start;
align-items: center;
min-height: 20px;
}
}
ul > li.option_checked {
background-color: #F7F8F9;
color: #0099ff;
min-height: 50px;
text-align: left;
padding: 12px 16px;
display: flex;
flex-direction: row;
justify-content: flex-start;
align-items: stretch;
.letter {
border: 1px solid #0099ff;
color: #0099ff;
display: flex;
justify-content: center;
align-items: center;
width: 24px;
height: 24px;
line-height: 24px;
border-radius: 50%;
text-align: center;
font-size: 16px;
flex: 0 0 auto;
margin-right: 12px
}
}
ul > li.user_check {
background-color: #FFF;
.letter {
border: 1px solid #ff5a5a;
background-color: #ff5a5a;
color: #fff;
display: flex;
justify-content: center;
align-items: center;
width: 24px;
height: 24px;
line-height: 24px;
border-radius: 50%;
text-align: center;
font-size: 16px;
flex: 0 0 auto;
margin-right: 12px
}
}
ul > li.right_check {
background-color: #FFF;
color: #000;
min-height: 50px;
text-align: left;
padding: 12px 16px;
display: flex;
flex-direction: row;
justify-content: flex-start;
align-items: flex-start;
.letter {
border: 1px solid #29c8a0;
background-color: #29c8a0;
color: #fff;
display: flex;
justify-content: center;
align-items: center;
width: 24px;
height: 24px;
line-height: 24px;
border-radius: 50%;
text-align: center;
font-size: 16px;
flex: 0 0 auto;
margin-right: 12px
}
}
}
.change_question_container {
position: fixed;
width: 100%;
height: 60px;
left: 0;
right: 0;
bottom: 0;
background-color: #FFF;
box-shadow: 0 0 5px 0 rgba(0,0,0,0.06);
.change_button {
width: 130px;
height: 34px;
display: flex;
justify-content: center;
align-items: center;
border: 1px solid #0099FF;
color: #0099FF;
border-radius: 17px;
}
.first_question {
border: 1px solid #999999;
color: #999999;
}
}
.test-card-container {
width: 100%;
position: absolute;
left: 0;
right: 0;
bottom: 0;
top: 44px;
background-color: #FFF;
padding: 20px 16px 0;
font-size: 14px;
color: #000;
p {
margin-bottom: 25px;
}
.test-item {
display: flex;
flex-direction: row;
justify-content: flex-start;
align-content: center;
flex-wrap: wrap;
}
.test-item li {
width: 40px;
height: 40px;
border-radius: 50%;
color: #666666;
font-size: 16px;
border: 1px solid #666666;
margin-right: 35px;
margin-bottom: 30px;
&:nth-child(5n + 0) {
margin-right: 0;
}
}
li.answered {
border: 1px solid #0099FF;
color: #FFF;
background-color: #0099FF;
}
.bottom_commit {
position: absolute;
bottom: 0;
left: 0;
right: 0;
height: 60px;
padding: 8px 16px;
border-top: 1px solid #E5E5E5;
.commit_answer {
width: 100%;
height: 44px;
background-color: #0099FF;
color: #FFF;
font-size: 16px;
border-radius: 4px;
}
}
}
.test-resolve-card-container {
position: fixed;
width: 100%;
height: 100%;
left: 0;
top: 0;
right: 0;
background-color: #fff;
}
}
.camp-report-bottom {
position: fixed;
width: 100%;
height: 60px;
left: 0;
right: 0;
bottom: 0;
padding: 10px 16px;
border-top: 1px solid #E5E5E5;
.bottom_commit {
width: 100%;
height: 100%;
background-color: #0099FF;
color: #fff;
font-size: 16px;
border-radius: 4px;
}
}
.report-body {
border-top: 1px solid #DDDDDD;
height: 100%;
display: flex;
flex-direction: column;
align-items: center;
}
.right_rate {
display: flex;
flex-direction: column;
align-items: center;
justify-content: flex-start;
width: 145px;
height: 145px;
border: 1px solid #CCCCCC;
border-radius: 50%;
margin: 30px 0 18px 0;
font-size: 12px;
color: #999999;
.rate {
margin-top: 20px;
}
.percentage {
color: #333;
font-size: 50px;
display: flex;
flex-direction: row;
justify-content: center;
align-items: baseline;
position: relative;
span:nth-child(2) {
font-size: 16px;
color: #666666;
position: absolute;
bottom: 16px;
right: -18px;
}
}
}
.use_total_time {
font-size: 16px;
color: #333;
margin-bottom: 26px;
}
.right_wrong_li {
display: flex;
flex-direction: row;
flex-wrap: wrap;
justify-content: flex-start;
padding: 0 16px;
li {
width: 40px;
height: 40px;
border: 1px solid #666666;
font-size: 16px;
color: #666666;
border-radius: 50%;
margin-right: 35px;
margin-bottom: 30px;
&:nth-child(5n + 0) {
margin-right: 0;
}
}
li.right{
background-color: #29C8A0;
color: #fff;
border: 1px solid #29C8A0;
}
li.wrong{
background-color: #FE5A59;
color: #fff;
border: 1px solid #FE5A59;
}
li.noSelect {
background-color: #fff;
color: #666;
border: 1px solid #666666;
}
}
.test-resolve {
background-color: #FFF;
margin-top: 8px;
padding: 16px;
font-size: 15px;
color: #333333;
.isRight {
font-size: 12px;
color: #666666;
margin-bottom: 8px;
}
p {
color: #999999;
margin-bottom: 4px;
}
}
\ No newline at end of file
import React, {Component} from 'react';
import {api, getParam, http, browser} from "@/utils";
import './camp.scss';
import {CampTitle, Header, TestItem, ChangeQuestion, Resolve} from './common/common';
import {Toast} from "antd-mobile";
class CampResolve extends Component {
constructor(props) {
super(props);
this.state = {
examList: [], // 问题列表
currentExam: {}, // 当前要展示的问题
currentQuestionOption: {}, // 切换题目时 用来存储当前问题的选项
questionIndex: 1, // 第几个问题
numberList: [],// 答题的题号
qtitle: "",
useTime: '00:00',
showCard: false,
rightRate: 0,
}
}
showCard = () => {
this.setState({
showCard: true
});
this.body = document.getElementsByTagName('body')[0];
this.body.style.position = 'fixed';
};
close = () => {
let isShow = this.state.showCard;
if(isShow) {
this.setState({
showCard: false
});
this.body = document.getElementsByTagName('body')[0];
this.body.style.position = 'static';
} else {
}
};
componentDidMount() {
this.keshi_id = getParam('keshi_id');
this.qidP = getParam('qid');
let _this = this;
// 获取问题列表
http.get(`${api.home}/m/aist/analysis/${this.keshi_id}/${this.qidP}`).then(res => {
console.log(res);
if(res.data.code === 4040) {
Toast.info(res.data.msg, 2, () => {
this.props.history.push('/passport');
});
return;
}else if(res.data.code !== 200){
Toast.info(res.data.msg, 2, () => {
this.props.history.push('/');
});
return;
}
let data = res.data.data;
_this.answerList = [];
this.rightNumber = 0;
data.list.map(item => {
if(item.compare === 1) {
this.rightNumber++;
}
let obj = {};
obj.questionId = item.id;
obj.answerId = 0;
_this.answerList.push(obj);
});
this.setState({
examList: data.list,
qtitle: data.qtitle,
currentExam: data.list[0],
useTime: data.cost_time,
rightRate: (this.rightNumber/data.list.length * 100).toFixed(0)
});
});
};
checkOption = () => {};
preQuestion = () => {
let index = this.state.questionIndex;
if(index === 1) {
return;
}
this.setState({
questionIndex: index - 1,
currentExam: this.state.examList[index - 2],
currentQuestionOption: this.answerList[index - 2].answerId,
});
};
nextQuestion = () => {
let index = this.state.questionIndex;
if(index === this.state.examList.length) {
this.setState({
showCard: true
});
return;
}
this.setState({
questionIndex: index + 1,
currentExam: this.state.examList[index],
currentQuestionOption: this.answerList[index].answerId,
});
};
// 通过答题卡的卡号跳转到对应的题目
jumpItem = (item, index) => {
this.setState({
showCard: false,
questionIndex: index + 1,
currentExam: this.state.examList[index],
currentQuestionOption: this.answerList[index].answerId,
})
};
formatTime = (time) => {
let ary = time.split(':');
let str = `${Number(ary[1])}${ary[2]}秒`;
if(Number(ary[0]) !== 0) {
str = `${Number(ary[0])}${str}`
}
return str;
};
render() {
let {qtitle, currentExam, currentQuestionOption, questionIndex, examList, useTime, showCard, rightRate} = this.state;
return (
<div className='camp-test-container'>
<div className={'fixed_container'}>
<Header time={useTime} showCardEve={this.showCard} close={this.close} showCard={showCard} />
<CampTitle qtitle={qtitle} questionIndex={questionIndex} examList={examList}/>
</div>
<TestItem questionIndex={questionIndex} checkOption={this.checkOption} currentExam={currentExam} currentQuestionOption={currentQuestionOption} >
{
currentExam && currentExam.options && <Resolve currentExam={currentExam}/>
}
</TestItem>
<ChangeQuestion preQuestion={this.preQuestion} nextQuestion={this.nextQuestion} questionIndex={questionIndex} />
{
showCard && (
<div className='test-resolve-card-container' >
<div className={'camp-test-header layout-flex-between'}>
<div><i onClick={this.close} className={'iconfont iconiconfront-77 icon-close'} /></div>
<div className='layout-flex-center camp-test-time'>
<span style={{fontSize: '17px', color: '#333333'}}>{'练习报告'}</span>
</div>
<div className={`icon icon-order no_height`} />
</div>
<div className={'report-body'}>
<div className={'right_rate'}>
<span className={'rate'}>正确率</span>
<div className={'percentage'}>
<span>{rightRate}</span>
<span>%</span>
</div>
</div>
<p className={'use_total_time'}>{`累计用时${this.formatTime(useTime)}`}</p>
<ul className={'right_wrong_li'}>
{
examList.map((item, index) => {
return <li onClick={() => {this.jumpItem(item, index)}} className={`layout-flex-center ${item.answer_id === item.user_answer ? 'right' : 'wrong'} ${item.user_answer === 0 ? 'noSelect' : ''}`} key={item.answer_id}>{index + 1}</li>
})
}
</ul>
</div>
<div className={'camp-report-bottom'}>
<div className={'bottom_commit layout-flex-center'}>
<div onClick={this.close} className={'commit_answer layout-flex-center'}>题目解析</div>
</div>
</div>
</div>
)
}
</div>
);
}
}
export default CampResolve;
\ No newline at end of file
import React, {Component} from 'react';
import {api, getParam, http, browser} from "@/utils";
import './camp.scss';
import {connect} from "react-redux";
import {Header, CampTitle, TestItem, ChangeQuestion} from './common/common';
import { Toast } from 'antd-mobile';
class CampTest extends Component {
constructor(props) {
super(props);
this.state = {
examList: [], // 问题列表
currentExam: {}, // 当前要展示的问题
currentQuestionOption: {}, // 切换题目时 用来存储当前问题的选项
questionIndex: 1, // 第几个问题
numberList: [],// 答题的题号
qtitle: "",
useTime: '00:00',
showCard: false,
}
}
componentDidMount() {
this.keshi_id = getParam('keshi_id');
this.qidP = getParam('qid');
let _this = this;
// 获取问题列表
http.get(`${api.home}/m/aist/get_questions/${this.keshi_id}/${this.qidP}`).then(res => {
if(res.data.code === 4040) {
Toast.info(res.data.msg, 2, () => {
this.props.history.push('/passport');
});
return;
}else if(res.data.code !== 200){
Toast.info(res.data.msg, 2, () => {
this.props.history.push('/');
});
return;
}
let data = res.data.data;
this.qid = data.id;
this.setState({
examList: data.list,
qtitle: data.qtitle,
currentExam: data.list[0],
});
_this.answerList = [];
data.list.map(item => {
let obj = {};
obj.questionId = item.id;
obj.answerId = 0;
_this.answerList.push(obj);
});
_this.time = 0;
_this.useTimeInterval = setInterval(function () {
_this.time += 1;
// _this.useTime = _this.getUseTime(_this.time);
_this.setState({
useTime: _this.getUseTime(_this.time)
})
}, 1000);
});
};
// 关闭按钮
close = () => {
let isShow = this.state.showCard;
if(isShow) {
this.setState({
showCard: false
});
this.body.style.position = 'static';
} else {
}
};
// 选择答案
checkOption = (checkItem) => {
let list = this.state.numberList;
this.answerList.map(function (item) {
if (Number(item.questionId) === Number(checkItem.ques_id)) {
item.answerId = checkItem.opt_id;
}
return item;
});
list.push(checkItem.ques_id);
this.setState({
currentQuestionOption: checkItem.opt_id,
numberList: list
});
};
// 上一题
preQuestion = () => {
let index = this.state.questionIndex;
if(index === 1) {
return;
}
this.setState({
questionIndex: index - 1,
currentExam: this.state.examList[index - 2],
currentQuestionOption: this.answerList[index - 2].answerId,
});
};
// 下一题
nextQuestion = () => {
let index = this.state.questionIndex;
if(index === this.state.examList.length) {
this.setState({
showCard: true
});
return;
}
this.setState({
questionIndex: index + 1,
currentExam: this.state.examList[index],
currentQuestionOption: this.answerList[index].answerId,
});
};
// 通过答题卡的卡号跳转到对应的题目
jumpItem = (item, index) => {
this.setState({
showCard: false,
questionIndex: index + 1,
currentExam: this.state.examList[index],
currentQuestionOption: this.answerList[index].answerId,
})
};
// 提交
commit = () => {
let data = {};
data.video_id = this.keshi_id;
data.qid = this.qid;
data.cost_time = this.time;
data.uid = this.props.user.data.uid;
data.answer_record = this.answerList;
http.post(`${api.home}/m/aist/submit`, data).then((res) => {
console.log(res);
// if() {
//
// }
// http://m.julyedu.com/campResolve?video_id=2109&qid=21
});
};
// 显示答题卡
showCard = () => {
this.setState({
showCard: true
});
this.body = document.getElementsByTagName('body')[0];
this.body.style.position = 'fixed';
};
// 答题用时的格式化
getUseTime = (date) => {
let hours = 0,
minutes = 0,
seconds = 0;
hours = `${parseInt(date / (60 * 60))}`.padStart(2, 0);
minutes = `${parseInt((date - hours * 3600) / 60)}`.padStart(2, 0);
seconds = `${parseInt((date - hours * 3600 - minutes * 60))}`.padStart(2, 0);
if (date === 3600 * 24) {
clearInterval(this.useTimeInterval);
this.useTimeInterval = null;
} else {
if (date < 3600) {
return `${minutes}:${seconds}`
} else {
return `${hours}:${minutes}:${seconds}`
}
}
};
render() {
let {qtitle, currentExam, currentQuestionOption, questionIndex, examList, useTime, showCard, numberList} = this.state;
return (
<div className='camp-test-container'>
<div className={'fixed_container'}>
{/*关闭按钮 时间 答题卡*/}
<Header time={useTime} showCardEve={this.showCard} close={this.close} showCard={showCard} />
{/*课后练习题 当前题目 题目总数*/}
<CampTitle qtitle={qtitle} questionIndex={questionIndex} examList={examList}/>
</div>
{/*题目*/}
<TestItem questionIndex={questionIndex} checkOption={this.checkOption} currentExam={currentExam} currentQuestionOption={currentQuestionOption} />
{/*切换题目*/}
<ChangeQuestion preQuestion={this.preQuestion} nextQuestion={this.nextQuestion} questionIndex={questionIndex} />
{/* 答题卡 */}
{
showCard && (
<div className='test-card-container' >
<p>{`课后练习:${qtitle}`}</p>
<ul className={'test-item'}>
{
examList.map((item, index) => {
return <li key={item.id} onClick={() => {this.jumpItem(item, index)}} className={`layout-flex-center ${numberList.includes(item.id) ? 'answered' : ''}`}>{index + 1}</li>
})
}
</ul>
<div className={'bottom_commit'}>
<div onClick={this.commit} className={'commit_answer layout-flex-center'}>提交并查看结果</div>
</div>
</div>
)
}
</div>
);
}
}
export default connect(
state => ({user: state.user}),
null
)(CampTest)
\ No newline at end of file
import React from 'react';
function format(content) {
if(content) {
if(content.includes("<img")) {
content = content.replace(/<img/g, "<img style='width: 100%'");
}
content = content.replace(/&lt;/g , '<');
content = content.replace(/&gt;/g , '>');
content = content.replace(/&amp;gt;/g , '');
content = content.replace(/&quot;/g , '"');
content = content.replace(/&amp;nbsp;/g , '');
}
return content;
}
function Header(props) {
return (
<div className='camp-test-header layout-flex-between'>
<div><i onClick={props.close} className={'iconfont iconiconfront-77 icon-close'} /></div>
<div className='layout-flex-center camp-test-time'>
<i className='icon icon-clock' />
<span>{props.time}</span>
</div>
<div onClick={props.showCardEve} className={`icon icon-order ${props.showCard ? 'no_height' : ''}`} />
</div>
);
}
function CampTitle(props) {
return (
<div className='layout-flex-between camp-test-title'>
<div className='qtitle'>{`课后练习:${props.qtitle}`}</div>
<div className='qnumber'>{`${props.questionIndex}/${props.examList.length}`}</div>
</div>
);
}
function TestItem(props) {
let {questionIndex, currentExam, currentQuestionOption} = props;
return (
<div className='test-item-container'>
<div className='ques item-title' dangerouslySetInnerHTML={{__html: `${questionIndex}.${format(currentExam.ques)}`}} />
<ul>
{
currentExam.options && currentExam.options.map((item,index)=>{
return (<li key={index}
onClick={()=>props.checkOption(item)}
className={`
${currentQuestionOption === item.opt_id ? 'option_checked' : ''}
${((currentExam.user_answer===0 || currentExam.user_answer) && currentExam.answer_id === item.opt_id) ? 'user_check' : ''}
${((currentExam.user_answer===0 || currentExam.user_answer) && currentExam.answer_id === item.opt_id) ? 'right_check' : ''}
`}
>
<span className='letter'>{String.fromCharCode(Number(index) + 65)}</span>
<span className='des' dangerouslySetInnerHTML={{__html: format(item.des)}} />
</li>)
})
}
</ul>
{
props.children
}
</div>
);
}
function ChangeQuestion(props) {
return (
<div className={'layout-flex-around change_question_container'}>
<div onClick={props.preQuestion} className={`change_button pre_question ${props.questionIndex === 1 ? 'first_question' : ''}`}>上一题</div>
<div onClick={props.nextQuestion} className={`change_button next_question`}>下一题</div>
</div>
)
}
function Resolve(props) {
let {currentExam} = props;
let Test = currentExam.compare === 0 ? '错误' : '正确';
let UserIndex, rightIndex;
currentExam.options.map((item, index)=>{
if(currentExam.answer_id === item.opt_id) {
rightIndex = index;
}
if(currentExam.user_answer !== 0 && currentExam.user_answer === item.opt_id) {
UserIndex = <span>{`您的答案是${String.fromCharCode(Number(index) + 65)},`}</span>;
}
});
if(currentExam.user_answer === 0) {
UserIndex = <span>{`您的答案是空,`}</span>;
}
return (
<div className={'test-resolve'}>
<div className={'isRight'}>
<span>{`正确答案是${String.fromCharCode(Number(rightIndex) + 65)},`}</span>
{UserIndex}
<span>{`回答${Test}。`}</span>
</div>
<p>解析</p>
<div className={'resolve-content'} dangerouslySetInnerHTML={{__html: `${format(currentExam.analysis)}`}} />
</div>
)
}
export {
Header,
CampTitle,
TestItem,
ChangeQuestion,
Resolve,
};
\ No newline at end of file
......@@ -10,12 +10,6 @@ function RouteMiddlePage(props) {
const [isLoading, setLoadingState] = useState(true)
useEffect(() => {
<<<<<<< HEAD:src/router/loading.js
console.group('middle')
// console.log(Object.values(user.data).every(item => !!item).length !== 0)
console.groupEnd()
=======
>>>>>>> pre:src/router/route-middle-page.js
let {user, location, history} = props
if (history.action === 'POP') {
......
......@@ -27,8 +27,8 @@ const Order = loadable(() => import(/* webpackChunkName: 'Order'*/'@/components/
const CourseList = loadable(() => import(/* webpackChunkName: 'CourseList'*/'@/components/classify/courselist'))
const MyEdit = loadable(() => import(/* webpackChunkName: 'MyEdit'*/'@/components/my/edit'))
const Classify = loadable(() => import(/* webpackChunkName: 'Classify'*/'@/components/classify'))
const CampTest = loadable(() => import(/* webpackChunkName: 'Classify'*/'@/components/detail/campTest/campTest'))
const CampResolve = loadable(() => import(/* webpackChunkName: 'Classify'*/'@/components/detail/campTest/campResolve'))
const CampTest = loadable(() => import(/* webpackChunkName: 'Classify'*/'@/components/video/camp/campTest'))
const CampResolve = loadable(() => import(/* webpackChunkName: 'Classify'*/'@/components/video/camp/campResolve'))
export default [
{
path: '/',
......
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