mirror of
https://github.com/vbenjs/vue-vben-admin.git
synced 2025-08-27 16:15:19 +08:00
perf: perf component
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
import type { PropType, FunctionalComponent } from 'vue';
|
||||
import type { FunctionalComponent } from 'vue';
|
||||
|
||||
import { defineComponent, unref } from 'vue';
|
||||
|
||||
import {
|
||||
DoubleRightOutlined,
|
||||
DoubleLeftOutlined,
|
||||
@@ -9,6 +10,7 @@ import {
|
||||
} from '@ant-design/icons-vue';
|
||||
|
||||
import { useMenuSetting } from '/@/hooks/setting/useMenuSetting';
|
||||
import { propTypes } from '/@/utils/propTypes';
|
||||
|
||||
const SiderTrigger: FunctionalComponent = () => {
|
||||
const { getCollapsed } = useMenuSetting();
|
||||
@@ -29,13 +31,8 @@ const HeaderTrigger: FunctionalComponent<{
|
||||
export default defineComponent({
|
||||
name: 'LayoutTrigger',
|
||||
props: {
|
||||
sider: {
|
||||
type: Boolean as PropType<boolean>,
|
||||
default: true,
|
||||
},
|
||||
theme: {
|
||||
type: String as PropType<string>,
|
||||
},
|
||||
sider: propTypes.bool.def(true),
|
||||
theme: propTypes.oneOf(['light', 'dark']),
|
||||
},
|
||||
setup(props) {
|
||||
return () => {
|
||||
|
@@ -3,9 +3,9 @@ import type { RouteLocationMatched } from 'vue-router';
|
||||
import type { PropType } from 'vue';
|
||||
|
||||
import { defineComponent, TransitionGroup, unref, watch, ref } from 'vue';
|
||||
import Breadcrumb from '/@/components/Breadcrumb/Breadcrumb.vue';
|
||||
import Icon from '/@/components/Icon';
|
||||
import BreadcrumbItem from '/@/components/Breadcrumb/BreadcrumbItem.vue';
|
||||
|
||||
import { Breadcrumb, BreadcrumbItem } from '/@/components/Breadcrumb';
|
||||
|
||||
import { useRouter } from 'vue-router';
|
||||
|
||||
|
@@ -38,6 +38,7 @@ import { PageEnum } from '/@/enums/pageEnum';
|
||||
import { MenuModeEnum, MenuSplitTyeEnum } from '/@/enums/menuEnum';
|
||||
import { AppLocalePicker } from '/@/components/Application';
|
||||
import { useI18n } from '/@/hooks/web/useI18n';
|
||||
import { propTypes } from '/@/utils/propTypes';
|
||||
|
||||
interface TooltipItemProps {
|
||||
title: string;
|
||||
@@ -57,10 +58,7 @@ const TooltipItem: FunctionalComponent<TooltipItemProps> = (props, { slots }) =>
|
||||
export default defineComponent({
|
||||
name: 'LayoutHeader',
|
||||
props: {
|
||||
fixed: {
|
||||
type: Boolean,
|
||||
default: false,
|
||||
},
|
||||
fixed: propTypes.bool,
|
||||
},
|
||||
setup(props) {
|
||||
let logoEl: Element | null | undefined;
|
||||
|
@@ -37,7 +37,7 @@
|
||||
export default defineComponent({
|
||||
props: {
|
||||
list: {
|
||||
type: Array as PropType<Array<ListItem>>,
|
||||
type: Array as PropType<ListItem[]>,
|
||||
default: () => [],
|
||||
},
|
||||
},
|
||||
|
@@ -2,7 +2,7 @@ import './LockAction.less';
|
||||
|
||||
import { defineComponent } from 'vue';
|
||||
import { BasicModal, useModalInner } from '/@/components/Modal/index';
|
||||
import Button from '/@/components/Button/index.vue';
|
||||
import { Button } from '/@/components/Button';
|
||||
import { BasicForm, useForm } from '/@/components/Form/index';
|
||||
|
||||
import headerImg from '/@/assets/images/header.jpg';
|
||||
|
@@ -15,32 +15,25 @@ import { useRootSetting } from '/@/hooks/setting/useRootSetting';
|
||||
import { useGo } from '/@/hooks/web/usePage';
|
||||
import { useSplitMenu } from './useLayoutMenu';
|
||||
import { openWindow } from '/@/utils';
|
||||
import { propTypes } from '/@/utils/propTypes';
|
||||
|
||||
export default defineComponent({
|
||||
name: 'LayoutMenu',
|
||||
props: {
|
||||
theme: {
|
||||
type: String as PropType<string>,
|
||||
default: '',
|
||||
},
|
||||
theme: propTypes.oneOf(['light', 'dark']),
|
||||
|
||||
splitType: {
|
||||
type: Number as PropType<MenuSplitTyeEnum>,
|
||||
default: MenuSplitTyeEnum.NONE,
|
||||
},
|
||||
parentMenuPath: {
|
||||
type: String as PropType<string>,
|
||||
default: '',
|
||||
},
|
||||
showSearch: {
|
||||
type: Boolean as PropType<boolean>,
|
||||
default: true,
|
||||
},
|
||||
isHorizontal: {
|
||||
type: Boolean as PropType<boolean>,
|
||||
default: false,
|
||||
},
|
||||
|
||||
// Whether to show search box
|
||||
showSearch: propTypes.bool.def(true),
|
||||
|
||||
isHorizontal: propTypes.bool,
|
||||
// menu Mode
|
||||
menuMode: {
|
||||
type: [String] as PropType<MenuModeEnum | null>,
|
||||
type: [String] as PropType<Nullable<MenuModeEnum>>,
|
||||
default: '',
|
||||
},
|
||||
},
|
||||
|
@@ -5,7 +5,7 @@ import defaultSetting from '/@/settings/projectSetting';
|
||||
import { defineComponent, computed, unref, FunctionalComponent } from 'vue';
|
||||
import { BasicDrawer } from '/@/components/Drawer/index';
|
||||
import { Divider, Switch, Tooltip, InputNumber, Select } from 'ant-design-vue';
|
||||
import Button from '/@/components/Button/index.vue';
|
||||
import { Button } from '/@/components/Button';
|
||||
import { CopyOutlined, RedoOutlined, CheckOutlined } from '@ant-design/icons-vue';
|
||||
|
||||
import { MenuTypeEnum } from '/@/enums/menuEnum';
|
||||
|
Reference in New Issue
Block a user