吉安感知网项目-前端
罗广辉
2026-01-30 c25b27b334ed3244746b663051643edffea95572
Merge remote-tracking branch 'origin/master'
7 files modified
129 ■■■■ changed files
applications/drone-command/src/components/map-container/device-map-container.vue 17 ●●●● patch | view | raw | blame | history
applications/drone-command/src/views/api.txt 77 ●●●●● patch | view | raw | blame | history
applications/drone-command/src/views/areaManage/sceneConfig/FormDiaLog.vue 6 ●●●● patch | view | raw | blame | history
applications/drone-command/src/views/areaManage/sceneConfig/index.vue 8 ●●●● patch | view | raw | blame | history
applications/drone-command/src/views/areaManage/sceneManage/sceneManageApi.js 9 ●●●●● patch | view | raw | blame | history
applications/task-work-order/src/views/orderView/organizational/agenciesManagement/index.vue 6 ●●●● patch | view | raw | blame | history
applications/task-work-order/src/views/orderView/organizational/zoningManagement/index.vue 6 ●●●● patch | view | raw | blame | history
applications/drone-command/src/components/map-container/device-map-container.vue
@@ -50,7 +50,9 @@
import { buildEllipsePositions } from '@/utils/cesium/shapeTools'
import { AREA_TYPE_STYLE_MAP, BUFFER_LEVEL_STYLES, DEFAULT_AREA_STYLE } from '@ztzf/constants'
import { fwAreaDivideListApi } from '@/views/areaManage/partition/partitionApi'
import { fwDefenseSceneListApi } from '@/views/areaManage/sceneConfig/sceneConfigApi'
import { fwDefenseSceneManageListApi } from '@/views/areaManage/sceneManage/sceneManageApi'
import { cockpitAggregationApi } from '@/api/dataCockpit'
import layerControlIcon from '@/assets/images/dataCockpit/layerControl.png'
import equipmentIcon from '@/assets/images/dataCockpit/map/equipment.png'
@@ -60,6 +62,7 @@
import jaGeojsonRaw from '@/assets/geojson/ja.geojson?raw'
import DevicePopup from './components/DevicePopup.vue'
import DronePopup from './components/DronePopup.vue'
import dayjs from 'dayjs'
import {
    createDroneTrackMaterial,
    createRadialGradientMaterial,
@@ -117,6 +120,7 @@
let droneTrackTickHandler = null
let droneTrackStartTime = null
let droneTrackRuntime = []
let mapReadyHandled = false
let favoritePulseRafId = null
let favoritePulseStartAt = 0
let favoritePulseElapsed = 0
@@ -968,7 +972,10 @@
const loadPartitions = async () => {
    if (!viewer) return
    try {
        const res = await fwAreaDivideListApi()
        const res = await fwAreaDivideListApi({
            isSetSceneManage: 1,
            flyTime: dayjs().format('YYYY-MM-DD HH:mm:ss'),
        })
        await renderPartitions(res?.data?.data ?? [])
    } catch (error) {
        await renderPartitions([])
@@ -1129,7 +1136,9 @@
const loadCommandPosts = async () => {
    try {
        const res = await fwDefenseSceneListApi()
        const res = await fwDefenseSceneManageListApi({
            time: dayjs().format('YYYY-MM-DD HH:mm:ss')
        })
        renderCommandPosts(res?.data?.data ?? [])
    } catch (error) {
        renderCommandPosts([])
@@ -1201,6 +1210,8 @@
}
const handleMapReady = ({ viewer: mapViewer, publicCesium: mapPublic }) => {
    if (mapReadyHandled) return
    mapReadyHandled = true
    viewer = mapViewer
    publicCesium = mapPublic
    ensureCockpitPrimitiveLayer()
applications/drone-command/src/views/api.txt
@@ -1,9 +1,9 @@
## 列表-不带分页
## 列表
**接口地址**:`/area/fwAreaDivide/list`
**接口地址**:`/area/fwDefenseSceneManage/list`
**请求方式**:`GET`
@@ -15,7 +15,7 @@
**响应数据类型**:`*/*`
**接口描述**:<p>传入filterSelected或sceneId或areaTypeKeys或isSetSceneManage或flyTime</p>
**接口描述**:<p>传入time</p>
@@ -27,11 +27,7 @@
| 参数名称 | 参数说明 | 请求类型    | 是否必须 | 数据类型 | schema |
| -------- | -------- | ----- | -------- | -------- | ------ |
|areaTypeKeys|区域类型key集合(逗号分隔)|query|false|string||
|filterSelected|是否过滤已被选择的数据(1过滤 0不过滤)|query|false|integer(int32)||
|flyTime|时间筛选(yyyy-MM-dd HH:mm:ss)|query|false|string(date-time)||
|isSetSceneManage|是否按场景管理过滤(1是 0或空否)|query|false|integer(int32)||
|sceneId|场景id|query|false|integer(int64)||
|time|时间筛选(yyyy-MM-dd HH:mm:ss)|query|false|string(date-time)||
**响应状态**:
@@ -39,7 +35,7 @@
| 状态码 | 说明 | schema |
| -------- | -------- | ----- | 
|200|OK|R«List«FwAreaDivideVO»»|
|200|OK|R«List«FwDefenseSceneManageVO»»|
|401|Unauthorized||
|403|Forbidden||
|404|Not Found||
@@ -51,28 +47,18 @@
| 参数名称 | 参数说明 | 类型 | schema |
| -------- | -------- | ----- |----- | 
|code|状态码|integer(int32)|integer(int32)|
|data|承载数据|array|FwAreaDivideVO|
|data|承载数据|array|FwDefenseSceneManageVO|
|&emsp;&emsp;areaCode|区域编码|string||
|&emsp;&emsp;areaName|区域名称|string||
|&emsp;&emsp;areaTypeKeys|区域面的类型集合逗号隔开|string||
|&emsp;&emsp;controlLevel|管控级别:日常/重点/严密|string||
|&emsp;&emsp;deviceIds|关联设备ID,逗号分隔|string||
|&emsp;&emsp;flyDateEnd|可飞行日期时间-结束|string(date-time)||
|&emsp;&emsp;flyDateStart|可飞行日期时间-开始|string(date-time)||
|&emsp;&emsp;fwAreaDivideExtList|面数据|array|FwAreaDivideExtVO|
|&emsp;&emsp;&emsp;&emsp;areaCode|区域编码|string||
|&emsp;&emsp;&emsp;&emsp;areaDivideId|关联主表区域划分ID|integer||
|&emsp;&emsp;&emsp;&emsp;areaTypeKey|区域类型数字字典key|string||
|&emsp;&emsp;&emsp;&emsp;areaTypeValue|区域类型数字字典value|string||
|&emsp;&emsp;&emsp;&emsp;geomJson|几何JSON|string||
|&emsp;&emsp;&emsp;&emsp;id|主键id|integer||
|&emsp;&emsp;id|主键id|integer(int64)||
|&emsp;&emsp;policeStationContactPerson|派出所联系人|string||
|&emsp;&emsp;policeStationContactPhone|派出所联系电话|string||
|&emsp;&emsp;policeStationId|关联派出所id|string||
|&emsp;&emsp;policeStationName|派出所名称|string||
|&emsp;&emsp;responseMechanism|响应机制内容|string||
|&emsp;&emsp;triggerCondition|触发条件|string||
|&emsp;&emsp;defenseLeader|防控负责人|string||
|&emsp;&emsp;defenseSceneId|关联场景配置ID|integer(int64)||
|&emsp;&emsp;defenseSceneName|场景配置名称|string||
|&emsp;&emsp;effectiveDateEnd|有效时间-结束|string(date-time)||
|&emsp;&emsp;effectiveDateStart|有效时间-开始|string(date-time)||
|&emsp;&emsp;id||integer(int64)||
|&emsp;&emsp;latitude|指挥点纬度|number(double)||
|&emsp;&emsp;leaderPhone|防控负责人电话|string||
|&emsp;&emsp;longitude|指挥点经度|number(double)||
|&emsp;&emsp;sceneName|场景名称|string||
|msg|返回消息|string||
|success|是否成功|boolean||
@@ -84,29 +70,16 @@
    "data": [
        {
            "areaCode": "",
            "areaName": "",
            "areaTypeKeys": "",
            "controlLevel": "",
            "deviceIds": "",
            "flyDateEnd": "",
            "flyDateStart": "",
            "fwAreaDivideExtList": [
                {
                    "areaCode": "",
                    "areaDivideId": 0,
                    "areaTypeKey": "",
                    "areaTypeValue": "",
                    "geomJson": "",
                    "id": 0
                }
            ],
            "defenseLeader": "",
            "defenseSceneId": 0,
            "defenseSceneName": "",
            "effectiveDateEnd": "",
            "effectiveDateStart": "",
            "id": 0,
            "policeStationContactPerson": "",
            "policeStationContactPhone": "",
            "policeStationId": "",
            "policeStationName": "",
            "responseMechanism": "",
            "triggerCondition": ""
            "latitude": 0,
            "leaderPhone": "",
            "longitude": 0,
            "sceneName": ""
        }
    ],
    "msg": "",
applications/drone-command/src/views/areaManage/sceneConfig/FormDiaLog.vue
@@ -23,7 +23,7 @@
                    <div class="detail-title">场景详情</div>
                    <el-row>
                        <el-col :span="24">
                            <div class="label">场景配置名称</div>
                            <div class="label">配置名称</div>
                            <div class="val">{{ formData.sceneName }}</div>
                        </el-col>
                        <el-col :span="24">
@@ -60,7 +60,7 @@
                    :disabled="readonly"
                    label-width="96px"
                >
                    <el-form-item label="场景配置名称" prop="sceneName">
                    <el-form-item label="配置名称" prop="sceneName">
                        <el-input
                            class="command-input"
                            v-model="formData.sceneName"
@@ -165,7 +165,7 @@
import { AREA_TYPE_STYLE_MAP, BUFFER_LEVEL_STYLES, DEFAULT_AREA_STYLE } from '@ztzf/constants'
const initForm = () => ({
    sceneName: '', // 场景配置名称
    sceneName: '', // 配置名称
    sceneType: '', // 场景类型
    deviceMode: '', // 设备模式
    areaDivideIds: '', // 关联区域ID
applications/drone-command/src/views/areaManage/sceneConfig/index.vue
@@ -1,7 +1,7 @@
<template>
    <basic-container>
        <el-form ref="queryParamsRef" :model="searchParams" class="command-page-history-search">
            <el-form-item label="场景配置名称" prop="sceneName">
            <el-form-item label="配置名称" prop="sceneName">
                <el-input
                    class="command-input"
                    v-model="searchParams.sceneName"
@@ -36,7 +36,7 @@
        </el-form>
        <div class="command-table-toolbar">
            <el-button :icon="Plus" color="#284FE3" type="primary" @click="openForm('add')">新增</el-button>
            <el-button :icon="Plus" color="#284FE3" type="primary" @click="openForm('add')">新增配置</el-button>
            <el-button :icon="Delete" color="#1A2652" :disabled="!selectedIds.length" @click="handleDelete()">删除</el-button>
        </div>
@@ -46,7 +46,7 @@
                    <el-table-column type="selection" width="46" />
                    <el-table-column type="index" show-overflow-tooltip width="64" label="序号" />
                    <el-table-column prop="sceneName" show-overflow-tooltip label="场景配置名称" />
                    <el-table-column prop="sceneName" show-overflow-tooltip label="配置名称" />
                    <el-table-column prop="sceneType" show-overflow-tooltip label="场景类型">
                        <template v-slot="{ row }">
                            {{ getDictLabel(row.sceneType, dictObj.CommandSceneType) }}
@@ -93,7 +93,7 @@
import { useRoute } from 'vue-router'
const initSearchParams = () => ({
    sceneName: '', // 场景配置名称
    sceneName: '', // 配置名称
    sceneType: '', // 场景类型
    current: 1, // 当前页
    size: 10, // 每页大小
applications/drone-command/src/views/areaManage/sceneManage/sceneManageApi.js
@@ -9,6 +9,15 @@
    })
}
// 查list
export const fwDefenseSceneManageListApi = params => {
    return request({
        url: `/drone-fw/area/fwDefenseSceneManage/list`,
        method: 'get',
        params,
    })
}
// 获取场景管理详情
export const fwDefenseSceneManageDetailApi = params => {
    return request({
applications/task-work-order/src/views/orderView/organizational/agenciesManagement/index.vue
@@ -47,8 +47,8 @@
    <div class="gd-table-toolbar">
      <el-button :icon="Plus" color="#4C34FF" type="primary" @click="openForm('add')">新增机构</el-button>
      <el-button :icon="Upload" @click="handleImport">导入机构</el-button>
      <el-button :icon="Download" :loading="exportLoading" :disabled="exportLoading" @click="handleExport">导出机构</el-button>
      <el-button :icon="Upload" @click="handleImport">机构导入</el-button>
      <el-button :icon="Download" :loading="exportLoading" :disabled="exportLoading" @click="handleExport">机构导出</el-button>
    </div>
    <div class="gd-table-container" v-loading="loading">
@@ -111,7 +111,7 @@
            type="primary" 
            @click="handleExportTemplate"
          >
            点击导出
            下载模板
          </el-button>
        </el-form-item>
        <el-form-item label="上传文件" prop="file">
applications/task-work-order/src/views/orderView/organizational/zoningManagement/index.vue
@@ -39,8 +39,8 @@
    <div class="gd-table-toolbar">
      <el-button :icon="Plus" color="#4C34FF" type="primary" @click="openForm('add')">新增区划</el-button>
      <el-button :icon="Upload" @click="handleImport">导入区划</el-button>
      <el-button :icon="Download" :loading="exportLoading" :disabled="exportLoading" @click="handleExport">导出区划</el-button>
      <el-button :icon="Upload" @click="handleImport">区划导入</el-button>
      <el-button :icon="Download" :loading="exportLoading" :disabled="exportLoading" @click="handleExport">区划导出</el-button>
    </div>
    <div class="gd-table-container" v-loading="loading">
@@ -110,7 +110,7 @@
            color="#F2F3F5"
            @click="handleExportTemplate"
          >
            点击导出
            下载模板
          </el-button>
        </el-form-item>
        <el-form-item label="上传文件" prop="file">