long
2021-09-13 5f052d4e17b53d4fe07a87d53a9c112bff3dc852
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
var isMock = require('@/config/baseConfig').isMock // 全局配置文件
// 全局方法 全局放大 以后缀 FN 结尾
var fn = {
  // 通用跳转
  /**
   * 用法1(query): jumpToFN('/accountType/voucherTemplate?id='+ scope.row.id)"
   * 特点 url会显示出来,刷新不会丢失(传参url为路由path)
   *
   * 用法2(params):jumpToFN('voucherTemplate',{id: scope.row.id})
   * 特点 url不会显示出来,刷新丢失数据(传值url为路由name)
   */
  jumpToFN(url, params) {
    if (!url) return
    if (params) {
      console.log({ name: url, params: { ...params }})
      this.$router.push({ name: url, params: { ...params }})
    } else {
      this.$router.push(url)
    }
  },
 
  // 随机12位数
  getCheckedId() {
    var s = []
    var hexDigits = '0123456789abcdef'
    for (var i = 0; i < 12; i++) {
      s[i] = hexDigits.substr(Math.floor(Math.random() * 0x10), 1)
    }
    // s[14] = '4';
    // s[19] = hexDigits.substr((s[19] & 0x3) | 0x8, 1);
 
    // s[8] = s[13] = s[18] = s[23] = '-'
    var uuid = s.join('')
    return uuid
  },
 
  // 获取权限
  // 参考pages/login.vue的mockData
  // 需要注意的是,如果更改帐号权限,必须该帐号重新登录才生效
  getAuthDataFN() {
    var userData = sessionStorage.getItem('userData')
    var authArr; var authData = {}
 
    if (userData) {
      authArr = JSON.parse(userData).arr
      // 转成对象
      authArr.forEach(key => {
        authData[key] = 1
      })
      return authData
    } else {
      // 清空登录凭证和用户数据
      sessionStorage.clear()
      // 未登录,跳转登录页面
      this.$router.replace({ path: '/login' })
      this.$messageError('登录过期,请重新登录')
      authArr = []
      return {}
    }
  },
  // 获取单个权限
  getAuthValueFN(key) {
    if (!key) {
      return 0
    }
    // mock模式 全显示
    if (isMock) return true
    return this.getAuthDataFN()[key]
  },
 
  // 检测是否登录
  checkLoginFN(_this, sucCb) {
    var adminToken = sessionStorage.getItem('adminToken')
    if (adminToken) {
      sucCb && sucCb()
    } else {
      // 清空登录凭证和用户数据
      sessionStorage.clear()
      // 未登录,跳转登录页面
      _this.$router.replace({ path: '/login' })
      // this.$messageError('登录过期,请重新登录');
    }
  }
}
 
export default fn