Browse Source

围栏报警处理

master
xh 1 week ago
parent
commit
a56baedeef
  1. 30
      web/src/api/gas/fencealarm/index.ts
  2. 50
      web/src/views/gas/fencealarm/FenceAlarmForm.vue
  3. 3
      web/src/views/gas/fencealarm/index.vue
  4. 2
      web/src/views/gas/handalarm/HandAlarmForm.vue
  5. 2
      web/src/views/gas/offlineAlarm/HandAlarmForm.vue

30
web/src/api/gas/fencealarm/index.ts

@ -1,27 +1,31 @@
import request from '@/config/axios' import request from '@/config/axios'
import type { Dayjs } from 'dayjs'
/** 分页结果 */
interface PagedResult<T> {
total: number // 总记录数
list: T[] // 记录列表
}
/** GAS手持探测器围栏报警信息 */ /** GAS手持探测器围栏报警信息 */
export interface FenceAlarm { export interface FenceAlarm {
id: number // 主键ID
id?: number // 主键ID
detectorId?: number // 探头ID detectorId?: number // 探头ID
fenceId: number // 围栏id
type: number // 报警类型
picX: number // 在区域图X坐标值
picY: number // 在区域图X坐标值
distance: number // 超出围栏米数
maxDistance: number // 最远超出米数
tAlarmStart: string | Dayjs // 开始时间
tAlarmEnd: string | Dayjs // 结束时间
status: number // 状态(0:待处理;1:处理中;1:已处理)
remark: string // 备注
// fenceId?: number // 围栏id
type?: number // 报警类型
picX?: number // 在区域图X坐标值
picY?: number // 在区域图X坐标值
distance?: number // 超出围栏米数
maxDistance?: number // 最远超出米数
talarmStart?: number // 开始时间
talarmEnd?: number // 结束时间
status?: number // 状态(0:待处理;1:处理中;1:已处理)
remark?: string // 备注
} }
// GAS手持探测器围栏报警 API // GAS手持探测器围栏报警 API
export const FenceAlarmApi = { export const FenceAlarmApi = {
// 查询GAS手持探测器围栏报警分页 // 查询GAS手持探测器围栏报警分页
getFenceAlarmPage: async (params: any) => { getFenceAlarmPage: async (params: any) => {
return await request.get({ url: `/gas/fence-alarm/page`, params })
return await request.get<PagedResult<FenceAlarm>>({ url: `/gas/fence-alarm/page`, params })
}, },
// 查询GAS手持探测器围栏报警详情 // 查询GAS手持探测器围栏报警详情

50
web/src/views/gas/fencealarm/FenceAlarmForm.vue

@ -17,7 +17,7 @@
/> />
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="围栏" prop="fenceId">
<!-- <el-form-item label="围栏" prop="fenceId">
<el-select v-model="formData.fenceId" placeholder="请选择围栏"> <el-select v-model="formData.fenceId" placeholder="请选择围栏">
<el-option <el-option
v-for="item in props.fences" v-for="item in props.fences"
@ -26,35 +26,21 @@
:value="item.id" :value="item.id"
/> />
</el-select> </el-select>
</el-form-item>
<el-form-item label="报警类型" prop="type">
<el-select v-model="formData.type" placeholder="请选择报警类型">
<el-option
v-for="item in props.alarmTypes"
:key="item.id"
:label="item.name"
:value="item.id"
/>
</el-select>
</el-form-item>
</el-form-item> -->
<el-form-item label="超出围栏米数" prop="distance"> <el-form-item label="超出围栏米数" prop="distance">
<el-input-number v-model="formData.distance" />
<el-input-number v-model="formData.distance" class="w-[100%]" />
</el-form-item> </el-form-item>
<el-form-item label="最远超出米数" prop="maxDistance"> <el-form-item label="最远超出米数" prop="maxDistance">
<el-input-number v-model="formData.maxDistance" /> <el-input-number v-model="formData.maxDistance" />
</el-form-item> </el-form-item>
<el-form-item label="开始时间" prop="tAlarmStart"> <el-form-item label="开始时间" prop="tAlarmStart">
<el-date-picker
v-model="formData.tAlarmStart"
type="date"
value-format="x"
placeholder="选择开始时间"
/>
{{ formData.talarmStart ? formatDate(formData.talarmStart) : '-' }}
</el-form-item> </el-form-item>
<el-form-item label="结束时间" prop="tAlarmEnd"> <el-form-item label="结束时间" prop="tAlarmEnd">
<el-date-picker <el-date-picker
v-model="formData.tAlarmEnd"
type="date"
v-model="formData.talarmEnd"
type="datetime"
value-format="x" value-format="x"
placeholder="选择结束时间" placeholder="选择结束时间"
/> />
@ -83,9 +69,11 @@
<script setup lang="ts"> <script setup lang="ts">
import { FenceAlarmApi, FenceAlarm } from '@/api/gas/fencealarm' import { FenceAlarmApi, FenceAlarm } from '@/api/gas/fencealarm'
import { DICT_TYPE, getIntDictOptions } from '@/utils/dict' import { DICT_TYPE, getIntDictOptions } from '@/utils/dict'
import { HandDetector } from '@/api/gas/handdetector'
import { Fence } from '@/api/gas/fence'
import { AlarmType } from '@/api/gas/alarmtype'
import { formatDate } from '@/utils/formatTime'
import type { HandDetector } from '@/api/gas/handdetector'
import type { Fence } from '@/api/gas/fence'
import type { AlarmType } from '@/api/gas/alarmtype'
/** GAS手持探测器围栏报警 表单 */ /** GAS手持探测器围栏报警 表单 */
defineOptions({ name: 'FenceAlarmForm' }) defineOptions({ name: 'FenceAlarmForm' })
@ -110,17 +98,17 @@ const dialogVisible = ref(false) // 弹窗的是否展示
const dialogTitle = ref('') // const dialogTitle = ref('') //
const formLoading = ref(false) // 12 const formLoading = ref(false) // 12
const formType = ref('') // create - update - const formType = ref('') // create - update -
const formData = ref({
const formData = ref<FenceAlarm>({
id: undefined, id: undefined,
detectorId: undefined, detectorId: undefined,
fenceId: undefined,
// fenceId: undefined,
type: undefined, type: undefined,
picX: undefined, picX: undefined,
picY: undefined, picY: undefined,
distance: undefined, distance: undefined,
maxDistance: undefined, maxDistance: undefined,
tAlarmStart: undefined,
tAlarmEnd: undefined,
talarmStart: undefined,
talarmEnd: undefined,
status: undefined, status: undefined,
remark: undefined remark: undefined
}) })
@ -178,14 +166,14 @@ const resetForm = () => {
formData.value = { formData.value = {
id: undefined, id: undefined,
detectorId: undefined, detectorId: undefined,
fenceId: undefined,
// fenceId: undefined,
type: undefined, type: undefined,
picX: undefined, picX: undefined,
picY: undefined, picY: undefined,
distance: undefined, distance: undefined,
maxDistance: undefined, maxDistance: undefined,
tAlarmStart: undefined,
tAlarmEnd: undefined,
talarmStart: undefined,
talarmEnd: undefined,
status: undefined, status: undefined,
remark: undefined remark: undefined
} }

3
web/src/views/gas/fencealarm/index.vue

@ -184,6 +184,7 @@
type="primary" type="primary"
@click="openForm('update', scope.row.id)" @click="openForm('update', scope.row.id)"
v-hasPermi="['gas:fence-alarm:update']" v-hasPermi="['gas:fence-alarm:update']"
v-show="scope.row.status !== 2"
> >
编辑 编辑
</el-button> </el-button>
@ -310,7 +311,7 @@ const openForm = (type: string, id?: number) => {
const checkedIds = ref<number[]>([]) const checkedIds = ref<number[]>([])
const handleRowCheckboxChange = (records: FenceAlarm[]) => { const handleRowCheckboxChange = (records: FenceAlarm[]) => {
checkedIds.value = records.map((item) => item.id)
checkedIds.value = records.map((item) => item.id as number)
} }
/** 导出按钮操作 */ /** 导出按钮操作 */

2
web/src/views/gas/handalarm/HandAlarmForm.vue

@ -37,7 +37,7 @@
{{ formData.valarmMaximum }} {{ formData.unit }} {{ formData.valarmMaximum }} {{ formData.unit }}
</el-form-item> </el-form-item>
<el-form-item label="开始时间" prop="talarmStart"> <el-form-item label="开始时间" prop="talarmStart">
{{ formData.talarmStart ? formatDate(formData.talarmStart) : '' }}
{{ formData.talarmStart ? formatDate(formData.talarmStart) : '-' }}
</el-form-item> </el-form-item>
<el-form-item label="结束时间" prop="talarmEnd"> <el-form-item label="结束时间" prop="talarmEnd">
<el-date-picker <el-date-picker

2
web/src/views/gas/offlineAlarm/HandAlarmForm.vue

@ -27,7 +27,7 @@
</el-form-item> </el-form-item>
<el-form-item label="开始时间" prop="talarmStart"> <el-form-item label="开始时间" prop="talarmStart">
{{ formatDate(formData.talarmStart) }}
{{ formData.talarmStart ? formatDate(formData.talarmStart) : '-' }}
</el-form-item> </el-form-item>
<el-form-item label="结束时间" prop="talarmEnd"> <el-form-item label="结束时间" prop="talarmEnd">
<el-date-picker <el-date-picker

Loading…
Cancel
Save