51 lines
1.1 KiB
JavaScript
51 lines
1.1 KiB
JavaScript
const { checkAuth, listMindSpacePages } = require('../../utils/api');
|
|
|
|
Page({
|
|
data: {
|
|
pages: [],
|
|
loading: false,
|
|
error: ''
|
|
},
|
|
|
|
onShow() {
|
|
this.ensureAndLoad();
|
|
},
|
|
|
|
async ensureAndLoad() {
|
|
try {
|
|
const status = await checkAuth();
|
|
if (!status?.authenticated) {
|
|
wx.redirectTo({ url: '/pages/login/index' });
|
|
return;
|
|
}
|
|
await this.loadPages();
|
|
} catch {
|
|
wx.redirectTo({ url: '/pages/login/index' });
|
|
}
|
|
},
|
|
|
|
async loadPages() {
|
|
this.setData({ loading: true, error: '' });
|
|
try {
|
|
const result = await listMindSpacePages({ limit: 30 });
|
|
const pages = result?.data || result?.pages || [];
|
|
this.setData({ pages });
|
|
} catch (error) {
|
|
this.setData({ error: error?.message || '页面加载失败' });
|
|
} finally {
|
|
this.setData({ loading: false });
|
|
}
|
|
},
|
|
|
|
openPage(event) {
|
|
const url = event.currentTarget.dataset.url;
|
|
if (!url) {
|
|
wx.showToast({ title: '该页面暂无可打开链接', icon: 'none' });
|
|
return;
|
|
}
|
|
wx.navigateTo({
|
|
url: `/pages/webview/index?url=${encodeURIComponent(url)}`
|
|
});
|
|
}
|
|
});
|