From c00b60838d5cd71c45e5c0884adeb3c64a878d7d Mon Sep 17 00:00:00 2001
From: chenyao <1219716595@qq.com>
Date: Tue, 03 Feb 2026 17:18:17 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'
---
applications/drone-command/src/views/api.txt | 90 ++++++++++++++++++++++-------
applications/drone-command/src/views/recordManage/historyTracks/TrajectoryDiaLog.vue | 26 ++++----
applications/drone-command/env/.env.development | 4
applications/drone-command/src/views/areaManage/sceneConfig/FormDiaLog.vue | 55 ++++++++++++++++++
4 files changed, 139 insertions(+), 36 deletions(-)
diff --git a/applications/drone-command/env/.env.development b/applications/drone-command/env/.env.development
index 783496d..67d4a44 100644
--- a/applications/drone-command/env/.env.development
+++ b/applications/drone-command/env/.env.development
@@ -2,7 +2,7 @@
# @Author : yuan
# @Date : 2026-01-31 14:34:31
# @LastEditors : yuan
- # @LastEditTime : 2026-02-03 14:21:15
+ # @LastEditTime : 2026-02-03 15:52:27
# @FilePath : \applications\drone-command\env\.env.development
# @Description :
# Copyright 2026 OBKoro1, All Rights Reserved.
@@ -16,7 +16,7 @@
#开发环境代理地址(推荐本地新建文件 .env.development.local 来进行覆盖)
# VITE_APP_URL=https://wrj.shuixiongit.com/api
-VITE_APP_URL=http://192.168.1.33
+VITE_APP_URL=http://192.168.1.168
#新大屏地址
VITE_APP_DASHBOARD_URL='https://wrj.shuixiongit.com/command-center-dashboard/'
diff --git a/applications/drone-command/src/views/api.txt b/applications/drone-command/src/views/api.txt
index 7626b6d..ab098cd 100644
--- a/applications/drone-command/src/views/api.txt
+++ b/applications/drone-command/src/views/api.txt
@@ -3,7 +3,7 @@
## 列表
-**接口地址**:`/area/fwPoliceStation/list`
+**接口地址**:`/device/fwDevice/list`
**请求方式**:`GET`
@@ -15,7 +15,7 @@
**响应数据类型**:`*/*`
-**接口描述**:<p>获取全部派出所</p>
+**接口描述**:<p>传入isAreaSelect、areaId、areaIds(多个用,隔开获取对应区域绑定设备数据)、status</p>
@@ -25,7 +25,13 @@
**请求参数**:
-暂无
+| 参数名称 | 参数说明 | 请求类型 | 是否必须 | 数据类型 | schema |
+| -------- | -------- | ----- | -------- | -------- | ------ |
+|areaId|areaId|query|false|integer(int64)||
+|areaIds|areaIds(多个用,隔开)|query|false|string||
+|isAreaSelect|isAreaSelect|query|false|integer(int32)||
+|isTrack|isTrack|query|false|integer(int32)||
+|status|status|query|false|integer(int32)||
**响应状态**:
@@ -33,7 +39,7 @@
| 状态码 | 说明 | schema |
| -------- | -------- | ----- |
-|200|OK|R«List«FwPoliceStationVO»»|
+|200|OK|R«List«FwDeviceVO»»|
|401|Unauthorized||
|403|Forbidden||
|404|Not Found||
@@ -45,21 +51,41 @@
| 参数名称 | 参数说明 | 类型 | schema |
| -------- | -------- | ----- |----- |
|code|状态码|integer(int32)|integer(int32)|
-|data|承载数据|array|FwPoliceStationVO|
-|  address|派出所地址|string||
-|  areaCode|区域编码|string||
-|  contactPerson|联系人|string||
-|  contactPhone|联系方式|string||
+|data|承载数据|array|FwDeviceVO|
+|  azimuth|方位角 0-360°|integer(int32)||
+|  batteryPct|电量百分比 0-100|integer(int32)||
+|  belongDept|所属部门id|integer(int64)||
+|  belongDeptName|所属部门名称|string||
+|  charger|负责人|string||
+|  contactPhone|联系电话|string||
|  createDept|创建部门|integer(int64)||
|  createTime|创建时间|string(date-time)||
|  createUser|创建人|integer(int64)||
-|  id|主键id|integer(int64)||
-|  latitude|纬度|number(double)||
-|  longitude|经度|number(double)||
-|  stationName|派出所名称|string||
-|  status|状态(0正常 1停用)|integer(int32)||
+|  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)||
|  updateTime|更新时间|string(date-time)||
|  updateUser|更新人|integer(int64)||
+|  workMode|工作模式:1.侦测中/2.信号干扰中/3.诱导驱离中/4.待机|string||
|msg|返回消息|string||
|success|是否成功|boolean||
@@ -70,23 +96,43 @@
"code": 0,
"data": [
{
- "address": "",
- "areaCode": "",
- "contactPerson": "",
+ "azimuth": 0,
+ "batteryPct": 0,
+ "belongDept": 0,
+ "belongDeptName": "",
+ "charger": "",
"contactPhone": "",
"createDept": 0,
"createTime": "",
"createUser": 0,
+ "detectTargetCnt": 0,
+ "deviceAtt": "",
+ "deviceModel": "",
+ "deviceName": "",
+ "deviceSn": "",
+ "deviceSpecification": "",
+ "deviceType": "",
+ "effectiveRangeKm": 0,
+ "elevation": 0,
"id": 0,
- "latitude": 0,
- "longitude": 0,
- "stationName": "",
+ "isShared": true,
+ "latitude": "",
+ "longitude": "",
+ "manufacturer": "",
+ "outTarget": "",
+ "purpose": "",
+ "remark": "",
+ "sceneName": "",
+ "shareId": 0,
+ "source": "",
"status": 0,
+ "trackStatus": 0,
"updateTime": "",
- "updateUser": 0
+ "updateUser": 0,
+ "workMode": ""
}
],
"msg": "",
"success": true
}
-```
\ No newline at end of file
+```
diff --git a/applications/drone-command/src/views/areaManage/sceneConfig/FormDiaLog.vue b/applications/drone-command/src/views/areaManage/sceneConfig/FormDiaLog.vue
index a7dc186..f11d973 100644
--- a/applications/drone-command/src/views/areaManage/sceneConfig/FormDiaLog.vue
+++ b/applications/drone-command/src/views/areaManage/sceneConfig/FormDiaLog.vue
@@ -50,6 +50,20 @@
</el-table>
</div>
</div>
+ <div class="detail-title">设备列表</div>
+ <div class="command-table-container">
+ <div class="command-table-content">
+ <el-table
+ class="command-table"
+ :data="deviceList"
+ :loading="deviceLoading"
+ row-key="id"
+ >
+ <el-table-column prop="deviceName" show-overflow-tooltip label="设备名称" />
+ <el-table-column prop="deviceType" show-overflow-tooltip label="设备类型" />
+ </el-table>
+ </div>
+ </div>
</div>
<el-form
@@ -128,6 +142,21 @@
</el-table>
</el-form-item>
</div>
+
+ <div class="detail-title">设备列表</div>
+ <div class="command-table-container">
+ <div class="command-table-content">
+ <el-table
+ class="command-table"
+ :data="deviceList"
+ :loading="deviceLoading"
+ row-key="id"
+ >
+ <el-table-column prop="deviceName" show-overflow-tooltip label="设备名称" />
+ <el-table-column prop="deviceType" show-overflow-tooltip label="设备类型" />
+ </el-table>
+ </div>
+ </div>
</el-form>
<div class="footer">
@@ -160,6 +189,7 @@
import CommonCesiumMap from '@/components/map-container/common-cesium-map.vue'
import * as Cesium from 'cesium'
import { fwAreaDivideDetailApi, fwAreaDivideListApi } from '../partition/partitionApi'
+import { fwDeviceListApi } from '@/views/basicManage/deviceStock/fwDevice'
import {
addBufferRadiusLabelEntity,
buildEllipsePositions,
@@ -189,6 +219,8 @@
const searchName = ref('')
const areaList = ref([]) // 关联区域列表
const selectedAreaRows = ref([]) //选中列表
+const deviceList = ref([]) // 设备列表
+const deviceLoading = ref(false)
const dictObj = inject('dictObj')
const mapRef = ref(null)
const route = useRoute()
@@ -242,6 +274,20 @@
if (areaList.value.length) return
const res = await fwAreaDivideListApi({ filterSelected: 1, sceneId: formData.value.id })
areaList.value = res?.data?.data ?? []
+}
+
+async function loadDeviceListByAreaIds(areaIdsKey) {
+ if (!areaIdsKey) {
+ deviceList.value = []
+ return
+ }
+ deviceLoading.value = true
+ try {
+ const res = await fwDeviceListApi({ areaIds: areaIdsKey })
+ deviceList.value = res?.data?.data ?? []
+ } finally {
+ deviceLoading.value = false
+ }
}
// 关联区域变更
@@ -514,6 +560,15 @@
}
watch(() => selectedAreaRows.value, renderSelectedAreas)
+const deviceAreaIdsKey = computed(() =>
+ selectedAreaRows.value.map(item => item?.id).filter(Boolean).join(',')
+)
+watch(
+ () => deviceAreaIdsKey.value,
+ val => {
+ loadDeviceListByAreaIds(val)
+ }
+)
watch(
() => visible.value,
val => {
diff --git a/applications/drone-command/src/views/recordManage/historyTracks/TrajectoryDiaLog.vue b/applications/drone-command/src/views/recordManage/historyTracks/TrajectoryDiaLog.vue
index 869bdae..36a6d36 100644
--- a/applications/drone-command/src/views/recordManage/historyTracks/TrajectoryDiaLog.vue
+++ b/applications/drone-command/src/views/recordManage/historyTracks/TrajectoryDiaLog.vue
@@ -9,7 +9,15 @@
>
<div class="dialog-container">
<div class="left-container">
- <div class="leftMap command-cesium" id="leftMapContainer"></div>
+ <CommonCesiumMap
+ ref="mapRef"
+ class="leftMap command-cesium"
+ :active="visible"
+ :flat-mode="false"
+ :terrain="true"
+ :layer-mode="4"
+ :boundary="false"
+ />
</div>
<div class="right-container">
<div class="header">
@@ -67,11 +75,10 @@
import { Close } from '@element-plus/icons-vue'
import { computed, nextTick, ref } from 'vue'
+import CommonCesiumMap from '@/components/map-container/common-cesium-map.vue'
import { fwDroneFlightRecordDetailApi } from '@/views/recordManage/historyTracks/fwDroneFlightRecord'
import { fwDroneFlightRecordDetailPageApi } from '@/views/recordManage/historyTracks/flyTrajectory'
-import { PublicCesium } from '@/utils/cesium/publicCesium'
import * as Cesium from 'cesium'
-import { flyVisual } from '@ztzf/utils'
import { ArrowLineMaterialProperty } from '@/utils/cesium/Material'
import droneIcon from '@/assets/images/dataCockpit/map/drone.png'
@@ -83,11 +90,11 @@
stayDuration: '',
})
let list = ref([])
-const emit = defineEmits(['success'])
const formData = ref(initForm()) // 表单数据
const visible = ref(false) // 弹框显隐
const dialogMode = ref('add') // 弹框模式
const dialogReadonly = computed(() => dialogMode.value === 'view')
+const mapRef = ref(null)
const dialogTitle = computed(() => {
if (dialogMode.value === 'edit') {
return '编辑'
@@ -170,14 +177,9 @@
let viewer, geometricSource, droneLineEntity, startDroneEntity
function initMap() {
if (viewer) return
- const publicCesiumInstance = new PublicCesium({
- dom: 'leftMapContainer',
- flatMode: false,
- terrain: true,
- layerMode: 4,
- boundary: false,
- })
- viewer = publicCesiumInstance.getViewer()
+ const map = mapRef.value?.getMap?.()
+ if (!map?.viewer) return
+ viewer = map.viewer
geometricSource = new Cesium.CustomDataSource('geometricSource')
viewer.dataSources.add(geometricSource)
}
--
Gitblit v1.9.3