BasicForm-53100365.js 14.1 KB
var Ce=Object.defineProperty;var Be=Object.getOwnPropertySymbols;var Le=Object.prototype.hasOwnProperty,Pe=Object.prototype.propertyIsEnumerable;var be=(e,a,s)=>a in e?Ce(e,a,{enumerable:!0,configurable:!0,writable:!0,value:s}):e[a]=s,C=(e,a)=>{for(var s in a||(a={}))Le.call(a,s)&&be(e,s,a[s]);if(Be)for(var s of Be(a))Pe.call(a,s)&&be(e,s,a[s]);return e};var D=(e,a,s)=>new Promise((c,A)=>{var u=p=>{try{f(s.next(p))}catch(m){A(m)}},l=p=>{try{f(s.throw(p))}catch(m){A(m)}},f=p=>p.done?c(p.value):Promise.resolve(p.value).then(u,l);f((s=s.apply(e,a)).next())});import{a8 as U,_ as X,a9 as Z,aa as K,a0 as je,f as ce,R as W,ad as ee,E as fe,a1 as de,ac as re,ag as ke,aj as ae,u as n,g as Se,e as H,w as x,aq as Ne,q as Ae,J as we,s as _e,d as Me,r as Ve,k as Q,o as Ke,$ as Ue,ab as ue,ae as Ie,ak as pe,F as We,ap as Ye}from"./vue-5a35c3f5.js";import{F as qe}from"./FormItem-ffc5ecef.js";import{_ as ze,b as He,c as Xe}from"./BasicForm.vue_vue_type_style_index_0_lang-3479a052.js";import{_ as Ee,x as Y,ax as te,r as le,ak as ie,aL as ne,aY as q,aZ as he,a_ as Ge,aK as Je,z as $e,w as Ze,a$ as Te,aR as me,aS as De,b0 as Qe,h as xe}from"./index.js";import{d as et,h as tt,a as Oe}from"./helper-95474dfc.js";import{T as G,aF as nt,ay as st,be as ot}from"./antd-6b087f69.js";import{u as rt}from"./uniqBy-0cd5a663.js";import{a as at}from"./index-c1c2669a.js";function it(e,a,s,c,A,u){const l=U("Button"),f=U("BasicArrow"),p=U("FormItem"),m=U("a-col");return e.showActionButtonGroup?(X(),Z(m,ae(ee({key:0},e.actionColOpt)),{default:K(()=>[je("div",{style:ke([{width:"100%"},{textAlign:e.actionColOpt.style.textAlign}])},[ce(p,null,{default:K(()=>[W(e.$slots,"resetBefore"),e.showResetButton?(X(),Z(l,ee({key:0,type:"default",class:"mr-2"},e.getResetBtnOptions,{onClick:e.resetAction}),{default:K(()=>[fe(de(e.getResetBtnOptions.text),1)]),_:1},16,["onClick"])):re("v-if",!0),W(e.$slots,"submitBefore"),e.showSubmitButton?(X(),Z(l,ee({key:1,type:"primary",class:"mr-2"},e.getSubmitBtnOptions,{onClick:e.submitAction}),{default:K(()=>[fe(de(e.getSubmitBtnOptions.text),1)]),_:1},16,["onClick"])):re("v-if",!0),W(e.$slots,"advanceBefore"),e.showAdvancedButton&&!e.hideAdvanceBtn?(X(),Z(l,{key:2,type:"link",size:"small",onClick:e.toggleAdvanced},{default:K(()=>[fe(de(e.isAdvanced?e.t("component.form.putAway"):e.t("component.form.unfold"))+" ",1),ce(f,{class:"ml-1",expand:!e.isAdvanced,up:""},null,8,["expand"])]),_:1},8,["onClick"])):re("v-if",!0),W(e.$slots,"advanceAfter")]),_:3})],4)]),_:3},16)):re("v-if",!0)}const ct=Ee(ze,[["render",it],["__file","E:/allcode/erp/test7901/order-erp-front/src/components/Form/src/components/FormAction.vue"]]);function lt(e,a,s){const c=/^\[(.+)\]$/;if(c.test(e)){const A=e.match(c);if(A&&A[1]){const u=A[1].split(",");return a=Array.isArray(a)?a:[a],u.forEach((l,f)=>{ne(s,l.trim(),a[f])}),!0}}}function ft(e,a,s){const c=/^\{(.+)\}$/;if(c.test(e)){const A=e.match(c);if(A&&A[1]){const u=A[1].split(",");return a=Y(a)?a:{},u.forEach(l=>{ne(s,l.trim(),a[l.trim()])}),!0}}}function dt({defaultValueRef:e,getSchema:a,formModel:s,getProps:c}){function A(f){var m,F;if(!Y(f))return{};const p={};for(const B of Object.entries(f)){let[,r]=B;const[I]=B;if(!I||te(r)&&r.length===0||le(r))continue;const O=n(c).transformDateFunc;Y(r)&&(r=O==null?void 0:O(r)),te(r)&&((m=r[0])!=null&&m.format)&&((F=r[1])!=null&&F.format)&&(r=r.map(_=>O==null?void 0:O(_))),ie(r)&&(r===""?r=void 0:r=r.trim()),!lt(I,r,p)&&!ft(I,r,p)&&ne(p,I,r)}return u(p)}function u(f){const p=n(c).fieldMapToTime;if(!p||!Array.isArray(p))return f;for(const[m,[F,B],r="YYYY-MM-DD"]of p){if(!m||!F||!B)continue;if(!f[m]){Reflect.deleteProperty(f,m);continue}const[I,O]=f[m],[_,y]=Array.isArray(r)?r:[r,r];f[F]=q(I).format(_),f[B]=q(O).format(y),Reflect.deleteProperty(f,m)}return f}function l(){const f=n(a),p={};f.forEach(m=>{const{defaultValue:F,defaultValueObj:B}=m,r=Object.keys(B||{});r.length&&r.map(I=>{p[I]=B[I],s[I]===void 0&&(s[I]=B[I])}),he(F)||(p[m.field]=F,s[m.field]===void 0&&(s[m.field]=F))}),e.value=G(p)}return{handleFormValues:A,initDefault:l}}const z=24;function ut({advanceState:e,emit:a,getProps:s,getSchema:c,formModel:A,defaultValueRef:u}){const l=Se(),{realWidthRef:f,screenEnum:p,screenRef:m}=Ge(),F=H(()=>{if(!e.isAdvanced)return 0;const y=n(s).emptySpan||0;if(Je(y))return y;if(Y(y)){const{span:b=0}=y,k=n(m);return y[k.toLowerCase()]||b||0}return 0}),B=$e(O,30);x([()=>n(c),()=>e.isAdvanced,()=>n(f)],()=>{const{showAdvancedButton:y}=n(s);y&&B()},{immediate:!0});function r(y,b=0,k=!1){const j=n(f),L=parseInt(y.md)||parseInt(y.xs)||parseInt(y.sm)||y.span||z,E=parseInt(y.lg)||L,S=parseInt(y.xl)||E,N=parseInt(y.xxl)||S;return j<=p.LG?b+=L:j<p.XL?b+=E:j<p.XXL?b+=S:b+=N,k?(e.hideAdvanceBtn=!1,b<=z*2?(e.hideAdvanceBtn=!0,e.isAdvanced=!0):b>z*2&&b<=z*(n(s).autoAdvancedLine||3)?e.hideAdvanceBtn=!1:e.isLoad||(e.isLoad=!0,e.isAdvanced=!e.isAdvanced),{isAdvanced:e.isAdvanced,itemColSum:b}):b>z*(n(s).alwaysShowLines||1)?{isAdvanced:e.isAdvanced,itemColSum:b}:{isAdvanced:!0,itemColSum:b}}const I=Ne({});function O(){var j;let y=0,b=0;const{baseColProps:k={}}=n(s);for(const L of n(c)){const{show:E,colProps:S}=L;let N=!0;if(Ze(E)&&(N=E),le(E)&&(N=E({schema:L,model:A,field:L.field,values:C(C({},n(u)),A)})),N&&(S||k)){const{itemColSum:t,isAdvanced:o}=r(C(C({},k),S),y);y=t||0,o&&(b=y),I[L.field]=o}}(j=l==null?void 0:l.proxy)==null||j.$forceUpdate(),e.actionSpan=b%z+n(F),r(n(s).actionColOptions||{span:z},y,!0),a("advanced-change")}function _(){e.isAdvanced=!e.isAdvanced}return{handleToggleAdvanced:_,fieldsIsAdvancedMap:I}}function pt(e,a={}){const s=/^\[(.+)\]$/;if(s.test(e)){const c=e.match(s);if(c&&c[1]){const A=c[1].split(",");if(!A.length)return;const u=[];return A.forEach((l,f)=>{ne(u,f,a[l.trim()])}),u.filter(Boolean).length?u:void 0}}}function mt(e,a={}){const s=/^\{(.+)\}$/;if(s.test(e)){const c=e.match(s);if(c&&c[1]){const A=c[1].split(",");if(!A.length)return;const u={};return A.forEach(l=>{ne(u,l.trim(),a[l.trim()])}),Object.values(u).filter(Boolean).length?u:void 0}}}function ht({emit:e,getProps:a,formModel:s,getSchema:c,defaultValueRef:A,formElRef:u,schemaRef:l,handleFormValues:f}){function p(){return D(this,null,function*(){const{resetFunc:t,submitOnReset:o}=n(a);t&&le(t)&&(yield t()),n(u)&&(Object.keys(s).forEach(i=>{const d=n(c).find(M=>M.field===i),v=d==null?void 0:d.defaultValueObj,T=Object.keys(v||{});T.length&&T.map(M=>{s[M]=v[M]});const R=(d==null?void 0:d.component)&&et.includes(d.component),J=G(A.value[i]);s[i]=R?J||"":J}),Ae(()=>E()),e("reset",we(s)),o&&N())})}const m=()=>n(c).map(t=>[...t.fields||[],t.field]).flat(1).filter(Boolean);function F(t){return D(this,null,function*(){const o=m(),g=".",i=o.filter(v=>String(v).indexOf(g)>=0),d=[];o.forEach(v=>{const T=n(c).find(w=>w.field===v);let R=nt(t,v);const J=Reflect.has(t,v);R=tt(T==null?void 0:T.component,R);const{componentProps:M}=T||{};let P=M;typeof M=="function"&&(P=P({formModel:n(s)}));const se=pt(v,t)||mt(v,t);if(J||se){const w=se||R;if(k(v))if(Array.isArray(w)){const h=[];for(const V of w)h.push(V?q(V):null);n(s)[v]=h}else n(s)[v]=w?P!=null&&P.valueFormat?w:q(w):null;else n(s)[v]=w;P!=null&&P.onChange&&(P==null||P.onChange(w)),d.push(v)}else i.forEach(w=>{try{const h=w.split(".").reduce((V,$)=>V[$],t);Te(h)&&(n(s)[w]=n(h),d.push(w))}catch(h){Te(A.value[w])&&(n(s)[w]=G(n(A.value[w])))}})}),j(d).catch(v=>{})})}function B(t){return D(this,null,function*(){const o=G(n(c));if(!t)return;let g=ie(t)?[t]:t;ie(t)&&(g=[t]);for(const i of g)r(i,o);l.value=o})}function r(t,o){if(ie(t)){const g=o.findIndex(i=>i.field===t);g!==-1&&(delete s[t],o.splice(g,1))}}function I(t,o,g=!1){return D(this,null,function*(){const i=G(n(c)),d=Array.isArray(t)?t.map(R=>R.field):[t.field];if(i.find(R=>d.includes(R.field))){me("There are schemas that have already been added");return}const v=i.findIndex(R=>R.field===o),T=Y(t)?[t]:t;if(!o||v===-1||g){g?i.unshift(...T):i.push(...T),l.value=i,y(t);return}v!==-1&&i.splice(v+1,0,...T),y(t),l.value=i})}function O(t){return D(this,null,function*(){let o=[];if(Y(t)&&o.push(t),te(t)&&(o=[...t]),!o.every(i=>i.component==="Divider"||Reflect.has(i,"field")&&i.field)){me("All children of the form Schema array that need to be updated must contain the `field` field");return}l.value=o})}function _(t){return D(this,null,function*(){let o=[];if(Y(t)&&o.push(t),te(t)&&(o=[...t]),!o.every(d=>d.component==="Divider"||Reflect.has(d,"field")&&d.field)){me("All children of the form Schema array that need to be updated must contain the `field` field");return}const i=[];n(c).forEach(d=>{let v;if(o.forEach(T=>{d.field===T.field&&(v=T)}),v!==void 0&&d.field===v.field){const T=De(d,v);i.push(T)}else i.push(d)}),y(i),l.value=rt(i,"field")})}function y(t){let o=[];Y(t)&&o.push(t),te(t)&&(o=[...t]);const g={},i=b();o.forEach(d=>{d.component!="Divider"&&Reflect.has(d,"field")&&d.field&&!he(d.defaultValue)&&(!(d.field in i)||he(i[d.field])||Qe(i[d.field]))&&(g[d.field]=d.defaultValue)}),F(g)}function b(){return n(u)?f(we(n(s))):{}}function k(t){return n(c).some(o=>o.field===t?Oe.includes(o.component):!1)}function j(t){return D(this,null,function*(){var o;return(o=n(u))==null?void 0:o.validateFields(t)})}function L(t){return D(this,null,function*(){var g;let o;return t===void 0?o=m():o=t===Array.isArray(t)?t:void 0,yield(g=n(u))==null?void 0:g.validate(o)})}function E(t){return D(this,null,function*(){var o;yield(o=n(u))==null?void 0:o.clearValidate(t)})}function S(t,o){return D(this,null,function*(){var g;yield(g=n(u))==null?void 0:g.scrollToField(t,o)})}function N(t){return D(this,null,function*(){t&&t.preventDefault();const{submitFunc:o}=n(a);if(o&&le(o)){yield o();return}if(n(u))try{const i=yield L(),d=f(i);e("submit",d)}catch(i){if((i==null?void 0:i.outOfDate)===!1&&(i!=null&&i.errorFields))return;throw new Error(i)}})}return{handleSubmit:N,clearValidate:E,validate:L,validateFields:j,getFieldsValue:b,updateSchema:_,resetSchema:O,appendSchemaByField:I,removeSchemaByField:B,resetFields:p,setFieldsValue:F,scrollToField:S}}function At(A){return D(this,arguments,function*({getSchema:e,getProps:a,formElRef:s,isInitedDefault:c}){_e(()=>D(this,null,function*(){if(n(c)||!n(a).autoFocusFirstItem)return;yield Ae();const u=n(e),l=n(s),f=l==null?void 0:l.$el;if(!l||!f||!u||u.length===0||!u[0].component.includes("Input"))return;const m=f.querySelector(".ant-row:first-child input");m&&(m==null||m.focus())}))})}const yt=Me({name:"BasicForm",components:{FormItem:qe,Form:st,Row:ot,FormAction:ct},props:He,emits:["advanced-change","reset","submit","register","field-value-change"],setup(e,{emit:a,attrs:s}){const c=Ve({}),A=at(),u=Ve({isAdvanced:!0,hideAdvanceBtn:!1,isLoad:!1,actionSpan:6}),l=Q({}),f=Q(!1),p=Q({}),m=Q(null),F=Q(null),{prefixCls:B}=xe("basic-form"),r=H(()=>C(C({},e),n(p))),I=H(()=>[B,{[`${B}--compact`]:n(r).compact}]),O=H(()=>{const{baseRowStyle:h={},rowProps:V}=n(r);return C({style:h},V)}),_=H(()=>C(C(C({},s),e),n(r))),y=H(()=>{const h=n(m)||n(r).schemas;for(const V of h){const{defaultValue:$,component:ye,componentProps:ve,isHandleDateDefaultValue:Re=!0}=V;if(Re&&$&&Oe.includes(ye)){const oe=ve?ve.valueFormat:null;if(!Array.isArray($))V.defaultValue=oe?q($).format(oe):q($);else{const Fe=[];$.forEach(ge=>{Fe.push(oe?q(ge).format(oe):q(ge))}),V.defaultValue=Fe}}}return n(r).showAdvancedButton?G(h.filter(V=>V.component!=="Divider")):G(h)}),{handleToggleAdvanced:b,fieldsIsAdvancedMap:k}=ut({advanceState:u,emit:a,getProps:r,getSchema:y,formModel:c,defaultValueRef:l}),{handleFormValues:j,initDefault:L}=dt({getProps:r,defaultValueRef:l,getSchema:y,formModel:c});At({getSchema:y,getProps:r,isInitedDefault:f,formElRef:F});const{handleSubmit:E,setFieldsValue:S,clearValidate:N,validate:t,validateFields:o,getFieldsValue:g,updateSchema:i,resetSchema:d,appendSchemaByField:v,removeSchemaByField:T,resetFields:R,scrollToField:J}=ht({emit:a,getProps:r,formModel:c,getSchema:y,defaultValueRef:l,formElRef:F,schemaRef:m,handleFormValues:j});Xe({resetAction:R,submitAction:E}),x(()=>n(r).model,()=>{const{model:h}=n(r);h&&S(h)},{immediate:!0}),x(()=>n(r).schemas,h=>{d(h!=null?h:[])}),x(()=>y.value,h=>{Ae(()=>{var V;(V=A==null?void 0:A.redoModalHeight)==null||V.call(A)}),!n(f)&&h!=null&&h.length&&(L(),f.value=!0)}),x(()=>c,$e(()=>{n(r).submitOnChange&&E()},300),{deep:!0});function M(h){return D(this,null,function*(){p.value=De(n(p)||{},h)})}function P(h,V,$){c[h]=V,a("field-value-change",h,V),$&&$.itemProps&&!$.itemProps.autoLink&&o([h]).catch(ye=>{})}function se(h){const{autoSubmitOnEnter:V}=n(r);if(V&&h.key==="Enter"&&h.target&&h.target instanceof HTMLElement){const $=h.target;$&&$.tagName&&$.tagName.toUpperCase()=="INPUT"&&E()}}const w={getFieldsValue:g,setFieldsValue:S,resetFields:R,updateSchema:i,resetSchema:d,setProps:M,removeSchemaByField:T,appendSchemaByField:v,clearValidate:N,validateFields:o,validate:t,submit:E,scrollToField:J};return Ke(()=>{L(),a("register",w)}),C({getBindValue:_,handleToggleAdvanced:b,handleEnterPress:se,formModel:c,defaultValueRef:l,advanceState:u,getRow:O,getProps:r,formElRef:F,getSchema:y,formActionType:w,setFormModel:P,getFormClass:I,getFormActionBindProps:H(()=>C(C({},r.value),u)),fieldsIsAdvancedMap:k},w)}});function vt(e,a,s,c,A,u){const l=U("FormItem"),f=U("FormAction"),p=U("Row"),m=U("Form");return X(),Z(m,ee(e.getBindValue,{class:e.getFormClass,ref:"formElRef",model:e.formModel,onKeypress:Ye(e.handleEnterPress,["enter"])}),{default:K(()=>[ce(p,ae(pe(e.getRow)),{default:K(()=>[W(e.$slots,"formHeader"),(X(!0),Ue(We,null,ue(e.getSchema,F=>(X(),Z(l,{key:F.field,isAdvanced:e.fieldsIsAdvancedMap[F.field],tableAction:e.tableAction,formActionType:e.formActionType,schema:F,formProps:e.getProps,allDefaultValues:e.defaultValueRef,formModel:e.formModel,setFormModel:e.setFormModel},Ie({_:2},[ue(Object.keys(e.$slots),B=>({name:B,fn:K(r=>[W(e.$slots,B,ae(pe(r||{})))])}))]),1032,["isAdvanced","tableAction","formActionType","schema","formProps","allDefaultValues","formModel","setFormModel"]))),128)),ce(f,ee(e.getFormActionBindProps,{onToggleAdvanced:e.handleToggleAdvanced}),Ie({_:2},[ue(["resetBefore","submitBefore","advanceBefore","advanceAfter"],F=>({name:F,fn:K(B=>[W(e.$slots,F,ae(pe(B||{})))])}))]),1040,["onToggleAdvanced"]),W(e.$slots,"formFooter")]),_:3},16)]),_:3},16,["class","model","onKeypress"])}const $t=Ee(yt,[["render",vt],["__file","E:/allcode/erp/test7901/order-erp-front/src/components/Form/src/BasicForm.vue"]]);export{$t as B};