@2h-lin/components
Version:
Vue3组件库,基于Element Plus的增强组件
729 lines (728 loc) • 28.4 kB
JavaScript
(function(){"use strict";try{if(typeof document<"u"){var e=document.createElement("style");e.appendChild(document.createTextNode('.pagination-container[data-v-fe4dfe25]{background:#fff;text-align:right;margin-top:24px}.pagination-container.hidden[data-v-fe4dfe25]{display:none}.time-select[data-v-63f750f1]{margin:0!important;display:flex;align-items:center}.el-config-table[data-v-e3583b51]{text-align:left}.el-config-table-statistical[data-v-e3583b51]{margin-bottom:20px;display:flex;align-items:center}.el-config-table-statistical .el-card+.el-card[data-v-e3583b51]{margin-left:20px;margin-top:0}.el-config-table-statistical[data-v-e3583b51] .el-card__body{padding:15px 20px;box-sizing:border-box;min-height:73px}.el-config-table-statistical .value[data-v-e3583b51]{font-size:22px;line-height:43px}.el-config-table .card-title[data-v-e3583b51]{font-weight:700;font-size:15px}.el-config-table-header[data-v-e3583b51]{margin-bottom:20px}.el-config-table-header[data-v-e3583b51] .el-form-item[style*="display: block"] .el-form-item__label{display:inline-block;vertical-align:top;margin-right:10px}.el-config-table-header[data-v-e3583b51] .el-form-item[style*="display: block"] .el-form-item__content{display:inline-block;vertical-align:top}.el-config-table-content .header-button[data-v-e3583b51]{margin-bottom:0;border:1px solid #ededed;border-bottom:none;background-color:#fafafa;padding:10px 15px;box-sizing:border-box;position:relative;display:flex;align-items:center}.el-config-table-content .has-gap[data-v-e3583b51]{margin-top:20px}.el-config-table-content .el-form[data-v-e3583b51]{margin-bottom:-20px}.el-config-table-content .fixed-header-button[data-v-e3583b51]{margin-left:auto}.el-config-table-content .fixed-header-button .el-button+.el-button[data-v-e3583b51]{margin-left:10px}.el-config-table-footer[data-v-e3583b51]{display:flex;justify-content:center;align-items:center}')),document.head.appendChild(e)}}catch(t){console.error("vite-plugin-css-injected-by-js",t)}})();
import { computed as U, resolveComponent as C, openBlock as n, createElementBlock as d, normalizeClass as he, createVNode as A, mergeProps as H, inject as _e, ref as _, watch as ye, Fragment as w, renderList as M, createBlock as p, withCtx as c, createTextVNode as Y, toDisplayString as $, unref as b, createCommentVNode as h, useSlots as Oe, onMounted as Pe, resolveDirective as Me, createSlots as Ye, withDirectives as ne, normalizeStyle as G, toHandlers as oe, resolveDynamicComponent as Ae, renderSlot as P, vShow as Re, createElementVNode as j, nextTick as Fe } from "vue";
import { Search as Le, Refresh as je, ArrowDown as He, ArrowUp as Ke } from "@element-plus/icons-vue";
import ve from "dayjs";
import { ElMessage as Qe } from "element-plus";
import { useRoute as Je } from "vue-router";
const ge = (l, y) => Object.keys(l).filter((o) => o.indexOf(y) > -1);
const se = (l, y) => {
const v = l.__vccOpts || l;
for (const [o, g] of y)
v[o] = g;
return v;
}, qe = {
__name: "index",
props: {
total: {
required: !0,
type: Number
},
page: {
type: Number,
default: 1
},
limit: {
type: Number,
default: 20
},
pageSizes: {
type: Array,
default() {
return [10, 20, 30, 50];
}
},
layout: {
type: String,
default: "total, sizes, prev, pager, next, jumper"
},
background: {
type: Boolean,
default: !0
},
autoScroll: {
type: Boolean,
default: !0
},
hidden: {
type: Boolean,
default: !1
}
},
emits: ["update:page", "update:limit", "pagination"],
setup(l, { emit: y }) {
const v = l, o = y, g = U({
get() {
return v.page;
},
set(S) {
o("update:page", S);
}
}), T = U({
get() {
return v.limit;
},
set(S) {
o("update:limit", S);
}
}), s = () => {
v.autoScroll && window.scrollTo({
top: 0,
behavior: "smooth"
});
}, D = (S) => {
o("pagination", { page: g.value, limit: S }), s();
}, F = (S) => {
o("pagination", { page: S, limit: T.value }), s();
};
return (S, E) => {
const f = C("el-pagination");
return n(), d("div", {
class: he([{ hidden: l.hidden }, "pagination-container"])
}, [
A(f, H({
background: l.background,
"current-page": g.value,
"onUpdate:currentPage": E[0] || (E[0] = (V) => g.value = V),
"page-size": T.value,
"onUpdate:pageSize": E[1] || (E[1] = (V) => T.value = V),
layout: l.layout,
"page-sizes": l.pageSizes,
total: l.total
}, S.$attrs, {
onSizeChange: D,
onCurrentChange: F
}), null, 16, ["background", "current-page", "page-size", "layout", "page-sizes", "total"])
], 2);
};
}
}, Be = /* @__PURE__ */ se(qe, [["__scopeId", "data-v-fe4dfe25"]]), Z = 6, Xe = (l) => [
{
label: l("timeSelect.all") || "全部",
value: 0
},
{
label: l("timeSelect.today") || "今天",
value: 1
},
{
label: l("timeSelect.yesterday") || "昨天",
value: 2
},
{
label: l("timeSelect.last7Days") || "最近7天",
value: 3
},
{
label: l("timeSelect.thisMonth") || "本月",
value: 4
},
{
label: l("timeSelect.thisYear") || "今年",
value: 5
},
{
label: l("timeSelect.custom") || "自定义",
value: 6
}
], We = (l) => [
{
text: l("timeSelect.last7Days") || "最近7天",
onClick(y) {
const v = /* @__PURE__ */ new Date(), o = /* @__PURE__ */ new Date();
o.setTime(o.getTime() - 3600 * 1e3 * 24 * 7), y.$emit("pick", [o, v]);
}
},
{
text: l("timeSelect.last30Days") || "最近30天",
onClick(y) {
const v = /* @__PURE__ */ new Date(), o = /* @__PURE__ */ new Date();
o.setTime(o.getTime() - 3600 * 1e3 * 24 * 30), y.$emit("pick", [o, v]);
}
},
{
text: l("timeSelect.last3Months") || "最近3个月",
onClick(y) {
const v = /* @__PURE__ */ new Date(), o = /* @__PURE__ */ new Date();
o.setTime(o.getTime() - 3600 * 1e3 * 24 * 90), y.$emit("pick", [o, v]);
}
}
];
const Ge = { class: "time-select" }, Ze = /* @__PURE__ */ Object.assign({ name: "TimeSelect" }, {
__name: "index",
props: {
value: {
type: Number,
default: 1
}
},
emits: ["update:value", "change"],
setup(l, { emit: y }) {
const v = l, o = y, g = _e("$t", (f) => ({
"timeSelect.all": "全部",
"timeSelect.today": "今天",
"timeSelect.yesterday": "昨天",
"timeSelect.last7Days": "最近7天",
"timeSelect.thisMonth": "本月",
"timeSelect.thisYear": "今年",
"timeSelect.custom": "自定义",
"timeSelect.startTime": "开始时间",
"timeSelect.endTime": "结束时间",
"timeSelect.last30Days": "最近30天",
"timeSelect.last3Months": "最近3个月"
})[f] || f), T = _(!1), s = _({}), D = _(""), F = U(() => Xe(g)), S = U(() => ({
shortcuts: We(g)
}));
ye(() => v.value, (f) => {
f !== Z && (D.value = "", T.value = !1);
}), ye(D, (f) => {
f ? (s.value.startTime = ve(f[0]).format("YYYY-MM-DD 00:00:00"), s.value.endTime = ve(f[1]).format("YYYY-MM-DD 23:59:59")) : (delete s.value.startTime, delete s.value.endTime), o("change", { ...s.value });
});
const E = (f) => {
o("update:value", f), f === Z ? T.value = !0 : T.value = !1, s.value.value = f, o("change", { ...s.value });
};
return (f, V) => {
const B = C("el-tag"), N = C("el-date-picker");
return n(), d("div", Ge, [
(n(!0), d(w, null, M(F.value, (i) => (n(), p(B, {
style: { cursor: "pointer", "margin-right": "12px" },
key: i.value,
type: l.value == i.value ? "primary" : "info",
onClick: (I) => E(i.value)
}, {
default: c(() => [
Y($(i.label), 1)
]),
_: 2
}, 1032, ["type", "onClick"]))), 128)),
T.value ? (n(), p(N, {
key: 0,
style: { "margin-left": "10px" },
modelValue: D.value,
"onUpdate:modelValue": V[0] || (V[0] = (i) => D.value = i),
shortcuts: S.value.shortcuts,
align: "left",
"start-placeholder": b(g)("timeSelect.startTime"),
"end-placeholder": b(g)("timeSelect.endTime"),
type: "daterange",
"unlink-panels": ""
}, null, 8, ["modelValue", "shortcuts", "start-placeholder", "end-placeholder"])) : h("", !0)
]);
};
}
}), ke = /* @__PURE__ */ se(Ze, [["__scopeId", "data-v-63f750f1"]]);
function Ie() {
const l = new URL(window.location.href), [y, v] = l.hash.split("?"), o = `${l.origin}${l.pathname}${y}`;
window.history.replaceState({}, "", o);
}
const me = {
primary: "#409eff",
success: "#67c23a",
warning: "#e6a23c",
danger: "#f56c6c",
info: "#909399"
};
const et = { class: "el-config-table" }, tt = {
key: 0,
class: "card-title"
}, lt = {
key: 0,
class: "el-config-table-header"
}, at = {
key: 1,
class: "el-config-table-statistical"
}, nt = { class: "clearfix" }, ot = { class: "el-config-table-content" }, st = {
key: 0,
class: /* @__PURE__ */ he(["header-button"])
}, it = {
key: 0,
class: "fixed-header-button"
}, ut = { class: "el-config-table-footer" }, rt = /* @__PURE__ */ Object.assign({ name: "ElConfigTable" }, {
__name: "index",
props: {
// api请求
api: {
type: Function,
default() {
}
},
// 统计api请求
statisticalApi: {
type: Function,
default() {
}
},
// searchForm 额外参数
extraQuery: {
type: Object,
default: void 0
},
// 显示多选按钮
showSelection: {
type: Boolean,
default: !1
},
// 是否可折叠
canSearchCollapse: {
type: Boolean,
default: !1
},
// 头部按钮
headerButtons: {
type: Array,
default: () => []
},
// 操作列配置
actionConfig: {
type: Object,
default: () => ({})
},
// 操作按钮配置
actionButtons: {
type: Array,
default: () => []
},
// 点击查询按钮, 查询前执行的函数,需要返回Promise
beforeSearch: {
type: Function,
default() {
}
},
// 统计配置数据
statisticalConfig: {
type: Array,
default: () => []
},
// 查询项
searchForm: {
type: Array,
default: () => []
},
// 表格选项
columns: {
type: Array,
default: () => []
},
// 当前页数
page: {
type: Number,
default: 1
},
// 当前条数
limit: {
type: Number,
default: 10
},
// 卡片标题
title: {
type: String,
default: ""
}
},
emits: ["selectionChange", "search", "reset", "update:extraQuery"],
setup(l, { expose: y, emit: v }) {
const o = Oe(), g = _e("$t", (t) => ({
"el.search": "搜索",
"el.reset": "重置",
"el.collapse": "收起",
"el.expand": "展开",
"el.loading": "加载中...",
"el.operation": "操作",
"el.selectTimeRange": "请选择时间范围"
})[t] || t);
let T = { query: {} };
try {
T = Je(), console.log("当前路由参数:", T);
} catch {
console.warn("Vue Router not configured, using default route object");
}
const s = l, D = v, F = _({}), S = _([]), E = _({}), f = _(!1), V = _(!1), B = _(0), N = _([]), i = _({}), I = _({}), Se = _(JSON.stringify(s.extraQuery || {})), K = _(!1), Q = _(s.page), ee = _(s.limit), be = U(() => {
let t = [];
return typeof o.header == "function" && (t = o.header()), t.length || s.headerButtons.length;
}), ie = U(() => s.searchForm.length || o.search), X = U(() => {
const a = ge(o, "search:").map((r) => r.slice(7));
return s.searchForm.reduce((r, k) => (s.canSearchCollapse && typeof k.collapsible != "boolean" && (k.collapsible = !0), a.forEach((R) => {
if (k.id === R) {
const z = { type: "slot" };
r.push(z);
return;
}
}), r.push(k), r), []);
}), ue = U(() => {
const a = ge(o, "column:").map((r) => r.slice(7));
return s.columns.reduce((r, k) => (a.forEach((R) => {
if (k.key === R) {
const z = { type: "slot" };
r.push(z);
return;
}
}), r.push(k), r), []);
}), Ce = U(() => s.headerButtons.filter((t) => t.align !== "right")), re = U(() => s.headerButtons.filter((t) => t.align === "right").reverse());
Pe(() => {
$e(), L();
});
const L = async (t) => {
var k;
const { value: a, startTime: O, endTime: r } = E.value;
if (a === Z && !O && !r && t !== "reset") {
Qe.warning(g("el.selectTimeRange"));
return;
}
f.value = !0, t !== "pagination" && (V.value = !0);
try {
const R = xe(), z = {
page: Q.value,
limit: ee.value,
...R,
...s.extraQuery
};
let x = {};
if (t === "pagination")
x = await s.api(z);
else {
const [J, q] = await Promise.allSettled([s.api(z), s.statisticalApi(z)]);
F.value = q.status === "fulfilled" ? (k = q.value) == null ? void 0 : k.data : {}, x = J.status === "fulfilled" ? J.value : {};
}
S.value = x.data || [], B.value = x.count;
} finally {
f.value = !1, V.value = !1;
}
}, Te = (t) => {
E.value = {
value: t.value,
startTime: t.startTime,
endTime: t.endTime
}, t.startTime && (i.value.start_time = t.startTime), t.endTime && (i.value.end_time = t.endTime), t.value !== Z && L();
}, we = (t) => !["tag", "select", "date-picker", "slot", "time-select"].includes(t), xe = () => {
var t = JSON.parse(JSON.stringify(i.value));
return X.value.forEach((a) => {
var O, r;
a.type === "date-picker" && a.attrs.start && a.attrs.end && (t[a.attrs.start] = ((O = t == null ? void 0 : t[a.id]) == null ? void 0 : O[0]) || "", t[a.attrs.end] = ((r = t == null ? void 0 : t[a.id]) == null ? void 0 : r[1]) || "", delete t[a.id]);
}), t;
}, $e = () => {
const t = {};
X.value.forEach((a) => {
(a.default || a.default === 0 || a.default === "") && (i.value[a.id] = a.default, t[a.id] = a.default), T.query[a.id] && (i.value[a.id] = T.query[a.id]);
}), I.value = JSON.stringify(t) || {};
}, W = (t) => {
const { ...a } = (t == null ? void 0 : t.attrs) || {};
return a;
}, te = (t) => {
const { ...a } = (t == null ? void 0 : t.on) || {};
return Object.keys(a).reduce((r, k) => (r[k] = a[k], r), {});
}, De = (t, a) => {
i.value[t.id] = a.value, le();
}, Ee = (t) => {
N.value = t, D("selectionChange", t);
}, le = async () => {
await s.beforeSearch(), Q.value = 1, L(), D("search");
}, Ve = () => {
Q.value = 1, D("update:extraQuery", JSON.parse(Se.value)), i.value = JSON.parse(I.value), D("reset"), Ie(), Fe(() => {
E.value = {}, L("reset");
});
}, ze = (t) => {
Q.value = t.page, ee.value = t.limit, L("pagination");
}, ce = (t, a) => t.show ? t.show(a) : !0, de = (t, a) => t.show ? t.show(a) : !0;
return y({
getList: L,
resetSearch: le,
timeSelectObj: E,
searchValue: i,
loading: f
}), (t, a) => {
const O = C("el-option"), r = C("el-select"), k = C("el-tag"), R = C("el-date-picker"), z = C("el-form-item"), x = C("el-button"), J = C("el-form"), q = C("el-card"), ae = C("el-table-column"), Ne = C("el-popconfirm"), Ue = C("el-table"), fe = Me("loading");
return n(), d("div", et, [
A(q, null, Ye({
default: c(() => [
be.value || ie.value || o.beforeTable ? (n(), d("div", lt, [
ie.value ? (n(), p(J, {
key: 0,
ref: "searchForm",
inline: ""
}, {
default: c(() => [
(n(!0), d(w, null, M(X.value, (e, u) => ne((n(), p(z, {
style: G({ display: e.block ? "flex" : "" }),
key: u,
label: e.label ? e.label + ":" : ""
}, {
default: c(() => [
e.type === "select" ? (n(), p(r, H({
key: 0,
modelValue: i.value[e.id],
"onUpdate:modelValue": (m) => i.value[e.id] = m
}, { ref_for: !0 }, W(e), {
style: { width: e.width + "px" || "100%" }
}, oe(te(e))), {
default: c(() => [
(n(!0), d(w, null, M(e.options, (m) => (n(), p(O, {
key: m.value,
label: m.label,
value: m.value
}, null, 8, ["label", "value"]))), 128))
]),
_: 2
}, 1040, ["modelValue", "onUpdate:modelValue", "style"])) : h("", !0),
e.type === "tag" ? (n(!0), d(w, { key: 1 }, M(e.options, (m) => (n(), p(k, H({
style: { cursor: "pointer" },
key: m.value,
type: i.value[e.id] === m.value ? "" : "info"
}, { ref_for: !0 }, W(e), {
onClick: (pe) => De(e, m)
}), {
default: c(() => [
Y($(m.label), 1)
]),
_: 2
}, 1040, ["type", "onClick"]))), 128)) : h("", !0),
e.type === "date-picker" ? (n(), p(R, H({
key: 2,
modelValue: i.value[e.id],
"onUpdate:modelValue": (m) => i.value[e.id] = m
}, { ref_for: !0 }, W(e), {
style: { width: e.width + "px" || "100%" }
}, oe(te(e))), null, 16, ["modelValue", "onUpdate:modelValue", "style"])) : h("", !0),
we(e.type) ? (n(), p(Ae("el-" + e.type), H({
key: 3,
modelValue: i.value[e.id],
"onUpdate:modelValue": (m) => i.value[e.id] = m
}, { ref_for: !0 }, W(e), {
style: { width: e.width + "px" || "100%" }
}, oe(te(e))), null, 16, ["modelValue", "onUpdate:modelValue", "style"])) : h("", !0),
e.type === "time-select" ? (n(), p(ke, {
key: 4,
value: i.value[e.id],
"onUpdate:value": (m) => i.value[e.id] = m,
onChange: Te
}, null, 8, ["value", "onUpdate:value"])) : h("", !0),
e.type === "slot" ? P(t.$slots, `search:${X.value[u + 1].id}`, { key: 5 }, void 0, !0) : h("", !0)
]),
_: 2
}, 1032, ["style", "label"])), [
[Re, !e.collapsible || K.value]
])), 128)),
A(z, null, {
default: c(() => [
P(t.$slots, "search", {}, void 0, !0)
]),
_: 3
}),
A(z, null, {
default: c(() => [
A(x, {
type: "primary",
class: "search-btn",
icon: b(Le),
onClick: le
}, {
default: c(() => [
Y($(b(g)("el.search")), 1)
]),
_: 1
}, 8, ["icon"]),
A(x, {
type: "default",
class: "reset-btn",
icon: b(je),
onClick: Ve
}, {
default: c(() => [
Y($(b(g)("el.reset")), 1)
]),
_: 1
}, 8, ["icon"]),
l.canSearchCollapse ? (n(), p(x, {
key: 0,
type: "text",
icon: K.value ? b(Ke) : b(He),
onClick: a[0] || (a[0] = (e) => K.value = !K.value)
}, {
default: c(() => [
Y($(K.value ? b(g)("el.collapse") : b(g)("el.expand")), 1)
]),
_: 1
}, 8, ["icon"])) : h("", !0)
]),
_: 1
})
]),
_: 3
}, 512)) : h("", !0),
P(t.$slots, "beforeTable", {}, void 0, !0)
])) : h("", !0),
l.statisticalConfig.length ? ne((n(), d("div", at, [
(n(!0), d(w, null, M(l.statisticalConfig, (e) => (n(), p(q, {
key: e.label,
style: { flex: "1" }
}, {
header: c(() => [
j("div", nt, [
j("span", null, $(e.label), 1)
])
]),
default: c(() => [
j("div", {
class: "value",
style: G({ color: e.color || "#409eff" })
}, $(F.value[e.key] || "-"), 5)
]),
_: 2
}, 1024))), 128))
])), [
[fe, V.value]
]) : h("", !0),
j("div", ot, [
l.headerButtons.length ? (n(), d("div", st, [
(n(!0), d(w, null, M(Ce.value, (e) => (n(), d(w, {
key: e.text
}, [
de(e, N.value) ? (n(), p(x, {
key: 0,
icon: e.icon,
type: e.type || "primary",
size: e.size || "default",
disabled: "disabled" in e ? e.disabled(N.value) : !1,
onClick: (u) => "atClick" in e ? e.atClick(N.value) : ""
}, {
default: c(() => [
Y($(e.text), 1)
]),
_: 2
}, 1032, ["icon", "type", "size", "disabled", "onClick"])) : h("", !0)
], 64))), 128)),
re.value.length ? (n(), d("div", it, [
(n(!0), d(w, null, M(re.value, (e) => (n(), d(w, {
key: e.text
}, [
de(e, N.value) ? (n(), p(x, {
key: 0,
class: "fixed-header-button",
icon: e.icon,
type: e.type || "primary",
size: e.size || "default",
disabled: "disabled" in e ? e.disabled(N.value) : !1,
onClick: (u) => "atClick" in e ? e.atClick(N.value) : ""
}, {
default: c(() => [
Y($(e.text), 1)
]),
_: 2
}, 1032, ["icon", "type", "size", "disabled", "onClick"])) : h("", !0)
], 64))), 128))
])) : h("", !0),
P(t.$slots, "header", { selected: N.value }, void 0, !0)
])) : h("", !0),
ne((n(), p(Ue, {
ref: "tableList",
height: "550px",
border: "",
"element-loading-text": b(g)("el.loading"),
data: S.value,
"header-cell-style": {
color: "#000",
fontWeight: "500"
},
onSelectionChange: Ee
}, {
default: c(() => [
l.showSelection ? (n(), p(ae, {
key: 0,
type: "selection",
width: "50"
})) : h("", !0),
(n(!0), d(w, null, M(ue.value, (e, u) => (n(), d(w, {
key: e.key
}, [
e.type === "slot" ? P(t.$slots, `column:${ue.value[u + 1].key}`, { key: 0 }, void 0, !0) : (n(), p(ae, H({
key: 1,
prop: e.key,
"show-overflow-tooltip": e.showTooltip
}, { ref_for: !0 }, { ...e }), null, 16, ["prop", "show-overflow-tooltip"]))
], 64))), 128)),
P(t.$slots, "column", {}, void 0, !0),
l.actionButtons.length ? (n(), p(ae, {
key: 1,
align: "center",
width: l.actionConfig.width || "200",
label: l.actionConfig.title || b(g)("el.operation"),
fixed: "right"
}, {
default: c((e) => [
(n(!0), d(w, null, M(l.actionButtons, (u, m) => (n(), d(w, { key: m }, [
u.isDelete && ce(u, e.row) ? (n(), p(Ne, {
key: 0,
class: "ele-action",
title: u.deleteConfirmText,
onConfirm: (pe) => "atClick" in u ? u.atClick(e.row) : ""
}, {
reference: c(() => [
A(x, {
type: "text",
style: G({ color: b(me)[u.type || "primary"] }),
disabled: "disabled" in u ? u.disabled(e.row) : !1
}, {
default: c(() => [
Y($(u.text), 1)
]),
_: 2
}, 1032, ["style", "disabled"])
]),
_: 2
}, 1032, ["title", "onConfirm"])) : ce(u, e.row) ? (n(), p(x, {
key: 1,
type: "text",
style: G({ color: b(me)[u.type || "primary"] }),
disabled: "disabled" in u ? u.disabled(e.row) : !1,
onClick: (pe) => "atClick" in u ? u.atClick(e.row) : ""
}, {
default: c(() => [
Y($(u.text), 1)
]),
_: 2
}, 1032, ["style", "disabled", "onClick"])) : h("", !0)
], 64))), 128))
]),
_: 1
}, 8, ["width", "label"])) : h("", !0),
P(t.$slots, "action", {}, void 0, !0)
]),
_: 3
}, 8, ["element-loading-text", "data"])), [
[fe, f.value]
])
]),
P(t.$slots, "afterTable", {}, void 0, !0),
j("div", ut, [
A(Be, {
autoScroll: !1,
total: B.value,
page: Q.value,
limit: ee.value,
onPagination: ze
}, null, 8, ["total", "page", "limit"])
])
]),
_: 2
}, [
o.cardHeader || l.title ? {
name: "header",
fn: c(() => [
j("div", null, [
l.title ? (n(), d("span", tt, $(l.title), 1)) : P(t.$slots, "cardHeader", { key: 1 }, void 0, !0)
])
]),
key: "0"
} : void 0
]), 1024)
]);
};
}
}), ct = /* @__PURE__ */ se(rt, [["__scopeId", "data-v-e3583b51"]]), gt = {
install(l, y = {}) {
l.component("ElConfigTable", ct), l.component("TimeSelect", ke);
}
};
export {
ct as ElConfigTable,
ke as TimeSelect,
gt as default
};