From 23f5dc9c14200b7a11010035bd69ad7f871eca3a Mon Sep 17 00:00:00 2001
From: pany <939630029@qq.com>
Date: Fri, 22 Nov 2024 16:06:31 +0800
Subject: [PATCH] =?UTF-8?q?refactor:=20=E6=9B=B4=E6=94=B9=20svg=20icons=20?=
 =?UTF-8?q?=E7=9B=AE=E5=BD=95=E7=BB=93=E6=9E=84?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 src/assets/icons/{svg => }/404.svg                          | 0
 src/assets/icons/{svg => }/bug.svg                          | 0
 src/assets/icons/{svg => }/component.svg                    | 0
 src/assets/icons/{svg => }/dashboard.svg                    | 0
 src/assets/icons/{svg => }/fullscreen-exit.svg              | 0
 src/assets/icons/{svg => }/fullscreen.svg                   | 0
 src/assets/icons/{svg => }/keyboard-down.svg                | 0
 src/assets/icons/{svg => }/keyboard-enter.svg               | 0
 src/assets/icons/{svg => }/keyboard-esc.svg                 | 0
 src/assets/icons/{svg => }/keyboard-up.svg                  | 0
 src/assets/icons/{svg => }/link.svg                         | 0
 src/assets/icons/{svg => }/lock.svg                         | 0
 src/assets/icons/{svg => }/menu.svg                         | 0
 src/assets/icons/{svg => }/search.svg                       | 0
 src/assets/icons/{svg => }/unocss.svg                       | 0
 src/main.ts                                                 | 3 ---
 .../{element-plus-icon => element-plus-icons}/index.ts      | 2 +-
 src/plugins/index.ts                                        | 6 ++++--
 src/{assets/icons => plugins/svg-icons}/index.ts            | 2 +-
 types/vue-router.d.ts                                       | 2 +-
 vite.config.ts                                              | 2 +-
 21 files changed, 8 insertions(+), 9 deletions(-)
 rename src/assets/icons/{svg => }/404.svg (100%)
 rename src/assets/icons/{svg => }/bug.svg (100%)
 rename src/assets/icons/{svg => }/component.svg (100%)
 rename src/assets/icons/{svg => }/dashboard.svg (100%)
 rename src/assets/icons/{svg => }/fullscreen-exit.svg (100%)
 rename src/assets/icons/{svg => }/fullscreen.svg (100%)
 rename src/assets/icons/{svg => }/keyboard-down.svg (100%)
 rename src/assets/icons/{svg => }/keyboard-enter.svg (100%)
 rename src/assets/icons/{svg => }/keyboard-esc.svg (100%)
 rename src/assets/icons/{svg => }/keyboard-up.svg (100%)
 rename src/assets/icons/{svg => }/link.svg (100%)
 rename src/assets/icons/{svg => }/lock.svg (100%)
 rename src/assets/icons/{svg => }/menu.svg (100%)
 rename src/assets/icons/{svg => }/search.svg (100%)
 rename src/assets/icons/{svg => }/unocss.svg (100%)
 rename src/plugins/{element-plus-icon => element-plus-icons}/index.ts (83%)
 rename src/{assets/icons => plugins/svg-icons}/index.ts (81%)

diff --git a/src/assets/icons/svg/404.svg b/src/assets/icons/404.svg
similarity index 100%
rename from src/assets/icons/svg/404.svg
rename to src/assets/icons/404.svg
diff --git a/src/assets/icons/svg/bug.svg b/src/assets/icons/bug.svg
similarity index 100%
rename from src/assets/icons/svg/bug.svg
rename to src/assets/icons/bug.svg
diff --git a/src/assets/icons/svg/component.svg b/src/assets/icons/component.svg
similarity index 100%
rename from src/assets/icons/svg/component.svg
rename to src/assets/icons/component.svg
diff --git a/src/assets/icons/svg/dashboard.svg b/src/assets/icons/dashboard.svg
similarity index 100%
rename from src/assets/icons/svg/dashboard.svg
rename to src/assets/icons/dashboard.svg
diff --git a/src/assets/icons/svg/fullscreen-exit.svg b/src/assets/icons/fullscreen-exit.svg
similarity index 100%
rename from src/assets/icons/svg/fullscreen-exit.svg
rename to src/assets/icons/fullscreen-exit.svg
diff --git a/src/assets/icons/svg/fullscreen.svg b/src/assets/icons/fullscreen.svg
similarity index 100%
rename from src/assets/icons/svg/fullscreen.svg
rename to src/assets/icons/fullscreen.svg
diff --git a/src/assets/icons/svg/keyboard-down.svg b/src/assets/icons/keyboard-down.svg
similarity index 100%
rename from src/assets/icons/svg/keyboard-down.svg
rename to src/assets/icons/keyboard-down.svg
diff --git a/src/assets/icons/svg/keyboard-enter.svg b/src/assets/icons/keyboard-enter.svg
similarity index 100%
rename from src/assets/icons/svg/keyboard-enter.svg
rename to src/assets/icons/keyboard-enter.svg
diff --git a/src/assets/icons/svg/keyboard-esc.svg b/src/assets/icons/keyboard-esc.svg
similarity index 100%
rename from src/assets/icons/svg/keyboard-esc.svg
rename to src/assets/icons/keyboard-esc.svg
diff --git a/src/assets/icons/svg/keyboard-up.svg b/src/assets/icons/keyboard-up.svg
similarity index 100%
rename from src/assets/icons/svg/keyboard-up.svg
rename to src/assets/icons/keyboard-up.svg
diff --git a/src/assets/icons/svg/link.svg b/src/assets/icons/link.svg
similarity index 100%
rename from src/assets/icons/svg/link.svg
rename to src/assets/icons/link.svg
diff --git a/src/assets/icons/svg/lock.svg b/src/assets/icons/lock.svg
similarity index 100%
rename from src/assets/icons/svg/lock.svg
rename to src/assets/icons/lock.svg
diff --git a/src/assets/icons/svg/menu.svg b/src/assets/icons/menu.svg
similarity index 100%
rename from src/assets/icons/svg/menu.svg
rename to src/assets/icons/menu.svg
diff --git a/src/assets/icons/svg/search.svg b/src/assets/icons/search.svg
similarity index 100%
rename from src/assets/icons/svg/search.svg
rename to src/assets/icons/search.svg
diff --git a/src/assets/icons/svg/unocss.svg b/src/assets/icons/unocss.svg
similarity index 100%
rename from src/assets/icons/svg/unocss.svg
rename to src/assets/icons/unocss.svg
diff --git a/src/main.ts b/src/main.ts
index b536d53..9e8b4d6 100644
--- a/src/main.ts
+++ b/src/main.ts
@@ -5,7 +5,6 @@ import { router } from "@/router"
 import { createApp } from "vue"
 import "@/router/permission"
 // load
-import { loadSvg } from "@/assets/icons"
 import { loadDirectives } from "@/directives"
 import { loadPlugins } from "@/plugins"
 // css
@@ -21,8 +20,6 @@ const app = createApp(App)
 
 // 加载插件
 loadPlugins(app)
-// 加载全局 SVG
-loadSvg(app)
 // 加载自定义指令
 loadDirectives(app)
 
diff --git a/src/plugins/element-plus-icon/index.ts b/src/plugins/element-plus-icons/index.ts
similarity index 83%
rename from src/plugins/element-plus-icon/index.ts
rename to src/plugins/element-plus-icons/index.ts
index 9a74db4..9b22128 100644
--- a/src/plugins/element-plus-icon/index.ts
+++ b/src/plugins/element-plus-icons/index.ts
@@ -1,7 +1,7 @@
 import type { App } from "vue"
 import * as ElementPlusIconsVue from "@element-plus/icons-vue"
 
-export function loadElementPlusIcon(app: App) {
+export function loadElementPlusIcons(app: App) {
   // 注册所有 Element Plus Icon
   for (const [key, component] of Object.entries(ElementPlusIconsVue)) {
     app.component(key, component)
diff --git a/src/plugins/index.ts b/src/plugins/index.ts
index a391748..7d84900 100644
--- a/src/plugins/index.ts
+++ b/src/plugins/index.ts
@@ -1,10 +1,12 @@
 import type { App } from "vue"
 import { loadElementPlus } from "./element-plus"
-import { loadElementPlusIcon } from "./element-plus-icon"
+import { loadElementPlusIcons } from "./element-plus-icons"
+import { loadSvgIcons } from "./svg-icons"
 import { loadVxeTable } from "./vxe-table"
 
 export function loadPlugins(app: App) {
   loadElementPlus(app)
-  loadElementPlusIcon(app)
+  loadElementPlusIcons(app)
   loadVxeTable(app)
+  loadSvgIcons(app)
 }
diff --git a/src/assets/icons/index.ts b/src/plugins/svg-icons/index.ts
similarity index 81%
rename from src/assets/icons/index.ts
rename to src/plugins/svg-icons/index.ts
index 433e764..9575884 100644
--- a/src/assets/icons/index.ts
+++ b/src/plugins/svg-icons/index.ts
@@ -2,6 +2,6 @@ import type { App } from "vue"
 import SvgIcon from "@/components/SvgIcon/index.vue" // Svg Component
 import "virtual:svg-icons-register"
 
-export function loadSvg(app: App) {
+export function loadSvgIcons(app: App) {
   app.component("SvgIcon", SvgIcon)
 }
diff --git a/types/vue-router.d.ts b/types/vue-router.d.ts
index 0cbfaeb..1a86473 100644
--- a/types/vue-router.d.ts
+++ b/types/vue-router.d.ts
@@ -9,7 +9,7 @@ declare module "vue-router" {
      */
     title?: string
     /**
-     * 设置该路由的图标,记得将 svg 导入 @/assets/icons/svg
+     * 设置该路由的图标,记得将 svg 导入 @/assets/icons
      */
     svgIcon?: string
     /**
diff --git a/vite.config.ts b/vite.config.ts
index 22115d7..081aa85 100644
--- a/vite.config.ts
+++ b/vite.config.ts
@@ -91,7 +91,7 @@ export default defineConfig(({ mode }) => {
       svgLoader({ defaultImport: "url" }),
       // 生成 SVG 雪碧图
       createSvgIconsPlugin({
-        iconDirs: [resolve(root, "src/assets/icons/svg")],
+        iconDirs: [resolve(root, "src/assets/icons")],
         symbolId: "icon-[dir]-[name]"
       }),
       // 原子化 CSS