From 65053abe67d21aa0f813b73820626f8097eeb87d Mon Sep 17 00:00:00 2001 From: caoming <604844710@qq.com> Date: Mon, 28 Oct 2019 17:14:05 +0800 Subject: [PATCH] app-ht(build v0.0.1 build 4) 1.后台项目管理功能实现。 --- app-ht/config/main.php | 4 ++-- app-ht/config/params.php | 2 +- app-ht/modules/model/controllers/ModelController.php | 2 +- app-ht/modules/project/Module.php | 14 ++++++++++++++ app-ht/modules/project/config/perm.php | 14 ++++++++++++++ app-ht/modules/project/controllers/ProjectController.php | 186 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app-ht/modules/project/views/project/create.php | 60 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app-ht/modules/project/views/project/edit.php | 64 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app-ht/modules/project/views/project/index.php | 121 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app-ht/views/layouts/routes.php | 8 ++++---- domain/model/Model.php | 4 ++-- domain/model/ModelRepository.php | 8 ++++---- domain/project/Project.php | 99 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ domain/project/ProjectRepository.php | 85 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ domain/project/models/Project.php | 36 ++++++++++++++++++++++++++++++++++++ 15 files changed, 693 insertions(+), 14 deletions(-) create mode 100644 app-ht/modules/project/Module.php create mode 100644 app-ht/modules/project/config/perm.php create mode 100644 app-ht/modules/project/controllers/ProjectController.php create mode 100644 app-ht/modules/project/views/project/create.php create mode 100644 app-ht/modules/project/views/project/edit.php create mode 100644 app-ht/modules/project/views/project/index.php create mode 100644 domain/project/Project.php create mode 100644 domain/project/ProjectRepository.php create mode 100644 domain/project/models/Project.php diff --git a/app-ht/config/main.php b/app-ht/config/main.php index f2b130a..9aa8109 100644 --- a/app-ht/config/main.php +++ b/app-ht/config/main.php @@ -46,8 +46,8 @@ $config = [ 'my'=>[ 'class' => 'app\ht\modules\my\Module', ], - 'automation' => [ - 'class' => 'app\ht\modules\automation\Module', + 'project' => [ + 'class' => 'app\ht\modules\project\Module', ], 'model' => [ 'class' => 'app\ht\modules\model\Module', diff --git a/app-ht/config/params.php b/app-ht/config/params.php index a1ef3a4..1ce1d57 100644 --- a/app-ht/config/params.php +++ b/app-ht/config/params.php @@ -3,5 +3,5 @@ return [ 'adminEmail' => 'tech@jiwork.com', 'DINGTALKL_URL' => 'https://tdd.jiwork.com/', //在钉钉端用系统扫码之后跳转到钉钉对应的界面,里面要指定钉钉的网址 'BAIDU_MAP_BROWSER_KEY' => 'UzLG5fpQtralY2hXO3wvVFzvlCmw6Rue', - 'VERSION' => 'v0.0.1 build 3', + 'VERSION' => 'v0.0.1 build 4', ]; \ No newline at end of file diff --git a/app-ht/modules/model/controllers/ModelController.php b/app-ht/modules/model/controllers/ModelController.php index 4dc8d33..ebe80cf 100644 --- a/app-ht/modules/model/controllers/ModelController.php +++ b/app-ht/modules/model/controllers/ModelController.php @@ -53,7 +53,7 @@ class ModelController extends BaseController $where[] = ['<=', 'm.created_at', $endTime]; } if ($name) { - $where[] = ['like', 'p.name', $name]; + $where[] = ['like', 'm.name', $name]; } if ($type == 0) { $pageList = ModelRepository::getPageList($where); diff --git a/app-ht/modules/project/Module.php b/app-ht/modules/project/Module.php new file mode 100644 index 0000000..bfd6ea6 --- /dev/null +++ b/app-ht/modules/project/Module.php @@ -0,0 +1,14 @@ +params['perm'] = require(__DIR__ . '/config/perm.php'); + } +} \ No newline at end of file diff --git a/app-ht/modules/project/config/perm.php b/app-ht/modules/project/config/perm.php new file mode 100644 index 0000000..5ddae80 --- /dev/null +++ b/app-ht/modules/project/config/perm.php @@ -0,0 +1,14 @@ + '项目', + 'items' => [ + 'shop_city' => [ + 'label' => '项目', + 'items' => [ + 4 => '项目管理', + ], + 'path' => 'project/project/*' + ], + ] +]; diff --git a/app-ht/modules/project/controllers/ProjectController.php b/app-ht/modules/project/controllers/ProjectController.php new file mode 100644 index 0000000..f583a91 --- /dev/null +++ b/app-ht/modules/project/controllers/ProjectController.php @@ -0,0 +1,186 @@ +dataList(1); + /** + * 渲染模板 + */ + return $this->render('index', $params); + } + + /** + * 查询数据列表 + */ + protected function dataList($type = '') + { + $request = Yii::$app->request; + $creatTime = $request->get('creatTime'); + $endTime = $request->get('endTime'); + $name = $request->get('name'); + + $gets = [ + 'creatTime' => $creatTime, + 'endTime' => $endTime, + 'name' => $name, + ]; + + $where = ['and']; + if ($creatTime) { + $creatTime = strtotime($creatTime); + $where[] = ['>=', 'p.created_at', $creatTime]; + } + if ($endTime) { + $endTime = strtotime($endTime) + 86400; + $where[] = ['<=', 'p.created_at', $endTime]; + } + if ($name) { + $where[] = ['like', 'p.name', $name]; + } + if ($type == 0) { + $pageList = ProjectRepository::getPageList($where); + $pages = null; + } else { + $pageSize = 20; + $pages = new Pagination(['totalCount' => ProjectRepository::getPageCount($where), 'pageSize' => $pageSize]); + $pageList = ProjectRepository::getPageList($where, $pages->offset, $pages->limit); + } + + /** + * 数据整理 + */ + return [ + 'listdata' => $pageList, + 'pages' => $pages, + 'gets' => $gets + ]; + } + + /** + * 创建项目 + * @return string + */ + public function actionCreate() + { + return $this->render('create'); + } + + /** + * 创建项目 + * @return string + */ + public function actionDoAdd() + { + $request = Yii::$app->request; + $name = $request->post("name"); // 项目 + if (empty($name)) { + Yii::$app->session->setFlash('error', '项目不能为空'); + return $this->render('create'); + } + $result = Project::create($request->post()); + if ($result === -1) { + Yii::$app->session->setFlash('error', '添加失败, 项目' . $name . '已存在'); + return $this->render('create'); + } + if ($result) { + Yii::$app->session->setFlash('success', '添加成功'); + } else { + Yii::$app->session->setFlash('error', '添加失败'); + } + + return $this->redirect('index'); + } + + /** + * 编辑项目 + * @return string + */ + public function actionEdit() + { + $ProjectId = $this->request->get("mid"); + $info = ProjectRepository::selectOne($ProjectId, true); + return $this->render('edit', ["info" => $info]); + } + + /** + * 编辑项目 + * @return string + */ + public function actionDoEdit() + { + $request = Yii::$app->request; + $name = $request->post("name"); + $mid = $request->post("mid"); + if (empty($mid)) { + Yii::$app->session->setFlash('error', '项目编号不能为空'); + $params = $this->dataList(1); + return $this->render('index', $params); + } + $Project =ProjectRepository::selectOne($mid,true); + if (empty($Project)) { + Yii::$app->session->setFlash('error', '项目记录不存在'); + $params = $this->dataList(1); + return $this->render('index', $params); + } + if (empty($name)) { + Yii::$app->session->setFlash('error', '项目不能为空'); + return $this->render('edit', ["info" => $Project]); + } + + $result = Project::update($mid, $request->post()); + + if ($result === -1) { + Yii::$app->session->setFlash('error', '修改的项目' . $name . '已存在'); + return $this->render('edit', ["info" => $Project]); + } + if ($result) { + Yii::$app->session->setFlash('success', '编辑成功'); + } else { + Yii::$app->session->setFlash('error', '编辑失败'); + } + $Project = ProjectRepository::selectOne($mid,true); + return $this->render('edit', ["info" => $Project]); + } + + /** + * 删除项目 + * @return string + * @throws \Exception + */ + public function actionDoDel() + { + $request = Yii::$app->request; + $itemId = $request->post("data_id"); + $msg = array(); + + // 删除对应的项目 + if (Project::delete($itemId)) { + $msg['status'] = 1; + $msg['msg'] = "操作成功"; + } else { + $msg['status'] = 0; + $msg['msg'] = "操作失败"; + } + + return $this->renderJson($msg); + } + +} \ No newline at end of file diff --git a/app-ht/modules/project/views/project/create.php b/app-ht/modules/project/views/project/create.php new file mode 100644 index 0000000..5d0821f --- /dev/null +++ b/app-ht/modules/project/views/project/create.php @@ -0,0 +1,60 @@ +title = '创建项目'; +$this->params['breadcrumbs'][] = ['label' => '项目管理', 'url' => ['/project/project/index']]; +$this->params['breadcrumbs'][] = $this->title; + +?> + +
+ + \ No newline at end of file diff --git a/app-ht/modules/project/views/project/edit.php b/app-ht/modules/project/views/project/edit.php new file mode 100644 index 0000000..6da1bfc --- /dev/null +++ b/app-ht/modules/project/views/project/edit.php @@ -0,0 +1,64 @@ +title = '编辑项目'; +$this->params['breadcrumbs'][] = ['label' => '项目管理', 'url' => ['/project/project/index']]; +$this->params['breadcrumbs'][] = $this->title; + +?> + + + + \ No newline at end of file diff --git a/app-ht/modules/project/views/project/index.php b/app-ht/modules/project/views/project/index.php new file mode 100644 index 0000000..73e7d85 --- /dev/null +++ b/app-ht/modules/project/views/project/index.php @@ -0,0 +1,121 @@ +title = '项目管理'; +$this->params['breadcrumbs'][] = $this->title; +?> + +编号 | +项目名称 | +创建时间 | +操作 | +||||
---|---|---|---|---|---|---|---|
= (isset($item["project_no"]) ? $item["project_no"] : "") ?> | += (isset($item["name"]) ? $item["name"] : "") ?> + | = date("Y-m-d H:i:s", $item['created_at'])?> | ++ | + $item['id']])?>" aid="=$item['id'] ?>">编辑 + | +||||
+ |
+