75 lines
2.3 KiB
JavaScript
75 lines
2.3 KiB
JavaScript
// pages/tixian/tixian.js
|
||
import request from '../../utils/request.js';
|
||
import PopupService from '../../services/popupService.js';
|
||
|
||
const app = getApp();
|
||
|
||
Page({
|
||
data: {
|
||
pageMode: 0, // 0:加载中 1:收款码模式 2:微信零钱模式
|
||
pageOptions: {}, // 保存启动参数,传给子组件
|
||
loadError: false, // 获取模式失败时展示错误状态
|
||
},
|
||
|
||
onLoad(options) {
|
||
this.setData({
|
||
pageOptions: options || {}
|
||
});
|
||
this.fetchPageMode();
|
||
},
|
||
|
||
// ✅ 用 onShow,别用 pageLifetimes
|
||
onShow() {
|
||
this.registerNotificationComponent();
|
||
// 如果已经在某个模式下,可以刷新一下子组件数据(可选)
|
||
// 弹窗检查
|
||
PopupService.checkAndShow(this, 'tixian');
|
||
},
|
||
|
||
onHide() {
|
||
const popupComp = this.selectComponent('#popupNotice');
|
||
if (popupComp && popupComp.cleanup) {
|
||
popupComp.cleanup();
|
||
}
|
||
},
|
||
|
||
// ✅ 注册通知组件(弹窗依赖它)
|
||
registerNotificationComponent() {
|
||
const notificationComp = this.selectComponent('#global-notification');
|
||
if (notificationComp && notificationComp.showNotification) {
|
||
app.globalData.globalNotification = {
|
||
show: (data) => notificationComp.showNotification(data),
|
||
hide: () => notificationComp.hideNotification()
|
||
};
|
||
}
|
||
},
|
||
|
||
async fetchPageMode() {
|
||
try {
|
||
const res = await request({
|
||
url: '/peizhi/hqtxzsym',
|
||
method: 'POST'
|
||
});
|
||
|
||
if (res.statusCode === 200 && res.data && res.data.code === 0) {
|
||
const mode = parseInt(res.data.data.mode);
|
||
this.setData({
|
||
pageMode: (mode === 1 || mode === 2) ? mode : 1,
|
||
loadError: false
|
||
});
|
||
} else {
|
||
this.setData({ pageMode: 1, loadError: false });
|
||
}
|
||
} catch (err) {
|
||
console.error('获取展示模式失败:', err);
|
||
this.setData({ loadError: true });
|
||
}
|
||
},
|
||
|
||
retryFetch() {
|
||
this.setData({ loadError: false, pageMode: 0 });
|
||
this.fetchPageMode();
|
||
},
|
||
|
||
stopPropagation() {}
|
||
}); |