| | |
| | | <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> |
| | |
| | | <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> |
| | | |
| | |
| | | </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"> |
| | |
| | | </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 { |
| | |
| | | { required: true, message: "卡口编号不能为空", trigger: "blur" } |
| | | ], |
| | | }, |
| | | tableHead: [] |
| | | tableHead: [], |
| | | cardList: [] |
| | | }; |
| | | }, |
| | | beforeRouteEnter(to, from, next) { |
| | |
| | | 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; |
| | | }); |
| | |
| | | /** 搜索按钮操作 */ |
| | | handleQuery() { |
| | | this.queryParams.pageNum = 1; |
| | | this.getList(); |
| | | this.getList(this.$route.query.url); |
| | | }, |
| | | /** 重置按钮操作 */ |
| | | resetQuery() { |
| | |
| | | |
| | | .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; |
| | |
| | | } |
| | | |
| | | .dashboard-item { |
| | | text-align: center; |
| | | display: flex; |
| | | flex-direction: column; |
| | | justify-content: center; |
| | | align-items: center; |
| | | width: 150px; |
| | | } |
| | | </style> |
| | | </style> |