2026-04-10 16:10:33 +08:00

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);
}
});
}
});