applications/drone-command/src/views/api.txt
@@ -1,9 +1,9 @@ ## 列表-多边形过滤 ## 根据多边形区域查询派出所 **接口地址**:`/device/fwDevice/listByPolygons` **接口地址**:`/area/fwPoliceStation/queryByPolygons` **请求方式**:`POST` @@ -15,7 +15,7 @@ **响应数据类型**:`*/*` **接口描述**:<p>传入isAreaSelect、areaId、status、isTrack、polygons</p> **接口描述**:<p>传入多边形WKT字符串集合</p> @@ -24,11 +24,9 @@ ```javascript { "areaId": 0, "isAreaSelect": 0, "isTrack": 0, "polygons": [], "status": 0 "polygons": [ "POLYGON((114.96898636473107 27.11156483383477,114.97972069576815 27.111564833834766,114.97972069576815 27.120473921808035,114.96898636473107 27.120473921808035,114.96898636473107 27.11156483383477))" ] } ``` @@ -41,12 +39,8 @@ | 参数名称 | 参数说明 | 请求类型 | 是否必须 | 数据类型 | schema | | -------- | -------- | ----- | -------- | -------- | ------ | |query|设备列表多边形查询参数|body|true|FwDevicePolygonQueryDTO|FwDevicePolygonQueryDTO| |  areaId|区域id||false|integer(int64)|| |  isAreaSelect|是否区域选择(1过滤)||false|integer(int32)|| |  isTrack|是否出入库 1已出库 2未出库||false|integer(int32)|| |  polygons|多边形WKT集合||false|array|string| |  status|状态||false|integer(int32)|| |dto|派出所多边形区域查询入参|body|true|FwPoliceStationPolygonQueryDTO对象|FwPoliceStationPolygonQueryDTO对象| |  polygons|多边形WKT字符串集合||true|array|string| **响应状态**: @@ -54,7 +48,7 @@ | 状态码 | 说明 | schema | | -------- | -------- | ----- | |200|OK|R«List«FwDeviceVO»»| |200|OK|R«List«FwPoliceStationVO»»| |201|Created|| |401|Unauthorized|| |403|Forbidden|| @@ -67,41 +61,21 @@ | 参数名称 | 参数说明 | 类型 | schema | | -------- | -------- | ----- |----- | |code|状态码|integer(int32)|integer(int32)| |data|承载数据|array|FwDeviceVO| |  azimuth|方位角 0-360°|integer(int32)|| |  batteryPct|电量百分比 0-100|integer(int32)|| |  belongDept|所属部门id|integer(int64)|| |  belongDeptName|所属部门名称|string|| |  charger|负责人|string|| |  contactPhone|联系电话|string|| |data|承载数据|array|FwPoliceStationVO| |  address|派出所地址|string|| |  areaCode|区域编码|string|| |  contactPerson|联系人|string|| |  contactPhone|联系方式|string|| |  createDept|创建部门|integer(int64)|| |  createTime|创建时间|string(date-time)|| |  createUser|创建人|integer(int64)|| |  detectTargetCnt|侦测目标数量|integer(int32)|| |  deviceAtt|设备属性(无线电/光电/雷达)|string|| |  deviceModel|型号|string|| |  deviceName|设备名称|string|| |  deviceSn|设备sn|string|| |  deviceSpecification|规格|string|| |  deviceType|设备类型(察打一体/便捷侦测箱/反制枪)|string|| |  effectiveRangeKm|有效范围 km|number|| |  elevation|俯仰角 -90-+90°|integer(int32)|| |  id|主键|integer(int64)|| |  isShared|是否被共享给当前机构|boolean|| |  latitude|纬度|string|| |  longitude|经度|string|| |  manufacturer|生产厂商|string|| |  outTarget|出库去向|string|| |  purpose|用途|string|| |  remark|备注|string|| |  sceneName|场景名称|string|| |  shareId|共享记录ID|integer(int64)|| |  source|来源|string|| |  status|运行状态(0:在线/1:离线/2:故障/3:报废)|integer(int32)|| |  trackStatus|设备出入库状态 0未出库1已出库|integer(int32)|| |  id|主键id|integer(int64)|| |  latitude|纬度|number(double)|| |  longitude|经度|number(double)|| |  stationName|派出所名称|string|| |  status|状态(0正常 1停用)|integer(int32)|| |  updateTime|更新时间|string(date-time)|| |  updateUser|更新人|integer(int64)|| |  workMode|工作模式:1.侦测中/2.信号干扰中/3.诱导驱离中/4.待机|string|| |msg|返回消息|string|| |success|是否成功|boolean|| @@ -112,40 +86,20 @@ "code": 0, "data": [ { "azimuth": 0, "batteryPct": 0, "belongDept": 0, "belongDeptName": "", "charger": "", "address": "", "areaCode": "", "contactPerson": "", "contactPhone": "", "createDept": 0, "createTime": "", "createUser": 0, "detectTargetCnt": 0, "deviceAtt": "", "deviceModel": "", "deviceName": "", "deviceSn": "", "deviceSpecification": "", "deviceType": "", "effectiveRangeKm": 0, "elevation": 0, "id": 0, "isShared": true, "latitude": "", "longitude": "", "manufacturer": "", "outTarget": "", "purpose": "", "remark": "", "sceneName": "", "shareId": 0, "source": "", "latitude": 0, "longitude": 0, "stationName": "", "status": 0, "trackStatus": 0, "updateTime": "", "updateUser": 0, "workMode": "" "updateUser": 0 } ], "msg": "", applications/drone-command/src/views/areaManage/partition/FormDiaLog.vue
@@ -226,7 +226,7 @@ <script setup> import { Close } from '@element-plus/icons-vue' import { computed, inject, nextTick, onBeforeUnmount, onMounted, ref, watch } from 'vue' import { computed, inject, nextTick, onBeforeUnmount, ref, watch } from 'vue' import { ElMessage } from 'element-plus' import { fwAreaDivideDetailApi, fwAreaDivideSubmitApi } from './partitionApi' import { saveOperationLog } from '@ztzf/apis' @@ -248,7 +248,7 @@ } from '@/utils/cesium/deviceRange' import * as Cesium from 'cesium' import { AREA_TYPE_STYLE_MAP, BUFFER_LEVEL_STYLES, DEFAULT_AREA_STYLE } from '@ztzf/constants' import { fwPoliceStationListApi } from '@/views/areaManage/precinctInfo/precinctInfoApi' import { fwPoliceStationQueryByPolygonsApi } from '@/views/areaManage/precinctInfo/precinctInfoApi' import { fwDeviceListByPolygonsApi } from '@/views/basicManage/deviceStock/fwDevice' import polygonIcon from '@/assets/images/areaMap/polygon.png' import rectIcon from '@/assets/images/areaMap/rect.png' @@ -312,6 +312,8 @@ let deviceRangeRenderToken = 0 let deviceListTimer = null let deviceListRequestToken = 0 let policeStationListTimer = null let policeStationRequestToken = 0 const rules = { areaName: fieldRules(true, 50), @@ -418,6 +420,10 @@ clearTimeout(deviceListTimer) deviceListTimer = null } if (policeStationListTimer) { clearTimeout(policeStationListTimer) policeStationListTimer = null } viewEntity && viewer?.entities?.remove(viewEntity) viewEntity = null clearActiveTool() @@ -438,6 +444,7 @@ () => { if (isDialogInitializing.value) return queueDeviceListRefresh() queuePoliceStationRefresh() }, { deep: true } ) @@ -498,6 +505,11 @@ if (deviceTableRef.value) { deviceTableRef.value.clearSelection() } } function clearPoliceStationState () { policeStationOptions.value = [] formData.value.policeStationId = '' } function formatWktNumber (value) { @@ -1176,9 +1188,36 @@ } // 获取派出所列表 async function getPoliceStationList () { const res = await fwPoliceStationListApi() function queuePoliceStationRefresh () { if (!visible.value) return if (policeStationListTimer) { clearTimeout(policeStationListTimer) } policeStationListTimer = setTimeout(() => { policeStationListTimer = null void getPoliceStationListByPolygons() }, 200) } async function getPoliceStationListByPolygons () { if (!visible.value) return const polygons = resolveShapePolygonsWkt() if (!polygons.length) { clearPoliceStationState() return } policeStationRequestToken += 1 const requestToken = policeStationRequestToken const res = await fwPoliceStationQueryByPolygonsApi({ polygons }) if (requestToken !== policeStationRequestToken) return policeStationOptions.value = res?.data?.data ?? [] await nextTick() const matched = policeStationOptions.value.find( item => String(item.id) === String(formData.value.policeStationId) ) if (!matched) { formData.value.policeStationId = '' } } // 获取设备列表 @@ -1281,6 +1320,7 @@ formData.value = dialogMode.value === 'add' ? initForm() : row selectedDeviceRows.value = [] deviceOptions.value = [] policeStationOptions.value = [] shapeList.value = [] activeShapeId.value = null activeAreaType.value = '' @@ -1313,17 +1353,18 @@ } isDialogInitializing.value = false queueDeviceListRefresh() queuePoliceStationRefresh() } onMounted(() => { getPoliceStationList() }) onBeforeUnmount(() => { if (deviceListTimer) { clearTimeout(deviceListTimer) deviceListTimer = null } if (policeStationListTimer) { clearTimeout(policeStationListTimer) policeStationListTimer = null } hideTypePanel() }) applications/drone-command/src/views/areaManage/precinctInfo/precinctInfoApi.js
@@ -18,6 +18,15 @@ }) } // 多边形区域查询派出所 export const fwPoliceStationQueryByPolygonsApi = data => { return request({ url: `/drone-fw/area/fwPoliceStation/queryByPolygons`, method: 'post', data, }) } // 增加或更新 export const fwPoliceStationSubmitApi = data => { return request({