const app = getApp(); Page({ /** * 页面的初始数据 */ data: { height: '', //屏幕高度 bookId: '', cmsPath: '', consumer: '', bookInfo: {}, menuList: [], loading: true, name: '', school: '', class: '', learnTime: '2', taskShow: false, dataList: [], //任务单 tasksListData: [], //已填写任务单messsge taskInfo: {}, //选中任务单目录 tasksData: {}, //已填写任务单 userId: 0, userName: '', isUpdate: false, taskId: 0, //默认选中目录id autosize: { maxHeight: 120, minHeight: 80, }, disabled: false, dialogVisible: false, invitee: "", }, onShow() { var that = this; // 动态获取屏幕高度 wx.getSystemInfo({ success: (result) => { that.setData({ height: result.windowHeight }); }, }) }, /** * 生命周期函数--监听页面加载 */ onLoad(options) { if (options) { this.setData({ bookId: options.bookId, cmsPath: options.cmsPath, taskId: options.bookId, consumer: options.consumer, userId: options.userId, userName: JSON.parse(wx.getStorageSync(app.config.userInfoKey)).name }); if (options.consumer) { this.setData({ cmsPath: options.cmsPath, bookId: options.bookId, taskId: options.bookId, consumer: options.consumer, userId: options.userId, disabled: true }); } else { this.setData({ userId: JSON.parse(wx.getStorageSync(app.config.userInfoKey)).userId, disabled: false }); } this.getResourceData() } }, getResourceData() { this.setData({ loading: true, }); let query = { path: '*', queryType: '*', productId: this.data.bookId, cmsPath: this.data.cmsPath, // cmsType: '*', itemFields: { SysType: 'CmsFolder' }, pading: { start: 0, size: 999 } } app.MG.store.getProductDetail(query).then((res) => { this.setData({ bookInfo: res.datas, }); if (res.datas.cmsDatas[0].datas) { let list = res.datas.cmsDatas[0].datas let dataList = [] list.forEach((item) => { if (item.childrenFolderCount > 0) { let query = { path: '*', queryType: '*', productId: this.data.bookId, cmsPath: item.productLinkPath, // cmsType: '*', itemFields: { SysType: 'CmsFolder' }, pading: { start: 0, size: 99 } } app.MG.store.getProductDetail(query).then((res) => { item.children = res.datas.cmsDatas[0].datas }) } dataList.push(item) }) this.setData({ menuList: dataList, loading: false, }); 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, }); } }) } }) }, 500) } 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], }); } }, 500) } } this.getTasksList() }) }, onVisibleChange(e) { this.setData({ taskShow: e.detail.visible, }); }, onCloseTask() { this.setData({ taskShow: false, dataList: [] }); }, getTasksList() { let query = { start: 0, size: 999, sort: { type: 'Desc', field: 'CreateDate' }, appRefCode: app.config.appRefCode, topicIdOrRefCode: 'learningTasks' } app.MG.ugc.getTopicMessageList(query).then((res) => { this.setData({ tasksListData: res.datas, }); if (this.data.taskInfo) { this.taskSelect(this.data.taskInfo) } }) }, taskSelect(item) { if (!item.children) { this.setData({ taskInfo: item, 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) { if (content.userId == this.data.userId) { this.setData({ isUpdate: true, tasksData: item1, name: content.userName, school: content.school, class: content.class, learnTime: content.learnTime, 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, }); } } } else { this.goDetail(item) } }) } else { this.goDetail(item) } } }, goDetail(item) { this.setData({ dataList: [] }); let query = { path: '*', queryType: '*', productId: this.data.bookId, cmsPath: item.productLinkPath, // cmsType: '*', itemFields: { SysType: 'CmsFolder', subtaskDescription: [], learningSuggestions: [] }, pading: { start: 0, size: 99 } } app.MG.store.getProductDetailNoChildren(query).then((res) => { if (res.datas.cmsDatas[0].datas.length > 0) { res.datas.cmsDatas[0].datas.forEach((item) => { item.introspection = '' item.completion = '' item.selfEvaluation = '' item.mateEvaluation = '' item.teacherEvaluation = '' }) } this.setData({ dataList: res.datas.cmsDatas[0].datas, }); }) }, getChildTasksList() { let query = { start: 0, size: 999, sort: { type: 'Desc', field: 'CreateDate' }, appRefCode: app.config.appRefCode, topicIdOrRefCode: 'learningTasks', parentId: this.data.tasksData.id } app.MG.ugc.getChildTopicMessageList(query).then((res) => { if (res.datas.length > 0) { let list = [] this.data.dataList.forEach((item) => { res.datas.forEach((item1) => { let content = JSON.parse(item1.content) if (content.teacherComment) { content.teacherComment.forEach((item2) => { if (item.id == item2.childTaskId) { item.teacherEvaluation.push(item2) } }) } if (content.mateComment) { content.mateComment.forEach((item3) => { if (item.id == item3.childTaskId) { item.mateEvaluation.push(item3) } }) } }) list.push(item) }) this.setData({ dataList: list }); } }) }, //任务填写 //反思 onIntrospectionInput(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() { wx.showShareMenu({ withShareTicket: true }); }, submitComment() { let mateEvaluationList = [] let teacherEvaluationList = [] this.data.dataList.forEach((item) => { if (this.data.consumer == 'classmate') { if (item.mateEvaluation == '') { wx.showToast({ title: "请先填评价", icon: 'none', duration: 1000 }) } else { mateEvaluationList.push({ childTaskId: item.id, userName: this.data.userName, evaluation: item.mateEvaluation }) } } if (this.data.consumer == 'teacher') { if (item.teacherEvaluation == '') { wx.showToast({ title: "请先填评价", icon: 'none', duration: 1000 }) } else { teacherEvaluationList.push({ childTaskId: item.id, userName: this.data.userName, evaluation: item.teacherEvaluation }) } } }) 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 }) }) }, /** * 页面相关事件处理函数--监听用户下拉动作 */ onPullDownRefresh() { }, /** * 页面上拉触底事件的处理函数 */ onReachBottom() { }, /** * 用户点击右上角分享 */ 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}`, imgUrl: 'https://jsek.bnuic.com/home/image/click-icon.png', } } })