uni-ticket-system/dist/dev/mp-weixin/tmui/components/tm-badge/tm-badge.js
2023-12-05 10:11:10 +08:00

235 lines
7.0 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

"use strict";
var __defProp = Object.defineProperty;
var __defProps = Object.defineProperties;
var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
var __hasOwnProp = Object.prototype.hasOwnProperty;
var __propIsEnum = Object.prototype.propertyIsEnumerable;
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
var __spreadValues = (a, b) => {
for (var prop in b || (b = {}))
if (__hasOwnProp.call(b, prop))
__defNormalProp(a, prop, b[prop]);
if (__getOwnPropSymbols)
for (var prop of __getOwnPropSymbols(b)) {
if (__propIsEnum.call(b, prop))
__defNormalProp(a, prop, b[prop]);
}
return a;
};
var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
const common_vendor = require("../../../common/vendor.js");
const tmui_tool_lib_minxs = require("../../tool/lib/minxs.js");
require("../../tool/theme/theme.js");
require("../../tool/theme/colortool.js");
require("../../tool/lib/interface.js");
if (!Math) {
(tmText + tmIcon + tmSheet)();
}
const tmSheet = () => "../tm-sheet/tm-sheet.js";
const tmText = () => "../tm-text/tm-text.js";
const tmIcon = () => "../tm-icon/tm-icon.js";
const _sfc_main = /* @__PURE__ */ common_vendor.defineComponent({
__name: "tm-badge",
props: __spreadProps(__spreadValues({}, tmui_tool_lib_minxs.custom_props), {
round: {
type: [Number],
default: 6
},
border: {
type: [Number],
default: 0
},
margin: {
type: Array,
default: () => [0, 0]
},
padding: {
type: Array,
default: () => [0, 0]
},
transprent: {
type: [Boolean],
default: false
},
label: {
type: String,
default: ""
},
fontSize: {
type: Number,
default: 22
},
//为真时,隐藏插槽数据,展现状态文本模式。
status: {
type: [Boolean],
default: false
},
dot: {
type: [Boolean],
default: false
},
icon: {
type: [String],
default: ""
},
//如果count为数字时显示数字角标如果为string是显示文本角标。
count: {
type: [Number, String],
default: 0
},
maxCount: {
type: [Number],
default: 999
},
top: {
type: [Number],
default: 0
},
right: {
type: [Number],
default: 0
}
}),
emits: ["click"],
setup(__props, { emit: emits }) {
const props = __props;
const customCSSStyle = common_vendor.computed(() => tmui_tool_lib_minxs.computedStyle(props));
const customClass = common_vendor.computed(() => tmui_tool_lib_minxs.computedClass(props));
const istext = common_vendor.computed(() => {
return isNaN(parseInt(String(props.count)));
});
const show = common_vendor.computed(() => {
if (!props.dot && !props.icon && !props.count)
return false;
return true;
});
const size = common_vendor.computed(() => {
if (props.status || props.dot) {
return {
w: 12,
h: 12,
pr: 6,
t: 3
};
}
if (props.icon) {
let p = props.fontSize * 1.6;
return {
w: p,
h: p,
pr: 12,
t: 10
};
}
if (isNaN(parseInt(String(props.count)))) {
return {
w: 0,
h: 0,
pr: 10,
t: 10
};
}
if (props.count < 10) {
return {
w: 30,
h: 30,
pr: 12,
t: 10
};
}
if (props.count >= 10) {
return {
w: 0,
h: 0,
pr: 10,
t: 10
};
}
return {
w: 0,
h: 0,
pr: 0,
t: 0
};
});
const _icon = common_vendor.computed(() => props.icon);
const _dot = common_vendor.computed(() => props.dot);
const _count = common_vendor.computed(() => props.count);
return (_ctx, _cache) => {
return common_vendor.e({
a: !props.status
}, !props.status ? {} : {}, {
b: common_vendor.unref(show)
}, common_vendor.unref(show) ? common_vendor.e({
c: common_vendor.unref(_count) > 0 && !common_vendor.unref(istext)
}, common_vendor.unref(_count) > 0 && !common_vendor.unref(istext) ? {
d: common_vendor.p({
color: "white",
["font-size"]: props.fontSize,
_class: common_vendor.unref(size).h == 0 ? "py-3 px-6" : "",
label: common_vendor.unref(_count) > props.maxCount ? props.maxCount + "+" : common_vendor.unref(_count)
})
} : {}, {
e: common_vendor.unref(_count) && common_vendor.unref(istext)
}, common_vendor.unref(_count) && common_vendor.unref(istext) ? {
f: common_vendor.p({
color: "white",
["font-size"]: props.fontSize,
_class: common_vendor.unref(size).h == 0 ? "py-3 px-6" : "",
label: common_vendor.unref(_count)
})
} : {}, {
g: common_vendor.unref(_icon)
}, common_vendor.unref(_icon) ? {
h: common_vendor.p({
color: "white",
["font-size"]: props.fontSize,
name: common_vendor.unref(_icon)
})
} : {}, {
i: common_vendor.p({
color: props.color,
_class: [common_vendor.unref(customClass), "flex-center flex-col"],
_style: [common_vendor.unref(customCSSStyle), {
flexShrink: 1
}],
followTheme: props.followTheme,
dark: props.dark,
round: props.round,
shadow: props.shadow,
outlined: props.outlined,
border: props.border,
borderStyle: props.borderStyle,
borderDirection: props.borderDirection,
text: props.text,
transprent: props.transprent,
linear: props.linear,
linearDeep: props.linearDeep,
width: common_vendor.unref(size).w,
height: common_vendor.unref(size).h,
margin: props.margin,
padding: props.padding
}),
j: common_vendor.n((common_vendor.unref(_dot) || common_vendor.unref(_count) || common_vendor.unref(_icon)) && !props.status ? "absolute flex-top-start-end r-0" : ""),
k: common_vendor.n(props.top ? `t-${String(props.top)}` : ""),
l: common_vendor.n(props.right ? `r-${String(props.right)}` : "")
}) : {}, {
m: props.status
}, props.status ? {
n: common_vendor.p({
eventPenetrationEnabled: "true",
["font-size"]: props.fontSize,
_class: "ml-10",
label: props.label
})
} : {}, {
o: common_vendor.o(($event) => emits("click", $event)),
p: common_vendor.n(props.status ? "flex-row flex-row-center-center mx-8" : "")
});
};
}
});
const Component = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["__file", "D:/WebstormProjects/uni-ticket-system/src/tmui/components/tm-badge/tm-badge.vue"]]);
wx.createComponent(Component);