@@ -33,7 +33,6 @@ const resourceTypeOptions = Object.entries(resourceLabels).map(([value, label])
3333const searchFields = [
3434 { label: ' 名称' , value: ' resource_name' },
3535 { label: ' 创建者' , value: ' user_name' },
36- { label: ' 类型' , value: ' resource_type' , multiple: true , options: resourceTypeOptions },
3736]
3837const relationTabs = [
3938 { value: ' dependency' , label: ' 依赖' },
@@ -53,12 +52,13 @@ const resourceRows = computed(() =>
5352)
5453const pagination = ref ({ currentPage: 1 , pageSize: 20 , total: 0 })
5554const searchQuery = ref <Dict <unknown >>({})
55+ const selectedResourceType = ref <string | null >(null )
5656
5757function loadResources() {
5858 if (! visible .value || ! targetResource .value ) return
5959 const isDependency = relationDirection .value === ' dependency'
60- const { resource_type, ... query } = searchQuery .value
61- if (resource_type ) query [isDependency ? ' target_type' : ' source_type' ] = resource_type
60+ const query: Dict < unknown > = { ... searchQuery .value }
61+ if (selectedResourceType . value ) query [isDependency ? ' target_type' : ' source_type' ] = [ selectedResourceType . value ]
6262 if (showWorkspace .value && selectedWorkspaceIds .value .length ) query .workspace_ids = JSON .stringify (selectedWorkspaceIds .value )
6363 const request = isDependency ? props .api .getUsingResources : props .api .getUsedByResources
6464 loading .value = true
@@ -80,16 +80,17 @@ function searchResources(query?: Dict<unknown>) {
8080
8181function changeDirection() {
8282 searchQuery .value = {}
83+ selectedResourceType .value = null
8384 selectedWorkspaceIds .value = []
8485 relatedResources .value = []
8586 pagination .value = { currentPage: 1 , pageSize: 20 , total: 0 }
8687 loadResources ()
8788}
8889
89- /* 工作空间筛选 :确认或重置后从第一页查询。 */
90+ /* 表头筛选 :确认或重置后从第一页查询。 */
9091const workspaceOptions = ref <OptionItem <string >[]>([])
9192const selectedWorkspaceIds = ref <string []>([])
92- function handleWorkspaceFilterChange () {
93+ function handleFilterChange () {
9394 pagination .value .currentPage = 1
9495 loadResources ()
9596}
@@ -130,6 +131,7 @@ function resetData() {
130131 relatedResources .value = []
131132 pagination .value = { currentPage: 1 , pageSize: 20 , total: 0 }
132133 searchQuery .value = {}
134+ selectedResourceType .value = null
133135 relationDirection .value = ' dependency'
134136 workspaceOptions .value = []
135137 selectedWorkspaceIds .value = []
@@ -183,6 +185,9 @@ defineExpose({ open, close })
183185 </el-table-column >
184186 <el-table-column prop =" desc" label =" 描述" min-width =" 160" show-overflow-tooltip />
185187 <el-table-column label =" 类型" min-width =" 100" >
188+ <template #header >
189+ <MkTableFilter mode="single" v-model =" selectedResourceType " label="类型" :options =" resourceTypeOptions " @change =" handleFilterChange " />
190+ </template >
186191 <template #default =" { row } " >{{ resourceLabels[row.resourceType as ResourceType] }}</template >
187192 </el-table-column >
188193 <el-table-column v-if =" showWorkspace" prop =" workspace_name" label =" 工作空间" min-width =" 140" show-overflow-tooltip >
@@ -193,7 +198,7 @@ defineExpose({ open, close })
193198 v-model =" selectedWorkspaceIds "
194199 label="工作空间"
195200 :options =" workspaceOptions "
196- @change =" handleWorkspaceFilterChange "
201+ @change =" handleFilterChange "
197202 />
198203 </template >
199204 </el-table-column >
0 commit comments