jiuyiUniapp/shop/components/rf-nav-detail/index.vue

143 lines
2.8 KiB
Vue

<template>
<rf-top-dropdown
tui-top-dropdown="tui-top-dropdown"
bgcolor="rgba(76, 76, 76, 0.95)"
:show="popupShow"
:height="0"
@close="hide"
>
<view class="tui-menu-box tui-padding tui-ptop">
<view class="tui-menu-header" :style="{ paddingTop: top + 'px' }">
功能直达
</view>
<view class="tui-menu-itembox">
<block v-for="(item, index) in topMenu" :key="index">
<view
class="tui-menu-item"
hover-class="tui-opcity"
:hover-stay-time="150"
@tap="navTo(item)"
>
<view class="tui-badge-box">
<text class="iconfont" :class="item.icon"></text>
</view>
<view class="tui-menu-text">{{ item.text }}</view>
</view>
</block>
</view>
<text @tap.stop="hide" class="iconfont iconxiangxiajiantou"></text>
</view>
</rf-top-dropdown>
</template>
<script>
import rfTopDropdown from '@/components/rf-top-dropdown';
export default {
name: 'rfNavDetail',
components: { rfTopDropdown },
props: {
popupShow: {
type: Boolean,
detault: true
}
},
data() {
return {
top: this.CustomBar,
topMenu: this.$mConstDataConfig.menuTop
};
},
methods: {
hide() {
this.$emit('hide');
},
navTo(item) {
this.$emit('hide');
if (!item.url) return;
if (!this.$mStore.getters.hasLogin && !item.urlType) {
this.$mHelper.backToLogin();
return;
}
if (item.urlType === 'tab') {
this.$mRouter.switchTab({ route: item.url });
} else {
this.$mRouter.push({ route: item.url });
}
}
}
};
</script>
<style scoped lang="scss">
/*顶部菜单*/
.tui-menu-box {
box-sizing: border-box;
}
.tui-menu-header {
font-size: 34rpx;
color: #fff;
height: 32px;
margin-top: 45upx;
display: flex;
align-items: center;
justify-content: center;
}
.tui-top-dropdown {
z-index: 9999 !important;
}
.tui-menu-itembox {
color: #fff;
padding: 40rpx 10rpx 0 10rpx;
box-sizing: border-box;
display: flex;
flex-wrap: wrap;
font-size: 26rpx;
}
.tui-menu-item {
width: 22%;
height: 160rpx;
border-radius: 24rpx;
display: flex;
align-items: center;
flex-direction: column;
justify-content: center;
background: rgba(0, 0, 0, 0.4);
margin-right: 4%;
margin-bottom: 4%;
}
.tui-menu-item:nth-of-type(4n) {
margin-right: 0;
}
.tui-badge-box {
position: relative;
.iconfont {
font-size: 40upx;
}
}
.tui-badge-box .tui-badge-class {
position: absolute;
top: -8px;
right: -8px;
}
.tui-msg-badge {
top: -10px;
}
.tui-icon-up {
position: relative;
display: inline-block;
left: 50%;
transform: translateX(-50%);
}
.tui-menu-text {
padding-top: 12rpx;
}
.tui-opcity .tui-menu-text,
.tui-opcity .tui-badge-box {
opacity: 0.5;
transition: opacity 0.2s ease-in-out;
}
.iconxiangxiajiantou {
display: flex;
justify-content: center;
}
/*顶部菜单*/
</style>