{"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_zhanghaozhe_server_mr_julyedu_node_modules_babel_preset_react_app_node_modules_babel_runtime_helpers_esm_classCallCheck__WEBPACK_IMPORTED_MODULE_2__","this","_Users_zhanghaozhe_server_mr_julyedu_node_modules_babel_preset_react_app_node_modules_babel_runtime_helpers_esm_possibleConstructorReturn__WEBPACK_IMPORTED_MODULE_4__","_Users_zhanghaozhe_server_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","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":"mrstatic/js/Classify.9026b6f9.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.body = document.getElementsByTagName('body')[0];\n                this.body.style.position = 'static';\n                this.props.history.push(`/campResolve?keshi_id=${this.keshi_id}&qid=${this.qid}`, {from: this.props.location.state.from})\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":""}