@@ -5,7 +5,14 @@ import MkFilterableDropdown from '@/components/mk-filterable-dropdown/index.vue'
55
66defineOptions ({ name: ' WorkspaceDropdown' })
77
8- const props = defineProps <{ options: WorkspaceItem [] }>()
8+ const props = withDefaults (
9+ defineProps <{
10+ options: WorkspaceItem []
11+ /** 是否显示工作空间角色标签 */
12+ showRoleTags? : boolean
13+ }>(),
14+ { showRoleTags: false },
15+ )
916const selectedWorkspaceId = defineModel <string >({ required: true })
1017const emit = defineEmits <{ select: [option : WorkspaceItem ] }>()
1118 </script >
@@ -18,6 +25,7 @@ const emit = defineEmits<{ select: [option: WorkspaceItem] }>()
1825 @select =" emit (' select' , $event )"
1926 >
2027 <template #default =" { text } " >
28+ <!-- 切换工作空间 -->
2129 <el-button text class =" flex max-w-50 items-center gap-1 rounded-md px-2! py-[7px]! text-N900!" >
2230 <MkIcon name="icon_moments-categories_outlined" class="mr-1" />
2331 <span class =" min-w-0 flex-1 truncate" :title =" text" >{{ text }}</span >
@@ -26,10 +34,13 @@ const emit = defineEmits<{ select: [option: WorkspaceItem] }>()
2634 </template >
2735
2836 <template #option =" { option } " >
29- <div class =" flex items-center gap-2" >
30- <MkIcon name="icon_moments-categories_outlined" />
31- <span class =" min-w-0 flex-1 truncate" :title =" option.name" >{{ option.name }}</span >
37+ <div class =" flex min-w-0 flex-1 items-center gap-2" >
38+ <MkIcon name="icon_moments-categories_outlined" class="shrink-0" />
39+ <span class =" min-w-0 truncate" :title =" option.name" >{{ option.name }}</span >
40+ <MkTagGroup v-if =" props .showRoleTags && option .role_name ?.length " :tags =" option .role_name " size="small" class="min-w-0 shrink-0" />
3241 </div >
3342 </template >
3443 </MkFilterableDropdown >
3544</template >
45+
46+ <style scoped lang="scss"></style >
0 commit comments