From 2abf00efb6d83426ad84342f17252a36aeb5a4e1 Mon Sep 17 00:00:00 2001 From: litian <C21AF165> Date: 星期五, 27 九月 2024 16:09:29 +0800 Subject: [PATCH] rwd --- packageBookService/pages/bookServices/detail/components/learnTask/index.js | 540 ++++++++++++++++++++++++++++++++++++++++++++++++++++------- 1 files changed, 469 insertions(+), 71 deletions(-) diff --git a/packageBookService/pages/bookServices/detail/components/learnTask/index.js b/packageBookService/pages/bookServices/detail/components/learnTask/index.js index e3a9020..76bbb34 100644 --- a/packageBookService/pages/bookServices/detail/components/learnTask/index.js +++ b/packageBookService/pages/bookServices/detail/components/learnTask/index.js @@ -5,7 +5,9 @@ * 椤甸潰鐨勫垵濮嬫暟鎹� */ data: { + height: '', //灞忓箷楂樺害 bookId: '', + cmsPath: '', consumer: '', bookInfo: {}, menuList: [], @@ -13,21 +15,52 @@ name: '', school: '', class: '', - learnTime: '2', + learnTime: '0灏忔椂', taskShow: false, dataList: [], //浠诲姟鍗� tasksListData: [], //宸插~鍐欎换鍔″崟messsge taskInfo: {}, //閫変腑浠诲姟鍗曠洰褰� tasksData: {}, //宸插~鍐欎换鍔″崟 - userId: JSON.parse(wx.getStorageSync(app.config.userInfoKey)).id, + userId: 0, + userName: '', isUpdate: false, - taskId: 0, //榛樿閫変腑鐩綍id + taskId: '', //榛樿閫変腑鐩綍id autosize: { maxHeight: 120, minHeight: 80, }, + disabled: false, + dialogVisible: false, + invitee: "", + teacherEvaluated: false, + evaluated: false, + rowCol: [{ + width: '50%', + }, + { + width: '100%' + }, + { + width: '80%' + }, + { + width: '100%' + }, { + width: '100%' + }, + ], }, - + onShow() { + var that = this; + // 鍔ㄦ�佽幏鍙栧睆骞曢珮搴� + wx.getSystemInfo({ + success: (result) => { + that.setData({ + height: result.windowHeight + }); + }, + }) + }, /** * 鐢熷懡鍛ㄦ湡鍑芥暟--鐩戝惉椤甸潰鍔犺浇 */ @@ -35,22 +68,71 @@ if (options) { this.setData({ bookId: options.bookId, - consumer: options.consumer + cmsPath: options.cmsPath, + taskId: options.taskId, + consumer: options.consumer, + userId: options.userId, + userName: JSON.parse(wx.getStorageSync(app.config.userInfoKey)).nickName }); + if (options.consumer) { + this.setData({ + cmsPath: options.cmsPath, + bookId: options.bookId, + taskId: options.taskId, + consumer: options.consumer, + userId: options.userId, + disabled: true + }); + } else { + this.setData({ + userId: JSON.parse(wx.getStorageSync(app.config.userInfoKey)).userId, + disabled: false + }); + } this.getResourceData() + this.getLearnTime() } }, + getLearnTime() { + app.MG.identity + .getUserKey({ + domain: 'cloudLearningTime', + keys: [this.data.bookId + ''] + }) + .then((res) => { + if (res.length > 0 && JSON.parse(res[0].value) && JSON.parse(res[0].value).length > 0) { + let time = JSON.parse(res[0].value)[0].learnTime + let minutes = Number(time) / (1000 * 60) + let hours = Number(time) / (1000 * 60 * 60) + if (minutes > 0 && minutes < 60) { + this.setData({ + learnTime: Math.round(minutes) + '鍒嗛挓', + }); + } else if (minutes > 60) { + this.setData({ + learnTime: Math.round(hours) + '灏忔椂', + }); + } else { + this.setData({ + learnTime: '0灏忔椂', + }); + } + } + }) + }, + getResourceData() { this.setData({ + menuList: [], loading: true, }); let query = { path: '*', queryType: '*', productId: this.data.bookId, - cmsPath: 'jsek_learningTasks', + cmsPath: this.data.cmsPath, // cmsType: '*', itemFields: { SysType: 'CmsFolder' @@ -66,8 +148,8 @@ }); if (res.datas.cmsDatas[0].datas) { let list = res.datas.cmsDatas[0].datas - let dataLists = [] - list.forEach(async (item) => { + let dataList = [] + list.forEach((item) => { if (item.childrenFolderCount > 0) { let query = { path: '*', @@ -83,32 +165,60 @@ size: 99 } } - const data = await app.MG.store.getProductDetail(query).then((res1) => { - // item.children = res1.datas.cmsDatas[0].datas - return res1.datas.cmsDatas[0].datas + app.MG.store.getProductDetail(query).then((res) => { + item.children = res.datas.cmsDatas[0].datas }) - item.children = data } - dataLists.push(item) + dataList.push(item) }) - this.setData({ - menuList: dataLists, - loading: false - }); - console.log(this.data.menuList) + setTimeout(() => { + this.setData({ + menuList: dataList, + loading: false, + }); + }, 200) + if (this.data.taskId) { + setTimeout(() => { + this.data.menuList.forEach((item) => { + if (item.id == this.data.taskId) { + this.setData({ + taskInfo: item, + }); + } else if (item.children) { + item.children.forEach((item1) => { + if (item1.id == this.data.taskId) { + this.setData({ + taskInfo: item1, + }); + } + }) + } + }) + }, 200) + } else { + setTimeout(() => { + if (this.data.menuList[0].children) { + this.setData({ + taskInfo: this.data.menuList[0].children[0], + }); + } else { + this.setData({ + taskInfo: this.data.menuList[0], + }); + } + }, 200) + } } - this.getTasksList() + setTimeout(() => { + this.getTasksList() + }, 200) }) }, - getTask(e) { - console.log(e, 123) - let data = e.currentTarget.dataset.item - this.setData({ - taskShow: true, - }); - this.taskSelect(data) + let item = e.currentTarget.dataset.item + this.taskSelect(item) }, + onVisibleChange(e) { this.setData({ taskShow: e.detail.visible, @@ -136,55 +246,60 @@ this.setData({ tasksListData: res.datas, }); + if (this.data.taskInfo.name) { + this.taskSelect(this.data.taskInfo) + } }) }, taskSelect(item) { if (!item.children) { this.setData({ taskInfo: item, - dataList: [] + dataList: [], }); if (this.data.tasksListData.length > 0) { this.data.tasksListData.forEach((item1) => { let content = JSON.parse(item1.content) - if (content.id == this.data.taskInfo.id && content.userId == this.data.userId) { - isUpdate.value = true - tasksData.value = item1 - form.name = content.userName - form.school = content.school - form.class = content.class - form.learnTime = content.learnTime - this.setData({ - isUpdate: true, - tasksData: item1, - name: content.userName, - school: content.school, - class: content.class, - learnTime: content.learnTime - }); - this.getChildTasksList() - if (content.evaluate.length > 0) { - content.evaluate.forEach((element) => { - if (this.data.consumer == 'classmate') { - element.mateEvaluation = '' - } - if (this.data.consumer == 'teacher') { - element.teacherEvaluation = '' - } - }) + if (content.id == this.data.taskInfo.id) { + if (content.userId == this.data.userId) { this.setData({ - dataList: content.evaluate + isUpdate: true, + tasksData: item1, + name: content.userName, + school: content.school, + class: content.class, + learnTime: content.learnTime, }); + if (this.data.name && this.data.school && this.data.class) { + this.setData({ + taskShow: true, + }) + } + this.getChildTasksList() + if (content.evaluate.length > 0) { + // content.evaluate.forEach((element) => { + // if (this.data.consumer == 'classmate') { + // element.mateEvaluation = '' + // } + // if (this.data.consumer == 'teacher') { + // element.teacherEvaluation = '' + // } + // }) + this.setData({ + dataList: content.evaluate, + }); + } } - console.log(1111) } else { - this.goDetail(item) + return false } }) - } else { + } + if (this.data.dataList.length == 0) { this.goDetail(item) } } + }, goDetail(item) { this.setData({ @@ -216,10 +331,18 @@ item.teacherEvaluation = '' }) } - this.setData({ - dataList: res.datas.cmsDatas[0].datas - }); - console.log(this.data.dataList, 444) + if (this.data.name && this.data.school && this.data.class) { + this.setData({ + dataList: res.datas.cmsDatas[0].datas, + taskShow: true, + }) + } else { + wx.showToast({ + title: "璇峰厛濉啓涓汉淇℃伅", + icon: 'none', + duration: 1000 + }) + } }) }, getChildTasksList() { @@ -236,52 +359,323 @@ } app.MG.ugc.getChildTopicMessageList(query).then((res) => { if (res.datas.length > 0) { + let list = [] this.data.dataList.forEach((item) => { - console.log(item, 1) + item.teacherEvaluation = [] + item.mateEvaluation = [] res.datas.forEach((item1) => { let content = JSON.parse(item1.content) - if (content.teacherComment) { + if (content.teacherComment.length > 0) { content.teacherComment.forEach((item2) => { if (item.id == item2.childTaskId) { - item.teacherEvaluation.push(item2) + item.teacherEvaluation = [item2] + if (this.data.consumer == 'teacher') { + this.setData({ + evaluated: true + }); + } } }) } - if (content.mateComment) { + if (item.teacherEvaluation && item.teacherEvaluation.length > 0) { + this.setData({ + teacherEvaluated: true + }); + } + if (content.mateComment.length > 0) { content.mateComment.forEach((item3) => { if (item.id == item3.childTaskId) { - item.mateEvaluation.push(item3) + item.mateEvaluation = [...item.mateEvaluation, item3] + if (this.data.consumer == 'classmate') { + if (item.mateEvaluation && item.mateEvaluation.length > 0) { + let data = item.mateEvaluation.find( + (item) => item.userId == this.data.userId + ) + if (data) { + this.setData({ + evaluated: true + }); + item.mateEvaluation = [data] + } else { + this.setData({ + evaluated: false + }); + item.mateEvaluation = '' + } + } + } } }) } }) + list.push(item) }) + this.setData({ + dataList: list + }); } + }) + }, + + // 涓汉淇℃伅濉啓 + bindTnputBlur(e) { + this.setData({ + name: e.detail.value + }) + }, + onSchoolInput(e) { + this.setData({ + school: e.detail.value + }) + }, + bindClassBlur(e) { + this.setData({ + class: e.detail.value }) }, //浠诲姟濉啓 //鍙嶆�� onIntrospectionInput(e) { - console.log(e) - + let index = e.target.dataset.index + let data = 'dataList[' + index + '].introspection' + this.setData({ + [data]: e.detail.value + }); }, //瀹屾垚鎯呭喌 onCompletionInput(e) { - + let index = e.target.dataset.index + let data = 'dataList[' + index + '].completion' + this.setData({ + [data]: e.detail.value + }); }, //鑷繁璇勪环 onSelfInput(e) { - + let index = e.target.dataset.index + let data = 'dataList[' + index + '].selfEvaluation' + this.setData({ + [data]: e.detail.value + }); }, //鍚屼即璇勪环 onMateInput(e) { - + let index = e.target.dataset.index + let data = 'dataList[' + index + '].mateEvaluation' + this.setData({ + [data]: e.detail.value + }); }, //鑰佸笀璇勪环 onTeacherInput(e) { + let index = e.target.dataset.index + let data = 'dataList[' + index + '].teacherEvaluation' + this.setData({ + [data]: e.detail.value + }); + }, + //鎻愪氦鑷繁濉啓 + inviteBtn() { + let empty = false + this.data.dataList.forEach((item) => { + if (item.introspection == '' || item.completion == '' || item.selfEvaluation == '') { + empty = true + return false + } + }) + if (empty) { + wx.showToast({ + title: "璇峰厛濉啓瀹岃嚜宸卞涔犳儏鍐�", + icon: 'none', + duration: 1000 + }) + } else { + let evaluate = [] + this.data.dataList.forEach((item) => { + evaluate.push({ + id: item.id, + name: item.name, + subtaskDescription: item.subtaskDescription, + learningSuggestions: item.subtaskDescription, + introspection: item.introspection, + completion: item.completion, + selfEvaluation: item.selfEvaluation, + mateEvaluation: [], + teacherEvaluation: [] + }) + }) + let content = { + bookName: this.data.bookInfo.name, + userName: this.data.name, + userId: this.data.userId, + school: this.data.school, + class: this.data.class, + learnTime: this.data.learnTime, + id: this.data.taskInfo.id, + taskName: this.data.taskInfo.name, + productLinkPath: this.data.taskInfo.productLinkPath, + evaluate: evaluate + } + let query = { + topicIdOrRefCode: 'learningTasks', + name: this.data.bookInfo.name, + content: JSON.stringify(content), + type: 'learningTasks', + cmsTypeRefCode: '', + newDataListRequest: [] + } + app.MG.ugc.newTopicMessage(query).then((res) => { + this.getTasksList() + this.setData({ + dialogVisible: true + }); + }) + } + }, + updateSubmit() { + let evaluate = [] + this.data.dataList.forEach((item) => { + evaluate.push({ + id: item.id, + name: item.name, + subtaskDescription: item.subtaskDescription, + learningSuggestions: item.subtaskDescription, + introspection: item.introspection, + completion: item.completion, + selfEvaluation: item.selfEvaluation, + mateEvaluation: [], + teacherEvaluation: [] + }) + }) + let content = { + bookName: this.data.bookInfo.name, + userName: this.data.name, + userId: this.data.userId, + school: this.data.school, + class: this.data.class, + learnTime: this.data.learnTime, + id: this.data.taskInfo.id, + taskName: this.data.taskInfo.name, + productLinkPath: this.data.taskInfo.productLinkPath, + evaluate: evaluate + } + + let query = { + topicIdOrRefCode: 'learningTasks', + id: this.data.tasksData.id, + name: this.data.bookInfo.name, + type: 'learningTasks', + content: JSON.stringify(content), + newDataRequests: [], + updateDataRequests: [] + } + app.MG.ugc.updateTopicMessage(query).then((res) => { + this.getTasksList() + this.setData({ + dialogVisible: true + }); + }) + }, + onInviteeChange(e) { + this.setData({ + invitee: e.detail.value + }); + }, + + handleClose() { + this.setData({ + dialogVisible: false, + invitee: '' + }); + }, + + confirmBtn() { + if (this.data.invitee == 'teacher' && this.data.teacherEvaluated) { + wx.showToast({ + title: "鏁欏笀宸茬粡璇勪环锛屼笉鑳藉啀閭�璇锋暀甯堣瘎浠凤紒", + icon: 'none', + duration: 1000 + }) + } else { + wx.showShareMenu({ + withShareTicket: true + }); + } + + }, + submitComment() { + let mateEvaluationList = [] + let teacherEvaluationList = [] + this.data.dataList.forEach((item) => { + if (this.data.consumer == 'classmate') { + if (item.mateEvaluation && item.mateEvaluation != '') { + mateEvaluationList.push({ + childTaskId: item.id, + userId: this.data.userId, + userName: this.data.userName, + evaluation: item.mateEvaluation + }) + } + } + if (this.data.consumer == 'teacher') { + if (item.teacherEvaluation && item.teacherEvaluation != '') { + teacherEvaluationList.push({ + childTaskId: item.id, + userId: this.data.userId, + userName: this.data.userName, + evaluation: item.teacherEvaluation + }) + } + } + }) + if (this.data.consumer == 'classmate') { + if (mateEvaluationList.length < this.data.dataList.length) { + wx.showToast({ + title: "璇峰厛濉啓璇勪环", + icon: 'none', + duration: 1000 + }) + } + } + if (this.data.consumer == 'teacher') { + if (teacherEvaluationList.length < this.data.dataList.length) { + wx.showToast({ + title: "璇峰厛濉啓璇勪环", + icon: 'none', + duration: 1000 + }) + } + } + let content = { + id: this.data.taskInfo.id, + taskName: this.data.taskInfo.name, + productLinkPath: this.data.taskInfo.productLinkPath, + mateComment: mateEvaluationList, + teacherComment: teacherEvaluationList + } + + let query = { + topicIdOrRefCode: 'learningTasks', + parentId: this.data.tasksData.id, + name: this.data.bookInfo.name, + type: 'learningTasks', + content: JSON.stringify(content), + cmsTypeRefCode: '', + newDataListRequest: [] + } + app.MG.ugc.newTopicMessage(query).then((res) => { + this.getTasksList() + wx.showToast({ + title: "璇勪环宸叉彁浜�", + icon: 'success', + duration: 1000 + }) + }) + }, + /** * 椤甸潰鐩稿叧浜嬩欢澶勭悊鍑芥暟--鐩戝惉鐢ㄦ埛涓嬫媺鍔ㄤ綔 */ @@ -300,6 +694,10 @@ * 鐢ㄦ埛鐐瑰嚮鍙充笂瑙掑垎浜� */ onShareAppMessage() { - + return { + title: '璇勪环瀛︿範浠诲姟鍗�', + path: `packageBookService/pages/bookServices/detail/components/learnTask/index?bookId=${this.data.bookId}&consumer=${this.data.invitee}&taskId=${this.data.taskInfo.id}&userId=${this.data.userId}&cmsPath=${this.data.cmsPath}`, + imgUrl: 'https://jsek.bnuic.com/home/image/click-icon.png', + } } }) \ No newline at end of file -- Gitblit v1.9.1