applications/drone-command/src/views/detectionCountermeasure/countermeasureEvaluation/FormDiaLog.vue
@@ -30,7 +30,7 @@ <div>反制设备类型: {{ getDeviceTypeLabel(formData.deviceType) }}</div> </el-col> <el-col :span="12"> <div>反制设备编码: {{ formData.deviceCode }}</div> <div>反制设备编码: {{ formData.deviceSn }}</div> </el-col> <el-col :span="12"> <div>区域编码: {{ formData.areaCode }}</div> @@ -68,7 +68,7 @@ deviceName: '', // 反制设备名称 deviceModel: '', // 反制设备型号 deviceType: '', // 反制设备类型 deviceCode: '', // 反制设备编码 deviceSn: '', // 反制设备编码 areaCode: '', // 区域编码 deployLongitude: '', // 部署经度 deployLatitude: '', // 部署纬度 applications/drone-command/src/views/detectionCountermeasure/countermeasureEvaluation/index.vue
@@ -57,7 +57,7 @@ {{ getDictLabel(row.deviceType, dictObj.deviceType) }} </template> </el-table-column> <el-table-column prop="deviceCode" label="反制设备编码" /> <el-table-column prop="deviceSn" label="反制设备编码" /> <el-table-column prop="areaCode" label="场景" /> <el-table-column prop="areaCode" label="区域" /> <el-table-column label="部署位置"> @@ -150,7 +150,6 @@ searchParams.value = initSearchParams() getList() } // 获取工作模式标签 function getWorkModeLabel(value) { applications/drone-command/src/views/detectionCountermeasure/detectionRange/DetectionRangeDialog.vue
@@ -24,21 +24,10 @@ </div> <div class="dialog-form"> <div class="form-title">{{ formTitle }}</div> <el-form ref="formRef" :model="formData" :rules="rules" label-width="84px" :disabled="dialogReadonly" > <el-form ref="formRef" :model="formData" :rules="rules" label-width="84px" :disabled="dialogReadonly"> <el-form-item label="侦测设备" prop="deviceId"> <el-select v-model="formData.deviceId" placeholder="请选择" clearable @change="handleDeviceChange"> <el-option v-for="item in deviceOptions" :key="item.value" :label="item.label" :value="item.value" /> <el-option v-for="item in deviceOptions" :key="item.value" :label="item.label" :value="item.value" /> </el-select> </el-form-item> <el-form-item label="设备类型" prop="deviceType"> @@ -58,8 +47,8 @@ </template> </el-input> </el-form-item> <el-form-item label="设备编号" prop="deviceCode"> <el-input v-model="formData.deviceCode" placeholder="请输入" clearable /> <el-form-item label="设备编号" prop="deviceSn"> <el-input v-model="formData.deviceSn" placeholder="请输入" clearable /> </el-form-item> <el-form-item label="设备型号" prop="deviceModel"> <el-input v-model="formData.deviceModel" placeholder="请输入" clearable /> @@ -78,14 +67,7 @@ </div> <template v-if="!dialogReadonly" #footer> <el-button @click="handleCancel">取消</el-button> <el-button type="primary" :loading="submitting" :disabled="submitting" @click="handleSubmit" > 保存 </el-button> <el-button type="primary" :loading="submitting" :disabled="submitting" @click="handleSubmit">保存</el-button> </template> </el-dialog> </template> @@ -105,7 +87,7 @@ deviceName: '', // 侦测设备 deviceType: '', // 设备类型 deployLocation: '', // 设备位置 deviceCode: '', // 设备编号 deviceSn: '', // 设备编号 deviceModel: '', // 设备型号 effectiveRangeKm: null, // 覆盖范围 }) @@ -152,14 +134,9 @@ formData.value.deviceName = raw.deviceName ?? formData.value.deviceName formData.value.deviceType = raw.deviceType ?? formData.value.deviceType formData.value.deviceModel = raw.deviceModel ?? formData.value.deviceModel formData.value.deviceCode = raw.deviceCode ?? raw.deviceSn ?? raw.deviceNo ?? formData.value.deviceCode formData.value.deviceSn = raw.deviceSn ?? raw.deviceSn ?? raw.deviceNo ?? formData.value.deviceCode formData.value.deployLocation = raw.deployLocation ?? raw.address ?? raw.location ?? raw.deployAddress ?? formData.value.deployLocation raw.deployLocation ?? raw.address ?? raw.location ?? raw.deployAddress ?? formData.value.deployLocation } // 关闭弹框 applications/drone-command/src/views/detectionCountermeasure/detectionRange/index.vue
@@ -2,15 +2,30 @@ <basic-container> <el-form ref="queryParamsRef" :model="searchParams" class="ztzf-page-history-search"> <el-form-item label="名称" prop="deviceName"> <el-input class="ztzf-data-cockpit-search-input" v-model="searchParams.deviceName" placeholder="请输入" clearable @clear="handleSearch" /> <el-input class="ztzf-data-cockpit-search-input" v-model="searchParams.deviceName" placeholder="请输入" clearable @clear="handleSearch" /> </el-form-item> <el-form-item label="类型" prop="deviceType"> <el-select class="ztzf-data-cockpit-select" popper-class="ztzf-data-cockpit-select-popper" v-model="searchParams.deviceType" placeholder="请选择" clearable @change="handleSearch"> <el-option v-for="item in dictObj.deviceType" :key="item.dictKey" :label="item.dictValue" :value="item.dictKey" /> <el-select class="ztzf-data-cockpit-select" popper-class="ztzf-data-cockpit-select-popper" v-model="searchParams.deviceType" placeholder="请选择" clearable @change="handleSearch" > <el-option v-for="item in dictObj.deviceType" :key="item.dictKey" :label="item.dictValue" :value="item.dictKey" /> </el-select> </el-form-item> @@ -61,9 +76,14 @@ </div> <div class="ztzf-table-pagination"> <el-pagination popper-class="ztzf-data-cockpit-select-popper" v-model:current-page="searchParams.current" v-model:page-size="searchParams.size" layout="total, prev, pager, next, sizes" :total="total" @change="getList" /> <el-pagination popper-class="ztzf-data-cockpit-select-popper" v-model:current-page="searchParams.current" v-model:page-size="searchParams.size" layout="total, prev, pager, next, sizes" :total="total" @change="getList" /> </div> </div> @@ -99,7 +119,7 @@ provide('dictObj', dictObj) // 获取列表 async function getList () { async function getList() { loading.value = true try { const res = await detectionRangePageApi(searchParams.value) @@ -111,35 +131,35 @@ } // 查询 function handleSearch () { function handleSearch() { searchParams.value.current = 1 getList() } // 重置查询 function resetForm () { function resetForm() { queryParamsRef.value?.resetFields() searchParams.value.current = 1 getList() } // 新增 function handleAdd () { function handleAdd() { dialogRef.value?.open({ mode: 'add' }) } // 查看 function handleView (row) { function handleView(row) { dialogRef.value?.open({ mode: 'view', row: { ...row } }) } // 编辑 function handleEdit (row) { function handleEdit(row) { dialogRef.value?.open({ mode: 'edit', row: { ...row } }) } // 删除 async function handleDelete (row) { async function handleDelete(row) { await ElMessageBox.confirm('确认删除该条数据吗?', '提示', { type: 'warning' }) await detectionRangeSubmitApi({ id: row.id, effectiveRangeKm: 0 }) ElMessage.success('删除成功') @@ -147,13 +167,13 @@ } // 获取字典 function getDictList () { function getDictList() { getDictionaryByCode('deviceType').then(res => { dictObj.value = res.data.data }) } function formatDeployLocation (row) { function formatDeployLocation(row) { if (!row) return '-' const location = row.deployLocation ?? row.address ?? row.location ?? row.deployAddress if (Array.isArray(location) && location.length) { @@ -170,15 +190,15 @@ return '-' } function formatRange (row) { function formatRange(row) { if (!row) return '-' const value = row.effectiveRangeKm ?? row.range return value === null || value === undefined || value === '' ? '-' : value } function formatDeviceCode (row) { if (!row) return '-' return row.deviceCode || row.deviceSn || row.deviceNo || '-' function formatDeviceCode(row) { if (!row) return '' return row.deviceSn } onMounted(() => { applications/drone-command/src/views/detectionCountermeasure/deviceAppConfig/index.vue
@@ -36,7 +36,7 @@ </el-table-column> <el-table-column prop="deviceModel" label="设备型号" /> <el-table-column prop="deviceName" label="设备名称" /> <el-table-column prop="deviceCode" label="设备编码" /> <el-table-column prop="deviceSn" label="设备编码" /> <el-table-column prop="deployLocation" label="部署位置" /> <el-table-column prop="manufacturer" label="厂商" /> <el-table-column prop="contactPhone" label="联系方式" /> applications/drone-command/src/views/detectionCountermeasure/taskSchedule/FormDiaLog.vue
@@ -6,10 +6,7 @@ <div>设备名称: {{ formData.deviceName }}</div> </el-col> <el-col :span="12"> <div>设备编码: {{ formData.deviceCode }}</div> </el-col> <el-col :span="12"> <div>设备状态: {{ getDeviceStatusLabel(formData.deviceStatus) }}</div> <div>设备编码: {{ formData.deviceSn }}</div> </el-col> <el-col :span="12"> <div>场景: {{ formData.defenseSceneName }}</div> @@ -40,20 +37,15 @@ <el-form v-else ref="formRef" :model="formData" :rules="rules" :disabled="readonly" label-width="100px"> <el-row> <el-col :span="12"> <el-form-item label="设备名称" prop="deviceId"> <el-form-item label="设备" prop="deviceId"> <el-select v-model="formData.deviceId" placeholder="请选择" clearable @change="handleDeviceChange"> <el-option v-for="item in deviceList" :key="item.id" :label="item.deviceName" :value="item.id" /> </el-select> </el-form-item> </el-col> <el-col :span="12"> <el-form-item label="设备编码" prop="deviceCode"> <el-input v-model="formData.deviceCode" disabled placeholder="选择设备后自动带出" /> </el-form-item> </el-col> <el-col :span="12"> <el-form-item label="设备状态" prop="deviceStatus"> <el-input v-model="formData.deviceStatusLabel" disabled placeholder="选择设备后自动带出" /> <el-form-item label="设备编码" prop="deviceSn"> <el-input v-model="formData.deviceSn" disabled placeholder="选择设备后自动带出" /> </el-form-item> </el-col> <el-col :span="12"> @@ -70,6 +62,7 @@ placeholder="请先选择场景" clearable :disabled="!formData.defenseSceneId" @change="handleAreaChange" > <el-option v-for="item in areaList" :key="item.id" :label="item.areaName" :value="item.id" /> </el-select> @@ -94,9 +87,10 @@ </el-col> <el-col :span="24"> <el-form-item label="调度位置" prop="longitude"> <el-button @click="selectLocation" style="width: 100%"> <!-- <el-button @click="selectLocation" style="width: 100%">--> <el-button style="width: 100%"> {{ formData.longitude && formData.latitude ? `${formData.longitude}, ${formData.latitude}` : '点击选择位置' formData.longitude && formData.latitude ? `${formData.longitude}, ${formData.latitude}` : '选择区域后自动带出' }} </el-button> </el-form-item> @@ -139,6 +133,7 @@ </el-col> </el-row> </el-form> <template #footer> <el-button @click="handleCancel">{{ readonly ? '关闭' : '取消' }}</el-button> <el-button v-if="!readonly" type="primary" :loading="submitting" :disabled="submitting" @click="handleSubmit"> @@ -168,7 +163,7 @@ // 初始化表单 const initForm = () => ({ deviceId: '', // 设备ID deviceCode: '', // 设备编码 deviceSn: '', // 设备编码 deviceName: '', // 设备名称 deviceStatus: '', // 设备状态 deviceStatusLabel: '', // 设备状态标签 @@ -193,9 +188,6 @@ deviceList: { type: Array, default: () => [] }, }) // 注入字典数据 const dictObj = inject('dictObj') const emit = defineEmits(['success']) const formRef = ref(null) // 表单实例 const formData = ref(initForm()) // 表单数据 @@ -209,16 +201,11 @@ const areaList = ref([]) // 区域列表 const rules = { deviceId: [{ required: true, message: '请选择设备', trigger: 'change' }], defenseSceneId: [{ required: true, message: '请选择场景', trigger: 'change' }], areaDivideId: [{ required: true, message: '请选择区域', trigger: 'change' }], deviceId: fieldRules(true), areaDivideId: fieldRules(true), defenseSceneId: fieldRules(true), dispatchUser: fieldRules(true, 50), } // 获取设备状态标签 function getDeviceStatusLabel(status) { const statusMap = { 0: '离线', 1: '在线' } return statusMap[status] || status dispatchDateRange: fieldRules(true), } // 设备选择变化处理 @@ -226,14 +213,12 @@ const device = props.deviceList.find(item => item.id === deviceId) if (device) { formData.value.deviceName = device.deviceName formData.value.deviceCode = device.deviceCode formData.value.deviceSn = device.deviceSn formData.value.deviceStatus = device.deviceStatus formData.value.deviceStatusLabel = getDeviceStatusLabel(device.deviceStatus) } else { formData.value.deviceName = '' formData.value.deviceCode = '' formData.value.deviceSn = '' formData.value.deviceStatus = '' formData.value.deviceStatusLabel = '' } } @@ -245,6 +230,12 @@ } else { areaList.value = [] } } function handleAreaChange(areaId) { const find = areaList.value.find(item => item.id === areaId) formData.value.longitude = find?.longitude formData.value.latitude = find?.latitude } // 加载区域列表 @@ -285,7 +276,6 @@ const data = res?.data?.data ?? {} formData.value = { ...data, deviceStatusLabel: getDeviceStatusLabel(data.deviceStatus), dispatchDateRange: data.dispatchStartTime && data.dispatchEndTime ? [data.dispatchStartTime, data.dispatchEndTime] : [], } applications/drone-command/src/views/detectionCountermeasure/taskSchedule/index.vue
@@ -30,10 +30,10 @@ /> </el-select> </el-form-item> <el-form-item label="设备编号" prop="deviceCode"> <el-form-item label="设备编号" prop="deviceSn"> <el-input class="ztzf-data-cockpit-search-input" v-model="searchParams.deviceCode" v-model="searchParams.deviceSn" placeholder="请输入" clearable @clear="handleSearch" @@ -57,14 +57,14 @@ <el-table-column type="selection" width="46" /> <el-table-column type="index" show-overflow-tooltip width="64" label="序号" /> <el-table-column prop="deviceName" show-overflow-tooltip width="140" label="设备名称" /> <el-table-column prop="deviceCode" show-overflow-tooltip width="140" label="设备编码" /> <el-table-column prop="deviceStatus" show-overflow-tooltip width="100" label="设备状态"> <el-table-column prop="deviceSn" show-overflow-tooltip width="140" label="设备编码" /> <!-- <el-table-column prop="deviceStatus" show-overflow-tooltip width="100" label="设备状态"> <template v-slot="{ row }"> {{ getDictLabel(row.deviceStatus, dictObj.deviceStatus) }} </template> </el-table-column> <el-table-column prop="areaDivideName" show-overflow-tooltip width="120" label="区域" /> <el-table-column prop="defenseSceneName" show-overflow-tooltip width="120" label="场景" /> </el-table-column>--> <el-table-column prop="areaName" show-overflow-tooltip width="120" label="区域" /> <el-table-column prop="defenseZoneName" show-overflow-tooltip width="120" label="场景" /> <el-table-column show-overflow-tooltip width="200" label="调度位置"> <template v-slot="{ row }">{{ row.longitude }}, {{ row.latitude }}</template> </el-table-column> @@ -124,7 +124,7 @@ const initSearchParams = () => ({ deviceId: '', // 设备名称 deviceType: '', // 设备类型 deviceCode: '', // 设备编号 deviceSn: '', // 设备编号 current: 1, // 当前页 size: 10, // 每页大小 })