docs/:系统梳理、架构优化方案、CR-02 三端功能设计修订(含 §15 三端一致性同步与平台统计分析)、公寓端/应用端/平台端分册、公寓统计分析与排名报表、公寓端小步迭代开发计划(IT-0~IT-8) dev/:RuoYi-Vue-master(后端)与 RuoYi-Vue2-master(前端)官方上游基线,未改动
1071 lines
25 KiB
SCSS
1071 lines
25 KiB
SCSS
|
||
.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; }
|
||
}
|
||
/* ===================== 体验优化层结束 ===================== */
|