diff --git a/application/admin/controller/kpi/Item.php b/application/admin/controller/kpi/Item.php index 0897caf..4cddfc2 100644 --- a/application/admin/controller/kpi/Item.php +++ b/application/admin/controller/kpi/Item.php @@ -26,6 +26,14 @@ class Item extends Backend $this->view->assign("unitList", $this->model->getUnitList()); } + /** + * 下拉搜索 + */ + public function selectpage() + { + return parent::selectpage(); + } + /** diff --git a/application/admin/controller/kpi/Template.php b/application/admin/controller/kpi/Template.php index 3af4630..8aeaa40 100644 --- a/application/admin/controller/kpi/Template.php +++ b/application/admin/controller/kpi/Template.php @@ -3,6 +3,10 @@ namespace app\admin\controller\kpi; use app\common\controller\Backend; +use Exception; +use PDOException; +use think\Db; +use think\exception\ValidateException; /** * kpi模板 @@ -33,5 +37,69 @@ class Template extends Backend * 需要将application/admin/library/traits/Backend.php中对应的方法复制到当前控制器,然后进行修改 */ + /** + * 添加 + * + * @return string + * @throws \think\Exception + */ + public function add() + { + if (false === $this->request->isPost()) { + return $this->view->fetch(); + } + $params = $this->request->post('row/a'); + if (empty($params)) { + $this->error(__('Parameter %s can not be empty', '')); + } + $params = $this->preExcludeFields($params); + + if ($this->dataLimit && $this->dataLimitFieldAutoFill) { + $params[$this->dataLimitField] = $this->auth->id; + } + $result = false; + Db::startTrans(); + try { + //是否采用模型验证 + if ($this->modelValidate) { + $name = str_replace("\\model\\", "\\validate\\", get_class($this->model)); + $validate = is_bool($this->modelValidate) ? ($this->modelSceneValidate ? $name . '.add' : $name) : $this->modelValidate; + $this->model->validateFailException()->validate($validate); + } + + + $params['create_time'] = date('Y-m-d H:i:s'); + $params['update_time'] = date('Y-m-d H:i:s'); + + + $result = $this->model->allowField(true)->save($params); + + $templateId = $result; + + $templateItem = []; + $kpiItems = json_decode($params['kpiitem'], true); + + foreach ($kpiItems as $kpiItem) { + $templateItem[] = [ + 'admin_id' => $this->auth->id, + 'template_id' => $templateId, + 'item_id' => $kpiItem['id'], + 'rate' => $kpiItem['rate'], + ]; + } + + Db::name('kpi_template_item') + ->insert($templateItem); + + Db::commit(); + } catch (ValidateException|PDOException|Exception $e) { + Db::rollback(); + $this->error($e->getMessage()); + } + if ($result === false) { + $this->error(__('No rows were inserted')); + } + $this->success(); + } } diff --git a/application/admin/view/kpi/template/add.html b/application/admin/view/kpi/template/add.html index 71ab032..96afbbc 100644 --- a/application/admin/view/kpi/template/add.html +++ b/application/admin/view/kpi/template/add.html @@ -24,6 +24,34 @@ +
| {:__('指标')} | +{:__('比例')} | ++ | |
| {:__('Append')} | +|||