From 690eaac5ed710462a5f2635ccf9736e560f09381 Mon Sep 17 00:00:00 2001
From: fuliqi <fuliqi@qq.com>
Date: 星期三, 06 十一月 2024 10:07:02 +0800
Subject: [PATCH] 大图展示得分分开
---
src/views/screen/newPage/index.vue | 368 ++++++++++++++++++++++++++++++++++------------------
1 files changed, 242 insertions(+), 126 deletions(-)
diff --git a/src/views/screen/newPage/index.vue b/src/views/screen/newPage/index.vue
index ce4a6b7..4e2d483 100644
--- a/src/views/screen/newPage/index.vue
+++ b/src/views/screen/newPage/index.vue
@@ -1,16 +1,11 @@
<template>
<div class="new-page">
- <div style="display: flex; justify-content: space-between">
+ <div style="display: flex; justify-content: center">
<div class="header_box">
- <h1>杩愮淮鑰冩牳澶у睆</h1>
<div class="tabs-box">
- <el-tabs v-model="activeName" @tab-click="handleClick">
- <el-tab-pane
- v-for="item in testData1"
- :label="item.name"
- :name="item.value"
- :key="item.value"
- ></el-tab-pane>
+ <el-tabs v-model="activeName" @tab-click="tabChange">
+ <el-tab-pane v-for="item in testData1" :label="item.name" :name="item.value"
+ :key="item.value"></el-tab-pane>
</el-tabs>
</div>
</div>
@@ -18,69 +13,48 @@
</div>
<div style="display: flex; justify-content: space-between">
<div class="left_box">
+ <div class="titleCard" style="height: 90px; width: 450px">
+ <div>杩愮淮鑰冩牳澶у睆</div>
+ </div>
+ <div class="card" style="height: 622px">
+ <div class="card_header">
+ <div class="title">宸ュ崟鏁版嵁</div>
+ </div>
+ <div>
+ <ScreenData :workOrderData="workOrderData" :workOrderRegion="workOrderRegion"></ScreenData>
+ </div>
+ </div>
+ </div>
+ <div class="large_screen_box">
+ <NewMap @clickMap="getDeptId"></NewMap>
+ </div>
+
+ <div class="left_box">
<div class="card">
<div class="card_header">
<div class="title">璁惧鏁版嵁</div>
</div>
<div>
- <div class="device_data">
- <img
- src="../../../assets/images/screen/lxicon.png"
- alt=""
- style="height: 25px"
- />
- <div style="margin: 0 10px">浜鸿劯</div>
+ <div class="device_data" v-for="(item, index) in deviceList" :key="index">
+ <img src="../../../assets/images/screen/lxicon.png" alt="" style="height: 25px" />
+ <div style="margin: 0 10px">{{ item.type }}</div>
<div class="data-info">
- <div class="data-lable">璁惧鎬绘暟</div>
- <div class="data-num type1"><span v-roll>{{ 1123 }}</span><i class="el-icon-bottom"></i></div>
+ <div class="data-lable center">璁惧鎬绘暟</div>
+ <div class="data-num type1 center">
+ <span v-roll>{{ item.totalNum }}</span>
+ </div>
</div>
<div class="data-info">
- <div class="data-lable">璁惧姝e父鏁�</div>
- <div class="data-num type2"><span v-roll>{{ 1123 }}</span><i class="el-icon-bottom"></i></div>
+ <div class="data-lable center">姝e父鏁�</div>
+ <div class="data-num type2 center">
+ <span v-roll>{{ item.normalNum }}</span>
+ </div>
</div>
<div class="data-info">
- <div class="data-lable">璁惧寮傚父鏁�</div>
- <div class="data-num type3"><span v-roll>{{ 1123 }}</span><i class="el-icon-bottom"></i></div>
- </div>
- </div>
- <div class="device_data">
- <img
- src="../../../assets/images/screen/lxicon.png"
- alt=""
- style="height: 25px"
- />
- <div style="margin: 0 10px">杞﹁締</div>
- <div class="data-info">
- <div class="data-lable">璁惧鎬绘暟</div>
- <div class="data-num type1"><span v-roll>{{ 1123 }}</span><i class="el-icon-bottom"></i></div>
- </div>
- <div class="data-info">
- <div class="data-lable">璁惧姝e父鏁�</div>
- <div class="data-num type2"><span v-roll>{{ 1123 }}</span><i class="el-icon-bottom"></i></div>
- </div>
- <div class="data-info">
- <div class="data-lable">璁惧寮傚父鏁�</div>
- <div class="data-num type3"><span v-roll>{{ 1123 }}</span><i class="el-icon-bottom"></i></div>
- </div>
- </div>
- <div class="device_data">
- <img
- src="../../../assets/images/screen/lxicon.png"
- alt=""
- style="height: 25px"
- />
- <div style="margin: 0 10px">瑙嗛</div>
- <div class="data-info">
- <div class="data-lable">璁惧鎬绘暟</div>
- <div class="data-num type1"><span v-roll>{{ 1123 }}</span><i class="el-icon-bottom"></i></div>
- </div>
- <div class="data-info">
- <div class="data-lable">璁惧姝e父鏁�</div>
- <div class="data-num type2"><span v-roll>{{ 1123 }}</span><i class="el-icon-bottom"></i></div>
- </div>
- <div class="data-info">
- <div class="data-lable">璁惧寮傚父鏁�</div>
- <div class="data-num type3"><span v-roll>{{ 1123 }}</span><i class="el-icon-bottom"></i></div>
+ <div class="data-lable center">寮傚父鏁�</div>
+ <div class="data-num type3 center">
+ <span v-roll>{{ item.errorNum }}</span>
+ </div>
</div>
</div>
</div>
@@ -89,22 +63,9 @@
<div class="card_header">
<div class="title">璁惧姝e父鐜�</div>
<div style="margin: 10px 10px">
- <ScreenTable></ScreenTable>
+ <ScreenTable :tableData="tableData"></ScreenTable>
</div>
</div>
- </div>
- </div>
- <div class="large_screen_box">
- <NewMap></NewMap>
- </div>
- <div class="left_box">
- <div class="card" style="height: 103px">
- <div class="card_header"></div>
- <div>杩愮淮鑰冩牳澶у睆</div>
- </div>
- <div class="card" style="height: 500px">
- <div class="card_header"><div class="title">浜鸿劯鑰冩牳鏁版嵁</div></div>
- <div><ScreenData></ScreenData></div>
</div>
</div>
</div>
@@ -112,24 +73,35 @@
<div class="footer_card">
<div class="card_header">
<div class="title">浜鸿劯鑰冩牳鏁版嵁</div>
- <div style="width: 600px;">
- <ExamineChart class="wrapper-item"></ExamineChart>
+ <div style="width: 600px; margin-left: -20px">
+ <FaceChart class="wrapper-item" :faceList="faceList"></FaceChart>
</div>
</div>
</div>
<div class="footer_card">
<div class="card_header">
- <div class="title">杞﹁締鑰冩牳鏁版嵁</div>
- <div style="width: 600px;">
- <ExamineChart class="wrapper-item"></ExamineChart>
+ <div class="titleCar">杞﹁締鑰冩牳鏁版嵁</div>
+ </div>
+ <div style="
+ overflow: hidden;
+ overflow-x: auto;
+ margin-top: -9px;
+ ">
+ <div style="width: 780px">
+ <CarChart class="wrapper-item" :carList="carList"></CarChart>
</div>
</div>
</div>
<div class="footer_card">
<div class="card_header">
- <div class="title">瑙嗛鑰冩牳鏁版嵁</div>
- <div style="width:600px;">
- <ExamineChart class="wrapper-item"></ExamineChart>
+ <div class="titleCar">瑙嗛鑰冩牳鏁版嵁</div>
+ </div>
+ <div style="
+ overflow: auto;
+ margin-top: -9px;
+ ">
+ <div style="width: 1100px">
+ <VideoChart class="wrapper-item" :videoList="videoList"></VideoChart>
</div>
</div>
</div>
@@ -141,30 +113,37 @@
import ScreenTable from "../components/screen-table/index.vue";
import ScreenMap from "../components/screen-wrapper/index.vue";
import ScreenMapThree from "../components/screen-map-three/index";
-import ExamineChart from "../components/screen-examine/components/examine-chart.vue";
+import FaceChart from "../components/screen-examine/components/face-chart.vue";
+import CarChart from "../components/screen-examine/components/car-chart.vue";
+import VideoChart from "../components/screen-examine/components/video-chart.vue";
import ScreenData from "../components/screen-data/index.vue";
-import NewMap from "./components/newMap.vue"
+import NewMap from "./components/newMap.vue";
+import { getDepartmentData, getDeviceData, getWorkOrderData, getWorkOrderRegion, getNormalRate, checkFace, checkCar, checkVideo } from "@/api/newpage";
export default {
name: "Newpage",
components: {
ScreenTable,
ScreenMapThree,
ScreenMap,
- ExamineChart,
+ FaceChart,
+ CarChart,
+ VideoChart,
ScreenData,
NewMap,
},
data() {
return {
+ deptId: '',
+ deptList: [],
isEnd: false,
- activeName: "1",
+ activeName: "2",
testData1: [
{
name: "鐪佸巺鏁版嵁",
value: "1",
},
{
- name: "甯傚眬鏁版嵁",
+ name: "鍖哄幙鏁版嵁",
value: "2",
},
{
@@ -172,52 +151,141 @@
value: "3",
},
],
+ deviceList: [],
+ workOrderRegion: [],
+ carList: '',
+ faceList: '',
+ videoList: '',
+ workOrderData: {},
+ tableData: [],
};
},
- mounted() {},
+ mounted() {
+ // 鑾峰彇閮ㄩ棬
+ getDepartmentData()
+ .then((res) => {
+ this.deptList = res.data;
+ })
+ .catch((err) => { });
+ // 鏌ヨ鏁版嵁
+ this.getData();
+ },
methods: {
- returnPath() {
- this.$router.push('/index');
+ getDeptId(deptName) {
+ let deptId = this.deptList.find(item => item.area === deptName).deptId;
+ if (deptId === this.deptId) {
+ this.deptId = '';
+ } else {
+ this.deptId = deptId
+ }
+ this.getData();
},
- handleClick() {},
+ returnPath() {
+ this.$router.push("/index");
+ },
+ handleClick(tab, event) {
+ console.log(tab, event);
+ },
+ getData() {
+ getDeviceData(this.activeName, this.deptId)
+ .then((res) => {
+ this.deviceList = res.data;
+ })
+ .catch((err) => { });
+ getWorkOrderData(this.activeName, this.deptId)
+ .then((res) => {
+ this.workOrderData = res.data;
+ })
+ .catch((err) => { });
+ getWorkOrderRegion(this.activeName, this.deptId)
+ .then((res) => {
+ this.workOrderRegion = res.data;
+ })
+ .catch((err) => { });
+ getNormalRate(this.activeName, this.deptId)
+ .then((res) => {
+ this.tableData = res.data;
+ })
+ .catch((err) => { });
+ checkCar(this.activeName, this.deptId)
+ .then((res) => {
+ this.carList = res.data;
+ })
+ .catch((err) => { });
+ checkFace(this.activeName, this.deptId)
+ .then((res) => {
+ this.faceList = res.data;
+ })
+ .catch((err) => { });
+ checkVideo(this.activeName, this.deptId)
+ .then((res) => {
+ this.videoList = res.data;
+ })
+ .catch((err) => { });
+ },
+ tabChange() {
+ this.getData();
+ }
},
};
</script>
<style lang="scss" scoped>
+.center {
+ text-align: center;
+}
+
.new-page {
color: rgb(255, 255, 255);
+
.header_box {
display: flex;
align-items: center;
margin-top: 10px;
+ margin-left: -25px;
}
+
.return-button {
- position: absolute;
- right: 20px;
- top: 20px;
- border-radius: 4px;
- border: 1px solid #4481DD;
- background-color: rgba(67, 102, 155, 0.4);
- color: #4481DD;
- padding: 5px 20px;
- cursor: pointer;
-}
-}
-::v-deep .tabs-box {
- margin-top: 5px;
- .el-tabs__item {
- color: #ffffff !important;
- font-size: 20px;
- }
- .is-active {
- color: #66b5ff !important;
- background: url("../../../assets/images/screen/button1.png");
- background-size: cover !important;
+ position: absolute;
+ right: -5px;
+ top: 20px;
+ background: url("../../../assets/images/screen/backBt.png");
+ background-size: 100% 100%;
background-repeat: no-repeat !important;
background-position: center center !important;
+ padding: 15px 25px;
+ cursor: pointer;
+ font-size: 20px;
}
}
+
+::v-deep .tabs-box {
+ margin-top: 5px;
+
+ .el-tabs__item {
+ color: #ffffff !important;
+ font-size: 26px;
+ }
+
+ .is-active {
+ color: #00b8ff !important;
+ // background: url("../../../assets/images/screen/button1.png");
+ // background-size: cover !important;
+ // background-repeat: no-repeat !important;
+ // background-position: center center !important;
+ background: linear-gradient(#00b8ff, #00b8ff) left top,
+ linear-gradient(#00b8ff, #00b8ff) left top,
+ linear-gradient(#00b8ff, #00b8ff) right top,
+ linear-gradient(#00b8ff, #00b8ff) right top,
+ linear-gradient(#00b8ff, #00b8ff) left bottom,
+ linear-gradient(#00b8ff, #00b8ff) left bottom,
+ linear-gradient(#00b8ff, #00b8ff) right bottom,
+ linear-gradient(#00b8ff, #00b8ff) right bottom;
+ background-repeat: no-repeat;
+ background-size: 0.1vw 0.5vw, 0.5vw 0.1vw;
+ }
+}
+
::v-deep .el-input__inner {
background: rgba(67, 102, 155, 0.4) !important;
color: #4481dd;
@@ -228,38 +296,69 @@
background-color: transparent !important;
color: #4481dd;
}
+
::v-deep .date-select .el-date-editor .el-range-separator {
color: #4481dd !important;
}
+
// }
/* 鍘绘帀tabs鏍囩鏍忎笅鐨勪笅鍒掔嚎 */
::v-deep .el-tabs__nav-wrap::after {
position: static !important;
-// background-color: #fff;
+ // background-color: #fff;
}
-::v-deep .el-tabs__active-bar{
- width: 0 !important;
+
+::v-deep .el-tabs__active-bar {
+ width: 0 !important;
}
+
::v-deep .el-tabs__item {
margin: 5px 30px;
padding: 0px 25px !important;
- border-radius: 5px;
- background: url("../../../assets/images/screen/button.png");
- background-size: 100% 100%;
- background-repeat: no-repeat !important;
- background-position: center center !important;
+ background: linear-gradient(#ffffff, #ffffff) left top,
+ linear-gradient(#ffffff, #fff) left top,
+ linear-gradient(#ffffff, #ffffff) right top,
+ linear-gradient(#ffffff, #ffffff) right top,
+ linear-gradient(#ffffff, #ffffff) left bottom,
+ linear-gradient(#ffffff, #ffffff) left bottom,
+ linear-gradient(#ffffff, #ffffff) right bottom,
+ linear-gradient(#ffffff, #ffffff) right bottom;
+ background-repeat: no-repeat;
+ background-size: 0.1vw 0.5vw, 0.5vw 0.1vw;
+ // background-color: rgba(65, 136, 242, 0.1);
+ // background: url("../../../assets/images/screen/button.png");
+ // background-size: 100% 100%;
+ // background-repeat: no-repeat !important;
+ // background-position: center center !important;
}
+
.left_box {
width: 460px;
+ position: relative;
+
.card {
height: 300px;
width: 460px;
margin: 20px 0;
+
.card_header {
height: 40px;
}
}
+
+ .titleCard {
+ // background: url("../../../assets/images/screen/titleBg.png");
+ // background-size: 100% 100%;
+ // background-repeat: no-repeat !important;
+ // background-position: center center !important;
+ font-size: 40px;
+ font-weight: bold;
+ position: absolute;
+ top: -60px;
+ left: 10px;
+ }
}
+
.large_screen_box {
width: 920px;
height: 621px;
@@ -269,35 +368,48 @@
background-repeat: no-repeat !important;
background-position: center center !important;
}
+
.card {
background: url("../../../assets/images/screen/cardBg1.png");
background-size: 100% 100%;
background-repeat: no-repeat !important;
background-position: center center !important;
}
+
.card_header {
background: url("../../../assets/images/screen/headerBg.png");
background-size: 100% 100%;
background-repeat: no-repeat !important;
background-position: center center !important;
}
+
.footer_box {
width: 100%;
height: 320px;
- background: url("../../../assets/images/screen/cardBg.png");
- background-size: 100% 100%;
- background-repeat: no-repeat !important;
- background-position: center center !important;
+ background: rgba(90, 125, 179, 0.1) !important;
display: flex;
justify-content: space-between;
+ border: rgba(84, 132, 203, 0.4) 2px solid;
+
.footer_card {
width: 33%;
margin: 5px 0;
+
.card_header {
height: 40px;
+
+ .titleCar {
+ margin-left: 20px;
+ padding-top: 5px;
+ color: #fff;
+ letter-spacing: 2px;
+ font-size: 20px;
+ font-style: italic;
+ }
}
}
}
+
.title {
margin-left: 20px;
padding-top: 5px;
@@ -306,6 +418,7 @@
font-size: 20px;
font-style: italic;
}
+
.data-info {
flex: 1;
color: #5b83bd;
@@ -320,13 +433,16 @@
.type1 {
color: #287cfa;
}
+
.type2 {
color: #0cd81d;
}
+
.type3 {
color: #e20c0c;
}
}
+
.device_data {
display: flex;
align-items: center;
--
Gitblit v1.8.0