Files

1070 lines
25 KiB
SCSS
Raw Permalink Normal View History

.marquee-container {
white-space: nowrap;
overflow: hidden;
}
.top-left-marquee-row {
margin-top: 10px;
margin-bottom: 4px;
}
.top-left-search-area {
padding-top: 6px !important;
}
.top-left-input-row {
margin-top: 0;
}
.top-left-action-row {
margin-top: 0;
}
/* 中间时间信息区域 */
.center-time-section {
flex: 0 0 auto;
background: linear-gradient(135deg, #0078d7, #107c10);
color: white;
padding: 12px 16px;
border-radius: 8px;
margin: 0 15px;
min-width: 320px;
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
}
.date-time {
display: flex;
flex-direction: column;
align-items: center;
font-size: 16px;
}
.date-time .text-24 {
font-size: 26px !important;
font-weight: 600;
margin: 0;
line-height: 1.2;
}
/* 响应式调整 */
@media (max-width: 1200px) {
.center-time-section {
min-width: 280px;
padding: 10px 14px;
}
.date-time .text-24 {
font-size: 24px !important;
}
.date-time {
font-size: 14px;
}
}
@media (max-width: 768px) {
.center-time-section {
min-width: 240px;
padding: 8px 12px;
margin: 0 10px;
}
.date-time .text-24 {
font-size: 20px !important;
}
.date-time {
font-size: 12px;
}
}
/* ============ 右下角初始化提示 ============ */
.init-success-tip {
position: fixed;
bottom: 30px;
right: 30px;
z-index: 2000;
background: linear-gradient(135deg, #67c23a, #85ce61);
border-radius: 12px;
box-shadow: 0 8px 30px rgba(103, 194, 58, 0.3);
animation: slideInUp 0.6s ease-out;
backdrop-filter: blur(10px);
}
.init-success-content {
display: flex;
align-items: center;
padding: 12px 20px;
color: white;
font-size: 14px;
font-weight: 600;
text-shadow: 0 1px 2px rgba(0, 0, 0, 0.1);
}
.init-success-content i {
font-size: 18px;
margin-right: 8px;
animation: successPulse 2s infinite;
}
@keyframes successPulse {
0%, 100% {
transform: scale(1);
}
50% {
transform: scale(1.1);
}
}
/* ============ 表单样式(缩小版) ============ */
.form-item-container {
padding: 0 8px;
height: 100%;
display: flex;
flex-direction: column;
justify-content: center;
}
.form-label {
font-size: 14px;
font-weight: 600;
color: #2c3e50;
margin-bottom: 6px;
display: block;
text-align: center;
}
.form-item-container .el-input {
width: 100%;
}
.form-item-container .el-input__inner {
border-radius: 6px !important;
border: 1px solid #dcdfe6 !important;
padding: 8px 12px !important;
font-size: 13px !important;
transition: all 0.3s ease !important;
background: white;
box-shadow: 0 1px 3px rgba(0, 0, 0, 0.08);
height: 32px !important;
}
.form-item-container .el-input__inner:focus {
border-color: #409EFF !important;
box-shadow: 0 0 0 3px rgba(64, 158, 255, 0.1) !important;
}
.form-item-container .el-input__inner:hover {
border-color: #c0c4cc !important;
}
/* 按钮行样式(缩小版)*/
.el-button {
transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1) !important;
position: relative !important;
overflow: hidden !important;
height: 32px !important;
font-size: 13px !important;
}
.el-button:hover {
transform: translateY(-1px) !important;
box-shadow: 0 5px 15px rgba(0, 0, 0, 0.15) !important;
}
.el-button:active {
transform: translateY(0) !important;
}
.buttonFont-small {
font-size: 13px;
font-weight: 600;
position: relative;
z-index: 2;
}
/* 响应式表单设置 */
@media (max-width: 1200px) {
.form-label {
font-size: 13px;
}
.form-item-container .el-input__inner {
padding: 7px 10px !important;
font-size: 12px !important;
height: 30px !important;
}
.init-success-tip {
bottom: 20px;
right: 20px;
}
.init-success-content {
padding: 10px 16px;
font-size: 13px;
}
}
@media (max-width: 768px) {
.form-item-container {
padding: 0 4px;
}
.form-label {
font-size: 12px;
margin-bottom: 4px;
}
.form-item-container .el-input__inner {
padding: 6px 8px !important;
font-size: 11px !important;
height: 28px !important;
}
.el-button {
font-size: 11px !important;
height: 28px !important;
padding: 4px 12px !important;
}
.buttonFont-small {
font-size: 11px;
}
.init-success-tip {
bottom: 15px;
right: 15px;
}
.init-success-content {
padding: 8px 12px;
font-size: 12px;
}
.init-success-content i {
font-size: 14px;
margin-right: 6px;
}
}
.marquee-content {
display: inline-block;
animation: marquee 28s linear infinite;
padding-left: 100%;
color: #fff45c;
font-size: 22px;
font-weight: 800;
line-height: 36px;
text-shadow: 0 2px 4px rgba(0, 0, 0, 0.45);
letter-spacing: 0;
white-space: nowrap;
}
.marquee-repeat-text {
margin-left: 160px;
}
@keyframes warningBlink {
0%, 100% {
opacity: 1;
background-color: #FFF200;
}
50% {
opacity: 1;
background-color: transparent;
}
}
@keyframes marquee {
0% {
transform: translateX(0);
}
100% {
transform: translateX(-200%);
}
}
.el-table__body tr:hover > td {
background-color: inherit !important;
}
.main-jcxx-table th.el-table__cell {
padding-top: 6px !important;
padding-bottom: 6px !important;
}
.main-jcxx-table td.el-table__cell {
padding-top: 5px !important;
padding-bottom: 5px !important;
}
.main-jcxx-table .cell {
line-height: 1.2 !important;
}
.history-jcxx-form-row {
display: flex;
align-items: center;
flex-wrap: nowrap;
justify-content: flex-start;
width: 100%;
column-gap: 6px;
}
.history-jcxx-form-row:first-child {
column-gap: 2px;
}
.history-jcxx-field-box {
width: 226px;
display: flex;
align-items: center;
flex: 0 0 auto;
}
.history-jcxx-inline-label {
width: 58px;
padding-right: 8px;
font-size: 13px;
line-height: 30px;
text-align: right;
white-space: nowrap;
color: #606266;
box-sizing: border-box;
flex: 0 0 auto;
}
.history-jcxx-field-box .el-input {
width: 146px;
}
.history-jcxx-form-row + .history-jcxx-form-row {
margin-top: 2px;
}
.history-jcxx-query-button {
margin-left: 4px;
flex: 0 0 auto;
}
.history-jcxx-filter-box {
width: 230px;
display: flex;
align-items: center;
flex: 0 0 auto;
}
.history-jcxx-filter-label {
width: 72px;
}
.history-jcxx-filter-box .el-select {
width: 140px;
}
.history-jcxx-time-box {
width: 610px;
display: flex;
align-items: center;
flex: 0 0 auto;
}
.history-jcxx-time-label {
width: 60px;
}
.history-jcxx-time-range {
display: flex;
align-items: center;
gap: 6px;
flex-wrap: nowrap;
width: 540px;
}
.history-jcxx-count {
min-width: 180px;
margin-left: 8px;
flex: 0 0 auto;
}
.history-jcxx-form .el-input__inner,
.history-jcxx-form .el-date-editor.el-input__inner,
.history-jcxx-form .el-date-editor .el-range-input,
.history-jcxx-form .el-date-editor .el-range-separator {
font-size: 12px !important;
}
.history-jcxx-form .el-input__inner,
.history-jcxx-form .el-date-editor.el-input__inner,
.history-jcxx-form .el-date-editor--datetimerange {
height: 30px !important;
}
.history-jcxx-form .el-date-editor .el-range__icon,
.history-jcxx-form .el-date-editor .el-range__close-icon {
line-height: 22px !important;
}
.jc-update-dialog .el-dialog {
max-width: calc(100vw - 32px);
}
.jc-update-form .el-row .el-col {
min-height: 40px;
}
.jc-update-form .el-row .el-col > label {
flex: 0 0 96px;
width: 96px !important;
min-width: 96px;
white-space: nowrap;
word-break: keep-all;
text-align: center;
line-height: 20px;
margin-right: 0;
}
.jc-update-form .el-row .el-col > .el-input,
.jc-update-form .el-row .el-col > .el-select {
flex: 1 1 0;
min-width: 0;
}
.jc-update-room {
display: flex;
align-items: center;
}
.jc-update-room > .el-button {
margin-left: 15px;
}
.history-jcxx-table th.el-table__cell {
padding-top: 5px !important;
padding-bottom: 5px !important;
}
.history-jcxx-table td.el-table__cell {
padding-top: 4px !important;
padding-bottom: 4px !important;
}
.history-jcxx-load-tip {
padding: 8px 0 2px;
text-align: center;
color: #909399;
font-size: 12px;
}
.history-jcxx-table .cell {
line-height: 1.15 !important;
}
.leave-snapshot-preview {
display: flex;
justify-content: center;
min-height: 180px;
}
.leave-snapshot-preview img {
max-width: 100%;
max-height: 560px;
object-fit: contain;
}
.leave-snapshot-empty {
padding: 60px 0;
text-align: center;
color: #909399;
}
.item1 {
margin-top: 10px;
}
.bottom-right-div {
width: 200px;
height: 200px;
position: absolute;
bottom: 20px;
right: 20px;
// background-color: #255e39;
padding: 10px;
font-size: 20px;
background-color: #a6b8ac;
border-radius: 10px;
}
.Dialog_JcEvent .el-dialog {
position: fixed;
top: -100px;
left: 100px;
background-color: rgb(222, 226, 230);
}
.Dialog_AlarmEvent .el-dialog {
background-color: rgb(204, 123, 16);
}
.buttonFont {
font-size: 20px;
font-weight: 600;
}
body {
padding: 0 0 0 0 ;
}
.app_contianer {
padding: 0 0 0 0;
}
.bottom-duty-bar {
position: fixed;
bottom: 0;
left: 0;
width: 100%;
height: 50px;
background-color: rgb(2, 145, 145);
display: flex;
align-items: center;
justify-content: space-between;
z-index: 1000;
}
.bottom-stay-summary {
display: flex;
align-items: center;
gap: 80px;
padding-left: 28px;
}
.bottom-stay-summary,
.latest-sync-time {
color: #fff45c;
font-size: 24px;
font-weight: 800;
line-height: 50px;
text-shadow: 0 2px 4px rgba(0, 0, 0, 0.35);
white-space: nowrap;
}
.latest-sync-time {
position: absolute;
left: 50%;
transform: translateX(-50%);
text-align: center;
}
.bottom-duty-info {
flex: 1;
text-align: right;
color: #ffffff;
}
.el-table__body tr.current-row > td {
background-color: #1990f1 !important;
color: #ffffff;
}
.history-jcxx-table .el-table__body tr.current-row > td {
background-color: #0b7dda !important;
color: #ffffff !important;
}
.history-jcxx-table.el-table--striped .el-table__body tr.current-row > td,
.history-jcxx-table.el-table--striped .el-table__body tr.current-row.el-table__row--striped > td {
background-color: #0b7dda !important;
color: #ffffff !important;
}
.red-mask {
background-color: red;
}
.record-button-list {
display: flex;
flex-direction: column;
align-items: center;
gap: 4px;
}
.record-button {
margin-left: 0 !important;
width: 58px;
padding-left: 0 !important;
padding-right: 0 !important;
}
/* 合并后的交路及叫乘提醒。 */
.sync-warning-dialog .el-dialog {
min-width: 620px;
border-radius: 8px;
}
.sync-warning-dialog .el-dialog__header {
background: #fff7e6;
border-bottom: 1px solid #f5c26b;
text-align: center;
}
.sync-warning-dialog .el-dialog__title {
color: #b45309;
font-size: 22px;
font-weight: 700;
}
.sync-warning-content {
max-height: 56vh;
overflow-y: auto;
}
.sync-warning-section + .sync-warning-section {
margin-top: 16px;
padding-top: 14px;
border-top: 1px solid #ebeef5;
}
.sync-warning-category {
margin-bottom: 8px;
color: #b45309;
font-size: 18px;
font-weight: 700;
}
.sync-warning-category i {
margin-right: 6px;
}
.sync-warning-item {
padding: 5px 0 5px 26px;
color: #303133;
font-size: 17px;
line-height: 1.55;
}
/* ============ 优化按钮样式 ============ */
.el-button {
transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1) !important;
position: relative !important;
overflow: hidden !important;
}
.el-button:hover {
transform: translateY(-1px) !important;
box-shadow: 0 8px 20px rgba(64, 158, 255, 0.4) !important;
}
.el-button:active {
transform: translateY(0) !important;
}
/* 查询按钮特殊样式(修正:保留按钮自身渐变,只做亮度与阴影反馈) */
.el-button[style*="linear-gradient"]:hover {
filter: brightness(1.08) !important;
box-shadow: 0 8px 25px rgba(11, 88, 88, 0.28) !important;
}
.el-button[style*="linear-gradient"]:before {
content: '';
position: absolute;
top: 0;
left: -100%;
width: 100%;
height: 100%;
background: linear-gradient(90deg, transparent, rgba(255,255,255,0.3), transparent);
transition: left 0.5s ease;
}
.el-button[style*="linear-gradient"]:hover:before {
left: 100%;
}
/* 响应式按钮优化 */
@media (max-width: 768px) {
.el-button[style*="margin-left"] {
margin-left: 20px !important;
width: 120px;
}
}
.person-photo-panel {
display: flex;
justify-content: center;
align-items: flex-start;
gap: 32px;
}
.person-photo-item {
width: 180px;
text-align: center;
}
.person-photo-title {
height: 24px;
line-height: 24px;
color: #606266;
font-size: 14px;
margin-bottom: 6px;
}
.person-photo-img {
width: 150px;
height: 200px;
object-fit: cover;
border: 1px solid #dcdfe6;
background: #f5f7fa;
}
.jl-add-dialog .el-dialog {
max-width: calc(100vw - 32px);
}
.jl-add-form .el-row .el-col > label,
.jl-add-form .el-row .el-col > div > label {
flex: 0 0 96px;
width: 96px !important;
min-width: 96px;
white-space: nowrap;
word-break: keep-all;
text-align: center;
line-height: 20px;
margin-right: 0;
}
.jl-add-form .el-row .el-col > .el-input,
.jl-add-form .el-row .el-col > .el-select,
.jl-add-form .el-row .el-col > .el-date-editor,
.jl-add-form .el-row .el-col > div > .el-input,
.jl-add-form .el-row .el-col > div > .el-select,
.jl-add-form .el-row .el-col > div > .el-date-editor {
flex: 1 1 0;
}
.jl-add-form .el-row .el-col > div {
width: 100%;
}
.jl-add-form .el-row .el-col > div > .el-input,
.jl-add-form .el-row .el-col > div > .el-select,
.jl-add-form .el-row .el-col > div > .el-date-editor,
.jl-add-form .el-row .el-col > div > .el-time-picker {
width: 100% !important;
min-width: 0;
}
.jl-add-form .el-row .el-col > div > .el-date-editor .el-input__inner {
width: 100%;
}
/* ==========================================================================
JcXx.vue 体验与可用性优化层 v1
--------------------------------------------------------------------------
只修六类问题:布局拥挤/留白失衡、对齐间距不一致、信息层级、
交互反馈缺失、状态提示不明确、多尺寸适配。
· 不新增/删减/替换任何功能,<script> 逐字节未改;
· 不引入新配色:所有色值取自本页原有样式
(#029191 深青 / #0b5858 深青 / #fff45c 黄 / #2c3e50 墨 /
#c45656 红 / #606266 灰 / #dcdfe6 边框 / #1990f1 选中蓝);
· 不改动字号基准、组件形态与信息呈现方式,仅统一不一致处并补齐断点;
· 新增规则统一以 .jc-opt-root / .jc-dialog 收口,不扩大原全局样式的影响面。
原样式规则完整保留在前,本层可整段移除以回到优化前效果。
========================================================================== */
/* ---- O1 顶部:固定 150px + 40px 跑马灯上边距造成的拥挤与留白失衡 ---- */
.jc-header-row{
height:auto !important;
min-height:150px;
display:flex;
flex-wrap:wrap;
align-items:stretch;
}
.jc-header-row > .el-col{
height:auto !important;
min-height:150px;
float:none;
}
.jc-header-search{
justify-content:flex-start !important;
padding:4px 0 8px;
}
.jc-header-time{
display:flex !important;
align-items:center;
justify-content:center;
}
.jc-header-time > .el-row{ width:100%; }
.jc-header-actions{ padding:2px 0; }
.top-left-marquee-row{ margin-top:10px !important; margin-bottom:8px !important; }
.top-left-search-area{
padding:8px 14px 10px !important;
justify-content:flex-start !important;
}
.top-left-input-row{ margin-top:0 !important; margin-bottom:10px !important; }
.top-left-action-row{ margin-top:0 !important; }
.form-item-container{ padding:0 6px; }
/* 原跑马灯 padding-left:100% + translateX(0) 起步,开屏数秒内整条提示为空。
用负动画延时把滚动相位提前,文案/配色/组件/速度全部不变。 */
.marquee-content{ animation-delay:-4s; }
.center-time-section{
width:calc(100% - 30px);
box-sizing:border-box;
margin:0 15px;
}
.date-time{ width:100%; }
/* 右上按钮组:等间距、窄屏可换行,避免互相挤压与文字截断 */
.jc-header-actions .el-row > .el-col > div{
flex-wrap:wrap;
gap:8px !important;
}
.jc-header-actions .el-button{ flex:0 0 auto; }
.jc-user-label{
width:auto !important;
white-space:nowrap;
color:#606266 !important;
font-size:12px !important;
}
/* ---- O2 表单/弹窗:label 宽度 25%/20%/96px 混用导致对齐不一致 ---- */
.jc-opt-root .el-form label[style*="width:25%"],
.jc-opt-root .el-form label[style*="width:20%"],
.jc-dialog .el-form label[style*="width:25%"],
.jc-dialog .el-form label[style*="width:20%"]{
flex:0 0 96px;
width:96px !important;
min-width:96px;
text-align:center;
white-space:nowrap;
line-height:20px;
}
.jc-opt-root .el-form .el-col > .el-input,
.jc-opt-root .el-form .el-col > .el-select,
.jc-opt-root .el-form .el-col > div > .el-input,
.jc-opt-root .el-form .el-col > div > .el-select,
.jc-dialog .el-form .el-col > .el-input,
.jc-dialog .el-form .el-col > .el-select,
.jc-dialog .el-form .el-col > div > .el-input,
.jc-dialog .el-form .el-col > div > .el-select{
flex:1 1 0;
min-width:0;
}
.jc-dialog .el-form-item{ margin-bottom:16px; }
.jc-dialog .el-dialog__footer .el-button + .el-button{ margin-left:12px; }
/* 宽弹窗 1800/1700px 在 1366 及以下屏幕会横向越界 */
.jc-wide-dialog .el-dialog{
max-width:calc(100vw - 32px) !important;
}
/* ---- O3 交互反馈:焦点、hover、禁用 ---- */
.el-button:hover{ transform:translateY(-1px) !important; }
/* 焦点轮廓:element-ui 自身把 outline 压掉了,这里用本页作用域 + !important 补回 */
.jc-opt-root .el-button:focus,
.jc-opt-root .el-button:focus-visible,
.jc-opt-root .el-input__inner:focus,
.jc-opt-root .el-input__inner:focus-visible,
.jc-opt-root .el-checkbox__inner:focus,
.jc-dialog .el-button:focus,
.jc-dialog .el-button:focus-visible,
.jc-dialog .el-input__inner:focus,
.jc-dialog .el-input__inner:focus-visible,
.jc-dialog .el-checkbox__inner:focus{
outline:2px solid #029191 !important;
outline-offset:2px !important;
}
/* 部分浏览器对 input 的 outline 计算值有限制,补一层主色光晕保证焦点可见 */
.jc-opt-root .el-input__inner:focus,
.jc-opt-root .el-input__inner:focus-visible,
.jc-dialog .el-input__inner:focus,
.jc-dialog .el-input__inner:focus-visible{
box-shadow:0 0 0 3px rgba(2,145,145,.22) !important;
}
.el-button.is-disabled,
.el-button[disabled]{
cursor:not-allowed !important;
opacity:.55;
filter:grayscale(.25);
}
.el-button.is-disabled:hover,
.el-button[disabled]:hover{
transform:none !important;
box-shadow:none !important;
}
/* ---- O4 表格:保留行内状态底色,补齐 hover / 选中反馈与列层级 ----
原 .el-table__body tr:hover > td 用 background-color:inherit!important
是为了让 td 继承 tr 上的行内状态色(黄/绿/红/蓝),机制必须保留;
这里只叠加一层半透明 background-image 提供 hover 反馈,不覆盖底色。 */
.jc-opt-root .main-jcxx-table .el-table__body tr:hover > td,
.jc-dialog .el-table__body tr:hover > td{
background-image:linear-gradient(rgba(2,145,145,.10), rgba(2,145,145,.10)) !important;
}
/* 选中行原先用纯蓝底 !important 覆盖,会把报警红/到点黄整行抹掉。
改为「继承行内状态色 + 叠加蓝层 + 首列蓝条」,选中态与状态色可同时辨识。 */
.jc-opt-root .el-table__body tr.current-row > td,
.jc-dialog .el-table__body tr.current-row > td,
.jc-dialog .history-jcxx-table.el-table--striped .el-table__body tr.current-row > td,
.jc-dialog .history-jcxx-table.el-table--striped .el-table__body tr.current-row.el-table__row--striped > td{
background-color:inherit !important;
background-image:linear-gradient(rgba(25,144,241,.30), rgba(25,144,241,.30)) !important;
color:inherit !important;
}
.jc-opt-root .el-table__body tr.current-row > td:first-child,
.jc-dialog .el-table__body tr.current-row > td:first-child{
box-shadow:inset 3px 0 0 #1990f1;
}
/* 状态文字:行内底色已承担语义色,这里只提升字重与对比,不改成标签 */
.jc-st{ font-weight:700; letter-spacing:.3px; }
.jc-st-normal{ color:#2c3e50; }
.jc-st-alarm{ color:#ffffff; text-shadow:0 1px 2px rgba(0,0,0,.35); }
.jc-st-muted{ color:#606266; }
.jc-opt-root .main-jcxx-table th.el-table__cell{
font-weight:700 !important;
border-bottom:2px solid #029191 !important;
vertical-align:middle;
}
.jc-opt-root .main-jcxx-table .cell{ padding-left:6px; padding-right:6px; }
.jc-opt-root .el-tabs__item{ font-weight:600; }
/* ---- O5 吸底值班条:absolute 居中在窄屏与左右内容重叠 ---- */
.jc-opt-root{ padding-bottom:62px; } /* 防止 50px 吸底条遮住表格最后一行 */
.bottom-duty-bar{
display:flex;
align-items:center;
gap:16px;
padding:0 20px;
box-sizing:border-box;
}
.bottom-stay-summary{
flex:1 1 auto;
gap:36px;
padding-left:0;
min-width:0;
}
.latest-sync-time{
position:static !important;
transform:none !important;
flex:0 1 auto;
white-space:nowrap;
}
.bottom-duty-info{
flex:1 1 auto;
display:flex;
align-items:center;
justify-content:flex-end;
gap:16px;
min-width:0;
}
.bottom-duty-info .el-button{
position:static !important;
right:auto !important;
top:auto !important;
flex:0 0 auto;
}
.bottom-duty-info > span{
margin-right:0 !important;
position:static !important;
top:auto !important;
white-space:nowrap;
}
/* ---- O6 右下角「有新的交路信息」提示:改为固定定位并补齐点击反馈 ----
原为 200x200 的 absolute 大色块,滚动后位置漂移且易被吸底条压住。 */
.bottom-right-div{
position:fixed !important;
bottom:72px;
right:20px;
width:200px;
height:auto;
box-sizing:border-box;
padding:14px 16px;
line-height:1.5;
text-align:center;
border:2px solid #029191;
box-shadow:0 6px 18px rgba(0,0,0,.18);
z-index:1200;
cursor:pointer;
transition:transform .25s ease, box-shadow .25s ease;
}
.bottom-right-div:hover{
transform:translateY(-2px);
box-shadow:0 10px 24px rgba(0,0,0,.24);
}
/* ---- O7 响应式:原页只有 1200/768 两档,且顶部 9/6/9 在中屏严重挤压 ---- */
@media (max-width:1440px){
.jc-header-row{ min-height:0; }
.jc-header-row > .el-col{ min-height:0; }
.jc-header-row > .jc-header-search{ flex:1 1 100%; width:100%; }
.jc-header-row > .jc-header-time{ flex:0 0 320px; width:320px; }
.jc-header-row > .jc-header-actions{ flex:1 1 520px; width:auto; }
.center-time-section{ min-width:0; }
}
@media (max-width:1200px){
.bottom-stay-summary{ gap:20px; }
.bottom-stay-summary,.latest-sync-time{ font-size:20px; }
.bottom-duty-info > span{ font-size:20px !important; }
/* 窄屏下 200px 卡片会压住表格右下数据,收紧为贴边小卡 */
.bottom-right-div{
width:150px;
right:8px;
bottom:62px;
padding:8px 10px;
font-size:14px !important;
line-height:1.35;
opacity:.96;
}
}
@media (max-width:992px){
.jc-header-row > .jc-header-time,
.jc-header-row > .jc-header-actions{ flex:1 1 100%; width:100%; }
.jc-header-row .top-left-input-row .el-col-6{ width:50%; }
.bottom-duty-bar{
flex-wrap:wrap;
height:auto !important;
min-height:50px;
padding:6px 12px;
gap:4px 12px;
}
.bottom-stay-summary,.latest-sync-time,.bottom-duty-info > span{
font-size:16px !important;
line-height:1.4;
}
.latest-sync-time{ flex:1 1 100%; order:3; text-align:right; }
.jc-opt-root{ padding-bottom:88px; }
.bottom-right-div{ bottom:96px; }
}
@media (max-width:768px){
.jc-header-row .top-left-input-row .el-col-6{ width:100%; }
.bottom-right-div{ width:160px; font-size:16px !important; }
}
/* 矮屏:600px 固定表高 + 50px 吸底条会溢出,改为可滚动,不改变数据/列/操作 */
@media (max-height:900px){
.jc-opt-root .main-jcxx-table{
height:auto !important;
max-height:calc(100vh - 260px);
}
.jc-opt-root .main-jcxx-table .el-table__body-wrapper{
height:auto !important;
max-height:calc(100vh - 320px);
overflow-y:auto;
}
.jc-dialog .el-dialog__body{
max-height:calc(100vh - 170px);
overflow-y:auto;
}
}
@media (prefers-reduced-motion:reduce){
.marquee-content{
animation:none !important;
padding-left:0 !important; /* 停动画时必须去掉右推,否则整条提示不可见 */
}
.init-success-content i{ animation:none !important; }
.el-button,
.bottom-right-div{ transition:none !important; }
.el-button:hover{ transform:none !important; }
}
/* ===================== 体验优化层结束 ===================== */