123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166 |
- const TokenKey = 'A-Token'
- const UserIdKey = 'userData'
- const TypesKey = 'types'
- import Vue from 'vue'
- // 获取唯一标识(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 getCache(key) {
- return JSON.parse(localStorage.getItem(key))
- }
- // 设置缓存
- export function setCache(key, data) {
- localStorage.setItem(key, JSON.stringify(data))
- }
- // 清除缓存
- export function removeCache(key) {
- localStorage.removeItem(key)
- }
- function getClass(o) { //判断数据类型
- return Object.prototype.toString.call(o).slice(8, -1);
- }
- function deepCopy(obj) { //深度拷贝对象
- var result, oClass = getClass(obj);
- if (oClass == "Object") result = {}; //判断传入的如果是对象,继续遍历
- else if (oClass == "Array") result = []; //判断传入的如果是数组,继续遍历
- else return obj; //如果是基本数据类型就直接返回
- for (var i in obj) {
- var copy = obj[i];
- if (getClass(copy) == "Object" || getClass(copy) == "Array") result[i] = deepCopy(copy); //递归方法 ,如果对象继续变量obj[i],下一级还是对象,就obj[i][i]
- // else if (getClass(copy) == "Array") result[i] = deepCopy(copy); //递归方法 ,如果对象继续数组obj[i],下一级还是数组,就obj[i][i]
- else result[i] = copy; //基本数据类型则赋值给属性
- }
- return result;
- }
- export function openError(data) {
- if (process.env.NODE_ENV == 'production') {
- Vue.prototype.$axios('post', '/api/e', data)
- }
- }
- export function getUserData() {
- return JSON.parse(localStorage.getItem(UserIdKey));
- }
- export function setUserData(data) {
- localStorage.setItem(UserIdKey, JSON.stringify(data))
- }
- // 获取积分类型
- export function getTyps(id) {
- if (id) {
- var arr = JSON.parse(localStorage.getItem(TypesKey))||[{id: 2, name: "A分", code: "AF"},{id: 3, name: "B分", code: "BF"}];
- var item = arr.filter(element => {
- return typeof(id) == 'string' ? element.code == id : element.id == id
- });
- return item[0]
- } else {
- return JSON.parse(localStorage.getItem(TypesKey))||[{id: 2, name: "A分", code: "AF"},{id: 3, name: "B分", code: "BF"}];
- }
- }
- // 获取积分类型名称
- export function getTypsName(id) {
- return getTyps(id).name
- }
- // 判断是否系统管理员
- export function getIsCreator(key) {
- let is = false;
- getUserData().employee_detail.role_list.forEach(item => {
- if (key == item.name) {
- is = true;
- }
- })
- return is
- }
- export function supremeAuthority() { //获取当前角色最高权限 判断是否为某项权限:this.$authoritys('dept_manager') 或 this.$supremeAuthority() == 'dept_manager'
- if (getIsCreator('creator')) {
- return 'creator'
- } else if (getIsCreator('admin')) {
- return 'admin'
- } else if (getIsCreator('point_manager')) {
- return 'point_manager'
- } else if (getIsCreator('dept_manager')) {
- return 'dept_manager'
- } else if (getIsCreator('employee')) {
- return 'employee'
- }
- }
- export function authoritys(key) { //判断是否为某项权限:this.$authoritys('dept_manager')
- return supremeAuthority() == key
- }
- //过滤绩效分
- function GlTypes(arr) {
- return arr.filter(function(item) {
- return item.code != 'JX'
- })
- }
- export function setTyps(data) {
- var arr = GlTypes(data);
- localStorage.setItem(TypesKey, JSON.stringify(arr))
- }
- export function getToken() {
- return localStorage.getItem(TokenKey)
- }
- export function setToken(token) {
- localStorage.setItem(TokenKey, token)
- }
- // 防抖
- export function _debounce(fn, delay = 500) {
- let timer = null
- return function() {
- let arg = arguments
- clearTimeout(timer)
- timer = setTimeout(() => {
- fn.apply(this, arg)
- }, delay)
- }
- }
- // 节流
- export function _throttle(fn, interval = 500) {
- var last;
- var timer;
- return function() {
- var th = this;
- var args = arguments;
- var now = +new Date();
- if (last && now - last < interval) {
- clearTimeout(timer);
- timer = setTimeout(function() { //用户最后一次点击时间间隔小于设置时间执行
- last = now;
- fn.apply(th, args);
- }, interval);
- } else {
- last = now;
- fn.apply(th, args);
- }
- }
- }
- //将部门链接在一起
- 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
- }
|