165 lines
5.5 KiB
Vue
165 lines
5.5 KiB
Vue
<script>
|
||
// #ifdef APP-PLUS
|
||
import appUpdate from '@/components/appUpdate/appUpdate.js'
|
||
// #endif
|
||
import { jwtDecode } from 'jwt-decode'
|
||
// 导入路由拦截器
|
||
import routeInterceptor from '@/utils/routeInterceptor.js'
|
||
|
||
export default {
|
||
onLaunch: function () {
|
||
// 初始化路由拦截器
|
||
routeInterceptor.init();
|
||
|
||
console.log('%c%s', 'color:red', 'onLaunch---')
|
||
uni.showLoading({ title: '加载中' })
|
||
// uni.setStorageSync("token", "");
|
||
window.initFn = this.initFn
|
||
// this.initFn();
|
||
//console.log('App Launch')
|
||
// #ifdef APP-PLUS
|
||
let systemInfo = uni.getSystemInfoSync()
|
||
const data = {
|
||
appid: systemInfo.appId,
|
||
version: systemInfo.appVersion
|
||
}
|
||
console.log(data)
|
||
//把appid和版本发送请求服务器,看服务器上是否有更新
|
||
this.$api.checkVersion(data).then(res => {
|
||
console.log(res)
|
||
if (res.code == 0) {
|
||
//如果返回0则表示有更新
|
||
appUpdate(res)
|
||
}
|
||
})
|
||
// #endif
|
||
},
|
||
onShow: function () {
|
||
// console.log('%c%s', 'color:red', 'onShow---');
|
||
// #ifdef MP-WEIXIN
|
||
|
||
// 当向小程序后台请求完新版本信息,会进行回调。res: {hasUpdate: true, version: 1.0.0}
|
||
updateManager.onCheckForUpdate(function (res) {
|
||
if (res.hasUpdate) {
|
||
// 有更新
|
||
uni.showLoading({ title: '更新中...' }) // 开始下载前,显示Loading
|
||
}
|
||
})
|
||
// 当新版本下载完成,会进行回调
|
||
updateManager.onUpdateReady(function () {
|
||
uni.hideLoading() // 关闭 Loading
|
||
uni.showModal({
|
||
// 弹确认框(强制更新)
|
||
title: '更新提示',
|
||
content: '更新完毕,是否重启?',
|
||
success: function (res) {
|
||
if (res.confirm) {
|
||
updateManager.applyUpdate() // 强制小程序重启并使用新版本。
|
||
}
|
||
}
|
||
})
|
||
})
|
||
// 当新版本下载失败,会进行回调
|
||
updateManager.onUpdateFailed(function () {
|
||
uni.hideLoading() // 关闭 Loading
|
||
uni.showToast({ title: '更新失败,稍后再试...', icon: 'error' })
|
||
})
|
||
// #endif
|
||
},
|
||
onHide: function () {},
|
||
methods: {
|
||
initFn(data) {
|
||
uni.hideLoading() // 关闭 Loading
|
||
if (!data) {
|
||
return uni.showToast({ title: '未传入参数 initFn', icon: 'none' })
|
||
}
|
||
// uni.showModal({
|
||
// title: "查看initFn",
|
||
// content: JSON.stringify(data) || "未传入参数 initFn",
|
||
// showCancel: true,
|
||
// success: function (res) {},
|
||
// });
|
||
// "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJodHRwOi8vc2NoZW1hcy54bWxzb2FwLm9yZy93cy8yMDA1LzA1L2lkZW50aXR5L2NsYWltcy9zaWQiOiIwOGRkNzFiZC01N2MxLTQ1YmMtODBiYS0xMjkzYjU4MTViMmEiLCJ1bmlxdWVfbmFtZSI6IuS_nea0gSIsInJvbGUiOiJVc2VyIiwiaHR0cDovL3NjaGVtYXMueG1sc29hcC5vcmcvd3MvMjAwNS8wNS9pZGVudGl0eS9jbGFpbXMvbW9iaWxlcGhvbmUiOiIxODE3NDAxMDU2MiIsImdyb3Vwc2lkIjoiNGIyZDk2NjItYTc2OC0wOGYyLWEwYzgtNzYyYjhjNzZkYTJhIiwibmJmIjoxNzQ0MjYzMTAyLCJleHAiOjE3NDQyNjY3MDIsImlhdCI6MTc0NDI2MzEwMn0.ZJTwC7rWCcywoM7ncysw-JRIiwXz4y_6hlmqctN-gMM"
|
||
let token = data.token
|
||
uni.setStorageSync('token', 'Bearer ' + token)
|
||
console.log(jwtDecode(token), '解析的token信息')
|
||
let resData = jwtDecode(token)
|
||
this.$u.vuex('vuex_userData', resData)
|
||
console.log(this.vuex_userData, 'vuex_userData')
|
||
// User | Admin
|
||
let role = resData.role
|
||
console.log(role, 'role----')
|
||
// return;
|
||
if (role === 'User') {
|
||
const normalTabBar = [
|
||
{
|
||
pagePath: '/pages/index/planList',
|
||
iconPath: '/static/tab/planList.png',
|
||
selectedIconPath: '/static/tab/planList-active.png',
|
||
text: '计划'
|
||
},
|
||
{
|
||
pagePath: '/pages/index/index',
|
||
iconPath: '/static/tab/admin-home.png',
|
||
selectedIconPath: '/static/tab/admin-home-acitve.png',
|
||
text: '首页'
|
||
},
|
||
{
|
||
pagePath: '/pages/user/index',
|
||
iconPath: '/static/tab/admin-my.png',
|
||
selectedIconPath: '/static/tab/admin-my-active.png',
|
||
text: '设置'
|
||
}
|
||
]
|
||
this.$u.vuex('vuex_tabbar', normalTabBar)
|
||
uni.switchTab({
|
||
url: '/pages/index/index',
|
||
success() {
|
||
console.log('跳转成功')
|
||
window.initFn = null // 清除全局函数
|
||
},
|
||
fail(err) {
|
||
console.error('跳转失败', err)
|
||
}
|
||
})
|
||
} else {
|
||
const adminTabBar = [
|
||
{
|
||
pagePath: '/pages/adminHome/index',
|
||
iconPath: '/static/tab/admin-home.png',
|
||
selectedIconPath: '/static/tab/admin-home-acitve.png',
|
||
text: '首页'
|
||
},
|
||
{
|
||
pagePath: '/pages/adminNfc/index',
|
||
iconPath: '/static/tab/nfc.png',
|
||
selectedIconPath: '/static/tab/nfc-active.png',
|
||
text: 'nfc写入'
|
||
},
|
||
{
|
||
pagePath: '/pages/adminMy/index',
|
||
iconPath: '/static/tab/admin-my.png',
|
||
selectedIconPath: '/static/tab/admin-my-active.png',
|
||
text: '我的'
|
||
}
|
||
]
|
||
this.$u.vuex('vuex_tabbar', adminTabBar)
|
||
uni.switchTab({
|
||
url: '/pages/adminHome/index',
|
||
success() {
|
||
console.log('跳转成功')
|
||
window.initFn = null // 清除全局函数
|
||
},
|
||
fail(err) {
|
||
console.error('跳转失败', err)
|
||
}
|
||
})
|
||
}
|
||
}
|
||
}
|
||
}
|
||
</script>
|
||
<style lang="scss">
|
||
@import '@/uni_modules/uview-ui/index.scss';
|
||
</style>
|