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