项目初始化
This commit is contained in:
王宏豪
2026-09-03 16:49:59 +08:00
commit d7fc8c8982
40 changed files with 2688 additions and 0 deletions

74
pages/home/home.js Normal file
View File

@@ -0,0 +1,74 @@
const api = require('../../utils/api');
const auth = require('../../utils/auth');
function errMessage(err) {
if (err && typeof err === 'object') {
if (err.detail) return String(err.detail);
if (err.error) return String(err.error);
if (err.message) return String(err.message);
}
return '加载失败,请稍后再试';
}
Page({
data: {
greeting: '',
displayName: '',
encouragement: '',
modules: [],
loading: true,
error: '',
skeletonItems: [0, 1, 2, 3, 4, 5, 6, 7, 8]
},
onShow() { this.loadHome(); },
loadHome(silent) {
if (!silent) {
this.setData({ loading: true, error: '' });
}
return auth.ensureLogin()
.then((token) => {
if (!token) {
// 新用户未绑定手机号,引导去「我的」完成绑定,避免无 token 请求受保护接口导致 401
this.setData({ loading: false, error: '请先完成微信绑定后再进入' });
setTimeout(() => wx.switchTab({ url: '/pages/profile/profile' }), 500);
return;
}
return api.request({ url: '/api/v1/pages/home' });
})
.then((res) => {
if (!res) return;
this.setData({
loading: false,
error: '',
greeting: res.greeting || '',
displayName: res.display_name || '',
encouragement: res.encouragement || '',
modules: (res.modules || []).filter((m) => m.visible)
});
})
.catch((err) => {
this.setData({ loading: false, error: errMessage(err) });
});
},
onPullDownRefresh() {
this.loadHome(true).then(() => {
wx.stopPullDownRefresh();
});
},
onRetry() {
this.loadHome();
},
onModuleTap(e) {
const url = e.currentTarget.dataset.url;
if (!url) return;
const token = auth.getToken();
const sep = url.indexOf('?') >= 0 ? '&' : '?';
const target = url + sep + 'token=' + encodeURIComponent(token);
wx.navigateTo({ url: '/pages/webview/webview?url=' + encodeURIComponent(target) });
}
});