song-ui-u
Version:
vue3 + js的PC前端组件库
106 lines (96 loc) • 3.04 kB
JavaScript
'use strict';
var vue = require('vue');
var index$1 = require('../../../hook/use-namespace/index.cjs');
var index = require('../../../hook/use-style/index.cjs');
require('../../../hook/use-zindex/index.cjs');
var types = require('../../../utils/types.cjs');
require('song-ui-pro-icon');
var _pluginVue_exportHelper = require('../../../_virtual/_plugin-vue_export-helper.cjs');
const __default__ = { name: "x-badge" };
const _sfc_main = /*#__PURE__*/Object.assign(__default__, {
props: {
value: {
type: [String, Number],
default: "",
},
placement: {
type: String,
default: "top-right",
},
type: {
type: String,
default: "danger",
},
size: {
type: String,
default: "default",
},
max: {
type: Number,
default: 99,
},
color: {
type: String,
default: "",
},
outline: {
type: Boolean,
default: true,
},
bgColor: {
type: String,
default: "",
},
isDot: Boolean,
opacity: {
tyep: Number,
default: 1,
},
classNames: {
type: String,
default: "",
},
},
setup(__props, { expose: __expose }) {
__expose();
const ns = index$1.useNamespace("badge");
const s = index.useStyle();
/** props */
const props = __props;
const content = vue.computed(() => {
const value = types.types().isNumber(props.value);
const max = types.types().isNumber(props.max);
if (value && max) {
return props.max < props.value ? `${props.max}+` : `${props.value}`;
}
return props.value;
});
const styleOpacity = vue.computed(() => s.opacity(props.opacity));
const styleBgColor = vue.computed(() => s.bgColor(props.bgColor));
const styleColor = vue.computed(() => s.color(props.color));
const __returned__ = { ns, s, props, content, styleOpacity, styleBgColor, styleColor, computed: vue.computed, get useNamespace() { return index$1.useNamespace }, get useStyle() { return index.useStyle }, get types() { return types.types } };
Object.defineProperty(__returned__, '__isScriptSetup', { enumerable: false, value: true });
return __returned__
}
});
function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
return (vue.openBlock(), vue.createElementBlock("span", {
class: vue.normalizeClass([$setup.ns.b()])
}, [
vue.createElementVNode("span", {
class: vue.normalizeClass([
$props.classNames,
$setup.ns.e('content'),
$setup.ns.m($props.type),
$setup.ns.m('size', $props.size),
$setup.ns.is('unoutline', !$props.outline),
$setup.ns.is('dot', $props.isDot),
]),
style: vue.normalizeStyle([$setup.styleOpacity, $setup.styleBgColor, $setup.styleColor])
}, vue.toDisplayString($props.isDot ? "" : $setup.content), 7 /* TEXT, CLASS, STYLE */),
vue.renderSlot(_ctx.$slots, "default")
], 2 /* CLASS */))
}
var Badge = /*#__PURE__*/_pluginVue_exportHelper(_sfc_main, [['render',_sfc_render],['__file',"E:\\code\\my-code\\song-ui-ultra\\packages\\components\\badge\\src\\index.vue"]]);
module.exports = Badge;
//# sourceMappingURL=index.vue.cjs.map