cyber-web-ui
Version:
spring-cyber前端ui框架
72 lines (71 loc) • 1.84 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _vue = require("vue");
var Icon = (0, _vue.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 = (0, _vue.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图标
? (0, _vue.createVNode)("svg", {
"class": "cyber-iconfont icon cyber-svg-icon",
"style": {
fontSize: size.value,
minWidth: size.value
}
}, [(0, _vue.createVNode)("use", {
"xlink:href": "#".concat(props.icon)
}, null)]) // 字体图标
: (0, _vue.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);
};
var _default = exports.default = Icon;