dootask/resources/assets/sass/pages/components/dialog-group-info.scss
kuaifan 24710289e1 feat(multi-owner): 群/项目/部门支持主+副双负责人体系
- 群组:新增 web_socket_dialog_users.role(1=主、2=副),主可任命/罢免副群主,副可邀请/移出普通成员
- 项目:project_users.owner 扩展为 0/1/2(成员/主/副),主独占转让和删除,副共享日常管理;任务可见性、通知、分配等下游逻辑统一用「主+副」
- 部门:新增 user_department_owners 表存储副负责人;部门群同步副群主,赋予群管理员权限
- 转移用户时副身份不替补、降级为普通成员
- 配套 migration/backfill、API、前端 UI、i18n 词条与三项 Feature 测试
- .gitignore 忽略 .playwright-mcp/
2026-05-03 00:05:31 +00:00

192 lines
4.7 KiB
SCSS
Vendored

.dialog-group-info {
display: flex;
flex-direction: column;
position: absolute;
top: 10px;
left: 0;
right: 0;
bottom: 0;
overflow: auto;
.dialog-group-head {
position: sticky;
top: 0;
z-index: 2;
margin-bottom: -8px;
padding-bottom: 8px;
background: #fff;
border-radius: 8px 8px 0 0;
}
.group-info-title {
color: #b7b1b1;
margin: 18px 24px 0;
}
.group-info-value {
margin: 2px 24px 0;
line-height: 34px;
.quick-text {
padding: 6px 0;
height: auto;
line-height: 20px;
box-sizing: content-box;
overflow: visible;
white-space: normal;
}
.quick-input {
display: flex;
flex-direction: column;
}
}
.group-info-search {
margin: 20px 24px 0;
}
.group-info-user {
flex: 1;
margin-top: 12px;
padding: 0 12px;
> ul {
> li {
display: flex;
align-items: center;
list-style: none;
padding: 12px;
height: 56px;
border-radius: 6px;
&:hover {
background-color: rgba($primary-desc-color, 0.1);
.user-exit,
.user-deputy-add,
.user-deputy-del {
opacity: 1;
transform: translateX(0);
}
}
&.no {
&:hover {
background-color: transparent;
}
justify-content: center;
color: #999;
.common-loading {
width: 16px;
height: 16px;
}
}
&.label {
&:hover {
background-color: transparent;
}
color: #999;
font-size: 13px;
height: auto;
}
.common-avatar {
width: 0;
flex: 1;
.avatar-name {
margin-left: 8px;
}
}
.user-tag,
.deputy-tag {
flex-shrink: 0;
margin-right: 4px;
height: 22px;
line-height: 22px;
padding: 0 6px;
border-radius: 3px;
transform: scale(0.9);
transform-origin: left center;
color: #ffffff;
background-color: $primary-color;
}
.deputy-tag {
background-color: #5a8dee;
}
.user-exit,
.user-deputy-add,
.user-deputy-del {
display: flex;
align-items: center;
justify-content: flex-end;
cursor: pointer;
height: 100%;
width: 32px;
opacity: 0;
transform: translateX(50%);
transition: all 0.2s;
&:hover {
> i {
color: $primary-text-color;
}
}
> i {
display: flex;
align-items: center;
justify-content: center;
width: 22px;
height: 22px;
font-size: 14px;
color: $primary-desc-color;
border: 1px solid #dddddd;
border-radius: 50%;
}
}
}
}
}
.group-info-button {
display: flex;
align-items: center;
justify-content: center;
margin: 18px 24px;
cursor: pointer;
> button {
margin: 0 8px;
}
}
}
body.window-portrait {
.dialog-group-info {
.group-info-user {
> ul {
> li {
&:hover {
background-color: transparent;
}
.user-exit,
.user-deputy-add,
.user-deputy-del {
opacity: 1;
transform: translateX(0);
}
}
}
}
}
}