|
@@ -1,42 +1,38 @@
|
|
|
<template>
|
|
|
- <div class="event-page">
|
|
|
+ <div class="car-event-page">
|
|
|
<!-- 左侧查询条件 -->
|
|
|
<div class="query-panel">
|
|
|
<el-form :model="queryForm" label-width="100px">
|
|
|
- <el-form-item label="事件类型">
|
|
|
- <el-select v-model="queryForm.eventType" placeholder="请选择事件类型">
|
|
|
- <el-option label="全部" value="" />
|
|
|
- <el-option label="门禁事件" value="access" />
|
|
|
- <el-option label="报警事件" value="alarm" />
|
|
|
- </el-select>
|
|
|
+ <el-form-item label="车牌号码">
|
|
|
+ <el-input v-model="queryForm.plateNumber" placeholder="请输入车牌号码" />
|
|
|
</el-form-item>
|
|
|
|
|
|
- <el-form-item label="主类型">
|
|
|
- <el-select v-model="queryForm.mainType" placeholder="请选择主类型">
|
|
|
- <el-option label="全部" value="" />
|
|
|
- <el-option label="类型1" value="type1" />
|
|
|
- <el-option label="类型2" value="type2" />
|
|
|
- </el-select>
|
|
|
+ <el-form-item label="车主姓名">
|
|
|
+ <el-input v-model="queryForm.ownerName" placeholder="请输入车主姓名" />
|
|
|
</el-form-item>
|
|
|
|
|
|
- <el-form-item label="次类型">
|
|
|
- <el-select v-model="queryForm.subType" placeholder="请选择次类型">
|
|
|
- <el-option label="全部" value="" />
|
|
|
- <el-option label="子类型1" value="sub1" />
|
|
|
- <el-option label="子类型2" value="sub2" />
|
|
|
- </el-select>
|
|
|
+ <el-form-item label="电话号码">
|
|
|
+ <el-input v-model="queryForm.phoneNumber" placeholder="请输入电话号码" />
|
|
|
</el-form-item>
|
|
|
|
|
|
- <el-form-item label="人员ID">
|
|
|
- <el-input v-model="queryForm.personId" placeholder="请输入人员ID" />
|
|
|
+ <el-form-item label="事件类型">
|
|
|
+ <el-select v-model="queryForm.eventType" placeholder="请选择事件类型">
|
|
|
+ <el-option label="全部" value="" />
|
|
|
+ <el-option label="进门" value="IN" />
|
|
|
+ <el-option label="出门" value="OUT" />
|
|
|
+ </el-select>
|
|
|
</el-form-item>
|
|
|
|
|
|
- <el-form-item label="工号">
|
|
|
- <el-input v-model="queryForm.jobNumber" placeholder="请输入工号" />
|
|
|
+ <el-form-item label="车辆类型">
|
|
|
+ <el-select v-model="queryForm.carType" placeholder="请选择车辆类型">
|
|
|
+ <el-option label="全部" value="" />
|
|
|
+ <el-option label="固定车" value="FIXED" />
|
|
|
+ <el-option label="授权车" value="AUTHORIZED" />
|
|
|
+ </el-select>
|
|
|
</el-form-item>
|
|
|
|
|
|
- <el-form-item label="姓名">
|
|
|
- <el-input v-model="queryForm.name" placeholder="请输入姓名" />
|
|
|
+ <el-form-item label="车辆群组">
|
|
|
+ <el-input v-model="queryForm.carGroup" placeholder="请输入所属群组" />
|
|
|
</el-form-item>
|
|
|
|
|
|
<el-form-item label="开始时间">
|
|
@@ -57,7 +53,7 @@
|
|
|
/>
|
|
|
</el-form-item>
|
|
|
|
|
|
- <!-- 快捷按钮 -->
|
|
|
+ <!-- 快捷时间按钮 -->
|
|
|
<div class="quick-btns">
|
|
|
<el-button @click="setQuickTime('yesterday')">昨天</el-button>
|
|
|
<el-button @click="setQuickTime('today')">今天</el-button>
|
|
@@ -71,27 +67,27 @@
|
|
|
|
|
|
<!-- 右侧表格 -->
|
|
|
<div class="table-panel">
|
|
|
- <el-table
|
|
|
- :data="tableData"
|
|
|
- border
|
|
|
- style="width: 100%;"
|
|
|
- >
|
|
|
+ <el-table :data="tableData" border style="width: 100%;">
|
|
|
<el-table-column type="index" label="序号" width="60" />
|
|
|
- <el-table-column prop="personId" label="人员id" width="120" />
|
|
|
- <el-table-column prop="jobNumber" label="工号" width="120" />
|
|
|
- <el-table-column prop="name" label="姓名" width="120" />
|
|
|
- <el-table-column prop="cardNumber" label="卡号" width="120" />
|
|
|
- <el-table-column prop="door" label="门" width="100" />
|
|
|
- <el-table-column prop="eventType" label="事件类型" width="150" />
|
|
|
- <el-table-column prop="eventTime" label="时间" width="180">
|
|
|
+ <el-table-column prop="ownerName" label="车主姓名" width="120" />
|
|
|
+ <el-table-column prop="plateNumber" label="车牌号码" width="120" />
|
|
|
+ <el-table-column prop="phoneNumber" label="电话号码" width="150" />
|
|
|
+ <el-table-column prop="eventType" label="事件类型" width="100">
|
|
|
+ <template #default="scope">
|
|
|
+ {{ scope.row.eventType === 'IN' ? '进门' : scope.row.eventType === 'OUT' ? '出门' : '-' }}
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column prop="carType" label="车辆类型" width="120">
|
|
|
+ <template #default="scope">
|
|
|
+ {{ scope.row.carType === 'FIXED' ? '固定车' : '授权车' }}
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column prop="carGroup" label="车辆群组" width="150" />
|
|
|
+ <el-table-column prop="eventTime" label="事件时间" width="180">
|
|
|
<template #default="scope">
|
|
|
{{ new Date(scope.row.eventTime).toLocaleString() }}
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
- <el-table-column prop="remoteHost" label="远程主机地址" width="160" />
|
|
|
- <el-table-column prop="reader" label="读卡器" width="120" />
|
|
|
- <el-table-column prop="detectorId" label="探测器ID" width="120" />
|
|
|
- <el-table-column prop="operation" label="操作" min-width="120" />
|
|
|
</el-table>
|
|
|
|
|
|
<!-- 分页 -->
|
|
@@ -113,74 +109,77 @@
|
|
|
import request from "@/utils/request";
|
|
|
|
|
|
export default {
|
|
|
- name: "EventPage",
|
|
|
+ name: "CarEventLogPage",
|
|
|
data() {
|
|
|
return {
|
|
|
queryForm: {
|
|
|
- id: "", //id
|
|
|
- personId: "", // 人员ID
|
|
|
- jobNumber: "", // 工号
|
|
|
- name: "",
|
|
|
- cardNumber: "",
|
|
|
- door: "",
|
|
|
- remoteHost: "",
|
|
|
- reader: "",
|
|
|
- detectorId: "",
|
|
|
- operation: "",
|
|
|
+ plateNumber: "",
|
|
|
+ ownerName: "",
|
|
|
+ phoneNumber: "",
|
|
|
eventType: "",
|
|
|
- eventTime: "",
|
|
|
- createTime: "",
|
|
|
+ carType: "",
|
|
|
+ carGroup: "",
|
|
|
startTime: "",
|
|
|
endTime: "",
|
|
|
pageNum: 1,
|
|
|
pageSize: 24
|
|
|
},
|
|
|
- // private Long id;
|
|
|
- // private String personId; // 人员ID
|
|
|
- // private String jobNumber; // 工号
|
|
|
- // private String name; // 姓名
|
|
|
- // private String cardNumber; // 卡号
|
|
|
- // private String door; // 门
|
|
|
- // private String remoteHost; // 远程主机地址
|
|
|
- // private String reader; // 读卡器
|
|
|
- // private String detectorId; // 探测器ID
|
|
|
- // private String operation; // 操作
|
|
|
- // private String eventType; // 事件类型
|
|
|
- // private LocalDateTime eventTime; // 事件发生时间
|
|
|
- // private LocalDateTime createTime; // 记录创建时间
|
|
|
tableData: [],
|
|
|
total: 0
|
|
|
}
|
|
|
},
|
|
|
created() {
|
|
|
- // 页面加载时自动拉取第一页数据
|
|
|
this.fetchData()
|
|
|
},
|
|
|
methods: {
|
|
|
fetchData() {
|
|
|
+ // const params = {
|
|
|
+ // ...this.queryForm,
|
|
|
+ // pageNum: Number(this.queryForm.pageNum), // 转数字
|
|
|
+ // pageSize: Number(this.queryForm.pageSize), // 转数字
|
|
|
+ // startTime: this.queryForm.startTime ? this.queryForm.startTime.getTime() : null, // 转时间戳
|
|
|
+ // endTime: this.queryForm.endTime ? this.queryForm.endTime.getTime() : null
|
|
|
+ // }
|
|
|
+ const params = {
|
|
|
+ plateNumber: this.queryForm.plateNumber || undefined,
|
|
|
+ ownerName: this.queryForm.ownerName || undefined,
|
|
|
+ phoneNumber: this.queryForm.phoneNumber || undefined,
|
|
|
+ eventType: this.queryForm.eventType || undefined,
|
|
|
+ carType: this.queryForm.carType || undefined,
|
|
|
+ carGroup: this.queryForm.carGroup || undefined,
|
|
|
+ pageNum: Number(this.queryForm.pageNum),
|
|
|
+ pageSize: Number(this.queryForm.pageSize),
|
|
|
+ startTime: this.queryForm.startTime ? this.queryForm.startTime.getTime() : undefined,
|
|
|
+ endTime: this.queryForm.endTime ? this.queryForm.endTime.getTime() : undefined,
|
|
|
+ }
|
|
|
+
|
|
|
+ Object.keys(this.queryForm).forEach(key => {
|
|
|
+ if (this.queryForm[key] === "" || this.queryForm[key] === null) {
|
|
|
+ delete params[key]
|
|
|
+ }
|
|
|
+ })
|
|
|
+
|
|
|
request({
|
|
|
- url: "/event/list",
|
|
|
+ url: "/car/event/log/list",
|
|
|
method: "get",
|
|
|
params: this.queryForm
|
|
|
+ // params
|
|
|
}).then(res => {
|
|
|
this.tableData = res.records || []
|
|
|
- console.log("数据",res)
|
|
|
- // console.log("总条数",res.total)
|
|
|
this.total = res.total || 0
|
|
|
+ console.log("车辆进出记录数据:", res)
|
|
|
})
|
|
|
-
|
|
|
-
|
|
|
},
|
|
|
setQuickTime(type) {
|
|
|
const now = new Date()
|
|
|
if (type === "today") {
|
|
|
- this.queryForm.startTime = new Date(now.setHours(0,0,0,0))
|
|
|
+ this.queryForm.startTime = new Date(now.setHours(0, 0, 0, 0))
|
|
|
this.queryForm.endTime = new Date()
|
|
|
} else if (type === "yesterday") {
|
|
|
const y = new Date()
|
|
|
y.setDate(y.getDate() - 1)
|
|
|
- this.queryForm.startTime = new Date(y.setHours(0,0,0,0))
|
|
|
- this.queryForm.endTime = new Date(y.setHours(23,59,59,999))
|
|
|
+ this.queryForm.startTime = new Date(y.setHours(0, 0, 0, 0))
|
|
|
+ this.queryForm.endTime = new Date(y.setHours(23, 59, 59, 999))
|
|
|
} else if (type === "month") {
|
|
|
const first = new Date(now.getFullYear(), now.getMonth(), 1)
|
|
|
this.queryForm.startTime = first
|
|
@@ -192,7 +191,7 @@ export default {
|
|
|
</script>
|
|
|
|
|
|
<style scoped>
|
|
|
-.event-page {
|
|
|
+.car-event-page {
|
|
|
display: flex;
|
|
|
padding: 10px;
|
|
|
}
|