zxt-table 0.4.4 → 0.4.6
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.css +1 -1
- package/dist/zxt-table.es.js +761 -477
- package/dist/zxt-table.umd.js +1 -1
- package/package.json +1 -1
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(_,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):(_=typeof globalThis<"u"?globalThis:_||self,e(_.ZxtTable={},_.Vue,_.ElementPlus))})(this,(function(_,e,k){"use strict";const E=(t,n)=>{const o=t.__vccOpts||t;for(const[r,l]of n)o[r]=l;return o},fe={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:n}){return{handleClick:r=>{n("click",r)}}}},ge=["disabled"];function ue(t,n,o,r,l,u){return e.openBlock(),e.createElementBlock("button",{class:e.normalizeClass(["my-button",[`my-button--${o.type}`,{"is-disabled":o.disabled}]]),disabled:o.disabled,onClick:n[0]||(n[0]=(...a)=>r.handleClick&&r.handleClick(...a))},[e.renderSlot(t.$slots,"default",{},void 0,!0)],10,ge)}const D=E(fe,[["render",ue],["__scopeId","data-v-4480e77d"]]);D.install=function(t){t.component(D.name,D)};const F=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:n,slots:o}){const r=l=>{t.disabled||n("click",l)};return()=>e.createVNode("button",{class:["jsx-button",`jsx-button--${t.type}`,{"is-disabled":t.disabled}],disabled:t.disabled,onClick:r},[o.default?.()])}});F.install=function(t){t.component(F.name,F)};const he=e.defineComponent({name:"ZxtPagination",components:{ElPagination:k.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:n}){const o=e.ref(t.modelValue),r=e.ref(t.pageSize);return e.watch(()=>t.modelValue,a=>{o.value=a}),e.watch(()=>t.pageSize,a=>{r.value=a}),{currentPage:o,pageSize:r,handleSizeChange:a=>{r.value=a,o.value=1,n("update:pageSize",a),n("size-change",{page:o.value,size:a})},handleCurrentChange:a=>{o.value=a,n("update:modelValue",a),n("page-change",{page:a,size:r.value})}}}});function Ce(t,n,o,r,l,u){const a=e.resolveComponent("el-pagination");return e.openBlock(),e.createBlock(a,{"current-page":t.currentPage,"onUpdate:currentPage":n[0]||(n[0]=p=>t.currentPage=p),"page-size":t.pageSize,"onUpdate:pageSize":n[1]||(n[1]=p=>t.pageSize=p),"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 $=E(he,[["render",Ce],["__scopeId","data-v-497aa44d"]]),M={default:({cellValue:t})=>t??"",input:({cellValue:t,row:n,column:o,updateRow:r})=>e.h(k.ElInput,{modelValue:t,size:"small",onInput:l=>r({...n,[o.property]:l})}),select:({cellValue:t,row:n,column:o,updateRow:r,options:l=[]})=>e.h(k.ElSelect,{modelValue:t,size:"small",onChange:u=>r({...n,[o.property]:u})},()=>l.map(u=>e.h(k.ElOption,{label:u.label,value:u.value,key:u.value}))),checkbox:({cellValue:t,row:n,column:o,updateRow:r})=>e.h(k.ElCheckbox,{modelValue:!!t,onChange:l=>r({...n,[o.property]:l})}),link:({cellValue:t,href:n,target:o="_blank"})=>e.h(k.ElLink,{href:n,target:o},()=>t)};function _e(t,n){if(!t)return null;if(typeof t=="string"){const o=M[t];return o?o(n):(console.warn(`[ZxtTable] 未找到内置渲染器: ${t}`),n.cellValue??"")}if(typeof t=="function")return t(n);if(typeof t=="object"&&!Array.isArray(t)){const{name:o,props:r={},attrs:l={},events:u={},content:a}=t;return typeof o=="string"&&M[o]?M[o]({...n,...r,...l,...u}):typeof o=="object"||typeof o=="function"?e.h(o,{...r,...l,...u},a):(console.warn("[ZxtTable] cellRender 对象缺少有效的 name 字段"),n.cellValue??"")}return n.cellValue??""}function we(t,n){M[t]&&console.warn(`[ZxtTable] 内置渲染器 ${t} 已被覆盖`),M[t]=n}const ke=e.defineComponent({name:"ZxtTableColumn",components:{ElTableColumn:k.ElTableColumn},props:{column:{type:Object,required:!0},currentPage:{type:Number,default:1},pageSize:{type:Number,default:10}},setup(t){const n=e.inject("updateRow",()=>{}),o=a=>{const{currentPage:p,pageSize:m}=t;return(p-1)*m+a+1},r=e.computed(()=>{const a=t.column;return{...a,prop:a.prop??a.field,label:a.label??a.title}}),l=e.computed(()=>{const{children:a,...p}=r.value;return p});return{normalizedColumn:r,columnProps:l,renderCell:a=>{const p=r.value,m=a.row[p.prop],d=m??p.defaultValue??"";return _e(p.cellRender,{row:a.row,column:p,rowIndex:a.$index,cellValue:d,updateRow:g=>n(g,a.$index)})},defaultIndexMethod:o}}});function ye(t,n,o,r,l,u){const a=e.resolveComponent("ZxtTableColumn",!0),p=e.resolveComponent("el-table-column");return t.normalizedColumn.children&&t.normalizedColumn.children.length?(e.openBlock(),e.createBlock(p,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,(m,d)=>(e.openBlock(),e.createBlock(a,{key:d,column:m,"current-page":t.currentPage,"page-size":t.pageSize},e.createSlots({_:2},[e.renderList(t.$slots,(g,c)=>({name:c,fn:e.withCtx(f=>[e.renderSlot(t.$slots,c,e.mergeProps({ref_for:!0},f))])}))]),1032,["column","current-page","page-size"]))),128))]),_:3},16)):(e.openBlock(),e.createBlock(p,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(m=>[t.normalizedColumn.slot?e.renderSlot(t.$slots,t.normalizedColumn.slot,{key:0,row:m.row,index:m.$index,column:t.normalizedColumn}):t.normalizedColumn.cellRender?(e.openBlock(),e.createBlock(e.resolveDynamicComponent(t.renderCell(m)),{key:1})):t.normalizedColumn.formatter?(e.openBlock(),e.createElementBlock(e.Fragment,{key:2},[e.createTextVNode(e.toDisplayString(t.normalizedColumn.formatter(m.row,t.normalizedColumn,m.row[t.normalizedColumn.prop],m.$index)),1)],64)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:3},[e.createTextVNode(e.toDisplayString(m.row[t.normalizedColumn.prop]),1)],64))]),key:"0"}:void 0]),1040,["index"]))}const be=E(ke,[["render",ye]]),ze=e.defineComponent({name:"ZxtTable",inheritAttrs:!1,components:{ZxtPagination:$,ZxtTableColumn:be,ElTable:k.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:n}){const o=e.ref(null),r=e.ref(t.pageSize),l=e.ref(t.currentPage),u=e.ref(!1),a=e.ref([]),p=e.ref(0),m=e.ref({prop:"",order:""}),d=e.ref({}),g=e.computed(()=>t.height==="full"?{height:"100%"}:{}),c=e.computed(()=>{if(t.height!=="full")return t.height}),f=e.computed(()=>!!t.proxyConfig),s=e.computed(()=>f.value?p.value:t.total>0?t.total:t.data.length),C=e.computed(()=>f.value?a.value:t.data),B=h=>{f.value&&(l.value=h.page,r.value=h.size,V()),n("size-change",h)},S=h=>{f.value&&(l.value=h.page,r.value=h.size,V()),n("page-change",h)},v=({prop:h,order:z})=>{m.value={prop:h,order:z},f.value&&V(),n("sort-change",{prop:h,order:z})},ee=h=>{d.value=h||{},f.value&&V(),n("filter-change",d.value)},V=async()=>{if(!f.value)return;const h=t.proxyConfig||{},z=h.ajax?.query;if(typeof z!="function")return;const N=h.props||{},oe=N.pageField||"page";N.sizeField;const ae=N.sortField||"sort",re=N.orderField||"order",le=N.filtersField||"filters",se=h.params||{},P={[oe]:{currentPage:l.value,pageSize:r.value},form:h._formData||{},...se};m.value?.prop&&(P[ae]=m.value.prop,P[re]=m.value.order),d.value&&Object.keys(d.value).length&&(P[le]=d.value),u.value=!0;try{const b=await z(P),T=h.response||{},ie=T.listField||"list",ce=T.totalField||"total",I=T.transform;let R=[],A=0;if(typeof I=="function"){const i=I(b);R=i?.list??[],A=i?.total??0}else b&&typeof b=="object"&&(R=b?.[ie]??b?.data??[],A=b?.[ce]??b?.total??0);a.value=Array.isArray(R)?R:[],p.value=Number(A)||0,n("loaded",{data:a.value,total:p.value,payload:P})}catch(b){n("load-error",b)}finally{u.value=!1}},H=(h,z)=>{f.value?a.value.splice(z,1,h):n("update:row",{index:z,row:h})};e.provide("updateRow",H),e.onMounted(()=>{f.value&&V()});const te=()=>o.value,j=()=>o.value?.getSelectionRows?.()||[],ne=()=>V();return{tableRef:o,containerStyle:g,tableHeight:c,getTableRef:te,pageSize:r,currentPage:l,loading:u,renderData:C,total:s,pageSizes:e.computed(()=>t.pageSizes),paginationLayout:e.computed(()=>t.paginationLayout),handleSizeChange:B,handlePageChange:S,handleSortChange:v,handleFilterChange:ee,reload:ne,getSelectedRows:j,updateRow:H}}});function Be(t,n,o,r,l,u){const a=e.resolveComponent("ZxtTableColumn"),p=e.resolveComponent("el-table"),m=e.resolveComponent("ZxtPagination"),d=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(p,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,c)=>(e.openBlock(),e.createBlock(a,{key:c,column:g,"current-page":t.currentPage,"page-size":t.pageSize},e.createSlots({_:2},[e.renderList(t.$slots,(f,s)=>({name:s,fn:e.withCtx(C=>[e.renderSlot(t.$slots,s,e.mergeProps({ref_for:!0},C),void 0,!0)])}))]),1032,["column","current-page","page-size"]))),128))]),_:3},16,["data","height","id","onSortChange","onFilterChange"])),[[d,t.loading]]),t.pageable?(e.openBlock(),e.createBlock(m,{key:0,"model-value":t.currentPage,"page-size":t.pageSize,"onUpdate:pageSize":n[0]||(n[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 y=E(ze,[["render",Be],["__scopeId","data-v-1c00db7c"]]),x=new Map;class Se{add(n,o){return!n||typeof n!="string"?(console.warn("[ZxtTable] 渲染器名称必须是字符串"),this):!o||typeof o!="object"?(console.warn("[ZxtTable] 渲染器配置必须是对象"),this):(x.has(n)&&console.warn(`[ZxtTable] 渲染器 "${n}" 已存在,将被覆盖`),x.set(n,o),this)}get(n){return x.get(n)}delete(n){return x.delete(n)}has(n){return x.has(n)}getAll(){return Array.from(x.keys())}clear(){x.clear()}}const q=new Se;function Ve(t,n,o={}){if(!t||!t.itemRender)return null;const{name:r}=t.itemRender;if(r&&q.has(r)){const l=q.get(r);if(typeof l.renderItemContent=="function"){const u={data:n,field:t.field||t.prop,item:t,formData:n};try{return l.renderItemContent(o,u)}catch(a){return console.error(`[ZxtTable] 渲染器 "${r}" 执行出错:`,a),null}}}return null}y.install=function(t){t.component(y.name,y)},y.registerRenderer=we,y.renderer=q;var Ee=e.defineComponent({name:"ArrowDown",__name:"arrow-down",setup(t){return(n,o)=>(e.openBlock(),e.createElementBlock("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[e.createElementVNode("path",{fill:"currentColor",d:"M831.872 340.864 512 652.672 192.128 340.864a30.59 30.59 0 0 0-42.752 0 29.12 29.12 0 0 0 0 41.6L489.664 714.24a32 32 0 0 0 44.672 0l340.288-331.712a29.12 29.12 0 0 0 0-41.728 30.59 30.59 0 0 0-42.752 0z"})]))}}),me=Ee,$e=e.defineComponent({name:"Check",__name:"check",setup(t){return(n,o)=>(e.openBlock(),e.createElementBlock("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[e.createElementVNode("path",{fill:"currentColor",d:"M406.656 706.944 195.84 496.256a32 32 0 1 0-45.248 45.248l256 256 512-512a32 32 0 0 0-45.248-45.248L406.592 706.944z"})]))}}),xe=$e,Ne=e.defineComponent({name:"Close",__name:"close",setup(t){return(n,o)=>(e.openBlock(),e.createElementBlock("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[e.createElementVNode("path",{fill:"currentColor",d:"M764.288 214.592 512 466.88 259.712 214.592a31.936 31.936 0 0 0-45.12 45.12L466.752 512 214.528 764.224a31.936 31.936 0 1 0 45.12 45.184L512 557.184l252.288 252.288a31.936 31.936 0 0 0 45.12-45.12L557.12 512.064l252.288-252.352a31.936 31.936 0 1 0-45.12-45.184z"})]))}}),Pe=Ne,De=e.defineComponent({name:"CopyDocument",__name:"copy-document",setup(t){return(n,o)=>(e.openBlock(),e.createElementBlock("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[e.createElementVNode("path",{fill:"currentColor",d:"M768 832a128 128 0 0 1-128 128H192A128 128 0 0 1 64 832V384a128 128 0 0 1 128-128v64a64 64 0 0 0-64 64v448a64 64 0 0 0 64 64h448a64 64 0 0 0 64-64z"}),e.createElementVNode("path",{fill:"currentColor",d:"M384 128a64 64 0 0 0-64 64v448a64 64 0 0 0 64 64h448a64 64 0 0 0 64-64V192a64 64 0 0 0-64-64zm0-64h448a128 128 0 0 1 128 128v448a128 128 0 0 1-128 128H384a128 128 0 0 1-128-128V192A128 128 0 0 1 384 64"})]))}}),Fe=De,Re=e.defineComponent({name:"Delete",__name:"delete",setup(t){return(n,o)=>(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"})]))}}),U=Re,Me=e.defineComponent({name:"Document",__name:"document",setup(t){return(n,o)=>(e.openBlock(),e.createElementBlock("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[e.createElementVNode("path",{fill:"currentColor",d:"M832 384H576V128H192v768h640zm-26.496-64L640 154.496V320zM160 64h480l256 256v608a32 32 0 0 1-32 32H160a32 32 0 0 1-32-32V96a32 32 0 0 1 32-32m160 448h384v64H320zm0-192h160v64H320zm0 384h384v64H320z"})]))}}),Te=Me,Ae=e.defineComponent({name:"Download",__name:"download",setup(t){return(n,o)=>(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"})]))}}),G=Ae,Le=e.defineComponent({name:"Edit",__name:"edit",setup(t){return(n,o)=>(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"})]))}}),J=Le,Oe=e.defineComponent({name:"Lock",__name:"lock",setup(t){return(n,o)=>(e.openBlock(),e.createElementBlock("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[e.createElementVNode("path",{fill:"currentColor",d:"M224 448a32 32 0 0 0-32 32v384a32 32 0 0 0 32 32h576a32 32 0 0 0 32-32V480a32 32 0 0 0-32-32zm0-64h576a96 96 0 0 1 96 96v384a96 96 0 0 1-96 96H224a96 96 0 0 1-96-96V480a96 96 0 0 1 96-96"}),e.createElementVNode("path",{fill:"currentColor",d:"M512 544a32 32 0 0 1 32 32v192a32 32 0 1 1-64 0V576a32 32 0 0 1 32-32m192-160v-64a192 192 0 1 0-384 0v64zM512 64a256 256 0 0 1 256 256v128H256V320A256 256 0 0 1 512 64"})]))}}),Ze=Oe,He=e.defineComponent({name:"Plus",__name:"plus",setup(t){return(n,o)=>(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"})]))}}),W=He,je=e.defineComponent({name:"Refresh",__name:"refresh",setup(t){return(n,o)=>(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"})]))}}),L=je,Ie=e.defineComponent({name:"Search",__name:"search",setup(t){return(n,o)=>(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"})]))}}),O=Ie,qe=e.defineComponent({name:"Setting",__name:"setting",setup(t){return(n,o)=>(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"})]))}}),K=qe,Ue=e.defineComponent({name:"Share",__name:"share",setup(t){return(n,o)=>(e.openBlock(),e.createElementBlock("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[e.createElementVNode("path",{fill:"currentColor",d:"m679.872 348.8-301.76 188.608a127.8 127.8 0 0 1 5.12 52.16l279.936 104.96a128 128 0 1 1-22.464 59.904l-279.872-104.96a128 128 0 1 1-16.64-166.272l301.696-188.608a128 128 0 1 1 33.92 54.272z"})]))}}),Ge=Ue,Je=e.defineComponent({name:"Unlock",__name:"unlock",setup(t){return(n,o)=>(e.openBlock(),e.createElementBlock("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[e.createElementVNode("path",{fill:"currentColor",d:"M224 448a32 32 0 0 0-32 32v384a32 32 0 0 0 32 32h576a32 32 0 0 0 32-32V480a32 32 0 0 0-32-32zm0-64h576a96 96 0 0 1 96 96v384a96 96 0 0 1-96 96H224a96 96 0 0 1-96-96V480a96 96 0 0 1 96-96"}),e.createElementVNode("path",{fill:"currentColor",d:"M512 544a32 32 0 0 1 32 32v192a32 32 0 1 1-64 0V576a32 32 0 0 1 32-32m178.304-295.296A192.064 192.064 0 0 0 320 320v64h352l96 38.4V448H256V320a256 256 0 0 1 493.76-95.104z"})]))}}),We=Je,Ke=e.defineComponent({name:"Upload",__name:"upload",setup(t){return(n,o)=>(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"})]))}}),Q=Ke,Qe=e.defineComponent({name:"View",__name:"view",setup(t){return(n,o)=>(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"})]))}}),X=Qe,Xe=e.defineComponent({name:"Warning",__name:"warning",setup(t){return(n,o)=>(e.openBlock(),e.createElementBlock("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[e.createElementVNode("path",{fill:"currentColor",d:"M512 64a448 448 0 1 1 0 896 448 448 0 0 1 0-896m0 832a384 384 0 0 0 0-768 384 384 0 0 0 0 768m48-176a48 48 0 1 1-96 0 48 48 0 0 1 96 0m-48-464a32 32 0 0 1 32 32v288a32 32 0 0 1-64 0V288a32 32 0 0 1 32-32"})]))}}),Ye=Xe;const ve=e.defineComponent({name:"ZxtForm",props:{formColumns:{type:Array,default:()=>[]},initialFormData:{type:Object,default:()=>({})},rules:{type:Object,default:()=>({})}},emits:["submit","reset"],setup(t,{emit:n,expose:o}){const r=e.ref(null),l=e.reactive({}),u={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"},a=s=>u[s]||"el-input",p=s=>{const C=s.type||"input",B=["select","date","daterange","datetime","datetimerange","cascader"].includes(C),S={placeholder:s.placeholder||`请${B?"选择":"输入"}${s.label}`,disabled:s.disabled,style:"width: 100%","popper-class":"zxt-form-popper"};switch(C){case"date":case"daterange":case"datetime":case"datetimerange":return{...S,type:s.dateType||C,startPlaceholder:s.startPlaceholder||"开始日期",endPlaceholder:s.endPlaceholder||"结束日期",format:s.format,valueFormat:s.valueFormat};case"cascader":return{...S,options:s.options,props:s.cascaderProps,clearable:s.clearable!==!1};case"select":return S;case"input":default:return S}},m=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(C=>{delete l[C]}),Object.assign(l,s)},{immediate:!0,deep:!0});const d=e.computed(()=>{const s={...t.rules};return Object.keys(s).length===0&&t.formColumns.length>0&&t.formColumns.forEach(C=>{if(C.required){const B=["select","date","daterange","datetime","datetimerange","cascader"].includes(C.type);s[C.prop]=[{required:!0,message:`请${B?"选择":"输入"}${C.label}`,trigger:B?"change":"blur"}]}}),s}),g=()=>{r.value&&r.value.validate(s=>{s&&n("submit",{...l})})},c=()=>{r.value&&r.value.resetFields(),n("reset")},f=s=>()=>Ve(s,l,{})||null;return o({validate:()=>r.value?r.value.validate():Promise.resolve(!1),resetFields:()=>r.value&&r.value.resetFields(),getFormData:()=>({...l}),submitForm:g,resetForm:c}),{formRef:r,formData:l,formRules:d,submitForm:g,resetForm:c,processedColumns:m,getComponentType:a,getComponentProps:p,renderCustomItem:f}}}),et={class:"zxt-form-container"},tt={key:0,class:"form-label"},nt={class:"form-control"};function ot(t,n,o,r,l,u){const a=e.resolveComponent("el-option"),p=e.resolveComponent("el-form-item"),m=e.resolveComponent("el-col"),d=e.resolveComponent("el-row"),g=e.resolveComponent("el-form");return e.openBlock(),e.createElementBlock("div",et,[e.createVNode(g,{ref:"formRef",model:t.formData,rules:t.formRules,"label-width":"100px",class:"zxt-form"},{default:e.withCtx(()=>[e.createVNode(d,{gutter:20},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.processedColumns,(c,f)=>(e.openBlock(),e.createBlock(m,e.mergeProps({key:f},{ref_for:!0},c.colSpan),{default:e.withCtx(()=>[e.createVNode(p,{prop:c.prop,required:c.required,"label-width":"0",class:"custom-form-item"},{default:e.withCtx(()=>[e.createElementVNode("div",{class:e.normalizeClass(["form-item-wrapper",{"is-action":c.isAction}])},[c.label?(e.openBlock(),e.createElementBlock("span",tt,e.toDisplayString(c.label),1)):e.createCommentVNode("",!0),e.createElementVNode("div",nt,[c.type==="slot"?e.renderSlot(t.$slots,c.slotName||c.prop,{key:0,formData:t.formData,column:c},void 0,!0):c.itemRender?(e.openBlock(),e.createBlock(e.resolveDynamicComponent(t.renderCustomItem(c)),{key:1})):(e.openBlock(),e.createBlock(e.resolveDynamicComponent(t.getComponentType(c.type)),e.mergeProps({key:2,modelValue:t.formData[c.prop],"onUpdate:modelValue":s=>t.formData[c.prop]=s},{ref_for:!0},t.getComponentProps(c),e.toHandlers(c.events||{})),{default:e.withCtx(()=>[c.type==="select"?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:0},e.renderList(c.options,(s,C)=>(e.openBlock(),e.createBlock(a,{key:C,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 Z=E(ve,[["render",ot],["__scopeId","data-v-9c337267"]]),at={Plus:W,Delete:U,Refresh:L,Download:G,Search:O,Edit:J,View:X,Upload:Q,Setting:K,Warning:Ye,Check:xe,Close:Pe,Document:Te,CopyDocument:Fe,Share:Ge,Lock:Ze,Unlock:We,ArrowDown:me},rt=e.defineComponent({name:"ActionColumn",components:{ArrowDown:me},props:{buttons:{type:Array,default:()=>[]},row:{type:Object,default:()=>({})},maxVisible:{type:Number,default:2}},emits:["action-click"],setup(t,{emit:n}){const o=e.computed(()=>t.buttons.filter(d=>typeof d.visible=="function"?d.visible(t.row):typeof d.visible=="boolean"?d.visible:!0)),r=e.computed(()=>o.value.length>t.maxVisible),l=e.computed(()=>r.value?o.value.slice(0,t.maxVisible):o.value),u=e.computed(()=>r.value?o.value.slice(t.maxVisible):[]);return{visibleButtons:l,overflowButtons:u,getIconComponent:d=>{if(d)return typeof d=="object"||typeof d=="function"?d:at[d]},handleClick:d=>{n("action-click",{code:d.code,button:d,row:t.row})},handleCommand:d=>{n("action-click",{code:d.code,button:d,row:t.row})}}}}),lt={class:"action-column"};function st(t,n,o,r,l,u){const a=e.resolveComponent("el-button"),p=e.resolveComponent("ArrowDown"),m=e.resolveComponent("el-icon"),d=e.resolveComponent("el-dropdown-item"),g=e.resolveComponent("el-dropdown-menu"),c=e.resolveComponent("el-dropdown");return e.openBlock(),e.createElementBlock("div",lt,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.visibleButtons,f=>(e.openBlock(),e.createBlock(a,{key:f.code,type:f.type||"",icon:t.getIconComponent(f.icon),size:"small",link:"",onClick:s=>t.handleClick(f)},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(f.label),1)]),_:2},1032,["type","icon","onClick"]))),128)),t.overflowButtons.length?(e.openBlock(),e.createBlock(c,{key:0,trigger:"hover",onCommand:t.handleCommand},{dropdown:e.withCtx(()=>[e.createVNode(g,null,{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.overflowButtons,f=>(e.openBlock(),e.createBlock(d,{key:f.code,command:f,icon:t.getIconComponent(f.icon)},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(f.label),1)]),_:2},1032,["command","icon"]))),128))]),_:1})]),default:e.withCtx(()=>[e.createVNode(a,{type:"",size:"small",link:""},{default:e.withCtx(()=>[n[0]||(n[0]=e.createTextVNode(" 更多 ",-1)),e.createVNode(m,{class:"el-icon--right"},{default:e.withCtx(()=>[e.createVNode(p)]),_:1})]),_:1})]),_:1},8,["onCommand"])):e.createCommentVNode("",!0)])}const it=E(rt,[["render",st],["__scopeId","data-v-6d75a891"]]),ct=e.defineComponent({name:"ZxtGrid",inheritAttrs:!1,components:{ZxtTable:y,ZxtForm:Z,ActionColumn:it,Plus:W,Delete:U,Refresh:L,Download:G,Search:O,Edit:J,View:X,Upload:Q,Setting:K},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","action-click","submit","reset","page-change","size-change"],setup(t,{emit:n,expose:o}){const r=e.useAttrs(),l=e.ref(null),u=e.ref(null),a=e.ref(null),p=e.ref(1),m=e.ref(10),d=e.ref([]),g=e.ref(t.gridOptions.formMode||!0),c={Plus:W,Delete:U,Refresh:L,Download:G,Search:O,Edit:J,View:X,Upload:Q,Setting:K},f=e.computed(()=>{const w=(t.gridOptions.columns||[]).find(de=>de.actionColumn);return w?w.actionColumn:null}),s=e.computed(()=>(t.gridOptions.columns||[]).map(w=>w.actionColumn?{...w,slot:"__action__",actionColumn:void 0}:w)),C=i=>{n("action-click",i)},B=e.computed(()=>{const i=t.gridOptions.formConfig;if(!i||!i.items)return[];const w=[...i.items];return w.some(pe=>pe.type==="slot"&&pe.slotName==="search-actions")||w.push({type:"slot",slotName:"search-actions",span:6,labelWidth:"0px",isAction:!0,...i.actionConfig}),w}),S=()=>{a.value?.submitForm()},v=i=>{n("submit",i),t.gridOptions.proxyConfig&&(t.gridOptions.proxyConfig._formData||(t.gridOptions.proxyConfig._formData={}),Object.assign(t.gridOptions.proxyConfig._formData,i),p.value=1,l.value?.reload?.())},ee=()=>{a.value?.resetForm()},V=()=>{n("reset"),t.gridOptions.proxyConfig&&(t.gridOptions.proxyConfig._formData&&(t.gridOptions.proxyConfig._formData={}),p.value=1,l.value?.reload?.())},H=i=>{if(i)return typeof i=="object"||typeof i=="function"?i:c[i]},te=e.computed(()=>{const{formConfig:i,toolbar:w,formMode:de,formColumns:pe,rules:wt,data:kt,...Ct}=t.gridOptions;return Ct}),j=e.computed(()=>t.externalData.length>0?t.externalData:t.gridOptions.data||[]),ne=e.computed(()=>j.value.length),h=(i,w)=>{switch(n("toolbar-click",{code:i,button:w,grid:l.value}),i){case"add":z();break;case"delete":N();break;case"refresh":oe();break;case"export":ae();break}},z=()=>{g.value=!0},N=()=>{const i=l.value?.getTableRef()?.getSelectionRows?.()||[];if(i.length===0){k.ElMessage.warning("请先选择要删除的数据");return}k.ElMessage.success(`删除 ${i.length} 条数据`)},oe=()=>{k.ElMessage.success("刷新数据"),l.value?.reload?.()},ae=()=>{k.ElMessage.success("导出数据")},re=i=>{n("submit",i)},le=()=>{n("reset")},se=()=>{g.value=!1},P=i=>{p.value=i.page,n("page-change",i)},b=i=>{m.value=i.size,n("size-change",i)},T=()=>l.value,ie=()=>u.value,ce=()=>l.value?.getTableRef()?.getSelectionRows?.()||[],I=i=>{d.value=i},R=i=>{g.value=i},A=(i,...w)=>{switch(i){case"query":p.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)}),o({getGridRef:T,getFormRef:ie,getSelectedRows:ce,reloadData:I,setFormVisible:R,commitProxy:A}),{attrs:r,gridRef:l,formRef:u,searchFormRef:a,currentPage:p,pageSize:m,tableData:j,tableProps:te,mergedColumns:s,actionColumnConfig:f,total:ne,isFormVisible:g,searchFormColumns:B,getIconComponent:H,handleToolbarClick:h,handleActionClick:C,handleSubmit:re,handleFormReset:le,handleFormCancel:se,handlePageChange:P,handleSizeChange:b,handleSearch:S,handleSearchSubmit:v,handleReset:ee,handleSearchReset:V,Search:O,Refresh:L}}}),dt={key:0,class:"grid-search-form"},pt={class:"search-btn-group"},mt={class:"grid-table-wrapper"},ft={key:0,class:"grid-toolbar"};function gt(t,n,o,r,l,u){const a=e.resolveComponent("el-button"),p=e.resolveComponent("ZxtForm"),m=e.resolveComponent("ActionColumn"),d=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",dt,[e.createVNode(p,{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",pt,[e.createVNode(a,{class:"btn-search",icon:t.Search,onClick:t.handleSearch},{default:e.withCtx(()=>[...n[0]||(n[0]=[e.createTextVNode(" 查询 ",-1)])]),_:1},8,["icon","onClick"]),e.createVNode(a,{class:"btn-reset",icon:t.Refresh,onClick:t.handleReset},{default:e.withCtx(()=>[...n[1]||(n[1]=[e.createTextVNode(" 重置 ",-1)])]),_:1},8,["icon","onClick"])])]),_:2},[e.renderList(t.$slots,(g,c)=>({name:c,fn:e.withCtx(f=>[e.renderSlot(t.$slots,c,e.normalizeProps(e.guardReactiveProps(f)),void 0,!0)])}))]),1032,["form-columns","initial-form-data","rules","onSubmit","onReset"])])):e.createCommentVNode("",!0),e.createElementVNode("div",mt,[t.gridOptions.toolbar?(e.openBlock(),e.createElementBlock("div",ft,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.gridOptions.toolbar.buttons,(g,c)=>(e.openBlock(),e.createBlock(a,{key:c,type:g.type||"default",size:g.size||"small",icon:t.getIconComponent(g.icon),disabled:g.disabled,onClick:f=>t.handleToolbarClick(g.code,g)},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(g.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(d,e.mergeProps({ref:"gridRef"},{...t.tableProps,...t.attrs},{id:t.gridOptions.id,columns:t.mergedColumns,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},[t.actionColumnConfig?{name:"__action__",fn:e.withCtx(({row:g})=>[e.createVNode(m,{buttons:t.actionColumnConfig.buttons,row:g,"max-visible":t.actionColumnConfig.maxVisible||2,onActionClick:t.handleActionClick},null,8,["buttons","row","max-visible","onActionClick"])]),key:"0"}:void 0,e.renderList(t.$slots,(g,c)=>({name:c,fn:e.withCtx(f=>[e.renderSlot(t.$slots,c,e.normalizeProps(e.guardReactiveProps(f)),void 0,!0)])}))]),1040,["id","columns","data","height","pageable","current-page","page-size","page-sizes","total","pagination-layout","onPageChange","onSizeChange"])])],2)}const Y=E(ct,[["render",gt],["__scopeId","data-v-1c5e0fd0"]]);$.install=function(t){t.component($.name,$)};const ut=[D,F,y,Y,Z,$],ht={install:t=>{ut.forEach(n=>{t.component(n.name,n)})},MyButton:D,JsxButton:F,ZxtTable:y,ZxtGrid:Y,ZxtForm:Z,ZxtPagination:$,renderer:y.renderer,registerRenderer:y.registerRenderer};_.JsxButton=F,_.MyButton=D,_.ZxtForm=Z,_.ZxtGrid=Y,_.ZxtPagination=$,_.ZxtTable=y,_.default=ht,Object.defineProperties(_,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})}));
|