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
};