2 lines
12 KiB
JavaScript
2 lines
12 KiB
JavaScript
import{_ as O}from"./BasicMainCard-35b7f869.js";import{_ as J}from"./BasicModal.vue_vue_type_style_index_0_lang-f2c0cf2d.js";import{_ as Y}from"./BasicTextArea.vue_vue_type_style_index_0_lang-7aaac7c1.js";import{_ as q}from"./BasicInput.vue_vue_type_style_index_0_lang-929856cf.js";import{_ as G}from"./BaseTable.vue_vue_type_style_index_0_lang-a43770ca.js";import{_ as H}from"./button.vue_vue_type_style_index_0_lang-aba41828.js";import{b as K,u as X,c as Z,d as ee,e as te}from"./competition-534c8aae.js";import{t as oe}from"./useDataTime-56b23a5e.js";import{I as M}from"./Icon-456bcc80.js";import{u as ae}from"./useBaseTable-3aeb2499.js";import{d as le,r as m,Y as ie,i as se,o as C,c as I,b as s,w as d,a as t,e as ne,a2 as re,L as $,N as D,F as ue,S as ce,a0 as p}from"./index-d996aa52.js";import{M as de}from"./index-269247b8.js";import{S as pe}from"./index-c05390a2.js";import{U as me}from"./index-67543794.js";import{T as E}from"./index-4bc1704f.js";import"./_plugin-vue_export-helper-c27b6911.js";import"./index-a83085b3.js";import"./index-6779adc3.js";import"./raf-8e3c2c2f.js";import"./colors-65b46ff2.js";import"./index-5d181545.js";import"./styleChecker-e29a8f53.js";import"./useState-dd938bdb.js";import"./Col-e9f1db78.js";import"./index-b068e27a.js";import"./debounce-4a95850b.js";import"./usePrefix-bca43e07.js";import"./index-b6e3add4.js";import"./SearchOutlined-38ab5a8a.js";import"./EyeOutlined-22d4dcb9.js";import"./usePrice-7afab779.js";import"./index-ab1f28fc.js";import"./index-9b97b465.js";import"./pickAttrs-572baef4.js";import"./CheckOutlined-11eb751c.js";import"./objectDestructuringEmpty-24e23e90.js";import"./eagerComputed-3f9be9ba.js";import"./index-1dfb303c.js";const ve=[{title:"ردیف",dataIndex:"id",key:"id",filterable:!1,width:70,align:"center",fixed:"left",customRender:y=>y.record.index+1},{title:"عنوان",dataIndex:"title",key:"title"},{title:"شرح",dataIndex:"description",key:"description"},{title:"سوالات",dataIndex:"questions",key:"questions",customRender:y=>"سوالات مسابقه"},{title:"تاریخ ایجاد",dataIndex:"created_at",key:"created_at",customRender:y=>oe(y.record.created_at)},{title:"عملیات",dataIndex:"action",key:"action",slot:"action",filterable:!1,align:"center"}],_e={class:"flex justify-between items-center mb-4"},fe=t("h2",null,"مسابقات",-1),ge={class:"gap-2 flex justify-center"},he=t("span",null,"حذف",-1),xe=t("span",null,"ویرایش",-1),ye={class:"space-y-4 relative"},be={key:0,class:"absolute inset-0 bg-white/60 z-10 flex items-center justify-center"},we=t("div",{class:"mb-1 text-sm text-gray-600"},"عنوان مسابقه",-1),Ue=t("div",{class:"mb-1 text-sm text-gray-600"},"شرح مسابقه",-1),ke=t("div",{class:"mb-1 text-sm text-gray-600"},"عنوان ویدئو قرعه کشی",-1),Ce=t("div",{class:"mb-1 text-sm text-gray-600"},"حداقل امتیاز شرکت در قرعه کشی",-1),Ie=t("div",{class:"mb-1 text-sm text-gray-600"},"آدرس ویدئو",-1),Me={class:"flex justify-center gap-10 pb-4"},$e=t("div",{class:"mb-1 text-sm text-gray-600"},"آپلود تصویر",-1),Be={key:0},Te=t("div",null,"آپلود تصویر",-1),De=t("div",{class:"section-divider"},null,-1),Ee={class:"pt-4"},Le=t("div",{class:"mb-1 text-sm text-gray-600"},"سوالات مسابقه",-1),Se={class:"space-y-3"},je={class:"space-y-3"},Ae=t("div",{class:"mb-1 text-xs text-gray-500"},"سوال",-1),Re={class:"grid grid-cols-2 gap-3"},Ne=t("div",{class:"mb-1 text-xs text-gray-500"},"گزینه 1",-1),Qe=t("div",{class:"mb-1 text-xs text-gray-500"},"گزینه 2",-1),We=t("div",{class:"mb-1 text-xs text-gray-500"},"گزینه 3",-1),Fe=t("div",{class:"mb-1 text-xs text-gray-500"},"گزینه 4",-1),ze=t("div",{class:"mb-1 text-xs text-gray-500"},"جواب صحیح (شماره گزینه)",-1),Pe={class:"flex justify-end"},Ve=t("span",{class:"text-[#DC2626]"},"حذف سوال",-1),Oe=t("span",{class:"text-gray-500"},"+ افزودن سوال",-1),Tt=le({__name:"index",setup(y){m([]),m(!1);const L=m(null),[S,B]=ae();ie();const v=m([]),h=m(0);function j(u){return u.type.startsWith("image/")?u.size/1024/1024<5?!0:(p.error("حجم تصویر باید کمتر از 5MB باشد!"),!1):(p.error("فقط فایلهای تصویری قابل آپلود هستند!"),!1)}async function A(u){var r,f,c,x;const{file:e,onSuccess:i,onError:_}=u;try{h.value++;const g=new FormData;g.append("file",e);const o=await fetch("https://node.machartaa.ir/upload/machartaa-img",{method:"POST",body:g,headers:{Authorization:`Bearer ${localStorage.getItem("token")||""}`}});if(!o.ok)throw new Error("خطا در آپلود تصویر");const a=await o.json();console.log("Image upload result:",a);const n=(a==null?void 0:a.full_src)||(a==null?void 0:a.url)||(a==null?void 0:a.src)||(a==null?void 0:a.path)||((r=a==null?void 0:a.data)==null?void 0:r.full_src)||((f=a==null?void 0:a.data)==null?void 0:f.url)||((c=a==null?void 0:a.data)==null?void 0:c.src)||((x=a==null?void 0:a.data)==null?void 0:x.path)||"";console.log("Extracted path:",n);const k=n.startsWith("http")?n:`https://node.machartaa.ir${n}`;console.log("Full image URL:",k),l.value.image_url=k,v.value=k?[{uid:`${Date.now()}`,name:"image.jpg",status:"done",url:k,response:{path:k}}]:[],i(a),p.success("تصویر با موفقیت آپلود شد!")}catch(g){console.error("خطا در آپلود تصویر:",g),_(g),p.error("خطا در آپلود تصویر!")}finally{h.value=Math.max(0,h.value-1)}}const R=m({columns:ve,api:K,defaultPageLimit:20}),b=m(!1),w=m(!1),U=m(null),l=m({title:"",description:"",image_url:null,video_url:null,title_video_result:null,minimum_score:null,questions:[{id:1,question:"",option1:"",option2:"",option3:"",option4:"",correct_answer:""}]});async function N(){}async function Q(){v.value=[],l.value={title:"",description:"",image_url:null,video_url:null,title_video_result:null,minimum_score:null,questions:[{id:1,question:"",option1:"",option2:"",option3:"",option4:"",correct_answer:""}]},w.value=!1,U.value=null,b.value=!0}function T(){b.value=!1,w.value=!1,U.value=null}async function W(){var i,_,r,f;if(!((i=l.value.title)!=null&&i.trim()))return;const u=l.value.questions.map(c=>({question:c.question,options:[c.option1,c.option2,c.option3,c.option4].filter(x=>x.trim()),correct_answer:c.correct_answer})),e={match:{title:l.value.title.trim(),description:((_=l.value.description)==null?void 0:_.trim())||"",image_url:((r=l.value.image_url)==null?void 0:r.trim())||null,video_url:((f=l.value.video_url)==null?void 0:f.trim())||null,title_video_result:l.value.title_video_result?String(l.value.title_video_result).trim():null,minimum_score:l.value.minimum_score?String(l.value.minimum_score).trim():null},questions:u.filter(c=>c.question.trim())};if(h.value>0){p.warning("لطفاً تا پایان آپلود ویدئوها صبر کنید.");return}console.log("Match payload:",e);try{w.value&&U.value?(await X(U.value,e),p.success("مسابقه با موفقیت ویرایش شد!")):(await Z(e),p.success("مسابقه با موفقیت ایجاد شد!")),T(),await B()}catch(c){console.error("Error saving match:",c),p.error("خطا در ذخیره مسابقه!")}}async function F(u){try{const e=await ee(u.id);console.log("Match data loaded:",e),e.image_url?(v.value=[{uid:`image-${Date.now()}`,name:"image.jpg",status:"done",url:e.image_url,response:{path:e.image_url}}],console.log("Image file list set:",v.value)):v.value=[],l.value={title:e.title||"",description:e.description||"",image_url: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,questions:e.questions&&e.questions.length>0?e.questions.map((i,_)=>({id:i.id,question:i.question||"",option1:i.options&&i.options[0]?i.options[0]:"",option2:i.options&&i.options[1]?i.options[1]:"",option3:i.options&&i.options[2]?i.options[2]:"",option4:i.options&&i.options[3]?i.options[3]:"",correct_answer:i.correct_answer||""})):[{id:1,question:"",option1:"",option2:"",option3:"",option4:"",correct_answer:""}]},w.value=!0,U.value=u.id,b.value=!0}catch(e){console.error("Error loading match data:",e),p.error("خطا در بارگذاری اطلاعات مسابقه!")}}function z(u){de.confirm({title:"حذف مسابقه",content:`آیا مطمئن هستید که میخواهید مسابقه "${u.title}" را حذف کنید؟`,okText:"بله، حذف کن",cancelText:"انصراف",okType:"danger",centered:!0,onOk:async()=>{try{await te(u.id),p.success("مسابقه با موفقیت حذف شد!"),await B()}catch(e){console.error("Error deleting match:",e),p.error("خطا در حذف مسابقه!")}}})}function P(){l.value.questions.push({id:l.value.questions.length+1,question:"",option1:"",option2:"",option3:"",option4:"",correct_answer:""})}function V(u){l.value.questions.length>1&&(l.value.questions.splice(u,1),l.value.questions.forEach((e,i)=>{e.id=i+1}))}return se(N),(u,e)=>{const i=H,_=G,r=q,f=Y,c=me,x=J,g=O;return C(),I("div",null,[s(g,null,{default:d(()=>[t("div",_e,[fe,s(i,{type:"primary",onClick:Q},{default:d(()=>[ne("افزودن مسابقه")]),_:1})]),s(_,re(R.value,{ref_key:"table",ref:L,onRegister:$(S)}),{action:d(({record:o})=>[t("div",ge,[s($(E),{class:"cursor-pointer"},{title:d(()=>[he]),default:d(()=>[s(M,{icon:"vuesax-linear:trash",color:"#DC2626",onClick:a=>z(o)},null,8,["onClick"])]),_:2},1024),s($(E),{class:"cursor-pointer"},{title:d(()=>[xe]),default:d(()=>[s(M,{icon:"vuesax-linear:edit",color:"#1D4ED8",onClick:a=>F(o)},null,8,["onClick"])]),_:2},1024)])]),_:1},16,["onRegister"]),s(x,{visible:b.value,"onUpdate:visible":e[6]||(e[6]=o=>b.value=o),title:w.value?"ویرایش مسابقه":"افزودن مسابقه",onOk:W,onCancel:T,width:"80%",confirmLoading:h.value>0},{default:d(()=>[t("div",ye,[h.value>0?(C(),I("div",be,[s($(pe),{size:"large"})])):D("",!0),t("div",null,[we,s(r,{value:l.value.title,"onUpdate:value":e[0]||(e[0]=o=>l.value.title=o),placeholder:"عنوان مسابقه"},null,8,["value"])]),t("div",null,[Ue,s(f,{value:l.value.description,"onUpdate:value":e[1]||(e[1]=o=>l.value.description=o),placeholder:"شرح مسابقه"},null,8,["value"])]),t("div",null,[ke,s(r,{value:l.value.title_video_result,"onUpdate:value":e[2]||(e[2]=o=>l.value.title_video_result=o),placeholder:"عنوان ویدئو قرعه کشی"},null,8,["value"])]),t("div",null,[Ce,s(r,{value:l.value.minimum_score,"onUpdate:value":e[3]||(e[3]=o=>l.value.minimum_score=o),placeholder:"حداقل امتیاز شرکت در قرعه کشی"},null,8,["value"])]),t("div",null,[Ie,s(r,{value:l.value.video_url,"onUpdate:value":e[4]||(e[4]=o=>l.value.video_url=o),placeholder:"آدرس URL ویدئو"},null,8,["value"])]),t("div",Me,[t("div",null,[$e,s(c,{"file-list":v.value,"onUpdate:fileList":e[5]||(e[5]=o=>v.value=o),"before-upload":j,"custom-request":A,accept:"image/*","max-count":1,"list-type":"picture-card"},{default:d(()=>[v.value.length<1?(C(),I("div",Be,[s(M,{icon:"vuesax-linear:image",class:"text-2xl mb-2"}),Te])):D("",!0)]),_:1},8,["file-list"])])]),De,t("div",Ee,[Le,t("div",Se,[(C(!0),I(ue,null,ce(l.value.questions,(o,a)=>(C(),I("div",{key:a,class:"border rounded-lg p-3 space-y-3"},[t("div",je,[t("div",null,[Ae,s(r,{value:o.question,"onUpdate:value":n=>o.question=n,placeholder:`سوال ${a+1}`},null,8,["value","onUpdate:value","placeholder"])]),t("div",Re,[t("div",null,[Ne,s(r,{value:o.option1,"onUpdate:value":n=>o.option1=n,placeholder:"گزینه 1"},null,8,["value","onUpdate:value"])]),t("div",null,[Qe,s(r,{value:o.option2,"onUpdate:value":n=>o.option2=n,placeholder:"گزینه 2"},null,8,["value","onUpdate:value"])]),t("div",null,[We,s(r,{value:o.option3,"onUpdate:value":n=>o.option3=n,placeholder:"گزینه 3"},null,8,["value","onUpdate:value"])]),t("div",null,[Fe,s(r,{value:o.option4,"onUpdate:value":n=>o.option4=n,placeholder:"گزینه 4"},null,8,["value","onUpdate:value"])])]),t("div",null,[ze,s(r,{value:o.correct_answer,"onUpdate:value":n=>o.correct_answer=n,placeholder:"1، 2، 3 یا 4",type:"number",min:"1",max:"4"},null,8,["value","onUpdate:value"])])]),t("div",Pe,[s(i,{type:"text",danger:"",onClick:n=>V(a),disabled:l.value.questions.length<=1},{default:d(()=>[s(M,{icon:"vuesax-linear:trash",color:"#DC2626"}),Ve]),_:2},1032,["onClick","disabled"])])]))),128)),s(i,{type:"dashed",onClick:P,class:"w-full"},{default:d(()=>[Oe]),_:1})])])])]),_:1},8,["visible","title","confirmLoading"])]),_:1})])}}});export{Tt as default};
|