| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273 |
- import { timerTask } from '@/utils/timer'
- import { commonStore, accountStore, futuresStore, sessionData } from '@/stores'
- import { tokenCheck } from '@/services/api/account'
- import eventBus from '@/services/bus'
- import socket from '@/services/socket'
- /**
- * 退出登录
- */
- export function logout(callback?: () => void) {
- socket.closeAll()
- timerTask.clearAll()
- sessionData.reset()
- accountStore.reset()
- callback && callback()
- }
- /**
- * 初始化业务数据
- * @param callback
- */
- export async function initBaseData(callback?: () => void) {
- if (sessionData.getLoginInfo('Token')) {
- checkTokenLoop()
- const asyncTask = [
- commonStore.getLoginData(),
- futuresStore.getGoodsList(),
- sessionData.getUserMenuList(),
- //sessionData.getTableColumnList(),
- ]
- await Promise.all(asyncTask).then(() => {
- accountStore.getAccountList()
- callback && callback()
- }).catch(() => {
- return Promise.reject('初始化失败')
- })
- } else {
- callback && callback()
- }
- }
- /**
- * 令牌效验
- */
- export function checkToken() {
- const { LoginID, Token } = sessionData.getValue('loginInfo')
- return tokenCheck({
- data: {
- LoginID,
- Token,
- },
- fail: () => eventBus.$emit('LogoutNotify')
- })
- }
- /**
- * 轮询效验令牌
- */
- export function checkTokenLoop() {
- const delay = 1 * 60 * 1000 // 每1分钟效验一次令牌
- timerTask.setTimeout(() => {
- checkToken().then(() => checkTokenLoop())
- }, delay, 'checkToken')
- }
- /**
- * 停止令牌效验
- */
- export function stopCheckToken() {
- timerTask.clearTimeout('checkToken')
- }
|