Files
machartaa_admin_dist/dist/assets/index-42dcc21e.js
T
2026-07-15 13:20:16 +03:30

2 lines
30 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 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};