UNPKG

@mineadmin/form

Version:

基于element plus的form组件,进行封装,提供方便、灵活的配置和使用方式

2 lines (1 loc) 12.8 kB
(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,p){"use strict";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")(),x=A.Symbol,Q=Object.prototype,_e=Q.hasOwnProperty,be=Q.toString,F=x?x.toStringTag:void 0,we=Object.prototype.toString,je="[object Null]",Se="[object Undefined]",X=x?x.toStringTag:void 0;function Y(e){return e==null?e===void 0?Se:je:X&&X in Object(e)?function(t){var n=_e.call(t,F),r=t[F];try{t[F]=void 0;var l=!0}catch{}var c=be.call(t);return l&&(n?t[F]=r:delete t[F]),c}(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)&&Y(e)==Oe}var B=Array.isArray,Ee=1/0,Z=x?x.prototype:void 0,ee=Z?Z.toString:void 0;function te(e){if(typeof e=="string")return e;if(B(e))return function(n,r){for(var l=-1,c=n==null?0:n.length,s=Array(c);++l<c;)s[l]=r(n[l],l,n);return s}(e,te)+"";if(D(e))return ee?ee.call(e):"";var t=e+"";return t=="0"&&1/e==-Ee?"-0":t}function k(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var xe="[object AsyncFunction]",Pe="[object Function]",Ce="[object GeneratorFunction]",Ve="[object Proxy]",ne,G=A["__core-js_shared__"],oe=(ne=/[^.]+$/.exec(G&&G.keys&&G.keys.IE_PROTO||""))?"Symbol(src)_1."+ne:"",Ne=Function.prototype.toString,Fe=/^\[object .+?Constructor\]$/,Te=Function.prototype,ze=Object.prototype,Me=Te.toString,ke=ze.hasOwnProperty,Ie=RegExp("^"+Me.call(ke).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function $e(e){if(!k(e)||(t=e,oe&&oe in t))return!1;var t,n=function(r){if(!k(r))return!1;var l=Y(r);return l==Pe||l==Ce||l==xe||l==Ve}(e)?Ie:Fe;return n.test(function(r){if(r!=null){try{return Ne.call(r)}catch{}try{return r+""}catch{}}return""}(e))}function U(e,t){var n=function(r,l){return r==null?void 0:r[l]}(e,t);return $e(n)?n:void 0}var re=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 le(e,t){return e===t||e!=e&&t!=t}var De=Object.prototype.hasOwnProperty;function Be(e,t,n){var r=e[t];De.call(e,t)&&le(r,n)&&(n!==void 0||t in e)||function(l,c,s){c=="__proto__"&&re?re(l,c,{configurable:!0,enumerable:!0,value:s,writable:!0}):l[c]=s}(e,t,n)}var Ge=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,Ue=/^\w*$/,T=U(Object,"create"),qe=Object.prototype.hasOwnProperty,He=Object.prototype.hasOwnProperty;function w(e){var t=-1,n=e==null?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}function I(e,t){for(var n=e.length;n--;)if(le(e[n][0],t))return n;return-1}w.prototype.clear=function(){this.__data__=T?T(null):{},this.size=0},w.prototype.delete=function(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t},w.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},w.prototype.has=function(e){var t=this.__data__;return T?t[e]!==void 0:He.call(t,e)},w.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 r=e[t];this.set(r[0],r[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__,r=I(n,e);return r<0?(++this.size,n.push([e,t])):n[r][1]=t,this};var Je=U(A,"Map");function $(e,t){var n,r,l=e.__data__;return((r=typeof(n=t))=="string"||r=="number"||r=="symbol"||r=="boolean"?n!=="__proto__":n===null)?l[typeof t=="string"?"string":"hash"]:l.map}function j(e){var t=-1,n=e==null?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}j.prototype.clear=function(){this.size=0,this.__data__={hash:new w,map:new(Je||P),string:new w}},j.prototype.delete=function(e){var t=$(this,e).delete(e);return this.size-=t?1:0,t},j.prototype.get=function(e){return $(this,e).get(e)},j.prototype.has=function(e){return $(this,e).has(e)},j.prototype.set=function(e,t){var n=$(this,e),r=n.size;return n.set(e,t),this.size+=n.size==r?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 r=arguments,l=t?t.apply(this,r):r[0],c=n.cache;if(c.has(l))return c.get(l);var s=e.apply(this,r);return n.cache=c.set(l,s)||c,s};return n.cache=new(q.Cache||j),n}q.Cache=j;var ae,H,W,Qe=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,Xe=/\\(\\)?/g,Ye=(ae=function(e){var t=[];return e.charCodeAt(0)===46&&t.push(""),e.replace(Qe,function(n,r,l,c){t.push(l?c.replace(Xe,"$1"):r||n)}),t},H=q(ae,function(e){return W.size===500&&W.clear(),e}),W=H.cache,H);function ie(e,t){return B(e)?e:function(n,r){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)||r!=null&&n in Object(r)}(e,t)?[e]:Ye(function(n){return n==null?"":te(n)}(e))}var Ze=1/0;function ue(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 r=e==null?void 0:function(l,c){for(var s=0,S=(c=ie(c,l)).length;l!=null&&s<S;)l=l[ue(c[s++])];return s&&s==S?l:void 0}(e,t);return r===void 0?n:r}function tt(e,t,n){return e==null?e:function(r,l,c){if(!k(r))return r;for(var s=-1,S=(l=ie(l,r)).length,z=S-1,_=r;_!=null&&++s<S;){var h=ue(l[s]),C=c;if(h==="__proto__"||h==="constructor"||h==="prototype")return r;if(s!=z){var V=_[h];(C=void 0)==void 0&&(C=k(V)?V:Ae(l[s+1])?[]:{})}Be(_,h,C),_=_[h]}return r}(e,t,n)}const ce={Radio:p.ElRadioGroup,Checkbox:p.ElCheckboxGroup,CheckboxButton:p.ElCheckboxGroup,Input:p.ElInput,Mention:p.ElMention,Autocomplete:p.ElAutocomplete,InputNumber:p.ElInputNumber,Select:p.ElSelect,Cascader:p.ElCascader,Switch:p.ElSwitch,Slider:p.ElSlider,TimePicker:p.ElTimePicker,DatePicker:p.ElDatePicker,Rate:p.ElRate,ColorPicker:p.ElColorPicker,Transfer:p.ElTransfer,TimeSelect:p.ElTimeSelect,SelectV2:p.ElSelectV2,TreeSelect:p.ElTreeSelect,RadioButton:p.ElRadioGroup};function J(e){return typeof e=="function"||Object.prototype.toString.call(e)==="[object Object]"&&!a.isVNode(e)}const se=a.defineComponent({name:"MaForm",props:{modelValue:{type:Object,default:()=>({})},options:{type:Object,default:()=>({})},items:{type:Array,default:()=>[]}},directives:{Loading:p.ElLoadingDirective},setup(e,{slots:t,attrs:n,expose:r}){const l=a.ref(e.modelValue),c=a.ref(e.options),s=a.ref(e.items),S=a.inject("MaFormOptions"),z=a.ref(!1),_=a.ref(),h=a.ref(!1),C=()=>{h.value=window.innerWidth<768};a.onMounted(async()=>{z.value=!0,window.addEventListener("resize",C)}),a.onBeforeUnmount(()=>{z.value=!1,window.removeEventListener("resize",C)});const V=(i,o)=>{var y,O,f,E,g;const d=typeof o.prop=="function"?o.prop():o.prop;let v=null;return(y=i==null?void 0:i.children)!=null&&y.default?v=(O=i==null?void 0:i.children)==null?void 0:O.default:(f=o==null?void 0:o.renderSlots)!=null&&f.default?v=(E=o.renderSlots)==null?void 0:E.default:o!=null&&o.children&&(v=K((o==null?void 0:o.children)??[])),a.h(i,{ref:"formItem-{$prop}",modelValue:et(l.value,d),"onUpdate:modelValue":M=>tt(l.value,d,M),...o==null?void 0:o.renderProps},{...(o==null?void 0:o.renderSlots)??null,default:o!=null&&o.children&&!((g=o.renderSlots)!=null&&g.default)&&typeof i.type=="string"?()=>v:v})},nt=i=>{if(typeof i.render=="string"){const o=i.render[0].toUpperCase().concat(i.render.substring(1,i.render.length));if(ce[o])return V(ce[o],i)}else{if(typeof i.render=="function"){const o=i.render;return V(o({item:i,formData:l.value}),i)}if(!i.render)return V((()=>a.createVNode("div",null,null))({item:i,formData:l.value}),i)}},K=i=>{const{layout:o}=c.value;return i==null?void 0:i.map(d=>{let v;const{label:y,prop:O,itemProps:f,hide:E,show:g,cols:M,itemSlots:u}=d,L=typeof E=="function"?E:()=>E===!0,R=typeof g=="function"?g:()=>g!==!1,ve=typeof O=="function"?O():O,he=()=>a.withDirectives(a.createVNode(p.ElFormItem,a.mergeProps({ref:`formItemRef-${ve}`,label:typeof y=="function"?y():y,prop:ve},f),{default:()=>{var N,b,me;return a.createVNode(a.Fragment,null,[((N=u==null?void 0:u.default)==null?void 0:N.call(u))??nt(d),a.createVNode("div",null,[((f==null?void 0:f.help)||(u==null?void 0:u.help))&&a.createVNode("div",{style:"font-size:12px; line-height: 22px; color: #909399"},[((b=u==null?void 0:u.help)==null?void 0:b.call(u,d))||(f==null?void 0:f.help)]),((f==null?void 0:f.extra)||(u==null?void 0:u.extra))&&a.createVNode("div",{style:"font-size:12px; line-height: 22px; color: #909399"},[((me=u==null?void 0:u.extra)==null?void 0:me.call(u,d))||(f==null?void 0:f.extra)])])])},label:u!=null&&u.label?N=>{var b;return((b=u==null?void 0:u.label)==null?void 0:b.call(u,N))??null}:void 0,error:u!=null&&u.error?N=>{var b;return((b=u==null?void 0:u.error)==null?void 0:b.call(u,N))??null}:void 0}),[[a.vShow,L(d,l.value)!==!0]]);return a.createVNode(a.Fragment,null,[R(d,l.value)&&(o===void 0||o==="flex"?a.createVNode(a.resolveComponent("el-col"),M,J(v=he())?v:{default:()=>[v]}):he())])})},ot=()=>{var L;let i,o;const{layout:d,flex:v,grid:y,loading:O,loadingConfig:f,containerClass:E,footerSlot:g,...M}=c.value,{style:u}=y??{};return a.createVNode(a.Fragment,null,[a.createVNode(p.ElForm,a.mergeProps({model:l,ref:_},M,n),{default:()=>{var R;return[((R=t.default)==null?void 0:R.call(t))??(d===void 0||d==="flex"?a.createVNode(a.resolveComponent("el-row"),a.mergeProps({gutter:h.value?0:15},v),J(i=K(s.value??[]))?i:{default:()=>[i]}):a.createVNode(a.resolveComponent("el-space"),a.mergeProps({style:u??"width: 100%"},y),J(o=K(s.value??[]))?o:{default:()=>[o]}))]}}),((L=t.footer)==null?void 0:L.call(t))??(g?a.h(g):null)])},de=()=>{const{loading:i,loadingConfig:o,containerClass:d}=c.value;return a.withDirectives(a.createVNode("div",{className:["mineadmin-form",d],"element-loading-svg":(o==null?void 0:o.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":(o==null?void 0:o.viewBox)??"-9, -9, 50, 50","element-loading-text":(o==null?void 0:o.text)??null,"element-loading-spinner":(o==null?void 0:o.spinner)??null,"element-loading-background":(o==null?void 0:o.spinner)??null,"element-loading-custom-class":(o==null?void 0:o.customClass)??null},[ot()]),[[a.resolveDirective("loading"),i]])},fe=i=>s.value=i;return r({setLoadingState:i=>c.value.loading=i,setOptions:i=>c.value=Object.assign(c.value,i),getOptions:()=>c.value,setItems:fe,getItems:()=>s.value,appendItem:i=>s.value.push(i),removeItem:i=>fe(s.value.filter(o=>(typeof o.prop=="function"?o.prop():o.prop)!==i)),getItemByProp:i=>{var o;return((o=s.value.filter(d=>(typeof d.prop=="function"?d.prop():d.prop)===i))==null?void 0:o[0])??null},isMobileState:()=>h.value,getElFormRef:()=>_.value}),()=>S.ssr?z.value&&de():de()}}),pe={install(e,t){e.component(se.name,se),e.provide("MaFormOptions",t??{ssr:!1})}};m.MaForm=pe,m.default=pe,m.useForm=function(e){return new Promise((t,n)=>{const r=a.getCurrentInstance();a.onMounted(async()=>{await a.nextTick(()=>{if(r&&r.refs[e]){const l=r.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"}})});