车间能级提升-智能设备管理系统
baoshiwei
2025-04-24 89a5fedfe041ebacb2d81ecae1023b206cd3f353
eims-ui-mobile/src/store/access.ts
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,79 @@
import { defineStore } from 'pinia'
import { ref } from 'vue'
type AccessToken = null | string
const initState = {
  access_codes: [],
  access_menus: [],
  access_routes: [],
  access_token: null,
  is_access_checked: false,
  login_expired: false,
  refresh_token: null,
}
interface AccessInfo {
  /**
   * æƒé™ç 
   */
  access_codes: string[]
  /**
   * å¯è®¿é—®çš„菜单列表
   */
  access_menus: string[]
  /**
   * å¯è®¿é—®çš„路由列表
   */
  access_routes: string[]
  /**
   * ç™»å½• accessToken
   */
  access_token: AccessToken
  /**
   * æ˜¯å¦å·²ç»æ£€æŸ¥è¿‡æƒé™
   */
  is_access_checked: boolean
  /**
   * ç™»å½•是否过期
   */
  login_expired: boolean
  /**
   * ç™»å½• accessToken
   */
  refresh_token: AccessToken
}
export const useAccessStore = defineStore(
  'accessInfo',
  () => {
    const accessInfo = ref<AccessInfo>({ ...initState })
    const setAccessInfo = (val: AccessInfo) => {
      accessInfo.value = val
    }
    const setAccessToken = (val: AccessToken) => {
      accessInfo.value.access_token = val
    }
    const clearAccessInfo = () => {
      accessInfo.value = { ...initState }
    }
    // ä¸€èˆ¬æ²¡æœ‰reset需求,不需要的可以删除
    const reset = () => {
      accessInfo.value = { ...initState }
    }
    const isLogined = computed(() => !!accessInfo.value.access_token)
    return {
      accessInfo,
      setAccessInfo,
      setAccessToken,
      clearAccessInfo,
      isLogined,
      reset,
    }
  },
  {
    persist: true,
  },
)