Files
machartaa_admin_dist/dist/assets/index-81752d4e.js
T
2026-06-27 17:35:34 +03:30

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