吉安感知网项目-前端
张含笑
2026-01-12 b1631e475314229d3365ad7aa6397c7b70b1a8fd
Merge remote-tracking branch 'origin/master'
5 files modified
62 ■■■■■ changed files
applications/drone-command/src/main.js 4 ●●● patch | view | raw | blame | history
applications/drone-command/src/views/aICrudTemplate/FormDiaLog.vue 10 ●●●● patch | view | raw | blame | history
applications/drone-command/src/views/aICrudTemplate/index.vue 6 ●●●● patch | view | raw | blame | history
applications/drone-command/src/views/areaManage/precinctInfo/FormDiaLog.vue 34 ●●●●● patch | view | raw | blame | history
applications/drone-command/src/views/areaManage/precinctInfo/index.vue 8 ●●●●● patch | view | raw | blame | history
applications/drone-command/src/main.js
@@ -41,6 +41,7 @@
import dayjs from 'dayjs'
import 'styles/common.scss'
import * as Cesium from 'cesium'
import _ from 'lodash'
// 视频回放
import 'video.js/dist/video-js.css'
@@ -81,13 +82,14 @@
    location.reload()
} else {
    if (localStorage.getItem("isReload")) {
        localStorage.removeItem("isReload")
        localStorage.removeItem('isReload')
    }
}
window.$crudCommon = crudCommon
window.axios = axios
window._ = _
const app = createApp(App)
for (const [key, component] of Object.entries(ElementPlusIconsVue)) {
    app.component(key, component)
applications/drone-command/src/views/aICrudTemplate/FormDiaLog.vue
@@ -1,5 +1,5 @@
<template>
    <el-dialog v-model="visible" :title="titleEnum[dialogMode]" @closed="handleClosed" destroy-on-close>
    <el-dialog v-model="visible" :title="titleEnum[dialogMode]" :close-on-click-modal="false">
        <div v-if="readonly">
            <el-row>
                <el-col :span="12">
@@ -123,7 +123,7 @@
const emit = defineEmits(['success'])
const formRef = ref(null) // 表单实例
const formData = ref(initForm()) // 表单数据
const visible = ref(false) // 弹框显隐
const visible = defineModel() // 弹框显隐
const dialogMode = ref('add') // 弹框模式
const submitting = ref(false) // 提交中
const userList = ref([]) // 用户列表
@@ -179,15 +179,9 @@
    formData.value = res?.data?.data ?? {}
}
// 关闭后重置
function handleClosed() {
    formData.value = initForm()
}
// 打开弹框
async function open({ mode, row } = {}) {
    dialogMode.value = mode || 'add'
    visible.value = true
    formData.value = dialogMode.value === 'add' ? initForm() : row
    dialogMode.value !== 'add' && (await loadDetail())
}
applications/drone-command/src/views/aICrudTemplate/index.vue
@@ -88,7 +88,7 @@
            />
        </div>
        <FormDiaLog ref="dialogRef" @success="getList" />
        <FormDiaLog v-if="dialogVisible" v-model="dialogVisible" ref="dialogRef" @success="getList" />
    </basic-container>
</template>
@@ -115,6 +115,7 @@
const selectedIds = ref([]) // 勾选的设备ID列表
const queryParamsRef = ref(null) // 查询表单实例
const dialogRef = ref(null) // 弹框实例
const dialogVisible = ref(null) // 弹框实例
const dictObj = ref({
    deviceType: [], //设备类型
    deviceAtt: [], //设备属性
@@ -160,11 +161,13 @@
// 查看
function handleView(row) {
    dialogVisible.value = true
    dialogRef.value?.open({ mode: 'view', row: { ...row } })
}
// 编辑
function handleEdit(row) {
    dialogVisible.value = true
    dialogRef.value?.open({ mode: 'edit', row: { ...row } })
}
@@ -212,6 +215,7 @@
// 新增
function handleAdd() {
    dialogVisible.value = true
    dialogRef.value?.open({ mode: 'add' })
}
applications/drone-command/src/views/areaManage/precinctInfo/FormDiaLog.vue
@@ -29,18 +29,15 @@
                    </el-form-item>
                </el-col>
                <el-col :span="12">
                    <el-form-item label="位置" prop="longitude">
                        <el-button @click="selectLocation">{{ formData.longitude }},{{ formData.longitude }}</el-button>
                    </el-form-item>
                </el-col>
                <el-col :span="12">
                    <el-form-item label="位置" prop="address">
                        <el-input v-model="formData.address" maxlength="50" placeholder="请输入" clearable />
                    </el-form-item>
                </el-col>
                <el-col :span="12">
                    <el-form-item label="联系方式" prop="contactPhone">
                        <el-input v-model="formData.contactPhone" maxlength="50" placeholder="请输入" clearable />
                    </el-form-item>
                </el-col>
                <el-col :span="24">
                    <el-form-item label="位置" prop="longitude">
                        <el-button @click="selectLocation" style="width: 100%">
                            {{ formData.longitude }}, {{ formData.longitude }}, {{ formData.address }}
                        </el-button>
                    </el-form-item>
                </el-col>
            </el-row>
@@ -69,6 +66,7 @@
import { fieldRules } from '@ztzf/utils'
import { PublicCesium } from '@/utils/cesium/publicCesium'
import * as Cesium from 'cesium'
import axios from 'axios'
const initForm = () => ({
    address: '', // 位置
@@ -185,10 +183,22 @@
    visible1.value = false
}
async function getLocationName() {
    const tk = import.meta.env.VITE_APP_TDT_TOKEN
    const { latitude, longitude } = tempLocation.value
    const http = axios.create({ withCredentials: false })
    const res = await http({
        url: `https://api.tianditu.gov.cn/geocoder?postStr={'lon':${longitude},'lat':${latitude},'ver':1}&tk=${tk}`,
        method: 'get',
    })
    formData.value.address = res.data.result.formatted_address
}
function handleMapConfirm() {
    if (tempLocation.value.longitude != null && tempLocation.value.latitude != null) {
        formData.value.longitude = tempLocation.value.longitude
        formData.value.latitude = tempLocation.value.latitude
        formData.value.longitude = _.round(tempLocation.value.longitude, 6)
        formData.value.latitude = _.round(tempLocation.value.latitude, 6)
        getLocationName()
    }
    visible1.value = false
}
applications/drone-command/src/views/areaManage/precinctInfo/index.vue
@@ -44,7 +44,7 @@
            />
        </div>
        <FormDiaLog ref="dialogRef" @success="getList" v-if="diaLogVisible" v-model="diaLogVisible" />
        <FormDiaLog ref="dialogRef" @success="getList" v-if="dialogVisible" v-model="dialogVisible" />
    </basic-container>
</template>
@@ -66,7 +66,7 @@
const selectedIds = ref([]) // 勾选的ID列表
const queryParamsRef = ref(null) // 查询表单实例
const dialogRef = ref(null) // 弹框实例
const diaLogVisible = ref(false)
const dialogVisible = ref(false)
// 获取列表
async function getList() {
@@ -95,11 +95,13 @@
// 查看
function handleView(row) {
    dialogVisible.value = true
    dialogRef.value?.open({ mode: 'view', row: { ...row } })
}
// 编辑
function handleEdit(row) {
    dialogVisible.value = true
    dialogRef.value?.open({ mode: 'edit', row: { ...row } })
}
@@ -121,7 +123,7 @@
// 新增
function handleAdd() {
    diaLogVisible.value = true
    dialogVisible.value = true
    dialogRef.value?.open({ mode: 'add' })
}