var 绩效卡 = {
_id: "",
名称: "绩效卡A",
公司: "新乡奥迪",
部门: "销售部",
员工: "",
绩效系数: 0,
应得绩效奖金: 0,
实得绩效奖金: 0,
绩效卡片列表: [
{
卡片ID: "",
卡片名称: "绩效基数",
卡片类型: "无权重",
绩效卡片奖金: 0,
KPI绑定: "",
KPI得分: 1,
KPI考核比例: 1,
考核项列表: [{
指标ID: "",
指标名称: "指标A",
指标权重: 0,
指标奖金: 0,
指标类型: "定量",
考核依据列表:[{
依据ID: "",
依据名称: "",
目标获取方式: "",
目标获取方法: {},
结果获取方式: "",
结果获取方法: {},
}],
考核维度列表: [{
考核条件: [{
条件1: "",
条件2: "",
条件3: "",
运算符: "",
逻辑符: "",
封顶: false
}],
是否达成: false,
奖励公式列表: [{
条件: [],
条件结果: false,
公式: "",
结果: 0,
说明: ""
}],
说明: ""
}]
}]
}
],
公共属性: {
员工: "",
绩效系数: 1,
总绩效奖金: 0,
KPI得分: 1,
KPI考核比例: 1,
指标奖金: 0,
指标权重: 0
}
}
// 一、需要从整个绩效卡中按计算层级提取出来所有可以参与计算的数据
function get_jixiaokaCeng(jxk){
//提取绩效卡层
var ret = {
数据: [{
员工: jxk['员工'],
绩效系数: jxk['绩效系数'],
应得绩效奖金: jxk['应得绩效奖金'],
实得绩效奖金: jxk['应得绩效奖金'] * jxk['绩效系数'] // todo 如何判断这个数据是需要公式计算的?
}],
公式: {
应得绩效奖金: {
系统公式: "所有绩效卡片奖金之和",
自定义公式: "",
},
实得绩效奖金: {
系统公式: "总绩效奖金 * 绩效系数",
自定义公式: "",
}
}
}
}
function get_kapianCeng(jxk){
//提取卡片层
//优先计算KPI类卡片
var ret = {
数据: [{
}]
}
}
// 提取整个绩效卡的 ID和名称的对照表
function get_IDdict(jxk){
var IDdict = {}
// for(var i=0; i<kapian_list.length; i++){
// }
}
var test = [{
卡片ID: "",
卡片名称: "",
}]
var 绩效卡数据 = {
}
// 提取所有考核依据,提取所有绩效卡片中绩效指标的考核依据
function get_yiju(kapian_list){
var ID_dict = {}
var tree_dict = []
var kapian_dict = {}
var zhibiao_dict = {}
var yiju_dict = {}
//卡片层
for(var i=0; i<kapian_list.length; i++){
ID_dict[kapian_list[i]['卡片ID']] = {
类型: '绩效卡片',
名称: kapian_list[i]['卡片名称'],
}
var zhibiao_list = kapian_list[i]['考核项列表']
//指标层
for(var j=0; j<zhibiao_list.length; j++){
ID_dict[zhibiao_list[j]['指标ID']] = {
类型: '绩效指标',
名称: zhibiao[j]['指标名称'],
}
var yiju_list = zhibiao[j]['考核依据列表']
//依据层
for(var k=0; k<yiju_list.length; k++){
var yijuID = yiju_list[k]['依据ID']
ID_dict[yijuID] = {
类型: '考核依据',
名称: yiju_list[k]['依据名称'],
}
yiju_dict[yijuID] = {
'目标值': 0,
'结果值': 0,
'达成率': 0,
'超额完成值': 0,
'未完成值': 0,
}
}
}
}
}
var 考核依据字典 = {}
// for(var key in data){
// console.log(data[key])
// 考核依据字典[key] = {}
// var yiju_dict = data[key]['考核依据']
// for(var yiju in yiju_dict){
// console.log(yiju_dict[yiju])
// 考核依据字典[key][yiju] = yiju_dict[yiju]
// }
// }
// console.log(考核依据字典)
// var gs = "指标A.依据A.结果/指标A.依据A.目标"
function test(gs, dict){
//先从考核依据字典中动态声明每个考核依据变量
for(var key in dict){
console.log(key)
eval("var " + key + "= dict[key]")
}
console.log(指标A)
console.log(指标B)
//判断指标考核维度达成
//计算考核维度计算结果
console.log(eval(gs))
}
// test('指标A.依据A.结果/指标A.依据A.目标>0.7?1:0', 考核依据字典)
console