/* ═════ 启动页:品牌底图 + Slogan + 隐私授权弹窗(对齐 H5 #s-splash + #p-privacy) ═════ */ var api = require('../../utils/api.js'); var development = require('../../utils/development'); Page({ data: { bgUrl: api.assetUrl('img/bg-splash.jpg'), // 底图远程加载 logoUrl: api.assetUrl('img/ui-20261012/brand-lockup.png'), showPrivacy: false, // 隐私授权弹窗 agreed: false, // 隐私协议勾选 showPolicy: false, busy: false, signedIn: false, showCameraDebug: development.cameraDebugEnabled() }, onShow: function () { var that = this; api.restore().then(function (user) { that.setData({ signedIn: !!user }); }).catch(function () {}); }, // 「开始检测」→ 隐私授权弹窗 onOpenPrivacy: function () { if (api.user()) { my.navigateTo({ url: '/pages/profile/profile' }); return; } this.setData({ showPrivacy: true }); }, onClosePrivacy: function () { this.setData({ showPrivacy: false }); }, // 勾选/取消隐私协议(点链接不触发,由 catchtap 分隔) onToggleAgree: function () { this.setData({ agreed: !this.data.agreed }); }, onOpenPolicy: function () { this.setData({ showPolicy: true }); }, onClosePolicy: function () { this.setData({ showPolicy: false }); }, // 「继续」:必须已勾选协议 onAgreeContinue: function () { if (this.data.busy) return; if (!this.data.agreed) { my.showToast({ content: '请先阅读并同意隐私协议', type: 'none' }); return; } var that = this; this.setData({ busy: true }); api.login(true).then(function () { that.setData({ showPrivacy: false, signedIn: true }); my.navigateTo({ url: '/pages/profile/profile' }); }).catch(function (err) { my.showToast({ content: err.message, type: 'none' }); }).then(function () { that.setData({ busy: false }); }); }, onHistory: function () { if (!api.user()) { this.onOpenPrivacy(); return; } my.navigateTo({ url: '/pages/history/history' }); }, onLogout: function () { var that = this; api.logout().then(function () { that.setData({ signedIn: false, agreed: false }); }) .catch(function (err) { my.showToast({ content: err.message, type: 'none' }); }); }, onCameraDebug: function () { if (!development.cameraDebugEnabled()) return; my.navigateTo({ url: '/pages/camera/camera?debug=camera' }); }, noop: function () {} // 弹窗卡片内点击拦截冒泡用 });