赞
踩
先上图
tabBar支持图片、iconfont图标展示
权限判断展示
- <template>
- <view>
- <view class="footer_box" :class="{ footer_bg: bg }">
- <view v-for="(item, index) of navigationList" :key="index" class="footer_item" v-if="item.isShow">
- <view v-if="item.raised" class="footer_raised_item" @click="onRaised">
- <text class="iconfont icon-saoma" style="font-size: 90rpx;color: #999999;"></text>
- </view>
- <view v-else class="footer_nav_item" @click="onPageJump(item.pagePath)">
- <block v-if="item.isShow && item.selectedIconPath">
- <image v-if="item.pagePath == path" class="footer_nav_item_image" :src="item.selectedIconPath" mode="aspectFit"></image>
- <image v-else class="footer_nav_item_image" :src="item.iconPath" mode="aspectFit"></image>
- <text class="footer_nav_item_text" :class="[item.pagePath == path ? 'footer_item_text_active' : '']">{{ item.text }}</text>
- </block>
- <block v-else-if="item.isShow">
- <text class="iconfont" :class="item.iconPath" :style="{'font-size': '45rpx','color': item.pagePath == path ? '#69C910':'#999999'}"></text>
- <text class="footer_nav_item_text" :class="[item.pagePath == path ? 'footer_item_text_active' : '']">{{ item.text }}</text>
- </block>
- </view>
- </view>
- </view>
- <view v-if="place" class="footer_station"></view>
- <view class="lan-mask" v-if="popupShow" :style="'height: '+(phoneHeight - 100)+'rpx;'">
- <view class="m-middle">
- <view class="m-middle-btn">扫描二维码</view>
- <view class="m-middle-btn">输入车编号</view>
- </view>
- </view>
- </view>
- </template>
- <script>
- export default {
- props: {
- bg: {
- type: Boolean,
- default: true
- },
- place: {
- type: Boolean,
- default: true
- }
- },
- data() {
- return {
- path: '',
- phoneHeight: 0,
- navigationList: [
- {
- pagePath: '/pages/equipment/manage/lanixong/visualization',
- iconPath: 'icon-ditu',
- isShow: true,
- text: '可视化'
- },
- {
- pagePath: '/pages/equipment/equipment',
- iconPath: '/static/icon/8d673f684b61101e7bb7342e3714078.png',
- selectedIconPath: '/static/icon/7314de4958d492a476b05fa0b2cb6b0.png',
- isShow: true,
- text: '设备'
- },
- {
- iconPath: 'icon-saoma',
- text: '扫一扫',
- isShow: true,
- raised: true
- },
- {
- pagePath: '/pages/equipment/manage/lanixong/manage',
- iconPath: 'icon-weixiu',
- isShow: true,
- text: '运维'
- },
- {
- pagePath: '/pages/user/user',
- iconPath: '/static/icon/d57d3d716d393498c227ff1d2f00abc.png',
- selectedIconPath: '/static/icon/ebfc732cdcdc515f2f26d44f263318c.png',
- isShow: true,
- text: '我的'
- }
- ],
- popupShow: false,
- lookEquipment: false
- };
- },
- //第一次加载
- created() {
- //查询权限
- this.lookEquipment = uni.getStorageSync('lookEquipment')
- //如果没有设备权限,那么可视化、运维不显示
- if(!this.lookEquipment) {
- this.navigationList.forEach((v) => {
- if(v.text == '可视化' || v.text == '运维') {
- v.isShow = false
- }
- })
- }
- // 获取页面指针数组
- let currentPages = getCurrentPages();
- // 获取当前页
- let page = currentPages[currentPages.length - 1];
- // 当前页的路径
- this.path = '/' + page.route;
- uni.getSystemInfo({
- success:(res)=> {
- this.phoneHeight = (res.screenHeight * (750 / res.windowWidth)) //窗口高度,将px 转换rpx
- }
- })
- },
- //方法
- methods: {
- onPageJump(url) {
- if (this.path !== url) {
- uni.reLaunch({
- url
- });
- }
- },
- onRaised(){
- this.popupShow = !this.popupShow;
- }
- }
- };
- </script>
- <style lang="scss" scoped>
- @import '@/style/mixin.scss';
- @keyframes fade-in {
- 0% {
- transform: scale(0);
- }
-
- 50% {
- transform: scale(1.3);
- }
-
- 100% {
- transform: scale(1);
- }
- }
- .lan-mask {
- position: fixed;
- z-index: 99999;
- top: 0;
- left: 0;
- right: 0;
- bottom: 0;
- width: 100vw;
- display: flex;
- flex-direction: column;
- justify-content: center;
- align-items: center;
- background: rgba(255,255,255, 0.7);
-
- .m-middle {
- border: 1px solid #999;
- background: rgba(245,247,250, 0.9);
- animation: fade-in 0.3s;
- z-index: 10001111;
- border-radius: 27upx;
- padding: 35upx;
-
- .m-middle-btn {
- width: 400upx;
- height: 86upx;
- background: #68C90F;
- border-radius: 18upx;
- font-size: 32upx;
- font-weight: 600;
- color: #FFFFFF;
- line-height: 86upx;
- text-align: center;
- margin: 0 auto;
- }
-
- .m-middle-btn:last-child {
- margin-top: 35upx;
- }
-
- }
- }
-
- .footer_station {
- height: 100rpx;
- box-sizing: content-box;
- // box-sizing: border-box;
- padding-bottom: constant(safe-area-inset-bottom);
- padding-bottom: env(safe-area-inset-bottom);
- }
- .footer_box {
- height: 100rpx;
- position: fixed;
- bottom: 0;
- left: 0;
- width: 100%;
- /* #ifndef APP-NVUE */
- display: flex;
- /* #endif */
- flex-direction: row;
- z-index: 502;
- box-sizing: content-box;
- // box-sizing: border-box;
- padding-bottom: constant(safe-area-inset-bottom);
- padding-bottom: env(safe-area-inset-bottom);
- }
- .footer_bg {
- background-color: #FFF;
- }
- .footer_item {
- position: relative;
- flex: 1;
- }
- .footer_nav_item {
- /* #ifndef APP-NVUE */
- display: flex;
- /* #endif */
- flex-direction: column;
- align-items: center;
- justify-content: center;
- height: 100%;
- }
- .footer_nav_item:active {
- background-color: rgba($color: #fff, $alpha: 0.1);
- }
- .footer_nav_item_text {
- font-size: 24rpx;
- color: #999999;
- margin-top: 6rpx;
- }
- .footer_nav_item_text_active {
- color: #f9a633;
- }
- .footer_item_text_active {
- color: #69C910;
- }
- .footer_nav_item_image {
- width: 50rpx;
- height: 50rpx;
- }
- .footer_raised_item {
- position: absolute;
- top: -40rpx;
- left: 50%;
- transform: translateX(-50%);
- width: 120rpx;
- height: 120rpx;
- background-color: #FFF;
- border-radius: 50%;
- /* #ifndef APP-NVUE */
- display: flex;
- /* #endif */
- align-items: center;
- justify-content: center;
- }
- .footer_raised_item_image {
- width: 70rpx;
- height: 70rpx;
- }
- .popup_content {
- background-color: #FFF;
- padding: 30rpx;
- }
- </style>
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。