import router from '@/router' import store from '@/store' import { Message } from 'element-ui' import * as dd from 'dingtalk-jsapi' import { apiDingtalkLogin } from '@/api/login' import VueCookie from 'vue-cookies' // 钉钉免登录 async function handleDingtalkLogin (val) { const res = await apiDingtalkLogin(val) console.log('钉钉免登录res: ', res) if (res && res.code === 200) { console.log('res.token: ', res.token) VueCookie.set('token', res.token) return 1 // window.open(window.location.protocol + '//' + window.location.host + '/digitization/kpi/workbench/home?code=' + this.dingCode.code) } else { Message.error('登录失败') return 0 } } // 获取钉钉鉴权码 function handleGetDingtalkCode () { return new Promise((resolve, reject) => { dd.runtime.permission.requestAuthCode({ corpId: 'ding267474e759bbca1c35c2f4657eb6378f', async onSuccess (res) { console.log('result===', res) let result = await handleDingtalkLogin(res) console.log('result: ', result) resolve(result) }, onFail (err) { console.log('err: ', err) reject(err) } }) }) } router.beforeEach(async (to, from, next) => { console.log('dd---: ', dd) if (!store.getters.userInfo.userNo && !dd.other) { let res = await handleGetDingtalkCode() console.log('res: ', res) if (res === 1) { console.log('res: ', res) let res1 = await store.dispatch('GET_USERINFO') console.log('res1: ', res1) if (res1 === 1) next() } else { Message.error('网络错误') next() } } else { next() } }) router.afterEach(() => { })