no message

This commit is contained in:
kuaifan 2022-04-14 07:58:53 +08:00
parent 8a0f53aaaf
commit ac1e7bc186
4 changed files with 49 additions and 61 deletions

View File

@ -108,7 +108,7 @@ export default {
computed: {
...mapState(['userId', 'windowWidth', 'taskPriority']),
...mapGetters(['projectParameter']),
...mapGetters(['projectData']),
menuWidth() {
return this.windowWidth < 1440 ? 180 : 260;
@ -119,7 +119,7 @@ export default {
},
completedTask() {
return this.projectParameter('completedTask');
return this.projectData.cacheParameter.completedTask;
}
},

View File

@ -15,9 +15,9 @@
<UserAvatar :userid="projectData.owner_userid" :size="36" :borderWitdh="2" :openDelay="0">
<p>{{$L('项目负责人')}}</p>
</UserAvatar>
<Badge v-if="(windowWidth <= 980 || projectParameter('chat')) && projectUser.length > 0" type="normal" :count="projectData.project_user.length"/>
<Badge v-if="(windowWidth <= 980 || projectData.cacheParameter.chat) && projectUser.length > 0" type="normal" :count="projectData.project_user.length"/>
</li>
<template v-if="!(windowWidth <= 980 || projectParameter('chat')) && projectUser.length > 0" v-for="item in projectUser">
<template v-if="!(windowWidth <= 980 || projectData.cacheParameter.chat) && projectUser.length > 0" v-for="item in projectUser">
<li v-if="item.userid === -1" class="more">
<ETooltip :content="$L('共' + (projectData.project_user.length) + '个成员')">
<Icon type="ios-more"/>
@ -42,7 +42,7 @@
</div>
</Tooltip>
</li>
<li :class="['project-icon', projectParameter('chat') ? 'active' : '']" @click="$store.dispatch('toggleProjectParameter', 'chat')">
<li :class="['project-icon', projectData.cacheParameter.chat ? 'active' : '']" @click="$store.dispatch('toggleProjectParameter', 'chat')">
<Icon class="menu-icon" type="ios-chatbubbles" />
<Badge class="menu-badge" :count="msgUnread"></Badge>
</li>
@ -75,7 +75,7 @@
<div class="project-subtitle">{{projectData.desc}}</div>
<div class="project-switch">
<div v-if="completedCount > 0" class="project-checkbox">
<Checkbox :value="projectParameter('completedTask')" @on-change="toggleCompleted">{{$L('显示已完成')}}</Checkbox>
<Checkbox :value="projectData.cacheParameter.completedTask" @on-change="toggleCompleted">{{$L('显示已完成')}}</Checkbox>
</div>
<div v-if="flowList.length > 0" class="project-select">
<Cascader :data="flowData" @on-change="flowChange" transfer-class-name="project-list-flow-cascader" transfer>
@ -255,7 +255,7 @@
</Row>
</div>
<!--我的任务-->
<div :class="['project-table-body', !projectParameter('showMy') ? 'project-table-hide' : '']">
<div :class="['project-table-body', !projectData.cacheParameter.showMy ? 'project-table-hide' : '']">
<Row class="task-row">
<Col span="12" class="row-title">
<i class="taskfont" @click="$store.dispatch('toggleProjectParameter', 'showMy')">&#xe689;</i>
@ -267,10 +267,10 @@
<Col span="3"></Col>
<Col span="3"></Col>
</Row>
<TaskRow v-if="projectParameter('showMy')" :list="transforTasks(myList)" open-key="my" @on-priority="addTaskOpen" fast-add-task/>
<TaskRow v-if="projectData.cacheParameter.showMy" :list="transforTasks(myList)" open-key="my" @on-priority="addTaskOpen" fast-add-task/>
</div>
<!--协助的任务-->
<div v-if="helpList.length" :class="['project-table-body', !projectParameter('showHelp') ? 'project-table-hide' : '']">
<div v-if="helpList.length" :class="['project-table-body', !projectData.cacheParameter.showHelp ? 'project-table-hide' : '']">
<Row class="task-row">
<Col span="12" class="row-title">
<i class="taskfont" @click="$store.dispatch('toggleProjectParameter', 'showHelp')">&#xe689;</i>
@ -282,10 +282,10 @@
<Col span="3"></Col>
<Col span="3"></Col>
</Row>
<TaskRow v-if="projectParameter('showHelp')" :list="helpList" open-key="help" @on-priority="addTaskOpen"/>
<TaskRow v-if="projectData.cacheParameter.showHelp" :list="helpList" open-key="help" @on-priority="addTaskOpen"/>
</div>
<!--未完成任务-->
<div v-if="projectData.task_num > 0" :class="['project-table-body', !projectParameter('showUndone') ? 'project-table-hide' : '']">
<div v-if="projectData.task_num > 0" :class="['project-table-body', !projectData.cacheParameter.showUndone ? 'project-table-hide' : '']">
<Row class="task-row">
<Col span="12" class="row-title">
<i class="taskfont" @click="$store.dispatch('toggleProjectParameter', 'showUndone')">&#xe689;</i>
@ -297,10 +297,10 @@
<Col span="3"></Col>
<Col span="3"></Col>
</Row>
<TaskRow v-if="projectParameter('showUndone')" :list="unList" open-key="undone" @on-priority="addTaskOpen"/>
<TaskRow v-if="projectData.cacheParameter.showUndone" :list="unList" open-key="undone" @on-priority="addTaskOpen"/>
</div>
<!--已完成任务-->
<div v-if="projectData.task_num > 0" :class="['project-table-body', !projectParameter('showCompleted') ? 'project-table-hide' : '']">
<div v-if="projectData.task_num > 0" :class="['project-table-body', !projectData.cacheParameter.showCompleted ? 'project-table-hide' : '']">
<Row class="task-row">
<Col span="12" class="row-title">
<i class="taskfont" @click="$store.dispatch('toggleProjectParameter', 'showCompleted')">&#xe689;</i>
@ -310,9 +310,9 @@
<Col span="3"></Col>
<Col span="3"></Col>
<Col span="3"></Col>
<Col span="3">{{projectData.task_num > 0 && projectParameter('showCompleted') ? $L('完成时间') : ''}}</Col>
<Col span="3">{{projectData.task_num > 0 && projectData.cacheParameter.showCompleted ? $L('完成时间') : ''}}</Col>
</Row>
<TaskRow v-if="projectParameter('showCompleted')" :list="completedList" open-key="completed" @on-priority="addTaskOpen" showCompleteAt/>
<TaskRow v-if="projectData.cacheParameter.showCompleted" :list="completedList" open-key="completed" @on-priority="addTaskOpen" showCompleteAt/>
</div>
</div>
<div v-else-if="tabTypeActive === 'gantt'" class="project-gantt">
@ -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;
}

View File

@ -1,7 +1,7 @@
<template>
<div class="page-project">
<ProjectList/>
<ProjectDialog v-if="projectParameter('chat')"/>
<ProjectDialog v-if="projectData.cacheParameter.chat"/>
</div>
</template>
@ -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: () => {

View File

@ -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: {}
};
},
/**