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> |