ZhangXianQiang
2024-02-29 778914265f06262856d1521f40805281206eb677
feat:安全隐患数据统计
3个文件已修改
178 ■■■■ 已修改文件
src/views/daoAnOffice/right/analysis/index.vue 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/daoAnOffice/right/danger/dataTable.vue 143 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/daoAnOffice/right/danger/index.vue 34 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/daoAnOffice/right/analysis/index.vue
@@ -11,7 +11,6 @@
    <template #content>
      <div class="charts-container">
        <div id="analysisChart" ref="analysisChart"></div>
      </div>
    </template>
  </RightTitle>
src/views/daoAnOffice/right/danger/dataTable.vue
@@ -1,16 +1,41 @@
<template>
  <div class="container">
    <div class="table-top">
  <div class="container flex flex-col">
    <div class="table-top flex justify-between items-center">
      <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 class="select-item mr-2 ml-2 cursor-pointer flex items-center"
          :class="{ 'item-active': selectItem.isActive }" 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" />
    <div class="table-container flex-1">
      <el-table class="data-table" :data="tableData" :highlight-current-row="false" :stripe="true"
        :header-cell-style="{ backgroundColor: 'transparent', color: '#79A5E9', borderColor: '#29466A' }"
        :cell-style="{ color: '#79A5E9', borderColor: '#29466A', paddingTop: '10px', paddingBottom: '10px' }"
        :row-style="{ backgroundColor: 'transparent' }">
        <el-table-column prop="street" label="镇/街道" align="center" />
        <el-table-column label="发现数量" align="center">
          <template #default="scope">
            <div style="color: #6289E6;">
              {{ scope.row.num1 }}
            </div>
          </template>
        </el-table-column>
        <el-table-column label="下发通知书" align="center">
          <template #default="scope">
            <div style="color: #CFB249;">
              {{ scope.row.num2 }}
            </div>
          </template>
        </el-table-column>
        <el-table-column label="处置数量" align="center">
          <template #default="scope">
            <div style="color: #2BB06D;">
              {{ scope.row.num3 }}
            </div>
          </template>
        </el-table-column>
      </el-table>
    </div>
  </div>
@@ -20,30 +45,46 @@
import { ref } from 'vue';
const tableType = ref([
  { id: 1, type: '本月' },
  { id: 2, type: '本季' },
  { id: 1, type: '本月', isActive: true },
  { id: 2, type: '本季', isActive: false },
]);
const tableData = [
  {
    date: '2016-05-03',
    name: 'Tom',
    address: 'No. 189, Grove St, Los Angeles',
    street: '奎光塔街道',
    num1: 12,
    num2: 5,
    num3: 2
  },
  {
    date: '2016-05-02',
    name: 'Tom',
    address: 'No. 189, Grove St, Los Angeles',
    street: '奎光塔街道',
    num1: 12,
    num2: 5,
    num3: 2
  },
  {
    date: '2016-05-04',
    name: 'Tom',
    address: 'No. 189, Grove St, Los Angeles',
    street: '奎光塔街道',
    num1: 12,
    num2: 5,
    num3: 2
  },
  {
    date: '2016-05-01',
    name: 'Tom',
    address: 'No. 189, Grove St, Los Angeles',
    street: '奎光塔街道',
    num1: 12,
    num2: 5,
    num3: 2
  },
  {
    street: '奎光塔街道',
    num1: 12,
    num2: 5,
    num3: 2
  },
  {
    street: '奎光塔街道',
    num1: 12,
    num2: 5,
    num3: 2
  },
];
</script>
@@ -52,4 +93,62 @@
.container {
  height: 360px;
}
.table-top {
  height: 51px;
  background-color: rgba(17, 34, 58, 0.6);
  border: 1px solid #29466A;
  border-bottom: none;
}
.table-select {
  height: 100%;
}
.top-title {
  font-size: 16px;
  color: #447ED6;
  margin-left: 20px;
}
.select-item {
  padding: 0 14px;
  height: 100%;
  border-bottom: 2px solid RGBA(98, 137, 230, 0);
  color: rgba(94, 134, 194, 1);
}
.item-active {
  color: #fff;
  border-color: RGBA(98, 137, 230, 1);
}
.data-table {
  font-size: 14px;
  border: 1px solid #29466A;
  width: 100%;
  height: 100%;
  background: transparent;
}
.table-color1 {}
::v-deep .el-table__inner-wrapper::before {
  background-color: transparent;
}
::v-deep .el-table thead tr {
  background-color: rgba(36, 63, 103, 0.6);
}
::v-deep .el-table--striped .el-table__body tr.el-table__row--striped td {
  background-color: rgba(36, 63, 103, 0.6);
}
.el-table__fixed-right {
  height: 100% !important;
}
</style>
src/views/daoAnOffice/right/danger/index.vue
@@ -4,34 +4,42 @@
  <RightTitle title="安全隐患情况">
    <template #top>
      <div class="select-container flex">
        <div class="item whitespace-no-wrap cursor-pointer" v-for="item in selectItems" :key="item.itemIndex">
        <div class="item whitespace-no-wrap cursor-pointer" :class="{'select-active': item.isActive}" v-for="item in selectItems" :key="item.itemIndex"
          @click="changeSelect(item)">
          {{ item.name }}
        </div>
      </div>
    </template>
    <template #content>
      <InfoView v-show="isActive"></InfoView>
      <DataView v-show="!isActive"></DataView>
      <InfoView :key="selectItems[0].itemIndex" v-show="selectItems[0].isActive"></InfoView>
      <DataView :key="selectItems[1].itemIndex" v-show="selectItems[1].isActive"></DataView>
      <!-- <TransitionGroup name="fade" mode="out-in">
      </TransitionGroup> -->
    </template>
  </RightTitle>
</template>
<script setup lang="ts">
<script setup>
import RightTitle from "@/components/right-title";
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 changeSelect = (selectItem) => {
  selectItems.value.map(item => item.isActive = false);
  selectItem.isActive = true;
}
</script>
@@ -47,10 +55,26 @@
  background: rgba(67, 102, 155, 0.4);
  border: 1px solid rgba(47, 91, 157, 0.8);
  flex-shrink: 0;
  color: #5B83BD;
}
.select-active {
 color: #fff;
}
.item:last-child {
  margin-right: 0;
}
.fade-enter-active,
.fade-leave-active {
  transition: opacity 0.5s;
}
.fade-enter,
.fade-leave-to {
  opacity: 0;
  transition: opacity 0.5s;
}
</style>