+
-
+
{{$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) {