{"version":3,"sources":["components/classify/index.js","components/video/camp/campTest.js","components/video/camp/campResolve.js","components/video/camp/common/common.js","components/classify/image/tips.png"],"names":["Classify","connect","props","toCourseDetail","id","history","push","state","camp","employment","basics","advanced","special","isLoading","http","get","API","home","then","res","data","code","setState","common","length","info","msg","className","title","arrow","cart","this","ClassCourseBox","toDetail","list","name","type","map","item","index","onClick","course_id","key","src","course_img","alt","Component","ClassCourseA","is_aist","ClassCourseB","to","c_id","c_name","require","WithTab","CampTest","close","showCard","body","document","getElementsByTagName","style","position","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","_this","forEach","obj","setInterval","showCardEve","includes","CampResolve","formatTime","ary","split","str","rightRate","rightNumber","compare","toFixed","options","fontSize","color","answer_id","user_answer","format","content","replace","Header","CampTitle","TestItem","dangerouslySetInnerHTML","__html","ques","String","fromCharCode","des","children","ChangeQuestion","Resolve","UserIndex","rightIndex","Test","analysis","module","exports"],"mappings":"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","file":"mrstaticjs/Classify.bbf99f6b.chunk.js","sourcesContent":["/* eslint-disable jsx-a11y/anchor-is-valid */\nimport React, { Component } from \"react\"\nimport { WithTab } from \"src/HOCs\"\nimport \"./index.scss\"\nimport { http } from \"src/utils\"\nimport { Link } from \"react-router-dom\"\nimport { Toast } from \"antd-mobile\"\nimport { HeaderBar } from \"src/common\"\nimport Loading from \"src/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      } else {\n        Toast.info(res.data.msg, 2)\n      }\n    })\n  }\n\n  toCourseDetail = (id) => {\n    const { 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\n            toDetail={this.toCourseDetail}\n            data={this.state.camp.list}\n            title={this.state.camp.name}\n            type={1}\n          />\n          <ClassCourseBox\n            toDetail={this.toCourseDetail}\n            data={this.state.employment.list}\n            title={this.state.employment.name}\n            type={1}\n          />\n          <ClassCourseBox\n            toDetail={this.toCourseDetail}\n            data={this.state.basics.list}\n            title={this.state.basics.name}\n            type={2}\n          />\n          <ClassCourseBox\n            toDetail={this.toCourseDetail}\n            data={this.state.advanced.list}\n            title={this.state.advanced.name}\n            type={2}\n          />\n          <div className=\"vip\">\n            {this.state.special.list &&\n              this.state.special.list.length > 0 &&\n              this.state.special.list.map((item, index) => {\n                return (\n                  <a\n                    onClick={() => this.toCourseDetail(item.course_id)}\n                    key={index}\n                  >\n                    <img src={item.course_img} alt=\"\" />\n                  </a>\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      {data &&\n        data.length > 0 &&\n        data.map((item, index) => {\n          return (\n            <a\n              onClick={() => toDetail(item.course_id)}\n              key={index}\n              className=\"item-banner\"\n            >\n              <img src={item.course_img} alt=\"\" />\n              {item.is_aist && <span className=\"return_cash\"></span>}\n            </a>\n          )\n        })}\n    </div>\n  )\n}\n\n// 课程标签的形式展示  点击标签跳转分类详情页面\nfunction ClassCourseB(props) {\n  return (\n    <div className=\"items-box\">\n      {props.data &&\n        props.data.length > 0 &&\n        props.data.map((item, index) => {\n          return (\n            <Link\n              to={`/courselist?id=${item.c_id}&name=${item.c_name}`}\n              key={index}\n              className=\"item-label\"\n            >\n              {item.c_name}\n            </Link>\n          )\n        })}\n    </div>\n  )\n}\n\nfunction ClassCourseBox(props) {\n  return (\n    <div className=\"class-course\">\n      <p className=\"course-items-title\">\n        {props.title && <img src={require(\"./image/tips.png\")} alt=\"\" />}\n        {props.title}\n      </p>\n      {props.type === 1 && (\n        <ClassCourseA data={props.data} toDetail={props.toDetail} />\n      )}\n      {props.type === 2 && <ClassCourseB data={props.data} />}\n    </div>\n  )\n}\n\nexport default WithTab(Classify)\n","import React, { Component } from \"react\"\nimport { getParam, http } from \"src/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\n      .get(`${API.home}/m/aist/get_questions/${this.keshi_id}/${this.qidP}`)\n      .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.forEach((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 {\n        history,\n        location: { state = {} },\n      } = 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(`${state.from}`, {\n        to,\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(\n          `/campResolve?keshi_id=${this.keshi_id}&qid=${this.qid}`,\n          { from: this.props.location.state.from }\n        )\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  render() {\n    let {\n      qtitle,\n      currentExam,\n      currentQuestionOption,\n      questionIndex,\n      examList,\n      useTime,\n      showCard,\n      numberList,\n    } = this.state\n    return (\n      <div className=\"camp-test-container\">\n        <div className={\"fixed_container\"}>\n          {/*关闭按钮 时间 答题卡*/}\n          <Header\n            time={useTime}\n            showCardEve={this.showCard}\n            close={this.close}\n            showCard={showCard}\n          />\n\n          {/*课后练习题 当前题目 题目总数*/}\n          <CampTitle\n            qtitle={qtitle}\n            questionIndex={questionIndex}\n            examList={examList}\n          />\n        </div>\n\n        {/*题目*/}\n        <TestItem\n          questionIndex={questionIndex}\n          checkOption={this.checkOption}\n          currentExam={currentExam}\n          currentQuestionOption={currentQuestionOption}\n        />\n        {/*切换题目*/}\n        <ChangeQuestion\n          preQuestion={this.preQuestion}\n          nextQuestion={this.nextQuestion}\n          questionIndex={questionIndex}\n        />\n        {/* 答题卡 */}\n        {showCard && (\n          <div className=\"test-card-container\">\n            <p>{`课后练习:${qtitle}`}</p>\n            <ul className={\"test-item\"}>\n              {examList.map((item, index) => {\n                return (\n                  <li\n                    key={item.id}\n                    onClick={() => {\n                      this.jumpItem(item, index)\n                    }}\n                    className={`layout-flex-center ${\n                      numberList.includes(item.id) ? \"answered\" : \"\"\n                    }`}\n                  >\n                    {index + 1}\n                  </li>\n                )\n              })}\n            </ul>\n            <div className={\"bottom_commit\"}>\n              <div\n                onClick={this.commit}\n                className={\"commit_answer layout-flex-center\"}\n              >\n                提交并查看结果\n              </div>\n            </div>\n          </div>\n        )}\n      </div>\n    )\n  }\n}\n\nexport default connect((state) => ({ user: state.user }), null)(CampTest)\n","import React, { Component } from \"react\"\nimport { getParam, http } from \"src/utils\"\nimport \"./camp.scss\"\nimport {\n  CampTitle,\n  Header,\n  TestItem,\n  ChangeQuestion,\n  Resolve,\n} 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 {\n        history,\n        location: { state = {} },\n      } = 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(`${state.from}`, {\n        to,\n      })\n    }\n  }\n  componentDidMount() {\n    this.keshi_id = getParam(\"keshi_id\")\n    this.qidP = getParam(\"qid\")\n    let _this = this\n    // 获取问题列表\n    http\n      .get(`${API.home}/m/aist/analysis/${this.keshi_id}/${this.qidP}`)\n      .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.forEach((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 {\n      qtitle,\n      currentExam,\n      currentQuestionOption,\n      questionIndex,\n      examList,\n      useTime,\n      showCard,\n      rightRate,\n    } = this.state\n    return (\n      <div className=\"camp-test-container\">\n        <div className={\"fixed_container\"}>\n          <Header\n            time={useTime}\n            showCardEve={this.showCard}\n            close={this.close}\n            showCard={showCard}\n          />\n          <CampTitle\n            qtitle={qtitle}\n            questionIndex={questionIndex}\n            examList={examList}\n          />\n        </div>\n        <TestItem\n          questionIndex={questionIndex}\n          checkOption={this.checkOption}\n          currentExam={currentExam}\n          currentQuestionOption={currentQuestionOption}\n        >\n          {currentExam && currentExam.options && (\n            <Resolve currentExam={currentExam} />\n          )}\n        </TestItem>\n        <ChangeQuestion\n          preQuestion={this.preQuestion}\n          nextQuestion={this.nextQuestion}\n          questionIndex={questionIndex}\n        />\n        {showCard && (\n          <div className=\"test-resolve-card-container\">\n            <div className={\"camp-test-header layout-flex-between\"}>\n              <div>\n                <i\n                  onClick={this.close}\n                  className={\"iconfont iconiconfront-77 icon-close\"}\n                />\n              </div>\n              <div className=\"layout-flex-center camp-test-time\">\n                <span style={{ fontSize: \"17px\", color: \"#333333\" }}>\n                  {\"练习报告\"}\n                </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(\n                useTime\n              )}`}</p>\n\n              <ul className={\"right_wrong_li\"}>\n                {examList.map((item, index) => {\n                  return (\n                    <li\n                      onClick={() => {\n                        this.jumpItem(item, index)\n                      }}\n                      className={`layout-flex-center ${\n                        item.answer_id === item.user_answer ? \"right\" : \"wrong\"\n                      } ${item.user_answer === 0 ? \"noSelect\" : \"\"}`}\n                      key={item.answer_id}\n                    >\n                      {index + 1}\n                    </li>\n                  )\n                })}\n              </ul>\n            </div>\n\n            <div className={\"camp-report-bottom\"}>\n              <div className={\"bottom_commit layout-flex-center\"}>\n                <div\n                  onClick={this.close}\n                  className={\"commit_answer layout-flex-center\"}\n                >\n                  题目解析\n                </div>\n              </div>\n            </div>\n          </div>\n        )}\n      </div>\n    )\n  }\n}\n\nexport default CampResolve\n","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>\n        <i\n          onClick={props.close}\n          className={\"iconfont iconiconfront-77 icon-close\"}\n        />\n      </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\n        onClick={props.showCardEve}\n        className={`icon icon-order ${props.showCard ? \"no_height\" : \"\"}`}\n      />\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\n        className=\"ques item-title\"\n        dangerouslySetInnerHTML={{\n          __html: `${questionIndex}.${format(currentExam.ques)}`,\n        }}\n      />\n      <ul>\n        {currentExam.options &&\n          currentExam.options.map((item, index) => {\n            return (\n              <li\n                key={index}\n                onClick={() => props.checkOption(item)}\n                className={`\n                                        ${\n                                          currentQuestionOption === item.opt_id\n                                            ? \"option_checked\"\n                                            : \"\"\n                                        }\n                                        ${\n                                          (currentExam.user_answer === 0 ||\n                                            currentExam.user_answer) &&\n                                          currentExam.user_answer ===\n                                            item.opt_id\n                                            ? \"user_check\"\n                                            : \"\"\n                                        }\n                                        ${\n                                          (currentExam.user_answer === 0 ||\n                                            currentExam.user_answer) &&\n                                          currentExam.answer_id === item.opt_id\n                                            ? \"right_check\"\n                                            : \"\"\n                                        }\n                                    `}\n              >\n                <span className=\"letter\">\n                  {String.fromCharCode(Number(index) + 65)}\n                </span>\n                <span\n                  className=\"des\"\n                  dangerouslySetInnerHTML={{ __html: format(item.des) }}\n                />\n              </li>\n            )\n          })}\n      </ul>\n      {props.children}\n    </div>\n  )\n}\n\nfunction ChangeQuestion(props) {\n  return (\n    <div className={\"layout-flex-around change_question_container\"}>\n      <div\n        onClick={props.preQuestion}\n        className={`change_button pre_question ${\n          props.questionIndex === 1 ? \"first_question\" : \"\"\n        }`}\n      >\n        上一题\n      </div>\n      <div\n        onClick={props.nextQuestion}\n        className={`change_button next_question`}\n      >\n        下一题\n      </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.forEach((item, index) => {\n    if (currentExam.answer_id === item.opt_id) {\n      rightIndex = index\n    }\n    if (\n      currentExam.user_answer !== 0 &&\n      currentExam.user_answer === item.opt_id\n    ) {\n      UserIndex = (\n        <span>{`您的答案是${String.fromCharCode(Number(index) + 65)},`}</span>\n      )\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(\n          Number(rightIndex) + 65\n        )},`}</span>\n        {UserIndex}\n        <span>{`回答${Test}。`}</span>\n      </div>\n      <p>解析</p>\n      <div\n        className={\"resolve-content\"}\n        dangerouslySetInnerHTML={{ __html: `${format(currentExam.analysis)}` }}\n      />\n    </div>\n  )\n}\n\nexport { Header, CampTitle, TestItem, ChangeQuestion, Resolve }\n","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=\""],"sourceRoot":""}