diff --git a/application/admin/controller/Task.php b/application/admin/controller/Task.php index 951601f..87074da 100644 --- a/application/admin/controller/Task.php +++ b/application/admin/controller/Task.php @@ -3,6 +3,9 @@ namespace app\admin\controller; use app\common\controller\Backend; +use think\Db; +use think\exception\PDOException; +use think\exception\ValidateException; /** * 任务 @@ -22,7 +25,9 @@ class Task extends Backend { parent::_initialize(); $this->model = new \app\admin\model\Task; + $this->view->assign("typeList", $this->model->getTypeList()); $this->view->assign("statusList", $this->model->getStatusList()); + $this->view->assign("reviewStatusList", $this->model->getReviewStatusList()); } @@ -33,5 +38,47 @@ class Task extends Backend * 需要将application/admin/library/traits/Backend.php中对应的方法复制到当前控制器,然后进行修改 */ + 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['admin_id'] = $this->auth->id; + $params['status'] = 1; + $params['review_status'] = 1; + $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); + 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/lang/zh-cn/task.php b/application/admin/lang/zh-cn/task.php index b108570..a629a6a 100644 --- a/application/admin/lang/zh-cn/task.php +++ b/application/admin/lang/zh-cn/task.php @@ -1,12 +1,27 @@ 'ID', - 'Status' => '状态', - 'Status 1' => '未完成', - 'Set status to 1'=> '设为未完成', - 'Status 2' => '已完成', - 'Set status to 2'=> '设为已完成', - 'Create_time' => '创建时间', - 'Update_time' => '编辑时间' + 'Id' => 'ID', + 'Admin_id' => '提交人ID', + 'Reviewer_id' => '审核人ID', + 'Type' => '任务类型', + 'Type 1' => '每日任务', + 'Type 2' => '每周任务', + 'Type 3' => '每月任务', + 'Title' => '任务标题', + 'Desc' => '任务描述', + 'Status' => '状态', + 'Status 1' => '待完成', + 'Set status to 1' => '设为待完成', + 'Status 2' => '已完成', + 'Set status to 2' => '设为已完成', + 'Review_status' => '状态', + 'Review_status 1' => '待审核', + 'Review_status 2' => '已通过', + 'Review_status 3' => '已驳回', + 'Review_status 4' => '未执行', + 'Expire_start_time' => '有效期开始时间', + 'Expire_end_time' => '有效期结束时间', + 'Create_time' => '创建时间', + 'Update_time' => '编辑时间' ]; diff --git a/application/admin/model/Task.php b/application/admin/model/Task.php index ec49dd9..40177df 100644 --- a/application/admin/model/Task.php +++ b/application/admin/model/Task.php @@ -25,16 +25,36 @@ class Task extends Model // 追加属性 protected $append = [ - 'status_text' + 'type_text', + 'status_text', + 'review_status_text' ]; + public function getTypeList() + { + return ['1' => __('Type 1'), '2' => __('Type 2'), '3' => __('Type 3')]; + } + public function getStatusList() { return ['1' => __('Status 1'), '2' => __('Status 2')]; } + public function getReviewStatusList() + { + return ['1' => __('Review_status 1'), '2' => __('Review_status 2'), '3' => __('Review_status 3'), '4' => __('Review_status 4')]; + } + + + public function getTypeTextAttr($value, $data) + { + $value = $value ?: ($data['type'] ?? ''); + $list = $this->getTypeList(); + return $list[$value] ?? ''; + } + public function getStatusTextAttr($value, $data) { @@ -44,6 +64,14 @@ class Task extends Model } + public function getReviewStatusTextAttr($value, $data) + { + $value = $value ?: ($data['review_status'] ?? ''); + $list = $this->getReviewStatusList(); + return $list[$value] ?? ''; + } + + } diff --git a/application/admin/view/task/add.html b/application/admin/view/task/add.html index 93a9487..ec8f8c3 100644 --- a/application/admin/view/task/add.html +++ b/application/admin/view/task/add.html @@ -1,33 +1,39 @@
- +
- -
- {foreach name="statusList" item="vo"} - - {/foreach} -
+ +
- +
- +
- +
- +
- +
- + +
+
+
+ +
+