*/}
@@ -99,34 +101,36 @@ const BiScreen = () => {
{/* 地图三个点位信息坐标 start */}
{mockPoints.map((item, index) => (
- {item.id === '00003' ? (
-
-

handleBubbleVisible(item.id)}
- />
-

-
- ) : (
-
-

handleBubbleVisible(item.id)}
- />
-

-
- )}
+ {item.id === "00003"
+ ? (
+
+

handleBubbleVisible(item.id)}
+ />
+

+
+ )
+ : (
+
+

handleBubbleVisible(item.id)}
+ />
+

+
+ )}
{bubbleVisibleMeta[item.id] && (
handleBubbleClose(item.id)}
/>
)}
@@ -138,4 +142,4 @@ const BiScreen = () => {
);
};
-export default BiScreen;
\ No newline at end of file
+export default Connect([NS_BI], true)(BiScreen);
\ No newline at end of file
diff --git a/src/pages/Container/Bi/index.less b/src/pages/Container/Bi/index.less
index b5b2058..f48990c 100644
--- a/src/pages/Container/Bi/index.less
+++ b/src/pages/Container/Bi/index.less
@@ -1,10 +1,8 @@
-/* 驾驶舱专用 - 通用样式规则 */
-
/* 顶部标题区域样式 */
.top-title-area {
box-sizing: border-box;
width: 100%;
- height: 80px;
+ height: 75px;
.top-title-area__back {
width: 65px;
@@ -110,7 +108,7 @@
padding-top: 10px;
width: 100%;
display: grid;
- grid-template-columns: 450px 1fr 450px;
+ grid-template-columns: 422px 1fr 450px;
gap: 8px;
}
@@ -148,45 +146,11 @@
}
}
-// /* 卡片样式 */
-// .card {
-// width: 100%;
-// background: rgba(4, 24, 52, 0.85);
-// border-radius: 8px;
-// box-shadow: 0 0 12px rgba(20, 143, 255, 0.4);
-// overflow: hidden;
-
-// .card-header {
-// width: 100%;
-// height: 38px;
-// background-image: url("../../../assets/images/public/bigScreen/smalltitle.png");
-// background-origin: border-box;
-// background-position: left;
-// background-repeat: no-repeat;
-// background-size: contain;
-
-// .card-header__text {
-// line-height: 35px;
-// padding-left: 25px;
-// font-size: 18px;
-// font-weight: bold;
-// color: #fff;
-// }
-// }
-
-// .card-body {
-// height: calc(100% - 40px);
-// padding: 10px;
-// box-sizing: border-box;
-// }
-// }
-
/* 左侧面板样式 */
.left-panel {
- height: 100%;
display: flex;
flex-direction: column;
- gap: 15px;
+ gap: 5px;
z-index: 100;
}
@@ -199,7 +163,6 @@
.card-header {
width: 100%;
- height: 38px;
background-origin: border-box;
background-position: left;
background-repeat: no-repeat;
@@ -208,52 +171,72 @@
.card-header__text {
line-height: 35px;
- padding-left: 25px;
- font-size: 18px;
+ padding-left: 30px;
+ font-size: 14px;
font-weight: bold;
color: #fff;
}
.weather-card__content {
- padding: 15px;
+ padding: 5px 20px;
+ padding-bottom: 0;
}
.weather-main {
display: flex;
align-items: center;
- gap: 20px;
+ gap: 45px;
margin-bottom: 15px;
}
.weather-icon {
- width: 80px;
- height: 80px;
- background: rgba(255, 255, 255, 0.1);
- border-radius: 50%;
- display: flex;
- align-items: center;
- justify-content: center;
- border: 1px solid #42698f;
+ width: 62px;
+ height: 53px;
+ text-align: center;
+
+ .buttom {
+ width: 100%;
+ height: 20%;
+ color: #fff;
+ font-size: 12px;
+ text-align: center;
+ }
}
-.wind-icon {
- width: 60px;
- height: 60px;
- background: rgba(5, 227, 251, 0.2);
- border-radius: 50%;
- display: flex;
- align-items: center;
- justify-content: center;
- color: #05e3fb;
- font-size: 18px;
- font-weight: bold;
- border: 1px solid #05e3fb;
-}
+
+
.weather-info {
display: flex;
- flex-direction: column;
- gap: 10px;
+ justify-content: flex-start;
+ align-items: center;
+ gap: 45px;
+
+ .weather-info__item {
+ display: flex;
+ justify-content: space-around;
+ align-items: center;
+ gap: 8px;
+
+ &>img {
+ animation: zooming 1.3s infinite ease-in-out;
+ }
+
+ .weather-info__text {
+ color: #fff;
+
+ &>p:nth-child(1) {
+ font-size: 12px;
+ margin: 0;
+ }
+
+ &>p:nth-child(2) {
+ font-size: 18px;
+ color: #00e7ff;
+ margin: 0;
+ }
+ }
+ }
}
.temperature {
@@ -291,45 +274,67 @@
}
.weather-alert {
- padding: 10px;
- background: rgba(255, 87, 34, 0.2);
- border: 1px solid #ff5722;
border-radius: 4px;
}
.weather-alert p {
margin: 0;
font-size: 14px;
- color: #ff5722;
- line-height: 1.4;
+ color: #FE9E00;
}
-/* 防汛状态样式 */
-.flood-control-card {
- @extend .card;
+.alert-control-card {
+
+ .card-body {
+ margin: 0 18px;
+ padding: 0 10px;
+ border: 2px solid transparent;
+ border-image: linear-gradient(to bottom, #24529B, transparent) 1 1;
+ }
}
.table-header {
display: flex;
justify-content: space-between;
- padding: 8px 0;
+ padding: 4px 0;
border-bottom: 1px solid #42698f;
font-weight: bold;
color: #fff;
- font-size: 14px;
+ font-size: 12px;
+}
+
+.table-header span:first-child {
+ width: 30%;
+}
+
+.table-header span:nth-child(2) {
+ width: 20%;
+ text-align: center;
+}
+
+.table-header span:last-child {
+ width: 50%;
+ padding-left: 30px;
+ text-align: left;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ white-space: nowrap;
}
.table-body {
margin-top: 10px;
+ height: 70px;
+ overflow: hidden;
+ position: relative;
+
}
.table-row {
display: flex;
justify-content: space-between;
align-items: center;
- padding: 8px 0;
border-bottom: 1px solid rgba(66, 105, 143, 0.3);
- font-size: 13px;
+ font-size: 12px;
color: #fff;
}
@@ -344,6 +349,7 @@
.table-row span:last-child {
width: 50%;
+ padding-left: 30px;
text-align: right;
overflow: hidden;
text-overflow: ellipsis;
@@ -352,40 +358,36 @@
.status-done {
color: #52c41a;
- background: rgba(82, 196, 26, 0.2);
padding: 2px 8px;
border-radius: 10px;
}
.status-processing {
color: #faad14;
- background: rgba(250, 173, 20, 0.2);
padding: 2px 8px;
border-radius: 10px;
}
.status-pending {
color: #ff4d4f;
- background: rgba(255, 77, 79, 0.2);
padding: 2px 8px;
border-radius: 10px;
}
/* 重大危险源样式 */
.hazards-card {
- @extend .card;
-}
-
-.hazard-list {
- margin-bottom: 15px;
+ .card-body {
+ margin: 5px 18px;
+ padding: 0 10px;
+ }
}
.hazard-item {
display: flex;
align-items: center;
gap: 10px;
- padding: 10px;
- background: rgba(255, 77, 79, 0.1);
+ padding: 5px 10px;
+ background: rgba(19, 47, 112, 0.1);
border: 1px solid #ff4d4f;
border-radius: 4px;
cursor: pointer;
@@ -393,11 +395,6 @@
color: #fff;
}
-.hazard-item.selected {
- background: rgba(255, 77, 79, 0.3);
- border-color: #ff7875;
-}
-
.hazard-icon {
font-size: 20px;
}
@@ -406,17 +403,143 @@
font-size: 14px;
}
-.hazard-stats {
- display: flex;
- gap: 20px;
- margin-bottom: 15px;
+.selected-hazard {
+ margin-bottom: 5px;
}
-.stat-item {
- text-align: center;
+/* 危险源等级统计 */
+.hazard-levels {
+ display: flex;
+ gap: 15px;
+ margin-bottom: 5px;
+}
+
+.hazard-level {
+ flex: 1;
+ background: rgba(19, 47, 112, 0.1);
+ border: 1px solid #42698f;
+ border-radius: 4px;
+ padding: 5px 10px;
+}
+
+.hazard-level__title {
+ font-size: 14px;
+ font-weight: bold;
+ color: #05e3fb;
+ margin-bottom: 8px;
+}
+
+.hazard-level__content {
+ display: flex;
+ flex-direction: column;
+ gap: 4px;
+}
+
+.hazard-level__item {
+ font-size: 12px;
color: #fff;
}
+.tank-status-scroller {
+ height: 114px;
+ overflow: hidden;
+ position: relative;
+}
+
+.tank-status-scroll-content {
+ animation: scroll-up 10s linear infinite;
+}
+
+@keyframes scroll-up {
+ 0% {
+ transform: translateY(0);
+ }
+
+ 100% {
+ transform: translateY(-50%);
+ }
+}
+
+.tank-status-item {
+ display: flex;
+ justify-content: space-between;
+ align-items: center;
+ padding: 8px 10px;
+ background: rgba(19, 47, 112, 0.1);
+ border-bottom: 1px solid rgba(66, 105, 143, 0.3);
+ font-size: 12px;
+ color: #fff;
+ // height: 38px;
+ box-sizing: border-box;
+ flex-shrink: 0;
+}
+
+.tank-status-item:last-child {
+ border-bottom: none;
+}
+
+.tank-status.normal {
+ color: #52c41a;
+ padding: 2px 8px;
+ border-radius: 10px;
+ font-weight: bold;
+}
+
+.tank-status.warning {
+ color: #faad14;
+ padding: 2px 8px;
+ border-radius: 10px;
+ font-weight: bold;
+}
+
+/* 储罐状态和报警处置情况容器 */
+.tank-alarm-container {
+ display: flex;
+ gap: 15px;
+}
+
+.tank-status-list {
+ flex-basis: 50%;
+}
+
+/* 报警处置情况 */
+.alarm-handling {
+ flex-basis: 50%;
+ background: rgba(19, 47, 112, 0.1);
+ border: 1px solid #42698f;
+ border-radius: 4px;
+ padding: 5px 10px;
+}
+
+.alarm-handling__title {
+ font-size: 14px;
+ font-weight: bold;
+ color: #05e3fb;
+ margin-bottom: 8px;
+}
+
+.alarm-handling__content {
+ display: flex;
+ flex-direction: column;
+ gap: 6px;
+}
+
+.alarm-handling__item {
+ display: flex;
+ justify-content: space-between;
+ font-size: 12px;
+ color: #fff;
+}
+
+.item-label {
+ color: #c0c0c0;
+}
+
+.item-value {
+ color: #fff;
+ font-weight: bold;
+}
+
.stat-label {
font-size: 13px;
margin-bottom: 5px;
@@ -519,16 +642,6 @@
font-size: 13px;
}
-/* 领域整改情况统计样式 */
-.domain-rectification-card {
- @extend .card;
-}
-
-.chart-container {
- width: 100%;
- height: 200px;
-}
-
.flow-machine-tooltip {
background: rgba(35, 53, 93, 0.95);
border: 1px solid #42698f;
@@ -551,11 +664,6 @@
color: #05e3fb;
}
-/* 公司作业情况样式 */
-.operation-status-card {
- @extend .card;
-}
-
.operation-status-card .table-header span {
width: 20%;
text-align: center;
@@ -564,140 +672,7 @@
.operation-status-card .table-row span {
width: 20%;
text-align: center;
- font-size: 13px;
-}
-
-/* 中间区域样式 */
-.center-area {
- height: 100%;
- display: flex;
- flex-direction: column;
- gap: 20px;
- z-index: 100;
- box-sizing: border-box;
- width: 100%;
- position: relative;
-
- .center-area__navlist {
- position: absolute;
- top: 73px;
- right: 30px;
- display: flex;
- justify-content: center;
- align-items: center;
- flex-direction: column;
- gap: 3px;
-
- .center-area__navlist__item {
- cursor: pointer;
- width: 157px;
- height: 54px;
- background-image: url("../../../assets/images/public/bigScreen/bg3.png");
- background-origin: border-box;
- background-repeat: no-repeat;
- background-size: contain;
-
- .center-area__navlist__item__title {
- color: #fff;
- font-size: 21px;
- font-weight: bold;
- text-align: center;
- line-height: 50px;
- margin-right: 17px;
- }
- }
- }
-
- .center-area__content {
- width: 100%;
- height: 282px;
- position: absolute;
- bottom: 15px;
- left: 50%;
- transform: translate(-50%, 0);
- display: grid;
- grid-template-columns: repeat(2, 1fr);
- gap: 15px;
-
- .node_style__1 {
- .card-body {
- margin-top: 10px;
-
- .card-body__table {
- width: 100%;
- background: linear-gradient(180deg, #0e1a4f7a, transparent);
-
- .text-ellipsis {
- width: 235px;
- overflow: hidden;
- text-overflow: ellipsis;
- white-space: nowrap;
- }
-
- .card-body__table_thead {
- width: 100%;
- display: flex;
- justify-content: space-between;
- align-items: center;
-
- &>div {
- text-align: start;
- color: #fff;
- padding: 7px;
- font-size: 16px;
- }
-
- &>div:nth-child(1) {
- width: 258px;
- }
- }
-
- .card-body__table_tbody {
- .card-body__table_tbody_scroll {
- width: 100%;
- height: 200px;
- overflow: hidden;
- }
-
- .tbody__item {
- color: #fff;
- width: 100%;
- padding: 12px 5px;
- display: flex;
- justify-content: space-between;
- align-items: center;
-
- &>span:not(:first-child) {
- width: 82px;
- text-align: center;
- }
-
- &>span:nth-child(1) {
- display: inline-block;
- text-align: start;
- }
-
- &>span:nth-child(2) {
- display: inline-block;
- text-align: center;
- }
- }
- }
- }
- }
- }
-
- .node_style__2 {
- .card-body {
- margin-top: 10px;
-
- .echarts_node_2 {
- width: 100%;
- height: 232px;
- }
- }
- }
- }
+ font-size: 12px;
}
/* 右侧面板样式 */
@@ -709,217 +684,6 @@
z-index: 100;
}
-/* 节点样式 */
-.node_style__1,
-.node_style__2,
-.node_style__3,
-.node_style__4 {
- height: calc(33.33% - 13.33px);
-}
-
-/* 节点1样式 */
-.node_style__1 {
- .card-body {
- display: flex;
- justify-content: space-around;
- align-items: center;
-
- .card-body__items {
- text-align: center;
-
- &>p {
- color: #fff;
- }
-
- .card-body__items__title {
- font-size: 16px;
- margin-bottom: 10px;
- }
-
- .card-body__items__imgbox {
- width: 80px;
- height: 40px;
- background-image: url("../../../assets/images/public/bigScreen/bg1.png");
- background-origin: border-box;
- background-repeat: no-repeat;
- background-size: cover;
-
- &>img {
- width: 40px;
- height: 40px;
- animation: moveUpDown 1.3s infinite ease-in-out;
- }
- }
-
- .card-body__items__text {
- display: flex;
- text-align: left;
- margin-top: 10px;
- font-size: 14px;
- color: #fff;
- }
- }
- }
-}
-
-/* 节点2样式 */
-.node_style__2 {
- .card-body {
- margin-top: 8px;
-
- .echarts_node_style_2 {
- width: 100%;
- height: 200px;
- padding: 0 10px;
- }
- }
-}
-
-/* 节点3样式 */
-.node_style__3 {
- .card-body {
- margin-top: 15px;
-
- .card-body__imgbox {
- display: flex;
- align-items: center;
- justify-content: space-between;
- gap: 2px;
-
- .card-body__imgbox__items {
- width: 242px;
- height: 67px;
- background-image: url("../../../assets/images/public/bigScreen/bg4.png");
- background-origin: border-box;
- background-repeat: no-repeat;
- background-size: contain;
- padding: 12px;
- display: flex;
- align-items: center;
- gap: 12px;
-
- &>div>img {
- animation: zooming 1.3s infinite ease-in-out;
- }
-
- .items__content {
- color: #fff;
-
- &>p:nth-child(1) {
- font-size: 15px;
- margin-bottom: 5px;
- }
-
- &>p:nth-child(2) {
- font-size: 18px;
- }
- }
- }
- }
-
- .card-body__count {
- margin-top: 30px;
- display: grid;
- grid-template-columns: repeat(2, 1fr);
- grid-template-rows: repeat(2, 1fr);
- gap: 30px;
-
- .card-body__count__items {
- display: flex;
- justify-content: flex-start;
- align-items: center;
- gap: 8px;
- margin-left: 30px;
-
- .card-body__count_imgbox {
- width: 53px;
- height: 36px;
- background-image: url("../../../assets/images/public/bigScreen/bg2.png");
- background-origin: border-box;
- background-repeat: no-repeat;
- background-size: contain;
-
- &>img {
- animation: moveUpDown__2 1.3s infinite ease-in-out;
- }
- }
-
- .count__content {
- color: #fff;
-
- &>p:nth-child(1) {
- font-size: 15px;
- margin-bottom: 5px;
- }
-
- &>p:nth-child(2) {
- font-size: 18px;
- }
- }
- }
- }
- }
-}
-
-/* 节点4样式 */
-.node_style__4 {
- width: 100%;
- box-sizing: border-box;
-
- .card-body {
- margin-top: 12px;
- width: 100%;
- color: #fff;
-
- .card-body__tabbar {
- display: flex;
- justify-content: flex-end;
- align-items: center;
-
- .tabBarItem {
- cursor: pointer;
- padding: 6px 8px;
- background-color: #00216d;
-
- &:first-child {
- border-radius: 5px 0 0 5px;
- }
-
- &:last-child {
- border-radius: 0 5px 5px 0;
- }
- }
-
- .tabBarItemIndex {
- background-color: #094ed8;
- }
- }
-
- .card-body-tabbar__content {
- width: 100%;
- margin-top: 6px;
-
- .echarts_node_style_4 {
- width: 100%;
- height: 190px;
- }
-
- .echarts_node_style_5 {
- width: 100%;
- height: 190px;
- }
- }
- }
-}
-
-/* 图表容器样式 */
-.echarts_node_style_2,
-.echarts_node_2,
-.echarts_node {
- width: 100%;
- height: 100%;
-}
-
/* 气泡样式 */
.bubble-wrap {
width: 100%;