/* ====== 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; } /* === 用户栏 === */ .box-top { height: auto; width: 100%; padding: 20px 24px; border-bottom: none; background: linear-gradient(135deg, rgba(79,70,229,0.04) 0%, rgba(59,130,246,0.04) 100%); border-radius: var(--acc-radius); display: flex; align-items: center; margin-bottom: 8px; } .right-name { display: flex; align-items: center; justify-content: space-between; width: 100%; } .name-text { font-size: 20px; font-weight: 700; line-height: 1.4; color: var(--acc-text-primary) !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 === */ .basic, .account, .oauth { padding: 24px; margin-top: 0; background: var(--acc-surface); border: 1px solid var(--acc-border); border-radius: var(--acc-radius); margin-bottom: 16px; } .basic { margin-top: 24px; } .account { margin-top: 0 !important; } .oauth { margin-top: 0; } .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 === */ .basic > .el-row, .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 空白列 */ .basic > .el-row > .el-col-3, .account > .el-row > .el-col-3 { display: none !important; } /* 让 el-col 填满 Grid 列 */ .basic > .el-row > .el-col, .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; } /* === 输入框 — 圆角边框 === */ .box-item-b > .el-input, .box-item-b .el-select, .box-item-b .el-textarea { width: 100% !important; border: none; border-bottom: none; } .box-item-b .el-input__inner { height: 40px; padding: 0 12px; border: 1px solid var(--acc-border) !important; border-radius: var(--acc-radius-sm) !important; background: var(--acc-surface) !important; font-size: 14px; color: var(--acc-text-primary); transition: all var(--acc-transition); } .box-item-b .el-input__inner:hover { border-color: var(--acc-border-hover) !important; } .box-item-b .el-input__inner:focus { border-color: var(--acc-border-focus) !important; box-shadow: 0 0 0 3px rgba(79,70,229,0.08); outline: none; } /* Select 输入框 */ .box-item-b .el-select .el-input__inner { border: 1px solid var(--acc-border) !important; border-radius: var(--acc-radius-sm) !important; } /* Textarea */ .box-item-b .el-textarea .el-textarea__inner { padding: 10px 12px; border: 1px solid var(--acc-border) !important; border-radius: var(--acc-radius-sm) !important; font-size: 14px; transition: all var(--acc-transition); 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; } }