描述:底部tabbar

This commit is contained in:
SelfRidicule 2024-02-22 18:57:41 +08:00
parent 05651c67eb
commit cea100c85b
8 changed files with 549 additions and 399 deletions

View File

@ -69,10 +69,9 @@
}, },
{ {
"pagePath": "pages/parkRepair/parkRepair", "pagePath": "pages/parkRepair/parkRepair",
"iconPath": "/images/icon/wodebaoxiu1.png", "iconPath": "/images/tabbar/openDoor.png",
"selectedIconPath": "/images/icon/wodebaoxiu.png", "selectedIconPath": "/images/tabbar/openDoor.png",
"text": "维修", "text": "开门"
"isSpecial" : true
}, },
{ {
"pagePath": "pages/my/my", "pagePath": "pages/my/my",
@ -84,6 +83,7 @@
}, },
"usingComponents": {}, "usingComponents": {},
"sitemapLocation": "sitemap.json", "sitemapLocation": "sitemap.json",
"permission": { "permission": {
"scope.userLocation": { "scope.userLocation": {

View File

@ -2,6 +2,35 @@ const app = getApp()
Page({ Page({
onShareAppMessage(res) {}, onShareAppMessage(res) {},
data: { data: {
// tabBar param
tabBarParam: {
selected: 0,
color: "#515151",
selectedColor: "#217CFF",
backgroundColor: "#ffffff",
},
// tabBar menu
tabBarList: [{
"pagePath": "pages/index/index",
"iconPath": "/images/tabbar/home.png",
"selectedIconPath": "/images/tabbar/home-select.png",
"text": "首页"
},
{
"pagePath": "pages/parkRepair/parkRepair",
"iconPath": "/images/tabbar/openDoor.png",
"selectedIconPath": "/images/tabbar/openDoor.png",
"text": "开门",
"bulge": true,
},
{
"pagePath": "pages/my/my",
"iconPath": "/images/tabbar/my.png",
"selectedIconPath": "/images/tabbar/my-select.png",
"text": "我的"
},
],
IMG_NAME: app.IMG_NAME, IMG_NAME: app.IMG_NAME,
indicatorDots: true, indicatorDots: true,
autoplay: true, autoplay: true,
@ -9,9 +38,8 @@ Page({
duration: 1000, duration: 1000,
bannerList: [{ bannerList: [{
bannerImg: '' bannerImg: ''
} }],
], menuList: [{
list: [{
name: "创业活动", name: "创业活动",
img: "/images/hicon/chuangyehuodong.png", img: "/images/hicon/chuangyehuodong.png",
path: "/pages/community/community" path: "/pages/community/community"
@ -64,6 +92,11 @@ Page({
path: "/pages/parkRepair/parkRepair" path: "/pages/parkRepair/parkRepair"
}, },
*/ */
{
name: "会议预约",
img: "/profile/static/index/menu-hyyy.png",
path: ""
},
], ],
homelist: [], homelist: [],
background: [{ background: [{
@ -72,21 +105,19 @@ Page({
}, { }, {
bg: '/profile/banner/2.jpg', bg: '/profile/banner/2.jpg',
url: '' url: ''
}, {
bg: '/profile/banner/3.jpg',
url: ''
}, {
bg: '/profile/banner/4.jpg',
url: ''
}, {
bg: '/profile/banner/5.jpg',
url: ''
}, {
bg: '/profile/banner/6.jpg',
url: ''
}] }]
}, },
// 切换tabbar
switchTab(e) {
const data = e.currentTarget.dataset
console.log('switchTab', data)
const url = data.path
wx.switchTab({
url: '/' + url
})
},
onShow() { onShow() {
let that = this let that = this
if (wx.getStorageSync('token')) { if (wx.getStorageSync('token')) {

View File

@ -4,8 +4,7 @@
<text style="font-size: 28rpx;">当前园区:{{parkName? parkName:'请先选择园区'}}</text> <text style="font-size: 28rpx;">当前园区:{{parkName? parkName:'请先选择园区'}}</text>
<text style="color: #939393;font-size: 36rpx;"> > </text> <text style="color: #939393;font-size: 36rpx;"> > </text>
</view> </view>
<swiper class='swiper-box' indicator-dots="{{indicatorDots}}" autoplay="{{autoplay}}" interval="{{interval}}" <swiper class='swiper-box' indicator-dots="{{indicatorDots}}" autoplay="{{autoplay}}" interval="{{interval}}" duration="{{duration}}" circular='true' style='height:{{Height}}' wx:if="{{background.length > 0}}">
duration="{{duration}}" circular='true' style='height:{{Height}}' wx:if="{{background.length > 0}}">
<block wx:for="{{background}}" wx:key="index"> <block wx:for="{{background}}" wx:key="index">
<swiper-item> <swiper-item>
<image src="{{IMG_NAME + item.bg}}" mode="widthFix" style="width:100%" bindload='imgHeight'></image> <image src="{{IMG_NAME + item.bg}}" mode="widthFix" style="width:100%" bindload='imgHeight'></image>
@ -15,13 +14,21 @@
<view style="font-size: 12pt;background: white;padding: 20rpx 30rpx;">我的应用</view> <view style="font-size: 12pt;background: white;padding: 20rpx 30rpx;">我的应用</view>
<view class="fixed"> <view class="fixed">
<view class="fixedbox" wx:for='{{list}}' wx:key='index' data-path="{{item.path}}" data-name="{{item.name}}" <view class="fixedbox" wx:for='{{menuList}}' wx:key='index' data-path="{{item.path}}" data-name="{{item.name}}" bindtap="navapply">
bindtap="navapply"> <image class="menuImg" src="{{IMG_NAME + item.img}}"></image>
<image class="{{item.gray? 'gray':''}}" src="{{item.img}}" style="width:90rpx;height:90rpx;"></image>
<view style="font-size:26rpx;margin-top:18rpx;">{{item.name}}</view> <view style="font-size:26rpx;margin-top:18rpx;">{{item.name}}</view>
</view> </view>
</view> </view>
</scroll-view> </scroll-view>
<!-- tabBar -->
<view class="tab-bar">
<view wx:for="{{tabBarList}}" wx:key="index" class="tab-bar-item {{item.bulge?'bulge':''}}" data-path="{{item.pagePath}}" data-index="{{index}}" bindtap="switchTab">
<view wx:if="item.bulge" class="tab-bar-bulge"></view>
<image class="image" src="{{tabBarParam.selected === index ? item.selectedIconPath : item.iconPath}}"></image>
<view class="tab-bar-view" style="color: {{tabBarParam.selected === index ? tabBarParam.selectedColor : tabBarParam.color}}">{{item.text}}</view>
</view>
</view>
</view> </view>

View File

@ -1,4 +1,5 @@
@import "../../app.wxss"; @import "../../app.wxss";
@import "../../tabBar.wxss";
page { page {
overflow: hidden; overflow: hidden;
@ -7,6 +8,7 @@ page {
.topList { .topList {
display: none;
width: 100%; width: 100%;
height: 70rpx; height: 70rpx;
line-height: 70rpx; line-height: 70rpx;
@ -18,7 +20,7 @@ page {
z-index: 9999999; z-index: 9999999;
} }
.swiper-box{ .swiper-box {
margin-top: 70rpx; margin-top: 70rpx;
} }
@ -123,3 +125,9 @@ page {
.adContainer { .adContainer {
width: 100%; width: 100%;
} }
.menuImg{
width: 132rpx;
height: 134rpx;
}

View File

@ -5,6 +5,34 @@ Page({
* 页面的初始数据 * 页面的初始数据
*/ */
data: { data: {
// tabBar param
tabBarParam: {
selected: 2,
color: "#515151",
selectedColor: "#217CFF",
backgroundColor: "#ffffff",
},
// tabBar menu
tabBarList: [{
"pagePath": "pages/index/index",
"iconPath": "/images/tabbar/home.png",
"selectedIconPath": "/images/tabbar/home-select.png",
"text": "首页"
},
{
"pagePath": "pages/parkRepair/parkRepair",
"iconPath": "/images/tabbar/openDoor.png",
"selectedIconPath": "/images/tabbar/openDoor.png",
"text": "开门",
"bulge": true,
},
{
"pagePath": "pages/my/my",
"iconPath": "/images/tabbar/my.png",
"selectedIconPath": "/images/tabbar/my-select.png",
"text": "我的"
},
],
DOMAIN_NAME: app.IMG_NAME, DOMAIN_NAME: app.IMG_NAME,
customerPages: [ customerPages: [
[{ [{
@ -47,6 +75,16 @@ Page({
memberInfo: {} memberInfo: {}
}, },
// 切换tabbar
switchTab(e) {
const data = e.currentTarget.dataset
console.log('switchTab', data)
const url = data.path
wx.switchTab({
url: '/' + url
})
},
/** /**
* 生命周期函数--监听页面加载 * 生命周期函数--监听页面加载
*/ */

View File

@ -1,9 +1,7 @@
<view class="page"> <view class="page">
<view bindtap="navpersonalData" <view bindtap="navpersonalData" style="padding: 24rpx;background:white;display: flex;margin-top:20rpx;border-radius: 20rpx;padding-right: 0;">
style="padding: 24rpx;background:white;display: flex;margin-top:20rpx;border-radius: 20rpx;padding-right: 0;">
<view style="width:164rpx;height:164rpx;border-radius:50%;overflow:hidden;"> <view style="width:164rpx;height:164rpx;border-radius:50%;overflow:hidden;">
<image src="{{memberInfo.avatar? memberInfo.avatar:'/images/user-unlogin.jpg'}}" mode="widthFix" <image src="{{memberInfo.avatar? memberInfo.avatar:'/images/user-unlogin.jpg'}}" mode="widthFix" style="width: 100%;"></image>
style="width: 100%;"></image>
</view> </view>
<view style="font-size:12pt;line-height:164rpx;width: 66%;text-indent: 40rpx;">{{memberInfo.nickname? memberInfo.nickname:'登录'}}</view> <view style="font-size:12pt;line-height:164rpx;width: 66%;text-indent: 40rpx;">{{memberInfo.nickname? memberInfo.nickname:'登录'}}</view>
<view class="iconBox"> <view class="iconBox">
@ -15,9 +13,7 @@
<view class="my-mainfun-moudel1"> <view class="my-mainfun-moudel1">
<block wx:for="{{customerPages[0]}}" wx:for-item="list" wx:key="i"> <block wx:for="{{customerPages[0]}}" wx:for-item="list" wx:key="i">
<view class="main-item2" bindtap='navigateTo' data-url="{{list.url}}" <view class="main-item2" bindtap='navigateTo' data-url="{{list.url}}" style="{{list.marginbottom?'margin-bottom:25rpx;':''}};{{list.bordernone?'border-bottom:none':''}};border-radius:{{list.borderRadius}}" hidden='{{list.hide}}'>
style="{{list.marginbottom?'margin-bottom:25rpx;':''}};{{list.bordernone?'border-bottom:none':''}};border-radius:{{list.borderRadius}}"
hidden='{{list.hide}}'>
<view class="main-item-text1"> <view class="main-item-text1">
<view class="text-titl1">{{list.zh}}</view> <view class="text-titl1">{{list.zh}}</view>
</view> </view>
@ -28,4 +24,14 @@
</block> </block>
</view> </view>
</view> </view>
<!-- tabBar -->
<view class="tab-bar">
<view wx:for="{{tabBarList}}" wx:key="index" class="tab-bar-item {{item.bulge?'bulge':''}}" data-path="{{item.pagePath}}" data-index="{{index}}" bindtap="switchTab">
<view wx:if="item.bulge" class="tab-bar-bulge"></view>
<image class="image" src="{{tabBarParam.selected === index ? item.selectedIconPath : item.iconPath}}"></image>
<view class="tab-bar-view" style="color: {{tabBarParam.selected === index ? tabBarParam.selectedColor : tabBarParam.color}}">{{item.text}}</view>
</view>
</view>
</view> </view>

View File

@ -1,3 +1,5 @@
@import "../../tabBar.wxss";
.page { .page {
overflow: auto; overflow: auto;
height: 100%; height: 100%;

58
miniprogram/tabBar.wxss Normal file
View File

@ -0,0 +1,58 @@
.tab-bar {
position: fixed;
bottom: 0;
left: 0;
right: 0;
height: 50px;
background: #FFF;
display: flex;
line-height: 1.2;
padding-bottom: 60rpx;
border-top: 1px solid #e6e6e6;
}
.tab-bar-item {
flex: 1;
text-align: center;
display: flex;
justify-content: center;
align-items: center;
flex-direction: column;
}
.tab-bar-item .image {
width: 26px;
height: 26px;
}
.bulge {
background-color: #FFF;
}
.bulge .tab-bar-bulge{
position: absolute;
z-index: -1;
width: 64px;
height: 64px;
top: -24px;
border-radius: 50%;
border-top: 1px solid #e6e6e6;
background-color: #FFF;
}
.bulge .image{
position: absolute;
width: 50px;
height: 50px;
top: -16px;
}
.bulge .tab-bar-view{
position: relative;
bottom: -16px;
margin-top: 4px;
}
.tab-bar-item .tab-bar-view {
font-size: 12px;
margin-top: 4px;
}