点击蓝字
关注我们
上次重度用户分享的文章发布后,我们收到了很多其他用户编写的使用心得分享。我们精选了其中的一篇,一起来看看他们是怎么运用白码平台来便捷开发的吧!
快速实现考核评分功能
Function Description
来自 白码用户 @Iwantfreedom 的分享
场景
在系统上实现考核评分功能(具体字段如下图Excel),包括自评+他评,自动算出总分。
准备工作
准备相关数据表,考核内容、绩效考核、考核明细、他人评分记录;
考核内容表
绩效考核表
考核明细表
他人评分记录表
其中考核内容的表用于存放需要考核的内容,需提前录入数据;
实现步骤
1、先做自评功能,新增一个功能,新增绩效考核(新增自评);
①新增数据,新增绩效考核表;
②获取集合,获取数据库中存放好的考核内容;
③新增集合,通过获取到的考核内容新增本次绩效考核的考核明细,其中用户需要自己选择各明细的自我评分;
新增集合
需要自己选择各明细的自我评分
④预处理,用于隐藏上一个步骤的删除按钮;
预处理
代码
function prepare($programStore, $form, vue) {
//获取列表步骤
let view = $programStore.getters["view/getView"]("60bee8836fd6373a141dcc35");
//取消移除按钮
view.getTableStore().dispatch("plugin/disable", { type: "extend", key: "remove" });
}
⑤关联获取数据,合计自评总分;
关联获取数据
合计自评总分
至此,自评的功能就做好了,测试效果:
2、接下来就要做给他人评分的功能;
①选择数据,选择要评分的绩效考核数据;
②获取集合,获取考核明细;
③关联获取集合,获取上一步的考核明细,并填写评分值;
关联获取合集
具体设置
④预处理,同理,隐藏集合步骤的删除按钮;
代码跟上一个功能同理;
⑤新增集合,根据上一步集合数据新增他人评分记录;
⑥编程,通过调用功能的方式,重新计算每个考核明细的“他评平均分”;(此功能下文会描述)
编程
代码
async function runProcess($model = model, $plugin = plugin, $params = params) {
let list = await $params.list;//考核明细
for (let i = 0; i < list.length; i++) {
//清空他人评分
await $plugin.data.updateData("60bee9e69544873a11ac2588",list[i]._id,{
"60c1d5f509dc437ff18eea97":""
});
//计算平均分
//调用功能:计算考核明细平均分
await $plugin.program.exec("60c1e46732af6d7ffe2114cd",{
"60c1e46a32af6d7ffe2114cf":{
_id:list[i]._id
}
});
}
}
⑦获取集合,重新获取考核明细,此处重新获取的数据是计算完“他评平均分”的数据,获取后重新评分;
⑧关联获取数据,获取绩效考核数据,合计他评平均分;
至此,给他人评分的功能就做好了,接下来要做计算平均分的功能;
3、计算平均分功能;
①选择数据,选择要计算的考核明细;
②关联获取集合,获取这个考核明细全部的评分记录;
③关联获取数据,获取选择的考核明细,计算他评平均分;
至此,计算考核明细的平均分的功能就做好了;
给他人评分功能的测试效果如下:
再次感谢白码用户@Iwantfreedom 的精彩分享~
也欢迎各位白码用户可以根据文章内容,自己实操感受一下,有发现更好的解决方法也可以发出来和我们分享,与白码其他用户一起交流~
往期 · 推荐
白码科技 · BAIMA
扫描二维码添加客服微信
有任何问题都可以询问客服哦~
点击“阅读原文”了解更多白码资讯!

