From a1c7efeb857ff4a533125253da586e6c307c3219 Mon Sep 17 00:00:00 2001 From: kuaifan Date: Fri, 31 Dec 2021 14:05:46 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BB=BB=E5=8A=A1=E6=95=B0=E6=8D=AE=E9=80=BB?= =?UTF-8?q?=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- resources/assets/js/pages/manage/calendar.vue | 24 ++--- .../pages/manage/components/ProjectList.vue | 22 ++-- .../js/pages/manage/components/TaskDetail.vue | 3 +- .../js/pages/manage/components/TaskRow.vue | 20 ++-- .../assets/js/pages/manage/dashboard.vue | 11 +- resources/assets/js/store/actions.js | 100 ++++++++++-------- resources/assets/js/store/getters.js | 78 +++++++++----- .../sass/pages/components/project-list.scss | 14 +++ .../assets/sass/pages/page-dashboard.scss | 14 +++ 9 files changed, 174 insertions(+), 112 deletions(-) diff --git a/resources/assets/js/pages/manage/calendar.vue b/resources/assets/js/pages/manage/calendar.vue index 26d1e100..61599597 100644 --- a/resources/assets/js/pages/manage/calendar.vue +++ b/resources/assets/js/pages/manage/calendar.vue @@ -44,7 +44,7 @@ import 'tui-date-picker/dist/tui-date-picker.css'; import 'tui-time-picker/dist/tui-time-picker.css'; import 'tui-calendar-hi/dist/tui-calendar-hi.css' -import {mapState} from "vuex"; +import {mapState, mapGetters} from "vuex"; import Calendar from "./components/Calendar"; import moment from "moment"; @@ -76,17 +76,10 @@ export default { computed: { ...mapState(['userId', 'projects', 'tasks']), + ...mapGetters(['ownerTask']), + list() { - let datas = $A.cloneJSON(this.tasks); - datas = datas.filter((data) => { - if (data.complete_at) { - return false; - } - if (!data.end_at) { - return false; - } - return data.owner; - }) + const datas = $A.cloneJSON(this.ownerTask); return datas.map(data => { let isAllday = $A.rightExists(data.start_at, "00:00:00") && $A.rightExists(data.end_at, "23:59:59") let task = { @@ -109,11 +102,14 @@ export default { if (data.p_name) { task.priority = '' + data.p_name + ''; } + if (data.top_task === true) { + task.title = '[' + this.$L('子任务') + '] ' + task.title + } if (data.overdue) { - task.title = '[' + $A.L('超期') + '] ' + task.title + task.title = '[' + this.$L('超期') + '] ' + task.title task.color = "#f56c6c" task.bgColor = "#fef0f0" - task.priority+= '' + $A.L('超期未完成') + ''; + task.priority+= '' + this.$L('超期未完成') + ''; } if (!task.borderColor) { task.borderColor = task.bgColor; @@ -286,7 +282,7 @@ export default { break; case "edit": - this.$store.dispatch("openTask", data.id) + this.$store.dispatch("openTask", data) break; case "delete": diff --git a/resources/assets/js/pages/manage/components/ProjectList.vue b/resources/assets/js/pages/manage/components/ProjectList.vue index 11831923..d9db11b0 100644 --- a/resources/assets/js/pages/manage/components/ProjectList.vue +++ b/resources/assets/js/pages/manage/components/ProjectList.vue @@ -532,6 +532,8 @@ export default { ...mapGetters(['projectData', 'tablePanel']), + ...mapGetters(['ownerTask']), + userWaitRemove() { const {userids, useridbak} = this.userData; if (!userids) { @@ -570,8 +572,8 @@ export default { }, myList() { - const {projectId, tasks, searchText, userId, completeTask, sortField, sortType} = this; - const array = tasks.filter((task) => { + const {projectId, ownerTask, searchText, completeTask, sortField, sortType} = this; + const array = ownerTask.filter((task) => { if (task.project_id != projectId) { return false; } @@ -585,7 +587,7 @@ export default { return false; } } - return task.task_user && task.task_user.find(({userid, owner}) => userid == userId && owner == 1); + return true; }); return array.sort((a, b) => { if (sortType == 'asc') { @@ -605,7 +607,7 @@ export default { helpList() { const {projectId, tasks, searchText, userId, completeTask, sortField, sortType} = this; const array = tasks.filter((task) => { - if (task.project_id != projectId) { + if (task.project_id != projectId || task.parent_id > 0) { return false; } if (!this.tablePanel('completedTask')) { @@ -638,7 +640,7 @@ export default { undoneList() { const {projectId, tasks, searchText, completeTask, sortField, sortType} = this; const array = tasks.filter((task) => { - if (task.project_id != projectId) { + if (task.project_id != projectId || task.parent_id > 0) { return false; } if (!this.tablePanel('completedTask')) { @@ -671,7 +673,7 @@ export default { completedCount() { const {projectId, tasks} = this; return tasks.filter((task) => { - if (task.project_id != projectId) { + if (task.project_id != projectId || task.parent_id > 0) { return false; } return task.complete_at; @@ -681,7 +683,7 @@ export default { completedList() { const {projectId, tasks, searchText} = this; const array = tasks.filter((task) => { - if (task.project_id != projectId) { + if (task.project_id != projectId || task.parent_id > 0) { return false; } if (searchText) { @@ -1154,11 +1156,7 @@ export default { }, openTask(task, receive) { - if (task.parent_id > 0) { - this.$store.dispatch("openTask", task.parent_id) - } else { - this.$store.dispatch("openTask", task.id) - } + this.$store.dispatch("openTask", task) if (receive === true) { // 向任务窗口发送领取任务请求 setTimeout(() => { diff --git a/resources/assets/js/pages/manage/components/TaskDetail.vue b/resources/assets/js/pages/manage/components/TaskDetail.vue index 784d44d4..130f5585 100644 --- a/resources/assets/js/pages/manage/components/TaskDetail.vue +++ b/resources/assets/js/pages/manage/components/TaskDetail.vue @@ -108,8 +108,7 @@ class="pick" :title="$L('你确认领取任务吗?')" placement="bottom" - @on-ok="onOwner(true)" - transfer> + @on-ok="onOwner(true)"> diff --git a/resources/assets/js/pages/manage/components/TaskRow.vue b/resources/assets/js/pages/manage/components/TaskRow.vue index c1e81d2d..c55925a3 100644 --- a/resources/assets/js/pages/manage/components/TaskRow.vue +++ b/resources/assets/js/pages/manage/components/TaskRow.vue @@ -2,7 +2,7 @@
- + -
{{item.name}}
+
{{$L('子任务')}}{{item.name}}
@@ -71,10 +71,11 @@
{{columnName(item.column_id)}}
@@ -86,10 +87,11 @@ {{item.p_name}} @@ -210,6 +212,10 @@ export default { }, }, methods: { + isTopTask(item) { + return item.parent_id === 0 || item.top_task === true + }, + columnName(column_id) { const column = this.columns.find(({id}) => id == column_id) return column ? column.name : ''; @@ -249,11 +255,7 @@ export default { }, openTask(task, receive) { - if (task.parent_id > 0) { - this.$store.dispatch("openTask", task.parent_id) - } else { - this.$store.dispatch("openTask", task.id) - } + this.$store.dispatch("openTask", task) if (receive === true) { // 向任务窗口发送领取任务请求 setTimeout(() => { diff --git a/resources/assets/js/pages/manage/dashboard.vue b/resources/assets/js/pages/manage/dashboard.vue index 3e57234d..cbf1f837 100644 --- a/resources/assets/js/pages/manage/dashboard.vue +++ b/resources/assets/js/pages/manage/dashboard.vue @@ -35,9 +35,9 @@ :key="item.id" :class="{complete: item.complete_at}" :style="item.color ? {backgroundColor: item.color} : {}" - @click="$store.dispatch('openTask', item.id)"> + @click="openTask(item)"> -
{{item.name}}
+
{{$L('子任务')}}{{item.name}}
@@ -102,6 +102,7 @@