吉安感知网项目-前端
罗广辉
2026-01-13 bc5b215400b0022e7a416aca4522cb699830146d
feat: 改为list
5 files modified
80 ■■■■■ changed files
applications/drone-command/src/views/areaManage/partition/FormDiaLog.vue 28 ●●●●● patch | view | raw | blame | history
applications/drone-command/src/views/areaManage/partition/index.vue 2 ●●● patch | view | raw | blame | history
applications/drone-command/src/views/areaManage/partition/partitionApi.js 28 ●●●●● patch | view | raw | blame | history
applications/drone-command/src/views/areaManage/precinctInfo/precinctInfoApi.js 11 ●●●●● patch | view | raw | blame | history
applications/drone-command/src/views/basicManage/deviceStock/fwDevice.js 11 ●●●●● patch | view | raw | blame | history
applications/drone-command/src/views/areaManage/partition/FormDiaLog.vue
@@ -12,7 +12,7 @@
                            <div>区域位置: {{ formatLocation(formData) }}</div>
                        </el-col>
                        <el-col :span="24">
                            <div>区域面积: {{ formData.areaSize }}㎡</div>
                            <div>区域面积: {{ formData.areaSize }}k㎡</div>
                        </el-col>
                        <el-col :span="24">
                            <div>区域类型: {{ getDictLabel(formData.areaType, dictObj.areaType) }}</div>
@@ -47,9 +47,7 @@
                            </el-form-item>
                        </el-col>
                        <el-col :span="24">
                            <el-form-item label="区域面积" prop="areaSize">
                                {{ formData.areaSize }}㎡
                            </el-form-item>
                            <el-form-item label="区域面积" prop="areaSize">{{ formData.areaSize }}k㎡</el-form-item>
                        </el-col>
                        <el-col :span="24">
                            <el-form-item label="区域类型" prop="areaType">
@@ -133,13 +131,18 @@
<script setup>
import { computed, inject, nextTick, onMounted, ref, watch } from 'vue'
import { ElMessage } from 'element-plus'
import { fwAreaDivideDetailApi, fwAreaDivideSubmitApi, fwDevicePageApi, fwPoliceStationPageApi } from './partitionApi'
import {
    fwAreaDivideDetailApi,
    fwAreaDivideSubmitApi,
} from './partitionApi'
import { fieldRules, getDictLabel } from '@ztzf/utils'
import { PublicCesium } from '@/utils/cesium/publicCesium'
import { DrawPolygon } from '@/utils/cesium/DrawPolygon'
import { cartesian3Convert } from '@/utils/cesium/mapUtil'
import * as turf from '@turf/turf'
import * as Cesium from 'cesium'
import { fwPoliceStationListApi } from '@/views/areaManage/precinctInfo/precinctInfoApi'
import { fwDeviceListApi } from '@/views/basicManage/deviceStock/fwDevice'
const initForm = () => ({
    areaName: '', // 区域名称
@@ -217,7 +220,7 @@
// 格式化区域位置
function formatLocation(row) {
    if (row?.longitude == null || row?.latitude == null) return ''
    return `${_.round(row.longitude,6)}, ${_.round(row.latitude,6)}`
    return `${_.round(row.longitude, 6)}, ${_.round(row.latitude, 6)}`
}
// 格式化可飞行时间段
@@ -248,7 +251,8 @@
        [...pointList.map(item => [item.longitude, item.latitude]), [pointList[0].longitude, pointList[0].latitude]],
    ])
    const center = turf.centerOfMass(polygon)
    formData.value.areaSize = _.round(turf.area(polygon), 2)
    const areaSqm = turf.area(polygon) // 平方米
    formData.value.areaSize = _.round(areaSqm / 1_000_000, 2) // 平方千米
    formData.value.longitude = center.geometry.coordinates[0]
    formData.value.latitude = center.geometry.coordinates[1]
}
@@ -310,14 +314,14 @@
// 获取派出所列表
async function getPoliceStationList() {
    const res = await fwPoliceStationPageApi({ current: 1, size: 9999 })
    policeStationOptions.value = res?.data?.data?.records ?? []
    const res = await fwPoliceStationListApi()
    policeStationOptions.value = res?.data?.data ?? []
}
// 获取设备列表
async function getDeviceList() {
    const res = await fwDevicePageApi({ current: 1, size: 9999 })
    deviceOptions.value = res?.data?.data?.records ?? []
    const res = await fwDeviceListApi({ isAreaSelect: 1 })
    deviceOptions.value = res?.data?.data ?? []
}
// 打开弹框
@@ -350,7 +354,7 @@
<style scoped lang="scss">
.bodyBox {
    display: flex;
    height: 800px;
    height: 600px;
    .leftMap {
        width: 70%;
        height: 100%;
applications/drone-command/src/views/areaManage/partition/index.vue
@@ -40,7 +40,7 @@
                    {{ formatLocation(row) }}
                </template>
            </el-table-column>
            <el-table-column prop="areaSize" label="区域面积" />
            <el-table-column prop="areaSize" label="区域面积(k㎡)" />
            <el-table-column prop="areaType" label="区域类型">
                <template v-slot="{ row }">
                    {{ getDictLabel(row.areaType, dictObj.areaType) }}
applications/drone-command/src/views/areaManage/partition/partitionApi.js
@@ -1,9 +1,17 @@
import request from '@/axios'
// 查list
// 查page
export const fwAreaDividePageApi = params => {
    return request({
        url: `/drone-fw/area/fwAreaDivide/page`,
        method: 'get',
        params,
    })
}
// 查list
export const fwAreaDivideListApi = params => {
    return request({
        url: `/drone-fw/area/fwAreaDivide/list`,
        method: 'get',
        params,
    })
@@ -31,24 +39,6 @@
export const fwAreaDivideDetailApi = params => {
    return request({
        url: `/drone-fw/area/fwAreaDivide/detail`,
        method: 'get',
        params,
    })
}
// 关联派出所列表
export const fwPoliceStationPageApi = params => {
    return request({
        url: `/drone-fw/area/fwPoliceStation/page`,
        method: 'get',
        params,
    })
}
// 关联设备列表
export const fwDevicePageApi = params => {
    return request({
        url: `/drone-fw/device/fwDevice/page`,
        method: 'get',
        params,
    })
applications/drone-command/src/views/areaManage/precinctInfo/precinctInfoApi.js
@@ -1,6 +1,6 @@
import request from '@/axios'
// 查list
// 查page
export const fwPoliceStationPageApi = params => {
    return request({
        url: `/drone-fw/area/fwPoliceStation/page`,
@@ -9,6 +9,15 @@
    })
}
// 查list
export const fwPoliceStationListApi = params => {
    return request({
        url: `/drone-fw/area/fwPoliceStation/list`,
        method: 'get',
        params,
    })
}
// 增加或更新
export const fwPoliceStationSubmitApi = data => {
    return request({
applications/drone-command/src/views/basicManage/deviceStock/fwDevice.js
@@ -1,6 +1,6 @@
import request from '@/axios'
// 查list
// 查page
export const fwDevicePageApi = params => {
    return request({
        url: `/drone-fw/device/fwDevice/page`,
@@ -9,6 +9,15 @@
    })
}
// 查list
export const fwDeviceListApi = params => {
    return request({
        url: `/drone-fw/device/fwDevice/list`,
        method: 'get',
        params,
    })
}
// 增加或更新
export const fwDeviceSubmitApi = data => {
    return request({