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