From ad3f964c324b9560c83edba2573bb91590d43e7e Mon Sep 17 00:00:00 2001 From: xiaoxian521 <1923740402@qq.com> Date: Fri, 21 Jan 2022 18:26:52 +0800 Subject: [PATCH] fix: vite@2.7.0-beta.8 build incompatible template --- src/components/ReIcon/index.ts | 65 +++++++++++++++++++++++++++++++++++++----- 1 file changed, 58 insertions(+), 7 deletions(-) diff --git a/src/components/ReIcon/index.ts b/src/components/ReIcon/index.ts index b4e8ba6..1557d08 100644 --- a/src/components/ReIcon/index.ts +++ b/src/components/ReIcon/index.ts @@ -1,4 +1,4 @@ -import { App, defineComponent } from "vue"; +import { h, App, defineComponent } from "vue"; import icon from "./src/Icon.vue"; import { FontAwesomeIcon } from "@fortawesome/vue-fontawesome"; import iconifyIconOffline from "./src/iconifyIconOffline"; @@ -44,11 +44,22 @@ export function findIcon(icon: String, type = "EL", property?: string) { if (type === "FA") { return defineComponent({ name: "FaIcon", - setup() { + data() { return { icon, property }; }, components: { FontAwesomeIcon }, - template: `` + render() { + return h( + FontAwesomeIcon, + { + icon: `${this.icon}`, + [property]: true + }, + { + default: () => [] + } + ); + } }); } else if (type === "fa") { return defineComponent({ @@ -56,7 +67,17 @@ export function findIcon(icon: String, type = "EL", property?: string) { data() { return { icon: `fa ${icon}` }; }, - template: `` + render() { + return h( + "i", + { + class: `${this.icon}` + }, + { + default: () => [] + } + ); + } }); } else if (type === "IF") { return defineComponent({ @@ -64,7 +85,17 @@ export function findIcon(icon: String, type = "EL", property?: string) { data() { return { icon: `iconfont ${icon}` }; }, - template: `` + render() { + return h( + "i", + { + class: `${this.icon}` + }, + { + default: () => [] + } + ); + } }); } else if (type === "RI") { return defineComponent({ @@ -72,7 +103,17 @@ export function findIcon(icon: String, type = "EL", property?: string) { data() { return { icon: `ri-${icon}` }; }, - template: `` + render() { + return h( + "i", + { + class: `${this.icon}` + }, + { + default: () => [] + } + ); + } }); } else if (type === "EL") { return defineComponent({ @@ -80,7 +121,17 @@ export function findIcon(icon: String, type = "EL", property?: string) { data() { return { icon }; }, - template: `` + render() { + return h( + IconifyIconOffline, + { + icon: `${this.icon}` + }, + { + default: () => [] + } + ); + } }); } else if (type === "SVG") { return icon;