PageSourceSearch

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

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

1import{c as De,a as Ve,A as Ae,P as Re}from"./BconBVZk.js";import{_ as Be}from"./D28JNWWP.js";import{_ as $e,a as Ue,b as Le}from"./BkmURiiQ.js";import{d as Te,f as Ne,i as a,c as Fe,k as Ee,l as C,o as _,m as e,p as u,bV as qe,y as B,w as h,A as $,t as v,e as t,v as w,a0 as b,s as Y,q as J,W as Ge,bT as U,aa as Oe,bU as S,au as f,ap as We,a9 as je,C as Q,_ as ze}from"./D1FcBL9p.js";import{_ as He}from"./DiwT2u7L.js";import{c as X}from"./DkKlos9q.js";import{_ as Ke}from"./CxRFJLJ1.js";import{_ as Ye}from"./IN2EHIwK.js";import{_ as Je}from"./JvIp-1Jk.js";import{S as Qe}from"./Bm9hQSgN.js";import{I as Xe}from"./CUhUEUIT.js";import Ze from"./B7sRV4Eh.js";import eo from"./CEHkM-BL.js";import{u as oo}from"./qJlnEoVS.js";import{u as so}from"./BIvea4zK.js";import{u as to}from"./CO-fTWZY.js";import{s as no}from"./BySzvsyc.js";import"./EgekFmNJ.js";import"./DfaXuOzC.js";/* empty css        *//* empty css        */import"./B3VMi5oz.js";const lo=""+new URL("login-banner.Cj4KU6eU.png",import.meta.url).href,ao={class:"register-container"},io={class:"scroll-container"},ro={class:"register-content"},co={class:"register-bd"},uo={class:"phone-input-container"},mo={class:"country-code"},po=["maxlength"],vo={key:0,class:"error-text"},fo={class:"send-code-container"},go={class:"verification-input"},bo=["placeholder"],yo={class:"send-code-text"},ko={key:1,class:"error-text"},Co={class:"agreement-container"},_o={class:"agreement-checkbox"},ho=["src"],wo={class:"agreement-content"},So={class:"social-login"},xo={class:"social-text"},Mo={class:"mobile-bind-popup"},Po={class:"popup-header"},Io={class:"popup-body"},Do={class:"form-item"},Vo={class:"phone-input-container"},Ao={class:"country-code"},Ro={class:"form-item"},Bo={class:"verify-code-wrapper"},$o=["disabled"],Uo={class:"popup-footer"},Lo=["disabled"],To={class:"success-popup-content"},No=Te({__name:"Signin",setup(Fo){const x=oo(),{t:Z}=Ne(),{googleOAuthLogin:ee,facebookOAuthLogin:oe}=so(),i=to("signin"),{showLoadingModal:se,showInstructionModal:te,showMobileBindModal:M,showSuccessModal:P,mobile1:L,mobile2:I,verifyCode:D,codeSending:T,countdown:V,binding:ne}=i,r=a("+852"),l=a(""),c=a(""),A=a(!1),m=a(0),d=a(""),p=a(""),y=a(!1),N=a(),F=a(),E=a(),q=a(),k=a(),le=a(),R=a(!1),G=a(!1),O=Fe(()=>l.value&&c.value&&y.value&&W()&&!d.value&&!p.value),ae=()=>{x.back()},ie=()=>{var s;(s=k.value)==null||s.open("facebook")},re=()=>{var s;(s=k.value)==null||s.open("google")},ce=()=>{},de=()=>{var s;(s=k.value)==null||s.open("iamSmart")},ue=s=>{if(s==="facebook")me();else if(s==="google")pe();else if(s==="iamSmart")return},me=async()=>{await oe("signin",{onLoading:s=>{s?U({message:"正在跳轉..."}):S()},onError:s=>{console.error("Facebook 登錄失敗:",s),f({message:"Facebook 登錄失敗,請稍後重試",icon:"none",duration:2e3})}})},pe=async()=>{await ee("signin",{onLoading:s=>{s?U({message:"正在跳轉..."}):S()},onError:s=>{console.error("Google 登錄失敗:",s),f({message:"Google 登錄失敗,請稍後重試",icon:"none",duration:2e3})}})},ve=()=>{x.push("/login")},fe=()=>{var s;(s=E.value)==null||s.open()},ge=s=>{r.value=s},be=()=>{var s;(s=q.value)==null||s.open()},ye=s=>{L.value=s},ke=()=>{d.value="",r.value==="+86"&&l.value.length>11?l.value=l.value.slice(0,11):(r.value==="+852"||r.value==="+853")&&l.value.length>8&&(l.value=l.value.slice(0,8))},Ce=()=>{p.value="",c.value.length>4&&(c.value=c.value.slice(0,4))},W=()=>{if(!l.value)return!1;switch(r.value){case"+852":return/^\d{8}$/.test(l.value);case"+853":return/^\d{8}$/.test(l.value);case"+86":return/^1[3-9]\d{9}$/.test(l.value);default:return/^\d{8,11}$/.test(l.value)}},j=()=>
1{if(d.value="",!l.value)return d.value="請輸入手機號",!1;if(!W()){switch(r.value){case"+852":d.value="請輸入正確的香港手機號(8位數字)";break;case"+853":d.value="請輸入正確的澳門手機號(8位數字)";break;case"+86":d.value="請輸入正確的中國大陸手機號(11位數字,1開頭)";break;default:d.value="請輸入正確的手機號"}return!1}return!0},_e=()=>(p.value="",c.value?/^\d{4}$/.test(c.value)?!0:(p.value="驗證碼應為4位數字",!1):(p.value="請輸入驗證碼",!1)),he=async()=>{if(j()&&!(A.value||m.value>0))try{A.value=!0,U({message:"發送中..."});const s=await Oe({phone:"("+r.value+")"+l.value,scene:11});S(),s&&(G.value=!0,we(),f({message:"驗證碼已發送",icon:"success"}))}catch(s){S(),We(s.message)}finally{A.value=!1}},we=()=>{m.value=60;const s=no(()=>{m.value--,m.value<=0&&clearInterval(s)},1e3)},z=()=>{y.value=!y.value},Se=()=>{var s;(s=N.value)==null||s.open()},xe=()=>{var s;(s=F.value)==null||s.open()},Me=async()=>{if(R.value||!O.value)return;const s=j(),o=_e();if(!(!s||!o)){if(!y.value){f({message:"請先同意使用條款",icon:"none"});return}try{R.value=!0;const g="("+r.value+")"+l.value;await je({mobile:`(${r.value})${l.value}`,scene:11,code:c.value}),x.push(`/login/mobile/setPassword??mobile=${encodeURIComponent(g)}&captchaVerification=${c.value}`)}catch(g){console.error("跳转失败:",g),f({message:g.message,icon:"error"})}finally{R.value=!1}}};return Ee(()=>{i.checkAndRunIamSmartFlow()}),(s,o)=>{const g=Ae,Pe=Re,H=Be,Ie=Le,K=Ge;return _(),C("div",ao,[e("div",{class:"back-button",onClick:ae},[...o[14]||(o[14]=[e("img",{src:He,class:"back-icon"},null,-1)])]),o[32]||(o[32]=e("div",{class:"banner-container"},[e("img",{src:lo,class:"banner-image",mode:"widthFix"})],-1)),e("div",io,[e("div",ro,[o[23]||(o[23]=qe('<div class="register-header" data-v-dfdbc4a2><span class="title" data-v-dfdbc4a2>新用戶登記</span><div class="subtitle" data-v-dfdbc4a2><span class="subtitle-text" data-v-dfdbc4a2>登記本帳戶即可享用工聯會平台功能,但</span><span class="highlight-text" data-v-dfdbc4a2>不是加入成為工會會員。</span><span class="subtitle-text" data-v-dfdbc4a2>如要加入成會員,請在登記並登入後,在「用戶中心」中提交申請。</span></div></div>',1)),e("div",co,[e("div",uo,[e("div",{class:"country-code-selector",onClick:$(fe,["stop","prevent"])},[e("span",mo,v(t(r)),1),o[15]||(o[15]=e("img",{src:X,class:"dropdown-icon"},null,-1))]),h(e("input",{class:"phone-input",type:"number",placeholder:"電話號碼","placeholder-class":"placeholder-style","onUpdate:modelValue":o[0]||(o[0]=n=>b(l)?l.value=n:null),maxlength:t(r)==="+86"?11:8,onInput:ke,"adjust-position":!1,"hold-keyboard":!1,"disable-default-padding":!0,"cursor-spacing":0,"auto-blur":!1},null,40,po),[[w,t(l)]])]),t(d)?(_(),C("div",vo,v(t(d)),1)):B("",!0),e("div",fo,[e("div",go,[h(e("input",{type:"text",class:"code-input",placeholder:t(G)?"如無法收到驗證碼,請查詢手機短訊垃圾箱":"驗證碼","placeholder-class":"placeholder-style","onUpdate:modelValue":o[1]||(o[1]=n=>b(c)?c.value=n:null),maxlength:"4",onInput:Ce,"adjust-position":!1,"hold-keyboard":!0,"disable-default-padding":!0,"cursor-spacing":0},null,40,bo),[[w,t(c)]])]),e("div",{class:Y(["send-code-btn",{disabled:t(m)>0}]),onClick:he},[e("span",yo,v(t(m)>0?`${t(m)}s`:"發送驗證碼"),1)],2)]),t(p)?(_(),C("div",ko,v(t(p)),1)):B("",!0)]),e("div",Co,[e("div",null,[e("label",_o,[e("img",{onClick:z,src:t(y)?t(De):t(Ve),class:"eye-icon1"},null,8,ho),e("div",wo,[e("span",{onClick:z,class:"agreement-text"},"我已閱讀及同意「工聯會APP」的"),e("span",{class:"link-text",onClick:$(Se,["stop"])},"使用條款"),o[16]||(o[16]=e("span",{class:"agreement-text"},"和",-1)),e("span",{class:"link-text",onClick:$(xe,["stop"])},"私隱政策")])])])]),e("div",{class:Y(["register-btn",{disabled:!t(O)}]),onClick:Me},[...o[17]||(o[17]=[e("span",{class:"register-btn-text"},"登記",-1)])],2),o[24]||(o[24]=e("div",{class:"divider-text"},"或使用以下帳號登記",-1)),e("div",So,[t(Qe)?(_(),C("div",{key:0,class:"social-btn iam-smart-btn",onClick:ce},[o[18]||(o[18]=e("img",{src:Ke,class:"social-icon"}
1,null,-1)),e("span",xo,v(t(Z)("login.iamSmartButton")),1)])):B("",!0),e("div",{class:"social-btn",onClick:ie},[...o[19]||(o[19]=[e("img",{src:$e,class:"social-icon"},null,-1),e("span",{class:"social-text"},"Facebook",-1)])]),e("div",{class:"social-btn",onClick:re},[...o[20]||(o[20]=[e("img",{src:Ue,class:"social-icon"},null,-1),e("span",{class:"social-text"},"Google",-1)])])]),e("div",{class:"login-hint"},[o[21]||(o[21]=e("span",{class:"hint-text"},"如你已有帳戶,請前往",-1)),e("span",{class:"login-link",onClick:ve},"登入"),o[22]||(o[22]=e("span",{class:"hint-text"},"頁面",-1))])])]),u(g,{ref_key:"agreementDialog",ref:N},null,512),u(Pe,{ref_key:"privacyPolicyDialog",ref:F},null,512),u(H,{ref_key:"countryCodeDialog",ref:E,onSelect:ge},null,512),u(Ie,{ref_key:"thirdPartyAgreementDialog",ref:k,"confirm-text":"登記",onConfirm:ue},null,512),u(Xe,{ref_key:"iamSmartConfirmModalRef",ref:le,"close-on-click-overlay":!0,onConfirm:de},null,512),u(Ze,{visible:t(se),"onUpdate:modelValue":o[2]||(o[2]=n=>t(i).setLoadingModal(n))},null,8,["visible"]),u(eo,{visible:t(te),"onUpdate:modelValue":o[3]||(o[3]=n=>t(i).setInstructionModal(n))},null,8,["visible"]),u(K,{show:t(M),"onUpdate:show":o[10]||(o[10]=n=>b(M)?M.value=n:null),position:"center",round:"","lock-scroll":!0,teleport:"body","close-on-click-overlay":!1,style:{width:"90%",maxWidth:"400px"}},{default:J(()=>[e("div",Mo,[e("div",Po,[o[25]||(o[25]=e("span",{class:"popup-title"},"綁定手機號",-1)),e("div",{class:"close-btn",onClick:o[4]||(o[4]=(...n)=>t(i).closeMobileBindModal&&t(i).closeMobileBindModal(...n))},"×")]),e("div",Io,[e("div",Do,[o[27]||(o[27]=e("span",{class:"form-label required"},[Q("手機號"),e("span",{class:"required-mark"},"*")],-1)),e("div",Vo,[e("div",{class:"country-code-selector",onClick:be},[e("span",Ao,v(t(L)),1),o[26]||(o[26]=e("img",{src:X,class:"dropdown-icon"},null,-1))]),h(e("input",{class:"phone-input",type:"number","onUpdate:modelValue":o[5]||(o[5]=n=>b(I)?I.value=n:null),placeholder:"請輸入手機號",maxlength:"11"},null,512),[[w,t(I),void 0,{trim:!0}]])])]),e("div",Ro,[o[28]||(o[28]=e("span",{class:"form-label required"},[Q("驗證碼"),e("span",{class:"required-mark"},"*")],-1)),e("div",Bo,[h(e("input",{class:"verify-input",type:"number","onUpdate:modelValue":o[6]||(o[6]=n=>b(D)?D.value=n:null),placeholder:"請輸入驗證碼",maxlength:"6"},null,512),[[w,t(D),void 0,{trim:!0}]]),e("button",{class:"send-code-btn",onClick:o[7]||(o[7]=n=>t(i).sendVerifyCode(t(f))),disabled:t(T)||t(V)>0},v(t(V)>0?`${t(V)}秒後重試`:t(T)?"發送中...":"獲取驗證碼"),9,$o)])])]),e("div",Uo,[e("button",{class:"cancel-btn",onClick:o[8]||(o[8]=(...n)=>t(i).closeMobileBindModal&&t(i).closeMobileBindModal(...n))},"取消"),e("button",{class:"confirm-btn",onClick:o[9]||(o[9]=n=>t(i).bindMobile(t(f))),disabled:t(ne)}," 綁定並登錄 ",8,Lo)])])]),_:1},8,["show"]),u(H,{ref_key:"mobileBindCountryDialog",ref:q,onSelect:ye},null,512),u(K,{show:t(P),"onUpdate:show":o[13]||(o[13]=n=>b(P)?P.value=n:null),position:"center",round:"","lock-scroll":!0,teleport:"body","close-on-click-overlay":!1,style:{width:"90%",maxWidth:"360px"}},{default:J(()=>[e("div",To,[e("img",{src:Ye,class:"success-close-btn",alt:"close",onClick:o[11]||(o[11]=(...n)=>t(i).closeSuccessModal&&t(i).closeSuccessModal(...n))}),o[29]||(o[29]=e("div",{class:"success-image-wrap"},[e("img",{src:Je,alt:"success"})],-1)),o[30]||(o[30]=e("h2",{class:"success-popup-title"},"已為您開設帳戶",-1)),o[31]||(o[31]=e("p",{class:"success-popup-subtitle"},"已經為您開設帳戶,以後請透過智方便登入",-1)),e("button",{class:"success-popup-btn",onClick:o[12]||(o[12]=(...n)=>t(i).handleContinue&&t(i).handleContinue(...n))}," 繼續使用「工聯會」 ")])]),_:1},8,["show"])])}}}),rs=ze(No,[["__scopeId","data-v-dfdbc4a2"]]);export{rs 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.