81 lines
2.2 KiB
JavaScript
81 lines
2.2 KiB
JavaScript
const App = getApp()
|
||
Component({
|
||
data: {
|
||
selected: App.globalData.selectedIndex,
|
||
color: '#3D3D3D',
|
||
selectedColor: '#3D3D3D',
|
||
list: [
|
||
{
|
||
pagePath: '/pages/index/index',
|
||
iconPath: '/static/tabbar/home_icon.png',
|
||
selectedIconPath: '/static/tabbar/home_active.png',
|
||
text: '首页'
|
||
},
|
||
{
|
||
pagePath: '/pages/ai/chat',
|
||
iconPath: '/static/tabbar/news_icon.png',
|
||
selectedIconPath: '/static/tabbar/news_active.png',
|
||
text: '管家在线'
|
||
},
|
||
{
|
||
pagePath: '/pages/me/index',
|
||
iconPath: '/static/tabbar/news_icon.png',
|
||
selectedIconPath: '/static/tabbar/news_active.png',
|
||
text: '我的'
|
||
}
|
||
]
|
||
},
|
||
lifetimes: {
|
||
attached: function () {
|
||
// 监听路由变化,自动更新tab-bar选中状态
|
||
const updateTabBar = () => {
|
||
let _this = this
|
||
const pages = getCurrentPages()
|
||
const currentPage = pages[pages.length - 1]
|
||
console.log('currentList', getApp().globalData.menuList)
|
||
if (currentPage) {
|
||
const currentPath = currentPage.route
|
||
const index = this.data.list.findIndex(item => item.pagePath === `/${currentPath}`)
|
||
if (index !== -1) {
|
||
this.setData({
|
||
selected: index,
|
||
list: getApp().globalData.menuList
|
||
})
|
||
App.globalData.selectedIndex = index
|
||
}
|
||
}
|
||
}
|
||
// 初始化时执行一次
|
||
updateTabBar()
|
||
// 注册路由监听
|
||
wx.onAppRoute(updateTabBar)
|
||
}
|
||
},
|
||
ready() {
|
||
this.setData({
|
||
list: getApp().globalData.menuList,
|
||
selected: App.globalData.selectedIndex || 0
|
||
})
|
||
},
|
||
methods: {
|
||
switchTab(e) {
|
||
const data = e.currentTarget.dataset
|
||
const url = data.path
|
||
App.globalData.selectedIndex = data.index
|
||
console.log('App.globalData.selectedIndex', data)
|
||
this.setData({
|
||
selected: data.index,
|
||
list: getApp().globalData.menuList
|
||
})
|
||
console.log('switchTab fail', url)
|
||
wx.switchTab({
|
||
url,
|
||
fail: res => {
|
||
// wx.navigateTo({url})
|
||
console.log('switchTab fail', res)
|
||
}
|
||
})
|
||
}
|
||
}
|
||
})
|