2 lines
7.1 KiB
JavaScript
2 lines
7.1 KiB
JavaScript
import{_ as se}from"./button.vue_vue_type_style_index_0_lang-5b65d3cd.js";import{d as te,U as ae,r as o,i as ne,o as l,c as d,a as e,O as u,b as i,w as H,e as g,F as P,S as T,T as q,X as oe,K as ie,N as V,a0 as k,ae as le,af as re}from"./index-c822befc.js";import{g as ce,a as de,f as ue}from"./competition-fa304f49.js";import{I as r}from"./Icon-ff3adddf.js";import{_ as _e}from"./_plugin-vue_export-helper-c27b6911.js";import"./usePrefix-93de78a0.js";import"./index-69ae13da.js";import"./raf-e9e40ecb.js";const v=x=>(le("data-v-f2a4d150"),x=x(),re(),x),ve={class:"lottery-container"},he={class:"lottery-header"},pe={class:"lottery-title"},fe=v(()=>e("p",{class:"lottery-subtitle"},"قرعه کشی برندگان مسابقه",-1)),me={class:"lottery-content"},ge={key:0,class:"loading-state"},ye=v(()=>e("div",{class:"spinner"},null,-1)),we=v(()=>e("p",null,"در حال بارگذاری...",-1)),xe=[ye,we],be={key:1,class:"error-state"},ke={key:2,class:"empty-state"},Ie=v(()=>e("p",null,"برای این مسابقه برندهای یافت نشد",-1)),Se={key:3,class:"winner-result"},We={class:"winner-card"},Ce={class:"winner-badge"},Me=v(()=>e("h2",{class:"winner-title"},"برنده نهایی",-1)),Be={class:"winner-info"},De={class:"winner-name"},Fe={class:"winner-details"},Oe={class:"detail-item"},Ne={class:"detail-item"},Ee=v(()=>e("div",{class:"celebration"},[e("div",{class:"confetti"}),e("div",{class:"confetti"}),e("div",{class:"confetti"})],-1)),He={key:4,class:"final-winner-result"},Pe={class:"winner-card-animated"},Te={class:"winner-badge-large"},qe=v(()=>e("h2",{class:"winner-title-large"},"تبریک! برنده انتخاب شد",-1)),Ve={class:"winner-info-large"},$e={class:"winner-name-large"},ze={class:"winner-details-large"},Le={class:"detail-item-large"},Re={class:"detail-item-large"},Ue={class:"celebration-large"},Ae={key:5,class:"lottery-wheel-container"},Ke={class:"participants-info"},Xe={class:"info-card"},Ye={class:"lottery-display-wrapper"},je={class:"lottery-display-container"},Ge={class:"display-frame"},Je={class:"display-window"},Qe=v(()=>e("div",{class:"lottery-shadows"},[e("div",{class:"shadow-top"}),e("div",{class:"shadow-bottom"})],-1)),Ze={class:"name-content"},es={class:"name-text"},ss={class:"name-score"},ts={class:"frame-pointer"},as={class:"lottery-controls"},ns={key:1,class:"spinning-indicator"},os=v(()=>e("div",{class:"spinner-large"},null,-1)),is=v(()=>e("p",null,"در حال قرعه کشی...",-1)),ls=[os,is],rs=te({__name:"index",setup(x){const M=ae(),p=o(null),B=o(""),a=o([]),y=o(!0),h=o(""),f=o(!1),$=o(-1),_=o(null),I=o(!1),m=o(null),z=o(null),b=o(0),S=o([]),L=()=>typeof window<"u"&&window.innerWidth<=768?70:80,R=async()=>{try{const s=(await de()).find(c=>c.id===p.value);if(s&&(z.value=s,s.winner_id)){I.value=!0;const c=a.value.find(n=>!!(n.user_id&&String(n.user_id)===String(s.winner_id)||n.id&&String(n.id)===String(s.winner_id)));c?m.value=c:m.value={user_id:s.winner_id,user_name:"برنده نهایی",user_mobile:"",score:0}}}catch(t){console.error("Error loading match:",t)}},D=async()=>{if(!p.value){h.value="شناسه مسابقه یافت نشد",y.value=!1;return}try{y.value=!0,h.value="";const t={page:1,limit:1e4,filters:[{field:"match_id",op:"eq",value:p.value,cr:"and",hidden:!1,type:"number"}]},s=await ce(t);a.value=s.rows||[],a.value.length===0?h.value="برای این مسابقه برندهای یافت نشد":(F(),await R())}catch(t){console.error("Error loading winners:",t),h.value="خطا در بارگذاری برندگان: "+(t.message||"خطای ناشناخته")}finally{y.value=!1}},F=()=>{const t=a.value.length>100?2:3;S.value=[];for(let s=0;s<t;s++)S.value.push(...a.value);b.value=0},U=async()=>{if(a.value.length===0){k.warning("برندهای برای قرعه کشی وجود ندارد");return}F(),f.value=!0,$.value=-1,_.value=null;const t=Math.floor(Math.random()*a.value.length),s=a.value[t],c=L(),W=(window.innerWidth<=768?200:240)/2-c/2,K=-(t*c)+W,X=a.value.length>100?3:4,Y=-(a.value.length*c*X),O=K+Y,j=3e3,G=Math.min(a.value.length*2,2e3),J=j+G,Q=Date.now(),N=0,E=()=>{const Z=Date.now()-Q,w=Math.min(Z/J,1);let C=w;w<.75?C=w*(1/.75)*.85:C=.85+(w-.75)/.25*.15;const ee=1-Math.pow(1-C,3);b.value=N+(O-N)*ee,w<1?requestAnimationFrame(E):(b.value=O,_.value=s,f.value=!1,A(s))};E()},A=async t=>{try{const s=t.user_id;if(!s){k.error("شناسه برنده یافت نشد");return}await ue(p.value,s),k.success("برنده با موفقیت ذخیره شد"),I.value=!0,m.value=t}catch(s){console.error("Error saving winner:",s),k.error("خطا در ذخیره برنده: "+(s.message||"خطای ناشناخته"))}};return ne(()=>{const t=M.query.matchId,s=M.query.title;t&&(p.value=Number(t)),s&&(B.value=decodeURIComponent(String(s))),p.value?D():(h.value="شناسه مسابقه یافت نشد",y.value=!1)}),(t,s)=>{const c=se;return l(),d("div",ve,[e("div",he,[e("h1",pe,u(B.value),1),fe]),e("div",me,[y.value?(l(),d("div",ge,xe)):h.value?(l(),d("div",be,[i(r,{icon:"vuesax-linear:close-circle",class:"error-icon"}),e("p",null,u(h.value),1),i(c,{onClick:D},{default:H(()=>[g("تلاش مجدد")]),_:1})])):a.value.length===0?(l(),d("div",ke,[i(r,{icon:"vuesax-linear:info-circle",class:"empty-icon"}),Ie])):I.value?(l(),d("div",Se,[e("div",We,[e("div",Ce,[i(r,{icon:"vuesax-linear:trophy",class:"trophy-icon"})]),Me,e("div",Be,[e("div",De,u(m.value.user_name),1),e("div",Fe,[e("span",Oe,[i(r,{icon:"vuesax-linear:call"}),g(" "+u(m.value.user_mobile||"نامشخص"),1)]),e("span",Ne,[i(r,{icon:"vuesax-linear:medal"}),g(" امتیاز: "+u(m.value.score),1)])])]),Ee])])):_.value?(l(),d("div",He,[e("div",Pe,[e("div",Te,[i(r,{icon:"vuesax-linear:trophy",class:"trophy-icon-large"})]),qe,e("div",Ve,[e("div",$e,u(_.value.user_name),1),e("div",ze,[e("span",Le,[i(r,{icon:"vuesax-linear:call"}),g(" "+u(_.value.user_mobile||"نامشخص"),1)]),e("span",Re,[i(r,{icon:"vuesax-linear:medal"}),g(" امتیاز: "+u(_.value.score),1)])])]),e("div",Ue,[(l(),d(P,null,T(20,n=>e("div",{class:"confetti-large",key:n})),64))])])])):(l(),d("div",Ae,[e("div",Ke,[e("div",Xe,[i(r,{icon:"vuesax-linear:people"}),e("span",null,"تعداد شرکتکنندگان: "+u(a.value.length)+" نفر",1)])]),e("div",Ye,[e("div",je,[e("div",Ge,[e("div",Je,[Qe,e("div",{class:q(["name-list",{spinning:f.value}]),style:oe({transform:`translateY(${b.value}px)`})},[(l(!0),d(P,null,T(S.value,(n,W)=>(l(),d("div",{key:`${n.id}-${W}`,class:q(["name-item",{highlight:!f.value&&_.value&&(_.value.id===n.id||_.value.user_id===n.user_id)}])},[e("div",Ze,[i(r,{icon:"vuesax-linear:profile",class:"name-icon"}),e("span",es,u(n.user_name),1),e("span",ss,u(n.score)+" امتیاز",1)])],2))),128))],6)]),e("div",ts,[i(r,{icon:"vuesax-linear:arrow-down"})])])])]),e("div",as,[!f.value&&!_.value?(l(),ie(c,{key:0,onClick:U,style:{backgroundColor:"#FF6B35",borderColor:"#FF6B35",color:"#fff",fontSize:"18px",padding:"12px 32px",height:"auto"},class:"lottery-start-btn"},{default:H(()=>[i(r,{icon:"vuesax-linear:gift",class:"mr-2"}),g(" شروع قرعه کشی ")]),_:1})):V("",!0),f.value?(l(),d("div",ns,ls)):V("",!0)])]))])])}}});const gs=_e(rs,[["__scopeId","data-v-f2a4d150"]]);export{gs as default};
|