341 lines
5.6 KiB
CSS
341 lines
5.6 KiB
CSS
.main-top-grid {
|
|||
|
|
display: grid;
|
||
|
|
grid-template-columns: minmax(0, 1fr) minmax(340px, 1fr);
|
||
|
|
gap: 20px;
|
||
|
|
align-items: stretch;
|
||
|
|
}
|
||
|
|
|
||
|
|
.workbench-panel,
|
||
|
|
.records-panel {
|
||
|
|
background: #ffffff;
|
||
|
|
border-radius: 20px;
|
||
|
|
border: 1px solid #e5e7eb;
|
||
|
|
padding: 28px;
|
||
|
|
}
|
||
|
|
|
||
|
|
.panel-header {
|
||
|
|
display: flex;
|
||
|
|
justify-content: space-between;
|
||
|
|
align-items: flex-start;
|
||
|
|
gap: 16px;
|
||
|
|
margin-bottom: 24px;
|
||
|
|
}
|
||
|
|
|
||
|
|
.column-header {
|
||
|
|
padding-bottom: 18px;
|
||
|
|
border-bottom: 1px solid #eef2f7;
|
||
|
|
margin-bottom: 22px;
|
||
|
|
}
|
||
|
|
|
||
|
|
.panel-metric-card {
|
||
|
|
min-width: 240px;
|
||
|
|
min-height: 56px;
|
||
|
|
padding: 12px 16px;
|
||
|
|
border-radius: 16px;
|
||
|
|
background: #f8fbff;
|
||
|
|
border: 1px solid #e3ebf7;
|
||
|
|
display: flex;
|
||
|
|
align-items: center;
|
||
|
|
gap: 12px;
|
||
|
|
}
|
||
|
|
|
||
|
|
.panel-metric-label {
|
||
|
|
font-size: 13px;
|
||
|
|
color: #64748b;
|
||
|
|
}
|
||
|
|
|
||
|
|
.panel-metric-value {
|
||
|
|
font-size: 28px;
|
||
|
|
line-height: 1;
|
||
|
|
font-weight: 700;
|
||
|
|
color: #2563eb;
|
||
|
|
margin-left: auto;
|
||
|
|
}
|
||
|
|
|
||
|
|
.metric-eye-button {
|
||
|
|
width: 32px;
|
||
|
|
height: 32px;
|
||
|
|
border: 0;
|
||
|
|
border-radius: 999px;
|
||
|
|
background: transparent;
|
||
|
|
display: inline-flex;
|
||
|
|
align-items: center;
|
||
|
|
justify-content: center;
|
||
|
|
color: #94a3b8;
|
||
|
|
cursor: pointer;
|
||
|
|
transition: all 0.2s ease;
|
||
|
|
}
|
||
|
|
|
||
|
|
.metric-eye-button svg {
|
||
|
|
width: 18px;
|
||
|
|
height: 18px;
|
||
|
|
}
|
||
|
|
|
||
|
|
.metric-eye-button.is-hidden {
|
||
|
|
color: #c0cad8;
|
||
|
|
}
|
||
|
|
|
||
|
|
.metric-eye-button:hover {
|
||
|
|
background: rgba(37, 99, 235, 0.08);
|
||
|
|
color: #2563eb;
|
||
|
|
}
|
||
|
|
|
||
|
|
.panel-title {
|
||
|
|
font-size: 18px;
|
||
|
|
font-weight: 600;
|
||
|
|
color: #2563eb;
|
||
|
|
}
|
||
|
|
|
||
|
|
.panel-subtitle {
|
||
|
|
margin-top: 8px;
|
||
|
|
font-size: 14px;
|
||
|
|
color: #6b7280;
|
||
|
|
}
|
||
|
|
|
||
|
|
.workbench-form {
|
||
|
|
display: flex;
|
||
|
|
flex-direction: column;
|
||
|
|
gap: 20px;
|
||
|
|
}
|
||
|
|
|
||
|
|
.field-row {
|
||
|
|
display: grid;
|
||
|
|
grid-template-columns: 1fr;
|
||
|
|
gap: 16px;
|
||
|
|
}
|
||
|
|
|
||
|
|
.field-row-split {
|
||
|
|
grid-template-columns: minmax(0, 1fr) 180px;
|
||
|
|
}
|
||
|
|
|
||
|
|
.field-group {
|
||
|
|
display: flex;
|
||
|
|
flex-direction: column;
|
||
|
|
gap: 10px;
|
||
|
|
}
|
||
|
|
|
||
|
|
.field-group-quantity {
|
||
|
|
min-width: 0;
|
||
|
|
}
|
||
|
|
|
||
|
|
.field-group label {
|
||
|
|
font-size: 14px;
|
||
|
|
font-weight: 600;
|
||
|
|
color: #334155;
|
||
|
|
}
|
||
|
|
|
||
|
|
.field-error-tip {
|
||
|
|
font-size: 12px;
|
||
|
|
color: #ef4444;
|
||
|
|
margin-top: 6px;
|
||
|
|
}
|
||
|
|
|
||
|
|
.field-primary :deep(.el-input__wrapper),
|
||
|
|
.field-row :deep(.el-input__wrapper),
|
||
|
|
.field-row :deep(.el-input-number .el-input__wrapper) {
|
||
|
|
min-height: 58px;
|
||
|
|
border-radius: 14px;
|
||
|
|
box-shadow: 0 0 0 1px #dbe4f0 inset;
|
||
|
|
}
|
||
|
|
|
||
|
|
.field-primary :deep(.el-input__inner),
|
||
|
|
.field-row :deep(.el-input__inner),
|
||
|
|
.field-row :deep(.el-input-number .el-input__inner) {
|
||
|
|
font-size: 18px;
|
||
|
|
}
|
||
|
|
|
||
|
|
.field-primary :deep(.el-input__wrapper.is-focus),
|
||
|
|
.field-row :deep(.el-input__wrapper.is-focus),
|
||
|
|
.field-row :deep(.el-input-number .el-input__wrapper.is-focus) {
|
||
|
|
box-shadow: 0 0 0 1px var(--el-color-primary) inset;
|
||
|
|
}
|
||
|
|
|
||
|
|
.quantity-input {
|
||
|
|
width: 100%;
|
||
|
|
}
|
||
|
|
|
||
|
|
.quantity-input :deep(.el-input__wrapper) {
|
||
|
|
padding-right: 40px;
|
||
|
|
overflow: hidden;
|
||
|
|
}
|
||
|
|
|
||
|
|
.quantity-input :deep(.el-input-number__increase),
|
||
|
|
.quantity-input :deep(.el-input-number__decrease) {
|
||
|
|
right: 1px;
|
||
|
|
width: 36px;
|
||
|
|
margin: 0;
|
||
|
|
background: #f8fafc;
|
||
|
|
color: #94a3b8;
|
||
|
|
border-left: 1px solid #dbe4f0;
|
||
|
|
box-shadow: none;
|
||
|
|
}
|
||
|
|
|
||
|
|
.quantity-input :deep(.el-input-number__increase) {
|
||
|
|
top: 1px;
|
||
|
|
height: calc(50% - 0.5px);
|
||
|
|
border-top-right-radius: 13px;
|
||
|
|
border-bottom: 1px solid #e5edf6;
|
||
|
|
}
|
||
|
|
|
||
|
|
.quantity-input :deep(.el-input-number__decrease) {
|
||
|
|
bottom: 1px;
|
||
|
|
height: calc(50% - 0.5px);
|
||
|
|
border-bottom-right-radius: 13px;
|
||
|
|
}
|
||
|
|
|
||
|
|
.quantity-input :deep(.el-input-number__increase:hover),
|
||
|
|
.quantity-input :deep(.el-input-number__decrease:hover) {
|
||
|
|
color: var(--el-color-primary);
|
||
|
|
background: #f1f5f9;
|
||
|
|
}
|
||
|
|
|
||
|
|
.field-label-row {
|
||
|
|
display: flex;
|
||
|
|
align-items: center;
|
||
|
|
justify-content: space-between;
|
||
|
|
gap: 12px;
|
||
|
|
}
|
||
|
|
|
||
|
|
.lock-switch {
|
||
|
|
display: inline-flex;
|
||
|
|
align-items: center;
|
||
|
|
gap: 10px;
|
||
|
|
font-size: 13px;
|
||
|
|
color: #64748b;
|
||
|
|
}
|
||
|
|
|
||
|
|
.action-row {
|
||
|
|
display: flex;
|
||
|
|
gap: 12px;
|
||
|
|
}
|
||
|
|
|
||
|
|
.action-row :deep(.el-button) {
|
||
|
|
min-width: 160px;
|
||
|
|
border-radius: 12px;
|
||
|
|
}
|
||
|
|
|
||
|
|
.dashboard-header {
|
||
|
|
display: flex;
|
||
|
|
align-items: center;
|
||
|
|
justify-content: space-between;
|
||
|
|
gap: 12px;
|
||
|
|
margin-bottom: 16px;
|
||
|
|
}
|
||
|
|
|
||
|
|
.dashboard-title {
|
||
|
|
font-size: 18px;
|
||
|
|
font-weight: 600;
|
||
|
|
color: #111827;
|
||
|
|
}
|
||
|
|
|
||
|
|
.dashboard-caption {
|
||
|
|
font-size: 13px;
|
||
|
|
color: #94a3b8;
|
||
|
|
}
|
||
|
|
|
||
|
|
.station-grid {
|
||
|
|
display: grid;
|
||
|
|
grid-template-columns: repeat(2, minmax(0, 1fr));
|
||
|
|
gap: 12px;
|
||
|
|
}
|
||
|
|
|
||
|
|
.station-card {
|
||
|
|
display: flex;
|
||
|
|
align-items: center;
|
||
|
|
gap: 12px;
|
||
|
|
padding: 14px 16px;
|
||
|
|
border-radius: 14px;
|
||
|
|
background: #ffffff;
|
||
|
|
border: 1px solid #e6edf6;
|
||
|
|
}
|
||
|
|
|
||
|
|
.station-icon {
|
||
|
|
width: 34px;
|
||
|
|
height: 34px;
|
||
|
|
border-radius: 999px;
|
||
|
|
display: inline-flex;
|
||
|
|
align-items: center;
|
||
|
|
justify-content: center;
|
||
|
|
background: #e8f1ff;
|
||
|
|
color: #3b82f6;
|
||
|
|
font-size: 13px;
|
||
|
|
font-weight: 700;
|
||
|
|
flex-shrink: 0;
|
||
|
|
}
|
||
|
|
|
||
|
|
.station-info {
|
||
|
|
display: flex;
|
||
|
|
flex-direction: column;
|
||
|
|
min-width: 0;
|
||
|
|
}
|
||
|
|
|
||
|
|
.station-info strong {
|
||
|
|
font-size: 16px;
|
||
|
|
color: #1f2937;
|
||
|
|
}
|
||
|
|
|
||
|
|
.station-card b {
|
||
|
|
margin-left: auto;
|
||
|
|
font-size: 32px;
|
||
|
|
line-height: 1;
|
||
|
|
color: #2563eb;
|
||
|
|
}
|
||
|
|
|
||
|
|
.records-header {
|
||
|
|
margin-bottom: 20px;
|
||
|
|
}
|
||
|
|
|
||
|
|
.records-panel :deep(.el-table) {
|
||
|
|
--el-table-border-color: #eef2f7;
|
||
|
|
--el-table-header-bg-color: #f8fafc;
|
||
|
|
}
|
||
|
|
|
||
|
|
.records-panel :deep(.el-table th.el-table__cell) {
|
||
|
|
font-weight: 600;
|
||
|
|
color: #475569;
|
||
|
|
}
|
||
|
|
|
||
|
|
.records-panel :deep(.el-table td.el-table__cell) {
|
||
|
|
padding-top: 14px;
|
||
|
|
padding-bottom: 14px;
|
||
|
|
}
|
||
|
|
|
||
|
|
@media (max-width: 1024px) {
|
||
|
|
.panel-header,
|
||
|
|
.field-label-row,
|
||
|
|
.dashboard-header {
|
||
|
|
flex-direction: column;
|
||
|
|
align-items: flex-start;
|
||
|
|
}
|
||
|
|
|
||
|
|
.panel-metric-card {
|
||
|
|
width: 100%;
|
||
|
|
min-width: 0;
|
||
|
|
}
|
||
|
|
|
||
|
|
.main-top-grid,
|
||
|
|
.station-grid {
|
||
|
|
grid-template-columns: 1fr;
|
||
|
|
}
|
||
|
|
|
||
|
|
.field-row-split {
|
||
|
|
grid-template-columns: 1fr;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
@media (max-width: 768px) {
|
||
|
|
.workbench-panel,
|
||
|
|
.records-panel {
|
||
|
|
padding: 18px;
|
||
|
|
border-radius: 16px;
|
||
|
|
}
|
||
|
|
|
||
|
|
.action-row {
|
||
|
|
flex-wrap: wrap;
|
||
|
|
}
|
||
|
|
|
||
|
|
.action-row :deep(.el-button) {
|
||
|
|
width: 100%;
|
||
|
|
}
|
||
|
|
}
|