// pages/addclass/addclass.js const AV = require("../../lib/av-live-query-weapp-min") const Presence = require("../../model/presence") const Class = require("../../model/class") const { jsonify } = require('../../utils/leancloudutils'); Page({ /** * 页面的初始数据 */ classes: [], current_user: null, data: { loading: true, classes: [] }, add_class:function(event){ class_id = event.currentTarget.dataset.id; class_name = event.currentTarget.dataset.name; pull_presences = this.pull_presences.bind(this); wx.showModal({ title: '确认', content: '是否加入学习'+class_name, success(res) { if (res.confirm) { class_ = AV.Object.createWithoutData("Class_", class_id); presence = new Presence({ user: AV.User.current(), class: class_ }); wx.showLoading({ title: '请稍候', }) presence.save().then(()=>{ pull_presences(); wx.hideLoading(); wx.showToast({ title: '加入成功', icon: "success" }) }, () => { wx.hideLoading(); wx.showToast({ title: '加入失败', icon: "none" }) }).catch(error=>console.error(error.message)); } } }) }, pull_classes: function(){ query = new AV.Query("Class_"); return query.find().then(classes=>{console.log(classes);this.classes=classes}); }, pull_presences: function(){ query = new AV.Query("Presence"); query.equalTo("user", AV.User.current()); query.include("class"); return query.find().then(this.set_presences.bind(this)); }, set_presences: function(presences){ console.log("set_presences"); console.log(presences); present_class_ids = presences.map(presence=>presence.get("class").id); classes = []; current_user = this.current_user; this.classes.map(class_=>{ teacher = class_.get("teacher"); if(present_class_ids.indexOf(class_.id)>-1 || current_user.id==teacher.id){ class_.set("present", true); }else{ class_.set("present", false); classes.push(class_); } }); console.log(classes); this.setData(jsonify({classes})); this.setData({loading: false}); }, /** * 生命周期函数--监听页面加载 */ onLoad: function (options) { wx.showLoading({ title: '加载中', }) this.current_user = AV.User.current(); this.pull_classes().then(this.pull_presences).then(wx.hideLoading); }, /** * 生命周期函数--监听页面初次渲染完成 */ onReady: function () { }, /** * 生命周期函数--监听页面显示 */ onShow: function () { }, /** * 生命周期函数--监听页面隐藏 */ onHide: function () { }, /** * 生命周期函数--监听页面卸载 */ onUnload: function () { }, /** * 页面相关事件处理函数--监听用户下拉动作 */ onPullDownRefresh: function () { this.pull_classes().then(this.pull_presences); }, /** * 页面上拉触底事件的处理函数 */ onReachBottom: function () { }, /** * 用户点击右上角分享 */ onShareAppMessage: function () { } })