修复 Menu TagMenu 类型错误问题

This commit is contained in:
chuan_wuhao 2022-12-27 16:08:45 +08:00
parent 6bc7a23987
commit 161b133b9a
3 changed files with 20 additions and 5 deletions

View File

@ -61,7 +61,7 @@ const MenuTag = defineComponent({
return (
<NScrollbar class="menu-tag" xScrollable>
<NSpace class="menu-tag-sapce" wrap={false} align="center">
{this.menuTagOptions.map((curr: MenuOption, idx) => (
{this.menuTagOptions.map((curr, idx) => (
<NTag
closable={
curr.key !== '/dashboard' && this.menuTagOptions.length > 1

View File

@ -15,12 +15,12 @@ export const useMenu = defineStore('menu', () => {
const menuState = reactive({
menuKey: cacheMenuKey as string | null, // 当前菜单 `key`
options: [] as RouteRecordRaw[], // 菜单列表
options: [] as IMenuOptions[], // 菜单列表
collapsed: false, // 是否折叠菜单
menuTagOptions: [] as RouteRecordRaw[],
menuTagOptions: [] as TagMenuOptions[],
})
const handleMenuTagOptions = (item: RouteRecordRaw) => {
const handleMenuTagOptions = (item: IMenuOptions) => {
if (item.path !== menuState.menuKey) {
const tag = menuState.menuTagOptions.find(
(curr) => curr.path === item.path,
@ -40,7 +40,7 @@ export const useMenu = defineStore('menu', () => {
* `menu key`
*/
const menuModelValueChange = (key: string, item: MenuOption) => {
handleMenuTagOptions(item as unknown as RouteRecordRaw)
handleMenuTagOptions(item as unknown as TagMenuOptions)
menuState.menuKey = key

15
src/types/store.d.ts vendored Normal file
View File

@ -0,0 +1,15 @@
export {}
import type { RouteRecordRaw } from 'vue-router'
import type { MenuOption } from 'naive-ui'
import type { VNode } from 'vue'
declare global {
declare interface IMenuOptions extends MenuOption, RouteRecordRaw {
key: string | number
path: string
label: string | Function
}
declare interface TagMenuOptions extends IMenuOptions {}
}