You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

154 lines
3.7 KiB

5 years ago
const { Class } = require("../../model/class");
const login = require("../../model/user");
const AV = require("../../lib/av-live-query-weapp-min.js");
const { jsonify } = require('../../utils/leancloudutils');
// pages/class/class.js
const getDataForRender = class_ => ({
name: class_.get('name'),
objectId: class_.get('objectId')
});
Page({
/**
页面的初始数据data用于与.wxlm文件绑定
classes: 课程列表 type: Array
元素class: 课程信息 class.objectId 唯一
class.objectId 课程唯一主键
class.name 课程名称
*/
data: {
classes: [],
loading: true,
5 years ago
},
presences: [],
5 years ago
classes: [],
add_class:function(event){
wx.navigateTo({
url: '../addclass/addclass',
})
},
del_class: function(event){
class_id = event.currentTarget.dataset.class_id;
class_name = event.currentTarget.dataset.class_name;
presence = this.presences.filter(presence=>presence.get("class").id==class_id)[0];
if(presence==null){
console.warn("presence not in list, is it the teacher's classroom?")
return;
}
pull_presences = this.pull_presences.bind(this);
wx.showModal({
title: '退出学习',
content: '退出学习会清零你该门课程的分数',
success(res) {
if (res.confirm) {
wx.showLoading({
title: '请稍候',
})
presence.destroy().then(() => {
pull_presences();
wx.hideLoading();
wx.showToast({
title: '退出成功',
icon: "success"
})
},
() => {
wx.hideLoading();
wx.showToast({
title: '操作失败',
icon: "none"
})
}).catch(error => console.error(error.message));
} } });
},
5 years ago
enter_class: function(event){
console.log(event);
var class_id = event.currentTarget.dataset.class_id;
var class_name = event.currentTarget.dataset.class_name;
wx.navigateTo({
url: "../classroom/classroom?class_id="+class_id+"&"+"class_name="+class_name,
})
},
/**
* 生命周期函数--监听页面加载
*/
onLoad: function (options) {
5 years ago
},
/**
* 生命周期函数--监听页面初次渲染完成
*/
onReady: function () {
},
pull_presences: function(){
console.log("classes.pull_presences");
var query = new AV.Query("Presence");
query.equalTo("user", AV.User.current());
query.include("class");
return query.find().then((presences) => {
this.presences = presences;
console.log(presences);
let classes = presences.map(presence => {return presence.get("class")});
console.log(classes);
query = new AV.Query("Class_");
query.equalTo("teacher", AV.User.current());
query.include("teacher");
query.find().then(myclasses=>{
this.setData(jsonify({classes: classes.concat(myclasses), loading: false}));
})
}).catch(console.error);
},
5 years ago
/**
* 生命周期函数--监听页面显示
*/
onShow: function () {
console.log("classes.onShow()");
if(this.data.loading){
wx.showLoading({
title: '加载中',
})
}
this.pull_presences().then(wx.hideLoading);
5 years ago
},
/**
* 生命周期函数--监听页面隐藏
*/
onHide: function () {
},
/**
* 生命周期函数--监听页面卸载
*/
onUnload: function () {
},
/**
* 页面相关事件处理函数--监听用户下拉动作
*/
onPullDownRefresh: function () {
this.pull_presences();
5 years ago
},
/**
* 页面上拉触底事件的处理函数
*/
onReachBottom: function () {
},
/**
* 用户点击右上角分享
*/
onShareAppMessage: function () {
}
})