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