diff --git a/application/admin/controller/kpi/Template.php b/application/admin/controller/kpi/Template.php index e549e39..92140c0 100644 --- a/application/admin/controller/kpi/Template.php +++ b/application/admin/controller/kpi/Template.php @@ -136,7 +136,12 @@ class Template extends Backend $templateItem = []; $kpiItems = json_decode($params['kpiitem'], true); + $kpiItemIds = array_column($kpiItems, 'id'); + if (count($kpiItemIds) !== count(array_unique($kpiItemIds))) { + throw new Exception('指标有重复项'); + } + $rateAll = 0; foreach ($kpiItems as $kpiItem) { $templateItem[] = [ 'admin_id' => $this->auth->id, @@ -144,6 +149,10 @@ class Template extends Backend 'item_id' => $kpiItem['id'], 'rate' => $kpiItem['rate'], ]; + $rateAll += $kpiItem['rate']; + } + if ($rateAll != 100) { + throw new Exception('指标权重总和必须为100'); } Db::name('kpi_template_item') @@ -216,7 +225,12 @@ class Template extends Backend $templateItem = []; $kpiItems = json_decode($params['kpiitem'], true); + $kpiItemIds = array_column($kpiItems, 'id'); + if (count($kpiItemIds) !== count(array_unique($kpiItemIds))) { + throw new Exception('指标有重复项'); + } + $rateAll = 0; foreach ($kpiItems as $kpiItem) { $templateItem[] = [ 'admin_id' => $this->auth->id, @@ -224,6 +238,11 @@ class Template extends Backend 'item_id' => $kpiItem['id'], 'rate' => $kpiItem['rate'], ]; + $rateAll += $kpiItem['rate']; + } + + if ($rateAll != 100) { + throw new Exception('指标权重总和必须为100'); } Db::name('kpi_template_item') diff --git a/application/admin/lang/zh-cn/kpi/template.php b/application/admin/lang/zh-cn/kpi/template.php index 5328a56..f0f20ce 100644 --- a/application/admin/lang/zh-cn/kpi/template.php +++ b/application/admin/lang/zh-cn/kpi/template.php @@ -8,6 +8,7 @@ return [ 'Name' => '名称', 'Desc' => '描述', 'Score' => '单个绩点分', + 'Max_score' => '最高得分上限', 'Create_time' => '创建时间', 'Update_time' => '编辑时间' ]; diff --git a/application/admin/view/kpi/template/add.html b/application/admin/view/kpi/template/add.html index b280ca6..6e6dbd3 100644 --- a/application/admin/view/kpi/template/add.html +++ b/application/admin/view/kpi/template/add.html @@ -24,6 +24,12 @@ +