Before Width: | Height: | Size: 527 KiB After Width: | Height: | Size: 325 KiB |
Before Width: | Height: | Size: 530 KiB After Width: | Height: | Size: 336 KiB |
After Width: | Height: | Size: 716 B |
After Width: | Height: | Size: 3.3 KiB |
Before Width: | Height: | Size: 686 KiB |
After Width: | Height: | Size: 156 KiB |
After Width: | Height: | Size: 1.7 KiB |
After Width: | Height: | Size: 25 KiB |
@ -0,0 +1,156 @@ |
|||
<template> |
|||
<div class="box-bg"> |
|||
<div :style="{ width: '92%', height: '92%',margin: 'auto 3% auto 5%' }" id="humidity"></div> |
|||
</div> |
|||
</template> |
|||
|
|||
<script lang="ts"> |
|||
import { defineComponent } from "vue"; |
|||
import * as echarts from "echarts"; |
|||
import { getTeamAndHumidity } from "api/index"; |
|||
|
|||
export default defineComponent({ |
|||
name: "humidity", |
|||
data() { |
|||
return { |
|||
myCharts: {}, |
|||
humiditys: [], |
|||
}; |
|||
}, |
|||
|
|||
computed: { |
|||
// 湿度 |
|||
humidityArray() { |
|||
const { humiditys } = this; |
|||
let arr = []; |
|||
if (humiditys && humiditys.length) { |
|||
humiditys.forEach((item) => { |
|||
arr.push(item.humidity); |
|||
}); |
|||
} else { |
|||
arr = [15, 55, 75, 97, 76, 95, 75]; |
|||
} |
|||
return arr; |
|||
}, |
|||
|
|||
// 时间 |
|||
timeArray() { |
|||
const { humiditys } = this; |
|||
let arr = []; |
|||
if (humiditys && humiditys.length) { |
|||
humiditys.forEach((item) => { |
|||
arr.push(item.time); |
|||
}); |
|||
} else { |
|||
arr = ["10:00", "11:00", "12:00", "13:00", "14:00", "15:00", "16:00"]; |
|||
} |
|||
return arr; |
|||
}, |
|||
}, |
|||
|
|||
watch: { |
|||
humiditys: { |
|||
deep: true, |
|||
handler(value) { |
|||
if (value) { |
|||
this.getOptions(); |
|||
} |
|||
}, |
|||
}, |
|||
}, |
|||
|
|||
created() { |
|||
setInterval(() => { |
|||
// 获取数据 |
|||
this.getTeamAndHumidity(); |
|||
}, 4500); |
|||
}, |
|||
|
|||
mounted() { |
|||
// 绘制图表 |
|||
this.getOptions(); |
|||
}, |
|||
|
|||
methods: { |
|||
/** 查询温度与湿度 |
|||
* @param {number} endTime 结束时间 |
|||
* @param {number} startTime 开始时间 |
|||
* @param {number} warehouseId 仓库id |
|||
*/ |
|||
async getTeamAndHumidity() { |
|||
try { |
|||
const { parkId, warehouseId } = this.$route.query; |
|||
const param = { parkId: parkId || 2, warehouseId: warehouseId || 7 }; |
|||
const data = await getTeamAndHumidity(param); |
|||
this.humiditys = data.humiditys; |
|||
} catch (error) { |
|||
console.log("error: ", error); |
|||
} |
|||
}, |
|||
|
|||
// 绘制图表 |
|||
getOptions() { |
|||
const { humidityArray, timeArray } = this; |
|||
const humidity = document.getElementById("humidity"); |
|||
this.myCharts = echarts.init(humidity); |
|||
this.myCharts.setOption({ |
|||
tooltip: {}, |
|||
grid: { |
|||
left: "0", |
|||
right: "6%", |
|||
top: "25%", |
|||
bottom: "0", |
|||
containLabel: true, |
|||
}, |
|||
xAxis: { |
|||
type: "category", |
|||
data: timeArray, |
|||
}, |
|||
yAxis: { |
|||
type: "value", |
|||
splitLine: { |
|||
show: true, |
|||
lineStyle: { |
|||
color: "rgba(255,255,255,0.1)", |
|||
}, |
|||
}, |
|||
}, |
|||
series: [ |
|||
{ |
|||
name: "湿度", |
|||
type: "line", |
|||
lineStyle: { |
|||
color: "#82B869", |
|||
}, |
|||
itemStyle: { |
|||
normal: { |
|||
color: "#82B869", |
|||
}, |
|||
}, |
|||
smooth: true, |
|||
data: humidityArray, |
|||
markPoint: { |
|||
data: [ |
|||
{ type: "max", name: "最大值" }, |
|||
{ type: "min", name: "最小值" }, |
|||
], |
|||
}, |
|||
}, |
|||
], |
|||
}); |
|||
}, |
|||
}, |
|||
}); |
|||
</script> |
|||
|
|||
<style scoped> |
|||
.box-bg { |
|||
width: 100%; |
|||
height: 100%; |
|||
} |
|||
|
|||
.humidity { |
|||
width: 1440rem; |
|||
height: 1110rem; |
|||
} |
|||
</style> |
@ -0,0 +1,156 @@ |
|||
<template> |
|||
<div class="box-bg"> |
|||
<div :style="{ width: '92%', height: '92%',margin: 'auto 3% auto 5%' }" id="temperature"></div> |
|||
</div> |
|||
</template> |
|||
|
|||
<script lang="ts"> |
|||
import { defineComponent } from "vue"; |
|||
import * as echarts from "echarts"; |
|||
import { getTeamAndHumidity } from "api/index"; |
|||
|
|||
export default defineComponent({ |
|||
name: "temperature", |
|||
data() { |
|||
return { |
|||
myCharts: {}, |
|||
temps: [], |
|||
}; |
|||
}, |
|||
|
|||
computed: { |
|||
// 温度 |
|||
tempArray() { |
|||
const { temps } = this; |
|||
let arr = []; |
|||
if (temps && temps.length) { |
|||
temps.forEach((item) => { |
|||
arr.push(item.temp); |
|||
}); |
|||
} else { |
|||
arr = [45, 55, 56, 73, 76, 95, 98]; |
|||
} |
|||
return arr; |
|||
}, |
|||
|
|||
// 时间 |
|||
timeArray() { |
|||
const { temps } = this; |
|||
let arr = []; |
|||
if (temps && temps.length) { |
|||
temps.forEach((item) => { |
|||
arr.push(item.time); |
|||
}); |
|||
} else { |
|||
arr = ["10:00", "11:00", "12:00", "13:00", "14:00", "15:00", "16:00"]; |
|||
} |
|||
return arr; |
|||
}, |
|||
}, |
|||
|
|||
watch: { |
|||
temps: { |
|||
deep: true, |
|||
handler(value) { |
|||
if (value) { |
|||
this.getOptions(); |
|||
} |
|||
}, |
|||
}, |
|||
}, |
|||
|
|||
created() { |
|||
setInterval(() => { |
|||
// 获取数据 |
|||
this.getTeamAndHumidity(); |
|||
}, 3500); |
|||
}, |
|||
|
|||
mounted() { |
|||
// 绘制图表 |
|||
this.getOptions(); |
|||
}, |
|||
|
|||
methods: { |
|||
/** 查询温度与湿度 |
|||
* @param {number} endTime 结束时间 |
|||
* @param {number} startTime 开始时间 |
|||
* @param {number} warehouseId 仓库id |
|||
*/ |
|||
async getTeamAndHumidity() { |
|||
try { |
|||
const { parkId, warehouseId } = this.$route.query; |
|||
const param = { parkId: parkId || 2, warehouseId: warehouseId || 7 }; |
|||
const data = await getTeamAndHumidity(param); |
|||
this.temps = data.temps; |
|||
} catch (error) { |
|||
console.log("error: ", error); |
|||
} |
|||
}, |
|||
|
|||
getOptions() { |
|||
// 绘制图表 |
|||
const { tempArray, timeArray } = this; |
|||
const temperature = document.getElementById("temperature"); |
|||
this.myCharts = echarts.init(temperature); |
|||
this.myCharts.setOption({ |
|||
tooltip: {}, |
|||
grid: { |
|||
left: "0", |
|||
right: "6%", |
|||
top: "25%", |
|||
bottom: "0", |
|||
containLabel: true, |
|||
}, |
|||
xAxis: { |
|||
type: "category", |
|||
data: timeArray, |
|||
}, |
|||
yAxis: { |
|||
type: "value", |
|||
splitLine: { |
|||
show: true, |
|||
lineStyle: { |
|||
color: "rgba(255,255,255,0.1)", |
|||
}, |
|||
}, |
|||
}, |
|||
series: [ |
|||
{ |
|||
name: "温度", |
|||
type: "line", |
|||
// lineStyle: { |
|||
// color: '#FC8452', |
|||
// }, |
|||
// itemStyle: { |
|||
// normal: { |
|||
// color: '#FC8452', |
|||
// }, |
|||
// }, |
|||
smooth: true, |
|||
data: tempArray, |
|||
markPoint: { |
|||
data: [ |
|||
{ type: "max", name: "最大值" }, |
|||
{ type: "min", name: "最小值" }, |
|||
], |
|||
}, |
|||
}, |
|||
], |
|||
}); |
|||
}, |
|||
}, |
|||
}); |
|||
</script> |
|||
|
|||
<style scoped> |
|||
.box-bg { |
|||
width: 100%; |
|||
height: 100%; |
|||
} |
|||
|
|||
.temperature { |
|||
width: 1440rem; |
|||
height: 1110rem; |
|||
} |
|||
</style> |
@ -0,0 +1,118 @@ |
|||
<template> |
|||
<div class="box-bg"> |
|||
<!-- 停车位 --> |
|||
<div :style="{ width: '100%', height: '100%' }" id="totalCargo"></div> |
|||
</div> |
|||
</template> |
|||
|
|||
<script lang="ts"> |
|||
import { defineComponent } from "vue"; |
|||
import * as echarts from "echarts"; |
|||
|
|||
export default defineComponent({ |
|||
name: "totalCargo", |
|||
data() { |
|||
return { |
|||
myCharts: {}, |
|||
carOfInLists: [], |
|||
carOfOutLists: [], |
|||
}; |
|||
}, |
|||
|
|||
mounted() { |
|||
// 绘制图表 |
|||
this.getOptions(); |
|||
}, |
|||
|
|||
methods: { |
|||
// 绘制图表 |
|||
getOptions() { |
|||
const totalCargo = document.getElementById("totalCargo"); |
|||
this.myCharts = echarts.init(totalCargo); |
|||
this.myCharts.setOption({ |
|||
series: [ |
|||
{ |
|||
type: "gauge", |
|||
startAngle: 90, |
|||
endAngle: -270, |
|||
max: 10000, |
|||
pointer: { |
|||
show: false, |
|||
}, |
|||
progress: { |
|||
show: true, |
|||
overlap: false, |
|||
roundCap: true, |
|||
clip: false, |
|||
itemStyle: { |
|||
borderWidth: 1, |
|||
borderColor: "#ccc", |
|||
color: "#FAC858", |
|||
}, |
|||
}, |
|||
axisLine: { |
|||
lineStyle: { |
|||
width: 50, |
|||
}, |
|||
}, |
|||
axisTick: { |
|||
show: true, |
|||
}, |
|||
splitLine: { |
|||
length: 15, |
|||
lineStyle: { |
|||
width: 2, |
|||
color: "#999", |
|||
}, |
|||
}, |
|||
axisLabel: { |
|||
distance: 60, |
|||
color: "#999", |
|||
fontSize: 20, |
|||
}, |
|||
data: [ |
|||
{ |
|||
value: 4530.88, |
|||
name: "Perfect", |
|||
title: { |
|||
offsetCenter: ["0%", "-30%"], |
|||
}, |
|||
detail: { |
|||
offsetCenter: ["0%", "-20%"], |
|||
}, |
|||
itemStyle: { |
|||
color: "#FAC858", |
|||
}, |
|||
}, |
|||
], |
|||
title: { |
|||
fontSize: 18, |
|||
}, |
|||
detail: { |
|||
width: 50, |
|||
height: 14, |
|||
fontSize: 14, |
|||
color: "auto", |
|||
borderColor: "auto", |
|||
borderRadius: 20, |
|||
borderWidth: 1, |
|||
}, |
|||
}, |
|||
], |
|||
}); |
|||
}, |
|||
}, |
|||
}); |
|||
</script> |
|||
|
|||
<style scoped> |
|||
.box-bg { |
|||
width: 100%; |
|||
height: 100%; |
|||
} |
|||
|
|||
.totalCargo { |
|||
width: 1440rem; |
|||
height: 1110rem; |
|||
} |
|||
</style> |
@ -0,0 +1,181 @@ |
|||
<template> |
|||
<!-- 顶栏 --> |
|||
<top-bar /> |
|||
|
|||
<container> |
|||
<template v-slot:left> |
|||
<side-item title="大事记"> |
|||
<memorabilia /> |
|||
</side-item> |
|||
<side-item title="饱和量仪表盘"> |
|||
<div class="flex justify-between" style="width:100%;height:100%"> |
|||
<parking-space /> |
|||
<usable-area /> |
|||
</div> |
|||
</side-item> |
|||
<side-item title="仓库吞吐量对比图"> |
|||
<warehouse /> |
|||
</side-item> |
|||
</template> |
|||
|
|||
<template v-slot:center> |
|||
<iframe class="block frame" frameborder="0" src="https://www.tall.wiki/wl/1"></iframe> |
|||
</template> |
|||
|
|||
<template v-slot:right> |
|||
<side-item title="货物吞吐量曲线"> |
|||
<curve /> |
|||
</side-item> |
|||
<side-item title="进出车次统计"> |
|||
<amount /> |
|||
</side-item> |
|||
<side-item title="园区财务统计表"> |
|||
<finance /> |
|||
</side-item> |
|||
</template> |
|||
</container> |
|||
|
|||
<!-- 底部区域 --> |
|||
<footer-bar :showIndex="showIndex" @showMonitor="showMonitor"></footer-bar> |
|||
|
|||
<!-- 监控 --> |
|||
<div class="vedio" v-show="show"> |
|||
<div class="head"> |
|||
<div class="camera">摄像头监控视频</div> |
|||
<img @click="show = false" class="close" src="../assets/img/close.png" /> |
|||
</div> |
|||
<div class="monitor"> |
|||
<div class="monitor1"> |
|||
<iframe |
|||
frameborder="0" |
|||
height="100%" |
|||
scrolling="no" |
|||
src="https://www.tall.wiki/kangfu-v1/?key=230659446" |
|||
width="100%" |
|||
></iframe> |
|||
<!-- 生产 https://www.tall.wiki/kangfu-v1/?key=E83239936 --> |
|||
<!-- 测试 https://www.tall.wiki/kangfu-v1/?key=230659446 --> |
|||
<div class="screen"> |
|||
<img @click="$router.push('/vs')" class="monitor2" src="../assets/img/fullScreen.png" /> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
</template> |
|||
|
|||
<script lang="ts"> |
|||
import { defineComponent } from "vue"; |
|||
import TopBar from "comp/top-bar.vue"; |
|||
import Container from "comp/content.vue"; |
|||
import SideItem from "comp/side-item.vue"; |
|||
import FooterBar from "comp/footer-bar.vue"; |
|||
import Curve from "comp/curve.vue"; |
|||
import Amount from "@/components/amount.vue"; |
|||
import Finance from "@/components/finance.vue"; |
|||
import Warehouse from "@/components/warehouse.vue"; |
|||
import ParkingSpace from "@/components/parkingSpace.vue"; |
|||
import UsableArea from "@/components/usableArea.vue"; |
|||
import Memorabilia from "@/components/memorabilia.vue"; |
|||
|
|||
export default defineComponent({ |
|||
components: { |
|||
TopBar, |
|||
Container, |
|||
SideItem, |
|||
FooterBar, |
|||
Curve, |
|||
Amount, |
|||
Finance, |
|||
Warehouse, |
|||
ParkingSpace, |
|||
UsableArea, |
|||
Memorabilia, |
|||
}, |
|||
data() { |
|||
return { |
|||
show: false, |
|||
showIndex: 0, |
|||
}; |
|||
}, |
|||
methods: { |
|||
showMonitor() { |
|||
console.log("显示"); |
|||
this.show = true; |
|||
}, |
|||
}, |
|||
}); |
|||
</script> |
|||
|
|||
<style scoped> |
|||
.frame { |
|||
position: fixed; |
|||
left: 0; |
|||
top: 0; |
|||
bottom: 0; |
|||
right: 0; |
|||
width: 100%; |
|||
height: 100%; |
|||
z-index: 0; |
|||
} |
|||
|
|||
.vedio { |
|||
position: absolute; |
|||
bottom: 15%; |
|||
left: 37%; |
|||
z-index: 99; |
|||
width: 524rem; |
|||
height: 369rem; |
|||
background: url(/src/assets/img/vedio.png) center no-repeat; |
|||
background-size: 100% 100%; |
|||
} |
|||
|
|||
.head { |
|||
text-align: center; |
|||
font-size: 20rem; |
|||
padding-top: 30rem; |
|||
padding-bottom: 10rem; |
|||
} |
|||
|
|||
.camera { |
|||
color: #fff; |
|||
font-size: 12rem; |
|||
} |
|||
|
|||
.close { |
|||
position: absolute; |
|||
top: 7%; |
|||
right: 8%; |
|||
width: 20rem; |
|||
height: 20rem; |
|||
} |
|||
|
|||
.monitor { |
|||
width: 446rem; |
|||
height: 287rem; |
|||
margin: 0 auto; |
|||
} |
|||
|
|||
.monitor1 { |
|||
width: 100%; |
|||
height: 100%; |
|||
position: relative; |
|||
} |
|||
|
|||
.screen { |
|||
width: 100%; |
|||
height: 40rem; |
|||
position: absolute; |
|||
right: 0; |
|||
bottom: -1px; |
|||
z-index: 9; |
|||
background: rgba(0, 0, 0, 0.5); |
|||
} |
|||
|
|||
.monitor2 { |
|||
width: 30rem; |
|||
height: 30rem; |
|||
position: absolute; |
|||
right: 15rem; |
|||
bottom: 5rem; |
|||
} |
|||
</style> |
@ -0,0 +1,176 @@ |
|||
<template> |
|||
<!-- 顶栏 --> |
|||
<top-bar /> |
|||
|
|||
<container> |
|||
<template v-slot:left> |
|||
<side-item title="温度曲线"> |
|||
<temperature /> |
|||
</side-item> |
|||
<side-item title="湿度曲线"> |
|||
<humidity /> |
|||
</side-item> |
|||
<side-item title="仓库吞吐量对比图"> |
|||
<warehouse /> |
|||
</side-item> |
|||
</template> |
|||
|
|||
<template v-slot:center> |
|||
<iframe class="block frame" frameborder="0" src="https://www.tall.wiki/wl/3"></iframe> |
|||
</template> |
|||
|
|||
<template v-slot:right> |
|||
<side-item title="货物吞吐量曲线"> |
|||
<curve /> |
|||
</side-item> |
|||
<side-item title="进出车次统计"> |
|||
<amount /> |
|||
</side-item> |
|||
<side-item title="园区财务统计表"> |
|||
<finance /> |
|||
</side-item> |
|||
</template> |
|||
</container> |
|||
|
|||
<!-- 底部区域 --> |
|||
<footer-bar :showIndex="showIndex" @showMonitor="showMonitor"></footer-bar> |
|||
|
|||
<!-- 监控 --> |
|||
<div class="vedio" v-show="show"> |
|||
<div class="head"> |
|||
<div class="camera">摄像头监控视频</div> |
|||
<img @click="show = false" class="close" src="../assets/img/close.png" /> |
|||
</div> |
|||
<div class="monitor"> |
|||
<div class="monitor1"> |
|||
<iframe |
|||
frameborder="0" |
|||
height="100%" |
|||
scrolling="no" |
|||
src="https://www.tall.wiki/kangfu-v1/?key=230659446" |
|||
width="100%" |
|||
></iframe> |
|||
<!-- 生产 https://www.tall.wiki/kangfu-v1/?key=E83239936 --> |
|||
<!-- 测试 https://www.tall.wiki/kangfu-v1/?key=230659446 --> |
|||
<div class="screen"> |
|||
<img @click="$router.push('/vs')" class="monitor2" src="../assets/img/fullScreen.png" /> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
</template> |
|||
|
|||
<script lang="ts"> |
|||
import { defineComponent } from "vue"; |
|||
import TopBar from "comp/top-bar.vue"; |
|||
import Container from "comp/content.vue"; |
|||
import SideItem from "comp/side-item.vue"; |
|||
import FooterBar from "comp/footer-bar.vue"; |
|||
import Curve from "comp/curve.vue"; |
|||
import Amount from "@/components/amount.vue"; |
|||
import Finance from "@/components/finance.vue"; |
|||
import Warehouse from "@/components/warehouse.vue"; |
|||
import Humidity from "@/components/humidity.vue"; |
|||
import Temperature from "@/components/temperature.vue"; |
|||
|
|||
export default defineComponent({ |
|||
components: { |
|||
TopBar, |
|||
Container, |
|||
SideItem, |
|||
FooterBar, |
|||
Curve, |
|||
Amount, |
|||
Finance, |
|||
Warehouse, |
|||
Humidity, |
|||
Temperature, |
|||
}, |
|||
data() { |
|||
return { |
|||
show: false, |
|||
showIndex: 2, |
|||
}; |
|||
}, |
|||
methods: { |
|||
showMonitor() { |
|||
console.log("显示"); |
|||
this.show = true; |
|||
}, |
|||
}, |
|||
}); |
|||
</script> |
|||
|
|||
<style scoped> |
|||
.frame { |
|||
position: fixed; |
|||
left: 0; |
|||
top: 0; |
|||
bottom: 0; |
|||
right: 0; |
|||
width: 100%; |
|||
height: 100%; |
|||
z-index: 0; |
|||
} |
|||
|
|||
.vedio { |
|||
position: absolute; |
|||
bottom: 15%; |
|||
left: 37%; |
|||
z-index: 99; |
|||
width: 524rem; |
|||
height: 369rem; |
|||
background: url(/src/assets/img/vedio.png) center no-repeat; |
|||
background-size: 100% 100%; |
|||
} |
|||
|
|||
.head { |
|||
text-align: center; |
|||
font-size: 20rem; |
|||
padding-top: 30rem; |
|||
padding-bottom: 10rem; |
|||
} |
|||
|
|||
.camera { |
|||
color: #fff; |
|||
font-size: 12rem; |
|||
} |
|||
|
|||
.close { |
|||
position: absolute; |
|||
top: 7%; |
|||
right: 8%; |
|||
width: 20rem; |
|||
height: 20rem; |
|||
} |
|||
|
|||
.monitor { |
|||
width: 446rem; |
|||
height: 287rem; |
|||
margin: 0 auto; |
|||
} |
|||
|
|||
.monitor1 { |
|||
width: 100%; |
|||
height: 100%; |
|||
position: relative; |
|||
} |
|||
|
|||
.screen { |
|||
width: 100%; |
|||
height: 40rem; |
|||
position: absolute; |
|||
right: 0; |
|||
bottom: -1px; |
|||
z-index: 9; |
|||
background: rgba(0, 0, 0, 0.5); |
|||
} |
|||
|
|||
.monitor2 { |
|||
width: 30rem; |
|||
height: 30rem; |
|||
position: absolute; |
|||
right: 15rem; |
|||
bottom: 5rem; |
|||
} |
|||
</style> |
@ -0,0 +1,54 @@ |
|||
<template> |
|||
<div class="flex w-screen h-screen min-h-0 bg-black"> |
|||
<div class="frame1"> |
|||
<iframe |
|||
frameborder="0" |
|||
height="100%" |
|||
scrolling="no" |
|||
src="https://www.tall.wiki/kangfu-v1/?key=230659446" |
|||
width="100%" |
|||
></iframe> |
|||
<!-- 生产 https://www.tall.wiki/kangfu-v1/?key=E83239936 --> |
|||
<!-- 测试 https://www.tall.wiki/kangfu-v1/?key=230659446 --> |
|||
<div class="screen"> |
|||
<img @click="$router.go(-1)" class="frame2" src="../assets/img/closeScreen.png" /> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
</template> |
|||
|
|||
<script lang="ts"> |
|||
import { defineComponent } from "vue"; |
|||
|
|||
export default defineComponent({ |
|||
data() { |
|||
return {}; |
|||
}, |
|||
}); |
|||
</script> |
|||
|
|||
<style scoped> |
|||
.frame1 { |
|||
width: 100%; |
|||
height: 100%; |
|||
position: relative; |
|||
} |
|||
|
|||
.screen { |
|||
width: 100%; |
|||
height: 50rem; |
|||
position: absolute; |
|||
right: 0; |
|||
bottom: -1px; |
|||
z-index: 9; |
|||
background: rgba(0, 0, 0, 0.5); |
|||
} |
|||
|
|||
.frame2 { |
|||
width: 30rem; |
|||
height: 30rem; |
|||
position: absolute; |
|||
right: 15rem; |
|||
bottom: 10rem; |
|||
} |
|||
</style> |
@ -0,0 +1,181 @@ |
|||
<template> |
|||
<!-- 顶栏 --> |
|||
<top-bar /> |
|||
|
|||
<container> |
|||
<template v-slot:left> |
|||
<side-item title="大事记"> |
|||
<memorabilia /> |
|||
</side-item> |
|||
<side-item title="饱和量仪表盘"> |
|||
<div class="flex justify-between" style="width:100%;height:100%"> |
|||
<usable-area /> |
|||
<parking-space /> |
|||
</div> |
|||
</side-item> |
|||
<side-item title="仓库吞吐量对比图"> |
|||
<warehouse /> |
|||
</side-item> |
|||
</template> |
|||
|
|||
<template v-slot:center> |
|||
<iframe class="block frame" frameborder="0" src="https://www.tall.wiki/wl/2"></iframe> |
|||
</template> |
|||
|
|||
<template v-slot:right> |
|||
<side-item title="货物吞吐量曲线"> |
|||
<curve /> |
|||
</side-item> |
|||
<side-item title="进出车次统计"> |
|||
<amount /> |
|||
</side-item> |
|||
<side-item title="园区财务统计表"> |
|||
<finance /> |
|||
</side-item> |
|||
</template> |
|||
</container> |
|||
|
|||
<!-- 底部区域 --> |
|||
<footer-bar :showIndex="showIndex" @showMonitor="showMonitor"></footer-bar> |
|||
|
|||
<!-- 监控 --> |
|||
<div class="vedio" v-show="show"> |
|||
<div class="head"> |
|||
<div class="camera">摄像头监控视频</div> |
|||
<img @click="show = false" class="close" src="../assets/img/close.png" /> |
|||
</div> |
|||
<div class="monitor"> |
|||
<div class="monitor1"> |
|||
<iframe |
|||
frameborder="0" |
|||
height="100%" |
|||
scrolling="no" |
|||
src="https://www.tall.wiki/kangfu-v1/?key=230659446" |
|||
width="100%" |
|||
></iframe> |
|||
<!-- 生产 https://www.tall.wiki/kangfu-v1/?key=E83239936 --> |
|||
<!-- 测试 https://www.tall.wiki/kangfu-v1/?key=230659446 --> |
|||
<div class="screen"> |
|||
<img @click="$router.push('/vs')" class="monitor2" src="../assets/img/fullScreen.png" /> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
</template> |
|||
|
|||
<script lang="ts"> |
|||
import { defineComponent } from "vue"; |
|||
import TopBar from "comp/top-bar.vue"; |
|||
import Container from "comp/content.vue"; |
|||
import SideItem from "comp/side-item.vue"; |
|||
import FooterBar from "comp/footer-bar.vue"; |
|||
import Curve from "comp/curve.vue"; |
|||
import Amount from "@/components/amount.vue"; |
|||
import Finance from "@/components/finance.vue"; |
|||
import Warehouse from "@/components/warehouse.vue"; |
|||
import ParkingSpace from "@/components/parkingSpace.vue"; |
|||
import UsableArea from "@/components/usableArea.vue"; |
|||
import Memorabilia from "@/components/memorabilia.vue"; |
|||
|
|||
export default defineComponent({ |
|||
components: { |
|||
TopBar, |
|||
Container, |
|||
SideItem, |
|||
FooterBar, |
|||
Curve, |
|||
Amount, |
|||
Finance, |
|||
Warehouse, |
|||
ParkingSpace, |
|||
UsableArea, |
|||
Memorabilia, |
|||
}, |
|||
data() { |
|||
return { |
|||
show: false, |
|||
showIndex: 1, |
|||
}; |
|||
}, |
|||
methods: { |
|||
showMonitor() { |
|||
console.log("显示"); |
|||
this.show = true; |
|||
}, |
|||
}, |
|||
}); |
|||
</script> |
|||
|
|||
<style scoped> |
|||
.frame { |
|||
position: fixed; |
|||
left: 0; |
|||
top: 0; |
|||
bottom: 0; |
|||
right: 0; |
|||
width: 100%; |
|||
height: 100%; |
|||
z-index: 0; |
|||
} |
|||
|
|||
.vedio { |
|||
position: absolute; |
|||
bottom: 15%; |
|||
left: 37%; |
|||
z-index: 99; |
|||
width: 524rem; |
|||
height: 369rem; |
|||
background: url(/src/assets/img/vedio.png) center no-repeat; |
|||
background-size: 100% 100%; |
|||
} |
|||
|
|||
.head { |
|||
text-align: center; |
|||
font-size: 20rem; |
|||
padding-top: 30rem; |
|||
padding-bottom: 10rem; |
|||
} |
|||
|
|||
.camera { |
|||
color: #fff; |
|||
font-size: 12rem; |
|||
} |
|||
|
|||
.close { |
|||
position: absolute; |
|||
top: 7%; |
|||
right: 8%; |
|||
width: 20rem; |
|||
height: 20rem; |
|||
} |
|||
|
|||
.monitor { |
|||
width: 446rem; |
|||
height: 287rem; |
|||
margin: 0 auto; |
|||
} |
|||
|
|||
.monitor1 { |
|||
width: 100%; |
|||
height: 100%; |
|||
position: relative; |
|||
} |
|||
|
|||
.screen { |
|||
width: 100%; |
|||
height: 40rem; |
|||
position: absolute; |
|||
right: 0; |
|||
bottom: -1px; |
|||
z-index: 9; |
|||
background: rgba(0, 0, 0, 0.5); |
|||
} |
|||
|
|||
.monitor2 { |
|||
width: 30rem; |
|||
height: 30rem; |
|||
position: absolute; |
|||
right: 15rem; |
|||
bottom: 5rem; |
|||
} |
|||
</style> |