2 lines
30 KiB
JavaScript
2 lines
30 KiB
JavaScript
import{_ as Ye}from"./BasicMainCard-226652ff.js";import{_ as Ze}from"./BasicModal.vue_vue_type_style_index_0_lang-234112c9.js";import{_ as et,a as tt,u as at}from"./useBaseTable-e60ec4b8.js";import{_ as ot}from"./BasicInput.vue_vue_type_style_index_0_lang-78ced8eb.js";import{_ as st}from"./BasicTextArea.vue_vue_type_style_index_0_lang-cfe29417.js";import{_ as lt}from"./button.vue_vue_type_style_index_0_lang-d41fbf64.js";import{d as it,q as nt,u as rt,g as k,E as ct,v as ut,o as m,c as f,b as n,w as p,j as b,a,e as w,H as dt,t as D,F as _e,n as pe,k as q,y as ve,D as g,M as _t,N as pt,bC as vt,I as me,p as mt,i as ht}from"./index-c3a83709.js";import{g as ft,a as gt,b as bt,d as yt,u as kt,s as xt,c as wt,e as qt,f as Ut}from"./stepChallenge-2c7c9a67.js";import{t as St}from"./useDataTime-0f66fcd9.js";import{I as A}from"./Icon-78d04a1c.js";import{g as ee,e as L,a as Ct}from"./convert-2ad76038.js";import{a as Se}from"./index-6d9d7b65.js";import{M as At}from"./index-3cee424d.js";import{S as Ce}from"./index-55899d99.js";import{a as Ae}from"./index-ce887100.js";import{T as he}from"./isSymbol-933af901.js";import{U as te}from"./index-f68a6e65.js";import{_ as $t}from"./_plugin-vue_export-helper-9424d566.js";import"./index-51e1e412.js";import"./index-133c097e.js";import"./Col-f98af73f.js";import"./styleChecker-5d75eaf5.js";import"./isPlainObject-e4dd5edb.js";import"./vnode-13aafe4d.js";import"./updateLocale-ff27ed8b.js";import"./useState-edde538a.js";import"./FormItemContext-89798113.js";import"./lodash-35a3e948.js";import"./index-588aa217.js";import"./index-795d795f.js";import"./isNumeric-3f69e2aa.js";import"./index-1b40f734.js";import"./index-4987f49a.js";import"./index-c0c82e0d.js";import"./DialogWrap-99990cc9.js";import"./pickAttrs-948566e5.js";import"./css-aae66f86.js";import"./toArray-fdd672d9.js";import"./usePrice-bc935b83.js";import"./useRefs-c83745ad.js";import"./_flatRest-09ea8109.js";import"./index-42c94377.js";const Lt=[{title:"ردیف",dataIndex:"id",key:"id",filterable:!1,width:70,align:"center",customRender:x=>x.record.index+1},{title:"عنوان",dataIndex:"title",key:"title"},{title:"مراحل",dataIndex:"steps_count",key:"steps_count",customRender:x=>{const I=x.record.steps_count||0,O=x.record.total_minutes||0;return I?`${I} مرحله / ${O} دقیقه`:"-"}},{title:"نمایش",dataIndex:"show",key:"show",customRender:x=>x.record.show?"فعال":"مخفی"},{title:"نوع",dataIndex:"access_type",key:"access_type",width:100,align:"center",customRender:x=>x.record.access_type==="subscription"?"اشتراکی":"رایگان"},{title:"ترتیب",dataIndex:"sort_order",key:"sort_order",width:80,align:"center"},{title:"زمان ایجاد",dataIndex:"created_at",key:"created_at",customRender:x=>St(x.record.created_at)},{title:"عملیات",dataIndex:"action",key:"action",slot:"action",filterable:!1,align:"center"}],r=x=>(_t("data-v-c054cae7"),x=x(),pt(),x),Rt={class:"flex justify-between items-center mb-4"},Mt=r(()=>a("h2",null,"چالشهای مرحلهای",-1)),Pt={class:"gap-2 flex justify-center"},Ft=r(()=>a("span",null,"حذف",-1)),Tt=r(()=>a("span",null,"ویرایش",-1)),Bt={class:"mb-4 flex flex-wrap items-center justify-between gap-3"},Dt=r(()=>a("h2",{class:"m-0"},"پیشرفت کاربران در چالشها",-1)),Ot={key:0,class:"py-16 flex justify-center"},jt={key:1,class:"text-center text-gray-500 py-16"},zt={key:2,class:"challenge-progress-grid"},Nt=["onClick"],It=["title"],Wt={class:"challenge-progress-card__stats"},Ht={class:"challenge-progress-card__stat"},Et=r(()=>a("span",{class:"challenge-progress-card__label"},"کاربران یکتا",-1)),Jt={class:"challenge-progress-card__value"},Kt={class:"challenge-progress-card__stat"},Vt=r(()=>a("span",{class:"challenge-progress-card__label"},"دفعات انجام",-1)),Xt={class:"challenge-progress-card__value"},Qt={class:"challenge-progress-card__footer"},Gt={class:"max-w-2xl space-y-4"},Yt=r(()=>a("h2",{class:"text-lg font-semibold"},"قوانین چالشهای کدوبلو",-1)),Zt=r(()=>a("p",{class:"text-sm text-gray-600"}," ویدیوی embed آپارات که در مودال «قوانین چالش کدوبلو» به کاربر نمایش داده میشود. ",-1)),ea=r(()=>a("div",{class:"mb-1 text-sm text-gray-600"},"کد embed ویدیو قوانین",-1)),ta={class:"space-y-4 relative"},aa={key:0,class:"absolute inset-0 bg-white/60 z-10 flex items-center justify-center"},oa=r(()=>a("div",{class:"mb-1 text-sm text-gray-600"},"عنوان چالش",-1)),sa={class:"grid grid-cols-1 sm:grid-cols-3 gap-4"},la=r(()=>a("div",{class:"mb-1 text-sm text-gray-600"},"ترتیب نمایش",-1)),ia=r(()=>a("div",{class:"mb-1 text-sm text-gray-600"},"وضعیت نمایش",-1)),na={class:"flex items-center gap-2 mt-2"},ra={class:"text-sm text-gray-600"},ca=r(()=>a("div",{class:"mb-1 text-sm text-gray-600"},"نوع دسترسی",-1)),ua=r(()=>a("div",{class:"mb-1 text-sm text-gray-600"},"امتیاز اولین تکمیل",-1)),da={class:"flex justify-center pb-2"},_a=r(()=>a("div",{class:"mb-1 text-sm text-gray-600"},"عکس کاراکتر (کارت لیست)",-1)),pa={key:0},va=r(()=>a("div",null,"آپلود تصویر",-1)),ma={key:0,class:"mt-1"},ha={class:"h-2 rounded bg-gray-200 overflow-hidden"},fa=r(()=>a("div",{class:"section-divider"},null,-1)),ga={class:"pt-2"},ba=r(()=>a("div",{class:"mb-2 text-sm text-gray-600 font-semibold"},"مراحل چالش",-1)),ya={class:"space-y-4"},ka={class:"flex items-center justify-between gap-3"},xa={class:"font-semibold text-gray-700"},wa={key:0,class:"text-emerald-600 text-sm font-normal mr-1"},qa={class:"flex items-center gap-2"},Ua=r(()=>a("span",{class:"text-sm text-gray-600"},"ماموریت پایانی",-1)),Sa=r(()=>a("div",{class:"mb-1 text-xs text-gray-500"},"توضیحات مرحله (اختیاری)",-1)),Ca={class:"grid grid-cols-2 gap-3"},Aa=r(()=>a("div",{class:"mb-1 text-xs text-gray-500"},"زمان لازم (دقیقه)",-1)),$a=r(()=>a("div",{class:"mb-1 text-xs text-gray-500"},"کد embed ویدیو آپارات (اختیاری)",-1)),La={class:"space-y-2"},Ra=r(()=>a("div",{class:"mb-1 text-xs text-gray-500"},"وویس کدوبلو (اختیاری)",-1)),Ma={key:0,class:"mt-1"},Pa={class:"h-2 rounded bg-gray-200 overflow-hidden"},Fa={key:1,class:"step-audio-preview"},Ta={class:"flex items-center justify-between mb-2"},Ba=r(()=>a("div",{class:"step-audio-preview__label mb-0"},"پیشنمایش وویس کدوبلو",-1)),Da=["src"],Oa=r(()=>a("div",{class:"mb-1 text-xs text-gray-500"},"عکسهای مرحله (اختیاری)",-1)),ja={key:0},za=r(()=>a("div",{class:"text-xs"},"آپلود عکس",-1)),Na=r(()=>a("div",{class:"section-divider"},null,-1)),Ia={class:"step-form-box__inner"},Wa=r(()=>a("div",{class:"text-xs font-semibold text-gray-600 mb-3"},"آیتمهای بعد از «بزن بریم»",-1)),Ha={class:"grid grid-cols-1 sm:grid-cols-2 gap-3"},Ea={class:"flex items-center gap-2"},Ja=r(()=>a("span",{class:"text-sm"},"فیلد بازخورد",-1)),Ka={class:"flex items-center gap-2"},Va=r(()=>a("span",{class:"text-sm"},"بازخورد اجباری",-1)),Xa={class:"flex items-center gap-2"},Qa=r(()=>a("span",{class:"text-sm"},"بارگذاری عکس",-1)),Ga={class:"flex items-center gap-2"},Ya=r(()=>a("span",{class:"text-sm"},"عکس اجباری",-1)),Za={class:"flex items-center gap-2"},eo=r(()=>a("span",{class:"text-sm"},"ضبط و ارسال ویس",-1)),to={class:"flex items-center gap-2"},ao=r(()=>a("span",{class:"text-sm"},"ویس اجباری",-1)),oo={class:"flex items-center gap-2"},so=r(()=>a("span",{class:"text-sm"},"سوال چندگزینهای",-1)),lo={class:"flex items-center gap-2"},io=r(()=>a("span",{class:"text-sm"},"پاسخ MCQ اجباری",-1)),no={class:"flex items-center gap-2"},ro=r(()=>a("span",{class:"text-sm"},"بخش صوت",-1)),co={key:0,class:"space-y-2 border rounded-lg p-3 bg-white"},uo=r(()=>a("div",{class:"mb-1 text-xs text-gray-500"},"عنوان فیلد بازخورد",-1)),_o=r(()=>a("div",{class:"mb-1 text-xs text-gray-500"},"متن پیشفرض فیلد بازخورد",-1)),po={key:1,class:"space-y-2 border rounded-lg p-3"},vo=["name","checked","onChange"],mo=r(()=>a("span",{class:"text-xs"},"صحیح",-1)),ho={key:2,class:"space-y-2"},fo=r(()=>a("div",{class:"mb-1 text-xs text-gray-500"},"فایل بخش صوت",-1)),go={key:0,class:"mt-1"},bo={class:"h-2 rounded bg-gray-200 overflow-hidden"},yo={key:1,class:"step-audio-preview"},ko={class:"flex items-center justify-between mb-2"},xo=r(()=>a("div",{class:"step-audio-preview__label mb-0"},"پیشنمایش بخش صوت",-1)),wo=["src"],qo={class:"flex justify-end pt-1"},Uo=r(()=>a("span",{class:"text-[#DC2626]"},"حذف مرحله",-1)),So=r(()=>a("span",{class:"text-gray-500"},"+ افزودن مرحله",-1)),Co=it({__name:"index",setup(x){const I=Se,O=Se.TabPane,$e=Ae,fe=Ae.Option,Le=nt(),Re=rt(),W=k(Le.query.tab==="progress"?"progress":"challenges"),j=k(!1),H=k(!1),E=k(null),ae=k(!1),J=k({rules_aparat_embed_code:""}),K=k(!1),V=k([]),[Me,oe]=at(),P=k([]),z=k({}),se=k({}),F=k({}),T=k({}),U=k(0),R=k(0),le=()=>({description:"",duration_minutes:5,aparat_embed_code:"",kodoblu_voice_url:"",step_images:[],is_final_step:!1,enable_feedback_text:!1,require_feedback_text:!1,feedback_text_title:"بازخورد این مرحله",feedback_text_placeholder:"بازخورد خود را بنویس...",enable_photo_upload:!1,require_photo_upload:!1,enable_voice_upload:!1,require_voice_upload:!1,enable_mcq:!1,require_mcq:!1,mcq_question:"",mcq_options:["",""],mcq_correct_index:0,enable_audio_section:!1,audio_section_url:"",punishment_description:"",requires_photo_upload:!1}),v=k({title:"",character_image_url:null,show:!1,access_type:"free",sort_order:0,completion_points:50,steps:[le()]}),Pe={columns:Lt,api:ft,defaultPageLimit:20};function ie(t){return{width:`${Math.max(0,Math.min(100,t))}%`}}function ne(){return vt()||localStorage.getItem("tamin_token")||localStorage.getItem("token")||""}function re(t){var s,c,u,d;const o=t.full_src||t.url||t.src||t.path||((s=t.data)==null?void 0:s.full_src)||((c=t.data)==null?void 0:c.url)||((u=t.data)==null?void 0:u.src)||((d=t.data)==null?void 0:d.path)||"";return L(String(o||""))}function X(t,o,s){const c=[...v.value.steps];c[t]={...c[t],[o]:s},v.value.steps=c}function S(t,o){return`${t}:${o}`}function ce(t,o){return z.value[S(t,o)]||[]}function B(t,o){return se.value[S(t,o)]||0}function Q(t,o,s){se.value[S(t,o)]=s}function G(t){return t?t.startsWith("http://")||t.startsWith("https://")?t:Ct(t):""}function Fe(t,o){return F.value[S(t,o)]||""}function M(t,o){const s=S(t,o),c=F.value[s];c&&(URL.revokeObjectURL(c),delete F.value[s])}function Te(){Object.values(F.value).forEach(t=>URL.revokeObjectURL(t)),F.value={}}function N(t,o,s){const c=Fe(t,o);if(c)return c;if(s!=null&&s.trim())return G(s);const u=ce(t,o)[0];return(u==null?void 0:u.url)||""}function ge(t,o,s){return!!N(t,o,s)}function Be(){Te(),z.value={},se.value={}}function De(){T.value={}}function ue(t){return T.value[t]||[]}function be(){const t={};v.value.steps.forEach((o,s)=>{const c=(o.step_images||[]).filter(Boolean);c.length&&(t[s]=c.map((u,d)=>({uid:`step-image-${s}-${d}`,name:`image-${d+1}.jpg`,status:"done",url:ee(u),response:{path:L(u)||u}})))}),T.value=t}function ye(){const t={};v.value.steps.forEach((o,s)=>{o.audio_section_url&&(t[S(s,"audio_section_url")]=[{uid:`audio-section-${s}`,name:"audio-section.mp3",status:"done",url:G(o.audio_section_url)}]),o.kodoblu_voice_url&&(t[S(s,"kodoblu_voice_url")]=[{uid:`kodoblu-voice-${s}`,name:"kodoblu-voice.mp3",status:"done",url:G(o.kodoblu_voice_url)}])}),z.value=t}function Y(t,o){M(t,o),X(t,o,""),z.value[S(t,o)]=[]}function Oe(t,o){var u,d;const s=L(((u=o.response)==null?void 0:u.path)||o.url||""),c=((d=v.value.steps[t])==null?void 0:d.step_images)||[];X(t,"step_images",c.filter(h=>L(h)!==s)),T.value[t]=(T.value[t]||[]).filter(h=>h.uid!==o.uid)}function ke(){v.value={title:"",character_image_url:null,show:!1,access_type:"free",sort_order:0,completion_points:50,steps:[le()]},P.value=[],Be(),De()}function je(){H.value=!1,E.value=null,ke(),j.value=!0}function xe(){j.value=!1,ke()}function ze(){v.value.steps.push(le())}function Ne(t){v.value.steps.length<=1||(M(t,"kodoblu_voice_url"),M(t,"audio_section_url"),v.value.steps.splice(t,1),ye(),be())}async function de(){K.value=!0;try{V.value=await gt()}catch(t){g.error(t.message||"خطا در بارگذاری پیشرفت چالشها")}finally{K.value=!1}}function Ie(t){Re.push({name:"stepChallengeFeedback",params:{challengeId:t}})}function we(t){return t.type.startsWith("image/")?t.size/1024/1024<5?!0:(g.error("حجم تصویر باید کمتر از 5MB باشد!"),!1):(g.error("فقط فایلهای تصویری قابل آپلود هستند!"),!1)}async function We(t){const{file:o,onSuccess:s,onError:c,onProgress:u}=t,d=new FormData;d.append("file",o);const h=`${me}/upload/machartaa-img`;R.value=0,U.value++,await new Promise(($,C)=>{const e=new XMLHttpRequest;e.open("POST",h),e.setRequestHeader("Authorization",`Bearer ${ne()}`),e.upload.onprogress=i=>{if(i.lengthComputable){const l=Math.round(i.loaded/i.total*100);R.value=l,u==null||u({percent:l})}},e.onload=()=>{if(R.value=100,e.status>=200&&e.status<300)try{const i=JSON.parse(e.responseText||"{}"),l=re(i);if(!l)throw new Error("مسیر فایل از سرور دریافت نشد");const _=ee(l);v.value.character_image_url=l,P.value=_?[{uid:`${Date.now()}`,name:"image.jpg",status:"done",url:_,response:{path:l}}]:[],s==null||s(i,e),g.success("تصویر با موفقیت آپلود شد!"),$()}catch(i){c==null||c(i,e),C(i)}else{const i=new Error("خطا در آپلود تصویر");c==null||c(i,e),C(i)}},e.onerror=()=>{c==null||c(new Error("خطا در آپلود تصویر!"),e),C(new Error("خطا در آپلود تصویر!"))},e.onloadend=()=>{U.value=Math.max(0,U.value-1),R.value=0},e.send(d)})}async function He(t,o){const{file:s,onSuccess:c,onError:u,onProgress:d}=t,h=new FormData;h.append("file",s);const $=`${me}/upload/machartaa-img`;U.value++,await new Promise((C,e)=>{const i=new XMLHttpRequest;i.open("POST",$),i.setRequestHeader("Authorization",`Bearer ${ne()}`),i.upload.onprogress=l=>{l.lengthComputable&&(d==null||d({percent:Math.round(l.loaded/l.total*100)}))},i.onload=()=>{var l;if(i.status>=200&&i.status<300)try{const _=JSON.parse(i.responseText||"{}"),y=re(_);if(!y)throw new Error("مسیر تصویر از سرور دریافت نشد");const Z=[...((l=v.value.steps[o])==null?void 0:l.step_images)||[],y];X(o,"step_images",Z);const Ge={uid:`${Date.now()}-${o}`,name:s.name||"image.jpg",status:"done",url:ee(y),response:{path:y}};T.value[o]=[...ue(o),Ge],c==null||c(_,i),g.success("عکس مرحله با موفقیت آپلود شد!"),C()}catch(_){u==null||u(_,i),e(_)}else{const _=new Error("خطا در آپلود عکس مرحله");u==null||u(_,i),e(_)}},i.onerror=()=>{u==null||u(new Error("خطا در آپلود عکس مرحله!"),i),e(new Error("خطا در آپلود عکس مرحله!"))},i.onloadend=()=>{U.value=Math.max(0,U.value-1)},i.send(h)})}function qe(t){return t.type.startsWith("audio/")?t.size/1024/1024<60?!0:(g.error("حجم فایل صوتی باید کمتر از 60MB باشد!"),!1):(g.error("فقط فایلهای صوتی قابل آپلود هستند!"),!1)}async function Ue(t,o,s){const{file:c,onSuccess:u,onError:d,onProgress:h}=t,$=new FormData;$.append("file",c);const C=`${me}/upload/machartaa-audio`;M(o,s),F.value[S(o,s)]=URL.createObjectURL(c),Q(o,s,0),U.value++,await new Promise((e,i)=>{const l=new XMLHttpRequest;l.open("POST",C),l.setRequestHeader("Authorization",`Bearer ${ne()}`),l.timeout=15*60*1e3,l.upload.onprogress=_=>{if(_.lengthComputable){const y=Math.round(_.loaded/_.total*100);Q(o,s,y),h==null||h({percent:y})}},l.onload=()=>{if(Q(o,s,100),l.status>=200&&l.status<300)try{const _=JSON.parse(l.responseText||"{}"),y=re(_);if(!y)throw new Error("مسیر فایل صوتی از سرور دریافت نشد");M(o,s),X(o,s,y);const Z=G(y);z.value[S(o,s)]=Z?[{uid:`${Date.now()}`,name:c.name||"audio.mp3",status:"done",url:Z,response:{path:y}}]:[],u==null||u(_,l),g.success("فایل صوتی با موفقیت آپلود شد!"),e()}catch(_){d==null||d(_,l),i(_)}else{M(o,s);const _=new Error("خطا در آپلود فایل صوتی");d==null||d(_,l),i(_)}},l.onerror=()=>{M(o,s),d==null||d(new Error("خطا در آپلود فایل صوتی!"),l),i(new Error("خطا در آپلود فایل صوتی!"))},l.onloadend=()=>{U.value=Math.max(0,U.value-1),Q(o,s,0)},l.send($)})}async function Ee(t){try{const o=await bt(t.id);H.value=!0,E.value=t.id,v.value={title:o.title,character_image_url:L(o.character_image_url),show:!!o.show,access_type:o.access_type==="subscription"?"subscription":"free",sort_order:o.sort_order||0,completion_points:o.completion_points??50,steps:(o.steps||[]).map(s=>({id:s.id,description:s.description||"",duration_minutes:s.duration_minutes||Math.round((s.duration_seconds||60)/60),aparat_embed_code:s.aparat_embed_code||"",kodoblu_voice_url:s.kodoblu_voice_url||"",step_images:Array.isArray(s.step_images)?[...s.step_images]:[],is_final_step:!!s.is_final_step,enable_feedback_text:!!s.enable_feedback_text,require_feedback_text:!!s.require_feedback_text,feedback_text_title:s.feedback_text_title||"بازخورد این مرحله",feedback_text_placeholder:s.feedback_text_placeholder||"بازخورد خود را بنویس...",enable_photo_upload:!!(s.enable_photo_upload||s.requires_photo_upload),require_photo_upload:!!(s.require_photo_upload||s.requires_photo_upload),enable_voice_upload:!!s.enable_voice_upload,require_voice_upload:!!s.require_voice_upload,enable_mcq:!!s.enable_mcq,require_mcq:!!s.require_mcq,mcq_question:s.mcq_question||"",mcq_options:Array.isArray(s.mcq_options)&&s.mcq_options.length?[...s.mcq_options]:["",""],mcq_correct_index:Number(s.mcq_correct_index??0),enable_audio_section:!!s.enable_audio_section,audio_section_url:s.audio_section_url||"",punishment_description:s.punishment_description||"",requires_photo_upload:!!(s.enable_photo_upload||s.requires_photo_upload)}))},o.character_image_url&&(P.value=[{uid:`${Date.now()}`,name:"image.jpg",status:"done",url:ee(o.character_image_url)}]),ye(),be(),j.value=!0}catch(o){g.error(o.message||"خطا در بارگذاری چالش")}}async function Je(t){At.confirm({title:"حذف چالش",content:"آیا از حذف این چالش مطمئن هستید؟",okText:"بله",cancelText:"خیر",onOk:async()=>{await yt(t.id),g.success("چالش حذف شد"),oe()}})}async function Ke(t){await kt(t.id,{show:!t.show}),g.success(t.show?"چالش مخفی شد":"چالش نمایش داده میشود"),oe()}async function Ve(){var t;ae.value=!0;try{await xt({rules_aparat_embed_code:((t=J.value.rules_aparat_embed_code)==null?void 0:t.trim())||null}),g.success("تنظیمات ذخیره شد")}catch(o){g.error(o.message||"خطا در ذخیره تنظیمات")}finally{ae.value=!1}}async function Xe(){try{const t=await wt();J.value.rules_aparat_embed_code=(t==null?void 0:t.rules_aparat_embed_code)||""}catch(t){g.error(t.message||"خطا در بارگذاری تنظیمات")}}ct(W,t=>{t==="progress"&&!V.value.length&&de()}),ut(()=>{Xe(),W.value==="progress"&&de()});async function Qe(){if(!v.value.title.trim()){g.error("عنوان چالش الزامی است");return}if(U.value>0){g.warning("لطفاً تا پایان آپلود فایلها صبر کنید");return}try{const t={...v.value,sort_order:Number(v.value.sort_order)||0,completion_points:Number(v.value.completion_points)||50,steps:v.value.steps.map(o=>{var s,c;return{...o,kodoblu_voice_url:L((s=o.kodoblu_voice_url)==null?void 0:s.trim())||"",audio_section_url:L((c=o.audio_section_url)==null?void 0:c.trim())||"",step_images:(o.step_images||[]).map(u=>L(u)||u).filter(Boolean)}})};H.value&&E.value?(await qt(E.value,t),g.success("چالش ویرایش شد")):(await Ut(t,null),g.success("چالش اضافه شد")),xe(),oe()}catch(t){g.error(t.message||"خطا در ذخیره چالش")}}return(t,o)=>{const s=lt,c=et,u=st,d=ot,h=tt,$=Ze,C=Ye;return m(),f("div",null,[n(C,null,{default:p(()=>[n(b(I),{activeKey:W.value,"onUpdate:activeKey":o[1]||(o[1]=e=>W.value=e)},{default:p(()=>[n(b(O),{key:"challenges",tab:"مدیریت چالشها"},{default:p(()=>[a("div",Rt,[Mt,n(s,{type:"primary",onClick:je},{default:p(()=>[w("افزودن چالش")]),_:1})]),n(c,dt(Pe,{ref:"table",onRegister:b(Me)}),{action:p(({record:e})=>[a("div",Pt,[n(b(he),{class:"cursor-pointer"},{title:p(()=>[a("span",null,D(e.show?"مخفی کردن":"نمایش"),1)]),default:p(()=>[n(A,{icon:e.show?"vuesax-linear:eye-slash":"vuesax-linear:eye",color:e.show?"#F59E0B":"#16A34A",onClick:i=>Ke(e)},null,8,["icon","color","onClick"])]),_:2},1024),n(b(he),{class:"cursor-pointer"},{title:p(()=>[Ft]),default:p(()=>[n(A,{icon:"vuesax-linear:trash",color:"#DC2626",onClick:i=>Je(e)},null,8,["onClick"])]),_:2},1024),n(b(he),{class:"cursor-pointer"},{title:p(()=>[Tt]),default:p(()=>[n(A,{icon:"vuesax-linear:edit",color:"#1D4ED8",onClick:i=>Ee(e)},null,8,["onClick"])]),_:2},1024)])]),_:1},16,["onRegister"])]),_:1}),n(b(O),{key:"progress",tab:"پیشرفت کاربران"},{default:p(()=>[a("div",Bt,[Dt,n(s,{type:"dashed",loading:K.value,onClick:de},{default:p(()=>[w(" بروزرسانی ")]),_:1},8,["loading"])]),K.value?(m(),f("div",Ot,[n(b(Ce),{size:"large"})])):V.value.length?(m(),f("div",zt,[(m(!0),f(_e,null,pe(V.value,e=>(m(),f("button",{key:e.id,type:"button",class:"challenge-progress-card",onClick:i=>Ie(e.id)},[a("div",{class:"challenge-progress-card__title",title:e.title},D(e.title),9,It),a("div",Wt,[a("div",Ht,[Et,a("span",Jt,D(e.unique_users_count),1)]),a("div",Kt,[Vt,a("span",Xt,D(e.times_performed),1)])]),a("div",Qt,[w(" مشاهده بازخوردها "),n(A,{icon:"vuesax-linear:arrow-left"})])],8,Nt))),128))])):(m(),f("div",jt," چالشی برای نمایش وجود ندارد. "))]),_:1}),n(b(O),{key:"settings",tab:"تنظیمات صفحه"},{default:p(()=>[a("div",Gt,[Yt,Zt,a("div",null,[ea,n(u,{value:J.value.rules_aparat_embed_code,"onUpdate:value":o[0]||(o[0]=e=>J.value.rules_aparat_embed_code=e),placeholder:"کد embed از آپارات",rows:4},null,8,["value"])]),n(s,{type:"primary",loading:ae.value,onClick:Ve},{default:p(()=>[w(" ذخیره تنظیمات ")]),_:1},8,["loading"])])]),_:1})]),_:1},8,["activeKey"]),n($,{visible:j.value,"onUpdate:visible":o[8]||(o[8]=e=>j.value=e),title:H.value?"ویرایش چالش":"افزودن چالش",onOk:Qe,onCancel:xe,width:"85%",confirmLoading:U.value>0},{default:p(()=>[a("div",ta,[U.value>0?(m(),f("div",aa,[n(b(Ce),{size:"large"})])):q("",!0),a("div",null,[oa,n(d,{value:v.value.title,"onUpdate:value":o[2]||(o[2]=e=>v.value.title=e),placeholder:"عنوان چالش"},null,8,["value"])]),a("div",sa,[a("div",null,[la,n(d,{value:v.value.sort_order,"onUpdate:value":o[3]||(o[3]=e=>v.value.sort_order=e),type:"number",placeholder:"0"},null,8,["value"])]),a("div",null,[ia,a("div",na,[n(h,{value:v.value.show,"onUpdate:value":o[4]||(o[4]=e=>v.value.show=e)},null,8,["value"]),a("span",ra,D(v.value.show?"نمایش":"مخفی"),1)])]),a("div",null,[ca,n(b($e),{value:v.value.access_type,"onUpdate:value":o[5]||(o[5]=e=>v.value.access_type=e),class:"w-full"},{default:p(()=>[n(b(fe),{value:"free"},{default:p(()=>[w("رایگان (همه کاربران)")]),_:1}),n(b(fe),{value:"subscription"},{default:p(()=>[w("اشتراکی (فقط اشتراک فعال)")]),_:1})]),_:1},8,["value"])]),a("div",null,[ua,n(d,{value:v.value.completion_points,"onUpdate:value":o[6]||(o[6]=e=>v.value.completion_points=e),type:"number",min:"0",placeholder:"50"},null,8,["value"])])]),a("div",da,[a("div",null,[_a,n(b(te),{"file-list":P.value,"onUpdate:fileList":o[7]||(o[7]=e=>P.value=e),"before-upload":we,"custom-request":We,accept:"image/*","max-count":1,"list-type":"picture-card"},{default:p(()=>[P.value.length<1?(m(),f("div",pa,[n(A,{icon:"vuesax-linear:image",class:"text-2xl mb-2"}),va])):q("",!0)]),_:1},8,["file-list"]),R.value>0&&R.value<100?(m(),f("div",ma,[a("div",ha,[a("div",{class:"h-2 bg-blue-500 transition-all",style:ve(ie(R.value))},null,4)])])):q("",!0)])]),fa,a("div",ga,[ba,a("div",ya,[(m(!0),f(_e,null,pe(v.value.steps,(e,i)=>(m(),f("div",{key:i,class:mt(["step-form-box",{"step-form-box--final":e.is_final_step}])},[a("div",ka,[a("div",xa,[w(" مرحله "+D(i+1)+" ",1),e.is_final_step?(m(),f("span",wa,"(ماموریت پایانی)")):q("",!0)]),a("div",qa,[n(h,{value:e.is_final_step,"onUpdate:value":l=>e.is_final_step=l},null,8,["value","onUpdate:value"]),Ua])]),a("div",null,[Sa,n(u,{value:e.description,"onUpdate:value":l=>e.description=l,placeholder:"توضیحات مرحله",rows:2},null,8,["value","onUpdate:value"])]),a("div",Ca,[a("div",null,[Aa,n(d,{value:e.duration_minutes,"onUpdate:value":l=>e.duration_minutes=l,type:"number",min:"1",placeholder:"5"},null,8,["value","onUpdate:value"])])]),a("div",null,[$a,n(u,{value:e.aparat_embed_code,"onUpdate:value":l=>e.aparat_embed_code=l,placeholder:"کد embed",rows:2},null,8,["value","onUpdate:value"])]),a("div",La,[Ra,n(b(te),{"file-list":ce(i,"kodoblu_voice_url"),"before-upload":qe,"custom-request":l=>Ue(l,i,"kodoblu_voice_url"),accept:"audio/*","max-count":1,"show-upload-list":!1,onRemove:()=>Y(i,"kodoblu_voice_url")},{default:p(()=>[n(s,{type:"dashed"},{default:p(()=>[n(A,{icon:"vuesax-linear:voice-cricle",class:"ml-1"}),w(" آپلود وویس کدوبلو ")]),_:1})]),_:2},1032,["file-list","custom-request","onRemove"]),B(i,"kodoblu_voice_url")>0&&B(i,"kodoblu_voice_url")<100?(m(),f("div",Ma,[a("div",Pa,[a("div",{class:"h-2 bg-blue-500 transition-all",style:ve(ie(B(i,"kodoblu_voice_url")))},null,4)])])):q("",!0),ge(i,"kodoblu_voice_url",e.kodoblu_voice_url)?(m(),f("div",Fa,[a("div",Ta,[Ba,n(s,{type:"text",danger:"",size:"small",onClick:l=>Y(i,"kodoblu_voice_url")},{default:p(()=>[w(" حذف فایل ")]),_:2},1032,["onClick"])]),(m(),f("audio",{key:N(i,"kodoblu_voice_url",e.kodoblu_voice_url),src:N(i,"kodoblu_voice_url",e.kodoblu_voice_url),controls:"",preload:"metadata",class:"w-full"},null,8,Da))])):q("",!0),n(d,{value:e.kodoblu_voice_url,"onUpdate:value":l=>e.kodoblu_voice_url=l,placeholder:"مسیر وویس کدوبلو (پس از آپلود)"},null,8,["value","onUpdate:value"])]),a("div",null,[Oa,n(b(te),{"file-list":ue(i),"list-type":"picture-card","before-upload":we,"custom-request":l=>He(l,i),accept:"image/*",onRemove:l=>Oe(i,l)},{default:p(()=>[ue(i).length<8?(m(),f("div",ja,[n(A,{icon:"vuesax-linear:image",class:"text-xl mb-1"}),za])):q("",!0)]),_:2},1032,["file-list","custom-request","onRemove"])]),Na,a("div",Ia,[Wa,a("div",Ha,[a("label",Ea,[n(h,{value:e.enable_feedback_text,"onUpdate:value":l=>e.enable_feedback_text=l},null,8,["value","onUpdate:value"]),Ja]),a("label",Ka,[n(h,{value:e.require_feedback_text,"onUpdate:value":l=>e.require_feedback_text=l,disabled:!e.enable_feedback_text},null,8,["value","onUpdate:value","disabled"]),Va]),a("label",Xa,[n(h,{value:e.enable_photo_upload,"onUpdate:value":l=>e.enable_photo_upload=l},null,8,["value","onUpdate:value"]),Qa]),a("label",Ga,[n(h,{value:e.require_photo_upload,"onUpdate:value":l=>e.require_photo_upload=l,disabled:!e.enable_photo_upload},null,8,["value","onUpdate:value","disabled"]),Ya]),a("label",Za,[n(h,{value:e.enable_voice_upload,"onUpdate:value":l=>e.enable_voice_upload=l},null,8,["value","onUpdate:value"]),eo]),a("label",to,[n(h,{value:e.require_voice_upload,"onUpdate:value":l=>e.require_voice_upload=l,disabled:!e.enable_voice_upload},null,8,["value","onUpdate:value","disabled"]),ao]),a("label",oo,[n(h,{value:e.enable_mcq,"onUpdate:value":l=>e.enable_mcq=l},null,8,["value","onUpdate:value"]),so]),a("label",lo,[n(h,{value:e.require_mcq,"onUpdate:value":l=>e.require_mcq=l,disabled:!e.enable_mcq},null,8,["value","onUpdate:value","disabled"]),io]),a("label",no,[n(h,{value:e.enable_audio_section,"onUpdate:value":l=>e.enable_audio_section=l},null,8,["value","onUpdate:value"]),ro])]),e.enable_feedback_text?(m(),f("div",co,[a("div",null,[uo,n(d,{value:e.feedback_text_title,"onUpdate:value":l=>e.feedback_text_title=l,placeholder:"مثلاً: بازخورد این مرحله"},null,8,["value","onUpdate:value"])]),a("div",null,[_o,n(d,{value:e.feedback_text_placeholder,"onUpdate:value":l=>e.feedback_text_placeholder=l,placeholder:"مثلاً: بازخورد خود را بنویس..."},null,8,["value","onUpdate:value"])])])):q("",!0),e.enable_mcq?(m(),f("div",po,[n(d,{value:e.mcq_question,"onUpdate:value":l=>e.mcq_question=l,placeholder:"متن سوال"},null,8,["value","onUpdate:value"]),(m(!0),f(_e,null,pe(e.mcq_options,(l,_)=>(m(),f("div",{key:_,class:"flex gap-2 items-center"},[n(d,{value:e.mcq_options[_],"onUpdate:value":y=>e.mcq_options[_]=y,placeholder:`گزینه ${_+1}`,class:"flex-1"},null,8,["value","onUpdate:value","placeholder"]),a("input",{type:"radio",name:`mcq-${i}`,checked:e.mcq_correct_index===_,onChange:y=>e.mcq_correct_index=_},null,40,vo),mo,e.mcq_options.length>2?(m(),ht(s,{key:0,danger:"",onClick:y=>e.mcq_options.splice(_,1)},{default:p(()=>[w("×")]),_:2},1032,["onClick"])):q("",!0)]))),128)),n(s,{type:"dashed",onClick:l=>e.mcq_options.push("")},{default:p(()=>[w("+ گزینه")]),_:2},1032,["onClick"])])):q("",!0),e.enable_audio_section?(m(),f("div",ho,[fo,n(b(te),{"file-list":ce(i,"audio_section_url"),"before-upload":qe,"custom-request":l=>Ue(l,i,"audio_section_url"),accept:"audio/*","max-count":1,"show-upload-list":!1,onRemove:()=>Y(i,"audio_section_url")},{default:p(()=>[n(s,{type:"dashed"},{default:p(()=>[n(A,{icon:"vuesax-linear:voice-cricle",class:"ml-1"}),w(" آپلود فایل صوتی ")]),_:1})]),_:2},1032,["file-list","custom-request","onRemove"]),B(i,"audio_section_url")>0&&B(i,"audio_section_url")<100?(m(),f("div",go,[a("div",bo,[a("div",{class:"h-2 bg-blue-500 transition-all",style:ve(ie(B(i,"audio_section_url")))},null,4)])])):q("",!0),ge(i,"audio_section_url",e.audio_section_url)?(m(),f("div",yo,[a("div",ko,[xo,n(s,{type:"text",danger:"",size:"small",onClick:l=>Y(i,"audio_section_url")},{default:p(()=>[w(" حذف فایل ")]),_:2},1032,["onClick"])]),(m(),f("audio",{key:N(i,"audio_section_url",e.audio_section_url),src:N(i,"audio_section_url",e.audio_section_url),controls:"",preload:"metadata",class:"w-full"},null,8,wo))])):q("",!0),n(d,{value:e.audio_section_url,"onUpdate:value":l=>e.audio_section_url=l,placeholder:"مسیر فایل صوتی (پس از آپلود)"},null,8,["value","onUpdate:value"])])):q("",!0)]),a("div",qo,[n(s,{type:"text",danger:"",onClick:l=>Ne(i),disabled:v.value.steps.length<=1},{default:p(()=>[n(A,{icon:"vuesax-linear:trash",color:"#DC2626"}),Uo]),_:2},1032,["onClick","disabled"])])],2))),128)),n(s,{type:"dashed",onClick:ze,class:"w-full"},{default:p(()=>[So]),_:1})])])])]),_:1},8,["visible","title","confirmLoading"])]),_:1})])}}});const hs=$t(Co,[["__scopeId","data-v-c054cae7"]]);export{hs as default};
|