zxt-table 0.3.7 → 0.3.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- .my-button[data-v-4480e77d]{display:inline-block;line-height:1;white-space:nowrap;cursor:pointer;background:#fff;border:1px solid #dcdfe6;color:#606266;text-align:center;box-sizing:border-box;outline:none;margin:0;transition:.1s;font-weight:500;padding:12px 20px;font-size:14px;border-radius:4px}.my-button--primary[data-v-4480e77d]{color:#fff;background-color:#409eff;border-color:#409eff}.my-button--success[data-v-4480e77d]{color:#fff;background-color:#67c23a;border-color:#67c23a}.my-button--warning[data-v-4480e77d]{color:#fff;background-color:#e6a23c;border-color:#e6a23c}.my-button--danger[data-v-4480e77d]{color:#fff;background-color:#f56c6c;border-color:#f56c6c}.my-button.is-disabled[data-v-4480e77d]{cursor:not-allowed;opacity:.7}.jsx-button{display:inline-block;line-height:1;white-space:nowrap;cursor:pointer;background:#fff;border:1px solid #dcdfe6;color:#606266;text-align:center;box-sizing:border-box;outline:none;margin:0;transition:.1s;font-weight:500;padding:12px 20px;font-size:14px;border-radius:4px}.jsx-button--primary{color:#fff;background-color:#409eff;border-color:#409eff}.jsx-button--success{color:#fff;background-color:#67c23a;border-color:#67c23a}.jsx-button--warning{color:#fff;background-color:#e6a23c;border-color:#e6a23c}.jsx-button--danger{color:#fff;background-color:#f56c6c;border-color:#f56c6c}.jsx-button.is-disabled{cursor:not-allowed;opacity:.7}.zxt-pagination[data-v-497aa44d]{display:flex;justify-content:flex-end;margin-top:20px;--el-color-primary: #ff3a33;--el-pagination-hover-color: #ff3a33}[data-v-497aa44d] .el-pager li.is-active{color:#ff3a33!important}[data-v-497aa44d] .el-pagination.is-background .el-pager li:not(.is-disabled).is-active{background-color:#ff3a33!important;color:#fff}[data-v-497aa44d] .el-pager li:hover{color:#ff3a33!important}[data-v-497aa44d] .el-pagination__sizes .el-input.is-focus .el-input__wrapper,[data-v-497aa44d] .el-pagination__sizes .el-input__wrapper:hover{box-shadow:0 0 0 1px #ff3a33 inset!important}.el-select-dropdown__item.is-selected{color:#ff3a33!important}.zxt-table-container[data-v-421a4654]{width:100%}.zxt-table-container--full[data-v-421a4654]{display:flex;flex-direction:column;height:100%}.zxt-table-container--full[data-v-421a4654] .el-table{flex:1;min-height:0}.zxt-table-container--full[data-v-421a4654] .el-table__inner-wrapper{height:100%}[data-v-421a4654] .el-table{--el-table-header-bg-color: #f8f8f9;--el-table-header-text-color: #333333;--el-table-text-color: #606266;--el-table-border-color: #ebeef5;--el-table-row-hover-bg-color: #f5f7fa}[data-v-421a4654] .el-table th.el-table__cell{background-color:var(--el-table-header-bg-color)!important;color:var(--el-table-header-text-color);font-weight:600;height:48px;padding:6px 0}[data-v-421a4654] .el-table td.el-table__cell{padding:8px 0}[data-v-421a4654] .el-table .cell{line-height:24px;padding:0 12px}[data-v-421a4654] .el-link.el-link--default,[data-v-421a4654] .el-link.el-link--primary{--el-link-text-color: #409eff;color:#409eff;font-weight:400}[data-v-421a4654] .el-link:hover{color:#66b1ff;text-decoration:none}[data-v-421a4654] .el-button--primary.is-link,[data-v-421a4654] .el-button--primary.is-text{color:#409eff}[data-v-421a4654] .el-table--striped .el-table__body tr.el-table__row--striped td.el-table__cell{background-color:#fafafa}[data-v-421a4654] .el-table .el-tag{border-radius:4px;height:24px;line-height:22px;padding:0 8px}[data-v-421a4654] .el-table__expand-icon{outline:none;border:none}[data-v-421a4654] .el-table__expand-icon:focus,[data-v-421a4654] .el-table__expand-icon:focus-visible{outline:none;box-shadow:none;border:none}[data-v-421a4654] .el-table__expand-icon .el-icon{outline:none}[data-v-421a4654] .el-table__expand-icon .el-icon:focus,[data-v-421a4654] .el-table__expand-icon .el-icon:focus-visible{outline:none;box-shadow:none}.zxt-form-popper .el-select-dropdown__item.selected,.zxt-form-popper .el-select-dropdown__item.is-selected{color:#fa2314!important}.zxt-form-popper .el-select-dropdown__item.hover,.zxt-form-popper .el-select-dropdown__item:hover{background-color:#f5f7fa;color:#fa2314}.zxt-form-popper .el-date-table td.current:not(.disabled) .el-date-table-cell__text{background-color:#fa2314!important}.zxt-form-popper .el-date-table td.today .el-date-table-cell__text{color:#fa2314}.zxt-form-popper .el-date-table td.today.current .el-date-table-cell__text{color:#fff}.zxt-form-popper .el-year-table td.current .cell,.zxt-form-popper .el-month-table td.current .cell{color:#fa2314!important}.zxt-form-popper .el-date-table td.start-date .el-date-table-cell__text,.zxt-form-popper .el-date-table td.end-date .el-date-table-cell__text{background-color:#fa2314!important}.zxt-form-popper .el-date-table td.available:hover,.zxt-form-popper .el-year-table td .cell:hover,.zxt-form-popper .el-month-table td .cell:hover,.zxt-form-popper .el-date-picker__header-label:hover,.zxt-form-popper .el-picker-panel__icon-btn:hover{color:#fa2314}.zxt-form-container[data-v-0061cb38]{padding:20px}.form-actions[data-v-0061cb38]{display:flex;justify-content:center;margin-top:30px;gap:10px}.form-item-wrapper[data-v-0061cb38]{display:flex;align-items:center;border:1px solid #dcdfe6;border-radius:4px;padding:0 12px;width:100%;background-color:#fff;transition:border-color .2s cubic-bezier(.645,.045,.355,1)}.form-item-wrapper.is-action[data-v-0061cb38]{border:none;background-color:transparent;padding:0}.form-item-wrapper[data-v-0061cb38]:focus-within{border-color:#fa2314}.custom-form-item.is-error .form-item-wrapper[data-v-0061cb38]{border-color:#f56c6c}.form-label[data-v-0061cb38]{color:#606266;white-space:nowrap;margin-right:12px;font-size:14px;line-height:32px}.form-control[data-v-0061cb38]{flex:1;min-width:0;display:flex;align-items:center}.custom-form-item[data-v-0061cb38] .el-input__wrapper,.custom-form-item[data-v-0061cb38] .el-select__wrapper,.custom-form-item[data-v-0061cb38] .el-textarea__wrapper{box-shadow:none!important;background-color:transparent!important;padding-left:0;padding-right:0}.custom-form-item[data-v-0061cb38] .el-date-editor.el-input__wrapper{width:100%}.custom-form-item[data-v-0061cb38] .el-range-editor.el-input__wrapper{padding:0;box-shadow:none!important}.zxt-grid-container[data-v-a9c16b19]{width:100%}.zxt-grid-container--full[data-v-a9c16b19]{display:flex;flex-direction:column;height:100%}.zxt-grid-container--full .grid-table-wrapper[data-v-a9c16b19]{flex:1;display:flex;flex-direction:column;min-height:0}.zxt-grid-container--full .zxt-table-container[data-v-a9c16b19]{flex:1;min-height:0}.grid-search-form[data-v-a9c16b19]{margin-bottom:10px;padding:10px;border-radius:4px}.search-btn-group[data-v-a9c16b19]{display:flex;gap:10px}.grid-toolbar[data-v-a9c16b19]{margin-bottom:10px;padding:10px;border-radius:4px;display:flex;gap:10px;align-items:center}.btn-search[data-v-a9c16b19]{background-color:#fff;border-color:#fa2314;color:#fa2314}.btn-search[data-v-a9c16b19]:hover,.btn-search[data-v-a9c16b19]:focus,.btn-search[data-v-a9c16b19]:active{background-color:#fff}.btn-search[data-v-a9c16b19]:hover,.btn-search[data-v-a9c16b19]:focus{border-color:#fb4f43;color:#fb4f43;outline:none}.btn-search.el-button[data-v-a9c16b19]:focus,.btn-search.el-button[data-v-a9c16b19]:focus-visible{background-color:#fff;border-color:#fb4f43;color:#fb4f43;outline:none}.btn-search[data-v-a9c16b19]:active,.btn-search.el-button[data-v-a9c16b19]:active{background-color:#fff;border-color:#e12012;color:#e12012}.btn-reset[data-v-a9c16b19]{background-color:#fff;border-color:#ddd;color:#111}.btn-reset[data-v-a9c16b19]:hover,.btn-reset[data-v-a9c16b19]:focus,.btn-reset[data-v-a9c16b19]:active{background-color:#fff}.btn-reset[data-v-a9c16b19]:focus,.btn-reset.el-button[data-v-a9c16b19]:focus,.btn-reset.el-button[data-v-a9c16b19]:focus-visible{border-color:#ddd;color:#111;outline:none}.btn-reset[data-v-a9c16b19]:hover,.btn-reset.el-button[data-v-a9c16b19]:hover{border-color:#fb4f43;color:#fb4f43}.btn-reset[data-v-a9c16b19]:active,.btn-reset.el-button[data-v-a9c16b19]:active{background-color:#fff;border-color:#e12012;color:#e12012}
1
+ .my-button[data-v-4480e77d]{display:inline-block;line-height:1;white-space:nowrap;cursor:pointer;background:#fff;border:1px solid #dcdfe6;color:#606266;text-align:center;box-sizing:border-box;outline:none;margin:0;transition:.1s;font-weight:500;padding:12px 20px;font-size:14px;border-radius:4px}.my-button--primary[data-v-4480e77d]{color:#fff;background-color:#409eff;border-color:#409eff}.my-button--success[data-v-4480e77d]{color:#fff;background-color:#67c23a;border-color:#67c23a}.my-button--warning[data-v-4480e77d]{color:#fff;background-color:#e6a23c;border-color:#e6a23c}.my-button--danger[data-v-4480e77d]{color:#fff;background-color:#f56c6c;border-color:#f56c6c}.my-button.is-disabled[data-v-4480e77d]{cursor:not-allowed;opacity:.7}.jsx-button{display:inline-block;line-height:1;white-space:nowrap;cursor:pointer;background:#fff;border:1px solid #dcdfe6;color:#606266;text-align:center;box-sizing:border-box;outline:none;margin:0;transition:.1s;font-weight:500;padding:12px 20px;font-size:14px;border-radius:4px}.jsx-button--primary{color:#fff;background-color:#409eff;border-color:#409eff}.jsx-button--success{color:#fff;background-color:#67c23a;border-color:#67c23a}.jsx-button--warning{color:#fff;background-color:#e6a23c;border-color:#e6a23c}.jsx-button--danger{color:#fff;background-color:#f56c6c;border-color:#f56c6c}.jsx-button.is-disabled{cursor:not-allowed;opacity:.7}.zxt-pagination[data-v-497aa44d]{display:flex;justify-content:flex-end;margin-top:20px;--el-color-primary: #ff3a33;--el-pagination-hover-color: #ff3a33}[data-v-497aa44d] .el-pager li.is-active{color:#ff3a33!important}[data-v-497aa44d] .el-pagination.is-background .el-pager li:not(.is-disabled).is-active{background-color:#ff3a33!important;color:#fff}[data-v-497aa44d] .el-pager li:hover{color:#ff3a33!important}[data-v-497aa44d] .el-pagination__sizes .el-input.is-focus .el-input__wrapper,[data-v-497aa44d] .el-pagination__sizes .el-input__wrapper:hover{box-shadow:0 0 0 1px #ff3a33 inset!important}.el-select-dropdown__item.is-selected{color:#ff3a33!important}.zxt-table-container[data-v-421a4654]{width:100%}.zxt-table-container--full[data-v-421a4654]{display:flex;flex-direction:column;height:100%}.zxt-table-container--full[data-v-421a4654] .el-table{flex:1;min-height:0}.zxt-table-container--full[data-v-421a4654] .el-table__inner-wrapper{height:100%}[data-v-421a4654] .el-table{--el-table-header-bg-color: #f8f8f9;--el-table-header-text-color: #333333;--el-table-text-color: #606266;--el-table-border-color: #ebeef5;--el-table-row-hover-bg-color: #f5f7fa}[data-v-421a4654] .el-table th.el-table__cell{background-color:var(--el-table-header-bg-color)!important;color:var(--el-table-header-text-color);font-weight:600;height:48px;padding:6px 0}[data-v-421a4654] .el-table td.el-table__cell{padding:8px 0}[data-v-421a4654] .el-table .cell{line-height:24px;padding:0 12px}[data-v-421a4654] .el-link.el-link--default,[data-v-421a4654] .el-link.el-link--primary{--el-link-text-color: #409eff;color:#409eff;font-weight:400}[data-v-421a4654] .el-link:hover{color:#66b1ff;text-decoration:none}[data-v-421a4654] .el-button--primary.is-link,[data-v-421a4654] .el-button--primary.is-text{color:#409eff}[data-v-421a4654] .el-table--striped .el-table__body tr.el-table__row--striped td.el-table__cell{background-color:#fafafa}[data-v-421a4654] .el-table .el-tag{border-radius:4px;height:24px;line-height:22px;padding:0 8px}[data-v-421a4654] .el-table__expand-icon{outline:none;border:none}[data-v-421a4654] .el-table__expand-icon:focus,[data-v-421a4654] .el-table__expand-icon:focus-visible{outline:none;box-shadow:none;border:none}[data-v-421a4654] .el-table__expand-icon .el-icon{outline:none}[data-v-421a4654] .el-table__expand-icon .el-icon:focus,[data-v-421a4654] .el-table__expand-icon .el-icon:focus-visible{outline:none;box-shadow:none}.zxt-form-popper .el-select-dropdown__item.selected,.zxt-form-popper .el-select-dropdown__item.is-selected{color:#fa2314!important}.zxt-form-popper .el-select-dropdown__item.hover,.zxt-form-popper .el-select-dropdown__item:hover{background-color:#f5f7fa;color:#fa2314}.zxt-form-popper .el-date-table td.current:not(.disabled) .el-date-table-cell__text{background-color:#fa2314!important}.zxt-form-popper .el-date-table td.today .el-date-table-cell__text{color:#fa2314}.zxt-form-popper .el-date-table td.today.current .el-date-table-cell__text{color:#fff}.zxt-form-popper .el-year-table td.current .cell,.zxt-form-popper .el-month-table td.current .cell{color:#fa2314!important}.zxt-form-popper .el-date-table td.start-date .el-date-table-cell__text,.zxt-form-popper .el-date-table td.end-date .el-date-table-cell__text{background-color:#fa2314!important}.zxt-form-popper .el-date-table td.available:hover,.zxt-form-popper .el-year-table td .cell:hover,.zxt-form-popper .el-month-table td .cell:hover,.zxt-form-popper .el-date-picker__header-label:hover,.zxt-form-popper .el-picker-panel__icon-btn:hover{color:#fa2314}.form-actions[data-v-9c337267]{display:flex;justify-content:center;margin-top:30px;gap:10px}.form-item-wrapper[data-v-9c337267]{display:flex;align-items:center;border:1px solid #dcdfe6;border-radius:4px;padding:0 12px;width:100%;background-color:#fff;transition:border-color .2s cubic-bezier(.645,.045,.355,1)}.form-item-wrapper.is-action[data-v-9c337267]{border:none;background-color:transparent;padding:0}.form-item-wrapper[data-v-9c337267]:focus-within{border-color:#fa2314}.custom-form-item.is-error .form-item-wrapper[data-v-9c337267]{border-color:#f56c6c}.form-label[data-v-9c337267]{color:#606266;white-space:nowrap;margin-right:12px;font-size:14px;line-height:32px}.form-control[data-v-9c337267]{flex:1;min-width:0;display:flex;align-items:center}.custom-form-item[data-v-9c337267] .el-input__wrapper,.custom-form-item[data-v-9c337267] .el-select__wrapper,.custom-form-item[data-v-9c337267] .el-textarea__wrapper{box-shadow:none!important;background-color:transparent!important;padding-left:0;padding-right:0}.custom-form-item[data-v-9c337267] .el-date-editor.el-input__wrapper{width:100%}.custom-form-item[data-v-9c337267] .el-range-editor.el-input__wrapper{padding:0;box-shadow:none!important}.zxt-grid-container[data-v-a7b1f516]{width:100%}.zxt-grid-container--full[data-v-a7b1f516]{display:flex;flex-direction:column;height:100%}.zxt-grid-container--full .grid-table-wrapper[data-v-a7b1f516]{flex:1;display:flex;flex-direction:column;min-height:0}.zxt-grid-container--full .zxt-table-container[data-v-a7b1f516]{flex:1;min-height:0}.grid-search-form[data-v-a7b1f516]{padding:10px;border-radius:4px}.search-btn-group[data-v-a7b1f516]{display:flex;gap:10px}.grid-toolbar[data-v-a7b1f516]{margin-bottom:10px;padding:10px;border-radius:4px;display:flex;gap:10px;align-items:center}.btn-search[data-v-a7b1f516]{background-color:#fff;border-color:#fa2314;color:#fa2314}.btn-search[data-v-a7b1f516]:hover,.btn-search[data-v-a7b1f516]:focus,.btn-search[data-v-a7b1f516]:active{background-color:#fff}.btn-search[data-v-a7b1f516]:hover,.btn-search[data-v-a7b1f516]:focus{border-color:#fb4f43;color:#fb4f43;outline:none}.btn-search.el-button[data-v-a7b1f516]:focus,.btn-search.el-button[data-v-a7b1f516]:focus-visible{background-color:#fff;border-color:#fb4f43;color:#fb4f43;outline:none}.btn-search[data-v-a7b1f516]:active,.btn-search.el-button[data-v-a7b1f516]:active{background-color:#fff;border-color:#e12012;color:#e12012}.btn-reset[data-v-a7b1f516]{background-color:#fff;border-color:#ddd;color:#111}.btn-reset[data-v-a7b1f516]:hover,.btn-reset[data-v-a7b1f516]:focus,.btn-reset[data-v-a7b1f516]:active{background-color:#fff}.btn-reset[data-v-a7b1f516]:focus,.btn-reset.el-button[data-v-a7b1f516]:focus,.btn-reset.el-button[data-v-a7b1f516]:focus-visible{border-color:#ddd;color:#111;outline:none}.btn-reset[data-v-a7b1f516]:hover,.btn-reset.el-button[data-v-a7b1f516]:hover{border-color:#fb4f43;color:#fb4f43}.btn-reset[data-v-a7b1f516]:active,.btn-reset.el-button[data-v-a7b1f516]:active{background-color:#fff;border-color:#e12012;color:#e12012}
@@ -833,7 +833,7 @@ function _t(e, t, a, n, l, s) {
833
833
  }, 8, ["model", "rules"])
834
834
  ]);
835
835
  }
836
- const ze = /* @__PURE__ */ q(yt, [["render", _t], ["__scopeId", "data-v-0061cb38"]]), St = z({
836
+ const ze = /* @__PURE__ */ q(yt, [["render", _t], ["__scopeId", "data-v-9c337267"]]), St = z({
837
837
  name: "ZxtGrid",
838
838
  inheritAttrs: !1,
839
839
  components: {
@@ -1102,7 +1102,7 @@ function Ft(e, t, a, n, l, s) {
1102
1102
  ])
1103
1103
  ], 2);
1104
1104
  }
1105
- const Te = /* @__PURE__ */ q(St, [["render", Ft], ["__scopeId", "data-v-a9c16b19"]]);
1105
+ const Te = /* @__PURE__ */ q(St, [["render", Ft], ["__scopeId", "data-v-a7b1f516"]]);
1106
1106
  N.install = function(e) {
1107
1107
  e.component(N.name, N);
1108
1108
  };
@@ -1 +1 @@
1
- (function(b,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):(b=typeof globalThis<"u"?globalThis:b||self,e(b.ZxtTable={},b.Vue,b.ElementPlus))})(this,(function(b,e,y){"use strict";const T=(t,a)=>{const n=t.__vccOpts||t;for(const[o,s]of a)n[o]=s;return n},ce={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:o=>{a("click",o)}}}},pe=["disabled"];function me(t,a,n,o,s,i){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]=(...r)=>o.handleClick&&o.handleClick(...r))},[e.renderSlot(t.$slots,"default",{},void 0,!0)],10,pe)}const N=T(ce,[["render",me],["__scopeId","data-v-4480e77d"]]);N.install=function(t){t.component(N.name,N)};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 o=s=>{t.disabled||a("click",s)};return()=>e.createVNode("button",{class:["jsx-button",`jsx-button--${t.type}`,{"is-disabled":t.disabled}],disabled:t.disabled,onClick:o},[n.default?.()])}});D.install=function(t){t.component(D.name,D)};const fe=e.defineComponent({name:"ZxtPagination",components:{ElPagination:y.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),o=e.ref(t.pageSize);return e.watch(()=>t.modelValue,r=>{n.value=r}),e.watch(()=>t.pageSize,r=>{o.value=r}),{currentPage:n,pageSize:o,handleSizeChange:r=>{o.value=r,n.value=1,a("update:pageSize",r),a("size-change",{page:n.value,size:r})},handleCurrentChange:r=>{n.value=r,a("update:modelValue",r),a("page-change",{page:r,size:o.value})}}}});function ge(t,a,n,o,s,i){const r=e.resolveComponent("el-pagination");return e.openBlock(),e.createBlock(r,{"current-page":t.currentPage,"onUpdate:currentPage":a[0]||(a[0]=p=>t.currentPage=p),"page-size":t.pageSize,"onUpdate:pageSize":a[1]||(a[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=T(fe,[["render",ge],["__scopeId","data-v-497aa44d"]]),M={default:({cellValue:t})=>t??"",input:({cellValue:t,row:a,column:n,updateRow:o})=>e.h(y.ElInput,{modelValue:t,size:"small",onInput:s=>o({...a,[n.property]:s})}),select:({cellValue:t,row:a,column:n,updateRow:o,options:s=[]})=>e.h(y.ElSelect,{modelValue:t,size:"small",onChange:i=>o({...a,[n.property]:i})},()=>s.map(i=>e.h(y.ElOption,{label:i.label,value:i.value,key:i.value}))),checkbox:({cellValue:t,row:a,column:n,updateRow:o})=>e.h(y.ElCheckbox,{modelValue:!!t,onChange:s=>o({...a,[n.property]:s})}),link:({cellValue:t,href:a,target:n="_blank"})=>e.h(y.ElLink,{href:a,target:n},()=>t)};function ue(t,a){if(!t)return null;if(typeof t=="string"){const n=M[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:o={},attrs:s={},events:i={},content:r}=t;return typeof n=="string"&&M[n]?M[n]({...a,...o,...s,...i}):typeof n=="object"||typeof n=="function"?e.h(n,{...o,...s,...i},r):(console.warn("[ZxtTable] cellRender 对象缺少有效的 name 字段"),a.cellValue??"")}return a.cellValue??""}function he(t,a){M[t]&&console.warn(`[ZxtTable] 内置渲染器 ${t} 已被覆盖`),M[t]=a}const Ce=e.defineComponent({name:"ZxtTableColumn",components:{ElTableColumn:y.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=i=>{const{currentPage:r,pageSize:p}=t;return(r-1)*p+i+1},o=e.computed(()=>{const i=t.column;return{...i,prop:i.prop??i.field,label:i.label??i.title}});return{normalizedColumn:o,renderCell:i=>{const r=o.value,p=i.row[r.prop],m=p??r.defaultValue??"";return ue(r.cellRender,{row:i.row,column:r,rowIndex:i.$index,cellValue:m,updateRow:f=>a(f,i.$index)})},defaultIndexMethod:n}}});function be(t,a,n,o,s,i){const r=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.normalizedColumn,{key:t.normalizedColumn.prop+"-group"}),{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.normalizedColumn.children,(m,f)=>(e.openBlock(),e.createBlock(r,{key:f,column:m,"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(p,e.mergeProps({key:1},t.normalizedColumn,{key:t.normalizedColumn.prop,index:t.normalizedColumn.indexMethod||t.defaultIndexMethod}),e.createSlots({_:2},[["selection","index"].includes(t.normalizedColumn.type)?void 0:{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"}]),1040,["index"]))}const ye=T(Ce,[["render",be]]),ke=e.defineComponent({name:"ZxtTable",inheritAttrs:!1,components:{ZxtPagination:E,ZxtTableColumn:ye,ElTable:y.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),o=e.ref(t.pageSize),s=e.ref(t.currentPage),i=e.ref(!1),r=e.ref([]),p=e.ref(0),m=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),l=e.computed(()=>C.value?p.value:t.total>0?t.total:t.data.length),h=e.computed(()=>C.value?r.value:t.data),_=u=>{C.value&&(s.value=u.page,o.value=u.size,S()),a("size-change",u)},B=u=>{C.value&&(s.value=u.page,o.value=u.size,S()),a("page-change",u)},U=({prop:u,order:w})=>{m.value={prop:u,order:w},C.value&&S(),a("sort-change",{prop:u,order:w})},G=u=>{f.value=u||{},C.value&&S(),a("filter-change",f.value)},S=async()=>{if(!C.value)return;const u=t.proxyConfig||{},w=u.ajax?.query;if(typeof w!="function")return;const P=u.props||{},Q=P.pageField||"page",X=P.sizeField||"size",Y=P.sortField||"sort",v=P.orderField||"order",ee=P.filtersField||"filters",te=u.params||{},R={[Q]:s.value,[X]:o.value,...te};m.value?.prop&&(R[Y]=m.value.prop,R[v]=m.value.order),f.value&&Object.keys(f.value).length&&(R[ee]=f.value),i.value=!0;try{const z=await w(R),Z=u.response||{},c=Z.listField||"list",V=Z.totalField||"total",x=Z.transform;let $=[],A=0;if(typeof x=="function"){const ae=x(z);$=ae?.list??[],A=ae?.total??0}else z&&typeof z=="object"&&($=z?.[c]??z?.data??[],A=z?.[V]??z?.total??0);r.value=Array.isArray($)?$:[],p.value=Number(A)||0,a("loaded",{data:r.value,total:p.value,payload:R})}catch(z){a("load-error",z)}finally{i.value=!1}},O=(u,w)=>{C.value?r.value.splice(w,1,u):a("update:row",{index:w,row:u})};e.provide("updateRow",O),e.onMounted(()=>{C.value&&S()});const J=()=>n.value,W=()=>n.value?.getSelectionRows?.()||[],K=()=>S();return{tableRef:n,containerStyle:g,tableHeight:d,getTableRef:J,pageSize:o,currentPage:s,loading:i,renderData:h,total:l,pageSizes:e.computed(()=>t.pageSizes),paginationLayout:e.computed(()=>t.paginationLayout),handleSizeChange:_,handlePageChange:B,handleSortChange:U,handleFilterChange:G,reload:K,getSelectedRows:W,updateRow:O}}});function ze(t,a,n,o,s,i){const r=e.resolveComponent("ZxtTableColumn"),p=e.resolveComponent("el-table"),m=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(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,d)=>(e.openBlock(),e.createBlock(r,{key:d,column:g,"current-page":t.currentPage,"page-size":t.pageSize},e.createSlots({_:2},[e.renderList(t.$slots,(C,l)=>({name:l,fn:e.withCtx(h=>[e.renderSlot(t.$slots,l,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(m,{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 k=T(ke,[["render",ze],["__scopeId","data-v-421a4654"]]),F=new Map;class we{add(a,n){return!a||typeof a!="string"?(console.warn("[ZxtTable] 渲染器名称必须是字符串"),this):!n||typeof n!="object"?(console.warn("[ZxtTable] 渲染器配置必须是对象"),this):(F.has(a)&&console.warn(`[ZxtTable] 渲染器 "${a}" 已存在,将被覆盖`),F.set(a,n),this)}get(a){return F.get(a)}delete(a){return F.delete(a)}has(a){return F.has(a)}getAll(){return Array.from(F.keys())}clear(){F.clear()}}const j=new we;function Se(t,a,n={}){if(!t||!t.itemRender)return null;const{name:o}=t.itemRender;if(o&&j.has(o)){const s=j.get(o);if(typeof s.renderItemContent=="function"){const i={data:a,field:t.field||t.prop,item:t,formData:a};try{return s.renderItemContent(n,i)}catch(r){return console.error(`[ZxtTable] 渲染器 "${o}" 执行出错:`,r),null}}}return null}k.install=function(t){t.component(k.name,k)},k.registerRenderer=he,k.renderer=j;var _e=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"})]))}}),ne=_e,Be=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"})]))}}),oe=Be,Ve=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"})]))}}),re=Ve,$e=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"})]))}}),le=$e,Ee=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"})]))}}),H=Ee,Fe=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"})]))}}),I=Fe,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"})]))}}),se=Pe,Re=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"})]))}}),ie=Re,Te=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"})]))}}),de=Te;const Ne=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 o=e.ref(null),s=e.reactive({}),i={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=l=>i[l]||"el-input",p=l=>{const h=l.type||"input",_=["select","date","daterange","datetime","datetimerange","cascader"].includes(h),B={placeholder:l.placeholder||`请${_?"选择":"输入"}${l.label}`,disabled:l.disabled,style:"width: 100%","popper-class":"zxt-form-popper"};switch(h){case"date":case"daterange":case"datetime":case"datetimerange":return{...B,type:l.dateType||h,startPlaceholder:l.startPlaceholder||"开始日期",endPlaceholder:l.endPlaceholder||"结束日期",format:l.format,valueFormat:l.valueFormat};case"cascader":return{...B,options:l.options,props:l.cascaderProps,clearable:l.clearable!==!1};case"select":return B;case"input":default:return B}},m=e.computed(()=>t.formColumns.map(l=>({...l,colSpan:{xs:l.xs??l.span??24,sm:l.sm??l.span??12,md:l.md??l.span??12,lg:l.lg??l.span??12,xl:l.xl??l.span??12}})));e.watch(()=>t.initialFormData,l=>{Object.keys(s).forEach(h=>{delete s[h]}),Object.assign(s,l)},{immediate:!0,deep:!0});const f=e.computed(()=>{const l={...t.rules};return Object.keys(l).length===0&&t.formColumns.length>0&&t.formColumns.forEach(h=>{if(h.required){const _=["select","date","daterange","datetime","datetimerange","cascader"].includes(h.type);l[h.prop]=[{required:!0,message:`请${_?"选择":"输入"}${h.label}`,trigger:_?"change":"blur"}]}}),l}),g=()=>{o.value&&o.value.validate(l=>{l&&a("submit",{...s})})},d=()=>{o.value&&o.value.resetFields(),a("reset")},C=l=>()=>Se(l,s,{})||null;return n({validate:()=>o.value?o.value.validate():Promise.resolve(!1),resetFields:()=>o.value&&o.value.resetFields(),getFormData:()=>({...s}),submitForm:g,resetForm:d}),{formRef:o,formData:s,formRules:f,submitForm:g,resetForm:d,processedColumns:m,getComponentType:r,getComponentProps:p,renderCustomItem:C}}}),De={class:"zxt-form-container"},Me={key:0,class:"form-label"},Ze={class:"form-control"};function Le(t,a,n,o,s,i){const r=e.resolveComponent("el-option"),p=e.resolveComponent("el-form-item"),m=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(m,e.mergeProps({key:C},{ref_for:!0},d.colSpan),{default:e.withCtx(()=>[e.createVNode(p,{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",Me,e.toDisplayString(d.label),1)):e.createCommentVNode("",!0),e.createElementVNode("div",Ze,[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":l=>t.formData[d.prop]=l},{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,(l,h)=>(e.openBlock(),e.createBlock(r,{key:h,label:l.label,value:l.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 L=T(Ne,[["render",Le],["__scopeId","data-v-0061cb38"]]),Oe=e.defineComponent({name:"ZxtGrid",inheritAttrs:!1,components:{ZxtTable:k,ZxtForm:L,Plus:le,Delete:ne,Refresh:H,Download:oe,Search:I,Edit:re,View:de,Upload:ie,Setting:se},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 o=e.useAttrs(),s=e.ref(null),i=e.ref(null),r=e.ref(null),p=e.ref(1),m=e.ref(10),f=e.ref([]),g=e.ref(t.gridOptions.formMode||!0),d={Plus:le,Delete:ne,Refresh:H,Download:oe,Search:I,Edit:re,View:de,Upload:ie,Setting:se},C=e.computed(()=>{const c=t.gridOptions.formConfig;if(!c||!c.items)return[];const V=[...c.items];return V.some($=>$.type==="slot"&&$.slotName==="search-actions")||V.push({type:"slot",slotName:"search-actions",span:6,labelWidth:"0px",isAction:!0,...c.actionConfig}),V}),l=()=>{r.value?.submitForm()},h=c=>{a("search-submit",c)},_=()=>{r.value?.resetForm()},B=()=>{a("search-reset"),setTimeout(()=>{r.value?.submitForm()},0)},U=c=>{if(c)return typeof c=="object"||typeof c=="function"?c:d[c]},G=e.computed(()=>{const{formConfig:c,toolbar:V,formMode:x,formColumns:$,rules:A,data:ae,...Ge}=t.gridOptions;return Ge}),S=e.computed(()=>t.externalData.length>0?t.externalData:t.gridOptions.data||[]),O=e.computed(()=>S.value.length),J=(c,V)=>{switch(a("toolbar-click",{code:c,button:V,grid:s.value}),c){case"add":W();break;case"delete":K();break;case"refresh":u();break;case"export":w();break}},W=()=>{g.value=!0},K=()=>{const c=s.value?.getTableRef()?.getSelectionRows?.()||[];if(c.length===0){y.ElMessage.warning("请先选择要删除的数据");return}y.ElMessage.success(`删除 ${c.length} 条数据`)},u=()=>{y.ElMessage.success("刷新数据"),s.value?.reload?.()},w=()=>{y.ElMessage.success("导出数据")},P=c=>{a("submit",c)},Q=()=>{a("reset")},X=()=>{g.value=!1},Y=c=>{p.value=c.page,a("page-change",c)},v=c=>{m.value=c.size,a("size-change",c)},ee=()=>s.value,te=()=>i.value,R=()=>s.value?.getTableRef()?.getSelectionRows?.()||[],z=c=>{f.value=c},Z=c=>{g.value=c};return e.watch(()=>t.gridOptions.formMode,c=>{c!==void 0&&(g.value=c)}),n({getGridRef:ee,getFormRef:te,getSelectedRows:R,reloadData:z,setFormVisible:Z}),{attrs:o,gridRef:s,formRef:i,searchFormRef:r,currentPage:p,pageSize:m,tableData:S,tableProps:G,total:O,isFormVisible:g,searchFormColumns:C,getIconComponent:U,handleToolbarClick:J,handleSubmit:P,handleFormReset:Q,handleFormCancel:X,handlePageChange:Y,handleSizeChange:v,handleSearch:l,handleSearchSubmit:h,handleReset:_,handleSearchReset:B,Search:I,Refresh:H}}}),xe={key:0,class:"grid-search-form"},Ae={class:"search-btn-group"},je={class:"grid-table-wrapper"},He={key:0,class:"grid-toolbar"};function Ie(t,a,n,o,s,i){const r=e.resolveComponent("el-button"),p=e.resolveComponent("ZxtForm"),m=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",xe,[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",Ae,[e.createVNode(r,{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(r,{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",He,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.gridOptions.toolbar.buttons,(f,g)=>(e.openBlock(),e.createBlock(r,{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(m,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 q=T(Oe,[["render",Ie],["__scopeId","data-v-a9c16b19"]]);E.install=function(t){t.component(E.name,E)};const qe=[N,D,k,q,L,E],Ue={install:t=>{qe.forEach(a=>{t.component(a.name,a)})},MyButton:N,JsxButton:D,ZxtTable:k,ZxtGrid:q,ZxtForm:L,ZxtPagination:E,renderer:k.renderer,registerRenderer:k.registerRenderer};b.JsxButton=D,b.MyButton=N,b.ZxtForm=L,b.ZxtGrid=q,b.ZxtPagination=E,b.ZxtTable=k,b.default=Ue,Object.defineProperties(b,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})}));
1
+ (function(b,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):(b=typeof globalThis<"u"?globalThis:b||self,e(b.ZxtTable={},b.Vue,b.ElementPlus))})(this,(function(b,e,y){"use strict";const T=(t,a)=>{const n=t.__vccOpts||t;for(const[o,s]of a)n[o]=s;return n},ce={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:o=>{a("click",o)}}}},pe=["disabled"];function me(t,a,n,o,s,i){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]=(...r)=>o.handleClick&&o.handleClick(...r))},[e.renderSlot(t.$slots,"default",{},void 0,!0)],10,pe)}const N=T(ce,[["render",me],["__scopeId","data-v-4480e77d"]]);N.install=function(t){t.component(N.name,N)};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 o=s=>{t.disabled||a("click",s)};return()=>e.createVNode("button",{class:["jsx-button",`jsx-button--${t.type}`,{"is-disabled":t.disabled}],disabled:t.disabled,onClick:o},[n.default?.()])}});D.install=function(t){t.component(D.name,D)};const fe=e.defineComponent({name:"ZxtPagination",components:{ElPagination:y.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),o=e.ref(t.pageSize);return e.watch(()=>t.modelValue,r=>{n.value=r}),e.watch(()=>t.pageSize,r=>{o.value=r}),{currentPage:n,pageSize:o,handleSizeChange:r=>{o.value=r,n.value=1,a("update:pageSize",r),a("size-change",{page:n.value,size:r})},handleCurrentChange:r=>{n.value=r,a("update:modelValue",r),a("page-change",{page:r,size:o.value})}}}});function ge(t,a,n,o,s,i){const r=e.resolveComponent("el-pagination");return e.openBlock(),e.createBlock(r,{"current-page":t.currentPage,"onUpdate:currentPage":a[0]||(a[0]=p=>t.currentPage=p),"page-size":t.pageSize,"onUpdate:pageSize":a[1]||(a[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=T(fe,[["render",ge],["__scopeId","data-v-497aa44d"]]),M={default:({cellValue:t})=>t??"",input:({cellValue:t,row:a,column:n,updateRow:o})=>e.h(y.ElInput,{modelValue:t,size:"small",onInput:s=>o({...a,[n.property]:s})}),select:({cellValue:t,row:a,column:n,updateRow:o,options:s=[]})=>e.h(y.ElSelect,{modelValue:t,size:"small",onChange:i=>o({...a,[n.property]:i})},()=>s.map(i=>e.h(y.ElOption,{label:i.label,value:i.value,key:i.value}))),checkbox:({cellValue:t,row:a,column:n,updateRow:o})=>e.h(y.ElCheckbox,{modelValue:!!t,onChange:s=>o({...a,[n.property]:s})}),link:({cellValue:t,href:a,target:n="_blank"})=>e.h(y.ElLink,{href:a,target:n},()=>t)};function ue(t,a){if(!t)return null;if(typeof t=="string"){const n=M[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:o={},attrs:s={},events:i={},content:r}=t;return typeof n=="string"&&M[n]?M[n]({...a,...o,...s,...i}):typeof n=="object"||typeof n=="function"?e.h(n,{...o,...s,...i},r):(console.warn("[ZxtTable] cellRender 对象缺少有效的 name 字段"),a.cellValue??"")}return a.cellValue??""}function he(t,a){M[t]&&console.warn(`[ZxtTable] 内置渲染器 ${t} 已被覆盖`),M[t]=a}const Ce=e.defineComponent({name:"ZxtTableColumn",components:{ElTableColumn:y.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=i=>{const{currentPage:r,pageSize:p}=t;return(r-1)*p+i+1},o=e.computed(()=>{const i=t.column;return{...i,prop:i.prop??i.field,label:i.label??i.title}});return{normalizedColumn:o,renderCell:i=>{const r=o.value,p=i.row[r.prop],m=p??r.defaultValue??"";return ue(r.cellRender,{row:i.row,column:r,rowIndex:i.$index,cellValue:m,updateRow:f=>a(f,i.$index)})},defaultIndexMethod:n}}});function be(t,a,n,o,s,i){const r=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.normalizedColumn,{key:t.normalizedColumn.prop+"-group"}),{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.normalizedColumn.children,(m,f)=>(e.openBlock(),e.createBlock(r,{key:f,column:m,"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(p,e.mergeProps({key:1},t.normalizedColumn,{key:t.normalizedColumn.prop,index:t.normalizedColumn.indexMethod||t.defaultIndexMethod}),e.createSlots({_:2},[["selection","index"].includes(t.normalizedColumn.type)?void 0:{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"}]),1040,["index"]))}const ye=T(Ce,[["render",be]]),ke=e.defineComponent({name:"ZxtTable",inheritAttrs:!1,components:{ZxtPagination:E,ZxtTableColumn:ye,ElTable:y.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),o=e.ref(t.pageSize),s=e.ref(t.currentPage),i=e.ref(!1),r=e.ref([]),p=e.ref(0),m=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),l=e.computed(()=>C.value?p.value:t.total>0?t.total:t.data.length),h=e.computed(()=>C.value?r.value:t.data),_=u=>{C.value&&(s.value=u.page,o.value=u.size,S()),a("size-change",u)},B=u=>{C.value&&(s.value=u.page,o.value=u.size,S()),a("page-change",u)},U=({prop:u,order:w})=>{m.value={prop:u,order:w},C.value&&S(),a("sort-change",{prop:u,order:w})},G=u=>{f.value=u||{},C.value&&S(),a("filter-change",f.value)},S=async()=>{if(!C.value)return;const u=t.proxyConfig||{},w=u.ajax?.query;if(typeof w!="function")return;const P=u.props||{},Q=P.pageField||"page",X=P.sizeField||"size",Y=P.sortField||"sort",v=P.orderField||"order",ee=P.filtersField||"filters",te=u.params||{},R={[Q]:s.value,[X]:o.value,...te};m.value?.prop&&(R[Y]=m.value.prop,R[v]=m.value.order),f.value&&Object.keys(f.value).length&&(R[ee]=f.value),i.value=!0;try{const z=await w(R),Z=u.response||{},c=Z.listField||"list",V=Z.totalField||"total",x=Z.transform;let $=[],A=0;if(typeof x=="function"){const ae=x(z);$=ae?.list??[],A=ae?.total??0}else z&&typeof z=="object"&&($=z?.[c]??z?.data??[],A=z?.[V]??z?.total??0);r.value=Array.isArray($)?$:[],p.value=Number(A)||0,a("loaded",{data:r.value,total:p.value,payload:R})}catch(z){a("load-error",z)}finally{i.value=!1}},O=(u,w)=>{C.value?r.value.splice(w,1,u):a("update:row",{index:w,row:u})};e.provide("updateRow",O),e.onMounted(()=>{C.value&&S()});const J=()=>n.value,W=()=>n.value?.getSelectionRows?.()||[],K=()=>S();return{tableRef:n,containerStyle:g,tableHeight:d,getTableRef:J,pageSize:o,currentPage:s,loading:i,renderData:h,total:l,pageSizes:e.computed(()=>t.pageSizes),paginationLayout:e.computed(()=>t.paginationLayout),handleSizeChange:_,handlePageChange:B,handleSortChange:U,handleFilterChange:G,reload:K,getSelectedRows:W,updateRow:O}}});function ze(t,a,n,o,s,i){const r=e.resolveComponent("ZxtTableColumn"),p=e.resolveComponent("el-table"),m=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(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,d)=>(e.openBlock(),e.createBlock(r,{key:d,column:g,"current-page":t.currentPage,"page-size":t.pageSize},e.createSlots({_:2},[e.renderList(t.$slots,(C,l)=>({name:l,fn:e.withCtx(h=>[e.renderSlot(t.$slots,l,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(m,{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 k=T(ke,[["render",ze],["__scopeId","data-v-421a4654"]]),F=new Map;class we{add(a,n){return!a||typeof a!="string"?(console.warn("[ZxtTable] 渲染器名称必须是字符串"),this):!n||typeof n!="object"?(console.warn("[ZxtTable] 渲染器配置必须是对象"),this):(F.has(a)&&console.warn(`[ZxtTable] 渲染器 "${a}" 已存在,将被覆盖`),F.set(a,n),this)}get(a){return F.get(a)}delete(a){return F.delete(a)}has(a){return F.has(a)}getAll(){return Array.from(F.keys())}clear(){F.clear()}}const j=new we;function Se(t,a,n={}){if(!t||!t.itemRender)return null;const{name:o}=t.itemRender;if(o&&j.has(o)){const s=j.get(o);if(typeof s.renderItemContent=="function"){const i={data:a,field:t.field||t.prop,item:t,formData:a};try{return s.renderItemContent(n,i)}catch(r){return console.error(`[ZxtTable] 渲染器 "${o}" 执行出错:`,r),null}}}return null}k.install=function(t){t.component(k.name,k)},k.registerRenderer=he,k.renderer=j;var _e=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"})]))}}),ne=_e,Be=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"})]))}}),oe=Be,Ve=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"})]))}}),re=Ve,$e=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"})]))}}),le=$e,Ee=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"})]))}}),H=Ee,Fe=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"})]))}}),I=Fe,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"})]))}}),se=Pe,Re=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"})]))}}),ie=Re,Te=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"})]))}}),de=Te;const Ne=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 o=e.ref(null),s=e.reactive({}),i={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=l=>i[l]||"el-input",p=l=>{const h=l.type||"input",_=["select","date","daterange","datetime","datetimerange","cascader"].includes(h),B={placeholder:l.placeholder||`请${_?"选择":"输入"}${l.label}`,disabled:l.disabled,style:"width: 100%","popper-class":"zxt-form-popper"};switch(h){case"date":case"daterange":case"datetime":case"datetimerange":return{...B,type:l.dateType||h,startPlaceholder:l.startPlaceholder||"开始日期",endPlaceholder:l.endPlaceholder||"结束日期",format:l.format,valueFormat:l.valueFormat};case"cascader":return{...B,options:l.options,props:l.cascaderProps,clearable:l.clearable!==!1};case"select":return B;case"input":default:return B}},m=e.computed(()=>t.formColumns.map(l=>({...l,colSpan:{xs:l.xs??l.span??24,sm:l.sm??l.span??12,md:l.md??l.span??12,lg:l.lg??l.span??12,xl:l.xl??l.span??12}})));e.watch(()=>t.initialFormData,l=>{Object.keys(s).forEach(h=>{delete s[h]}),Object.assign(s,l)},{immediate:!0,deep:!0});const f=e.computed(()=>{const l={...t.rules};return Object.keys(l).length===0&&t.formColumns.length>0&&t.formColumns.forEach(h=>{if(h.required){const _=["select","date","daterange","datetime","datetimerange","cascader"].includes(h.type);l[h.prop]=[{required:!0,message:`请${_?"选择":"输入"}${h.label}`,trigger:_?"change":"blur"}]}}),l}),g=()=>{o.value&&o.value.validate(l=>{l&&a("submit",{...s})})},d=()=>{o.value&&o.value.resetFields(),a("reset")},C=l=>()=>Se(l,s,{})||null;return n({validate:()=>o.value?o.value.validate():Promise.resolve(!1),resetFields:()=>o.value&&o.value.resetFields(),getFormData:()=>({...s}),submitForm:g,resetForm:d}),{formRef:o,formData:s,formRules:f,submitForm:g,resetForm:d,processedColumns:m,getComponentType:r,getComponentProps:p,renderCustomItem:C}}}),De={class:"zxt-form-container"},Me={key:0,class:"form-label"},Ze={class:"form-control"};function Le(t,a,n,o,s,i){const r=e.resolveComponent("el-option"),p=e.resolveComponent("el-form-item"),m=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(m,e.mergeProps({key:C},{ref_for:!0},d.colSpan),{default:e.withCtx(()=>[e.createVNode(p,{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",Me,e.toDisplayString(d.label),1)):e.createCommentVNode("",!0),e.createElementVNode("div",Ze,[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":l=>t.formData[d.prop]=l},{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,(l,h)=>(e.openBlock(),e.createBlock(r,{key:h,label:l.label,value:l.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 L=T(Ne,[["render",Le],["__scopeId","data-v-9c337267"]]),Oe=e.defineComponent({name:"ZxtGrid",inheritAttrs:!1,components:{ZxtTable:k,ZxtForm:L,Plus:le,Delete:ne,Refresh:H,Download:oe,Search:I,Edit:re,View:de,Upload:ie,Setting:se},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 o=e.useAttrs(),s=e.ref(null),i=e.ref(null),r=e.ref(null),p=e.ref(1),m=e.ref(10),f=e.ref([]),g=e.ref(t.gridOptions.formMode||!0),d={Plus:le,Delete:ne,Refresh:H,Download:oe,Search:I,Edit:re,View:de,Upload:ie,Setting:se},C=e.computed(()=>{const c=t.gridOptions.formConfig;if(!c||!c.items)return[];const V=[...c.items];return V.some($=>$.type==="slot"&&$.slotName==="search-actions")||V.push({type:"slot",slotName:"search-actions",span:6,labelWidth:"0px",isAction:!0,...c.actionConfig}),V}),l=()=>{r.value?.submitForm()},h=c=>{a("search-submit",c)},_=()=>{r.value?.resetForm()},B=()=>{a("search-reset"),setTimeout(()=>{r.value?.submitForm()},0)},U=c=>{if(c)return typeof c=="object"||typeof c=="function"?c:d[c]},G=e.computed(()=>{const{formConfig:c,toolbar:V,formMode:x,formColumns:$,rules:A,data:ae,...Ge}=t.gridOptions;return Ge}),S=e.computed(()=>t.externalData.length>0?t.externalData:t.gridOptions.data||[]),O=e.computed(()=>S.value.length),J=(c,V)=>{switch(a("toolbar-click",{code:c,button:V,grid:s.value}),c){case"add":W();break;case"delete":K();break;case"refresh":u();break;case"export":w();break}},W=()=>{g.value=!0},K=()=>{const c=s.value?.getTableRef()?.getSelectionRows?.()||[];if(c.length===0){y.ElMessage.warning("请先选择要删除的数据");return}y.ElMessage.success(`删除 ${c.length} 条数据`)},u=()=>{y.ElMessage.success("刷新数据"),s.value?.reload?.()},w=()=>{y.ElMessage.success("导出数据")},P=c=>{a("submit",c)},Q=()=>{a("reset")},X=()=>{g.value=!1},Y=c=>{p.value=c.page,a("page-change",c)},v=c=>{m.value=c.size,a("size-change",c)},ee=()=>s.value,te=()=>i.value,R=()=>s.value?.getTableRef()?.getSelectionRows?.()||[],z=c=>{f.value=c},Z=c=>{g.value=c};return e.watch(()=>t.gridOptions.formMode,c=>{c!==void 0&&(g.value=c)}),n({getGridRef:ee,getFormRef:te,getSelectedRows:R,reloadData:z,setFormVisible:Z}),{attrs:o,gridRef:s,formRef:i,searchFormRef:r,currentPage:p,pageSize:m,tableData:S,tableProps:G,total:O,isFormVisible:g,searchFormColumns:C,getIconComponent:U,handleToolbarClick:J,handleSubmit:P,handleFormReset:Q,handleFormCancel:X,handlePageChange:Y,handleSizeChange:v,handleSearch:l,handleSearchSubmit:h,handleReset:_,handleSearchReset:B,Search:I,Refresh:H}}}),xe={key:0,class:"grid-search-form"},Ae={class:"search-btn-group"},je={class:"grid-table-wrapper"},He={key:0,class:"grid-toolbar"};function Ie(t,a,n,o,s,i){const r=e.resolveComponent("el-button"),p=e.resolveComponent("ZxtForm"),m=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",xe,[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",Ae,[e.createVNode(r,{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(r,{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",He,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.gridOptions.toolbar.buttons,(f,g)=>(e.openBlock(),e.createBlock(r,{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(m,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 q=T(Oe,[["render",Ie],["__scopeId","data-v-a7b1f516"]]);E.install=function(t){t.component(E.name,E)};const qe=[N,D,k,q,L,E],Ue={install:t=>{qe.forEach(a=>{t.component(a.name,a)})},MyButton:N,JsxButton:D,ZxtTable:k,ZxtGrid:q,ZxtForm:L,ZxtPagination:E,renderer:k.renderer,registerRenderer:k.registerRenderer};b.JsxButton=D,b.MyButton=N,b.ZxtForm=L,b.ZxtGrid=q,b.ZxtPagination=E,b.ZxtTable=k,b.default=Ue,Object.defineProperties(b,{__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.3.7",
4
+ "version": "0.3.9",
5
5
  "type": "module",
6
6
  "description": "一个基于 Vue 3 和 Element Plus 的高级表格、表单组件库",
7
7
  "keywords": [
@@ -34,6 +34,11 @@
34
34
  "README.md",
35
35
  "resolver.js"
36
36
  ],
37
+ "scripts": {
38
+ "dev": "vite",
39
+ "build": "vite build",
40
+ "preview": "vite preview"
41
+ },
37
42
  "peerDependencies": {
38
43
  "element-plus": "^2.0.0",
39
44
  "vue": "^3.2.0"
@@ -52,10 +57,5 @@
52
57
  },
53
58
  "dependencies": {
54
59
  "@element-plus/icons-vue": "^2.3.2"
55
- },
56
- "scripts": {
57
- "dev": "vite",
58
- "build": "vite build",
59
- "preview": "vite preview"
60
60
  }
61
- }
61
+ }