import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2"; import { createVNode as _createVNode } from "vue"; import { defineComponent, createVNode, watchEffect } from 'vue'; import * as $Icon from '@ant-design/icons-vue'; import { createFromIconfontCN } from '@ant-design/icons-vue'; import './iconfont'; var MyIcon = createFromIconfontCN({ scriptUrl: '//at.alicdn.com/t/font_8d5l8fzk5b87iudi.js' // 在 iconfont.cn 上生成 }); var aIcon = $Icon; var AntdIcon = function AntdIcon(props) { return createVNode(aIcon[props.type]); }; var Icon = function Icon(props) { return Object.keys(aIcon).includes(props.type) ? _createVNode(AntdIcon, props, null) : _createVNode(MyIcon, props, null); }; export default defineComponent({ name: 'AIcon', // 传入组件配置 props: ['type', 'scriptUrl', 'class'], emits: ['click'], setup: function setup(props, _ref) { var emit = _ref.emit, attrs = _ref.attrs; watchEffect(function () { if (props.scriptUrl) { MyIcon = createFromIconfontCN({ scriptUrl: props.scriptUrl }); } }); var click = function click() { emit('click'); }; // const render = () => { // return // }; return function () { return _createVNode(Icon, _objectSpread(_objectSpread({}, props), {}, { "style": attrs.style, "onClick": click }), null); }; } });