import store from '@/store' import {getUserData} from '@/utils/auth' /* 角色*/ /* 创始人 creator 主管理员 masterAdministrator 子管理员 childAdministrator 部门管理员 deptManager 员工 employee */ // 权限 /* 1 绩效考核 2 OKR 3 管理范围 全公司 4 管理范围 所在部门以及下级部门 5 管理范围 特定部门 6 考核管理 可见考核结果 7 考核管理 发起考核 8 考核管理 开始评分 9 考核管理 调整结果 10 考核管理 调整等级 11 考核管理 导出报表 12 指标库管理 13 指定考评模板管理 14 全部考评模板管理 15 基础设置 16 绩效报表 */ // 获取当前登录者在绩效系统中的身份 export function getRole(type) { /* type为判断哪些角色*/ var role = window.plus ? JSON.parse(plus.storage.getItem('role')) : JSON.parse(localStorage.getItem('role')) let is = false; switch (type) { case 1: // 判断是否是主子管理员 if (role == 'masterAdministrator' || role == 'childAdministrator') { is = true } break case 2: // 判断是否是部门管理员 if (role == 'deptManager') { is = true } break case 3: // 判断是否是员工 if (role == 'employee') { is = true } break case 4: // 判断是否是创始人 if (role == 'creator') { is = true } break } return is } // 判断当前登录者是否有某项权限 export function getPermis(type) { /* type为传入的权限id*/ let jurisdictions = getUserData().per_permission.permission.map((item) => { return item.id }) return jurisdictions.indexOf(type) >= 0 } // 判断是否具有权限 export function isAuthoritys_jx(id, arr) { // 判断是否为某项权限:id为权限ID,arr为数据源 var jurisdictions if (arr) { jurisdictions = arr.map((item) => { return item.id }) } else { // 当没有指定数据源,代表判断当前登录者,如果登陆者是创始人,直接返回真 jurisdictions = getUserData().per_permission.permission.map((item) => { return item.id }) } if (typeof(id) === 'number') { // 单个权限 return jurisdictions.indexOf(id) >= 0 } else { // 多个权限一起判断,如果有一个真就返回真 const is = jurisdictions.some(item => { if (id.indexOf(item) >= 0) { return true } }) return is } } // 自动积分相关 export function returnStr3(item, index, arr = [], expression) { //列举 百分比 let str = ''; let point = returnPoint(item.point); //得分 let Lieh = expression.compare == 1 ? '【结果值】' : expression.compare == 2 ? '【结果值/目标值】' : '【结果值-目标值】' let jiajian = item.selectVal == 1 ? '加' : '扣'; // 公式开始 if (index == 0) { str = `${Lieh}比【目标值】每增加${item.plusNum}时,【得分=${point}】${jiajian}${item.numVal},最多${jiajian}${item.maxNum}
` return str } if (index == 1) { //公式中间 str = `${Lieh}比【目标值】每减少${item.plusNum}时,【得分=${point}】${jiajian}${item.numVal},最多${jiajian}${item.maxNum}
` return str } //公式结束 if (index == 2) { str = `${Lieh}${item.selectVal=='1'?'>':'<'}${item.plusNum},得分=0
` return str } }; export function returnStr2(item, index, arr = [], expression) { //列举 公式 let str = ''; let point = returnPoint(item.point); //得分 let Lieh = expression.compare == 1 ? '【结果值】' : expression.compare == 2 ? '【结果值/目标值】' : '【结果值-目标值】' let val = expression.reference == '1' ? item.selectRefer : '【' + item.referStr + '】' // 公式开始 if (index == 0) { str = `${Lieh}==${val},得分=${point}
` return str } //公式结束 if (index == arr.length - 1) { str = `否在,得分=${point}
` return str } if (index != 0 && index != arr.length - 1) { //公式中间 str = `${Lieh}==${val},得分=${point}
` return str } }; export function returnStr(item, index, arr = [], expression) { //连续区间 公式 let str = ''; let point = returnPoint(item.point); //得分 let Lieh = expression.compare == 1 ? '【结果值】' : expression.compare == 2 ? '【结果值/目标值】' : '【结果值-目标值】' let val = expression.reference == '1' ? item.selectRefer : '【' + item.referStr + '】' let slectSymbol = item.slectSymbol == '>' ? '>=' : item.slectSymbol == '≥' ? '>' : '=' // 公式开始 if (index == 0) { str = `${Lieh}${slectSymbol}${val},得分=${point}
` return str } //公式结束 if (index == arr.length - 1) { str = `${item.refer}${item.symbol}${Lieh},得分=${point}
` return str } if (index != 0 && index != arr.length - 1) { let upItemVal = expression.reference == '1' ? arr[index - 1].selectRefer : '#' + arr[index - 1].referStr + '#'; //上一个数据 //公式中间 let symbol = item.symbol == '≥' ? '>=' : item.symbol if (item.slectSymbol == '=') { str = `${Lieh}==${val},得分=${point}
` } else { str = `${upItemVal}${symbol}${Lieh}${slectSymbol}${val},得分=${point}
` } return str } }; export function returnPoint(point) { let str = ''; if (!point) { return str } point.forEach(e => { str += e }) return str }; export function getExpressionStr(arr) { let expressionStr = ''; if (arr.logic_type == 1) { let logic_section = JSON.parse(JSON.stringify(arr.logic_section)) logic_section.forEach((item, index) => { expressionStr += returnStr(item, index, logic_section, arr) }) } if (arr.logic_type == 2) { let logic_enum = JSON.parse(JSON.stringify(arr.logic_enum)) logic_enum.forEach((item, index) => { expressionStr += returnStr2(item, index, logic_enum, arr) }) } if (arr.logic_type == 3) { let logic_percent = JSON.parse(JSON.stringify(arr.logic_percent)) logic_percent.forEach((item, index) => { expressionStr += returnStr3(item, index, logic_percent, arr) }) } if (arr.logic_type == 4) { let logic_eq = JSON.parse(JSON.stringify(arr.logic_eq)) expressionStr = `得分=${returnPoint(logic_eq)}`; } return expressionStr };