Files
machartaa_admin_dist/dist/assets/index-48245b49.js
T
2026-06-23 17:33:30 +03:30

2 lines
12 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
import{_ as _e}from"./button.vue_vue_type_style_index_0_lang-191f5704.js";import{d as ve,q as he,g as _,v as pe,o as n,c as l,a as e,t as o,b as q,w as H,e as M,k as h,F as $,n as F,p as J,y as me,i as K,D as y,J as fe,K as ge}from"./index-b83d6d0d.js";import{h as ye,g as we,s as be,a as ke}from"./competition-0e51c70c.js";import{_ as xe}from"./BasicInput.vue_vue_type_style_index_0_lang-07e89296.js";import{_ as Ce}from"./_plugin-vue_export-helper-8145279e.js";import"./Icon-119151dd.js";import"./usePrice-bc935b83.js";import"./index-c1e4380b.js";import"./FormItemContext-29f2be27.js";import"./vnode-0ebe7df2.js";import"./isPlainObject-e729189d.js";const r=B=>(fe("data-v-604f2d4b"),B=B(),ge(),B),Se={class:"lottery-container"},We={class:"lottery-header"},Ie={class:"lottery-title"},Me=r(()=>e("p",{class:"lottery-subtitle"},"قرعه کشی برندگان مسابقه",-1)),$e={class:"lottery-content"},Fe={key:0,class:"loading-state"},Be=r(()=>e("div",{class:"spinner"},null,-1)),De=r(()=>e("p",null,"در حال بارگذاری...",-1)),Ne=[Be,De],He={key:1,class:"error-state"},Le=r(()=>e("span",{class:"error-icon"},"❌",-1)),Pe={key:2,class:"winner-result"},Te={class:"all-winners-container"},qe={class:"winner-header"},Oe=r(()=>e("span",{class:"trophy-icon-large"},"🏆",-1)),Re=r(()=>e("h2",{class:"winner-title"},"برندگان نهایی",-1)),ze={key:0,class:"lottery-completed-message"},Ee={class:"all-winners-list"},Ve={class:"final-winner-rank"},Ue={class:"final-winner-info"},Ae={class:"final-winner-name"},Je={class:"final-winner-details"},Ke={class:"final-detail-item"},Ye={key:0,class:"final-detail-item"},je={class:"celebration"},Ge={key:3,class:"final-winner-result"},Qe={class:"winner-card-animated"},Xe=r(()=>e("div",{class:"winner-badge-large"},[e("span",{class:"trophy-icon-large"},"🏆")],-1)),Ze=r(()=>e("h2",{class:"winner-title-large"},"تبریک! برنده انتخاب شد",-1)),es={class:"winner-info-large"},ss={class:"winner-name-large"},ts={class:"winner-details-large"},ns={class:"detail-item-large"},as={key:0,class:"detail-item-large"},ls={class:"celebration-large"},os={key:4,class:"empty-state"},is=r(()=>e("span",{class:"empty-icon"},"ℹ️",-1)),rs=r(()=>e("p",null,"برای این مسابقه برنده‌ای یافت نشد",-1)),cs=[is,rs],us={key:5,class:"lottery-wheel-container"},ds={key:0,class:"selected-winners-section"},_s=r(()=>e("h3",{class:"selected-winners-title"},"برندگان انتخاب شده:",-1)),vs={class:"selected-winners-list"},hs={class:"winner-rank-badge"},ps={class:"winner-info-item"},ms=r(()=>e("span",{class:"winner-info-icon"},"👤",-1)),fs={class:"winner-info-name"},gs={key:0,class:"winner-info-mobile"},ys={class:"winner-info-score"},ws={class:"participants-info"},bs={class:"info-card"},ks=r(()=>e("span",null,"👥",-1)),xs={key:0,class:"lottery-count-info"},Cs={class:"lottery-display-wrapper"},Ss={class:"lottery-display-container"},Ws={class:"display-frame"},Is={class:"display-window"},Ms=r(()=>e("div",{class:"lottery-shadows"},[e("div",{class:"shadow-top"}),e("div",{class:"shadow-bottom"})],-1)),$s={class:"name-content"},Fs=r(()=>e("span",{class:"name-icon"},"👤",-1)),Bs={class:"name-text"},Ds={class:"name-score"},Ns=r(()=>e("div",{class:"frame-pointer"},[e("span",null,"⬇️")],-1)),Hs={class:"lottery-controls"},Ls={key:0,class:"lottery-count-input-section"},Ps={class:"count-input-wrapper"},Ts=r(()=>e("label",{class:"count-input-label"}," چند مرتبه قرعه‌کشی انجام شود؟ ",-1)),qs={class:"count-input-container"},Os={class:"count-input-hint"},Rs=r(()=>e("span",{class:"mr-2"},"🎁",-1)),zs={key:2,class:"spinning-indicator"},Es=r(()=>e("div",{class:"spinner-large"},null,-1)),Vs=r(()=>e("p",null,"در حال قرعه کشی...",-1)),Us=[Es,Vs],As={key:3,class:"current-winner-display"},Js={class:"current-winner-card"},Ks=r(()=>e("span",{class:"current-winner-icon"},"🏆",-1)),Ys={class:"current-winner-info"},js={class:"current-winner-name"},Gs={class:"current-winner-details"},Qs={key:0,class:"current-winner-mobile"},Xs=r(()=>e("span",{class:"mr-2"},"💾",-1)),Zs=ve({__name:"index",setup(B){const O=he(),w=_(null),R=_(""),v=_([]),x=_(!0),b=_(""),f=_(!1),Y=_(-1),d=_(null),S=_(!1),D=_(null),j=_(null),N=_(0),L=_([]),p=_(0),W=_(1),i=_([]),G=_(0),P=_(!1),I=_(!1),Q=()=>typeof window<"u"&&window.innerWidth<=768?70:80,X=async()=>{try{const c=(await ke()).find(u=>u.id===w.value);if(c&&(j.value=c,c.winner_id)){S.value=!0,I.value=!0;const u=v.value.find(a=>!!(a.user_id&&String(a.user_id)===String(c.winner_id)||a.id&&String(a.id)===String(c.winner_id)));u?D.value=u:D.value={user_id:c.winner_id,user_name:"برنده نهایی",user_mobile:"",score:0}}}catch(s){console.error("Error loading match:",s)}},z=async()=>{if(!w.value){b.value="شناسه مسابقه یافت نشد",x.value=!1;return}try{x.value=!0,b.value="";try{const u=await ye(w.value);if(u&&u.length>0){i.value=u.map(a=>({user_id:a.user_id||a.winner_id,id:a.user_id||a.winner_id,user_name:a.user_name||a.name||"نامشخص",user_mobile:a.user_mobile||a.phone||a.mobile||"نامشخص",score:a.score||a.user_score||0,rank:a.rank||0})),S.value=!0,I.value=!0,D.value=i.value[i.value.length-1],x.value=!1;return}}catch{console.log("No saved winners found, proceeding with lottery")}const s={page:1,limit:1e4,filters:[{field:"match_id",op:"eq",value:w.value,cr:"and",hidden:!1,type:"number"}]},c=await we(s);v.value=c.rows||[],v.value.length===0?b.value="برای این مسابقه برنده‌ای یافت نشد":(E(),await X())}catch(s){console.error("Error loading winners:",s),b.value="خطا در بارگذاری برندگان: "+(s.message||"خطای ناشناخته")}finally{x.value=!1}},E=(s,c)=>{const u=s||v.value,a=c||(u.length>100?3:4),k=Math.max(10,a+5);L.value=[];for(let t=0;t<k;t++)L.value.push(...u);N.value=0},Z=()=>{const s=typeof W.value=="string"?parseInt(W.value,10):Number(W.value);if(!s||isNaN(s)||s<1){y.warning("لطفاً تعداد معتبری وارد کنید");return}if(s>v.value.length){y.warning(`تعداد قرعه‌کشی نمی‌تواند بیشتر از تعداد شرکت‌کنندگان (${v.value.length}) باشد`);return}p.value=s,i.value=[],G.value=0,P.value=!0,I.value=!1,d.value=null,f.value=!1,y.success(`تعداد ${s} قرعه‌کشی تنظیم شد. اکنون می‌توانید قرعه‌کشی را شروع کنید.`)},ee=async()=>{if(v.value.length===0){y.warning("برنده‌ای برای قرعه کشی وجود ندارد");return}if(i.value.length>=p.value){y.warning("تمام قرعه‌کشی‌ها انجام شده است");return}await se()},se=async()=>{const s=v.value.filter(C=>!i.value.some(g=>g.user_id&&C.user_id&&String(g.user_id)===String(C.user_id)||g.id&&C.id&&String(g.id)===String(C.id)));if(s.length===0){y.warning("تمام شرکت‌کنندگان قبلاً انتخاب شده‌اند"),P.value=!1;return}const c=s.length>100?4:5,u=Math.min(i.value.length,3),a=c+u;E(s,a),f.value=!0,Y.value=-1,d.value=null;const k=Math.floor(Math.random()*s.length),t=s[k],m=Q(),ne=(window.innerWidth<=768?200:240)/2-m/2,ae=-(k*m)+ne,le=-(s.length*m*a),V=ae+le,oe=5e3,ie=Math.min(s.length*3,3e3),re=i.value.length*1e3,ce=oe+ie+re,ue=Date.now(),U=0,A=()=>{const C=Date.now()-ue,g=Math.min(C/ce,1);let T=g;g<.75?T=g*(1/.75)*.85:T=.85+(g-.75)/.25*.15;const de=1-Math.pow(1-T,3);N.value=U+(V-U)*de,g<1?requestAnimationFrame(A):(N.value=V,d.value=t,f.value=!1,i.value.push({...t,rank:i.value.length+1}),setTimeout(()=>{d.value=null},2e3))};A()},te=async()=>{try{if(!w.value||i.value.length===0){y.error("خطا در ذخیره برندگان");return}const s=i.value.map((c,u)=>({match_id:w.value,user_id:c.user_id||c.id,rank:u+1}));await be(s),y.success(`تمام ${i.value.length} برنده با موفقیت ذخیره شدند`),S.value=!0,I.value=!1,D.value=i.value[i.value.length-1],P.value=!1}catch(s){console.error("Error saving winners:",s),y.error("خطا در ذخیره برندگان: "+(s.message||"خطای ناشناخته"))}};return pe(()=>{const s=O.query.matchId,c=O.query.title;s&&(w.value=Number(s)),c&&(R.value=decodeURIComponent(String(c))),w.value?z():(b.value="شناسه مسابقه یافت نشد",x.value=!1)}),(s,c)=>{var a,k;const u=_e;return n(),l("div",Se,[e("div",We,[e("h1",Ie,o(R.value),1),Me]),e("div",$e,[x.value?(n(),l("div",Fe,Ne)):b.value?(n(),l("div",He,[Le,e("p",null,o(b.value),1),q(u,{onClick:z},{default:H(()=>[M("تلاش مجدد")]),_:1})])):S.value?(n(),l("div",Pe,[e("div",Te,[e("div",qe,[Oe,Re,I.value?(n(),l("p",ze,"✅ قرعه‌کشی این مسابقه قبلاً انجام شده است")):h("",!0)]),e("div",Ee,[(n(!0),l($,null,F(i.value,(t,m)=>(n(),l("div",{key:`final-winner-${t.user_id||t.id}-${m}`,class:"final-winner-card"},[e("div",Ve,"نفر "+o(m+1),1),e("div",Ue,[e("div",Ae,o(t.user_name),1),e("div",Je,[e("span",Ke," 🏅 امتیاز: "+o(t.score),1),t.user_mobile?(n(),l("span",Ye," 📱 شماره همراه: "+o(t.user_mobile),1)):h("",!0)])])]))),128))]),e("div",je,[(n(),l($,null,F(20,t=>e("div",{class:"confetti",key:t})),64))])])])):d.value?(n(),l("div",Ge,[e("div",Qe,[Xe,Ze,e("div",es,[e("div",ss,o(d.value.user_name),1),e("div",ts,[e("span",ns," 🏅 امتیاز: "+o(d.value.score),1),d.value.user_mobile?(n(),l("span",as," 📱 شماره همراه: "+o(d.value.user_mobile),1)):h("",!0)])]),e("div",ls,[(n(),l($,null,F(20,t=>e("div",{class:"confetti-large",key:t})),64))])])])):v.value.length===0?(n(),l("div",os,cs)):(n(),l("div",us,[i.value.length>0?(n(),l("div",ds,[_s,e("div",vs,[(n(!0),l($,null,F(i.value,(t,m)=>(n(),l("div",{key:`selected-${t.user_id||t.id}-${m}`,class:"selected-winner-item"},[e("div",hs,"نفر "+o(m+1),1),e("div",ps,[ms,e("span",fs,o(t.user_name),1),t.user_mobile?(n(),l("span",gs,o(t.user_mobile),1)):h("",!0),e("span",ys,o(t.score)+" امتیاز",1)])]))),128))])])):h("",!0),e("div",ws,[e("div",bs,[ks,e("span",null,"تعداد شرکت‌کنندگان: "+o(v.value.length)+" نفر",1),p.value>0?(n(),l("span",xs," | تعداد قرعه‌کشی: "+o(p.value)+" | انجام شده: "+o(i.value.length)+" / "+o(p.value),1)):h("",!0)])]),e("div",Cs,[e("div",Ss,[e("div",Ws,[e("div",Is,[Ms,e("div",{class:J(["name-list",{spinning:f.value}]),style:me({transform:`translateY(${N.value}px)`})},[(n(!0),l($,null,F(L.value,(t,m)=>(n(),l("div",{key:`${t.id}-${m}`,class:J(["name-item",{highlight:!f.value&&d.value&&(d.value.id===t.id||d.value.user_id===t.user_id)}])},[e("div",$s,[Fs,e("span",Bs,o(t.user_name),1),e("span",Ds,o(t.score)+" امتیاز",1)])],2))),128))],6)]),Ns])])]),e("div",Hs,[!f.value&&!d.value&&p.value===0&&!S.value?(n(),l("div",Ls,[e("div",Ps,[Ts,e("div",qs,[q(xe,{value:W.value,"onUpdate:value":c[0]||(c[0]=t=>W.value=t),type:"number",placeHolder:`حداکثر ${((a=v.value)==null?void 0:a.length)||0} نفر`,class:"count-input"},null,8,["value","placeHolder"]),q(u,{onClick:Z,style:{backgroundColor:"#FF6B35",borderColor:"#FF6B35",color:"#fff",fontSize:"16px",padding:"8px 24px",height:"auto"},class:"count-submit-btn",type:"primary"},{default:H(()=>[M(" ثبت ")]),_:1})]),e("p",Os," تعداد شرکت‌کنندگان: "+o(((k=v.value)==null?void 0:k.length)||0)+" نفر ",1)])])):h("",!0),!f.value&&!d.value&&p.value>0&&i.value.length<p.value?(n(),K(u,{key:1,onClick:ee,style:{backgroundColor:"#FF6B35",borderColor:"#FF6B35",color:"#fff",fontSize:"18px",padding:"12px 32px",height:"auto"},class:"lottery-start-btn"},{default:H(()=>[Rs,M(" شروع قرعه کشی ("+o(i.value.length+1)+"/"+o(p.value)+") ",1)]),_:1})):h("",!0),f.value?(n(),l("div",zs,Us)):h("",!0),d.value&&!f.value?(n(),l("div",As,[e("div",Js,[Ks,e("div",Ys,[e("p",js,o(d.value.user_name),1),e("p",Gs,[M(" امتیاز: "+o(d.value.score)+" ",1),d.value.user_mobile?(n(),l("span",Qs," | 📱 "+o(d.value.user_mobile),1)):h("",!0)])])])])):h("",!0),!f.value&&!d.value&&p.value>0&&i.value.length===p.value?(n(),K(u,{key:4,onClick:te,style:{backgroundColor:"#217346",borderColor:"#217346",color:"#fff",fontSize:"18px",padding:"12px 32px",height:"auto"},class:"lottery-save-btn"},{default:H(()=>[Xs,M(" ذخیره تمام برندگان ")]),_:1})):h("",!0)])]))])])}}});const vt=Ce(Zs,[["__scopeId","data-v-604f2d4b"]]);export{vt as default};