From db37cce011b7e5e2d18e1d978fdf9cdb0cba01a3 Mon Sep 17 00:00:00 2001 From: aipaw Date: Tue, 22 Jun 2021 09:51:26 +0800 Subject: [PATCH] =?UTF-8?q?=E5=88=86=E7=A6=BB=E5=AD=90=E4=BB=BB=E5=8A=A1?= =?UTF-8?q?=E7=BC=93=E5=AD=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- resources/assets/js/pages/manage/calendar.vue | 3 -- .../pages/manage/components/ProjectList.vue | 12 ------ .../js/pages/manage/components/TaskDetail.vue | 4 +- .../js/pages/manage/components/TaskRow.vue | 4 +- .../assets/js/pages/manage/dashboard.vue | 3 -- resources/assets/js/store/actions.js | 41 +++++++++++-------- resources/assets/js/store/getters.js | 4 -- resources/assets/js/store/state.js | 2 + 8 files changed, 31 insertions(+), 42 deletions(-) diff --git a/resources/assets/js/pages/manage/calendar.vue b/resources/assets/js/pages/manage/calendar.vue index 760f168c..52fd972b 100644 --- a/resources/assets/js/pages/manage/calendar.vue +++ b/resources/assets/js/pages/manage/calendar.vue @@ -81,9 +81,6 @@ export default { list() { let datas = $A.cloneJSON(this.tasks); datas = datas.filter((data) => { - if (data.parent_id > 0) { - return false; - } if (data.complete_at) { return false; } diff --git a/resources/assets/js/pages/manage/components/ProjectList.vue b/resources/assets/js/pages/manage/components/ProjectList.vue index 48419d47..6768765c 100644 --- a/resources/assets/js/pages/manage/components/ProjectList.vue +++ b/resources/assets/js/pages/manage/components/ProjectList.vue @@ -444,9 +444,6 @@ export default { myList() { const {projectId, tasks, searchText, projectCompleteShow, userId} = this; const array = tasks.filter((task) => { - if (task.parent_id > 0) { - return false; - } if (task.project_id != projectId) { return false; } @@ -476,9 +473,6 @@ export default { undoneList() { const {projectId, tasks, searchText, projectCompleteShow} = this; const array = tasks.filter((task) => { - if (task.parent_id > 0) { - return false; - } if (task.project_id != projectId) { return false; } @@ -508,9 +502,6 @@ export default { completedCount() { const {projectId, tasks} = this; return tasks.filter((task) => { - if (task.parent_id > 0) { - return false; - } if (task.project_id != projectId) { return false; } @@ -521,9 +512,6 @@ export default { completedList() { const {projectId, tasks, searchText} = this; const array = tasks.filter((task) => { - if (task.parent_id > 0) { - return false; - } if (task.project_id != projectId) { return false; } diff --git a/resources/assets/js/pages/manage/components/TaskDetail.vue b/resources/assets/js/pages/manage/components/TaskDetail.vue index e2f4882b..ff7f3153 100644 --- a/resources/assets/js/pages/manage/components/TaskDetail.vue +++ b/resources/assets/js/pages/manage/components/TaskDetail.vue @@ -466,7 +466,7 @@ export default { }, computed: { - ...mapState(['userId', 'projects', 'columns', 'taskId', 'tasks', 'taskContents', 'taskFiles', 'taskPriority']), + ...mapState(['userId', 'projects', 'columns', 'taskId', 'taskSubs', 'taskContents', 'taskFiles', 'taskPriority']), projectName() { if (!this.taskDetail.project_id) { @@ -513,7 +513,7 @@ export default { if (!this.taskId) { return []; } - return this.tasks.filter(({parent_id}) => { + return this.taskSubs.filter(({parent_id}) => { return parent_id == this.taskId }).sort((a, b) => { return a.id - b.id; diff --git a/resources/assets/js/pages/manage/components/TaskRow.vue b/resources/assets/js/pages/manage/components/TaskRow.vue index 52506670..a34ab21a 100644 --- a/resources/assets/js/pages/manage/components/TaskRow.vue +++ b/resources/assets/js/pages/manage/components/TaskRow.vue @@ -142,11 +142,11 @@ export default { }, computed: { - ...mapState(['tasks', 'columns']), + ...mapState(['taskSubs', 'columns']), subTask() { return function(task_id) { - return this.tasks.filter(({parent_id}) => { + return this.taskSubs.filter(({parent_id}) => { return parent_id == task_id }).sort((a, b) => { return a.id - b.id; diff --git a/resources/assets/js/pages/manage/dashboard.vue b/resources/assets/js/pages/manage/dashboard.vue index 9ec07157..f9c0c08c 100644 --- a/resources/assets/js/pages/manage/dashboard.vue +++ b/resources/assets/js/pages/manage/dashboard.vue @@ -139,9 +139,6 @@ export default { todayEnd = new Date($A.formatDate("Y-m-d 23:59:59")); let datas = $A.cloneJSON(this.tasks); datas = datas.filter((data) => { - if (data.parent_id > 0) { - return false; - } if (data.complete_at) { return false; } diff --git a/resources/assets/js/store/actions.js b/resources/assets/js/store/actions.js index 51c92580..7654402d 100644 --- a/resources/assets/js/store/actions.js +++ b/resources/assets/js/store/actions.js @@ -275,7 +275,6 @@ export default { data.forEach((project) => { dispatch("saveProject", project) }); - return; } else if (state.method.isJson(data)) { let index = state.projects.findIndex(({id}) => id == data.id); if (index > -1) { @@ -283,10 +282,10 @@ export default { } else { state.projects.push(data); } + setTimeout(() => { + state.method.setStorage("cacheProjects", state.cacheProjects = state.projects); + }) } - setTimeout(() => { - state.method.setStorage("cacheProjects", state.cacheProjects = state.projects); - }) }, /** @@ -433,7 +432,6 @@ export default { data.forEach((column) => { dispatch("saveColumn", column) }); - return; } else if (state.method.isJson(data)) { let index = state.columns.findIndex(({id}) => id == data.id); if (index > -1) { @@ -441,10 +439,10 @@ export default { } else { state.columns.push(data); } + setTimeout(() => { + state.method.setStorage("cacheColumns", state.cacheColumns = state.columns); + }) } - setTimeout(() => { - state.method.setStorage("cacheColumns", state.cacheColumns = state.columns); - }) }, /** @@ -485,6 +483,9 @@ export default { } }).then(result => { const ids = result.data.data.map(({id}) => id) + if (ids.length == 0) { + return; + } state.columns = state.columns.filter((item) => item.project_id != project_id || ids.includes(item.id)); dispatch("saveColumn", result.data.data); }).catch(e => { @@ -530,13 +531,13 @@ export default { data.forEach((task) => { dispatch("saveTask", task) }); - return; } else if (state.method.isJson(data)) { - let index = state.tasks.findIndex(({id}) => id == data.id); + let key = data.parent_id > 0 ? 'taskSubs' : 'tasks'; + let index = state[key].findIndex(({id}) => id == data.id); if (index > -1) { - state.tasks.splice(index, 1, Object.assign(state.tasks[index], data)); + state[key].splice(index, 1, Object.assign(state[key][index], data)); } else { - state.tasks.push(data); + state[key].push(data); } // if (data.is_subtask) { @@ -548,10 +549,15 @@ export default { if (data.is_update_content) { dispatch("getTaskContent", data.id); } + // + setTimeout(() => { + if (data.parent_id > 0) { + state.method.setStorage("cacheTaskSubs", state.cacheTaskSubs = state[key]); + } else { + state.method.setStorage("cacheTasks", state.cacheTasks = state[key]); + } + }) } - setTimeout(() => { - state.method.setStorage("cacheTasks", state.cacheTasks = state.tasks); - }) }, /** @@ -595,11 +601,14 @@ export default { }).then(result => { const resData = result.data; const ids = resData.data.map(({id}) => id) + if (ids.length == 0) { + return; + } if (data.project_id) { state.tasks = state.tasks.filter((item) => item.project_id != data.project_id || ids.includes(item.id)); } if (data.parent_id) { - state.tasks = state.tasks.filter((item) => item.parent_id != data.parent_id || ids.includes(item.id)); + state.taskSubs = state.taskSubs.filter((item) => item.parent_id != data.parent_id || ids.includes(item.id)); } dispatch("saveTask", resData.data); // diff --git a/resources/assets/js/store/getters.js b/resources/assets/js/store/getters.js index 59c2f634..4b76f70e 100644 --- a/resources/assets/js/store/getters.js +++ b/resources/assets/js/store/getters.js @@ -1,6 +1,5 @@ export default { projectData(state) { - console.log(111); let projectId = state.projectId; if (projectId == 0) { projectId = state.method.runNum(window.__projectId); @@ -19,9 +18,6 @@ export default { }); project.columns.forEach((column) => { column.tasks = state.method.cloneJSON(state.tasks.filter((task) => { - if (task.parent_id > 0) { - return false; - } return task.column_id == column.id; })).sort((a, b) => { if (a.sort != b.sort) { diff --git a/resources/assets/js/store/state.js b/resources/assets/js/store/state.js index 246dfed5..95d67d53 100644 --- a/resources/assets/js/store/state.js +++ b/resources/assets/js/store/state.js @@ -254,6 +254,7 @@ state.cacheDialogMsg = state.method.getStorageJson("cacheDialogMsg"); state.cacheProjects = state.method.getStorageArray("cacheProjects"); state.cacheColumns = state.method.getStorageArray("cacheColumns"); state.cacheTasks = state.method.getStorageArray("cacheTasks"); +state.cacheTaskSubs = state.method.getStorageArray("cacheTaskSubs"); // 会员信息 state.userInfo = state.method.getStorageJson("userInfo"); @@ -276,6 +277,7 @@ state.projects = []; state.projectStatistics = {}; state.columns = []; state.tasks = []; +state.taskSubs = []; state.taskContents = []; state.taskFiles = []; state.taskLogs = [];