| | |
| | | <template> |
| | | <el-dialog v-model="visible" :title="titleEnum[dialogMode]" :close-on-click-modal="false"> |
| | | <div v-if="readonly"> |
| | | <template> |
| | | <el-dialog |
| | | class="ztzf-page-view-dialog" |
| | | v-model="visible" |
| | | :title="titleEnum[dialogMode]" |
| | | :close-on-click-modal="false" |
| | | width="520px" |
| | | > |
| | | <div class="detail-container"> |
| | | <el-row> |
| | | <el-col :span="12"> |
| | | <div>无人机名称: {{ formData.droneName }}</div> |
| | | <div class="label">无人机名称</div> |
| | | <div class="val">{{ formData.droneName || '-' }}</div> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <div>无人机类型: {{ formData.droneType }}</div> |
| | | <div class="label">无人机类型</div> |
| | | <div class="val">{{ formData.droneType || '-' }}</div> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <div>无人机设备编码: {{ formData.droneDeviceCode }}</div> |
| | | <div class="label">无人机设备编码</div> |
| | | <div class="val">{{ formData.droneDeviceCode || '-' }}</div> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <div>发现时间: {{ formData.findTime }}</div> |
| | | <div class="label">发现时间</div> |
| | | <div class="val">{{ formData.findTime || '-' }}</div> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <div>反制效果: {{ getDictLabel(formData.counterEffect, dictObj.counterEffect) }}</div> |
| | | <div class="label">反制效果</div> |
| | | <div class="val">{{ getDictLabel(formData.counterEffect, dictObj.counterEffect) || '-' }}</div> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <div>反制方式: {{ getCounterWayLabel(formData.counterWay) }}</div> |
| | | <div class="label">反制方式</div> |
| | | <div class="val">{{ getCounterWayLabel(formData.counterWay) || '-' }}</div> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <div>反制设备名称: {{ formData.deviceName }}</div> |
| | | <div class="label">反制设备名称</div> |
| | | <div class="val">{{ formData.deviceName || '-' }}</div> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <div>反制设备型号: {{ formData.deviceModel }}</div> |
| | | <div class="label">反制设备型号</div> |
| | | <div class="val">{{ formData.deviceModel || '-' }}</div> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <div>反制设备类型: {{ getDeviceTypeLabel(formData.deviceType) }}</div> |
| | | <div class="label">反制设备类型</div> |
| | | <div class="val">{{ getDeviceTypeLabel(formData.deviceType) || '-' }}</div> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <div>反制设备编码: {{ formData.deviceSn }}</div> |
| | | <div class="label">反制设备编码</div> |
| | | <div class="val">{{ formData.deviceSn || '-' }}</div> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <div>区域编码: {{ formData.areaCode }}</div> |
| | | <div class="label">区域编码</div> |
| | | <div class="val">{{ formData.areaCode || '-' }}</div> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <div>部署位置: {{ getDeployPosition() }}</div> |
| | | <div class="label">部署位置</div> |
| | | <div class="val">{{ getDeployPosition() || '-' }}</div> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <div>覆盖范围: {{ formData.coverRadiusM ? `${formData.coverRadiusM}米` : '' }}</div> |
| | | <div class="label">覆盖范围</div> |
| | | <div class="val">{{ formData.coverRadiusM ? `${formData.coverRadiusM}米` : '-' }}</div> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <div>工作模式: {{ getWorkModeLabel(formData.workMode) }}</div> |
| | | <div class="label">工作模式</div> |
| | | <div class="val">{{ getWorkModeLabel(formData.workMode) || '-' }}</div> |
| | | </el-col> |
| | | </el-row> |
| | | </div> |
| | | <template #footer> |
| | | <el-button @click="handleCancel">关闭</el-button> |
| | | <el-button color="#2B2B4C" @click="handleCancel">关闭</el-button> |
| | | </template> |
| | | </el-dialog> |
| | | </template> |
| | |
| | | |
| | | // 注入字典数据 |
| | | const dictObj = inject('dictObj') |
| | | // 注入反制效果选项 |
| | | |
| | | const formData = ref(initForm()) // 表单数据 |
| | | const visible = defineModel() // 弹框显隐 |
| | |
| | | // 获取反制方式标签 |
| | | function getCounterWayLabel(value) { |
| | | const map = { '1': '信号干扰', '2': '诱导驱离' } |
| | | return map[value] || value || '无' |
| | | return map[value] || value || '暂无' |
| | | } |
| | | |
| | | // 获取设备类型标签 |
| | |
| | | async function open({ mode, row } = {}) { |
| | | dialogMode.value = mode || 'view' |
| | | formData.value = row ? { ...row } : initForm() |
| | | dialogMode.value === 'view' && (await loadDetail()) |
| | | if (readonly.value) { |
| | | await loadDetail() |
| | | } |
| | | } |
| | | |
| | | defineExpose({ open }) |