From d95fab75a7f1b86d9eb48f7d2818b97070b5d36a Mon Sep 17 00:00:00 2001 From: LiuHao <liuhaoai545@gmail.com> Date: 星期日, 02 四月 2023 14:15:47 +0800 Subject: [PATCH] perf element global config --- src/assets/styles/index.scss | 6 ++++-- src/types/components.d.ts | 1 + src/assets/styles/element-ui.scss | 8 ++------ src/layout/components/Settings/index.vue | 4 +++- src/App.vue | 8 +++++++- src/components/SizeSelect/index.vue | 5 +---- src/types/auto-imports.d.ts | 4 ---- src/main.ts | 15 --------------- 8 files changed, 18 insertions(+), 33 deletions(-) diff --git a/src/App.vue b/src/App.vue index 0f25eb6..d073319 100644 --- a/src/App.vue +++ b/src/App.vue @@ -1,10 +1,16 @@ <template> - <router-view /> + <el-config-provider :locale="appStore.locale" :size="size"> + <router-view /> + </el-config-provider> </template> <script setup lang="ts"> import useSettingsStore from '@/store/modules/settings' import { handleThemeStyle } from '@/utils/theme' +import useAppStore from '@/store/modules/app'; + +const appStore = useAppStore(); +const size = computed(() => appStore.size as any); onMounted(() => { nextTick(() => { diff --git a/src/assets/styles/element-ui.scss b/src/assets/styles/element-ui.scss index cad21e6..44731b6 100644 --- a/src/assets/styles/element-ui.scss +++ b/src/assets/styles/element-ui.scss @@ -88,14 +88,10 @@ box-sizing: content-box; } -.el-menu--collapse > div > .el-submenu > .el-submenu__title .el-submenu__icon-arrow { +.el-menu--collapse>div>.el-submenu>.el-submenu__title .el-submenu__icon-arrow { display: none; } .el-dropdown .el-dropdown-link { color: var(--el-color-primary) !important; -} - -.el-dialog { - border-radius: 3% !important; -} +} \ No newline at end of file diff --git a/src/assets/styles/index.scss b/src/assets/styles/index.scss index db6fe82..dd052f6 100644 --- a/src/assets/styles/index.scss +++ b/src/assets/styles/index.scss @@ -6,7 +6,8 @@ @import './btn.scss'; @import './ruoyi.scss'; @import 'animate.css'; -//@import 'element-plus/dist/index.css'; +// @import 'element-plus/dist/index.css'; + body { height: 100%; margin: 0; @@ -127,6 +128,7 @@ .app-container { padding: 20px; } + // search闈㈡澘鏍峰紡 .panel, .search { @@ -204,4 +206,4 @@ .multiselect--active { z-index: 1000 !important; -} +} \ No newline at end of file diff --git a/src/components/SizeSelect/index.vue b/src/components/SizeSelect/index.vue index a2b38d6..fb28e05 100644 --- a/src/components/SizeSelect/index.vue +++ b/src/components/SizeSelect/index.vue @@ -1,10 +1,9 @@ <script setup lang="ts"> import useAppStore from "@/store/modules/app"; -import { ComponentInternalInstance } from "vue"; const appStore = useAppStore(); const size = computed(() => appStore.size); -const { proxy } = getCurrentInstance() as ComponentInternalInstance; + const sizeOptions = ref([ { label: "杈冨ぇ", value: "large" }, { label: "榛樿", value: "default" }, @@ -12,9 +11,7 @@ ]); const handleSetSize = (size: string) => { - proxy?.$modal.loading("姝e湪璁剧疆甯冨眬澶у皬锛岃绋嶅��..."); appStore.setSize(size); - setTimeout("window.location.reload()", 1000); } </script> diff --git a/src/layout/components/Settings/index.vue b/src/layout/components/Settings/index.vue index 132a7ed..9bd345f 100644 --- a/src/layout/components/Settings/index.vue +++ b/src/layout/components/Settings/index.vue @@ -11,6 +11,8 @@ const appStore = useAppStore() const settingsStore = useSettingsStore() const permissionStore = usePermissionStore() + + const showSettings = ref(false); const theme = ref(settingsStore.theme); const sideTheme = ref(settingsStore.sideTheme); @@ -99,7 +101,7 @@ </script> <template> - <el-drawer v-model="showSettings" :withHeader="false" direction="rtl" size="300px"> + <el-drawer v-model="showSettings" :withHeader="false" direction="rtl" size="300px" close-on-click-modal> <div class="setting-drawer-title"> <h3 class="drawer-title">涓婚椋庢牸璁剧疆</h3> </div> diff --git a/src/main.ts b/src/main.ts index bef444b..32d2c45 100644 --- a/src/main.ts +++ b/src/main.ts @@ -1,9 +1,4 @@ import { createApp } from 'vue'; -import Cookies from 'js-cookie'; -// element-plus -import ElementPlus from 'element-plus'; -import locale from 'element-plus/lib/locale/lang/zh-cn'; - // global css import 'uno.css'; import '@/assets/styles/index.scss'; @@ -54,15 +49,5 @@ app.use(plugins); // 鑷畾涔夋寚浠� directive(app); - -// 浣跨敤element-plus 骞朵笖璁剧疆鍏ㄥ眬鐨勫ぇ灏� -app.use(ElementPlus, { - locale: locale, - // 鏀寔 large銆乨efault銆乻mall - size: Cookies.get('size') || 'default' -}); - -// 淇敼 el-dialog 榛樿鐐瑰嚮閬収涓轰笉鍏抽棴 -(app._context.components.ElDialog as any).props.closeOnClickModal.default = false; app.mount('#app'); diff --git a/src/types/auto-imports.d.ts b/src/types/auto-imports.d.ts index 6ced9ee..9e54a50 100644 --- a/src/types/auto-imports.d.ts +++ b/src/types/auto-imports.d.ts @@ -8,8 +8,6 @@ const ElMessageBox: typeof import('element-plus/es')['ElMessageBox'] const ElNotification: typeof import('element-plus/es')['ElNotification'] const ElSelect: typeof import('element-plus/es')['ElSelect'] - const ElTable: typeof import('element-plus/es')['ElTable'] - const ElTreeSelect: typeof import('element-plus/es')['ElTreeSelect'] const acceptHMRUpdate: typeof import('pinia')['acceptHMRUpdate'] const asyncComputed: typeof import('@vueuse/core')['asyncComputed'] const autoResetRef: typeof import('@vueuse/core')['autoResetRef'] @@ -295,8 +293,6 @@ readonly ElMessageBox: UnwrapRef<typeof import('element-plus/es')['ElMessageBox']> readonly ElNotification: UnwrapRef<typeof import('element-plus/es')['ElNotification']> readonly ElSelect: UnwrapRef<typeof import('element-plus/es')['ElSelect']> - readonly ElTable: UnwrapRef<typeof import('element-plus/es')['ElTable']> - readonly ElTreeSelect: UnwrapRef<typeof import('element-plus/es')['ElTreeSelect']> readonly acceptHMRUpdate: UnwrapRef<typeof import('pinia')['acceptHMRUpdate']> readonly asyncComputed: UnwrapRef<typeof import('@vueuse/core')['asyncComputed']> readonly autoResetRef: UnwrapRef<typeof import('@vueuse/core')['autoResetRef']> diff --git a/src/types/components.d.ts b/src/types/components.d.ts index 1c855e4..9f02c4b 100644 --- a/src/types/components.d.ts +++ b/src/types/components.d.ts @@ -17,6 +17,7 @@ ElCheckbox: typeof import('element-plus/es')['ElCheckbox'] ElCol: typeof import('element-plus/es')['ElCol'] ElColorPicker: typeof import('element-plus/es')['ElColorPicker'] + ElConfigProvider: typeof import('element-plus/es')['ElConfigProvider'] ElDatePicker: typeof import('element-plus/es')['ElDatePicker'] ElDialog: typeof import('element-plus/es')['ElDialog'] ElDivider: typeof import('element-plus/es')['ElDivider'] -- Gitblit v1.9.3