perf: perf component

This commit is contained in:
vben
2020-11-26 21:19:39 +08:00
parent 19011296ed
commit 73c8e0c158
80 changed files with 529 additions and 631 deletions

View File

@@ -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 () => {

View File

@@ -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';

View File

@@ -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;

View File

@@ -37,7 +37,7 @@
export default defineComponent({
props: {
list: {
type: Array as PropType<Array<ListItem>>,
type: Array as PropType<ListItem[]>,
default: () => [],
},
},

View File

@@ -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';

View File

@@ -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: '',
},
},

View File

@@ -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';