feature: kpi item template
This commit is contained in:
parent
ae305ad1b5
commit
598424b2c5
|
|
@ -136,7 +136,12 @@ class Template extends Backend
|
||||||
|
|
||||||
$templateItem = [];
|
$templateItem = [];
|
||||||
$kpiItems = json_decode($params['kpiitem'], true);
|
$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) {
|
foreach ($kpiItems as $kpiItem) {
|
||||||
$templateItem[] = [
|
$templateItem[] = [
|
||||||
'admin_id' => $this->auth->id,
|
'admin_id' => $this->auth->id,
|
||||||
|
|
@ -144,6 +149,10 @@ class Template extends Backend
|
||||||
'item_id' => $kpiItem['id'],
|
'item_id' => $kpiItem['id'],
|
||||||
'rate' => $kpiItem['rate'],
|
'rate' => $kpiItem['rate'],
|
||||||
];
|
];
|
||||||
|
$rateAll += $kpiItem['rate'];
|
||||||
|
}
|
||||||
|
if ($rateAll != 100) {
|
||||||
|
throw new Exception('指标权重总和必须为100');
|
||||||
}
|
}
|
||||||
|
|
||||||
Db::name('kpi_template_item')
|
Db::name('kpi_template_item')
|
||||||
|
|
@ -216,7 +225,12 @@ class Template extends Backend
|
||||||
|
|
||||||
$templateItem = [];
|
$templateItem = [];
|
||||||
$kpiItems = json_decode($params['kpiitem'], true);
|
$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) {
|
foreach ($kpiItems as $kpiItem) {
|
||||||
$templateItem[] = [
|
$templateItem[] = [
|
||||||
'admin_id' => $this->auth->id,
|
'admin_id' => $this->auth->id,
|
||||||
|
|
@ -224,6 +238,11 @@ class Template extends Backend
|
||||||
'item_id' => $kpiItem['id'],
|
'item_id' => $kpiItem['id'],
|
||||||
'rate' => $kpiItem['rate'],
|
'rate' => $kpiItem['rate'],
|
||||||
];
|
];
|
||||||
|
$rateAll += $kpiItem['rate'];
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($rateAll != 100) {
|
||||||
|
throw new Exception('指标权重总和必须为100');
|
||||||
}
|
}
|
||||||
|
|
||||||
Db::name('kpi_template_item')
|
Db::name('kpi_template_item')
|
||||||
|
|
|
||||||
|
|
@ -8,6 +8,7 @@ return [
|
||||||
'Name' => '名称',
|
'Name' => '名称',
|
||||||
'Desc' => '描述',
|
'Desc' => '描述',
|
||||||
'Score' => '单个绩点分',
|
'Score' => '单个绩点分',
|
||||||
|
'Max_score' => '最高得分上限',
|
||||||
'Create_time' => '创建时间',
|
'Create_time' => '创建时间',
|
||||||
'Update_time' => '编辑时间'
|
'Update_time' => '编辑时间'
|
||||||
];
|
];
|
||||||
|
|
|
||||||
|
|
@ -24,6 +24,12 @@
|
||||||
<input id="c-score" data-rule="required" class="form-control" name="row[score]" type="number" value="0">
|
<input id="c-score" data-rule="required" class="form-control" name="row[score]" type="number" value="0">
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="form-group">
|
||||||
|
<label class="control-label col-xs-12 col-sm-2">{:__('Max_score')}:</label>
|
||||||
|
<div class="col-xs-12 col-sm-8">
|
||||||
|
<input id="c-max_score" data-rule="required" class="form-control" name="row[max_score]" type="number" value="0">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
<div class="form-group row">
|
<div class="form-group row">
|
||||||
<div class="col-xs-12">
|
<div class="col-xs-12">
|
||||||
<table class="table fieldlist" data-template="kpiitemtpl" data-name="row[kpiitem]" id="fieldlist-table">
|
<table class="table fieldlist" data-template="kpiitemtpl" data-name="row[kpiitem]" id="fieldlist-table">
|
||||||
|
|
|
||||||
|
|
@ -24,6 +24,12 @@
|
||||||
<input id="c-score" data-rule="required" class="form-control" name="row[score]" type="number" value="{$row.score|htmlentities}">
|
<input id="c-score" data-rule="required" class="form-control" name="row[score]" type="number" value="{$row.score|htmlentities}">
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="form-group">
|
||||||
|
<label class="control-label col-xs-12 col-sm-2">{:__('Max_score')}:</label>
|
||||||
|
<div class="col-xs-12 col-sm-8">
|
||||||
|
<input id="c-max_score" data-rule="required" class="form-control" name="row[max_score]" type="number" value="{$row.max_score|htmlentities}">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
<div class="form-group row">
|
<div class="form-group row">
|
||||||
<div class="col-xs-12">
|
<div class="col-xs-12">
|
||||||
<table class="table fieldlist" data-template="kpiitemtpl" data-name="row[kpiitem]" id="fieldlist-table">
|
<table class="table fieldlist" data-template="kpiitemtpl" data-name="row[kpiitem]" id="fieldlist-table">
|
||||||
|
|
|
||||||
|
|
@ -42,6 +42,7 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{field: 'score', title: __('Score')},
|
{field: 'score', title: __('Score')},
|
||||||
|
{field: 'max_score', title: __('Max_score')},
|
||||||
{field: 'create_time', title: __('Create_time'), operate:'RANGE', addclass:'datetimerange', autocomplete:false},
|
{field: 'create_time', title: __('Create_time'), operate:'RANGE', addclass:'datetimerange', autocomplete:false},
|
||||||
{field: 'update_time', title: __('Update_time'), operate:'RANGE', addclass:'datetimerange', autocomplete:false},
|
{field: 'update_time', title: __('Update_time'), operate:'RANGE', addclass:'datetimerange', autocomplete:false},
|
||||||
{field: 'operate', title: __('Operate'), table: table, events: Table.api.events.operate, formatter: Table.api.formatter.operate}
|
{field: 'operate', title: __('Operate'), table: table, events: Table.api.events.operate, formatter: Table.api.formatter.operate}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user