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