diff --git a/resources/assets/js/pages/manage/components/project-list.vue b/resources/assets/js/pages/manage/components/project-list.vue
index d0bc645d4..b37fdb1ea 100644
--- a/resources/assets/js/pages/manage/components/project-list.vue
+++ b/resources/assets/js/pages/manage/components/project-list.vue
@@ -8,9 +8,17 @@
+
-
@@ -246,6 +256,345 @@
+
+
+
+ # Task name
+ Task Column
+ Priority
+ Member
+ Expiration
+
+
+
+
+
+
+ My task
+ (5)
+
+
+
+
+
+
+
+
+
+ Maxxis Tyres
+ 5
+ 5
+
+ Next Up
+ Important
+
+
+
+ 6 June, 2021
+
+
+
+
+ Maxxis Tyres
+ 5
+ 5
+
+ Next Up
+ Unimportance
+
+
+
+ 6 June, 2021
+
+
+
+
+ Maxxis Tyres
+ 5
+ 5
+
+ Next Up
+ Important
+
+
+
+ 6 June, 2021
+
+
+
+
+ Maxxis Tyres
+ 5
+ 5
+ 6
+
+ Next Up
+ Important
+
+
+
+ 6 June, 2021
+
+
+
+
+
+
+ Undone
+ (5)
+
+
+
+
+
+
+
+
+
+ Maxxis Tyres
+ 5
+ 5
+
+ Next Up
+ Unimportance
+
+
+
+ 6 June, 2021
+
+
+
+
+ Maxxis Tyres
+ 5
+ 5
+
+ Next Up
+ Unimportance
+
+
+
+ 6 June, 2021
+
+
+
+
+ Maxxis Tyres
+ 5
+ 5
+
+ Next Up
+ Important
+
+
+
+ 6 June, 2021
+
+
+
+
+ Maxxis Tyres
+ 5
+ 5
+
+ Next Up
+ Important
+
+
+
+ 6 June, 2021
+
+
+
+
+
+
+ Completed
+ (5)
+
+
+
+
+
+
+
+
+
+ Maxxis Tyres
+ 5
+ 5
+
+ Hi Progress
+ Important
+
+
+
+ 6 June, 2021
+
+
+
+
+ Maxxis Tyres
+ 5
+ 5
+
+ Hi Progress
+ Unimportance
+
+
+
+ 6 June, 2021
+
+
+
+
+ Maxxis Tyres
+ 5
+ 5
+
+ Hi Progress
+ Important
+
+
+
+ 6 June, 2021
+
+
+
+
+ Maxxis Tyres
+ 5
+ 5
+
+ Next Up
+ Unimportance
+
+
+
+ 6 June, 2021
+
+
+
@@ -297,6 +646,9 @@
background-color: #F2F3F5;
.ivu-icon {
font-size: 20px;
+ width: 36px;
+ height: 36px;
+ line-height: 36px;
}
.ivu-badge {
position: absolute;
@@ -304,6 +656,10 @@
left: 20px;
transform: scale(0.8);
}
+ &.active {
+ color: #ffffff;
+ background-color: #2d8cf0;
+ }
}
&.project-avatar {
.ivu-avatar {
@@ -449,10 +805,11 @@
width: 0;
display: flex;
align-items: center;
- margin-right: 12px;
+ overflow: auto;
+ margin-right: 24px;
> li {
list-style: none;
- margin-left: -5px;
+ margin-left: -6px;
&:first-child {
margin-left: 0;
}
@@ -515,20 +872,132 @@
}
}
}
+ .project-table {
+ height: 100%;
+ overflow-y: auto;
+ .project-row {
+ background-color: #ffffff;
+ border-bottom: 1px solid #F4F4F5;
+ > div {
+ display: flex;
+ align-items: center;
+ padding: 8px 12px;
+ border-right: 1px solid #F4F4F5;
+ &:first-child {
+ padding-left: 32px;
+ }
+ &:last-child {
+ border-right: 0;
+ }
+ }
+ }
+ .project-table-head,
+ .project-table-body {
+ margin: 0 32px 12px;
+ border-radius: 5px;
+ border: 1px solid #F4F4F5;
+ border-bottom: 0;
+ overflow: hidden;
+ }
+ .project-table-head {
+ .project-row {
+ > div {
+ color: #888888;
+ font-size: 13px;
+ font-weight: 500;
+ }
+ }
+ }
+ .project-table-body {
+ &:hover {
+ box-shadow: 0 0 10px #e6ecfa;
+ }
+ .project-row {
+ > div {
+ padding: 10px 12px;
+ &.row-title {
+ font-size: 14px;
+ font-weight: 500;
+ color: #333333;
+ padding-left: 14px;
+ .iconfont {
+ font-size: 12px;
+ }
+ .row-h1 {
+ padding-left: 18px;
+ }
+ .row-num {
+ color: #999999;
+ padding-left: 6px;
+ }
+ }
+ &.row-item {
+ padding-left: 20px;
+ .ivu-icon {
+ font-size: 16px;
+ color: #dddddd;
+ &.completed {
+ color: #87d068;
+ }
+ }
+ .item-title {
+ padding: 0 22px 0 10px;
+ }
+ .item-icon {
+ font-size: 12px;
+ margin-right: 6px;
+ color: #777777;
+ .ivu-icon,
+ .iconfont {
+ margin-left: 1px;
+ font-size: 14px;
+ color: #666666;
+ }
+ .iconfont {
+ color: #999999;
+ }
+ }
+ }
+ &.row-member {
+ > ul {
+ display: flex;
+ align-items: center;
+ overflow: auto;
+ margin-left: -4px;
+ > li {
+ list-style: none;
+ margin-left: -6px;
+ &:first-child {
+ margin-left: 0;
+ }
+ .ivu-avatar {
+ width: 28px;
+ height: 28px;
+ border: 2px solid #ffffff;
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
}
}
diff --git a/resources/assets/js/pages/manage/components/task-priority.vue b/resources/assets/js/pages/manage/components/task-priority.vue
new file mode 100644
index 000000000..e75736252
--- /dev/null
+++ b/resources/assets/js/pages/manage/components/task-priority.vue
@@ -0,0 +1,48 @@
+
+
+
+
+
+
+
diff --git a/resources/assets/js/store/mutations.js b/resources/assets/js/store/mutations.js
index 817a2b7c9..153fe50be 100644
--- a/resources/assets/js/store/mutations.js
+++ b/resources/assets/js/store/mutations.js
@@ -3,6 +3,12 @@ export default {
state.projectChatShow = !state.projectChatShow
state.setStorage('projectChatShow', state.projectChatShow);
},
+
+ toggleProjectListPanel(state) {
+ state.projectListPanel = !state.projectListPanel
+ state.setStorage('projectListPanel', state.projectListPanel);
+ },
+
setUserInfo(state, info) {
const userInfo = state._cloneJSON(info);
userInfo.userid = state._runNum(userInfo.userid);
diff --git a/resources/assets/js/store/state.js b/resources/assets/js/store/state.js
index fb1eed464..8da677d38 100644
--- a/resources/assets/js/store/state.js
+++ b/resources/assets/js/store/state.js
@@ -159,12 +159,16 @@ const stateCommon = {
};
const projectChatShow = stateCommon.getStorageBoolean('projectChatShow', true);
+const projectListPanel = stateCommon.getStorageBoolean('projectListPanel', true);
+
const userInfo = stateCommon.getStorageJson('userInfo');
const userToken = userInfo.token;
userInfo.userid = stateCommon._runNum(userInfo.userid);
export default Object.assign(stateCommon, {
projectChatShow,
+ projectListPanel,
+
userInfo,
userToken,
})
diff --git a/resources/assets/sass/app.scss b/resources/assets/sass/app.scss
index b20be79ab..929b60584 100644
--- a/resources/assets/sass/app.scss
+++ b/resources/assets/sass/app.scss
@@ -1,2 +1,3 @@
+@import "iconfont";
@import "loading";
@import "main";
diff --git a/resources/assets/sass/iconfont.scss b/resources/assets/sass/iconfont.scss
new file mode 100644
index 000000000..b7cdb3799
--- /dev/null
+++ b/resources/assets/sass/iconfont.scss
@@ -0,0 +1,15 @@
+@font-face {
+ font-family: 'iconfont'; /* Project id 2583385 */
+ src: url('//at.alicdn.com/t/font_2583385_eusvc29tdm5.woff2?t=1622518656789') format('woff2'),
+ url('//at.alicdn.com/t/font_2583385_eusvc29tdm5.woff?t=1622518656789') format('woff'),
+ url('//at.alicdn.com/t/font_2583385_eusvc29tdm5.ttf?t=1622518656789') format('truetype');
+}
+
+.iconfont {
+ font-family: "iconfont", "serif" !important;
+ font-size: 16px;
+ font-style: normal;
+ -webkit-font-smoothing: antialiased;
+ -webkit-text-stroke-width: 0.2px;
+ -moz-osx-font-smoothing: grayscale;
+}