PageSourceSearch

https://www.ftu.org.hk/_nuxt/CK9MuPb6.js

js ftu.org.hk collected 2026-09-25 04:52:11 UTC 11,881 bytes, 1 lines download raw bytes

1import{_ as pe}from"./Bya4F46S.js";import{_ as fe}from"./B5PrhXrv.js";import{d as ye,c as O,a4 as he,i as u,k as we,U as Ae,cx as ge,l as P,o as E,m as t,p as H,t as A,y as F,F as W,bV as Ie,e as G,x as _e,C as Y,s as X,au as z,_ as Ne}from"./D1FcBL9p.js";import{g as ke,p as be}from"./Du64IVDf.js";import{getActiveDetail as $,getActivityRosterPayRequest as Pe,donationApplySubmit as Ee}from"./DfaXuOzC.js";import{e as ee}from"./-I2vQPO1.js";import{i as Ue}from"./DZBNDS1r.js";import{u as Ce}from"./qJlnEoVS.js";import{u as Re}from"./DR6F7tIA.js";import{s as Se}from"./BySzvsyc.js";import"./DxTpUZOP.js";import"./DQVJ8Zyr.js";import"./DFalMY8t.js";const Ve="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABkAAAAYCAYAAAAPtVbGAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAMFSURBVHgB3VXfSxRRFP7uzG5LsNaKa6BRLFGQkvgrIwhyZrMe+wG9BBE+hNBfEEVRvQVGKvVSD9mLUPqQ5oOkpNKT9RCbWggbtmZIKdaaSbi7M7dzZ3Zmx53RlR79lmXvzNxzvvN99+wZYKuAFdpwaAQKk3GGcZylyxCnLwUlOUOM7vVKOvpiKhL/RVIzgogmoxMcCgqX2i5ruENkSe/HHqh6g2aqsk1UjU2CEiVIleqlykVi2CNhJLeBYUXjSOlAkQ+QWUGi2nxFkvNCWCRJZJEIYAx/MyV42TCFuKrj6wmOyUYdF8qvYiXjzUTKhcUvPMhzIJvEGTSL6pvCV9Ba8QASk1zJNK5h33AAO/2aNxnZNqli1KWEVIQEgVgvpjjuVT40KtApoU5RAjrMX5narad+0LDSC/T4lvPaJqGaFGt948BtIwEjFYF+n61m4vdbFA+YiY+EoviV4fCWAsUoOp+ES6i21lU7jtr706c5xEegsugwxpU4Gob34+7nm7hf8QiR7VEk025LU3Q+1tpnS+R0M6u+e64Lx4pPwToyoYpzjsczHVDDCt5F47ZV58tajCLKhySUBnIkzCw6tkaJE/3fu+zq7SDqNp+UQkWwHq8WurOucAwu9BiEcyd1rGq5M6KJkHTZBcfNoF9H2ZDPSGOhc7YNLXuvkSId86klM5FYp5dstYyV2vtl5PLZdlHjfHDq2hXgGJh/Rm0aRnxlnL7T2UQyLu1uMSuk9cXyy3ZMiT+IZW3eJNEon11/FqIbNAlfkB0lQkOARZDGjHEeguB53XscDNbAC6LVI8N+hPxkIsfopALVZZcYBZS43cme4gmDwCTliI7VeRKIZ01j1QaBQSjl8qwhEfDp6AC8J6lAeBvHntcy2qavI5lZxFLmJ57MtuLH6jcspD9ajE8/HUefM67ggNwI3J0gkaaRMpU3iV0tbMwcHec2UrROhZ4EniQCEyp6KaBWHCA2h/Zl2j+1zhuy4OuXJnMjKWsma2ro/2i1VpIKiFH06B86x4RaWPXWwD9V8iHcX3WPKQAAAABJRU5ErkJggg==",Fe={class:"payment-container"},xe={class:"content-wrapper"},Me={class:"payment-info-section"},qe={class:"pay-to-section"},Le={class:"pay-amount"},Oe={class:"order-info-section"},Be={class:"info-row"},je={class:"info-value"},De={class:"info-row"},Je={class:"info-value"},Ke={key:0,class:"info-row"},Qe={class:"info-value"},Ze={key:1,class:"info-row"},Te={class:"info-value"},He={key:2,class:"info-row"},We={class:"info-value"},Ge={class:"payment-method-section"},Ye={class:"payment-options"},Xe=["onClick"],ze={class:"option-content"},$e=["src"],ea={class:"option-label"},aa={key:0,class:"option-check"},ta={class:"payment-action-section"},oa={class:"countdown-text"},sa={class:"countdown-time"},na={class:"pay-button-text"},ra=ye({__name:"payment",setup(la){const ae=Ce(),p=he(),{isLoggedIn:C}=Re(),x=O(()=>p.query.type==="donation"),B=O(()=>p.query.type==="mall"),te=O(()=>p.query.type==="activity"),j=u(null),c=u(null),l=u(null),D=u(""),J=u(null),r=u({}),d=u(!1),g=u(""),M=u(1681),R=u(null),K=u(!1),Q=u(1),Z=u(""),T=u(""),oe=u([{value:"Alipay",label:"AlipayHK",icon:Ue},{value:"Wechat",label:"Wechat Pay",icon:Ve}]),se=O(()=>{const o=Math.floor(M.value/60),e=M.value%60;return`${o}分${e.toString().padStart(2,"0")}秒`});we(async()=>{try{if(x.value)await ne();else if(B.value)await re();else if(te.value){const o=p.query.id;if(!o){I("支付参数错误");return}await le(o)}else{const o=p.query.id;if(o)await ie(o);else{I("支付参数错误");return}}ce()}catch(o){console.error("页面初始化失败:",o),I("页面加载失败")}}),Ae(()=>{R.value&&clearInterval(R.value)});const ne=async()=>{try{if(d.value=!0,typeof window<"u"&&window.sessionStorage){const a=sessionStorage.getItem("donationSelectedDept");if(a)try{J.value=JSON.parse(a)}catch(v){console.error("解析缓存的部门信息失败:",v)}}const o=p.query.campaignId,e=p.query.amount;if(r.value.amount=parseFloat(e)||0,r.value.merchantReference=o||"--",r.value.customerPhone="--",r.value.customerFirstName="1",r.value.customerLastName="2",typeof window<"u"&&window.sessionStorage){const a=sessionStorage.getItem("donationActivityDetail");if(a)try{l.value=JSON.parse(a),sessionStorage.removeItem("donationActivityDetail")}catch(v){console.error("解析缓存的活动详情失败:",v)}}if(!l.value)try{const a=await $(o);l.value=a||{}}catch(a){console.error("获取活动详情失败:",a),l.value={}}if(C.value)try{const a=await ge();c.value=a;const v=[],_=(a==null?void 0:a.nickname)||"";_&&v.push(_),a!=null&&a.email&&v.push(a.email),D.value=v.join("/")||""}catch(a){console.error("获取用户信息失败:",a)}}catch(o){console.error("加载捐款支付数据失败:",o)}finally{d.value=!1}},re=async()=>{var o;try{if(d.value=!0,typeof window<"u"&&window.sessionStorage){const e=sessionStorage.getItem("mallPaymentRequest");
1if(e){const a=JSON.parse(e);j.value=a,r.value={merchantReference:a.merchantReference||"--",amount:(o=a.amount)!=null?o:0,customerPhone:a.customerPhone||"--",customerFirstName:a.customerFirstName||"1",customerLastName:a.customerLastName||"2",network:a.network,...a},sessionStorage.removeItem("mallPaymentRequest")}else I("支付數據已過期,請重新下單")}}catch(e){console.error("加载商城支付数据失败:",e),I("页面加载失败")}finally{d.value=!1}},le=async o=>{try{d.value=!0;const e=await Pe(o);if(e)r.value=e,r.value.customerFirstName=r.value.customerFirstName||"1",r.value.customerLastName=r.value.customerLastName||"2",await ee(r.value);else throw new Error("获取支付信息失败")}catch(e){console.error("加载活动支付数据失败:",e)}finally{d.value=!1}},ie=async o=>{try{d.value=!0;const e=await ke(o);if(e)r.value=e,r.value.customerFirstName=r.value.customerFirstName||"1",r.value.customerLastName=r.value.customerLastName||"2";else throw new Error("获取支付信息失败")}catch(e){console.error("加载支付数据失败:",e)}finally{d.value=!1}},ue=o=>{g.value=o,r.value.network=o},ce=()=>{R.value=Se(()=>{M.value>0?M.value--:(R.value&&clearInterval(R.value),I("支付超時,請重新發起支付"))},1e3)},de=async()=>{var o,e,a,v,_,S,N;try{if(!g.value){z({message:"請選擇支付方式",type:"fail"});return}if(!x.value&&!C.value){I("未登錄,無法支付");return}d.value=!0;let h,V;if(x.value){const k=p.query.campaignId,w=parseFloat(p.query.amount);if(typeof window<"u"&&window.sessionStorage){const i=sessionStorage.getItem("donationActivityDetail");if(i)try{l.value=JSON.parse(i),sessionStorage.removeItem("donationActivityDetail")}catch(m){console.error("解析缓存的活动详情失败:",m)}}if(!l.value)try{const i=await $(k);l.value=i||{}}catch(i){console.error("获取活动详情失败:",i),l.value={}}let n=null;if(typeof window<"u"&&window.sessionStorage){const i=sessionStorage.getItem("donationSelectedDept");if(i)try{n=JSON.parse(i)}catch(m){console.error("解析缓存的部门信息失败:",m)}}const q=p.query.donorName,U=p.query.donorEmail,s={activityId:k,deptId:(n==null?void 0:n.deptId)||"",id:"",isMember:"",isSignUpUser:"1",memberId:"",rosterId:"",name:q||""};if(C.value&&c.value){s.deptId=(n==null?void 0:n.deptId)||"",s.id=((o=c.value)==null?void 0:o.id)||"",n!=null&&n.deptId?s.isMember="1":s.isMember="",s.memberId=(n==null?void 0:n.memberId)||"",s.name=q||c.value.nickname||"";const i=c.value.sex||"";if(i==="M"?s.sex="男":i==="F"?s.sex="女":s.sex=i||"",s.mobilePhone=c.value.mobile||"",s.cardId=c.value.cardId||c.value.idCard||"",s.age=c.value.age||"",(e=l.value)!=null&&e.dataIds&&Array.isArray(l.value.dataIds)&&l.value.dataIds.length>0){const m={};if(l.value.dataIds.includes("other")){const y=((a=c.value)==null?void 0:a.other)||"";y&&(m.other=y)}for(let y=1;y<=10;y++){const b=`other${y}`;if(l.value.dataIds.includes(b)){let L="";b==="other1"&&U?L=U:L="",m[b]=L}}Object.keys(m).length>0?s.other=JSON.stringify(m):s.other=""}else s.other=((v=c.value)==null?void 0:v.other)||""}else if(s.sex="",s.mobilePhone="",s.cardId="",s.age="",s.birthday="",(_=l.value)!=null&&_.dataIds&&Array.isArray(l.value.dataIds)&&l.value.dataIds.length>0){const i={};for(let m=1;m<=10;m++){const y=`other${m}`;if(l.value.dataIds.includes(y)){let b="";y==="other1"&&U?b=U:b="",i[y]=b}}Object.keys(i).length>0?s.other=JSON.stringify(i):s.other=""}else s.other="";const me={activityId:k,deptId:(n==null?void 0:n.deptId)||"",enrollNumber:1,deptCode:(n==null?void 0:n.deptCode)||"",deptName:(n==null?void 0:n.deptName)||"",chargeMoney:w,chargeMoneyTotal:w,atvtCommonRosterParticipants:[s],netWork:g.value,...s},f=await Ee(me);if(console.log("捐款提交结果:",f),!((S=f==null?void 0:f.payParam)!=null&&S.params)||typeof f.payParam.params!="object")throw new Error("支付参数异常,请稍后重试");if(!((N=f==null?void 0:f.payParam)!=null&&N.postUrl))throw new Error("支付URL异常,请稍后重试");h=f.payParam.params,V=f.payParam.postUrl}else{B.value||await ee(r.value);const k=B.value&&j.value?{...j.value,network:g.value}:{...r.value,network:g.value},w=await be(k);if(h=w.params,V=w.postUrl,!h||typeof h!="object")throw new Error("支付参数异常,请稍后重试");if(!V)throw new Error("支付URL异常,请稍后重试")}{const k=window.open("","_self");if(!k){z({message:"請允許彈出窗口以繼續支付",type:"fail"});return}const w=k.document,n=w.createElement("form");
1n.method="POST",n.action=V,Object.entries(h).forEach(([q,U])=>{const s=w.createElement("input");s.type="hidden",s.name=q,s.value=String(U),n.appendChild(s)}),w.body.appendChild(n),n.submit()}}catch(h){console.error("支付失败:",h),I("支付失败,请重试")}finally{d.value=!1}},I=o=>{K.value=!0,Q.value=2,Z.value="支付失败",T.value=o},ve=()=>{K.value=!1,Q.value===2&&ae.back()};return(o,e)=>{var _,S;const a=pe,v=fe;return E(),P("div",Fe,[t("div",xe,[H(a,{"title-name":"支付"}),t("div",Me,[t("div",qe,[e[0]||(e[0]=t("span",{class:"pay-to-label"},"支付給:",-1)),e[1]||(e[1]=t("span",{class:"pay-to-name"},"香港工聯會",-1)),t("span",Le,"HKD "+A(r.value.amount||"0.00"),1)]),t("div",Oe,[t("div",Be,[e[2]||(e[2]=t("span",{class:"info-label"},"訂單編號:",-1)),t("span",je,A(r.value.merchantReference||"--"),1)]),t("div",De,[e[3]||(e[3]=t("span",{class:"info-label"},"購買賬戶:",-1)),t("span",Je,A(r.value.customerPhone||"--"),1)]),x.value?(E(),P(W,{key:0},[e[7]||(e[7]=Ie('<div class="info-row" data-v-2a3597ff><span class="info-label" data-v-2a3597ff>項目類型:</span><span class="info-value" data-v-2a3597ff>活動/捐款</span></div><div class="info-row" data-v-2a3597ff><span class="info-label" data-v-2a3597ff>收款對象:</span><span class="info-value" data-v-2a3597ff>工联会99999</span></div>',2)),D.value?(E(),P("div",Ke,[e[4]||(e[4]=t("span",{class:"info-label"},"備註:",-1)),t("span",Qe,A(D.value),1)])):F("",!0),G(C)&&c.value?(E(),P("div",Ze,[e[5]||(e[5]=t("span",{class:"info-label"},"會員單位:",-1)),t("span",Te,A(((_=J.value)==null?void 0:_.deptName)||c.value.deptName||"--"),1)])):F("",!0),G(C)&&c.value?(E(),P("div",He,[e[6]||(e[6]=t("span",{class:"info-label"},"會員編號:",-1)),t("span",We,A(((S=J.value)==null?void 0:S.deptCode)||"--"),1)])):F("",!0)],64)):F("",!0)])]),t("div",Ge,[e[9]||(e[9]=t("span",{class:"section-title"},"請選擇付款方式",-1)),t("div",Ye,[(E(!0),P(W,null,_e(oe.value,(N,h)=>(E(),P("div",{key:h,class:X(["payment-option",{selected:g.value===N.value}]),onClick:V=>ue(N.value)},[t("div",ze,[t("img",{src:N.icon,class:"payment-icon",alt:""},null,8,$e),t("span",ea,A(N.label),1)]),g.value===N.value?(E(),P("div",aa,[...e[8]||(e[8]=[t("span",{class:"checkmark"},"✓",-1)])])):F("",!0)],10,Xe))),128))])]),t("div",ta,[t("span",oa,[e[10]||(e[10]=Y(" 请在 ",-1)),t("span",sa,A(se.value),1),e[11]||(e[11]=Y(" 内支付 ",-1))]),t("div",{class:X(["pay-button",{disabled:!g.value||d.value}]),onClick:de},[t("span",na,A(d.value?"支付中...":"支付"),1)],2)])]),H(v,{visible:K.value,type:Q.value,title:Z.value,description:T.value,onClose:ve},null,8,["visible","type","title","description"])])}}}),Ia=Ne(ra,[["__scopeId","data-v-2a3597ff"]]);export{Ia as default};

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.