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.

197 lines
3.8 KiB

<template>
<!-- #ifdef APP-PLUS -->
<view class="animated dialog_nav" :style="{ top: (navH+65) + 'rpx', marginTop: sysHeight}"
:class="[goodList?'dialogIndex':'',currentPage?'':'']" v-show="currentPage">
<!-- #endif -->
<!-- #ifndef APP-PLUS -->
<view class="animated dialog_nav" :style="{ top: (navH+15) + 'rpx' }"
:class="[goodList?'dialogIndex':'',goodsShow?'dialogGoods':'',currentPage?'':'']" v-show="currentPage">
<!-- #endif -->
<view class="dialog_nav_item" :class="item.after" v-for="(item,index) in selectNavList" :key="index"
@click="linkPage(item.url)">
<text class="iconfont" :class="item.icon"></text>
<text class="pl-20">{{item.name}}</text>
</view>
</view>
</template>
<script>
export default {
name: "homeIdex",
props: {
navH: {
type: String | Number,
default: ""
},
returnShow: {
type: Boolean,
default: true
},
goodList: {
type: Boolean,
default: false
},
currentPage: {
type: Boolean,
default: false
},
goodsShow: {
type: Boolean,
default: false
},
sysHeight: {
type: String | Number,
default: ""
}
},
data: function() {
return {
selectNavList: [{
name: this.$t(`首页`),
icon: 'icon-shouye8',
url: '/pages/index/index',
after: 'dialog_after'
},
{
name: this.$t(`搜索`),
icon: 'icon-sousuo6',
url: '/pages/goods/goods_search/index',
after: 'dialog_after'
},
{
name: this.$t(`购物车`),
icon: 'icon-gouwuche7',
url: '/pages/order_addcart/order_addcart',
after: 'dialog_after'
},
{
name: this.$t(`我的收藏`),
icon: 'icon-shoucang3',
url: '/pages/users/user_goods_collection/index',
after: 'dialog_after'
},
{
name: this.$t(`个人中心`),
icon: 'icon-gerenzhongxin1',
url: '/pages/user/index'
},
]
};
},
methods: {
linkPage(url) {
if (['/pages/goods_cate/goods_cate', '/pages/order_addcart/order_addcart', '/pages/user/index',
'/pages/index/index'
]
.indexOf(url) == -1) {
uni.navigateTo({
url: url
})
} else {
uni.switchTab({
url: url
})
}
}
},
created() {},
beforeDestroy() {}
};
</script>
<style scoped lang="scss">
.dialog_nav {
position: absolute;
/* #ifdef MP */
left: 14rpx;
/* #endif */
/* #ifndef MP */
right: 14rpx;
/* #endif */
width: 240rpx;
background: #FFFFFF;
box-shadow: 0px 0px 16rpx rgba(0, 0, 0, 0.08);
z-index: 310;
border-radius: 14rpx;
&::before {
content: "";
width: 0;
height: 0;
border-left: 15rpx solid transparent;
border-right: 15rpx solid transparent;
border-bottom: 30rpx solid #fff;
position: absolute;
top: -20rpx;
/* #ifdef APP-PLUS || H5 */
right: 32rpx;
/* #endif */
/* #ifdef MP */
left: 80rpx;
/* #endif */
border-bottom-color: #f2f2f2;
}
&::after {
content: "";
width: 0;
height: 0;
border-left: 15rpx solid transparent;
border-right: 15rpx solid transparent;
border-bottom: 30rpx solid #fff;
position: absolute;
top: -20rpx;
/* #ifdef APP-PLUS || H5 */
right: 32rpx;
/* #endif */
/* #ifdef MP */
left: 80rpx;
/* #endif */
}
&.dialogIndex {
left: 14rpx;
&::before {
left: -160rpx !important;
}
}
&.dialogGoods {
&::before {
left: -170rpx;
}
}
}
.dialog_nav_item {
width: 100%;
height: 84rpx;
line-height: 84rpx;
padding: 0 20rpx 0;
box-sizing: border-box;
border-bottom: #eee;
font-size: 28rpx;
color: #333;
position: relative;
display: flex;
.iconfont {
font-size: 32rpx;
margin-right: 26rpx;
}
}
.dialog_after {
::after {
content: '';
position: absolute;
width: 90px;
height: 1px;
background-color: #EEEEEE;
bottom: 0;
right: 0;
}
}
</style>