118 lines
2.6 KiB
JavaScript
118 lines
2.6 KiB
JavaScript
const auth = require('../../utils/auth');
|
|
|
|
function normalizeAuthStatus(v) {
|
|
if (v == null || v === '') return 0;
|
|
const n = Number(v);
|
|
return Number.isNaN(n) ? 0 : n;
|
|
}
|
|
|
|
/** 0 未认证 | 1 审核中 | 2 审核通过 | 3 审核失败 | 4 已取消 */
|
|
function authStatusText(status) {
|
|
const map = {
|
|
0: '未认证',
|
|
1: '审核中',
|
|
2: '审核通过',
|
|
3: '审核失败',
|
|
4: '已取消'
|
|
};
|
|
return map[normalizeAuthStatus(status)] || '未认证';
|
|
}
|
|
|
|
function maskPhone(phone) {
|
|
if (!phone || phone.length < 7) return phone || '';
|
|
return phone.substring(0, 3) + '****' + phone.substring(7);
|
|
}
|
|
|
|
Page({
|
|
data: {
|
|
loggedIn: false,
|
|
profile: {},
|
|
maskedPhone: '',
|
|
authStatus: 0,
|
|
authStatusText: '未认证'
|
|
},
|
|
|
|
onShow() {
|
|
const accessToken = wx.getStorageSync('accessToken') || '';
|
|
if (!accessToken) {
|
|
this.setData({ loggedIn: false, profile: {}, maskedPhone: '', authStatus: 0, authStatusText: '未认证' });
|
|
return;
|
|
}
|
|
this.setData({ loggedIn: true });
|
|
this.loadProfile();
|
|
},
|
|
|
|
onPullDownRefresh() {
|
|
this.loadProfile().finally(() => wx.stopPullDownRefresh());
|
|
},
|
|
|
|
loadProfile() {
|
|
return auth
|
|
.fetchMyProfile()
|
|
.then((profile) => {
|
|
const p = profile || {};
|
|
const st = normalizeAuthStatus(p.authStatus != null ? p.authStatus : p.AuthStatus);
|
|
const phone = p.mobile || p.phone || '';
|
|
this.setData({
|
|
profile: p,
|
|
maskedPhone: maskPhone(phone),
|
|
authStatusText: authStatusText(st),
|
|
authStatus: st
|
|
});
|
|
})
|
|
.catch(() => {});
|
|
},
|
|
|
|
goToLogin() {
|
|
wx.navigateTo({ url: '/subpackages/mine/login/login' });
|
|
},
|
|
|
|
goToPoints() {
|
|
wx.navigateTo({ url: '/subpackages/mine/points/points' });
|
|
},
|
|
|
|
goToCert() {
|
|
wx.navigateTo({ url: '/subpackages/mine/cert/cert' });
|
|
},
|
|
|
|
goToRecords() {
|
|
wx.navigateTo({ url: '/subpackages/mine/records/records' });
|
|
},
|
|
|
|
goToAuth() {
|
|
wx.navigateTo({ url: '/subpackages/mine/auth/auth' });
|
|
},
|
|
|
|
goToOrders() {
|
|
wx.navigateTo({ url: '/subpackages/mine/order/order' });
|
|
},
|
|
|
|
goToTeam() {
|
|
wx.navigateTo({ url: '/subpackages/mine/team/team' });
|
|
},
|
|
|
|
onChooseAvatar() {
|
|
wx.chooseMedia({
|
|
count: 1,
|
|
mediaType: ['image'],
|
|
sourceType: ['album', 'camera'],
|
|
success: (res) => {
|
|
const tempFilePath = res.tempFiles[0].tempFilePath;
|
|
this.setData({
|
|
'profile.avatar': tempFilePath
|
|
});
|
|
// TODO: 上传头像到服务器
|
|
}
|
|
});
|
|
},
|
|
|
|
onFetchOpenId() {
|
|
wx.login({
|
|
success: (res) => {
|
|
console.log('res', res);
|
|
}
|
|
});
|
|
}
|
|
});
|
|
|