96 lines
2.6 KiB
JavaScript
96 lines
2.6 KiB
JavaScript
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;
|
||
},
|
||
},
|
||
};
|