Files
jcgl-dev/docs/frontend/_src/style-after.scss
T
zfjia 329e27b515 初始提交:三端设计文档与 dev 代码基线
docs/:系统梳理、架构优化方案、CR-02 三端功能设计修订(含 §15 三端一致性同步与平台统计分析)、公寓端/应用端/平台端分册、公寓统计分析与排名报表、公寓端小步迭代开发计划(IT-0~IT-8)

dev/:RuoYi-Vue-master(后端)与 RuoYi-Vue2-master(前端)官方上游基线,未改动
2026-11-10 13:43:05 +08:00

1071 lines
25 KiB
SCSS
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.
.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; }
}
/* ===================== 体验优化层结束 ===================== */