From b7c8eeabe7f6b703a5f4468e64dfe36736222df5 Mon Sep 17 00:00:00 2001
From: 罗广辉 <guanghui.luo@foxmail.com>
Date: Wed, 14 Jan 2026 10:07:48 +0800
Subject: [PATCH] feat: 带筛选

---
 applications/drone-command/src/views/areaManage/defenseZone/FormDiaLog.vue |   45 ++++++++++++++++++++++++++-------------------
 1 files changed, 26 insertions(+), 19 deletions(-)

diff --git a/applications/drone-command/src/views/areaManage/defenseZone/FormDiaLog.vue b/applications/drone-command/src/views/areaManage/defenseZone/FormDiaLog.vue
index 225f47f..ed069a0 100644
--- a/applications/drone-command/src/views/areaManage/defenseZone/FormDiaLog.vue
+++ b/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)
 		}

--
Gitblit v1.9.3