PageSourceSearch

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

js ftu.org.hk collected 2026-10-02 17:37:08 UTC 15,382 bytes, 1 lines download raw bytes

1import{d as dt,f as vt,g as mt,h as Ne,i as h,c as g,S as ht,j as _t,u as yt,k as gt,U as ft,l as i,o as c,m as s,p as C,e as r,w as T,t as u,V as bt,v as te,q as Pt,W as kt,s as L,F as Y,x as z,y as p,z as Te,A as H,C as se,n as Ct,D as Le,G as x,_ as wt}from"./rNMPrltl.js";import{s as At}from"./DFuLfMiF.js";import{_ as St}from"./Cu3F01sb.js";import{_ as ne,s as xe}from"./Df__d_HO.js";import{_ as Ot,a as Mt,h as Nt,c as Tt,e as Lt}from"./Cro5tZzc.js";import{u as xt}from"./boj7xwiX.js";import{g as $t}from"./XJXoHre2.js";import{m as ae,p as K,g as Ft,a as Bt,b as It,c as Ut,d as Rt,S as Dt}from"./CiocIsmi.js";import{m as oe}from"./DjFGz9xC.js";import{h as Et}from"./nXLEEgK9.js";import{g as Vt}from"./amgjlrLq.js";import{s as Yt,f as zt}from"./tO_-kIbu.js";import{s as Ht,a as Kt,u as $e}from"./BoKaWBEY.js";import{u as qt}from"./C-CKqwmZ.js";import{s as jt}from"./C2IpH1DR.js";import{S as Wt}from"./Br6zXOus.js";import{u as Gt}from"./CUF8NFeV.js";import{s as Xt}from"./tCXjPLLc.js";import"./CXXDZoq4.js";const Zt={class:"shop-mobile-container"},Jt={class:"filter-container"},Qt={class:"search-input-wrapper"},es={class:"search-label-text"},ts=["placeholder"],ss={class:"price-input-wrapper"},ns={class:"price-input-group"},as=["placeholder"],os=["placeholder"],ls={class:"classification-container"},rs={class:"classification-item-text"},is=["onClick"],cs={class:"classification-item-text"},us={class:"commodity-container"},ps={key:0,class:"points-card-fixed"},ds={class:"points-card-label"},vs={class:"points-card-value-row"},ms=["src"],hs={class:"points-card-value"},_s={class:"payment-method-container"},ys=["onClick"],gs=["src"],fs={class:"payment-label"},bs={class:"shop-m-banner-carousel__track"},Ps={class:"commodity-list-classification-title"},ks={class:"font"},Cs=["onClick"],ws={class:"commodity-item-container"},As={class:"commodity-item-container-scroll-outside"},Ss=["onClick"],Os=["onClick"],Ms={key:0,class:"product-corner-badges"},Ns={class:"buy-start-badge"},Ts=["onClick"],Ls=["src"],xs=["onClick"],$s=["src"],Fs=["onClick"],Bs=["src"],Is={key:0,class:"item-subName"},Us={class:"item-productName"},Rs={key:1,class:"pay-type-container"},Ds={key:0,class:"pay-type-item"},Es=["src"],Vs={class:"pay-type-price"},Ys={key:1,class:"pay-type-item"},zs=["src"],Hs={class:"pay-type-price"},Ks={key:2,class:"pay-type-item"},qs=["src"],js={class:"pay-type-price"},Ws={class:"points-label"},Gs={key:2,class:"pay-type-container"},Xs={key:0,class:"pay-type-item"},Zs=["src"],Js={class:"pay-type-price"},Qs={key:1,class:"pay-type-item"},en=["src"],tn={class:"pay-type-price"},sn={key:2,class:"pay-type-item"},nn=["src"],an={class:"pay-type-price"},on={class:"points-label"},ln={class:"arrow-right-icon"},rn=["onClick"],cn={class:"arrow-left-icon"},un=["onClick"],pn=4e3,dn=dt({__name:"mobile",setup(vn){xt();const{t:l}=vt(),q=mt(),{toggleFavorite:Fe}=qt(),$=Ne(),{getPath:F}=Gt(),Be=t=>`${zt(t.buyStartTime)}${l("shop.buyStartsSuffix")}`,B=h([]),j=h(""),W=h(""),G=h(""),X=h([]),Z=h([]),P=h(""),A=h(!1),Ie=g(()=>[{label:l("shop.searchAll"),value:""},...Z.value]),Ue=g(()=>{if(!P.value)return l("shop.searchAll");const t=Z.value.find(e=>e.value===P.value);return(t==null?void 0:t.label)||l("shop.searchAll")}),Re=t=>{var e,o;P.value=(o=(e=t.selectedOptions[0])==null?void 0:e.value)!=null?o:"",A.value=!1,E()},De=g(()=>{const t=l("shop.searchPlaceholder");return t&&t!=="shop.searchPlaceholder"?t:"輸入關鍵字..."}),Ee=g(()=>{const t=l("shop.minPrice");return t&&t!=="shop.minPrice"?t:"最低價格"}),Ve=g(()=>{const t=l("shop.maxPrice");return t&&t!=="shop.maxPrice"?t:"最高價格"}),m=h([]),y=h(0),f=g(()=>m.value.length),J=g(()=>f.value?(y.value-1+f.value)%f.value:0),Q=g(()=>f.value?(y.value+1)%f.value:0),S=t=>{f.value&&(y.value=(t%f.value+f.value)%f.value)},le=()=>[{image:xe},{image:ne},{image:xe},{image:ne}],Ye=new Set(["mobile","h5","app","m","2"]),ze=new Set(["pc","1"]),He=t=>Array.isArray(t)&&t.some(e=>Ye.has(String(e).trim().toLowerCase())),Ke=t=>Array.isArray(t)&&t.some(e=>ze.has(String(e).trim().toLowerCase())),qe=t=>{if(t==null||!String(t).trim())return null;const e=String(t).trim().replace(/^(\d{4}-\d{2}-\d{2})\s+/,"$1T"),o=new Date(e).getTime();return Number.isNaN(o)?null:o},je=t=>{const e=Date.now(),o=t.filter(v=>v.imageUrl).filter(v=>{if(v.isPublished!=null&&v.isPublished!=="1")return!1;const _=qe(v.removalTime);return!(_!=null&&_<e)}).sort((v,_)=>{var O,M;return((O=v.sort)!=null?O:0)-((M=_.sort)!=null?M:0)}),d=v=>v.map(_=>({image:_.imageUrl,link:_.jumpLink&&String(_.jumpLink).trim()||void 0,title:_.title})),b=o.filter(v=>He(v.publishPort));if(b.length>0)return d(b);const k=o.filter(v=>Ke(v.publishPort));return d(k)},We=t=>{const e=t.trim();if(e){if(/^https?:\/\//i.test(e)){window.open(e,"_blank","noopener,noreferrer");return}e.startsWith("/")&&$.push(F(e))}},Ge=()=>{var e;const t=(e=m.value[y.value])==null?void 0:e.link;t&&We(t)},Xe=async()=>{var t;try{const e=await Ft(),o=Array.isArray(e)?e:e&&typeof e=="object"&&Array.isArray(e.data)?(t=e.data)!=null?t:[]:[],d=je(o);m.value=d.length>
10?d:le(),y.value=0}catch{m.value=le(),y.value=0}};let I=null;const re=()=>{I!=null&&(clearInterval(I),I=null)},ie=()=>{re(),!(m.value.length<=1)&&(I=Xt(()=>{S(y.value+1)},pn))};ht(()=>m.value.length,()=>{ie()});const U=h("ALL"),R=h(null),D=h(null),Ze=h([{value:"ALL",label:l("shop.allPaymentMethods")||"所有支付方式",icon:null,iconColor:null},{value:"ONLY_AMOUNT",label:l("shop.paymentPurchase")||"付款購買",icon:ae},{value:"ONLY_POINT",label:l("shop.pointExchange")||"積分兌換",icon:K},{value:"AMOUNT_POINT",label:l("shop.paymentPlusPoints")||"付款+積分",icon:oe}]),w=g(()=>{const t=_t("ACCESS_TOKEN"),e=!!(t!=null&&t.value),o=q.isLoggedIn,d=!!q.userInfo;return!e&&o?(q.clearAuthState(),!1):e&&!d?!1:e&&o&&d}),E=()=>{de()},Je=t=>{U.value=t,E()},ce=t=>{P.value=t,E()};yt({title:l("shop.headerTitle")});const Qe=async()=>{const t=await $t("product_labels");X.value=t,Z.value=t||[];const e=[{label:l("shop.recommendedCommodity"),value:""},...t];B.value=e.map(o=>({label:o.label,value:o.value,list:[]}))},et=t=>{t.left<t.maxLeft&&(t.left+=1)},tt=t=>{t.left>0&&(t.left-=1)},st=t=>{Ne().push({path:"/shop/detail",query:{id:t.id}})},ue=(t,e)=>{var o;return`${t}-${(o=e==null?void 0:e.id)!=null?o:""}`},nt=(t,e)=>{const o=ue(e,t);D.value=D.value===o?null:o},at=()=>{D.value=null},pe=t=>{const e=t==null?void 0:t.productPrice;return!e||e.memberOnlyAmountFlag===1||e.nonMemberOnlyAmountFlag===1?"ONLY_AMOUNT":e.memberOnlyPointsFlag===1||e.nonMemberOnlyPointsFlag===1?"ONLY_POINT":e.memberPointsAmountFlag===1||e.nonMemberPointsAmountFlag===1?"AMOUNT_POINT":"ONLY_AMOUNT"},ot=async t=>{const e=t==null?void 0:t.id;if(e==null)return;await Fe(String(e),!!t.favorite)&&(t.favorite=!t.favorite)},lt=async t=>{if(!w.value){x.warning(l("login.loginTips"));return}const e=pe(t);await Rt({productId:String(t.id),payMethod:e,quantity:1,userMemberPriceFlag:$e(w.value,t)})?x.success(l("shop.addToCartSuccess")):x.error(l("shop.addToCartFailed"))},rt=async t=>{if(!w.value){x.warning(l("login.loginTips"));return}const e=pe(t);if(!await jt({commodity:t,quantity:1,payMethod:e,userMemberPriceFlag:$e(w.value,t)})){x.error(l("shop.checkoutDeptRequired"));return}$.push({path:F("/shop/checkout")})},it=t=>{$.push({path:F("/shop/category"),query:{label:t.label,value:t.value}})},ct=g(()=>{const t=P.value;return t?B.value.filter(e=>e.value===t):B.value}),ee=async t=>{const e=U.value==="ALL"?{}:{payMethod:U.value},o=await Bt({pageNo:1,pageSize:Dt,keyword:j.value.trim(),labels:t,sortType:1,...It(W.value,G.value),...e}),d=B.value.find(b=>b.value===t);d&&(d.list=o.list.map(b=>{const k={...b,favorite:Ut(b)};return o.list.length>3&&(d.overflow=!0,d.left=0,d.maxLeft=o.list.length-3),k}))},ut=async()=>{var t;try{const e=await Vt();R.value=(t=e==null?void 0:e.availablePoint)!=null?t:0}catch{R.value=null}},de=async()=>{ut(),await Qe();const t=P.value;t?await ee(t):(await ee(""),await Promise.all(X.value.map(e=>ee(e.value))))};return gt(()=>{Xe(),de(),ie()}),ft(()=>{re()}),(t,e)=>{var v,_,O,M,ve,me;const o=bt,d=At,b=kt,k=St;return c(),i("div",Zt,[s("div",{class:"shop-mobile-header",onClick:e[0]||(e[0]=n=>r($).push(r(F)("/tradeUnion")))},[...e[13]||(e[13]=[s("img",{src:ne,alt:"shop-mobile-header",class:"shop-mobile-header-img"},null,-1)])]),s("div",Jt,[s("div",Qt,[s("div",{class:"search-label-trigger",onClick:e[1]||(e[1]=n=>A.value=!0)},[s("span",es,u(Ue.value),1),C(o,{name:"arrow-down",color:"#e60013",size:"12px"})]),e[14]||(e[14]=s("div",{class:"search-input-divider"},null,-1)),T(s("input",{"onUpdate:modelValue":e[2]||(e[2]=n=>j.value=n),type:"text",class:"keyword-input",placeholder:De.value},null,8,ts),[[te,j.value]])]),s("div",ss,[s("div",ns,[e[15]||(e[15]=s("span",{class:"currency-symbol"},"$",-1)),T(s("input",{"onUpdate:modelValue":e[3]||(e[3]=n=>W.value=n),type:"number",class:"price-input",placeholder:Ee.value},null,8,as),[[te,W.value]]),e[16]||(e[16]=s("span",{class:"price-separator"},"-",-1)),e[17]||(e[17]=s("span",{class:"currency-symbol"},"$",-1)),T(s("input",{"onUpdate:modelValue":e[4]||(e[4]=n=>G.value=n),type:"number",class:"price-input",placeholder:Ve.value},null,8,os),[[te,G.value]])])]),s("div",{class:"search-btn",onClick:E},u(r(l)("common.search")),1)]),C(b,{show:A.value,"onUpdate:show":e[6]||(e[6]=n=>A.value=n),position:"bottom"},{default:Pt(()=>[C(d,{columns:Ie.value,"columns-field-names":{text:"label",value:"value"},"confirm-button-text":r(l)("confirm"),"cancel-button-text":r(l)("cancel"),onCancel:e[5]||(e[5]=n=>A.value=!1),onConfirm:Re},null,8,["columns","confirm-button-text","cancel-button-text"])]),_:1},8,["show"]),s("div",ls,[s("div",{class:L(["classification-item",{active:P.value===""}]),onClick:e[7]||(e[7]=n=>ce(""))},[e[18]||(e[18]=s("img",{src:Ot,class:"classification-item-img",alt:""},null,-1)),s("span",rs,u(r(l)("shop.recommendedCommodity")),1)],2),(c(!0),i(Y,null,z(X.value,
1n=>(c(),i("div",{class:L(["classification-item",{active:P.value===n.value}]),key:n.id,onClick:N=>ce(n.value)},[e[19]||(e[19]=s("img",{src:Mt,class:"classification-item-img",alt:""},null,-1)),s("span",cs,u(n.label),1)],10,is))),128))]),s("div",us,[R.value!==null?(c(),i("div",ps,[s("div",ds,u(r(l)("shop.yourAvailablePoints")),1),s("div",vs,[s("img",{src:r(K),class:"points-card-icon",alt:""},null,8,ms),s("span",hs,u(((v=R.value)!=null?v:0).toLocaleString()),1)])])):p("",!0),s("div",_s,[(c(!0),i(Y,null,z(Ze.value,n=>(c(),i("div",{key:n.value,class:L(["payment-method-item",{active:U.value===n.value}]),onClick:N=>Je(n.value)},[n.icon?(c(),i("img",{key:0,src:n.icon,class:"payment-icon-img",alt:""},null,8,gs)):p("",!0),s("span",fs,u(n.label),1)],10,ys))),128))]),m.value.length>0?(c(),i("div",{key:1,class:L(["shop-m-banner-carousel",{"shop-m-banner-carousel--single":m.value.length===1}])},[s("div",bs,[m.value.length>1?(c(),i("div",{key:0,class:"shop-m-banner-carousel__side",role:"button",tabindex:"0",onClick:e[8]||(e[8]=n=>S(J.value)),onKeyup:e[9]||(e[9]=Te(n=>S(J.value),["enter"]))},[C(k,{src:(_=m.value[J.value])==null?void 0:_.image,class:"shop-m-banner-carousel__side-img",alt:""},null,8,["src"])],32)):p("",!0),s("div",{class:L(["shop-m-banner-carousel__main",{"is-clickable":!!((O=m.value[y.value])!=null&&O.link)}]),onClick:Ge},[C(k,{src:(M=m.value[y.value])==null?void 0:M.image,class:"shop-m-banner-carousel__main-img",title:(ve=m.value[y.value])==null?void 0:ve.title,alt:""},null,8,["src","title"])],2),m.value.length>1?(c(),i("div",{key:1,class:"shop-m-banner-carousel__side",role:"button",tabindex:"0",onClick:e[10]||(e[10]=n=>S(Q.value)),onKeyup:e[11]||(e[11]=Te(n=>S(Q.value),["enter"]))},[C(k,{src:(me=m.value[Q.value])==null?void 0:me.image,class:"shop-m-banner-carousel__side-img",alt:""},null,8,["src"])],32)):p("",!0)])],2)):p("",!0),(c(!0),i(Y,null,z(ct.value,(n,N)=>(c(),i("div",{class:"commodity-list-classification",key:N},[s("div",Ps,[s("span",ks,u(n.label),1),s("span",{class:"check-more",onClick:H(a=>it(n),["stop"])},[se(u(r(l)("volunteer.viewAll"))+" ",1),e[20]||(e[20]=s("i",{class:"ri-arrow-right-s-line"},null,-1))],8,Cs)]),s("div",ws,[s("div",As,[s("div",{class:"commodity-item-container-scroll",style:Ct({transform:`translateX(-${n.left*140}px)`})},[(c(!0),i(Y,null,z(n.list,(a,pt)=>{var he,_e,ye,ge,fe,be,Pe,ke,Ce,we,Ae,Se,Oe,Me;return c(),i("div",{class:"commodity-item",key:pt,onClick:V=>st(a)},[s("div",{class:"image-container",onClick:H(V=>nt(a,N),["stop"])},[r(Yt)(a.buyStartTime)?(c(),i("div",Ms,[s("div",Ns,u(Be(a)),1)])):p("",!0),C(k,{src:a.publicizeImage,class:"img",alt:""},null,8,["src"]),D.value===ue(N,a)?(c(),i("div",{key:1,class:"product-overlay",onClick:H(at,["stop"])},[s("div",{class:"product-overlay-inner",onClick:e[12]||(e[12]=H(()=>{},["stop"]))},[s("div",{class:"overlay-btn",onClick:V=>ot(a)},[s("img",{src:a.favorite?r(Et):r(Nt),class:"overlay-btn-icon",alt:""},null,8,Ls),s("span",null,u(a.favorite?r(l)("shop.unfavorite"):r(l)("shop.collect")),1)],8,Ts),s("div",{class:"overlay-btn",onClick:V=>lt(a)},[s("img",{src:r(Tt),class:"overlay-btn-icon",alt:""},null,8,$s),s("span",null,u(r(l)("shop.addToCart")),1)],8,xs),r(Wt)?(c(),i("div",{key:0,class:"overlay-btn",onClick:V=>rt(a)},[s("img",{src:r(Lt),class:"overlay-btn-icon",alt:""},null,8,Bs),s("span",null,u(r(l)("shop.buyNow")),1)],8,Fs)):p("",!0)])])):p("",!0)],8,Os),a.subName?(c(),i("div",Is,u(a.subName),1)):p("",!0),s("div",Us,u(a.productName),1),r(Ht)(w.value,a)?(c(),i("div",Rs,[((he=a.productPrice)==null?void 0:he.memberOnlyAmountFlag)===1?(c(),i("div",Ds,[s("img",{src:r(ae),class:"pay-type-item-img",alt:""},null,8,Es),s("span",Vs,"$"+u((_e=a.productPrice)==null?void 0:_e.memberOnlyAmount),1)])):p("",!0),((ye=a.productPrice)==null?void 0:ye.memberOnlyPointsFlag)===1?(c(),i("div",Ys,[s("img",{src:r(K),class:"pay-type-item-img",alt:""},null,8,zs),s("span",Hs,u((ge=a.productPrice)==null?void 0:ge.memberOnlyPoints),1)])):p("",!0),((fe=a.productPrice)==null?void 0:fe.memberPointsAmountFlag)===1?(c(),i("div",Ks,[s("img",{src:r(oe),class:"pay-type-item-img",alt:""},null,8,qs),s("span",js,[se("$"+u((be=a.productPrice)==null?void 0:be.memberAmount)+" + "+u((Pe=a.productPrice)==null?void 0:Pe.memberPoints)+" ",1),s("span",Ws,u(r(l)("shop.points")),1)])])):p("",!0)])):p("",!0),r(Kt)(w.value,a)?(c(),i("div",Gs,[((ke=a.productPrice)==null?void 0:ke.nonMemberOnlyAmountFlag)===1?(c(),i("div",Xs,[s("img",{src:r(ae),class:"pay-type-item-img",alt:""},null,8,Zs),s("span",Js,"$"+u((Ce=a.productPrice)==null?void 0:Ce.nonMemberOnlyAmount),1)])):p("",!0),((we=a.productPrice)==null?void 0:we.nonMemberOnlyPointsFlag)===1?(c(),i("div",Qs,[s("img",{src:r(K),class:"pay-type-item-img",alt:""},null,8,en),s("span",tn,u((Ae=a.productPrice)==null?void 0:Ae.nonMemberOnlyPoints),1)])):p("",!0),((Se=a.productPrice)==null?void 0:Se.nonMemberPointsAmountFlag)===1?(c(),i("div",sn,[s("img",{src:r(oe),class:"pay-type-item-img",alt:""},null,8,nn),s("span",an,[se("$"+u((Oe=a.productPrice)==null?void 0:Oe.nonMemberAmount)+" + "+u((Me=a.productPrice)==null?void 0:Me.nonMemberPoints)+" ",1),s("span",on,u(r(l)("shop.points")),1)])])):p("",!0)])):p("",!0)],8,Ss)}),128))],4)]),T(s("div",ln,[s("i",{class:"ri-arrow-right-line icon",onClick:a=>et(n)},null,8,rn)],512),[[Le,n.overflow===!0]]),T(s("div",cn,[s("i",{class:"ri-arrow-left-line icon",onClick:a=>tt(n)},null,8,un)],512),[[Le,n.overflow===!0]])])]))),128))])])}}}),$n=wt(dn,[["__scopeId","data-v-490fe8a3"]]);export{$n 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.