| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199 |
- 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}<br/>`
- return str
- }
- if (index == 1) { //公式中间
- str = `${Lieh}比【目标值】每减少${item.plusNum}时,【得分=${point}】${jiajian}${item.numVal},最多${jiajian}${item.maxNum}<br/>`
- return str
- }
- //公式结束
- if (index == 2) {
- str = `${Lieh}${item.selectVal=='1'?'>':'<'}${item.plusNum},得分=0<br/>`
- 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}<br/>`
- return str
- }
- //公式结束
- if (index == arr.length - 1) {
- str = `否在,得分=${point}<br/>`
- return str
- }
- if (index != 0 && index != arr.length - 1) { //公式中间
- str = `${Lieh}==${val},得分=${point}<br/>`
- 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}<br/>`
- return str
- }
- //公式结束
- if (index == arr.length - 1) {
- str = `${item.refer}${item.symbol}${Lieh},得分=${point}<br/>`
- 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}<br/>`
- } else {
- str = `${upItemVal}${symbol}${Lieh}${slectSymbol}${val},得分=${point}<br/>`
- }
- 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
- };
|