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.
105 lines
2.9 KiB
105 lines
2.9 KiB
5 years ago
|
const app = getApp();
|
||
|
/*
|
||
|
statuses:[]
|
||
|
*/
|
||
|
|
||
|
const getDataForRender = class_ => ({
|
||
|
name: class_.get('name'),
|
||
|
objectId: class_.get('objectId')
|
||
|
});
|
||
|
const categories = [{ text: "我学习的", value: "study" }, { text: "我管理的", value: "manage" }];
|
||
|
Component({
|
||
|
data: {
|
||
|
imgDir: global.config.imgDir,
|
||
|
categories,
|
||
|
statuses: [{ text: "正在进行", value: "processing" }, { text: "已结束", value: "end" }],
|
||
|
courses: [],
|
||
|
status: 0,
|
||
|
user: {},
|
||
|
current_cate: -1
|
||
|
},
|
||
|
attached() {
|
||
|
this.options = {page:1, limit:15};
|
||
|
this.onLoad();
|
||
|
},
|
||
|
pageLifetimes: {
|
||
|
show: function () {
|
||
|
app.syncUser().then(r => {
|
||
|
this.setData({ user: r.user })
|
||
|
});
|
||
|
if (this.data.current_cate >= 0) {
|
||
|
this.pullCourses({refresh:2});
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
methods: {
|
||
|
onCategoryChange: function ({ detail: { current, value } }) {
|
||
|
console.log("category change", current);
|
||
|
this.options["category"] = value.value;
|
||
|
this.pullCourses({refresh:2});
|
||
|
this.setData({ category: value.value });
|
||
|
},
|
||
|
onStatusChange: function ({ detail: { value } }) {
|
||
|
this.options["status"] = value.value;
|
||
|
this.pullCourses({refresh:2});
|
||
|
},
|
||
|
show_join_course_modal: function (event) {
|
||
|
this.setData({ show_join_course_modal: true });
|
||
|
},
|
||
|
|
||
|
enter_course: function (event) {
|
||
|
console.log(event);
|
||
|
let { id, course_name } = event.currentTarget.dataset;
|
||
|
wx.navigateTo({
|
||
|
url: "/course/pages/course/course?course_id=" + id + "&course_name=" + course_name,
|
||
|
})
|
||
|
},
|
||
|
|
||
|
pullCourses: function ({ refresh=0} = {}) {
|
||
|
if(refresh){
|
||
|
if(refresh==1){
|
||
|
this.options.page=1;
|
||
|
var {options:data}=this;
|
||
|
}else if(refresh==2){
|
||
|
var {limit, page, status, category}=this.options;
|
||
|
var data = {limit: page*limit, page:1, status, category};
|
||
|
}
|
||
|
}else{
|
||
|
this.options.page++;
|
||
|
var {options:data}=this;
|
||
|
}
|
||
|
return app.callApi({
|
||
|
name: "weapps.home", data,
|
||
|
complete: () => { this.setData({ loading: false }) }
|
||
|
})
|
||
|
.then(res => {
|
||
|
let { courses } = res;
|
||
|
if (data.status)
|
||
|
courses = courses.filter(i => {
|
||
|
return i.is_end == (status == "end")
|
||
|
});
|
||
|
console.log(courses);
|
||
|
if(!refresh)
|
||
|
courses = this.data.courses.concat(courses);
|
||
|
this.setData({ courses });
|
||
|
}).catch(e => {
|
||
|
this.setData({ courses: [] });
|
||
|
});
|
||
|
},
|
||
|
onLoad: function (options) {
|
||
|
console.log(app.user());
|
||
|
if (app.user().is_teacher)
|
||
|
var current_cate = 1;
|
||
|
else
|
||
|
var current_cate = 0;
|
||
|
this.setData({ current_cate });
|
||
|
},
|
||
|
onReachBottom(){
|
||
|
this.pullCourses();
|
||
|
},
|
||
|
onPullDownRefresh: function () {
|
||
|
//console.log("pulldownrefresh");
|
||
|
this.pullCourses({refresh:2});
|
||
|
},
|
||
|
}
|
||
|
})
|