tk-eui-plus
Version:
98 lines (97 loc) • 2.63 kB
JavaScript
import { defineComponent as m, useSlots as v, resolveComponent as a, openBlock as o, createBlock as i, createSlots as f, withCtx as n, createVNode as g, mergeProps as s, createCommentVNode as p, unref as l, renderSlot as c, createElementBlock as y, Fragment as S, resolveDynamicComponent as h } from "vue";
const k = (e) => e.replace(/(A-Z)g/, "-$1"), C = /* @__PURE__ */ m({
__name: "index",
props: {
//显示的图标
icon: {
type: String,
default: "Bell"
},
//通知数量
value: {
type: [String, Number],
default: ""
},
//是否展示popover
hidePopover: {
type: Boolean,
default: !1
},
//popover展示的内容,可通过属性传递,也可以通过插槽的方式传递
popoverContent: {
type: String,
default: ""
},
//popover显示的位置
popoverPlacement: {
type: String,
default: "top-start"
},
//popover标题
popoverTitle: {
type: String,
default: ""
},
//popover宽度
popoverWidth: {
type: String,
default: "300px"
},
//popover触发方式
popoverTrigger: {
type: String,
default: "hover"
}
},
setup(e) {
let r = v();
return (t, b) => {
const d = a("el-badge"), u = a("el-popover");
return o(), i(u, {
placement: e.popoverPlacement,
title: e.popoverTitle,
width: e.popoverWidth,
trigger: e.popoverTrigger,
disabled: e.hidePopover,
content: e.popoverContent
}, f({
reference: n(() => [
g(d, s({ value: e.value }, t.$attrs), {
default: n(() => [
p(" icon自定义插槽方式,通过template #icon传递 "),
l(r).icon ? c(t.$slots, "icon", { key: 0 }) : (o(), y(
S,
{ key: 1 },
[
p(" icon自定义属性方式,通过icon属性传递过来 "),
(o(), i(h(`tk-icon-${l(k)(e.icon)}`)))
],
2112
/* STABLE_FRAGMENT, DEV_ROOT_FRAGMENT */
))
]),
_: 3
/* FORWARDED */
}, 16, ["value"])
]),
_: 2
/* DYNAMIC */
}, [
l(r).default ? {
name: "default",
fn: n(() => [
c(t.$slots, "default")
]),
key: "0"
} : void 0
]), 1032, ["placement", "title", "width", "trigger", "disabled", "content"]);
};
}
}), P = {
install(e) {
e.component("tkNotification", C);
}
};
export {
P as default
};