diff --git a/resources/assets/js/pages/manage.vue b/resources/assets/js/pages/manage.vue index b8dab5af..a418e7c0 100644 --- a/resources/assets/js/pages/manage.vue +++ b/resources/assets/js/pages/manage.vue @@ -19,15 +19,15 @@
+
+ {{$L('隐藏已完成')}} +
@@ -68,7 +71,7 @@ :style="column.color ? {backgroundColor: column.color} : {}">
{{column.name}} - ({{column.project_task.length}}) + ({{panelTask(column.project_task).length}})
@@ -119,8 +122,8 @@ @sort="sortUpdate" @remove="sortUpdate">
@@ -447,6 +450,7 @@ export default { 'projectChatShow', 'projectTablePanel', + 'projectCompleteHide', 'taskMyShow', 'taskUndoneShow', 'taskCompletedShow' @@ -459,11 +463,16 @@ export default { }, panelTask() { - const {searchText} = this; + const {searchText, projectCompleteHide} = this; return function (project_task) { + if (projectCompleteHide) { + project_task = project_task.filter(({complete_at}) => { + return !complete_at; + }); + } if (searchText) { - return project_task.filter((task) => { - return $A.strExists(task.name, searchText) || $A.strExists(task.desc, searchText); + project_task = project_task.filter(({name, desc}) => { + return $A.strExists(name, searchText) || $A.strExists(desc, searchText); }); } return project_task; @@ -486,7 +495,15 @@ export default { } }); }); - return array; + return array.sort((a, b) => { + if (a.p_level != b.p_level) { + return a.p_level - b.p_level; + } + if (a.sort != b.sort) { + return a.sort - b.sort; + } + return a.id - b.id; + }); }, undoneList() { @@ -505,7 +522,15 @@ export default { } }); }); - return array; + return array.sort((a, b) => { + if (a.p_level != b.p_level) { + return a.p_level - b.p_level; + } + if (a.sort != b.sort) { + return a.sort - b.sort; + } + return a.id - b.id; + }); }, completedList() { @@ -524,7 +549,15 @@ export default { } }); }); - return array; + return array.sort((a, b) => { + if (a.p_level != b.p_level) { + return a.p_level - b.p_level; + } + if (a.sort != b.sort) { + return a.sort - b.sort; + } + return a.id - b.id; + }); }, expiresFormat() { @@ -973,6 +1006,28 @@ export default { this.$store.dispatch("toggleBoolean", type); }, + taskHidden(task) { + const {name, desc, complete_at} = task; + const {searchText, projectCompleteHide} = this; + if (projectCompleteHide) { + if (complete_at) { + return true; + } + } + if (searchText) { + if (!($A.strExists(name, searchText) || $A.strExists(desc, searchText))) { + return true; + } + } + return false; + }, + + sortBy(field) { + return function (a, b) { + return a[field] - b[field]; + } + }, + formatTime(date) { let time = Math.round(new Date(date).getTime() / 1000), string = ''; diff --git a/resources/assets/js/pages/manage/messenger.vue b/resources/assets/js/pages/manage/messenger.vue index 509dd58c..21fe372b 100644 --- a/resources/assets/js/pages/manage/messenger.vue +++ b/resources/assets/js/pages/manage/messenger.vue @@ -22,8 +22,8 @@ :class="{active: dialog.id == dialogId}" @click="openDialog(dialog, true)">
diff --git a/resources/assets/js/store/state.js b/resources/assets/js/store/state.js index b4cf65f3..15691be9 100644 --- a/resources/assets/js/store/state.js +++ b/resources/assets/js/store/state.js @@ -228,6 +228,7 @@ const state = { method }; [ 'projectChatShow', // 项目聊天显示 'projectTablePanel', // 项目面板显示类型 + 'projectCompleteHide', // 项目面板显示已完成列表 'taskMyShow', // 项目面板显示我的任务 'taskUndoneShow', // 项目面板显示未完成任务 'taskCompletedShow' // 项目面板显示已完成任务 diff --git a/resources/assets/sass/iconfont.scss b/resources/assets/sass/iconfont.scss index 7776b932..82cf5e15 100644 --- a/resources/assets/sass/iconfont.scss +++ b/resources/assets/sass/iconfont.scss @@ -1,8 +1,8 @@ @font-face { font-family: 'iconfont'; /* Project id 2583385 */ - src: url('//at.alicdn.com/t/font_2583385_acaq8xa48dj.woff2?t=1623513995409') format('woff2'), - url('//at.alicdn.com/t/font_2583385_acaq8xa48dj.woff?t=1623513995409') format('woff'), - url('//at.alicdn.com/t/font_2583385_acaq8xa48dj.ttf?t=1623513995409') format('truetype'); + src: url('//at.alicdn.com/t/font_2583385_cz486uauxcg.woff2?t=1623761047200') format('woff2'), + url('//at.alicdn.com/t/font_2583385_cz486uauxcg.woff?t=1623761047200') format('woff'), + url('//at.alicdn.com/t/font_2583385_cz486uauxcg.ttf?t=1623761047200') format('truetype'); } .iconfont { diff --git a/resources/assets/sass/pages/components/project-list.scss b/resources/assets/sass/pages/components/project-list.scss index 5364cabe..808c8972 100644 --- a/resources/assets/sass/pages/components/project-list.scss +++ b/resources/assets/sass/pages/components/project-list.scss @@ -61,18 +61,22 @@ &.project-icon { border-radius: 50%; background-color: #F2F3F5; - .ivu-icon { + .menu-icon { font-size: 20px; width: 36px; height: 36px; line-height: 36px; } - .ivu-badge { + .menu-badge { position: absolute; top: -6px; left: 20px; transform: scale(0.8); } + .search-input { + margin: 2px 0; + width: 170px; + } &.active { color: #ffffff; background-color: #2d8cf0; @@ -84,6 +88,12 @@ display: flex; justify-content: flex-end; margin-top: 24px; + .project-checkbox { + display: flex; + align-items: center; + margin-right: 14px; + opacity: 0.9; + } .project-switch-button { display: flex; align-items: center; @@ -279,14 +289,13 @@ overflow-x: hidden; overflow-y: auto; .task-list { - flex: 1; - height: 0; - display: flex; - flex-direction: column; + > div:last-child { + margin-bottom: 16px; + } } .task-item { cursor: pointer; - margin: 0 10px 16px; + margin: 16px 10px 0; background-color: #ffffff; border-radius: 12px; padding: 12px; @@ -295,9 +304,6 @@ &:hover { box-shadow: 0 0 10px #e6ecfa; } - &:first-child { - margin-top: 16px; - } .task-head { display: flex; align-items: flex-start; @@ -449,6 +455,9 @@ display: none; } } + &.hidden { + display: none; + } } } } diff --git a/resources/assets/sass/pages/page-manage.scss b/resources/assets/sass/pages/page-manage.scss index f99242fd..1561d125 100644 --- a/resources/assets/sass/pages/page-manage.scss +++ b/resources/assets/sass/pages/page-manage.scss @@ -85,10 +85,9 @@ padding: 0 4%; border-radius: 4px; > i { - opacity: 0.5; - font-size: 22px; + opacity: 0.3; + font-size: 20px; margin-right: 10px; - margin-top: -1px; } .menu-title { flex: 1; diff --git a/resources/assets/sass/pages/page-messenger.scss b/resources/assets/sass/pages/page-messenger.scss index 197607ca..3903e484 100644 --- a/resources/assets/sass/pages/page-messenger.scss +++ b/resources/assets/sass/pages/page-messenger.scss @@ -76,27 +76,11 @@ > li { display: flex; flex-direction: row; - align-items: center; - height: 80px; - padding: 0 12px; + align-items: flex-start; + padding: 16px 12px; position: relative; cursor: pointer; list-style: none; - &.active { - background-color: #F4F5F7; - } - &.loading { - margin: 0; - height: 52px; - display: flex; - align-items: center; - justify-content: center; - .common-loading { - width: 20px; - height: 20px; - margin: 0; - } - } .user-avatar, .icon-avatar { width: 46px; @@ -105,16 +89,18 @@ flex-shrink: 0; } .icon-avatar { - line-height: 46px; + display: flex; + align-items: center; + justify-content: center; border-radius: 50%; font-size: 26px; background-color: #61B2F9; color: #ffffff; &.project { - background-color: #7274E3; + background-color: #6E99EB; } &.task { - background-color: #4EA3F4; + background-color: #9B96DF; font-size: 24px; } } @@ -170,6 +156,21 @@ font-size: 12px; transform: scale(0.8); } + &.active { + background-color: #F4F5F7; + } + &.loading { + margin: 0; + height: 52px; + display: flex; + align-items: center; + justify-content: center; + .common-loading { + width: 20px; + height: 20px; + margin: 0; + } + } } } &.contacts {