webman迁移

This commit is contained in:
2026-03-18 11:22:12 +08:00
parent dab3b3148f
commit ea77c7b3a1
623 changed files with 38163 additions and 106 deletions

View File

@@ -0,0 +1,59 @@
<template>
<template v-for="(item, idx) in props.menus" :key="idx">
<template v-if="!isEmpty(item.children)">
<el-sub-menu @click="onClickSubMenu(item)" v-blur :index="`column-${item.meta?.id}`">
<template #title>
<Icon v-if="showIcon" :name="item.meta?.icon" color="var(--el-text-color-primary)" />
{{ item.meta?.title }}
</template>
<MenuSub :menus="item.children!" :show-icon="showIcon" />
</el-sub-menu>
</template>
<template v-else>
<el-menu-item @click="onClickMenu(item)" v-blur :index="'column-' + item.meta?.id" :class="(item.name as string).replace(/[\/]/g, '-')">
<Icon v-if="showIcon" :name="item.meta?.icon" color="var(--el-text-color-primary)" />
<template #title>{{ item.meta?.title }}</template>
</el-menu-item>
</template>
</template>
</template>
<script setup lang="ts">
import { isEmpty } from 'lodash-es'
import { onClickMenu } from '/@/utils/router'
import type { RouteRecordRaw } from 'vue-router'
import MenuSub from '/@/layouts/frontend/components/menuSub.vue'
interface Props {
menus: RouteRecordRaw[]
showIcon?: boolean
}
const props = withDefaults(defineProps<Props>(), {
menus: () => [],
showIcon: false,
})
const onClickSubMenu = (menu: RouteRecordRaw) => {
/**
* 1、'/'表示菜单规则的 path 为空
* 2、会员中心菜单目录不需要跳转
*/
if (menu.path == '/' || menu.meta?.type == 'menu_dir') return
onClickMenu(menu)
}
</script>
<style scoped lang="scss">
.el-sub-menu .icon,
.el-menu-item .icon {
vertical-align: middle;
margin-right: 2px;
width: 24px;
text-align: center;
flex-shrink: 0;
}
.is-active > .icon {
color: var(--el-menu-active-color) !important;
}
</style>