You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
106 lines
2.5 KiB
106 lines
2.5 KiB
import { mapState, mapGetters } from 'vuex'
|
|
|
|
var app = getApp();
|
|
export const myMixin = {
|
|
data() {
|
|
return {
|
|
loading: false,
|
|
|
|
// 头部数据
|
|
top: 0,
|
|
navHeight: 0,
|
|
navIndex: 0,
|
|
hearHeight: "0",
|
|
tabArr: [0],
|
|
navList: [],
|
|
shopData: {},
|
|
event_rul: app.globalData.event_url,
|
|
|
|
bgColor: false,
|
|
boxHeight: 0, // 要减去的高度
|
|
mgtHeight: 0, // 代替 margin 的高度
|
|
timeupe: null,
|
|
}
|
|
},
|
|
computed: {
|
|
...mapState(['opt','navFixed','navHeightTop']),
|
|
...mapGetters(['getHeardHeight'])
|
|
},
|
|
mounted() {
|
|
this.setNavHeight()
|
|
this.getData()
|
|
this.timeupe = setTimeout(() => {
|
|
this.styleMgtop()
|
|
}, 100)
|
|
},
|
|
beforeDestroy() {
|
|
clearTimeout(this.timeupe)
|
|
},
|
|
watch:{
|
|
navFixed: {
|
|
handler(newValue, oldValue) {
|
|
this.bgColor = newValue
|
|
},
|
|
immediate: true,
|
|
deep: true,
|
|
},
|
|
},
|
|
|
|
methods: {
|
|
getData: function () {
|
|
const that = this;
|
|
that.loading = true;
|
|
uni.getStorage({
|
|
key: "header_data",
|
|
success: function(res){
|
|
that.shopData = res.data;
|
|
console.log("打印shopData============",that.shopData)
|
|
if(that.shopData.headTitle) {
|
|
that.shopData.headTitle.map((item)=> {
|
|
that.navList.push(item.text);
|
|
})
|
|
}
|
|
},
|
|
})
|
|
},
|
|
setNavHeight() {
|
|
let elemetn
|
|
// #ifdef MP-WEIXIN
|
|
let menuButtonInfo = uni.getMenuButtonBoundingClientRect()
|
|
uni.getSystemInfo({
|
|
success: (res) => {
|
|
if (res) {
|
|
elemetn = res.statusBarHeight
|
|
}
|
|
},
|
|
})
|
|
// #endif
|
|
// #ifdef MP-WEIXIN
|
|
this.navHeight = menuButtonInfo.bottom + menuButtonInfo.top - elemetn
|
|
// console.log(menuButtonInfo,elemetn, 'navheight')
|
|
// #endif
|
|
// #ifndef MP
|
|
this.navHeight = 60
|
|
// #endif
|
|
// const vr = uni.getSystemInfoSync();
|
|
},
|
|
styleMgtop() {
|
|
let query = uni.createSelectorQuery().in(this);
|
|
query.select(".top-mg").boundingClientRect();
|
|
query.exec((res) => {
|
|
if(res[0] != null) {
|
|
this.mgtHeight = res[0].height
|
|
this.boxHeight = (this.mgtHeight + this.getHeardHeight) + 'px'
|
|
}
|
|
});
|
|
},
|
|
navHeadSelect(e, h, hh) {
|
|
this.hearHeight = this.navHeight + h + 15 + 'px'
|
|
this.top = '-' + (hh - (this.navHeight + h + 15)) + 'px'
|
|
this.navIndex = e;
|
|
if(this.tabArr.indexOf(e) < 0){
|
|
this.tabArr.push(e);
|
|
}
|
|
},
|
|
},
|
|
}
|
|
|