吉安感知网项目-前端
shuishen
2026-01-23 bb2cd3998d1b85b9590d3a5e7015a43a3af11605
feat:数据驾驶舱、设备应用配置、侦测范围管理,增加按钮级别日志
5 files modified
73 ■■■■ changed files
applications/drone-command/src/views/dataCockpit/components/templateComponents/RealTemplate.vue 38 ●●●● patch | view | raw | blame | history
applications/drone-command/src/views/detectionCountermeasure/detectionRange/DetectionRangeDialog.vue 11 ●●●●● patch | view | raw | blame | history
applications/drone-command/src/views/detectionCountermeasure/detectionRange/index.vue 10 ●●●●● patch | view | raw | blame | history
applications/drone-command/src/views/detectionCountermeasure/deviceAppConfig/FormDiaLog.vue 10 ●●●●● patch | view | raw | blame | history
applications/drone-command/src/views/permissionManage/operationLog/index.vue 4 ●●●● patch | view | raw | blame | history
applications/drone-command/src/views/dataCockpit/components/templateComponents/RealTemplate.vue
@@ -2,13 +2,8 @@
    <div class="drone-card">
        <div class="header">
            <div class="title">
                <el-tooltip
                    class="title-tooltip"
                    :content="data.droneName || '-'"
                    placement="top"
                    effect="dark"
                    :show-after="200"
                >
                <el-tooltip class="title-tooltip" :content="data.droneName || '-'" placement="top" effect="dark"
                    :show-after="200">
                    <span class="name">{{ data.droneName }}</span>
                </el-tooltip>
                <span class="status">
@@ -65,13 +60,16 @@
        </div>
        <div class="footer">
            <el-button class="general" color="#2B2B4C" @click="emit('signal')">信号干扰</el-button>
            <el-button color="#284FE3" type="primary" @click="emit('counter')">诱导驱离</el-button>
            <el-button class="general" color="#2B2B4C" @click="handleSignal">信号干扰</el-button>
            <el-button color="#284FE3" type="primary" @click="handleCounter">诱导驱离</el-button>
        </div>
    </div>
</template>
<script setup>
import { saveOperationLog } from '@ztzf/apis'
import { useRoute } from 'vue-router'
const props = defineProps({
    data: {
        type: Object,
@@ -80,7 +78,27 @@
    }
})
const route = useRoute()
const emit = defineEmits(['signal', 'counter', 'favorite'])
// 信号干扰操作
const handleSignal = () => {
    saveOperationLog({
        requestUri: route.path,
        title: `${route.name || '数据驾驶舱'}-信号干扰`,
        type: 1
    })
    emit('signal')
}
const handleCounter = () => {
    saveOperationLog({
        requestUri: route.path,
        title: `${route.name || '数据驾驶舱'}-诱导驱离`,
        type: 1
    })
    emit('counter')
}
const getStatusText = (item) => {
    const status = item?.flightStatus
@@ -278,4 +296,4 @@
        }
    }
}
</style>
</style>
applications/drone-command/src/views/detectionCountermeasure/detectionRange/DetectionRangeDialog.vue
@@ -160,6 +160,8 @@
} from '@/api/detectionCountermeasure/detectionRange'
import CommonCesiumMap from '@/components/map-container/common-cesium-map.vue'
import * as Cesium from 'cesium'
import { saveOperationLog } from '@ztzf/apis'
import { useRoute } from 'vue-router'
import equipment from '@/assets/images/dataCockpit/legend/equipment.png'
@@ -183,6 +185,7 @@
const deviceOptions = ref([])
const dialogReadonly = computed(() => dialogMode.value === 'view')
const mapRef = ref(null)
const route = useRoute()
let viewer
let redPointEntity
let rangeCircleEntity
@@ -249,6 +252,14 @@
        }
        delete payload.deviceId
        await detectionRangeSubmitApi(payload)
        const actionText = dialogMode.value === 'add' ? '新增' : '修改'
        saveOperationLog({
            requestUri: route.path,
            title: `${route.name || '侦测范围管理'}-${actionText}`,
            type: 1
        })
        ElMessage.success(dialogMode.value === 'add' ? '新增成功' : '更新成功')
        visible.value = false
        emit('success')
applications/drone-command/src/views/detectionCountermeasure/detectionRange/index.vue
@@ -98,6 +98,8 @@
import { getDictLabel } from '@ztzf/utils'
import { detectionRangePageApi, detectionRangeSubmitApi } from '@/api/detectionCountermeasure/detectionRange'
import DetectionRangeDialog from './DetectionRangeDialog.vue'
import { saveOperationLog } from '@ztzf/apis'
import { useRoute } from 'vue-router'
const initSearchParams = () => ({
    deviceName: '', // 设备名称
@@ -116,6 +118,7 @@
    deviceType: [], // 设备类型
})
const visible = ref(false)
const route = useRoute()
provide('dictObj', dictObj)
// 获取列表
@@ -176,6 +179,13 @@
        cancelButtonClass: 'command-message-box-cancel',
    })
    await detectionRangeSubmitApi({ id: row.id, effectiveRangeKm: 0 })
    saveOperationLog({
        requestUri: route.path,
        title: `${route.name || '侦测范围管理'}-删除`,
        type: 1
    })
    ElMessage.success('删除成功')
    getList()
}
applications/drone-command/src/views/detectionCountermeasure/deviceAppConfig/FormDiaLog.vue
@@ -172,6 +172,8 @@
import { ElMessage } from 'element-plus'
import { fwDeviceConfigDetailApi, fwDeviceConfigSubmitApi } from './deviceAppConfigApi'
import { fieldRules } from '@ztzf/utils'
import { saveOperationLog } from '@ztzf/apis'
import { useRoute } from 'vue-router'
const configKeys = [
    'startSector',
@@ -206,6 +208,7 @@
const submitting = ref(false) // 提交中
const readonly = computed(() => dialogMode.value === 'view')
const titleEnum = ref({ edit: '配置接口', view: '查看' })
const route = useRoute()
const searchModeOptions = [
    { label: '0', value: '0' },
@@ -260,6 +263,13 @@
            delete payload[key]
        })
        await fwDeviceConfigSubmitApi(payload)
        saveOperationLog({
            requestUri: route.path,
            title: `${route.name || '设备应用配置'}-配置接口保存`,
            type: 1
        })
        ElMessage.success('更新成功')
        visible.value = false
        emit('success')
applications/drone-command/src/views/permissionManage/operationLog/index.vue
@@ -102,8 +102,8 @@
const dateRange = ref([])
const queryParamsRef = ref(null)
const typeOptions = [
    { label: '菜单', value: '1' },
    { label: '按钮', value: '2' },
    { label: '菜单', value: '0' },
    { label: '按钮', value: '1' },
]
async function getList() {