2022-02-12 14:15:23 +08:00

818 lines
26 KiB
SCSS
Vendored

.task-detail {
display: flex;
flex-direction: column;
margin: 0 -32px 12px -10px;
padding: 0 22px 12px 0;
min-height: 120px;
overflow: auto;
.task-info {
flex: 3;
display: flex;
flex-direction: column;
position: relative;
.head {
display: flex;
align-items: center;
height: 42px;
padding-bottom: 10px;
color: #888888;
position: relative;
&:before {
content: "";
position: absolute;
left: 36px;
right: 0;
bottom: 0;
height: 1px;
background-color: #f4f5f5;
}
.icon {
margin-right: 18px;
.task-menu-icon {
display: flex;
align-items: center;
.ivu-icon {
font-size: 18px;
}
.loading {
width: 18px;
height: 18px;
.common-loading {
width: 16px;
height: 16px;
}
}
.uncomplete {
color: #888888;
}
}
}
.flow {
margin-right: 10px;
> span {
font-size: 14px;
height: 26px;
line-height: 24px;
padding: 0 8px;
border-radius: 4px;
color: #8bcf70;
border: 1px solid #8bcf70;
display: inline-block;
text-align: center;
cursor: pointer;
&.start,
&.archived {
background-color: rgba(38, 38, 38, 0.05);
border-color: rgba(38, 38, 38, 0.05);
color: #595959;
}
&.progress {
background-color: rgba(27, 154, 238, 0.1);
border-color: rgba(27, 154, 238, 0.1);
color: #0171c2;
}
&.end {
background-color: rgba(21, 173, 49, 0.1);
border-color: rgba(21, 173, 49, 0.1);
color: #038a24;
}
}
}
.nav {
flex: 1;
display: flex;
align-items: center;
font-size: 12px;
width: 0;
height: 40px;
overflow: auto;
&::-webkit-scrollbar {
display: none
}
> p {
display: flex;
align-items: center;
padding-right: 5px;
> span {
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap
}
&:after {
content: "/";
padding-left: 5px;
}
&:last-child {
&:after {
display: none;
}
}
}
}
.function {
display: flex;
align-items: center;
margin: 0 32px;
.pick {
margin-left: 12px;
margin-right: 10px;
}
.open {
margin-top: -2px;
margin-left: 12px;
font-size: 22px;
cursor: pointer;
}
.menu {
margin-left: 12px;
display: flex;
align-items: center;
.ivu-icon {
font-size: 22px;
color: #606266;
}
}
}
}
.scroller {
margin-left: 28px;
padding-left: 8px;
padding-right: 36px;
overflow-x: hidden;
overflow-y: auto;
.title {
margin-top: 18px;
.ivu-input {
font-weight: 500;
font-size: 24px;
padding: 4px 0;
line-height: 1.4;
resize: none;
border-color: transparent;
&:focus {
box-shadow: none
}
}
}
.desc {
margin-top: 10px;
div[contenteditable="true"] {
outline: none
}
.mce-content-body {
img {
max-width: 100%;
}
&[data-mce-placeholder]:not(.mce-visualblocks)::before {
color: #bbbbbb;
}
}
}
.items {
margin-top: 12px;
.ivu-form-item {
margin-bottom: 10px;
}
.item-label {
display: flex;
align-items: center;
color: #bbbbbb;
.taskfont {
margin-right: 4px;
}
}
.item-content {
margin-top: 5px;
margin-left: 12px;
> li {
display: flex;
align-items: center;
list-style: none;
line-height: 26px;
.el-dropdown {
display: flex;
cursor: pointer;
}
.task-priority {
padding: 0 7px;
}
.picker-time {
display: flex;
align-items: center;
line-height: 26px;
.time {
cursor: pointer;
}
.ivu-tag {
flex-shrink: 0;
margin-left: 10px;
padding: 0 4px;
height: 20px;
line-height: 18px;
.ivu-tag-text {
display: flex;
align-items: center;
.taskfont {
transform: scale(0.9);
font-size: 14px;
padding-right: 3px;
}
}
}
}
}
&.user {
margin-top: 1px;
cursor: pointer;
.user-list {
display: flex;
align-items: center;
> div {
margin-right: 6px;
}
}
}
&.file {
margin-bottom: -3px;
> li {
margin-bottom: 2px;
.file-load {
margin: 0;
padding: 2px;
width: 16px;
height: 16px;
}
.file-ext {
width: 16px;
}
.file-name {
color: $primary-text-color;
padding-left: 8px;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.file-size {
flex-shrink: 0;
padding-left: 10px;
height: 24px;
font-size: 12px;
color: #bbbbbb;
}
.file-menu {
display: flex;
align-items: center;
opacity: 0;
transition: all 0.3s;
padding-left: 12px;
&.show {
opacity: 1;
}
i {
font-size: 14px;
color: #aaaaaa;
transition: color 0.3s;
cursor: pointer;
padding: 0 4px;
&:hover {
color: #777777;
}
&.del {
font-size: 13px;
&:hover {
color: #ff0000;
}
}
}
}
&:hover {
.file-name {
color: $primary-title-color;
}
.file-menu {
opacity: 1;
}
}
}
}
&.subtask {
> li {
align-items: flex-start;
margin-bottom: 4px;
&:last-child {
margin-bottom: -6px;
}
&:hover {
.subtask-time {
.clock {
transform: translateX(0);
opacity: 0.7;
}
}
}
.subtask-icon {
padding-top: 1px;
width: 16px;
height: 26px;
line-height: 26px;
margin-right: 6px;
display: flex;
align-items: center;
cursor: pointer;
}
.subtask-flow {
> span {
font-size: 12px;
height: 18px;
min-width: 20px;
line-height: 16px;
padding: 0 2px;
border-radius: 3px;
color: #8bcf70;
border: 1px solid #8bcf70;
display: inline-block;
margin-right: 3px;
text-align: center;
cursor: pointer;
&.start {
background-color: rgba(38, 38, 38, 0.05);
border-color: rgba(38, 38, 38, 0.05);
color: #595959;
}
&.progress {
background-color: rgba(27, 154, 238, 0.1);
border-color: rgba(27, 154, 238, 0.1);
color: #0171c2;
}
&.end {
background-color: rgba(21, 173, 49, 0.1);
border-color: rgba(21, 173, 49, 0.1);
color: #038a24;
}
}
}
.subtask-name {
flex: 1;
margin-right: 8px;
display: flex;
.ivu-input {
margin: -2px 0;
padding: 4px 0;
resize: none;
border-color: transparent;
line-height: 20px;
&:focus {
box-shadow: none
}
}
}
.subtask-time {
margin-right: 8px;
.time {
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
font-size: 13px;
height: 26px;
line-height: 26px;
cursor: pointer;
&.overdue {
font-weight: 600;
color: #ed4014;
}
&.today {
font-weight: 500;
color: #ff9900;
}
}
.clock {
margin: 3px 2px;
font-size: 20px;
transition: all 0.2s;
transform: translateX(50%);
opacity: 0;
}
}
.subtask-avatar {
height: 20px;
margin-top: 3px;
cursor: pointer;
}
.ivu-icon-ios-loading {
animation: icon-loading-load 0.6s infinite linear;
}
}
}
&.nosub {
margin-top: 0;
> li {
.add-input,
.add-button {
margin-top: -2px;
}
}
}
}
}
.add {
margin-top: 12px;
margin-bottom: 10px;
}
.add-input {
margin-top: 6px;
&.loading {
.ivu-icon-ios-loading {
animation: icon-loading-load 0.6s infinite linear;
}
}
}
.add-button {
cursor: pointer;
color: #bbbbbb;
display: flex;
align-items: center;
margin-top: 6px;
height: 32px;
> i {
font-size: 14px;
padding-right: 8px;
}
> em {
font-style: normal;
padding-left: 4px;
&:after {
content: "/";
padding-left: 4px;
}
&:last-child {
&:after {
display: none;
}
}
}
&:hover {
color: #999999;
}
}
}
.upload {
display: none;
}
}
.task-dialog {
flex: 2;
flex-shrink: 0;
display: flex;
flex-direction: column;
margin-top: 22px;
position: relative;
.head {
display: flex;
align-items: center;
height: 40px;
padding-bottom: 10px;
color: #888888;
position: relative;
&:before {
content: "";
position: absolute;
left: 36px;
right: 0;
bottom: 0;
height: 1px;
background-color: #f4f5f5;
}
.icon {
width: 18px;
font-size: 18px;
}
.nav {
flex: 1;
display: flex;
align-items: center;
padding-left: 18px;
font-weight: 500;
color: #666666;
> p {
display: flex;
align-items: center;
margin-right: 24px;
cursor: pointer;
&.active {
margin-top: -2px;
font-size: 16px;
font-weight: 600;
color: #555555;
cursor: default;
}
}
.refresh {
display: flex;
align-items: center;
margin-left: -18px;
> i {
font-size: 18px;
cursor: pointer;
opacity: 0.8;
transition: opacity 0.2s;
&:hover {
opacity: 1;
}
}
.common-loading {
margin: 3px;
width: 12px;
height: 12px;
}
}
}
}
.no-dialog {
flex: 1;
display: flex;
flex-direction: column;
position: relative;
.no-tip {
flex: 1;
display: none;
margin-left: 36px;
}
.no-input {
display: flex;
align-items: center;
margin: 22px 0 0 36px;
background-color: #F4F5F7;
padding: 10px 12px;
border-radius: 10px;
.ivu-input {
border: 0;
resize: none;
background-color: transparent;
&:focus {
box-shadow: none;
}
}
.no-send {
display: none;
}
}
.drag-over {
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
z-index: 3;
background-color: rgba(255, 255, 255, 0.78);
display: flex;
align-items: center;
justify-content: center;
&:before {
content: "";
position: absolute;
top: 0;
left: 36px;
right: 0;
bottom: 0;
border: 2px dashed #7b7b7b;
border-radius: 12px;
}
.drag-text {
padding: 12px;
font-size: 18px;
color: #666666;
}
}
}
.project-log {
margin-left: 36px;
.logs-activity {
padding: 22px 0 0;
> li {
list-style: none;
padding-top: 0;
&.logs-loading,
&.logs-more,
&.logs-none {
height: 59px;
line-height: 59px;
}
&.logs-loading {
display: flex;
align-items: center;
.common-loading {
width: 22px;
height: 22px;
margin: 0;
}
}
}
}
}
.dialog-wrapper {
.dialog-scroller {
padding: 0 16px 0 32px
}
.dialog-footer {
padding: 0 14px 0 28px;
}
}
}
.task-load {
margin-top: 6px;
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
display: flex;
.common-loading {
width: 32px;
height: 32px;
}
}
&.open-dialog {
flex-direction: row;
.task-info {
overflow: auto;
.head {
.function {
margin-right: 2px;
}
}
}
.task-dialog {
margin: 0 0 0 18px;
min-width: 320px;
max-width: 450px;
&:before {
content: "";
position: absolute;
top: 0;
left: 0;
bottom: 0;
z-index: 1;
width: 1px;
background-color: #f4f5f5;
}
.head {
&:before {
left: 18px;
}
.icon {
&:before {
display: none;
}
}
.nav {
padding-left: 0;
> p {
margin-right: 28px;
&.active {
font-size: 18px;
}
}
}
}
.no-dialog {
.no-tip {
display: flex;
align-items: center;
justify-content: center;
margin-left: 18px;
color: #999999;
}
.no-input {
margin: 0 0 0 18px;
}
}
.dialog-wrapper {
z-index: 0;
.dialog-footer {
margin-bottom: 0;
}
}
.project-log {
position: absolute;
top: 40px;
left: 0;
right: 0;
bottom: 0;
z-index: 1;
padding: 8px 8px;
margin-left: 8px;
background-color: #ffffff;
overflow: auto;
.logs-activity {
padding: 22px 0 0 10px;
}
}
}
}
&.completed {
.task-info {
&:before {
content: "\f373";
font-family: Ionicons, serif;
pointer-events: none;
position: absolute;
top: 0;
right: 13%;
font-size: 72px;
color: #19be6b;
opacity: .2;
z-index: 1;
}
}
}
}
.task-detail-receive {
padding: 6px 6px 3px;
.receive-title {
font-size: 14px;
.ivu-icon {
font-size: 16px;
color: #f90;
line-height: 18px;
}
}
.receive-time {
margin-top: 10px;
.ivu-date-picker {
width: 280px;
}
}
.receive-bottom {
text-align: right;
margin-top: 12px;
> button + button {
margin-left: 4px;
}
}
}
.task-detail-delete-file-popover {
max-width: 200px;
.buttons {
text-align: right;
margin-top: 12px;
.ivu-btn-small {
font-size: 12px
}
}
}
.task-detail-user-popper {
.ivu-poptip-body-content {
overflow: visible;
}
}
.task-detail-avatar-buttons {
margin-top: 12px;
margin-bottom: 4px;
text-align: right;
position: absolute;
top: 5px;
right: 14px;
> button {
font-size: 12px;
transform: scale(0.9);
}
}
@media (max-width: 768px) {
.task-detail {
.task-info {
.scroller {
overflow-x: auto;
}
}
.task-dialog {
.no-dialog {
.no-input {
position: relative;
padding-right: 52px;
.no-send {
position: absolute;
top: 0;
right: 0;
bottom: 0;
font-size: 18px;
width: 46px;
display: flex;
align-items: center;
justify-content: center;
.common-loading {
width: 20px;
height: 20px;
}
}
}
}
}
}
}