// pages/mark_detail/mark_detail.js const app = getApp(); const AV = require("../../lib/av-live-query-weapp-min"); const {jsonify} = require("../../utils/leancloudutils") Page({ /** * 页面的初始数据 */ students_login_name: {}, data: { grades: [], loading: true, exercises: [], navData: [ { text: "全部", login: "*" }, { text: '我的', login: app.client.current_user.login }, ], currentTab: 0, navScrollLeft: 0 }, //@todo: 退出课堂姓名的获取?? pull_students:function(){ //@todo limit:20=>solve return app.client.get_course_students({course_id: this.course_id}) .then(res=>{ let students = res.data.students; for(var student of students){ this.students_login_name[student.login] = student.name; } console.log(this.students_login_name); }) }, pull_grades: function(){ let query = new AV.Query("Grade"); query.equalTo("edu_course_id", this.course_id); return query.find().then(grades=>{ console.log(grades); console.log(this.students_login_name); grades = grades.filter(grade=>{console.log(grade.edu_account_login);return grade.edu_account_login in this.students_login_name}); grades = grades.map(grade=>{ grade.set("name", this.students_login_name[grade.edu_account_login]); grade = grade.toJSON(); grade["time"]=grade["createdAt"].slice(0, 10); return grade; }); this.setData({grades}); console.log(this.data); }) }, /** * 生命周期函数--监听页面加载 */ onLoad: function (options) { this.course_id = options.course_id; this.course_id = "3518" console.log(this.course_id); this.pull_students().then(this.pull_grades); }, /** * 生命周期函数--监听页面初次渲染完成 */ onReady: function () { }, /** * 生命周期函数--监听页面显示 */ onShow: function () { }, /** * 生命周期函数--监听页面隐藏 */ onHide: function () { }, /** * 生命周期函数--监听页面卸载 */ onUnload: function () { }, /** * 页面相关事件处理函数--监听用户下拉动作 */ onPullDownRefresh: function () { }, /** * 页面上拉触底事件的处理函数 */ onReachBottom: function () { }, /** * 用户点击右上角分享 */ onShareAppMessage: function () { }, switchNav(event) { var cur = event.currentTarget.dataset.current; //每个tab选项宽度占1/5 var singleNavWidth = this.data.windowWidth / 3; //tab选项居中 this.setData({ navScrollLeft: (cur - 1) * singleNavWidth }) if (this.data.currentTab == cur) { return false; } else { this.setData({ currentTab: cur }) } }, switchTab(event) { var cur = event.detail.current; var singleNavWidth = this.data.windowWidth / 5; this.setData({ currentTab: cur, navScrollLeft: (cur - 1) * singleNavWidth }); } })