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