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.

190 lines
5.3 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

import {accountManager} from "../../js/utils";
const app = getApp();
Page({
data: {
version: global.config.version,
imgDir: global.config.imgDir,
eduImgDir: global.config.eduImgDir,
attachDir:global.config.attachDir,
user: {},
showModal: false,
auto_attendance: false
},
enterPage({ target: { dataset: { path } } }) {
if (!path) return;
let { id } = this.data.user;
if (!id || id == 2)
return wx.showToast({ title: "请先登录哦", icon: "none" });
app.navigateTo({ url: `{${path}}` });
},
onTapVersion() {
let { envVersion, env } = global.config;
if (envVersion && envVersion != "release") {
wx.showActionSheet({
itemList: [env != "release" ? "切换为发布环境" : "切换为开发环境"],
success: res => {
global.config.switchEnv(env != "release" ? "release" : "trial");
wx.showToast({
title: '切换成功'
});
this.logout({ showToast: 0 });
let { version, eduImgDir } = global.config;
this.setData({ version, eduImgDir });
}
})
return;
}
const updateManager = wx.getUpdateManager()
wx.showToast({
title: '检查更新中...', icon: "none"
});
updateManager.onCheckForUpdate(res => {
if (res.hasUpdate) {
wx.hideToast();
wx.showModal({
title: '更新提示',
content: "(●'◡'●)\n有新版本哦是否使用最新的小程序呢",
success: function (res) {
if (res.confirm) {
wx.showLoading({
title: '准备中'
});
updateManager.onUpdateReady(() => {
wx.hideLoading();
updateManager.applyUpdate()
})
updateManager.onUpdateFailed(() => {
wx.hideLoading();
wx.showToast({
title: '>︿<\n更新失败', icon: "none"
})
})
}
}
})
}
else {
wx.showToast({
title: '你用的是最新版本哦', icon: "none"
})
}
})
},
onTapAvatar: function ({ currentTarget: { dataset } }) {
wx.showActionSheet({
itemList: ["查看图片", "更改头像"],
success: res => {
switch (res.tapIndex) {
case 0:
wx.previewImage({
urls: [global.config.eduImgDir + dataset.url],
});
break;
case 1:
wx.navigateTo({
url: '/setting/pages/image_crop/image_crop'
});
break;
}
}
})
},
logout: function ({ showToast = 1 }) {
app.callApi({
name: "accounts.logout", success: res => {
if (showToast)
app.showMsg(res);
this.onShow();
},
fail: e=> {
if (showToast)
app.showError(e);
}
})
},
enter_login: function (event) {
wx.navigateTo({
url: '/account/pages/account/account?action=login'
})
},
showModal: function (event) {
let {id} = this.data.user;
if (!id || id == 2)
return wx.showToast({ title: "请先登录哦", icon: "none" });
this.setData({ showModal: true });
},
onLoad() {
let user_id = app.user().user_id;
if(user_id!=2&&user_id){
let key = `cache-users.homepage_info-${app.user().user_id}`;
let cache_homepage = wx.getStorageSync(key);
if(cache_homepage)
this.setData({user: cache_homepage});
}
let data = wx.getStorageSync("auto-attendence");
if (data)
this.setData({ auto_attendance: true });
},
onShow() {
app.syncUser().then(res => {
if (res.user.user_id != 2){
this.refresh();
}else
this.setData({ user: {}, currentLogin:"" })
});
},
refresh: function () {
app.api("users.homepage_info")()
.then(res => {
let { name: show_name, avatar_url: image_url} = res;
if(show_name&&image_url)
app.updateUserInfo({ show_name, image_url});
this.setData({ user: res });
let key = `cache-users.homepage_info-${app.user().user_id}`;
wx.setStorage({
data: res,
key
})
if (!res.attendance_signed && this.data.auto_attendance)
this.attendance({ show: 0 })
});
let account = accountManager.getCurrentAccount();
if (account && account.login && account.active) {
var currentLogin = account.login;
/*if(account.login.indexOf("@")!=-1)
currentLogin = currentLogin.replace(/.{4}()/)
else
currentLogin = currentLogin.replace(/./,"");
*/
} else {
var currentLogin = "";
}
this.setData({ currentLogin, profile_completed: app.user().profile_completed});
},
tapAutoAttendence() {
this.setData({ auto_attendance: !this.data.auto_attendance });
if (!this.data.user.attendance_signed && this.data.auto_attendance)
this.attendance({ show: 1 })
wx.setStorage({
key: 'auto-attendence',
data: this.data.auto_attendance,
});
},
attendance({ show = 1 }) {
app.api("users.attendance")()
.then(res => {
this.refresh();
res.message = "签到成功";
if (show)
app.showMsg(res);
})
},
enterUserinfo(){
app.navigateTo({url:"{user_info}"});
},
onShareAppMessage: function () {
}
})