Files
machartaa_admin_dist/dist/assets/index-48142028.js
T
2026-07-22 17:08:59 +03:30

3 lines
16 KiB
JavaScript

import{_ as Ue}from"./BasicMainCard-abd17be1.js";import{_ as Me}from"./button.vue_vue_type_style_index_0_lang-58c562e7.js";import{d as Te,q as $e,u as Ae,g as p,r as Pe,h as q,E as Re,v as Le,P as je,o as n,c as s,b as c,w as L,a as o,t as v,e as ve,F as m,n as F,k as h,j as _,i as me,V as U,aM as M,D as x,O as Ve,M as Ne,N as De,p as Oe}from"./index-02897754.js";import{i as Ke}from"./index-30e9b5a1.js";import{I as j}from"./Icon-2ca0951c.js";import{l as We,m as He,n as Xe,o as Ge,p as Je,q as Qe,r as Ye}from"./stepChallenge-ec380cab.js";import{a as Ze,g as et}from"./convert-2ad76038.js";import{I as tt}from"./index-b0c72faa.js";import{a as he}from"./index-9f87c1a7.js";import{S as at}from"./index-644e91ea.js";import{_ as ot}from"./index-6be140ba.js";import{T as nt}from"./index-4cf251d4.js";import{_ as st}from"./_plugin-vue_export-helper-2dea18d7.js";import"./index-c1d1bf6d.js";import"./index-a2c53d90.js";import"./Col-880c700f.js";import"./styleChecker-ce90d19e.js";import"./isPlainObject-6a522913.js";import"./vnode-65917850.js";import"./FormItemContext-0ec501fb.js";import"./isSymbol-792a2a97.js";import"./useState-4419625c.js";import"./useRefs-44db43e1.js";import"./_flatRest-bac800e2.js";import"./css-aae66f86.js";import"./DialogWrap-b41f46aa.js";import"./pickAttrs-66d27c5c.js";import"./LeftOutlined-0f3263d7.js";import"./index-834ba08a.js";import"./index-1d9cca6c.js";import"./toArray-b84867a5.js";const k=T=>(Ne("data-v-9c4696a7"),T=T(),De(),T),lt={class:"feedback-page"},it={class:"feedback-page__inner"},ct={class:"feedback-page__header"},rt=k(()=>o("div",{class:"text-sm text-gray-500 mb-1"},"بازخوردهای چالش",-1)),dt={class:"text-lg font-semibold m-0"},ut={class:"feedback-layout"},pt={class:"feedback-menu"},_t=["onClick"],vt={key:0,class:"feedback-menu__hint"},mt={class:"feedback-content"},ht={key:0,class:"py-16 flex justify-center"},ft={key:0,class:"text-center text-gray-500 py-12"},bt={key:1,class:"step-feedback-active mb-4"},yt=k(()=>o("span",{class:"step-feedback-active__label"},"بازخوردهای فعال این مرحله:",-1)),gt={class:"step-feedback-active__chips"},xt={key:0,class:"text-xs text-gray-400"},kt={key:2,class:"step-feedback-desc mb-4"},wt={key:3,class:"text-center text-gray-500 py-12"},St={class:"space-y-4"},Ct={class:"flex flex-wrap items-center justify-between gap-3"},It=k(()=>o("h3",{class:"m-0 text-base font-semibold"},"پیشنهاد و انتقاد",-1)),qt=k(()=>o("p",{class:"text-sm text-gray-500 m-0"}," پیام‌هایی که کاربران در پایان چالش نوشته‌اند. ",-1)),Ft={class:"space-y-4"},Et={class:"flex flex-wrap items-center justify-between gap-3"},zt=k(()=>o("h3",{class:"m-0 text-base font-semibold"},"بازخورد متنی",-1)),Bt={class:"space-y-4"},Ut={class:"flex flex-wrap items-center justify-between gap-3"},Mt=k(()=>o("h3",{class:"m-0 text-base font-semibold"},"عکس",-1)),Tt={key:0,class:"text-center text-gray-500 py-12"},$t={key:1,class:"photo-grid"},At={class:"photo-card__body"},Pt=["title"],Rt={class:"text-[11px] text-gray-500 mt-0.5 truncate",dir:"ltr"},Lt=["onClick"],jt={class:"space-y-4"},Vt={class:"flex flex-wrap items-center justify-between gap-3"},Nt=k(()=>o("h3",{class:"m-0 text-base font-semibold"},"صوت ضبط‌شده",-1)),Dt={key:0,class:"voice-player-row"},Ot=["src"],Kt=["onClick"],Wt={class:"space-y-4"},Ht={class:"flex flex-wrap items-center justify-between gap-3"},Xt=k(()=>o("h3",{class:"m-0 text-base font-semibold"},"سوال چندگزینه‌ای",-1)),Gt={key:0,class:"text-center text-gray-500 py-12"},Jt={class:"mcq-block__question"},Qt={class:"font-semibold text-base"},Yt={class:"text-xs text-gray-500 mt-1"},Zt={class:"mcq-block__grid"},ea={class:"mcq-block__table"},ta={class:"mcq-block__chart"},aa={class:"mcq-legend"},oa={class:"truncate"},na={class:"shrink-0 text-gray-600"},sa=Te({__name:"index",setup(T){const E=tt.Search,$=nt,fe=he,be=he.TabPane,ye=$e(),ge=Ae(),f=Number(ye.params.challengeId),oe=p(""),V=p(!0),i=p("text"),b=p(""),C=p([]),N=p(""),D=p(""),O=p(""),K=p(""),W=p(""),H=p([]),A=p([]),X=p([]),z=p([]),ne=p([]),u=Pe({text:!1,photo:!1,voice:!1,mcq:!1,completion:!1}),G=new Map,P=new Map,w=q(()=>C.value.find(e=>String(e.id)===b.value)||null),y=q(()=>{const e=Number(b.value);return Number.isFinite(e)&&e>0?e:null}),se=[{key:"text",label:"بازخورد متنی",icon:"vuesax-linear:document-text"},{key:"photo",label:"عکس",icon:"vuesax-linear:gallery"},{key:"voice",label:"صوت ضبط‌شده",icon:"vuesax-linear:microphone-2"},{key:"mcq",label:"سوال چندگزینه‌ای",icon:"vuesax-linear:task-square"},{key:"completion",label:"پیشنهاد و انتقاد",icon:"vuesax-linear:message-text"}];function I(e,a){return a==="completion"?!0:a==="text"?!!e.enable_feedback_text:a==="photo"?!!e.enable_photo_upload:a==="voice"?!!e.enable_voice_upload:a==="mcq"?!!e.enable_mcq:!1}const xe=q(()=>{const e=w.value;return se.filter(a=>a.key==="completion"?!0:e?I(e,a.key):C.value.some(r=>I(r,a.key)))}),S=q(()=>i.value==="completion"?[]:C.value.filter(e=>I(e,i.value))),ke=q(()=>{const e=w.value;return e?[{key:"text",label:"متنی",enabled:!!e.enable_feedback_text},{key:"photo",label:"عکس",enabled:!!e.enable_photo_upload},{key:"voice",label:"صوت",enabled:!!e.enable_voice_upload},{key:"mcq",label:"چندگزینه‌ای",enabled:!!e.enable_mcq}]:[]}),le=q(()=>ke.value.filter(e=>e.enabled));function J(e){if(e==="completion")return;const a=C.value.filter(d=>I(d,e));if(!a.length){b.value="";return}a.some(d=>String(d.id)===b.value)||(b.value=String(a[0].id))}function ie(){const e=w.value;if(!e||i.value==="completion"||I(e,i.value))return;const a=se.find(r=>r.key!=="completion"&&I(e,r.key));i.value=(a==null?void 0:a.key)||"completion"}function we(e){J(e),i.value=e}const Se=[{title:"ردیف",dataIndex:"index",key:"index",width:70,align:"center"},{title:"نام کاربر",dataIndex:"user_name",key:"user_name"},{title:"شماره موبایل",dataIndex:"user_phone",key:"user_phone",width:140},{title:"متن بازخورد",dataIndex:"feedback_text",key:"feedback_text"}],Ce=[{title:"ردیف",dataIndex:"index",key:"index",width:70,align:"center"},{title:"نام کاربر",dataIndex:"user_name",key:"user_name"},{title:"شماره موبایل",dataIndex:"user_phone",key:"user_phone",width:140},{title:"پیشنهاد و انتقاد",dataIndex:"feedback_text",key:"feedback_text"}],Ie=[{title:"ردیف",dataIndex:"index",key:"index",width:70,align:"center"},{title:"نام کاربر",dataIndex:"user_name",key:"user_name"},{title:"شماره موبایل",dataIndex:"user_phone",key:"user_phone",width:140},{title:"صوت ضبط‌شده کاربر",key:"voice"}],qe=[{title:"ردیف",dataIndex:"index",key:"index",width:60,align:"center"},{title:"نام کاربر",dataIndex:"user_name",key:"user_name"},{title:"شماره موبایل",dataIndex:"user_phone",key:"user_phone",width:120},{title:"پاسخ",dataIndex:"answer_label",key:"answer_label"}];function Fe(e,a){a instanceof HTMLElement?G.set(e,a):G.delete(e)}function R(e,a="image"){return e?a==="audio"?Ze(e):et(e):""}function ce(){ge.push({name:"stepChallengesMain",query:{tab:"progress"}})}async function re(e,a,r="image"){var d;try{const g=R(e,r);if(!g){x.error("آدرس فایل معتبر نیست");return}const t=await fetch(g);if(!t.ok)throw new Error("download failed");const l=await t.blob(),pe=((d=e.split(".").pop())==null?void 0:d.split("?")[0])||"bin",_e=URL.createObjectURL(l),B=document.createElement("a");B.href=_e,B.download=`${a}.${pe}`,document.body.appendChild(B),B.click(),B.remove(),URL.revokeObjectURL(_e)}catch{window.open(R(e,r),"_blank")}}function de(){P.forEach(e=>e.dispose()),P.clear()}function Ee(){de();const e=["#2563EB","#16A34A","#F59E0B","#DC2626","#7C3AED","#0891B2","#DB2777"];for(const a of z.value){const r=G.get(a.step_id);if(!r)continue;const d=Ke(r);P.set(a.step_id,d);const g=(a.option_stats||[]).map((t,l)=>({name:t.label||`گزینه ${t.optionIndex+1}`,value:t.count,itemStyle:{color:e[l%e.length]}}));d.setOption({textStyle:{fontFamily:"iran-sans"},tooltip:{trigger:"item",textStyle:{fontFamily:"iran-sans"},formatter:t=>{const l=t.percent??0;return`${t.name}<br/>${t.value} نفر · ${l}%`}},legend:{orient:"horizontal",bottom:0,type:"scroll",textStyle:{fontFamily:"iran-sans"}},series:[{name:"آمار گزینه‌ها",type:"pie",radius:"65%",center:["50%","45%"],avoidLabelOverlap:!0,itemStyle:{borderRadius:4,borderColor:"#fff",borderWidth:2},label:{show:!0,fontFamily:"iran-sans",formatter:`{b}
{c} نفر ({d}%)`},labelLine:{show:!0},emphasis:{label:{show:!0,fontSize:14,fontWeight:"bold",fontFamily:"iran-sans"},itemStyle:{shadowBlur:10,shadowOffsetX:0,shadowColor:"rgba(0, 0, 0, 0.15)"}},data:g.length?g:[{name:"بدون پاسخ",value:0,itemStyle:{color:"#E5E7EB"}}]}]})}}async function Q(){if(!y.value){H.value=[];return}u.text=!0;try{H.value=await We(f,N.value,y.value)}catch(e){x.error(e.message||"خطا در بارگذاری بازخورد متنی")}finally{u.text=!1}}async function Y(){if(!y.value){A.value=[];return}u.photo=!0;try{A.value=await He(f,D.value,y.value)}catch(e){x.error(e.message||"خطا در بارگذاری عکس‌ها")}finally{u.photo=!1}}async function Z(){if(!y.value){X.value=[];return}u.voice=!0;try{X.value=await Xe(f,O.value,y.value)}catch(e){x.error(e.message||"خطا در بارگذاری صوت‌ها")}finally{u.voice=!1}}async function ee(){if(!y.value){z.value=[];return}u.mcq=!0;try{z.value=await Ge(f,K.value,y.value),await Ve(),Ee()}catch(e){x.error(e.message||"خطا در بارگذاری سوالات چندگزینه‌ای")}finally{u.mcq=!1}}async function te(){u.completion=!0;try{ne.value=await Je(f,W.value)}catch(e){x.error(e.message||"خطا در بارگذاری پیشنهاد و انتقاد")}finally{u.completion=!1}}async function ae(e){e==="text"&&await Q(),e==="photo"&&await Y(),e==="voice"&&await Z(),e==="mcq"&&await ee(),e==="completion"&&await te()}async function ze(){ie(),await ae(i.value)}async function Be(){if(!f){x.error("شناسه چالش نامعتبر است"),ce();return}V.value=!0;try{const[e,a]=await Promise.all([Qe(f),Ye(f)]);oe.value=(e==null?void 0:e.title)||"",C.value=a;const r=a.find(d=>d.enable_feedback_text||d.enable_photo_upload||d.enable_voice_upload||d.enable_mcq);b.value=r?String(r.id):a.length?String(a[0].id):"",ie(),J(i.value),await ae(i.value)}catch(e){x.error(e.message||"خطا در بارگذاری صفحه")}finally{V.value=!1}}Re(i,e=>{J(e),ae(e)});function ue(){P.forEach(e=>e.resize())}return Le(()=>{Be(),window.addEventListener("resize",ue)}),je(()=>{window.removeEventListener("resize",ue),de()}),(e,a)=>{const r=Me,d=Ue;return n(),s("div",lt,[c(d,null,{default:L(()=>{var g;return[o("div",it,[o("div",ct,[o("div",null,[rt,o("h2",dt,v(oe.value||"—"),1)]),c(r,{onClick:ce},{default:L(()=>[c(j,{icon:"vuesax-linear:arrow-right",class:"ml-1"}),ve(" بازگشت به پیشرفت کاربران ")]),_:1})]),o("div",ut,[o("aside",pt,[(n(!0),s(m,null,F(xe.value,t=>(n(),s("button",{key:t.key,type:"button",class:Oe(["feedback-menu__item",{"feedback-menu__item--active":i.value===t.key}]),onClick:l=>we(t.key)},[c(j,{icon:t.icon,class:"text-lg"},null,8,["icon"]),o("span",null,v(t.label),1)],10,_t))),128)),i.value!=="completion"&&w.value?(n(),s("p",vt," فقط بازخوردهای فعال مرحله انتخاب‌شده در منو دیده می‌شوند. ")):h("",!0)]),o("section",mt,[V.value?(n(),s("div",ht,[c(_(at),{size:"large"})])):(n(),s(m,{key:1},[C.value.length?(n(),s(m,{key:1},[i.value!=="completion"?(n(),s(m,{key:0},[S.value.length?(n(),me(_(fe),{key:0,activeKey:b.value,"onUpdate:activeKey":a[0]||(a[0]=t=>b.value=t),class:"step-feedback-tabs",onChange:ze},{default:L(()=>[(n(!0),s(m,null,F(S.value,t=>(n(),me(_(be),{key:String(t.id),tab:t.label},null,8,["tab"]))),128))]),_:1},8,["activeKey"])):h("",!0),w.value?(n(),s("div",bt,[yt,o("div",gt,[(n(!0),s(m,null,F(le.value,t=>(n(),s("span",{key:t.key,class:"step-feedback-chip step-feedback-chip--on"},v(t.label),1))),128)),le.value.length?h("",!0):(n(),s("span",xt," هیچ بازخوردی برای این مرحله فعال نیست "))])])):h("",!0),(g=w.value)!=null&&g.description?(n(),s("div",kt,v(w.value.description),1)):h("",!0),S.value.length?h("",!0):(n(),s("div",wt," هیچ مرحله‌ای این نوع بازخورد را فعال ندارد. "))],64)):h("",!0),U(o("div",St,[o("div",Ct,[It,c(_(E),{value:W.value,"onUpdate:value":a[1]||(a[1]=t=>W.value=t),placeholder:"جستجو بر اساس نام، موبایل یا متن","allow-clear":"",class:"max-w-sm",onSearch:te,onPressEnter:te},null,8,["value"])]),qt,c(_($),{columns:Ce,"data-source":ne.value,loading:u.completion,pagination:{pageSize:10,showSizeChanger:!0},"row-key":"id",bordered:"",size:"middle"},null,8,["data-source","loading"])],512),[[M,i.value==="completion"]]),U(o("div",Ft,[o("div",Et,[zt,c(_(E),{value:N.value,"onUpdate:value":a[2]||(a[2]=t=>N.value=t),placeholder:"جستجو بر اساس نام، موبایل یا متن","allow-clear":"",class:"max-w-sm",onSearch:Q,onPressEnter:Q},null,8,["value"])]),c(_($),{columns:Se,"data-source":H.value,loading:u.text,pagination:{pageSize:10,showSizeChanger:!0},"row-key":"id",bordered:"",size:"middle"},null,8,["data-source","loading"])],512),[[M,i.value==="text"&&S.value.length]]),U(o("div",Bt,[o("div",Ut,[Mt,c(_(E),{value:D.value,"onUpdate:value":a[3]||(a[3]=t=>D.value=t),placeholder:"جستجو بر اساس نام یا شماره موبایل","allow-clear":"",class:"max-w-sm",onSearch:Y,onPressEnter:Y},null,8,["value"])]),!A.value.length&&!u.photo?(n(),s("div",Tt," عکسی برای این مرحله ثبت نشده است. ")):(n(),s("div",$t,[(n(!0),s(m,null,F(A.value,t=>(n(),s("div",{key:t.id,class:"photo-card"},[c(_(ot),{src:R(t.photo_url,"image"),preview:{mask:"پیش‌نمایش"},class:"photo-card__image"},null,8,["src"]),o("div",At,[o("div",{class:"font-semibold text-xs truncate",title:t.user_name},v(t.user_name),9,Pt),o("div",Rt,v(t.user_phone||"—"),1),o("button",{type:"button",class:"photo-card__download",title:"دانلود",onClick:l=>re(t.photo_url,`photo-${t.id}`,"image")},[c(j,{icon:"vuesax-linear:document-download"}),ve(" دانلود ")],8,Lt)])]))),128))]))],512),[[M,i.value==="photo"&&S.value.length]]),U(o("div",jt,[o("div",Vt,[Nt,c(_(E),{value:O.value,"onUpdate:value":a[4]||(a[4]=t=>O.value=t),placeholder:"جستجو بر اساس نام یا شماره موبایل","allow-clear":"",class:"max-w-sm",onSearch:Z,onPressEnter:Z},null,8,["value"])]),c(_($),{columns:Ie,"data-source":X.value,loading:u.voice,pagination:{pageSize:10,showSizeChanger:!0},"row-key":"id",bordered:"",size:"middle"},{bodyCell:L(({column:t,record:l})=>[t.key==="voice"?(n(),s("div",Dt,[o("audio",{src:R(l.voice_url,"audio"),controls:"",preload:"metadata",class:"voice-player"},null,8,Ot),o("button",{type:"button",class:"voice-download-btn",title:"دانلود",onClick:pe=>re(l.voice_url,`voice-${l.id}`,"audio")},[c(j,{icon:"vuesax-linear:document-download"})],8,Kt)])):h("",!0)]),_:1},8,["data-source","loading"])],512),[[M,i.value==="voice"&&S.value.length]]),U(o("div",Wt,[o("div",Ht,[Xt,c(_(E),{value:K.value,"onUpdate:value":a[5]||(a[5]=t=>K.value=t),placeholder:"جستجو بر اساس نام یا شماره موبایل","allow-clear":"",class:"max-w-sm",onSearch:ee,onPressEnter:ee},null,8,["value"])]),!z.value.length&&!u.mcq?(n(),s("div",Gt," سوال چندگزینه‌ای برای این مرحله تعریف نشده یا پاسخی ثبت نشده است. ")):h("",!0),(n(!0),s(m,null,F(z.value,t=>(n(),s("div",{key:t.step_id,class:"mcq-block"},[o("div",Jt,[o("div",Qt,v(t.question),1),o("div",Yt,"تعداد پاسخ‌ها: "+v(t.total_answers),1)]),o("div",Zt,[o("div",ea,[c(_($),{columns:qe,"data-source":t.answers,pagination:{pageSize:8,showSizeChanger:!0},"row-key":"id",bordered:"",size:"small"},null,8,["data-source"])]),o("div",ta,[o("div",{ref_for:!0,ref:l=>Fe(t.step_id,l),class:"mcq-chart"},null,512),o("div",aa,[(n(!0),s(m,null,F(t.option_stats,l=>(n(),s("div",{key:l.optionIndex,class:"mcq-legend__item"},[o("span",oa,v(l.label||`گزینه ${l.optionIndex+1}`),1),o("span",na,v(l.count)+" نفر · "+v(l.percent)+"٪",1)]))),128))])])])]))),128))],512),[[M,i.value==="mcq"&&S.value.length]])],64)):(n(),s("div",ft," مرحله‌ای برای این چالش تعریف نشده است. "))],64))])])])]}),_:1})])}}});const Pa=st(sa,[["__scopeId","data-v-9c4696a7"]]);export{Pa as default};