From a6842851a844e63a8766d63c5410a8e2f27a7d45 Mon Sep 17 00:00:00 2001
From: fuliqi <fuliqi@qq.com>
Date: 星期二, 20 八月 2024 11:56:30 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 src/api/newpage.js                                                    |   32 +
 /dev/null                                                             |  179 ----------
 src/views/screen/components/screen-data/index.vue                     |   41 +
 src/views/screen/components/screen-examine/components/car-chart.vue   |  143 ++++++++
 src/views/screen/components/screen-data/components/data-hola.vue      |    8 
 src/views/screen/newPage/index.vue                                    |  170 +++++----
 src/views/screen/components/screen-examine/components/video-chart.vue |  232 +++++++++++++
 src/views/screen/components/screen-examine/components/face-chart.vue  |  127 +++++++
 src/views/screen/components/screen-table/index.vue                    |   41 -
 src/views/screen/components/screen-examine/index.vue                  |    8 
 10 files changed, 681 insertions(+), 300 deletions(-)

diff --git a/src/api/newpage.js b/src/api/newpage.js
index 29a2767..70c4e00 100644
--- a/src/api/newpage.js
+++ b/src/api/newpage.js
@@ -16,6 +16,14 @@
   });
 }
 
+// 宸ュ崟鍦板尯
+export function getWorkOrderRegion() {
+  return request({
+    url: "/dashboard/workOrder/region",
+    method: "get",
+  });
+}
+
 //璁惧姝e父鐜�
 export function getNormalRate(id) {
   return request({
@@ -23,3 +31,27 @@
     method: "get",
   });
 }
+
+//浜鸿劯鑰冩牳鏁版嵁
+export function checkFace(id) {
+  return request({
+    url: "/dashboard/check/face",
+    method: "get",
+  });
+}
+
+// 杞﹁締鑰冩牳鏁版嵁
+export function checkCar(id) {
+  return request({
+    url: "/dashboard/check/car",
+    method: "get",
+  });
+}
+
+// 瑙嗛鑰冩牳鏁版嵁
+export function checkVideo(id) {
+  return request({
+    url: "/dashboard/check/video",
+    method: "get",
+  });
+}
diff --git a/src/views/screen/components/screen-data/components/data-hola.vue b/src/views/screen/components/screen-data/components/data-hola.vue
index da906ed..ba9a0cc 100644
--- a/src/views/screen/components/screen-data/components/data-hola.vue
+++ b/src/views/screen/components/screen-data/components/data-hola.vue
@@ -11,7 +11,7 @@
   name: 'DataHola',
   props: {
     centerValue: {
-      type: [Number, String],
+      type: Number,
       default: 0
     },
     holaColor: {
@@ -120,6 +120,12 @@
   mounted() {
     myChart = echarts.init(this.$refs['chartRef']);
     this.initChart();
+  },
+  watch: {
+    centerValue() {
+      myChart = echarts.init(this.$refs['chartRef']);
+      this.initChart();
+    }
   }
 }
 </script>
diff --git a/src/views/screen/components/screen-data/index.vue b/src/views/screen/components/screen-data/index.vue
index 85d070b..906d1c8 100644
--- a/src/views/screen/components/screen-data/index.vue
+++ b/src/views/screen/components/screen-data/index.vue
@@ -17,21 +17,21 @@
           <div class="panel-item">
             <data-hola
               :holaTitle="`宸ュ崟鎬绘暟`"
-              :centerValue="workOrderData.workOrderTotal.totalNum"
+              :centerValue="workOrderData.totalNum"
               :holaColor="`#4ea8ff`"
             ></data-hola>
           </div>
           <div class="panel-item">
             <data-hola
               :holaTitle="`宸插鐞嗗伐鍗曟暟`"
-              :centerValue="workOrderData.workOrderTotal.todolNum"
+              :centerValue="workOrderData.todoNum"
               :holaColor="`#5dec24`"
             ></data-hola>
           </div>
           <div class="panel-item">
             <data-hola
               :holaTitle="`鏈鐞嗗伐鍗曟暟`"
-              :centerValue="workOrderData.workOrderTotal.doneNum"
+              :centerValue="workOrderData.doneNum"
               :holaColor="`#dfc639`"
             ></data-hola>
           </div>
@@ -66,23 +66,19 @@
   props: {
     workOrderData: {
       type: Object,
+      default: {},
+    },
+    workOrderRegion: {
+      type: Array,
       default: null,
     },
   },
   data() {
     return {
       dataList: {
-        name: [
-          "瀵岄『鍘�",
-          "鑽e幙",
-          "楂樻柊鍖�",
-          "鑷祦浜曞尯",
-          "璐′簳鍖�",
-          "澶у畨鍖�",
-          "娌挎哗鍖�",
-        ],
-        data1: [210, 310, 40, 102, 111, 201, 123],
-        data2: [20, 30, 10, 10, 11, 21, 5],
+        name: [],
+        data1: [],
+        data2: [],
       },
     };
   },
@@ -142,6 +138,23 @@
     chart = echarts.init(this.$refs.barChart);
     this.initEchart();
   },
+  watch: {
+    workOrderRegion() {
+      let name = [];
+      let data1 = [];
+      let data2 =  [];
+      this.workOrderRegion.map((item) => {
+        name.push(item.area);
+        data1.push(item.todoNum);
+        data2.push(item.doneNum);
+      })
+      this.dataList.name = name;
+      this.dataList.data1 = data1;
+      this.dataList.data2 = data2;
+      chart = echarts.init(this.$refs.barChart);
+      this.initEchart();
+    }
+  },
 };
 </script>
 
diff --git a/src/views/screen/components/screen-examine/components/car-chart.vue b/src/views/screen/components/screen-examine/components/car-chart.vue
new file mode 100644
index 0000000..48f4788
--- /dev/null
+++ b/src/views/screen/components/screen-examine/components/car-chart.vue
@@ -0,0 +1,143 @@
+<template>
+  <div class="chart-container">
+    <div class="rank-chart">
+      <div class="hola-item" v-for="item in dataList" :key="item.id">
+        <examine-hola :startColor="'#124ae4'" :endColor="'#99b3fd'" :centerValue="item.value" :bottomTitle="item.name"
+          :routerPath="item.routerUrl"></examine-hola>
+      </div>
+    </div>
+  </div>
+</template>
+
+<script>
+import ExamineHola from "./examine-hola.vue";
+let barChart = null;
+export default {
+  name: "CarChart",
+  components: {
+    ExamineHola,
+  },
+  props: {
+    carList: {
+      type: Object,
+      default: null
+    },
+  },
+  data() {
+    return {
+      dataList: [],
+    };
+  },
+
+  methods: {},
+  mounted() { },
+  watch: {
+    carList() {
+      //  "viewConnectStability": 95.26, //瑙嗗浘搴撳鎺ョǔ瀹氭��
+      // "siteOnline": 95.26, //鐐逛綅鍦ㄧ嚎鐜�
+      // "deviceDirectoryConsistent": 95.26, //鑱旂綉鍗″彛鐩綍涓�鑷寸巼
+      // "vehicleInformationCollectionAccuracy": 95.26, //淇℃伅閲囬泦鍑嗙‘鐜�
+      // "vehicleCaptureIntegrity": 95.26, //鎶撴媿鏁版嵁瀹屾暣鎬�
+      // "vehicleCaptureAccuracy": 95.26, //鎶撴媿鏁版嵁鍑嗙‘鎬�
+      // "vehicleTimingAccuracy": 95.26, //鏃堕挓鍑嗙‘鎬�
+      // "vehicleUploadTimeliness": 95.26, //鎶撴媿鏁版嵁涓婁紶鍙婃椂鎬�
+      // "vehicleUrlAvailability": 95.26, //url鍙敤鎬�
+      // "vehiclePictureAvailability": 95.26 //鎶撴媿鏁版嵁澶у浘鍙敤鎬�
+      let item = { value: 0, name: "", id: 0, routerUrl: "" }
+      item.value = this.carList.viewConnectStability
+      item.name = "瑙嗗浘搴撳鎺ョǔ瀹氭��"
+      item.id = 1
+      item.routerUrl = ""
+      this.dataList.push(item)
+
+      let item1 = { value: 0, name: "", id: 0, routerUrl: "" }
+      item1.value = this.carList.siteOnline
+      item1.name = "鐐逛綅鍦ㄧ嚎鐜�"
+      item1.id = 2
+      item1.routerUrl = ""
+      this.dataList.push(item1)
+
+      let item2 = { value: 0, name: "", id: 0, routerUrl: "" }
+      item2.value = this.carList.deviceDirectoryConsistent
+      item2.name = "鑱旂綉鍗″彛鐩綍涓�鑷寸巼"
+      item2.id = 3
+      item2.routerUrl = ""
+      this.dataList.push(item2)
+
+      let item3 = { value: 0, name: "", id: 0, routerUrl: "" }
+      item3.value = this.carList.vehicleInformationCollectionAccuracy
+      item3.name = "淇℃伅閲囬泦鍑嗙‘鐜�"
+      item3.id = 4
+      item3.routerUrl = ""
+      this.dataList.push(item3)
+
+      let item4 = { value: 0, name: "", id: 0, routerUrl: "" }
+      item4.value = this.carList.vehicleCaptureIntegrity
+      item4.name = "鎶撴媿鏁版嵁瀹屾暣鎬�"
+      item4.id = 5
+      item4.routerUrl = ""
+      this.dataList.push(item4)
+
+      let item5 = { value: 0, name: "", id: 0, routerUrl: "" }
+      item5.value = this.carList.vehicleCaptureAccuracy
+      item5.name = "鎶撴媿鏁版嵁鍑嗙‘鎬�"
+      item5.id = 6
+      item5.routerUrl = ""
+      this.dataList.push(item5)
+
+      let item6 = { value: 0, name: "", id: 0, routerUrl: "" }      
+      item6.value = this.carList.vehicleTimingAccuracy
+      item6.name = "鏃堕挓鍑嗙‘鎬�"
+      item6.id = 7
+      item6.routerUrl = ""
+      this.dataList.push(item6)
+
+      let item7 = { value: 0, name: "", id: 0, routerUrl: "" }
+      item7.value = this.carList.vehicleUploadTimeliness
+      item7.name = "鎶撴媿鏁版嵁涓婁紶鍙婃椂鎬�"
+      item7.id = 8
+      item7.routerUrl = ""
+      this.dataList.push(item7)
+
+      let item8 = { value: 0, name: "", id: 0, routerUrl: "" }
+      item8.value = this.carList.vehicleUrlAvailability
+      item8.name = "url鍙敤鎬�"
+      item8.id = 9
+      item8.routerUrl = ""
+      this.dataList.push(item8)
+
+      let item9 = { value: 0, name: "", id: 0, routerUrl: "" }
+      item9.value = this.carList.vehiclePictureAvailability
+      item9.name = "鎶撴媿鏁版嵁澶у浘鍙敤鎬�"
+      item9.id = 10
+      item9.routerUrl = ""
+      this.dataList.push(item9)
+
+    },
+  }
+};
+</script>
+
+<style lang="scss" scoped>
+.chart-container {
+  width: 100%;
+  height: 100%;
+
+  .rank-chart {
+    width: 100%;
+    height: 100%;
+    display: flex;
+    justify-content: space-between;
+    flex-wrap: wrap;
+    align-content: space-between;
+    padding: 20px 0;
+    box-sizing: border-box;
+
+    .hola-item {
+      flex-shrink: 0;
+      width: 150px;
+      height: 120px;
+    }
+  }
+}
+</style>
diff --git a/src/views/screen/components/screen-examine/components/examine-chart.vue b/src/views/screen/components/screen-examine/components/examine-chart.vue
deleted file mode 100644
index 2c1dfde..0000000
--- a/src/views/screen/components/screen-examine/components/examine-chart.vue
+++ /dev/null
@@ -1,179 +0,0 @@
-<template>
-  <div class="chart-container">
-    <div class="rank-chart">
-      <div
-        class="hola-item"
-        v-for="item in dataType == 'car' ? dataListA : dataList"
-        :key="item.id"
-      >
-        <examine-hola
-          :startColor="'#124ae4'"
-          :endColor="'#99b3fd'"
-          :centerValue="item.value"
-          :bottomTitle="item.name"
-          :routerPath="item.routerUrl"
-        ></examine-hola>
-      </div>
-    </div>
-  </div>
-</template>
-
-<script>
-import ExamineHola from "./examine-hola.vue";
-let barChart = null;
-export default {
-  name: "ExamineChart",
-  components: {
-    ExamineHola,
-  },
-  props: {
-    dataType: {
-      type: String,
-      default: "",
-    },
-  },
-  data() {
-    return {
-      dataList: [
-        {
-          id: 1,
-          name: "骞冲彴鍦ㄧ嚎鐜�",
-          value: 60,
-          routerUrl: "/car/vehicle-data-monitor/index",
-        },
-        {
-          id: 2,
-          name: "涓�鏈轰竴妗e悎鏍肩巼",
-          value: 20,
-          routerUrl: "/car/vehicle-data-monitor/index",
-        },
-        {
-          id: 3,
-          name: "妗f鑰冩牳姣�",
-          value: 60,
-          routerUrl: "/car/vehicle-data-monitor/index",
-        },
-        {
-          id: 4,
-          name: "鐐逛綅鍦ㄧ嚎鐜�",
-          value: 40,
-          routerUrl: "/car/vehicle-data-monitor/index",
-        },
-        {
-          id: 5,
-          name: "褰曞儚鍙敤鐜�",
-          value: 80,
-          routerUrl: "/car/vehicle-data-monitor/index",
-        },
-        {
-          id: 6,
-          name: "閲嶇偣鐐逛綅褰曞儚鍙敤鐜�",
-          value: 20,
-          routerUrl: "/car/vehicle-data-monitor/index",
-        },
-        {
-          id: 7,
-          name: "閲嶇偣鐐逛綅褰曞儚鍙敤鐜�",
-          value: 20,
-          routerUrl: "/car/vehicle-data-monitor/index",
-        },
-        {
-          id: 8,
-          name: "閲嶇偣鐐逛綅褰曞儚鍙敤鐜�",
-          value: 20,
-          routerUrl: "/car/vehicle-data-monitor/index",
-        },
-      ],
-      dataListA: [
-        {
-          id: 1,
-          name: "骞冲彴鍦ㄧ嚎鐜�",
-          value: 60,
-          routerUrl: "/car/vehicle-data-monitor/index",
-        },
-        {
-          id: 2,
-          name: "涓�鏈轰竴妗e悎鏍肩巼",
-          value: 20,
-          routerUrl: "/car/vehicle-data-monitor/index",
-        },
-        {
-          id: 3,
-          name: "妗f鑰冩牳姣�",
-          value: 60,
-          routerUrl: "/car/vehicle-data-monitor/index",
-        },
-        {
-          id: 4,
-          name: "鐐逛綅鍦ㄧ嚎鐜�",
-          value: 40,
-          routerUrl: "/car/vehicle-data-monitor/index",
-        },
-        {
-          id: 5,
-          name: "褰曞儚鍙敤鐜�",
-          value: 80,
-          routerUrl: "/car/vehicle-data-monitor/index",
-        },
-        {
-          id: 6,
-          name: "閲嶇偣鐐逛綅褰曞儚鍙敤鐜�",
-          value: 20,
-          routerUrl: "/car/vehicle-data-monitor/index",
-        },
-        {
-          id: 7,
-          name: "閲嶇偣鐐逛綅褰曞儚鍙敤鐜�",
-          value: 20,
-          routerUrl: "/car/vehicle-data-monitor/index",
-        },
-        {
-          id: 8,
-          name: "閲嶇偣鐐逛綅褰曞儚鍙敤鐜�",
-          value: 20,
-          routerUrl: "/car/vehicle-data-monitor/index",
-        },
-        {
-          id: 9,
-          name: "閲嶇偣鐐逛綅褰曞儚鍙敤鐜�",
-          value: 20,
-          routerUrl: "/car/vehicle-data-monitor/index",
-        },
-        {
-          id: 10,
-          name: "閲嶇偣鐐逛綅褰曞儚鍙敤鐜�",
-          value: 20,
-          routerUrl: "/car/vehicle-data-monitor/index",
-        },
-      ],
-    };
-  },
-
-  methods: {},
-  mounted() {},
-};
-</script>
-
-<style lang="scss" scoped>
-.chart-container {
-  width: 100%;
-  height: 100%;
-
-  .rank-chart {
-    width: 100%;
-    height: 100%;
-    display: flex;
-    justify-content: space-between;
-    flex-wrap: wrap;
-    align-content: space-between;
-    padding: 20px 0;
-    box-sizing: border-box;
-
-    .hola-item {
-      flex-shrink: 0;
-      width: 150px;
-      height: 120px;
-    }
-  }
-}
-</style>
diff --git a/src/views/screen/components/screen-examine/components/face-chart.vue b/src/views/screen/components/screen-examine/components/face-chart.vue
new file mode 100644
index 0000000..3cc6b3f
--- /dev/null
+++ b/src/views/screen/components/screen-examine/components/face-chart.vue
@@ -0,0 +1,127 @@
+<template>
+  <div class="chart-container">
+    <div class="rank-chart">
+      <div class="hola-item" v-for="item in dataList" :key="item.id">
+        <examine-hola :startColor="'#124ae4'" :endColor="'#99b3fd'" :centerValue="item.value" :bottomTitle="item.name"
+          :routerPath="item.routerUrl"></examine-hola>
+      </div>
+    </div>
+  </div>
+</template>
+
+<script>
+import ExamineHola from "./examine-hola.vue";
+let barChart = null;
+export default {
+  name: "FaceChart",
+  components: {
+    ExamineHola,
+  },
+  props: {
+    faceList: {
+      type: Object,
+      default: null
+    },
+  },
+  data() {
+    return {
+      dataList: [],
+    };
+  },
+
+  methods: {},
+  mounted() { },
+  watch: {
+    faceList() {
+      //  "viewConnectStability": 96.39, //瑙嗗浘搴撳鎺ョǔ瀹氭��
+      // "siteOnline": 96.39, //鐐逛綅鍦ㄧ嚎鐜�
+      // "deviceDirectoryConsistent": 96.39, //鐩綍涓�鑷寸巼
+      // "faceInformationCollectionAccuracy": 96.39, //淇℃伅閲囬泦鍑嗙‘鐜�
+      // "facePictureQualification": 96.39, //鎶撴媿鍥剧墖鍚堟牸鎬�
+      // "faceTimingAccuracy": 96.39, //鎶撴媿鍥剧墖鏃堕挓鍑嗙‘鎬�
+      // "faceUploadTimeliness": 96.39, //鎶撴媿鏁版嵁涓婁紶鍙婃椂鎬�
+      // "facePictureAvailability": 96.39 //鎶撴媿鏁版嵁澶у浘鍙敤鎬�
+      let item = { value: 0, name: "", id: 0, routerUrl: "" }
+      item.value = this.faceList.viewConnectStability
+      item.name = "瑙嗗浘搴撳鎺ョǔ瀹氭��"
+      item.id = 1
+      item.routerUrl = ""
+      this.dataList.push(item)
+
+      let item1 = { value: 0, name: "", id: 0, routerUrl: "" }
+      item1.value = this.faceList.siteOnline
+      item1.name = "鐐逛綅鍦ㄧ嚎鐜�"
+      item1.id = 2
+      item1.routerUrl = ""
+      this.dataList.push(item1)
+
+      let item2 = { value: 0, name: "", id: 0, routerUrl: "" }
+      item2.value = this.faceList.deviceDirectoryConsistent
+      item2.name = "鐩綍涓�鑷寸巼"
+      item2.id = 3
+      item2.routerUrl = ""
+      this.dataList.push(item2)
+
+      let item3 = { value: 0, name: "", id: 0, routerUrl: "" }
+      item3.value = this.faceList.faceInformationCollectionAccuracy
+      item3.name = "淇℃伅閲囬泦鍑嗙‘鐜�"
+      item3.id = 4
+      item3.routerUrl = ""
+      this.dataList.push(item3)
+
+      let item4 = { value: 0, name: "", id: 0, routerUrl: "" }
+      item4.value = this.faceList.facePictureQualification
+      item4.name = "鎶撴媿鍥剧墖鍚堟牸鎬�"
+      item4.id = 5
+      item4.routerUrl = ""
+      this.dataList.push(item4)
+
+      let item5 = { value: 0, name: "", id: 0, routerUrl: "" }
+      item5.value = this.faceList.faceTimingAccuracy
+      item5.name = "鎶撴媿鍥剧墖鏃堕挓鍑嗙‘鎬�"
+      item5.id = 6
+      item5.routerUrl = ""
+      this.dataList.push(item5)
+
+      let item6 = { value: 0, name: "", id: 0, routerUrl: "" }
+      item6.value = this.faceList.faceUploadTimeliness
+      item6.name = "鎶撴媿鏁版嵁涓婁紶鍙婃椂鎬�"
+      item6.id = 7
+      item6.routerUrl = ""
+      this.dataList.push(item6)
+
+      let item7 = { value: 0, name: "", id: 0, routerUrl: "" }
+      item7.value = this.faceList.facePictureAvailability
+      item7.name = "鎶撴媿鏁版嵁澶у浘鍙敤鎬�"
+      item7.id = 8
+      item7.routerUrl = ""
+      this.dataList.push(item7)
+
+    },
+  }
+};
+</script>
+
+<style lang="scss" scoped>
+.chart-container {
+  width: 100%;
+  height: 100%;
+
+  .rank-chart {
+    width: 100%;
+    height: 100%;
+    display: flex;
+    justify-content: space-between;
+    flex-wrap: wrap;
+    align-content: space-between;
+    padding: 20px 0;
+    box-sizing: border-box;
+
+    .hola-item {
+      flex-shrink: 0;
+      width: 150px;
+      height: 120px;
+    }
+  }
+}
+</style>
diff --git a/src/views/screen/components/screen-examine/components/video-chart.vue b/src/views/screen/components/screen-examine/components/video-chart.vue
new file mode 100644
index 0000000..c008384
--- /dev/null
+++ b/src/views/screen/components/screen-examine/components/video-chart.vue
@@ -0,0 +1,232 @@
+<template>
+  <div class="chart-container">
+    <div class="rank-chart">
+      <div class="hola-item" v-for="item in dataList" :key="item.id">
+        <examine-hola :startColor="'#124ae4'" :endColor="'#99b3fd'" :centerValue="item.value" :bottomTitle="item.name"
+          :routerPath="item.routerUrl"></examine-hola>
+      </div>
+    </div>
+  </div>
+</template>
+
+<script>
+import ExamineHola from "./examine-hola.vue";
+let barChart = null;
+export default {
+  name: "VideoChart",
+  components: {
+    ExamineHola,
+  },
+  props: {
+    videoList: {
+      type: Object,
+      default: null
+    },
+  },
+  data() {
+    return {
+      dataList: [],
+    };
+  },
+
+  methods: {},
+  mounted() { },
+  watch: {
+    videoList() {
+    //  "platformOnline": 96.97, //骞冲彴鍦ㄧ嚎鐜�
+    // "monitorQualification": 96.91, //涓�鏈轰竴妗e悎鏍肩巼
+    // "monitorRegistration": 96.44, //涓�鏈轰竴妗f敞鍐岀巼
+    // "archivesRate": 96.4, //妗f鑰冩牳姣�
+    // "siteOnline": 96.4, //鐐逛綅鍦ㄧ嚎鐜�
+    // "videoAvailable": 96.52, //褰曡薄鍙敤鐜�
+    // "annotationAccuracy": 97.15, //鏍囨敞姝g‘鐜�
+    // "timingAccuracy": 97.15, //鏍℃椂鍑嗙‘鐜�
+    // "keySiteOnline": 97.15, //閲嶇偣鐐逛綅鍦ㄧ嚎鐜�
+    // "keyVideoAvailable": 97.15, //閲嶇偣鐐逛綅褰曡薄鍙敤鐜�
+    // "keyAnnotationAccuracy": 97.15, //閲嶇偣鐐逛綅鏍囨敞姝g‘鐜�
+    // "keyTimingAccuracy": 97.15, //閲嶇偣鐐逛綅鎸夋椂姝g‘鐜�
+    // "keyCommandImageInspection": 97.15, //閲嶇偣鎸囨尌鍥惧儚鍏畨閮ㄥ贰妫�缁撴灉
+    // "keyCommandImageDirectoryTree": 96.07, //閲嶇偣鎸囨尌鍥惧儚鐩綍鏍�
+    // "onlineInspectionPlatform": 96.07, //鍦ㄧ嚎妫�鏌ュ钩鍙伴儴缃插強杩愯鐜�
+    // "videoTransmissionAssetsAccuracy": 96.07, //浼犺緭缃戣祫浜у噯纭巼
+    // "videoTransmissionAssetsWeakPasswordScore": 96.07, //浼犺緭缃戣祫浜у急鍙d护寰楀垎姣旂巼
+    // "videoTransmissionDangerousAssetsScore": 96.07, //浼犺緭缃戝嵄闄╄祫浜у緱鍒嗘瘮閲�
+    // "videoTransmissionBoundaryIntegrityDetection": 96.07, //浼犺緭缃戣竟鐣屽畬鏁存�ф娴嬫墸鍒嗛」
+    // "keyCommandImageOnline": 96.41, //鏈堣繍琛岀巼
+    // "operatingRate": 96.07 //閲嶇偣鎸囨尌鍥惧儚鍦ㄧ嚎鐜�
+      let item = { value: 0, name: "", id: 0, routerUrl: "" }
+      item.value = this.videoList.platformOnline
+      item.name = "骞冲彴鍦ㄧ嚎鐜�"
+      item.id = 1
+      item.routerUrl = ""
+      this.dataList.push(item)
+
+      let item1 = { value: 0, name: "", id: 0, routerUrl: "" }
+      item1.value = this.videoList.monitorQualification
+      item1.name = "涓�鏈轰竴妗e悎鏍肩巼"
+      item1.id = 2
+      item1.routerUrl = ""
+      this.dataList.push(item1)
+
+      let item2 = { value: 0, name: "", id: 0, routerUrl: "" }
+      item2.value = this.videoList.monitorRegistration
+      item2.name = "涓�鏈轰竴妗f敞鍐岀巼"
+      item2.id = 3
+      item2.routerUrl = ""
+      this.dataList.push(item2)
+
+      let item3 = { value: 0, name: "", id: 0, routerUrl: "" }
+      item3.value = this.videoList.archivesRate
+      item3.name = "妗f鑰冩牳姣�"
+      item3.id = 4
+      item3.routerUrl = ""
+      this.dataList.push(item3)
+
+      let item4 = { value: 0, name: "", id: 0, routerUrl: "" }
+      item4.value = this.videoList.siteOnline
+      item4.name = "鐐逛綅鍦ㄧ嚎鐜�"
+      item4.id = 5
+      item4.routerUrl = ""
+      this.dataList.push(item4)
+
+      let item5 = { value: 0, name: "", id: 0, routerUrl: "" }
+      item5.value = this.videoList.videoAvailable
+      item5.name = "褰曡薄鍙敤鐜�"
+      item5.id = 6
+      item5.routerUrl = ""
+      this.dataList.push(item5)
+
+      let item6 = { value: 0, name: "", id: 0, routerUrl: "" }
+      item6.value = this.videoList.annotationAccuracy
+      item6.name = "鏍囨敞姝g‘鐜�"
+      item6.id = 7
+      item6.routerUrl = ""
+      this.dataList.push(item6)
+
+      let item7 = { value: 0, name: "", id: 0, routerUrl: "" }
+      item7.value = this.videoList.timingAccuracy
+      item7.name = "鏍℃椂鍑嗙‘鐜�"
+      item7.id = 8
+      item7.routerUrl = ""
+      this.dataList.push(item7)
+
+      let item8 = { value: 0, name: "", id: 0, routerUrl: "" }
+      item8.value = this.videoList.keySiteOnline
+      item8.name = "閲嶇偣鐐逛綅鍦ㄧ嚎鐜�"
+      item8.id = 9
+      item8.routerUrl = ""
+      this.dataList.push(item8)
+
+      let item9 = { value: 0, name: "", id: 0, routerUrl: "" }
+      item9.value = this.videoList.keyVideoAvailable
+      item9.name = "閲嶇偣鐐逛綅褰曡薄鍙敤鐜�"
+      item9.id = 10
+      item9.routerUrl = ""
+      this.dataList.push(item9)
+
+      let item10 = { value: 0, name: "", id: 0, routerUrl: "" }
+      item10.value = this.videoList.keyAnnotationAccuracy
+      item10.name = "閲嶇偣鐐逛綅鏍囨敞姝g‘鐜�"
+      item10.id = 11
+      item10.routerUrl = ""
+      this.dataList.push(item10)
+
+      let item11 = { value: 0, name: "", id: 0, routerUrl: "" }
+      item11.value = this.videoList.keyTimingAccuracy
+      item11.name = "閲嶇偣鐐逛綅鎸夋椂姝g‘鐜�"
+      item11.id = 12
+      item11.routerUrl = ""
+      this.dataList.push(item11)
+
+      let item12 = { value: 0, name: "", id: 0, routerUrl: "" }
+      item12.value = this.videoList.keyCommandImageInspection
+      item12.name = "閲嶇偣鎸囨尌鍥惧儚宸℃缁撴灉"
+      item12.id = 13
+      item12.routerUrl = ""
+      this.dataList.push(item12)
+
+      let item13 = { value: 0, name: "", id: 0, routerUrl: "" }
+      item13.value = this.videoList.keyCommandImageDirectoryTree
+      item13.name = "閲嶇偣鎸囨尌鍥惧儚鐩綍鏍�"
+      item13.id = 14
+      item13.routerUrl = ""
+      this.dataList.push(item13)
+
+      let item14 = { value: 0, name: "", id: 0, routerUrl: "" }
+      item14.value = this.videoList.onlineInspectionPlatform
+      item14.name = "骞冲彴閮ㄧ讲鍙婅繍琛岀巼"
+      item14.id = 15
+      item14.routerUrl = ""
+      this.dataList.push(item14)
+
+      let item15 = { value: 0, name: "", id: 0, routerUrl: "" }
+      item15.value = this.videoList.videoTransmissionAssetsAccuracy
+      item15.name = "璧勪骇鍑嗙‘鐜�"
+      item15.id = 16
+      item15.routerUrl = ""
+      this.dataList.push(item15)
+
+      let item16 = { value: 0, name: "", id: 0, routerUrl: "" }
+      item16.value = this.videoList.videoTransmissionAssetsWeakPasswordScore
+      item16.name = "璧勪骇寮卞彛浠ゅ緱鍒嗘瘮鐜�"
+      item16.id = 17
+      item16.routerUrl = ""
+      this.dataList.push(item16)
+
+      let item17 = { value: 0, name: "", id: 0, routerUrl: "" }
+      item17.value = this.videoList.videoTransmissionDangerousAssetsScore
+      item17.name = "鍗遍櫓璧勪骇寰楀垎姣旈噸"
+      item17.id = 18
+      item17.routerUrl = ""
+      this.dataList.push(item17)
+
+      let item18 = { value: 0, name: "", id: 0, routerUrl: "" }
+      item18.value = this.videoList.videoTransmissionBoundaryIntegrityDetection
+      item18.name = "杈圭晫瀹屾暣鎬ф娴嬫墸鍒嗛」"
+      item18.id = 19
+      item18.routerUrl = ""
+      this.dataList.push(item18)
+
+      let item19 = { value: 0, name: "", id: 0, routerUrl: "" }
+      item19.value = this.videoList.keyCommandImageOnline
+      item19.name = "鏈堣繍琛岀巼"
+      item19.id = 20
+      item19.routerUrl = ""
+      this.dataList.push(item19)
+
+      let item20 = { value: 0, name: "", id: 0, routerUrl: "" }
+      item20.value = this.videoList.operatingRate
+      item20.name = "閲嶇偣鎸囨尌鍥惧儚鍦ㄧ嚎鐜�"
+      item20.id = 21
+      item20.routerUrl = ""
+      this.dataList.push(item20)
+
+
+    },
+  }
+};
+</script>
+
+<style lang="scss" scoped>
+.chart-container {
+  width: 100%;
+  height: 100%;
+
+  .rank-chart {
+    width: 100%;
+    height: 100%;
+    display: flex;
+    justify-content: space-between;
+    flex-wrap: wrap;
+    align-content: space-between;
+    padding: 20px 0;
+    box-sizing: border-box;
+
+    .hola-item {
+      flex-shrink: 0;
+      width: 150px;
+      height: 120px;
+    }
+  }
+}
+</style>
diff --git a/src/views/screen/components/screen-examine/index.vue b/src/views/screen/components/screen-examine/index.vue
index 9186007..d04c4c5 100644
--- a/src/views/screen/components/screen-examine/index.vue
+++ b/src/views/screen/components/screen-examine/index.vue
@@ -87,13 +87,17 @@
 
 <script>
 import WrapperTitle from "../wrapper-title/index";
-import ExamineChart from "./components/examine-chart";
+import faceChart from "./components/face-chart";
+import carChart from "./components/car-chart";
+import videoChart from "./components/video-chart";
 import ExamineTable from "./components/examine-table";
 export default {
   name: "ScreenExamine",
   components: {
     WrapperTitle,
-    ExamineChart,
+    faceChart,
+    carChart,
+    videoChart,
     ExamineTable,
   },
   data() {
diff --git a/src/views/screen/components/screen-table/index.vue b/src/views/screen/components/screen-table/index.vue
index 4400918..be0de28 100644
--- a/src/views/screen/components/screen-table/index.vue
+++ b/src/views/screen/components/screen-table/index.vue
@@ -6,13 +6,7 @@
     ></wrapper-title> -->
     <div class="table-content" ref="tabContent">
       <div class="table-wrapper">
-        <el-table
-          :data="tableData"
-          border
-          :height="tableHeight"
-          :max-height="tableHeight"
-          class="rank-table"
-        >
+        <el-table :data="tableData" border :height="tableHeight" :max-height="tableHeight" class="rank-table">
           <el-table-column prop="area" label="鍦板尯" align="center" width="100">
           </el-table-column>
 
@@ -34,12 +28,7 @@
                   </div>
                 </div>
                 <div class="tip-num">
-                  {{
-                    scope.row.faceRate?(
-                      (scope.row.faceNormalNum / scope.row.faceRate) *
-                      100
-                    ).toFixed(0)+'%':'--'
-                  }}
+                  {{ scope.row.faceRate ? scope.row.faceRate + '%' : '--' }}
                 </div>
               </el-tooltip>
             </template>
@@ -58,17 +47,12 @@
                   <div class="tip-item">
                     <div class="tip-label">璁惧寮傚父鏁�:</div>
                     <div class="tip-info tip-danger">
-                      {{ scope.row.carNormalNum }}
+                      {{ scope.row.carErrorNum }}
                     </div>
                   </div>
                 </div>
                 <div class="tip-num">
-                  {{
-                      scope.row.carRate?(
-                      (scope.row.carNormalNum / scope.row.carRate) *
-                      100
-                    ).toFixed(0)+'%':'--'
-                  }}
+                  {{ scope.row.carRate ? scope.row.carRate + '%' : '--' }}
                 </div>
               </el-tooltip>
             </template>
@@ -87,17 +71,12 @@
                   <div class="tip-item">
                     <div class="tip-label">璁惧寮傚父鏁�:</div>
                     <div class="tip-info tip-danger">
-                      {{ scope.row.videoNormalNum }}
+                      {{ scope.row.videoErrorNum }}
                     </div>
                   </div>
                 </div>
                 <div class="tip-num">
-                  {{
-                    scope.row.videoRate?(
-                      (scope.row.videoNormalNum / scope.row.videoRate) *
-                      100
-                    ).toFixed(0)+'%':'--'
-                  }}
+                  {{ scope.row.videoRate ? scope.row.videoRate + '%' : '--' }}
                 </div>
               </el-tooltip>
             </template>
@@ -239,7 +218,7 @@
   border-color: #56739e99 !important;
 }
 
-::v-deep .el-table th.el-table__cell > .cell {
+::v-deep .el-table th.el-table__cell>.cell {
   color: #447ed6;
 }
 
@@ -253,11 +232,7 @@
   background-color: transparent !important;
 }
 
-::v-deep
-  .el-table--enable-row-hover
-  .el-table__body
-  tr:hover
-  > td.el-table__cell {
+::v-deep .el-table--enable-row-hover .el-table__body tr:hover>td.el-table__cell {
   background-color: #447ed648;
 }
 
diff --git a/src/views/screen/newPage/index.vue b/src/views/screen/newPage/index.vue
index 32a7ed9..62ec7c4 100644
--- a/src/views/screen/newPage/index.vue
+++ b/src/views/screen/newPage/index.vue
@@ -4,12 +4,8 @@
       <div class="header_box">
         <div class="tabs-box">
           <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-tab-pane v-for="item in testData1" :label="item.name" :name="item.value"
+              :key="item.value"></el-tab-pane>
           </el-tabs>
         </div>
       </div>
@@ -21,8 +17,12 @@
           <div>杩愮淮鑰冩牳澶у睆</div>
         </div>
         <div class="card" style="height: 622px">
-          <div class="card_header"><div class="title">宸ュ崟鏁版嵁</div></div>
-          <div><ScreenData :workOrderData="workOrderData"></ScreenData></div>
+          <div class="card_header">
+            <div class="title">宸ュ崟鏁版嵁</div>
+          </div>
+          <div>
+            <ScreenData :workOrderData="workOrderData" :workOrderRegion="workOrderRegion"></ScreenData>
+          </div>
         </div>
       </div>
       <div class="large_screen_box">
@@ -35,36 +35,25 @@
             <div class="title">璁惧鏁版嵁</div>
           </div>
           <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 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>{{ item.totalNum }}</span
-                  ><i class="el-icon-top"></i>
+                <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>{{ item.normalNum }}</span
-                  ><i class="el-icon-top"></i>
+                <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>{{ item.errorNum }}</span
-                  ><i class="el-icon-bottom"></i>
+                <div class="data-lable center">璁惧寮傚父鏁�</div>
+                <div class="data-num type3 center">
+                  <span v-roll>{{ item.errorNum }}</span>
                 </div>
               </div>
             </div>
@@ -85,7 +74,7 @@
         <div class="card_header">
           <div class="title">浜鸿劯鑰冩牳鏁版嵁</div>
           <div style="width: 600px; margin-left: -20px">
-            <ExamineChart class="wrapper-item" dataType="face"></ExamineChart>
+            <FaceChart class="wrapper-item" :faceList="faceList"></FaceChart>
           </div>
         </div>
       </div>
@@ -93,24 +82,28 @@
         <div class="card_header">
           <div class="titleCar">杞﹁締鑰冩牳鏁版嵁</div>
         </div>
-        <div
-          style="
+        <div style="
             overflow: hidden;
             overflow-x: auto;
             margin-top: -9px;
             height: 90%;
-          "
-        >
+          ">
           <div style="width: 750px">
-            <ExamineChart class="wrapper-item" dataType="car"></ExamineChart>
+            <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; margin-left: -20px">
-            <ExamineChart class="wrapper-item" dataType="video"></ExamineChart>
+          <div class="titleCar">瑙嗛鑰冩牳鏁版嵁</div>
+        </div>
+        <div style="
+            overflow: auto;
+            margin-top: -9px;
+            height: 90%;
+          ">
+          <div style="width: 1100px">
+            <VideoChart class="wrapper-item" :videoList="videoList"></VideoChart>
           </div>
         </div>
       </div>
@@ -122,17 +115,21 @@
 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 { getDeviceData, getWorkOrderData, getNormalRate } from "@/api/newpage";
+import { getDeviceData, getWorkOrderData, getWorkOrderRegion, getNormalRate, checkFace, checkCar, checkVideo } from "@/api/newpage";
 export default {
   name: "Newpage",
   components: {
     ScreenTable,
     ScreenMapThree,
     ScreenMap,
-    ExamineChart,
+    FaceChart,
+    CarChart,
+    VideoChart,
     ScreenData,
     NewMap,
   },
@@ -155,30 +152,11 @@
         },
       ],
       deviceList: [],
-      workOrderData: {
-        workOrderRegion: {
-          create_time: "2024-03-05T19:04:24",
-          deleted: 0,
-          error_type: "缃戠粶鏁呴殰,鏃犲厜",
-          id: 1,
-          serial_number: 0,
-          source: "涓北澶ч亾涓庡疂鍠勫贩浜ゅ弶鍙d笢",
-          status: "DISTRIBUTED",
-          unit_id: 2,
-          update_time: "2024-04-15T17:07:54",
-          work_order_no: "202403051212",
-          yw_check_result: "/profile/upload/2024/03/26/20240326100819A001.jpg",
-          yw_condition: "淇瀹屾垚",
-          yw_handle_time: "2024-03-05T19:04:06",
-          yw_people_id: 1,
-          yw_result: "OK",
-        },
-        workOrderTotal: {
-          doneNum: 8,
-          todoNum: 20,
-          totalNum: 28,
-        },
-      },
+      workOrderRegion: [],
+      carList: '',
+      faceList: '',
+      videoList: '',
+      workOrderData: {},
       tableData: [],
     };
   },
@@ -197,37 +175,63 @@
         .then((res) => {
           this.deviceList = res.data;
         })
-        .catch((err) => {});
+        .catch((err) => { });
       getWorkOrderData()
         .then((res) => {
           this.workOrderData = res.data;
         })
-        .catch((err) => {});
+        .catch((err) => { });
+      getWorkOrderRegion()
+        .then((res) => {
+          this.workOrderRegion = res.data;
+        })
+        .catch((err) => { });
       this.getTableList();
+      checkCar()
+        .then((res) => {
+          this.carList = res.data;
+        })
+        .catch((err) => { });
+      checkFace()
+        .then((res) => {
+          this.faceList = res.data;
+        })
+        .catch((err) => { });
+      checkVideo()
+        .then((res) => {
+          this.videoList = res.data;
+        })
+        .catch((err) => { });
     },
     getTableList() {
       getNormalRate(this.activeName)
         .then((res) => {
           this.tableData = res.data;
         })
-        .catch((err) => {});
+        .catch((err) => { });
     },
-    tabChange(){
-      this. getTableList()
+    tabChange() {
+      this.getTableList()
     }
   },
 };
 </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: -5px;
@@ -241,12 +245,15 @@
     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");
@@ -265,6 +272,7 @@
     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;
@@ -275,18 +283,22 @@
   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;
 }
+
 ::v-deep .el-tabs__active-bar {
   width: 0 !important;
 }
+
 ::v-deep .el-tabs__item {
   margin: 5px 30px;
   padding: 0px 25px !important;
@@ -306,17 +318,21 @@
   // 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%;
@@ -329,6 +345,7 @@
     left: 10px;
   }
 }
+
 .large_screen_box {
   width: 920px;
   height: 621px;
@@ -338,18 +355,21 @@
   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;
@@ -357,11 +377,14 @@
   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;
@@ -373,6 +396,7 @@
     }
   }
 }
+
 .title {
   margin-left: 20px;
   padding-top: 5px;
@@ -381,6 +405,7 @@
   font-size: 20px;
   font-style: italic;
 }
+
 .data-info {
   flex: 1;
   color: #5b83bd;
@@ -395,13 +420,16 @@
   .type1 {
     color: #287cfa;
   }
+
   .type2 {
     color: #0cd81d;
   }
+
   .type3 {
     color: #e20c0c;
   }
 }
+
 .device_data {
   display: flex;
   align-items: center;

--
Gitblit v1.8.0