mt-ui-components-vue3
Version:
玛果添实UI组件库(Vue3)
46 lines (45 loc) • 1.41 kB
JavaScript
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);
};
}
});