docs/:系统梳理、架构优化方案、CR-02 三端功能设计修订(含 §15 三端一致性同步与平台统计分析)、公寓端/应用端/平台端分册、公寓统计分析与排名报表、公寓端小步迭代开发计划(IT-0~IT-8) dev/:RuoYi-Vue-master(后端)与 RuoYi-Vue2-master(前端)官方上游基线,未改动
762 lines
14 KiB
SCSS
762 lines
14 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: -2;
|
|
}
|
|
|
|
.top-left-action-row {
|
|
margin-top: -2;
|
|
}
|
|
|
|
/* 中间时间信息区域 */
|
|
.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(-2px) !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 {
|
|
background: linear-gradient(135deg, #66b3ff, #409EFF) !important;
|
|
box-shadow: 0 8px 25px rgba(64, 158, 255, 0.5) !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%;
|
|
}
|
|
|
|
|