7 Commits

Author SHA1 Message Date
lb
a3ba9926ce update 2023-10-30 16:17:25 +08:00
lb
6e90cf3718 update 2023-10-30 15:22:20 +08:00
lb
b43c6f5584 update header 2023-10-30 14:43:33 +08:00
266ac9ee2e '去除火状态,删除背景颜色,初始倍率调整' 2023-10-29 15:41:18 +08:00
lb
ae1ecdced1 done 2023-10-27 17:39:36 +08:00
lb
1214eb5c7d update 2023-10-27 16:17:35 +08:00
lb
6e17cc51d1 update v2 2023-10-27 15:07:24 +08:00
14 changed files with 372 additions and 139 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.3 MiB

After

Width:  |  Height:  |  Size: 5.0 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 966 KiB

After

Width:  |  Height:  |  Size: 175 KiB

View File

@@ -49,12 +49,13 @@ export default {
@import "../../assets/styles/functions";
.in-water {
position: absolute;
top: -200px;
left: 27px;
height: 509px;
width: 1323px;
background: url(../../assets/in-water.png) top 0 left 0 / cover no-repeat;
// position: absolute;
// top: -200px;
// left: 27px;
height: 100%;
width: 100%;
background: url(../../assets/in-water.png) top 0 left 0 / 100% 100% no-repeat;
overflow: hidden;
}
.content {
@@ -62,16 +63,16 @@ export default {
}
.realtime {
width: 530px;
width: 620px;
// height: 337px;
background: url(../../assets/inwater.png) top 90% left 0 / 100% 80% no-repeat,
url(../../assets/i-water.png) top 24px right 24px / 40% 70% no-repeat;
background: url(../../assets/inwater.png) top 88% left 0 / 100% 100% no-repeat,
url(../../assets/i-water.png) top 24px right 24px / 45% 70% no-repeat;
}
.graph {
// background: #0cc3;
height: 436px;
transform: translate(0, -64px);
height: 100%;
transform: translate(0, -48px);
}
.flex-1 {

View File

@@ -48,12 +48,12 @@ export default {
@import "../../assets/styles/functions";
.out-water {
position: absolute;
top: -200px;
left: 1350px;
height: 509px;
width: 1323px;
background: url(../../assets/out-water.png) top 0 left 0 / cover no-repeat;
// position: absolute;
// top: -200px;
// left: 1350px;
height: 100%;
width: 100%;
background: url(../../assets/out-water.png) top 0 left 0 / 100% 100% no-repeat;
}
.content {
@@ -61,16 +61,16 @@ export default {
}
.realtime {
width: 530px;
width: 620px;
// height: 337px;
background: url(../../assets/outwater.png) top 90% left 0 / 100% 80% no-repeat,
background: url(../../assets/outwater.png) top 88% left 0 / 100% 100% no-repeat,
url(../../assets/o-water.png) top 24px right 24px / 40% 70% no-repeat;
}
.graph {
// background: #0cc3;
height: 436px;
transform: translate(0, -64px);
height: 100%;
transform: translate(0, -48px);
}
.flex-1 {
flex: 1;

View File

@@ -59,8 +59,8 @@ export default {
flex-shrink: 0;
padding: 0;
user-select: none;
width: 744px;
height: 366px;
width: 750px;
height: 340px;
display: flex;
background: url(../../assets/top-middle.png) no-repeat;
background-size: 100% 100%;

View File

@@ -24,14 +24,14 @@ export default {
@import "../../assets/styles/functions";
section {
// background: rgba(47, 203, 255, 0.225);
// background: rgba(47, 203, 255, 0.75);
width: 100%;
// height: 1178px;
height: 1469px;
position: absolute;
// bottom: 690px;
// top: 2160px;
top: 1570px;
// top: 1570px;
left: 0;
}

View File

@@ -1,6 +1,6 @@
<template>
<DragabbleContainer class="isolate-area-1">
<div class="data pressure">
<!-- <div class="data pressure">
<span></span>
<span></span>
<span
@@ -10,7 +10,7 @@
>{{ press }}</span
>
<span>Pa</span>
</div>
</div> -->
<SmallBox2
class="data-center"
v-for="rd in rdata"
@@ -87,6 +87,7 @@ export default {
@import "../../assets/styles/functions";
.isolate-area-1 {
// background: #000c;
display: flex;
color: $main-color;
min-width: 300px;
@@ -94,37 +95,37 @@ export default {
> *:not(:last-child) {
margin: {
right: 128px;
right: 160px;
}
}
> .data {
flex-shrink: 0;
font-family: zcoolqingkehuangyouti-Regular, sans-serif;
display: flex;
align-items: flex-end;
}
// > .data {
// flex-shrink: 0;
// font-family: zcoolqingkehuangyouti-Regular, sans-serif;
// display: flex;
// align-items: flex-end;
// }
> .data > span:not(.dot) {
/** 边框 */
background: url("../../assets/digitbox1.png") no-repeat;
background-size: 100% 100%;
display: inline-block;
width: 228px;
height: 299px;
color: #0068ffaa;
font-size: 142px;
line-height: 328px;
text-align: center;
vertical-align: bottom;
user-select: none;
}
// > .data > span:not(.dot) {
// /** 边框 */
// background: url("../../assets/digitbox1.png") no-repeat;
// background-size: 100% 100%;
// display: inline-block;
// width: 228px;
// height: 299px;
// color: #0068ffaa;
// font-size: 100px;
// line-height: 1;
// text-align: center;
// vertical-align: bottom;
// user-select: none;
// }
> .data > span.digit {
/** 数字字体大小 */
color: #0071ff;
font-size: 242px;
line-height: 286px;
}
// > .data > span.digit {
// /** 数字字体大小 */
// color: #0071ff;
// font-size: 242px;
// line-height: 286px;
// }
}
</style>

View File

@@ -0,0 +1,154 @@
<template>
<div class="bottom-bar">
<section class="realtime-water-temp-in">
<InWater />
</section>
<section class="realtime-water-temp-out">
<OutWater />
</section>
<section class="dynamic-data">
<div class="top">
<div class="data pressure">
<span></span>
<span></span>
<span v-for="(press, index) in pressure" :key="index"
:class="{ digit: true, dot: press == '.' ? true : false }">{{ press }}</span>
<span>Pa</span>
</div>
</div>
<div class="bottom">
<div class="data runtime">
<span></span>
<span></span>
<span v-for="val, index in runtime" :key="index"
:class="{ 'digit': true, 'dot': val == '.' ? true : false }">{{ val }}</span>
<span></span>
</div>
</div>
</section>
</div>
</template>
<script>
import { mapState } from "vuex";
import InWater from "../boxes/InWater.vue";
import OutWater from "../boxes/OutWater.vue";
export default {
name: 'BottomBar',
components: { InWater, OutWater },
data() {
return {
pressure: "10.1".split(""),
runtime: "0012".split(""),
}
},
mounted() {
this.getRuntime();
setInterval(this.getRuntime, 1000 * 60 * 30);
},
watch: {
fireDirection: function (val) {
this.$set(this.rdata[0], "value", val);
},
fireChangeTime: function (val) {
this.$set(this.rdata[1], "value", val);
},
lastFireChangeTime: function (val) {
let [_, min, sec] = /(\d+)分(\d+)秒/.exec(val || "0分0秒");
if (timeFun) clearInterval(timeFun);
timeFun = setInterval(() => {
if (sec > 0) sec -= 1;
else {
if (min > 0) {
sec = 59;
min -= 1;
} else {
if (timeFun) clearInterval(timeFun);
}
}
this.$set(this.rdata[2], "value", `${min}${sec}`);
}, 1000);
},
kilnPressure: function (val) {
this.pressure = val.split("")
}
},
computed: {
...mapState(["fireDirection", "lastFireChangeTime", "fireChangeTime", "kilnPressure"]),
},
methods: {
getRuntime() {
const diff = Date.now() - new Date("2023-5-7 8:00:00");
const days = parseInt(diff / 1000 / 60 / 60 / 24);
const hours = parseInt(
(diff - days * 24 * 60 * 60 * 1000) / 1000 / 60 / 60
);
console.log("days", days);
this.runtime = (days + "").padStart(4, "0");
},
}
}
</script>
<style lang="scss" scoped>
.bottom-bar {
height: 600px;
// background: #0003;
display: flex;
justify-content: space-between;
>section {
flex: 1;
}
}
.realtime-water-temp-in,
.realtime-water-temp-out {
padding-right: 20px;
}
.dynamic-data {
display: flex;
flex-direction: column;
.top {
// margin: 12px 0;
// background: #f001;
}
.bottom {
// margin: 12px 0;
// background: #0f01;
}
.data {
flex-shrink: 0;
font-family: zcoolqingkehuangyouti-Regular, sans-serif;
display: flex;
align-items: flex-end;
}
.data>span:not(.dot) {
/** 边框 */
background: url("../../assets/digitbox1.png") no-repeat;
background-size: 100% 100%;
display: inline-block;
width: 228px;
height: 280px;
color: #0068ffaa;
font-size: 144px;
line-height: 2.35;
text-align: center;
vertical-align: bottom;
user-select: none;
}
.data>span.digit {
/** 数字字体大小 */
color: #0071ff;
font-size: 240px;
line-height: 1.25;
}
}
</style>

View File

@@ -69,29 +69,29 @@ export default {
header {
width: 100%;
height: 628px;
height: 380px;
background: url(../../assets/header.png) no-repeat;
display: grid;
place-items: center;
>div {
margin-left: 378px;
margin-bottom: 72px;
margin-left: 24px;
margin-bottom: 24px;
display: flex;
align-items: center;
.header--logo {
width: 648px;
height: 337px;
margin-right: 96px;
height: 280px;
margin-right: 16px;
background: url(../../assets/logo.png) center/contain no-repeat;
}
h1 {
font-size: 220px;
font-size: 144px;
line-height: 330px;
margin: 0;
letter-spacing: 36px;
letter-spacing: 16px;
user-select: none;
font-weight: 600;
color: $main-color;
@@ -101,25 +101,26 @@ header {
}
.header--wing {
top: 138px;
bottom: -88px;
left: 0;
line-height: 130px;
font-size: 130px;
line-height: 0.2;
font-size: 108px;
font-weight: bold;
// font-weight: bold;
font-family: -apple-system, BlinkMacSystemFont, Helvetica Neue, PingFang SC, Microsoft YaHei, Source Han Sans SC, Noto Sans CJK SC, WenQuanYi Micro Hei, "微软雅黑", Arial, Helvetica, sans-serif;
}
.company {
left: 240px;
left: 300px;
text-align: center;
color: lighten($main-color, 8);
// color: lighten($main-color, 8);
color: #5a6d88;
}
.datetime {
left: unset;
right: 240px;
color: $main-color;
right: 300px;
color: #5a6d88;
text-align: center;
color: lighten($main-color, 8);
font-size: 140px;
}
</style>

View File

@@ -1,18 +1,18 @@
<template>
<main class="relative">
<!-- 缺陷分析 -->
<FaultAnalysis />
<!-- <FaultAnalysis /> -->
<!-- 环境浓度 -->
<Environ />
<!-- <Environ /> -->
<!-- 监控组 2 -->
<MonitorGroup2 />
<!-- <MonitorGroup2 /> -->
<!-- 数据组 -->
<DataGroup />
<!-- <DataGroup /> -->
<div class="video-crash" v-if="false"></div>
<!-- <div class="video-crash" v-if="false"></div> -->
<div class="eq-main absolute">
<div
@@ -95,19 +95,19 @@
</div>
<AreaOne class="area-one" />
<Runtime class="runtime" />
<!-- <Runtime class="runtime" />
<InWater />
<OutWater />
<OutWater /> -->
</main>
</template>
<script>
import InWater from "../boxes/InWater.vue";
import OutWater from "../boxes/OutWater.vue";
// import InWater from "../boxes/InWater.vue";
// import OutWater from "../boxes/OutWater.vue";
import AreaOne from "../isolate-area-1/Area.vue";
import Runtime from "../isolate-area-1/Runtime.vue";
import MonitorGroup2 from "../groups/monitor2.vue";
import DataGroup from "../groups/data.vue";
// import MonitorGroup2 from "../groups/monitor2.vue";
// import DataGroup from "../groups/data.vue";
import FaultAnalysis from "../groups/fault.vue";
import Environ from "../groups/environ.vue";
import { mapMutations, mapState } from "vuex";
@@ -118,20 +118,20 @@ export default {
name: "Main",
components: {
Runtime,
DataGroup,
MonitorGroup2,
// DataGroup,
// MonitorGroup2,
Environ,
FaultAnalysis,
AreaOne,
InWater,
OutWater,
// InWater,
// OutWater,
},
props: {},
data() {
return {};
},
computed: mapState([
"kilnPressure",
// "kilnPressure",
"fireDirection",
"topLeftArrowRolling",
"topRightArrowRolling",
@@ -165,8 +165,10 @@ main {
.area-one {
position: absolute;
top: 124px;
left: 3910px;
top: 110px;
left: 1450px;
// left: 50%;
// transform: translateX(-50%);
}
.runtime {
@@ -188,22 +190,23 @@ main {
.video-bottom {
position: absolute;
bottom: 400px;
left: 268px;
transform: scale(1.25, 1.15);
bottom: 212px;
right: 85px;
transform: scale(0.8) rotateY(180deg)
}
.video-top {
position: absolute;
top: 250px;
left: 320px;
transform: scale(1.25);
top: 125px;
right: 125px;
// height: 200px;
transform: scale(0.8);
}
.arrow {
display: inline-block;
width: 64px;
height: 64px;
width: 32px;
height: 32px;
border-radius: 100%;
position: absolute;
background: #ff5757;
@@ -214,43 +217,43 @@ main {
}
.ar-top-right {
top: 190px;
left: 110px;
top: 160px;
right: 100px;
}
.ar-top-left {
top: 200px;
left: 1480px;
top: 120px;
right: 960px;
}
.ar-bottom-left {
top: 700px;
left: 1430px;
bottom: 280px;
right: 930px;
}
.ar-bottom-right {
top: 720px;
left: 40px;
bottom: 290px;
right: 54px;
}
.swd {
// background-size: 100% 10px;
width: 350px;
height: 202px;
width: 240px;
height: 90px;
position: absolute;
transform: rotateY(180deg);
// transform: rotateY(180deg);
p {
margin: 0;
color: #000;
margin-top: 16px;
margin-top: 8px;
}
.swd-box {
margin-left: 54px;
margin-top: 44px;
font-size: 30px;
letter-spacing: 2px;
margin-left: 32px;
margin-top: 10px;
font-size: 20px;
// letter-spacing: 2px;
color: #000;
font-family: -apple-system, BlinkMacSystemFont, Helvetica Neue, PingFang SC,
Microsoft YaHei, Source Han Sans SC, Noto Sans CJK SC, WenQuanYi Micro Hei,
@@ -258,8 +261,9 @@ main {
.swd-value {
color: #ff2020;
margin-top: 12px;
font-size: 64px;
margin-top: 0;
margin-bottom: 12px;
font-size: 48px;
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
@@ -270,43 +274,41 @@ main {
.onekb,
.onesp {
background: url(../../assets/tem-bottom.png) top 0 left 0 / 100% no-repeat;
background: url(../../assets/tem-bottom.png) 0 0 / 100% no-repeat;
}
.onekb {
top: 760px;
left: 1560px;
top: 520px;
right: 1000px;
}
.onesp {
top: 860px;
left: 1100px;
top: 590px;
right: 690px;
}
.twokb,
.twosp {
background: url(../../assets/tem-top.png) top 0 left 0 / 100% no-repeat;
background: url(../../assets/tem-top.png) right 0 bottom 0 / 100% no-repeat;
}
.twokb {
top: 72px;
left: 1580px;
top: 108px;
right: 1020px;
}
.twosp {
top: -32px;
left: 1080px;
top: 32px;
right: 700px;
}
.eq-main {
width: 9162px;
height: 1178px;
width: 100%;
height: 800px;
background: url(../../assets/eq.png) no-repeat;
background-size: 100%;
top: 256px;
left: 2172px;
top: 320px;
position: relative;
transform: rotateY(0.5turn);
}
.eq-main::before {

View File

@@ -8,33 +8,46 @@
<div class="bg-layer"></div>
<LeftSide />
<section class="center">
<BigHeader />
<Main />
<div class="center-top">
<div class="screen-container top-left"></div>
<MainContent />
<div class="screen-container top-right"></div>
</div>
<div class="center-bottom">
<!-- 监控组 2 -->
<MonitorGroup2 />
<!-- 数据组 -->
<DataGroup />
</div>
</section>
<RightSide />
</div>
</template>
<script>
import BigHeader from "../components/layout/Header.vue";
import Main from "../components/layout/Main.vue";
// import BigHeader from "../components/layout/Header.vue";
// import Main from "../components/layout/Main.vue";
import LeftSide from "./LeftSide.vue";
import RightSide from "./RightSide.vue";
import MainContent from './MainContent.vue';
import MonitorGroup2 from "@/components/groups/monitor2.vue";
import DataGroup from "@/components/groups/data.vue";
export default {
name: "HomeView",
components: { BigHeader, Main, LeftSide, RightSide },
components: { LeftSide, RightSide, MainContent, MonitorGroup2, DataGroup },
props: {},
data() {
return {
value: 100,
value: 10,
};
},
computed: {
styles() {
let v = (this.value / 100).toFixed(2);
return {
transform: `scale(${v * 24 / 33}, ${v})`,
transform: `scale(${v * 24 * 10 / 33}, ${v * 10})`,
transformOrigin: "top left",
};
},
@@ -94,7 +107,7 @@ export default {
left: 0;
width: 100%;
height: 100%;
background: #c9cce577;
// background: #c9cce577;
// background: url(../assets/bg.png) center/cover no-repeat;
}
@@ -103,6 +116,20 @@ export default {
height: 4320px;
display: flex;
flex-direction: column;
// position: relative;
}
.center-top {
height: 2168px;
// background: #0b58ff33;
display: flex;
}
.center-bottom {
flex: 1;
height: 1px;
background: #ccc1;
position: relative;
}
.slider {
@@ -134,4 +161,18 @@ export default {
opacity: 1;
bottom: 64px;
}
.screen-container {
// background: #09df2233;
display: inline-block;
width: 3854px;
height: 2168px;
}
// .main-container__content {
// flex: 1;
// background: #38012311;
// }
.top-left {}
</style>

View File

@@ -21,6 +21,6 @@ export default {
.left-side {
// background: rgba(243, 54, 145, 0.166);
height: 4320px;
width: 3840px;
width: 3816px;
}
</style>

33
src/views/MainContent.vue Normal file
View File

@@ -0,0 +1,33 @@
<template>
<div class="main-content">
<AHeader />
<Main />
<BottomBar />
</div>
</template>
<script>
import AHeader from "../components/layout/Header.vue";
import Main from "../components/layout/Main.vue";
import BottomBar from "../components/layout/BottomBar.vue";
export default {
name: 'MainContent',
components: { AHeader, Main, BottomBar },
data() {
return {
}
}
}
</script>
<style scoped>
.main-content {
width: 1px;
flex: 1;
/* background: #f001; */
display: flex;
flex-direction: column;
}
</style>

View File

@@ -20,7 +20,7 @@ export default {
.right-side {
// background: rgba(30, 133, 244, 0.292);
height: 4320px;
height: 4324px;
width: 3840px;
}
</style>