Files
machartaa_admin_dist/dist/assets/index-9fae4bec.js
T

2 lines
14 KiB
JavaScript

import{_ as ae}from"./BasicMainCard-3627e00f.js";import{_ as le}from"./BasicModal.vue_vue_type_style_index_0_lang-cf40d4b9.js";import{_ as se,a as ie,u as ne}from"./useBaseTable-f0c2fcd7.js";import{_ as re}from"./BasicTextArea.vue_vue_type_style_index_0_lang-3dfc2fe1.js";import{_ as ue}from"./BasicInput.vue_vue_type_style_index_0_lang-fffa2e90.js";import{_ as ce}from"./button.vue_vue_type_style_index_0_lang-c459624e.js";import{b as de,u as pe,c as me,d as ve,e as _e,f as he}from"./competition-2880a6c0.js";import{t as fe}from"./useDataTime-755a3ccc.js";import{I as B}from"./Icon-c78bc7f2.js";import{d as ge,g as h,z as xe,v as ye,o as b,c as k,b as i,w as m,a as t,e as we,E as be,j as S,t as L,k as R,y as ke,F as Ue,n as Ce,C as _,G as Me}from"./index-ee8f85c6.js";import{e as A,g as F}from"./convert-67c23be8.js";import{_ as $e}from"./TextPreview.vue_vue_type_script_setup_true_lang-9e0c74f3.js";import{M as Q}from"./index-e68d2a07.js";import{S as Ie}from"./index-4a566df1.js";import{U as Be}from"./index-b8e9a7e7.js";import{T as E}from"./shallowequal-cf8095a7.js";import"./_plugin-vue_export-helper-37459316.js";import"./index-ea7900a6.js";import"./index-3e4b8da1.js";import"./Col-d204d8a1.js";import"./vnode-273a4d64.js";import"./useState-c96afd4c.js";import"./useRefs-697e802c.js";import"./isPlainObject-e544c601.js";import"./fa_IR-7159e2b1.js";import"./toArray-019e69c2.js";import"./FormItemContext-312be600.js";import"./pickAttrs-04868aeb.js";import"./lodash-80b9e8be.js";import"./index-3abc962d.js";import"./index-30b97b7f.js";import"./usePrice-7afab779.js";import"./index-5dc4c598.js";const Se=[{title:"ردیف",dataIndex:"id",key:"id",filterable:!1,width:70,align:"center",customRender:x=>x.record.index+1},{title:"عنوان",dataIndex:"title",key:"title"},{title:"شرح",dataIndex:"description",key:"description",slot:"description"},{title:"سوالات",dataIndex:"questions",key:"questions",customRender:x=>"سوالات مسابقه"},{title:"وضعیت نمایش",dataIndex:"show",key:"show",type:"Boolean",filterable:!0,align:"center",customRender:x=>x.record.show?"نمایش":"مخفی"},{title:"زمان ایجاد",dataIndex:"created_at",key:"created_at",customRender:x=>fe(x.record.created_at)},{title:"عملیات",dataIndex:"action",key:"action",slot:"action",filterable:!1,align:"center"}],Te={class:"flex justify-between items-center mb-4"},De=t("h2",null,"مسابقات",-1),Le={class:"gap-2 flex justify-center"},Re=t("span",null,"حذف",-1),Ae=t("span",null,"ویرایش",-1),Ee={class:"space-y-4 relative"},Pe={key:0,class:"absolute inset-0 bg-white/60 z-10 flex items-center justify-center"},je=t("div",{class:"mb-1 text-sm text-gray-600"},"عنوان مسابقه",-1),ze=t("div",{class:"mb-1 text-sm text-gray-600"},"شرح مسابقه",-1),Fe=t("div",{class:"mb-1 text-sm text-gray-600"},"عنوان ویدئو قرعه کشی",-1),Qe=t("div",{class:"mb-1 text-sm text-gray-600"},"حداقل امتیاز شرکت در قرعه کشی",-1),Ne=t("div",{class:"mb-1 text-sm text-gray-600"},"آدرس ویدئو",-1),Oe=t("div",{class:"mb-1 text-sm text-gray-600"},"وضعیت نمایش",-1),Ve={class:"flex items-center gap-2"},We={class:"text-sm text-gray-600"},qe={class:"flex justify-center gap-10 pb-4"},He=t("div",{class:"mb-1 text-sm text-gray-600"},"آپلود تصویر",-1),Je={key:0},Ge=t("div",null,"آپلود تصویر",-1),Xe={key:0,class:"text-xs text-gray-500 mt-1 text-center"},Ke={class:"h-2 rounded bg-gray-200 overflow-hidden"},Ye={class:"text-xs text-gray-700 font-semibold text-center mt-1"},Ze=t("div",{class:"section-divider"},null,-1),et={class:"pt-4"},tt=t("div",{class:"mb-1 text-sm text-gray-600"},"سوالات مسابقه",-1),ot={class:"space-y-3"},at={class:"space-y-3"},lt=t("div",{class:"mb-1 text-xs text-gray-500"},"سوال",-1),st={class:"grid grid-cols-2 gap-3"},it=t("div",{class:"mb-1 text-xs text-gray-500"},"گزینه 1",-1),nt=t("div",{class:"mb-1 text-xs text-gray-500"},"گزینه 2",-1),rt=t("div",{class:"mb-1 text-xs text-gray-500"},"گزینه 3",-1),ut=t("div",{class:"mb-1 text-xs text-gray-500"},"گزینه 4",-1),ct=t("div",{class:"mb-1 text-xs text-gray-500"},"جواب صحیح (شماره گزینه)",-1),dt={class:"flex justify-end"},pt=t("span",{class:"text-[#DC2626]"},"حذف سوال",-1),mt=t("span",{class:"text-gray-500"},"+ افزودن سوال",-1),Ht=ge({__name:"index",setup(x){h([]),h(!1);const N=h(null),[O,T]=ne();xe();const f=h([]),w=h(0),g=h(0);function V(n){return n.type.startsWith("image/")?n.size/1024/1024<5?!0:(_.error("حجم تصویر باید کمتر از 5MB باشد!"),!1):(_.error("فقط فایل‌های تصویری قابل آپلود هستند!"),!1)}async function W(n){const{file:e,onSuccess:l,onError:c,onProgress:r}=n,y=new FormData;y.append("file",e);const p=`${Me}/upload/machartaa-img`;g.value=0,w.value++,await new Promise(($,I)=>{const u=new XMLHttpRequest;u.open("POST",p),u.setRequestHeader("Authorization",`Bearer ${localStorage.getItem("token")||""}`),u.upload.onprogress=o=>{if(o.lengthComputable){const v=Math.round(o.loaded/o.total*100);g.value=v,r==null||r({percent:v})}},u.onload=()=>{var o,v,d,j;if(g.value=100,u.status>=200&&u.status<300)try{const s=JSON.parse(u.responseText||"{}"),oe=(s==null?void 0:s.full_src)||(s==null?void 0:s.url)||(s==null?void 0:s.src)||(s==null?void 0:s.path)||((o=s==null?void 0:s.data)==null?void 0:o.full_src)||((v=s==null?void 0:s.data)==null?void 0:v.url)||((d=s==null?void 0:s.data)==null?void 0:d.src)||((j=s==null?void 0:s.data)==null?void 0:j.path)||"",D=A(oe),z=F(D);a.value.image_url=D||null,f.value=z?[{uid:`${Date.now()}`,name:"image.jpg",status:"done",url:z,response:{path:D}}]:[],l==null||l(s,u),_.success("تصویر با موفقیت آپلود شد!"),$()}catch(s){c==null||c(s,u),I(s)}else{const s=new Error("خطا در آپلود تصویر");c==null||c(s,u),I(s)}},u.onerror=()=>{const o=new Error("خطا در آپلود تصویر!");c==null||c(o,u),I(o)},u.onloadend=()=>{w.value=Math.max(0,w.value-1),g.value=0},u.send(y)})}function q(n){return{width:`${Math.max(0,Math.min(100,n))}%`}}const H=h({columns:Se,api:de,defaultPageLimit:20}),U=h(!1),C=h(!1),M=h(null),a=h({title:"",description:"",image_url:null,video_url:null,title_video_result:null,minimum_score:null,show:!0,questions:[{id:1,question:"",option1:"",option2:"",option3:"",option4:"",correct_answer:""}]});async function J(){}async function G(){f.value=[],a.value={title:"",description:"",image_url:null,video_url:null,title_video_result:null,minimum_score:null,show:!0,questions:[{id:1,question:"",option1:"",option2:"",option3:"",option4:"",correct_answer:""}]},C.value=!1,M.value=null,U.value=!0}function P(){U.value=!1,C.value=!1,M.value=null}async function X(){var l,c,r,y;if(!((l=a.value.title)!=null&&l.trim()))return;const n=a.value.questions.map(p=>({question:p.question,options:[p.option1,p.option2,p.option3,p.option4].filter($=>$.trim()),correct_answer:p.correct_answer})),e={match:{title:a.value.title.trim(),description:((c=a.value.description)==null?void 0:c.trim())||"",image_url:((r=a.value.image_url)==null?void 0:r.trim())||null,video_url:((y=a.value.video_url)==null?void 0:y.trim())||null,title_video_result:a.value.title_video_result?String(a.value.title_video_result).trim():null,minimum_score:a.value.minimum_score?String(a.value.minimum_score).trim():null,show:a.value.show??!0},questions:n.filter(p=>p.question.trim())};if(w.value>0){_.warning("لطفاً تا پایان آپلود ویدئوها صبر کنید.");return}console.log("Match payload:",e);try{C.value&&M.value?(await pe(M.value,e),_.success("مسابقه با موفقیت ویرایش شد!")):(await me(e),_.success("مسابقه با موفقیت ایجاد شد!")),P(),await T()}catch(p){console.error("Error saving match:",p),_.error("خطا در ذخیره مسابقه!")}}async function K(n){try{const e=await ve(n.id);if(console.log("Match data loaded:",e),e.image_url){const l=A(e.image_url);f.value=[{uid:`image-${Date.now()}`,name:"image.jpg",status:"done",url:F(l),response:{path:l}}],console.log("Image file list set:",f.value)}else f.value=[];a.value={title:e.title||"",description:e.description||"",image_url:A(e.image_url)||null,video_url:e.video_url||null,title_video_result:e.title_video_result?String(e.title_video_result):null,minimum_score:e.minimum_score?String(e.minimum_score):null,show:e.show??!0,questions:e.questions&&e.questions.length>0?e.questions.map((l,c)=>({id:l.id,question:l.question||"",option1:l.options&&l.options[0]?l.options[0]:"",option2:l.options&&l.options[1]?l.options[1]:"",option3:l.options&&l.options[2]?l.options[2]:"",option4:l.options&&l.options[3]?l.options[3]:"",correct_answer:l.correct_answer||""})):[{id:1,question:"",option1:"",option2:"",option3:"",option4:"",correct_answer:""}]},C.value=!0,M.value=n.id,U.value=!0}catch(e){console.error("Error loading match data:",e),_.error("خطا در بارگذاری اطلاعات مسابقه!")}}async function Y(n){const e=!n.show;Q.confirm({title:"تغییر وضعیت نمایش",content:e?`آیا مطمئن هستید که می‌خواهید مسابقه "${n.title}" را نمایش دهید؟`:`آیا مطمئن هستید که می‌خواهید مسابقه "${n.title}" را مخفی کنید؟`,okText:"بله",cancelText:"خیر",onOk:async()=>{try{await _e(n.id,{show:e}),_.success(e?"مسابقه با موفقیت نمایش داده شد!":"مسابقه با موفقیت مخفی شد!"),await T()}catch(l){console.error("Error toggling show:",l),_.error("خطا در تغییر وضعیت نمایش!")}}})}function Z(n){Q.confirm({title:"حذف مسابقه",content:`آیا مطمئن هستید که می‌خواهید مسابقه "${n.title}" را حذف کنید؟`,okText:"بله، حذف کن",cancelText:"انصراف",okType:"danger",centered:!0,onOk:async()=>{try{await he(n.id),_.success("مسابقه با موفقیت حذف شد!"),await T()}catch(e){console.error("Error deleting match:",e),_.error("خطا در حذف مسابقه!")}}})}function ee(){a.value.questions.push({id:a.value.questions.length+1,question:"",option1:"",option2:"",option3:"",option4:"",correct_answer:""})}function te(n){a.value.questions.length>1&&(a.value.questions.splice(n,1),a.value.questions.forEach((e,l)=>{e.id=l+1}))}return ye(J),(n,e)=>{const l=ce,c=se,r=ue,y=re,p=ie,$=Be,I=le,u=ae;return b(),k("div",null,[i(u,null,{default:m(()=>[t("div",Te,[De,i(l,{type:"primary",onClick:G},{default:m(()=>[we("افزودن مسابقه")]),_:1})]),i(c,be(H.value,{ref_key:"table",ref:N,onRegister:S(O)}),{description:m(({record:o})=>[i($e,{text:o.description},null,8,["text"])]),action:m(({record:o})=>[t("div",Le,[i(S(E),{class:"cursor-pointer"},{title:m(()=>[t("span",null,L(o.show?"مخفی کردن":"نمایش"),1)]),default:m(()=>[i(B,{icon:o.show?"vuesax-linear:eye-slash":"vuesax-linear:eye",color:o.show?"#F59E0B":"#16A34A",onClick:v=>Y(o)},null,8,["icon","color","onClick"])]),_:2},1024),i(S(E),{class:"cursor-pointer"},{title:m(()=>[Re]),default:m(()=>[i(B,{icon:"vuesax-linear:trash",color:"#DC2626",onClick:v=>Z(o)},null,8,["onClick"])]),_:2},1024),i(S(E),{class:"cursor-pointer"},{title:m(()=>[Ae]),default:m(()=>[i(B,{icon:"vuesax-linear:edit",color:"#1D4ED8",onClick:v=>K(o)},null,8,["onClick"])]),_:2},1024)])]),_:1},16,["onRegister"]),i(I,{visible:U.value,"onUpdate:visible":e[7]||(e[7]=o=>U.value=o),title:C.value?"ویرایش مسابقه":"افزودن مسابقه",onOk:X,onCancel:P,width:"80%",confirmLoading:w.value>0},{default:m(()=>[t("div",Ee,[w.value>0?(b(),k("div",Pe,[i(S(Ie),{size:"large"})])):R("",!0),t("div",null,[je,i(r,{value:a.value.title,"onUpdate:value":e[0]||(e[0]=o=>a.value.title=o),placeholder:"عنوان مسابقه"},null,8,["value"])]),t("div",null,[ze,i(y,{value:a.value.description,"onUpdate:value":e[1]||(e[1]=o=>a.value.description=o),placeholder:"شرح مسابقه"},null,8,["value"])]),t("div",null,[Fe,i(r,{value:a.value.title_video_result,"onUpdate:value":e[2]||(e[2]=o=>a.value.title_video_result=o),placeholder:"عنوان ویدئو قرعه کشی"},null,8,["value"])]),t("div",null,[Qe,i(r,{value:a.value.minimum_score,"onUpdate:value":e[3]||(e[3]=o=>a.value.minimum_score=o),placeholder:"حداقل امتیاز شرکت در قرعه کشی"},null,8,["value"])]),t("div",null,[Ne,i(r,{value:a.value.video_url,"onUpdate:value":e[4]||(e[4]=o=>a.value.video_url=o),placeholder:"آدرس URL ویدئو"},null,8,["value"])]),t("div",null,[Oe,t("div",Ve,[i(p,{value:a.value.show,"onUpdate:value":e[5]||(e[5]=o=>a.value.show=o)},null,8,["value"]),t("span",We,L(a.value.show?"نمایش":"مخفی"),1)])]),t("div",qe,[t("div",null,[He,i($,{"file-list":f.value,"onUpdate:fileList":e[6]||(e[6]=o=>f.value=o),"before-upload":V,"custom-request":W,accept:"image/*","max-count":1,"list-type":"picture-card"},{default:m(()=>[f.value.length<1?(b(),k("div",Je,[i(B,{icon:"vuesax-linear:image",class:"text-2xl mb-2"}),Ge])):R("",!0)]),_:1},8,["file-list"]),g.value>0&&g.value<100?(b(),k("div",Xe,[t("div",Ke,[t("div",{class:"h-2 bg-blue-500 transition-all",style:ke(q(g.value))},null,4)]),t("div",Ye,L(g.value)+"%",1)])):R("",!0)])]),Ze,t("div",et,[tt,t("div",ot,[(b(!0),k(Ue,null,Ce(a.value.questions,(o,v)=>(b(),k("div",{key:v,class:"border rounded-lg p-3 space-y-3"},[t("div",at,[t("div",null,[lt,i(r,{value:o.question,"onUpdate:value":d=>o.question=d,placeholder:`سوال ${v+1}`},null,8,["value","onUpdate:value","placeholder"])]),t("div",st,[t("div",null,[it,i(r,{value:o.option1,"onUpdate:value":d=>o.option1=d,placeholder:"گزینه 1"},null,8,["value","onUpdate:value"])]),t("div",null,[nt,i(r,{value:o.option2,"onUpdate:value":d=>o.option2=d,placeholder:"گزینه 2"},null,8,["value","onUpdate:value"])]),t("div",null,[rt,i(r,{value:o.option3,"onUpdate:value":d=>o.option3=d,placeholder:"گزینه 3"},null,8,["value","onUpdate:value"])]),t("div",null,[ut,i(r,{value:o.option4,"onUpdate:value":d=>o.option4=d,placeholder:"گزینه 4"},null,8,["value","onUpdate:value"])])]),t("div",null,[ct,i(r,{value:o.correct_answer,"onUpdate:value":d=>o.correct_answer=d,placeholder:"1، 2، 3 یا 4",type:"number",min:"1",max:"4"},null,8,["value","onUpdate:value"])])]),t("div",dt,[i(l,{type:"text",danger:"",onClick:d=>te(v),disabled:a.value.questions.length<=1},{default:m(()=>[i(B,{icon:"vuesax-linear:trash",color:"#DC2626"}),pt]),_:2},1032,["onClick","disabled"])])]))),128)),i(l,{type:"dashed",onClick:ee,class:"w-full"},{default:m(()=>[mt]),_:1})])])])]),_:1},8,["visible","title","confirmLoading"])]),_:1})])}}});export{Ht as default};