zxt-table 0.4.6 → 0.5.0
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 +652 -603
- package/dist/zxt-table.umd.js +1 -1
- package/package.json +3 -2
package/dist/zxt-table.umd.js
CHANGED
|
@@ -1 +1 @@
|
|
|
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"}})}));
|
|
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 $=(t,o)=>{const n=t.__vccOpts||t;for(const[l,i]of o)n[l]=i;return n},ue={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:o}){return{handleClick:l=>{o("click",l)}}}},he=["disabled"];function Ce(t,o,n,l,i,p){return e.openBlock(),e.createElementBlock("button",{class:e.normalizeClass(["my-button",[`my-button--${n.type}`,{"is-disabled":n.disabled}]]),disabled:n.disabled,onClick:o[0]||(o[0]=(...r)=>l.handleClick&&l.handleClick(...r))},[e.renderSlot(t.$slots,"default",{},void 0,!0)],10,he)}const D=$(ue,[["render",Ce],["__scopeId","data-v-4480e77d"]]);D.install=function(t){t.component(D.name,D)};const T=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:o,slots:n}){const l=i=>{t.disabled||o("click",i)};return()=>e.createVNode("button",{class:["jsx-button",`jsx-button--${t.type}`,{"is-disabled":t.disabled}],disabled:t.disabled,onClick:l},[n.default?.()])}});T.install=function(t){t.component(T.name,T)};const we=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:o}){const n=e.ref(t.modelValue),l=e.ref(t.pageSize);return e.watch(()=>t.modelValue,r=>{n.value=r}),e.watch(()=>t.pageSize,r=>{l.value=r}),{currentPage:n,pageSize:l,handleSizeChange:r=>{l.value=r,n.value=1,o("update:pageSize",r),o("size-change",{page:n.value,size:r})},handleCurrentChange:r=>{n.value=r,o("update:modelValue",r),o("page-change",{page:r,size:l.value})}}}});function _e(t,o,n,l,i,p){const r=e.resolveComponent("el-pagination");return e.openBlock(),e.createBlock(r,{"current-page":t.currentPage,"onUpdate:currentPage":o[0]||(o[0]=m=>t.currentPage=m),"page-size":t.pageSize,"onUpdate:pageSize":o[1]||(o[1]=m=>t.pageSize=m),"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 P=$(we,[["render",_e],["__scopeId","data-v-497aa44d"]]),L={default:({cellValue:t})=>t??"",input:({cellValue:t,row:o,column:n,updateRow:l})=>e.h(k.ElInput,{modelValue:t,size:"small",onInput:i=>l({...o,[n.property]:i})}),select:({cellValue:t,row:o,column:n,updateRow:l,options:i=[]})=>e.h(k.ElSelect,{modelValue:t,size:"small",onChange:p=>l({...o,[n.property]:p})},()=>i.map(p=>e.h(k.ElOption,{label:p.label,value:p.value,key:p.value}))),checkbox:({cellValue:t,row:o,column:n,updateRow:l})=>e.h(k.ElCheckbox,{modelValue:!!t,onChange:i=>l({...o,[n.property]:i})}),link:({cellValue:t,href:o,target:n="_blank"})=>e.h(k.ElLink,{href:o,target:n},()=>t)};function ke(t,o){if(!t)return null;if(typeof t=="string"){const n=L[t];return n?n(o):(console.warn(`[ZxtTable] 未找到内置渲染器: ${t}`),o.cellValue??"")}if(typeof t=="function")return t(o);if(typeof t=="object"&&!Array.isArray(t)){const{name:n,props:l={},attrs:i={},events:p={},content:r}=t;return typeof n=="string"&&L[n]?L[n]({...o,...l,...i,...p}):typeof n=="object"||typeof n=="function"?e.h(n,{...l,...i,...p},r):(console.warn("[ZxtTable] cellRender 对象缺少有效的 name 字段"),o.cellValue??"")}return o.cellValue??""}function ye(t,o){L[t]&&console.warn(`[ZxtTable] 内置渲染器 ${t} 已被覆盖`),L[t]=o}const be=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 o=e.inject("updateRow",()=>{}),n=r=>{const{currentPage:m,pageSize:f}=t;return(m-1)*f+r+1},l=e.computed(()=>{const r=t.column;return{...r,prop:r.prop??r.field,label:r.label??r.title}}),i=e.computed(()=>{const{children:r,...m}=l.value;return m});return{normalizedColumn:l,columnProps:i,renderCell:r=>{const m=l.value,f=r.row[m.prop],d=f??m.defaultValue??"";return ke(m.cellRender,{row:r.row,column:m,rowIndex:r.$index,cellValue:d,updateRow:u=>o(u,r.$index)})},defaultIndexMethod:n}}});function ze(t,o,n,l,i,p){const r=e.resolveComponent("ZxtTableColumn",!0),m=e.resolveComponent("el-table-column");return t.normalizedColumn.children&&t.normalizedColumn.children.length?(e.openBlock(),e.createBlock(m,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,(f,d)=>(e.openBlock(),e.createBlock(r,{key:d,column:f,"current-page":t.currentPage,"page-size":t.pageSize},e.createSlots({_:2},[e.renderList(t.$slots,(u,c)=>({name:c,fn:e.withCtx(g=>[e.renderSlot(t.$slots,c,e.mergeProps({ref_for:!0},g))])}))]),1032,["column","current-page","page-size"]))),128))]),_:3},16)):(e.openBlock(),e.createBlock(m,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(f=>[t.normalizedColumn.slot?e.renderSlot(t.$slots,t.normalizedColumn.slot,{key:0,row:f.row,index:f.$index,column:t.normalizedColumn}):t.normalizedColumn.cellRender?(e.openBlock(),e.createBlock(e.resolveDynamicComponent(t.renderCell(f)),{key:1})):t.normalizedColumn.formatter?(e.openBlock(),e.createElementBlock(e.Fragment,{key:2},[e.createTextVNode(e.toDisplayString(t.normalizedColumn.formatter(f.row,t.normalizedColumn,f.row[t.normalizedColumn.prop],f.$index)),1)],64)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:3},[e.createTextVNode(e.toDisplayString(f.row[t.normalizedColumn.prop]),1)],64))]),key:"0"}:void 0]),1040,["index"]))}const Be=$(be,[["render",ze]]),Se=e.defineComponent({name:"ZxtTable",inheritAttrs:!1,components:{ZxtPagination:P,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:o}){const n=e.ref(null),l=e.ref(t.pageSize),i=e.ref(t.currentPage),p=e.ref(!1),r=e.ref([]),m=e.ref(0),f=e.ref({prop:"",order:""}),d=e.ref({});e.watch(()=>t.currentPage,C=>{i.value=C}),e.watch(()=>t.pageSize,C=>{l.value=C});const u=e.computed(()=>t.height==="full"?{height:"100%"}:{}),c=e.computed(()=>{if(t.height!=="full")return t.height}),g=e.computed(()=>!!t.proxyConfig),s=e.computed(()=>g.value?m.value:t.total>0?t.total:t.data.length),w=e.computed(()=>g.value?r.value:t.data),E=C=>{g.value&&(i.value=C.page,l.value=C.size,x()),o("size-change",C)},M=C=>{g.value&&(i.value=C.page,l.value=C.size,x()),o("page-change",C)},V=({column:C,prop:z,order:B})=>{f.value={prop:z,order:B},g.value&&x(),o("sort-change",{column:C,prop:z,order:B})},N=C=>{d.value=C||{},g.value&&x(),o("filter-change",d.value)},x=async()=>{if(!g.value)return;const C=t.proxyConfig||{},z=C.ajax?.query;if(typeof z!="function")return;const B=C.props||{},U=B.pageField||"page";B.sizeField;const le=B.sortField||"sort",se=B.orderField||"order",ie=B.filtersField||"filters",ce=C.params||{},R={[U]:{currentPage:i.value,pageSize:l.value},form:C._formData||{},...ce};f.value?.prop&&(R[le]=f.value.prop,R[se]=f.value.order),d.value&&Object.keys(d.value).length&&(R[ie]=d.value),p.value=!0;try{const b=await z(R),O=C.response||{},de=O.listField||"list",pe=O.totalField||"total",W=O.transform;let A=[],Z=0;if(typeof W=="function"){const G=W(b);A=G?.list??[],Z=G?.total??0}else b&&typeof b=="object"&&(A=b?.[de]??b?.data??[],Z=b?.[pe]??b?.total??0);r.value=Array.isArray(A)?A:[],m.value=Number(Z)||0,o("loaded",{data:r.value,total:m.value,payload:R})}catch(b){o("load-error",b)}finally{p.value=!1}},q=(C,z)=>{g.value?r.value.splice(z,1,C):o("update:row",{index:z,row:C})};e.provide("updateRow",q),e.onMounted(()=>{g.value&&x()});const ne=()=>n.value,ae=()=>n.value?.getSelectionRows?.()||[],re=()=>x();return{tableRef:n,containerStyle:u,tableHeight:c,getTableRef:ne,pageSize:l,currentPage:i,loading:p,renderData:w,total:s,pageSizes:e.computed(()=>t.pageSizes),paginationLayout:e.computed(()=>t.paginationLayout),handleSizeChange:E,handlePageChange:M,handleSortChange:V,handleFilterChange:N,reload:re,getSelectedRows:ae,updateRow:q}}});function Ve(t,o,n,l,i,p){const r=e.resolveComponent("ZxtTableColumn"),m=e.resolveComponent("el-table"),f=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(m,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,(u,c)=>(e.openBlock(),e.createBlock(r,{key:c,column:u,"current-page":t.currentPage,"page-size":t.pageSize},e.createSlots({_:2},[e.renderList(t.$slots,(g,s)=>({name:s,fn:e.withCtx(w=>[e.renderSlot(t.$slots,s,e.mergeProps({ref_for:!0},w),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(f,{key:0,"model-value":t.currentPage,"page-size":t.pageSize,"onUpdate:pageSize":o[0]||(o[0]=u=>t.pageSize=u),"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=$(Se,[["render",Ve],["__scopeId","data-v-f7d3d1ec"]]),F=new Map;class Ee{add(o,n){return!o||typeof o!="string"?(console.warn("[ZxtTable] 渲染器名称必须是字符串"),this):!n||typeof n!="object"?(console.warn("[ZxtTable] 渲染器配置必须是对象"),this):(F.has(o)&&console.warn(`[ZxtTable] 渲染器 "${o}" 已存在,将被覆盖`),F.set(o,n),this)}get(o){return F.get(o)}delete(o){return F.delete(o)}has(o){return F.has(o)}getAll(){return Array.from(F.keys())}clear(){F.clear()}}const J=new Ee;function xe(t,o,n={}){if(!t||!t.itemRender)return null;const{name:l}=t.itemRender;if(l&&J.has(l)){const i=J.get(l);if(typeof i.renderItemContent=="function"){const p={data:o,field:t.field||t.prop,item:t,formData:o};try{return i.renderItemContent(n,p)}catch(r){return console.error(`[ZxtTable] 渲染器 "${l}" 执行出错:`,r),null}}}return null}y.install=function(t){t.component(y.name,y)},y.registerRenderer=ye,y.renderer=J;/*! Element Plus Icons Vue v2.3.2 */var $e=e.defineComponent({name:"ArrowDown",__name:"arrow-down",setup(t){return(o,n)=>(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"})]))}}),ge=$e,Pe=e.defineComponent({name:"Check",__name:"check",setup(t){return(o,n)=>(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"})]))}}),Fe=Pe,Ne=e.defineComponent({name:"Close",__name:"close",setup(t){return(o,n)=>(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"})]))}}),Re=Ne,De=e.defineComponent({name:"CopyDocument",__name:"copy-document",setup(t){return(o,n)=>(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"})]))}}),Te=De,Me=e.defineComponent({name:"Delete",__name:"delete",setup(t){return(o,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"})]))}}),K=Me,Ae=e.defineComponent({name:"Document",__name:"document",setup(t){return(o,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 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"})]))}}),Le=Ae,Oe=e.defineComponent({name:"Download",__name:"download",setup(t){return(o,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"})]))}}),Q=Oe,Ze=e.defineComponent({name:"Edit",__name:"edit",setup(t){return(o,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"})]))}}),X=Ze,He=e.defineComponent({name:"Lock",__name:"lock",setup(t){return(o,n)=>(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"})]))}}),je=He,Ie=e.defineComponent({name:"Plus",__name:"plus",setup(t){return(o,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"})]))}}),Y=Ie,qe=e.defineComponent({name:"Refresh",__name:"refresh",setup(t){return(o,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"})]))}}),H=qe,Ue=e.defineComponent({name:"Search",__name:"search",setup(t){return(o,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"})]))}}),j=Ue,We=e.defineComponent({name:"Setting",__name:"setting",setup(t){return(o,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"})]))}}),v=We,Ge=e.defineComponent({name:"Share",__name:"share",setup(t){return(o,n)=>(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"})]))}}),Je=Ge,Ke=e.defineComponent({name:"Unlock",__name:"unlock",setup(t){return(o,n)=>(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"})]))}}),Qe=Ke,Xe=e.defineComponent({name:"Upload",__name:"upload",setup(t){return(o,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"})]))}}),ee=Xe,Ye=e.defineComponent({name:"View",__name:"view",setup(t){return(o,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"})]))}}),te=Ye,ve=e.defineComponent({name:"Warning",__name:"warning",setup(t){return(o,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 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"})]))}}),et=ve;const tt=e.defineComponent({name:"ZxtForm",inheritAttrs:!1,props:{formColumns:{type:Array,default:()=>[]},initialFormData:{type:Object,default:()=>({})},rules:{type:Object,default:()=>({})},labelWidth:{type:String,default:"100px"}},emits:["submit","reset"],setup(t,{emit:o,expose:n}){const l=e.ref(null),i=e.reactive({}),p={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"},r=s=>p[s]||"el-input",m=s=>{const w=s.type||"input",E=["select","date","daterange","datetime","datetimerange","cascader"].includes(w),M={placeholder:s.placeholder||`请${E?"选择":"输入"}${s.label}`,disabled:s.disabled,style:"width: 100%","popper-class":"zxt-form-popper"};let V={};switch(w){case"date":case"daterange":case"datetime":case"datetimerange":V={type:s.dateType||w,startPlaceholder:s.startPlaceholder||"开始日期",endPlaceholder:s.endPlaceholder||"结束日期",format:s.format,valueFormat:s.valueFormat};break;case"cascader":V={options:s.options,props:s.cascaderProps,clearable:s.clearable!==!1};break;default:V={}}const N={...M,...V};return"clearable"in s&&(N.clearable=s.clearable),s.props&&typeof s.props=="object"&&Object.assign(N,s.props),N},f=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(i).forEach(w=>{delete i[w]}),Object.assign(i,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(w=>{if(w.required){const E=["select","date","daterange","datetime","datetimerange","cascader"].includes(w.type);s[w.prop]=[{required:!0,message:`请${E?"选择":"输入"}${w.label}`,trigger:E?"change":"blur"}]}}),s}),u=()=>{l.value&&l.value.validate(s=>{s&&o("submit",{...i})})},c=()=>{l.value&&l.value.resetFields(),o("reset")},g=s=>()=>xe(s,i,{})||null;return n({validate:()=>l.value?l.value.validate():Promise.resolve(!1),resetFields:()=>l.value&&l.value.resetFields(),getFormData:()=>({...i}),submitForm:u,resetForm:c}),{formRef:l,formData:i,formRules:d,submitForm:u,resetForm:c,processedColumns:f,getComponentType:r,getComponentProps:m,renderCustomItem:g}}}),ot={class:"zxt-form-container"},nt={key:0,class:"form-label"},at={class:"form-control"};function rt(t,o,n,l,i,p){const r=e.resolveComponent("el-option"),m=e.resolveComponent("el-form-item"),f=e.resolveComponent("el-col"),d=e.resolveComponent("el-row"),u=e.resolveComponent("el-form");return e.openBlock(),e.createElementBlock("div",ot,[e.createVNode(u,e.mergeProps({ref:"formRef"},t.$attrs,{model:t.formData,rules:t.formRules,"label-width":t.labelWidth,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,g)=>(e.openBlock(),e.createBlock(f,e.mergeProps({key:g},{ref_for:!0},c.colSpan),{default:e.withCtx(()=>[e.createVNode(m,{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",nt,e.toDisplayString(c.label),1)):e.createCommentVNode("",!0),e.createElementVNode("div",at,[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,w)=>(e.openBlock(),e.createBlock(r,{key:w,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},16,["model","rules","label-width"])])}const I=$(tt,[["render",rt],["__scopeId","data-v-6b22a57b"]]),lt={Plus:Y,Delete:K,Refresh:H,Download:Q,Search:j,Edit:X,View:te,Upload:ee,Setting:v,Warning:et,Check:Fe,Close:Re,Document:Le,CopyDocument:Te,Share:Je,Lock:je,Unlock:Qe,ArrowDown:ge},st=e.defineComponent({name:"ActionColumn",components:{ArrowDown:ge},props:{buttons:{type:Array,default:()=>[]},row:{type:Object,default:()=>({})},maxVisible:{type:Number,default:2}},emits:["action-click"],setup(t,{emit:o}){const n=e.computed(()=>t.buttons.filter(d=>typeof d.visible=="function"?d.visible(t.row):typeof d.visible=="boolean"?d.visible:!0)),l=e.computed(()=>n.value.length>t.maxVisible),i=e.computed(()=>l.value?n.value.slice(0,t.maxVisible):n.value),p=e.computed(()=>l.value?n.value.slice(t.maxVisible):[]);return{visibleButtons:i,overflowButtons:p,getIconComponent:d=>{if(d)return typeof d=="object"||typeof d=="function"?d:lt[d]},handleClick:d=>{o("action-click",{code:d.code,button:d,row:t.row})},handleCommand:d=>{o("action-click",{code:d.code,button:d,row:t.row})}}}}),it={class:"action-column"};function ct(t,o,n,l,i,p){const r=e.resolveComponent("el-button"),m=e.resolveComponent("ArrowDown"),f=e.resolveComponent("el-icon"),d=e.resolveComponent("el-dropdown-item"),u=e.resolveComponent("el-dropdown-menu"),c=e.resolveComponent("el-dropdown");return e.openBlock(),e.createElementBlock("div",it,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.visibleButtons,g=>(e.openBlock(),e.createBlock(r,{key:g.code,type:g.type||"",icon:t.getIconComponent(g.icon),size:"small",link:"",onClick:s=>t.handleClick(g)},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(g.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(u,null,{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.overflowButtons,g=>(e.openBlock(),e.createBlock(d,{key:g.code,command:g,icon:t.getIconComponent(g.icon)},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(g.label),1)]),_:2},1032,["command","icon"]))),128))]),_:1})]),default:e.withCtx(()=>[e.createVNode(r,{type:"",size:"small",link:""},{default:e.withCtx(()=>[o[0]||(o[0]=e.createTextVNode(" 更多 ",-1)),e.createVNode(f,{class:"el-icon--right"},{default:e.withCtx(()=>[e.createVNode(m)]),_:1})]),_:1})]),_:1},8,["onCommand"])):e.createCommentVNode("",!0)])}const dt=$(st,[["render",ct],["__scopeId","data-v-6d75a891"]]),pt=e.defineComponent({name:"ZxtGrid",inheritAttrs:!1,components:{ZxtTable:y,ZxtForm:I,ActionColumn:dt,Plus:Y,Delete:K,Refresh:H,Download:Q,Search:j,Edit:X,View:te,Upload:ee,Setting:v},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:o,expose:n}){const l=e.useAttrs(),i=e.useSlots(),p=e.ref(null),r=e.ref(null),m=e.ref(1),f=e.ref(10),d=e.ref(null),u=e.ref(t.gridOptions.formMode!==!1),c=e.ref({}),g={Plus:Y,Delete:K,Refresh:H,Download:Q,Search:j,Edit:X,View:te,Upload:ee,Setting:v},s=e.computed(()=>{const h=(t.gridOptions.columns||[]).find(me=>me.actionColumn);return h?h.actionColumn:null}),w=e.computed(()=>(t.gridOptions.columns||[]).map(h=>h.actionColumn?{...h,slot:"__action__",actionColumn:void 0}:h)),E=a=>{o("action-click",a)},M=e.computed(()=>{const a=t.gridOptions.formConfig;if(!a||!a.items)return[];const h=[...a.items];return h.some(fe=>fe.type==="slot"&&fe.slotName==="search-actions")||h.push({type:"slot",slotName:"search-actions",span:6,labelWidth:"0px",isAction:!0,...a.actionConfig}),h}),V=e.computed(()=>{const a=new Set(["search-actions"]);return(M.value||[]).forEach(h=>{h.type==="slot"&&a.add(h.slotName||h.prop)}),a}),N=e.computed(()=>{const a={};for(const h in i)h==="search-actions"||h==="toolbar"||(V.value.has(h)||h.startsWith("form-"))&&(a[h]=i[h]);return a}),x=e.computed(()=>{const a={};for(const h in i)h!=="toolbar"&&!V.value.has(h)&&!h.startsWith("form-")&&(a[h]=i[h]);return a}),q=()=>{r.value?.submitForm()},ne=a=>{o("submit",a),t.gridOptions.proxyConfig&&(c.value={...a},m.value=1,p.value?.reload?.())},ae=()=>{r.value?.resetForm()},re=()=>{o("reset"),t.gridOptions.proxyConfig&&(c.value={},m.value=1,p.value?.reload?.())},C=a=>{if(a)return typeof a=="object"||typeof a=="function"?a:g[a]},z=e.computed(()=>{const a=t.gridOptions.proxyConfig;return a?{...a,_formData:c.value}:null}),B=e.computed(()=>{const{formConfig:a,toolbar:h,formMode:me,formColumns:fe,rules:Et,data:xt,proxyConfig:Bt,...St}=t.gridOptions;return{...St,proxyConfig:z.value||Bt||null}}),U=e.computed(()=>d.value!==null?d.value:t.externalData.length>0?t.externalData:t.gridOptions.data||[]),le=e.computed(()=>!!t.gridOptions.proxyConfig),se=e.computed(()=>le.value?0:U.value.length),ie=(a,h)=>{switch(o("toolbar-click",{code:a,button:h,grid:p.value}),a){case"add":ce();break;case"delete":R();break;case"refresh":b();break;case"export":O();break}},ce=()=>{u.value=!0},R=()=>{const a=p.value?.getTableRef()?.getSelectionRows?.()||[];if(a.length===0){k.ElMessage.warning("请先选择要删除的数据");return}k.ElMessage.success(`删除 ${a.length} 条数据`)},b=()=>{k.ElMessage.success("刷新数据"),p.value?.reload?.()},O=()=>{k.ElMessage.success("导出数据")},de=a=>{o("submit",a)},pe=()=>{o("reset")},W=()=>{u.value=!1},A=a=>{m.value=a.page,o("page-change",a)},Z=a=>{f.value=a.size,o("size-change",a)},G=()=>p.value,_t=()=>r.value,kt=()=>p.value?.getTableRef()?.getSelectionRows?.()||[],yt=a=>{d.value=a??null},bt=a=>{u.value=a},zt=(a,...h)=>{switch(a){case"query":m.value=1,p.value?.reload?.();break;case"reload":p.value?.reload?.();break;default:console.warn(`[ZxtGrid] commitProxy: unknown type "${a}"`)}};e.watch(()=>t.gridOptions.formMode,a=>{a!==void 0&&(u.value=a)});const S=()=>p.value?.getTableRef?.();return n({getGridRef:G,getFormRef:_t,getElTableRef:S,getSelectedRows:kt,reloadData:yt,setFormVisible:bt,commitProxy:zt,clearSelection:()=>S()?.clearSelection(),toggleRowSelection:(...a)=>S()?.toggleRowSelection(...a),toggleAllSelection:()=>S()?.toggleAllSelection(),toggleRowExpansion:(...a)=>S()?.toggleRowExpansion(...a),setCurrentRow:(...a)=>S()?.setCurrentRow(...a),clearSort:()=>S()?.clearSort(),clearFilter:(...a)=>S()?.clearFilter(...a),doLayout:()=>S()?.doLayout(),sort:(...a)=>S()?.sort(...a)}),{attrs:l,gridRef:p,searchFormRef:r,currentPage:m,pageSize:f,tableData:U,tableProps:B,mergedColumns:w,actionColumnConfig:s,total:se,isFormVisible:u,searchFormColumns:M,formFilteredSlots:N,tableFilteredSlots:x,getIconComponent:C,handleToolbarClick:ie,handleActionClick:E,handleSubmit:de,handleFormReset:pe,handleFormCancel:W,handlePageChange:A,handleSizeChange:Z,handleSearch:q,handleSearchSubmit:ne,handleReset:ae,handleSearchReset:re,Search:j,Refresh:H}}}),mt={key:0,class:"grid-search-form"},ft={class:"search-btn-group"},gt={class:"grid-table-wrapper"},ut={key:0,class:"grid-toolbar"};function ht(t,o,n,l,i,p){const r=e.resolveComponent("el-button"),m=e.resolveComponent("ZxtForm"),f=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&&t.isFormVisible?(e.openBlock(),e.createElementBlock("div",mt,[e.createVNode(m,{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",ft,[e.createVNode(r,{class:"btn-search",icon:t.Search,onClick:t.handleSearch},{default:e.withCtx(()=>[...o[0]||(o[0]=[e.createTextVNode(" 查询 ",-1)])]),_:1},8,["icon","onClick"]),e.createVNode(r,{class:"btn-reset",icon:t.Refresh,onClick:t.handleReset},{default:e.withCtx(()=>[...o[1]||(o[1]=[e.createTextVNode(" 重置 ",-1)])]),_:1},8,["icon","onClick"])])]),_:2},[e.renderList(t.formFilteredSlots,(u,c)=>({name:c,fn:e.withCtx(g=>[e.renderSlot(t.$slots,c,e.normalizeProps(e.guardReactiveProps(g)),void 0,!0)])}))]),1032,["form-columns","initial-form-data","rules","onSubmit","onReset"])])):e.createCommentVNode("",!0),e.createElementVNode("div",gt,[t.gridOptions.toolbar?(e.openBlock(),e.createElementBlock("div",ut,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.gridOptions.toolbar.buttons,(u,c)=>(e.openBlock(),e.createBlock(r,{key:c,type:u.type||"default",size:u.size||"small",icon:t.getIconComponent(u.icon),disabled:u.disabled,onClick:g=>t.handleToolbarClick(u.code,u)},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(u.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:u})=>[e.createVNode(f,{buttons:t.actionColumnConfig.buttons,row:u,"max-visible":t.actionColumnConfig.maxVisible||2,onActionClick:t.handleActionClick},null,8,["buttons","row","max-visible","onActionClick"])]),key:"0"}:void 0,e.renderList(t.tableFilteredSlots,(u,c)=>({name:c,fn:e.withCtx(g=>[e.renderSlot(t.$slots,c,e.normalizeProps(e.guardReactiveProps(g)),void 0,!0)])}))]),1040,["id","columns","data","height","pageable","current-page","page-size","page-sizes","total","pagination-layout","onPageChange","onSizeChange"])])],2)}const oe=$(pt,[["render",ht],["__scopeId","data-v-38879918"]]);P.install=function(t){t.component(P.name,P)};const Ct=[D,T,y,oe,I,P],wt={install:t=>{Ct.forEach(o=>{t.component(o.name,o)})},MyButton:D,JsxButton:T,ZxtTable:y,ZxtGrid:oe,ZxtForm:I,ZxtPagination:P,renderer:y.renderer,registerRenderer:y.registerRenderer};_.JsxButton=T,_.MyButton=D,_.ZxtForm=I,_.ZxtGrid=oe,_.ZxtPagination=P,_.ZxtTable=y,_.default=wt,Object.defineProperties(_,{__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
|
+
"version": "0.5.0",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"description": "一个基于 Vue 3 和 Element Plus 的高级表格、表单组件库",
|
|
7
7
|
"keywords": [
|
|
@@ -51,7 +51,8 @@
|
|
|
51
51
|
"vue": "^3.5.22"
|
|
52
52
|
},
|
|
53
53
|
"dependencies": {
|
|
54
|
-
"@element-plus/icons-vue": "^2.3.2"
|
|
54
|
+
"@element-plus/icons-vue": "^2.3.2",
|
|
55
|
+
"vue-router": "^4.6.4"
|
|
55
56
|
},
|
|
56
57
|
"scripts": {
|
|
57
58
|
"dev": "vite",
|