ze+#pzg>K(K%RK8=j!)@sJkV5y)Ksy2%qiyjlvg>=2?|RX0?K8n0<88O5~DoD^JoWe
zcTz>2o;sar)^2Df-Cu@H^Faf4?ZFUxqzn2RnjzO9&W%c#r}C@*!;-&1?E{Iz`Knitp7{V
daQoo@e*qMdq~cR23YP!?002ovPDHLkV1ng5Rh0k$
literal 0
HcmV?d00001
diff --git a/src/page/LinePage1_1/assets/icon/inputAndOutput.png b/src/page/LinePage1_1/assets/icon/inputAndOutput.png
new file mode 100644
index 0000000000000000000000000000000000000000..113ed13c16867d83248332c6f38b976481111b10
GIT binary patch
literal 2862
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
literal 0
HcmV?d00001
diff --git a/src/page/LinePage1_1/assets/icon/num.png b/src/page/LinePage1_1/assets/icon/num.png
new file mode 100644
index 0000000000000000000000000000000000000000..e77c4098bc93caa846c3cfbd6d2c2d40091e588b
GIT binary patch
literal 2151
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
P00000NkvXXu0mjf{bcL%
literal 0
HcmV?d00001
diff --git a/src/page/LinePage1_1/assets/icon/y.png b/src/page/LinePage1_1/assets/icon/y.png
new file mode 100644
index 0000000000000000000000000000000000000000..72c796a1eea8c884c76a8b7dc574e0e1db779d8d
GIT binary patch
literal 2299
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
literal 0
HcmV?d00001
diff --git a/src/page/LinePage1_1/index.css b/src/page/LinePage1_1/index.css
new file mode 100644
index 0000000..1a28491
--- /dev/null
+++ b/src/page/LinePage1_1/index.css
@@ -0,0 +1,264 @@
+/* 顶部 */
+.block_top {
+ width: 1920px;
+ height: 94px;
+ background: url(/public/svg/topback.svg) 100% no-repeat;
+ background-size: 100% 100%;
+ opacity: 1;
+ display: flex;
+ justify-content: center;
+}
+
+.block_top_title {
+ width: 651px;
+ height: 77px;
+ background: url(/public/png/topTiltle.png) 100% no-repeat;
+ background-size: 100% 100%;
+ margin-top: 18px;
+}
+/* 中部 */
+.block_bottom {
+ width: 1920px;
+ height: 966px;
+ padding-top: 20px;
+}
+
+.group_left {
+ width: 402px;
+ height: 966px;
+ margin: 0 0 0 24px;
+}
+
+.group_center {
+ width: 1041px;
+ height: 966px;
+ margin: 0 0 0 15px;
+}
+
+.group_right {
+ width: 401px;
+ height: 966px;
+ margin-left: 15px;
+}
+
+.left_up {
+ width: 402px;
+ height: 332px;
+ background: url(../../../public/png/rect/lp_left_up.png) no-repeat;
+ background-size: 100% 100%;
+ background-position: 0 0;
+ position: relative;
+}
+.left_down {
+ width: 402px;
+ height: 599px;
+ background: url(../../../public/png/rect/lp_left_down.png) no-repeat;
+ background-size: 100% 100%;
+ background-position: 0 0;
+ margin-top: 14px;
+ position: relative;
+}
+.center_up {
+ width: 1041px;
+ height: 562px;
+ background: url(../../../public/png/rect/lp_center_up.png) no-repeat;
+ background-size: 100% 100%;
+ background-position: 0 0;
+ position: relative;
+}
+.center_down {
+ width: 1041px;
+ height: 368px;
+ margin-top: 17px;
+}
+.center_down_inner {
+ width: 513px;
+ height: 366px;
+ background: url(../../../public/png/rect/lp_center_down.png) no-repeat;
+ background-size: 100% 100%;
+ background-position: 0 0;
+ position: relative;
+}
+.center_down .left-box {
+ margin-right: 15px;
+ position: relative;
+}
+.center_down .left-box .alarm_num_title {
+ position: absolute;
+ left: 220px;
+ top: 22px;
+ font-size: 13px;
+ letter-spacing: 3px;
+ color: #fff;
+}
+.center_down .left-box .alarm_num {
+ color: #52fff1;
+ font-size: 40px;
+ text-align: center;
+ font-family: PingFangSC, PingFang SC;
+}
+.center_down .right_box .chart_box {
+ width: 100%;
+ height: 310px;
+ margin-top: 10px;
+}
+.right_up {
+ width: 401px;
+ height: 257px;
+ background: url(../../../public/png/rect/lp_right_up.png) no-repeat;
+ background-size: 100% 100%;
+ background-position: 0 0;
+}
+.right_down {
+ width: 401px;
+ height: 673px;
+ background: url(../../../public/png/rect/lp_right_down.png) no-repeat;
+ background-size: 100% 100%;
+ background-position: 0 0;
+ margin-top: 14px;
+ position: relative;
+}
+.left_up_switch {
+ position: absolute;
+ right: 10px;
+ top: 12px;
+}
+.left_up_chart {
+ height: 275px;
+ margin-top: 10px;
+}
+/* 左侧 */
+.left_down_title {
+ height: 18px;
+ justify-content: center;
+ margin-bottom: 4px;
+}
+.left_down_box1 {
+ width: 56px;
+ height: 13px;
+ background: url(/public/png/leftbar.png) 100% no-repeat;
+ background-size: 100% 100%;
+ margin-top: 2px;
+}
+.left_down_box2 {
+ width: 56px;
+ height: 13px;
+ background: url(/public/png/rightbar.png) 100% no-repeat;
+ background-size: 100% 100%;
+ margin: 2px 0 0 0px;
+}
+.left_down_text {
+ /*width: 40px;*/
+ height: 18px;
+ overflow-wrap: break-word;
+ color: rgba(1, 207, 204, 1);
+ font-size: 18px;
+ letter-spacing: 5px;
+ font-family: PingFangSC-Regular;
+ white-space: nowrap;
+ line-height: 18px;
+ margin-left: 18px;
+ margin-right: 16px;
+ text-align: center;
+}
+.left_down_content {
+ height: 160px;
+ /* padding-bottom: 5px; */
+}
+.right_down_content {
+ height: 185px;
+ /* padding-bottom: 5px; */
+}
+/* 滚动表格部分 */
+.dv-scroll-board .header .header-item,
+.dv-scroll-board .rows .ceil {
+ border-right: 1px solid #0d1728;
+}
+.dv-scroll-board .header .header-item:last-child,
+.dv-scroll-board .rows .ceil:last-child {
+ border-right: none;
+ border: none;
+}
+/* chart图部分 */
+.luoyang-chart-tooltip {
+ background: #0a2b4f77 !important;
+ border: none !important;
+ backdrop-filter: blur(12px);
+}
+
+.luoyang-chart-tooltip * {
+ color: #fff !important;
+}
+/* 三维页面部分 */
+.center_up .model_name {
+ position: absolute;
+ left: 0px;
+ top: 0px;
+ z-index: 1000;
+}
+.center_up .model_info {
+ position: absolute;
+ left: 100px;
+ bottom: 0px;
+ z-index: 1000;
+ width: 841px;
+ height: 62px;
+ background: url(/public/png/lp/line_part.png) 100% no-repeat;
+ background-size: 100% 100%;
+}
+.center_up .model_info .reset_btn {
+ position: absolute;
+ top: 20px;
+ left: 40px;
+ width: 140px;
+ height: 40px;
+ cursor: pointer;
+}
+.center_up .model_info .title {
+ display: inline-block;
+ width: 361px;
+ text-align: center;
+ font-size: 32px;
+ color: #fff;
+ letter-spacing: 5px;
+ position: absolute;
+ left: 241px;
+ bottom: 10px;
+}
+.center_up .eq_detail_info {
+ position: absolute;
+ right: 0px;
+ bottom: 0px;
+ z-index: 1002;
+ width: 240px;
+ height: 110px;
+ background: url(/public/png/lp/eq_msg_detail.png) 100% no-repeat;
+ background-size: 100% 100%;
+ color: #fff;
+ padding: 15px 0 0 15px;
+}
+.center_up .eq_detail_info .left_name {
+ display: inline-block;
+ width: 95px;
+ height: 28px;
+ text-align: right;
+ font-size: 18px;
+}
+.center_up .eq_detail_info .right_value {
+ display: inline-block;
+ height: 28px;
+ font-size: 18px;
+}
+.center_up .eq_info {
+ position: absolute;
+ z-index: 1002;
+ background: url(/public/png/lp/eq_msg_always.png) 100% no-repeat;
+ background-size: 100% 100%;
+ color: #fff;
+ padding: 10px 15px;
+}
+.center_up .eq_info .eq_info_inner {
+ height: 24px;
+ font-size: 17px;
+ white-space: nowrap;
+}
diff --git a/src/page/LinePage1_1/index.tsx b/src/page/LinePage1_1/index.tsx
new file mode 100644
index 0000000..daf9389
--- /dev/null
+++ b/src/page/LinePage1_1/index.tsx
@@ -0,0 +1,18 @@
+import React from "react";
+import TopP from "./TopP";
+import Left from "./Left";
+import Right from "./Right";
+import Center from "./Center";
+function LinePage() {
+ return (
+
+
+
+
+
+
+
+
+ );
+}
+export default LinePage;
diff --git a/src/store/LinePageSlice.ts b/src/store/LinePageSlice.ts
index 39ac7a1..f6a25d6 100644
--- a/src/store/LinePageSlice.ts
+++ b/src/store/LinePageSlice.ts
@@ -1,16 +1,16 @@
import { createSlice } from "@reduxjs/toolkit";
import type { RootState } from "./store";
const initialState = {
- "line1_1":{},
- "line1After":{},
- "line2Before":{},
- "line2After":{},
- "line3Before":{},
- "line3After":{},
- "line4Before":{},
- "line4After":{},
- "line5Before":{},
- "line5After":{}
+ line1_1:{},
+ line1_2:{},
+ line2_1:{},
+ line2_2:{},
+ line3_1:{},
+ line3_2:{},
+ line4_1:{},
+ line4_2:{},
+ line5_1:{},
+ line5_2:{}
};
export const LinePageSlice = createSlice({
name: "LinePageSlice",
@@ -19,11 +19,65 @@ export const LinePageSlice = createSlice({
UpdateLine1Before: (state, action) => {
state.line1_1 = action.payload;
},
+ UpdateLine1After: (state, action) => {
+ state.line1_2 = action.payload;
+ },
+ UpdateLine2Before: (state, action) => {
+ state.line2_1 = action.payload;
+ },
+ UpdateLine2After: (state, action) => {
+ state.line2_2 = action.payload;
+ },
+ UpdateLine3Before: (state, action) => {
+ state.line3_1 = action.payload;
+ },
+ UpdateLine3After: (state, action) => {
+ state.line3_2 = action.payload;
+ },
+ UpdateLine4Before: (state, action) => {
+ state.line4_1 = action.payload;
+ },
+ UpdateLine4After: (state, action) => {
+ state.line4_2 = action.payload;
+ },
+ UpdateLine5Before: (state, action) => {
+ state.line5_1 = action.payload;
+ },
+ UpdateLine5After: (state, action) => {
+ state.line5_2 = action.payload;
+ },
}
})
export const {
- UpdateLine1Before
+ UpdateLine1Before,
+ UpdateLine1After,
+ UpdateLine2Before,
+ UpdateLine2After,
+ UpdateLine3Before,
+ UpdateLine3After,
+ UpdateLine4Before,
+ UpdateLine4After,
+ UpdateLine5Before,
+ UpdateLine5After,
} = LinePageSlice.actions;
export const selectLine1Before = (state: RootState) =>
state.LinePageSlice.line1_1;
+export const selectLine1After = (state: RootState) =>
+ state.LinePageSlice.line1_2;
+export const selectLine2Before = (state: RootState) =>
+ state.LinePageSlice.line2_1;
+export const selectLine2After = (state: RootState) =>
+ state.LinePageSlice.line2_2;
+export const selectLine3Before = (state: RootState) =>
+ state.LinePageSlice.line3_1;
+export const selectLine3After = (state: RootState) =>
+ state.LinePageSlice.line3_2;
+export const selectLine4Before = (state: RootState) =>
+ state.LinePageSlice.line4_1;
+export const selectLine4After = (state: RootState) =>
+ state.LinePageSlice.line4_2;
+export const selectLine5Before = (state: RootState) =>
+ state.LinePageSlice.line5_1;
+export const selectLine5After = (state: RootState) =>
+ state.LinePageSlice.line5_2;
export default LinePageSlice.reducer;
\ No newline at end of file
diff --git a/src/store/UpdateData.tsx b/src/store/UpdateData.tsx
index eb8e28b..ce4d426 100644
--- a/src/store/UpdateData.tsx
+++ b/src/store/UpdateData.tsx
@@ -2,7 +2,18 @@ import React, {useState} from "react";
import {useAppDispatch, useAppSelector} from "./hooks";
import axios from "axios";
-import {UpdateLine1Before} from "./LinePageSlice"
+import {
+ UpdateLine1Before,
+ UpdateLine1After,
+ UpdateLine2Before,
+ UpdateLine2After,
+ UpdateLine3Before,
+ UpdateLine3After,
+ UpdateLine4Before,
+ UpdateLine4After,
+ UpdateLine5Before,
+ UpdateLine5After
+} from "./LinePageSlice"
//将消息显示在网页上
// @ts-ignore
@@ -66,22 +77,74 @@ function UpdateData() {
.then((r) => {
setUrl(r.data.url)
})
- let websocketB1 = null;
- let websocketA1 = null;
+ let websocket1_1 = null;
+ let websocket1_2 = null;
+ let websocket2_1 = null;
+ let websocket2_2 = null;
+ let websocket3_1 = null;
+ let websocket3_2 = null;
+ let websocket4_1 = null;
+ let websocket4_2 = null;
+ let websocket5_1 = null;
+ let websocket5_2 = null;
if ('WebSocket' in window) {
- websocketB1 = new WebSocket("ws://" + myUrl + "/websocket/message?userId=1-1");
+ websocket1_1 = new WebSocket("ws://" + myUrl + "/websocket/message?userId=1-1");
+ // websocket1_2 = new WebSocket("ws://" + myUrl + "/websocket/message?userId=1-2");
+ // websocket2_1 = new WebSocket("ws://" + myUrl + "/websocket/message?userId=2-1");
+ // websocket2_2 = new WebSocket("ws://" + myUrl + "/websocket/message?userId=2-2");
+ // websocket3_1 = new WebSocket("ws://" + myUrl + "/websocket/message?userId=3-1");
+ // websocket3_2 = new WebSocket("ws://" + myUrl + "/websocket/message?userId=3-2");
+ // websocket4_1 = new WebSocket("ws://" + myUrl + "/websocket/message?userId=4-1");
+ // websocket4_2 = new WebSocket("ws://" + myUrl + "/websocket/message?userId=4-2");
+ // websocket5_1 = new WebSocket("ws://" + myUrl + "/websocket/message?userId=5-1");
+ // websocket5_2 = new WebSocket("ws://" + myUrl + "/websocket/message?userId=5-2");
//连接成功建立的回调方法
} else {
alert('Not support websocket');
}
// @ts-ignore
- websocketB1.onopen = function (event) {
- setMessageInnerHTML("websocketB1-open");
+ websocket1_1.onopen = function (event) {
+ setMessageInnerHTML("websocket1_1-open");
}
+ // @ts-ignore
+ // websocket1_2.onopen = function (event) {
+ // setMessageInnerHTML("websocket1_2-open");
+ // }
+ // // @ts-ignore
+ // websocket2_1.onopen = function (event) {
+ // setMessageInnerHTML("websocket1_1-open");
+ // }
+ // // @ts-ignore
+ // websocket2_2.onopen = function (event) {
+ // setMessageInnerHTML("websocket1_2-open");
+ // }
+ // // @ts-ignore
+ // websocket3_1.onopen = function (event) {
+ // setMessageInnerHTML("websocket1_1-open");
+ // }
+ // // @ts-ignore
+ // websocket3_2.onopen = function (event) {
+ // setMessageInnerHTML("websocket1_2-open");
+ // }
+ // // @ts-ignore
+ // websocket4_1.onopen = function (event) {
+ // setMessageInnerHTML("websocket1_1-open");
+ // }
+ // // @ts-ignore
+ // websocket4_2.onopen = function (event) {
+ // setMessageInnerHTML("websocket1_2-open");
+ // }
+ // // @ts-ignore
+ // websocket5_1.onopen = function (event) {
+ // setMessageInnerHTML("websocket1_1-open");
+ // }
+ // // @ts-ignore
+ // websocket5_2.onopen = function (event) {
+ // setMessageInnerHTML("websocket1_2-open");
+ // }
//接收到消息的回调方法
// @ts-ignore
- websocketB1.onmessage = function (event) {
- console.log('接收到消息:',event.data)
+ websocket1_1.onmessage = function (event) {
let msgData = event.data
try {
msgData = JSON.parse(event.data);
@@ -90,8 +153,116 @@ function UpdateData() {
}
if (!Object.prototype.toString.call(msgData).includes('Object')) return;
console.log(msgData)
- dispatch(UpdateLine1Before(msgData.data));
+ dispatch(UpdateLine1Before(msgData));
}
+ // @ts-ignore
+ // websocket1_2.onmessage = function (event) {
+ // let msgData = event.data
+ // try {
+ // msgData = JSON.parse(event.data);
+ // } catch (error) {
+ // console.log("websocket: [unable to msgData] : ", event.data);
+ // }
+ // if (!Object.prototype.toString.call(msgData).includes('Object')) return;
+ // console.log(msgData)
+ // dispatch(UpdateLine1After(msgData));
+ // }
+ // // @ts-ignore
+ // websocket2_1.onmessage = function (event) {
+ // let msgData = event.data
+ // try {
+ // msgData = JSON.parse(event.data);
+ // } catch (error) {
+ // console.log("websocket: [unable to msgData] : ", event.data);
+ // }
+ // if (!Object.prototype.toString.call(msgData).includes('Object')) return;
+ // console.log(msgData)
+ // dispatch(UpdateLine2Before(msgData));
+ // }
+ // // @ts-ignore
+ // websocket2_2.onmessage = function (event) {
+ // let msgData = event.data
+ // try {
+ // msgData = JSON.parse(event.data);
+ // } catch (error) {
+ // console.log("websocket: [unable to msgData] : ", event.data);
+ // }
+ // if (!Object.prototype.toString.call(msgData).includes('Object')) return;
+ // console.log(msgData)
+ // dispatch(UpdateLine2After(msgData));
+ // }
+ // // @ts-ignore
+ // websocket3_1.onmessage = function (event) {
+ // let msgData = event.data
+ // try {
+ // msgData = JSON.parse(event.data);
+ // } catch (error) {
+ // console.log("websocket: [unable to msgData] : ", event.data);
+ // }
+ // if (!Object.prototype.toString.call(msgData).includes('Object')) return;
+ // console.log(msgData)
+ // dispatch(UpdateLine3Before(msgData));
+ // }
+ // // @ts-ignore
+ // websocket3_2.onmessage = function (event) {
+ // let msgData = event.data
+ // try {
+ // msgData = JSON.parse(event.data);
+ // } catch (error) {
+ // console.log("websocket: [unable to msgData] : ", event.data);
+ // }
+ // if (!Object.prototype.toString.call(msgData).includes('Object')) return;
+ // console.log(msgData)
+ // dispatch(UpdateLine3After(msgData));
+ // }
+ // // @ts-ignore
+ // websocket4_1.onmessage = function (event) {
+ // let msgData = event.data
+ // try {
+ // msgData = JSON.parse(event.data);
+ // } catch (error) {
+ // console.log("websocket: [unable to msgData] : ", event.data);
+ // }
+ // if (!Object.prototype.toString.call(msgData).includes('Object')) return;
+ // console.log(msgData)
+ // dispatch(UpdateLine4Before(msgData));
+ // }
+ // // @ts-ignore
+ // websocket4_2.onmessage = function (event) {
+ // let msgData = event.data
+ // try {
+ // msgData = JSON.parse(event.data);
+ // } catch (error) {
+ // console.log("websocket: [unable to msgData] : ", event.data);
+ // }
+ // if (!Object.prototype.toString.call(msgData).includes('Object')) return;
+ // console.log(msgData)
+ // dispatch(UpdateLine4After(msgData));
+ // }
+ // // @ts-ignore
+ // websocket5_1.onmessage = function (event) {
+ // let msgData = event.data
+ // try {
+ // msgData = JSON.parse(event.data);
+ // } catch (error) {
+ // console.log("websocket: [unable to msgData] : ", event.data);
+ // }
+ // if (!Object.prototype.toString.call(msgData).includes('Object')) return;
+ // console.log(msgData)
+ // dispatch(UpdateLine5Before(msgData));
+ // }
+ // // @ts-ignore
+ // websocket5_2.onmessage = function (event) {
+ // let msgData = event.data
+ // try {
+ // msgData = JSON.parse(event.data);
+ // } catch (error) {
+ // console.log("websocket: [unable to msgData] : ", event.data);
+ // }
+ // if (!Object.prototype.toString.call(msgData).includes('Object')) return;
+ // console.log(msgData)
+ // dispatch(UpdateLine5After(msgData));
+ // }
const dispatch = useAppDispatch();