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,
|
});
|
}, 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)
|
}
|
}
|
setTimeout(() => {
|
this.getTasksList()
|
}, 200)
|
})
|
},
|
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: 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,
|
});
|
}
|
}
|
} 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',
|
}
|
}
|
})
|