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.
@@ -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 H, inject as De, computed as z, mergeProps as A, withCtx as C, Fragment as x, 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 xe, normalizeProps as ze, guardReactiveProps as we } from "vue";
2
- import { ElPagination as Ee, ElLink as He, ElCheckbox as Ie, ElSelect as Ne, ElOption as qe, ElInput as Ue, ElTableColumn as Ge, ElTable as Je, ElMessage as ee } from "element-plus";
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: Ee },
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 I = /* @__PURE__ */ N(Xe, [["render", Ye], ["__scopeId", "data-v-497aa44d"]]), K = {
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 }) => H(Ue, {
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 = [] }) => H(
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) => H(qe, { label: p.label, value: p.value, key: p.value })
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 }) => H(Ie, {
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" }) => H(He, { href: t, target: a }, () => e)
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" ? H(a, { ...r, ...o, ...p }, n) : (console.warn("[ZxtTable] cellRender 对象缺少有效的 name 字段"), t.cellValue ?? "");
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(x, null, O(e.normalizedColumn.children, (c, g) => (u(), k(n, {
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", "expand"].includes(e.normalizedColumn.type) ? void 0 : {
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(x, { key: 2 }, [
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(x, { key: 3 }, [
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: I, ZxtTableColumn: rt, ElTable: Je },
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 E = s(P);
360
- $ = E?.list ?? [], U = E?.total ?? 0;
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(x, null, O(e.columns, (f, i) => (u(), k(n, {
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(x, null, O(e.processedColumns, (i, y) => (u(), k(c, A({ key: y }, { ref_for: !0 }, i.colSpan), {
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(x, { key: 0 }, O(i.options, (l, v) => (u(), k(n, {
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 = xe(), o = b(null), p = b(null), n = b(null), d = b(1), c = b(10), g = b([]), f = b(e.gridOptions.formMode || !0), i = {
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
- (E) => E.type === "slot" && E.slotName === "search-actions"
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: E,
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(x, null, O(e.gridOptions.toolbar.buttons, (g, f) => (u(), k(n, {
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
- I.install = function(e) {
1129
- e.component(I.name, I);
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
- I
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: I,
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
- I as ZxtPagination,
1159
+ x as ZxtPagination,
1160
1160
  F as ZxtTable,
1161
1161
  Mt as default
1162
1162
  };
@@ -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"}})}));
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "zxt-table",
3
3
  "private": false,
4
- "version": "0.4.4",
4
+ "version": "0.4.5",
5
5
  "type": "module",
6
6
  "description": "一个基于 Vue 3 和 Element Plus 的高级表格、表单组件库",
7
7
  "keywords": [