From ce70bc450a2401997bb850f89f3c4dc0a23e0a72 Mon Sep 17 00:00:00 2001 From: zhongshujie <2862698242@qq.com> Date: 星期五, 05 九月 2025 18:38:13 +0800 Subject: [PATCH] 31 数字化口腔修复技术 整本 --- src/assets/icons/index.js | 28 ++++++++++++++++++++++++---- 1 files changed, 24 insertions(+), 4 deletions(-) diff --git a/src/assets/icons/index.js b/src/assets/icons/index.js index a7af535..ee00fce 100644 --- a/src/assets/icons/index.js +++ b/src/assets/icons/index.js @@ -2,9 +2,29 @@ import svgIcon from "@/components/svgIcon/index.vue"; Vue.component("svg-icon", svgIcon); -const req = require.context("@/assets/icons/svg", false, /\.svg$/); +// 淇敼涓哄皢SVG娉ㄥ叆鍒扮埗搴旂敤DOM +const requireContext = require.context("@/assets/icons/svg", false, /\.svg$/); const requireAll = (requireContext) => { - // requireContext.keys()鏁版嵁锛歔'./404.svg', './agency.svg', './det.svg', './user.svg'] - requireContext.keys().map(requireContext); + const svgSymbols = requireContext.keys().map(key => { + return requireContext(key).default || requireContext(key); + }); + + // 鍒涘缓SVG sprite瀹瑰櫒 + const spriteContainer = document.createElement('div'); + spriteContainer.id = 'svg-sprite-container'; + spriteContainer.style.display = 'none'; + + // 鏋勫缓SVG sprite + const svgSprite = ` + <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> + ${svgSymbols.join('')} + </svg> + `; + + spriteContainer.innerHTML = svgSprite; + + // 鍏抽敭锛氭敞鍏ュ埌鐖跺簲鐢ㄧ殑body涓� + (window.parent || window).document.body.appendChild(spriteContainer); }; -requireAll(req); + +requireAll(requireContext); -- Gitblit v1.9.1