// fullinter.less - 修复后的完整样式 @font-face { font-family: pangmenzhengdao; src: url('../assets/fonts/pangmenzhengdao.ttf'); } @font-face { font-family: '阿里妈妈东方大楷 Regular'; font-weight: normal; src: url('../assets/fonts/AlimamaDongFangDaKai-Regular.ttf') format('truetype'); font-display: swap; } @font-face { font-family: '站酷庆科黄油体'; font-weight: normal; src: url('../assets/fonts/zhankuqingke.ttf') format('truetype'); font-display: swap; } // 主容器 .box { transform-origin: 0 0; position: absolute; left: 50%; top: 50%; transition: 0.3s; } .blackBack { width: 100%; height: 100%; background-size: cover; background-position: center; background-repeat: no-repeat; } .backImage { background-color: #f2f5f9; width: 100%; height: 100%; display: flex; flex-direction: column; overflow: hidden; } // 头部 .header { height: 60px; display: flex; align-items: center; justify-content: space-between; flex-direction: row; margin: 10px; background-color: #fff; flex-shrink: 0; } .headerText { color: #000; font-size: 32px; white-space: nowrap; font-weight: bold; } .configBanners { width: 110px; height: 48px; font-size: 20px; margin: 0px 10px; font-style: italic; font-weight: bold; color: #000; border: 1px solid transparent; white-space: nowrap; background: #e3f2e9; display: flex; align-items: center; justify-content: center; text-align: center; box-sizing: border-box; padding: 0 2px; overflow: hidden; text-overflow: ellipsis; position: relative; cursor: pointer; &:hover { border-color: #00caf7; opacity: 0.9; } &.active { border: 1px solid #00caf7 !important; background: linear-gradient(to bottom, #01408e, #07295e); color: #fff; } &::after { content: ''; position: absolute; top: 0; left: -100%; width: 100%; height: 100%; background: linear-gradient(90deg, transparent, rgba(0, 202, 247, 0.2), transparent); transition: left 0.5s ease; } &.active::after { left: 100%; } &.active { animation: pulse 2s infinite; } } @keyframes pulse { 0% { box-shadow: 0 0 5px rgba(0, 202, 247, 0.5); } 50% { box-shadow: 0 0 15px rgba(0, 202, 247, 0.8); } 100% { box-shadow: 0 0 5px rgba(0, 202, 247, 0.5); } } // 其他tab内容 .otherTabContent { flex: 1; display: flex; align-items: center; justify-content: center; background: rgba(2, 20, 40, 0.7); border-radius: 10px; margin: 0px 10px 10px 10px; border: 1px solid rgba(0, 202, 247, 0.3); } // ========== HomeContent 组件样式 ========== .homeContentWrapper { flex: 1; width: 100%; overflow: hidden; padding: 0 10px 10px 10px; box-sizing: border-box; } .homeContentRow { height: 100%; width: 100%; } // 左右列通用样式 .leftCol, .rightCol, .middleCol { height: 100%; display: flex; flex-direction: column; overflow: hidden; } // 左侧和右侧卡片样式 .riskCard { flex: 1; background-color: #fff; border-radius: 4px; overflow: hidden; min-height: 0; } .hiddenCard { flex: 1; background-color: #fff; border-radius: 4px; overflow: hidden; margin-top: 10px; min-height: 0; } .dangerCard { flex: 1; background-color: #fff; border-radius: 4px; overflow: hidden; min-height: 0; } .spacer { height: 10px; flex-shrink: 0; } .riskRow { height: 100%; width: 100%; } .riskStatsCol, .hiddenStatsCol, .trainingStatsCol { height: 100%; display: flex; flex-direction: column; justify-content: space-between; padding: 10px 0; } .chartCol { height: 100%; display: flex; align-items: center; justify-content: center; } .chartContainer { width: 100%; height: 100%; min-height: 0; } .fullChartContainer { width: 100%; height: 100%; min-height: 0; } // 风险等级统计项 .riskStatItem { display: flex; flex-direction: column; align-items: center; justify-content: center; font-weight: bold; color: #fff; margin: 10px 20px; padding: 5px 10px; border-radius: 4px; flex: 1; } .riskStatName { margin-bottom: 5px; font-size: 16px; } .riskStatValue { font-size: 26px; } // 风险等级背景色 .riskLevel重大风险 { background-color: #c92a2a; } .riskLevel较大风险 { background-color: #ffa94d; } .riskLevel一般风险 { background-color: #ffe066; } .riskLevel低风险 { background-color: #4285f4; } // 隐患统计样式 .hiddenTitle { color: #000; font-size: 16px; margin: 10px 0; font-weight: bold; text-align: center; } .hiddenStatItem { display: flex; flex-direction: column; align-items: center; justify-content: center; font-weight: bold; color: #fff; background-color: #1e2a3a; margin: 10px 20px; padding: 5px 10px; border-radius: 4px; flex: 1; } .hiddenStatName { margin-bottom: 5px; font-size: 14px; } .hiddenStatValue { font-size: 36px; } // 培训统计样式 .trainingTitle { color: #000; font-size: 16px; margin: 10px 0; font-weight: bold; text-align: center; } .trainingStatItem { display: flex; flex-direction: column; align-items: center; justify-content: center; font-weight: bold; color: #fff; background-color: #1e2a3a; margin: 10px 20px; padding: 5px 10px; border-radius: 4px; flex: 1; } .trainingStatName { margin-bottom: 5px; font-size: 14px; } .trainingStatValue { font-size: 36px; } // 中间区域样式 .middleCol { padding: 0 10px; } .sloganCard { background-color: #fff; border-radius: 4px; padding: 15px; text-align: center; flex-shrink: 0; } .sloganText { font-size: 20px; font-weight: bold; margin-bottom: 8px; color: #000; } .sloganSubText { font-size: 20px; font-weight: bold; color: #000; } .carouselCard { flex: 4; background-color: #fff; border-radius: 4px; margin-top: 10px; overflow: hidden; min-height: 0; } .carouselWrapper { position: relative; width: 100%; height: 100%; } .carousel { width: 100%; height: 100%; } .carouselItem { width: 100%; height: 100%; } .mediaVideo { width: 100%; height: 100%; object-fit: cover; } .mediaImage { width: 100%; height: 100%; object-fit: cover; } .announcementCard { flex: 3; background-color: #fff; border-radius: 4px; margin-top: 10px; display: flex; flex-direction: column; overflow: hidden; min-height: 0; } .announcementHeader { width: 100%; padding: 12px 16px; border-bottom: 2px solid #1890ff; display: flex; align-items: center; justify-content: space-between; flex-shrink: 0; } .announcementTitle { display: flex; align-items: center; } .announcementIcon { font-size: 20px; color: #1890ff; margin-right: 8px; } .announcementTitle span { font-size: 20px; font-weight: bold; color: #1890ff; } .announcementCount { font-size: 14px; color: #999; } .announcementList { flex: 1; overflow-y: auto; padding: 8px 0; } .announcementUl { list-style: none; margin: 0; padding: 0; } .announcementItem { display: flex; align-items: center; justify-content: space-between; padding: 10px 16px; border-bottom: 1px solid #f0f0f0; cursor: pointer; transition: background-color 0.3s; &:hover { background-color: #f5f5f5; } } .announcementItemTitle { font-size: 18px; color: #333; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; flex: 1; text-align: left; } .announcementItemTime { font-size: 16px; color: #999; margin-left: 16px; white-space: nowrap; } .emptyAnnouncement { display: flex; flex-direction: column; align-items: center; justify-content: center; height: 100%; color: #999; } .emptyIcon { font-size: 48px; margin-bottom: 16px; } // 轮播图控件 .customArrowLeft, .customArrowRight { position: absolute; top: 50%; transform: translateY(-50%); width: 40px; height: 60px; display: flex; align-items: center; justify-content: center; cursor: pointer; z-index: 10; transition: all 0.3s ease; backdrop-filter: blur(4px); &:hover { background-color: rgba(0, 0, 0, 0.3); transform: translateY(-50%) scale(1.1); } &:active { transform: translateY(-50%) scale(0.95); } } .customArrowLeft { left: 20px; } .customArrowRight { right: 20px; } .customDots { position: absolute; bottom: 16px; left: 0; right: 0; display: flex; justify-content: center; align-items: center; gap: 12px; z-index: 10; } .dot { width: 24px; height: 6px; border-radius: 5px; background-color: rgba(255, 255, 255, 0.5); cursor: pointer; transition: all 0.3s ease; &:hover { background-color: rgba(255, 255, 255, 0.8); transform: scale(1.2); } } .activeDot { width: 24px; border-radius: 5px; background-color: rgba(255, 255, 255, 0.8); } // 全局 Carousel 样式 :global { .ant-carousel { height: 100%; width: 100%; } .slick-slider { height: 100%; width: 100%; } .slick-list { height: 100%; } .slick-track { height: 100%; } .slick-slider > div, .slick-list > div, .slick-track > div, .slick-slide > div { height: 100%; } .slick-slide, .slick-slide > div { height: 100%; } .slick-slider div, .slick-list div, .slick-track div { height: 100%; } } // fullinter.less - 在文件末尾添加以下样式 // ========== TrainingContent 组件样式 ========== .trainingContentWrapper { flex: 1; width: 100%; height: 100%; overflow: hidden; padding: 0 10px 10px 10px; box-sizing: border-box; } .trainingGrid { width: 100%; height: 100%; display: flex; flex-direction: column; gap: 10px; } .trainingRow { flex: 1; display: flex; gap: 10px; min-height: 0; } .trainingCard { flex: 1; min-width: 0; // 防止内容溢出 background-color: #fff; border-radius: 8px; overflow: hidden; box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08); transition: box-shadow 0.3s ease; min-height: 0; display: flex; flex-direction: column; position: relative; overflow: hidden; &:hover { box-shadow: 0 4px 16px rgba(0, 0, 0, 0.12); } } .trainingChartContainer { width: 100%; height: 100%; min-height: 0; } // 月份选择器样式 .monthSelectorWrapper { position: absolute; top: 15px; left: 20px; z-index: 10; display: flex; align-items: center; background: rgba(255, 255, 255, 0.9); padding: 4px 12px; // border-radius: 20px; // box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1); } .monthSelectorLabel { font-size: 13px; color: #333; margin-right: 8px; font-weight: 500; } .monthSelect { .ant-select-selector { border-radius: 16px !important; border-color: #4285f4 !important; &:hover { border-color: #66bb6a !important; } } }