mirror of
https://github.com/kuaifan/dootask.git
synced 2026-03-17 19:23:26 +00:00
no message
This commit is contained in:
parent
8a0f53aaaf
commit
ac1e7bc186
@ -108,7 +108,7 @@ export default {
|
|||||||
computed: {
|
computed: {
|
||||||
...mapState(['userId', 'windowWidth', 'taskPriority']),
|
...mapState(['userId', 'windowWidth', 'taskPriority']),
|
||||||
|
|
||||||
...mapGetters(['projectParameter']),
|
...mapGetters(['projectData']),
|
||||||
|
|
||||||
menuWidth() {
|
menuWidth() {
|
||||||
return this.windowWidth < 1440 ? 180 : 260;
|
return this.windowWidth < 1440 ? 180 : 260;
|
||||||
@ -119,7 +119,7 @@ export default {
|
|||||||
},
|
},
|
||||||
|
|
||||||
completedTask() {
|
completedTask() {
|
||||||
return this.projectParameter('completedTask');
|
return this.projectData.cacheParameter.completedTask;
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|||||||
@ -15,9 +15,9 @@
|
|||||||
<UserAvatar :userid="projectData.owner_userid" :size="36" :borderWitdh="2" :openDelay="0">
|
<UserAvatar :userid="projectData.owner_userid" :size="36" :borderWitdh="2" :openDelay="0">
|
||||||
<p>{{$L('项目负责人')}}</p>
|
<p>{{$L('项目负责人')}}</p>
|
||||||
</UserAvatar>
|
</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>
|
</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">
|
<li v-if="item.userid === -1" class="more">
|
||||||
<ETooltip :content="$L('共' + (projectData.project_user.length) + '个成员')">
|
<ETooltip :content="$L('共' + (projectData.project_user.length) + '个成员')">
|
||||||
<Icon type="ios-more"/>
|
<Icon type="ios-more"/>
|
||||||
@ -42,7 +42,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</Tooltip>
|
</Tooltip>
|
||||||
</li>
|
</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" />
|
<Icon class="menu-icon" type="ios-chatbubbles" />
|
||||||
<Badge class="menu-badge" :count="msgUnread"></Badge>
|
<Badge class="menu-badge" :count="msgUnread"></Badge>
|
||||||
</li>
|
</li>
|
||||||
@ -75,7 +75,7 @@
|
|||||||
<div class="project-subtitle">{{projectData.desc}}</div>
|
<div class="project-subtitle">{{projectData.desc}}</div>
|
||||||
<div class="project-switch">
|
<div class="project-switch">
|
||||||
<div v-if="completedCount > 0" class="project-checkbox">
|
<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>
|
||||||
<div v-if="flowList.length > 0" class="project-select">
|
<div v-if="flowList.length > 0" class="project-select">
|
||||||
<Cascader :data="flowData" @on-change="flowChange" transfer-class-name="project-list-flow-cascader" transfer>
|
<Cascader :data="flowData" @on-change="flowChange" transfer-class-name="project-list-flow-cascader" transfer>
|
||||||
@ -255,7 +255,7 @@
|
|||||||
</Row>
|
</Row>
|
||||||
</div>
|
</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">
|
<Row class="task-row">
|
||||||
<Col span="12" class="row-title">
|
<Col span="12" class="row-title">
|
||||||
<i class="taskfont" @click="$store.dispatch('toggleProjectParameter', 'showMy')"></i>
|
<i class="taskfont" @click="$store.dispatch('toggleProjectParameter', 'showMy')"></i>
|
||||||
@ -267,10 +267,10 @@
|
|||||||
<Col span="3"></Col>
|
<Col span="3"></Col>
|
||||||
<Col span="3"></Col>
|
<Col span="3"></Col>
|
||||||
</Row>
|
</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>
|
||||||
<!--协助的任务-->
|
<!--协助的任务-->
|
||||||
<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">
|
<Row class="task-row">
|
||||||
<Col span="12" class="row-title">
|
<Col span="12" class="row-title">
|
||||||
<i class="taskfont" @click="$store.dispatch('toggleProjectParameter', 'showHelp')"></i>
|
<i class="taskfont" @click="$store.dispatch('toggleProjectParameter', 'showHelp')"></i>
|
||||||
@ -282,10 +282,10 @@
|
|||||||
<Col span="3"></Col>
|
<Col span="3"></Col>
|
||||||
<Col span="3"></Col>
|
<Col span="3"></Col>
|
||||||
</Row>
|
</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>
|
||||||
<!--未完成任务-->
|
<!--未完成任务-->
|
||||||
<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">
|
<Row class="task-row">
|
||||||
<Col span="12" class="row-title">
|
<Col span="12" class="row-title">
|
||||||
<i class="taskfont" @click="$store.dispatch('toggleProjectParameter', 'showUndone')"></i>
|
<i class="taskfont" @click="$store.dispatch('toggleProjectParameter', 'showUndone')"></i>
|
||||||
@ -297,10 +297,10 @@
|
|||||||
<Col span="3"></Col>
|
<Col span="3"></Col>
|
||||||
<Col span="3"></Col>
|
<Col span="3"></Col>
|
||||||
</Row>
|
</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>
|
||||||
<!--已完成任务-->
|
<!--已完成任务-->
|
||||||
<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">
|
<Row class="task-row">
|
||||||
<Col span="12" class="row-title">
|
<Col span="12" class="row-title">
|
||||||
<i class="taskfont" @click="$store.dispatch('toggleProjectParameter', 'showCompleted')"></i>
|
<i class="taskfont" @click="$store.dispatch('toggleProjectParameter', 'showCompleted')"></i>
|
||||||
@ -310,9 +310,9 @@
|
|||||||
<Col span="3"></Col>
|
<Col span="3"></Col>
|
||||||
<Col span="3"></Col>
|
<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>
|
</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>
|
</div>
|
||||||
<div v-else-if="tabTypeActive === 'gantt'" class="project-gantt">
|
<div v-else-if="tabTypeActive === 'gantt'" class="project-gantt">
|
||||||
@ -563,10 +563,10 @@ export default {
|
|||||||
'taskCompleteTemps',
|
'taskCompleteTemps',
|
||||||
]),
|
]),
|
||||||
|
|
||||||
...mapGetters(['projectData', 'projectParameter', 'transforTasks']),
|
...mapGetters(['projectData', 'transforTasks']),
|
||||||
|
|
||||||
tabTypeActive() {
|
tabTypeActive() {
|
||||||
return this.projectParameter('menuType')
|
return this.projectData.cacheParameter.menuType
|
||||||
},
|
},
|
||||||
|
|
||||||
tabTypeStyle() {
|
tabTypeStyle() {
|
||||||
@ -610,7 +610,7 @@ export default {
|
|||||||
panelTask() {
|
panelTask() {
|
||||||
const {searchText, flowInfo} = this;
|
const {searchText, flowInfo} = this;
|
||||||
return function (list) {
|
return function (list) {
|
||||||
if (!this.projectParameter('completedTask')) {
|
if (!this.projectData.cacheParameter.completedTask) {
|
||||||
list = list.filter(({complete_at}) => {
|
list = list.filter(({complete_at}) => {
|
||||||
return !complete_at;
|
return !complete_at;
|
||||||
});
|
});
|
||||||
@ -1261,7 +1261,7 @@ export default {
|
|||||||
taskIsHidden(task) {
|
taskIsHidden(task) {
|
||||||
const {name, desc, complete_at} = task;
|
const {name, desc, complete_at} = task;
|
||||||
const {searchText, flowInfo} = this;
|
const {searchText, flowInfo} = this;
|
||||||
if (!this.projectParameter('completedTask')) {
|
if (!this.projectData.cacheParameter.completedTask) {
|
||||||
if (complete_at) {
|
if (complete_at) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
@ -1357,7 +1357,7 @@ export default {
|
|||||||
},
|
},
|
||||||
|
|
||||||
myFilter(task, chackCompleted = true) {
|
myFilter(task, chackCompleted = true) {
|
||||||
if (!this.projectParameter('completedTask') && chackCompleted === true) {
|
if (!this.projectData.cacheParameter.completedTask && chackCompleted === true) {
|
||||||
if (task.complete_at) {
|
if (task.complete_at) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@ -1377,7 +1377,7 @@ export default {
|
|||||||
if (task.parent_id > 0) {
|
if (task.parent_id > 0) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
if (!this.projectParameter('completedTask') && chackCompleted === true) {
|
if (!this.projectData.cacheParameter.completedTask && chackCompleted === true) {
|
||||||
if (task.complete_at) {
|
if (task.complete_at) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="page-project">
|
<div class="page-project">
|
||||||
<ProjectList/>
|
<ProjectList/>
|
||||||
<ProjectDialog v-if="projectParameter('chat')"/>
|
<ProjectDialog v-if="projectData.cacheParameter.chat"/>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
@ -18,7 +18,7 @@ export default {
|
|||||||
|
|
||||||
computed: {
|
computed: {
|
||||||
...mapState(['cacheProjects', 'wsOpenNum']),
|
...mapState(['cacheProjects', 'wsOpenNum']),
|
||||||
...mapGetters(['projectParameter']),
|
...mapGetters(['projectData']),
|
||||||
|
|
||||||
projectId() {
|
projectId() {
|
||||||
const {projectId} = this.$route.params;
|
const {projectId} = this.$route.params;
|
||||||
@ -46,12 +46,16 @@ export default {
|
|||||||
methods: {
|
methods: {
|
||||||
getProjectData() {
|
getProjectData() {
|
||||||
if (this.projectId <= 0) return;
|
if (this.projectId <= 0) return;
|
||||||
setTimeout(() => {
|
const projectId = this.projectId;
|
||||||
this.$store.state.projectId = $A.runNum(this.projectId);
|
this.$nextTick(() => {
|
||||||
this.$store.dispatch("getProjectOne", this.projectId).then(() => {
|
this.$store.state.projectId = projectId;
|
||||||
this.$store.dispatch("getColumns", this.projectId).catch(() => {});
|
this.$store.dispatch("getProjectOne", projectId).then(() => {
|
||||||
this.$store.dispatch("getTaskForProject", this.projectId).catch(() => {})
|
this.$store.dispatch("getColumns", projectId).catch(() => {});
|
||||||
|
this.$store.dispatch("getTaskForProject", projectId).catch(() => {})
|
||||||
}).catch(({msg}) => {
|
}).catch(({msg}) => {
|
||||||
|
if (projectId !== this.projectId) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
$A.modalWarning({
|
$A.modalWarning({
|
||||||
content: msg,
|
content: msg,
|
||||||
onOk: () => {
|
onOk: () => {
|
||||||
|
|||||||
50
resources/assets/js/store/getters.js
vendored
50
resources/assets/js/store/getters.js
vendored
@ -2,43 +2,27 @@ export default {
|
|||||||
/**
|
/**
|
||||||
* 当前打开的项目
|
* 当前打开的项目
|
||||||
* @param state
|
* @param state
|
||||||
* @returns {{}|{readonly id?: *}}
|
* @returns {{cacheParameter: {}}}
|
||||||
*/
|
*/
|
||||||
projectData(state) {
|
projectData(state) {
|
||||||
let projectId = state.projectId;
|
if (state.projectId > 0) {
|
||||||
if (projectId == 0) {
|
let data = state.cacheProjects.find(({id}) => id == state.projectId);
|
||||||
projectId = $A.runNum(window.__projectId);
|
if (data) {
|
||||||
}
|
let cacheParameter = state.cacheProjectParameter.find(({project_id}) => project_id == state.projectId);
|
||||||
if (projectId > 0) {
|
if (!cacheParameter) {
|
||||||
window.__projectId = projectId;
|
cacheParameter = $A.projectParameterTemplate(state.projectId)
|
||||||
const project = state.cacheProjects.find(({id}) => id == projectId);
|
state.cacheProjectParameter.push(cacheParameter);
|
||||||
if (project) {
|
}
|
||||||
return project;
|
if (cacheParameter.menuType === undefined) {
|
||||||
|
cacheParameter.menuType = 'column'
|
||||||
|
}
|
||||||
|
data.cacheParameter = cacheParameter;
|
||||||
|
return data;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return {};
|
return {
|
||||||
},
|
cacheParameter: {}
|
||||||
|
};
|
||||||
/**
|
|
||||||
* 当前打开的项目面板参数
|
|
||||||
* @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];
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user