返回介绍

自定义图标【菜单以及直接使用】

发布于 2024-08-12 12:46:24 字数 2427 浏览 0 评论 0 收藏 0

说明

在2023/12/10后下载的版本即可使用,之前的版本请自行升级

使用

我们以文件 web/assets/icons/customer-gva.svg 为例,

只需要把svg文件放入前端 web/assets/icons/ 目录下即可自动注册,然后在菜单配置中选择使用或者直接使用标签<customer-gva></customer-gva>即可使用

svg文件不可以有宽和高,如果需要自动适配颜色,需要在svg文件中添加fill="currentColor"属性,如果使用特定颜色svg自行填充fill即可

实现代码 /web/core/global.js ```javascript

const createIconComponent = (svgContent) => ({ name: 'SvgIcon', props: { iconClass: { type: String, default: '', }, className: { type: String, default: '', }, }, render() { const { className } = this return h('span', { class: className, ariaHidden: true, innerHTML: svgContent, }) }, })

const registerIcons = async(app) => { const iconModules = import.meta.glob('@/assets/icons/*/.svg') for (const path in iconModules) { const response = await fetch(path) const svgContent = await response.text() const iconName = path.split('/').pop().replace(/.svg$/, '') const iconComponent = createIconComponent(svgContent) config.logs.push({ 'key': iconName, 'label': iconName, }) app.component(iconName, iconComponent) } }

```

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文