zjk
2026-02-04 b4dc99a92c8fbdfefa48870fde72042e0d1e168a
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
<script setup lang="ts">
import { useTabStore } from '@/store'
import { renderIcon } from '@/utils'
 
const tabStore = useTabStore()
 
const { t } = useI18n()
 
function renderDropTabsLabel(option: any) {
  return t(`route.${String(option.name)}`, option.meta.title)
}
 
function renderDropTabsIcon(option: any) {
  return renderIcon(option.meta.icon)!()
}
 
const router = useRouter()
function handleDropTabs(key: string, option: any) {
  router.push(option.path)
}
</script>
 
<template>
  <n-dropdown
    :options="tabStore.allTabs"
    :render-label="renderDropTabsLabel"
    :render-icon="renderDropTabsIcon"
    trigger="click"
    size="small"
    key-field="fullPath"
    @select="handleDropTabs"
  >
    <CommonWrapper>
      <icon-park-outline-application-menu />
    </CommonWrapper>
  </n-dropdown>
</template>
 
<style scoped>
 
</style>