From 73c8e0c1583afa83353ff36d1d9ec847776d3016 Mon Sep 17 00:00:00 2001 From: vben Date: Thu, 26 Nov 2020 21:19:39 +0800 Subject: [PATCH] perf: perf component --- CHANGELOG.zh_CN.md | 9 +- README.md | 2 +- package.json | 1 + src/components/Application/index.ts | 5 +- .../Application/src/AppLocalePicker.vue | 14 ++- src/components/Application/src/AppLogo.vue | 15 ++-- src/components/Basic/index.ts | 12 ++- src/components/Basic/src/BasicArrow.vue | 48 ++++++----- src/components/Basic/src/BasicHelp.vue | 66 ++++++-------- src/components/Basic/src/BasicTitle.vue | 11 +-- src/components/Breadcrumb/index.ts | 7 ++ .../Breadcrumb/{ => src}/Breadcrumb.vue | 14 +-- .../Breadcrumb/{ => src}/BreadcrumbItem.vue | 17 ++-- src/components/Button/index.ts | 6 ++ .../Button/{index.vue => src/BasicButton.vue} | 46 +++------- src/components/Button/types.ts | 66 -------------- src/components/ClickOutSide/index.ts | 6 ++ .../ClickOutSide/{ => src}/index.vue | 3 +- src/components/Container/index.ts | 13 ++- .../Container/src/LazyContainer.vue | 32 ++----- .../Container/src/ScrollContainer.vue | 5 +- .../src/collapse/CollapseContainer.vue | 48 ++++------- .../Container/src/collapse/CollapseHeader.vue | 2 +- .../Container/src/{types.d.ts => types.ts} | 0 src/components/ContextMenu/index.ts | 1 + src/components/ContextMenu/src/props.ts | 18 ++-- src/components/ContextMenu/src/types.ts | 2 +- src/components/CountTo/index.ts | 8 +- src/components/CountTo/src/props.ts | 55 +++--------- src/components/Description/src/index.tsx | 31 +++---- src/components/Description/src/props.ts | 29 ++----- src/components/Description/src/types.ts | 1 + .../Description/src/useDescription.ts | 7 +- src/components/Dropdown/index.ts | 7 +- src/components/Dropdown/src/Dropdown.tsx | 1 - src/components/Excel/index.ts | 12 ++- src/components/Excel/src/Export2Excel.ts | 6 +- src/components/Excel/src/ExportExcelModel.vue | 1 - src/components/Form/src/FormAction.tsx | 6 +- src/components/Form/src/types/form.ts | 7 +- src/components/Icon/index.tsx | 55 ++++++------ src/components/Markdown/index.ts | 6 +- src/components/Markdown/src/index.vue | 30 ++----- src/components/Modal/src/BasicModal.tsx | 2 +- src/components/Page/index.ts | 6 ++ .../src/PageFooter.vue} | 3 +- src/components/StrengthMeter/index.tsx | 86 +------------------ .../StrengthMeter/{ => src}/index.less | 2 +- src/components/StrengthMeter/src/index.tsx | 77 +++++++++++++++++ .../Table/src/components/TableAction.tsx | 2 +- .../Table/src/components/renderEditable.tsx | 6 +- .../Table/src/components/renderExpandIcon.tsx | 1 - src/components/Tinymce/index.ts | 6 +- src/components/Tinymce/src/Editor.vue | 5 +- .../Transition/src/CreateTransition.tsx | 8 -- src/components/Verify/index.ts | 9 +- src/components/VirtualScroll/index.ts | 7 +- src/components/VirtualScroll/src/index.tsx | 60 ++++++++----- src/components/registerGlobComp.ts | 2 +- src/components/util.ts | 1 + src/layouts/default/LayoutTrigger.tsx | 13 ++- .../default/header/LayoutBreadcrumb.tsx | 4 +- src/layouts/default/header/LayoutHeader.tsx | 6 +- .../default/header/notice/NoticeList.vue | 2 +- src/layouts/default/lock/LockAction.tsx | 2 +- src/layouts/default/menu/index.tsx | 27 +++--- src/layouts/default/setting/SettingDrawer.tsx | 2 +- src/locales/index.ts | 1 - src/main.ts | 4 +- src/router/routes/modules/demo/form.ts | 16 ++-- src/store/modules/user.ts | 3 +- src/utils/http/axios/checkStatus.ts | 3 +- src/utils/http/axios/index.ts | 3 +- src/utils/propTypes.ts | 40 +++++++++ src/views/demo/comp/strength-meter/index.vue | 2 +- src/views/demo/feat/click-out-side/index.vue | 2 +- src/views/demo/page/desc/basic/data.tsx | 2 +- src/views/demo/page/form/high/index.vue | 8 +- src/views/sys/login/Login.vue | 2 +- yarn.lock | 2 +- 80 files changed, 528 insertions(+), 630 deletions(-) create mode 100644 src/components/Breadcrumb/index.ts rename src/components/Breadcrumb/{ => src}/Breadcrumb.vue (85%) rename src/components/Breadcrumb/{ => src}/BreadcrumbItem.vue (86%) create mode 100644 src/components/Button/index.ts rename src/components/Button/{index.vue => src/BasicButton.vue} (53%) delete mode 100644 src/components/Button/types.ts create mode 100644 src/components/ClickOutSide/index.ts rename src/components/ClickOutSide/{ => src}/index.vue (87%) rename src/components/Container/src/{types.d.ts => types.ts} (100%) create mode 100644 src/components/Page/index.ts rename src/components/{Application/src/AppPageFooter.vue => Page/src/PageFooter.vue} (97%) rename src/components/StrengthMeter/{ => src}/index.less (96%) create mode 100644 src/components/StrengthMeter/src/index.tsx create mode 100644 src/utils/propTypes.ts diff --git a/CHANGELOG.zh_CN.md b/CHANGELOG.zh_CN.md index bcbc45ed7bb..578ba70be92 100644 --- a/CHANGELOG.zh_CN.md +++ b/CHANGELOG.zh_CN.md @@ -1,16 +1,23 @@ ## Wip +## (破坏性更新) Breaking changes + +- ClickOutSide 组件引入方式由 `import ClickOutSide from '/@/components/ClickOutSide/index.vue'`变更为`import { ClickOutSide } from '/@/components/ClickOutSide'` +- Button 组件引入方式由 `import ClickOutSide from '/@/components/Button/index.vue'`变更为`import { Button } from '/@/components/Button'` +- StrengthMeter 组件引入方式由 `import StrengthMeter from '/@/components/StrengthMeter'`变更为`import { StrengthMeter } from '/@/components/StrengthMeter'` +- 除示例外加入全局国际化功能,支持中文与英文 + ### ✨ Refactor - 重构整体 layout。更改代码实现方式。代码更精简 - 配置项重构 - 移除 messageSetting 配置 +- BasicTitle 组件 `showSpan`=> `span` ### ✨ Features - 缓存可以配置是否加密,默认生产环境开启 Aes 加密 - 新增标签页拖拽排序 -- 除示例外加入全局国际化功能,支持中文与英文 ### 🎫 Chores diff --git a/README.md b/README.md index 1c349a4521f..4b5ae359463 100644 --- a/README.md +++ b/README.md @@ -69,7 +69,7 @@ ### 环境要求 - `Node.js`: - 版本最好大于 `12.0.0` -- `yarn` > `npm` > `cnpm`: - 包管理工具. +- `yarn` : - 包管理工具. ### UI 框架 diff --git a/package.json b/package.json index 20ba327baef..5e0b1f5dbbf 100644 --- a/package.json +++ b/package.json @@ -38,6 +38,7 @@ "vue": "^3.0.3", "vue-i18n": "^9.0.0-beta.8", "vue-router": "^4.0.0-rc.5", + "vue-types": "^3.0.1", "vuex": "^4.0.0-rc.2", "vuex-module-decorators": "^1.0.1", "xlsx": "^0.16.9", diff --git a/src/components/Application/index.ts b/src/components/Application/index.ts index 96205d7fe1d..1b4ea892aeb 100644 --- a/src/components/Application/index.ts +++ b/src/components/Application/index.ts @@ -1,8 +1,7 @@ import AppLocalePicker from './src/AppLocalePicker.vue'; -import AppPageFooter from './src/AppPageFooter.vue'; import AppLogo from './src/AppLogo.vue'; import { withInstall } from '../util'; -export { AppLocalePicker, AppPageFooter, AppLogo }; +export { AppLocalePicker, AppLogo }; -export default withInstall(AppLocalePicker, AppPageFooter, AppLogo); +export default withInstall(AppLocalePicker, AppLogo); diff --git a/src/components/Application/src/AppLocalePicker.vue b/src/components/Application/src/AppLocalePicker.vue index 397203d0457..48ab5bd7183 100644 --- a/src/components/Application/src/AppLocalePicker.vue +++ b/src/components/Application/src/AppLocalePicker.vue @@ -23,18 +23,16 @@ import { LocaleType } from '/@/locales/types'; + import { propTypes } from '/@/utils/propTypes'; + export default defineComponent({ name: 'AppLocalPicker', components: { GlobalOutlined, Dropdown }, props: { - showText: { - type: Boolean, - default: true, - }, - reload: { - type: Boolean, - default: false, - }, + // Whether to display text + showText: propTypes.bool.def(true), + // Whether to refresh the interface when changing + reload: propTypes.bool, }, setup(props) { const { localeList } = useLocaleSetting(); diff --git a/src/components/Application/src/AppLogo.vue b/src/components/Application/src/AppLogo.vue index 980c3abd0a3..6ce85ef6a41 100644 --- a/src/components/Application/src/AppLogo.vue +++ b/src/components/Application/src/AppLogo.vue @@ -9,7 +9,6 @@ diff --git a/src/components/Basic/src/BasicHelp.vue b/src/components/Basic/src/BasicHelp.vue index 2905f6772a7..967fa5b21de 100644 --- a/src/components/Basic/src/BasicHelp.vue +++ b/src/components/Basic/src/BasicHelp.vue @@ -1,5 +1,5 @@ diff --git a/src/components/Breadcrumb/index.ts b/src/components/Breadcrumb/index.ts new file mode 100644 index 00000000000..f167962ddf7 --- /dev/null +++ b/src/components/Breadcrumb/index.ts @@ -0,0 +1,7 @@ +import Breadcrumb from './src/Breadcrumb.vue'; +import BreadcrumbItem from './src/BreadcrumbItem.vue'; +import { withInstall } from '../util'; + +export { Breadcrumb, BreadcrumbItem }; + +export default withInstall(Breadcrumb, BreadcrumbItem); diff --git a/src/components/Breadcrumb/Breadcrumb.vue b/src/components/Breadcrumb/src/Breadcrumb.vue similarity index 85% rename from src/components/Breadcrumb/Breadcrumb.vue rename to src/components/Breadcrumb/src/Breadcrumb.vue index d1f30612d6e..ed25a3461de 100644 --- a/src/components/Breadcrumb/Breadcrumb.vue +++ b/src/components/Breadcrumb/src/Breadcrumb.vue @@ -5,20 +5,14 @@