scfs-ui/src/components/ElIcon.vue

37 lines
928 B
Vue

<script setup lang="ts">
import {reactive, toRefs} from 'vue'
import * as ElIcons from '@element-plus/icons-vue'
const prop = defineProps({
visible: {
type: Boolean,
default: false
}
})
const emits = defineEmits(['onIcon'])
const handleClose = (val: any) => {
// 触发自定义事件来通知父组件关闭弹窗
emits('onIcon',val)
}
let { visible } = toRefs(prop)
const state = reactive({
iconList: ElIcons,
})
const {iconList} = toRefs(state)
</script>
<template>
<el-dialog v-model="visible" title="图标"
@close="handleClose"
width="70%">
<el-icon v-for="icon in iconList" @click="$emit('onIcon', icon)" :size="30" color="#242e42"
style="border: 1px solid #e4e7ed;padding: 1rem;cursor: pointer;">
<component :is="icon"></component>
</el-icon>
</el-dialog>
</template>
<style lang="scss">
.el-dialog__header {
margin: 0 !important;
}
</style>