@@ -563,10 +563,10 @@ export default {
'taskCompleteTemps',
]),
- ...mapGetters(['projectData', 'projectParameter', 'transforTasks']),
+ ...mapGetters(['projectData', 'transforTasks']),
tabTypeActive() {
- return this.projectParameter('menuType')
+ return this.projectData.cacheParameter.menuType
},
tabTypeStyle() {
@@ -610,7 +610,7 @@ export default {
panelTask() {
const {searchText, flowInfo} = this;
return function (list) {
- if (!this.projectParameter('completedTask')) {
+ if (!this.projectData.cacheParameter.completedTask) {
list = list.filter(({complete_at}) => {
return !complete_at;
});
@@ -1261,7 +1261,7 @@ export default {
taskIsHidden(task) {
const {name, desc, complete_at} = task;
const {searchText, flowInfo} = this;
- if (!this.projectParameter('completedTask')) {
+ if (!this.projectData.cacheParameter.completedTask) {
if (complete_at) {
return true;
}
@@ -1357,7 +1357,7 @@ export default {
},
myFilter(task, chackCompleted = true) {
- if (!this.projectParameter('completedTask') && chackCompleted === true) {
+ if (!this.projectData.cacheParameter.completedTask && chackCompleted === true) {
if (task.complete_at) {
return false;
}
@@ -1377,7 +1377,7 @@ export default {
if (task.parent_id > 0) {
return false;
}
- if (!this.projectParameter('completedTask') && chackCompleted === true) {
+ if (!this.projectData.cacheParameter.completedTask && chackCompleted === true) {
if (task.complete_at) {
return false;
}
diff --git a/resources/assets/js/pages/manage/project.vue b/resources/assets/js/pages/manage/project.vue
index ad74a4db2..b148b5390 100644
--- a/resources/assets/js/pages/manage/project.vue
+++ b/resources/assets/js/pages/manage/project.vue
@@ -1,7 +1,7 @@
@@ -18,7 +18,7 @@ export default {
computed: {
...mapState(['cacheProjects', 'wsOpenNum']),
- ...mapGetters(['projectParameter']),
+ ...mapGetters(['projectData']),
projectId() {
const {projectId} = this.$route.params;
@@ -46,12 +46,16 @@ export default {
methods: {
getProjectData() {
if (this.projectId <= 0) return;
- setTimeout(() => {
- this.$store.state.projectId = $A.runNum(this.projectId);
- this.$store.dispatch("getProjectOne", this.projectId).then(() => {
- this.$store.dispatch("getColumns", this.projectId).catch(() => {});
- this.$store.dispatch("getTaskForProject", this.projectId).catch(() => {})
+ const projectId = this.projectId;
+ this.$nextTick(() => {
+ this.$store.state.projectId = projectId;
+ this.$store.dispatch("getProjectOne", projectId).then(() => {
+ this.$store.dispatch("getColumns", projectId).catch(() => {});
+ this.$store.dispatch("getTaskForProject", projectId).catch(() => {})
}).catch(({msg}) => {
+ if (projectId !== this.projectId) {
+ return;
+ }
$A.modalWarning({
content: msg,
onOk: () => {
diff --git a/resources/assets/js/store/getters.js b/resources/assets/js/store/getters.js
index 924fae912..4335e23ba 100644
--- a/resources/assets/js/store/getters.js
+++ b/resources/assets/js/store/getters.js
@@ -2,43 +2,27 @@ export default {
/**
* 当前打开的项目
* @param state
- * @returns {{}|{readonly id?: *}}
+ * @returns {{cacheParameter: {}}}
*/
projectData(state) {
- let projectId = state.projectId;
- if (projectId == 0) {
- projectId = $A.runNum(window.__projectId);
- }
- if (projectId > 0) {
- window.__projectId = projectId;
- const project = state.cacheProjects.find(({id}) => id == projectId);
- if (project) {
- return project;
+ if (state.projectId > 0) {
+ let data = state.cacheProjects.find(({id}) => id == state.projectId);
+ if (data) {
+ let cacheParameter = state.cacheProjectParameter.find(({project_id}) => project_id == state.projectId);
+ if (!cacheParameter) {
+ cacheParameter = $A.projectParameterTemplate(state.projectId)
+ state.cacheProjectParameter.push(cacheParameter);
+ }
+ if (cacheParameter.menuType === undefined) {
+ cacheParameter.menuType = 'column'
+ }
+ data.cacheParameter = cacheParameter;
+ return data;
}
}
- return {};
- },
-
- /**
- * 当前打开的项目面板参数
- * @param state
- * @returns {(function(*): (boolean|*))|*}
- */
- projectParameter(state) {
- return function (key) {
- if (!state.projectId) {
- return false;
- }
- let cache = state.cacheProjectParameter.find(({project_id}) => project_id == state.projectId);
- if (!cache) {
- cache = $A.projectParameterTemplate(state.projectId)
- state.cacheProjectParameter.push(cache);
- }
- if (key === 'menuType' && typeof cache[key] === "undefined") {
- return 'column'
- }
- return cache[key];
- }
+ return {
+ cacheParameter: {}
+ };
},
/**