vuux
Version:
Vue3 Nuxt3 Nuxt4 组件库
73 lines (72 loc) • 2.36 kB
JavaScript
import { defineComponent as E, useTemplateRef as u, createElementBlock as n, createCommentVNode as d, openBlock as r, unref as o, createElementVNode as t, withModifiers as h, normalizeClass as v, createVNode as B, toDisplayString as _, renderSlot as V } from "vue";
import { useModal as M } from "./hook/useModal.mjs";
import { Icon as b } from "@vuux/icons";
const N = { class: "modal-title" }, g = { class: "modal-slot" }, x = {
key: 1,
class: "modal-footer"
}, z = { class: "modal-buts" }, w = /* @__PURE__ */ E({
name: "Modal",
__name: "index",
props: {
title: { default: "" },
modelValue: { type: Boolean },
header: { type: Boolean },
footer: { type: Boolean },
maskClose: { type: Boolean, default: !0 },
modalClass: {},
isDrag: { type: Boolean }
},
emits: ["update:modelValue", "ok", "close"],
setup(f, { emit: k }) {
const l = f, C = k, i = u("contentEl"), m = u("headerEl"), { handleClose: a, handleOk: c, handleMaskClose: p } = M(l, i, m, C);
return (y, e) => l.modelValue ? (r(), n("div", {
key: 0,
class: "app-modal",
onClick: e[3] || (e[3] = //@ts-ignore
(...s) => o(p) && o(p)(...s))
}, [
t("div", {
ref_key: "contentEl",
ref: i,
class: v(["modal-content", [l.modalClass]]),
onClick: e[2] || (e[2] = h(() => {
}, ["stop"]))
}, [
l.header ? (r(), n("div", {
key: 0,
ref_key: "headerEl",
ref: m,
class: "modal-header"
}, [
t("div", N, _(l.title), 1),
B(o(b), {
name: "Icon9176904",
size: 14,
class: "modal-close-icon",
onClick: o(a)
}, null, 8, ["onClick"])
], 512)) : d("", !0),
t("div", g, [
V(y.$slots, "default")
]),
l.footer ? (r(), n("div", x, [
t("div", z, [
t("button", {
class: "is-close",
onClick: e[0] || (e[0] = //@ts-ignore
(...s) => o(a) && o(a)(...s))
}, "关闭"),
t("button", {
class: "is-ok",
onClick: e[1] || (e[1] = //@ts-ignore
(...s) => o(c) && o(c)(...s))
}, "确认")
])
])) : d("", !0)
], 2)
])) : d("", !0);
}
});
export {
w as default
};