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.
93 lines
1.6 KiB
93 lines
1.6 KiB
<template>
|
|
<view>
|
|
<view class="navTab">
|
|
<block v-for="(item, index) in tabsarr">
|
|
<view class="tabItem" :data-index="index" @click="bindChange" :data-value="item.value">
|
|
<text class="tabTxt tabItemOn" v-if="item.checked">{{item.title}}</text>
|
|
<view class="tabItemOnLine" v-if="item.checked"></view>
|
|
<text class="tabTxt " v-else>{{item.title}}</text>
|
|
</view>
|
|
</block>
|
|
</view>
|
|
</view>
|
|
</template>
|
|
|
|
<script>
|
|
export default {
|
|
name: "systabs",
|
|
props: {
|
|
tabsarr: {
|
|
type: Object
|
|
}
|
|
},
|
|
data() {
|
|
return {
|
|
|
|
|
|
};
|
|
},
|
|
methods: {
|
|
bindChange: function(e) {
|
|
var index = e.currentTarget.dataset.index;
|
|
var value = e.currentTarget.dataset.value;
|
|
var tabs = this.tabsarr;
|
|
for (var m of tabs) {
|
|
m.checked = false
|
|
}
|
|
tabs[index].checked = true;
|
|
this.tabsarr = tabs;
|
|
this.$emit("tabChange", value);
|
|
}
|
|
}
|
|
|
|
}
|
|
</script>
|
|
|
|
<style>
|
|
.navTab {
|
|
background: #FAFAFA;
|
|
box-shadow: 0 1px 0 0 #E6E6E6;
|
|
flex-direction: row;
|
|
justify-content: space-around;
|
|
top: 160rpx;
|
|
left: 0;
|
|
position: fixed;
|
|
z-index: 999;
|
|
width: 750rpx;
|
|
display: flex;
|
|
}
|
|
|
|
.tabItem {
|
|
align-items: center;
|
|
position: relative;
|
|
}
|
|
|
|
.orderGe {
|
|
color: #D8D8D8;
|
|
margin-left: 16rpx;
|
|
margin-right: 16rpx;
|
|
font-size: 28rpx;
|
|
}
|
|
|
|
.tabTxt {
|
|
font-size: 28rpx;
|
|
color: #666666;
|
|
text-align: left;
|
|
height: 70rpx;
|
|
line-height: 70rpx;
|
|
}
|
|
|
|
.tabItemOn {
|
|
color: #0DC99E;
|
|
}
|
|
|
|
.tabItemOnLine {
|
|
background: #0DC99E;
|
|
height: 4rpx;
|
|
width: 100rpx;
|
|
position: absolute;
|
|
bottom: -2rpx;
|
|
left: -10rpx;
|
|
}
|
|
</style>
|