{"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(/</g , '<');\n content = content.replace(/>/g , '>');\n content = content.replace(/&gt;/g , '');\n content = content.replace(/"/g , '\"');\n content = content.replace(/&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":""}