import Cookies from 'js-cookie' import store from '@/store' import { JSEncrypt } from 'jsencrypt' const publicKey = hexToDec(); const TokenKey = 'Admin-Token' const CourseTokenKey = 'Course-Token' const CourseId = 'Course-Id' const USER = 'user' const PASW = 'pasw' // 提示跳转 export function openUrl(num) { let url = 'http://www.baidu.com'; if (num == 1) { url = 'https://www.yuque.com/docs/share/4551830c-25c8-44ae-8130-368c88bac624?# 《A分、B分常见问题》' } else if (num == 2) { url = 'https://www.yuque.com/docs/share/2300b9bb-84ab-48ae-afd9-a19da38147ba?# 《如何设置自动积分?》' } else if (num == 3) { url = 'https://www.yuque.com/docs/share/4cb21924-c9ee-4a4d-91f4-58db8be9547b?# 《基础分、工龄分是什么?》' } else if (num == 4) { url = 'https://www.yuque.com/docs/share/971c4cd7-5498-4fd6-a97c-ef08d62079c1?# 《系统配置》' } else if (num == 5) { url = 'https://www.yuque.com/docs/share/4551830c-25c8-44ae-8130-368c88bac624?# 《A分、B分常见问题》' } else if (num == 6) { url = 'https://www.yuque.com/docs/share/8cae70cf-3961-4e91-848d-d903f0323004?# 《如何邀请员工注册并加入企业?》' } else if (num == 7) { url = 'https://www.yuque.com/docs/share/8f7a1871-a886-48f7-9745-fd2ad13cbbcc?# 《角色权限操作说明(视频)》' } else if (num == 8) { url = 'https://www.yuque.com/docs/share/bd17afd5-8381-467d-ab65-a10661c73388?# 《积分权限是什么?有什么用?》' } else if (num == 9) { url = 'https://www.yuque.com/docs/share/2ef16237-4bc3-4ab8-8195-bc506098c0d5?# 《什么是每月奖扣目标,有什么用?》' } else if (num == 10) { url = 'https://www.yuque.com/docs/share/e8c6c82d-0f9f-4663-ada5-95dbd46ab1db?# 《审批流程说明》' } else if (num == 11) { url = 'https://www.yuque.com/docs/share/155191a9-fab6-447f-a7da-099506b322e6?# 《第一步:班次管理》' } else if (num == 12) { url = 'https://www.yuque.com/docs/share/6e16186a-21a1-4f26-bd76-0967cfbcff85?# 《第二步:创建加班规则》' } else if (num == 13) { url = 'https://www.yuque.com/docs/share/86a48ef0-5b91-416b-8bb4-b51248bab89b?# 《第三步:创建考勤组》' } else if (num == 14) { url = 'https://www.yuque.com/docs/share/6c233543-b04e-442b-8629-622b41465c56?# 《第四步:创建假期类型》' } else if (num == 15) { url = 'https://www.yuque.com/docs/share/44aa8b5b-ef80-420b-8fd2-6902a08179ae?# 《自定义B分的使用场景有哪些?》' } else if (num == 16) { url = 'https://www.yuque.com/docs/share/a3c8a68c-6706-4dbf-9cad-8886a8c904ff?# 《积分规则常见问题》' } else if (num == 17) { url = 'https://www.yuque.com/docs/share/4551830c-25c8-44ae-8130-368c88bac624?# 《A分、B分常见问题》' } else if (num == 18) { url = 'https://www.yuque.com/docs/share/2ef16237-4bc3-4ab8-8195-bc506098c0d5?# 《什么是每月奖扣目标,如何使用?》' } else if (num == 19) { url = 'https://www.yuque.com/docs/share/97a89371-71c4-42c0-b01e-4c51b746ffe0?# 《什么是重复任务》' } window.open(url, '_blank'); } // 获取唯一标识(uid) export function generateUUID() { var d = new Date().getTime(); var uuid = 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) { var r = (d + Math.random() * 16) % 16 | 0; d = Math.floor(d / 16); return (c == 'x' ? r : (r & 0x3 | 0x8)).toString(16); }); return uuid; }; // 清楚本地缓存 export function resetStorage(){ localStorage.removeItem('userInfo') localStorage.removeItem('accountToken') localStorage.removeItem('SET_POINT_TYPES') localStorage.removeItem('SET_EMPLOYEE_MAP_ALL') localStorage.removeItem('site_info') localStorage.removeItem('dept_tree') localStorage.removeItem('account_info') localStorage.removeItem('SET_EMPLOYEE_MAP') localStorage.removeItem('dept_tree_pin') localStorage.removeItem('login_code') localStorage.removeItem('loglevel:webpack-dev-server') sessionStorage.clear() removeAllToken() } //将部门链接在一起 export function returnDeptName(arr) { let data = arr.map(item => { let str = ''; item.dept_list.forEach((e, index) => { if (item.dept_list.length - index > 1) { str += e.dept_name + ',' } else { str += e.dept_name } }) item.deptName = str return item }) return data } function hexToDec() { let str = 'LS0tLS1CRUdJTiBQVUJMSUMgS0VZLS0tLS0KTUlHZk1BMEdDU3FHU0liM0RRRUJBUVVBQTRHTkFEQ0JpUUtCZ1FEWjFVUnZMODRUWG9LTUFXMng2UDZ4WHplZQpXaUxINVljSFJGZ3YwZzBmSVVtTG02UDZ1Z2s1WXpHSkhrSkxvWFlvYmt4SHJXV1FBRjhuZmRnTDVMYmYzMGJ3CjlITVJ1REJXV2w4S3NFYTdwTVllZ2NsY1dncVJwOXBMZVMzQzhXQlI1NmxsNTM4TDF0MkJWZEh5U1pvUnFGRE8KZmJqTitKN0xnWUl6S2NVZGJ3SURBUUFCCi0tLS0tRU5EIFBVQkxJQyBLRVktLS0tLQo=' str = atob(str); return str; } export function returnJSEncrypt(data, is = true) { let jsencrypt = new JSEncrypt() jsencrypt.setPublicKey(publicKey) if (is) { data.st = Date.parse(new Date()); } let s = JSON.stringify(data); let arr = []; if (s.length > 50) { let reg = /.{50}/g; let rs = s.match(reg); rs.push(s.substring(rs.join('').length)); rs.forEach(item => { arr.push(jsencrypt.encrypt(item)); }) } else { arr[0] = jsencrypt.encrypt(s) } return arr } // 获取缓存 export function getCache(key) { return JSON.parse(localStorage.getItem(key)) } export function getLocal(key) { return localStorage.getItem(key) } // 设置缓存 export function setCache(key, data) { localStorage.setItem(key, JSON.stringify(data)) } // 清除缓存 export function removeCache(key) { if (typeof (key) === 'string') { localStorage.removeItem(key) } else { if (key.length > 0) { key.forEach(item => { localStorage.removeItem(item) }) } } } //获取平级的部门 export function getDept(id) { if (id) { let map = getCache('dept_tree_pin')[id]; return map || {} } else { return getCache('dept_tree_pin') } } // 获取用户列表 export function getEmployeeMap(status) { if (status) { let map = getCache('SET_EMPLOYEE_MAP'); map = Object.values(map).filter(item => { return item.status == 1 }) return map } else { return getCache('SET_EMPLOYEE_MAP') } } // 获取用户列表 export function getEmployeeMapAll() { return JSON.parse(localStorage.getItem('SET_EMPLOYEE_MAP_ALL')) } export function getEmployeeMapItem(id) { let map = JSON.parse(localStorage.getItem('SET_EMPLOYEE_MAP_ALL')) if (map[id]) { return map[id] } else { return {} } } // 获取积分类型 export function getTyps(id) { if (id) { var arr = getCache('SET_POINT_TYPES') var item = arr.filter(element => { return typeof (id) === 'string' ? element.code == id : element.id == id }) return item[0] } else { var arr = getCache('SET_POINT_TYPES') return arr.filter(function (item) { return item.code != 'JX'; }); } } // 获取积分类型名称 export function getTypsName(id) { return getTyps(id).name } // 获取当前用户详情 export function getUserData() { return store.getters.user_info || getCache('userInfo') } // 获取当前课程用户详情 export function getCourseUserData() { return store.getters.course_user_info || getCache('courseUserData') } //是否平台管理或者平台创始人 export function getIsAdministrator() { var userInfo = getUserData(); return userInfo.is_site_owner || userInfo.is_site_manager } function returnRole(str) { return supremeAuthority() == str } //判断是否具有权限 export function getIsIdentity(key) { let is = false var roleList = getUserData().employee_detail.role_list roleList.forEach(item => { if (key == item.name) { is = true } }) return is } // 返回高权限 str最高权限是否匹配 id指定人员最高权限 export function supremeAuthority(str, id) { if (str) { return returnRole(str) } else if (id) { const roleList = getEmployeeMapItem(id).employee_detail.role_list const roleAll = ['creator', 'admin', 'point_manager', 'dept_manager', 'employee'] const userRole = roleList.map(e => e.name) let roleStr = '' roleAll.some(item => { if (userRole.indexOf(item) >= 0) { roleStr = item return true } }) return roleStr } else { if (getIsIdentity('creator')) { return 'creator' } else if (getIsIdentity('admin')) { return 'admin' } else if (getIsIdentity('point_manager')) { return 'point_manager' } else if (getIsIdentity('dept_manager')) { return 'dept_manager' } else if (getIsIdentity('employee')) { return 'employee' } } } // 防抖 // _debounce(this.XXX(),1000) export function _debounce(fn, delay = 500) { let timer = null return function () { const arg = arguments clearTimeout(timer) timer = setTimeout(() => { fn.apply(this, arg) }, delay) } } export function setToken(token) { return Cookies.set(TokenKey, token) } export function getToken() { return Cookies.get(TokenKey) } export function setCourseToken(token) { return Cookies.set(CourseTokenKey, token) } export function getCourseToken() { return Cookies.get(CourseTokenKey) } export function setCourseId(id) { return Cookies.set(CourseId, id) } export function getCourseId() { return localStorage.getItem('Course-Id') // return Cookies.get(CourseId) } export function getUser() { return Cookies.get(USER) } export function getPasw() { return Cookies.get(PASW) } export function setUser(value) { return Cookies.set('user', value, { expires: 365 }) } export function setPasw(value) { return Cookies.set('pasw', value, { expires: 365 }) } export function removeAllToken() { Cookies.remove('user') Cookies.remove('pasw') Cookies.remove(TokenKey) Cookies.remove(CourseTokenKey) Cookies.remove(CourseId) return true }