<template>
  <i class="def-icon">
    <!--本地图标-->
    <template v-if="cIsLocalIcon">
      <local-icon :icon="icon" />
      <!--      <svg class="svg-icon" aria-hidden="true">
        <use :xlink:href="iconName" />
      </svg>-->
    </template>
    <!--element-plus图标-->
    <template v-else>
      <el-icon class="svg-icon">
        <component :is="`el-icon-${icon}`" />
      </el-icon>
    </template>
  </i>
</template>

<script lang="ts" setup>
import { computed } from 'vue'
/* 参数相关 */
const props = defineProps({
  icon: {
    // 图标名
    type: String,
    default: ''
  }
})
// 是否是本地图标
const cIsLocalIcon = computed(() => {
  // 本地图标名前缀加 'svg-'
  return props.icon?.startsWith('svg-')
})
/**
 * 项目内本地图标
 */
// const iconName = computed(() => `#${props.icon}`) // 添加配置对应链接名
</script>

<style scoped lang="scss">
.svg-icon {
  overflow: hidden;
  width: 1em;
  height: 1em;
  outline: none;
  vertical-align: -0.15em;
  fill: currentcolor;
}
</style>
