89 lines
3.2 KiB
TypeScript
89 lines
3.2 KiB
TypeScript
import { h, defineComponent } from "vue";
|
||
import { Icon as IconifyIcon, addIcon } from "@iconify/vue/dist/offline";
|
||
|
||
// element-plus icon
|
||
import Check from "@iconify-icons/ep/check";
|
||
import HomeFilled from "@iconify-icons/ep/home-filled";
|
||
import Lollipop from "@iconify-icons/ep/lollipop";
|
||
import RefreshRight from "@iconify-icons/ep/refresh-right";
|
||
import Close from "@iconify-icons/ep/close";
|
||
import CloseBold from "@iconify-icons/ep/close-bold";
|
||
import Bell from "@iconify-icons/ep/bell";
|
||
import Search from "@iconify-icons/ep/search";
|
||
addIcon("check", Check);
|
||
addIcon("home-filled", HomeFilled);
|
||
addIcon("lollipop", Lollipop);
|
||
addIcon("refresh-right", RefreshRight);
|
||
addIcon("close", Close);
|
||
addIcon("close-bold", CloseBold);
|
||
addIcon("bell", Bell);
|
||
addIcon("search", Search);
|
||
|
||
// remixicon
|
||
import ArrowRightSLine from "@iconify-icons/ri/arrow-right-s-line";
|
||
import ArrowLeftSLine from "@iconify-icons/ri/arrow-left-s-line";
|
||
import LogoutCircleRLine from "@iconify-icons/ri/logout-circle-r-line";
|
||
import InformationLine from "@iconify-icons/ri/information-line";
|
||
import ArrowUpLine from "@iconify-icons/ri/arrow-up-line";
|
||
import ArrowDownLine from "@iconify-icons/ri/arrow-down-line";
|
||
import Bookmark2Line from "@iconify-icons/ri/bookmark-2-line";
|
||
import User from "@iconify-icons/ri/user-3-fill";
|
||
import Lock from "@iconify-icons/ri/lock-fill";
|
||
import MenuUnfold from "@iconify-icons/ri/menu-unfold-fill";
|
||
import MenuFold from "@iconify-icons/ri/menu-fold-fill";
|
||
import Setting from "@iconify-icons/ri/settings-3-line";
|
||
import ArrowDown from "@iconify-icons/ri/arrow-down-s-line";
|
||
import CloseLeftTags from "@iconify-icons/ri/text-direction-r";
|
||
import CloseRightTags from "@iconify-icons/ri/text-direction-l";
|
||
import CloseOtherTags from "@iconify-icons/ri/text-spacing";
|
||
import CloseAllTags from "@iconify-icons/ri/subtract-line";
|
||
import Fullscreen from "@iconify-icons/ri/fullscreen-fill";
|
||
import ExitFullscreen from "@iconify-icons/ri/fullscreen-exit-fill";
|
||
addIcon("arrow-right-s-line", ArrowRightSLine);
|
||
addIcon("arrow-left-s-line", ArrowLeftSLine);
|
||
addIcon("logout-circle-r-line", LogoutCircleRLine);
|
||
addIcon("information-line", InformationLine);
|
||
addIcon("arrow-up-line", ArrowUpLine);
|
||
addIcon("arrow-down-line", ArrowDownLine);
|
||
addIcon("bookmark-2-line", Bookmark2Line);
|
||
addIcon("user", User);
|
||
addIcon("lock", Lock);
|
||
addIcon("menu-unfold", MenuUnfold);
|
||
addIcon("menu-fold", MenuFold);
|
||
addIcon("setting", Setting);
|
||
addIcon("arrow-down", ArrowDown);
|
||
addIcon("close-left-tags", CloseLeftTags);
|
||
addIcon("close-right-tags", CloseRightTags);
|
||
addIcon("close-other-tags", CloseOtherTags);
|
||
addIcon("close-all-tags", CloseAllTags);
|
||
addIcon("fullscreen", Fullscreen);
|
||
addIcon("exit-fullscreen", ExitFullscreen);
|
||
|
||
// Iconify Icon在Vue里离线使用(用于内网环境)https://docs.iconify.design/icon-components/vue/offline.html
|
||
export default defineComponent({
|
||
name: "IconifyIconOffline",
|
||
components: { IconifyIcon },
|
||
props: {
|
||
icon: {
|
||
type: String,
|
||
default: ""
|
||
}
|
||
},
|
||
render() {
|
||
const attrs = this.$attrs;
|
||
return h(
|
||
IconifyIcon,
|
||
{
|
||
icon: `${this.icon}`,
|
||
style: attrs?.style
|
||
? Object.assign(attrs.style, { outline: "none" })
|
||
: { outline: "none" },
|
||
...attrs
|
||
},
|
||
{
|
||
default: () => []
|
||
}
|
||
);
|
||
}
|
||
});
|