123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105 |
- import { ref, watch } from 'vue'
- import { keyViewMap } from '@/constant/view'
- // import { userperInfo } from '@/request/config'
- // import axios from 'axios'
- const strToJson = (str, def) => {
- try {
- str = JSON.parse(str)
- } catch {
- str = def
- }
- return str || def
- }
- const user = ref({
- token: localStorage.getItem('token'),
- info: strToJson(localStorage.getItem('info'), {}),
- permission: strToJson(localStorage.getItem('permission'), []),
- roleKeyList:strToJson(localStorage.getItem('roleKeyList'), []),
- roleKey: localStorage.getItem('roleKey'),
-
- })
- watch(
- () => user.value.token,
- () => localStorage.setItem('token', user.value.token)
- )
- watch(
- () => user.value.roleKey,
- () => localStorage.setItem('roleKey', user.value.roleKey)
- )
- watch(
- () => user.value.info,
- () => localStorage.setItem('info', JSON.stringify(user.value.info))
- )
- watch(
- () => user.value.permission,
- () => localStorage.setItem('permission', JSON.stringify(user.value.permission))
- )
- watch(
- () => user.value.roleKeyList,
- () => localStorage.setItem('roleKeyList', JSON.stringify(user.value.roleKeyList))
- )
- export const setPermission = async (val,permissions) => {
- let power = []
- if (val !== void 0){
- power = permissions&&permissions.map(element => element.replace('dept','organization'));
- let pubPermission = ['home', 'vrmodel', 'camera', 'teaching', 'dispatch'].map(key => ({
- children: [
- { resourceKey: key + ':select' },
- { resourceKey: key + ':update' },
- { resourceKey: key + ':delete' },
- { resourceKey: key + ':add' }
- ],
- resourceKey: key
- }))
- if (val === 'admin' || val==="admin-dept" || val==="admin-super" ) {
- pubPermission[pubPermission.length - 1].children.push(
- { resourceKey: 'dispatch:setting' }
- )
- pubPermission[pubPermission.length - 2].children.push(
- { resourceKey: 'teaching:setting' }
- )
- pubPermission.push({children: [
- { resourceKey: 'user:select' },
- { resourceKey: 'user:update' },
- { resourceKey: 'user:delete' },
- { resourceKey: 'user:add' }
- ],
- resourceKey: 'user'
- })
- }
- val = pubPermission.map(item => ({
- ...item,
- viewName: keyViewMap[item.resourceKey] || item.resourceKey
- }))
- } else {
- val = []
- }
- user.value.permission = val
- user.value.roleKeyList = power
- }
- export const setToken = val => {
- user.value.token = val
- }
- export const setInfo = val => {
- user.value.info = val
- }
- export const setRoleKey = val => {
- user.value.roleKey = val
- }
- export default user
|