zxt-table 0.4.4 → 0.4.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/zxt-table.es.js +30 -30
- package/dist/zxt-table.umd.js +1 -1
- package/package.json +1 -1
package/dist/zxt-table.es.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { createElementBlock as h, openBlock as u, normalizeClass as ne, renderSlot as M, defineComponent as w, createVNode as Z, ref as b, watch as te, resolveComponent as _, createBlock as k, h as
|
|
2
|
-
import { ElPagination as
|
|
1
|
+
import { createElementBlock as h, openBlock as u, normalizeClass as ne, renderSlot as M, defineComponent as w, createVNode as Z, ref as b, watch as te, resolveComponent as _, createBlock as k, h as I, inject as De, computed as z, mergeProps as A, withCtx as C, Fragment as E, renderList as O, createSlots as Q, resolveDynamicComponent as ye, createTextVNode as G, toDisplayString as ae, provide as Te, onMounted as Ze, resolveDirective as Me, normalizeStyle as Ae, withDirectives as je, createCommentVNode as X, createElementVNode as S, reactive as Le, toHandlers as Be, useAttrs as Ee, normalizeProps as ze, guardReactiveProps as we } from "vue";
|
|
2
|
+
import { ElPagination as He, ElLink as Ie, ElCheckbox as xe, ElSelect as Ne, ElOption as qe, ElInput as Ue, ElTableColumn as Ge, ElTable as Je, ElMessage as ee } from "element-plus";
|
|
3
3
|
const N = (e, t) => {
|
|
4
4
|
const a = e.__vccOpts || e;
|
|
5
5
|
for (const [r, o] of t)
|
|
@@ -75,7 +75,7 @@ W.install = function(e) {
|
|
|
75
75
|
};
|
|
76
76
|
const Xe = w({
|
|
77
77
|
name: "ZxtPagination",
|
|
78
|
-
components: { ElPagination:
|
|
78
|
+
components: { ElPagination: He },
|
|
79
79
|
props: {
|
|
80
80
|
// 当前页码
|
|
81
81
|
modelValue: { type: Number, default: 1 },
|
|
@@ -131,14 +131,14 @@ function Ye(e, t, a, r, o, p) {
|
|
|
131
131
|
onCurrentChange: e.handleCurrentChange
|
|
132
132
|
}, null, 8, ["current-page", "page-size", "page-sizes", "total", "layout", "onSizeChange", "onCurrentChange"]);
|
|
133
133
|
}
|
|
134
|
-
const
|
|
134
|
+
const x = /* @__PURE__ */ N(Xe, [["render", Ye], ["__scopeId", "data-v-497aa44d"]]), K = {
|
|
135
135
|
default: ({ cellValue: e }) => e ?? "",
|
|
136
|
-
input: ({ cellValue: e, row: t, column: a, updateRow: r }) =>
|
|
136
|
+
input: ({ cellValue: e, row: t, column: a, updateRow: r }) => I(Ue, {
|
|
137
137
|
modelValue: e,
|
|
138
138
|
size: "small",
|
|
139
139
|
onInput: (o) => r({ ...t, [a.property]: o })
|
|
140
140
|
}),
|
|
141
|
-
select: ({ cellValue: e, row: t, column: a, updateRow: r, options: o = [] }) =>
|
|
141
|
+
select: ({ cellValue: e, row: t, column: a, updateRow: r, options: o = [] }) => I(
|
|
142
142
|
Ne,
|
|
143
143
|
{
|
|
144
144
|
modelValue: e,
|
|
@@ -146,14 +146,14 @@ const I = /* @__PURE__ */ N(Xe, [["render", Ye], ["__scopeId", "data-v-497aa44d"
|
|
|
146
146
|
onChange: (p) => r({ ...t, [a.property]: p })
|
|
147
147
|
},
|
|
148
148
|
() => o.map(
|
|
149
|
-
(p) =>
|
|
149
|
+
(p) => I(qe, { label: p.label, value: p.value, key: p.value })
|
|
150
150
|
)
|
|
151
151
|
),
|
|
152
|
-
checkbox: ({ cellValue: e, row: t, column: a, updateRow: r }) =>
|
|
152
|
+
checkbox: ({ cellValue: e, row: t, column: a, updateRow: r }) => I(xe, {
|
|
153
153
|
modelValue: !!e,
|
|
154
154
|
onChange: (o) => r({ ...t, [a.property]: o })
|
|
155
155
|
}),
|
|
156
|
-
link: ({ cellValue: e, href: t, target: a = "_blank" }) =>
|
|
156
|
+
link: ({ cellValue: e, href: t, target: a = "_blank" }) => I(Ie, { href: t, target: a }, () => e)
|
|
157
157
|
};
|
|
158
158
|
function et(e, t) {
|
|
159
159
|
if (!e) return null;
|
|
@@ -170,7 +170,7 @@ function et(e, t) {
|
|
|
170
170
|
...r,
|
|
171
171
|
...o,
|
|
172
172
|
...p
|
|
173
|
-
}) : typeof a == "object" || typeof a == "function" ?
|
|
173
|
+
}) : typeof a == "object" || typeof a == "function" ? I(a, { ...r, ...o, ...p }, n) : (console.warn("[ZxtTable] cellRender 对象缺少有效的 name 字段"), t.cellValue ?? "");
|
|
174
174
|
}
|
|
175
175
|
return t.cellValue ?? "";
|
|
176
176
|
}
|
|
@@ -235,7 +235,7 @@ function nt(e, t, a, r, o, p) {
|
|
|
235
235
|
key: e.normalizedColumn.prop + "-group"
|
|
236
236
|
}), {
|
|
237
237
|
default: C(() => [
|
|
238
|
-
(u(!0), h(
|
|
238
|
+
(u(!0), h(E, null, O(e.normalizedColumn.children, (c, g) => (u(), k(n, {
|
|
239
239
|
key: g,
|
|
240
240
|
column: c,
|
|
241
241
|
"current-page": e.currentPage,
|
|
@@ -254,7 +254,7 @@ function nt(e, t, a, r, o, p) {
|
|
|
254
254
|
key: e.normalizedColumn.prop,
|
|
255
255
|
index: e.normalizedColumn.indexMethod || e.defaultIndexMethod
|
|
256
256
|
}), Q({ _: 2 }, [
|
|
257
|
-
["selection", "index"
|
|
257
|
+
!["selection", "index"].includes(e.normalizedColumn.type) && (e.normalizedColumn.type !== "expand" || e.normalizedColumn.slot) ? {
|
|
258
258
|
name: "default",
|
|
259
259
|
fn: C((c) => [
|
|
260
260
|
e.normalizedColumn.slot ? M(e.$slots, e.normalizedColumn.slot, {
|
|
@@ -262,25 +262,25 @@ function nt(e, t, a, r, o, p) {
|
|
|
262
262
|
row: c.row,
|
|
263
263
|
index: c.$index,
|
|
264
264
|
column: e.normalizedColumn
|
|
265
|
-
}) : e.normalizedColumn.cellRender ? (u(), k(ye(e.renderCell(c)), { key: 1 })) : e.normalizedColumn.formatter ? (u(), h(
|
|
265
|
+
}) : e.normalizedColumn.cellRender ? (u(), k(ye(e.renderCell(c)), { key: 1 })) : e.normalizedColumn.formatter ? (u(), h(E, { key: 2 }, [
|
|
266
266
|
G(ae(e.normalizedColumn.formatter(
|
|
267
267
|
c.row,
|
|
268
268
|
e.normalizedColumn,
|
|
269
269
|
c.row[e.normalizedColumn.prop],
|
|
270
270
|
c.$index
|
|
271
271
|
)), 1)
|
|
272
|
-
], 64)) : (u(), h(
|
|
272
|
+
], 64)) : (u(), h(E, { key: 3 }, [
|
|
273
273
|
G(ae(c.row[e.normalizedColumn.prop]), 1)
|
|
274
274
|
], 64))
|
|
275
275
|
]),
|
|
276
276
|
key: "0"
|
|
277
|
-
}
|
|
277
|
+
} : void 0
|
|
278
278
|
]), 1040, ["index"]));
|
|
279
279
|
}
|
|
280
280
|
const rt = /* @__PURE__ */ N(at, [["render", nt]]), ot = w({
|
|
281
281
|
name: "ZxtTable",
|
|
282
282
|
inheritAttrs: !1,
|
|
283
|
-
components: { ZxtPagination:
|
|
283
|
+
components: { ZxtPagination: x, ZxtTableColumn: rt, ElTable: Je },
|
|
284
284
|
props: {
|
|
285
285
|
// 表格唯一标识
|
|
286
286
|
id: { type: String, default: "" },
|
|
@@ -356,8 +356,8 @@ const rt = /* @__PURE__ */ N(at, [["render", nt]]), ot = w({
|
|
|
356
356
|
const P = await R(L), q = m.response || {}, fe = q.listField || "list", me = q.totalField || "total", s = q.transform;
|
|
357
357
|
let $ = [], U = 0;
|
|
358
358
|
if (typeof s == "function") {
|
|
359
|
-
const
|
|
360
|
-
$ =
|
|
359
|
+
const H = s(P);
|
|
360
|
+
$ = H?.list ?? [], U = H?.total ?? 0;
|
|
361
361
|
} else P && typeof P == "object" && ($ = P?.[fe] ?? P?.data ?? [], U = P?.[me] ?? P?.total ?? 0);
|
|
362
362
|
n.value = Array.isArray($) ? $ : [], d.value = Number(U) || 0, t("loaded", {
|
|
363
363
|
data: n.value,
|
|
@@ -414,7 +414,7 @@ function lt(e, t, a, r, o, p) {
|
|
|
414
414
|
onFilterChange: e.handleFilterChange
|
|
415
415
|
}), {
|
|
416
416
|
default: C(() => [
|
|
417
|
-
(u(!0), h(
|
|
417
|
+
(u(!0), h(E, null, O(e.columns, (f, i) => (u(), k(n, {
|
|
418
418
|
key: i,
|
|
419
419
|
column: f,
|
|
420
420
|
"current-page": e.currentPage,
|
|
@@ -797,7 +797,7 @@ function wt(e, t, a, r, o, p) {
|
|
|
797
797
|
default: C(() => [
|
|
798
798
|
Z(g, { gutter: 20 }, {
|
|
799
799
|
default: C(() => [
|
|
800
|
-
(u(!0), h(
|
|
800
|
+
(u(!0), h(E, null, O(e.processedColumns, (i, y) => (u(), k(c, A({ key: y }, { ref_for: !0 }, i.colSpan), {
|
|
801
801
|
default: C(() => [
|
|
802
802
|
Z(d, {
|
|
803
803
|
prop: i.prop,
|
|
@@ -821,7 +821,7 @@ function wt(e, t, a, r, o, p) {
|
|
|
821
821
|
"onUpdate:modelValue": (l) => e.formData[i.prop] = l
|
|
822
822
|
}, { ref_for: !0 }, e.getComponentProps(i), Be(i.events || {})), {
|
|
823
823
|
default: C(() => [
|
|
824
|
-
i.type === "select" ? (u(!0), h(
|
|
824
|
+
i.type === "select" ? (u(!0), h(E, { key: 0 }, O(i.options, (l, v) => (u(), k(n, {
|
|
825
825
|
key: v,
|
|
826
826
|
label: l.label,
|
|
827
827
|
value: l.value
|
|
@@ -887,7 +887,7 @@ const Ce = /* @__PURE__ */ N(yt, [["render", wt], ["__scopeId", "data-v-9c337267
|
|
|
887
887
|
},
|
|
888
888
|
emits: ["toolbar-click", "submit", "reset", "page-change", "size-change"],
|
|
889
889
|
setup(e, { emit: t, expose: a }) {
|
|
890
|
-
const r =
|
|
890
|
+
const r = Ee(), o = b(null), p = b(null), n = b(null), d = b(1), c = b(10), g = b([]), f = b(e.gridOptions.formMode || !0), i = {
|
|
891
891
|
Plus: $e,
|
|
892
892
|
Delete: _e,
|
|
893
893
|
Refresh: he,
|
|
@@ -902,7 +902,7 @@ const Ce = /* @__PURE__ */ N(yt, [["render", wt], ["__scopeId", "data-v-9c337267
|
|
|
902
902
|
if (!s || !s.items) return [];
|
|
903
903
|
const $ = [...s.items];
|
|
904
904
|
return $.some(
|
|
905
|
-
(
|
|
905
|
+
(H) => H.type === "slot" && H.slotName === "search-actions"
|
|
906
906
|
) || $.push({
|
|
907
907
|
type: "slot",
|
|
908
908
|
slotName: "search-actions",
|
|
@@ -927,7 +927,7 @@ const Ce = /* @__PURE__ */ N(yt, [["render", wt], ["__scopeId", "data-v-9c337267
|
|
|
927
927
|
formConfig: s,
|
|
928
928
|
toolbar: $,
|
|
929
929
|
formMode: U,
|
|
930
|
-
formColumns:
|
|
930
|
+
formColumns: H,
|
|
931
931
|
rules: Ot,
|
|
932
932
|
data: Dt,
|
|
933
933
|
...Oe
|
|
@@ -1083,7 +1083,7 @@ function Rt(e, t, a, r, o, p) {
|
|
|
1083
1083
|
])) : X("", !0),
|
|
1084
1084
|
S("div", $t, [
|
|
1085
1085
|
e.gridOptions.toolbar ? (u(), h("div", Pt, [
|
|
1086
|
-
(u(!0), h(
|
|
1086
|
+
(u(!0), h(E, null, O(e.gridOptions.toolbar.buttons, (g, f) => (u(), k(n, {
|
|
1087
1087
|
key: f,
|
|
1088
1088
|
type: g.type || "default",
|
|
1089
1089
|
size: g.size || "small",
|
|
@@ -1125,8 +1125,8 @@ function Rt(e, t, a, r, o, p) {
|
|
|
1125
1125
|
], 2);
|
|
1126
1126
|
}
|
|
1127
1127
|
const Ve = /* @__PURE__ */ N(_t, [["render", Rt], ["__scopeId", "data-v-ca0e4fa5"]]);
|
|
1128
|
-
|
|
1129
|
-
e.component(
|
|
1128
|
+
x.install = function(e) {
|
|
1129
|
+
e.component(x.name, x);
|
|
1130
1130
|
};
|
|
1131
1131
|
const Ft = [
|
|
1132
1132
|
J,
|
|
@@ -1134,7 +1134,7 @@ const Ft = [
|
|
|
1134
1134
|
F,
|
|
1135
1135
|
Ve,
|
|
1136
1136
|
Ce,
|
|
1137
|
-
|
|
1137
|
+
x
|
|
1138
1138
|
], Vt = (e) => {
|
|
1139
1139
|
Ft.forEach((t) => {
|
|
1140
1140
|
e.component(t.name, t);
|
|
@@ -1146,7 +1146,7 @@ const Ft = [
|
|
|
1146
1146
|
ZxtTable: F,
|
|
1147
1147
|
ZxtGrid: Ve,
|
|
1148
1148
|
ZxtForm: Ce,
|
|
1149
|
-
ZxtPagination:
|
|
1149
|
+
ZxtPagination: x,
|
|
1150
1150
|
// 暴露渲染器 API
|
|
1151
1151
|
renderer: F.renderer,
|
|
1152
1152
|
registerRenderer: F.registerRenderer
|
|
@@ -1156,7 +1156,7 @@ export {
|
|
|
1156
1156
|
J as MyButton,
|
|
1157
1157
|
Ce as ZxtForm,
|
|
1158
1158
|
Ve as ZxtGrid,
|
|
1159
|
-
|
|
1159
|
+
x as ZxtPagination,
|
|
1160
1160
|
F as ZxtTable,
|
|
1161
1161
|
Mt as default
|
|
1162
1162
|
};
|
package/dist/zxt-table.umd.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(y,e){typeof exports=="object"&&typeof module<"u"?e(exports,require("vue"),require("element-plus")):typeof define=="function"&&define.amd?define(["exports","vue","element-plus"],e):(y=typeof globalThis<"u"?globalThis:y||self,e(y.ZxtTable={},y.Vue,y.ElementPlus))})(this,(function(y,e,b){"use strict";const R=(t,a)=>{const n=t.__vccOpts||t;for(const[r,l]of a)n[r]=l;return n},de={name:"MyButton",props:{type:{type:String,default:"default",validator:t=>["default","primary","success","warning","danger"].includes(t)},disabled:{type:Boolean,default:!1}},emits:["click"],setup(t,{emit:a}){return{handleClick:r=>{a("click",r)}}}},ce=["disabled"];function pe(t,a,n,r,l,m){return e.openBlock(),e.createElementBlock("button",{class:e.normalizeClass(["my-button",[`my-button--${n.type}`,{"is-disabled":n.disabled}]]),disabled:n.disabled,onClick:a[0]||(a[0]=(...o)=>r.handleClick&&r.handleClick(...o))},[e.renderSlot(t.$slots,"default",{},void 0,!0)],10,ce)}const T=R(de,[["render",pe],["__scopeId","data-v-4480e77d"]]);T.install=function(t){t.component(T.name,T)};const D=e.defineComponent({name:"JsxButton",props:{type:{type:String,default:"default",validator:t=>["default","primary","success","warning","danger"].includes(t)},disabled:{type:Boolean,default:!1}},emits:["click"],setup(t,{emit:a,slots:n}){const r=l=>{t.disabled||a("click",l)};return()=>e.createVNode("button",{class:["jsx-button",`jsx-button--${t.type}`,{"is-disabled":t.disabled}],disabled:t.disabled,onClick:r},[n.default?.()])}});D.install=function(t){t.component(D.name,D)};const me=e.defineComponent({name:"ZxtPagination",components:{ElPagination:b.ElPagination},props:{modelValue:{type:Number,default:1},pageSize:{type:Number,default:10},pageSizes:{type:Array,default:()=>[10,20,50,100]},total:{type:Number,default:0},layout:{type:String,default:"total, sizes, prev, pager, next, jumper"}},emits:["update:modelValue","update:pageSize","page-change","size-change"],setup(t,{emit:a}){const n=e.ref(t.modelValue),r=e.ref(t.pageSize);return e.watch(()=>t.modelValue,o=>{n.value=o}),e.watch(()=>t.pageSize,o=>{r.value=o}),{currentPage:n,pageSize:r,handleSizeChange:o=>{r.value=o,n.value=1,a("update:pageSize",o),a("size-change",{page:n.value,size:o})},handleCurrentChange:o=>{n.value=o,a("update:modelValue",o),a("page-change",{page:o,size:r.value})}}}});function fe(t,a,n,r,l,m){const o=e.resolveComponent("el-pagination");return e.openBlock(),e.createBlock(o,{"current-page":t.currentPage,"onUpdate:currentPage":a[0]||(a[0]=c=>t.currentPage=c),"page-size":t.pageSize,"onUpdate:pageSize":a[1]||(a[1]=c=>t.pageSize=c),"page-sizes":t.pageSizes,total:t.total,layout:t.layout,class:"zxt-pagination",onSizeChange:t.handleSizeChange,onCurrentChange:t.handleCurrentChange},null,8,["current-page","page-size","page-sizes","total","layout","onSizeChange","onCurrentChange"])}const $=R(me,[["render",fe],["__scopeId","data-v-497aa44d"]]),x={default:({cellValue:t})=>t??"",input:({cellValue:t,row:a,column:n,updateRow:r})=>e.h(b.ElInput,{modelValue:t,size:"small",onInput:l=>r({...a,[n.property]:l})}),select:({cellValue:t,row:a,column:n,updateRow:r,options:l=[]})=>e.h(b.ElSelect,{modelValue:t,size:"small",onChange:m=>r({...a,[n.property]:m})},()=>l.map(m=>e.h(b.ElOption,{label:m.label,value:m.value,key:m.value}))),checkbox:({cellValue:t,row:a,column:n,updateRow:r})=>e.h(b.ElCheckbox,{modelValue:!!t,onChange:l=>r({...a,[n.property]:l})}),link:({cellValue:t,href:a,target:n="_blank"})=>e.h(b.ElLink,{href:a,target:n},()=>t)};function ge(t,a){if(!t)return null;if(typeof t=="string"){const n=x[t];return n?n(a):(console.warn(`[ZxtTable] 未找到内置渲染器: ${t}`),a.cellValue??"")}if(typeof t=="function")return t(a);if(typeof t=="object"&&!Array.isArray(t)){const{name:n,props:r={},attrs:l={},events:m={},content:o}=t;return typeof n=="string"&&x[n]?x[n]({...a,...r,...l,...m}):typeof n=="object"||typeof n=="function"?e.h(n,{...r,...l,...m},o):(console.warn("[ZxtTable] cellRender 对象缺少有效的 name 字段"),a.cellValue??"")}return a.cellValue??""}function ue(t,a){x[t]&&console.warn(`[ZxtTable] 内置渲染器 ${t} 已被覆盖`),x[t]=a}const he=e.defineComponent({name:"ZxtTableColumn",components:{ElTableColumn:b.ElTableColumn},props:{column:{type:Object,required:!0},currentPage:{type:Number,default:1},pageSize:{type:Number,default:10}},setup(t){const a=e.inject("updateRow",()=>{}),n=o=>{const{currentPage:c,pageSize:p}=t;return(c-1)*p+o+1},r=e.computed(()=>{const o=t.column;return{...o,prop:o.prop??o.field,label:o.label??o.title}}),l=e.computed(()=>{const{children:o,...c}=r.value;return c});return{normalizedColumn:r,columnProps:l,renderCell:o=>{const c=r.value,p=o.row[c.prop],f=p??c.defaultValue??"";return ge(c.cellRender,{row:o.row,column:c,rowIndex:o.$index,cellValue:f,updateRow:g=>a(g,o.$index)})},defaultIndexMethod:n}}});function Ce(t,a,n,r,l,m){const o=e.resolveComponent("ZxtTableColumn",!0),c=e.resolveComponent("el-table-column");return t.normalizedColumn.children&&t.normalizedColumn.children.length?(e.openBlock(),e.createBlock(c,e.mergeProps({key:0},t.columnProps,{key:t.normalizedColumn.prop+"-group"}),{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.normalizedColumn.children,(p,f)=>(e.openBlock(),e.createBlock(o,{key:f,column:p,"current-page":t.currentPage,"page-size":t.pageSize},e.createSlots({_:2},[e.renderList(t.$slots,(g,d)=>({name:d,fn:e.withCtx(C=>[e.renderSlot(t.$slots,d,e.mergeProps({ref_for:!0},C))])}))]),1032,["column","current-page","page-size"]))),128))]),_:3},16)):(e.openBlock(),e.createBlock(c,e.mergeProps({key:1},t.columnProps,{key:t.normalizedColumn.prop,index:t.normalizedColumn.indexMethod||t.defaultIndexMethod}),e.createSlots({_:2},[["selection","index","expand"].includes(t.normalizedColumn.type)?void 0:{name:"default",fn:e.withCtx(p=>[t.normalizedColumn.slot?e.renderSlot(t.$slots,t.normalizedColumn.slot,{key:0,row:p.row,index:p.$index,column:t.normalizedColumn}):t.normalizedColumn.cellRender?(e.openBlock(),e.createBlock(e.resolveDynamicComponent(t.renderCell(p)),{key:1})):t.normalizedColumn.formatter?(e.openBlock(),e.createElementBlock(e.Fragment,{key:2},[e.createTextVNode(e.toDisplayString(t.normalizedColumn.formatter(p.row,t.normalizedColumn,p.row[t.normalizedColumn.prop],p.$index)),1)],64)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:3},[e.createTextVNode(e.toDisplayString(p.row[t.normalizedColumn.prop]),1)],64))]),key:"0"}]),1040,["index"]))}const ye=R(he,[["render",Ce]]),be=e.defineComponent({name:"ZxtTable",inheritAttrs:!1,components:{ZxtPagination:$,ZxtTableColumn:ye,ElTable:b.ElTable},props:{id:{type:String,default:""},columns:{type:Array,default:()=>[]},data:{type:Array,default:()=>[]},height:{type:[String,Number],default:""},pageable:{type:Boolean,default:!0},currentPage:{type:Number,default:1},pageSize:{type:Number,default:10},pageSizes:{type:Array,default:()=>[10,20,50,100]},total:{type:Number,default:0},paginationLayout:{type:String,default:"total, sizes, prev, pager, next, jumper"},proxyConfig:{type:Object,default:null}},emits:["page-change","size-change","sort-change","filter-change","loaded","load-error","update:row"],setup(t,{emit:a}){const n=e.ref(null),r=e.ref(t.pageSize),l=e.ref(t.currentPage),m=e.ref(!1),o=e.ref([]),c=e.ref(0),p=e.ref({prop:"",order:""}),f=e.ref({}),g=e.computed(()=>t.height==="full"?{height:"100%"}:{}),d=e.computed(()=>{if(t.height!=="full")return t.height}),C=e.computed(()=>!!t.proxyConfig),s=e.computed(()=>C.value?c.value:t.total>0?t.total:t.data.length),h=e.computed(()=>C.value?o.value:t.data),B=u=>{C.value&&(l.value=u.page,r.value=u.size,_()),a("size-change",u)},V=u=>{C.value&&(l.value=u.page,r.value=u.size,_()),a("page-change",u)},q=({prop:u,order:S})=>{p.value={prop:u,order:S},C.value&&_(),a("sort-change",{prop:u,order:S})},U=u=>{f.value=u||{},C.value&&_(),a("filter-change",f.value)},_=async()=>{if(!C.value)return;const u=t.proxyConfig||{},S=u.ajax?.query;if(typeof S!="function")return;const P=u.props||{},K=P.pageField||"page";P.sizeField;const Q=P.sortField||"sort",X=P.orderField||"order",Y=P.filtersField||"filters",v=u.params||{},F={[K]:{currentPage:l.value,pageSize:r.value},form:u._formData||{},...v};p.value?.prop&&(F[Q]=p.value.prop,F[X]=p.value.order),f.value&&Object.keys(f.value).length&&(F[Y]=f.value),m.value=!0;try{const w=await S(F),O=u.response||{},ee=O.listField||"list",te=O.totalField||"total",i=O.transform;let k=[],Z=0;if(typeof i=="function"){const N=i(w);k=N?.list??[],Z=N?.total??0}else w&&typeof w=="object"&&(k=w?.[ee]??w?.data??[],Z=w?.[te]??w?.total??0);o.value=Array.isArray(k)?k:[],c.value=Number(Z)||0,a("loaded",{data:o.value,total:c.value,payload:F})}catch(w){a("load-error",w)}finally{m.value=!1}},L=(u,S)=>{C.value?o.value.splice(S,1,u):a("update:row",{index:S,row:u})};e.provide("updateRow",L),e.onMounted(()=>{C.value&&_()});const G=()=>n.value,J=()=>n.value?.getSelectionRows?.()||[],W=()=>_();return{tableRef:n,containerStyle:g,tableHeight:d,getTableRef:G,pageSize:r,currentPage:l,loading:m,renderData:h,total:s,pageSizes:e.computed(()=>t.pageSizes),paginationLayout:e.computed(()=>t.paginationLayout),handleSizeChange:B,handlePageChange:V,handleSortChange:q,handleFilterChange:U,reload:W,getSelectedRows:J,updateRow:L}}});function ke(t,a,n,r,l,m){const o=e.resolveComponent("ZxtTableColumn"),c=e.resolveComponent("el-table"),p=e.resolveComponent("ZxtPagination"),f=e.resolveDirective("loading");return e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["zxt-table-container",{"zxt-table-container--full":t.height==="full"}]),style:e.normalizeStyle(t.containerStyle)},[e.withDirectives((e.openBlock(),e.createBlock(c,e.mergeProps({ref:"tableRef",data:t.renderData,height:t.tableHeight},t.$attrs,{id:t.id,onSortChange:t.handleSortChange,onFilterChange:t.handleFilterChange}),{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.columns,(g,d)=>(e.openBlock(),e.createBlock(o,{key:d,column:g,"current-page":t.currentPage,"page-size":t.pageSize},e.createSlots({_:2},[e.renderList(t.$slots,(C,s)=>({name:s,fn:e.withCtx(h=>[e.renderSlot(t.$slots,s,e.mergeProps({ref_for:!0},h),void 0,!0)])}))]),1032,["column","current-page","page-size"]))),128))]),_:3},16,["data","height","id","onSortChange","onFilterChange"])),[[f,t.loading]]),t.pageable?(e.openBlock(),e.createBlock(p,{key:0,"model-value":t.currentPage,"page-size":t.pageSize,"onUpdate:pageSize":a[0]||(a[0]=g=>t.pageSize=g),"page-sizes":t.pageSizes,total:t.total,layout:t.paginationLayout,onPageChange:t.handlePageChange,onSizeChange:t.handleSizeChange},null,8,["model-value","page-size","page-sizes","total","layout","onPageChange","onSizeChange"])):e.createCommentVNode("",!0)],6)}const z=R(be,[["render",ke],["__scopeId","data-v-1c00db7c"]]),E=new Map;class ze{add(a,n){return!a||typeof a!="string"?(console.warn("[ZxtTable] 渲染器名称必须是字符串"),this):!n||typeof n!="object"?(console.warn("[ZxtTable] 渲染器配置必须是对象"),this):(E.has(a)&&console.warn(`[ZxtTable] 渲染器 "${a}" 已存在,将被覆盖`),E.set(a,n),this)}get(a){return E.get(a)}delete(a){return E.delete(a)}has(a){return E.has(a)}getAll(){return Array.from(E.keys())}clear(){E.clear()}}const j=new ze;function we(t,a,n={}){if(!t||!t.itemRender)return null;const{name:r}=t.itemRender;if(r&&j.has(r)){const l=j.get(r);if(typeof l.renderItemContent=="function"){const m={data:a,field:t.field||t.prop,item:t,formData:a};try{return l.renderItemContent(n,m)}catch(o){return console.error(`[ZxtTable] 渲染器 "${r}" 执行出错:`,o),null}}}return null}z.install=function(t){t.component(z.name,z)},z.registerRenderer=ue,z.renderer=j;var Se=e.defineComponent({name:"Delete",__name:"delete",setup(t){return(a,n)=>(e.openBlock(),e.createElementBlock("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[e.createElementVNode("path",{fill:"currentColor",d:"M160 256H96a32 32 0 0 1 0-64h256V95.936a32 32 0 0 1 32-32h256a32 32 0 0 1 32 32V192h256a32 32 0 1 1 0 64h-64v672a32 32 0 0 1-32 32H192a32 32 0 0 1-32-32zm448-64v-64H416v64zM224 896h576V256H224zm192-128a32 32 0 0 1-32-32V416a32 32 0 0 1 64 0v320a32 32 0 0 1-32 32m192 0a32 32 0 0 1-32-32V416a32 32 0 0 1 64 0v320a32 32 0 0 1-32 32"})]))}}),ae=Se,_e=e.defineComponent({name:"Download",__name:"download",setup(t){return(a,n)=>(e.openBlock(),e.createElementBlock("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[e.createElementVNode("path",{fill:"currentColor",d:"M160 832h704a32 32 0 1 1 0 64H160a32 32 0 1 1 0-64m384-253.696 236.288-236.352 45.248 45.248L508.8 704 192 387.2l45.248-45.248L480 584.704V128h64z"})]))}}),ne=_e,Be=e.defineComponent({name:"Edit",__name:"edit",setup(t){return(a,n)=>(e.openBlock(),e.createElementBlock("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[e.createElementVNode("path",{fill:"currentColor",d:"M832 512a32 32 0 1 1 64 0v352a32 32 0 0 1-32 32H160a32 32 0 0 1-32-32V160a32 32 0 0 1 32-32h352a32 32 0 0 1 0 64H192v640h640z"}),e.createElementVNode("path",{fill:"currentColor",d:"m469.952 554.24 52.8-7.552L847.104 222.4a32 32 0 1 0-45.248-45.248L477.44 501.44l-7.552 52.8zm422.4-422.4a96 96 0 0 1 0 135.808l-331.84 331.84a32 32 0 0 1-18.112 9.088L436.8 623.68a32 32 0 0 1-36.224-36.224l15.104-105.6a32 32 0 0 1 9.024-18.112l331.904-331.84a96 96 0 0 1 135.744 0z"})]))}}),oe=Be,Ve=e.defineComponent({name:"Plus",__name:"plus",setup(t){return(a,n)=>(e.openBlock(),e.createElementBlock("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[e.createElementVNode("path",{fill:"currentColor",d:"M480 480V128a32 32 0 0 1 64 0v352h352a32 32 0 1 1 0 64H544v352a32 32 0 1 1-64 0V544H128a32 32 0 0 1 0-64z"})]))}}),re=Ve,$e=e.defineComponent({name:"Refresh",__name:"refresh",setup(t){return(a,n)=>(e.openBlock(),e.createElementBlock("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[e.createElementVNode("path",{fill:"currentColor",d:"M771.776 794.88A384 384 0 0 1 128 512h64a320 320 0 0 0 555.712 216.448H654.72a32 32 0 1 1 0-64h149.056a32 32 0 0 1 32 32v148.928a32 32 0 1 1-64 0v-50.56zM276.288 295.616h92.992a32 32 0 0 1 0 64H220.16a32 32 0 0 1-32-32V178.56a32 32 0 0 1 64 0v50.56A384 384 0 0 1 896.128 512h-64a320 320 0 0 0-555.776-216.384z"})]))}}),A=$e,Ee=e.defineComponent({name:"Search",__name:"search",setup(t){return(a,n)=>(e.openBlock(),e.createElementBlock("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[e.createElementVNode("path",{fill:"currentColor",d:"m795.904 750.72 124.992 124.928a32 32 0 0 1-45.248 45.248L750.656 795.904a416 416 0 1 1 45.248-45.248zM480 832a352 352 0 1 0 0-704 352 352 0 0 0 0 704"})]))}}),H=Ee,Pe=e.defineComponent({name:"Setting",__name:"setting",setup(t){return(a,n)=>(e.openBlock(),e.createElementBlock("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[e.createElementVNode("path",{fill:"currentColor",d:"M600.704 64a32 32 0 0 1 30.464 22.208l35.2 109.376c14.784 7.232 28.928 15.36 42.432 24.512l112.384-24.192a32 32 0 0 1 34.432 15.36L944.32 364.8a32 32 0 0 1-4.032 37.504l-77.12 85.12a357 357 0 0 1 0 49.024l77.12 85.248a32 32 0 0 1 4.032 37.504l-88.704 153.6a32 32 0 0 1-34.432 15.296L708.8 803.904c-13.44 9.088-27.648 17.28-42.368 24.512l-35.264 109.376A32 32 0 0 1 600.704 960H423.296a32 32 0 0 1-30.464-22.208L357.696 828.48a352 352 0 0 1-42.56-24.64l-112.32 24.256a32 32 0 0 1-34.432-15.36L79.68 659.2a32 32 0 0 1 4.032-37.504l77.12-85.248a357 357 0 0 1 0-48.896l-77.12-85.248A32 32 0 0 1 79.68 364.8l88.704-153.6a32 32 0 0 1 34.432-15.296l112.32 24.256c13.568-9.152 27.776-17.408 42.56-24.64l35.2-109.312A32 32 0 0 1 423.232 64H600.64zm-23.424 64H446.72l-36.352 113.088-24.512 11.968a294 294 0 0 0-34.816 20.096l-22.656 15.36-116.224-25.088-65.28 113.152 79.68 88.192-1.92 27.136a293 293 0 0 0 0 40.192l1.92 27.136-79.808 88.192 65.344 113.152 116.224-25.024 22.656 15.296a294 294 0 0 0 34.816 20.096l24.512 11.968L446.72 896h130.688l36.48-113.152 24.448-11.904a288 288 0 0 0 34.752-20.096l22.592-15.296 116.288 25.024 65.28-113.152-79.744-88.192 1.92-27.136a293 293 0 0 0 0-40.256l-1.92-27.136 79.808-88.128-65.344-113.152-116.288 24.96-22.592-15.232a288 288 0 0 0-34.752-20.096l-24.448-11.904L577.344 128zM512 320a192 192 0 1 1 0 384 192 192 0 0 1 0-384m0 64a128 128 0 1 0 0 256 128 128 0 0 0 0-256"})]))}}),le=Pe,Fe=e.defineComponent({name:"Upload",__name:"upload",setup(t){return(a,n)=>(e.openBlock(),e.createElementBlock("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[e.createElementVNode("path",{fill:"currentColor",d:"M160 832h704a32 32 0 1 1 0 64H160a32 32 0 1 1 0-64m384-578.304V704h-64V247.296L237.248 490.048 192 444.8 508.8 128l316.8 316.8-45.312 45.248z"})]))}}),se=Fe,Re=e.defineComponent({name:"View",__name:"view",setup(t){return(a,n)=>(e.openBlock(),e.createElementBlock("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[e.createElementVNode("path",{fill:"currentColor",d:"M512 160c320 0 512 352 512 352S832 864 512 864 0 512 0 512s192-352 512-352m0 64c-225.28 0-384.128 208.064-436.8 288 52.608 79.872 211.456 288 436.8 288 225.28 0 384.128-208.064 436.8-288-52.608-79.872-211.456-288-436.8-288m0 64a224 224 0 1 1 0 448 224 224 0 0 1 0-448m0 64a160.19 160.19 0 0 0-160 160c0 88.192 71.744 160 160 160s160-71.808 160-160-71.744-160-160-160"})]))}}),ie=Re;const Te=e.defineComponent({name:"ZxtForm",props:{formColumns:{type:Array,default:()=>[]},initialFormData:{type:Object,default:()=>({})},rules:{type:Object,default:()=>({})}},emits:["submit","reset"],setup(t,{emit:a,expose:n}){const r=e.ref(null),l=e.reactive({}),m={input:"el-input",select:"el-select",date:"el-date-picker",daterange:"el-date-picker",datetime:"el-date-picker",datetimerange:"el-date-picker",cascader:"el-cascader"},o=s=>m[s]||"el-input",c=s=>{const h=s.type||"input",B=["select","date","daterange","datetime","datetimerange","cascader"].includes(h),V={placeholder:s.placeholder||`请${B?"选择":"输入"}${s.label}`,disabled:s.disabled,style:"width: 100%","popper-class":"zxt-form-popper"};switch(h){case"date":case"daterange":case"datetime":case"datetimerange":return{...V,type:s.dateType||h,startPlaceholder:s.startPlaceholder||"开始日期",endPlaceholder:s.endPlaceholder||"结束日期",format:s.format,valueFormat:s.valueFormat};case"cascader":return{...V,options:s.options,props:s.cascaderProps,clearable:s.clearable!==!1};case"select":return V;case"input":default:return V}},p=e.computed(()=>t.formColumns.map(s=>({...s,colSpan:{xs:s.xs??s.span??24,sm:s.sm??s.span??12,md:s.md??s.span??12,lg:s.lg??s.span??12,xl:s.xl??s.span??12}})));e.watch(()=>t.initialFormData,s=>{Object.keys(l).forEach(h=>{delete l[h]}),Object.assign(l,s)},{immediate:!0,deep:!0});const f=e.computed(()=>{const s={...t.rules};return Object.keys(s).length===0&&t.formColumns.length>0&&t.formColumns.forEach(h=>{if(h.required){const B=["select","date","daterange","datetime","datetimerange","cascader"].includes(h.type);s[h.prop]=[{required:!0,message:`请${B?"选择":"输入"}${h.label}`,trigger:B?"change":"blur"}]}}),s}),g=()=>{r.value&&r.value.validate(s=>{s&&a("submit",{...l})})},d=()=>{r.value&&r.value.resetFields(),a("reset")},C=s=>()=>we(s,l,{})||null;return n({validate:()=>r.value?r.value.validate():Promise.resolve(!1),resetFields:()=>r.value&&r.value.resetFields(),getFormData:()=>({...l}),submitForm:g,resetForm:d}),{formRef:r,formData:l,formRules:f,submitForm:g,resetForm:d,processedColumns:p,getComponentType:o,getComponentProps:c,renderCustomItem:C}}}),De={class:"zxt-form-container"},Ne={key:0,class:"form-label"},xe={class:"form-control"};function Oe(t,a,n,r,l,m){const o=e.resolveComponent("el-option"),c=e.resolveComponent("el-form-item"),p=e.resolveComponent("el-col"),f=e.resolveComponent("el-row"),g=e.resolveComponent("el-form");return e.openBlock(),e.createElementBlock("div",De,[e.createVNode(g,{ref:"formRef",model:t.formData,rules:t.formRules,"label-width":"100px",class:"zxt-form"},{default:e.withCtx(()=>[e.createVNode(f,{gutter:20},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.processedColumns,(d,C)=>(e.openBlock(),e.createBlock(p,e.mergeProps({key:C},{ref_for:!0},d.colSpan),{default:e.withCtx(()=>[e.createVNode(c,{prop:d.prop,required:d.required,"label-width":"0",class:"custom-form-item"},{default:e.withCtx(()=>[e.createElementVNode("div",{class:e.normalizeClass(["form-item-wrapper",{"is-action":d.isAction}])},[d.label?(e.openBlock(),e.createElementBlock("span",Ne,e.toDisplayString(d.label),1)):e.createCommentVNode("",!0),e.createElementVNode("div",xe,[d.type==="slot"?e.renderSlot(t.$slots,d.slotName||d.prop,{key:0,formData:t.formData,column:d},void 0,!0):d.itemRender?(e.openBlock(),e.createBlock(e.resolveDynamicComponent(t.renderCustomItem(d)),{key:1})):(e.openBlock(),e.createBlock(e.resolveDynamicComponent(t.getComponentType(d.type)),e.mergeProps({key:2,modelValue:t.formData[d.prop],"onUpdate:modelValue":s=>t.formData[d.prop]=s},{ref_for:!0},t.getComponentProps(d),e.toHandlers(d.events||{})),{default:e.withCtx(()=>[d.type==="select"?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:0},e.renderList(d.options,(s,h)=>(e.openBlock(),e.createBlock(o,{key:h,label:s.label,value:s.value},null,8,["label","value"]))),128)):e.createCommentVNode("",!0)]),_:2},1040,["modelValue","onUpdate:modelValue"]))])],2)]),_:2},1032,["prop","required"])]),_:2},1040))),128))]),_:3})]),_:3},8,["model","rules"])])}const M=R(Te,[["render",Oe],["__scopeId","data-v-9c337267"]]),Ze=e.defineComponent({name:"ZxtGrid",inheritAttrs:!1,components:{ZxtTable:z,ZxtForm:M,Plus:re,Delete:ae,Refresh:A,Download:ne,Search:H,Edit:oe,View:ie,Upload:se,Setting:le},props:{gridOptions:{type:Object,default:()=>({id:"grid",columns:[],data:[],height:400,pageable:!0,pageSizes:[10,20,50,100],paginationLayout:"total, sizes, prev, pager, next, jumper",toolbar:null,formMode:!1,formColumns:[],rules:{}})},externalData:{type:Array,default:()=>[]}},emits:["toolbar-click","submit","reset","page-change","size-change"],setup(t,{emit:a,expose:n}){const r=e.useAttrs(),l=e.ref(null),m=e.ref(null),o=e.ref(null),c=e.ref(1),p=e.ref(10),f=e.ref([]),g=e.ref(t.gridOptions.formMode||!0),d={Plus:re,Delete:ae,Refresh:A,Download:ne,Search:H,Edit:oe,View:ie,Upload:se,Setting:le},C=e.computed(()=>{const i=t.gridOptions.formConfig;if(!i||!i.items)return[];const k=[...i.items];return k.some(N=>N.type==="slot"&&N.slotName==="search-actions")||k.push({type:"slot",slotName:"search-actions",span:6,labelWidth:"0px",isAction:!0,...i.actionConfig}),k}),s=()=>{o.value?.submitForm()},h=i=>{a("submit",i),t.gridOptions.proxyConfig&&(t.gridOptions.proxyConfig._formData||(t.gridOptions.proxyConfig._formData={}),Object.assign(t.gridOptions.proxyConfig._formData,i),c.value=1,l.value?.reload?.())},B=()=>{o.value?.resetForm()},V=()=>{a("reset"),t.gridOptions.proxyConfig&&(t.gridOptions.proxyConfig._formData&&(t.gridOptions.proxyConfig._formData={}),c.value=1,l.value?.reload?.())},q=i=>{if(i)return typeof i=="object"||typeof i=="function"?i:d[i]},U=e.computed(()=>{const{formConfig:i,toolbar:k,formMode:Z,formColumns:N,rules:Je,data:We,...Ue}=t.gridOptions;return Ue}),_=e.computed(()=>t.externalData.length>0?t.externalData:t.gridOptions.data||[]),L=e.computed(()=>_.value.length),G=(i,k)=>{switch(a("toolbar-click",{code:i,button:k,grid:l.value}),i){case"add":J();break;case"delete":W();break;case"refresh":u();break;case"export":S();break}},J=()=>{g.value=!0},W=()=>{const i=l.value?.getTableRef()?.getSelectionRows?.()||[];if(i.length===0){b.ElMessage.warning("请先选择要删除的数据");return}b.ElMessage.success(`删除 ${i.length} 条数据`)},u=()=>{b.ElMessage.success("刷新数据"),l.value?.reload?.()},S=()=>{b.ElMessage.success("导出数据")},P=i=>{a("submit",i)},K=()=>{a("reset")},Q=()=>{g.value=!1},X=i=>{c.value=i.page,a("page-change",i)},Y=i=>{p.value=i.size,a("size-change",i)},v=()=>l.value,F=()=>m.value,w=()=>l.value?.getTableRef()?.getSelectionRows?.()||[],O=i=>{f.value=i},ee=i=>{g.value=i},te=(i,...k)=>{switch(i){case"query":c.value=1,l.value?.reload?.();break;case"reload":l.value?.reload?.();break;default:console.warn(`[ZxtGrid] commitProxy: unknown type "${i}"`)}};return e.watch(()=>t.gridOptions.formMode,i=>{i!==void 0&&(g.value=i)}),n({getGridRef:v,getFormRef:F,getSelectedRows:w,reloadData:O,setFormVisible:ee,commitProxy:te}),{attrs:r,gridRef:l,formRef:m,searchFormRef:o,currentPage:c,pageSize:p,tableData:_,tableProps:U,total:L,isFormVisible:g,searchFormColumns:C,getIconComponent:q,handleToolbarClick:G,handleSubmit:P,handleFormReset:K,handleFormCancel:Q,handlePageChange:X,handleSizeChange:Y,handleSearch:s,handleSearchSubmit:h,handleReset:B,handleSearchReset:V,Search:H,Refresh:A}}}),Me={key:0,class:"grid-search-form"},Le={class:"search-btn-group"},je={class:"grid-table-wrapper"},Ae={key:0,class:"grid-toolbar"};function He(t,a,n,r,l,m){const o=e.resolveComponent("el-button"),c=e.resolveComponent("ZxtForm"),p=e.resolveComponent("ZxtTable");return e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["zxt-grid-container",{"zxt-grid-container--full":t.gridOptions.height==="full"}])},[t.gridOptions.formConfig?(e.openBlock(),e.createElementBlock("div",Me,[e.createVNode(c,{ref:"searchFormRef","form-columns":t.searchFormColumns,"initial-form-data":t.gridOptions.formConfig.data,rules:t.gridOptions.formConfig.rules,onSubmit:t.handleSearchSubmit,onReset:t.handleSearchReset},e.createSlots({"search-actions":e.withCtx(()=>[e.createElementVNode("div",Le,[e.createVNode(o,{class:"btn-search",icon:t.Search,onClick:t.handleSearch},{default:e.withCtx(()=>[...a[0]||(a[0]=[e.createTextVNode(" 查询 ",-1)])]),_:1},8,["icon","onClick"]),e.createVNode(o,{class:"btn-reset",icon:t.Refresh,onClick:t.handleReset},{default:e.withCtx(()=>[...a[1]||(a[1]=[e.createTextVNode(" 重置 ",-1)])]),_:1},8,["icon","onClick"])])]),_:2},[e.renderList(t.$slots,(f,g)=>({name:g,fn:e.withCtx(d=>[e.renderSlot(t.$slots,g,e.normalizeProps(e.guardReactiveProps(d)),void 0,!0)])}))]),1032,["form-columns","initial-form-data","rules","onSubmit","onReset"])])):e.createCommentVNode("",!0),e.createElementVNode("div",je,[t.gridOptions.toolbar?(e.openBlock(),e.createElementBlock("div",Ae,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.gridOptions.toolbar.buttons,(f,g)=>(e.openBlock(),e.createBlock(o,{key:g,type:f.type||"default",size:f.size||"small",icon:t.getIconComponent(f.icon),disabled:f.disabled,onClick:d=>t.handleToolbarClick(f.code,f)},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(f.name),1)]),_:2},1032,["type","size","icon","disabled","onClick"]))),128)),e.renderSlot(t.$slots,"toolbar",{grid:t.$refs.gridRef},void 0,!0)])):e.createCommentVNode("",!0),e.createVNode(p,e.mergeProps({ref:"gridRef"},{...t.tableProps,...t.attrs},{id:t.gridOptions.id,columns:t.gridOptions.columns,data:t.tableData,height:t.gridOptions.height,pageable:t.gridOptions.pageable!==!1,"current-page":t.currentPage,"page-size":t.pageSize,"page-sizes":t.gridOptions.pageSizes,total:t.total,"pagination-layout":t.gridOptions.paginationLayout,onPageChange:t.handlePageChange,onSizeChange:t.handleSizeChange}),e.createSlots({_:2},[e.renderList(t.$slots,(f,g)=>({name:g,fn:e.withCtx(d=>[e.renderSlot(t.$slots,g,e.normalizeProps(e.guardReactiveProps(d)),void 0,!0)])}))]),1040,["id","columns","data","height","pageable","current-page","page-size","page-sizes","total","pagination-layout","onPageChange","onSizeChange"])])],2)}const I=R(Ze,[["render",He],["__scopeId","data-v-ca0e4fa5"]]);$.install=function(t){t.component($.name,$)};const Ie=[T,D,z,I,M,$],qe={install:t=>{Ie.forEach(a=>{t.component(a.name,a)})},MyButton:T,JsxButton:D,ZxtTable:z,ZxtGrid:I,ZxtForm:M,ZxtPagination:$,renderer:z.renderer,registerRenderer:z.registerRenderer};y.JsxButton=D,y.MyButton=T,y.ZxtForm=M,y.ZxtGrid=I,y.ZxtPagination=$,y.ZxtTable=z,y.default=qe,Object.defineProperties(y,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})}));
|
|
1
|
+
(function(y,e){typeof exports=="object"&&typeof module<"u"?e(exports,require("vue"),require("element-plus")):typeof define=="function"&&define.amd?define(["exports","vue","element-plus"],e):(y=typeof globalThis<"u"?globalThis:y||self,e(y.ZxtTable={},y.Vue,y.ElementPlus))})(this,(function(y,e,b){"use strict";const R=(t,a)=>{const n=t.__vccOpts||t;for(const[r,l]of a)n[r]=l;return n},de={name:"MyButton",props:{type:{type:String,default:"default",validator:t=>["default","primary","success","warning","danger"].includes(t)},disabled:{type:Boolean,default:!1}},emits:["click"],setup(t,{emit:a}){return{handleClick:r=>{a("click",r)}}}},ce=["disabled"];function pe(t,a,n,r,l,m){return e.openBlock(),e.createElementBlock("button",{class:e.normalizeClass(["my-button",[`my-button--${n.type}`,{"is-disabled":n.disabled}]]),disabled:n.disabled,onClick:a[0]||(a[0]=(...o)=>r.handleClick&&r.handleClick(...o))},[e.renderSlot(t.$slots,"default",{},void 0,!0)],10,ce)}const T=R(de,[["render",pe],["__scopeId","data-v-4480e77d"]]);T.install=function(t){t.component(T.name,T)};const D=e.defineComponent({name:"JsxButton",props:{type:{type:String,default:"default",validator:t=>["default","primary","success","warning","danger"].includes(t)},disabled:{type:Boolean,default:!1}},emits:["click"],setup(t,{emit:a,slots:n}){const r=l=>{t.disabled||a("click",l)};return()=>e.createVNode("button",{class:["jsx-button",`jsx-button--${t.type}`,{"is-disabled":t.disabled}],disabled:t.disabled,onClick:r},[n.default?.()])}});D.install=function(t){t.component(D.name,D)};const me=e.defineComponent({name:"ZxtPagination",components:{ElPagination:b.ElPagination},props:{modelValue:{type:Number,default:1},pageSize:{type:Number,default:10},pageSizes:{type:Array,default:()=>[10,20,50,100]},total:{type:Number,default:0},layout:{type:String,default:"total, sizes, prev, pager, next, jumper"}},emits:["update:modelValue","update:pageSize","page-change","size-change"],setup(t,{emit:a}){const n=e.ref(t.modelValue),r=e.ref(t.pageSize);return e.watch(()=>t.modelValue,o=>{n.value=o}),e.watch(()=>t.pageSize,o=>{r.value=o}),{currentPage:n,pageSize:r,handleSizeChange:o=>{r.value=o,n.value=1,a("update:pageSize",o),a("size-change",{page:n.value,size:o})},handleCurrentChange:o=>{n.value=o,a("update:modelValue",o),a("page-change",{page:o,size:r.value})}}}});function fe(t,a,n,r,l,m){const o=e.resolveComponent("el-pagination");return e.openBlock(),e.createBlock(o,{"current-page":t.currentPage,"onUpdate:currentPage":a[0]||(a[0]=c=>t.currentPage=c),"page-size":t.pageSize,"onUpdate:pageSize":a[1]||(a[1]=c=>t.pageSize=c),"page-sizes":t.pageSizes,total:t.total,layout:t.layout,class:"zxt-pagination",onSizeChange:t.handleSizeChange,onCurrentChange:t.handleCurrentChange},null,8,["current-page","page-size","page-sizes","total","layout","onSizeChange","onCurrentChange"])}const $=R(me,[["render",fe],["__scopeId","data-v-497aa44d"]]),O={default:({cellValue:t})=>t??"",input:({cellValue:t,row:a,column:n,updateRow:r})=>e.h(b.ElInput,{modelValue:t,size:"small",onInput:l=>r({...a,[n.property]:l})}),select:({cellValue:t,row:a,column:n,updateRow:r,options:l=[]})=>e.h(b.ElSelect,{modelValue:t,size:"small",onChange:m=>r({...a,[n.property]:m})},()=>l.map(m=>e.h(b.ElOption,{label:m.label,value:m.value,key:m.value}))),checkbox:({cellValue:t,row:a,column:n,updateRow:r})=>e.h(b.ElCheckbox,{modelValue:!!t,onChange:l=>r({...a,[n.property]:l})}),link:({cellValue:t,href:a,target:n="_blank"})=>e.h(b.ElLink,{href:a,target:n},()=>t)};function ge(t,a){if(!t)return null;if(typeof t=="string"){const n=O[t];return n?n(a):(console.warn(`[ZxtTable] 未找到内置渲染器: ${t}`),a.cellValue??"")}if(typeof t=="function")return t(a);if(typeof t=="object"&&!Array.isArray(t)){const{name:n,props:r={},attrs:l={},events:m={},content:o}=t;return typeof n=="string"&&O[n]?O[n]({...a,...r,...l,...m}):typeof n=="object"||typeof n=="function"?e.h(n,{...r,...l,...m},o):(console.warn("[ZxtTable] cellRender 对象缺少有效的 name 字段"),a.cellValue??"")}return a.cellValue??""}function ue(t,a){O[t]&&console.warn(`[ZxtTable] 内置渲染器 ${t} 已被覆盖`),O[t]=a}const he=e.defineComponent({name:"ZxtTableColumn",components:{ElTableColumn:b.ElTableColumn},props:{column:{type:Object,required:!0},currentPage:{type:Number,default:1},pageSize:{type:Number,default:10}},setup(t){const a=e.inject("updateRow",()=>{}),n=o=>{const{currentPage:c,pageSize:p}=t;return(c-1)*p+o+1},r=e.computed(()=>{const o=t.column;return{...o,prop:o.prop??o.field,label:o.label??o.title}}),l=e.computed(()=>{const{children:o,...c}=r.value;return c});return{normalizedColumn:r,columnProps:l,renderCell:o=>{const c=r.value,p=o.row[c.prop],f=p??c.defaultValue??"";return ge(c.cellRender,{row:o.row,column:c,rowIndex:o.$index,cellValue:f,updateRow:g=>a(g,o.$index)})},defaultIndexMethod:n}}});function Ce(t,a,n,r,l,m){const o=e.resolveComponent("ZxtTableColumn",!0),c=e.resolveComponent("el-table-column");return t.normalizedColumn.children&&t.normalizedColumn.children.length?(e.openBlock(),e.createBlock(c,e.mergeProps({key:0},t.columnProps,{key:t.normalizedColumn.prop+"-group"}),{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.normalizedColumn.children,(p,f)=>(e.openBlock(),e.createBlock(o,{key:f,column:p,"current-page":t.currentPage,"page-size":t.pageSize},e.createSlots({_:2},[e.renderList(t.$slots,(g,d)=>({name:d,fn:e.withCtx(C=>[e.renderSlot(t.$slots,d,e.mergeProps({ref_for:!0},C))])}))]),1032,["column","current-page","page-size"]))),128))]),_:3},16)):(e.openBlock(),e.createBlock(c,e.mergeProps({key:1},t.columnProps,{key:t.normalizedColumn.prop,index:t.normalizedColumn.indexMethod||t.defaultIndexMethod}),e.createSlots({_:2},[!["selection","index"].includes(t.normalizedColumn.type)&&(t.normalizedColumn.type!=="expand"||t.normalizedColumn.slot)?{name:"default",fn:e.withCtx(p=>[t.normalizedColumn.slot?e.renderSlot(t.$slots,t.normalizedColumn.slot,{key:0,row:p.row,index:p.$index,column:t.normalizedColumn}):t.normalizedColumn.cellRender?(e.openBlock(),e.createBlock(e.resolveDynamicComponent(t.renderCell(p)),{key:1})):t.normalizedColumn.formatter?(e.openBlock(),e.createElementBlock(e.Fragment,{key:2},[e.createTextVNode(e.toDisplayString(t.normalizedColumn.formatter(p.row,t.normalizedColumn,p.row[t.normalizedColumn.prop],p.$index)),1)],64)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:3},[e.createTextVNode(e.toDisplayString(p.row[t.normalizedColumn.prop]),1)],64))]),key:"0"}:void 0]),1040,["index"]))}const ye=R(he,[["render",Ce]]),be=e.defineComponent({name:"ZxtTable",inheritAttrs:!1,components:{ZxtPagination:$,ZxtTableColumn:ye,ElTable:b.ElTable},props:{id:{type:String,default:""},columns:{type:Array,default:()=>[]},data:{type:Array,default:()=>[]},height:{type:[String,Number],default:""},pageable:{type:Boolean,default:!0},currentPage:{type:Number,default:1},pageSize:{type:Number,default:10},pageSizes:{type:Array,default:()=>[10,20,50,100]},total:{type:Number,default:0},paginationLayout:{type:String,default:"total, sizes, prev, pager, next, jumper"},proxyConfig:{type:Object,default:null}},emits:["page-change","size-change","sort-change","filter-change","loaded","load-error","update:row"],setup(t,{emit:a}){const n=e.ref(null),r=e.ref(t.pageSize),l=e.ref(t.currentPage),m=e.ref(!1),o=e.ref([]),c=e.ref(0),p=e.ref({prop:"",order:""}),f=e.ref({}),g=e.computed(()=>t.height==="full"?{height:"100%"}:{}),d=e.computed(()=>{if(t.height!=="full")return t.height}),C=e.computed(()=>!!t.proxyConfig),s=e.computed(()=>C.value?c.value:t.total>0?t.total:t.data.length),h=e.computed(()=>C.value?o.value:t.data),B=u=>{C.value&&(l.value=u.page,r.value=u.size,_()),a("size-change",u)},V=u=>{C.value&&(l.value=u.page,r.value=u.size,_()),a("page-change",u)},q=({prop:u,order:S})=>{p.value={prop:u,order:S},C.value&&_(),a("sort-change",{prop:u,order:S})},U=u=>{f.value=u||{},C.value&&_(),a("filter-change",f.value)},_=async()=>{if(!C.value)return;const u=t.proxyConfig||{},S=u.ajax?.query;if(typeof S!="function")return;const P=u.props||{},K=P.pageField||"page";P.sizeField;const Q=P.sortField||"sort",X=P.orderField||"order",Y=P.filtersField||"filters",v=u.params||{},F={[K]:{currentPage:l.value,pageSize:r.value},form:u._formData||{},...v};p.value?.prop&&(F[Q]=p.value.prop,F[X]=p.value.order),f.value&&Object.keys(f.value).length&&(F[Y]=f.value),m.value=!0;try{const w=await S(F),x=u.response||{},ee=x.listField||"list",te=x.totalField||"total",i=x.transform;let k=[],Z=0;if(typeof i=="function"){const N=i(w);k=N?.list??[],Z=N?.total??0}else w&&typeof w=="object"&&(k=w?.[ee]??w?.data??[],Z=w?.[te]??w?.total??0);o.value=Array.isArray(k)?k:[],c.value=Number(Z)||0,a("loaded",{data:o.value,total:c.value,payload:F})}catch(w){a("load-error",w)}finally{m.value=!1}},L=(u,S)=>{C.value?o.value.splice(S,1,u):a("update:row",{index:S,row:u})};e.provide("updateRow",L),e.onMounted(()=>{C.value&&_()});const G=()=>n.value,J=()=>n.value?.getSelectionRows?.()||[],W=()=>_();return{tableRef:n,containerStyle:g,tableHeight:d,getTableRef:G,pageSize:r,currentPage:l,loading:m,renderData:h,total:s,pageSizes:e.computed(()=>t.pageSizes),paginationLayout:e.computed(()=>t.paginationLayout),handleSizeChange:B,handlePageChange:V,handleSortChange:q,handleFilterChange:U,reload:W,getSelectedRows:J,updateRow:L}}});function ke(t,a,n,r,l,m){const o=e.resolveComponent("ZxtTableColumn"),c=e.resolveComponent("el-table"),p=e.resolveComponent("ZxtPagination"),f=e.resolveDirective("loading");return e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["zxt-table-container",{"zxt-table-container--full":t.height==="full"}]),style:e.normalizeStyle(t.containerStyle)},[e.withDirectives((e.openBlock(),e.createBlock(c,e.mergeProps({ref:"tableRef",data:t.renderData,height:t.tableHeight},t.$attrs,{id:t.id,onSortChange:t.handleSortChange,onFilterChange:t.handleFilterChange}),{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.columns,(g,d)=>(e.openBlock(),e.createBlock(o,{key:d,column:g,"current-page":t.currentPage,"page-size":t.pageSize},e.createSlots({_:2},[e.renderList(t.$slots,(C,s)=>({name:s,fn:e.withCtx(h=>[e.renderSlot(t.$slots,s,e.mergeProps({ref_for:!0},h),void 0,!0)])}))]),1032,["column","current-page","page-size"]))),128))]),_:3},16,["data","height","id","onSortChange","onFilterChange"])),[[f,t.loading]]),t.pageable?(e.openBlock(),e.createBlock(p,{key:0,"model-value":t.currentPage,"page-size":t.pageSize,"onUpdate:pageSize":a[0]||(a[0]=g=>t.pageSize=g),"page-sizes":t.pageSizes,total:t.total,layout:t.paginationLayout,onPageChange:t.handlePageChange,onSizeChange:t.handleSizeChange},null,8,["model-value","page-size","page-sizes","total","layout","onPageChange","onSizeChange"])):e.createCommentVNode("",!0)],6)}const z=R(be,[["render",ke],["__scopeId","data-v-1c00db7c"]]),E=new Map;class ze{add(a,n){return!a||typeof a!="string"?(console.warn("[ZxtTable] 渲染器名称必须是字符串"),this):!n||typeof n!="object"?(console.warn("[ZxtTable] 渲染器配置必须是对象"),this):(E.has(a)&&console.warn(`[ZxtTable] 渲染器 "${a}" 已存在,将被覆盖`),E.set(a,n),this)}get(a){return E.get(a)}delete(a){return E.delete(a)}has(a){return E.has(a)}getAll(){return Array.from(E.keys())}clear(){E.clear()}}const j=new ze;function we(t,a,n={}){if(!t||!t.itemRender)return null;const{name:r}=t.itemRender;if(r&&j.has(r)){const l=j.get(r);if(typeof l.renderItemContent=="function"){const m={data:a,field:t.field||t.prop,item:t,formData:a};try{return l.renderItemContent(n,m)}catch(o){return console.error(`[ZxtTable] 渲染器 "${r}" 执行出错:`,o),null}}}return null}z.install=function(t){t.component(z.name,z)},z.registerRenderer=ue,z.renderer=j;var Se=e.defineComponent({name:"Delete",__name:"delete",setup(t){return(a,n)=>(e.openBlock(),e.createElementBlock("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[e.createElementVNode("path",{fill:"currentColor",d:"M160 256H96a32 32 0 0 1 0-64h256V95.936a32 32 0 0 1 32-32h256a32 32 0 0 1 32 32V192h256a32 32 0 1 1 0 64h-64v672a32 32 0 0 1-32 32H192a32 32 0 0 1-32-32zm448-64v-64H416v64zM224 896h576V256H224zm192-128a32 32 0 0 1-32-32V416a32 32 0 0 1 64 0v320a32 32 0 0 1-32 32m192 0a32 32 0 0 1-32-32V416a32 32 0 0 1 64 0v320a32 32 0 0 1-32 32"})]))}}),ae=Se,_e=e.defineComponent({name:"Download",__name:"download",setup(t){return(a,n)=>(e.openBlock(),e.createElementBlock("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[e.createElementVNode("path",{fill:"currentColor",d:"M160 832h704a32 32 0 1 1 0 64H160a32 32 0 1 1 0-64m384-253.696 236.288-236.352 45.248 45.248L508.8 704 192 387.2l45.248-45.248L480 584.704V128h64z"})]))}}),ne=_e,Be=e.defineComponent({name:"Edit",__name:"edit",setup(t){return(a,n)=>(e.openBlock(),e.createElementBlock("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[e.createElementVNode("path",{fill:"currentColor",d:"M832 512a32 32 0 1 1 64 0v352a32 32 0 0 1-32 32H160a32 32 0 0 1-32-32V160a32 32 0 0 1 32-32h352a32 32 0 0 1 0 64H192v640h640z"}),e.createElementVNode("path",{fill:"currentColor",d:"m469.952 554.24 52.8-7.552L847.104 222.4a32 32 0 1 0-45.248-45.248L477.44 501.44l-7.552 52.8zm422.4-422.4a96 96 0 0 1 0 135.808l-331.84 331.84a32 32 0 0 1-18.112 9.088L436.8 623.68a32 32 0 0 1-36.224-36.224l15.104-105.6a32 32 0 0 1 9.024-18.112l331.904-331.84a96 96 0 0 1 135.744 0z"})]))}}),oe=Be,Ve=e.defineComponent({name:"Plus",__name:"plus",setup(t){return(a,n)=>(e.openBlock(),e.createElementBlock("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[e.createElementVNode("path",{fill:"currentColor",d:"M480 480V128a32 32 0 0 1 64 0v352h352a32 32 0 1 1 0 64H544v352a32 32 0 1 1-64 0V544H128a32 32 0 0 1 0-64z"})]))}}),re=Ve,$e=e.defineComponent({name:"Refresh",__name:"refresh",setup(t){return(a,n)=>(e.openBlock(),e.createElementBlock("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[e.createElementVNode("path",{fill:"currentColor",d:"M771.776 794.88A384 384 0 0 1 128 512h64a320 320 0 0 0 555.712 216.448H654.72a32 32 0 1 1 0-64h149.056a32 32 0 0 1 32 32v148.928a32 32 0 1 1-64 0v-50.56zM276.288 295.616h92.992a32 32 0 0 1 0 64H220.16a32 32 0 0 1-32-32V178.56a32 32 0 0 1 64 0v50.56A384 384 0 0 1 896.128 512h-64a320 320 0 0 0-555.776-216.384z"})]))}}),A=$e,Ee=e.defineComponent({name:"Search",__name:"search",setup(t){return(a,n)=>(e.openBlock(),e.createElementBlock("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[e.createElementVNode("path",{fill:"currentColor",d:"m795.904 750.72 124.992 124.928a32 32 0 0 1-45.248 45.248L750.656 795.904a416 416 0 1 1 45.248-45.248zM480 832a352 352 0 1 0 0-704 352 352 0 0 0 0 704"})]))}}),H=Ee,Pe=e.defineComponent({name:"Setting",__name:"setting",setup(t){return(a,n)=>(e.openBlock(),e.createElementBlock("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[e.createElementVNode("path",{fill:"currentColor",d:"M600.704 64a32 32 0 0 1 30.464 22.208l35.2 109.376c14.784 7.232 28.928 15.36 42.432 24.512l112.384-24.192a32 32 0 0 1 34.432 15.36L944.32 364.8a32 32 0 0 1-4.032 37.504l-77.12 85.12a357 357 0 0 1 0 49.024l77.12 85.248a32 32 0 0 1 4.032 37.504l-88.704 153.6a32 32 0 0 1-34.432 15.296L708.8 803.904c-13.44 9.088-27.648 17.28-42.368 24.512l-35.264 109.376A32 32 0 0 1 600.704 960H423.296a32 32 0 0 1-30.464-22.208L357.696 828.48a352 352 0 0 1-42.56-24.64l-112.32 24.256a32 32 0 0 1-34.432-15.36L79.68 659.2a32 32 0 0 1 4.032-37.504l77.12-85.248a357 357 0 0 1 0-48.896l-77.12-85.248A32 32 0 0 1 79.68 364.8l88.704-153.6a32 32 0 0 1 34.432-15.296l112.32 24.256c13.568-9.152 27.776-17.408 42.56-24.64l35.2-109.312A32 32 0 0 1 423.232 64H600.64zm-23.424 64H446.72l-36.352 113.088-24.512 11.968a294 294 0 0 0-34.816 20.096l-22.656 15.36-116.224-25.088-65.28 113.152 79.68 88.192-1.92 27.136a293 293 0 0 0 0 40.192l1.92 27.136-79.808 88.192 65.344 113.152 116.224-25.024 22.656 15.296a294 294 0 0 0 34.816 20.096l24.512 11.968L446.72 896h130.688l36.48-113.152 24.448-11.904a288 288 0 0 0 34.752-20.096l22.592-15.296 116.288 25.024 65.28-113.152-79.744-88.192 1.92-27.136a293 293 0 0 0 0-40.256l-1.92-27.136 79.808-88.128-65.344-113.152-116.288 24.96-22.592-15.232a288 288 0 0 0-34.752-20.096l-24.448-11.904L577.344 128zM512 320a192 192 0 1 1 0 384 192 192 0 0 1 0-384m0 64a128 128 0 1 0 0 256 128 128 0 0 0 0-256"})]))}}),le=Pe,Fe=e.defineComponent({name:"Upload",__name:"upload",setup(t){return(a,n)=>(e.openBlock(),e.createElementBlock("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[e.createElementVNode("path",{fill:"currentColor",d:"M160 832h704a32 32 0 1 1 0 64H160a32 32 0 1 1 0-64m384-578.304V704h-64V247.296L237.248 490.048 192 444.8 508.8 128l316.8 316.8-45.312 45.248z"})]))}}),se=Fe,Re=e.defineComponent({name:"View",__name:"view",setup(t){return(a,n)=>(e.openBlock(),e.createElementBlock("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[e.createElementVNode("path",{fill:"currentColor",d:"M512 160c320 0 512 352 512 352S832 864 512 864 0 512 0 512s192-352 512-352m0 64c-225.28 0-384.128 208.064-436.8 288 52.608 79.872 211.456 288 436.8 288 225.28 0 384.128-208.064 436.8-288-52.608-79.872-211.456-288-436.8-288m0 64a224 224 0 1 1 0 448 224 224 0 0 1 0-448m0 64a160.19 160.19 0 0 0-160 160c0 88.192 71.744 160 160 160s160-71.808 160-160-71.744-160-160-160"})]))}}),ie=Re;const Te=e.defineComponent({name:"ZxtForm",props:{formColumns:{type:Array,default:()=>[]},initialFormData:{type:Object,default:()=>({})},rules:{type:Object,default:()=>({})}},emits:["submit","reset"],setup(t,{emit:a,expose:n}){const r=e.ref(null),l=e.reactive({}),m={input:"el-input",select:"el-select",date:"el-date-picker",daterange:"el-date-picker",datetime:"el-date-picker",datetimerange:"el-date-picker",cascader:"el-cascader"},o=s=>m[s]||"el-input",c=s=>{const h=s.type||"input",B=["select","date","daterange","datetime","datetimerange","cascader"].includes(h),V={placeholder:s.placeholder||`请${B?"选择":"输入"}${s.label}`,disabled:s.disabled,style:"width: 100%","popper-class":"zxt-form-popper"};switch(h){case"date":case"daterange":case"datetime":case"datetimerange":return{...V,type:s.dateType||h,startPlaceholder:s.startPlaceholder||"开始日期",endPlaceholder:s.endPlaceholder||"结束日期",format:s.format,valueFormat:s.valueFormat};case"cascader":return{...V,options:s.options,props:s.cascaderProps,clearable:s.clearable!==!1};case"select":return V;case"input":default:return V}},p=e.computed(()=>t.formColumns.map(s=>({...s,colSpan:{xs:s.xs??s.span??24,sm:s.sm??s.span??12,md:s.md??s.span??12,lg:s.lg??s.span??12,xl:s.xl??s.span??12}})));e.watch(()=>t.initialFormData,s=>{Object.keys(l).forEach(h=>{delete l[h]}),Object.assign(l,s)},{immediate:!0,deep:!0});const f=e.computed(()=>{const s={...t.rules};return Object.keys(s).length===0&&t.formColumns.length>0&&t.formColumns.forEach(h=>{if(h.required){const B=["select","date","daterange","datetime","datetimerange","cascader"].includes(h.type);s[h.prop]=[{required:!0,message:`请${B?"选择":"输入"}${h.label}`,trigger:B?"change":"blur"}]}}),s}),g=()=>{r.value&&r.value.validate(s=>{s&&a("submit",{...l})})},d=()=>{r.value&&r.value.resetFields(),a("reset")},C=s=>()=>we(s,l,{})||null;return n({validate:()=>r.value?r.value.validate():Promise.resolve(!1),resetFields:()=>r.value&&r.value.resetFields(),getFormData:()=>({...l}),submitForm:g,resetForm:d}),{formRef:r,formData:l,formRules:f,submitForm:g,resetForm:d,processedColumns:p,getComponentType:o,getComponentProps:c,renderCustomItem:C}}}),De={class:"zxt-form-container"},Ne={key:0,class:"form-label"},Oe={class:"form-control"};function xe(t,a,n,r,l,m){const o=e.resolveComponent("el-option"),c=e.resolveComponent("el-form-item"),p=e.resolveComponent("el-col"),f=e.resolveComponent("el-row"),g=e.resolveComponent("el-form");return e.openBlock(),e.createElementBlock("div",De,[e.createVNode(g,{ref:"formRef",model:t.formData,rules:t.formRules,"label-width":"100px",class:"zxt-form"},{default:e.withCtx(()=>[e.createVNode(f,{gutter:20},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.processedColumns,(d,C)=>(e.openBlock(),e.createBlock(p,e.mergeProps({key:C},{ref_for:!0},d.colSpan),{default:e.withCtx(()=>[e.createVNode(c,{prop:d.prop,required:d.required,"label-width":"0",class:"custom-form-item"},{default:e.withCtx(()=>[e.createElementVNode("div",{class:e.normalizeClass(["form-item-wrapper",{"is-action":d.isAction}])},[d.label?(e.openBlock(),e.createElementBlock("span",Ne,e.toDisplayString(d.label),1)):e.createCommentVNode("",!0),e.createElementVNode("div",Oe,[d.type==="slot"?e.renderSlot(t.$slots,d.slotName||d.prop,{key:0,formData:t.formData,column:d},void 0,!0):d.itemRender?(e.openBlock(),e.createBlock(e.resolveDynamicComponent(t.renderCustomItem(d)),{key:1})):(e.openBlock(),e.createBlock(e.resolveDynamicComponent(t.getComponentType(d.type)),e.mergeProps({key:2,modelValue:t.formData[d.prop],"onUpdate:modelValue":s=>t.formData[d.prop]=s},{ref_for:!0},t.getComponentProps(d),e.toHandlers(d.events||{})),{default:e.withCtx(()=>[d.type==="select"?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:0},e.renderList(d.options,(s,h)=>(e.openBlock(),e.createBlock(o,{key:h,label:s.label,value:s.value},null,8,["label","value"]))),128)):e.createCommentVNode("",!0)]),_:2},1040,["modelValue","onUpdate:modelValue"]))])],2)]),_:2},1032,["prop","required"])]),_:2},1040))),128))]),_:3})]),_:3},8,["model","rules"])])}const M=R(Te,[["render",xe],["__scopeId","data-v-9c337267"]]),Ze=e.defineComponent({name:"ZxtGrid",inheritAttrs:!1,components:{ZxtTable:z,ZxtForm:M,Plus:re,Delete:ae,Refresh:A,Download:ne,Search:H,Edit:oe,View:ie,Upload:se,Setting:le},props:{gridOptions:{type:Object,default:()=>({id:"grid",columns:[],data:[],height:400,pageable:!0,pageSizes:[10,20,50,100],paginationLayout:"total, sizes, prev, pager, next, jumper",toolbar:null,formMode:!1,formColumns:[],rules:{}})},externalData:{type:Array,default:()=>[]}},emits:["toolbar-click","submit","reset","page-change","size-change"],setup(t,{emit:a,expose:n}){const r=e.useAttrs(),l=e.ref(null),m=e.ref(null),o=e.ref(null),c=e.ref(1),p=e.ref(10),f=e.ref([]),g=e.ref(t.gridOptions.formMode||!0),d={Plus:re,Delete:ae,Refresh:A,Download:ne,Search:H,Edit:oe,View:ie,Upload:se,Setting:le},C=e.computed(()=>{const i=t.gridOptions.formConfig;if(!i||!i.items)return[];const k=[...i.items];return k.some(N=>N.type==="slot"&&N.slotName==="search-actions")||k.push({type:"slot",slotName:"search-actions",span:6,labelWidth:"0px",isAction:!0,...i.actionConfig}),k}),s=()=>{o.value?.submitForm()},h=i=>{a("submit",i),t.gridOptions.proxyConfig&&(t.gridOptions.proxyConfig._formData||(t.gridOptions.proxyConfig._formData={}),Object.assign(t.gridOptions.proxyConfig._formData,i),c.value=1,l.value?.reload?.())},B=()=>{o.value?.resetForm()},V=()=>{a("reset"),t.gridOptions.proxyConfig&&(t.gridOptions.proxyConfig._formData&&(t.gridOptions.proxyConfig._formData={}),c.value=1,l.value?.reload?.())},q=i=>{if(i)return typeof i=="object"||typeof i=="function"?i:d[i]},U=e.computed(()=>{const{formConfig:i,toolbar:k,formMode:Z,formColumns:N,rules:Je,data:We,...Ue}=t.gridOptions;return Ue}),_=e.computed(()=>t.externalData.length>0?t.externalData:t.gridOptions.data||[]),L=e.computed(()=>_.value.length),G=(i,k)=>{switch(a("toolbar-click",{code:i,button:k,grid:l.value}),i){case"add":J();break;case"delete":W();break;case"refresh":u();break;case"export":S();break}},J=()=>{g.value=!0},W=()=>{const i=l.value?.getTableRef()?.getSelectionRows?.()||[];if(i.length===0){b.ElMessage.warning("请先选择要删除的数据");return}b.ElMessage.success(`删除 ${i.length} 条数据`)},u=()=>{b.ElMessage.success("刷新数据"),l.value?.reload?.()},S=()=>{b.ElMessage.success("导出数据")},P=i=>{a("submit",i)},K=()=>{a("reset")},Q=()=>{g.value=!1},X=i=>{c.value=i.page,a("page-change",i)},Y=i=>{p.value=i.size,a("size-change",i)},v=()=>l.value,F=()=>m.value,w=()=>l.value?.getTableRef()?.getSelectionRows?.()||[],x=i=>{f.value=i},ee=i=>{g.value=i},te=(i,...k)=>{switch(i){case"query":c.value=1,l.value?.reload?.();break;case"reload":l.value?.reload?.();break;default:console.warn(`[ZxtGrid] commitProxy: unknown type "${i}"`)}};return e.watch(()=>t.gridOptions.formMode,i=>{i!==void 0&&(g.value=i)}),n({getGridRef:v,getFormRef:F,getSelectedRows:w,reloadData:x,setFormVisible:ee,commitProxy:te}),{attrs:r,gridRef:l,formRef:m,searchFormRef:o,currentPage:c,pageSize:p,tableData:_,tableProps:U,total:L,isFormVisible:g,searchFormColumns:C,getIconComponent:q,handleToolbarClick:G,handleSubmit:P,handleFormReset:K,handleFormCancel:Q,handlePageChange:X,handleSizeChange:Y,handleSearch:s,handleSearchSubmit:h,handleReset:B,handleSearchReset:V,Search:H,Refresh:A}}}),Me={key:0,class:"grid-search-form"},Le={class:"search-btn-group"},je={class:"grid-table-wrapper"},Ae={key:0,class:"grid-toolbar"};function He(t,a,n,r,l,m){const o=e.resolveComponent("el-button"),c=e.resolveComponent("ZxtForm"),p=e.resolveComponent("ZxtTable");return e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["zxt-grid-container",{"zxt-grid-container--full":t.gridOptions.height==="full"}])},[t.gridOptions.formConfig?(e.openBlock(),e.createElementBlock("div",Me,[e.createVNode(c,{ref:"searchFormRef","form-columns":t.searchFormColumns,"initial-form-data":t.gridOptions.formConfig.data,rules:t.gridOptions.formConfig.rules,onSubmit:t.handleSearchSubmit,onReset:t.handleSearchReset},e.createSlots({"search-actions":e.withCtx(()=>[e.createElementVNode("div",Le,[e.createVNode(o,{class:"btn-search",icon:t.Search,onClick:t.handleSearch},{default:e.withCtx(()=>[...a[0]||(a[0]=[e.createTextVNode(" 查询 ",-1)])]),_:1},8,["icon","onClick"]),e.createVNode(o,{class:"btn-reset",icon:t.Refresh,onClick:t.handleReset},{default:e.withCtx(()=>[...a[1]||(a[1]=[e.createTextVNode(" 重置 ",-1)])]),_:1},8,["icon","onClick"])])]),_:2},[e.renderList(t.$slots,(f,g)=>({name:g,fn:e.withCtx(d=>[e.renderSlot(t.$slots,g,e.normalizeProps(e.guardReactiveProps(d)),void 0,!0)])}))]),1032,["form-columns","initial-form-data","rules","onSubmit","onReset"])])):e.createCommentVNode("",!0),e.createElementVNode("div",je,[t.gridOptions.toolbar?(e.openBlock(),e.createElementBlock("div",Ae,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.gridOptions.toolbar.buttons,(f,g)=>(e.openBlock(),e.createBlock(o,{key:g,type:f.type||"default",size:f.size||"small",icon:t.getIconComponent(f.icon),disabled:f.disabled,onClick:d=>t.handleToolbarClick(f.code,f)},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(f.name),1)]),_:2},1032,["type","size","icon","disabled","onClick"]))),128)),e.renderSlot(t.$slots,"toolbar",{grid:t.$refs.gridRef},void 0,!0)])):e.createCommentVNode("",!0),e.createVNode(p,e.mergeProps({ref:"gridRef"},{...t.tableProps,...t.attrs},{id:t.gridOptions.id,columns:t.gridOptions.columns,data:t.tableData,height:t.gridOptions.height,pageable:t.gridOptions.pageable!==!1,"current-page":t.currentPage,"page-size":t.pageSize,"page-sizes":t.gridOptions.pageSizes,total:t.total,"pagination-layout":t.gridOptions.paginationLayout,onPageChange:t.handlePageChange,onSizeChange:t.handleSizeChange}),e.createSlots({_:2},[e.renderList(t.$slots,(f,g)=>({name:g,fn:e.withCtx(d=>[e.renderSlot(t.$slots,g,e.normalizeProps(e.guardReactiveProps(d)),void 0,!0)])}))]),1040,["id","columns","data","height","pageable","current-page","page-size","page-sizes","total","pagination-layout","onPageChange","onSizeChange"])])],2)}const I=R(Ze,[["render",He],["__scopeId","data-v-ca0e4fa5"]]);$.install=function(t){t.component($.name,$)};const Ie=[T,D,z,I,M,$],qe={install:t=>{Ie.forEach(a=>{t.component(a.name,a)})},MyButton:T,JsxButton:D,ZxtTable:z,ZxtGrid:I,ZxtForm:M,ZxtPagination:$,renderer:z.renderer,registerRenderer:z.registerRenderer};y.JsxButton=D,y.MyButton=T,y.ZxtForm=M,y.ZxtGrid=I,y.ZxtPagination=$,y.ZxtTable=z,y.default=qe,Object.defineProperties(y,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})}));
|