智能照明系统APP-本地串口
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.
 
 
 
 
 
 
LightingSystemApp-serial/.svn/pristine/fa/fac93b22984849894660138d0bc...

117 lines
3.0 KiB

import {
setProperties
} from 'uni-shared'
const setTabBarItemProps = ['text', 'iconPath', 'selectedIconPath']
const setTabBarStyleProps = ['color', 'selectedColor', 'backgroundColor', 'borderStyle']
const setTabBarBadgeProps = ['badge', 'redDot']
function setTabBar (type, args = {}) {
const app = getApp()
if (app) {
let isTabBar = false
const pages = getCurrentPages()
if (pages.length) {
if (pages[pages.length - 1].$page.meta.isTabBar) {
isTabBar = true
}
} else if (app.$children[0].hasTabBar) {
isTabBar = true
}
if (!isTabBar) {
return {
errMsg: `${type}:fail not TabBar page`
}
}
const {
index
} = args
const tabBar = app.$children[0].tabBar
if (index >= __uniConfig.tabBar.list.length) {
return {
errMsg: `${type}:fail tabbar item not found`
}
}
switch (type) {
case 'showTabBar':
app.$children[0].hideTabBar = false
break
case 'hideTabBar':
app.$children[0].hideTabBar = true
break
case 'setTabBarItem': {
setProperties(tabBar.list[index], setTabBarItemProps, args)
const pagePath = args.pagePath
const route = pagePath && __uniRoutes.find(({ path }) => path === pagePath)
if (route) {
const meta = route.meta
meta.isTabBar = true
meta.tabBarIndex = index
meta.isQuit = true
const tabBar = __uniConfig.tabBar
if (tabBar && tabBar.list && tabBar.list[index]) {
tabBar.list[index].pagePath = pagePath.startsWith('/') ? pagePath.substring(1) : pagePath
}
}
break
}
case 'setTabBarStyle':
setProperties(tabBar, setTabBarStyleProps, args)
break
case 'showTabBarRedDot':
setProperties(tabBar.list[index], setTabBarBadgeProps, {
badge: '',
redDot: true
})
break
case 'setTabBarBadge':
setProperties(tabBar.list[index], setTabBarBadgeProps, {
badge: args.text,
redDot: true
})
break
case 'hideTabBarRedDot':
case 'removeTabBarBadge':
setProperties(tabBar.list[index], setTabBarBadgeProps, {
badge: '',
redDot: false
})
break
}
}
return {}
}
export function setTabBarItem (args) {
return setTabBar('setTabBarItem', args)
}
export function setTabBarStyle (args) {
return setTabBar('setTabBarStyle', args)
}
export function hideTabBar (args) {
return setTabBar('hideTabBar', args)
}
export function showTabBar (args) {
return setTabBar('showTabBar', args)
}
export function hideTabBarRedDot (args) {
return setTabBar('hideTabBarRedDot', args)
}
export function showTabBarRedDot (args) {
return setTabBar('showTabBarRedDot', args)
}
export function removeTabBarBadge (args) {
return setTabBar('removeTabBarBadge', args)
}
export function setTabBarBadge (args) {
return setTabBar('setTabBarBadge', args)
}