UNPKG

cyber-web-ui

Version:
67 lines 1.74 kB
import { createVNode as _createVNode } from "vue"; import { defineComponent, computed } from "vue"; var Icon = defineComponent({ name: "CIcon", props: { // 图标标识 icon: { type: String, default: "" }, // 图标大小 size: { type: String, default: '12px' }, // 自定义颜色 color: { type: String, default: '' }, // 是否为svg isSvg: { type: Boolean, default: false } }, setup: function setup(props, _ref) { var attrs = _ref.attrs, slots = _ref.slots, emit = _ref.emit, expose = _ref.expose; var size = computed(function () { if (typeof props.size == 'number') { return props.size + 'px'; } else if (typeof props.size == 'string') { return props.size.replace('px', '') + 'px'; } else { return; } }); return function () { var _slots$default; return props.isSvg // svg图标 ? _createVNode("svg", { "class": "cyber-iconfont icon cyber-svg-icon", "style": { fontSize: size.value, minWidth: size.value } }, [_createVNode("use", { "xlink:href": "#".concat(props.icon) }, null)]) // 字体图标 : _createVNode("span", { "class": ['cyber-iconfont', /^cyber\-/.test(props.icon) ? 'cyber-icon' : 'iconfont', props.icon], "style": { fontSize: size.value, color: props.color || undefined } }, [(_slots$default = slots.default) === null || _slots$default === void 0 ? void 0 : _slots$default.call(slots)]); }; } }); Icon.install = function (app) { app.component(Icon.name, Icon); }; export default Icon;