3.1 KiB
3.1 KiB
图标组件使用说明
功能特性
- 支持多种图标库:Ant Design、Element Plus、Carbon、IC、Lucide、Ri 等
- 支持自定义图标
- 支持图标选择器组件
- 支持离线模式
安装依赖
pnpm add @iconify/vue @iconify/json
使用方式
1. 基础图标组件 (Iconify)
<template>
<Iconify icon="ant-design:home-outlined" />
<Iconify icon="ep:home-filled" />
<Iconify icon="carbon:home" />
<Iconify icon="ic:baseline-home" />
<Iconify icon="lucide:home" />
<Iconify icon="ri:home-line" />
</template>
<script setup lang="ts">
import Iconify from '~/components/iconify.vue'
</script>
2. 自定义尺寸和颜色
<template>
<Iconify icon="ant-design:home-outlined" width="24" height="24" />
<Iconify icon="ant-design:home-outlined" width="32" height="32" color="#409eff" />
<Iconify icon="ant-design:home-outlined" size="1.5em" color="#67c23a" />
</template>
3. 图标选择器 (IconSelector)
<template>
<IconSelector v-model="selectedIcon" text="选择图标" width="300px" />
</template>
<script setup lang="ts">
import { ref } from 'vue'
import IconSelector from '~/components/icon-selector.vue'
const selectedIcon = ref('')
</script>
4. 监听图标选择事件
<template>
<IconSelector v-model="selectedIcon" @get-icon="handleGetIcon" />
</template>
<script setup lang="ts">
import { ref } from 'vue'
import IconSelector from '~/components/icon-selector.vue'
const selectedIcon = ref('')
const handleGetIcon = (icon: string) => {
console.log('选择的图标:', icon)
}
</script>
支持的图标库
| 图标库 | 前缀 | 示例 |
|---|---|---|
| Ant Design | ant-design |
ant-design:home-outlined |
| Element Plus | ep |
ep:home-filled |
| Carbon | carbon |
carbon:home |
| IC | ic |
ic:baseline-home |
| Lucide | lucide |
lucide:home |
| Ri | ri |
ri:home-line |
自定义添加图标库
1. 安装图标库
pnpm add @iconify-json/your-icon-library
2. 在 load-icon.ts 中添加
import YourIcons from '@iconify/json/json/your-icon-library.json'
addCollection(YourIcons)
3. 在 icon-selector.vue 中添加
const iconifyPrefixs = ['ant-design', 'carbon', 'ic', 'lucide', 'ep', 'ri', 'your-icon-library']
配置说明
离线模式
在 .env 文件中配置:
VITE_APP_ICON_OFFLINE=true
VITE_APP_ICONIFY_PREFIX=ant-design,carbon,ic,lucide,ep,ri
图标选择器配置
| 属性 | 类型 | 默认值 | 说明 |
|---|---|---|---|
| modelValue | string | '' | v-model 绑定的图标值 |
| text | string | '图标选择器' | 显示文本 |
| width | string | '200px' | 组件宽度 |
| size | string | 'default' | 组件大小:large/default/small |
| disabled | boolean | false | 是否禁用 |
注意事项
- 图标名称格式:
图标库名称:图标名称 - 离线模式下需要预先加载所有图标数据
- 图标选择器支持搜索功能
- 图标选择器支持分页显示
示例代码
完整示例请参考项目中的使用场景。