|
@@ -9,19 +9,18 @@ import ContinueData from "./components/ContinueData";
|
|
|
import DataBox from "./components/dataBox";
|
|
|
import GongYi from "./components/gongyi";
|
|
|
|
|
|
-
|
|
|
import { editPassword } from '@/components';
|
|
|
import TheUserAvatar from '@/components/Layout/TheUserAvatar.vue';
|
|
|
import { screenApi } from "@/api/screen"
|
|
|
|
|
|
let timer = "";
|
|
|
+let dataTimer = "";
|
|
|
|
|
|
+const updateTime = ref();
|
|
|
const gongyiData = ref([])
|
|
|
const screenData = ref({});
|
|
|
const reportData = ref({})
|
|
|
|
|
|
-const updateTime = ref();
|
|
|
-
|
|
|
const currentTime = ref({
|
|
|
time: '',
|
|
|
weekday: '',
|
|
@@ -41,7 +40,7 @@ const getCurrentWeekDay = () => {
|
|
|
// 获取大屏分析数据
|
|
|
const getRealTimeData = () => {
|
|
|
screenApi.realTimeData().then(res => {
|
|
|
- screenData.value = res.data
|
|
|
+ screenData.value = res.data;
|
|
|
updateTime.value = `更新时间:${res.data.testHour}`
|
|
|
})
|
|
|
}
|
|
@@ -73,15 +72,22 @@ onMounted(() => {
|
|
|
autofit.init({
|
|
|
dw: 1920,
|
|
|
dh: 1080,
|
|
|
- el:"#screen-view-black",
|
|
|
+ el: "#screen-view-black",
|
|
|
resize: true,
|
|
|
})
|
|
|
|
|
|
- timer = setInterval(getCurrentWeekDay , 1 * 1000);
|
|
|
+ timer = setInterval(getCurrentWeekDay, 1 * 1000);
|
|
|
+
|
|
|
+ dataTimer = setInterval(() => {
|
|
|
+ getRealTimeData();
|
|
|
+ getLeastShortReport();
|
|
|
+ getWarningList();
|
|
|
+ }, 60 * 60 * 1000);
|
|
|
})
|
|
|
|
|
|
onUnmounted(() => {
|
|
|
clearInterval(timer);
|
|
|
+ clearInterval(dataTimer);
|
|
|
})
|
|
|
|
|
|
</script>
|
|
@@ -104,28 +110,40 @@ onUnmounted(() => {
|
|
|
</div>
|
|
|
</header>
|
|
|
<main class="main">
|
|
|
+ <!-- 导航菜单 -->
|
|
|
<div class="menu-container">
|
|
|
<ul class="menu-list justify-end">
|
|
|
- <li class="item mr-[20px]"><RouterLink to="/"><span>智慧总控</span></RouterLink></li>
|
|
|
- <li class="item"><RouterLink to="/"><span>专家问答</span></RouterLink></li>
|
|
|
+ <li class="item mr-[20px] active">
|
|
|
+ <RouterLink to="/"><span>智慧总控</span></RouterLink>
|
|
|
+ </li>
|
|
|
+ <li class="item">
|
|
|
+ <RouterLink to="/answer"><span>专家问答</span></RouterLink>
|
|
|
+ </li>
|
|
|
</ul>
|
|
|
<ul class="menu-list justify-start">
|
|
|
- <li class="item mr-[20px]"><RouterLink to="/"><span>智能分析</span></RouterLink></li>
|
|
|
- <li class="item"><RouterLink to="/"><span>智能助手</span></RouterLink></li>
|
|
|
+ <li class="item mr-[20px]">
|
|
|
+ <RouterLink to="/water-warn"><span>智能分析</span></RouterLink>
|
|
|
+ </li>
|
|
|
+ <li class="item">
|
|
|
+ <RouterLink to="/work"><span>智能助手</span></RouterLink>
|
|
|
+ </li>
|
|
|
</ul>
|
|
|
</div>
|
|
|
<div class="screen-container">
|
|
|
<div class="factory">
|
|
|
<img class="w-full h-full" src="@/assets/images/screenViewBlack/img-factory.png" alt="">
|
|
|
+ <img class="coord img-a" src="@/assets/images/screenViewBlack/img-coord-a.png" alt="">
|
|
|
+ <img class="coord img-b" src="@/assets/images/screenViewBlack/img-coord-b.png" alt="">
|
|
|
+ <img class="coord img-c" src="@/assets/images/screenViewBlack/img-coord-c.png" alt="">
|
|
|
</div>
|
|
|
<div class="content">
|
|
|
<div class="left">
|
|
|
<WaterYield :screenData="screenData"></WaterYield>
|
|
|
- <WaterQuality :screenData="screenData"></WaterQuality>
|
|
|
+ <WaterQuality :screenData="screenData" class="pt-[20px]"></WaterQuality>
|
|
|
</div>
|
|
|
<div class="middle">
|
|
|
<div class="middle-wrap">
|
|
|
- <span class="text-[#9E9E9E]">更新时间:05-07 08:00</span>
|
|
|
+ <span class="text-[#9E9E9E] pb-[8px] text-[12px]">{{ updateTime }}</span>
|
|
|
<RouterLink to="/answer" class="inp-box">
|
|
|
<span>输入您的问题或需求</span>
|
|
|
<img src="@/assets/images/screenViewBlack/img-start.png" alt="">
|
|
@@ -134,7 +152,7 @@ onUnmounted(() => {
|
|
|
</div>
|
|
|
<div class="right">
|
|
|
<ContinueData :screenData="screenData"></ContinueData>
|
|
|
- <DataBox :reportData="reportData"></DataBox>
|
|
|
+ <DataBox :reportData="reportData" class="pt-[20px]"></DataBox>
|
|
|
<GongYi :gongyiData="gongyiData"></GongYi>
|
|
|
</div>
|
|
|
</div>
|
|
@@ -165,15 +183,15 @@ $primary-bg-color: #040d1c;
|
|
|
align-items: start;
|
|
|
justify-content: space-between;
|
|
|
flex-shrink: 0;
|
|
|
- height: 100px;
|
|
|
+ height: 98px;
|
|
|
padding: 20px 50px 0 50px;
|
|
|
- background: palegreen;
|
|
|
background: url(@/assets/images/screenViewBlack/bg-header.png) center center no-repeat;
|
|
|
background-size: 100% 100%;
|
|
|
|
|
|
.header-left {
|
|
|
display: flex;
|
|
|
align-items: center;
|
|
|
+
|
|
|
.time {
|
|
|
width: 160px;
|
|
|
color: #FFF;
|
|
@@ -185,12 +203,14 @@ $primary-bg-color: #040d1c;
|
|
|
line-height: normal;
|
|
|
letter-spacing: 4.32px;
|
|
|
}
|
|
|
+
|
|
|
.line {
|
|
|
width: 1px;
|
|
|
height: 28px;
|
|
|
margin: 0 20px 0 15px;
|
|
|
background: rgba(157, 197, 232, 0.36);
|
|
|
}
|
|
|
+
|
|
|
.date {
|
|
|
color: #CDD6E3;
|
|
|
text-align: center;
|
|
@@ -203,6 +223,7 @@ $primary-bg-color: #040d1c;
|
|
|
li:nth-child(1) {
|
|
|
color: #CDD6E3;
|
|
|
}
|
|
|
+
|
|
|
li:nth-child(2) {
|
|
|
color: #CDD6E3;
|
|
|
font-family: D-DIN-PRO-700-Bold;
|
|
@@ -223,20 +244,24 @@ $primary-bg-color: #040d1c;
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
.main {
|
|
|
flex: 1;
|
|
|
display: flex;
|
|
|
flex-flow: column;
|
|
|
- padding: 0 30px 30px 30px;
|
|
|
+ padding: 0 30px 14px 30px;
|
|
|
+
|
|
|
.menu-container {
|
|
|
display: flex;
|
|
|
align-items: center;
|
|
|
justify-content: space-between;
|
|
|
+
|
|
|
.menu-list {
|
|
|
display: flex;
|
|
|
align-items: center;
|
|
|
width: 540px;
|
|
|
height: 86px;
|
|
|
+
|
|
|
.item {
|
|
|
width: 172px;
|
|
|
height: 46px;
|
|
@@ -249,6 +274,7 @@ $primary-bg-color: #040d1c;
|
|
|
letter-spacing: 1px;
|
|
|
cursor: pointer;
|
|
|
transition: all 0.8s;
|
|
|
+
|
|
|
span {
|
|
|
transition: all 0.3s;
|
|
|
background: linear-gradient(182deg, #02A3F8 11.72%, #83D2FB 38.89%, #FFF 98.7%);
|
|
@@ -258,37 +284,72 @@ $primary-bg-color: #040d1c;
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
.menu-list:nth-child(1) {
|
|
|
.item {
|
|
|
background: url(@/assets/images/screenViewBlack/bg-left.png) center center no-repeat;
|
|
|
background-size: 100% 100%;
|
|
|
+
|
|
|
&:hover {
|
|
|
background: url(@/assets/images/screenViewBlack/bg-left-active.png) center center no-repeat;
|
|
|
background-size: 100% 100%;
|
|
|
+
|
|
|
span {
|
|
|
background: linear-gradient(182deg, #00FFE4, #FFF 78.7%);
|
|
|
background-clip: text;
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+ .active {
|
|
|
+ background: url(@/assets/images/screenViewBlack/bg-left-active.png) center center no-repeat;
|
|
|
+ background-size: 100% 100%;
|
|
|
+
|
|
|
+ span {
|
|
|
+ background: linear-gradient(182deg, #00FFE4, #FFF 78.7%);
|
|
|
+ background-clip: text;
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
+
|
|
|
.menu-list:nth-child(2) {
|
|
|
.item {
|
|
|
background: url(@/assets/images/screenViewBlack/bg-right.png) center center no-repeat;
|
|
|
background-size: 100% 100%;
|
|
|
+
|
|
|
&:hover {
|
|
|
background: url(@/assets/images/screenViewBlack/bg-right-active.png) center center no-repeat;
|
|
|
background-size: 100% 100%;
|
|
|
+
|
|
|
span {
|
|
|
background: linear-gradient(182deg, #00FFE4, #FFF 78.7%);
|
|
|
background-clip: text;
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+ .active {
|
|
|
+ background: url(@/assets/images/screenViewBlack/bg-right-active.png) center center no-repeat;
|
|
|
+ background-size: 100% 100%;
|
|
|
+
|
|
|
+ span {
|
|
|
+ background: linear-gradient(182deg, #00FFE4, #FFF 78.7%);
|
|
|
+ background-clip: text;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ @keyframes jump {
|
|
|
+ 0%, 100% {
|
|
|
+ transform: translateY(0);
|
|
|
+ }
|
|
|
+ 50% {
|
|
|
+ transform: translateY(-20px); /* 调整这个值来控制跳跃的高度 */
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
.screen-container {
|
|
|
- flex: 1;
|
|
|
position: relative;
|
|
|
background: $primary-bg-color;
|
|
|
|
|
@@ -296,19 +357,47 @@ $primary-bg-color: #040d1c;
|
|
|
position: absolute;
|
|
|
top: 50%;
|
|
|
left: 50%;
|
|
|
- transform: translate(-50%,-50%);
|
|
|
+ transform: translate(-50%, -50%);
|
|
|
width: 1408px;
|
|
|
height: 792px;
|
|
|
+
|
|
|
+ .coord {
|
|
|
+ position: absolute;
|
|
|
+ width: 108px;
|
|
|
+ height: 82px;
|
|
|
+ }
|
|
|
+
|
|
|
+ .img-a {
|
|
|
+ top: 370px;
|
|
|
+ left: 320px;
|
|
|
+ animation: jump 1.5s ease-in-out infinite;
|
|
|
+ animation-delay: 0.2s;
|
|
|
+ }
|
|
|
+ .img-b {
|
|
|
+ top: 280px;
|
|
|
+ left: 650px;
|
|
|
+ animation: jump 1.5s ease-in-out infinite;
|
|
|
+ animation-delay: 0.6s;
|
|
|
+ }
|
|
|
+ .img-c {
|
|
|
+ top: 226px;
|
|
|
+ right: 330px;
|
|
|
+ animation: jump 1.5s ease-in-out infinite;
|
|
|
+ animation-delay: 0.4s;
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
.content {
|
|
|
position: relative;
|
|
|
- display: flex;;
|
|
|
+ display: flex;
|
|
|
+ ;
|
|
|
justify-content: space-between;
|
|
|
|
|
|
- .left, .right {
|
|
|
+ .left,
|
|
|
+ .right {
|
|
|
width: 540px;
|
|
|
}
|
|
|
+
|
|
|
.middle {
|
|
|
flex-shrink: 0;
|
|
|
flex: 1;
|
|
@@ -331,6 +420,7 @@ $primary-bg-color: #040d1c;
|
|
|
padding: 0 14px;
|
|
|
background: url(@/assets/images/screenViewBlack/bg-input.png) center center no-repeat;
|
|
|
background-size: 100% 100%;
|
|
|
+
|
|
|
span {
|
|
|
color: rgba(255, 255, 255, 0.80);
|
|
|
text-shadow: 0px 0px 8px rgba(201, 253, 243, 0.50);
|
|
@@ -338,6 +428,7 @@ $primary-bg-color: #040d1c;
|
|
|
font-weight: 400;
|
|
|
line-height: 22px;
|
|
|
}
|
|
|
+
|
|
|
img {
|
|
|
width: 56px;
|
|
|
height: 36px;
|