element-plus-suite 0.0.4 → 0.0.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.cjs +1 -1
- package/dist/index.js +189 -186
- package/package.json +1 -1
package/dist/index.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const n=require("vue"),i=require("element-plus");function Fe(t){return typeof t=="function"?t():t??[]}function Y(t,l){return(r,{slots:u={}})=>{const{options:p,props:v={},slots:s={},...a}=r,f=v.label??"label",g=v.value??"value",b=v.disabled??"disabled";return n.h(t,a,{...u,default:u.default??(()=>Fe(p).map(c=>n.h(l,{label:c[f],value:c[g],disabled:c[b]},typeof c.slots=="function"?c.slots:s[c.slots])))})}}function Me(t,{slots:l}){return n.h(i.ElInput,{...t,type:"password"},l)}function je(t,{slots:l}){const{modelValue:r,"onUpdate:modelValue":u,...p}=t;return n.h(i.ElUpload,{...p,fileList:r,"onUpdate:fileList":u},{...l,default:l.default??(()=>n.h(i.ElButton,{type:"primary",plain:!0},()=>"选择文件"))})}const Te={input:i.ElInput,password:Me,number:i.ElInputNumber,select:Y(i.ElSelect,i.ElOption),selectV2:i.ElSelectV2,radio:Y(i.ElRadioGroup,i.ElRadio),checkbox:Y(i.ElCheckboxGroup,i.ElCheckbox),date:i.ElDatePicker,time:i.ElTimePicker,timeSelect:i.ElTimeSelect,autocomplete:i.ElAutocomplete,cascader:i.ElCascader,inputTag:i.ElInputTag,rate:i.ElRate,slider:i.ElSlider,switch:i.ElSwitch,tree:i.ElTreeSelect,transfer:i.ElTransfer,upload:je,mention:i.ElMention};function qe(t){return t.type&&typeof t.type!="string"?t.type:Te[t.type||"input"]??i.ElInput}const xe=["key","label","type","style","rules","col","hidden","labelWidth","slot","defaultValue","formItemProps","fieldProps","children","separator"];function ze(t){["select","selectV2","cascader","autocomplete","tree"].includes(t.type);const l=new Set(xe);return{clearable:!0,...Object.fromEntries(Object.entries(t).filter(([u])=>!l.has(u))),...t.fieldProps??{}}}function D(t){return typeof t=="number"?{span:t}:t??{}}function oe(t,l){return{span:24,...D(l.col),...D(t.col)}}function A(t){const l=t.flatMap(r=>{const u=r.key&&!r.children?.length?[[r.key,r.defaultValue]]:[],p=A(r.children??[]);return[...u,...Object.entries(p)]});return Object.fromEntries(l)}function Ae(t){return t!=null&&typeof t=="object"}const ae={form:{submitText:"提交"},search:{submitText:"查询"}},Ve={submit:!0,reset:!0,cancel:!1};function re(t,l){return Object.fromEntries(Object.entries(t).filter(([r])=>!l.includes(r)))}const H=n.defineComponent({name:"ElFormPro",props:{schema:{type:Array,default:()=>[]},modelValue:{type:Object,default:void 0},formConfig:{type:Object,default:()=>({})},collapsible:{type:Boolean,default:!1},searchMode:{type:Boolean,default:!1}},emits:{"update:modelValue":t=>!0,submit:t=>!0,reset:t=>!0,cancel:()=>!0,change:t=>!0},setup(t,{emit:l,expose:r,slots:u}){const p=n.shallowRef(),v=n.shallowRef(typeof window>"u"?0:window.innerWidth),s=n.shallowRef(t.collapsible&&!(t.formConfig?.collapsed??!0)),a=n.reactive({...t.formConfig});n.watch(()=>t.formConfig,e=>{Object.assign(a,e)},{deep:!0}),n.watch(()=>t.formConfig?.collapsed,e=>{t.collapsible&&(s.value=!(e??!0))});const f=n.reactive(A(t.schema)),g=n.computed(()=>Ae(t.modelValue)),b=n.computed({get:()=>g.value?t.modelValue:f,set:e=>{if(g.value){l("update:modelValue",e);return}for(const o of Object.keys(f))delete f[o];Object.assign(f,e),l("update:modelValue",e)}});n.watch(()=>t.schema,e=>{if(!g.value){for(const o of Object.keys(f))delete f[o];Object.assign(f,A(e))}},{deep:!0});const c=n.computed(()=>t.schema.filter(e=>!e.hidden)),w=[{key:"sm",min:768},{key:"md",min:992},{key:"lg",min:1200},{key:"xl",min:1920}],C=(e,o)=>{let h=e.base||e.xs||"top";if(o<768)return e.xs||h;for(const m of w){if(o<m.min)break;h=e[m.key]||h}return h},_=n.computed(()=>{const e=a.labelPosition;return typeof e=="string"?e:C(e||{base:"top",md:"right"},v.value)}),P=e=>typeof e=="number"?e:e?.span,R=(e,o)=>{let h=P(e.span)??24;for(const m of w){if(o<m.min)break;const E=P(e[m.key]);E!==void 0&&(h=E)}return Math.min(24,h)},V=e=>R(oe(e,a),v.value),q=(e,o)=>{const h=e%24;return h&&24-h<o&&(e+=24-h),e+o},I=n.computed(()=>!!u.buttons||a.buttons?.submit!==!1||a.buttons?.reset!==!1||a.buttons?.cancel!==void 0&&a.buttons.cancel!==!1),B=e=>{if(a.actionCol!==void 0)return R(D(a.actionCol),v.value);const o=e?24-e:0;return o>=4?o:24},U=e=>{const o=e*24;let h=0,m=0;for(const E of c.value){const k=q(h,V(E));if(k>o)break;const T=I.value?q(k,B(k)):k;if(m>0&&T>o)break;h=k,m+=1}return Math.max(1,m)},F=n.computed(()=>!t.collapsible||!a.showCollapseButton?c.value.length:a.collapseCount!==void 0?a.collapseCount:U(a.collapseRows??1)),x=n.computed(()=>s.value?c.value:c.value.slice(0,F.value)),M=n.computed(()=>{let e=0;for(const o of x.value)e=q(e,V(o));return e%24}),W=n.computed(()=>B(M.value)),N=n.computed(()=>M.value>0&&M.value+W.value<=24),d=n.computed(()=>_.value==="top"&&N.value),y=n.computed(()=>{if(a.actionCol!==void 0)return{span:24,...D(a.actionCol)};const e=M.value,o=e?24-e:0;return{span:o>=4?o:24}}),S=n.computed(()=>{const e={submit:{type:"primary",text:t.searchMode?ae.search.submitText:ae.form.submitText,disabled:!1,loading:!1},reset:{plain:!0,text:"重置",disabled:!1},cancel:{plain:!0,text:"取消",disabled:!1}},o=h=>{const m=a.buttons?.[h];return m===!1||m===void 0&&!Ve[h]?null:{...e[h],...m??{}}};return{submit:o("submit"),reset:o("reset"),cancel:o("cancel")}}),j=n.computed(()=>Object.values(S.value).some(Boolean)),ve=n.computed(()=>{const e=a.buttonAlign??"right";return e==="start"?"is-start":e==="center"?"is-center":"is-end"}),he=e=>oe(e,a),ge=(e,o)=>{const h={...b.value,[e]:o};b.value=h,l("change",h)},be=e=>Array.isArray(e)?e:e?[e]:[],me=e=>{const o=[],h=m=>{for(const E of m)E.hidden||(E.children?.length?h(E.children):o.push(E))};return h(e.children??[]),o},ye=e=>be(e).some(o=>o?.required),we=e=>me(e).some(o=>ye(o.rules)),K=(e,o)=>e?n.h(i.ElButton,{...re(e,["text"]),onClick:o},()=>e.text):null,$=e=>{const o=u[e.slot??e.key??""];if(o)return o({item:e,model:b.value});const h=qe(e);if(n.isVNode(h))return h;const{slots:m,...E}=ze(e),k=Object.fromEntries(Object.entries(m??{}).flatMap(([T,z])=>{const O=typeof z=="function"?z:u[String(z)];return O?[[T,(L={})=>O({...L,item:e,model:b.value})]]:[]}));return n.h(h,{...E,modelValue:e.key==null?void 0:b.value[e.key],"onUpdate:modelValue":T=>{e.key!=null&&ge(e.key,T)}},k)},J=e=>typeof e.label=="function"?e.label():e.label,Pe=e=>{const o=_.value;return n.h("div",{class:["el-form-item",`el-form-item--label-${o}`,"el-form-pro__group",{"is-required":e.formItemProps?.required??we(e)}],style:e.style},[e.label?n.h("div",{class:"el-form-item__label",style:o==="top"?void 0:{width:e.labelWidth??a.labelWidth}},[J(e)]):null,n.h("div",{class:"el-form-item__content"},[X(e)])])},Se=e=>e.children?.length?X(e):n.h(i.ElFormItem,{...e.formItemProps??{},prop:e.key,rules:e.rules,labelWidth:e.labelWidth??a.labelWidth,class:[e.formItemProps?.class,"el-form-pro__child"],style:e.style},{default:()=>$(e)}),X=e=>e.children?.length?n.h("div",{class:"el-form-pro__children"},e.children.filter(o=>!o.hidden).flatMap((o,h)=>{const m=n.h("div",{class:"el-form-pro__child-wrapper",key:o.key},[Se(o)]);return h===0?[m]:[n.h("span",{class:"el-form-pro__separator"},e.separator??""),m]})):$(e),Z=async()=>{t.collapsible&&(s.value=!0),await n.nextTick(),p.value?.$el?.querySelector(".is-error")?.scrollIntoView({behavior:"smooth",block:"center"})},ee=(...e)=>p.value?.validate(...e),Ee=(...e)=>p.value?.validateField(...e),te=async()=>{try{await ee(),l("submit",b.value)}catch{Z()}},Ce=e=>{const o=A(t.schema),h=e==null?null:new Set(Array.isArray(e)?e:[e]),m={},E=(k,T=!1,z=!1)=>{for(const O of k){const L=T||h===null||h.has(O.key);O.children?.length?E(O.children,L,!0):z&&L&&O.key!=null&&(m[O.key]=o[O.key])}};return E(t.schema),m},ne=(...e)=>{p.value?.resetFields(...e);const o=Ce(e[0]);return Object.keys(o).length&&(b.value={...b.value,...o}),{...b.value,...o}},ke=()=>{const e=ne();l("reset",e)},Oe=()=>l("cancel"),_e=e=>{Object.assign(a,e)},Re=()=>b.value,G=()=>{p.value?.$el,typeof window<"u"&&(v.value=window.innerWidth)},Q=typeof ResizeObserver>"u"?null:new ResizeObserver(G);n.watch(()=>p.value?.$el,e=>{Q?.disconnect(),e&&Q?.observe(e),G()},{flush:"post"});const le=()=>{typeof window<"u"&&(v.value=window.innerWidth),G()};return typeof window<"u"&&window.addEventListener("resize",le),n.onBeforeUnmount(()=>{Q?.disconnect(),typeof window<"u"&&window.removeEventListener("resize",le)}),r({validate:(...e)=>ee(...e),validateField:(...e)=>Ee(...e),resetFields:(...e)=>{ne(...e)},clearValidate:(...e)=>{p.value?.clearValidate(...e)},scrollToError:Z,setState:_e,getValues:Re}),()=>{const e={...re(a,["buttonAlign","buttons","row","col","showCollapseButton","collapseRows","collapseCount","collapsed","actionCol"])};return n.h(i.ElForm,{...e,class:["el-form-pro",e.class].filter(Boolean),labelPosition:_.value,ref:p,model:b.value,onSubmit:o=>{o.preventDefault(),te()}},{default:()=>[n.h(i.ElRow,{gutter:18,...a.row??{}},{default:()=>[...x.value.map(o=>n.h(i.ElCol,{...he(o),key:o.key??o.children?.[0]?.key},{default:()=>o.children?.length?Pe(o):n.h(i.ElFormItem,{...o.formItemProps??{},label:typeof o.label=="function"?void 0:o.label,labelWidth:o.labelWidth??a.labelWidth,prop:o.key,rules:o.rules,class:o.formItemProps?.class,style:o.style},{...typeof o.label=="function"?{label:()=>J(o)}:{},default:()=>$(o)})})),j.value&&c.value.length?n.h(i.ElCol,y.value,{default:()=>n.h(i.ElFormItem,null,{...d.value?{label:()=>n.h("label",{class:"el-form-pro__actions-label"})}:{},default:()=>n.h("div",{class:["el-form-pro__actions",ve.value]},[u.buttons?u.buttons():[K(S.value.submit,()=>{te()}),K(S.value.reset,ke),K(S.value.cancel,Oe)],t.collapsible&&a.showCollapseButton&&c.value.length>F.value?n.h(i.ElButton,{type:"primary",link:!0,onClick:()=>{s.value=!s.value}},()=>s.value?"收起":"展开"):null])})}):null]})]})}}});function se(t,l){return t.flatMap(r=>{if(r.visible===!1)return[];const{visible:u,slot:p,headerSlot:v,render:s,headerRender:a,autoMerge:f,children:g,...b}=r,c={...b},w={},C=p?l[p]:void 0,_=v?l[v]:void 0;if(C?w.default=C:s&&(w.default=P=>s({row:P.row,column:P.column,$index:P.$index})),_?w.header=_:a&&(w.header=P=>a({column:P.column,$index:P.$index,store:P.store,_self:P._self})),g?.length){const P={default:()=>se(g,l)};return w.header&&(P.header=w.header),[n.h(i.ElTableColumn,c,P)]}return[n.h(i.ElTableColumn,c,Object.keys(w).length?w:void 0)]})}function ue(t){return t.prop??t.property}function Ie(t,l){if(t===null||typeof t!="object")return;const r=t;if(Object.prototype.hasOwnProperty.call(r,l))return r[l];if(!l.includes("."))return;let u=r;for(const p of l.split(".")){if(u===null||typeof u!="object")return;u=u[p]}return u}function ce(t){return t.flatMap(l=>l.visible===!1?[]:l.children?.length?ce(l.children):[l])}function Be(t,l=[]){const r=ce(t),u=new Map;for(const a of r){const f=ue(a);f&&!u.has(f)&&u.set(f,a)}const p=new Set,v=[],s=a=>{!a||p.has(a)||!u.has(a)||(p.add(a),v.push({key:a,getValue:f=>Ie(f,a)}))};return l.forEach(s),r.forEach(a=>{a.autoMerge&&s(ue(a))}),v}function Le(t,l){const r=t.length,u=new Map(l.map(s=>[s.key,Array.from({length:r},()=>1)]));if(!r||!l.length)return u;const p=t.map(s=>l.map(a=>a.getValue(s))),v=l.map(()=>0);for(let s=1;s<=r;s+=1){let a=!0;for(let f=0;f<l.length;f+=1){const g=s<r&&a&&p[s][f]===p[s-1][f];if(!g){const b=u.get(l[f].key),c=v[f],w=s-c;b[c]=w;for(let C=c+1;C<s;C+=1)b[C]=0;v[f]=s}a=g}}return u}function De(t,l="children"){return t.some(r=>{if(r===null||typeof r!="object")return!1;const u=r[l];return Array.isArray(u)&&u.length>0})}function Ue(t){const l=n.computed(()=>Be(t.columns(),t.mergeFields())),r=n.computed(()=>l.value.length?t.tableRef.value?.store?.states?.data?.value??t.data.value:t.data.value),u=n.computed(()=>{if(!l.value.length||t.lazy())return new Map;const v=t.treeProps()?.children??"children",s=r.value;return De(s,v)?new Map:Le(s,l.value)});return{spanMethod:n.computed(()=>{const v=t.userSpanMethod();return l.value.length?s=>{const a=v?.(s);if(a!==void 0)return a;const f=s.column.property,g=f?u.value.get(f)?.[s.rowIndex]:void 0;if(!(g===void 0||g===1))return{rowspan:g,colspan:1}}:v}),spanMap:u}}const ie={page:1,pageSize:20,pageSizes:[10,20,50,100],pagerCount:5,layout:"total, sizes, prev, pager, next, jumper",background:!0};function de(t){return t===!1?null:{...ie,...t===!0?{}:t??{}}}function We(t){const l=n.computed(()=>de(t())),r=n.shallowRef(l.value?.page??1),u=n.shallowRef(l.value?.pageSize??20);n.watch(()=>l.value?.page,a=>{a!==void 0&&(r.value=a)}),n.watch(()=>l.value?.pageSize,a=>{a!==void 0&&(u.value=a)});const p=n.computed(()=>l.value?r.value:null),v=n.computed(()=>l.value?u.value:null);function s(a){u.value=a,r.value=1}return{enabled:n.computed(()=>l.value!=null),config:l,currentPage:r,pageSize:u,requestPage:p,requestPageSize:v,setPageSize:s}}function Ne(t){const l=n.shallowRef(!1);let r=null,u=0;async function p(){const s=t.request();if(!s)return;r?.abort(),r=new AbortController;const a=++u,f=r;l.value=!0;try{const g=await s({page:t.page(),pageSize:t.pageSize(),query:t.query(),signal:f.signal});if(f.signal.aborted||a!==u)return;t.onData?.(g),t.onLoaded?.(g)}catch(g){if(f.signal.aborted||a!==u)return;t.onError?.(g)}finally{a===u&&(l.value=!1)}}function v(){r?.abort(),u+=1,l.value=!1}return n.onBeforeUnmount(v),{loading:l,load:p,cancel:v}}const fe=n.defineComponent({name:"ElTablePro",inheritAttrs:!1,props:{columns:{type:Array,default:()=>[]},request:{type:Function,default:void 0},pagination:{type:[Boolean,Object],default:!0},mergeFields:{type:Array,default:()=>[]},query:{type:Object,default:void 0},filter:{type:Object,default:void 0},data:{type:Array,default:()=>[]},rowKey:{type:[String,Function],required:!0}},emits:{loaded:t=>!0,error:t=>!0},setup(t,{attrs:l,emit:r,expose:u}){const p=n.useSlots(),v=n.shallowRef(null),s=n.shallowRef([]),a=n.shallowRef(0),f=n.computed(()=>({...A(t.filter?.schema??[]),...t.filter?.defaultValue??{},...t.filter?.model??{}})),g=n.reactive({...f.value}),b=n.shallowRef({...f.value,...t.query??{}});n.watch(()=>t.query,d=>{b.value={...f.value,...d??{}},t.request&&R()},{deep:!0}),n.watch(()=>t.filter?.model,d=>{for(const y of Object.keys(g))delete g[y];Object.assign(g,f.value,d??{})},{deep:!0});const c=We(()=>t.pagination);let w=!1;function C(d){d!==c.currentPage.value&&(c.enabled.value&&(w=!0),c.currentPage.value=d)}const _=n.computed(()=>{const d=t.rowKey;return typeof d=="function"?y=>String(d(y)):d}),{loading:P,load:R,cancel:V}=Ne({request:()=>t.request,page:()=>c.requestPage.value,pageSize:()=>c.requestPageSize.value,query:()=>b.value,onData:d=>{s.value=d.data,a.value=d.total},onLoaded:d=>r("loaded",d),onError:d=>r("error",d)}),q=n.computed(()=>P.value),I=n.computed(()=>{if(t.request)return s.value;if(!t.data)return[];if(!c.config.value)return t.data;const d=(c.currentPage.value-1)*c.pageSize.value;return t.data.slice(d,d+c.pageSize.value)}),B=n.computed(()=>t.request?a.value:t.data?.length??0),{spanMethod:U}=Ue({tableRef:v,columns:()=>t.columns,data:I,mergeFields:()=>t.mergeFields,userSpanMethod:()=>l.spanMethod,treeProps:()=>l.treeProps,lazy:()=>!!l.lazy});async function F(d){d?.page!==void 0&&C(d.page),await R()}async function x(){b.value={...g},C(1),await R()}async function M(){const d={...f.value};for(const y of Object.keys(g))delete g[y];Object.assign(g,d),b.value={...d},C(1),await R()}n.watch(()=>t.request,d=>{s.value=[],a.value=0,d?F():V()}),n.watch(()=>[c.requestPage.value,c.requestPageSize.value],()=>{if(w){w=!1;return}t.request&&F()});const W=new Proxy({},{get(d,y){if(y==="reload")return F;if(y==="search")return x;if(y==="resetFilter")return M;const S=v.value;if(!S)return;const j=S[y];return typeof j=="function"?j.bind(S):j},has(d,y){return y==="reload"||y==="search"||y==="resetFilter"?!0:v.value!=null&&y in v.value}});u(W),n.onMounted(()=>{t.request&&F()});const N=()=>Object.fromEntries(Object.entries(p).filter(([d])=>d.startsWith("filter-")).map(([d,y])=>[d.slice(7),y]));return()=>{const d=t.filter?n.h(H,{schema:t.filter.schema,modelValue:g,collapsible:!0,searchMode:!0,formConfig:{...t.filter.formConfig?.showCollapseButton?{collapseRows:1}:{},...t.filter.formConfig??{}},"onUpdate:modelValue":S=>{for(const j of Object.keys(g))delete g[j];Object.assign(g,S)},onSubmit:()=>{x()},onReset:()=>{M()}},N()):null,y=n.h(i.ElTable,{...l,ref:v,data:I.value,rowKey:_.value,spanMethod:U.value},{default:()=>se(t.columns,p),empty:p.empty,append:p.append});return n.h("div",{class:"el-table-pro"},[d,n.withDirectives(y,[[i.vLoading,q.value]]),c.enabled.value?n.h(i.ElPagination,{currentPage:c.currentPage.value,pageSize:c.pageSize.value,total:B.value,pageSizes:[...c.config.value?.pageSizes??[]],pagerCount:c.config.value?.pagerCount,layout:c.config.value?.layout,background:c.config.value?.background,"onUpdate:currentPage":S=>{c.currentPage.value=S},"onUpdate:pageSize":S=>{c.setPageSize(S)}}):null])}}}),Ke=[H,fe];function pe(t){Ke.forEach(l=>{const r=l.name;r&&t.component(r,l)})}const $e={install:pe};exports.ElFormPro=H;exports.ElTablePro=fe;exports.TABLE_PRO_DEFAULT_PAGINATION=ie;exports.default=$e;exports.install=pe;exports.normalizePagination=de;
|
|
1
|
+
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const n=require("vue"),c=require("element-plus");function Fe(t){return typeof t=="function"?t():t??[]}function Y(t,l){return(r,{slots:u={}})=>{const{options:p,props:h={},slots:s={},...a}=r,f=h.label??"label",g=h.value??"value",b=h.disabled??"disabled";return n.h(t,a,{...u,default:u.default??(()=>Fe(p).map(i=>n.h(l,{label:i[f],value:i[g],disabled:i[b]},typeof i.slots=="function"?i.slots:s[i.slots])))})}}function Me(t,{slots:l}){return n.h(c.ElInput,{...t,type:"password"},l)}function qe(t,{slots:l}){const{modelValue:r,"onUpdate:modelValue":u,...p}=t;return n.h(c.ElUpload,{...p,fileList:r,"onUpdate:fileList":u},{...l,default:l.default??(()=>n.h(c.ElButton,{type:"primary",plain:!0},()=>"选择文件"))})}const je={input:c.ElInput,password:Me,number:c.ElInputNumber,select:Y(c.ElSelect,c.ElOption),selectV2:c.ElSelectV2,radio:Y(c.ElRadioGroup,c.ElRadio),checkbox:Y(c.ElCheckboxGroup,c.ElCheckbox),date:c.ElDatePicker,time:c.ElTimePicker,timeSelect:c.ElTimeSelect,autocomplete:c.ElAutocomplete,cascader:c.ElCascader,inputTag:c.ElInputTag,rate:c.ElRate,slider:c.ElSlider,switch:c.ElSwitch,tree:c.ElTreeSelect,transfer:c.ElTransfer,upload:qe,mention:c.ElMention};function Te(t){return t.type&&typeof t.type!="string"?t.type:je[t.type||"input"]??c.ElInput}const Ae=["key","label","type","style","rules","col","hidden","labelWidth","slot","defaultValue","formItemProps","fieldProps","children","separator"];function xe(t){["select","selectV2","cascader","autocomplete","tree"].includes(t.type);const l=new Set(Ae);return{clearable:!0,...Object.fromEntries(Object.entries(t).filter(([u])=>!l.has(u))),...t.fieldProps??{}}}function D(t){return typeof t=="number"?{span:t}:t??{}}function oe(t,l){return{span:24,...D(l.col),...D(t.col)}}function z(t){const l=t.flatMap(r=>{const u=r.key&&!r.children?.length?[[r.key,r.defaultValue]]:[],p=z(r.children??[]);return[...u,...Object.entries(p)]});return Object.fromEntries(l)}function ze(t){return t!=null&&typeof t=="object"}const ae={form:{submitText:"提交"},search:{submitText:"查询"}},Ve={submit:!0,reset:!0,cancel:!1};function re(t,l){return Object.fromEntries(Object.entries(t).filter(([r])=>!l.includes(r)))}const H=n.defineComponent({name:"ElFormPro",props:{schema:{type:Array,default:()=>[]},modelValue:{type:Object,default:void 0},formConfig:{type:Object,default:()=>({})},collapsible:{type:Boolean,default:!1},searchMode:{type:Boolean,default:!1}},emits:{"update:modelValue":t=>!0,submit:t=>!0,reset:t=>!0,cancel:()=>!0,change:t=>!0},setup(t,{emit:l,expose:r,slots:u}){const p=n.shallowRef(),h=n.shallowRef(typeof window>"u"?0:window.innerWidth),s=n.shallowRef(t.collapsible&&!(t.formConfig?.collapsed??!0)),a=n.reactive({...t.formConfig});n.watch(()=>t.formConfig,e=>{Object.assign(a,e)},{deep:!0}),n.watch(()=>t.formConfig?.collapsed,e=>{t.collapsible&&(s.value=!(e??!0))});const f=n.reactive(z(t.schema)),g=n.computed(()=>ze(t.modelValue)),b=n.computed({get:()=>g.value?t.modelValue:f,set:e=>{if(g.value){l("update:modelValue",e);return}for(const o of Object.keys(f))delete f[o];Object.assign(f,e),l("update:modelValue",e)}});n.watch(()=>t.schema,e=>{if(!g.value){for(const o of Object.keys(f))delete f[o];Object.assign(f,z(e))}},{deep:!0});const i=n.computed(()=>t.schema.filter(e=>!e.hidden)),w=[{key:"sm",min:768},{key:"md",min:992},{key:"lg",min:1200},{key:"xl",min:1920}],E=(e,o)=>{let v=e.base||e.xs||"top";if(o<768)return e.xs||v;for(const m of w){if(o<m.min)break;v=e[m.key]||v}return v},_=n.computed(()=>{const e=a.labelPosition;return typeof e=="string"?e:E(e||{base:"top",md:"right"},h.value)}),P=e=>typeof e=="number"?e:e?.span,R=(e,o)=>{let v=P(e.span)??24;for(const m of w){if(o<m.min)break;const k=P(e[m.key]);k!==void 0&&(v=k)}return Math.min(24,v)},V=e=>R(oe(e,a),h.value),T=(e,o)=>{const v=e%24;return v&&24-v<o&&(e+=24-v),e+o},I=n.computed(()=>!!u.buttons||a.buttons?.submit!==!1||a.buttons?.reset!==!1||a.buttons?.cancel!==void 0&&a.buttons.cancel!==!1),B=e=>{if(a.actionCol!==void 0)return R(D(a.actionCol),h.value);const o=e?24-e:0;return o>=4?o:24},U=e=>{const o=e*24;let v=0,m=0;for(const k of i.value){const C=T(v,V(k));if(C>o)break;const j=I.value?T(C,B(C)):C;if(m>0&&j>o)break;v=C,m+=1}return Math.max(1,m)},F=n.computed(()=>!t.collapsible||!a.showCollapseButton?i.value.length:a.collapseCount!==void 0?a.collapseCount:U(a.collapseRows??1)),A=n.computed(()=>s.value?i.value:i.value.slice(0,F.value)),M=n.computed(()=>{let e=0;for(const o of A.value)e=T(e,V(o));return e%24}),W=n.computed(()=>B(M.value)),N=n.computed(()=>M.value>0&&M.value+W.value<=24),d=n.computed(()=>_.value==="top"&&N.value),y=n.computed(()=>{if(a.actionCol!==void 0)return{span:24,...D(a.actionCol)};const e=M.value,o=e?24-e:0;return{span:o>=4?o:24}}),S=n.computed(()=>{const e={submit:{type:"primary",text:t.searchMode?ae.search.submitText:ae.form.submitText,disabled:!1,loading:!1},reset:{plain:!0,text:"重置",disabled:!1},cancel:{plain:!0,text:"取消",disabled:!1}},o=v=>{const m=a.buttons?.[v];return m===!1||m===void 0&&!Ve[v]?null:{...e[v],...m??{}}};return{submit:o("submit"),reset:o("reset"),cancel:o("cancel")}}),q=n.computed(()=>Object.values(S.value).some(Boolean)),he=n.computed(()=>{const e=a.buttonAlign??"right";return e==="start"?"is-start":e==="center"?"is-center":"is-end"}),ve=e=>oe(e,a),ge=(e,o)=>{const v={...b.value,[e]:o};b.value=v,l("change",v)},be=e=>Array.isArray(e)?e:e?[e]:[],me=e=>{const o=[],v=m=>{for(const k of m)k.hidden||(k.children?.length?v(k.children):o.push(k))};return v(e.children??[]),o},ye=e=>be(e).some(o=>o?.required),we=e=>me(e).some(o=>ye(o.rules)),K=(e,o)=>e?n.h(c.ElButton,{...re(e,["text"]),onClick:o},()=>e.text):null,$=e=>{const o=u[e.slot??e.key??""];if(o)return o({item:e,model:b.value});const v=Te(e);if(n.isVNode(v))return v;const{slots:m,...k}=xe(e),C=Object.fromEntries(Object.entries(m??{}).flatMap(([j,x])=>{const O=typeof x=="function"?x:u[String(x)];return O?[[j,(L={})=>O({...L,item:e,model:b.value})]]:[]}));return n.h(v,{...k,modelValue:e.key==null?void 0:b.value[e.key],"onUpdate:modelValue":j=>{e.key!=null&&ge(e.key,j)}},C)},J=e=>typeof e.label=="function"?e.label():e.label,Pe=e=>{const o=_.value;return n.h("div",{class:["el-form-item",`el-form-item--label-${o}`,"el-form-pro__group",{"is-required":e.formItemProps?.required??we(e),"is-no-asterisk":a.hideRequiredAsterisk,"asterisk-right":a.requireAsteriskPosition==="right","asterisk-left":a.requireAsteriskPosition!=="right"}],style:e.style},[e.label?n.h("div",{class:"el-form-item__label",style:o==="top"?void 0:{width:e.labelWidth??a.labelWidth}},[J(e)]):null,n.h("div",{class:"el-form-item__content"},[X(e)])])},Se=e=>e.children?.length?X(e):n.h(c.ElFormItem,{...e.formItemProps??{},prop:e.key,rules:e.rules,labelWidth:e.labelWidth??a.labelWidth,class:[e.formItemProps?.class,"el-form-pro__child"],style:e.style},{default:()=>$(e)}),X=e=>e.children?.length?n.h("div",{class:"el-form-pro__children"},e.children.filter(o=>!o.hidden).flatMap((o,v)=>{const m=n.h("div",{class:"el-form-pro__child-wrapper",key:o.key},[Se(o)]);return v===0?[m]:[n.h("span",{class:"el-form-pro__separator"},e.separator??""),m]})):$(e),Z=async()=>{t.collapsible&&(s.value=!0),await n.nextTick(),p.value?.$el?.querySelector(".is-error")?.scrollIntoView({behavior:"smooth",block:"center"})},ee=(...e)=>p.value?.validate(...e),ke=(...e)=>p.value?.validateField(...e),te=async()=>{try{await ee(),l("submit",b.value)}catch{Z()}},Ee=e=>{const o=z(t.schema),v=e==null?null:new Set(Array.isArray(e)?e:[e]),m={},k=(C,j=!1,x=!1)=>{for(const O of C){const L=j||v===null||v.has(O.key);O.children?.length?k(O.children,L,!0):x&&L&&O.key!=null&&(m[O.key]=o[O.key])}};return k(t.schema),m},ne=(...e)=>{p.value?.resetFields(...e);const o=Ee(e[0]);return Object.keys(o).length&&(b.value={...b.value,...o}),{...b.value,...o}},Ce=()=>{const e=ne();l("reset",e)},Oe=()=>l("cancel"),_e=e=>{Object.assign(a,e)},Re=()=>b.value,G=()=>{p.value?.$el,typeof window<"u"&&(h.value=window.innerWidth)},Q=typeof ResizeObserver>"u"?null:new ResizeObserver(G);n.watch(()=>p.value?.$el,e=>{Q?.disconnect(),e&&Q?.observe(e),G()},{flush:"post"});const le=()=>{typeof window<"u"&&(h.value=window.innerWidth),G()};return typeof window<"u"&&window.addEventListener("resize",le),n.onBeforeUnmount(()=>{Q?.disconnect(),typeof window<"u"&&window.removeEventListener("resize",le)}),r({validate:(...e)=>ee(...e),validateField:(...e)=>ke(...e),resetFields:(...e)=>{ne(...e)},clearValidate:(...e)=>{p.value?.clearValidate(...e)},scrollToError:Z,setState:_e,getValues:Re}),()=>{const e={...re(a,["buttonAlign","buttons","row","col","showCollapseButton","collapseRows","collapseCount","collapsed","actionCol"])};return n.h(c.ElForm,{...e,class:["el-form-pro",e.class].filter(Boolean),labelPosition:_.value,ref:p,model:b.value,onSubmit:o=>{o.preventDefault(),te()}},{default:()=>[n.h(c.ElRow,{gutter:18,...a.row??{}},{default:()=>[...A.value.map(o=>n.h(c.ElCol,{...ve(o),key:o.key??o.children?.[0]?.key},{default:()=>o.children?.length?Pe(o):n.h(c.ElFormItem,{...o.formItemProps??{},label:typeof o.label=="function"?void 0:o.label,labelWidth:o.labelWidth??a.labelWidth,prop:o.key,rules:o.rules,class:o.formItemProps?.class,style:o.style},{...typeof o.label=="function"?{label:()=>J(o)}:{},default:()=>$(o)})})),q.value&&i.value.length?n.h(c.ElCol,y.value,{default:()=>n.h(c.ElFormItem,null,{...d.value?{label:()=>n.h("label",{class:"el-form-pro__actions-label"})}:{},default:()=>n.h("div",{class:["el-form-pro__actions",he.value]},[u.buttons?u.buttons():[K(S.value.submit,()=>{te()}),K(S.value.reset,Ce),K(S.value.cancel,Oe)],t.collapsible&&a.showCollapseButton&&i.value.length>F.value?n.h(c.ElButton,{type:"primary",link:!0,onClick:()=>{s.value=!s.value}},()=>s.value?"收起":"展开"):null])})}):null]})]})}}});function se(t,l){return t.flatMap(r=>{if(r.visible===!1)return[];const{visible:u,slot:p,headerSlot:h,render:s,headerRender:a,autoMerge:f,children:g,...b}=r,i={...b},w={},E=p?l[p]:void 0,_=h?l[h]:void 0;if(E?w.default=E:s&&(w.default=P=>s({row:P.row,column:P.column,$index:P.$index})),_?w.header=_:a&&(w.header=P=>a({column:P.column,$index:P.$index,store:P.store,_self:P._self})),g?.length){const P={default:()=>se(g,l)};return w.header&&(P.header=w.header),[n.h(c.ElTableColumn,i,P)]}return[n.h(c.ElTableColumn,i,Object.keys(w).length?w:void 0)]})}function ue(t){return t.prop??t.property}function Ie(t,l){if(t===null||typeof t!="object")return;const r=t;if(Object.prototype.hasOwnProperty.call(r,l))return r[l];if(!l.includes("."))return;let u=r;for(const p of l.split(".")){if(u===null||typeof u!="object")return;u=u[p]}return u}function ie(t){return t.flatMap(l=>l.visible===!1?[]:l.children?.length?ie(l.children):[l])}function Be(t,l=[]){const r=ie(t),u=new Map;for(const a of r){const f=ue(a);f&&!u.has(f)&&u.set(f,a)}const p=new Set,h=[],s=a=>{!a||p.has(a)||!u.has(a)||(p.add(a),h.push({key:a,getValue:f=>Ie(f,a)}))};return l.forEach(s),r.forEach(a=>{a.autoMerge&&s(ue(a))}),h}function Le(t,l){const r=t.length,u=new Map(l.map(s=>[s.key,Array.from({length:r},()=>1)]));if(!r||!l.length)return u;const p=t.map(s=>l.map(a=>a.getValue(s))),h=l.map(()=>0);for(let s=1;s<=r;s+=1){let a=!0;for(let f=0;f<l.length;f+=1){const g=s<r&&a&&p[s][f]===p[s-1][f];if(!g){const b=u.get(l[f].key),i=h[f],w=s-i;b[i]=w;for(let E=i+1;E<s;E+=1)b[E]=0;h[f]=s}a=g}}return u}function De(t,l="children"){return t.some(r=>{if(r===null||typeof r!="object")return!1;const u=r[l];return Array.isArray(u)&&u.length>0})}function Ue(t){const l=n.computed(()=>Be(t.columns(),t.mergeFields())),r=n.computed(()=>l.value.length?t.tableRef.value?.store?.states?.data?.value??t.data.value:t.data.value),u=n.computed(()=>{if(!l.value.length||t.lazy())return new Map;const h=t.treeProps()?.children??"children",s=r.value;return De(s,h)?new Map:Le(s,l.value)});return{spanMethod:n.computed(()=>{const h=t.userSpanMethod();return l.value.length?s=>{const a=h?.(s);if(a!==void 0)return a;const f=s.column.property,g=f?u.value.get(f)?.[s.rowIndex]:void 0;if(!(g===void 0||g===1))return{rowspan:g,colspan:1}}:h}),spanMap:u}}const ce={page:1,pageSize:20,pageSizes:[10,20,50,100],pagerCount:5,layout:"total, sizes, prev, pager, next, jumper",background:!0};function de(t){return t===!1?null:{...ce,...t===!0?{}:t??{}}}function We(t){const l=n.computed(()=>de(t())),r=n.shallowRef(l.value?.page??1),u=n.shallowRef(l.value?.pageSize??20);n.watch(()=>l.value?.page,a=>{a!==void 0&&(r.value=a)}),n.watch(()=>l.value?.pageSize,a=>{a!==void 0&&(u.value=a)});const p=n.computed(()=>l.value?r.value:null),h=n.computed(()=>l.value?u.value:null);function s(a){u.value=a,r.value=1}return{enabled:n.computed(()=>l.value!=null),config:l,currentPage:r,pageSize:u,requestPage:p,requestPageSize:h,setPageSize:s}}function Ne(t){const l=n.shallowRef(!1);let r=null,u=0;async function p(){const s=t.request();if(!s)return;r?.abort(),r=new AbortController;const a=++u,f=r;l.value=!0;try{const g=await s({page:t.page(),pageSize:t.pageSize(),query:t.query(),signal:f.signal});if(f.signal.aborted||a!==u)return;t.onData?.(g),t.onLoaded?.(g)}catch(g){if(f.signal.aborted||a!==u)return;t.onError?.(g)}finally{a===u&&(l.value=!1)}}function h(){r?.abort(),u+=1,l.value=!1}return n.onBeforeUnmount(h),{loading:l,load:p,cancel:h}}const fe=n.defineComponent({name:"ElTablePro",inheritAttrs:!1,props:{columns:{type:Array,default:()=>[]},request:{type:Function,default:void 0},pagination:{type:[Boolean,Object],default:!0},mergeFields:{type:Array,default:()=>[]},query:{type:Object,default:void 0},filter:{type:Object,default:void 0},data:{type:Array,default:()=>[]},rowKey:{type:[String,Function],required:!0}},emits:{loaded:t=>!0,error:t=>!0},setup(t,{attrs:l,emit:r,expose:u}){const p=n.useSlots(),h=n.shallowRef(null),s=n.shallowRef([]),a=n.shallowRef(0),f=n.computed(()=>({...z(t.filter?.schema??[]),...t.filter?.defaultValue??{},...t.filter?.model??{}})),g=n.reactive({...f.value}),b=n.shallowRef({...f.value,...t.query??{}});n.watch(()=>t.query,d=>{b.value={...f.value,...d??{}},t.request&&R()},{deep:!0}),n.watch(()=>t.filter?.model,d=>{for(const y of Object.keys(g))delete g[y];Object.assign(g,f.value,d??{})},{deep:!0});const i=We(()=>t.pagination);let w=!1;function E(d){d!==i.currentPage.value&&(i.enabled.value&&(w=!0),i.currentPage.value=d)}const _=n.computed(()=>{const d=t.rowKey;return typeof d=="function"?y=>String(d(y)):d}),{loading:P,load:R,cancel:V}=Ne({request:()=>t.request,page:()=>i.requestPage.value,pageSize:()=>i.requestPageSize.value,query:()=>b.value,onData:d=>{s.value=d.data,a.value=d.total},onLoaded:d=>r("loaded",d),onError:d=>r("error",d)}),T=n.computed(()=>P.value),I=n.computed(()=>{if(t.request)return s.value;if(!t.data)return[];if(!i.config.value)return t.data;const d=(i.currentPage.value-1)*i.pageSize.value;return t.data.slice(d,d+i.pageSize.value)}),B=n.computed(()=>t.request?a.value:t.data?.length??0),{spanMethod:U}=Ue({tableRef:h,columns:()=>t.columns,data:I,mergeFields:()=>t.mergeFields,userSpanMethod:()=>l.spanMethod,treeProps:()=>l.treeProps,lazy:()=>!!l.lazy});async function F(d){d?.page!==void 0&&E(d.page),await R()}async function A(){b.value={...g},E(1),await R()}async function M(){const d={...f.value};for(const y of Object.keys(g))delete g[y];Object.assign(g,d),b.value={...d},E(1),await R()}n.watch(()=>t.request,d=>{s.value=[],a.value=0,d?F():V()}),n.watch(()=>[i.requestPage.value,i.requestPageSize.value],()=>{if(w){w=!1;return}t.request&&F()});const W=new Proxy({},{get(d,y){if(y==="reload")return F;if(y==="search")return A;if(y==="resetFilter")return M;const S=h.value;if(!S)return;const q=S[y];return typeof q=="function"?q.bind(S):q},has(d,y){return y==="reload"||y==="search"||y==="resetFilter"?!0:h.value!=null&&y in h.value}});u(W),n.onMounted(()=>{t.request&&F()});const N=()=>Object.fromEntries(Object.entries(p).filter(([d])=>d.startsWith("filter-")).map(([d,y])=>[d.slice(7),y]));return()=>{const d=t.filter?n.h(H,{schema:t.filter.schema,modelValue:g,collapsible:!0,searchMode:!0,formConfig:{...t.filter.formConfig?.showCollapseButton?{collapseRows:1}:{},...t.filter.formConfig??{}},"onUpdate:modelValue":S=>{for(const q of Object.keys(g))delete g[q];Object.assign(g,S)},onSubmit:()=>{A()},onReset:()=>{M()}},N()):null,y=n.h(c.ElTable,{...l,ref:h,data:I.value,rowKey:_.value,spanMethod:U.value},{default:()=>se(t.columns,p),empty:p.empty,append:p.append});return n.h("div",{class:"el-table-pro"},[d,n.withDirectives(y,[[c.vLoading,T.value]]),i.enabled.value?n.h(c.ElPagination,{currentPage:i.currentPage.value,pageSize:i.pageSize.value,total:B.value,pageSizes:[...i.config.value?.pageSizes??[]],pagerCount:i.config.value?.pagerCount,layout:i.config.value?.layout,background:i.config.value?.background,"onUpdate:currentPage":S=>{i.currentPage.value=S},"onUpdate:pageSize":S=>{i.setPageSize(S)}}):null])}}}),Ke=[H,fe];function pe(t){Ke.forEach(l=>{const r=l.name;r&&t.component(r,l)})}const $e={install:pe};exports.ElFormPro=H;exports.ElTablePro=fe;exports.TABLE_PRO_DEFAULT_PAGINATION=ce;exports.default=$e;exports.install=pe;exports.normalizePagination=de;
|
package/dist/index.js
CHANGED
|
@@ -1,32 +1,32 @@
|
|
|
1
|
-
import { h as g, defineComponent as ge, shallowRef as E, reactive as Z, watch as O, computed as b, onBeforeUnmount as be, isVNode as ze, nextTick as
|
|
2
|
-
import { ElMention as Le, ElTransfer as De, ElTreeSelect as Ue, ElSwitch as We, ElSlider as Ne, ElRate as Ke, ElInputTag as $e, ElCascader as Ge, ElAutocomplete as Qe, ElTimeSelect as Ye, ElTimePicker as He, ElDatePicker as Je, ElSelectV2 as Xe, ElInputNumber as Ze, ElInput as te, ElUpload as et, ElButton as ee, ElCheckbox as tt, ElCheckboxGroup as nt, ElRadio as lt, ElRadioGroup as
|
|
1
|
+
import { h as g, defineComponent as ge, shallowRef as E, reactive as Z, watch as O, computed as b, onBeforeUnmount as be, isVNode as ze, nextTick as Ae, useSlots as Te, onMounted as Ie, withDirectives as Be } from "vue";
|
|
2
|
+
import { ElMention as Le, ElTransfer as De, ElTreeSelect as Ue, ElSwitch as We, ElSlider as Ne, ElRate as Ke, ElInputTag as $e, ElCascader as Ge, ElAutocomplete as Qe, ElTimeSelect as Ye, ElTimePicker as He, ElDatePicker as Je, ElSelectV2 as Xe, ElInputNumber as Ze, ElInput as te, ElUpload as et, ElButton as ee, ElCheckbox as tt, ElCheckboxGroup as nt, ElRadio as lt, ElRadioGroup as rt, ElOption as at, ElSelect as ot, ElForm as st, ElRow as ut, ElCol as ie, ElFormItem as J, ElTableColumn as ce, ElTable as it, vLoading as ct, ElPagination as dt } from "element-plus";
|
|
3
3
|
function ft(t) {
|
|
4
4
|
return typeof t == "function" ? t() : t ?? [];
|
|
5
5
|
}
|
|
6
6
|
function X(t, n) {
|
|
7
|
-
return (
|
|
7
|
+
return (a, { slots: o = {} }) => {
|
|
8
8
|
const {
|
|
9
9
|
options: d,
|
|
10
10
|
props: f = {},
|
|
11
|
-
slots:
|
|
12
|
-
...
|
|
13
|
-
} =
|
|
11
|
+
slots: s = {},
|
|
12
|
+
...r
|
|
13
|
+
} = a, c = f.label ?? "label", p = f.value ?? "value", h = f.disabled ?? "disabled";
|
|
14
14
|
return g(
|
|
15
15
|
t,
|
|
16
|
-
|
|
16
|
+
r,
|
|
17
17
|
{
|
|
18
18
|
// 保留 ElSelect / ElRadioGroup / ElCheckboxGroup 自身的具名插槽。
|
|
19
19
|
...o,
|
|
20
20
|
// 自动生成选项;显式传入 default 插槽时交由调用方接管。
|
|
21
21
|
default: o.default ?? (() => ft(d).map(
|
|
22
|
-
(
|
|
22
|
+
(u) => g(
|
|
23
23
|
n,
|
|
24
24
|
{
|
|
25
|
-
label:
|
|
26
|
-
value:
|
|
27
|
-
disabled:
|
|
25
|
+
label: u[c],
|
|
26
|
+
value: u[p],
|
|
27
|
+
disabled: u[h]
|
|
28
28
|
},
|
|
29
|
-
typeof
|
|
29
|
+
typeof u.slots == "function" ? u.slots : s[u.slots]
|
|
30
30
|
)
|
|
31
31
|
))
|
|
32
32
|
}
|
|
@@ -37,12 +37,12 @@ function vt(t, { slots: n }) {
|
|
|
37
37
|
return g(te, { ...t, type: "password" }, n);
|
|
38
38
|
}
|
|
39
39
|
function pt(t, { slots: n }) {
|
|
40
|
-
const { modelValue:
|
|
40
|
+
const { modelValue: a, "onUpdate:modelValue": o, ...d } = t;
|
|
41
41
|
return g(
|
|
42
42
|
et,
|
|
43
43
|
{
|
|
44
44
|
...d,
|
|
45
|
-
fileList:
|
|
45
|
+
fileList: a,
|
|
46
46
|
"onUpdate:fileList": o
|
|
47
47
|
},
|
|
48
48
|
{
|
|
@@ -56,9 +56,9 @@ const gt = {
|
|
|
56
56
|
input: te,
|
|
57
57
|
password: vt,
|
|
58
58
|
number: Ze,
|
|
59
|
-
select: X(ot,
|
|
59
|
+
select: X(ot, at),
|
|
60
60
|
selectV2: Xe,
|
|
61
|
-
radio: X(
|
|
61
|
+
radio: X(rt, lt),
|
|
62
62
|
checkbox: X(nt, tt),
|
|
63
63
|
date: Je,
|
|
64
64
|
time: He,
|
|
@@ -117,8 +117,8 @@ function de(t, n) {
|
|
|
117
117
|
};
|
|
118
118
|
}
|
|
119
119
|
function I(t) {
|
|
120
|
-
const n = t.flatMap((
|
|
121
|
-
const o =
|
|
120
|
+
const n = t.flatMap((a) => {
|
|
121
|
+
const o = a.key && !a.children?.length ? [[a.key, a.defaultValue]] : [], d = I(a.children ?? []);
|
|
122
122
|
return [...o, ...Object.entries(d)];
|
|
123
123
|
});
|
|
124
124
|
return Object.fromEntries(n);
|
|
@@ -139,7 +139,7 @@ const fe = {
|
|
|
139
139
|
cancel: !1
|
|
140
140
|
};
|
|
141
141
|
function ve(t, n) {
|
|
142
|
-
return Object.fromEntries(Object.entries(t).filter(([
|
|
142
|
+
return Object.fromEntries(Object.entries(t).filter(([a]) => !n.includes(a)));
|
|
143
143
|
}
|
|
144
144
|
const he = /* @__PURE__ */ ge({
|
|
145
145
|
name: "ElFormPro",
|
|
@@ -176,18 +176,18 @@ const he = /* @__PURE__ */ ge({
|
|
|
176
176
|
},
|
|
177
177
|
setup(t, {
|
|
178
178
|
emit: n,
|
|
179
|
-
expose:
|
|
179
|
+
expose: a,
|
|
180
180
|
slots: o
|
|
181
181
|
}) {
|
|
182
|
-
const d = E(), f = E(typeof window > "u" ? 0 : window.innerWidth),
|
|
182
|
+
const d = E(), f = E(typeof window > "u" ? 0 : window.innerWidth), s = E(t.collapsible && !(t.formConfig?.collapsed ?? !0)), r = Z({
|
|
183
183
|
...t.formConfig
|
|
184
184
|
});
|
|
185
185
|
O(() => t.formConfig, (e) => {
|
|
186
|
-
Object.assign(
|
|
186
|
+
Object.assign(r, e);
|
|
187
187
|
}, {
|
|
188
188
|
deep: !0
|
|
189
189
|
}), O(() => t.formConfig?.collapsed, (e) => {
|
|
190
|
-
t.collapsible && (
|
|
190
|
+
t.collapsible && (s.value = !(e ?? !0));
|
|
191
191
|
});
|
|
192
192
|
const c = Z(I(t.schema)), p = b(() => mt(t.modelValue)), h = b({
|
|
193
193
|
get: () => p.value ? t.modelValue : c,
|
|
@@ -208,7 +208,7 @@ const he = /* @__PURE__ */ ge({
|
|
|
208
208
|
}, {
|
|
209
209
|
deep: !0
|
|
210
210
|
});
|
|
211
|
-
const
|
|
211
|
+
const u = b(() => t.schema.filter((e) => !e.hidden)), w = [{
|
|
212
212
|
key: "sm",
|
|
213
213
|
min: 768
|
|
214
214
|
}, {
|
|
@@ -229,7 +229,7 @@ const he = /* @__PURE__ */ ge({
|
|
|
229
229
|
}
|
|
230
230
|
return v;
|
|
231
231
|
}, F = b(() => {
|
|
232
|
-
const e =
|
|
232
|
+
const e = r.labelPosition;
|
|
233
233
|
return typeof e == "string" ? e : C(e || {
|
|
234
234
|
base: "top",
|
|
235
235
|
md: "right"
|
|
@@ -242,18 +242,18 @@ const he = /* @__PURE__ */ ge({
|
|
|
242
242
|
k !== void 0 && (v = k);
|
|
243
243
|
}
|
|
244
244
|
return Math.min(24, v);
|
|
245
|
-
}, B = (e) => R(de(e,
|
|
245
|
+
}, B = (e) => R(de(e, r), f.value), z = (e, l) => {
|
|
246
246
|
const v = e % 24;
|
|
247
247
|
return v && 24 - v < l && (e += 24 - v), e + l;
|
|
248
|
-
}, L = b(() => !!o.buttons ||
|
|
249
|
-
if (
|
|
250
|
-
return R(W(
|
|
248
|
+
}, L = b(() => !!o.buttons || r.buttons?.submit !== !1 || r.buttons?.reset !== !1 || r.buttons?.cancel !== void 0 && r.buttons.cancel !== !1), D = (e) => {
|
|
249
|
+
if (r.actionCol !== void 0)
|
|
250
|
+
return R(W(r.actionCol), f.value);
|
|
251
251
|
const l = e ? 24 - e : 0;
|
|
252
252
|
return l >= 4 ? l : 24;
|
|
253
253
|
}, N = (e) => {
|
|
254
254
|
const l = e * 24;
|
|
255
255
|
let v = 0, y = 0;
|
|
256
|
-
for (const k of
|
|
256
|
+
for (const k of u.value) {
|
|
257
257
|
const _ = z(v, B(k));
|
|
258
258
|
if (_ > l) break;
|
|
259
259
|
const V = L.value ? z(_, D(_)) : _;
|
|
@@ -261,18 +261,18 @@ const he = /* @__PURE__ */ ge({
|
|
|
261
261
|
v = _, y += 1;
|
|
262
262
|
}
|
|
263
263
|
return Math.max(1, y);
|
|
264
|
-
},
|
|
264
|
+
}, q = b(() => !t.collapsible || !r.showCollapseButton ? u.value.length : r.collapseCount !== void 0 ? r.collapseCount : N(r.collapseRows ?? 1)), A = b(() => s.value ? u.value : u.value.slice(0, q.value)), j = b(() => {
|
|
265
265
|
let e = 0;
|
|
266
|
-
for (const l of
|
|
266
|
+
for (const l of A.value)
|
|
267
267
|
e = z(e, B(l));
|
|
268
268
|
return e % 24;
|
|
269
|
-
}), K = b(() => D(
|
|
270
|
-
if (
|
|
269
|
+
}), K = b(() => D(j.value)), $ = b(() => j.value > 0 && j.value + K.value <= 24), i = b(() => F.value === "top" && $.value), m = b(() => {
|
|
270
|
+
if (r.actionCol !== void 0)
|
|
271
271
|
return {
|
|
272
272
|
span: 24,
|
|
273
|
-
...W(
|
|
273
|
+
...W(r.actionCol)
|
|
274
274
|
};
|
|
275
|
-
const e =
|
|
275
|
+
const e = j.value, l = e ? 24 - e : 0;
|
|
276
276
|
return {
|
|
277
277
|
span: l >= 4 ? l : 24
|
|
278
278
|
};
|
|
@@ -295,7 +295,7 @@ const he = /* @__PURE__ */ ge({
|
|
|
295
295
|
disabled: !1
|
|
296
296
|
}
|
|
297
297
|
}, l = (v) => {
|
|
298
|
-
const y =
|
|
298
|
+
const y = r.buttons?.[v];
|
|
299
299
|
return y === !1 || y === void 0 && !wt[v] ? null : {
|
|
300
300
|
...e[v],
|
|
301
301
|
...y ?? {}
|
|
@@ -306,10 +306,10 @@ const he = /* @__PURE__ */ ge({
|
|
|
306
306
|
reset: l("reset"),
|
|
307
307
|
cancel: l("cancel")
|
|
308
308
|
};
|
|
309
|
-
}),
|
|
310
|
-
const e =
|
|
309
|
+
}), x = b(() => Object.values(S.value).some(Boolean)), we = b(() => {
|
|
310
|
+
const e = r.buttonAlign ?? "right";
|
|
311
311
|
return e === "start" ? "is-start" : e === "center" ? "is-center" : "is-end";
|
|
312
|
-
}), Pe = (e) => de(e,
|
|
312
|
+
}), Pe = (e) => de(e, r), Se = (e, l) => {
|
|
313
313
|
const v = {
|
|
314
314
|
...h.value,
|
|
315
315
|
[e]: l
|
|
@@ -335,8 +335,8 @@ const he = /* @__PURE__ */ ge({
|
|
|
335
335
|
const {
|
|
336
336
|
slots: y,
|
|
337
337
|
...k
|
|
338
|
-
} = yt(e), _ = Object.fromEntries(Object.entries(y ?? {}).flatMap(([V,
|
|
339
|
-
const M = typeof
|
|
338
|
+
} = yt(e), _ = Object.fromEntries(Object.entries(y ?? {}).flatMap(([V, T]) => {
|
|
339
|
+
const M = typeof T == "function" ? T : o[String(T)];
|
|
340
340
|
return M ? [[V, (U = {}) => M({
|
|
341
341
|
...U,
|
|
342
342
|
item: e,
|
|
@@ -354,13 +354,16 @@ const he = /* @__PURE__ */ ge({
|
|
|
354
354
|
const l = F.value;
|
|
355
355
|
return g("div", {
|
|
356
356
|
class: ["el-form-item", `el-form-item--label-${l}`, "el-form-pro__group", {
|
|
357
|
-
"is-required": e.formItemProps?.required ?? Oe(e)
|
|
357
|
+
"is-required": e.formItemProps?.required ?? Oe(e),
|
|
358
|
+
"is-no-asterisk": r.hideRequiredAsterisk,
|
|
359
|
+
"asterisk-right": r.requireAsteriskPosition === "right",
|
|
360
|
+
"asterisk-left": r.requireAsteriskPosition !== "right"
|
|
358
361
|
}],
|
|
359
362
|
style: e.style
|
|
360
363
|
}, [e.label ? g("div", {
|
|
361
364
|
class: "el-form-item__label",
|
|
362
365
|
style: l === "top" ? void 0 : {
|
|
363
|
-
width: e.labelWidth ??
|
|
366
|
+
width: e.labelWidth ?? r.labelWidth
|
|
364
367
|
}
|
|
365
368
|
}, [ne(e)]) : null, g("div", {
|
|
366
369
|
class: "el-form-item__content"
|
|
@@ -369,7 +372,7 @@ const he = /* @__PURE__ */ ge({
|
|
|
369
372
|
...e.formItemProps ?? {},
|
|
370
373
|
prop: e.key,
|
|
371
374
|
rules: e.rules,
|
|
372
|
-
labelWidth: e.labelWidth ??
|
|
375
|
+
labelWidth: e.labelWidth ?? r.labelWidth,
|
|
373
376
|
class: [e.formItemProps?.class, "el-form-pro__child"],
|
|
374
377
|
style: e.style
|
|
375
378
|
}, {
|
|
@@ -384,26 +387,26 @@ const he = /* @__PURE__ */ ge({
|
|
|
384
387
|
return v === 0 ? [y] : [g("span", {
|
|
385
388
|
class: "el-form-pro__separator"
|
|
386
389
|
}, e.separator ?? ""), y];
|
|
387
|
-
})) : Q(e),
|
|
388
|
-
t.collapsible && (
|
|
390
|
+
})) : Q(e), re = async () => {
|
|
391
|
+
t.collapsible && (s.value = !0), await Ae(), d.value?.$el?.querySelector(".is-error")?.scrollIntoView({
|
|
389
392
|
behavior: "smooth",
|
|
390
393
|
block: "center"
|
|
391
394
|
});
|
|
392
|
-
},
|
|
395
|
+
}, ae = (...e) => d.value?.validate(...e), Fe = (...e) => d.value?.validateField(...e), oe = async () => {
|
|
393
396
|
try {
|
|
394
|
-
await
|
|
397
|
+
await ae(), n("submit", h.value);
|
|
395
398
|
} catch {
|
|
396
|
-
|
|
399
|
+
re();
|
|
397
400
|
}
|
|
398
401
|
}, Re = (e) => {
|
|
399
|
-
const l = I(t.schema), v = e == null ? null : new Set(Array.isArray(e) ? e : [e]), y = {}, k = (_, V = !1,
|
|
402
|
+
const l = I(t.schema), v = e == null ? null : new Set(Array.isArray(e) ? e : [e]), y = {}, k = (_, V = !1, T = !1) => {
|
|
400
403
|
for (const M of _) {
|
|
401
404
|
const U = V || v === null || v.has(M.key);
|
|
402
|
-
M.children?.length ? k(M.children, U, !0) :
|
|
405
|
+
M.children?.length ? k(M.children, U, !0) : T && U && M.key != null && (y[M.key] = l[M.key]);
|
|
403
406
|
}
|
|
404
407
|
};
|
|
405
408
|
return k(t.schema), y;
|
|
406
|
-
},
|
|
409
|
+
}, se = (...e) => {
|
|
407
410
|
d.value?.resetFields(...e);
|
|
408
411
|
const l = Re(e[0]);
|
|
409
412
|
return Object.keys(l).length && (h.value = {
|
|
@@ -413,11 +416,11 @@ const he = /* @__PURE__ */ ge({
|
|
|
413
416
|
...h.value,
|
|
414
417
|
...l
|
|
415
418
|
};
|
|
416
|
-
},
|
|
417
|
-
const e =
|
|
419
|
+
}, qe = () => {
|
|
420
|
+
const e = se();
|
|
418
421
|
n("reset", e);
|
|
419
|
-
},
|
|
420
|
-
Object.assign(
|
|
422
|
+
}, je = () => n("cancel"), xe = (e) => {
|
|
423
|
+
Object.assign(r, e);
|
|
421
424
|
}, Ve = () => h.value, Y = () => {
|
|
422
425
|
d.value?.$el, typeof window < "u" && (f.value = window.innerWidth);
|
|
423
426
|
}, H = typeof ResizeObserver > "u" ? null : new ResizeObserver(Y);
|
|
@@ -426,28 +429,28 @@ const he = /* @__PURE__ */ ge({
|
|
|
426
429
|
}, {
|
|
427
430
|
flush: "post"
|
|
428
431
|
});
|
|
429
|
-
const
|
|
432
|
+
const ue = () => {
|
|
430
433
|
typeof window < "u" && (f.value = window.innerWidth), Y();
|
|
431
434
|
};
|
|
432
|
-
return typeof window < "u" && window.addEventListener("resize",
|
|
433
|
-
H?.disconnect(), typeof window < "u" && window.removeEventListener("resize",
|
|
434
|
-
}),
|
|
435
|
-
validate: (...e) =>
|
|
435
|
+
return typeof window < "u" && window.addEventListener("resize", ue), be(() => {
|
|
436
|
+
H?.disconnect(), typeof window < "u" && window.removeEventListener("resize", ue);
|
|
437
|
+
}), a({
|
|
438
|
+
validate: (...e) => ae(...e),
|
|
436
439
|
validateField: (...e) => Fe(...e),
|
|
437
440
|
resetFields: (...e) => {
|
|
438
|
-
|
|
441
|
+
se(...e);
|
|
439
442
|
},
|
|
440
443
|
clearValidate: (...e) => {
|
|
441
444
|
d.value?.clearValidate(...e);
|
|
442
445
|
},
|
|
443
|
-
scrollToError:
|
|
444
|
-
setState:
|
|
446
|
+
scrollToError: re,
|
|
447
|
+
setState: xe,
|
|
445
448
|
getValues: Ve
|
|
446
449
|
}), () => {
|
|
447
450
|
const e = {
|
|
448
|
-
...ve(
|
|
451
|
+
...ve(r, ["buttonAlign", "buttons", "row", "col", "showCollapseButton", "collapseRows", "collapseCount", "collapsed", "actionCol"])
|
|
449
452
|
};
|
|
450
|
-
return g(
|
|
453
|
+
return g(st, {
|
|
451
454
|
...e,
|
|
452
455
|
class: ["el-form-pro", e.class].filter(Boolean),
|
|
453
456
|
labelPosition: F.value,
|
|
@@ -457,18 +460,18 @@ const he = /* @__PURE__ */ ge({
|
|
|
457
460
|
l.preventDefault(), oe();
|
|
458
461
|
}
|
|
459
462
|
}, {
|
|
460
|
-
default: () => [g(
|
|
463
|
+
default: () => [g(ut, {
|
|
461
464
|
gutter: 18,
|
|
462
|
-
...
|
|
465
|
+
...r.row ?? {}
|
|
463
466
|
}, {
|
|
464
|
-
default: () => [...
|
|
467
|
+
default: () => [...A.value.map((l) => g(ie, {
|
|
465
468
|
...Pe(l),
|
|
466
469
|
key: l.key ?? l.children?.[0]?.key
|
|
467
470
|
}, {
|
|
468
471
|
default: () => l.children?.length ? _e(l) : g(J, {
|
|
469
472
|
...l.formItemProps ?? {},
|
|
470
473
|
label: typeof l.label == "function" ? void 0 : l.label,
|
|
471
|
-
labelWidth: l.labelWidth ??
|
|
474
|
+
labelWidth: l.labelWidth ?? r.labelWidth,
|
|
472
475
|
prop: l.key,
|
|
473
476
|
rules: l.rules,
|
|
474
477
|
class: l.formItemProps?.class,
|
|
@@ -479,7 +482,7 @@ const he = /* @__PURE__ */ ge({
|
|
|
479
482
|
} : {},
|
|
480
483
|
default: () => Q(l)
|
|
481
484
|
})
|
|
482
|
-
})),
|
|
485
|
+
})), x.value && u.value.length ? g(ie, m.value, {
|
|
483
486
|
default: () => g(J, null, {
|
|
484
487
|
...i.value ? {
|
|
485
488
|
label: () => g("label", {
|
|
@@ -490,13 +493,13 @@ const he = /* @__PURE__ */ ge({
|
|
|
490
493
|
class: ["el-form-pro__actions", we.value]
|
|
491
494
|
}, [o.buttons ? o.buttons() : [G(S.value.submit, () => {
|
|
492
495
|
oe();
|
|
493
|
-
}), G(S.value.reset,
|
|
496
|
+
}), G(S.value.reset, qe), G(S.value.cancel, je)], t.collapsible && r.showCollapseButton && u.value.length > q.value ? g(ee, {
|
|
494
497
|
type: "primary",
|
|
495
498
|
link: !0,
|
|
496
499
|
onClick: () => {
|
|
497
|
-
|
|
500
|
+
s.value = !s.value;
|
|
498
501
|
}
|
|
499
|
-
}, () =>
|
|
502
|
+
}, () => s.value ? "收起" : "展开") : null])
|
|
500
503
|
})
|
|
501
504
|
}) : null]
|
|
502
505
|
})]
|
|
@@ -505,23 +508,23 @@ const he = /* @__PURE__ */ ge({
|
|
|
505
508
|
}
|
|
506
509
|
});
|
|
507
510
|
function ye(t, n) {
|
|
508
|
-
return t.flatMap((
|
|
509
|
-
if (
|
|
511
|
+
return t.flatMap((a) => {
|
|
512
|
+
if (a.visible === !1) return [];
|
|
510
513
|
const {
|
|
511
514
|
visible: o,
|
|
512
515
|
slot: d,
|
|
513
516
|
headerSlot: f,
|
|
514
|
-
render:
|
|
515
|
-
headerRender:
|
|
517
|
+
render: s,
|
|
518
|
+
headerRender: r,
|
|
516
519
|
autoMerge: c,
|
|
517
520
|
children: p,
|
|
518
521
|
...h
|
|
519
|
-
} =
|
|
520
|
-
if (C ? w.default = C :
|
|
522
|
+
} = a, u = { ...h }, w = {}, C = d ? n[d] : void 0, F = f ? n[f] : void 0;
|
|
523
|
+
if (C ? w.default = C : s && (w.default = (P) => s({
|
|
521
524
|
row: P.row,
|
|
522
525
|
column: P.column,
|
|
523
526
|
$index: P.$index
|
|
524
|
-
})), F ? w.header = F :
|
|
527
|
+
})), F ? w.header = F : r && (w.header = (P) => r({
|
|
525
528
|
column: P.column,
|
|
526
529
|
$index: P.$index,
|
|
527
530
|
store: P.store,
|
|
@@ -530,12 +533,12 @@ function ye(t, n) {
|
|
|
530
533
|
const P = {
|
|
531
534
|
default: () => ye(p, n)
|
|
532
535
|
};
|
|
533
|
-
return w.header && (P.header = w.header), [g(ce,
|
|
536
|
+
return w.header && (P.header = w.header), [g(ce, u, P)];
|
|
534
537
|
}
|
|
535
538
|
return [
|
|
536
539
|
g(
|
|
537
540
|
ce,
|
|
538
|
-
|
|
541
|
+
u,
|
|
539
542
|
Object.keys(w).length ? w : void 0
|
|
540
543
|
)
|
|
541
544
|
];
|
|
@@ -546,11 +549,11 @@ function pe(t) {
|
|
|
546
549
|
}
|
|
547
550
|
function Pt(t, n) {
|
|
548
551
|
if (t === null || typeof t != "object") return;
|
|
549
|
-
const
|
|
550
|
-
if (Object.prototype.hasOwnProperty.call(
|
|
551
|
-
return
|
|
552
|
+
const a = t;
|
|
553
|
+
if (Object.prototype.hasOwnProperty.call(a, n))
|
|
554
|
+
return a[n];
|
|
552
555
|
if (!n.includes(".")) return;
|
|
553
|
-
let o =
|
|
556
|
+
let o = a;
|
|
554
557
|
for (const d of n.split(".")) {
|
|
555
558
|
if (o === null || typeof o != "object") return;
|
|
556
559
|
o = o[d];
|
|
@@ -561,66 +564,66 @@ function me(t) {
|
|
|
561
564
|
return t.flatMap((n) => n.visible === !1 ? [] : n.children?.length ? me(n.children) : [n]);
|
|
562
565
|
}
|
|
563
566
|
function St(t, n = []) {
|
|
564
|
-
const
|
|
565
|
-
for (const
|
|
566
|
-
const c = pe(
|
|
567
|
-
c && !o.has(c) && o.set(c,
|
|
567
|
+
const a = me(t), o = /* @__PURE__ */ new Map();
|
|
568
|
+
for (const r of a) {
|
|
569
|
+
const c = pe(r);
|
|
570
|
+
c && !o.has(c) && o.set(c, r);
|
|
568
571
|
}
|
|
569
|
-
const d = /* @__PURE__ */ new Set(), f = [],
|
|
570
|
-
!
|
|
571
|
-
key:
|
|
572
|
-
getValue: (c) => Pt(c,
|
|
572
|
+
const d = /* @__PURE__ */ new Set(), f = [], s = (r) => {
|
|
573
|
+
!r || d.has(r) || !o.has(r) || (d.add(r), f.push({
|
|
574
|
+
key: r,
|
|
575
|
+
getValue: (c) => Pt(c, r)
|
|
573
576
|
}));
|
|
574
577
|
};
|
|
575
|
-
return n.forEach(
|
|
576
|
-
|
|
578
|
+
return n.forEach(s), a.forEach((r) => {
|
|
579
|
+
r.autoMerge && s(pe(r));
|
|
577
580
|
}), f;
|
|
578
581
|
}
|
|
579
582
|
function kt(t, n) {
|
|
580
|
-
const
|
|
581
|
-
n.map((
|
|
583
|
+
const a = t.length, o = new Map(
|
|
584
|
+
n.map((s) => [s.key, Array.from({ length: a }, () => 1)])
|
|
582
585
|
);
|
|
583
|
-
if (!
|
|
584
|
-
const d = t.map((
|
|
585
|
-
for (let
|
|
586
|
-
let
|
|
586
|
+
if (!a || !n.length) return o;
|
|
587
|
+
const d = t.map((s) => n.map((r) => r.getValue(s))), f = n.map(() => 0);
|
|
588
|
+
for (let s = 1; s <= a; s += 1) {
|
|
589
|
+
let r = !0;
|
|
587
590
|
for (let c = 0; c < n.length; c += 1) {
|
|
588
|
-
const p =
|
|
591
|
+
const p = s < a && r && d[s][c] === d[s - 1][c];
|
|
589
592
|
if (!p) {
|
|
590
|
-
const h = o.get(n[c].key),
|
|
591
|
-
h[
|
|
592
|
-
for (let C =
|
|
593
|
+
const h = o.get(n[c].key), u = f[c], w = s - u;
|
|
594
|
+
h[u] = w;
|
|
595
|
+
for (let C = u + 1; C < s; C += 1)
|
|
593
596
|
h[C] = 0;
|
|
594
|
-
f[c] =
|
|
597
|
+
f[c] = s;
|
|
595
598
|
}
|
|
596
|
-
|
|
599
|
+
r = p;
|
|
597
600
|
}
|
|
598
601
|
}
|
|
599
602
|
return o;
|
|
600
603
|
}
|
|
601
604
|
function Ct(t, n = "children") {
|
|
602
|
-
return t.some((
|
|
603
|
-
if (
|
|
604
|
-
const o =
|
|
605
|
+
return t.some((a) => {
|
|
606
|
+
if (a === null || typeof a != "object") return !1;
|
|
607
|
+
const o = a[n];
|
|
605
608
|
return Array.isArray(o) && o.length > 0;
|
|
606
609
|
});
|
|
607
610
|
}
|
|
608
611
|
function Et(t) {
|
|
609
612
|
const n = b(
|
|
610
613
|
() => St(t.columns(), t.mergeFields())
|
|
611
|
-
),
|
|
614
|
+
), a = b(() => n.value.length ? t.tableRef.value?.store?.states?.data?.value ?? t.data.value : t.data.value), o = b(() => {
|
|
612
615
|
if (!n.value.length || t.lazy())
|
|
613
616
|
return /* @__PURE__ */ new Map();
|
|
614
|
-
const f = t.treeProps()?.children ?? "children",
|
|
615
|
-
return Ct(
|
|
617
|
+
const f = t.treeProps()?.children ?? "children", s = a.value;
|
|
618
|
+
return Ct(s, f) ? /* @__PURE__ */ new Map() : kt(s, n.value);
|
|
616
619
|
});
|
|
617
620
|
return {
|
|
618
621
|
spanMethod: b(() => {
|
|
619
622
|
const f = t.userSpanMethod();
|
|
620
|
-
return n.value.length ? (
|
|
621
|
-
const
|
|
622
|
-
if (
|
|
623
|
-
const c =
|
|
623
|
+
return n.value.length ? (s) => {
|
|
624
|
+
const r = f?.(s);
|
|
625
|
+
if (r !== void 0) return r;
|
|
626
|
+
const c = s.column.property, p = c ? o.value.get(c)?.[s.rowIndex] : void 0;
|
|
624
627
|
if (!(p === void 0 || p === 1))
|
|
625
628
|
return { rowspan: p, colspan: 1 };
|
|
626
629
|
} : f;
|
|
@@ -643,66 +646,66 @@ function _t(t) {
|
|
|
643
646
|
};
|
|
644
647
|
}
|
|
645
648
|
function Mt(t) {
|
|
646
|
-
const n = b(() => _t(t())),
|
|
649
|
+
const n = b(() => _t(t())), a = E(n.value?.page ?? 1), o = E(n.value?.pageSize ?? 20);
|
|
647
650
|
O(
|
|
648
651
|
() => n.value?.page,
|
|
649
|
-
(
|
|
650
|
-
|
|
652
|
+
(r) => {
|
|
653
|
+
r !== void 0 && (a.value = r);
|
|
651
654
|
}
|
|
652
655
|
), O(
|
|
653
656
|
() => n.value?.pageSize,
|
|
654
|
-
(
|
|
655
|
-
|
|
657
|
+
(r) => {
|
|
658
|
+
r !== void 0 && (o.value = r);
|
|
656
659
|
}
|
|
657
660
|
);
|
|
658
661
|
const d = b(
|
|
659
|
-
() => n.value ?
|
|
662
|
+
() => n.value ? a.value : null
|
|
660
663
|
), f = b(
|
|
661
664
|
() => n.value ? o.value : null
|
|
662
665
|
);
|
|
663
|
-
function
|
|
664
|
-
o.value =
|
|
666
|
+
function s(r) {
|
|
667
|
+
o.value = r, a.value = 1;
|
|
665
668
|
}
|
|
666
669
|
return {
|
|
667
670
|
// 模板直接依赖这个布尔值,避免访问可能为 null 的配置。
|
|
668
671
|
enabled: b(() => n.value != null),
|
|
669
672
|
config: n,
|
|
670
|
-
currentPage:
|
|
673
|
+
currentPage: a,
|
|
671
674
|
pageSize: o,
|
|
672
675
|
requestPage: d,
|
|
673
676
|
requestPageSize: f,
|
|
674
|
-
setPageSize:
|
|
677
|
+
setPageSize: s
|
|
675
678
|
};
|
|
676
679
|
}
|
|
677
680
|
function Ft(t) {
|
|
678
681
|
const n = E(!1);
|
|
679
|
-
let
|
|
682
|
+
let a = null, o = 0;
|
|
680
683
|
async function d() {
|
|
681
|
-
const
|
|
682
|
-
if (!
|
|
683
|
-
|
|
684
|
-
const
|
|
684
|
+
const s = t.request();
|
|
685
|
+
if (!s) return;
|
|
686
|
+
a?.abort(), a = new AbortController();
|
|
687
|
+
const r = ++o, c = a;
|
|
685
688
|
n.value = !0;
|
|
686
689
|
try {
|
|
687
|
-
const p = await
|
|
690
|
+
const p = await s({
|
|
688
691
|
page: t.page(),
|
|
689
692
|
pageSize: t.pageSize(),
|
|
690
693
|
query: t.query(),
|
|
691
694
|
signal: c.signal
|
|
692
695
|
});
|
|
693
|
-
if (c.signal.aborted ||
|
|
696
|
+
if (c.signal.aborted || r !== o)
|
|
694
697
|
return;
|
|
695
698
|
t.onData?.(p), t.onLoaded?.(p);
|
|
696
699
|
} catch (p) {
|
|
697
|
-
if (c.signal.aborted ||
|
|
700
|
+
if (c.signal.aborted || r !== o)
|
|
698
701
|
return;
|
|
699
702
|
t.onError?.(p);
|
|
700
703
|
} finally {
|
|
701
|
-
|
|
704
|
+
r === o && (n.value = !1);
|
|
702
705
|
}
|
|
703
706
|
}
|
|
704
707
|
function f() {
|
|
705
|
-
|
|
708
|
+
a?.abort(), o += 1, n.value = !1;
|
|
706
709
|
}
|
|
707
710
|
return be(f), { loading: n, load: d, cancel: f };
|
|
708
711
|
}
|
|
@@ -749,10 +752,10 @@ const Rt = /* @__PURE__ */ ge({
|
|
|
749
752
|
},
|
|
750
753
|
setup(t, {
|
|
751
754
|
attrs: n,
|
|
752
|
-
emit:
|
|
755
|
+
emit: a,
|
|
753
756
|
expose: o
|
|
754
757
|
}) {
|
|
755
|
-
const d =
|
|
758
|
+
const d = Te(), f = E(null), s = E([]), r = E(0), c = b(() => ({
|
|
756
759
|
...I(t.filter?.schema ?? []),
|
|
757
760
|
...t.filter?.defaultValue ?? {},
|
|
758
761
|
...t.filter?.model ?? {}
|
|
@@ -775,10 +778,10 @@ const Rt = /* @__PURE__ */ ge({
|
|
|
775
778
|
}, {
|
|
776
779
|
deep: !0
|
|
777
780
|
});
|
|
778
|
-
const
|
|
781
|
+
const u = Mt(() => t.pagination);
|
|
779
782
|
let w = !1;
|
|
780
783
|
function C(i) {
|
|
781
|
-
i !==
|
|
784
|
+
i !== u.currentPage.value && (u.enabled.value && (w = !0), u.currentPage.value = i);
|
|
782
785
|
}
|
|
783
786
|
const F = b(() => {
|
|
784
787
|
const i = t.rowKey;
|
|
@@ -789,21 +792,21 @@ const Rt = /* @__PURE__ */ ge({
|
|
|
789
792
|
cancel: B
|
|
790
793
|
} = Ft({
|
|
791
794
|
request: () => t.request,
|
|
792
|
-
page: () =>
|
|
793
|
-
pageSize: () =>
|
|
795
|
+
page: () => u.requestPage.value,
|
|
796
|
+
pageSize: () => u.requestPageSize.value,
|
|
794
797
|
query: () => h.value,
|
|
795
798
|
onData: (i) => {
|
|
796
|
-
|
|
799
|
+
s.value = i.data, r.value = i.total;
|
|
797
800
|
},
|
|
798
|
-
onLoaded: (i) =>
|
|
799
|
-
onError: (i) =>
|
|
801
|
+
onLoaded: (i) => a("loaded", i),
|
|
802
|
+
onError: (i) => a("error", i)
|
|
800
803
|
}), z = b(() => P.value), L = b(() => {
|
|
801
|
-
if (t.request) return
|
|
804
|
+
if (t.request) return s.value;
|
|
802
805
|
if (!t.data) return [];
|
|
803
|
-
if (!
|
|
804
|
-
const i = (
|
|
805
|
-
return t.data.slice(i, i +
|
|
806
|
-
}), D = b(() => t.request ?
|
|
806
|
+
if (!u.config.value) return t.data;
|
|
807
|
+
const i = (u.currentPage.value - 1) * u.pageSize.value;
|
|
808
|
+
return t.data.slice(i, i + u.pageSize.value);
|
|
809
|
+
}), D = b(() => t.request ? r.value : t.data?.length ?? 0), {
|
|
807
810
|
spanMethod: N
|
|
808
811
|
} = Et({
|
|
809
812
|
tableRef: f,
|
|
@@ -814,15 +817,15 @@ const Rt = /* @__PURE__ */ ge({
|
|
|
814
817
|
treeProps: () => n.treeProps,
|
|
815
818
|
lazy: () => !!n.lazy
|
|
816
819
|
});
|
|
817
|
-
async function
|
|
820
|
+
async function q(i) {
|
|
818
821
|
i?.page !== void 0 && C(i.page), await R();
|
|
819
822
|
}
|
|
820
|
-
async function
|
|
823
|
+
async function A() {
|
|
821
824
|
h.value = {
|
|
822
825
|
...p
|
|
823
826
|
}, C(1), await R();
|
|
824
827
|
}
|
|
825
|
-
async function
|
|
828
|
+
async function j() {
|
|
826
829
|
const i = {
|
|
827
830
|
...c.value
|
|
828
831
|
};
|
|
@@ -833,30 +836,30 @@ const Rt = /* @__PURE__ */ ge({
|
|
|
833
836
|
}, C(1), await R();
|
|
834
837
|
}
|
|
835
838
|
O(() => t.request, (i) => {
|
|
836
|
-
|
|
837
|
-
}), O(() => [
|
|
839
|
+
s.value = [], r.value = 0, i ? q() : B();
|
|
840
|
+
}), O(() => [u.requestPage.value, u.requestPageSize.value], () => {
|
|
838
841
|
if (w) {
|
|
839
842
|
w = !1;
|
|
840
843
|
return;
|
|
841
844
|
}
|
|
842
|
-
t.request &&
|
|
845
|
+
t.request && q();
|
|
843
846
|
});
|
|
844
847
|
const K = new Proxy({}, {
|
|
845
848
|
get(i, m) {
|
|
846
|
-
if (m === "reload") return
|
|
847
|
-
if (m === "search") return
|
|
848
|
-
if (m === "resetFilter") return
|
|
849
|
+
if (m === "reload") return q;
|
|
850
|
+
if (m === "search") return A;
|
|
851
|
+
if (m === "resetFilter") return j;
|
|
849
852
|
const S = f.value;
|
|
850
853
|
if (!S) return;
|
|
851
|
-
const
|
|
852
|
-
return typeof
|
|
854
|
+
const x = S[m];
|
|
855
|
+
return typeof x == "function" ? x.bind(S) : x;
|
|
853
856
|
},
|
|
854
857
|
has(i, m) {
|
|
855
858
|
return m === "reload" || m === "search" || m === "resetFilter" ? !0 : f.value != null && m in f.value;
|
|
856
859
|
}
|
|
857
860
|
});
|
|
858
861
|
o(K), Ie(() => {
|
|
859
|
-
t.request &&
|
|
862
|
+
t.request && q();
|
|
860
863
|
});
|
|
861
864
|
const $ = () => Object.fromEntries(Object.entries(d).filter(([i]) => i.startsWith("filter-")).map(([i, m]) => [i.slice(7), m]));
|
|
862
865
|
return () => {
|
|
@@ -873,14 +876,14 @@ const Rt = /* @__PURE__ */ ge({
|
|
|
873
876
|
...t.filter.formConfig ?? {}
|
|
874
877
|
},
|
|
875
878
|
"onUpdate:modelValue": (S) => {
|
|
876
|
-
for (const
|
|
879
|
+
for (const x of Object.keys(p)) delete p[x];
|
|
877
880
|
Object.assign(p, S);
|
|
878
881
|
},
|
|
879
882
|
onSubmit: () => {
|
|
880
|
-
|
|
883
|
+
A();
|
|
881
884
|
},
|
|
882
885
|
onReset: () => {
|
|
883
|
-
|
|
886
|
+
j();
|
|
884
887
|
}
|
|
885
888
|
}, $()) : null, m = g(it, {
|
|
886
889
|
...n,
|
|
@@ -895,36 +898,36 @@ const Rt = /* @__PURE__ */ ge({
|
|
|
895
898
|
});
|
|
896
899
|
return g("div", {
|
|
897
900
|
class: "el-table-pro"
|
|
898
|
-
}, [i, Be(m, [[ct, z.value]]),
|
|
899
|
-
currentPage:
|
|
900
|
-
pageSize:
|
|
901
|
+
}, [i, Be(m, [[ct, z.value]]), u.enabled.value ? g(dt, {
|
|
902
|
+
currentPage: u.currentPage.value,
|
|
903
|
+
pageSize: u.pageSize.value,
|
|
901
904
|
total: D.value,
|
|
902
|
-
pageSizes: [...
|
|
903
|
-
pagerCount:
|
|
904
|
-
layout:
|
|
905
|
-
background:
|
|
905
|
+
pageSizes: [...u.config.value?.pageSizes ?? []],
|
|
906
|
+
pagerCount: u.config.value?.pagerCount,
|
|
907
|
+
layout: u.config.value?.layout,
|
|
908
|
+
background: u.config.value?.background,
|
|
906
909
|
"onUpdate:currentPage": (S) => {
|
|
907
|
-
|
|
910
|
+
u.currentPage.value = S;
|
|
908
911
|
},
|
|
909
912
|
"onUpdate:pageSize": (S) => {
|
|
910
|
-
|
|
913
|
+
u.setPageSize(S);
|
|
911
914
|
}
|
|
912
915
|
}) : null]);
|
|
913
916
|
};
|
|
914
917
|
}
|
|
915
|
-
}),
|
|
916
|
-
function
|
|
917
|
-
|
|
918
|
-
const
|
|
919
|
-
|
|
918
|
+
}), qt = [he, Rt];
|
|
919
|
+
function jt(t) {
|
|
920
|
+
qt.forEach((n) => {
|
|
921
|
+
const a = n.name;
|
|
922
|
+
a && t.component(a, n);
|
|
920
923
|
});
|
|
921
924
|
}
|
|
922
|
-
const
|
|
925
|
+
const At = { install: jt };
|
|
923
926
|
export {
|
|
924
927
|
he as ElFormPro,
|
|
925
928
|
Rt as ElTablePro,
|
|
926
929
|
Ot as TABLE_PRO_DEFAULT_PAGINATION,
|
|
927
|
-
|
|
928
|
-
|
|
930
|
+
At as default,
|
|
931
|
+
jt as install,
|
|
929
932
|
_t as normalizePagination
|
|
930
933
|
};
|