{"version":3,"sources":["components/classify/image/tips.png","components/classify/index.js","components/video/camp/campTest.js","components/video/camp/campResolve.js","components/video/camp/common/common.js"],"names":["module","exports","Classify","connect","props","_this","Object","_Users_xzh_dnmp_www_mr_julyedu_node_modules_babel_preset_react_app_node_modules_babel_runtime_helpers_esm_classCallCheck__WEBPACK_IMPORTED_MODULE_2__","this","_Users_xzh_dnmp_www_mr_julyedu_node_modules_babel_preset_react_app_node_modules_babel_runtime_helpers_esm_possibleConstructorReturn__WEBPACK_IMPORTED_MODULE_4__","_Users_xzh_dnmp_www_mr_julyedu_node_modules_babel_preset_react_app_node_modules_babel_runtime_helpers_esm_getPrototypeOf__WEBPACK_IMPORTED_MODULE_5__","call","toCourseDetail","id","_this$props","dispatch","history","push","concat","state","camp","employment","basics","advanced","special","isLoading","_this2","http","get","API","home","then","res","data","code","setState","common","length","antd_mobile_lib_toast__WEBPACK_IMPORTED_MODULE_1___default","a","info","msg","_this3","react__WEBPACK_IMPORTED_MODULE_7___default","createElement","className","_common__WEBPACK_IMPORTED_MODULE_12__","title","arrow","cart","_common_Loading__WEBPACK_IMPORTED_MODULE_13__","ClassCourseBox","toDetail","list","name","type","map","item","index","onClick","course_id","key","src","course_img","alt","Component","ClassCourseA","_ref","is_aist","ClassCourseB","react_router_dom__WEBPACK_IMPORTED_MODULE_11__","to","c_id","c_name","require","WithTab","CampTest","close","showCard","body","document","getElementsByTagName","style","position","_this$props$location$","location","from","indexOf","console","log","checkOption","checkItem","numberList","answerList","Number","questionId","ques_id","answerId","opt_id","currentQuestionOption","preQuestion","questionIndex","currentExam","examList","nextQuestion","jumpItem","commit","video_id","keshi_id","qid","cost_time","time","uid","user","answer_record","post","getUseTime","date","hours","minutes","seconds","parseInt","padStart","clearInterval","useTimeInterval","qtitle","useTime","getParam","qidP","obj","setInterval","_this$state","_common_common__WEBPACK_IMPORTED_MODULE_11__","showCardEve","includes","CampResolve","formatTime","ary","split","str","rightRate","rightNumber","compare","toFixed","_common_common__WEBPACK_IMPORTED_MODULE_10__","options","fontSize","color","answer_id","user_answer","__webpack_require__","d","__webpack_exports__","Header","CampTitle","TestItem","ChangeQuestion","Resolve","react__WEBPACK_IMPORTED_MODULE_0__","react__WEBPACK_IMPORTED_MODULE_0___default","n","format","content","replace","dangerouslySetInnerHTML","__html","ques","String","fromCharCode","des","children","UserIndex","rightIndex","Test","analysis"],"mappings":"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","file":"static/js/Classify.bbf865c9.chunk.js","sourcesContent":["module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAYCAMAAADNlS1EAAAA+VBMVEUAAADeP03XQVEDmP38MjMGl/rSQ1Uhi+QJlfj9MjIsh9sGl/o6gtD/MTEYj+zoOkTxNzw6gtAIlvn8MjNQeL+wUXGAZZgnieCAZJg3g9LJSF0rh9x5aJ6HYpPfPktDfsm8TGhec7ShV3wNk/PxNjxdc7ShV3y7TGdDfskgi+XePkt4Z52GYpM2g9PIR10Ok/PxNjyUXYdrbajoOkQXkOwXkOzoO0M3g9LJR13UQ1TePksXkO0Nk/Qhi+QshtzePkzxNjz5MzbnO0RqbamUXIivUXI2g9NDfslQeL9dc7R4aJ6GYpKiV328TGfJR13UQlPoOkNQeb7pOkQ6pR5tAAAAO3RSTlMABo85Of3w7JGRjO7u7u3t7ZGDg09PMBUV+vrz7+/q397X18/Pv7+1tKSjmZh9fHd2cnFmZTQ0KCgbEL1XwbEAAADqSURBVBjTXZHlssIwFAZpqVDc4bq7+wXa4nUB3v9h+HKAYZL9k52dZJI5yfBk61m2SEapZEi7pqoqq8YYNLbxyjTNN6zVEahu2vcA/EAqE1Ch1tEty3pgJg+BTDFv2/ZRhy6SNU2mi/4OHMd5yfDcu657JrSm5y29phAvfN+/EdrnFLT51j0OguBJ2PgchuFJl2/tGfgQNt5GUXQp8a01By2+SedxHN8Jh1+TJDn8J60VizWSnpam6W4mIM/sEXM67VPULaBDfieLxeoLAsoDUIa8Y/TX2+fkTFCHKPgkhRWqhUKORGlQ27MGJhAis32Nv3oAAAAASUVORK5CYII=\"","import React, {Component} from 'react';\nimport {WithTab} from '@/HOCs'\nimport './index.scss';\nimport {http} from \"@/utils\";\nimport {Link} from 'react-router-dom'\nimport {Toast} from 'antd-mobile'\nimport {HeaderBar} from \"@/common\"\nimport Loading from '@/common/Loading'\nimport {connect} from 'react-redux';\n\n@connect()\nclass Classify extends Component {\n    constructor(props) {\n        super(props)\n        this.state = {\n            camp: [],\n            employment: [],\n            basics: [],\n            advanced: [],\n            special: [],\n            isLoading: true\n        }\n    }\n\n    componentDidMount() {\n        let data = 1\n        http.get(`${API.home}/m/course/classify/${data}`,).then((res) => {\n            if (res.data.code === 200) {\n                this.setState({\n                    isLoading: false\n                })\n\n                if (res.data.data.common.length > 0) {\n                    this.setState({\n                        basics: res.data.data.common[0],\n                        advanced: res.data.data.common[1] || [],\n                    })\n                }\n                if (res.data.data.special.length > 0) {\n                    this.setState({\n                        camp: res.data.data.special[0],\n                        employment: res.data.data.special[1] || [],\n                        special: res.data.data.special[2] || [],\n                    })\n\n                }\n            } else {\n                Toast.info(res.data.msg, 2)\n            }\n\n        })\n    }\n\n    toCourseDetail = (id) => {\n        const { dispatch, history } = this.props;\n            history.push(`/detail?id=${id}`);\n            return false;\n    }\n\n    render() {\n        return (\n            <div className='class-box'>\n                <HeaderBar title='分类' arrow={false} cart={false}></HeaderBar>\n                <Loading isLoading={this.state.isLoading}>\n                    <ClassCourseBox toDetail={this.toCourseDetail} data={this.state.camp.list} title={this.state.camp.name} type={1}/>\n                    <ClassCourseBox toDetail={this.toCourseDetail} data={this.state.employment.list} title={this.state.employment.name} type={1}/>\n                    <ClassCourseBox toDetail={this.toCourseDetail} data={this.state.basics.list} title={this.state.basics.name} type={2}/>\n                    <ClassCourseBox toDetail={this.toCourseDetail} data={this.state.advanced.list} title={this.state.advanced.name} type={2}/>\n                    <div className=\"vip\">\n                        {this.state.special.list && this.state.special.list.length > 0 && this.state.special.list.map((item, index) => {\n                            return (\n                                <a onClick={() => this.toCourseDetail(item.course_id)} key={index}>\n                                    <img src={item.course_img} alt=\"\"/>\n                                </a>\n                            )\n                        })\n                        }\n                    </div>\n                </Loading>\n            </div>\n        )\n    }\n}\n\n// 课程图片形式展示 点击图片直接跳转课程详情页面\nfunction ClassCourseA({data, toDetail}) {\n    return (\n        <div className='items-box'>\n            {\n                data && data.length > 0 && data.map((item, index) => {\n                    return (\n                        <a onClick={() => toDetail(item.course_id)} key={index} className='item-banner'>\n                            <img src={item.course_img} alt=\"\"/>\n                            {\n                                (item.is_aist &&\n                                    <span className='return_cash'></span>)\n                            }\n                        </a>\n                    )\n                })\n            }\n        </div>\n    )\n}\n\n// 课程标签的形式展示  点击标签跳转分类详情页面\nfunction ClassCourseB(props) {\n    return (\n        <div className='items-box'>\n            {\n                props.data && props.data.length > 0 && props.data.map((item, index) => {\n                    return (\n                        <Link to={`/courselist?id=${item.c_id}&name=${item.c_name}`} key={index} className='item-label'>\n                            {item.c_name}\n                        </Link>\n                    )\n                })\n            }\n        </div>\n    )\n}\n\nfunction ClassCourseBox(props) {\n    return (\n        <div className=\"class-course\">\n            <p className='course-items-title'>\n                {\n                    props.title &&\n                    <img src={require('./image/tips.png')} alt=\"\"/>\n                }\n                {props.title}\n            </p>\n            {props.type === 1 &&\n            <ClassCourseA data={props.data} toDetail={props.toDetail} />\n            }\n            {props.type === 2 &&\n            <ClassCourseB data={props.data}/>\n            }\n        </div>\n    )\n}\n\nexport default WithTab(Classify);\n","import React, {Component} from 'react';\nimport {getParam, http, browser} from \"@/utils\";\nimport './camp.scss';\nimport {connect} from \"react-redux\";\nimport {Header, CampTitle, TestItem, ChangeQuestion} from './common/common';\nimport { Toast } from 'antd-mobile';\n\nclass CampTest extends Component {\n    constructor(props) {\n        super(props);\n        this.state = {\n            examList: [], // 问题列表\n            currentExam: {}, // 当前要展示的问题\n            currentQuestionOption: {}, // 切换题目时 用来存储当前问题的选项\n            questionIndex: 1, // 第几个问题\n            numberList: [],// 答题的题号\n            qtitle: \"\",\n            useTime: '00:00',\n            showCard: false,\n        }\n    }\n    componentDidMount() {\n        this.keshi_id = getParam('keshi_id');\n        this.qidP = getParam('qid');\n        let _this = this;\n        // 获取问题列表\n        http.get(`${API.home}/m/aist/get_questions/${this.keshi_id}/${this.qidP}`).then(res => {\n            if(res.data.code === 4040) {\n                Toast.info(res.data.msg, 2, () => {\n                    this.props.history.push('/passport');\n                });\n                return;\n            }else if(res.data.code !== 200){\n                Toast.info(res.data.msg, 2, () => {\n                    this.props.history.push('/');\n                });\n                return;\n            }\n            let data = res.data.data;\n            this.qid = data.id;\n            this.course_id = data.course_id;\n            this.setState({\n                examList: data.list,\n                qtitle: data.qtitle,\n                currentExam: data.list[0],\n            });\n            _this.answerList = [];\n            data.list.map(item => {\n                let obj = {};\n                obj.questionId = item.id;\n                obj.answerId = 0;\n                _this.answerList.push(obj);\n            });\n            _this.time = 0;\n            _this.useTimeInterval = setInterval(function () {\n                _this.time += 1;\n                // _this.useTime = _this.getUseTime(_this.time);\n                _this.setState({\n                    useTime: _this.getUseTime(_this.time)\n                })\n            }, 1000);\n        });\n    };\n    // 关闭按钮\n    close = () => {\n        let isShow = this.state.showCard;\n        if(isShow) {\n            this.setState({\n                showCard: false\n            });\n            this.body = document.getElementsByTagName('body')[0];\n            this.body.style.position = 'static';\n        } else {\n            const { history, location: { state={} } } = this.props;\n            let to = '';\n            if(state.from && state.from.indexOf('video') !== -1) {\n                to='detail'\n            }\n            if(state.from && state.from.indexOf('detail') !== -1) {\n                to='classify'\n            }\n            console.log(this.props);\n            history.push(\n                `${state.from}`,\n                {\n                    to\n                }\n            );\n        }\n    };\n    // 选择答案\n    checkOption = (checkItem) => {\n        let list = this.state.numberList;\n        this.answerList.map(function (item) {\n            if (Number(item.questionId) === Number(checkItem.ques_id)) {\n                item.answerId = checkItem.opt_id;\n            }\n            return item;\n        });\n        list.push(checkItem.ques_id);\n        this.setState({\n            currentQuestionOption: checkItem.opt_id,\n            numberList: list\n        });\n    };\n    // 上一题\n    preQuestion = () => {\n        let index = this.state.questionIndex;\n        if(index === 1) {\n            return;\n        }\n        this.setState({\n            questionIndex: index - 1,\n            currentExam: this.state.examList[index - 2],\n            currentQuestionOption: this.answerList[index - 2].answerId,\n        });\n    };\n    // 下一题\n    nextQuestion = () => {\n        let index = this.state.questionIndex;\n        if(index === this.state.examList.length) {\n            this.setState({\n                showCard: true\n            });\n            return;\n        }\n        this.setState({\n            questionIndex: index + 1,\n            currentExam: this.state.examList[index],\n            currentQuestionOption: this.answerList[index].answerId,\n        });\n    };\n    // 通过答题卡的卡号跳转到对应的题目\n    jumpItem = (item, index) => {\n        this.setState({\n            showCard: false,\n            questionIndex: index + 1,\n            currentExam: this.state.examList[index],\n            currentQuestionOption: this.answerList[index].answerId,\n        })\n    };\n    // 提交\n    commit = () => {\n        let data = {};\n        data.video_id = this.keshi_id;\n        data.qid = this.qid;\n        data.cost_time = this.time;\n        data.uid = this.props.user.data.uid;\n        data.answer_record = this.answerList;\n        http.post(`${API.home}/m/aist/submit`, data).then((res) => {\n            if(res.data.code === 200) {\n                this.props.history.push(`/campResolve?keshi_id=${this.keshi_id}&qid=${this.qid}`)\n            }else{\n                Toast.info(res.data.msg, 2);\n            }\n        });\n    };\n    // 显示答题卡\n    showCard = () => {\n        this.setState({\n            showCard: true\n        });\n        this.body = document.getElementsByTagName('body')[0];\n        this.body.style.position = 'fixed';\n    };\n    // 答题用时的格式化\n    getUseTime = (date) => {\n        let hours = 0,\n            minutes = 0,\n            seconds = 0;\n        hours = `${parseInt(date / (60 * 60))}`.padStart(2, 0);\n        minutes = `${parseInt((date - hours * 3600) / 60)}`.padStart(2, 0);\n        seconds = `${parseInt((date - hours * 3600 - minutes * 60))}`.padStart(2, 0);\n        if (date === 3600 * 24) {\n            clearInterval(this.useTimeInterval);\n            this.useTimeInterval = null;\n        } else {\n            if (date < 3600) {\n                return `${minutes}:${seconds}`\n            } else {\n                return `${hours}:${minutes}:${seconds}`\n            }\n        }\n    };\n\n\n    render() {\n        let {qtitle, currentExam, currentQuestionOption, questionIndex, examList, useTime, showCard, numberList} = this.state;\n        return (\n            <div className='camp-test-container'>\n                <div className={'fixed_container'}>\n                    {/*关闭按钮 时间 答题卡*/}\n                    <Header time={useTime} showCardEve={this.showCard} close={this.close} showCard={showCard} />\n\n                    {/*课后练习题 当前题目 题目总数*/}\n                    <CampTitle qtitle={qtitle} questionIndex={questionIndex} examList={examList}/>\n                </div>\n\n                {/*题目*/}\n                <TestItem questionIndex={questionIndex} checkOption={this.checkOption}  currentExam={currentExam} currentQuestionOption={currentQuestionOption} />\n                {/*切换题目*/}\n                <ChangeQuestion preQuestion={this.preQuestion} nextQuestion={this.nextQuestion} questionIndex={questionIndex} />\n                {/* 答题卡 */}\n                {\n                    showCard && (\n                        <div className='test-card-container' >\n                            <p>{`课后练习:${qtitle}`}</p>\n                            <ul className={'test-item'}>\n                                {\n                                    examList.map((item, index) => {\n                                        return <li key={item.id} onClick={() => {this.jumpItem(item, index)}} className={`layout-flex-center ${numberList.includes(item.id) ? 'answered' : ''}`}>{index + 1}</li>\n                                    })\n                                }\n                            </ul>\n                            <div className={'bottom_commit'}>\n                                <div onClick={this.commit} className={'commit_answer layout-flex-center'}>提交并查看结果</div>\n                            </div>\n                        </div>\n                    )\n                }\n\n            </div>\n        );\n    }\n}\n\nexport default connect(\n    state => ({user: state.user}),\n    null\n)(CampTest)","import React, {Component} from 'react';\nimport {getParam, http, browser} from \"@/utils\";\nimport './camp.scss';\nimport {CampTitle, Header, TestItem, ChangeQuestion, Resolve} from './common/common';\nimport {Toast} from \"antd-mobile\";\n\nclass CampResolve extends Component {\n    constructor(props) {\n        super(props);\n        this.state = {\n            examList: [], // 问题列表\n            currentExam: {}, // 当前要展示的问题\n            currentQuestionOption: {}, // 切换题目时 用来存储当前问题的选项\n            questionIndex: 1, // 第几个问题\n            numberList: [],// 答题的题号\n            qtitle: \"\",\n            useTime: '00:00',\n            showCard: false,\n            rightRate: 0,\n        }\n    }\n    showCard = () => {\n        this.setState({\n            showCard: true\n        });\n        this.body = document.getElementsByTagName('body')[0];\n        this.body.style.position = 'fixed';\n    };\n    close = () => {\n        let isShow = this.state.showCard;\n        if(isShow) {\n            this.setState({\n                showCard: false\n            });\n            this.body = document.getElementsByTagName('body')[0];\n            this.body.style.position = 'static';\n        } else {\n            const { history, location: { state={} } } = this.props;\n            let to = '';\n            if(state.from && state.from.indexOf('video') !== -1) {\n                to='detail'\n            }\n            if(state.from && state.from.indexOf('detail') !== -1) {\n                to='classify'\n            }\n            console.log(this.props);\n            history.push(\n                `${state.from}`,\n                {\n                    to\n                }\n            );\n        }\n    };\n    componentDidMount() {\n        this.keshi_id = getParam('keshi_id');\n        this.qidP = getParam('qid');\n        let _this = this;\n        // 获取问题列表\n        http.get(`${API.home}/m/aist/analysis/${this.keshi_id}/${this.qidP}`).then(res => {\n            console.log(res);\n            if(res.data.code === 4040) {\n                Toast.info(res.data.msg, 2, () => {\n                    this.props.history.push('/passport');\n                });\n                return;\n            }else if(res.data.code !== 200){\n                Toast.info(res.data.msg, 2, () => {\n                    this.props.history.push('/');\n                });\n                return;\n            }\n            let data = res.data.data;\n            this.course_id = data.course_id;\n            _this.answerList = [];\n            this.rightNumber = 0;\n            data.list.map(item => {\n                if(item.compare === 1) {\n                    this.rightNumber++;\n                }\n                let obj = {};\n                obj.questionId = item.id;\n                obj.answerId = 0;\n                _this.answerList.push(obj);\n            });\n            this.setState({\n                examList: data.list,\n                qtitle: data.qtitle,\n                currentExam: data.list[0],\n                useTime: data.cost_time,\n                rightRate: (this.rightNumber/data.list.length * 100).toFixed(0)\n            });\n        });\n    };\n    checkOption = () => {};\n    preQuestion = () => {\n        let index = this.state.questionIndex;\n        if(index === 1) {\n            return;\n        }\n        this.setState({\n            questionIndex: index - 1,\n            currentExam: this.state.examList[index - 2],\n            currentQuestionOption: this.answerList[index - 2].answerId,\n        });\n    };\n    nextQuestion = () => {\n        let index = this.state.questionIndex;\n        if(index === this.state.examList.length) {\n            this.setState({\n                showCard: true\n            });\n            return;\n        }\n        this.setState({\n            questionIndex: index + 1,\n            currentExam: this.state.examList[index],\n            currentQuestionOption: this.answerList[index].answerId,\n        });\n    };\n    // 通过答题卡的卡号跳转到对应的题目\n    jumpItem = (item, index) => {\n        this.setState({\n            showCard: false,\n            questionIndex: index + 1,\n            currentExam: this.state.examList[index],\n            currentQuestionOption: this.answerList[index].answerId,\n        })\n    };\n    formatTime = (time) => {\n        let ary = time.split(':');\n        let str = `${Number(ary[1])}分${ary[2]}秒`;\n        if(Number(ary[0]) !== 0) {\n            str = `${Number(ary[0])}时${str}`\n        }\n        return str;\n    };\n    render() {\n        let {qtitle, currentExam, currentQuestionOption, questionIndex, examList, useTime, showCard, rightRate} = this.state;\n        return (\n            <div className='camp-test-container'>\n                <div className={'fixed_container'}>\n                    <Header time={useTime} showCardEve={this.showCard} close={this.close} showCard={showCard} />\n                    <CampTitle qtitle={qtitle} questionIndex={questionIndex} examList={examList}/>\n                </div>\n                <TestItem questionIndex={questionIndex} checkOption={this.checkOption}  currentExam={currentExam} currentQuestionOption={currentQuestionOption} >\n                    {\n                        currentExam && currentExam.options && <Resolve currentExam={currentExam}/>\n                    }\n                </TestItem>\n                <ChangeQuestion preQuestion={this.preQuestion} nextQuestion={this.nextQuestion} questionIndex={questionIndex} />\n                {\n                    showCard && (\n                        <div className='test-resolve-card-container' >\n                            <div className={'camp-test-header layout-flex-between'}>\n                                <div><i onClick={this.close} className={'iconfont iconiconfront-77 icon-close'} /></div>\n                                <div className='layout-flex-center camp-test-time'>\n                                    <span style={{fontSize: '17px', color: '#333333'}}>{'练习报告'}</span>\n                                </div>\n                                <div className={`icon icon-order no_height`} />\n                            </div>\n\n                            <div className={'report-body'}>\n                                <div className={'right_rate'}>\n                                    <span className={'rate'}>正确率</span>\n                                    <div className={'percentage'}>\n                                        <span>{rightRate}</span>\n                                        <span>%</span>\n                                    </div>\n                                </div>\n\n                                <p className={'use_total_time'}>{`累计用时${this.formatTime(useTime)}`}</p>\n\n                                <ul className={'right_wrong_li'}>\n                                    {\n                                        examList.map((item, index) => {\n                                            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>\n                                        })\n                                    }\n                                </ul>\n                            </div>\n\n                            <div className={'camp-report-bottom'}>\n                                <div className={'bottom_commit layout-flex-center'}>\n                                    <div onClick={this.close} className={'commit_answer layout-flex-center'}>题目解析</div>\n                                </div>\n                            </div>\n                        </div>\n                    )\n                }\n            </div>\n        );\n    }\n}\n\nexport default CampResolve;","import React from 'react';\nfunction format(content) {\n    if(content) {\n        if(content.includes(\"<img\")) {\n            content = content.replace(/<img/g, \"<img style='width: 100%'\");\n        }\n        content = content.replace(/&lt;/g , '<');\n        content = content.replace(/&gt;/g , '>');\n        content = content.replace(/&amp;gt;/g , '');\n        content = content.replace(/&quot;/g , '\"');\n        content = content.replace(/&amp;nbsp;/g , '');\n    }\n    return content;\n}\n\nfunction Header(props) {\n    return (\n        <div className='camp-test-header layout-flex-between'>\n            <div><i onClick={props.close} className={'iconfont iconiconfront-77 icon-close'} /></div>\n            <div className='layout-flex-center camp-test-time'>\n                <i className='icon icon-clock' />\n                <span>{props.time}</span>\n            </div>\n            <div onClick={props.showCardEve} className={`icon icon-order ${props.showCard ? 'no_height' : ''}`} />\n        </div>\n    );\n}\n\nfunction CampTitle(props) {\n    return (\n        <div className='layout-flex-between camp-test-title'>\n            <div className='qtitle'>{`课后练习:${props.qtitle}`}</div>\n            <div className='qnumber'>{`${props.questionIndex}/${props.examList.length}`}</div>\n        </div>\n    );\n}\n\nfunction TestItem(props) {\n    let {questionIndex, currentExam, currentQuestionOption} = props;\n    return (\n        <div className='test-item-container'>\n            <div className='ques item-title' dangerouslySetInnerHTML={{__html: `${questionIndex}.${format(currentExam.ques)}`}} />\n            <ul>\n                {\n                    currentExam.options && currentExam.options.map((item,index)=>{\n                        return (<li key={index}\n                                    onClick={()=>props.checkOption(item)}\n                                    className={`\n                                        ${currentQuestionOption === item.opt_id ? 'option_checked' : ''}\n                                        ${((currentExam.user_answer===0 || currentExam.user_answer) && currentExam.user_answer === item.opt_id) ? 'user_check' : ''}\n                                        ${((currentExam.user_answer===0 || currentExam.user_answer) && currentExam.answer_id === item.opt_id) ? 'right_check' : ''}\n                                    `}\n                        >\n                            <span className='letter'>{String.fromCharCode(Number(index) + 65)}</span>\n                            <span className='des' dangerouslySetInnerHTML={{__html: format(item.des)}} />\n                        </li>)\n                    })\n                }\n            </ul>\n            {\n                props.children\n            }\n        </div>\n    );\n}\n\nfunction ChangeQuestion(props) {\n    return (\n        <div className={'layout-flex-around change_question_container'}>\n            <div onClick={props.preQuestion} className={`change_button pre_question ${props.questionIndex === 1 ? 'first_question' : ''}`}>上一题</div>\n            <div onClick={props.nextQuestion} className={`change_button next_question`}>下一题</div>\n        </div>\n    )\n}\n\nfunction Resolve(props) {\n    let {currentExam} = props;\n    let Test = currentExam.compare === 0 ? '错误' : '正确';\n    let UserIndex, rightIndex;\n    currentExam.options.map((item, index)=>{\n        if(currentExam.answer_id === item.opt_id) {\n            rightIndex = index;\n        }\n        if(currentExam.user_answer !== 0 && currentExam.user_answer === item.opt_id) {\n            UserIndex = <span>{`您的答案是${String.fromCharCode(Number(index) + 65)},`}</span>;\n        }\n    });\n    if(currentExam.user_answer === 0) {\n        UserIndex = <span>{`您的答案是空,`}</span>;\n    }\n    return (\n        <div className={'test-resolve'}>\n            <div className={'isRight'}>\n                <span>{`正确答案是${String.fromCharCode(Number(rightIndex) + 65)},`}</span>\n                {UserIndex}\n                <span>{`回答${Test}。`}</span>\n            </div>\n            <p>解析</p>\n            <div className={'resolve-content'} dangerouslySetInnerHTML={{__html: `${format(currentExam.analysis)}`}} />\n        </div>\n    )\n}\n\nexport {\n    Header,\n    CampTitle,\n    TestItem,\n    ChangeQuestion,\n    Resolve,\n};"],"sourceRoot":""}