龚焕茏
2024-08-20 d52e39c6d64d9bc8a90916a070969e1898ee8ea0
src/views/system/data-manage/data-detail/index.vue
@@ -1,48 +1,23 @@
<template>
  <div class="app-container">
    <el-card class="box-card">
      <el-row type="flex" align="middle" justify="space-between">
        <el-col :span="2">
          <div class="icon-container">
            <i class="el-icon-wind-power"></i>
          </div>
        </el-col>
        <el-col :span="2">
      <el-row style="display: flex; flex-direction: row; align-items: center" justify="space-between">
        <div v-for="card in cardList" style="display: flex;flex-direction: row; margin-right: 50px">
          <div>
            <div class="dashboard-item">
              <h3 style="color: #5C9BF8">{{ totalKiosks }}</h3>
              <p>卡口总数</p>
            <div class="icon-container">
              <i :class="card.icon"></i>
            </div>
          </div>
        </el-col>
        <el-col :span="2">
          <div class="dashboard-item">
            <h3>{{ uniqueKiosks }}</h3>
            <p>不唯一卡口数</p>
          <div v-for="data in card.dataList" class="dashboard-item">
            <div style="color: #5C9BF8;margin-bottom: 20px;font-size: 20px">{{ data.value }}</div>
            <div>{{ data.label }}</div>
          </div>
        </el-col>
        <el-col :span="1">
          <div class="dashboard-item">
            <div style="width: 1px;height: 55px;border: 1px solid #D7EBFA;margin: 20px;"></div>
          </div>
        </el-col>
        <el-col :span="2">
          <div class="icon-container">
            <i class="el-icon-truck"></i>
          </div>
        </el-col>
        <el-col :span="2">
          <div class="dashboard-item">
            <h3 style="color: #5C9BF8">{{ totalCarData }}</h3>
            <p>过车数据总量</p>
          </div>
        </el-col>
        <el-col :span="2">
          <div class="dashboard-item">
            <h3>{{ uniqueCarData }}</h3>
            <p>不唯一数据量</p>
          </div>
        </el-col>
        </div>
        <!--        <el-col :span="1">-->
        <!--          <div class="dashboard-item">-->
        <!--            <div style="width: 1px;height: 55px;border: 1px solid #D7EBFA;margin: 20px;"></div>-->
        <!--          </div>-->
        <!--        </el-col>-->
        <el-col :span="8"></el-col>
      </el-row>
    </el-card>
@@ -56,8 +31,8 @@
        <el-input v-model="queryParams.bayonetName" placeholder="请输入卡口名称" clearable @keyup.enter.native="handleQuery" />
      </el-form-item>
      <el-form-item>
        <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
        <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
        <el-button type="primary" icon="el-icon-search" size="small" @click="handleQuery">搜索</el-button>
        <el-button icon="el-icon-refresh" size="small" @click="resetQuery">重置</el-button>
      </el-form-item>
    </el-form>
@@ -82,10 +57,7 @@
    </el-row>
    <el-table v-loading="loading" :data="platformList" @selection-change="handleSelectionChange">
      <template v-for="(item, index) in tableHead">
        <el-table-column :key="item.name" :prop="item.prop" :label="item.label">
        </el-table-column>
      </template>
      <el-table-column :prop="item.prop" :label="item.label" v-for="(item, index) in tableHead" :key="index" />
      <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
        <template slot-scope="scope">
@@ -120,16 +92,16 @@
        </el-form-item>
      </el-form>
      <div slot="footer" class="dialog-footer">
        <el-button type="primary" @click="submitForm">确 定</el-button>
        <el-button @click="cancel">取 消</el-button>
        <el-button type="primary" @click="submitForm">确 定</el-button>
      </div>
    </el-dialog>
  </div>
</template>
<script>
import { listPlatform, getPlatform, delPlatform, addPlatform, updatePlatform } from "@/api/platform/vehicle-data-monitor";
import { tableColumn } from "./list";
import { dataCenter } from "@/api/platform/data-center";
import { videoData, carData, faceData, equipment } from "./list";
import store from '@/store';
export default {
@@ -177,7 +149,8 @@
          { required: true, message: "卡口编号不能为空", trigger: "blur" }
        ],
      },
      tableHead: []
      tableHead: [],
      cardList: []
    };
  },
  beforeRouteEnter(to, from, next) {
@@ -185,15 +158,34 @@
    next();
  },
  created() {
    this.tableHead = tableColumn[0].columns;
    this.getList();
    if (this.$route.query.type === '1') {
      let data = videoData.table.filter(item => item.index === this.$route.query.index)[0]
      this.tableHead = data.columns;
      this.cardList = data.card;
    };
    if (this.$route.query.type === '2') {
      let data = carData.table.filter(item => item.index === this.$route.query.index)[0]
      this.tableHead = data.columns;
      this.cardList = data.card;
    }
    if (this.$route.query.type === '3') {
      let data = faceData.table.filter(item => item.index === this.$route.query.index)[0]
      this.tableHead = data.columns;
      this.cardList = data.card;
    }
    if (this.$route.query.type === '4') {
      let data = equipment.table.filter(item => item.index === this.$route.query.index)[0]
      this.tableHead = data.columns;
      this.cardList = data.card;
    }
    this.getList(this.$route.query.url);
  },
  methods: {
    /** 查询卡口过车数据一致性列表 */
    getList() {
    getList(url) {
      this.loading = true;
      listPlatform(this.queryParams).then(response => {
        this.platformList = response.rows;
      dataCenter(url, this.queryParams).then(response => {
        this.platformList = response.data;
        this.total = response.total;
        this.loading = false;
      });
@@ -222,7 +214,7 @@
    /** 搜索按钮操作 */
    handleQuery() {
      this.queryParams.pageNum = 1;
      this.getList();
      this.getList(this.$route.query.url);
    },
    /** 重置按钮操作 */
    resetQuery() {
@@ -300,13 +292,14 @@
.icon-container {
  display: flex;
  flex-direction: row;
  justify-content: center;
  align-items: center;
  border-radius: 20px;
  border-radius: 10px;
  width: 20%;
  height: 80px;
  margin-left: 5%;
  background-color: #5599F7;
  background-color: #1890FF;
  font-size: 50px;
  color: #FFF;
  width: 85px;
@@ -318,6 +311,10 @@
}
.dashboard-item {
  text-align: center;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  width: 150px;
}
</style>
</style>