EnterpriseForm.DEsU47HX.js 13 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. import{ao as e,d as a,L as t,q as i,z as l,a1 as s,a2 as n,A as d,F as o,G as r,t as u,ad as p,aN as _,O as c}from"./element-plus.DYHj_7Hl.js";import{P as y,_ as f,Y as m,aw as g,F as v,a7 as b}from"./index.KDUAIHt0.js";import{M as h,bn as I,bq as w,bE as E,aZ as S,aL as A,u as x,I as L,bJ as V,F as P,s as O,bO as R,t as U,bb as D,aq as F,aU as N,aD as j,aS as Y,bL as k,bk as q,aX as M,H as T,v as B,q as z}from"./@vue.DbmRtknU.js";const C={class:"single-image-upload"},J={key:0,class:"el-upload__tip"},G=f(h({__name:"SingleImageUpload",props:F({
  2. /**
  3. * 请求携带的额外参数
  4. */
  5. data:{type:Object,default:()=>({})},
  6. /**
  7. * 上传文件的参数名
  8. */
  9. name:{type:String,default:"file"},
  10. /**
  11. * 最大文件大小(单位:M)
  12. */
  13. maxFileSize:{type:Number,default:10},
  14. /**
  15. * 上传图片格式,默认支持所有图片(image/*),指定格式示例:'.png,.jpg,.jpeg,.gif,.bmp'
  16. */
  17. accept:{type:String,default:"image/*"},
  18. /**
  19. * 自定义样式,用于设置组件的宽度和高度等其他样式
  20. */
  21. style:{type:Object,default:()=>({width:"150px",height:"150px"})},
  22. /**
  23. * 是否禁用
  24. */
  25. disabled:{type:Boolean,default:!1},
  26. /**
  27. * 是否显示提示信息
  28. */
  29. showTip:{type:Boolean,default:!1},
  30. /**
  31. * 提示文本
  32. */
  33. tipText:{type:String,default:""},
  34. /**
  35. * 是否启用图片预览功能
  36. */
  37. enablePreview:{type:Boolean,default:!0}},{modelValue:{default:""},modelModifiers:{}}),emits:F(["success","error","input","update:modelValue"],["update:modelValue"]),setup(l,{emit:s}){I(e=>({v05f354eb:n.style.width??"150px",v4553109c:n.style.height??"150px"}));const n=l,d=w(l,"modelValue"),o=N([]);E(()=>d.value,e=>{o.value=e?[{name:e.split("/").pop()||"image",url:e}]:[]},{immediate:!0}),E(()=>o.value,e=>{e&&e.length>0&&e[0].url?d.value=e[0].url:d.value=""},{deep:!0});const r=s;function u(e){return n.accept.split(",").map(e=>e.trim()).some(a=>"image/*"===a?e.type.startsWith("image/"):a.startsWith(".")?e.name.toLowerCase().endsWith(a):e.type===a)?!(e.size>1024*n.maxFileSize*1024)||(i.warning(`上传图片不能大于 ${n.maxFileSize}MB`),!1):(i.warning(`上传文件的格式不正确,仅支持:${n.accept}`),!1)}async function p(e){try{const a=e.file,t=new FormData;t.append(n.name,a);for(const[e,i]of Object.entries(n.data))t.append(e,String(i));const l=await y.uploadFile(t);if(0===l.data.code&&l.data){const e=l.data.data;return f(e),e}{const e=l.data.msg||"上传失败";throw i.error(e),new Error(e)}}catch(a){throw m(a instanceof Error?a:new Error(String(a))),a}}function _(){o.value=[]}function c(e){e.stopPropagation(),n.enablePreview&&o.value&&o.value.length>0&&o.value[0].url}const f=e=>{const a=[{name:e.file_name,url:e.file_url}];o.value=a,r("success",e),r("input",e.file_url),r("update:modelValue",e.file_url)},m=e=>{i.error("图片上传失败,请重试"),r("error",e)};return(i,l)=>{const s=e,d=S("CircleCloseFilled"),r=a,y=S("Plus"),g=t;return A(),x("div",C,[L(g,{"file-list":o.value,"onUpdate:fileList":l[0]||(l[0]=e=>o.value=e),class:"single-upload","list-type":"picture-card","show-file-list":!1,accept:n.accept,"before-upload":u,"http-request":p,"on-success":f,"on-error":m,"on-remove":_,disabled:n.disabled},{default:V(()=>[o.value&&o.value.length>0&&o.value[0].url?(A(),x(P,{key:0},[(A(),O(s,{key:o.value[0].url,class:"single-upload__image",src:o.value[0].url,fit:"cover","preview-src-list":n.enablePreview?[o.value[0].url]:[],"preview-teleported":!0,onClick:R(c,["stop"])},null,8,["src","preview-src-list"])),n.disabled?U("",!0):(A(),O(r,{key:0,class:"single-upload__delete-btn",onClick:R(_,["stop"])},{default:V(()=>[L(d)]),_:1}))],64)):(A(),O(r,{key:1,class:"single-upload__add-btn"},{default:V(()=>[L(y)]),_:1}))]),_:1},8,["file-list","accept","disabled"]),n.showTip?(A(),x("div",J,D(n.tipText||`支持 ${n.accept} 格式,文件大小不超过 ${n.maxFileSize}MB`),1)):U("",!0)])}}}),[["__scopeId","data-v-2ff51ea0"]]),$=["element-loading-text"],W=h({__name:"EnterpriseForm",props:{type:{},enterpriseId:{}},emits:["success"],setup(e,{expose:f,emit:h}){const I=e,w=h,S=N(),R=N(!1),U=N([]);j(async()=>{try{const e=await m.options();U.value=e.data.data||[]}catch{}});const D={identity_type:"ALIPAY_USER_ID",alipay_id_type:"uid",identity:void 0,identity_open_id:void 0,service_provider_id:null,scope_label:""},F=Y(JSON.parse(JSON.stringify(D)));function C(e){const a=U.value.find(a=>a.id===e);F.scope_label=(null==a?void 0:a.scope_label)||""}function J(){"ALIPAY_USER_ID"===F.identity_type&&(F.alipay_id_type="uid"),F.identity=void 0,F.identity_open_id=void 0}function W(){F.identity=void 0,F.identity_open_id=void 0}E(()=>I.enterpriseId,async e=>{if(e&&"update"===I.type){const a=(await b.detail(e)).data;if(a&&(F.identity_type=a.identity_type||"ALIPAY_USER_ID",a.identity?(F.alipay_id_type="uid",F.identity=a.identity):a.identity_open_id&&(F.alipay_id_type="openid",F.identity=a.identity_open_id),Z.business_license=a.business_license||"",Z.business_scenario=a.business_scenario||"",Z.legal_rep_id_photo=a.legal_rep_id_photo||"",a.business_contracts))try{const e="string"==typeof a.business_contracts?JSON.parse(a.business_contracts):a.business_contracts;Q.value=e.map((e,a)=>({name:e.split("/").pop()||`contract_${a+1}`,url:e}))}catch{}}},{immediate:!0});const H=N(),X=N(),Z=Y({business_license:"",business_scenario:"",business_contracts:"",legal_rep_id_photo:""}),K=Y({business_license:[{required:!0,message:"请上传营业执照",trigger:"change"}],business_scenario:[{required:!0,message:"请输入业务场景描述",trigger:"blur"},{max:2e3,message:"不超过2000字",trigger:"blur"}],business_contracts:[{required:!0,message:"请上传业务上下游合同",trigger:"change"}],legal_rep_id_photo:[{required:!0,message:"请上传法人手持身份证照片",trigger:"change"}]}),Q=N([]);function ee(e){var a;const t="."+(null==(a=e.name.split(".").pop())?void 0:a.toLowerCase());return[".pdf",".doc",".docx",".jpg",".jpeg",".png"].includes(t)?!(e.size>10485760)||(i.warning("单个文件不能超过10MB"),!1):(i.warning("合同文件仅支持 pdf/doc/docx/jpg/png 格式"),!1)}async function ae(e){const a=new FormData;a.append("file",e.file);try{const t=await y.uploadFile(a);if(0===t.data.code&&t.data.data){const a=t.data.data,i=Q.value.findIndex(a=>a.uid===e.file.uid),l={name:a.file_name,url:a.file_url,status:"success"};i>=0?Q.value[i]=l:Q.value.push(l),Z.business_contracts=JSON.stringify(Q.value.map(e=>e.url).filter(Boolean)),e.onSuccess(t.data)}else i.error(t.data.msg||"上传失败"),e.onError(t.data)}catch(t){i.error("合同上传失败"),e.onError(t)}}function te(e,a){Q.value=a,Z.business_contracts=JSON.stringify(a.map(e=>e.url).filter(Boolean))}const ie=z(()=>({ALIPAY_USER_ID:"支付宝uid",ALIPAY_LOGON_ID:"支付宝登录邮箱/手机",ENTERPRISE_EMAIL:"企业邮箱"}[F.identity_type]||"身份标识")),le=z(()=>({ALIPAY_USER_ID:"请输入支付宝uid",ALIPAY_LOGON_ID:"请输入已注册支付宝的手机号或邮箱",ENTERPRISE_EMAIL:"请输入企业邮箱"}[F.identity_type]||"请输入身份标识")),{pageLoading:se,loadingText:ne,execute:de}=v(),oe=Y({service_provider_id:[{required:!0,message:"请选择服务商",trigger:"change"}],identity_type:[{required:!0,message:"请选择身份类型",trigger:"change"}],alipay_id_type:[{required:()=>"ALIPAY_USER_ID"===F.identity_type,message:"请选择ID类型",trigger:"change"}],identity:[{validator:(e,a,t)=>{const i=F.identity&&""!==F.identity.trim(),l={ALIPAY_USER_ID:"uid"===F.alipay_id_type?"请输入支付宝uid":"请输入支付宝openid",ALIPAY_LOGON_ID:"请输入已注册支付宝的手机号或邮箱",ENTERPRISE_EMAIL:"请输入企业邮箱"};i?t():"ALIPAY_USER_ID"===F.identity_type?t(new Error(l.ALIPAY_USER_ID)):"ALIPAY_LOGON_ID"===F.identity_type?t(new Error(l.ALIPAY_LOGON_ID)):"ENTERPRISE_EMAIL"===F.identity_type?t(new Error(l.ENTERPRISE_EMAIL)):t()},trigger:"blur"}]});return f({submitForm:async function(){var e,a,t;if(await(null==(e=S.value)?void 0:e.validate().catch(()=>!1))&&!R.value){if("apply"===I.type){if(!(await(null==(a=H.value)?void 0:a.validate().catch(()=>!1))))return}R.value=!0;try{const e={identity_type:F.identity_type,identity:void 0,identity_open_id:void 0,service_provider_id:F.service_provider_id,scope_label:F.scope_label};if("apply"===I.type&&(e.business_license=Z.business_license,e.business_scenario=Z.business_scenario,e.business_contracts=Z.business_contracts,e.legal_rep_id_photo=Z.legal_rep_id_photo),"ALIPAY_USER_ID"===F.identity_type?"uid"===F.alipay_id_type?e.identity=F.identity||void 0:"openid"===F.alipay_id_type&&(e.identity_open_id=F.identity||void 0):e.identity=F.identity||void 0,"apply"===I.type){const a=await de({loadingText:"正在申请入驻...",action:()=>b.applyInvite(e)});(null==(t=null==a?void 0:a.data.data)?void 0:t.pc_invite_url)&&(window.open(a.data.data.pc_invite_url,"_blank"),w("success"))}else"update"===I.type&&I.enterpriseId&&await de({loadingText:"正在更新企业...",action:()=>b.update(I.enterpriseId,e),onSuccess:()=>{i.success("更新成功"),w("success")}})}finally{R.value=!1}}},resetForm:function(){var e,a;Object.assign(F,JSON.parse(JSON.stringify(D))),null==(e=S.value)||e.resetFields(),Object.assign(Z,{business_license:"",business_scenario:"",business_contracts:"",legal_rep_id_photo:""}),Q.value=[],null==(a=H.value)||a.resetFields()},isSubmitting:R}),(e,i)=>{const y=r,f=o,m=d,v=n,b=s,h=u,I=l,w=p,E=a,R=t,D=c;return k((A(),x("div",{class:"enterprise-form","element-loading-text":q(ne)},[L(I,{ref_key:"dataFormRef",ref:S,model:F,rules:oe,"label-suffix":":","label-width":"auto","label-position":"right"},{default:V(()=>[L(b,{gutter:20},{default:V(()=>[L(v,{span:12},{default:V(()=>[L(m,{label:"服务商",prop:"service_provider_id"},{default:V(()=>[L(f,{modelValue:F.service_provider_id,"onUpdate:modelValue":i[0]||(i[0]=e=>F.service_provider_id=e),placeholder:"请选择服务商",style:{width:"100%"},onChange:C},{default:V(()=>[(A(!0),x(P,null,M(U.value,e=>(A(),O(y,{key:e.id,label:e.name+" ("+e.scope_label+")",value:e.id},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]),_:1})]),_:1})]),_:1}),L(b,{gutter:20},{default:V(()=>[L(v,{span:12},{default:V(()=>[L(m,{label:"身份类型",prop:"identity_type"},{default:V(()=>[L(f,{modelValue:F.identity_type,"onUpdate:modelValue":i[1]||(i[1]=e=>F.identity_type=e),placeholder:"请选择身份类型",style:{width:"100%"},onChange:J},{default:V(()=>[(A(!0),x(P,null,M(q(g),e=>(A(),O(y,{key:e.value,label:e.label,value:e.value},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]),_:1})]),_:1})]),_:1}),"ALIPAY_USER_ID"===F.identity_type?(A(),O(b,{key:0,gutter:20},{default:V(()=>[L(v,{span:6},{default:V(()=>[L(m,{label:"ID类型",prop:"alipay_id_type"},{default:V(()=>[L(f,{modelValue:F.alipay_id_type,"onUpdate:modelValue":i[2]||(i[2]=e=>F.alipay_id_type=e),placeholder:"请选择ID类型",style:{width:"100%"},onChange:W},{default:V(()=>[L(y,{label:"支付宝uid",value:"uid"}),L(y,{label:"支付宝openid",value:"openid"})]),_:1},8,["modelValue"])]),_:1})]),_:1}),L(v,{span:12},{default:V(()=>[L(m,{label:"身份标识",prop:"identity",required:!0},{default:V(()=>[L(h,{modelValue:F.identity,"onUpdate:modelValue":i[3]||(i[3]=e=>F.identity=e),placeholder:"uid"===F.alipay_id_type?"请输入支付宝uid":"请输入支付宝openid",maxlength:128},null,8,["modelValue","placeholder"])]),_:1})]),_:1})]),_:1})):(A(),O(b,{key:1,gutter:20},{default:V(()=>[L(v,{span:12},{default:V(()=>[L(m,{label:ie.value,prop:"identity",required:!0},{default:V(()=>[L(h,{modelValue:F.identity,"onUpdate:modelValue":i[4]||(i[4]=e=>F.identity=e),placeholder:le.value,maxlength:128},null,8,["modelValue","placeholder"])]),_:1},8,["label"])]),_:1})]),_:1}))]),_:1},8,["model","rules"]),L(w,{"content-position":"left"},{default:V(()=>[...i[9]||(i[9]=[T("入驻材料",-1)])]),_:1}),L(I,{ref_key:"materialFormRef",ref:H,model:Z,rules:K,"label-suffix":":","label-width":"auto","label-position":"right"},{default:V(()=>[L(m,{label:"营业执照",prop:"business_license"},{default:V(()=>[L(G,{modelValue:Z.business_license,"onUpdate:modelValue":i[5]||(i[5]=e=>Z.business_license=e),accept:"image/*","max-file-size":5,"show-tip":!0,"tip-text":"支持 jpg/png 格式,文件大小不超过 5MB"},null,8,["modelValue"])]),_:1}),L(m,{label:"业务场景描述",prop:"business_scenario"},{default:V(()=>[L(h,{modelValue:Z.business_scenario,"onUpdate:modelValue":i[6]||(i[6]=e=>Z.business_scenario=e),type:"textarea",rows:4,placeholder:"请描述企业的业务场景",maxlength:"2000","show-word-limit":""},null,8,["modelValue"])]),_:1}),L(m,{label:"业务上下游合同",prop:"business_contracts"},{default:V(()=>[L(R,{ref_key:"contractUploadRef",ref:X,"file-list":Q.value,"onUpdate:fileList":i[7]||(i[7]=e=>Q.value=e),action:"#",accept:".pdf,.doc,.docx,.jpg,.jpeg,.png","before-upload":ee,"http-request":ae,"on-remove":te,limit:10,multiple:"",drag:""},{tip:V(()=>[...i[10]||(i[10]=[B("div",{class:"el-upload__tip"},"支持 pdf/doc/docx/jpg/png,单个不超过10MB,最多10个文件",-1)])]),default:V(()=>[L(E,{class:"el-icon--upload"},{default:V(()=>[L(q(_))]),_:1}),i[11]||(i[11]=B("div",{class:"el-upload__text"},[T("拖拽文件到此处或 "),B("em",null,"点击上传")],-1))]),_:1},8,["file-list"])]),_:1}),L(m,{label:"法人手持身份证",prop:"legal_rep_id_photo"},{default:V(()=>[L(G,{modelValue:Z.legal_rep_id_photo,"onUpdate:modelValue":i[8]||(i[8]=e=>Z.legal_rep_id_photo=e),accept:"image/*","max-file-size":5,"show-tip":!0,"tip-text":"支持 jpg/png 格式,文件大小不超过 5MB"},null,8,["modelValue"])]),_:1})]),_:1},8,["model","rules"])],8,$)),[[D,q(se)]])}}}),H=Object.freeze(Object.defineProperty({__proto__:null,default:W},Symbol.toStringTag,{value:"Module"}));export{H as E,G as S,W as _};