applications/drone-command/src/views/areaManage/defenseZone/FormDiaLog.vue
@@ -26,22 +26,28 @@ <el-form-item label="防区面积" prop="zoneArea">{{ formatZoneArea(formData.zoneArea) }}</el-form-item> </el-col> <el-col :span="24"> <el-form-item label="关联场景" prop="defenseSceneIds"> <el-table ref="sceneTableRef" :data="sceneList" row-key="id" @selection-change="handleSceneSelectionChange" > <el-table-column type="selection" width="55" /> <el-table-column prop="sceneName" label="场景名称" /> <el-table-column prop="sceneType" label="场景类型"> <template v-slot="{ row }"> {{ getDictLabel(row.sceneType, dictObj.sceneType) }} </template> </el-table-column> </el-table> </el-form-item> <div> <div> 关联场景 <el-input v-model="searchName" placeholder="请输入" clearable></el-input> </div> <el-form-item label="关联场景" prop="defenseSceneIds" label-width="0"> <el-table ref="sceneTableRef" :data="sceneList.filter(item => item.sceneName.includes(searchName))" row-key="id" @selection-change="handleSceneSelectionChange" > <el-table-column type="selection" width="55" :reserve-selection="true" /> <el-table-column prop="sceneName" label="场景名称" /> <el-table-column prop="sceneType" label="场景类型"> <template v-slot="{ row }"> {{ getDictLabel(row.sceneType, dictObj.sceneType) }} </template> </el-table-column> </el-table> </el-form-item> </div> </el-col> </el-row> </el-form> @@ -85,6 +91,7 @@ const readonly = computed(() => dialogMode.value === 'view') const titleEnum = ref({ edit: '编辑', view: '查看', add: '新增' }) const sceneTableRef = ref(null) const searchName = ref('') const sceneList = ref([]) // 关联场景列表 const selectedSceneRows = ref([]) // 选中场景 const dictObj = inject('dictObj') @@ -139,14 +146,14 @@ sceneList.value = res?.data?.data ?? [] if (readonly.value) { const ids = getSceneIdList() sceneList.value = sceneList.value.filter(item => ids.includes(String(item.id))) sceneList.value = sceneList.value.filter(item => ids.includes(item.id)) } } // 获取场景ID列表 function getSceneIdList() { if (!formData.value.defenseSceneIds) return [] return formData.value.defenseSceneIds.split(',').filter(Boolean) return formData.value.defenseSceneIds.split(',') } // 关联场景变更 @@ -162,7 +169,7 @@ const ids = getSceneIdList() const rows = [] sceneList.value.forEach(row => { if (ids.includes(String(row.id))) { if (ids.includes(row.id)) { sceneTableRef.value.toggleRowSelection(row, true) rows.push(row) } applications/drone-command/src/views/areaManage/partition/FormDiaLog.vue
@@ -97,22 +97,28 @@ </el-form-item> </el-col> <el-col :span="24"> <el-form-item label="关联设备" prop="deviceIds"> <el-table ref="deviceTableRef" :data="deviceOptions" row-key="id" @selection-change="handleDeviceSelectionChange" > <el-table-column type="selection" width="55" /> <el-table-column prop="deviceName" label="设备名称" /> <el-table-column prop="deviceType" label="类型"> <template v-slot="{ row }"> {{ getDictLabel(row.deviceType, dictObj.deviceType) }} </template> </el-table-column> </el-table> </el-form-item> <div> <div> 关联设备 <el-input v-model="searchName" placeholder="请输入" clearable></el-input> </div> <el-form-item prop="deviceIds" label-width="0"> <el-table ref="deviceTableRef" :data="deviceOptions.filter(item => item.deviceName.includes(searchName))" row-key="id" @selection-change="handleDeviceSelectionChange" > <el-table-column type="selection" width="55" :reserve-selection="true" /> <el-table-column prop="deviceName" label="设备名称" /> <el-table-column prop="deviceType" label="类型"> <template v-slot="{ row }"> {{ getDictLabel(row.deviceType, dictObj.deviceType) }} </template> </el-table-column> </el-table> </el-form-item> </div> </el-col> </el-row> </el-form> @@ -165,6 +171,7 @@ const titleEnum = ref({ edit: '编辑', view: '查看', add: '新增' }) const flyDateRange = ref([]) // 飞行时间 const deviceTableRef = ref(null) const searchName = ref('') const selectedDeviceRows = ref([]) const policeStationOptions = ref([]) // 关联派出所 const deviceOptions = ref([]) // 关联设备 @@ -331,8 +338,9 @@ if (!deviceTableRef.value) return deviceTableRef.value.clearSelection() const rows = [] const arr = formData.value.deviceIds.split(',') deviceOptions.value.forEach(row => { if (formData.value.deviceIds.includes(row.id)) { if (arr.includes(row.id)) { deviceTableRef.value.toggleRowSelection(row, true) rows.push(row) } applications/drone-command/src/views/areaManage/sceneConfig/FormDiaLog.vue
@@ -72,22 +72,29 @@ </el-form-item> </el-col> <el-col :span="24"> <el-form-item label="关联区域" prop="areaDivideIds"> <el-table ref="areaTableRef" :data="areaList" row-key="id" @selection-change="handleAreaSelectionChange" > <el-table-column type="selection" width="55" /> <el-table-column prop="areaName" label="区域名称" /> <el-table-column prop="areaType" label="区域类型"> <template v-slot="{ row }"> {{ getDictLabel(row.areaType, dictObj.areaType) }} </template> </el-table-column> </el-table> </el-form-item> <div> <div> 关联区域 <el-input v-model="searchName" placeholder="请输入" clearable></el-input> </div> <el-form-item prop="areaDivideIds" label-width="0"> <el-table ref="areaTableRef" :data="areaList.filter(item => item.areaName.includes(searchName))" row-key="id" @selection-change="handleAreaSelectionChange" > <el-table-column type="selection" width="55" :reserve-selection="true" /> <el-table-column prop="areaName" label="区域名称" /> <el-table-column prop="areaType" label="区域类型"> <template v-slot="{ row }"> {{ getDictLabel(row.areaType, dictObj.areaType) }} </template> </el-table-column> </el-table> </el-form-item> </div> </el-col> </el-row> </el-form> @@ -134,6 +141,7 @@ const readonly = computed(() => dialogMode.value === 'view') const titleEnum = ref({ edit: '编辑', view: '查看', add: '新增' }) const areaTableRef = ref(null) const searchName = ref('') const areaList = ref([]) // 关联区域列表 const selectedAreaRows = ref([]) //选中列表 const dictObj = inject('dictObj') @@ -229,8 +237,9 @@ if (!areaTableRef.value) return areaTableRef.value.clearSelection() const rows = [] const arr = formData.value.areaDivideIds.split(',') areaList.value.forEach(row => { if (formData.value.areaDivideIds.includes(row.id)) { if (arr.includes(row.id)) { areaTableRef.value.toggleRowSelection(row, true) rows.push(row) }