From 56be4f5f38079913f4a687f27e4feae4194d475a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=8F=E6=9E=97=E5=9B=9D?= Date: Thu, 6 Aug 2020 15:05:58 +0800 Subject: [PATCH 1/8] =?UTF-8?q?=20-=20=E4=BC=98=E5=8C=96=E6=89=8B=E6=9C=BA?= =?UTF-8?q?=E7=AB=AF=E6=98=BE=E7=A4=BA=20=20-=20=E4=BF=AE=E5=A4=8D?= =?UTF-8?q?=E4=B8=80=E4=BA=9B=E7=BB=86=E8=8A=82=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/assets/css/components/base.less | 46 +- src/assets/css/components/layout.less | 215 +- src/assets/css/components/list.less | 154 +- src/assets/css/components/warpperContent.less | 53 +- src/assets/js/http.js | 1 + src/components/layout/UserLayout.vue | 279 +-- src/components/layout/WrapperContent.vue | 252 ++- src/components/layout/header/HeaderAvatar.vue | 224 ++- src/components/layout/header/HeaderNotice.vue | 468 ++--- .../project/inviteProjectMember.vue | 388 ++-- src/components/project/projectConfig.vue | 1792 +++++++++-------- src/store/state.js | 2 +- src/views/home/index.vue | 1338 ++++++------ src/views/index.vue | 744 +++---- src/views/member/Register.vue | 644 +++--- src/views/member/login.vue | 836 ++++---- src/views/members/index.vue | 1 - src/views/organization/index.vue | 419 ++-- src/views/project/archive/index.vue | 318 +-- src/views/project/list/index.vue | 829 ++++---- src/views/project/recycle/index.vue | 3 +- 21 files changed, 4822 insertions(+), 4184 deletions(-) diff --git a/src/assets/css/components/base.less b/src/assets/css/components/base.less index 08ff6e3..2b76236 100644 --- a/src/assets/css/components/base.less +++ b/src/assets/css/components/base.less @@ -1,9 +1,11 @@ body { overflow: hidden; } -.ant-layout{ + +.ant-layout { background: #f5f5f5; } + .pull-right { float: right; } @@ -96,7 +98,8 @@ body { } } -.group-btn, .submit-set { +.group-btn, +.submit-set { .cancel-text { margin-right: 12px; } @@ -173,7 +176,9 @@ body { } &.price { - .editable-cell-input-wrapper, .editable-cell-text-wrapper { + + .editable-cell-input-wrapper, + .editable-cell-text-wrapper { padding-left: 15px; } } @@ -220,7 +225,13 @@ body { } .wangEditor-txt { - h1, h2, h3, h4, h5, h6 { + + h1, + h2, + h3, + h4, + h5, + h6 { font-weight: bold; } } @@ -319,7 +330,7 @@ body { color: #383838; } -.project-navigation .ivu-breadcrumb > span:last-child { +.project-navigation .ivu-breadcrumb>span:last-child { font-weight: normal; } @@ -361,17 +372,17 @@ body { justify-content: center; } -.project-navigation .nav-body .nav-wrapper.nav > li { +.project-navigation .nav-body .nav-wrapper.nav>li { z-index: 2; padding: 0 20px; } -.project-navigation .nav-underscore > li { +.project-navigation .nav-underscore>li { list-style: none; float: left; } -.project-navigation .nav-underscore > li a { +.project-navigation .nav-underscore>li a { display: inline-block; position: relative; height: 50px; @@ -382,7 +393,7 @@ body { font-weight: normal; } -.project-navigation .nav-body .nav-wrapper.nav > li .app[data-app=tasks] { +.project-navigation .nav-body .nav-wrapper.nav>li .app[data-app=tasks] { position: relative; float: left; max-width: 200px; @@ -391,11 +402,11 @@ body { white-space: nowrap; } -.project-navigation .nav-underscore > li > a:hover { +.project-navigation .nav-underscore>li>a:hover { background-color: inherit; } -.project-navigation .nav-underscore > li > a:after { +.project-navigation .nav-underscore>li>a:after { position: absolute; left: 0; bottom: 0; @@ -406,7 +417,8 @@ body { opacity: 0; } -.project-navigation .nav-underscore > li > a:hover:after, .project-navigation .nav-underscore > .actives > a:after { +.project-navigation .nav-underscore>li>a:hover:after, +.project-navigation .nav-underscore>.actives>a:after { border-width: 3px; opacity: 1; } @@ -416,3 +428,13 @@ body { background: hsla(0, 0%, 100%, .95); } } + + +.ant-tabs-bar { + margin: 1rem 1rem 0.5rem; +} + +.ant-table-thead{ + white-space: nowrap; + word-break: keep-all; +} \ No newline at end of file diff --git a/src/assets/css/components/layout.less b/src/assets/css/components/layout.less index c61be7f..69cce27 100644 --- a/src/assets/css/components/layout.less +++ b/src/assets/css/components/layout.less @@ -1,38 +1,74 @@ +.ant-layout-content { + overflow: auto; +} + #layout { height: 100vh; .ant-layout-header { + user-select: none; background: #fff; padding: 0; - line-height: 85px; + line-height: 4rem; position: fixed; width: 100%; top: 0; z-index: 5; //box-shadow: 0 1px 4px rgba(0, 21, 41, .08); - box-shadow: 0 0 8px 0 rgba(0,0,0,.1); + box-shadow: 0 0 8px 0 rgba(0, 0, 0, .1); + display: flex; + justify-content: space-between; + align-items: stretch; + ul { border-bottom: none; + flex: 1 0; + background: unset; + max-width: 50%; + + li { + display: inline-block; + vertical-align: middle; + margin-top: 0px; + top: 0; + height: 100%; + line-height: 4rem; + } + } + + .left-menudrawer { + color: #fff; + + :hover { + color: darken(#fff, 6%); + } + } + + .wap-menu { + display: none; + visibility: hidden; + + .action-more { + width: 3rem; + text-align: center; + height: 100%; + padding: 0; + } } } .logo { - height: 32px; padding: 16px; text-align: center; box-sizing: content-box; transition: all .2s; - width: 224px; - float: left; line-height: 1.4; background: initial; color: #FFF; cursor: pointer; + .logo-img { width: 30px; - position: absolute; - left: 35px; - top: 15px; transition: all .2s; } @@ -40,36 +76,28 @@ color: inherit; font-size: 20px; position: relative; + .version { color: inherit; - position: absolute; - right: -25px; font-size: 14px; } } } .right-menu { - position: absolute; - right: 12px; - top: 0; - height: 100%; - line-height: 66px; color: #FFF; display: flex; + flex: 1 0; + justify-content: flex-end; .action { cursor: pointer; - //display: inline-block; transition: all .2s; padding: 0 6px; - height: 65px; .anticon { font-size: 16px; - //vertical-align: middle; color: #FFF; - //color: rgba(0, 0, 0, .65); } .action-item { @@ -78,12 +106,8 @@ position: relative; &.user-info { - padding-left: 52px; - .ant-avatar { - position: absolute; - left: 12px; - top: 18px; + margin-right: 0.5rem; } } } @@ -105,23 +129,16 @@ } .ant-layout-sider { - z-index: 2; - overflow: auto; - width: 256px !important; - max-width: 256px !important; + user-select: none; + z-index: 3; + width: 256px; + max-width: 256px; height: 100vh; position: fixed; left: 0; box-shadow: 2px 0 8px 0 rgba(29, 35, 41, .05); &.ant-layout-sider-collapsed { - width: 80px !important; - max-width: 80px !important; - - .ant-layout-sider-trigger { - width: 80px !important; - } - .logo { .title { display: none; @@ -129,30 +146,39 @@ } } - .ant-layout-sider-trigger { - width: 256px !important; + .ant-layout-sider-zero-width-trigger { + bottom: 8rem; + top: auto; + right: -42px; + width: 42px; + color: initial; + box-shadow: #eaeaea 2px 1px 2px 1px; + background: #ffffff; + border-radius: 0 0.8rem 0.8rem 0; } - } - .maint-content{ - .ant-layout-content{ + .maint-content { + .ant-layout-content { border-top: 1px solid #e8e8e8; } } + .main-content { + &.toleft { + padding-left: 200px; + } + } + .ant-layout-footer { margin: 0 6px; padding: 0 50px 12px 50px; } - .ant-layout-header.collapsed{ - .logo{ - width: 48px; - .logo-img{ - left: 27px; - } - .title{ + .ant-layout-header.collapsed { + .logo { + + .title { display: none; } } @@ -160,28 +186,33 @@ &.layout-light { .ant-layout-header { + //background-color: #2b83f9; + //background-image: linear-gradient(143deg,#2945cb 20%,#2b83f9 81%,#3a9dff); + //background-image: linear-gradient(143deg, #2945cb 20%, #1890ff 81%, #3a9dff); + background-image: linear-gradient(143deg, #e12f3f 20%, #f79275 81%, #FFC107); + border-bottom: none; + ul { - //background-color: #2b83f9; - //background-image: linear-gradient(143deg,#2945cb 20%,#2b83f9 81%,#3a9dff); - //background-image: linear-gradient(143deg, #2945cb 20%, #1890ff 81%, #3a9dff); - background-image: linear-gradient(143deg, #e12f3f 20%, #f79275 81%, #FFC107); - border-bottom: none; li { border-bottom: none; - span, i { + span, + i { color: #FFF; //opacity: .69; } &:hover { - span, i { + + span, + i { opacity: 1; } } - &.ant-menu-item-selected, &.ant-menu-item-active { + &.ant-menu-item-selected, + &.ant-menu-item-active { color: #1890ff; background: rgba(0, 0, 0, 0.08); } @@ -191,8 +222,12 @@ .ant-layout-sider { background: #FFF; - .ant-layout-sider-children{ - .ant-menu-inline, .ant-menu-vertical, .ant-menu-vertical-left { + + .ant-layout-sider-children { + + .ant-menu-inline, + .ant-menu-vertical, + .ant-menu-vertical-left { border-right: none; } } @@ -216,10 +251,10 @@ &.layout-dark { .ant-layout-header { - ul { - background-color: #fff; - background-image: none; - } + background-color: #fff; + background-image: none; + + ul {} } .logo { @@ -228,7 +263,11 @@ box-shadow: 2px 0 6px rgba(0, 21, 41, .35); } - .ant-layout-sider{ + .left-menudrawer { + color: initial; + } + + .ant-layout-sider { box-shadow: 2px 0 6px rgba(0, 21, 41, .35); } @@ -242,21 +281,18 @@ .action-item { &.user-info { - .ant-avatar { - } + .ant-avatar {} } } &:hover { - background: rgba(0,0,0,.025); + background: rgba(0, 0, 0, .025); //background: #e6f7ff; } - &.action-avatar { - } + &.action-avatar {} - &.action-organization { - } + &.action-organization {} } } @@ -280,6 +316,7 @@ } .trigger { + user-select: none; font-size: 18px; line-height: 64px; padding: 0 24px; @@ -294,9 +331,11 @@ } .middle-menu { + user-select: none; padding: 4px 0; - .ant-dropdown-menu-item-divider, .ant-dropdown-menu-submenu-title-divider { + .ant-dropdown-menu-item-divider, + .ant-dropdown-menu-submenu-title-divider { margin: 4px 0; } @@ -314,3 +353,39 @@ .__vuescroll .__rail-is-vertical { z-index: 3; } + +@media (max-width:768px) { + #layout { + .main-content.toleft { + padding-left: 0px; + } + + + .ant-layout-sider-zero-width-trigger { + visibility: hidden; + } + + .ant-layout-header { + .logo { + .title { + display: none; + } + } + + .pc-view { + white-space: nowrap; + display: none; + + .action-notice { + display: none; + } + } + + .wap-menu { + display: block; + visibility: visible; + flex: 0; + } + } + } +} \ No newline at end of file diff --git a/src/assets/css/components/list.less b/src/assets/css/components/list.less index 51511bd..bf25d48 100644 --- a/src/assets/css/components/list.less +++ b/src/assets/css/components/list.less @@ -8,18 +8,20 @@ } .ant-list-item-content { - .other-info { + &.other-info { display: flex; .info-item { display: flex; flex-direction: column; - padding-left: 48px; + padding-left: 1.5rem; } } } .ant-list-item-action { + margin-left: 1.5rem; + .anticon:hover { svg { color: @primary-color; @@ -27,3 +29,151 @@ } } } + +.project-list { + .ant-list-item { + padding: 1rem 0 1rem; + background: #fff; + } + + .ant-list-item-meta { + margin-left: 1rem; + margin-right: 1rem; + + .ant-list-item-meta-description { + font-size: 0.8rem; + line-height: 1.75; + } + } + + .ant-list-item-meta-avatar { + .ant-avatar { + width: 50px; + height: 50px; + border-radius: 3px; + } + } + + .ant-list-item-content { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-flex: 1; + -ms-flex: 1; + flex: 1; + -webkit-box-pack: end; + -ms-flex-pack: end; + justify-content: flex-end; + + &.schedule { + margin-left: 1rem; + margin-right: 1rem; + + .info-item { + flex: 1; + padding: 0 1rem; + } + } + + &.other-info { + display: flex; + font-size: 0.8rem; + flex: 0; + + margin-left: 1rem; + margin-right: 1rem; + + .info-item { + display: flex; + flex-direction: column; + word-break: keep-all; + + &:nth-child(n+2) { + padding-left: 1.5rem; + } + } + } + } + + .ant-list-item-action { + margin-left: 1rem; + margin-right: 1rem; + + >*:hover { + svg { + color: @primary-color; + } + } + } +} + +@media (max-width: 930px) { + .project-list { + .ant-list-item { + padding: 1rem 0 0; + flex-direction: column; + align-items: stretch; + + >*:nth-child(n+2) { + margin-top: 0.2rem; + } + + .ant-list-item-meta { + margin-bottom: 0.8rem; + } + + .ant-list-item-content { + + &.schedule { + + .info-item {} + } + + &.other-info { + justify-content: space-around; + + .info-item {} + } + } + + .ant-list-item-action { + display: flex; + justify-content: space-around; + margin-left: 0; + margin-right: 0; + align-items: stretch; + margin-top: 0.5rem; + + >li { + flex: 1; + padding: 0.5rem; + + &:active { + background: linear-gradient(0deg, lighten(#000, 96%), transparent); + } + } + + } + } + } +} + +@media(max-width: 430px) { + .project-list { + .ant-list-item { + .ant-list-item-meta { + flex-direction: column; + align-items: stretch; + + .ant-list-item-meta-avatar { + margin: 0 0 0.5rem; + + .ant-avatar { + width: 100%; + height: 100px; + } + } + } + } + } +} \ No newline at end of file diff --git a/src/assets/css/components/warpperContent.less b/src/assets/css/components/warpperContent.less index f15cf5e..821f75f 100644 --- a/src/assets/css/components/warpperContent.less +++ b/src/assets/css/components/warpperContent.less @@ -6,6 +6,7 @@ font-weight: 400; //border-bottom: 1px solid #e5e5e5; } + .content-title { font-size: 18px; color: #464c5b; @@ -21,81 +22,88 @@ float: right; } -.content-action + .page-title { +.content-action+.page-title { //padding-top: 55px; } -.page-header{ + +.page-header { //margin-top: 65px; background: #fff; padding: 16px 32px 0; border-bottom: 1px solid #e8e8e8; - .breadcrumb{ + + .breadcrumb { margin-bottom: 16px; } - .detail{ + + .detail { display: flex; + .row { display: flex; width: 100%; } - .main{ + + .main { width: 100%; flex: 0 1 auto; - .title{ + + .title { flex: auto; font-size: 20px; font-weight: 500; - color: rgba(0,0,0,.85); + color: rgba(0, 0, 0, .85); margin-bottom: 16px; } - .logo{ + + .logo { width: 28px; height: 28px; border-radius: 4px; margin-right: 16px; } - .content{ + + .content { margin-bottom: 16px; flex: auto; } - .extra{ + + .extra { flex: 0 1 auto; margin-left: 88px; min-width: 242px; text-align: right; } - .action{ - margin-left: 56px; - min-width: 266px; + + .action { flex: 0 1 auto; text-align: right; } } } } -.page-header-none{ + +.page-header-none { padding: 0; border-bottom: none; } .wrapper-main { - margin: 24px; - padding: 24px 0 12px 24px; + margin: 2rem; + padding: 1rem; background: rgb(255, 255, 255); } .wrapper-content { - width: 100%; - padding-right: 24px; transition: all 368ms; - .action{ + + .action { padding-bottom: 12px; line-height: 3; } } -.layout-content { -} +.layout-content {} .page-search { margin-bottom: 16px; @@ -142,5 +150,4 @@ text-align: center; padding: 10px 0 20px; color: #9ea7b4; -} - +} \ No newline at end of file diff --git a/src/assets/js/http.js b/src/assets/js/http.js index 5e58b88..3327f62 100644 --- a/src/assets/js/http.js +++ b/src/assets/js/http.js @@ -14,6 +14,7 @@ if (currentOrganization) { } const crossDomain = config.crossDomain; let axiosConfig = {}; +axiosConfig.baseURL = '/api'// process.env.VUE_APP_API_URL; if (crossDomain) { axiosConfig.withCredentials = true; axiosConfig.crossDomain = true; diff --git a/src/components/layout/UserLayout.vue b/src/components/layout/UserLayout.vue index 0f5ba9a..6f044b3 100644 --- a/src/components/layout/UserLayout.vue +++ b/src/components/layout/UserLayout.vue @@ -1,151 +1,156 @@ diff --git a/src/components/layout/WrapperContent.vue b/src/components/layout/WrapperContent.vue index ec9c375..45b0cfb 100644 --- a/src/components/layout/WrapperContent.vue +++ b/src/components/layout/WrapperContent.vue @@ -1,144 +1,138 @@ diff --git a/src/components/layout/header/HeaderAvatar.vue b/src/components/layout/header/HeaderAvatar.vue index dfd7a5d..4b3f102 100644 --- a/src/components/layout/header/HeaderAvatar.vue +++ b/src/components/layout/header/HeaderAvatar.vue @@ -1,86 +1,166 @@ diff --git a/src/components/layout/header/HeaderNotice.vue b/src/components/layout/header/HeaderNotice.vue index b4676ba..6c91f54 100644 --- a/src/components/layout/header/HeaderNotice.vue +++ b/src/components/layout/header/HeaderNotice.vue @@ -1,70 +1,80 @@ + + + + + + diff --git a/src/components/project/inviteProjectMember.vue b/src/components/project/inviteProjectMember.vue index e6c7097..612edd3 100644 --- a/src/components/project/inviteProjectMember.vue +++ b/src/components/project/inviteProjectMember.vue @@ -1,202 +1,210 @@ diff --git a/src/components/project/projectConfig.vue b/src/components/project/projectConfig.vue index 3418d0f..26d140c 100644 --- a/src/components/project/projectConfig.vue +++ b/src/components/project/projectConfig.vue @@ -1,897 +1,987 @@ +
+
+ - - + + + + + + + 更多 + +
+
+
+

项目操作

+
您可以执行以下操作
+ + 取消归档 + 归档项目 + + 退出 + + 恢复项目 + 移至回收站 + +
+
+
+
+ diff --git a/src/store/state.js b/src/store/state.js index dcaa98d..c7bfbad 100644 --- a/src/store/state.js +++ b/src/store/state.js @@ -3,7 +3,7 @@ import {getStore} from "../assets/js/storage"; const userInfo = getStore('userInfo', true); const theme = getStore('theme'); export default { - theme: theme ? theme : 'dark', + theme: theme ? theme : 'light', logged: !!userInfo,//登录状态 userInfo: userInfo,//用户信息 organizationList: getStore('organizationList', true),//能查看的组织列表 diff --git a/src/views/home/index.vue b/src/views/home/index.vue index 05c4cc0..b97b0f1 100644 --- a/src/views/home/index.vue +++ b/src/views/home/index.vue @@ -1,610 +1,772 @@ + + + + diff --git a/src/views/index.vue b/src/views/index.vue index 34f8b98..ef843a7 100644 --- a/src/views/index.vue +++ b/src/views/index.vue @@ -1,369 +1,407 @@ diff --git a/src/views/member/Register.vue b/src/views/member/Register.vue index 182ce40..760d671 100644 --- a/src/views/member/Register.vue +++ b/src/views/member/Register.vue @@ -1,330 +1,340 @@ diff --git a/src/views/member/login.vue b/src/views/member/login.vue index 79087ed..9c21cfe 100644 --- a/src/views/member/login.vue +++ b/src/views/member/login.vue @@ -1,112 +1,119 @@ diff --git a/src/views/members/index.vue b/src/views/members/index.vue index d41c3fa..11aada0 100644 --- a/src/views/members/index.vue +++ b/src/views/members/index.vue @@ -530,7 +530,6 @@ .left { padding: 12px 24px 12px 0; width: 280px; - height: 85vh; .left-content { width: 255px; diff --git a/src/views/organization/index.vue b/src/views/organization/index.vue index cbdd944..ff87fc7 100644 --- a/src/views/organization/index.vue +++ b/src/views/organization/index.vue @@ -1,40 +1,43 @@ diff --git a/src/views/project/archive/index.vue b/src/views/project/archive/index.vue index b7d670e..1e82e36 100644 --- a/src/views/project/archive/index.vue +++ b/src/views/project/archive/index.vue @@ -1,172 +1,172 @@ diff --git a/src/views/project/list/index.vue b/src/views/project/list/index.vue index a14da16..c0c7d87 100644 --- a/src/views/project/list/index.vue +++ b/src/views/project/list/index.vue @@ -1,454 +1,405 @@ - diff --git a/src/views/project/recycle/index.vue b/src/views/project/recycle/index.vue index 18a2906..fa65db7 100644 --- a/src/views/project/recycle/index.vue +++ b/src/views/project/recycle/index.vue @@ -77,8 +77,7 @@ this.pagination.pageSize = 100; this.showLoadingMore = false; } - this.requestData.recycle = 1; - this.requestData.type = 'other'; + this.requestData.selectBy = 'deleted'; app.loading = true; list(app.requestData).then(res => { app.dataSource = app.dataSource.concat(res.data.list); -- Gitee From 03cc0216669827d3fb1e3d562b77213bd1b2ca44 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=8F=E6=9E=97=E5=9B=9D?= Date: Thu, 6 Aug 2020 15:05:58 +0800 Subject: [PATCH 2/8] =?UTF-8?q?=20-=20=E4=BC=98=E5=8C=96=E6=89=8B=E6=9C=BA?= =?UTF-8?q?=E7=AB=AF=E6=98=BE=E7=A4=BA=20=20-=20=E4=BF=AE=E5=A4=8D?= =?UTF-8?q?=E4=B8=80=E4=BA=9B=E7=BB=86=E8=8A=82=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- public/index.html | 4 +- src/assets/css/components/base.less | 46 +- src/assets/css/components/layout.less | 215 +- src/assets/css/components/list.less | 154 +- src/assets/css/components/warpperContent.less | 53 +- src/assets/js/http.js | 1 + src/components/layout/UserLayout.vue | 279 +-- src/components/layout/WrapperContent.vue | 252 ++- src/components/layout/header/HeaderAvatar.vue | 224 ++- src/components/layout/header/HeaderNotice.vue | 468 ++--- .../project/inviteProjectMember.vue | 388 ++-- src/components/project/projectConfig.vue | 1792 +++++++++-------- src/store/state.js | 2 +- src/views/home/index.vue | 1338 ++++++------ src/views/index.vue | 744 +++---- src/views/member/Register.vue | 644 +++--- src/views/member/login.vue | 836 ++++---- src/views/members/index.vue | 1 - src/views/organization/index.vue | 419 ++-- src/views/project/archive/index.vue | 318 +-- src/views/project/list/index.vue | 829 ++++---- src/views/project/recycle/index.vue | 3 +- 22 files changed, 4824 insertions(+), 4186 deletions(-) diff --git a/public/index.html b/public/index.html index 6ea539e..3b76c9b 100644 --- a/public/index.html +++ b/public/index.html @@ -2,9 +2,9 @@ - + - Pear Project + 项目管理系统
diff --git a/src/assets/css/components/base.less b/src/assets/css/components/base.less index 08ff6e3..2b76236 100644 --- a/src/assets/css/components/base.less +++ b/src/assets/css/components/base.less @@ -1,9 +1,11 @@ body { overflow: hidden; } -.ant-layout{ + +.ant-layout { background: #f5f5f5; } + .pull-right { float: right; } @@ -96,7 +98,8 @@ body { } } -.group-btn, .submit-set { +.group-btn, +.submit-set { .cancel-text { margin-right: 12px; } @@ -173,7 +176,9 @@ body { } &.price { - .editable-cell-input-wrapper, .editable-cell-text-wrapper { + + .editable-cell-input-wrapper, + .editable-cell-text-wrapper { padding-left: 15px; } } @@ -220,7 +225,13 @@ body { } .wangEditor-txt { - h1, h2, h3, h4, h5, h6 { + + h1, + h2, + h3, + h4, + h5, + h6 { font-weight: bold; } } @@ -319,7 +330,7 @@ body { color: #383838; } -.project-navigation .ivu-breadcrumb > span:last-child { +.project-navigation .ivu-breadcrumb>span:last-child { font-weight: normal; } @@ -361,17 +372,17 @@ body { justify-content: center; } -.project-navigation .nav-body .nav-wrapper.nav > li { +.project-navigation .nav-body .nav-wrapper.nav>li { z-index: 2; padding: 0 20px; } -.project-navigation .nav-underscore > li { +.project-navigation .nav-underscore>li { list-style: none; float: left; } -.project-navigation .nav-underscore > li a { +.project-navigation .nav-underscore>li a { display: inline-block; position: relative; height: 50px; @@ -382,7 +393,7 @@ body { font-weight: normal; } -.project-navigation .nav-body .nav-wrapper.nav > li .app[data-app=tasks] { +.project-navigation .nav-body .nav-wrapper.nav>li .app[data-app=tasks] { position: relative; float: left; max-width: 200px; @@ -391,11 +402,11 @@ body { white-space: nowrap; } -.project-navigation .nav-underscore > li > a:hover { +.project-navigation .nav-underscore>li>a:hover { background-color: inherit; } -.project-navigation .nav-underscore > li > a:after { +.project-navigation .nav-underscore>li>a:after { position: absolute; left: 0; bottom: 0; @@ -406,7 +417,8 @@ body { opacity: 0; } -.project-navigation .nav-underscore > li > a:hover:after, .project-navigation .nav-underscore > .actives > a:after { +.project-navigation .nav-underscore>li>a:hover:after, +.project-navigation .nav-underscore>.actives>a:after { border-width: 3px; opacity: 1; } @@ -416,3 +428,13 @@ body { background: hsla(0, 0%, 100%, .95); } } + + +.ant-tabs-bar { + margin: 1rem 1rem 0.5rem; +} + +.ant-table-thead{ + white-space: nowrap; + word-break: keep-all; +} \ No newline at end of file diff --git a/src/assets/css/components/layout.less b/src/assets/css/components/layout.less index c61be7f..69cce27 100644 --- a/src/assets/css/components/layout.less +++ b/src/assets/css/components/layout.less @@ -1,38 +1,74 @@ +.ant-layout-content { + overflow: auto; +} + #layout { height: 100vh; .ant-layout-header { + user-select: none; background: #fff; padding: 0; - line-height: 85px; + line-height: 4rem; position: fixed; width: 100%; top: 0; z-index: 5; //box-shadow: 0 1px 4px rgba(0, 21, 41, .08); - box-shadow: 0 0 8px 0 rgba(0,0,0,.1); + box-shadow: 0 0 8px 0 rgba(0, 0, 0, .1); + display: flex; + justify-content: space-between; + align-items: stretch; + ul { border-bottom: none; + flex: 1 0; + background: unset; + max-width: 50%; + + li { + display: inline-block; + vertical-align: middle; + margin-top: 0px; + top: 0; + height: 100%; + line-height: 4rem; + } + } + + .left-menudrawer { + color: #fff; + + :hover { + color: darken(#fff, 6%); + } + } + + .wap-menu { + display: none; + visibility: hidden; + + .action-more { + width: 3rem; + text-align: center; + height: 100%; + padding: 0; + } } } .logo { - height: 32px; padding: 16px; text-align: center; box-sizing: content-box; transition: all .2s; - width: 224px; - float: left; line-height: 1.4; background: initial; color: #FFF; cursor: pointer; + .logo-img { width: 30px; - position: absolute; - left: 35px; - top: 15px; transition: all .2s; } @@ -40,36 +76,28 @@ color: inherit; font-size: 20px; position: relative; + .version { color: inherit; - position: absolute; - right: -25px; font-size: 14px; } } } .right-menu { - position: absolute; - right: 12px; - top: 0; - height: 100%; - line-height: 66px; color: #FFF; display: flex; + flex: 1 0; + justify-content: flex-end; .action { cursor: pointer; - //display: inline-block; transition: all .2s; padding: 0 6px; - height: 65px; .anticon { font-size: 16px; - //vertical-align: middle; color: #FFF; - //color: rgba(0, 0, 0, .65); } .action-item { @@ -78,12 +106,8 @@ position: relative; &.user-info { - padding-left: 52px; - .ant-avatar { - position: absolute; - left: 12px; - top: 18px; + margin-right: 0.5rem; } } } @@ -105,23 +129,16 @@ } .ant-layout-sider { - z-index: 2; - overflow: auto; - width: 256px !important; - max-width: 256px !important; + user-select: none; + z-index: 3; + width: 256px; + max-width: 256px; height: 100vh; position: fixed; left: 0; box-shadow: 2px 0 8px 0 rgba(29, 35, 41, .05); &.ant-layout-sider-collapsed { - width: 80px !important; - max-width: 80px !important; - - .ant-layout-sider-trigger { - width: 80px !important; - } - .logo { .title { display: none; @@ -129,30 +146,39 @@ } } - .ant-layout-sider-trigger { - width: 256px !important; + .ant-layout-sider-zero-width-trigger { + bottom: 8rem; + top: auto; + right: -42px; + width: 42px; + color: initial; + box-shadow: #eaeaea 2px 1px 2px 1px; + background: #ffffff; + border-radius: 0 0.8rem 0.8rem 0; } - } - .maint-content{ - .ant-layout-content{ + .maint-content { + .ant-layout-content { border-top: 1px solid #e8e8e8; } } + .main-content { + &.toleft { + padding-left: 200px; + } + } + .ant-layout-footer { margin: 0 6px; padding: 0 50px 12px 50px; } - .ant-layout-header.collapsed{ - .logo{ - width: 48px; - .logo-img{ - left: 27px; - } - .title{ + .ant-layout-header.collapsed { + .logo { + + .title { display: none; } } @@ -160,28 +186,33 @@ &.layout-light { .ant-layout-header { + //background-color: #2b83f9; + //background-image: linear-gradient(143deg,#2945cb 20%,#2b83f9 81%,#3a9dff); + //background-image: linear-gradient(143deg, #2945cb 20%, #1890ff 81%, #3a9dff); + background-image: linear-gradient(143deg, #e12f3f 20%, #f79275 81%, #FFC107); + border-bottom: none; + ul { - //background-color: #2b83f9; - //background-image: linear-gradient(143deg,#2945cb 20%,#2b83f9 81%,#3a9dff); - //background-image: linear-gradient(143deg, #2945cb 20%, #1890ff 81%, #3a9dff); - background-image: linear-gradient(143deg, #e12f3f 20%, #f79275 81%, #FFC107); - border-bottom: none; li { border-bottom: none; - span, i { + span, + i { color: #FFF; //opacity: .69; } &:hover { - span, i { + + span, + i { opacity: 1; } } - &.ant-menu-item-selected, &.ant-menu-item-active { + &.ant-menu-item-selected, + &.ant-menu-item-active { color: #1890ff; background: rgba(0, 0, 0, 0.08); } @@ -191,8 +222,12 @@ .ant-layout-sider { background: #FFF; - .ant-layout-sider-children{ - .ant-menu-inline, .ant-menu-vertical, .ant-menu-vertical-left { + + .ant-layout-sider-children { + + .ant-menu-inline, + .ant-menu-vertical, + .ant-menu-vertical-left { border-right: none; } } @@ -216,10 +251,10 @@ &.layout-dark { .ant-layout-header { - ul { - background-color: #fff; - background-image: none; - } + background-color: #fff; + background-image: none; + + ul {} } .logo { @@ -228,7 +263,11 @@ box-shadow: 2px 0 6px rgba(0, 21, 41, .35); } - .ant-layout-sider{ + .left-menudrawer { + color: initial; + } + + .ant-layout-sider { box-shadow: 2px 0 6px rgba(0, 21, 41, .35); } @@ -242,21 +281,18 @@ .action-item { &.user-info { - .ant-avatar { - } + .ant-avatar {} } } &:hover { - background: rgba(0,0,0,.025); + background: rgba(0, 0, 0, .025); //background: #e6f7ff; } - &.action-avatar { - } + &.action-avatar {} - &.action-organization { - } + &.action-organization {} } } @@ -280,6 +316,7 @@ } .trigger { + user-select: none; font-size: 18px; line-height: 64px; padding: 0 24px; @@ -294,9 +331,11 @@ } .middle-menu { + user-select: none; padding: 4px 0; - .ant-dropdown-menu-item-divider, .ant-dropdown-menu-submenu-title-divider { + .ant-dropdown-menu-item-divider, + .ant-dropdown-menu-submenu-title-divider { margin: 4px 0; } @@ -314,3 +353,39 @@ .__vuescroll .__rail-is-vertical { z-index: 3; } + +@media (max-width:768px) { + #layout { + .main-content.toleft { + padding-left: 0px; + } + + + .ant-layout-sider-zero-width-trigger { + visibility: hidden; + } + + .ant-layout-header { + .logo { + .title { + display: none; + } + } + + .pc-view { + white-space: nowrap; + display: none; + + .action-notice { + display: none; + } + } + + .wap-menu { + display: block; + visibility: visible; + flex: 0; + } + } + } +} \ No newline at end of file diff --git a/src/assets/css/components/list.less b/src/assets/css/components/list.less index 51511bd..bf25d48 100644 --- a/src/assets/css/components/list.less +++ b/src/assets/css/components/list.less @@ -8,18 +8,20 @@ } .ant-list-item-content { - .other-info { + &.other-info { display: flex; .info-item { display: flex; flex-direction: column; - padding-left: 48px; + padding-left: 1.5rem; } } } .ant-list-item-action { + margin-left: 1.5rem; + .anticon:hover { svg { color: @primary-color; @@ -27,3 +29,151 @@ } } } + +.project-list { + .ant-list-item { + padding: 1rem 0 1rem; + background: #fff; + } + + .ant-list-item-meta { + margin-left: 1rem; + margin-right: 1rem; + + .ant-list-item-meta-description { + font-size: 0.8rem; + line-height: 1.75; + } + } + + .ant-list-item-meta-avatar { + .ant-avatar { + width: 50px; + height: 50px; + border-radius: 3px; + } + } + + .ant-list-item-content { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-flex: 1; + -ms-flex: 1; + flex: 1; + -webkit-box-pack: end; + -ms-flex-pack: end; + justify-content: flex-end; + + &.schedule { + margin-left: 1rem; + margin-right: 1rem; + + .info-item { + flex: 1; + padding: 0 1rem; + } + } + + &.other-info { + display: flex; + font-size: 0.8rem; + flex: 0; + + margin-left: 1rem; + margin-right: 1rem; + + .info-item { + display: flex; + flex-direction: column; + word-break: keep-all; + + &:nth-child(n+2) { + padding-left: 1.5rem; + } + } + } + } + + .ant-list-item-action { + margin-left: 1rem; + margin-right: 1rem; + + >*:hover { + svg { + color: @primary-color; + } + } + } +} + +@media (max-width: 930px) { + .project-list { + .ant-list-item { + padding: 1rem 0 0; + flex-direction: column; + align-items: stretch; + + >*:nth-child(n+2) { + margin-top: 0.2rem; + } + + .ant-list-item-meta { + margin-bottom: 0.8rem; + } + + .ant-list-item-content { + + &.schedule { + + .info-item {} + } + + &.other-info { + justify-content: space-around; + + .info-item {} + } + } + + .ant-list-item-action { + display: flex; + justify-content: space-around; + margin-left: 0; + margin-right: 0; + align-items: stretch; + margin-top: 0.5rem; + + >li { + flex: 1; + padding: 0.5rem; + + &:active { + background: linear-gradient(0deg, lighten(#000, 96%), transparent); + } + } + + } + } + } +} + +@media(max-width: 430px) { + .project-list { + .ant-list-item { + .ant-list-item-meta { + flex-direction: column; + align-items: stretch; + + .ant-list-item-meta-avatar { + margin: 0 0 0.5rem; + + .ant-avatar { + width: 100%; + height: 100px; + } + } + } + } + } +} \ No newline at end of file diff --git a/src/assets/css/components/warpperContent.less b/src/assets/css/components/warpperContent.less index f15cf5e..821f75f 100644 --- a/src/assets/css/components/warpperContent.less +++ b/src/assets/css/components/warpperContent.less @@ -6,6 +6,7 @@ font-weight: 400; //border-bottom: 1px solid #e5e5e5; } + .content-title { font-size: 18px; color: #464c5b; @@ -21,81 +22,88 @@ float: right; } -.content-action + .page-title { +.content-action+.page-title { //padding-top: 55px; } -.page-header{ + +.page-header { //margin-top: 65px; background: #fff; padding: 16px 32px 0; border-bottom: 1px solid #e8e8e8; - .breadcrumb{ + + .breadcrumb { margin-bottom: 16px; } - .detail{ + + .detail { display: flex; + .row { display: flex; width: 100%; } - .main{ + + .main { width: 100%; flex: 0 1 auto; - .title{ + + .title { flex: auto; font-size: 20px; font-weight: 500; - color: rgba(0,0,0,.85); + color: rgba(0, 0, 0, .85); margin-bottom: 16px; } - .logo{ + + .logo { width: 28px; height: 28px; border-radius: 4px; margin-right: 16px; } - .content{ + + .content { margin-bottom: 16px; flex: auto; } - .extra{ + + .extra { flex: 0 1 auto; margin-left: 88px; min-width: 242px; text-align: right; } - .action{ - margin-left: 56px; - min-width: 266px; + + .action { flex: 0 1 auto; text-align: right; } } } } -.page-header-none{ + +.page-header-none { padding: 0; border-bottom: none; } .wrapper-main { - margin: 24px; - padding: 24px 0 12px 24px; + margin: 2rem; + padding: 1rem; background: rgb(255, 255, 255); } .wrapper-content { - width: 100%; - padding-right: 24px; transition: all 368ms; - .action{ + + .action { padding-bottom: 12px; line-height: 3; } } -.layout-content { -} +.layout-content {} .page-search { margin-bottom: 16px; @@ -142,5 +150,4 @@ text-align: center; padding: 10px 0 20px; color: #9ea7b4; -} - +} \ No newline at end of file diff --git a/src/assets/js/http.js b/src/assets/js/http.js index 5e58b88..3327f62 100644 --- a/src/assets/js/http.js +++ b/src/assets/js/http.js @@ -14,6 +14,7 @@ if (currentOrganization) { } const crossDomain = config.crossDomain; let axiosConfig = {}; +axiosConfig.baseURL = '/api'// process.env.VUE_APP_API_URL; if (crossDomain) { axiosConfig.withCredentials = true; axiosConfig.crossDomain = true; diff --git a/src/components/layout/UserLayout.vue b/src/components/layout/UserLayout.vue index 0f5ba9a..6f044b3 100644 --- a/src/components/layout/UserLayout.vue +++ b/src/components/layout/UserLayout.vue @@ -1,151 +1,156 @@ diff --git a/src/components/layout/WrapperContent.vue b/src/components/layout/WrapperContent.vue index ec9c375..45b0cfb 100644 --- a/src/components/layout/WrapperContent.vue +++ b/src/components/layout/WrapperContent.vue @@ -1,144 +1,138 @@ diff --git a/src/components/layout/header/HeaderAvatar.vue b/src/components/layout/header/HeaderAvatar.vue index dfd7a5d..4b3f102 100644 --- a/src/components/layout/header/HeaderAvatar.vue +++ b/src/components/layout/header/HeaderAvatar.vue @@ -1,86 +1,166 @@ diff --git a/src/components/layout/header/HeaderNotice.vue b/src/components/layout/header/HeaderNotice.vue index b4676ba..6c91f54 100644 --- a/src/components/layout/header/HeaderNotice.vue +++ b/src/components/layout/header/HeaderNotice.vue @@ -1,70 +1,80 @@ + + + + + + diff --git a/src/components/project/inviteProjectMember.vue b/src/components/project/inviteProjectMember.vue index e6c7097..612edd3 100644 --- a/src/components/project/inviteProjectMember.vue +++ b/src/components/project/inviteProjectMember.vue @@ -1,202 +1,210 @@ diff --git a/src/components/project/projectConfig.vue b/src/components/project/projectConfig.vue index 3418d0f..26d140c 100644 --- a/src/components/project/projectConfig.vue +++ b/src/components/project/projectConfig.vue @@ -1,897 +1,987 @@ +
+
+ - - + + + + + + + 更多 + +
+
+
+

项目操作

+
您可以执行以下操作
+ + 取消归档 + 归档项目 + + 退出 + + 恢复项目 + 移至回收站 + +
+
+
+
+ diff --git a/src/store/state.js b/src/store/state.js index dcaa98d..c7bfbad 100644 --- a/src/store/state.js +++ b/src/store/state.js @@ -3,7 +3,7 @@ import {getStore} from "../assets/js/storage"; const userInfo = getStore('userInfo', true); const theme = getStore('theme'); export default { - theme: theme ? theme : 'dark', + theme: theme ? theme : 'light', logged: !!userInfo,//登录状态 userInfo: userInfo,//用户信息 organizationList: getStore('organizationList', true),//能查看的组织列表 diff --git a/src/views/home/index.vue b/src/views/home/index.vue index 05c4cc0..b97b0f1 100644 --- a/src/views/home/index.vue +++ b/src/views/home/index.vue @@ -1,610 +1,772 @@ + + + + diff --git a/src/views/index.vue b/src/views/index.vue index 34f8b98..ef843a7 100644 --- a/src/views/index.vue +++ b/src/views/index.vue @@ -1,369 +1,407 @@ diff --git a/src/views/member/Register.vue b/src/views/member/Register.vue index 182ce40..760d671 100644 --- a/src/views/member/Register.vue +++ b/src/views/member/Register.vue @@ -1,330 +1,340 @@ diff --git a/src/views/member/login.vue b/src/views/member/login.vue index 79087ed..9c21cfe 100644 --- a/src/views/member/login.vue +++ b/src/views/member/login.vue @@ -1,112 +1,119 @@ diff --git a/src/views/members/index.vue b/src/views/members/index.vue index d41c3fa..11aada0 100644 --- a/src/views/members/index.vue +++ b/src/views/members/index.vue @@ -530,7 +530,6 @@ .left { padding: 12px 24px 12px 0; width: 280px; - height: 85vh; .left-content { width: 255px; diff --git a/src/views/organization/index.vue b/src/views/organization/index.vue index cbdd944..ff87fc7 100644 --- a/src/views/organization/index.vue +++ b/src/views/organization/index.vue @@ -1,40 +1,43 @@ diff --git a/src/views/project/archive/index.vue b/src/views/project/archive/index.vue index b7d670e..1e82e36 100644 --- a/src/views/project/archive/index.vue +++ b/src/views/project/archive/index.vue @@ -1,172 +1,172 @@ diff --git a/src/views/project/list/index.vue b/src/views/project/list/index.vue index a14da16..c0c7d87 100644 --- a/src/views/project/list/index.vue +++ b/src/views/project/list/index.vue @@ -1,454 +1,405 @@ - diff --git a/src/views/project/recycle/index.vue b/src/views/project/recycle/index.vue index 18a2906..fa65db7 100644 --- a/src/views/project/recycle/index.vue +++ b/src/views/project/recycle/index.vue @@ -77,8 +77,7 @@ this.pagination.pageSize = 100; this.showLoadingMore = false; } - this.requestData.recycle = 1; - this.requestData.type = 'other'; + this.requestData.selectBy = 'deleted'; app.loading = true; list(app.requestData).then(res => { app.dataSource = app.dataSource.concat(res.data.list); -- Gitee From 4fba2acaceedae65a13c82ec9f7dc54c48a758b1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=8F=E6=9E=97=E5=9B=9D?= Date: Mon, 31 Aug 2020 16:15:59 +0800 Subject: [PATCH 3/8] =?UTF-8?q?=E4=BB=BB=E5=8A=A1=E8=AF=A6=E6=83=85?= =?UTF-8?q?=E7=A7=BB=E5=8A=A8=E7=AB=AF=E5=85=BC=E5=AE=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- babel.config.code-workspace | 7 + package.json | 2 +- src/assets/css/components/base.less | 229 +- src/assets/css/components/index.less | 2 + src/assets/css/components/layout.less | 5 + src/assets/css/components/list.less | 2 +- src/assets/css/components/media.less | 109 + src/assets/css/components/task.less | 464 ++- src/assets/css/components/warpperContent.less | 6 + src/components/chart/RankList.vue | 4 +- src/components/layout/account/setting.vue | 112 +- src/components/project/projectSelect.vue | 307 +- src/components/project/versionDetail.vue | 2615 ++++++++-------- src/views/account/setting/base.vue | 329 +- src/views/account/setting/security.vue | 939 +++--- src/views/project/analysis/index.vue | 754 ++--- src/views/project/space/features.vue | 1390 ++++----- src/views/project/space/files.vue | 826 +++-- src/views/project/space/overview.vue | 1359 ++++---- src/views/project/space/task.vue | 2765 +++++++++-------- src/views/project/space/taskdetail.vue | 118 +- 21 files changed, 6398 insertions(+), 5946 deletions(-) create mode 100644 babel.config.code-workspace create mode 100644 src/assets/css/components/media.less diff --git a/babel.config.code-workspace b/babel.config.code-workspace new file mode 100644 index 0000000..ef9f5d2 --- /dev/null +++ b/babel.config.code-workspace @@ -0,0 +1,7 @@ +{ + "folders": [ + { + "path": "." + } + ] +} \ No newline at end of file diff --git a/package.json b/package.json index 83f7020..2ec4b81 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "pear-project", - "version": "2.0.0", + "version": "2.8.1", "private": true, "scripts": { "serve": "vue-cli-service serve", diff --git a/src/assets/css/components/base.less b/src/assets/css/components/base.less index 2b76236..04b3245 100644 --- a/src/assets/css/components/base.less +++ b/src/assets/css/components/base.less @@ -128,6 +128,10 @@ body { //Form .ant-form-horizontal { + .ant-form-item { + margin-bottom: 1rem; + } + .ant-form-item-with-help { margin-bottom: 12px; } @@ -191,7 +195,10 @@ body { } .field-right-menu { - width: 240px; + max-width: 90%; + min-width: 10rem; + border-radius: 1rem; + margin-top: 0.5rem; .ant-dropdown-menu-item { min-height: 36px; @@ -216,6 +223,14 @@ body { justify-content: space-between; align-items: center; } + + >.menu-item-content>:nth-child(n+2) { + //visibility: hidden; + } + + &:hover>.menu-item-content>:nth-child(n+2) { + //visibility: visible; + } } } @@ -238,7 +253,22 @@ body { //Modal .ant-modal { - top: 50px; + max-width: 95%; + top: 66px; + + &-body { + padding-bottom: 1rem; + + } + + .ant-modal-content { + border-radius: 1rem; + } + + .ant-modal-header { + border-radius: 1rem 1rem 0 0; + user-select: none; + } } //Badge @@ -317,111 +347,134 @@ body { display: none; } + .project-navigation { border-bottom: 1px solid #D9D9D9; z-index: 1; + line-height: 2; background-color: #F5F5F5; transition: right 218ms ease; - position: fixed; - width: 100%; -} - -.project-navigation .ivu-breadcrumb-item-separator { - color: #383838; -} + /* position: fixed;*/ -.project-navigation .ivu-breadcrumb>span:last-child { - font-weight: normal; -} + user-select: none; -.project-navigation .project-nav-header { - position: absolute; - z-index: 2; - left: 0; - height: 50px; - margin: 0; - padding: 15px; + .ivu-breadcrumb-item-separator { + color: #383838; + } - .nav-title { - font-size: 15px; - margin-right: 12px; + .ivu-breadcrumb>span:last-child { + font-weight: normal; } - .actions { - cursor: pointer; - margin-right: 12px; + .project-nav-header, + .project-nav-footer { + z-index: 2; + margin: 0; + padding: 0.5rem 1rem; + line-height: 2; + + .ant-breadcrumb { + line-height: 1.8; + + } + + .nav-title { + font-size: 15px; + margin-right: 12px; + } + + .actions { + cursor: pointer; + margin-right: 12px; + } } -} -.project-navigation .nav-underscore { - position: relative; - height: 50px; - border: none; - margin-bottom: 0; -} + .project-nav-footer { + text-align: right; -.project-navigation .nav-body { - position: relative; - white-space: nowrap; - z-index: 1; - display: -webkit-flex; - display: -ms-flexbox; - display: flex; - -webkit-justify-content: center; - -ms-flex-pack: center; - justify-content: center; -} + .footer-item { + font-size: 14px; + position: relative; + padding: 0 10px; + margin: 0 5px; + text-align: center; -.project-navigation .nav-body .nav-wrapper.nav>li { - z-index: 2; - padding: 0 20px; -} + &.active { + color: #2D8cF0; + } -.project-navigation .nav-underscore>li { - list-style: none; - float: left; -} + &:hover { + color: #2D8cF0; + } -.project-navigation .nav-underscore>li a { - display: inline-block; - position: relative; - height: 50px; - margin: 0; - padding: 15px 0; - color: #383838; - font-size: 15px; - font-weight: normal; -} + &:nth-last-child(n+2):after { + position: absolute; + content: ''; + right: -5px; + top: 1px; + bottom: 1px; + width: 1px; + background-color: #d6d6d6; + } + } + } -.project-navigation .nav-body .nav-wrapper.nav>li .app[data-app=tasks] { - position: relative; - float: left; - max-width: 200px; - overflow: hidden; - text-overflow: ellipsis; - white-space: nowrap; -} + .nav-body { + position: relative; + white-space: nowrap; + z-index: 1; + display: flex; + justify-content: stretch; + + .nav-underscore { + position: relative; + border: none; + margin-bottom: 0; + margin-left: auto; + margin-right: auto; + padding: 0; + display: inline-flex; + + >li { + z-index: 2; + padding: 0.5rem 1rem; + list-style: none; + position: relative; + margin: 0; + color: #383838; + font-size: 15px; + font-weight: normal; + cursor: pointer; + + &:hover { + background-color: inherit; + + &::after { + border-width: 3px; + opacity: 1; + } + } -.project-navigation .nav-underscore>li>a:hover { - background-color: inherit; -} + &:after { + position: absolute; + left: 0.6rem; + right: 0.6rem; + bottom: 0; + height: 3px; + border-bottom: 0 solid #3da8f5; + content: ''; + opacity: 0; + } + } -.project-navigation .nav-underscore>li>a:after { - position: absolute; - left: 0; - bottom: 0; - height: 3px; - width: 100%; - border-bottom: 0 solid #3da8f5; - content: ''; - opacity: 0; + >.actives:after { + border-width: 3px; + opacity: 1; + } + } + } } -.project-navigation .nav-underscore>li>a:hover:after, -.project-navigation .nav-underscore>.actives>a:after { - border-width: 3px; - opacity: 1; -} .simple { .project-navigation { @@ -431,10 +484,10 @@ body { .ant-tabs-bar { - margin: 1rem 1rem 0.5rem; + margin: 1rem auto 0.5rem; } -.ant-table-thead{ +.ant-table-thead { white-space: nowrap; word-break: keep-all; } \ No newline at end of file diff --git a/src/assets/css/components/index.less b/src/assets/css/components/index.less index a4585c6..40567b1 100644 --- a/src/assets/css/components/index.less +++ b/src/assets/css/components/index.less @@ -4,3 +4,5 @@ @import "list"; @import "labels"; @import "warpperContent"; +@import "task"; +@import "media"; diff --git a/src/assets/css/components/layout.less b/src/assets/css/components/layout.less index 69cce27..7ca7913 100644 --- a/src/assets/css/components/layout.less +++ b/src/assets/css/components/layout.less @@ -269,6 +269,11 @@ .ant-layout-sider { box-shadow: 2px 0 6px rgba(0, 21, 41, .35); + + .ant-layout-sider-zero-width-trigger { + color: #fff; + background: #002140; + } } .right-menu { diff --git a/src/assets/css/components/list.less b/src/assets/css/components/list.less index bf25d48..ca068d7 100644 --- a/src/assets/css/components/list.less +++ b/src/assets/css/components/list.less @@ -3,7 +3,7 @@ .ant-avatar { width: 50px; height: 50px; - border-radius: 3px; + border-radius: 1rem; } } diff --git a/src/assets/css/components/media.less b/src/assets/css/components/media.less new file mode 100644 index 0000000..4d517f3 --- /dev/null +++ b/src/assets/css/components/media.less @@ -0,0 +1,109 @@ +.account-setting-base, +.account-setting-security { + .wrapper-main { + padding-left: 0; + padding-right: 0; + } + + .setting-content { + display: flex; + flex-direction: row; + + .right { + flex: 1 1 0; + padding: 8px 40px; + + .setting-info-title { + font-size: 20px; + } + + .setting-info { + display: flex; + flex-direction: row; + padding-top: 12px; + + &-content { + flex: 1; + } + + &-avatar { + padding-left: 2rem; + display: flex; + flex-direction: column; + + .avatar { + margin-top: 12px; + margin-left: auto; + margin-right: auto; + } + + .avatar-uploader { + margin: 1.6rem auto; + text-align: center; + } + } + } + } + } +} + +.account-setting-security { + .setting-content { + .right { + .setting-info { + &-content { + width: 100%; + } + } + } + } +} + +.mobile-modal { + .getCaptcha { + display: block; + width: 100%; + height: 40px; + } +} + +.wap-menu { + display: none; + visibility: hidden; +} + +@media (max-width: 768px) { + .pc-view { + display: none; + visibility: hidden; + } + + .wap-menu { + display: block; + visibility: visible; + } + + .account-setting .left { + width: auto !important; + border-right: 0px solid #e8e8e8 !important; + } + + .account-setting-base, + .account-setting-security { + .setting-content { + flex-direction: column; + + .right { + padding: 1rem; + + .setting-info { + flex-direction: column; + + &-avatar { + padding-left: 0; + } + } + } + } + } +} \ No newline at end of file diff --git a/src/assets/css/components/task.less b/src/assets/css/components/task.less index 1b2f4cd..d3eeee6 100644 --- a/src/assets/css/components/task.less +++ b/src/assets/css/components/task.less @@ -1,25 +1,34 @@ .project-space-task { -} - -.project-space-task .wrapper-main { - margin: 0; - padding: 0; - background: inherit; -} - -.project-space-task .wrapper-content { - background: #f5f5f5; - position: fixed; height: 100%; - padding: 0 0 63px; -} + flex: 1; + display: flex; + flex-direction: column; -.project-space-task .layout-content { - padding: 60px 10px 0 0; - height: 100%; - margin-left: 0; - margin-right: 0; - background: #fff; + .tasks-loading { + .ant-spin-blur { + opacity: 0; + } + } + + .wrapper-main { + margin: 0; + padding: 0; + background: inherit; + + .wrapper-content { + background: #f5f5f5; + position: relative; + height: 100%; + overflow: auto; + width: 100%; + + .layout-content { + height: 100%; + margin-left: 0; + margin-right: 0; + } + } + } } .project-space-task .manage-contents { @@ -79,7 +88,8 @@ } } -.scrum-stage .scrum-stage-header, .scrum-stage .sort-header-placeholder { +.scrum-stage .scrum-stage-header, +.scrum-stage .sort-header-placeholder { -webkit-flex: 0 0 auto; -ms-flex: 0 0 auto; flex: 0 0 auto; @@ -171,11 +181,12 @@ padding-bottom: 40px; } -.scrum-stage .scrum-stage-content > ul { +.scrum-stage .scrum-stage-content>ul { /*margin-bottom: 8px;*/ } -.scrum-stage .scrum-stage-tasks, .scrum-stage .scrum-stage-tasks-done { +.scrum-stage .scrum-stage-tasks, +.scrum-stage .scrum-stage-tasks-done { transition: opacity 0.08s ease-out; opacity: 1; min-height: 5px; @@ -373,7 +384,9 @@ font-size: 0; } -.task.task-card .task-infos .label, .task.task-card .task-infos .icon-wrapper, .task.task-card .task-infos .tag { +.task.task-card .task-infos .label, +.task.task-card .task-infos .icon-wrapper, +.task.task-card .task-infos .tag { display: -webkit-inline-flex; display: -ms-inline-flexbox; display: inline-flex; @@ -402,12 +415,15 @@ padding-left: 6px; } -.label-important, .badge-important { +.label-important, +.badge-important { color: #FFFFFF; background-color: #FF4F3E; } -.task.task-card .task-infos .label > span, .task.task-card .task-infos .icon-wrapper, .task.task-card .task-infos .tag { +.task.task-card .task-infos .label>span, +.task.task-card .task-infos .icon-wrapper, +.task.task-card .task-infos .tag { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; @@ -587,7 +603,8 @@ color: rgba(0, 0, 0, 0.45); } -.task.task-card.done .check-box, .task.task-card.done .task-content-set { +.task.task-card.done .check-box, +.task.task-card.done .task-content-set { opacity: 0.64; filter: alpha(opacity=64); } @@ -604,6 +621,7 @@ justify-content: center; transition: background 218ms; border-radius: 3px; + &:hover { .check-box { color: grey; @@ -762,7 +780,8 @@ transition: opacity .15s linear; } -input.form-control, textarea.form-control { +input.form-control, +textarea.form-control { background-color: #FFFFFF; border: 1px solid #D9D9D9; border-radius: 3px; @@ -775,7 +794,7 @@ input.form-control, textarea.form-control { border-bottom: 1px solid #EEEEEE; } -.task-creator .handler-wrap > a { +.task-creator .handler-wrap>a { width: 100%; display: inline-block; //padding: 15px 0; @@ -793,7 +812,8 @@ input.form-control, textarea.form-control { line-height: 24px; } -.task-creator .handler-wrap > a > .icon, .task-creator .handler-wrap > a > .avatar { +.task-creator .handler-wrap>a>.icon, +.task-creator .handler-wrap>a>.avatar { display: inline-block; line-height: 24px; float: left; @@ -816,14 +836,14 @@ input.form-control, textarea.form-control { margin: 10px 0 -5px -10px; } -.involve-view .involve-members > li { +.involve-view .involve-members>li { position: relative; float: left; margin: 0 0 10px 10px; cursor: pointer; } -.involve-view .involve-members > li > .avatar { +.involve-view .involve-members>li>.avatar { display: block; width: 24px; height: 24px; @@ -836,7 +856,7 @@ input.form-control, textarea.form-control { background-position: center !important; } -.involve-view .involve-members > li { +.involve-view .involve-members>li { position: relative; float: left; margin: 0 0 10px 10px; @@ -858,7 +878,7 @@ input.form-control, textarea.form-control { text-align: center; } -.task-creator .handler-wrap > a { +.task-creator .handler-wrap>a { width: 100%; display: inline-block; padding: 6px 0; @@ -872,13 +892,15 @@ input.form-control, textarea.form-control { line-height: 24px; } -.project-space-task .menu-toggler-title, .project-space-task .footer-item { +.project-space-task .menu-toggler-title, +.project-space-task .footer-item { color: #808080; text-decoration: none; cursor: pointer; } -.task-creator .tags-wrap, .task-creator .involve-wrap { +.task-creator .tags-wrap, +.task-creator .involve-wrap { border-bottom: 1px solid #EEEEEE; } @@ -950,7 +972,8 @@ input.form-control, textarea.form-control { flex: 1 0 auto; } -.activities-timeline > div, .activities-timeline > ul { +.activities-timeline>div, +.activities-timeline>ul { margin-right: -1px; margin-left: -1px; overflow: hidden; @@ -990,7 +1013,7 @@ input.form-control, textarea.form-control { color: #383838; } -.readable > *:last-child { +.readable>*:last-child { margin-bottom: 0; } @@ -1007,7 +1030,7 @@ input.form-control, textarea.form-control { border-left: 5px solid #EEEEEE; } -.activity .activity-content > blockquote { +.activity .activity-content>blockquote { margin: 5px 0 0 0; padding: 0 0 0 10px; } @@ -1037,7 +1060,9 @@ li.activity.creator i { margin-top: 0; } -.activities-timeline.early-hidden .activity-early-wrap, .activities-timeline.early-shown .activity-early-wrap, .activities-timeline.early-loading .activity-early-wrap { +.activities-timeline.early-hidden .activity-early-wrap, +.activities-timeline.early-shown .activity-early-wrap, +.activities-timeline.early-loading .activity-early-wrap { display: block; } @@ -1060,12 +1085,14 @@ li.activity.creator i { transition: color 218ms ease; } -.task.task-card.ui-sortable-handle.dragging, .scrum-stage-tasks-done .task.task-card.ui-sortable-handle.dragging { +.task.task-card.ui-sortable-handle.dragging, +.scrum-stage-tasks-done .task.task-card.ui-sortable-handle.dragging { cursor: move; } /*紧急程度一般*/ -.task.task-card.ui-sortable-handle:hover, .scrum-stage-tasks-done .task.task-card.ui-sortable-handle:hover { +.task.task-card.ui-sortable-handle:hover, +.scrum-stage-tasks-done .task.task-card.ui-sortable-handle:hover { border-left: 3px solid #a6a6a6; } @@ -1121,44 +1148,6 @@ li.activity.creator i { clear: both; } -.project-nav-footer { - position: absolute; - right: 0; - top: 0; - display: flex; - height: 50px; - align-items: center; - z-index: 998; -} - -.project-nav-footer .footer-item { - font-size: 14px; - position: relative; - padding: 15px 10px; - margin: 0 5px; - float: right; - display: inline-block; - text-align: center; -} - -.project-nav-footer .footer-item.active { - color: #2D8cF0; -} - -.project-nav-footer .footer-item:hover { - color: #2D8cF0; -} - -.project-nav-footer :not(:first-child):after { - position: absolute; - content: ''; - right: -5px; - top: 16px; - bottom: 16px; - width: 1px; - background-color: #A6A6A6; -} - .menu-modal .ivu-modal-mask { overflow: hidden; @@ -1211,20 +1200,20 @@ li.activity.creator i { background-color: rgba(0, 0, 0, 0.06); } -.project-menus .list > li { +.project-menus .list>li { position: relative; line-height: 30px; } -.project-menus .list > li:first-child > a { +.project-menus .list>li:first-child>a { margin-top: 5px; } -.project-menus .list > li:first-child > a { +.project-menus .list>li:first-child>a { margin-top: 5px; } -.project-menus .list > li > a { +.project-menus .list>li>a { display: flex; align-items: center; cursor: pointer; @@ -1236,19 +1225,19 @@ li.activity.creator i { white-space: nowrap; } -.project-menus .list > li > a { +.project-menus .list>li>a { color: #808080; font-size: 16px; width: 35px; text-align: center; } -.project-menus .activities-panel-menu-list > li > a { +.project-menus .activities-panel-menu-list>li>a { color: #383838; font-weight: 600; } -.project-menus .activities-panel-menu-list > li:hover a { +.project-menus .activities-panel-menu-list>li:hover a { background-color: #EEEEEE; } @@ -1316,7 +1305,7 @@ li.activity.creator i { padding-bottom: 10px; } -.activity-card-datas .data-statistics > div { +.activity-card-datas .data-statistics>div { display: inline-block; vertical-align: middle; cursor: pointer; @@ -1329,7 +1318,7 @@ li.activity.creator i { font-size: 14px; } -.activity-card-datas .data-statistics > div:hover { +.activity-card-datas .data-statistics>div:hover { background-color: #EEEEEE; } @@ -1497,7 +1486,7 @@ li.activity.creator i { height: 36px; } -.user-menu-modal .project-menus .list > li { +.user-menu-modal .project-menus .list>li { line-height: 10px; } @@ -1537,7 +1526,8 @@ li.activity.creator i { .layout-content { background: inherit; - .scrum-stage .scrum-stage-header, .scrum-stage .sort-header-placeholder { + .scrum-stage .scrum-stage-header, + .scrum-stage .sort-header-placeholder { padding: 14px 14px; font-size: 14px; } @@ -1545,6 +1535,7 @@ li.activity.creator i { .scrum-stage-wrap.ui-sortable { padding-bottom: 40px; } + .scrum-stage-wrap.ui-sortable.hidden-creator-bottom { padding-bottom: 80px; } @@ -1605,3 +1596,296 @@ li.activity.creator i { } } } + +.project-space-files, +.project-space-features, +.project-space-overview { + .wrapper-main { + background: initial; + margin: 1rem; + } + + .features-list-dropdown { + cursor: pointer; + } + + .layout-content { + .content-item { + background: #fff; + padding: 6px 18px 18px 18px; + border-radius: 1.3rem; + width: 100%; + + .title { + font-size: 16px; + padding: 6px 0 0 0; + } + + &.files-list, + &.log-list { + background: #fff; + margin-bottom: 15px; + + .list-content { + padding-top: 12px; + position: relative; + + li.list-item-title, + li.list-item-title .ant-list-item-action * { + cursor: default; + } + + li:not(.list-item-title) .ant-list-item-action { + visibility: hidden; + } + + li:not(.list-item-title):hover .ant-list-item-action { + visibility: visible; + } + } + } + + .version-group { + margin-top: 0.5rem; + margin-bottom: 0.5rem; + + .version-group-title { + margin-top: 1rem; + margin-bottom: 1rem; + user-select: none; + } + + .version-content { + margin-bottom: 1rem; + + .ant-card { + min-height: 102px; + border-radius: 1rem; + user-select: none; + /*display: inline-block;*/ + + .ant-card-head { + padding: 0 16px; + border-bottom: none; + + .ant-card-head-title { + padding: 12px 0; + display: flex; + justify-content: space-between; + font-size: 14px; + + .version-status { + display: flex; + align-items: center; + justify-content: center; + min-width: 3rem; + border-radius: 4px; + background: #f5f5f5; + padding: 4px 8px; + + &.status-0 { + color: #a6a6a6; + } + + &.status-1 { + color: #1890ff; + background: #e6f7ff; + border-color: #91d5ff; + } + + &.status-2 { + color: #f5222d; + background: #fff1f0; + border-color: #ffa39e; + } + + &.status-3 { + color: #52c41a; + background: #f6ffed; + border-color: #b7eb8f; + } + } + } + } + + .ant-card-body { + height: 100%; + padding: 0 1rem 0.5rem; + + .publish-time { + font-size: 0.8rem; + } + } + } + + .version-create { + .ant-card-body { + padding: 1.5rem; + line-height: 1.75; + } + + a { + height: 100%; + display: flex; + justify-content: center; + align-items: center; + text-align: center; + } + } + + &.published { + .ant-card { + height: auto; + min-height: auto; + } + } + } + } + + &.files-list { + .header { + display: flex; + justify-content: space-between; + + .header-actions { + justify-self: flex-end; + padding-top: 0.2rem; + } + } + + .list-content { + .list-item { + border-bottom: none; + transition: background-color 218ms; + border-radius: 1rem; + padding: 0.5rem; + overflow: hidden; + margin: 0.5rem 0; + white-space: nowrap; + + &:hover { + background-color: #f5f5f5; + } + } + + .ant-list-item-meta { + flex: 6; + position: relative; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + word-break: keep-all; + } + + .ant-list-item-action { + flex: 2; + text-align: right; + margin-left: 1.5rem; + } + + .other-info { + display: flex; + white-space: nowrap; + flex: 3; + justify-content: space-between; + + .info-item { + text-align: center; + flex: 1; + padding: 0 1rem; + + &:nth-child(1) { + text-align: left; + } + + &:nth-last-child(1) { + text-align: right; + } + } + } + } + } + } + + .project-date { + .ant-calendar-picker { + border: none; + + &:focus { + border: none; + } + } + + .ant-calendar-picker-input { + border: none; + } + } + + .project-stats { + .stats-content { + .stats-item { + .stats-number { + /*font-weight: bold;*/ + font-size: 2rem; + text-overflow: ellipsis; + word-break: keep-all; + white-space: nowrap; + overflow: hidden; + } + } + } + } + } +} + +@media(max-width: 768px) { + .project-space-files .layout-content { + .content-item { + &.files-list { + .list-content { + .list-item { + flex-direction: column; + align-items: stretch; + position: relative; + + &::after { + content: ""; + height: 1px; + position: absolute; + bottom: 0; + left: 0; + right: 0; + background: #f6f6f6; + } + } + + .ant-list-item-meta { + flex: 1 !important; + white-space: pre-wrap; + } + + .ant-list-item-action { + flex: 1 !important; + } + + .other-info { + display: flex; + white-space: nowrap; + flex: 1 !important; + justify-content: space-between; + + .info-item { + padding: 0; + font-size: 0.8rem; + + &:nth-child(n+2) { + padding-left: 0.5rem; + } + } + } + } + } + + } + } +} \ No newline at end of file diff --git a/src/assets/css/components/warpperContent.less b/src/assets/css/components/warpperContent.less index 821f75f..e94c9cf 100644 --- a/src/assets/css/components/warpperContent.less +++ b/src/assets/css/components/warpperContent.less @@ -92,6 +92,7 @@ margin: 2rem; padding: 1rem; background: rgb(255, 255, 255); + height: 100%; } .wrapper-content { @@ -150,4 +151,9 @@ text-align: center; padding: 10px 0 20px; color: #9ea7b4; +} + +.ant-spin-nested-loading, +.ant-spin-container { + height: 100%; } \ No newline at end of file diff --git a/src/components/chart/RankList.vue b/src/components/chart/RankList.vue index e62adb6..7a957e1 100644 --- a/src/components/chart/RankList.vue +++ b/src/components/chart/RankList.vue @@ -1,6 +1,6 @@