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