DynamicForm.D5mBUD_B.js 6.9 KB

1
  1. import{_ as e,r as l,u as a,x as r,a7 as d,c as i,o as u,m as s,q as o,aa as t,A as n,b as f,e as m,w as p,f as c,a8 as v,E as y,G as b,F as g,h as N,t as h,j as k,i as _,L as q,k as x}from"./index-p9wvq3rl.js";import{_ as V}from"./cwg-input.t297Rscr.js";import"./cwg-date-picker.vue_vue_type_script_setup_true_lang.Cz3WQvZC.js";import{s as j}from"./toast.BfVdIG1M.js";import{c as F}from"./request.CHFUM73y.js";import"./config.Fz1GwkXh.js";import"./use-user-store.CtHp_Yuj.js";const w="/assets/vector-myaYpsjA.png",T=e({__name:"DynamicForm",props:{fields:Array,globalForm:Object,step2:Boolean,type:String},emits:["submit","validate"],setup(e,{expose:w,emit:T}){const{Host00:C}=F,U=["payoutMethod","transferType","payoutCurrency","transferAmount","senderAddress","senderDateOfBirth","senderCity","senderNationality"],K=e,O=T,D=l(),{t:R}=a(),A=l({...K.globalForm});r((()=>K.globalForm),(e=>{Object.keys(e).forEach((l=>{A.value[l]=e[l],"string"==typeof e[l]&&e[l].startsWith("/wasabi")&&(A.value[l+"Value"]=[{url:C+e[l]}])}))}),{deep:!0,immediate:!0}),r(A,(e=>{Object.assign(K.globalForm,e)}),{deep:!0,immediate:!0});const $=l({}),G=e=>R(`global.fieldName.${e.fieldName}.fieldTitle`)||e.fieldTitle,E=e=>R(`global.fieldName.${e.fieldName}.fieldDescription`)||e.fieldDescription;r((()=>K.fields),(e=>{if(!e||!Array.isArray(e))return;console.log("newFields",e);const l={};e.forEach((e=>{"file"==e.fieldType?K.globalForm[e.fieldName]=e.rfiValueUrl:void 0!==e.fixedValue&&null!==e.fixedValue?K.globalForm[e.fieldName]=e.fixedValue:void 0!==e.rfiValue&&null!==e.rfiValue?K.globalForm[e.fieldName]=e.rfiValue:e.fieldName in K.globalForm||(K.globalForm[e.fieldName]=null),l[e.fieldName]=(e=>{const l=[];if(e.required&&l.push({required:!0,message:G(e)+R("global.GlobalOrder.RulesRequire"),trigger:["blur","change"]}),e.regex)try{l.push({pattern:new RegExp(e.regex),message:G(e)+R("global.GlobalOrder.RulesReg"),trigger:["blur","change"]})}catch(a){console.warn("正则表达式解析失败:",e.regex,a)}return l})(e)})),$.value=l,d((()=>{D.value&&D.value.clearValidate&&D.value.clearValidate()}))}),{immediate:!0,deep:!0});const B={common:1,sender:2,receiver:3},I=i((()=>{const e=K.fields.slice().sort(((e,l)=>{const a=B[e.customerType]||99,r=B[l.customerType]||99;return a!==r?a-r:(e.sorting||0)-(l.sorting||0)})),l={};e.forEach((e=>{const a=e.fieldUserType||e.customerType||"other";l[a]||(l[a]=[]),l[a].push(e)}));const a={};return["common","sender","receiver"].forEach((e=>{l[e]&&(a[e]=l[e])})),console.log(a,12121212),a})),L=e=>{d((()=>{D.value&&D.value.validateField&&D.value.validateField(e.fieldName)}))},S=e=>e.split("/").pop(),W=()=>O("submit",A);return w({formRef:D,validateForm:async()=>{try{return!(!D.value||!D.value.validate)&&(await D.value.validate(),!0)}catch(e){return console.error("表单验证失败:",e[0].message),j(e[0].message),!1}}}),u((()=>{D.value&&"function"==typeof D.value.setRules&&d((()=>{D.value.setRules($.value)}))})),(l,a)=>{const r=q,d=x,i=s(o("cwg-input"),V),u=s(o("u-icon"),t),j=s(o("u-form"),n);return f(),m(d,{class:"dynamic-form"},{default:p((()=>[c(j,{ref_key:"formRef",ref:D,model:A.value,onSubmit:W,rules:$.value},{default:p((()=>[v(l.$slots,"top",{},void 0,!0),e.step2?(f(),y(b,{key:0},[v(l.$slots,"bottom",{},void 0,!0),v(l.$slots,"transferAmount",{},void 0,!0),(f(!0),y(b,null,g(I.value,((l,a)=>(f(),m(d,{key:a},{default:p((()=>[2!=e.type?(f(),m(d,{key:0,class:"form-group"},{default:p((()=>[c(r,{class:"form-label1"},{default:p((()=>{return[N(h((e=a,R({common:"global.GlobalOrder.common",receiver:"global.GlobalOrder.receiver",sender:"global.GlobalOrder.sender",other:"global.GlobalOrder.other"}[e]||e))),1)];var e})),_:2},1024)])),_:2},1024)):k("",!0),(f(!0),y(b,null,g(l,(e=>(f(),m(d,{key:e.fieldName,class:"form-group"},{default:p((()=>[U.includes(e.fieldName)?k("",!0):(f(),y(b,{key:0},["input"===e.fieldType?(f(),m(i,{key:0,rulesKey:e.fieldName,label:G(e),required:e.required,disabled:e.disabled||!!e.fixedValue,value:A.value[e.fieldName],"onUpdate:value":l=>A.value[e.fieldName]=l,fkey:e.fieldName,type:"text",placeholder:E(e),onChange:l=>L(e)},null,8,["rulesKey","label","required","disabled","value","onUpdate:value","fkey","placeholder","onChange"])):"number"===e.fieldType?(f(),m(i,{key:1,rulesKey:e.fieldName,label:G(e),required:e.required,disabled:e.disabled||!!e.fixedValue,value:A.value[e.fieldName],"onUpdate:value":l=>A.value[e.fieldName]=l,fkey:e.fieldName,type:"number",placeholder:E(e)},null,8,["rulesKey","label","required","disabled","value","onUpdate:value","fkey","placeholder"])):"date"===e.fieldType?(f(),m(i,{key:2,rulesKey:e.fieldName,label:G(e),required:e.required,disabled:e.disabled||!!e.fixedValue,value:A.value[e.fieldName],"onUpdate:value":l=>A.value[e.fieldName]=l,fkey:e.fieldName,type:"date",placeholder:E(e),onChange:l=>L(e)},null,8,["rulesKey","label","required","disabled","value","onUpdate:value","fkey","placeholder","onChange"])):"select"===e.fieldType?(f(),m(i,{key:3,rulesKey:e.fieldName,label:G(e),required:e.required,disabled:e.disabled||!!e.fixedValue,value:A.value[e.fieldName],"onUpdate:value":l=>A.value[e.fieldName]=l,fkey:e.fieldName,type:"select",columns:e.availableDtos.map((e=>({text:e.value,value:e.valueId}))),placeholder:E(e),onChange:l=>L(e)},null,8,["rulesKey","label","required","disabled","value","onUpdate:value","fkey","columns","placeholder","onChange"])):"file"===e.fieldType?(f(),y(b,{key:4},[c(i,{rulesKey:e.fieldName,label:G(e),required:e.required,disabled:e.disabled||!!e.fixedValue,value:A.value[e.fieldName],"onUpdate:value":l=>A.value[e.fieldName]=l,fkey:e.fieldName,type:"upload",accept:".jpg,.jpeg,.png,.pdf","is-upload-d":!0,onChange:l=>((e,l)=>{const a=e.fieldName;A.value[a]=l.value,l.value&&(l.value.includes(".pdf")||l.value.includes(".jpg")||l.value.includes(".jpeg")||l.value.includes(".png"))&&(A.value[a+"Value"]=[{url:C+l.value}]),L(e)})(e,l)},{default:p((()=>[c(d,{class:"cwg-upload"},{default:p((()=>[c(u,{name:"folder"}),c(r,{class:"name"},{default:p((()=>{return[N(h((l=e,R(`global.fieldName.${l.fieldName}.fieldDescription`)||l.fieldDescription)),1)];var l})),_:2},1024),c(r,{class:"back"},{default:p((()=>[N(h(_(R)("card.New1.d4")),1)])),_:1})])),_:2},1024)])),_:2},1032,["rulesKey","label","required","disabled","value","onUpdate:value","fkey","accept","onChange"]),c(d,null,{default:p((()=>{return[A.value[e.fieldName]&&(l=A.value[e.fieldName],null==l?void 0:l.toLowerCase().endsWith(".pdf"))?(f(),m(r,{key:0,class:"pdf-link",onClick:l=>{var a,r;return(e=>{window.open(e,"_blank")})(null==(r=null==(a=A.value[e.fieldName+"Value"])?void 0:a[0])?void 0:r.url)}},{default:p((()=>[N(h(S(A.value[e.fieldName])),1)])),_:2},1032,["onClick"])):k("",!0)];var l})),_:2},1024)],64)):(f(),m(d,{key:5},{default:p((()=>[N(" 未支持类型:"+h(e.fieldType),1)])),_:2},1024))],64))])),_:2},1024)))),128))])),_:2},1024)))),128))],64)):k("",!0),v(l.$slots,"tips",{},void 0,!0),e.step2?v(l.$slots,"submit",{key:1},void 0,!0):k("",!0)])),_:3},8,["model","rules"])])),_:3})}}},[["__scopeId","data-v-4682f223"]]);export{T as D,w as _};