export default { data() { return { minScrollTop: 100, // 设置回到顶端按钮显示要求,最小页面滚动距离 wechatQrcode: "", // 公众号二维码 diyRoute: "/pages/index/index", }; }, onLoad(option) { // #ifdef H5 // H5地图选择位置回调数据 if (option.module && option.module == "locationPicker") { option.name = ""; // 清空地址 } // #endif this.name = option.name || "DIY_VIEW_INDEX"; // 根据店铺运营模式,打开平台(shop)或者连锁门店(stroe)页面,接口会自行判断 }, onShow() { // 获取关注公众号二维码 this.getFollowQrcode(); // 检查隐私设置并显示弹窗 this.checkPrivacySetting(); }, mounted() { // 监听图片、文字、商品列表等组件的点击事件 this.unsubscribe = this.$eventBus?.onMany( [ "rubik-cube-tap", "picture-tap", "text-tap", "goods-list-tap", "presale-tap", "notes-tap", "merch-list-tap", "map-tap", "img-ads-tap", "many-goods-list-tap", "search-tap", ], this._handleDiyGroupInteractionEvent, ); }, beforeDestroy() { // 移除图片点击事件监听 if (this.unsubscribe) this.unsubscribe(); }, methods: { // 检查隐私设置 checkPrivacySetting() { // 延迟执行,确保组件已经挂载 setTimeout(() => { if (this.$refs.privacyPopup) { this.$refs.privacyPopup.proactive(); } }, 100); }, // 关注公众号 getFollowQrcode() { if (!this.$util.isWeiXin()) return; this.$api.sendRequest({ url: "/wechat/api/wechat/followqrcode", success: (res) => { if (res.code >= 0 && res.data) { this.wechatQrcode = res.data.qrcode; } }, }); }, officialAccountsOpen() { this.$refs.officialAccountsPopup.open(); }, officialAccountsClose() { this.$refs.officialAccountsPopup.close(); }, // 统一处理点击及触摸事件 _handleDiyGroupInteractionEvent(payload) { // #ifdef H5 // 如果是 H5 环境,直接返回 true 继续传播 return true; // #endif // 如果已登录,直接返回 true 继续传播 if (this.storeToken) { return true; } // 打开登录弹窗 // console.log('==> _handleDiyGroupInteractionEvent, 未登录,打开登录弹窗', { payload }) this.$refs.login?.open(); // 阻止事件继续传播 return false; }, }, };