feat:预警管理、接口管理

This commit is contained in:
dzc committed 2025-07-29 11:22:53 +08:00
1 parent 145f2c9b88
commit f577d1a881
8 files changed
+653 -190

No files matched your search

+17
View File
@@ -0,0 +1,17 @@
import request from "/@/utils/request"
export function fetchList(query?: Object) {
return request({
url: '/admin/com/comDhLog/page',
method: 'get',
params: query
})
}
export function getObj(id?: string) {
return request({
url: '/admin/com/comDhLog/' + id,
method: 'get'
})
}
+17
View File
@@ -0,0 +1,17 @@
import request from "/@/utils/request"
export function getObj() {
return request({
url: '/admin/com/comDhSetting',
method: 'get'
})
}
export function putObj(obj?: Object) {
return request({
url: '/admin/com/comDhSetting',
method: 'put',
data: obj
})
}
+152
View File
@@ -0,0 +1,152 @@
<template>
<div class="layout-padding">
<div class="layout-padding-auto layout-padding-view flex flex-col">
<el-tabs v-model="state.currentTab" class="demo-tabs" @tab-click="tabClick">
<el-tab-pane v-for="(v, i) in data.tabs" :key="v.name" :label="v.label" :name="v.name" />
</el-tabs>
<div class="flex-1 overflow-hidden mt-4">
<el-form ref="dataFormRef" :model="form" :rules="dataRules" formDialogRef label-width="150px"
v-loading="state.loading">
<el-row :gutter="24">
<div class="w-full" v-if="state.currentTab === 'PERSON'">
<el-col :span="24" class="mb20">
<el-form-item label="人闸报警频次" prop="doorRepeatCount">
<template #label>
<div class="flex items-center gap-1">
<span>人闸报警频次</span>
<el-tooltip class="box-item" :content="`每天进出${form.doorRepeatCount}次就会报警`"
placement="top">
<el-icon :size="16">
<InfoFilled />
</el-icon>
</el-tooltip>
</div>
</template>
<el-input v-model="form.doorRepeatCount" placeholder="请输入人闸报警频次">
<div class="flex items-center gap-1">
<span>请输入人闸报警频次</span>
<el-tooltip class="box-item" :content="`每天进出${form.doorRepeatCount}次就会报警`"
placement="top">
<el-icon :size="16">
<InfoFilled />
</el-icon>
</el-tooltip>
</div>
<template #append>次</template>
</el-input>
</el-form-item>
</el-col>
</div>
<div class="w-full" v-if="state.currentTab === 'DOOR'">
<el-col :span="24" class="mb20">
<el-form-item label="道闸报警频次" prop="carRepeatCount">
<template #label>
<div class="flex items-center gap-1">
<span>道闸报警频次</span>
<el-tooltip class="box-item" :content="`每天进出${form.carRepeatCount}次就会报警`"
placement="top">
<el-icon :size="16">
<InfoFilled />
</el-icon>
</el-tooltip>
</div>
</template>
<el-input v-model="form.carRepeatCount" placeholder="请输入道闸报警频次">
<template #append>次</template>
</el-input>
</el-form-item>
</el-col>
</div>
</el-row>
</el-form>
</div>
<div class="flex justify-center">
<el-button type="primary" @click="onSubmit">保存配置</el-button>
</div>
</div>
</div>
</template>
<script setup lang="ts" name="deviceLog">
import { useMessage } from "/@/hooks/message";
import * as ComDhSettingApi from "/@/api/com/comDhSetting";
const data = {
tabs: [
{
label: "车速预警配置",
name: "CAR_SPEED",
},
{
label: "人员预警配置",
name: "PERSON",
},
{
label: "道闸预警配置",
name: "DOOR",
}
]
}
const state = reactive<any>({
currentTab: data.tabs[0].name,
loading: false,
})
const dataFormRef = ref();
// 提交表单数据
const form = reactive({
// 人闸报警频次
doorRepeatCount: null,
// 道闸报警频次
carRepeatCount: null,
})
// 定义校验规则
const dataRules = ref({
doorRepeatCount: [{ required: true, message: '人闸报警频次不能为空', trigger: 'blur' }],
carRepeatCount: [{ required: true, message: '道闸报警频次不能为空', trigger: 'blur' }],
})
onMounted(() => {
getSetting()
})
function tabClick(e: any) {
getSetting()
}
async function getSetting() {
state.loading = true
try {
const { data } = await ComDhSettingApi.getObj()
if (data) {
Object.assign(form, data)
}
} catch (err: any) {
console.error(err);
} finally {
state.loading = false
}
}
async function onSubmit() {
const valid = await dataFormRef.value.validate().catch(() => { });
if (!valid) return false;
state.loading = true
try {
const { data } = await ComDhSettingApi.putObj(form)
if (data) {
Object.assign(form, data)
}
useMessage().success('修改成功');
} catch (err: any) {
useMessage().error(err.msg);
} finally {
state.loading = false
}
}
</script>
+91
View File
@@ -0,0 +1,91 @@
<!-- 道闸数据日志 -->
<template>
<div class="layout-padding">
<div class="layout-padding-auto layout-padding-view">
<el-row shadow="hover" :gutter="10" v-show="showSearch" class="ml10">
<el-col :span="6">
<el-form-item label="触发日期" prop="createTimeList">
<el-date-picker v-model="state.queryForm.createTimeList" value-format="YYYY-MM-DD"
type="daterange" />
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item>
<el-button icon="search" type="primary" @click="getDataList">
{{ $t('common.queryBtn') }}
</el-button>
<el-button icon="Refresh" @click="resetQuery">{{ $t('common.resetBtn') }}</el-button>
</el-form-item>
</el-col>
</el-row>
<el-row>
<div class="mb8" style="width: 100%">
<right-toolbar v-model:showSearch="showSearch" :export="false" @exportExcel="exportExcel"
class="ml10 mr20" style="float: right;" @queryTable="getDataList" />
</div>
</el-row>
<el-table :data="state.dataList" v-loading="state.loading" border :cell-style="tableStyle.cellStyle"
:header-cell-style="tableStyle.headerCellStyle" @selection-change="selectionChangHandle"
@sort-change="sortChangeHandle">
<el-table-column type="selection" width="40" align="center" />
<el-table-column type="index" label="#" width="80" />
</el-table>
<pagination @size-change="sizeChangeHandle" @current-change="currentChangeHandle"
v-bind="state.pagination" />
</div>
</div>
</template>
<script setup lang="ts" name="deviceLog">
import { BasicTableProps, useTable } from "/@/hooks/table";
import { useMessage, useMessageBox } from "/@/hooks/message";
import { useDict } from '/@/hooks/dict';
import * as ComDhLogApi from "/@/api/com/comDhLog";
// 搜索变量
const queryRef = ref()
const showSearch = ref(true)
// 多选变量
const selectObjs = ref([]) as any
const multiple = ref(true)
const state: BasicTableProps = reactive<BasicTableProps>({
queryForm: {},
pageList: ComDhLogApi.fetchList
})
// table hook
const {
getDataList,
currentChangeHandle,
sizeChangeHandle,
sortChangeHandle,
downBlobFile,
tableStyle
} = useTable(state)
// 清空搜索条件
const resetQuery = () => {
// 清空搜索条件
queryRef.value?.resetFields()
// 清空多选
selectObjs.value = []
getDataList()
}
// 多选事件
const selectionChangHandle = (objs: { id: string }[]) => {
selectObjs.value = objs.map(({ id }) => id);
multiple.value = !objs.length;
};
// 导出excel
const exportExcel = () => {
}
</script>
<style lang="sass" scoped>
</style>
+91
View File
@@ -0,0 +1,91 @@
<!-- 监控数据日志 -->
<template>
<div class="layout-padding">
<div class="layout-padding-auto layout-padding-view">
<el-row shadow="hover" :gutter="10" v-show="showSearch" class="ml10">
<el-col :span="6">
<el-form-item label="触发日期" prop="createTimeList">
<el-date-picker v-model="state.queryForm.createTimeList" value-format="YYYY-MM-DD"
type="daterange" />
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item>
<el-button icon="search" type="primary" @click="getDataList">
{{ $t('common.queryBtn') }}
</el-button>
<el-button icon="Refresh" @click="resetQuery">{{ $t('common.resetBtn') }}</el-button>
</el-form-item>
</el-col>
</el-row>
<el-row>
<div class="mb8" style="width: 100%">
<right-toolbar v-model:showSearch="showSearch" :export="false" @exportExcel="exportExcel"
class="ml10 mr20" style="float: right;" @queryTable="getDataList" />
</div>
</el-row>
<el-table :data="state.dataList" v-loading="state.loading" border :cell-style="tableStyle.cellStyle"
:header-cell-style="tableStyle.headerCellStyle" @selection-change="selectionChangHandle"
@sort-change="sortChangeHandle">
<el-table-column type="selection" width="40" align="center" />
<el-table-column type="index" label="#" width="80" />
</el-table>
<pagination @size-change="sizeChangeHandle" @current-change="currentChangeHandle"
v-bind="state.pagination" />
</div>
</div>
</template>
<script setup lang="ts" name="deviceLog">
import { BasicTableProps, useTable } from "/@/hooks/table";
import { useMessage, useMessageBox } from "/@/hooks/message";
import { useDict } from '/@/hooks/dict';
import * as ComDhLogApi from "/@/api/com/comDhLog";
// 搜索变量
const queryRef = ref()
const showSearch = ref(true)
// 多选变量
const selectObjs = ref([]) as any
const multiple = ref(true)
const state: BasicTableProps = reactive<BasicTableProps>({
queryForm: {},
pageList: ComDhLogApi.fetchList
})
// table hook
const {
getDataList,
currentChangeHandle,
sizeChangeHandle,
sortChangeHandle,
downBlobFile,
tableStyle
} = useTable(state)
// 清空搜索条件
const resetQuery = () => {
// 清空搜索条件
queryRef.value?.resetFields()
// 清空多选
selectObjs.value = []
getDataList()
}
// 多选事件
const selectionChangHandle = (objs: { id: string }[]) => {
selectObjs.value = objs.map(({ id }) => id);
multiple.value = !objs.length;
};
// 导出excel
const exportExcel = () => {
}
</script>
<style lang="sass" scoped>
</style>
+91
View File
@@ -0,0 +1,91 @@
<!-- 门禁数据日志 -->
<template>
<div class="layout-padding">
<div class="layout-padding-auto layout-padding-view">
<el-row shadow="hover" :gutter="10" v-show="showSearch" class="ml10">
<el-col :span="6">
<el-form-item label="触发日期" prop="createTimeList">
<el-date-picker v-model="state.queryForm.createTimeList" value-format="YYYY-MM-DD"
type="daterange" />
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item>
<el-button icon="search" type="primary" @click="getDataList">
{{ $t('common.queryBtn') }}
</el-button>
<el-button icon="Refresh" @click="resetQuery">{{ $t('common.resetBtn') }}</el-button>
</el-form-item>
</el-col>
</el-row>
<el-row>
<div class="mb8" style="width: 100%">
<right-toolbar v-model:showSearch="showSearch" :export="false" @exportExcel="exportExcel"
class="ml10 mr20" style="float: right;" @queryTable="getDataList" />
</div>
</el-row>
<el-table :data="state.dataList" v-loading="state.loading" border :cell-style="tableStyle.cellStyle"
:header-cell-style="tableStyle.headerCellStyle" @selection-change="selectionChangHandle"
@sort-change="sortChangeHandle">
<el-table-column type="selection" width="40" align="center" />
<el-table-column type="index" label="#" width="80" />
</el-table>
<pagination @size-change="sizeChangeHandle" @current-change="currentChangeHandle"
v-bind="state.pagination" />
</div>
</div>
</template>
<script setup lang="ts" name="deviceLog">
import { BasicTableProps, useTable } from "/@/hooks/table";
import { useMessage, useMessageBox } from "/@/hooks/message";
import { useDict } from '/@/hooks/dict';
import * as ComDhLogApi from "/@/api/com/comDhLog";
// 搜索变量
const queryRef = ref()
const showSearch = ref(true)
// 多选变量
const selectObjs = ref([]) as any
const multiple = ref(true)
const state: BasicTableProps = reactive<BasicTableProps>({
queryForm: {},
pageList: ComDhLogApi.fetchList
})
// table hook
const {
getDataList,
currentChangeHandle,
sizeChangeHandle,
sortChangeHandle,
downBlobFile,
tableStyle
} = useTable(state)
// 清空搜索条件
const resetQuery = () => {
// 清空搜索条件
queryRef.value?.resetFields()
// 清空多选
selectObjs.value = []
getDataList()
}
// 多选事件
const selectionChangHandle = (objs: { id: string }[]) => {
selectObjs.value = objs.map(({ id }) => id);
multiple.value = !objs.length;
};
// 导出excel
const exportExcel = () => {
}
</script>
<style lang="sass" scoped>
</style>
+188 -189
View File
@@ -1,179 +1,178 @@
<template>
<el-dialog :title="form.id ? '编辑' : '新增'" v-model="visible"
:close-on-click-modal="false" draggable>
<el-form ref="dataFormRef" :model="form" :rules="dataRules" formDialogRef label-width="90px" v-loading="loading">
<el-row :gutter="24">
<el-col :span="24" class="mb20">
<el-form-item label="入场车牌号" prop="carNum">
<el-input v-model="form.carNum" placeholder="请输入入场车牌号"/>
</el-form-item>
</el-col>
<el-dialog :title="form.id ? '编辑' : '新增'" v-model="visible" :close-on-click-modal="false" draggable>
<el-form ref="dataFormRef" :model="form" :rules="dataRules" formDialogRef label-width="90px" v-loading="loading">
<el-row :gutter="24">
<el-col :span="24" class="mb20">
<el-form-item label="入场车牌号" prop="carNum">
<el-input v-model="form.carNum" placeholder="请输入入场车牌号" />
</el-form-item>
</el-col>
<el-col :span="24" class="mb20">
<el-form-item label="车主id" prop="carOwnerId">
<el-input v-model="form.carOwnerId" placeholder="请输入车主id"/>
</el-form-item>
</el-col>
<el-col :span="24" class="mb20">
<el-form-item label="车主id" prop="carOwnerId">
<el-input v-model="form.carOwnerId" placeholder="请输入车主id" />
</el-form-item>
</el-col>
<el-col :span="24" class="mb20">
<el-form-item label="车辆停车状态(0-进入,1-离开,2-只有出车,3-强制出场)" prop="carStatus">
<el-input v-model="form.carStatus" placeholder="请输入车辆停车状态(0-进入,1-离开,2-只有出车,3-强制出场)"/>
</el-form-item>
</el-col>
<el-col :span="24" class="mb20">
<el-form-item label="车辆停车状态(0-进入,1-离开,2-只有出车,3-强制出场)" prop="carStatus">
<el-input v-model="form.carStatus" placeholder="请输入车辆停车状态(0-进入,1-离开,2-只有出车,3-强制出场)" />
</el-form-item>
</el-col>
<el-col :span="24" class="mb20">
<el-form-item label="车辆类型:0-外部车;其他为内部车(字典)" prop="carType">
<el-input v-model="form.carType" placeholder="请输入车辆类型:0-外部车;其他为内部车(字典)"/>
</el-form-item>
</el-col>
<el-col :span="24" class="mb20">
<el-form-item label="车辆类型:0-外部车;其他为内部车(字典)" prop="carType">
<el-input v-model="form.carType" placeholder="请输入车辆类型:0-外部车;其他为内部车(字典)" />
</el-form-item>
</el-col>
<el-col :span="24" class="mb20">
<el-form-item label="卡号" prop="cardNumber">
<el-input v-model="form.cardNumber" placeholder="请输入卡号"/>
</el-form-item>
</el-col>
<el-col :span="24" class="mb20">
<el-form-item label="卡号" prop="cardNumber">
<el-input v-model="form.cardNumber" placeholder="请输入卡号" />
</el-form-item>
</el-col>
<el-col :span="24" class="mb20">
<el-form-item label="进场的相机通道id" prop="enterItcDevChnId">
<el-input v-model="form.enterItcDevChnId" placeholder="请输入进场的相机通道id"/>
</el-form-item>
</el-col>
<el-col :span="24" class="mb20">
<el-form-item label="进场的相机通道id" prop="enterItcDevChnId">
<el-input v-model="form.enterItcDevChnId" placeholder="请输入进场的相机通道id" />
</el-form-item>
</el-col>
<el-col :span="24" class="mb20">
<el-form-item label="进场的相机通道名称" prop="enterItcDevChnName">
<el-input v-model="form.enterItcDevChnName" placeholder="请输入进场的相机通道名称"/>
</el-form-item>
</el-col>
<el-col :span="24" class="mb20">
<el-form-item label="进场的相机通道名称" prop="enterItcDevChnName">
<el-input v-model="form.enterItcDevChnName" placeholder="请输入进场的相机通道名称" />
</el-form-item>
</el-col>
<el-col :span="24" class="mb20">
<el-form-item label="入场方式:0-刷卡,1-自动识别(需核对)(字典)" prop="enterMode">
<el-input v-model="form.enterMode" placeholder="请输入入场方式:0-刷卡,1-自动识别(需核对)(字典)"/>
</el-form-item>
</el-col>
<el-col :span="24" class="mb20">
<el-form-item label="入场方式:0-刷卡,1-自动识别(需核对)(字典)" prop="enterMode">
<el-input v-model="form.enterMode" placeholder="请输入入场方式:0-刷卡,1-自动识别(需核对)(字典)" />
</el-form-item>
</el-col>
<el-col :span="24" class="mb20">
<el-form-item label="进场的道闸设备通道id" prop="enterSluiceDevChnId">
<el-input v-model="form.enterSluiceDevChnId" placeholder="请输入进场的道闸设备通道id"/>
</el-form-item>
</el-col>
<el-col :span="24" class="mb20">
<el-form-item label="进场的道闸设备通道id" prop="enterSluiceDevChnId">
<el-input v-model="form.enterSluiceDevChnId" placeholder="请输入进场的道闸设备通道id" />
</el-form-item>
</el-col>
<el-col :span="24" class="mb20">
<el-form-item label="进场的道闸设备通道名称" prop="enterSluiceDevChnName">
<el-input v-model="form.enterSluiceDevChnName" placeholder="请输入进场的道闸设备通道名称"/>
</el-form-item>
</el-col>
<el-col :span="24" class="mb20">
<el-form-item label="进场的道闸设备通道名称" prop="enterSluiceDevChnName">
<el-input v-model="form.enterSluiceDevChnName" placeholder="请输入进场的道闸设备通道名称" />
</el-form-item>
</el-col>
<el-col :span="24" class="mb20">
<el-form-item label="进场时间 yyyy-MM-dd HH:mm:ss" prop="enterTime">
<el-input v-model="form.enterTime" placeholder="请输入进场时间 yyyy-MM-dd HH:mm:ss"/>
</el-form-item>
</el-col>
<el-col :span="24" class="mb20">
<el-form-item label="进场时间 yyyy-MM-dd HH:mm:ss" prop="enterTime">
<el-input v-model="form.enterTime" placeholder="请输入进场时间 yyyy-MM-dd HH:mm:ss" />
</el-form-item>
</el-col>
<el-col :span="24" class="mb20">
<el-form-item label="入场车道编号" prop="enterWayCode">
<el-input v-model="form.enterWayCode" placeholder="请输入入场车道编号"/>
</el-form-item>
</el-col>
<el-col :span="24" class="mb20">
<el-form-item label="入场车道编号" prop="enterWayCode">
<el-input v-model="form.enterWayCode" placeholder="请输入入场车道编号" />
</el-form-item>
</el-col>
<el-col :span="24" class="mb20">
<el-form-item label="出场车牌号" prop="exitCarNum">
<el-input v-model="form.exitCarNum" placeholder="请输入出场车牌号"/>
</el-form-item>
</el-col>
<el-col :span="24" class="mb20">
<el-form-item label="出场车牌号" prop="exitCarNum">
<el-input v-model="form.exitCarNum" placeholder="请输入出场车牌号" />
</el-form-item>
</el-col>
<el-col :span="24" class="mb20">
<el-form-item label="出场相机通道id" prop="exitItcDevChnId">
<el-input v-model="form.exitItcDevChnId" placeholder="请输入出场相机通道id"/>
</el-form-item>
</el-col>
<el-col :span="24" class="mb20">
<el-form-item label="出场相机通道id" prop="exitItcDevChnId">
<el-input v-model="form.exitItcDevChnId" placeholder="请输入出场相机通道id" />
</el-form-item>
</el-col>
<el-col :span="24" class="mb20">
<el-form-item label="出场相机通道名称" prop="exitItcDevChnName">
<el-input v-model="form.exitItcDevChnName" placeholder="请输入出场相机通道名称"/>
</el-form-item>
</el-col>
<el-col :span="24" class="mb20">
<el-form-item label="出场相机通道名称" prop="exitItcDevChnName">
<el-input v-model="form.exitItcDevChnName" placeholder="请输入出场相机通道名称" />
</el-form-item>
</el-col>
<el-col :span="24" class="mb20">
<el-form-item label="出场道闸通道id" prop="exitSluiceDevChnId">
<el-input v-model="form.exitSluiceDevChnId" placeholder="请输入出场道闸通道id"/>
</el-form-item>
</el-col>
<el-col :span="24" class="mb20">
<el-form-item label="出场道闸通道id" prop="exitSluiceDevChnId">
<el-input v-model="form.exitSluiceDevChnId" placeholder="请输入出场道闸通道id" />
</el-form-item>
</el-col>
<el-col :span="24" class="mb20">
<el-form-item label="出场道闸通道名称" prop="exitSluiceDevChnName">
<el-input v-model="form.exitSluiceDevChnName" placeholder="请输入出场道闸通道名称"/>
</el-form-item>
</el-col>
<el-col :span="24" class="mb20">
<el-form-item label="出场道闸通道名称" prop="exitSluiceDevChnName">
<el-input v-model="form.exitSluiceDevChnName" placeholder="请输入出场道闸通道名称" />
</el-form-item>
</el-col>
<el-col :span="24" class="mb20">
<el-form-item label="出场时间 yyyy-MM-dd HH:mm:ss" prop="exitTime">
<el-input v-model="form.exitTime" placeholder="请输入出场时间 yyyy-MM-dd HH:mm:ss"/>
</el-form-item>
</el-col>
<el-col :span="24" class="mb20">
<el-form-item label="出场时间 yyyy-MM-dd HH:mm:ss" prop="exitTime">
<el-input v-model="form.exitTime" placeholder="请输入出场时间 yyyy-MM-dd HH:mm:ss" />
</el-form-item>
</el-col>
<el-col :span="24" class="mb20">
<el-form-item label="出场车道编号" prop="exitWayCode">
<el-input v-model="form.exitWayCode" placeholder="请输入出场车道编号"/>
</el-form-item>
</el-col>
<el-col :span="24" class="mb20">
<el-form-item label="出场车道编号" prop="exitWayCode">
<el-input v-model="form.exitWayCode" placeholder="请输入出场车道编号" />
</el-form-item>
</el-col>
<el-col :span="24" class="mb20">
<el-form-item label="进场抓拍图片url" prop="originalPicPathEnter">
<el-input v-model="form.originalPicPathEnter" placeholder="请输入进场抓拍图片url"/>
</el-form-item>
</el-col>
<el-col :span="24" class="mb20">
<el-form-item label="进场抓拍图片url" prop="originalPicPathEnter">
<el-input v-model="form.originalPicPathEnter" placeholder="请输入进场抓拍图片url" />
</el-form-item>
</el-col>
<el-col :span="24" class="mb20">
<el-form-item label="出场抓拍图片url" prop="originalPicPathExit">
<el-input v-model="form.originalPicPathExit" placeholder="请输入出场抓拍图片url"/>
</el-form-item>
</el-col>
<el-col :span="24" class="mb20">
<el-form-item label="出场抓拍图片url" prop="originalPicPathExit">
<el-input v-model="form.originalPicPathExit" placeholder="请输入出场抓拍图片url" />
</el-form-item>
</el-col>
<el-col :span="24" class="mb20">
<el-form-item label="车主用户类型0、5-临时用户;1-储值用户;2-月卡用户;3-长期用户" prop="ownerType">
<el-input v-model="form.ownerType" placeholder="请输入车主用户类型0、5-临时用户;1-储值用户;2-月卡用户;3-长期用户"/>
</el-form-item>
</el-col>
<el-col :span="24" class="mb20">
<el-form-item label="车主用户类型0、5-临时用户;1-储值用户;2-月卡用户;3-长期用户" prop="ownerType">
<el-input v-model="form.ownerType" placeholder="请输入车主用户类型0、5-临时用户;1-储值用户;2-月卡用户;3-长期用户" />
</el-form-item>
</el-col>
<el-col :span="24" class="mb20">
<el-form-item label="场区名称" prop="parkingLot">
<el-input v-model="form.parkingLot" placeholder="请输入场区名称"/>
</el-form-item>
</el-col>
<el-col :span="24" class="mb20">
<el-form-item label="场区名称" prop="parkingLot">
<el-input v-model="form.parkingLot" placeholder="请输入场区名称" />
</el-form-item>
</el-col>
<el-col :span="24" class="mb20">
<el-form-item label="场区编码" prop="parkingLotCode">
<el-input v-model="form.parkingLotCode" placeholder="请输入场区编码"/>
</el-form-item>
</el-col>
<el-col :span="24" class="mb20">
<el-form-item label="场区编码" prop="parkingLotCode">
<el-input v-model="form.parkingLotCode" placeholder="请输入场区编码" />
</el-form-item>
</el-col>
<el-col :span="24" class="mb20">
<el-form-item label="已支付金额" prop="payedMoney">
<el-input v-model="form.payedMoney" placeholder="请输入已支付金额"/>
</el-form-item>
</el-col>
<el-col :span="24" class="mb20">
<el-form-item label="已支付金额" prop="payedMoney">
<el-input v-model="form.payedMoney" placeholder="请输入已支付金额" />
</el-form-item>
</el-col>
<el-col :span="24" class="mb20">
<el-form-item label="入场抓拍图片,小图" prop="realCapturePicPathEnter">
<el-input v-model="form.realCapturePicPathEnter" placeholder="请输入入场抓拍图片,小图"/>
</el-form-item>
</el-col>
<el-col :span="24" class="mb20">
<el-form-item label="入场抓拍图片,小图" prop="realCapturePicPathEnter">
<el-input v-model="form.realCapturePicPathEnter" placeholder="请输入入场抓拍图片,小图" />
</el-form-item>
</el-col>
<el-col :span="24" class="mb20">
<el-form-item label="出场抓拍图片,小图" prop="realCapturePicPathExit">
<el-input v-model="form.realCapturePicPathExit" placeholder="请输入出场抓拍图片,小图"/>
</el-form-item>
</el-col>
<el-col :span="24" class="mb20">
<el-form-item label="出场抓拍图片,小图" prop="realCapturePicPathExit">
<el-input v-model="form.realCapturePicPathExit" placeholder="请输入出场抓拍图片,小图" />
</el-form-item>
</el-col>
</el-row>
</el-form>
<template #footer>
<span class="dialog-footer">
<el-button @click="visible = false">取消</el-button>
<el-button type="primary" @click="onSubmit" :disabled="loading">确认</el-button>
</span>
</template>
</el-dialog>
</el-row>
</el-form>
<template #footer>
<span class="dialog-footer">
<el-button @click="visible = false">取消</el-button>
<el-button type="primary" @click="onSubmit" :disabled="loading">确认</el-button>
</span>
</template>
</el-dialog>
</template>
<script setup lang="ts" name="CarAccessDialog">
@@ -191,34 +190,34 @@ const loading = ref(false)
// 提交表单数据
const form = reactive({
id:'',
carNum: '',
carOwnerId: '',
carStatus: '',
carType: '',
cardNumber: '',
enterItcDevChnId: '',
enterItcDevChnName: '',
enterMode: '',
enterSluiceDevChnId: '',
enterSluiceDevChnName: '',
enterTime: '',
enterWayCode: '',
exitCarNum: '',
exitItcDevChnId: '',
exitItcDevChnName: '',
exitSluiceDevChnId: '',
exitSluiceDevChnName: '',
exitTime: '',
exitWayCode: '',
originalPicPathEnter: '',
originalPicPathExit: '',
ownerType: '',
parkingLot: '',
parkingLotCode: '',
payedMoney: '',
realCapturePicPathEnter: '',
realCapturePicPathExit: '',
id: '',
carNum: '',
carOwnerId: '',
carStatus: '',
carType: '',
cardNumber: '',
enterItcDevChnId: '',
enterItcDevChnName: '',
enterMode: '',
enterSluiceDevChnId: '',
enterSluiceDevChnName: '',
enterTime: '',
enterWayCode: '',
exitCarNum: '',
exitItcDevChnId: '',
exitItcDevChnName: '',
exitSluiceDevChnId: '',
exitSluiceDevChnName: '',
exitTime: '',
exitWayCode: '',
originalPicPathEnter: '',
originalPicPathExit: '',
ownerType: '',
parkingLot: '',
parkingLotCode: '',
payedMoney: '',
realCapturePicPathEnter: '',
realCapturePicPathExit: '',
});
// 定义校验规则
@@ -231,9 +230,9 @@ const openDialog = (id: string) => {
form.id = ''
// 重置表单数据
nextTick(() => {
dataFormRef.value?.resetFields();
});
nextTick(() => {
dataFormRef.value?.resetFields();
});
// 获取carAccess信息
if (id) {
@@ -244,18 +243,18 @@ const openDialog = (id: string) => {
// 提交
const onSubmit = async () => {
const valid = await dataFormRef.value.validate().catch(() => {});
if (!valid) return false;
const valid = await dataFormRef.value.validate().catch(() => { });
if (!valid) return false;
try {
try {
loading.value = true;
form.id ? await putObj(form) : await addObj(form);
useMessage().success(form.id ? '修改成功' : '添加成功');
visible.value = false;
emit('refresh');
} catch (err: any) {
useMessage().error(err.msg);
} finally {
form.id ? await putObj(form) : await addObj(form);
useMessage().success(form.id ? '修改成功' : '添加成功');
visible.value = false;
emit('refresh');
} catch (err: any) {
useMessage().error(err.msg);
} finally {
loading.value = false;
}
};
+6 -1
View File
@@ -47,7 +47,12 @@
</el-table-column>
<el-table-column label="入场">
<el-table-column prop="carNum" min-width="100" label="入场车牌号" />
<el-table-column prop="carNum" min-width="100" label="入场车牌号">
<template #default="{ row }">
<span v-if="row.carNum && row.enterTime">{{ row.carNum }}</span>
<span v-else class="color-danger">未识别</span>
</template>
</el-table-column>
<el-table-column prop="enterMode" min-width="100" label="入场方式">
<template #default="{ row }">
<dict-tag :options="dh_enter_Mode" :value="row.enterMode" />