From aad621bd84ff6eab88be7912c2d0375a53de65eb Mon Sep 17 00:00:00 2001 From: kuaifan Date: Wed, 5 Jan 2022 14:17:45 +0800 Subject: [PATCH] no message --- resources/assets/js/pages/manage/calendar.vue | 8 +-- .../pages/manage/components/ProjectList.vue | 52 +++++++++---------- .../assets/js/pages/manage/dashboard.vue | 23 +++----- resources/assets/js/pages/manage/project.vue | 4 +- resources/assets/js/store/actions.js | 32 ++++-------- resources/assets/js/store/getters.js | 24 +++------ resources/assets/js/store/state.js | 20 ++++++- 7 files changed, 77 insertions(+), 86 deletions(-) diff --git a/resources/assets/js/pages/manage/calendar.vue b/resources/assets/js/pages/manage/calendar.vue index d2fc4c6c..c4e8b087 100644 --- a/resources/assets/js/pages/manage/calendar.vue +++ b/resources/assets/js/pages/manage/calendar.vue @@ -76,15 +76,15 @@ export default { computed: { ...mapState(['userId', 'projects', 'tasks']), - ...mapGetters(['myTasks', 'transforTasks']), + ...mapGetters(['ownerTasks', 'transforTasks']), list() { - const datas = this.transforTasks(this.myTasks.filter(({end_at}) => { + const datas = this.transforTasks(this.ownerTasks.filter(({end_at}) => { return end_at; })); return datas.map(data => { - let isAllday = $A.rightExists(data.start_at, "00:00:00") && $A.rightExists(data.end_at, "23:59:59") - let task = { + const isAllday = $A.rightExists(data.start_at, "00:00:00") && $A.rightExists(data.end_at, "23:59:59") + const task = { id: data.id, calendarId: String(data.project_id), title: data.name, diff --git a/resources/assets/js/pages/manage/components/ProjectList.vue b/resources/assets/js/pages/manage/components/ProjectList.vue index e4133ea0..3dc0ea21 100644 --- a/resources/assets/js/pages/manage/components/ProjectList.vue +++ b/resources/assets/js/pages/manage/components/ProjectList.vue @@ -24,7 +24,7 @@ -
  • +
  • @@ -53,15 +53,15 @@
    {{projectData.desc}}
    - {{$L('显示已完成')}} + {{$L('显示已完成')}}
    -
    +
    -
    +
    -
    +
    - +
    {{$L('我的任务')}}
    ({{myList.length}})
    @@ -267,13 +267,13 @@
    - +
    -
    +
    - +
    {{$L('协助的任务')}}
    ({{helpList.length}})
    @@ -282,13 +282,13 @@
    - +
    -
    +
    - +
    {{$L('未完成任务')}}
    ({{unList.length}})
    @@ -297,13 +297,13 @@
    - +
    -
    +
    - +
    {{$L('已完成任务')}}
    ({{completedList.length}})
    @@ -312,7 +312,7 @@
    - +
    @@ -504,7 +504,7 @@ export default { }, 1000); // this.projectDialogSubscribe = Store.subscribe('onProjectDialogBack', () => { - this.$store.dispatch('toggleProjectParameters', 'chat'); + this.$store.dispatch('toggleProjectParameter', 'chat'); }); }, @@ -530,7 +530,7 @@ export default { 'columns', ]), - ...mapGetters(['projectData', 'projectParameters', 'myTasks', 'transforTasks']), + ...mapGetters(['projectData', 'projectParameter', 'ownerTasks', 'transforTasks']), userWaitRemove() { const {userids, useridbak} = this.userData; @@ -555,7 +555,7 @@ export default { panelTask() { const {searchText} = this; return function (list) { - if (!this.projectParameters('completedTask')) { + if (!this.projectParameter('completedTask')) { list = list.filter(({complete_at}) => { return !complete_at; }); @@ -593,12 +593,12 @@ export default { }, myList() { - const {projectId, myTasks, searchText, completeTask, sortField, sortType} = this; - const array = myTasks.filter((task) => { + const {projectId, ownerTasks, searchText, completeTask, sortField, sortType} = this; + const array = ownerTasks.filter((task) => { if (task.project_id != projectId) { return false; } - if (!this.projectParameters('completedTask')) { + if (!this.projectParameter('completedTask')) { if (task.complete_at && !completeTask.find(id => id == task.id)) { return false; } @@ -631,7 +631,7 @@ export default { if (task.project_id != projectId || task.parent_id > 0) { return false; } - if (!this.projectParameters('completedTask')) { + if (!this.projectParameter('completedTask')) { if (task.complete_at && !completeTask.find(id => id == task.id)) { return false; } @@ -664,7 +664,7 @@ export default { if (task.project_id != projectId || task.parent_id > 0) { return false; } - if (!this.projectParameters('completedTask')) { + if (!this.projectParameter('completedTask')) { if (task.complete_at && !completeTask.find(id => id == task.id)) { return false; } @@ -1201,7 +1201,7 @@ export default { taskIsHidden(task) { const {name, desc, complete_at} = task; const {searchText} = this; - if (!this.projectParameters('completedTask')) { + if (!this.projectParameter('completedTask')) { if (complete_at) { return true; } @@ -1254,7 +1254,7 @@ export default { }, toggleCompleted() { - this.$store.dispatch('toggleProjectParameters', 'completedTask'); + this.$store.dispatch('toggleProjectParameter', 'completedTask'); this.completeTask = []; }, diff --git a/resources/assets/js/pages/manage/dashboard.vue b/resources/assets/js/pages/manage/dashboard.vue index 655a5ea9..9f688234 100644 --- a/resources/assets/js/pages/manage/dashboard.vue +++ b/resources/assets/js/pages/manage/dashboard.vue @@ -120,7 +120,7 @@ export default { taskLoad: {}, - completeTask: [], + tempShowTasks: [], } }, @@ -156,7 +156,7 @@ export default { }, list() { - const {dashboard, completeTask} = this; + const {dashboard, tempShowTasks} = this; let data = []; switch (dashboard) { case 'today': @@ -166,12 +166,8 @@ export default { data = this.transforTasks(this.dashboardTask.overdue); break } - if (completeTask.length > 0) { - completeTask.forEach(task => { - if (!data.find(({id}) => id == task.id)) { - data.push(task); - } - }) + if (tempShowTasks.length > 0) { + data.push(...tempShowTasks); } return data.sort((a, b) => { return $A.Date(a.end_at) - $A.Date(b.end_at); @@ -181,10 +177,10 @@ export default { watch: { '$route'() { - this.completeTask = []; + this.tempShowTasks = []; }, dashboard() { - this.completeTask = []; + this.tempShowTasks = []; } }, @@ -196,7 +192,7 @@ export default { this.updateTask(task, { complete_at: $A.formatDate("Y-m-d H:i:s") }).then(() => { - this.completeTask.push(task) + this.tempShowTasks.push(task) }) break; case 'uncomplete': @@ -204,10 +200,7 @@ export default { this.updateTask(task, { complete_at: false }).then(() => { - let index = this.completeTask.findIndex(({id}) => id == task.id) - if (index > -1) { - this.completeTask.splice(index, 1) - } + this.tempShowTasks = this.tempShowTasks.filter(({id}) => id != task.id) }) break; case 'archived': diff --git a/resources/assets/js/pages/manage/project.vue b/resources/assets/js/pages/manage/project.vue index bd80cc19..31ccb487 100644 --- a/resources/assets/js/pages/manage/project.vue +++ b/resources/assets/js/pages/manage/project.vue @@ -1,7 +1,7 @@ @@ -22,7 +22,7 @@ export default { }, computed: { - ...mapGetters(['projectParameters']), + ...mapGetters(['projectParameter']), }, watch: { diff --git a/resources/assets/js/store/actions.js b/resources/assets/js/store/actions.js index 47b7cbf9..31745fae 100644 --- a/resources/assets/js/store/actions.js +++ b/resources/assets/js/store/actions.js @@ -138,8 +138,8 @@ export default { * @param state * @param data|{key, project_id} */ - toggleProjectParameters({state}, data) { - $A.execMainDispatch("toggleProjectParameters", data) + toggleProjectParameter({state}, data) { + $A.execMainDispatch("toggleProjectParameter", data) // let key = data; let project_id = state.projectId; @@ -148,28 +148,18 @@ export default { project_id = data.project_id; } if (project_id) { - let index = state.cacheProjectParameters.findIndex(item => item.project_id == project_id) + let index = state.cacheProjectParameter.findIndex(item => item.project_id == project_id) if (index === -1) { - state.cacheProjectParameters.push({ - project_id, - card: true, - cardInit: false, - chat: false, - showMy: true, - showHelp: true, - showUndone: true, - showCompleted: false, - completedTask: false, - }); - index = state.cacheProjectParameters.findIndex(item => item.project_id == project_id) + state.cacheProjectParameter.push(state.method.projectParameterTemplate(project_id)); + index = state.cacheProjectParameter.findIndex(item => item.project_id == project_id) } - const cache = state.cacheProjectParameters[index]; + const cache = state.cacheProjectParameter[index]; if (!state.method.isJson(key)) { key = {[key]: !cache[key]}; } - state.cacheProjectParameters.splice(index, 1, Object.assign(cache, key)) + state.cacheProjectParameter.splice(index, 1, Object.assign(cache, key)) setTimeout(() => { - state.method.setStorage("cacheProjectParameters", state.cacheProjectParameters); + state.method.setStorage("cacheProjectParameter", state.cacheProjectParameter); }); } }, @@ -395,7 +385,7 @@ export default { state.cacheColumns = state.columns = []; state.cacheTasks = state.tasks = []; // - state.method.setStorage("cacheProjectParameters", state.cacheProjectParameters); + state.method.setStorage("cacheProjectParameter", state.cacheProjectParameter); state.method.setStorage("cacheServerUrl", state.cacheServerUrl); state.method.setStorage("cacheLoginEmail", cacheLoginEmail); dispatch("saveUserInfo", state.method.isJson(userInfo) ? userInfo : state.userInfo); @@ -787,9 +777,9 @@ export default { dispatch("saveColumn", data.data); // 判断只有1列的时候默认版面为表格模式 if (state.columns.filter(item => item.project_id == project_id).length === 1) { - const cache = state.cacheProjectParameters.find(item => item.project_id == project_id) || {}; + const cache = state.cacheProjectParameter.find(item => item.project_id == project_id) || {}; if (typeof cache.cardInit === "undefined" || cache.cardInit === false) { - dispatch("toggleProjectParameters", { + dispatch("toggleProjectParameter", { project_id, key: { card: false, diff --git a/resources/assets/js/store/getters.js b/resources/assets/js/store/getters.js index 5f33d460..f1527010 100644 --- a/resources/assets/js/store/getters.js +++ b/resources/assets/js/store/getters.js @@ -24,25 +24,15 @@ export default { * @param state * @returns {(function(*): (boolean|*))|*} */ - projectParameters(state) { + projectParameter(state) { return function (key) { if (!state.projectId) { return false; } - let cache = state.cacheProjectParameters.find(({project_id}) => project_id == state.projectId); + let cache = state.cacheProjectParameter.find(({project_id}) => project_id == state.projectId); if (!cache) { - cache = { - project_id: state.projectId, - card: true, - cardInit: false, - chat: false, - showMy: true, - showHelp: true, - showUndone: true, - showCompleted: false, - completedTask: false, - } - state.cacheProjectParameters.push(cache); + cache = state.method.projectParameterTemplate(state.projectId) + state.cacheProjectParameter.push(cache); } return cache && !!cache[key]; } @@ -73,7 +63,7 @@ export default { * @param state * @returns {unknown[]} */ - myTasks(state) { + ownerTasks(state) { return state.tasks.filter(({complete_at, owner}) => { if (complete_at) { return false; @@ -137,7 +127,7 @@ export default { const todayStart = $A.Date($A.formatDate("Y-m-d 00:00:00")), todayEnd = $A.Date($A.formatDate("Y-m-d 23:59:59")), todayNow = $A.Date($A.formatDate("Y-m-d H:i:s")); - const todayTasks = getters.myTasks.filter(task => { + const todayTasks = getters.ownerTasks.filter(task => { if (!task.end_at) { return false; } @@ -145,7 +135,7 @@ export default { end = $A.Date(task.end_at); return (start <= todayStart && todayStart <= end) || (start <= todayEnd && todayEnd <= end) || (start > todayStart && todayEnd > end); }) - const overdueTasks = getters.myTasks.filter(task => { + const overdueTasks = getters.ownerTasks.filter(task => { if (!task.end_at) { return false; } diff --git a/resources/assets/js/store/state.js b/resources/assets/js/store/state.js index 5241f853..ebeecdd4 100644 --- a/resources/assets/js/store/state.js +++ b/resources/assets/js/store/state.js @@ -245,6 +245,20 @@ const method = { return defaultVal ? defaultVal : ""; } }, + + projectParameterTemplate(project_id) { + return { + project_id, + card: true, + cardInit: false, + chat: false, + showMy: true, + showHelp: true, + showUndone: true, + showCompleted: false, + completedTask: false, + } + } }; // 方法类 @@ -256,17 +270,21 @@ state.windowMax768 = window.innerWidth <= 768; // 数据缓存 state.cacheLoading = {}; state.cacheDrawerOverlay = []; + // User state.cacheUserActive = {}; state.cacheUserWait = []; state.cacheUserBasic = state.method.getStorageArray("cacheUserBasic"); + // Dialog state.cacheDialogs = state.method.getStorageArray("cacheDialogs"); + // Project state.cacheProjects = state.method.getStorageArray("cacheProjects"); state.cacheColumns = state.method.getStorageArray("cacheColumns"); state.cacheTasks = state.method.getStorageArray("cacheTasks"); -state.cacheProjectParameters = state.method.getStorageArray("cacheProjectParameters"); +state.cacheProjectParameter = state.method.getStorageArray("cacheProjectParameter"); + // ServerUrl state.cacheServerUrl = state.method.getStorageString("cacheServerUrl") if (state.cacheServerUrl && window.systemInformation) {