PageSourceSearch

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

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

1import{c as ie,a as ce,A as ue,P as de}from"./BconBVZk.js";import{_ as pe}from"./D28JNWWP.js";import{d as ve,i as a,l as w,o as _,m as e,p as A,y as C,e as o,s as P,w as x,t as D,v as L,a0 as S,P as Z,A as O,au as n,aa as me,a9 as fe,bT as ye,ab as ge,bU as j,_ as we}from"./D1FcBL9p.js";import{_ as _e}from"./ByEoEc1o.js";import{c as he}from"./DkKlos9q.js";import{_ as ke}from"./CSggbRv_.js";import{e as q,a as F}from"./Wn3mimgw.js";import{u as be}from"./qJlnEoVS.js";import{s as Ce}from"./BySzvsyc.js";import"./EgekFmNJ.js";import"./DfaXuOzC.js";const Pe={class:"forgot-password-container"},xe={class:"step-container"},De={class:"form-container"},Se={class:"phone-input-container"},Te={class:"country-code"},Ie={class:"verify-code-container"},$e=["placeholder"],Ae={class:"send-code-text"},Ve={class:"form-container"},Me={class:"input-section"},Ne=["type"],Be=["src"],Ue={key:0,class:"error-message"},Ee={class:"error-text"},Re={class:"input-section"},ze=["type"],Le=["src"],Ze={key:0,class:"error-message"},Oe={class:"error-text"},je={class:"third-party-dialog-body"},qe={class:"third-party-agreement-checkbox"},Fe=["src"],Ge={class:"third-party-agreement-content"},He=ve({__name:"reset",setup(Je){const V=be(),i=a(1),m=a(!1),u=a("+852"),l=a(""),f=a(""),T=a("發送驗證碼"),I=a(!1),y=a(0),M=a(),c=a(""),r=a(""),h=a(!1),k=a(!1),d=a(""),p=a(""),g=a(!1),$=a(!1),N=a(!1),b=a(!1),B=a(),U=a(),E=/^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)[a-zA-Z\d]{8,}$/,G=()=>{i.value===2?i.value=1:V.back()},H=()=>{var t;(t=M.value)==null||t.open()},J=t=>{u.value=t},K=async()=>{if(!l.value){n("請輸入手機號碼");return}let t=!1;switch(u.value){case"+852":t=/^[0-9]{8}$/.test(l.value);break;case"+853":t=/^[0-9]{8}$/.test(l.value);break;case"+86":t=/^[0-9]{11}$/.test(l.value);break;default:t=l.value.length>0}if(!t){let s="";switch(u.value){case"+852":s="香港手機號碼應為8位數字";break;case"+853":s="澳門手機號碼應為8位數字";break;case"+86":s="中國內地手機號碼應為11位數字";break;default:s="請輸入有效的手機號碼"}n(s);return}if(!(I.value||y.value>0))try{I.value=!0;const s=`(${u.value})${l.value}`;await me({phone:s,scene:4}),N.value=!0,I.value=!1,Q(),n("驗證碼已發送")}catch(s){console.error("發送驗證碼失敗:",s),n({message:"發送失敗,請重試",icon:"none"})}},Q=()=>{y.value=60;const t=Ce(()=>{y.value--,T.value=`${y.value}s後重發`,y.value<=0&&(clearInterval(t),T.value="發送驗證碼")},1e3)},W=async()=>{if(!l.value){n("請輸入手機號碼");return}if(!f.value){n("請輸入驗證碼");return}try{await fe({mobile:`(${u.value})${l.value}`,scene:4,code:f.value}),X(2)}catch(t){console.error("验证码验证失败:",t),n("验证码错误,请重新输入")}},X=t=>{m.value=!0,setTimeout(()=>{i.value=t,setTimeout(()=>{m.value=!1},300)},50)},Y=()=>{if(!c.value){d.value="";return}E.test(c.value)?d.value="":d.value="密碼至少8個字元,必須包含英文大小寫字母及數字",r.value&&R()},R=()=>{if(!r.value){p.value="",g.value=!1;return}E.test(r.value)?(p.value="",g.value=c.value!==r.value):(p.value="密碼至少8個字元,必須包含英文大小寫字母及數字",g.value=!1)},ee=()=>{h.value=!h.value},se=()=>{k.value=!k.value},z=()=>{b.value=!b.value},oe=()=>{var t;(t=B.value)==null||t.open()},te=()=>{var t;(t=U.value)==null||t.open()},ae=async()=>{if(!$.value){if(!c.value){n("請輸入密碼");return}if(!r.value){n("請確認密碼");return}if(d.value||p.value){n("密碼至少8個字元,必須包含英文大小寫字母及數字");return}if(c.value!==r.value){n("兩次輸入的密碼不一致");return}if(!b.value){n("請先同意使用條款和私隱政策");return}try{$.value=!0,ye({message:"設定中..."});const s={mobile:`(${u.value})${l.value}`,code:f.value,password:c.value,password2:r.value};await ge(s),j(),n({message:"密碼重置成功",icon:"success"}),setTimeout(()=>{V.push("/login/mobile/login")},1e3)}catch(t){j(),console.error("設定密碼失敗:",t),n({message:"設定失敗,請重試",icon:"none"})}finally{$.value=!1}}};return(t,s)=>{const ne=ue,le=de,re=pe;return _(),w("div",Pe,[e("div",{class:"header"},[e("div",{class:"back-btn",onClick:G},[...s[4]||(s[4]=[e("img",{src:_e,class:"back-arrow-icon"},null,-1)])])]),e("div",xe,[o(i)===1?(_(),w("div",{key:0,class:P(["step-content",{"slide-in-right":o(m)&&o(i)===1,"slide-out-left":o(m)&&o(i)!==1}])},[s[7]||(s[7]=e("div",{class:"title-section"},[e("span",{class:"title-text"}
1,"找回密碼")],-1)),e("div",De,[e("div",Se,[e("div",{class:"country-code-selector",onClick:H},[e("span",Te,D(o(u)),1),s[5]||(s[5]=e("img",{src:he,class:"dropdown-icon"},null,-1))]),x(e("input",{class:"phone-input",type:"tel",placeholder:"請輸入手機號碼","onUpdate:modelValue":s[0]||(s[0]=v=>S(l)?l.value=v:null)},null,512),[[L,o(l)]])]),e("div",Ie,[x(e("input",{class:"verify-code-input",type:"text",placeholder:o(N)?"如無法收到驗證碼,請查詢手機短訊垃圾箱":"驗證碼","onUpdate:modelValue":s[1]||(s[1]=v=>S(f)?f.value=v:null)},null,8,$e),[[L,o(f)]]),e("div",{class:"send-code-btn",onClick:K},[e("span",Ae,D(o(T)),1)])]),e("div",{class:"confirm-btn",onClick:W},[...s[6]||(s[6]=[e("span",{class:"confirm-btn-text"},"確認",-1)])])])],2)):C("",!0),o(i)===2?(_(),w("div",{key:1,class:P(["step-content",{"slide-in-left":o(m)&&o(i)===2,"slide-out-right":o(m)&&o(i)!==2}])},[s[14]||(s[14]=e("div",{class:"password-title"},[e("span",{class:"title-text"},"設定新密碼")],-1)),e("div",Ve,[e("div",Me,[s[8]||(s[8]=e("span",{class:"input-label"},"輸入密碼",-1)),e("div",{class:P(["password-input-container",{error:o(d)}])},[x(e("input",{class:"password-input",type:o(h)?"text":"password",placeholder:"請輸入","onUpdate:modelValue":s[2]||(s[2]=v=>S(c)?c.value=v:null),onInput:Y},null,40,Ne),[[Z,o(c)]]),e("div",{class:"password-toggle",onClick:ee},[e("img",{src:o(h)?o(q):o(F),class:"eye-icon"},null,8,Be)])],2),s[9]||(s[9]=e("span",{class:"password-hint"},"密碼至少8個字元(含英文大文及小寫字母及數字)",-1)),o(d)?(_(),w("div",Ue,[e("span",Ee,D(o(d)),1)])):C("",!0)]),e("div",Re,[s[10]||(s[10]=e("span",{class:"input-label"},"確認密碼",-1)),e("div",{class:P(["password-input-container",{error:o(p)||o(g)}])},[x(e("input",{class:"password-input",type:o(k)?"text":"password",placeholder:"請輸入","onUpdate:modelValue":s[3]||(s[3]=v=>S(r)?r.value=v:null),onInput:R},null,40,ze),[[Z,o(r)]]),e("div",{class:"password-toggle",onClick:se},[e("img",{src:o(k)?o(q):o(F),class:"eye-icon"},null,8,Le)])],2),s[11]||(s[11]=e("span",{class:"password-hint"},"密碼至少8個字元(含英文大文及小寫字母及數字)",-1)),o(p)||o(g)?(_(),w("div",Ze,[e("span",Oe,D(o(p)||"兩次輸入的密碼不一致"),1)])):C("",!0)]),e("div",je,[e("div",null,[e("label",qe,[e("img",{onClick:z,src:o(b)?o(ie):o(ce),class:"eye-icon1"},null,8,Fe),e("div",Ge,[e("span",{onClick:z,class:"third-party-agreement-text"}," 我已閱讀及同意「工聯會APP」的 "),e("span",{class:"third-party-link-text",onClick:O(oe,["stop"])}," 使用條款 "),s[12]||(s[12]=e("span",{class:"third-party-agreement-text"},"和",-1)),e("span",{class:"third-party-link-text",onClick:O(te,["stop"])}," 私隱政策 ")])])])]),e("div",{class:"confirm-btn",onClick:ae},[...s[13]||(s[13]=[e("span",{class:"confirm-btn-text"},"確認",-1)])])])],2)):C("",!0)]),s[15]||(s[15]=e("div",{class:"bottom-background"},[e("img",{src:ke,class:"bg-image"})],-1)),A(ne,{ref_key:"agreementDialog",ref:B},null,512),A(le,{ref_key:"privacyPolicyDialog",ref:U},null,512),A(re,{ref_key:"countryCodeDialog",ref:M,onSelect:J},null,512)])}}}),ls=we(He,[["__scopeId","data-v-98549fea"]]);export{ls 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.