|
@ -16,6 +16,7 @@ import order from './order'
|
|
|
import replenishment from './replenishment'
|
|
|
import device from './device'
|
|
|
import machine from './machine'
|
|
|
import {getPublicKey, getHwlyyDecrypt, checkWlyyLogin} from '@/api/login'
|
|
|
Vue.use(VueRouter)
|
|
|
|
|
|
const routes = [
|
|
@ -102,8 +103,16 @@ function redirectToLogin(to, from, next) {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
if(process.env.NODE_ENV==='production') {
|
|
|
router.beforeEach(async (to, from, next) => {
|
|
|
router.beforeEach(async (to, from, next) => {
|
|
|
// _from=ihealth&_platform=webApp
|
|
|
new Promise((resolve, reject)=>{
|
|
|
if(to.query._code){
|
|
|
return authLogin(to.query._code, to)
|
|
|
} else {
|
|
|
resolve()
|
|
|
}
|
|
|
})
|
|
|
.then(res=>{
|
|
|
if((store.getters.user && store.getters.user.accessToken)) {
|
|
|
next()
|
|
|
} else {
|
|
@ -114,13 +123,54 @@ if(process.env.NODE_ENV==='production') {
|
|
|
}
|
|
|
}
|
|
|
})
|
|
|
} else {
|
|
|
router.beforeEach(async (to, from, next) => {
|
|
|
if ((!store.getters.user || !store.getters.user.accessToken) && whiteList.indexOf(to.path) == -1) {
|
|
|
next('/login')
|
|
|
return
|
|
|
}
|
|
|
next()
|
|
|
.catch(err=>{
|
|
|
console.error(err)
|
|
|
})
|
|
|
})
|
|
|
|
|
|
function authLogin(code, to){
|
|
|
return new Promise((resolve, reject)=>{
|
|
|
getHwlyyDecrypt({code: decodeURIComponent(code)})
|
|
|
.then(data=>{
|
|
|
return new Promise((resolve, reject)=>{
|
|
|
getPublicKey({})
|
|
|
.then(res=>{
|
|
|
var encrypt = new JSEncrypt()
|
|
|
encrypt.setPublicKey(res.obj.publicKey)
|
|
|
resolve(encrypt.encrypt(data.obj.code))
|
|
|
})
|
|
|
.catch(err=>{
|
|
|
reject(err)
|
|
|
})
|
|
|
})
|
|
|
})
|
|
|
.then(code=>{
|
|
|
return checkWlyyLogin({
|
|
|
code: code,
|
|
|
client_id: store.getters.clientId,
|
|
|
login_type: 1
|
|
|
})
|
|
|
})
|
|
|
.then(res=>{
|
|
|
if(res.obj && res.obj.authCode==1){
|
|
|
var userInfo = loginRes.obj.WlyyUserSimple
|
|
|
userInfo.token = userInfo.accessToken
|
|
|
userInfo.clientType = to.query.clientType//1 来自i健康app 区域互联网
|
|
|
store
|
|
|
.dispatch('SetLoginUser', userInfo)
|
|
|
.then(res=>{
|
|
|
resolve()
|
|
|
})
|
|
|
} else {
|
|
|
Toast(res.obj&&res.obj.mes)
|
|
|
reject(err)
|
|
|
}
|
|
|
})
|
|
|
.catch(err=>{
|
|
|
console.error(err)
|
|
|
// Toast("获取医生数据错误")
|
|
|
reject(err)
|
|
|
})
|
|
|
})
|
|
|
}
|
|
|
|