From 33615d230f898d8dc48c3baed0570f51aef26330 Mon Sep 17 00:00:00 2001 From: 闫增涛 <1829501689@qq.com> Date: 星期二, 19 三月 2024 09:39:29 +0800 Subject: [PATCH] 组卷购买 --- static/images/bookService/examination/zhuangtai-icon.png | 0 packageBookService/pages/bookServices/examination/examination.js | 338 +++++++++++++++++++++++++++++++++ packageBookService/pages/bookServices/detail/index.wxml | 2 packageDomain/pages/sampleBookList/applicationForm/index.js | 2 packageBookService/pages/bookServices/detail/index.js | 88 ++++++++ packageBookService/pages/bookServices/detail/components/testResource/testResource.wxss | 33 +++ packageBookService/pages/bookServices/detail/components/testResource/testResource.wxml | 134 +++---------- 7 files changed, 484 insertions(+), 113 deletions(-) diff --git a/packageBookService/pages/bookServices/detail/components/testResource/testResource.wxml b/packageBookService/pages/bookServices/detail/components/testResource/testResource.wxml index 079fe6e..4d44c62 100644 --- a/packageBookService/pages/bookServices/detail/components/testResource/testResource.wxml +++ b/packageBookService/pages/bookServices/detail/components/testResource/testResource.wxml @@ -1,146 +1,74 @@ <!--pages/bookServices/detail/components/testResource/testResource.wxml--> <view class="test-resource"> <view class="top-btn"> - <t-radio-group - class="test-radio" - t-class="horizontal-box" - value="{{radioItem}}" - bind:change="onRadioChange" - style="margin: 0px" - > + <t-radio-group class="test-radio" t-class="horizontal-box" value="{{radioItem}}" bind:change="onRadioChange" style="margin: 0px"> <view class="card {{radioItem == 'test' ? 'card--active' : ''}}"> <t-radio value="test" icon="none" borderless style="height: 80rpx"> <view class="radio-content" slot="content"> - <t-image - src="{{ radioItem == 'test' ? '/static/images/bookService/detail/practice-icon.png' : '/static/images/bookService/detail/notest.png'}}" - ></t-image> - <text style="color: {{radioItem == 'test' ? '#fff':''}};" - >缁冧範</text - > + <t-image src="{{ radioItem == 'test' ? '/static/images/bookService/detail/practice-icon.png' : '/static/images/bookService/detail/notest.png'}}"></t-image> + <text style="color: {{radioItem == 'test' ? '#fff':''}};">缁冧範</text> </view> </t-radio> </view> <view class="card {{radioItem == 'mock' ? 'card--active' : ''}}"> <t-radio value="mock" icon="none" borderless> <view class="radio-content" slot="content"> - <t-image - src="{{ radioItem == 'mock' ? '/static/images/bookService/detail/checkpaper.png' : '/static/images/bookService/detail/zujuan.png'}}" - ></t-image> + <t-image src="{{ radioItem == 'mock' ? '/static/images/bookService/detail/checkpaper.png' : '/static/images/bookService/detail/zujuan.png'}}"></t-image> <text style="color: {{radioItem == 'mock' ? '#fff':''}};"> - 缁勫嵎</text - > + 缁勫嵎</text> </view> </t-radio> </view> </t-radio-group> - <!-- <t-button - class=" {{selectBtn == 'test' ? 'practice-btn' : 'paper-btn'}}" - theme="default" - size="medium" - style="width: 85px" - bind:tap="changeBtn" - data-type="test" - > - <view slot="content"> - <t-image - src="{{ selectBtn == 'test' ? '/static/images/bookService/detail/practice-icon.png' : '/static/images/bookService/detail/notest.png'}}" - ></t-image> - <text>缁冧範</text> - </view> - </t-button> - <t-button - class=" {{selectBtn == 'mock' ? 'practice-btn' : 'paper-btn'}}" - theme="default" - size="medium" - style="width: 85px" - bind:tap="changeBtn" - data-type="mock" - > - <view slot="content"> - <t-image - src="{{ selectBtn == 'mock' ? '/static/images/bookService/detail/checkpaper.png' : '/static/images/bookService/detail/zujuan.png'}}" - ></t-image> - 缁勫嵎 - </view> - </t-button> --> - <t-button - class="error-btn" - theme="default" - size="medium" - style="padding: 0 12rpx" - bind:tap="goMycollect" - data-answerType="errorQuestion" - > + <t-button class="error-btn" theme="default" size="medium" style="padding: 0 12rpx" bind:tap="goMycollect" data-answerType="errorQuestion"> <view slot="content"> <t-image src="/static/images/bookService/detail/cuoti.png"></t-image> 鎴戠殑閿欓 </view> </t-button> - <t-button - class="collect-btn" - theme="default" - size="medium" - style="padding: 0 12rpx" - bind:tap="goMycollect" - data-answerType="collectQuestion" - > + <t-button class="collect-btn" theme="default" size="medium" style="padding: 0 12rpx" bind:tap="goMycollect" data-answerType="collectQuestion"> <view slot="content"> - <t-image - src="/static/images/bookService/detail/wodeshoucang.png" - ></t-image> + <t-image src="/static/images/bookService/detail/wodeshoucang.png"></t-image> 鎴戠殑鏀惰棌 </view> </t-button> </view> <!-- 缁冧範鍒楄〃 --> - <view - class="resource-list" - wx:for="{{list}}" - wx:key="item.id" - wx:if="{{radioItem == 'test'}}" - > + <view class="resource-list" wx:for="{{list}}" wx:key="item.id" wx:if="{{radioItem == 'test'}}"> <view class="list-title"> <t-image src="/static/images/bookService/detail/test-icon.png"></t-image> <text>{{item.name}}</text> </view> <view class="practice" bind:tap="goTest" data-value="{{item}}"> - <t-image - src="/static/images/bookService/detail/lianxi-icon.png" - ></t-image> + <t-image src="/static/images/bookService/detail/lianxi-icon.png"></t-image> </view> </view> </view> <!-- 缁勫嵎鍒楄〃 --> <view class="mock-data" wx:if="{{radioItem == 'mock'}}"> - <view class="mack-num">宸茬粍鍗穥{mockData.mockList.length}}娆�</view> - <view class="mock-list"> - <view - class="mock-list-box" - wx:for="{{mockData.mockList}}" - data-item="{{item}}" - bind:tap="goMackPaper" - > - <view class="mock-title">{{item.name}}</view> - <view class="mock-message"> - <view class="message-box"> - <view class="mack-state"> - <text wx:if="{{item.state == '3'}}" class="complete state-pad" - >宸插畬鎴�</text - > - <text - wx:elif="{{item.state == '2' || item.state == '1'}}" - class="Incomplete state-pad" - >鏈畬鎴�</text - > - <text wx:else class="Incomplete state-pad">鏈紑濮�</text> + <view wx:if="{{mockData.mockList.length}}"> + <view class="mack-num">宸茬粍鍗穥{mockData.mockList.length}}娆�</view> + <view class="mock-list"> + <view class="mock-list-box" wx:for="{{mockData.mockList}}" data-item="{{item}}" bind:tap="goMackPaper"> + <view class="mock-title">{{item.name}}</view> + <view class="mock-message"> + <view class="message-box"> + <view class="mack-state"> + <text wx:if="{{item.state == '3'}}" class="complete state-pad">宸插畬鎴�</text> + <text wx:elif="{{item.state == '2' || item.state == '1'}}" class="Incomplete state-pad">鏈畬鎴�</text> + <text wx:else class="Incomplete state-pad">鏈紑濮�</text> + </view> + <view class="mock-time">{{item.createDate}}</view> </view> - <view class="mock-time">{{item.createDate}}</view></view - > - <view class="mock-score" wx:if="{{item.report.userScore}}" - >{{item.report.userScore}}鍒�</view - > + <view class="mock-score" wx:if="{{item.report.userScore}}">{{item.report.userScore}}鍒�</view> + </view> </view> </view> </view> -</view> + <view wx:else class="not-mock"> + <t-image src="/static/images/bookService/examination/zhuangtai-icon.png"></t-image> + <view class="not-mock-message note-mock-text">缁勫嵎鏄敹璐瑰姛鑳斤紝璇疯喘涔板悗浣跨敤锛�</view> + <view class="note-mock-price note-mock-text">浠锋牸锛�<text class="mock-price">锟{mockData.price}}</text> 鍏�/娆�</view> + </view> +</view> \ No newline at end of file diff --git a/packageBookService/pages/bookServices/detail/components/testResource/testResource.wxss b/packageBookService/pages/bookServices/detail/components/testResource/testResource.wxss index 10592fc..ed954c7 100644 --- a/packageBookService/pages/bookServices/detail/components/testResource/testResource.wxss +++ b/packageBookService/pages/bookServices/detail/components/testResource/testResource.wxss @@ -31,7 +31,8 @@ .top-btn { display: flex; justify-content: space-evenly; - padding-left: 15rpx; + padding: 0 0 20rpx 15rpx; + border-bottom: 1px solid #EFF0F1; } .top-btn image { @@ -207,4 +208,34 @@ .Incomplete { background-color: #e9e9e9; color: #666; +} + +.not-mock { + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; +} + +.not-mock image { + width: 328rpx; + height: 328rpx; +} + +.note-mock-text { + color: #333; + font-size: 28rpx; +} + +.not-mock-message { + margin: 24rpx 0; +} + +.note-mock-price { + margin-bottom: 50rpx; +} + +.mock-price { + color: #ff6c00; + font-size: 36rpx; } \ No newline at end of file diff --git a/packageBookService/pages/bookServices/detail/index.js b/packageBookService/pages/bookServices/detail/index.js index 0bc5d6c..0b617e4 100644 --- a/packageBookService/pages/bookServices/detail/index.js +++ b/packageBookService/pages/bookServices/detail/index.js @@ -1,6 +1,7 @@ // pages/bookServices/detail/index.js import Message from 'tdesign-miniprogram/message/index.js'; import Toast from 'tdesign-miniprogram/toast'; +import tool from '../../../../assets/js/toolClass' const app = getApp(); Page({ /** @@ -49,7 +50,8 @@ useCount: 0, // 缁勪欢宸蹭娇鐢ㄦ鏁� residue: 0, // 缁勫嵎鍓╀綑娆℃暟 mockList: [] // 鐢ㄦ埛缁勫嵎鎻愪氦淇℃伅 - } + }, + flag: true }, @@ -1115,6 +1117,88 @@ }) } }) - } + }, + // 璐拱缁勫嵎 + async buyMock() { + let res + if (!this.data.mockData.id) return wx.showToast({ + icon: "error", + title: '鏆傛棤缁勫嵎', + mask: true + }) + // 鏋勫缓璁㈠崟鏌ヨ瀵硅薄 + try { + let query = { + remarks: '缁勫嵎', + requests: [ + { + saleMethodId: this.data.mockData.id, + count: 1 + } + ] + } + if (this.data.flag) { + this.setData({ + flag: false + }) + res = await app.MG.store.initOrder(query) + } + if (res.orderNumber && this.data.mockData.price) { + wx.navigateTo({ + url: `/pages/cart/paymentPage/index?orderNumber=${res.orderNumber}`, + }) + } else { + // 0鍏冪洿鎺ラ鍙� + // 纭璁㈠崟 + const confirmOrderRes = await app.MG.store.confirmOrder({ orderNum: res.orderNumber }) + if (confirmOrderRes) { + wx.showToast({ + icon: "success", + title: '棰嗗彇鎴愬姛', + }) + this.setData({ + flag: true + }) + await this.recordBuyMock() // 璁板綍璐拱鏃堕棿 + } + } + } catch (error) { + console.log(error) + } + }, + // 璁板綍璐拱缁勫嵎鏃堕棿 + recordBuyMock() { + const num = this.data.mockData.mockList.length + const id = tool.uuid(8) + const createDate = new Date().getTime() + const mockList = this.data.mockData.mockList + mockList.push({ id, createDate, name: `绗�${num + 1}濂楄瘯鍗穈, state: '0' }) + this.setData({ + 'mockData.mockList': mockList + }) + // 璁板綍璐拱鏃堕棿锛屽苟璁剧姸鎬乻tate涓�1锛岃〃绀哄垰璐拱瀹屾垚缁勫嵎 + app.MG.identity.setUserKey({ + setKeyRequests: [ + { + domain: 'mockData', + key: this.data.bookDetail.id + '', + value: JSON.stringify(this.data.mockData.mockList) + } + ] + }) + }, + // 搴曢儴璐拱鎸夐挳 + buyBtn() { + if (this.data.tabValue == 'brief') { + this.buyBook() + } + else if (this.data.tabValue == 'jsek_cloudLearning') { + console.log('浜戝涔�'); + } else if (this.data.tabValue == 'questionBank') { + this.buyMock() + } else { + console.log(this.data.tabValue); + } + } }) diff --git a/packageBookService/pages/bookServices/detail/index.wxml b/packageBookService/pages/bookServices/detail/index.wxml index e26b9f5..abfcb94 100644 --- a/packageBookService/pages/bookServices/detail/index.wxml +++ b/packageBookService/pages/bookServices/detail/index.wxml @@ -137,7 +137,7 @@ <view class="btn-text">绾歌川鏍蜂功鐢宠</view> </view> <view class="shopCar" bind:tap="addBookShopcCar">鍔犲叆璐墿杞�</view> - <view class="buy" bind:tap="buyBook">绔嬪嵆璐拱</view> + <view class="buy" bind:tap="buyBtn">绔嬪嵆璐拱</view> </view> </scroll-view> <!-- 鎴戣寤鸿寮圭獥 --> diff --git a/packageBookService/pages/bookServices/examination/examination.js b/packageBookService/pages/bookServices/examination/examination.js index a880c26..e5c3c26 100644 --- a/packageBookService/pages/bookServices/examination/examination.js +++ b/packageBookService/pages/bookServices/examination/examination.js @@ -29,6 +29,17 @@ total: 0, // 棰樼洰鎬绘暟 cardList: [], // 鎻愪氦椤�, questionDataList: [], // 鏄剧ず棰樼洰鍒楄〃 + mockid: 0, + uuid: 0, + mockData: { + // 缁勫嵎淇℃伅 + state: '0', + score: 0, // 鎬诲垎 + sumTime: 0, + time: 0, // 绛旈鍓╀綑鏃堕棿 + datas: [], // 鎵�鏈夋ā鑰冭褰曟暟鎹�(棰樼洰鍒楄〃锛岀敤鎴风瓟棰橈紝鑰冭瘯鎶ュ憡) + answer: [] + } }, /** @@ -46,8 +57,14 @@ productLinkPath: options.productLinkPath ? options.productLinkPath : '', rootCmsItemId: options.rootCmsItemId, idPathList: options.idPathList ? JSON.parse(options.idPathList) : [], - answerType: options.answerType + answerType: options.answerType, }); + if (this.data.answerType == 'mock') { + this.setData({ + uuid: options.uuid, + mockid: options.mockid + }) + } this.init() console.log('浼犲弬', options); }, @@ -172,7 +189,6 @@ }, // 鐐瑰嚮绛旈鍗¤烦杞鐩� goQuestion(e) { - console.log(e); const id = e.detail.id this.data.questionDataList.forEach((item, index) => { if (item.id == id) { @@ -296,6 +312,40 @@ // loadings.value = true await this.getErrorIdList() await this.getCollectIdList() // 鑾峰彇鏀惰棌id鍒楄〃 + } else if (this.data.answerType == 'mock') { + this.getErrorList() + this.getCollectIdList() + this.getMockInfo(async (res) => { + let mocklist + try { + mocklist = JSON.parse(res[0].value) + } catch (error) { + mocklist = [] + } + if (mocklist.length && this.data.uuid) { + const oldMockData = mocklist.find((mockItem) => mockItem.id == this.data.uuid) + this.setData({ + 'mockData.state': oldMockData.state, + 'mockData.score': oldMockData.score, + 'mockData.datas': mocklist, + }) + if (oldMockData.state == '0') { + // 缁勫嵎璐拱浜嗭紝浣嗘湭杩涘叆椤甸潰 + await this.getEduQuizConfig() + } else if (oldMockData.state == '1' || oldMockData.state == '2' || oldMockData.state == '3') { + // 缁勫嵎鍚庤繘鍏ヨ繃椤甸潰锛屼絾鏄湭绛旇繃棰� + let oldQuestionList = [] + oldQuestionList = await this.getMockQuestionList() + const userAnswerList = await this.getMockAnswer() + await this.getMockDataList(oldQuestionList, userAnswerList) + this.setData({ + 'mockData.sumTime': oldMockData.time, + cardList: oldQuestionList + }) + + } + } + }) } }, async restart() { @@ -689,7 +739,6 @@ this.setData({ cardList: cardUpdatedList }) - // console.log(this.data.questionDataList, this.data.cardList); }, // 棰樼洰鏀惰棌鎸夐挳,鏀惰棌鍜屽彇娑堝悓涓�鎺ュ彛锛屽彇娑堟暟缁勫噺鍘昏椤筰d setCollect() { @@ -841,7 +890,6 @@ } }) } - // console.log('鏀惰棌', collectList.value) }) }, // 鑾峰彇鏀惰棌澶� @@ -1118,6 +1166,286 @@ }) }) // loadings.value = false - // console.log('閿欓闆�', topicList.value) + }, + // 鑾峰彇缁勫嵎缁撴灉 + async getEduQuizConfig() { + await app.MG.edu + .getEduQuizConfigResult({ + idOrRefCode: this.data.mockid + }) + .then(async (configRes) => { + // 鑾峰彇 鍒嗘暟 鏃堕棿 + this.setData({ + 'mockData.score': configRes.score + }) + try { + this.setData({ + 'mockData.time': JSON.parse(configRes.config).time * 1000 + }) + } catch (error) { + this.setData({ + 'mockData.time': 3600 * 1000 + }) + } + this.setData({ + 'mockData.sumTime': this.data.mockData.time + }) + let itemIds = [] + let numberIndex = 1 + // 鑾峰彇鎶介缁撴灉 + const cardList = configRes.eduQuizConfigStageResultList.map((item) => { + let questionIds = [] + // 鑾峰彇蹇呭惈棰樼洰 + let list = item.cmsItemList.map((idItem) => { + itemIds.push(idItem.id + '') + questionIds.push({ id: idItem.id + '', score: idItem.score }) + numberIndex++ + return { + number: numberIndex, + itemId: idItem.id, + score: idItem.score + } + }) + // 鑾峰彇鎶介棰樼洰 + let extractList = [] + for (let i = 0; i < item.generatorResultList.length; i++) { + const extractItem = item.generatorResultList[i] + let extractItemList = extractItem.cmsItemList.map((extractCmsItem) => { + itemIds.push(extractCmsItem.id + '') + questionIds.push({ id: extractCmsItem.id + '', score: extractCmsItem.score }) + numberIndex++ + return { + number: numberIndex, + itemId: extractCmsItem.id, + score: extractCmsItem.score + } + }) + extractList = extractList.concat(extractItemList) + } + return { + path: item.id, + catalogName: item.name, + infoList: list.concat(extractList) + } + }) + this.setData({ + cardList: cardList + }) + // 鏇存柊璇ユ潯缁勫嵎鐨勬暟鎹姸鎬侊紝鍖呮嫭璁板綍鏀硅瘯鍗锋�诲垎锛屾洿鏀圭粍鍗风姸鎬乻tate涓�1锛岃〃绀哄凡缁忔娊棰樺畬鎴愶紝骞惰灏嗘娊灞夋暟鎹褰曚笅鏉� + if (this.data.mockData.datas && this.data.mockData.datas.length) { + const mockData = this.data.mockData + mockData.datas.forEach((item, index) => { + if (item.id == this.data.uuid) { + item.state = '1' + item.time = mockData.time + item.score = configRes.score + mockData.state = '1' + } + }) + this.setData({ + mockData: mockData + }) + } + this.setMockInfo(this.data.mockData.datas) // 璁板綍璇曞嵎鎬诲垎 鏃堕暱锛屼慨鏀箂tate涓� 1 + // 鏇存柊鏈湴mockData + this.saveMockQuestionList(this.data.cardList) // 璁板綍棰樼洰鍒楄〃 + await this.getMockDataList(this.data.cardList) // 璇锋眰棰樼洰鏁版嵁 + }) + }, + + // 鑾峰彇缁勫嵎鏁版嵁 + getMockInfo(callback) { + app.MG.identity + .getUserKey({ + domain: 'mockData', + keys: [this.data.bookId] + }) + .then((res) => { + if (callback) callback(res) + }) + }, + // 璁板綍璐拱缁勫嵎鏃堕棿 + setMockInfo(data) { + app.MG.identity.setUserKey({ + setKeyRequests: [ + { + domain: 'mockData', + key: this.data.bookId + '', + value: JSON.stringify(data) + } + ] + }) + }, + // 璁板綍缁勫嵎棰樼洰鍒楄〃 + saveMockQuestionList(data) { + app.MG.identity + .setUserKey({ + setKeyRequests: [ + { + domain: 'mockQuestionData', + key: this.data.uuid, + value: JSON.stringify(data) + } + ] + }) + .then((res) => { + console.log('妯¤�冮鐩垪琛ㄥ凡璁板綍') + }) + }, + // 鑾峰彇璁板綍缁勫嵎棰樼洰鍒楄〃 + async getMockQuestionList() { + let list = [] + await app.MG.identity + .getUserKey({ + domain: 'mockQuestionData', + keys: [this.data.uuid] + }) + .then((res) => { + list = JSON.parse(res[0].value) + }) + return list + }, + // 鑾峰彇妯¤�冪敤鎴风瓟棰樻暟鎹� + async getMockAnswer() { + let data + await app.MG.identity + .getUserKey({ + domain: 'mockAnswerData', + keys: [this.data.uuid] + }) + .then((res) => { + if (res[0]) { + this.setData({ + 'mockData.time': JSON.parse(res[0].value).timem, + 'mockData.answer': JSON.parse(res[0].value).answerData + }) + data = JSON.parse(res[0].value).answerData + } + }) + return data + }, + // 缁勫嵎鑾峰彇棰樼洰鍒楄〃 + async getMockDataList(questionList, oldList) { + const questionDataList = this.data.questionDataList + questionList.forEach(async (pathitem, pathindex) => { + let itemIds = [] + pathitem.infoList.forEach(item => { + itemIds.push(item.itemId + '') + }) + let query = { + path: '*', + cmsPath: this.data.rootCmsItemId, + cmsType: '*', + productId: this.data.bookId, + queryType: '*', + itemIds, + itemFields: { + Embedded_QuestionBank_Stem: [], + Embedded_QuestionBank_AnalysisCon: [], + Embedded_QuestionBank_Answer: [], + Embedded_QuestionBank_Option: [], + Embedded_QuestionBank_QuestionType: [], + Embedded_QuestionBank_StemStyle: [], + Embedded_QuestionBank_OptionStyle: [], + Embedded_QuestionBank_KnowledgePoint: [], + Embedded_QuestionBank_Difficulty: [] + } + } + await app.MG.store.getProductDetail(query).then((res) => { + res.datas.cmsDatas[0].datas.forEach((item, index) => { + // 寰幆questionList,缁欐瘡棰樿祴鍊煎垎鏁� + let oldObj + if (oldList) oldObj = oldList.find((oldItem) => oldItem.id == item.id) + let questionObj = { + id: item.id, + stem: + item.Embedded_QuestionBank_QuestionType == 'completion' + ? JSON.parse(item.Embedded_QuestionBank_Stem) + .stemTxt.replaceAll('<vacancy>', ',input,') + .split(',') + : JSON.parse(item.Embedded_QuestionBank_Stem), // 棰樺共 + answer: item.Embedded_QuestionBank_Answer, // 绛旀 + option: item.Embedded_QuestionBank_Option + ? JSON.parse(item.Embedded_QuestionBank_Option) + : '', // 閫夋嫨棰橀�夐」 + analysisCon: item.Embedded_QuestionBank_AnalysisCon, // 瑙f瀽 + questionType: item.Embedded_QuestionBank_QuestionType, // 棰樺瀷 + optionStyle: item.Embedded_QuestionBank_OptionStyle, // 閫夐」鏄剧ず绫诲瀷 + stemStyle: item.Embedded_QuestionBank_StemStyle, // 棰樺共鏄剧ず绫诲瀷 + difficulty: item.Embedded_QuestionBank_Difficulty + ? 4 - item.Embedded_QuestionBank_Difficulty + : 0, // 闅惧害绛夌骇 + userAnswer: oldObj + ? oldObj.answer + : item.Embedded_QuestionBank_QuestionType == 'completion' || + item.Embedded_QuestionBank_QuestionType == 'multipleChoice' + ? [] + : '', + isRight: oldObj ? oldObj.isRight : null, + // isComplete: oldObj ? oldObj.isComplete : false, + isComplete: oldObj ? oldObj.isComplete : false, + isCollect: this.data.collectList.indexOf(item.id) > -1 ? true : false, + isUnfold: '' // 鎺у埗瑙f瀽鐨勬姌鍙犻潰鏉挎槸鍚﹀睍寮� + } + const cardList = this.data.cardList + for (let a = 0; a < cardList.length; a++) { + const cardItem = cardList[a]; + for (let b = 0; b < cardItem.infoList.length; b++) { + if (cardItem.infoList[b].itemId == item.id) { + questionObj.number = cardItem.infoList[b].number; + questionObj.score = cardItem.infoList[b].score; + cardItem.infoList[b] = obj; + } + } + } + this.setData({ + cardList: cardList + }) + // 澶氶�夊拰濉┖绛旀鑲负鏁扮粍锛岃杞崲JSON鏍煎紡 + if ( + questionObj.questionType == 'completion' || + questionObj.questionType == 'multipleChoice' + ) { + try { + questionObj.answer = JSON.parse(questionObj.answer) + } catch (error) { + questionObj.answer = item.Embedded_QuestionBank_Answer + } + } + // 濉┖棰樻敼閫� + if (questionObj.questionType == 'completion') { + let index = 0 + for (let i = 0; i < questionObj.stem.length; i++) { + const item = questionObj.stem[i] + if (item == 'input') { + questionObj.stem[i] = { + num: index, + data: 'input' + } + if (!oldObj) questionObj.userAnswer[index] = '' + index++ + } + } + } + if (oldObj && oldObj.isRight) { + this.setData({ + correctNum: this.data.correctNum + 1 + }) + } + if (item.questionType != 'shortAnswer') { + this.setData({ + subjectiveTotal: this.data.subjectiveTotal + 1 + }) + } + // if (oldObj && isHaveAnswer(oldObj.answer)) countDownRef.value.changeAlready() + questionDataList.push(questionObj) + }) + }) + }) + + this.setData({ + questionDataList: questionDataList, + loading: false + }) } }) \ No newline at end of file diff --git a/packageDomain/pages/sampleBookList/applicationForm/index.js b/packageDomain/pages/sampleBookList/applicationForm/index.js index 19715ff..8cd51e5 100644 --- a/packageDomain/pages/sampleBookList/applicationForm/index.js +++ b/packageDomain/pages/sampleBookList/applicationForm/index.js @@ -1,4 +1,4 @@ -import { worksDataBytool } from "../../../../../assets/js/toolClass.js"; +import { worksDataBytool } from "../../../../assets/js/toolClass.js"; const app = getApp(); Page({ data: { diff --git a/static/images/bookService/examination/zhuangtai-icon.png b/static/images/bookService/examination/zhuangtai-icon.png new file mode 100644 index 0000000..7e1c926 --- /dev/null +++ b/static/images/bookService/examination/zhuangtai-icon.png Binary files differ -- Gitblit v1.9.1