98 lines
2.7 KiB
JavaScript
98 lines
2.7 KiB
JavaScript
var defaultTabbarItem = [
|
|
"pages/person/person",
|
|
"pages/residents/report",
|
|
"pages/index/index"
|
|
]
|
|
|
|
export function toggle(that) {
|
|
let pages = getCurrentPages()
|
|
let route = pages[pages.length - 1].route
|
|
console.log("[CustomTabBar] route", route)
|
|
|
|
if (!typeof that.getTabBar === 'function' || !that.getTabBar()) {
|
|
// wx.showModal({
|
|
// title: '版本太旧',
|
|
// content: '您的微信版本太旧,无法使用本小程序',
|
|
// showCancel: false,
|
|
// complete: (res) => {
|
|
// wx.exitMiniProgram()
|
|
// }
|
|
// })
|
|
return
|
|
}
|
|
|
|
// 找出要选择哪一项
|
|
let tabBar = that.getTabBar()
|
|
console.log("[CustomTabBar] tabBar", tabBar)
|
|
|
|
let data = tabBar.data
|
|
console.log("[CustomTabBar] data", data)
|
|
|
|
let showPagePathList = wx.getStorageSync('tabbarItem') || defaultTabbarItem
|
|
console.log("[CustomTabBar] showPagePathList", showPagePathList)
|
|
|
|
let list = tabBar.data.rawList.filter((page) => showPagePathList.includes(page.pagePath))
|
|
console.log("[CustomTabBar] tabBarList", list)
|
|
|
|
let selected = list ? list.indexOf(list.find(p => p.pagePath == route)) : -1
|
|
console.log("[CustomTabBar] selected", selected)
|
|
|
|
console.log("更新tabbar")
|
|
|
|
// 选中这一项
|
|
tabBar.setData({
|
|
selected: selected,
|
|
list: list
|
|
})
|
|
}
|
|
|
|
export function updateConfig(baseUrl) {
|
|
// 请求配置文件(用于审核时隐藏部分功能)
|
|
wx.request({
|
|
url: baseUrl + '/getConfig?v=2',
|
|
success(result) {
|
|
let data = result.data
|
|
if (data.tabbarItem) {
|
|
console.log("[CustomTabBar] tabbar数据拉取完毕")
|
|
wx.setStorageSync('tabbarItem', data.tabbarItem)
|
|
wx.setStorageSync('indexItem', data.indexItem)
|
|
|
|
const pages = getCurrentPages();
|
|
const indexPage = pages[0]
|
|
const currentPage = pages[pages.length - 1]
|
|
console.log("[CustomTabBar] indexPage", indexPage)
|
|
console.log("[CustomTabBar] currentPage", currentPage)
|
|
|
|
// // 更新tabbar
|
|
// toggle(currentPage)
|
|
// 刷新首页中包含了触发 toggle 的代码 此处不重复触发
|
|
|
|
// 刷新首页
|
|
indexPage && indexPage.onLoad()
|
|
|
|
// let tabBar = currentPage.getTabBar()
|
|
// tabBar.setData({
|
|
// list: tabBar.data.rawList.filter((page) => itemList.includes(page.pagePath))
|
|
// })
|
|
}
|
|
},
|
|
fail() {
|
|
wx.showModal({
|
|
title: '小程序启动失败',
|
|
content: '点击确认重试,若多次失败请检查网络连接',
|
|
complete: (res) => {
|
|
if (res.cancel) {
|
|
wx.exitMiniProgram()
|
|
}
|
|
|
|
if (res.confirm) {
|
|
wx.reLaunch({
|
|
url: 'pages/index/index',
|
|
})
|
|
}
|
|
}
|
|
})
|
|
}
|
|
})
|
|
}
|