From b9346c0dad8727fce46482c5ed29009717a902d0 Mon Sep 17 00:00:00 2001
From: xiangpei <xiangpei@timesnew.cn>
Date: 星期三, 25 九月 2024 14:20:39 +0800
Subject: [PATCH] 标线调整

---
 src/views/screen/newPage/index.vue |  367 ++++++++++++++++++++++++++++++++++-----------------
 1 files changed, 242 insertions(+), 125 deletions(-)

diff --git a/src/views/screen/newPage/index.vue b/src/views/screen/newPage/index.vue
index 63ee2b4..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" v-roll>{{ 1123 }}</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" v-roll>{{ 1123 }}</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" v-roll>{{ 1123 }}</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" v-roll>{{ 1123 }}</div>
-              </div>
-              <div class="data-info">
-                <div class="data-lable">璁惧姝e父鏁�</div>
-                <div class="data-num type2" v-roll>{{ 1123 }}</div>
-              </div>
-              <div class="data-info">
-                <div class="data-lable">璁惧寮傚父鏁�</div>
-                <div class="data-num type3" v-roll>{{ 1123 }}</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" v-roll>{{ 1123 }}</div>
-              </div>
-              <div class="data-info">
-                <div class="data-lable">璁惧姝e父鏁�</div>
-                <div class="data-num type2" v-roll>{{ 1123 }}</div>
-              </div>
-              <div class="data-info">
-                <div class="data-lable">璁惧寮傚父鏁�</div>
-                <div class="data-num type3" v-roll>{{ 1123 }}</div>
+                <div class="data-lable center">寮傚父鏁�</div>
+                <div class="data-num type3 center">
+                  <span v-roll>{{ item.errorNum }}</span>
+                </div>
               </div>
             </div>
           </div>
@@ -89,21 +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 class="card" style="height: 500px">
-          <div class="card_header"><div class="title">浜鸿劯鑰冩牳鏁版嵁</div></div>
-          <div><ScreenData></ScreenData></div>
         </div>
       </div>
     </div>
@@ -111,24 +73,35 @@
       <div class="footer_card">
         <div class="card_header">
           <div class="title">浜鸿劯鑰冩牳鏁版嵁</div>
-          <div style="width: 500px; margin-left: 40px">
-            <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: 500px; margin-left: 40px">
-            <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: 500px; margin-left: 40px">
-            <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>
@@ -140,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",
         },
         {
@@ -171,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;
@@ -227,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;
@@ -268,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;
@@ -305,6 +418,7 @@
   font-size: 20px;
   font-style: italic;
 }
+
 .data-info {
   flex: 1;
   color: #5b83bd;
@@ -319,13 +433,16 @@
   .type1 {
     color: #287cfa;
   }
+
   .type2 {
     color: #0cd81d;
   }
+
   .type3 {
     color: #e20c0c;
   }
 }
+
 .device_data {
   display: flex;
   align-items: center;

--
Gitblit v1.8.0