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.
94 lines
2.5 KiB
94 lines
2.5 KiB
const app = getApp();
|
|
Page({
|
|
data: {
|
|
course:{
|
|
name:"**课堂邀请",
|
|
teacher_name:"点击最下方按钮",
|
|
teacher_school:"登陆后查看"
|
|
},
|
|
user:{},
|
|
status:0,
|
|
eduImgDir:global.config.eduImgDir
|
|
},
|
|
onImgError(e){
|
|
console.log("onImgError", e);
|
|
let path = this.getPageUrl();
|
|
wx.cloud.callFunction({ name: "openapi", data: { action:"getWXACode", path}})
|
|
.then(res=>{
|
|
this.setData({invite_code_url:""});
|
|
this.setData({invite_code_url: res.result})
|
|
});
|
|
},
|
|
login:function(){
|
|
app.navigateTo({
|
|
url: '{login}',
|
|
});
|
|
},
|
|
onTapCode(){
|
|
let data = this.data.course.invite_code || this.data.options.invite_code;
|
|
wx.setClipboardData({
|
|
data
|
|
})
|
|
},
|
|
preview(){
|
|
wx.previewImage({
|
|
urls: [this.data.invite_code_url],
|
|
})
|
|
},
|
|
joinCourse: function(event) {
|
|
//@todo 助教加入..
|
|
let invite_code = this.data.course.invite_code||this.data.options.invite_code;
|
|
let data = { invite_code, student: 1};
|
|
if (this.data.course.code_halt){
|
|
wx.showToast({
|
|
title: '>︿<\n邀请码已经停用了',
|
|
icon:"none"
|
|
});
|
|
return;
|
|
}
|
|
app.api("courses.apply_to_join_course")({ ...data })
|
|
.then(res => {
|
|
app.showMsg(res);
|
|
wx.redirectTo({
|
|
url: "../course/course?course_id=" + res.course_id
|
|
});
|
|
})
|
|
.catch(app.showError)
|
|
},
|
|
getPageUrl(){
|
|
let { course_id, _invite_code } = this.data.options;
|
|
let {invite_code=_invite_code} = this.data.course;
|
|
return app.getPageUrl(`{course_invite}?course_id=${course_id}&invite_code=${invite_code}`);
|
|
},
|
|
getWxaCodeUrl(){
|
|
let url = this.getPageUrl();
|
|
return global.config.imgDir+"wxacode/"+ url.replace(/[\/?&]/g, "_")+".jpeg";
|
|
},
|
|
pull_course(){
|
|
app.api("weapps.courses.basic_info")({ course_id:this.options.course_id })
|
|
.then(({course}) => {
|
|
this.setData({ course, status: 200});
|
|
}).catch(e=>{
|
|
app.showError(e);
|
|
this.setData({status:-1})
|
|
});
|
|
},
|
|
onLoad: function (options) {
|
|
this.setData({options});
|
|
this.setData({status:1});
|
|
this.pull_course();
|
|
let invite_code_url = this.getWxaCodeUrl();
|
|
this.setData({ invite_code_url});
|
|
},
|
|
onShow:function(){
|
|
app.syncUser()
|
|
.then(({user})=>{
|
|
this.setData({user});
|
|
})
|
|
if(this.data.status==-1)
|
|
this.pull_course()
|
|
},
|
|
onShareAppMessage(){
|
|
|
|
}
|
|
}) |