Files
BlackFruit-UI/clientarea/hgcloud/css/account.css
yiqiu 3c2559fb29
All checks were successful
continuous-integration/drone/push Build is passing
fix: #account高特异性选择器确保CSS覆盖生效
- 卡片分组改用#account前缀+!important
- 用户名颜色用三层选择器确保#111827生效
- 输入框样式用#account前缀+硬编码值
- Grid布局用#account前缀
- 卡片背景改为#FAFBFC区分白色底
2026-03-21 11:24:34 +08:00

840 lines
18 KiB
CSS

/* ====== Account Page — 高级简约风重构 ====== */
/* === 设计令牌 === */
:root {
--acc-bg: #F8F9FB;
--acc-surface: #FFFFFF;
--acc-border: #E5E7EB;
--acc-border-hover: #D1D5DB;
--acc-border-focus: var(--color-primary, #4F46E5);
--acc-text-primary: #111827;
--acc-text-secondary: #6B7280;
--acc-text-tertiary: #9CA3AF;
--acc-radius: 10px;
--acc-radius-sm: 8px;
--acc-shadow: 0 1px 3px rgba(0,0,0,0.04), 0 1px 2px rgba(0,0,0,0.06);
--acc-shadow-md: 0 4px 12px rgba(0,0,0,0.06);
--acc-transition: 200ms ease-out;
}
/* === 页面标题 === */
.main-card-title {
font-size: 22px;
line-height: 1.3;
font-weight: 700;
color: var(--acc-text-primary);
letter-spacing: -0.01em;
}
/* === 概要卡片容器 === */
.content-box {
margin-top: 24px;
}
/* === 用户栏 === */
#account .box-top {
height: auto !important;
width: 100% !important;
padding: 20px 24px !important;
border-bottom: none !important;
background: linear-gradient(135deg, rgba(79,70,229,0.04) 0%, rgba(59,130,246,0.04) 100%) !important;
border-radius: 10px !important;
display: flex !important;
align-items: center !important;
margin-bottom: 8px !important;
}
.right-name {
display: flex;
align-items: center;
justify-content: space-between;
width: 100%;
}
.name-text,
#account .name-text,
#account .box-top .right-name .name-text {
font-size: 20px !important;
font-weight: 700 !important;
line-height: 1.4 !important;
color: #111827 !important;
}
.name-country {
margin-top: 4px;
display: flex;
align-items: center;
}
.country-img {
height: 16px;
width: 24px;
border-radius: 2px;
object-fit: cover;
}
/* === 实名认证状态 === */
.attestation-status {
display: inline-flex;
align-items: center;
cursor: pointer;
padding: 6px 14px;
background: var(--acc-surface);
border: 1px solid var(--acc-border);
border-radius: 999px;
transition: all var(--acc-transition);
gap: 6px;
}
.attestation-status:hover {
border-color: var(--acc-border-focus);
box-shadow: 0 0 0 3px rgba(79,70,229,0.08);
}
.attestation-status > img {
width: 18px;
height: 18px;
}
.attestation-text {
cursor: pointer;
font-size: 13px;
color: var(--acc-text-secondary);
margin-left: 0;
}
.bule-text {
color: var(--color-primary) !important;
font-weight: 600;
}
.bule-text .el-icon-arrow-right {
margin-left: 4px;
}
/* === Tabs 样式覆盖 === */
.content-box .el-tabs__header {
margin-bottom: 0;
border-bottom: 1px solid var(--acc-border);
}
.content-box .el-tabs__nav-wrap::after {
display: none;
}
.content-box .el-tabs__item {
font-size: 14px;
font-weight: 500;
color: var(--acc-text-secondary);
padding: 0 24px;
height: 44px;
line-height: 44px;
transition: color var(--acc-transition);
}
.content-box .el-tabs__item:hover {
color: var(--acc-text-primary);
}
.content-box .el-tabs__item.is-active {
color: var(--acc-text-primary);
font-weight: 600;
}
.content-box .el-tabs__active-bar {
height: 2px;
border-radius: 2px;
background: var(--color-primary, #4F46E5);
}
/* === 主内容区 === */
.box-main {
margin-top: 0;
padding: 0;
}
/* === 分组区块 — 基础资料/账户信息/OAuth === */
#account .basic,
#account .account,
#account .oauth {
padding: 24px !important;
margin-top: 0 !important;
background: #FAFBFC !important;
border: 1px solid #E5E7EB !important;
border-radius: 10px !important;
margin-bottom: 16px !important;
}
#account .basic { margin-top: 24px !important; }
#account .account { margin-top: 0 !important; }
#account .oauth { margin-top: 0 !important; }
#account .wx-switch { margin-top: 0; padding: 0 24px 24px; }
/* === 分组标题 === */
.account-title,
.basic-title {
border-left: 3px solid var(--color-primary, #4F46E5);
padding-left: 12px;
font-size: 15px;
line-height: 1.3;
font-weight: 600;
color: var(--acc-text-primary);
margin-bottom: 4px;
}
/* === 表单行 — 改用 Grid === */
#account .basic > .el-row,
#account .account > .el-row {
display: grid !important;
grid-template-columns: 1fr 1fr 1fr !important;
gap: 16px 20px !important;
margin-top: 20px !important;
}
/* 隐藏 el-col span=3 空白列 */
#account .basic > .el-row > .el-col-3,
#account .account > .el-row > .el-col-3 {
display: none !important;
}
/* 让 el-col 填满 Grid 列 */
#account .basic > .el-row > .el-col,
#account .account > .el-row > .el-col {
width: 100% !important;
max-width: 100% !important;
flex: none !important;
padding: 0 !important;
}
/* OAuth 横排 */
.oauth-box {
margin-top: 20px;
display: grid !important;
grid-template-columns: 1fr 1fr 1fr !important;
gap: 16px 20px;
}
.oauth-box > .box-item {
width: 100% !important;
max-width: 100% !important;
flex: none !important;
padding: 0 !important;
}
/* === 表单项 === */
.box-item {
display: flex;
flex-direction: column;
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'PingFang SC', sans-serif;
}
.box-item-t {
font-size: 13px;
font-weight: 500;
height: auto;
color: var(--acc-text-secondary);
margin-bottom: 8px;
display: flex;
align-items: center;
gap: 8px;
}
/* Switch 在标题中 */
.box-item-t .el-switch {
margin-left: auto;
}
/* === 输入框 — 圆角边框 === */
#account .box-item-b > .el-input,
#account .box-item-b .el-select,
#account .box-item-b .el-textarea {
width: 100% !important;
border: none !important;
border-bottom: none !important;
}
#account .box-item-b .el-input__inner {
height: 40px !important;
padding: 0 12px !important;
border: 1px solid #E5E7EB !important;
border-radius: 8px !important;
background: #FFFFFF !important;
font-size: 14px !important;
color: #111827 !important;
transition: all 200ms ease-out;
}
#account .box-item-b .el-input__inner:hover {
border-color: #D1D5DB !important;
}
#account .box-item-b .el-input__inner:focus {
border-color: var(--color-primary, #4F46E5) !important;
box-shadow: 0 0 0 3px rgba(79,70,229,0.08) !important;
outline: none !important;
}
/* Select 输入框 */
#account .box-item-b .el-select .el-input__inner {
border: 1px solid #E5E7EB !important;
border-radius: 8px !important;
}
/* Textarea */
#account .box-item-b .el-textarea .el-textarea__inner {
padding: 10px 12px !important;
border: 1px solid #E5E7EB !important;
border-radius: 8px !important;
font-size: 14px !important;
transition: all 200ms ease-out;
min-height: 80px;
}
.box-item-b .el-textarea .el-textarea__inner:hover {
border-color: var(--acc-border-hover) !important;
}
.box-item-b .el-textarea .el-textarea__inner:focus {
border-color: var(--acc-border-focus) !important;
box-shadow: 0 0 0 3px rgba(79,70,229,0.08);
}
/* 禁用输入 */
.box-item-b .el-input.is-disabled .el-input__inner {
background: var(--acc-bg) !important;
color: var(--acc-text-tertiary);
cursor: not-allowed;
}
/* === 编辑图标 === */
.edit-icon {
cursor: pointer;
padding: 8px;
font-size: 14px;
color: var(--acc-text-tertiary);
transition: color var(--acc-transition);
}
.edit-icon:hover {
color: var(--color-primary, #4F46E5);
}
.el-input__suffix {
display: flex;
align-items: center;
}
/* === 保存按钮 === */
.btn-save {
width: 120px;
height: 40px;
margin-top: 8px;
margin-left: 24px;
margin-bottom: 24px;
background: var(--color-primary, #4F46E5) !important;
border: none !important;
border-radius: var(--acc-radius-sm) !important;
color: #ffffff;
font-size: 14px;
font-weight: 600;
display: inline-flex;
align-items: center;
justify-content: center;
transition: all var(--acc-transition);
box-shadow: 0 1px 3px rgba(79,70,229,0.2);
}
.btn-save:hover {
transform: translateY(-1px);
box-shadow: 0 4px 12px rgba(79,70,229,0.3) !important;
}
.btn-save:active {
transform: translateY(0);
}
/* === Popconfirm 修复 === */
.el-popconfirm .el-popconfirm__main {
margin: 14px 0;
}
.el-popconfirm .el-popconfirm__action .el-button {
display: initial !important;
}
/* === 链接文字 === */
.a-text {
color: var(--acc-text-primary);
font-size: 14px;
}
.a-text:hover {
color: var(--color-primary, #4F46E5);
cursor: pointer;
text-decoration: none;
}
/* === 搜索栏 — 操作日志 === */
.com-search {
display: flex;
justify-content: flex-end;
padding: 16px 0;
}
.com-search .el-input {
width: 280px !important;
margin-left: 0 !important;
}
.com-search .el-input .el-input__inner {
border: 1px solid var(--acc-border) !important;
border-radius: var(--acc-radius-sm) !important;
height: 36px;
font-size: 13px;
}
/* === 消息搜索栏 === */
.msg-search {
display: flex;
align-items: center;
justify-content: space-between;
padding: 16px 0;
gap: 12px;
flex-wrap: wrap;
}
.msgsearch-left {
display: flex;
align-items: center;
gap: 8px;
}
.msgsearch-left .el-button {
border-radius: var(--acc-radius-sm);
border: 1px solid var(--acc-border);
color: var(--acc-text-primary);
font-size: 13px;
font-weight: 500;
padding: 8px 14px;
transition: all var(--acc-transition);
}
.msgsearch-left .el-button:hover {
border-color: var(--color-primary, #4F46E5);
color: var(--color-primary, #4F46E5);
background: rgba(79,70,229,0.04);
}
.msgsearch-right {
display: flex;
align-items: center;
gap: 8px;
}
.msgsearch-right .el-select {
width: 160px;
margin-right: 0;
}
.msgsearch-right .el-select .el-input__inner {
border: 1px solid var(--acc-border) !important;
border-radius: var(--acc-radius-sm) !important;
height: 36px;
}
.msgsearch-right .el-input {
width: 220px !important;
}
.msgsearch-right .el-input .el-input__inner {
border: 1px solid var(--acc-border) !important;
border-radius: var(--acc-radius-sm) !important;
height: 36px;
}
.msgsearch-right .search-btn {
background: var(--color-primary, #4F46E5);
font-size: 13px;
font-weight: 500;
color: #fff;
border: none;
border-radius: var(--acc-radius-sm);
padding: 8px 18px;
transition: all var(--acc-transition);
}
.msgsearch-right .search-btn:hover {
box-shadow: 0 2px 8px rgba(79,70,229,0.25);
}
/* === 表格 === */
.content_table {
border-radius: var(--acc-radius);
overflow: hidden;
}
.tabledata .el-table {
border-radius: var(--acc-radius) !important;
overflow: hidden;
margin-bottom: 16px !important;
}
.tabledata .el-table th {
background: var(--acc-bg) !important;
font-size: 12px;
font-weight: 600;
color: var(--acc-text-secondary);
text-transform: uppercase;
letter-spacing: 0.04em;
padding-left: 16px !important;
}
.tabledata .el-table td {
padding-left: 16px !important;
font-size: 14px;
color: var(--acc-text-primary);
}
tr > td {
padding-left: 16px !important;
}
th {
padding-left: 16px !important;
}
/* === 消息状态 === */
.msg-status {
margin-right: 4px;
font-size: 12px;
}
.is-read {
color: var(--acc-text-tertiary);
}
.no-read {
color: var(--color-primary, #4F46E5);
font-weight: 600;
}
/* === 弹窗 === */
.el-dialog {
border-radius: var(--acc-radius) !important;
overflow: hidden;
box-shadow: var(--acc-shadow-md) !important;
}
.el-dialog__body {
padding: 24px 32px;
font-size: 14px;
}
.dialog-title {
font-size: 18px;
font-weight: 700;
color: var(--acc-text-primary);
padding: 24px 32px 0;
}
.mian-form {
margin-top: 20px;
}
.dialog-footer {
display: flex;
justify-content: flex-end;
gap: 10px;
padding: 16px 32px 24px;
}
.dialog-footer .btn-ok {
background: var(--color-primary, #4F46E5) !important;
border: none !important;
border-radius: var(--acc-radius-sm) !important;
color: #fff;
font-weight: 600;
font-size: 14px;
padding: 10px 24px;
transition: all var(--acc-transition);
}
.dialog-footer .btn-ok:hover {
box-shadow: 0 2px 8px rgba(79,70,229,0.25);
}
.dialog-footer .btn-no {
background: var(--acc-surface) !important;
border: 1px solid var(--acc-border) !important;
border-radius: var(--acc-radius-sm) !important;
color: var(--acc-text-primary);
font-weight: 500;
font-size: 14px;
padding: 10px 24px;
transition: all var(--acc-transition);
}
.dialog-footer .btn-no:hover {
border-color: var(--acc-border-hover) !important;
background: var(--acc-bg) !important;
}
/* === 验证码输入 === */
.input-btn {
display: flex;
flex-direction: row;
gap: 8px;
}
.code-btn {
min-width: 100px;
background: rgba(79,70,229,0.06);
border: 1px solid rgba(79,70,229,0.12);
border-radius: var(--acc-radius-sm);
display: flex;
align-items: center;
justify-content: center;
color: var(--color-primary, #4F46E5);
font-size: 13px;
font-weight: 500;
cursor: pointer;
transition: all var(--acc-transition);
margin-left: 0;
}
.code-btn:hover {
background: rgba(79,70,229,0.1);
}
/* === 忘记密码 === */
.forget-pass {
display: flex;
justify-content: flex-end;
line-height: 1;
font-size: 13px;
margin-top: 6px;
color: var(--acc-text-tertiary);
}
.forget-pass > a {
color: var(--color-primary, #4F46E5);
cursor: pointer;
font-weight: 500;
}
/* === 验证码修改密码 Tab === */
.login-top {
display: flex;
flex-direction: row;
margin-top: 20px;
gap: 24px;
border-bottom: 1px solid var(--acc-border);
padding-bottom: 0;
}
.login-email,
.login-phone {
color: var(--acc-text-secondary);
cursor: pointer;
font-size: 14px;
font-weight: 500;
padding-bottom: 10px;
transition: color var(--acc-transition);
}
.login-phone {
margin-left: 0;
}
.active {
color: var(--color-primary, #4F46E5);
padding-bottom: 10px;
border-bottom: 2px solid var(--color-primary, #4F46E5);
}
.form-main {
margin-top: 20px;
}
.form-item {
margin-top: 16px;
}
.code-item {
display: flex;
flex-direction: row;
gap: 8px;
}
.form-item .el-input .el-input__inner {
border: 1px solid var(--acc-border) !important;
border-radius: var(--acc-radius-sm) !important;
height: 40px;
font-size: 14px;
}
.form-item .el-input .el-input__inner:focus {
border-color: var(--acc-border-focus) !important;
box-shadow: 0 0 0 3px rgba(79,70,229,0.08);
}
/* === Select 弹出框 === */
.select-input {
width: auto !important;
min-width: 100px;
}
.code-pass-select {
width: auto;
height: 40px;
border: 1px solid var(--acc-border);
border-right: none;
border-radius: var(--acc-radius-sm) 0 0 var(--acc-radius-sm);
}
/* === 错误提示 === */
.read-item {
margin-top: 12px;
}
.read-item a {
color: var(--color-primary, #4F46E5);
cursor: pointer;
}
/* === MessageBox 覆盖 === */
.el-message-box__btns {
display: flex;
flex-direction: row-reverse;
gap: 8px;
}
.el-message-box__btns > .el-button {
display: inline-block;
margin-left: 0;
}
/* === Form 标签 === */
.el-form-item__label {
font-size: 13px;
font-weight: 500;
color: var(--acc-text-secondary);
}
.custom-form .el-form-item {
margin-bottom: 0;
}
/* === input-with-select 前缀 === */
.input-with-select .el-input-group__prepend {
width: 60px;
border: 1px solid var(--acc-border);
border-right: none;
background: var(--acc-bg);
border-radius: var(--acc-radius-sm) 0 0 var(--acc-radius-sm);
}
/* === 移动端隐藏 === */
.mobel {
display: none;
}
/* === 微信开关 === */
.wx-switch .box-item-t {
display: flex;
align-items: center;
gap: 12px;
font-size: 14px;
color: var(--acc-text-primary);
}
/* ====== Responsive ====== */
@media screen and (max-width: 750px) {
.main-card-title {
font-size: 20px;
}
.name-text {
font-size: 18px;
}
.basic-title,
.account-title {
font-size: 15px;
font-weight: 700;
color: var(--acc-text-primary);
border-left: 3px solid var(--color-primary, #4F46E5);
padding-left: 12px;
}
.box-item-t {
font-size: 13px;
}
.basic > .el-row,
.account > .el-row {
grid-template-columns: 1fr !important;
}
.oauth-box {
grid-template-columns: 1fr !important;
}
.box-item-b > .el-input,
.box-item-b .el-select,
.box-item-b .el-textarea {
width: 100%;
}
.btn-save {
width: 100%;
margin: 16px 24px 24px;
height: 44px;
font-size: 15px;
}
.code-btn {
width: auto;
height: 44px;
font-size: 14px;
}
.dialog-footer {
flex-direction: column;
gap: 8px;
}
.dialog-footer .btn-ok,
.dialog-footer .btn-no {
width: 100%;
height: 44px;
font-size: 15px;
}
.dialog-footer .btn-no {
margin-left: 0;
}
.dialog-title {
font-size: 17px;
}
.basic,
.account,
.oauth {
padding: 16px;
border-radius: var(--acc-radius-sm);
}
.forget-pass {
font-size: 13px;
}
.com-search {
width: 100%;
padding: 12px 0;
}
.com-search .el-input {
margin-left: 0;
width: 100% !important;
}
.msg-search {
flex-direction: column;
align-items: stretch;
}
.msgsearch-right {
flex-wrap: wrap;
}
.msgsearch-right .el-select,
.msgsearch-right .el-input {
width: 100% !important;
}
.mob-searchbar {
margin-top: 16px;
}
.mob-search-input {
height: 44px;
background: var(--acc-bg);
border-radius: var(--acc-radius-sm) var(--acc-radius-sm) 0 0;
}
.mob-search-input > input {
height: 44px;
background: var(--acc-bg);
border-radius: var(--acc-radius-sm) var(--acc-radius-sm) 0 0;
}
.mobel {
display: block;
}
.content_table {
display: none;
}
.mob-tabledata {
display: flex;
flex-direction: column;
border: 1px solid var(--acc-border);
border-radius: 0 0 var(--acc-radius-sm) var(--acc-radius-sm);
}
.mob-tabledata-item {
border-bottom: 1px solid var(--acc-border);
display: flex;
flex-direction: column;
padding: 12px 16px;
}
.mob-item-row {
display: flex;
justify-content: space-between;
margin-top: 8px;
}
.mob-item-row1,
.mob-item-row3,
.mob-item-row-notes {
font-size: 12px;
color: var(--acc-text-tertiary);
}
.mob-item-row2-name {
font-size: 14px;
color: var(--acc-text-primary);
font-weight: 500;
}
.mob-item-row3 {
margin-bottom: 4px;
}
.back-top-img {
width: 40px;
position: fixed;
right: 16px;
bottom: 60px;
}
.bottom-text {
font-size: 13px;
color: var(--acc-text-tertiary);
margin: 16px 0;
display: flex;
justify-content: center;
}
.basic > .el-row:nth-child(3) {
margin-top: 0;
}
.select-input > .el-input--suffix {
width: 120px;
}
.box-top {
padding: 16px;
flex-direction: column;
align-items: flex-start;
gap: 12px;
}
.attestation-status {
width: 100%;
justify-content: center;
}
}