From b0a5a7315384b4bd641c69dc4d3991410585f1a8 Mon Sep 17 00:00:00 2001 From: kuaifan Date: Mon, 7 Jun 2021 15:00:01 +0800 Subject: [PATCH] =?UTF-8?q?=E5=BF=AB=E9=80=9F=E6=B7=BB=E5=8A=A0=E4=BB=BB?= =?UTF-8?q?=E5=8A=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Controllers/Api/ProjectController.php | 53 +- resources/assets/js/functions/web.js | 44 ++ .../pages/manage/components/ProjectList.vue | 572 +++--------------- .../pages/manage/components/TaskAddSimple.vue | 186 ++++++ resources/assets/js/store/mutations.js | 4 - resources/assets/sass/app.scss | 5 + resources/assets/sass/dialog-wrapper.scss | 100 +++ resources/assets/sass/main.scss | 398 ------------ resources/assets/sass/messenger-wrapper.scss | 187 ++++++ resources/assets/sass/project-list.scss | 504 +++++++++++++++ resources/assets/sass/scrollbar.scss | 12 +- resources/assets/sass/task-add.scss | 167 +++++ 12 files changed, 1323 insertions(+), 909 deletions(-) create mode 100644 resources/assets/js/pages/manage/components/TaskAddSimple.vue create mode 100644 resources/assets/sass/dialog-wrapper.scss create mode 100644 resources/assets/sass/messenger-wrapper.scss create mode 100644 resources/assets/sass/project-list.scss create mode 100644 resources/assets/sass/task-add.scss diff --git a/app/Http/Controllers/Api/ProjectController.php b/app/Http/Controllers/Api/ProjectController.php index b6cfe8a7..30e24173 100755 --- a/app/Http/Controllers/Api/ProjectController.php +++ b/app/Http/Controllers/Api/ProjectController.php @@ -374,7 +374,7 @@ class ProjectController extends AbstractController } /** - * 【消息】消息列表 + * 消息列表 * * @apiParam {Number} project_id 项目ID * @apiParam {Number} [task_id] 任务ID @@ -413,7 +413,7 @@ class ProjectController extends AbstractController } /** - * 【消息】发送消息 + * 发送消息 * * @apiParam {Number} project_id 项目ID * @apiParam {Number} [task_id] 任务ID @@ -455,7 +455,54 @@ class ProjectController extends AbstractController } /** - * {post}【任务】添加任务 + * 添加、修改 任务列表 + * + * @apiParam {Number} project_id 项目ID + * @apiParam {String} name 列表名称 + */ + public function column__add() + { + $user = User::authE(); + if (Base::isError($user)) { + return $user; + } else { + $user = User::IDE($user['data']); + } + // + $project_id = intval(Request::input('project_id')); + $column_id = intval(Request::input('column_id')); + $name = trim(Request::input('name')); + if (empty($name)) { + return Base::retError('列表名称不能为空'); + } + // 项目 + $project = Project::select($this->projectSelect) + ->join('project_users', 'projects.id', '=', 'project_users.project_id') + ->where('projects.id', $project_id) + ->where('project_users.userid', $user->userid) + ->first(); + if (empty($project)) { + return Base::retError('项目不存在或不在成员列表内'); + } + // + if ($column_id > 0) { + $column = ProjectColumn::find($column_id); + } else { + $column = ProjectColumn::createInstance([ + 'project_id' => $project->id, + ]); + } + if ($column) { + $column->name = $name; + $column->save(); + return Base::retSuccess('添加成功', $column); + } else { + return Base::retError('列表不存在'); + } + } + + /** + * {post}添加任务 * * @apiParam {Number} project_id 项目ID * @apiParam {Number} [column_id] 列表ID,留空取第一个 diff --git a/resources/assets/js/functions/web.js b/resources/assets/js/functions/web.js index d374ea4b..94237f05 100755 --- a/resources/assets/js/functions/web.js +++ b/resources/assets/js/functions/web.js @@ -178,6 +178,50 @@ return config; }, + modalInput(config, millisecond = 0) { + if (millisecond > 0) { + setTimeout(() => { $A.modalInput(config) }, millisecond); + return; + } + if (typeof config === "string") config = {title:config}; + $A.Modal.confirm({ + render: (h) => { + return h('div', [ + h('div', { + style: { + fontSize: '16px', + fontWeight: '500', + marginBottom: '20px', + } + }, $A.L(config.title)), + h('Input', { + props: { + value: config.value, + placeholder: $A.L(config.placeholder) + }, + on: { + input: (val) => { + config.value = val; + } + } + }) + ]) + }, + loading: true, + onOk: () => { + if (typeof config.onOk === "function") { + if (config.onOk(config.value, () => { + $A.Modal.remove(); + }) === true) { + $A.Modal.remove(); + } + } else { + $A.Modal.remove(); + } + }, + }); + }, + modalConfirm(config, millisecond = 0) { if (millisecond > 0) { setTimeout(() => { $A.modalConfirm(config) }, millisecond); diff --git a/resources/assets/js/pages/manage/components/ProjectList.vue b/resources/assets/js/pages/manage/components/ProjectList.vue index 48a4b25b..df916008 100644 --- a/resources/assets/js/pages/manage/components/ProjectList.vue +++ b/resources/assets/js/pages/manage/components/ProjectList.vue @@ -56,10 +56,25 @@