HaniBlindBox/server/HoneyBox/src/HoneyBox.Admin/wwwroot/assets/WeixinMerchantForm-BANrCx8F.js
2026-02-04 01:48:50 +08:00

2 lines
8.6 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import{d as K,r as O,v as I,g as i,z as D,k as y,w as t,e as l,c as k,H as E,t as v,b as s,F as P,y as T,l as M,x as h,R as $,_ as j}from"./index-DPvNEb09.js";import{P as J,y as Q}from"./config-3yA9qDLG.js";const X={class:"merchant-header"},Y={class:"merchant-title"},Z=K({__name:"WeixinMerchantForm",props:{modelValue:{},index:{},canDelete:{type:Boolean},existingPrefixes:{}},emits:["update:modelValue","delete","change"],setup(A,{expose:R,emit:q}){const b=A,x=q,c=O(),a=I({get:()=>b.modelValue,set:m=>x("update:modelValue",m)}),f=I(()=>a.value.pay_version===J.V3),B=(m,e,r)=>{if(!e){r(new Error("请输入订单前缀"));return}if(e.length!==3){r(new Error("订单前缀必须为3位字符"));return}if(b.existingPrefixes.filter((U,g)=>g!==b.index).includes(e)){r(new Error("订单前缀已被其他商户使用"));return}r()},w=m=>(e,r,V)=>{if(f.value&&!r){V(new Error(`V3版本必须填写${m}`));return}V()},S=I(()=>({name:[{required:!0,message:"请输入商户名称",trigger:"blur"},{max:50,message:"商户名称不能超过50个字符",trigger:"blur"}],mch_id:[{required:!0,message:"请输入商户号",trigger:"blur"},{max:32,message:"商户号不能超过32个字符",trigger:"blur"}],order_prefix:[{required:!0,message:"请输入订单前缀",trigger:"blur"},{validator:B,trigger:"blur"}],pay_version:[{required:!0,message:"请选择支付版本",trigger:"change"}],api_key:[{validator:(m,e,r)=>{if(!f.value&&!e){r(new Error("V2版本必须填写API密钥"));return}r()},trigger:"blur"}],api_v3_key:[{validator:w("APIv3密钥"),trigger:"blur"},{validator:(m,e,r)=>{if(f.value&&e&&e.length!==32){r(new Error("APIv3密钥必须为32位字符"));return}r()},trigger:"blur"}],cert_serial_no:[{validator:w("证书序列号"),trigger:"blur"}],private_key_path:[{validator:w("商户私钥路径"),trigger:"blur"}]})),F=()=>{var m;(m=c.value)==null||m.clearValidate(),n()},n=()=>{x("change")},N=()=>{x("delete",b.index)};return R({validate:async()=>{if(!c.value)return!1;try{return await c.value.validate(),!0}catch{return!1}}}),(m,e)=>{const r=i("el-tag"),V=i("el-icon"),U=i("el-button"),g=i("el-divider"),p=i("el-input"),u=i("el-form-item"),d=i("el-col"),_=i("el-row"),z=i("el-switch"),H=i("el-option"),G=i("el-select"),L=i("el-form"),W=i("el-card");return y(),D(W,{class:"merchant-card",shadow:"hover"},{header:t(()=>[s("div",X,[s("span",Y,[l(r,{type:a.value.is_enabled==="1"?"success":"info",size:"small"},{default:t(()=>[v(h(a.value.is_enabled==="1"?"已启用":"已禁用"),1)]),_:1},8,["type"]),l(r,{type:f.value?"warning":"primary",size:"small"},{default:t(()=>[v(h(f.value?"V3":"V2"),1)]),_:1},8,["type"]),v(" "+h(a.value.name||"新商户"),1)]),l(U,{type:"danger",link:"",disabled:!A.canDelete,onClick:N},{default:t(()=>[l(V,null,{default:t(()=>[l(M($))]),_:1}),e[13]||(e[13]=v("删除 ",-1))]),_:1},8,["disabled"])])]),default:t(()=>[l(L,{ref_key:"formRef",ref:c,model:a.value,rules:S.value,"label-width":"120px",class:"merchant-form"},{default:t(()=>[l(g,{"content-position":"left"},{default:t(()=>[...e[14]||(e[14]=[v("基础信息",-1)])]),_:1}),l(_,{gutter:20},{default:t(()=>[l(d,{span:12},{default:t(()=>[l(u,{label:"商户名称",prop:"name"},{default:t(()=>[l(p,{modelValue:a.value.name,"onUpdate:modelValue":e[0]||(e[0]=o=>a.value.name=o),placeholder:"请输入商户名称",maxlength:"50",onInput:n},null,8,["modelValue"])]),_:1})]),_:1}),l(d,{span:12},{default:t(()=>[l(u,{label:"商户号",prop:"mch_id"},{default:t(()=>[l(p,{modelValue:a.value.mch_id,"onUpdate:modelValue":e[1]||(e[1]=o=>a.value.mch_id=o),placeholder:"请输入商户号(MCHID)",maxlength:"32",onInput:n},null,8,["modelValue"])]),_:1})]),_:1})]),_:1}),l(_,{gutter:20},{default:t(()=>[l(d,{span:12},{default:t(()=>[l(u,{label:"订单前缀",prop:"order_prefix"},{default:t(()=>[l(p,{modelValue:a.value.order_prefix,"onUpdate:modelValue":e[2]||(e[2]=o=>a.value.order_prefix=o),placeholder:"请输入3位订单前缀",maxlength:"3",onInput:n},null,8,["modelValue"]),e[15]||(e[15]=s("div",{class:"form-tip"},"必须为3位字符用于区分不同商户的订单",-1))]),_:1})]),_:1}),l(d,{span:12},{default:t(()=>[l(u,{label:"启用状态",prop:"is_enabled"},{default:t(()=>[l(z,{modelValue:a.value.is_enabled,"onUpdate:modelValue":e[3]||(e[3]=o=>a.value.is_enabled=o),"active-value":"1","inactive-value":"0","active-text":"启用","inactive-text":"禁用",onChange:n},null,8,["modelValue"])]),_:1})]),_:1})]),_:1}),l(_,{gutter:20},{default:t(()=>[l(d,{span:12},{default:t(()=>[l(u,{label:"支付版本",prop:"pay_version"},{default:t(()=>[l(G,{modelValue:a.value.pay_version,"onUpdate:modelValue":e[4]||(e[4]=o=>a.value.pay_version=o),placeholder:"请选择支付版本",style:{width:"100%"},onChange:F},{default:t(()=>[(y(!0),k(P,null,T(M(Q),(o,C)=>(y(),D(H,{key:C,label:o,value:C},null,8,["label","value"]))),128))]),_:1},8,["modelValue"]),e[16]||(e[16]=s("div",{class:"form-tip"},"V3版本使用更安全的RSA-SHA256签名和AES-GCM加密",-1))]),_:1})]),_:1}),l(d,{span:12},{default:t(()=>[l(u,{label:"回调地址",prop:"notify_url"},{default:t(()=>[l(p,{modelValue:a.value.notify_url,"onUpdate:modelValue":e[5]||(e[5]=o=>a.value.notify_url=o),placeholder:"例如: https://api.example.com/api/notify/order_notify",onInput:n},null,8,["modelValue"]),e[17]||(e[17]=s("div",{class:"form-tip"},"支付成功后微信回调通知的地址,留空使用默认值",-1))]),_:1})]),_:1})]),_:1}),f.value?E("",!0):(y(),k(P,{key:0},[l(g,{"content-position":"left"},{default:t(()=>[...e[18]||(e[18]=[v("V2 配置",-1)])]),_:1}),l(_,{gutter:20},{default:t(()=>[l(d,{span:24},{default:t(()=>[l(u,{label:"API密钥",prop:"api_key"},{default:t(()=>[l(p,{modelValue:a.value.api_key,"onUpdate:modelValue":e[6]||(e[6]=o=>a.value.api_key=o),type:"password",placeholder:"请输入API密钥(Key)","show-password":"",onInput:n},null,8,["modelValue"]),e[19]||(e[19]=s("div",{class:"form-tip"},"V2版本的32位API密钥用于MD5签名",-1))]),_:1})]),_:1})]),_:1}),l(_,{gutter:20},{default:t(()=>[l(d,{span:24},{default:t(()=>[l(u,{label:"证书路径",prop:"cert_path"},{default:t(()=>[l(p,{modelValue:a.value.cert_path,"onUpdate:modelValue":e[7]||(e[7]=o=>a.value.cert_path=o),placeholder:"请输入证书路径(可选)",onInput:n},null,8,["modelValue"]),e[20]||(e[20]=s("div",{class:"form-tip"},"微信支付证书文件路径,用于退款等操作",-1))]),_:1})]),_:1})]),_:1})],64)),f.value?(y(),k(P,{key:1},[l(g,{"content-position":"left"},{default:t(()=>[...e[21]||(e[21]=[v("V3 配置",-1)])]),_:1}),l(_,{gutter:20},{default:t(()=>[l(d,{span:24},{default:t(()=>[l(u,{label:"APIv3密钥",prop:"api_v3_key"},{default:t(()=>[l(p,{modelValue:a.value.api_v3_key,"onUpdate:modelValue":e[8]||(e[8]=o=>a.value.api_v3_key=o),type:"password",placeholder:"请输入APIv3密钥32位","show-password":"",maxlength:"32",onInput:n},null,8,["modelValue"]),e[22]||(e[22]=s("div",{class:"form-tip"},"V3版本的32位API密钥用于AES-GCM解密回调通知",-1))]),_:1})]),_:1})]),_:1}),l(_,{gutter:20},{default:t(()=>[l(d,{span:24},{default:t(()=>[l(u,{label:"证书序列号",prop:"cert_serial_no"},{default:t(()=>[l(p,{modelValue:a.value.cert_serial_no,"onUpdate:modelValue":e[9]||(e[9]=o=>a.value.cert_serial_no=o),placeholder:"请输入商户API证书序列号",onInput:n},null,8,["modelValue"]),e[23]||(e[23]=s("div",{class:"form-tip"},"商户API证书的序列号可在证书详情中查看",-1))]),_:1})]),_:1})]),_:1}),l(_,{gutter:20},{default:t(()=>[l(d,{span:24},{default:t(()=>[l(u,{label:"商户私钥路径",prop:"private_key_path"},{default:t(()=>[l(p,{modelValue:a.value.private_key_path,"onUpdate:modelValue":e[10]||(e[10]=o=>a.value.private_key_path=o),placeholder:"例如: certs/1738725801/apiclient_key.pem",onInput:n},null,8,["modelValue"]),e[24]||(e[24]=s("div",{class:"form-tip"},"商户API私钥文件路径用于请求签名",-1))]),_:1})]),_:1})]),_:1}),l(_,{gutter:20},{default:t(()=>[l(d,{span:12},{default:t(()=>[l(u,{label:"微信公钥ID",prop:"wechat_public_key_id"},{default:t(()=>[l(p,{modelValue:a.value.wechat_public_key_id,"onUpdate:modelValue":e[11]||(e[11]=o=>a.value.wechat_public_key_id=o),placeholder:"请输入微信支付公钥ID",onInput:n},null,8,["modelValue"]),e[25]||(e[25]=s("div",{class:"form-tip"},"微信支付平台公钥ID",-1))]),_:1})]),_:1}),l(d,{span:12},{default:t(()=>[l(u,{label:"微信公钥路径",prop:"wechat_public_key_path"},{default:t(()=>[l(p,{modelValue:a.value.wechat_public_key_path,"onUpdate:modelValue":e[12]||(e[12]=o=>a.value.wechat_public_key_path=o),placeholder:"例如: certs/1738725801/pub_key.pem",onInput:n},null,8,["modelValue"]),e[26]||(e[26]=s("div",{class:"form-tip"},"微信支付平台公钥文件路径",-1))]),_:1})]),_:1})]),_:1})],64)):E("",!0)]),_:1},8,["model","rules"])]),_:1})}}}),ae=j(Z,[["__scopeId","data-v-7c1dd5c9"]]);export{ae as default};