const app = getApp(); Page({ /** * 页面的初始数据 */ data: { height: '', //屏幕高度 bookId: '', cmsPath: '', consumer: '', bookInfo: {}, menuList: [], loading: true, name: '', school: '', class: '', learnTime: '0小时', taskShow: false, dataList: [], //任务单 tasksListData: [], //已填写任务单messsge taskInfo: {}, //选中任务单目录 tasksData: {}, //已填写任务单 userId: 0, userName: '', isUpdate: false, 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 }); }, }) }, /** * 生命周期函数--监听页面加载 */ onLoad(options) { if (options) { this.setData({ bookId: options.bookId, 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: 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) }) setTimeout(() => { this.setData({ menuList: dataList, loading: false, }); }, 500) 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) } } setTimeout(() => { this.getTasksList() }, 500) }) }, getTask(e) { let item = e.currentTarget.dataset.item this.taskSelect(item) }, 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.name) { 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: this.data.learnTime, }); if (this.data.name && this.data.school && this.data.class) { this.setData({ taskShow: true, }) this.getChildTasksList() if (content.evaluate.length > 0) { this.setData({ dataList: content.evaluate, }); } } else { wx.showToast({ title: "请先填写个人信息", icon: 'none', duration: 1000 }) } } } else { return false } }) } if (this.data.dataList.length == 0) { 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 = '' }) } 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() { 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) => { item.teacherEvaluation = [] item.mateEvaluation = [] res.datas.forEach((item1) => { let content = JSON.parse(item1.content) if (content.teacherComment.length > 0) { content.teacherComment.forEach((item2) => { if (item.id == item2.childTaskId) { item.teacherEvaluation = [item2] if (this.data.consumer == 'teacher') { this.setData({ evaluated: true }); } } }) } 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 = [...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) { 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 }); }, confirmBtn1() { wx.showToast({ title: "教师已经评价,不能再邀请教师评价!", icon: 'none', duration: 1000 }) }, 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 }) }) }, /** * 页面相关事件处理函数--监听用户下拉动作 */ 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}&cmsPath=${this.data.cmsPath}`, imgUrl: 'https://jsek.bnuic.com/home/image/click-icon.png', } } })