From b8a72fe64c7dce111517e18f1b9c3b73ab49fb36 Mon Sep 17 00:00:00 2001
From: ZhangXianQiang <1135831638@qq.com>
Date: 星期三, 28 二月 2024 18:01:45 +0800
Subject: [PATCH] feat:安全隐患数据统计

---
 src/views/daoAnOffice/right/danger/dataTable.vue |   55 +++++++++
 src/views/daoAnOffice/right/danger/dataView.vue  |   62 ++++++++++
 src/views/daoAnOffice/right/danger/index.vue     |  109 +-----------------
 src/views/daoAnOffice/right/danger/infoView.vue  |  116 +++++++++++++++++++
 4 files changed, 240 insertions(+), 102 deletions(-)

diff --git a/src/views/daoAnOffice/right/danger/dataTable.vue b/src/views/daoAnOffice/right/danger/dataTable.vue
new file mode 100644
index 0000000..0af8c9a
--- /dev/null
+++ b/src/views/daoAnOffice/right/danger/dataTable.vue
@@ -0,0 +1,55 @@
+<template>
+  <div class="container">
+    <div class="table-top">
+      <div class="top-title">瀹夊叏浜嬫晠鍒楄〃</div>
+      <div class="table-select flex">
+        <div class="select-item" v-for="selectItem in tableType" :key="selectItem.id">{{ selectItem.type }}</div>
+      </div>
+    </div>
+    <div class="table-container">
+      <el-table :data="tableData" style="width: 100%">
+        <el-table-column prop="date" label="Date" width="180" />
+        <el-table-column prop="name" label="Name" width="180" />
+        <el-table-column prop="address" label="Address" />
+      </el-table>
+    </div>
+  </div>
+</template>
+
+<script setup>
+import { ref } from 'vue';
+
+const tableType = ref([
+  { id: 1, type: '鏈湀' },
+  { id: 2, type: '鏈' },
+]);
+
+const tableData = [
+  {
+    date: '2016-05-03',
+    name: 'Tom',
+    address: 'No. 189, Grove St, Los Angeles',
+  },
+  {
+    date: '2016-05-02',
+    name: 'Tom',
+    address: 'No. 189, Grove St, Los Angeles',
+  },
+  {
+    date: '2016-05-04',
+    name: 'Tom',
+    address: 'No. 189, Grove St, Los Angeles',
+  },
+  {
+    date: '2016-05-01',
+    name: 'Tom',
+    address: 'No. 189, Grove St, Los Angeles',
+  },
+];
+</script>
+
+<style lang="scss" scoped>
+.container {
+  height: 360px;
+}
+</style>
\ No newline at end of file
diff --git a/src/views/daoAnOffice/right/danger/dataView.vue b/src/views/daoAnOffice/right/danger/dataView.vue
new file mode 100644
index 0000000..43959d0
--- /dev/null
+++ b/src/views/daoAnOffice/right/danger/dataView.vue
@@ -0,0 +1,62 @@
+<template>
+  <div class="content-container flex flex-col justify-between">
+    <div class="data-plane flex justify-between">
+      <div class="content-item flex flex-col justify-center items-center">
+        <div class="data-container">
+          <span class="data-red data-num">68</span>
+          <span class="data-red">璧�</span>
+        </div>
+        <div class="data-label">鍙戠幇瀹夊叏闅愭偅</div>
+      </div>
+      <div class="content-item flex flex-col justify-center items-center">
+        <div class="data-container">
+          <span class="data-red data-num">51</span>
+          <span class="data-red">璧�</span>
+        </div>
+        <div class="data-label">涓嬪彂閫氱煡涔�</div>
+      </div>
+      <div class="content-item flex flex-col justify-center items-center">
+        <div class="data-container">
+          <span class="data-red data-num">40</span>
+          <span class="data-red">璧�</span>
+        </div>
+        <div class="data-label">澶勭疆瀹夊叏闅愭偅</div>
+      </div>
+    </div>
+
+    <DataTable></DataTable>
+
+  </div>
+</template>
+
+<script setup>
+import DataTable from './dataTable.vue'
+</script>
+
+<style lang="scss" scoped>
+.content-container {
+  width: 100%;
+  height: 510px;
+}
+
+.content-item {
+  width: 197px;
+  height: 124px;
+  background-color: rgba(17, 34, 58, 0.6);
+  border: 1px solid #29466A;
+}
+
+.data-red {
+  color: rgba(254, 49, 70, 1);
+  font-size: 16px;
+}
+
+.data-num {
+  font-size: 34px;
+}
+
+.data-label {
+  color: rgba(68, 219, 221, 1);
+  font-size: 16px;
+}
+</style>
\ No newline at end of file
diff --git a/src/views/daoAnOffice/right/danger/index.vue b/src/views/daoAnOffice/right/danger/index.vue
index 0b5a281..de7f11a 100644
--- a/src/views/daoAnOffice/right/danger/index.vue
+++ b/src/views/daoAnOffice/right/danger/index.vue
@@ -9,106 +9,29 @@
         </div>
       </div>
     </template>
+
     <template #content>
-      <div class="content-container flex flex-col justify-between">
-        <div class="content-item" v-for="item in contentList" :key="item.itemIndex">
-          <div class="content-wrapper flex justify-between">
-
-            <!-- 淇℃伅闈㈡澘 -->
-            <div class="info-content flex flex-col justify-between">
-              <div class="info-item">
-                <span class="info-label">閫氭嫨鏃堕棶锛�</span>
-                <span class="info-value">{{ item.time }}</span>
-              </div>
-              <div class="info-item">
-                <span class="info-label">闅愭偅绫诲瀷锛�</span>
-                <span class="info-value">{{ item.type }}</span>
-              </div>
-              <div class="info-item">
-                <span class="info-label">璐d换鍗曚綅锛�</span>
-                <span class="info-value">{{ item.unit }}</span>
-              </div>
-              <div class="info-item">
-                <span class="info-label">閯傛敼鏃堕檺锛�</span>
-                <span class="info-value">{{ item.rectTime }}</span>
-              </div>
-              <div class="info-item">
-                <span class="info-label">瀹屾垚鎯呭喌锛�</span>
-                <span class="info-value">{{ item.state }}</span>
-              </div>
-            </div>
-
-            <!-- 鍥剧墖鍒楄〃 -->
-            <div class="image-content flex justify-between items-center">
-              <ImageSwiper :imageList="item.images"></ImageSwiper>
-            </div>
-          </div>
-        </div>
-      </div>
+      <InfoView v-show="isActive"></InfoView>
+      <DataView v-show="!isActive"></DataView>
     </template>
+
   </RightTitle>
 </template>
 
 <script setup lang="ts">
-import testImage from '@/assets/img/test_img/閬撳畨鍔�.png';
 
 import RightTitle from "@/components/right-title";
-import ImageSwiper from './imageSwiper.vue';
+import DataView from './dataView.vue';
+import InfoView from './infoView.vue';
 import { ref } from 'vue';
 
+let isActive = ref(true);
 
 const selectItems = ref([
   { itemIndex: 1, name: '瀹夊叏闅愭偅', isActive: false },
   { itemIndex: 2, name: '鏁版嵁缁熻', isActive: true },
 ]);
 
-const contentList = ref([
-  {
-    itemIndex: 1,
-    time: '2023 12-12',
-    type: '閬撹矾闅愭偅',
-    unit: '閮芥睙鍫板競鍏畨灞�',
-    rectTime: '2023-13-23',
-    state: '鎶慨涓�',
-    images: [
-      testImage,
-      testImage,
-      testImage,
-      testImage,
-      testImage,
-    ]
-  },
-  {
-    itemIndex: 2,
-    time: '2023 12-12',
-    type: '閬撹矾闅愭偅',
-    unit: '閮芥睙鍫板競鍏畨灞�',
-    rectTime: '2023-13-23',
-    state: '鎶慨涓�',
-    images: [
-      testImage,
-      testImage,
-      testImage,
-      testImage,
-      testImage,
-    ]
-  },
-  {
-    itemIndex: 3,
-    time: '2023 12-12',
-    type: '閬撹矾闅愭偅',
-    unit: '閮芥睙鍫板競鍏畨灞�',
-    rectTime: '2023-13-23',
-    state: '鎶慨涓�',
-    images: [
-      testImage,
-      testImage,
-      testImage,
-      testImage,
-      testImage,
-    ]
-  }
-]);
 
 </script>
 
@@ -129,23 +52,5 @@
 .item:last-child {
   margin-right: 0;
 }
-.content-container {
-  height: 510px;
-}
-.content-item {
-  background-color: rgba(17, 34, 58, 0.6);
-  padding: 18px 7px 18px 23px;
-  border: 1px solid #29466A;
-}
-.content-item:last-child {
-  margin-bottom: 0px;
-}
 
-.info-item {
-  font-size: 12px;
-
-  .info-label {
-    color: rgba(91, 131, 189, 1);
-  }
-}
 </style>
\ No newline at end of file
diff --git a/src/views/daoAnOffice/right/danger/infoView.vue b/src/views/daoAnOffice/right/danger/infoView.vue
new file mode 100644
index 0000000..146c1c8
--- /dev/null
+++ b/src/views/daoAnOffice/right/danger/infoView.vue
@@ -0,0 +1,116 @@
+<template>
+  <div class="content-container flex flex-col justify-between">
+    <div class="content-item" v-for="item in contentList" :key="item.itemIndex">
+      <div class="content-wrapper flex justify-between">
+
+        <!-- 淇℃伅闈㈡澘 -->
+        <div class="info-content flex flex-col justify-between">
+          <div class="info-item">
+            <span class="info-label">閫氭嫨鏃堕棶锛�</span>
+            <span class="info-value">{{ item.time }}</span>
+          </div>
+          <div class="info-item">
+            <span class="info-label">闅愭偅绫诲瀷锛�</span>
+            <span class="info-value">{{ item.type }}</span>
+          </div>
+          <div class="info-item">
+            <span class="info-label">璐d换鍗曚綅锛�</span>
+            <span class="info-value">{{ item.unit }}</span>
+          </div>
+          <div class="info-item">
+            <span class="info-label">閯傛敼鏃堕檺锛�</span>
+            <span class="info-value">{{ item.rectTime }}</span>
+          </div>
+          <div class="info-item">
+            <span class="info-label">瀹屾垚鎯呭喌锛�</span>
+            <span class="info-value">{{ item.state }}</span>
+          </div>
+        </div>
+
+        <!-- 鍥剧墖鍒楄〃 -->
+        <div class="image-content flex justify-between items-center">
+          <ImageSwiper :imageList="item.images"></ImageSwiper>
+        </div>
+      </div>
+    </div>
+  </div>
+</template>
+
+<script setup>
+import testImage from '@/assets/img/test_img/閬撳畨鍔�.png';
+
+import ImageSwiper from './imageSwiper.vue';
+import { ref } from 'vue';
+
+const contentList = ref([
+  {
+    itemIndex: 1,
+    time: '2023 12-12',
+    type: '閬撹矾闅愭偅',
+    unit: '閮芥睙鍫板競鍏畨灞�',
+    rectTime: '2023-13-23',
+    state: '鎶慨涓�',
+    images: [
+      testImage,
+      testImage,
+      testImage,
+      testImage,
+      testImage,
+    ]
+  },
+  {
+    itemIndex: 2,
+    time: '2023 12-12',
+    type: '閬撹矾闅愭偅',
+    unit: '閮芥睙鍫板競鍏畨灞�',
+    rectTime: '2023-13-23',
+    state: '鎶慨涓�',
+    images: [
+      testImage,
+      testImage,
+      testImage,
+      testImage,
+      testImage,
+    ]
+  },
+  {
+    itemIndex: 3,
+    time: '2023 12-12',
+    type: '閬撹矾闅愭偅',
+    unit: '閮芥睙鍫板競鍏畨灞�',
+    rectTime: '2023-13-23',
+    state: '鎶慨涓�',
+    images: [
+      testImage,
+      testImage,
+      testImage,
+      testImage,
+      testImage,
+    ]
+  }
+]);
+</script>
+
+<style lang="scss" scoped>
+.content-container {
+  height: 510px;
+}
+
+.content-item {
+  background-color: rgba(17, 34, 58, 0.6);
+  padding: 18px 7px 18px 23px;
+  border: 1px solid #29466A;
+}
+
+.content-item:last-child {
+  margin-bottom: 0px;
+}
+
+.info-item {
+  font-size: 12px;
+
+  .info-label {
+    color: rgba(91, 131, 189, 1);
+  }
+}
+</style>
\ No newline at end of file

--
Gitblit v1.8.0