@mineadmin/form
Version:
基于element plus的form组件,进行封装,提供方便、灵活的配置和使用方式
2 lines (1 loc) • 12.1 kB
JavaScript
(function(m,a){typeof exports=="object"&&typeof module<"u"?a(exports,require("vue"),require("element-plus")):typeof define=="function"&&define.amd?define(["exports","vue","element-plus"],a):a((m=typeof globalThis<"u"?globalThis:m||self).MaTable={},m.Vue,m.ElementPlus)})(this,function(m,a,s){"use strict";const X={Radio:s.ElRadioGroup,Checkbox:s.ElCheckboxGroup,CheckboxButton:s.ElCheckboxGroup,Input:s.ElInput,Mention:s.ElMention,Autocomplete:s.ElAutocomplete,InputNumber:s.ElInputNumber,Select:s.ElSelect,Cascader:s.ElCascader,Switch:s.ElSwitch,Slider:s.ElSlider,TimePicker:s.ElTimePicker,DatePicker:s.ElDatePicker,Rate:s.ElRate,ColorPicker:s.ElColorPicker,Transfer:s.ElTransfer,TimeSelect:s.ElTimeSelect,SelectV2:s.ElSelectV2,TreeSelect:s.ElTreeSelect,RadioButton:s.ElRadioGroup};var ye=typeof global=="object"&&global&&global.Object===Object&&global,ge=typeof self=="object"&&self&&self.Object===Object&&self,A=ye||ge||Function("return this")(),E=A.Symbol,Y=Object.prototype,_e=Y.hasOwnProperty,be=Y.toString,V=E?E.toStringTag:void 0,we=Object.prototype.toString,je="[object Null]",Se="[object Undefined]",Z=E?E.toStringTag:void 0;function ee(e){return e==null?e===void 0?Se:je:Z&&Z in Object(e)?function(t){var n=_e.call(t,V),o=t[V];try{t[V]=void 0;var l=!0}catch{}var i=be.call(t);return l&&(n?t[V]=o:delete t[V]),i}(e):function(t){return we.call(t)}(e)}var Oe="[object Symbol]";function D(e){return typeof e=="symbol"||function(t){return t!=null&&typeof t=="object"}(e)&&ee(e)==Oe}var B=Array.isArray,Ee=1/0,te=E?E.prototype:void 0,ne=te?te.toString:void 0;function oe(e){if(typeof e=="string")return e;if(B(e))return function(n,o){for(var l=-1,i=n==null?0:n.length,c=Array(i);++l<i;)c[l]=o(n[l],l,n);return c}(e,oe)+"";if(D(e))return ne?ne.call(e):"";var t=e+"";return t=="0"&&1/e==-Ee?"-0":t}function z(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var Pe="[object AsyncFunction]",Ce="[object Function]",xe="[object GeneratorFunction]",Ve="[object Proxy]",re,G=A["__core-js_shared__"],le=(re=/[^.]+$/.exec(G&&G.keys&&G.keys.IE_PROTO||""))?"Symbol(src)_1."+re:"",Te=Function.prototype.toString,Fe=/^\[object .+?Constructor\]$/,Me=Function.prototype,ke=Object.prototype,ze=Me.toString,Ie=ke.hasOwnProperty,Ne=RegExp("^"+ze.call(Ie).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function $e(e){if(!z(e)||(t=e,le&&le in t))return!1;var t,n=function(o){if(!z(o))return!1;var l=ee(o);return l==Ce||l==xe||l==Pe||l==Ve}(e)?Ne:Fe;return n.test(function(o){if(o!=null){try{return Te.call(o)}catch{}try{return o+""}catch{}}return""}(e))}function U(e,t){var n=function(o,l){return o==null?void 0:o[l]}(e,t);return $e(n)?n:void 0}var ae=function(){try{var e=U(Object,"defineProperty");return e({},"",{}),e}catch{}}(),Le=9007199254740991,Re=/^(?:0|[1-9]\d*)$/;function Ae(e,t){var n=typeof e;return!!(t=t??Le)&&(n=="number"||n!="symbol"&&Re.test(e))&&e>-1&&e%1==0&&e<t}function ie(e,t){return e===t||e!=e&&t!=t}var De=Object.prototype.hasOwnProperty;function Be(e,t,n){var o=e[t];De.call(e,t)&&ie(o,n)&&(n!==void 0||t in e)||function(l,i,c){i=="__proto__"&&ae?ae(l,i,{configurable:!0,enumerable:!0,value:c,writable:!0}):l[i]=c}(e,t,n)}var Ge=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,Ue=/^\w*$/,T=U(Object,"create"),qe=Object.prototype.hasOwnProperty,He=Object.prototype.hasOwnProperty;function b(e){var t=-1,n=e==null?0:e.length;for(this.clear();++t<n;){var o=e[t];this.set(o[0],o[1])}}function I(e,t){for(var n=e.length;n--;)if(ie(e[n][0],t))return n;return-1}b.prototype.clear=function(){this.__data__=T?T(null):{},this.size=0},b.prototype.delete=function(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t},b.prototype.get=function(e){var t=this.__data__;if(T){var n=t[e];return n==="__lodash_hash_undefined__"?void 0:n}return qe.call(t,e)?t[e]:void 0},b.prototype.has=function(e){var t=this.__data__;return T?t[e]!==void 0:He.call(t,e)},b.prototype.set=function(e,t){var n=this.__data__;return this.size+=this.has(e)?0:1,n[e]=T&&t===void 0?"__lodash_hash_undefined__":t,this};var We=Array.prototype.splice;function P(e){var t=-1,n=e==null?0:e.length;for(this.clear();++t<n;){var o=e[t];this.set(o[0],o[1])}}P.prototype.clear=function(){this.__data__=[],this.size=0},P.prototype.delete=function(e){var t=this.__data__,n=I(t,e);return!(n<0)&&(n==t.length-1?t.pop():We.call(t,n,1),--this.size,!0)},P.prototype.get=function(e){var t=this.__data__,n=I(t,e);return n<0?void 0:t[n][1]},P.prototype.has=function(e){return I(this.__data__,e)>-1},P.prototype.set=function(e,t){var n=this.__data__,o=I(n,e);return o<0?(++this.size,n.push([e,t])):n[o][1]=t,this};var Je=U(A,"Map");function N(e,t){var n,o,l=e.__data__;return((o=typeof(n=t))=="string"||o=="number"||o=="symbol"||o=="boolean"?n!=="__proto__":n===null)?l[typeof t=="string"?"string":"hash"]:l.map}function w(e){var t=-1,n=e==null?0:e.length;for(this.clear();++t<n;){var o=e[t];this.set(o[0],o[1])}}w.prototype.clear=function(){this.size=0,this.__data__={hash:new b,map:new(Je||P),string:new b}},w.prototype.delete=function(e){var t=N(this,e).delete(e);return this.size-=t?1:0,t},w.prototype.get=function(e){return N(this,e).get(e)},w.prototype.has=function(e){return N(this,e).has(e)},w.prototype.set=function(e,t){var n=N(this,e),o=n.size;return n.set(e,t),this.size+=n.size==o?0:1,this};var Ke="Expected a function";function q(e,t){if(typeof e!="function"||t!=null&&typeof t!="function")throw new TypeError(Ke);var n=function(){var o=arguments,l=t?t.apply(this,o):o[0],i=n.cache;if(i.has(l))return i.get(l);var c=e.apply(this,o);return n.cache=i.set(l,c)||i,c};return n.cache=new(q.Cache||w),n}q.Cache=w;var ue,H,W,Qe=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,Xe=/\\(\\)?/g,Ye=(ue=function(e){var t=[];return e.charCodeAt(0)===46&&t.push(""),e.replace(Qe,function(n,o,l,i){t.push(l?i.replace(Xe,"$1"):o||n)}),t},H=q(ue,function(e){return W.size===500&&W.clear(),e}),W=H.cache,H);function ce(e,t){return B(e)?e:function(n,o){if(B(n))return!1;var l=typeof n;return!(l!="number"&&l!="symbol"&&l!="boolean"&&n!=null&&!D(n))||Ue.test(n)||!Ge.test(n)||o!=null&&n in Object(o)}(e,t)?[e]:Ye(function(n){return n==null?"":oe(n)}(e))}var Ze=1/0;function se(e){if(typeof e=="string"||D(e))return e;var t=e+"";return t=="0"&&1/e==-Ze?"-0":t}function et(e,t,n){var o=e==null?void 0:function(l,i){for(var c=0,j=(i=ce(i,l)).length;l!=null&&c<j;)l=l[se(i[c++])];return c&&c==j?l:void 0}(e,t);return o===void 0?n:o}function tt(e,t,n){return e==null?e:function(o,l,i){if(!z(o))return o;for(var c=-1,j=(l=ce(l,o)).length,F=j-1,g=o;g!=null&&++c<j;){var v=se(l[c]),C=i;if(v==="__proto__"||v==="constructor"||v==="prototype")return o;if(c!=F){var M=g[v];(C=void 0)==void 0&&(C=z(M)?M:Ae(l[c+1])?[]:{})}Be(g,v,C),g=g[v]}return o}(e,t,n)}function J(e){return typeof e=="function"||Object.prototype.toString.call(e)==="[object Object]"&&!a.isVNode(e)}const fe=a.defineComponent({name:"MaForm",props:{modelValue:{type:Object,default:()=>({})},options:{type:Object,default:()=>({})},items:{type:Array,default:()=>[]}},directives:{Loading:s.ElLoadingDirective},setup(e,{slots:t,attrs:n,expose:o}){const l=a.ref(e.modelValue),i=a.ref(e.options),c=a.ref(e.items),j=a.inject("MaFormOptions"),F=a.ref(!1),g=a.ref(),v=a.ref(!1),C=()=>{v.value=window.innerWidth<768};a.onMounted(async()=>{F.value=!0,window.addEventListener("resize",C)}),a.onBeforeUnmount(()=>{F.value=!1,window.removeEventListener("resize",C)});const M=(u,r)=>{var y,S,k,O;const p=typeof r.prop=="function"?r.prop():r.prop;let h=null;return(y=u==null?void 0:u.children)!=null&&y.default?h=(S=u==null?void 0:u.children)==null?void 0:S.default:(k=r==null?void 0:r.renderSlots)!=null&&k.default?h=(O=r.renderSlots)==null?void 0:O.default:r!=null&&r.children&&(h=K((r==null?void 0:r.children)??[])),a.h(u,{ref:"formItem-{$prop}",modelValue:et(l.value,p),"onUpdate:modelValue":_=>tt(l.value,p,_),...r==null?void 0:r.renderProps},{...r==null?void 0:r.renderSlots,default:h})},K=u=>{const{layout:r}=i.value;return u==null?void 0:u.map(p=>{let h;const{label:y,prop:S,itemProps:k,hide:O,show:_,cols:Q,itemSlots:f}=p,$=typeof O=="function"?O:()=>O===!0,L=typeof _=="function"?_:()=>_!==!1,he=typeof S=="function"?S():S,me=()=>a.withDirectives(a.createVNode(s.ElFormItem,a.mergeProps({ref:`formItemRef-${he}`,label:typeof y=="function"?y():y,prop:he},k),{default:()=>{var x;return((x=f==null?void 0:f.default)==null?void 0:x.call(f))??p.render?(d=>{if(typeof d.render=="string"){const R=d.render[0].toUpperCase().concat(d.render.substring(1,d.render.length));if(X[R])return M(X[R],d)}else if(typeof d.render=="function"){const R=d.render;return M(R({item:d,formData:l.value}),d)}})(p):null},label:f!=null&&f.label?x=>{var d;return((d=f==null?void 0:f.label)==null?void 0:d.call(f,x))??null}:void 0,error:f!=null&&f.error?x=>{var d;return((d=f==null?void 0:f.error)==null?void 0:d.call(f,x))??null}:void 0}),[[a.vShow,$(p,l.value)!==!0]]);return a.createVNode(a.Fragment,null,[L(p,l.value)&&(r===void 0||r==="flex"?a.createVNode(a.resolveComponent("el-col"),Q,J(h=me())?h:{default:()=>[h]}):me())])})},nt=()=>{var $;let u,r;const{layout:p,flex:h,grid:y,loading:S,loadingConfig:k,containerClass:O,footerSlot:_,...Q}=i.value,{style:f}=y??{};return a.createVNode(a.Fragment,null,[a.createVNode(s.ElForm,a.mergeProps({model:l,ref:g},Q,n),{default:()=>{var L;return[((L=t.default)==null?void 0:L.call(t))??(p===void 0||p==="flex"?a.createVNode(a.resolveComponent("el-row"),a.mergeProps({gutter:v.value?0:15},h),J(u=K(c.value??[]))?u:{default:()=>[u]}):a.createVNode(a.resolveComponent("el-space"),a.mergeProps({style:f??"width: 100%"},y),J(r=K(c.value??[]))?r:{default:()=>[r]}))]}}),(($=t.footer)==null?void 0:$.call(t))??(_?a.h(_):null)])},de=()=>{const{loading:u,loadingConfig:r,containerClass:p}=i.value;return a.withDirectives(a.createVNode("div",{className:["mineadmin-form",p],"element-loading-svg":(r==null?void 0:r.svg)??'<svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 1024 1024"><path fill="currentColor" d="M512 64a32 32 0 0 1 32 32v192a32 32 0 0 1-64 0V96a32 32 0 0 1 32-32m0 640a32 32 0 0 1 32 32v192a32 32 0 1 1-64 0V736a32 32 0 0 1 32-32m448-192a32 32 0 0 1-32 32H736a32 32 0 1 1 0-64h192a32 32 0 0 1 32 32m-640 0a32 32 0 0 1-32 32H96a32 32 0 0 1 0-64h192a32 32 0 0 1 32 32M195.2 195.2a32 32 0 0 1 45.248 0L376.32 331.008a32 32 0 0 1-45.248 45.248L195.2 240.448a32 32 0 0 1 0-45.248m452.544 452.544a32 32 0 0 1 45.248 0L828.8 783.552a32 32 0 0 1-45.248 45.248L647.744 692.992a32 32 0 0 1 0-45.248M828.8 195.264a32 32 0 0 1 0 45.184L692.992 376.32a32 32 0 0 1-45.248-45.248l135.808-135.808a32 32 0 0 1 45.248 0m-452.544 452.48a32 32 0 0 1 0 45.248L240.448 828.8a32 32 0 0 1-45.248-45.248l135.808-135.808a32 32 0 0 1 45.248 0"/></svg>',"element-loading-svg-view-box":(r==null?void 0:r.viewBox)??"-9, -9, 50, 50","element-loading-text":(r==null?void 0:r.text)??null,"element-loading-spinner":(r==null?void 0:r.spinner)??null,"element-loading-background":(r==null?void 0:r.spinner)??null,"element-loading-custom-class":(r==null?void 0:r.customClass)??null},[nt()]),[[a.resolveDirective("loading"),u]])},ve=u=>c.value=u;return o({setLoadingState:u=>i.value.loading=u,setOptions:u=>i.value=Object.assign(i.value,u),getOptions:()=>i.value,setItems:ve,getItems:()=>c.value,appendItem:u=>c.value.push(u),removeItem:u=>ve(c.value.filter(r=>(typeof r.prop=="function"?r.prop():r.prop)!==u)),getItemByProp:u=>{var r;return((r=c.value.filter(p=>(typeof p.prop=="function"?p.prop():p.prop)===u))==null?void 0:r[0])??null},isMobileState:()=>v.value,getElFormRef:()=>g.value}),()=>j.ssr?F.value&&de():de()}}),pe={install(e,t){e.component(fe.name,fe),e.provide("MaFormOptions",t??{ssr:!1})}};m.MaForm=pe,m.default=pe,m.useForm=function(e){return new Promise((t,n)=>{const o=a.getCurrentInstance();a.onMounted(async()=>{await a.nextTick(()=>{if(o&&o.refs[e]){const l=o.refs[e];t({...l})}else n("[@mineadmin/form]: not found ref for ma-form component")})})})},Object.defineProperties(m,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})});