|
|
|
@@ -13,29 +13,39 @@
|
|
|
|
|
:subMenuOpenDelay="0.2"
|
|
|
|
|
v-bind="getInlineCollapseOptions"
|
|
|
|
|
>
|
|
|
|
|
<template v-for="item in items" :key="item.path">
|
|
|
|
|
<template
|
|
|
|
|
v-for="item in items.concat(
|
|
|
|
|
hasPermission('health:health-bank') ? [{ name: '健康银行', icon: 'ant-design:bank-outlined', title: '健康银行' }] : []
|
|
|
|
|
)"
|
|
|
|
|
:key="item.path"
|
|
|
|
|
>
|
|
|
|
|
<BasicSubMenuItem :item="item" :theme="theme" :isHorizontal="isHorizontal" />
|
|
|
|
|
</template>
|
|
|
|
|
</Menu>
|
|
|
|
|
</template>
|
|
|
|
|
<script lang="ts">
|
|
|
|
|
import type { MenuState } from './types';
|
|
|
|
|
import { computed, defineComponent, reactive, ref, toRefs, unref, watch } from 'vue';
|
|
|
|
|
import { Menu } from 'ant-design-vue';
|
|
|
|
|
import BasicSubMenuItem from './components/BasicSubMenuItem.vue';
|
|
|
|
|
import { MenuModeEnum, MenuTypeEnum } from '/@/enums/menuEnum';
|
|
|
|
|
import { useOpenKeys } from './useOpenKeys';
|
|
|
|
|
import { RouteLocationNormalizedLoaded, useRouter } from 'vue-router';
|
|
|
|
|
import { isFunction } from '/@/utils/is';
|
|
|
|
|
import { basicProps } from './props';
|
|
|
|
|
import { useMenuSetting } from '/@/hooks/setting/useMenuSetting';
|
|
|
|
|
import { REDIRECT_NAME } from '/@/router/constant';
|
|
|
|
|
import { useDesign } from '/@/hooks/web/useDesign';
|
|
|
|
|
import { getCurrentParentPath } from '/@/router/menus';
|
|
|
|
|
import { listenerRouteChange } from '/@/logics/mitt/routeChange';
|
|
|
|
|
import { getAllParentPath } from '/@/router/helper/menuHelper';
|
|
|
|
|
import type { MenuState } from './types';
|
|
|
|
|
import { computed, defineComponent, reactive, ref, toRefs, unref, watch } from 'vue';
|
|
|
|
|
import { Menu } from 'ant-design-vue';
|
|
|
|
|
import BasicSubMenuItem from './components/BasicSubMenuItem.vue';
|
|
|
|
|
import { MenuModeEnum, MenuTypeEnum } from '/@/enums/menuEnum';
|
|
|
|
|
import { useOpenKeys } from './useOpenKeys';
|
|
|
|
|
import { RouteLocationNormalizedLoaded, useRouter } from 'vue-router';
|
|
|
|
|
import { isFunction } from '/@/utils/is';
|
|
|
|
|
import { basicProps } from './props';
|
|
|
|
|
import { useMenuSetting } from '/@/hooks/setting/useMenuSetting';
|
|
|
|
|
import { REDIRECT_NAME } from '/@/router/constant';
|
|
|
|
|
import { useDesign } from '/@/hooks/web/useDesign';
|
|
|
|
|
import { getCurrentParentPath } from '/@/router/menus';
|
|
|
|
|
import { listenerRouteChange } from '/@/logics/mitt/routeChange';
|
|
|
|
|
import { getAllParentPath } from '/@/router/helper/menuHelper';
|
|
|
|
|
import { usePermission } from '/@/hooks/web/usePermission';
|
|
|
|
|
import { defHttp } from '/@/utils/http/axios';
|
|
|
|
|
import { getEnvInfo } from '/@/utils/getEnv';
|
|
|
|
|
import { getToken } from '/@/utils/auth';
|
|
|
|
|
import { useLoading } from '/@/components/Loading';
|
|
|
|
|
|
|
|
|
|
export default defineComponent({
|
|
|
|
|
export default defineComponent({
|
|
|
|
|
name: 'BasicMenu',
|
|
|
|
|
components: {
|
|
|
|
|
Menu,
|
|
|
|
@@ -46,6 +56,10 @@ export default defineComponent({
|
|
|
|
|
setup(props, { emit }) {
|
|
|
|
|
const isClickGo = ref(false);
|
|
|
|
|
const currentActiveMenu = ref('');
|
|
|
|
|
const { hasPermission } = usePermission();
|
|
|
|
|
const [open, close] = useLoading({
|
|
|
|
|
target: '', // 遮罩挂载的目标元素,默认body
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
const menuState = reactive<MenuState>({
|
|
|
|
|
defaultSelectedKeys: [],
|
|
|
|
@@ -112,6 +126,30 @@ export default defineComponent({
|
|
|
|
|
|
|
|
|
|
//update-begin-author:taoyan date:2022-6-1 for: VUEN-1144 online 配置成菜单后,打开菜单,显示名称未展示为菜单名称
|
|
|
|
|
async function handleMenuClick({ item, key }: { item: any; key: string; keyPath: string[] }) {
|
|
|
|
|
if (item.title === '健康银行') {
|
|
|
|
|
open();
|
|
|
|
|
const url = getEnvInfo().VITE_GLOB_API_URL;
|
|
|
|
|
await defHttp
|
|
|
|
|
.get({
|
|
|
|
|
url: '/health-system/api/sys/encryptInfo',
|
|
|
|
|
params: {
|
|
|
|
|
str: {
|
|
|
|
|
scheme: url.split('://')[0],
|
|
|
|
|
host: url.split('://')[1],
|
|
|
|
|
tokenF: getToken(),
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
})
|
|
|
|
|
.then((res) => {
|
|
|
|
|
console.log(res);
|
|
|
|
|
window.open(`${getEnvInfo().VITE_OUT_URL}${res.encryptData}`, '_blank');
|
|
|
|
|
close();
|
|
|
|
|
})
|
|
|
|
|
.catch(() => {
|
|
|
|
|
close();
|
|
|
|
|
});
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
const { beforeClickFn } = props;
|
|
|
|
|
if (beforeClickFn && isFunction(beforeClickFn)) {
|
|
|
|
|
const flag = await beforeClickFn(key);
|
|
|
|
@@ -151,10 +189,11 @@ export default defineComponent({
|
|
|
|
|
handleOpenChange,
|
|
|
|
|
getOpenKeys,
|
|
|
|
|
...toRefs(menuState),
|
|
|
|
|
hasPermission,
|
|
|
|
|
};
|
|
|
|
|
},
|
|
|
|
|
});
|
|
|
|
|
});
|
|
|
|
|
</script>
|
|
|
|
|
<style lang="less">
|
|
|
|
|
@import './index.less';
|
|
|
|
|
@import './index.less';
|
|
|
|
|
</style>
|
|
|
|
|