| | |
| | | sliderValue: 0, // 字体滑块 |
| | | startTime: "", //进入页面当前时间 |
| | | pauseTime: 0, //暂停时间 |
| | | |
| | | showDialog: false // 未提交退出拦截弹窗 |
| | | }, |
| | | |
| | | /** |
| | |
| | | idPathList: options.idPathList ? JSON.parse(options.idPathList) : [], |
| | | answerType: options.answerType, |
| | | }); |
| | | // wx.setNavigationBarTitle({ |
| | | // title: options.answerTitle, |
| | | // }) |
| | | if (this.data.answerType == "mock") { |
| | | this.setData({ |
| | | uuid: options.uuid, |
| | |
| | | }); |
| | | } |
| | | this.init(); |
| | | console.log("传参", options); |
| | | }, |
| | | |
| | | /** |
| | |
| | | // 正则表达式匹配<source>标签中的src属性值 |
| | | var srcRegex = /<source\s+src="([^"]+)"/i; |
| | | var srcTwo = /<audio\s+src="([^"]+)"/i; |
| | | |
| | | // 执行正则匹配 |
| | | var match = srcRegex.exec(htmlString); |
| | | const local = srcTwo.exec(htmlString) |
| | | // 如果匹配成功,返回第一个捕获组的内容(src属性的值) |
| | | if (match && match[1]) { |
| | | return match[1]; |
| | | return match[1].replace('../file', app.config.requestCtx + '/file'); |
| | | } else if (local && local[1]) { |
| | | return local[1] |
| | | return local[1].replace('../file', app.config.requestCtx + '/file') |
| | | } else { |
| | | // 如果没有匹配到,返回null |
| | | return null; |
| | |
| | | confirmColor: "#ff6c00", |
| | | cancelColor: "#949494", |
| | | complete: (res) => { |
| | | if (res.cancel) {} |
| | | if (res.cancel) { |
| | | this.setData({ |
| | | showDialog: true |
| | | }) |
| | | } |
| | | if (res.confirm) { |
| | | this.setData({ |
| | | submitStatus: true, |
| | | showDialog: false |
| | | }); |
| | | wx.navigateBack(); |
| | | } |
| | |
| | | // 提交逻辑 |
| | | submitPaper() { |
| | | this.setData({ |
| | | showDialog: false, |
| | | submitStatus: true, |
| | | loading: true, |
| | | }); |
| | |
| | | }); |
| | | if (this.data.answerType == "option") { |
| | | if (this.data) |
| | | // this.startCountdown() |
| | | this.setData({ |
| | | countdownTime: 2 * 60 * 60 * 1000, |
| | | }); |
| | |
| | | oldMockData.state == "2" |
| | | ) { |
| | | this.startCountdown(); |
| | | this.setData({ |
| | | showDialog: true |
| | | }) |
| | | } |
| | | if (oldMockData.state == "3") { |
| | | this.setData({ |
| | |
| | | await this.getQuestionList(value.dataList); |
| | | } else { |
| | | await this.getQuestionList(); // 获取题库题目 |
| | | this.setData({ |
| | | showDialog: true |
| | | }) |
| | | } |
| | | }); |
| | | } |
| | |
| | | }, |
| | | }; |
| | | await app.MG.store.getProductDetail(query).then((res) => { |
| | | if (!res.datas.cmsDatas[0].datas.length) return this.setData({ |
| | | noData: true |
| | | }) |
| | | this.setData({ |
| | | total: res.datas.cmsDatas[0].datas.length, |
| | | }); |
| | |
| | | /\<img/gi, |
| | | '<img style="max-width: 300rpx !important;object-fit: contain;" class="stem-rich-img" ' |
| | | ) |
| | | .replace(/\<p/gi, '<p class="stem-rich-p"'); |
| | | .replace(/\<p/gi, '<p class="stem-rich-p"').replace('../file', app.config.requestCtx + '/file'); |
| | | } |
| | | // 选项富文本处理 |
| | | if ( |
| | |
| | | if (item.txt) |
| | | item.txt = item.txt |
| | | .replace(/\<img/gi, '<img class="option-rich-img"') |
| | | .replace(/\<p/gi, '<p class="stem-rich-p"'); |
| | | .replace(/\<p/gi, '<p class="stem-rich-p"').replace('../file', app.config.requestCtx + '/file'); |
| | | }); |
| | | } |
| | | // 解析富文本处理 |
| | |
| | | }); |
| | | } |
| | | // 有题目再开始倒计时 |
| | | if (this.data.questionDataList.length) this.startCountdown(); |
| | | if (this.data.questionDataList.length) { |
| | | console.log(this.data.questionDataList); |
| | | this.startCountdown(); |
| | | } else { |
| | | this.setData({ |
| | | noData: true |
| | | }) |
| | | } |
| | | this.setData({ |
| | | loading: false, |
| | | }); |
| | |
| | | /\<img/gi, |
| | | '<img style="max-width: 300rpx !important;object-fit: contain;" class="stem-rich-img" ' |
| | | ) |
| | | .replace(/\<p/gi, '<p class="stem-rich-p"'); |
| | | .replace(/\<p/gi, '<p class="stem-rich-p"').replace('../file', app.config.requestCtx + '/file'); |
| | | } |
| | | // 选项富文本处理 |
| | | if ( |
| | |
| | | if (item.txt) |
| | | item.txt = item.txt |
| | | .replace(/\<img/gi, '<img class="option-rich-img"') |
| | | .replace(/\<p/gi, '<p class="stem-rich-p"'); |
| | | .replace(/\<p/gi, '<p class="stem-rich-p"').replace('../file', app.config.requestCtx + '/file'); |
| | | }); |
| | | } |
| | | // 解析富文本处理 |
| | |
| | | /\<img/gi, |
| | | '<img style="max-width: 300rpx !important;object-fit: contain;" class="stem-rich-img" ' |
| | | ) |
| | | .replace(/\<p/gi, '<p class="stem-rich-p"'); |
| | | .replace(/\<p/gi, '<p class="stem-rich-p"').replace('../file', app.config.requestCtx + '/file'); |
| | | } |
| | | // 选项富文本处理 |
| | | if ( |
| | |
| | | if (item.txt) |
| | | item.txt = item.txt |
| | | .replace(/\<img/gi, '<img class="option-rich-img"') |
| | | .replace(/\<p/gi, '<p class="stem-rich-p"'); |
| | | .replace(/\<p/gi, '<p class="stem-rich-p"').replace('../file', app.config.requestCtx + '/file'); |
| | | }); |
| | | } |
| | | // 解析富文本处理 |
| | |
| | | questionObj.stem.stemTxt = questionObj.stem.stemTxt.replace( |
| | | /\<img/gi, |
| | | '<img style="max-width: 300rpx !important;object-fit: contain;" class="stem-rich-img"' |
| | | ); |
| | | ).replace(/\<p/gi, '<p class="stem-rich-p"').replace('../file', app.config.requestCtx + '/file'); |
| | | } |
| | | // 选项富文本处理 |
| | | if ( |
| | |
| | | item.txt = item.txt.replace( |
| | | /\<img/gi, |
| | | '<img class="option-rich-img"' |
| | | ); |
| | | ).replace(/\<p/gi, '<p class="stem-rich-p"').replace('../file', app.config.requestCtx + '/file'); |
| | | }); |
| | | } |
| | | // 听力题修改 |
| | |
| | | }) |
| | | .then((res) => { |
| | | if (res[0]) { |
| | | // 这里的 countdownTime 赋值:如果是时间到了提交,记录的剩余时间就是0,所以:如果是0的话赋值1秒,防止监听到时间为0再次提交 |
| | | this.setData({ |
| | | currentIndex: JSON.parse(res[0].value).currentIndex, |
| | | "mockData.time": JSON.parse(res[0].value).time, |
| | | countdownTime: JSON.parse(res[0].value).time ? |
| | | JSON.parse(res[0].value).time : this.data.mockData.sumTime, |
| | | countdownTime: JSON.parse(res[0].value).time > 0 ? |
| | | JSON.parse(res[0].value).time : 1000, |
| | | "mockData.answer": JSON.parse(res[0].value).answerData, |
| | | }); |
| | | console.log(JSON.parse(res[0].value)); |