Files
shanxia2.0/web-admin/src/assets/styles/core/app.scss
T
2026-08-04 15:33:41 +08:00

1986 lines
51 KiB
SCSS
Executable File
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
// 全局样式
html,
body,
#app {
min-height: 100%;
}
body {
font-family:
Inter,
-apple-system,
BlinkMacSystemFont,
'Segoe UI',
Roboto,
sans-serif;
font-size: 14px;
line-height: 1.5;
color: var(--mint-text);
background: var(--mint-bg-page);
}
:root {
--theme-color: var(--mint-primary);
--default-bg-color: var(--mint-bg-page);
--default-box-color: var(--mint-surface);
--art-card-border: var(--mint-border);
--custom-radius: 16px;
--section-bar-title-color: var(--primary-dark, #059669);
--section-bar-border-color: var(--primary, #10b981);
}
/* 区块标题(左绿条):全局文字色与竖条色 */
:is(
.pl-plan-form-section-title,
.pl-arrange-view-title,
.dialog-section-title,
.dlg-view-section-title,
.vehicle-view-section-title,
.personnel-view-card-title,
.cert-view-card-title,
.party-panel__title,
.db-related-table-title,
.db-chart-title,
.pl-plan-feedback-region__title,
.panel-section-title,
.approval-section-title,
.execute-section-title,
.invalid-section-title,
.data-scope-col-title,
.data-scope-summary-heading
) {
color: var(--section-bar-title-color);
border-left-color: var(--section-bar-border-color);
}
.contract-info-section h3,
.dict-view-data-section h3,
.clue-view-follow-section h3,
.system-view-dialog .view-section h3 {
color: var(--section-bar-title-color);
border-left-color: var(--section-bar-border-color);
}
/* 价格/单价/金额 — 全局(含 append-to-body 弹窗,见 ui-conventions「金额与单价千分位输入与展示」) */
.money-display {
color: #dc2626;
font-weight: 600;
}
.money-field-input .el-input__inner,
.money-field-input .el-input__wrapper input {
color: #dc2626 !important;
-webkit-text-fill-color: #dc2626 !important;
font-weight: 600;
}
// 顶部进度条颜色
#nprogress .bar {
z-index: 2400;
background-color: var(--mint-primary);
}
#nprogress .peg {
box-shadow:
0 0 10px var(--theme-color),
0 0 5px var(--theme-color) !important;
}
#nprogress .spinner-icon {
border-top-color: var(--theme-color) !important;
border-left-color: var(--theme-color) !important;
}
// 处理移动端组件兼容性
@media screen and (max-width: 640px) {
* {
cursor: default !important;
}
}
// 背景滤镜
*,
::before,
::after {
--tw-backdrop-blur: ;
--tw-backdrop-brightness: ;
--tw-backdrop-contrast: ;
--tw-backdrop-grayscale: ;
--tw-backdrop-hue-rotate: ;
--tw-backdrop-invert: ;
--tw-backdrop-opacity: ;
--tw-backdrop-saturate: ;
--tw-backdrop-sepia: ;
}
// 色弱模式
.color-weak {
filter: invert(80%);
-webkit-filter: invert(80%);
}
#noop {
display: none;
}
// 语言切换选中样式
.langDropDownStyle {
// 选中项背景颜色
.is-selected {
background-color: var(--art-el-active-color) !important;
}
// 语言切换按钮菜单样式优化
.lang-btn-item {
.el-dropdown-menu__item {
padding-left: 13px !important;
padding-right: 6px !important;
margin-bottom: 3px !important;
}
&:last-child {
.el-dropdown-menu__item {
margin-bottom: 0 !important;
}
}
.menu-txt {
min-width: 60px;
display: block;
}
i {
font-size: 10px;
margin-left: 10px;
}
}
}
// 盒子默认边框
.page-content {
border: 1px solid var(--mint-border) !important;
border-radius: 0 !important;
box-shadow: var(--mint-shadow) !important;
}
@mixin art-card-base($border-color, $shadow: none, $radius-diff: 4px) {
background: var(--default-box-color);
border: 1px solid #{$border-color} !important;
border-radius: calc(var(--custom-radius) + #{$radius-diff}) !important;
box-shadow: #{$shadow} !important;
--el-card-border-color: var(--default-border) !important;
}
.art-card,
.art-card-sm,
.art-card-xs {
border: 1px solid var(--art-card-border);
}
// 盒子边框
[data-box-mode='border-mode'] {
.page-content,
.art-table-card {
border: 1px solid var(--art-card-border) !important;
}
.art-card {
@include art-card-base(var(--art-card-border), none, 4px);
}
.art-card-sm {
@include art-card-base(var(--art-card-border), none, 0px);
}
.art-card-xs {
@include art-card-base(var(--art-card-border), none, -4px);
}
}
// 盒子阴影
[data-box-mode='shadow-mode'] {
.page-content,
.art-table-card {
box-shadow: 0px 0px 4px 0px rgba(0, 0, 0, 0.04) !important;
border: 1px solid var(--art-gray-200) !important;
}
.layout-sidebar {
border-right: 1px solid var(--art-card-border) !important;
}
.art-card {
@include art-card-base(
var(--art-gray-200),
(0 1px 3px 0 rgba(0, 0, 0, 0.03), 0 1px 2px -1px rgba(0, 0, 0, 0.08)),
4px
);
}
.art-card-sm {
@include art-card-base(
var(--art-gray-200),
(0 1px 3px 0 rgba(0, 0, 0, 0.03), 0 1px 2px -1px rgba(0, 0, 0, 0.08)),
2px
);
}
.art-card-xs {
@include art-card-base(
var(--art-gray-200),
(0 1px 2px 0 rgba(0, 0, 0, 0.03), 0 1px 1px -1px rgba(0, 0, 0, 0.08)),
-4px
);
}
}
// 元素全屏
.el-full-screen {
position: fixed;
top: 0;
left: 0;
right: 0;
width: 100vw !important;
height: 100% !important;
z-index: 2300;
margin-top: 0;
padding: 15px;
box-sizing: border-box;
background-color: var(--default-box-color);
display: flex;
flex-direction: column;
}
// 表格卡片
.art-table-card {
flex: 1;
display: flex;
flex-direction: column;
margin-top: 12px;
border-radius: var(--mint-radius) !important;
border: 1px solid var(--mint-border) !important;
box-shadow: var(--mint-shadow) !important;
.el-card__body {
height: 100%;
overflow: hidden;
}
}
// 容器全高
.art-full-height {
height: var(--art-full-height);
display: flex;
flex-direction: column;
@media (max-width: 640px) {
height: auto;
}
}
// 徽章样式
.art-badge {
position: absolute;
top: 0;
right: 20px;
bottom: 0;
width: 6px;
height: 6px;
margin: auto;
background: #ff3860;
border-radius: 50%;
animation: breathe 1.5s ease-in-out infinite;
&.art-badge-horizontal {
right: 0;
}
&.art-badge-mixed {
right: 0;
}
&.art-badge-dual {
right: 5px;
top: 5px;
bottom: auto;
}
}
// 文字徽章样式
.art-text-badge {
position: absolute;
top: 0;
right: 12px;
bottom: 0;
min-width: 20px;
height: 18px;
line-height: 17px;
padding: 0 5px;
margin: auto;
font-size: 10px;
color: #fff;
text-align: center;
background: #fd4e4e;
border-radius: 4px;
&--circle {
right: 8px;
min-width: 18px;
height: 18px;
padding: 0 4px;
line-height: 18px;
border-radius: 999px;
font-size: 10px;
font-weight: 600;
box-sizing: border-box;
}
}
@keyframes breathe {
0% {
opacity: 0.7;
transform: scale(1);
}
50% {
opacity: 1;
transform: scale(1.1);
}
100% {
opacity: 0.7;
transform: scale(1);
}
}
// 修复老机型 loading 定位问题
.art-loading-fix {
position: fixed !important;
top: 0 !important;
left: 0 !important;
right: 0 !important;
bottom: 0 !important;
width: 100vw !important;
height: 100vh !important;
display: flex !important;
align-items: center !important;
justify-content: center !important;
}
.art-loading-fix .el-loading-spinner {
position: static !important;
top: auto !important;
left: auto !important;
transform: none !important;
}
// 去除移动端点击背景色
@media screen and (max-width: 1180px) {
* {
-webkit-tap-highlight-color: transparent;
}
}
.page-head {
margin-bottom: 16px;
h1 {
margin: 0 0 4px;
font-size: 20px;
font-weight: 700;
letter-spacing: -0.02em;
color: var(--mint-text);
}
.page-desc,
.desc {
margin: 0;
color: var(--mint-text-muted);
font-size: 13px;
line-height: 1.45;
max-width: 720px;
}
}
.panel {
background: var(--mint-surface);
border: none;
border-radius: 0;
box-shadow: var(--mint-shadow);
/* 不要用 overflow:hidden:会导致 el-table 右侧固定列(fixed="right")无法正确粘贴/层级错乱 */
overflow: visible;
}
.panel-top {
display: flex;
align-items: center;
justify-content: space-between;
flex-wrap: wrap;
gap: 8px;
padding: 10px 16px;
h2,
h3 {
display: inline-flex;
align-items: center;
gap: 2px;
margin: 0;
font-size: 14px;
font-weight: 600;
color: var(--mint-text);
}
h2 .title-ic,
h3 .title-ic {
width: 22px;
height: 22px;
border-radius: 8px;
display: inline-flex;
align-items: center;
justify-content: center;
background: var(--mint-primary-bg);
color: var(--mint-primary-dark);
border: 1px solid rgba(28, 168, 81, 0.16);
margin-right: 4px;
flex-shrink: 0;
}
h2 .title-ic::before,
h3 .title-ic::before {
content: '';
width: 14px;
height: 14px;
background-color: currentColor;
opacity: 0.95;
mask: var(--panel-title-icon-mask) center / contain no-repeat;
-webkit-mask: var(--panel-title-icon-mask) center / contain no-repeat;
}
h2.title-bar-heading {
gap: 8px;
}
h2.title-bar-heading .title-ic {
display: none !important;
}
h2.title-bar-heading::before {
content: '';
width: 4px;
height: 14px;
border-radius: 999px;
background: var(--mint-primary, #1ca851);
flex-shrink: 0;
}
}
// 面板级胶囊分段 Tab(薄荷绿渐变轨道 + 主色选中,对齐 zkxw 生产工单等页)
.panel-pill-tabs {
// 自定义按钮结构(生产工单 TabBar 等)
&:not(.el-tabs) {
display: flex;
justify-content: center;
margin: 12px 24px 4px;
}
&--start:not(.el-tabs) {
justify-content: flex-start;
}
&--lg:not(.el-tabs) {
margin: 16px 24px 8px;
.panel-pill-tabs__track {
gap: 6px;
padding: 5px;
border-radius: 10px;
}
.panel-pill-tabs__btn {
min-width: 140px;
padding: 10px 28px;
border-radius: 8px;
font-size: 14px;
}
}
&__track {
display: inline-flex;
gap: 4px;
padding: 4px;
background: linear-gradient(180deg, var(--primary-bg, #e6f8ed) 0%, #fff 100%);
border: 1px solid #d4f0de;
border-radius: 8px;
}
&__btn {
position: relative;
display: inline-flex;
align-items: center;
justify-content: center;
min-width: 108px;
padding: 8px 20px;
border: none;
border-radius: 6px;
background: transparent;
font-size: 13px;
font-weight: 500;
line-height: 1.4;
text-align: center;
color: var(--mint-text-muted, #64748b);
cursor: pointer;
white-space: nowrap;
transition:
background 0.15s,
color 0.15s,
box-shadow 0.15s;
&:hover:not(.is-active) {
color: #125a30;
}
&.is-active {
background: var(--primary, #1ca851);
color: #fff;
box-shadow: 0 1px 3px rgba(28, 168, 81, 0.28);
font-weight: 500;
&:hover {
color: #fff;
background: var(--primary, #1ca851);
}
}
}
&__badge {
position: absolute;
top: -5px;
right: -4px;
display: inline-flex;
align-items: center;
justify-content: center;
min-width: 18px;
height: 18px;
padding: 0 5px;
border-radius: 999px;
background: #d97706;
color: #fff;
font-size: 11px;
font-weight: 600;
line-height: 1;
border: 2px solid #d4f0de;
pointer-events: none;
box-sizing: border-box;
}
&__btn.is-active &__badge {
border-color: var(--primary, #1ca851);
}
&__badge--zero {
background: #94a3b8;
}
&__badge--dual {
min-width: 34px;
padding: 0 6px;
font-size: 10px;
letter-spacing: -0.02em;
}
&__btn.is-active &__badge--zero {
background: rgba(255, 255, 255, 0.92);
color: var(--primary-dark, #168f45);
border-color: var(--primary, #1ca851);
}
// el-tabs 结构
&.el-tabs {
> .el-tabs__header {
display: flex;
justify-content: center;
margin: 12px 24px 4px;
padding: 0;
border: none;
}
.el-tabs__nav-wrap {
flex: 0 1 auto;
&::after {
display: none;
}
}
.el-tabs__nav-scroll {
display: flex;
justify-content: center;
}
.el-tabs__nav {
display: inline-flex;
gap: 4px;
float: none;
padding: 4px;
background: linear-gradient(180deg, var(--primary-bg, #e6f8ed) 0%, #fff 100%);
border: 1px solid #d4f0de;
border-radius: 8px;
}
.el-tabs__active-bar {
display: none;
}
.el-tabs__item {
display: inline-flex !important;
align-items: center !important;
justify-content: center !important;
box-sizing: border-box;
min-width: 108px;
height: auto !important;
margin: 0 !important;
padding: 8px 20px !important;
border: none !important;
border-radius: 6px;
font-size: 13px;
font-weight: 500;
line-height: 1.4;
text-align: center !important;
color: var(--mint-text-muted, #64748b);
transition:
background 0.15s,
color 0.15s,
box-shadow 0.15s;
&:hover:not(.is-active) {
color: #125a30;
}
&.is-active {
background: var(--primary, #1ca851);
color: #fff;
box-shadow: 0 1px 3px rgba(28, 168, 81, 0.28);
font-weight: 500;
&:hover {
color: #fff;
background: var(--primary, #1ca851);
}
}
}
}
&--start.el-tabs {
> .el-tabs__header {
justify-content: flex-start;
}
.el-tabs__nav-scroll {
justify-content: flex-start;
}
}
&--lg.el-tabs {
> .el-tabs__header {
margin: 16px 24px 8px;
}
.el-tabs__nav {
gap: 6px;
padding: 5px;
border-radius: 10px;
}
.el-tabs__item {
min-width: 140px;
padding: 10px 28px !important;
border-radius: 8px;
font-size: 14px;
}
}
}
.page-container .panel-tabs {
border-bottom: 1px solid var(--mint-border);
.el-tabs__header {
margin: 0;
padding: 0 16px;
}
.el-tabs__nav-wrap {
padding: 0;
}
.el-tabs__nav-scroll {
padding: 0;
}
.el-tabs__item {
height: 40px;
padding: 0 16px;
&:first-child {
padding-left: 0;
}
}
}
.page-container
:is(
.panel-top h2,
.panel-top h3,
.storage-content-header h3,
.storage-aside__head h2,
.user-dept-aside__head h2
).auto-title-tenant,
.console-container .panel-top h2.auto-title-tenant {
--panel-title-icon-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 22V4a2 2 0 0 1 2-2h8a2 2 0 0 1 2 2v18Z'/%3E%3Cpath d='M6 12H4a2 2 0 0 0-2 2v6a2 2 0 0 0 2 2h2'/%3E%3Cpath d='M18 9h2a2 2 0 0 1 2 2v9a2 2 0 0 1-2 2h-2'/%3E%3Cpath d='M10 6h4'/%3E%3Cpath d='M10 10h4'/%3E%3Cpath d='M10 14h4'/%3E%3Cpath d='M10 18h4'/%3E%3C/svg%3E");
}
.page-container
:is(
.panel-top h2,
.panel-top h3,
.storage-content-header h3,
.storage-aside__head h2,
.user-dept-aside__head h2
).auto-title-dict,
.console-container .panel-top h2.auto-title-dict {
--panel-title-icon-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 19.5A2.5 2.5 0 0 1 6.5 17H20'/%3E%3Cpath d='M6.5 2H20v20H6.5A2.5 2.5 0 0 1 4 19.5v-15A2.5 2.5 0 0 1 6.5 2z'/%3E%3C/svg%3E");
}
.page-container
:is(
.panel-top h2,
.panel-top h3,
.storage-content-header h3,
.storage-aside__head h2,
.user-dept-aside__head h2
).auto-title-role,
.console-container .panel-top h2.auto-title-role {
--panel-title-icon-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z'/%3E%3C/svg%3E");
}
.page-container
:is(
.panel-top h2,
.panel-top h3,
.storage-content-header h3,
.storage-aside__head h2,
.user-dept-aside__head h2
).auto-title-menu,
.console-container .panel-top h2.auto-title-menu {
--panel-title-icon-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='3' width='7' height='7'/%3E%3Crect x='14' y='3' width='7' height='7'/%3E%3Crect x='14' y='14' width='7' height='7'/%3E%3Crect x='3' y='14' width='7' height='7'/%3E%3C/svg%3E");
}
.page-container
:is(
.panel-top h2,
.panel-top h3,
.storage-content-header h3,
.storage-aside__head h2,
.user-dept-aside__head h2
).auto-title-post,
.console-container .panel-top h2.auto-title-post {
--panel-title-icon-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='2' y='7' width='20' height='14' rx='2'/%3E%3Cpath d='M16 7V5a2 2 0 0 0-2-2h-4a2 2 0 0 0-2 2v2'/%3E%3C/svg%3E");
}
.page-container
:is(
.panel-top h2,
.panel-top h3,
.storage-content-header h3,
.storage-aside__head h2,
.user-dept-aside__head h2
).auto-title-unit,
.console-container .panel-top h2.auto-title-unit {
--panel-title-icon-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21 16V8a2 2 0 0 0-1-1.7l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.7l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16z'/%3E%3Cpath d='M3.3 7L12 12l8.7-5'/%3E%3Cpath d='M12 22V12'/%3E%3C/svg%3E");
}
.page-container
:is(
.panel-top h2,
.panel-top h3,
.storage-content-header h3,
.storage-aside__head h2,
.user-dept-aside__head h2
).auto-title-express,
.console-container .panel-top h2.auto-title-express {
--panel-title-icon-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14 18V6a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2v11a1 1 0 0 0 1 1h2'/%3E%3Cpath d='M15 18H9'/%3E%3Cpath d='M19 18h2a1 1 0 0 0 1-1v-3.65a1 1 0 0 0-.22-.624l-3.48-4.35A1 1 0 0 0 17.52 8H14'/%3E%3Ccircle cx='7' cy='18' r='2'/%3E%3Ccircle cx='17' cy='18' r='2'/%3E%3C/svg%3E");
}
.page-container
:is(
.panel-top h2,
.panel-top h3,
.storage-content-header h3,
.storage-aside__head h2,
.user-dept-aside__head h2
).auto-title-dept,
.console-container .panel-top h2.auto-title-dept {
--panel-title-icon-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='5' r='2'/%3E%3Ccircle cx='6' cy='19' r='2'/%3E%3Ccircle cx='18' cy='19' r='2'/%3E%3Cpath d='M12 7v4'/%3E%3Cpath d='m7 15 5-4 5 4'/%3E%3C/svg%3E");
}
.page-container
:is(
.panel-top h2,
.panel-top h3,
.storage-content-header h3,
.storage-aside__head h2,
.user-dept-aside__head h2
).auto-title-list,
.console-container .panel-top h2.auto-title-list {
--panel-title-icon-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M8 6h13'/%3E%3Cpath d='M8 12h13'/%3E%3Cpath d='M8 18h13'/%3E%3Cpath d='M3 6h.01'/%3E%3Cpath d='M3 12h.01'/%3E%3Cpath d='M3 18h.01'/%3E%3C/svg%3E");
}
.page-container .storage-content-header h3 {
display: inline-flex;
align-items: center;
gap: 2px;
margin: 0;
font-size: 14px;
font-weight: 600;
color: var(--mint-text);
.title-ic {
width: 22px;
height: 22px;
border-radius: 8px;
display: inline-flex;
align-items: center;
justify-content: center;
background: var(--mint-primary-bg);
color: var(--mint-primary-dark);
border: 1px solid rgba(28, 168, 81, 0.16);
margin-right: 4px;
flex-shrink: 0;
}
.title-ic::before {
content: '';
width: 14px;
height: 14px;
background-color: currentColor;
opacity: 0.95;
mask: var(--panel-title-icon-mask) center / contain no-repeat;
-webkit-mask: var(--panel-title-icon-mask) center / contain no-repeat;
}
}
.page-container
:is(
.panel-top h2,
.panel-top h3,
.storage-content-header h3,
.storage-aside__head h2,
.user-dept-aside__head h2
).auto-title-operation,
.console-container .panel-top h2.auto-title-operation {
--panel-title-icon-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 20h9'/%3E%3Cpath d='M16.5 3.5a2.1 2.1 0 0 1 3 3L7 19l-4 1 1-4z'/%3E%3C/svg%3E");
}
.page-container
:is(
.panel-top h2,
.panel-top h3,
.storage-content-header h3,
.storage-aside__head h2,
.user-dept-aside__head h2
).auto-title-location,
.console-container .panel-top h2.auto-title-location {
--panel-title-icon-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 21s-7-4.5-7-11a7 7 0 1 1 14 0c0 6.5-7 11-7 11z'/%3E%3Ccircle cx='12' cy='10' r='2.5'/%3E%3C/svg%3E");
}
.page-container
:is(
.panel-top h2,
.panel-top h3,
.storage-content-header h3,
.storage-aside__head h2,
.user-dept-aside__head h2
).auto-title-user,
.console-container .panel-top h2.auto-title-user {
--panel-title-icon-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2'/%3E%3Ccircle cx='12' cy='7' r='4'/%3E%3C/svg%3E");
}
.page-container
:is(
.panel-top h2,
.panel-top h3,
.storage-content-header h3,
.storage-aside__head h2,
.user-dept-aside__head h2
).auto-title-route,
.console-container .panel-top h2.auto-title-route {
--panel-title-icon-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='6' cy='19' r='3'/%3E%3Cpath d='M9 19h8.5a3.5 3.5 0 0 0 0-7h-11a3.5 3.5 0 0 1 0-7H15'/%3E%3Ccircle cx='18' cy='5' r='3'/%3E%3C/svg%3E");
}
.page-container
:is(
.panel-top h2,
.panel-top h3,
.storage-content-header h3,
.storage-aside__head h2,
.user-dept-aside__head h2
).auto-title-settings,
.console-container .panel-top h2.auto-title-settings {
--panel-title-icon-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 15.5a3.5 3.5 0 1 0 0-7 3.5 3.5 0 0 0 0 7z'/%3E%3Cpath d='M19.4 15a1.7 1.7 0 0 0 .3 1.9l.1.1-1.5 2.6-0.2-.1a2 2 0 0 0-2.1.4 1.8 1.8 0 0 0-.6 2v.2H9.6v-.2a1.8 1.8 0 0 0-.6-2 2 2 0 0 0-2.1-.4l-.2.1-1.5-2.6.1-.1A1.7 1.7 0 0 0 4.6 15a1.7 1.7 0 0 0-1.6-1.1H3v-3h.0a1.7 1.7 0 0 0 1.6-1.1 1.7 1.7 0 0 0-.3-1.9l-.1-.1 1.5-2.6.2.1a2 2 0 0 0 2.1-.4 1.8 1.8 0 0 0 .6-2V2h4.8v.2a1.8 1.8 0 0 0 .6 2 2 2 0 0 0 2.1.4l.2-.1 1.5 2.6-.1.1a1.7 1.7 0 0 0-.3 1.9A1.7 1.7 0 0 0 21 10.9h.0v3H21a1.7 1.7 0 0 0-1.6 1.1z'/%3E%3C/svg%3E");
}
.page-container
:is(
.panel-top h2,
.panel-top h3,
.storage-content-header h3,
.storage-aside__head h2,
.user-dept-aside__head h2
).auto-title-category,
.console-container .panel-top h2.auto-title-category {
--panel-title-icon-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 6h16'/%3E%3Cpath d='M4 12h16'/%3E%3Cpath d='M4 18h16'/%3E%3C/svg%3E");
}
.page-container
:is(
.panel-top h2,
.panel-top h3,
.storage-content-header h3,
.storage-aside__head h2,
.user-dept-aside__head h2
).auto-title-box,
.console-container .panel-top h2.auto-title-box {
--panel-title-icon-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21 16V8a2 2 0 0 0-1-1.7l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.7l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16z'/%3E%3Cpath d='M3.3 7L12 12l8.7-5'/%3E%3Cpath d='M12 22V12'/%3E%3C/svg%3E");
}
.page-container
:is(
.panel-top h2,
.panel-top h3,
.storage-content-header h3,
.storage-aside__head h2,
.user-dept-aside__head h2
).auto-title-receipt,
.console-container .panel-top h2.auto-title-receipt {
--panel-title-icon-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 2h12v20l-2-1-2 1-2-1-2 1-2-1-2 1V2z'/%3E%3Cpath d='M8 6h8'/%3E%3Cpath d='M8 10h8'/%3E%3Cpath d='M8 14h6'/%3E%3C/svg%3E");
}
.page-container
:is(
.panel-top h2,
.panel-top h3,
.storage-content-header h3,
.storage-aside__head h2,
.user-dept-aside__head h2
).auto-title-file,
.console-container .panel-top h2.auto-title-file {
--panel-title-icon-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z'/%3E%3Cpath d='M14 2v6h6'/%3E%3C/svg%3E");
}
.page-container
:is(
.panel-top h2,
.panel-top h3,
.storage-content-header h3,
.storage-aside__head h2,
.user-dept-aside__head h2
).auto-title-quote,
.console-container .panel-top h2.auto-title-quote {
--panel-title-icon-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21 15a4 4 0 0 1-4 4H7l-4 3V7a4 4 0 0 1 4-4h10a4 4 0 0 1 4 4z'/%3E%3C/svg%3E");
}
.page-container
:is(
.panel-top h2,
.panel-top h3,
.storage-content-header h3,
.storage-aside__head h2,
.user-dept-aside__head h2
).auto-title-calc,
.console-container .panel-top h2.auto-title-calc {
--panel-title-icon-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='5' y='2' width='14' height='20' rx='2'/%3E%3Cpath d='M9 6h6'/%3E%3Cpath d='M8 10h2'/%3E%3Cpath d='M14 10h2'/%3E%3Cpath d='M8 14h2'/%3E%3Cpath d='M14 14h2'/%3E%3Cpath d='M8 18h8'/%3E%3C/svg%3E");
}
.page-container,
.console-container {
.filter-block {
padding: 12px 16px 10px;
background: var(--mint-surface);
border-bottom: none;
&.is-filter-collapsed {
display: none !important;
}
}
.filter-hint {
margin: 0 0 8px;
font-size: 11px;
color: var(--mint-text-muted);
line-height: 1.35;
}
.filter-grid {
display: grid;
grid-template-columns: repeat(4, minmax(0, 1fr));
gap: 10px 14px;
margin-bottom: 0;
}
.filter-actions-row {
margin-top: 10px;
padding-top: 10px;
display: flex;
align-items: center;
justify-content: space-between;
gap: 10px;
}
.filter-extra {
padding-top: 10px;
margin-top: 8px;
}
.filter-actions {
margin-top: 10px;
padding-top: 10px;
display: flex;
flex-wrap: wrap;
align-items: center;
justify-content: space-between;
gap: 10px;
}
.btn-link,
.btn-filter-toggle {
display: inline-flex;
align-items: center;
gap: 4px;
border: none;
background: transparent;
color: var(--mint-primary-dark);
font-size: 14px;
font-weight: 600;
padding: 0 8px;
height: 36px;
cursor: pointer;
border-radius: 8px;
transition:
background-color 0.2s ease,
color 0.2s ease;
&:hover {
background: var(--mint-primary-bg);
}
&:focus-visible {
outline: 2px solid var(--mint-primary);
outline-offset: 1px;
}
.el-icon {
font-size: 14px;
}
}
.filter-actions-end,
.toolbar-actions,
.list-toolbar-end {
display: flex;
align-items: center;
gap: 8px;
flex-wrap: wrap;
margin-left: auto;
}
.list-toolbar-end {
flex-shrink: 0;
padding-left: 8px;
}
.list-toolbar-end-btn.el-button,
.list-toolbar-end-btn.btn-ghost.el-button {
--el-button-border-color: transparent;
--el-button-hover-border-color: transparent;
--el-button-active-border-color: transparent;
width: 36px;
min-width: 36px;
height: 36px;
padding: 0;
border-radius: 8px;
color: var(--mint-text-muted);
border: none !important;
box-shadow: none;
background: transparent;
.el-icon {
font-size: 16px;
}
&:hover,
&:focus-visible {
color: var(--mint-primary-dark);
border: none !important;
box-shadow: none;
background: var(--mint-primary-bg);
}
&:active {
border: none !important;
box-shadow: none;
}
}
.list-toolbar,
.toolbar {
padding: 0;
background: var(--mint-table-head);
border-bottom: none;
}
.list-toolbar-row,
.toolbar {
padding: 8px 16px;
gap: 8px;
display: flex;
align-items: center;
flex-wrap: wrap;
justify-content: flex-start;
background: var(--mint-table-head);
}
/* 列表工具栏按钮间距统一由 gap 控制,清除 Element 默认相邻按钮 margin */
.list-toolbar-row .el-button + .el-button,
.toolbar .el-button + .el-button,
.toolbar-right .el-button + .el-button,
.toolbar-actions .el-button + .el-button,
.list-toolbar-end .el-button + .el-button,
.filter-actions-end .el-button + .el-button {
margin-left: 0 !important;
}
.list-toolbar-selected,
.toolbar-left {
display: inline-flex;
align-items: center;
gap: 0;
min-height: 36px;
padding: 0 10px 0 0;
margin-right: 4px;
border-right: none;
font-size: 12px;
color: var(--mint-text-muted);
font-weight: 600;
}
.btn-list-filter-toggle {
display: inline-flex;
align-items: center;
justify-content: center;
width: 28px;
height: 28px;
margin-right: 8px;
padding: 0;
border: none;
border-radius: 6px;
background: transparent;
color: var(--mint-text-muted);
cursor: pointer;
flex-shrink: 0;
transition:
background-color 0.2s ease,
color 0.2s ease;
&::before {
content: '';
width: 16px;
height: 16px;
background-color: currentColor;
opacity: 0.95;
mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolygon points='22 3 2 3 10 12.46 10 19 14 21 14 12.46 22 3'/%3E%3C/svg%3E")
center / contain no-repeat;
-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolygon points='22 3 2 3 10 12.46 10 19 14 21 14 12.46 22 3'/%3E%3C/svg%3E")
center / contain no-repeat;
}
&:hover {
color: var(--mint-primary-dark);
background: var(--mint-primary-bg);
}
&[aria-expanded='true'] {
color: var(--mint-primary-dark);
background: var(--mint-primary-bg);
}
&:focus-visible {
outline: 2px solid var(--mint-primary);
outline-offset: 1px;
}
}
.quick-search-group {
display: inline-flex;
align-items: center;
flex-shrink: 0;
margin-right: 8px;
gap: 6px;
.quick-search-input {
width: 280px;
margin-right: 0;
}
.btn-list-filter-toggle {
margin-right: 0;
}
}
.quick-search-input:not(.quick-search-group .quick-search-input) {
width: 280px;
}
.quick-search-input .quick-search-icon {
cursor: pointer;
color: var(--mint-text-muted);
transition: color 0.2s ease;
&:hover {
color: var(--mint-primary-dark);
}
}
.sel-num {
color: var(--mint-primary-dark);
font-weight: 700;
margin: 0 2px;
}
.list-body {
border-top: 1px solid var(--mint-border);
}
.list-wrap {
border-radius: 0;
overflow: visible;
}
/*
* 无分页条时列表区为 panel 末段:裁剪底圆角,避免表格白底盖住 panel 圆角。
* 须同时排除「分页在 list-body 内部」的常见结构,否则 overflow:hidden 会裁切
* 表格横向滚到最右侧时的末列右缘。
*/
.panel
> .list-body.list-wrap:not(:has(+ .pagination.list-pager-bar)):not(:has(+ .list-footer)):not(
:has(.pagination.list-pager-bar)
):not(:has(.list-footer)) {
overflow: hidden;
}
.pagination.list-pager-bar,
.list-footer {
display: flex;
flex-wrap: wrap;
align-items: center;
justify-content: flex-end;
gap: 8px 12px;
margin-top: 0;
padding: 10px 16px 12px;
border-top: none;
background: var(--mint-surface);
border-radius: 0;
}
/* 分页条左侧说明文案(BX range / 分类 total-count / 已选计数等)与右侧控件区分 */
.pagination.list-pager-bar .list-range,
.pagination.list-pager-bar .total-count {
margin-right: auto;
}
.pagination.list-pager-bar .list-pager-selected {
display: inline-flex;
align-items: center;
flex-shrink: 0;
min-height: 32px;
margin-right: 12px;
font-size: 12px;
font-weight: 600;
color: var(--mint-text-muted);
.sel-num {
margin: 0 2px;
color: var(--mint-primary-dark);
font-weight: 700;
}
}
/* 无 range/total 时,已选单独顶左 */
.pagination.list-pager-bar:not(:has(.list-range)):not(:has(.total-count)) .list-pager-selected {
margin-right: auto;
}
.list-pager {
display: flex;
flex-wrap: wrap;
align-items: center;
justify-content: flex-end;
gap: 8px 12px;
}
.list-pager .list-pager-selected {
display: inline-flex;
align-items: center;
flex-shrink: 0;
min-height: 32px;
margin-right: 12px;
font-size: 12px;
font-weight: 600;
color: var(--mint-text-muted);
.sel-num {
margin: 0 2px;
color: var(--mint-primary-dark);
font-weight: 700;
}
}
.list-pager .list-range {
margin-right: auto;
}
.pagination {
display: flex;
justify-content: flex-end;
margin-top: 0;
padding: 10px 16px 12px;
border-top: none;
background: var(--mint-surface);
}
.search-bar {
background: var(--mint-surface);
border: 1px solid var(--mint-border);
border-radius: 0;
box-shadow: var(--mint-shadow);
}
.detail-hero {
margin-bottom: 14px;
padding: 14px 16px;
border: 1px solid var(--mint-border);
border-radius: 0;
background: var(--mint-primary-bg);
}
.detail-hero-title {
font-size: 16px;
font-weight: 700;
color: var(--mint-text);
}
.detail-hero-meta {
margin-top: 6px;
color: var(--mint-text-muted);
font-size: 13px;
}
.detail-section {
border-radius: 0;
overflow: hidden;
margin-bottom: 14px;
}
}
@media (max-width: 1100px) {
.page-container,
.console-container {
.filter-grid {
grid-template-columns: repeat(2, minmax(0, 1fr));
}
}
}
@media (max-width: 560px) {
.page-container,
.console-container {
.filter-grid {
grid-template-columns: 1fr;
}
.filter-actions-row {
align-items: stretch;
flex-direction: column;
}
}
}
/* 弹窗表单栅格(与 docs/web-admin-ui-spec-fresh-mint.md §9.3.1 / §10.3 一致) */
.form-grid-2 {
display: grid;
grid-template-columns: repeat(2, minmax(0, 1fr));
gap: 12px 20px;
}
.form-grid-3 {
display: grid;
grid-template-columns: repeat(3, minmax(0, 1fr));
gap: 12px 16px;
}
.form-grid-4 {
display: grid;
grid-template-columns: repeat(4, minmax(0, 1fr));
gap: 12px 14px;
}
.form-grid-5 {
display: grid;
grid-template-columns: repeat(5, minmax(0, 1fr));
gap: 12px 12px;
}
.form-grid-6 {
display: grid;
grid-template-columns: repeat(6, minmax(0, 1fr));
gap: 12px 10px;
}
.form-col-span-2 {
grid-column: 1 / -1;
}
/* 弹窗表单:栅格块与后续表单项/栅格块之间保留行间距(与模块弹窗 form-grid row-gap 一致) */
.el-dialog.dialog-form-layout .el-form {
[class*='form-grid-'] + .el-form-item,
[class*='form-grid-'] + [class*='form-grid-'] {
margin-top: 16px;
}
}
/* 表单栅格内 el-input-number 默认约 150px,须拉满与 el-input / el-select 同宽 */
.el-dialog.dialog-form-layout .el-form-item .el-input-number,
.page-container .el-form-item .el-input-number,
.console-container .el-form-item .el-input-number {
width: 100%;
}
.sort-field {
display: flex;
align-items: center;
}
.form-tip {
margin-left: 8px;
color: var(--mint-text-muted);
font-size: 12px;
}
.form-label-tip {
margin-left: 4px;
color: var(--mint-text-muted);
font-size: 12px;
font-weight: 400;
}
@media (max-width: 900px) {
.form-grid-3 {
grid-template-columns: repeat(2, minmax(0, 1fr));
}
.form-grid-4,
.form-grid-5 {
grid-template-columns: repeat(2, minmax(0, 1fr));
}
}
@media (max-width: 560px) {
.form-grid-2,
.form-grid-3,
.form-grid-4,
.form-grid-5 {
grid-template-columns: 1fr;
}
}
/* 标准 CRUD 弹窗:相对视口上下各 20px 留白,正文区纵向滚动 */
.el-dialog.dialog-form-layout {
display: flex;
flex-direction: column;
max-height: var(--dialog-max-height, calc(100vh - 40px));
overflow: hidden;
}
.el-dialog.dialog-form-layout .el-dialog__header {
flex-shrink: 0;
}
/* 合同/报价打印弹窗:顶栏更紧凑 */
.el-dialog.generate-print-dialog .el-dialog__header {
padding-top: 10px !important;
padding-bottom: 10px !important;
}
.el-dialog.dialog-form-layout .el-dialog__headerbtn {
display: flex;
align-items: center;
justify-content: center;
top: 4px;
right: 4px;
}
/*
* headerbtn 相对整个 .el-dialog 绝对定位(非 header)。
* 禁止 top:50% / translateY(-50%):会落到弹窗中部被正文挡住,或半截被 overflow 裁掉。
*/
.el-dialog.generate-print-dialog .el-dialog__headerbtn {
top: 8px;
right: 4px;
transform: none;
z-index: 2;
}
.el-dialog.dialog-form-layout .el-dialog__body {
flex: 1;
min-height: 0;
overflow-y: auto;
padding: 18px 22px;
}
.el-dialog.dialog-form-layout .el-dialog__footer {
flex-shrink: 0;
}
/* 标准 CRUD / 大表单弹窗遮罩:顶对齐留白,避免 align-center 高弹窗与顶栏贴齐(protocol-dialog-mask 同构,全局兜底) */
.protocol-dialog-mask,
.lab-test-item-dialog-mask,
.el-overlay:has(.el-dialog.dialog-form-layout),
.el-overlay:has(.el-dialog.system-view-dialog),
.el-overlay:has(.el-dialog.order-module-dialog) {
align-items: flex-start !important;
backdrop-filter: none !important;
.el-overlay-dialog {
margin-top: 0;
margin-bottom: auto;
padding-top: var(--dialog-viewport-inset, 20px);
box-sizing: border-box;
}
.el-dialog.dialog-form-layout,
.el-dialog.order-module-dialog {
max-width: calc(100vw - 48px);
max-height: calc(
100vh - var(--dialog-viewport-inset, 20px) * 2
);
}
}
/* 弹窗异步加载:骨架占位,减轻先小后大 */
.dialog-scroll.is-view-loading,
.dialog-form-body.is-dialog-loading,
.protocol-view-body.is-detail-loading,
.donation-view-body.is-detail-loading,
.product-form-container.is-view-loading {
min-height: min(360px, calc(100vh - 220px));
}
#app-header > div {
background: var(--mint-surface) !important;
}
#app-header .relative.box-border.flex-b {
height: 56px !important;
line-height: 56px !important;
padding: 0 var(--mint-content-padding);
}
#app-header .flex-c.gap-2\.5 {
gap: 10px !important;
}
#app-header .flex-b.w-full,
#app-header .worktab-strip.w-full {
margin-bottom: 0 !important;
padding: 0 24px 10px !important;
}
#app-sidebar .layout-sidebar {
border-right: 1px solid var(--mint-border) !important;
background: var(--mint-surface);
}
.app-layout-portal #app-sidebar {
border-right: 1px solid var(--mint-border, #d9e8e2) !important;
}
.app-layout-portal #app-sidebar .layout-sidebar {
height: 100%;
/* 避免与 #app-sidebar 双边框;竖线由 aside 绘制,不会被 .menu-left 盖住 */
border-right: none !important;
background: var(--mint-surface);
}
#app-sidebar .menu-left .header {
height: 56px;
line-height: 56px;
border-bottom: 1px solid var(--mint-border);
}
/* Portal 一体化顶栏(对齐 zkxw TOP_LEFT 顶栏 56px + Fresh Mint) */
#app-portal-header .portal-header {
background: var(--mint-primary) !important;
}
.app-layout-portal #app-worktab .worktab-strip {
margin-bottom: 0 !important;
padding: 0 24px 4px !important;
}
/* 弹窗 / 抽屉内键值展示:上下布局、深色正文(对齐 zkxw Token 链) */
:is(.el-dialog, .system-view-dialog, .el-drawer) {
.el-form-item__label {
font-size: 13px !important;
}
.view-kv-table th {
font-size: 13px !important;
}
:is(.view-kv, [class*='-view-kv']:not([class*='-grid']), .pl-plan-kv) {
display: flex !important;
flex-direction: column !important;
gap: 4px;
min-width: 0;
font-size: 14px;
align-items: stretch;
dt {
margin: 0;
font-size: 13px !important;
font-weight: 400 !important;
color: var(--mint-text-muted) !important;
line-height: 1.4;
}
dd {
margin: 0;
font-weight: 400;
color: var(--mint-text) !important;
word-break: break-word;
line-height: 1.5;
}
}
.view-field-label {
font-size: 13px !important;
font-weight: 400 !important;
color: var(--mint-text-muted) !important;
line-height: 1.4;
}
/* 查看类弹窗 / 抽屉:value 加粗 */
&:is(.system-view-dialog, [class*='view-dialog'], .workflow-module-dialog),
&.system-view-dialog,
&[class*='view-dialog'],
&.workflow-module-dialog {
:is(.view-kv, [class*='-view-kv']:not([class*='-grid']), .pl-plan-kv) dd,
.pl-plan-view-remark {
font-weight: 600 !important;
}
}
}
/* CRM 弹窗表单:默认 label 左、控件右;label-position="top" 时上下布局 */
.crm-dialog-form {
.el-form-item {
align-items: center;
}
/* 栅格内纵向间距由 gap 承担,避免与 margin 叠加 */
[class*='form-grid-'] > .el-form-item {
margin-bottom: 0;
}
/* 左右布局单行更矮,适当加大栅格行间距 */
[class*='form-grid-'] {
row-gap: 16px;
}
.el-form-item__label {
white-space: normal;
word-break: break-word;
line-height: 1.45;
height: auto !important;
padding-right: 12px;
align-self: center;
}
.el-form-item__content {
min-width: 0;
}
/* 上下布局:覆盖左右布局的对齐与内边距 */
&.el-form--label-top {
.el-form-item {
display: block;
align-items: stretch;
}
.el-form-item__label {
display: block;
width: 100%;
padding-right: 0;
margin-bottom: 4px;
align-self: auto;
line-height: 1.45 !important;
}
}
}
.el-dialog.dialog-form-layout {
.el-form-item__label {
font-size: 13px !important;
color: var(--mint-text) !important;
font-weight: 400 !important;
}
.el-input__inner,
.el-textarea__inner,
.el-select__selected-item {
color: var(--mint-text) !important;
font-weight: 400 !important;
}
.el-input.is-disabled .el-input__inner,
.el-input.is-disabled .el-input__wrapper,
.el-textarea.is-disabled .el-textarea__inner {
color: var(--mint-text) !important;
-webkit-text-fill-color: var(--mint-text) !important;
font-weight: 400 !important;
}
}
/* 弹窗 / 查看态内嵌列表面板(CRM 详情 Tab、表单弹窗、选择器等) */
:is(.el-dialog, .system-view-dialog) {
.list-body.list-wrap {
border-top: 1px solid var(--mint-border);
}
.dialog-list-panel,
.customer-tab-list-panel {
> .list-toolbar:first-child {
border-radius: 0;
overflow: hidden;
}
.list-toolbar {
padding: 0;
background: var(--mint-table-head);
border-bottom: none;
}
.list-toolbar-row {
padding: 8px 16px;
gap: 8px;
display: flex;
align-items: center;
flex-wrap: wrap;
justify-content: flex-start;
}
.list-toolbar-row .el-button + .el-button {
margin-left: 0 !important;
}
.list-toolbar-selected {
display: inline-flex;
align-items: center;
min-height: 36px;
padding: 0;
margin: 0;
border-right: none;
gap: 8px;
flex-wrap: wrap;
}
> .list-body.list-wrap {
overflow: hidden;
border-radius: 0;
}
> .list-body.list-wrap.dialog-list-body-only,
> .list-body.list-wrap.customer-tab-list-body-only {
border-radius: 0;
}
.pagination.list-pager-bar {
margin-top: 0;
padding: 10px 16px 12px;
border-top: none;
background: var(--mint-surface);
border-radius: 0;
display: flex;
justify-content: flex-end;
}
.el-table.list-table {
--el-table-header-bg-color: var(--mint-table-head);
--el-table-border-color: var(--mint-border);
--el-table-row-hover-bg-color: var(--mint-row-hover);
--el-table-text-color: var(--mint-text);
--el-table-header-text-color: var(--mint-text-muted);
font-size: 14px;
width: 100%;
th.el-table__cell {
color: var(--mint-text-muted);
font-size: 13px;
font-weight: 600;
}
td.el-table__cell {
color: var(--mint-text);
font-size: 14px;
font-weight: 500;
.money-display {
color: #dc2626;
font-weight: 600;
}
}
}
.col-actions .cell {
white-space: nowrap;
}
}
/* 区块标题 / 筛选行后紧跟、未包 list-body 的裸 list-table:表头顶部分隔线 */
:is(.dialog-section-title, .dlg-view-section-title) + .list-table.el-table thead th.el-table__cell,
:is(.dialog-section-title, .dlg-view-section-title) + .inline-row + .list-table.el-table thead th.el-table__cell {
border-top: 1px solid var(--mint-border) !important;
}
}
/* 筛选区 label:13px 次要色(对齐 zkxw filter-form 实践;filter-hint 仍为 11px) */
.page-container .filter-block .el-form-item__label,
.console-container .filter-block .el-form-item__label,
.page-container .filter-form .el-form-item__label,
.console-container .filter-form .el-form-item__label,
.el-dialog .filter-block .el-form-item__label,
.el-dialog .filter-form .el-form-item__label {
font-size: 13px !important;
font-weight: 500;
color: var(--mint-text-muted) !important;
}
/* label 在上(如 order 筛选) */
.page-container .filter-form.el-form--label-top .el-form-item__label,
.console-container .filter-form.el-form--label-top .el-form-item__label,
.el-dialog .filter-form.el-form--label-top .el-form-item__label {
padding: 0 0 4px !important;
line-height: 1.2 !important;
height: auto !important;
}
/* label 与输入左右布局:label 右侧留间距 */
.page-container .filter-form:not(.el-form--label-top) .el-form-item__label,
.console-container .filter-form:not(.el-form--label-top) .el-form-item__label,
.el-dialog .filter-form:not(.el-form--label-top) .el-form-item__label,
.page-container .filter-block:not(:has(.el-form--label-top)) .el-form-item__label,
.console-container .filter-block:not(:has(.el-form--label-top)) .el-form-item__label,
.el-dialog .filter-block:not(:has(.el-form--label-top)) .el-form-item__label {
padding: 0 8px 0 0 !important;
line-height: 36px !important;
height: 36px !important;
}
/* 筛选栅格:表单项撑满列宽,控件全宽 */
.page-container .filter-form,
.console-container .filter-form,
.el-dialog .filter-form {
margin: 0;
}
.page-container .filter-grid .el-form-item,
.console-container .filter-grid .el-form-item,
.el-dialog .filter-grid .el-form-item {
margin-bottom: 0;
min-width: 0;
width: 100%;
}
.page-container .filter-form:not(.el-form--label-top) .el-form-item,
.console-container .filter-form:not(.el-form--label-top) .el-form-item,
.el-dialog .filter-form:not(.el-form--label-top) .el-form-item {
align-items: center;
}
.page-container .filter-form .el-form-item__content,
.console-container .filter-form .el-form-item__content,
.el-dialog .filter-form .el-form-item__content {
flex: 1;
min-width: 0;
}
.page-container .filter-form .el-form-item__content > .el-input,
.page-container .filter-form .el-form-item__content > .el-select,
.page-container .filter-form .el-form-item__content > .el-date-editor,
.page-container .filter-form .el-form-item__content > .el-tree-select,
.page-container .filter-form .el-form-item__content > .el-cascader,
.page-container .filter-form .el-form-item__content > .el-input-number,
.console-container .filter-form .el-form-item__content > .el-input,
.console-container .filter-form .el-form-item__content > .el-select,
.console-container .filter-form .el-form-item__content > .el-date-editor,
.console-container .filter-form .el-form-item__content > .el-tree-select,
.console-container .filter-form .el-form-item__content > .el-cascader,
.console-container .filter-form .el-form-item__content > .el-input-number,
.el-dialog .filter-form .el-form-item__content > .el-input,
.el-dialog .filter-form .el-form-item__content > .el-select,
.el-dialog .filter-form .el-form-item__content > .el-date-editor,
.el-dialog .filter-form .el-form-item__content > .el-tree-select,
.el-dialog .filter-form .el-form-item__content > .el-cascader,
.el-dialog .filter-form .el-form-item__content > .el-input-number {
width: 100%;
}
.page-container .filter-form .el-select .el-select__wrapper,
.page-container .filter-form .el-tree-select .el-select__wrapper,
.console-container .filter-form .el-select .el-select__wrapper,
.console-container .filter-form .el-tree-select .el-select__wrapper,
.el-dialog .filter-form .el-select .el-select__wrapper,
.el-dialog .filter-form .el-tree-select .el-select__wrapper {
width: 100%;
}
.page-container .filter-block .filter-hint,
.console-container .filter-block .filter-hint {
color: var(--mint-text-muted);
}
.list-column-setting-popover.el-popper {
padding: 12px 14px 10px;
}
.list-column-setting {
display: flex;
flex-direction: column;
gap: 10px;
}
.list-column-setting-head {
display: flex;
align-items: center;
justify-content: space-between;
gap: 8px;
}
.list-column-setting-title {
font-size: 13px;
font-weight: 600;
color: var(--mint-text);
}
.list-column-setting-reset {
font-size: 12px;
padding: 0 4px;
}
.list-column-setting-check-all {
padding-bottom: 8px;
border-bottom: 1px solid var(--mint-border);
}
.list-column-setting-list {
display: flex;
flex-direction: column;
gap: 6px;
padding-top: 2px;
}
.list-column-setting-item {
display: flex;
margin-right: 0;
width: 100%;
}