3 lines
12 KiB
JavaScript
3 lines
12 KiB
JavaScript
import{_ as be}from"./BasicMainCard-226652ff.js";import{_ as ge}from"./button.vue_vue_type_style_index_0_lang-d41fbf64.js";import{d as xe,q as we,u as ke,g as c,r as Se,h as se,E as Ce,v as Ie,P as qe,o as n,c as l,b as i,w as B,a,t as u,e as ne,F as y,n as k,j as d,k as G,V as T,aM as U,D as b,O as Ee,M as Fe,N as ze,p as Be,i as Te}from"./index-c3a83709.js";import{i as Ue}from"./index-30e9b5a1.js";import{I as $}from"./Icon-78d04a1c.js";import{h as $e,i as Me,j as Le,k as Pe,l as Re,m as je}from"./stepChallenge-2c7c9a67.js";import{a as Ae,g as Ne}from"./convert-2ad76038.js";import{I as De}from"./index-588aa217.js";import{a as le}from"./index-6d9d7b65.js";import{S as Ve}from"./index-55899d99.js";import{_ as Oe}from"./index-b730fd24.js";import{T as We}from"./index-4987f49a.js";import{_ as Ke}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"./FormItemContext-89798113.js";import"./isSymbol-933af901.js";import"./useState-edde538a.js";import"./useRefs-c83745ad.js";import"./_flatRest-09ea8109.js";import"./css-aae66f86.js";import"./DialogWrap-99990cc9.js";import"./pickAttrs-948566e5.js";import"./index-c0c82e0d.js";import"./index-ce887100.js";import"./toArray-fdd672d9.js";const S=C=>(Fe("data-v-f473195d"),C=C(),ze(),C),He={class:"feedback-page"},Xe={class:"feedback-page__inner"},Ge={class:"feedback-page__header"},Je=S(()=>a("div",{class:"text-sm text-gray-500 mb-1"},"بازخوردهای چالش",-1)),Qe={class:"text-lg font-semibold m-0"},Ye={class:"feedback-layout"},Ze={class:"feedback-menu"},et=["onClick"],tt={class:"feedback-content"},at={key:0,class:"py-16 flex justify-center"},ot={key:0,class:"text-center text-gray-500 py-12"},st={key:0,class:"step-feedback-desc mb-4"},nt={class:"space-y-4"},lt={class:"flex flex-wrap items-center justify-between gap-3"},it=S(()=>a("h3",{class:"m-0 text-base font-semibold"},"بازخورد متنی",-1)),ct={class:"space-y-4"},rt={class:"flex flex-wrap items-center justify-between gap-3"},dt=S(()=>a("h3",{class:"m-0 text-base font-semibold"},"عکس",-1)),ut={key:0,class:"text-center text-gray-500 py-12"},_t={key:1,class:"photo-grid"},mt={class:"photo-card__body"},pt=["title"],vt={class:"text-[11px] text-gray-500 mt-0.5 truncate",dir:"ltr"},ht=["onClick"],ft={class:"space-y-4"},yt={class:"flex flex-wrap items-center justify-between gap-3"},bt=S(()=>a("h3",{class:"m-0 text-base font-semibold"},"صوت ضبطشده",-1)),gt={key:0,class:"voice-player-row"},xt=["src"],wt=["onClick"],kt={class:"space-y-4"},St={class:"flex flex-wrap items-center justify-between gap-3"},Ct=S(()=>a("h3",{class:"m-0 text-base font-semibold"},"سوال چندگزینهای",-1)),It={key:0,class:"text-center text-gray-500 py-12"},qt={class:"mcq-block__question"},Et={class:"font-semibold text-base"},Ft={class:"text-xs text-gray-500 mt-1"},zt={class:"mcq-block__grid"},Bt={class:"mcq-block__table"},Tt={class:"mcq-block__chart"},Ut={class:"mcq-legend"},$t={class:"truncate"},Mt={class:"shrink-0 text-gray-600"},Lt=xe({__name:"index",setup(C){const I=De.Search,M=We,ie=le,ce=le.TabPane,re=we(),de=ke(),v=Number(re.params.challengeId),J=c(""),L=c(!0),_=c("text"),g=c(""),q=c([]),P=c(""),R=c(""),j=c(""),A=c(""),N=c([]),E=c([]),D=c([]),x=c([]),r=Se({text:!1,photo:!1,voice:!1,mcq:!1}),V=new Map,F=new Map,Q=se(()=>q.value.find(e=>String(e.id)===g.value)||null),m=se(()=>{const e=Number(g.value);return Number.isFinite(e)&&e>0?e:null}),ue=[{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"}],_e=[{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"}],me=[{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"}],pe=[{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 ve(e,o){o instanceof HTMLElement?V.set(e,o):V.delete(e)}function z(e,o="image"){return e?e.startsWith("http://")||e.startsWith("https://")?e:o==="audio"?Ae(e):Ne(e):""}function Y(){de.push({name:"stepChallengesMain",query:{tab:"progress"}})}async function Z(e,o,h="image"){var f;try{const p=z(e,h);if(!p){b.error("آدرس فایل معتبر نیست");return}const t=await fetch(p);if(!t.ok)throw new Error("download failed");const s=await t.blob(),ae=((f=e.split(".").pop())==null?void 0:f.split("?")[0])||"bin",oe=URL.createObjectURL(s),w=document.createElement("a");w.href=oe,w.download=`${o}.${ae}`,document.body.appendChild(w),w.click(),w.remove(),URL.revokeObjectURL(oe)}catch{window.open(z(e,h),"_blank")}}function ee(){F.forEach(e=>e.dispose()),F.clear()}function he(){ee();const e=["#2563EB","#16A34A","#F59E0B","#DC2626","#7C3AED","#0891B2","#DB2777"];for(const o of x.value){const h=V.get(o.step_id);if(!h)continue;const f=Ue(h);F.set(o.step_id,f);const p=(o.option_stats||[]).map((t,s)=>({name:t.label||`گزینه ${t.optionIndex+1}`,value:t.count,itemStyle:{color:e[s%e.length]}}));f.setOption({textStyle:{fontFamily:"iran-sans"},tooltip:{trigger:"item",textStyle:{fontFamily:"iran-sans"},formatter:t=>{const s=t.percent??0;return`${t.name}<br/>${t.value} نفر · ${s}%`}},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:p.length?p:[{name:"بدون پاسخ",value:0,itemStyle:{color:"#E5E7EB"}}]}]})}}async function O(){if(!m.value){N.value=[];return}r.text=!0;try{N.value=await $e(v,P.value,m.value)}catch(e){b.error(e.message||"خطا در بارگذاری بازخورد متنی")}finally{r.text=!1}}async function W(){if(!m.value){E.value=[];return}r.photo=!0;try{E.value=await Me(v,R.value,m.value)}catch(e){b.error(e.message||"خطا در بارگذاری عکسها")}finally{r.photo=!1}}async function K(){if(!m.value){D.value=[];return}r.voice=!0;try{D.value=await Le(v,j.value,m.value)}catch(e){b.error(e.message||"خطا در بارگذاری صوتها")}finally{r.voice=!1}}async function H(){if(!m.value){x.value=[];return}r.mcq=!0;try{x.value=await Pe(v,A.value,m.value),await Ee(),he()}catch(e){b.error(e.message||"خطا در بارگذاری سوالات چندگزینهای")}finally{r.mcq=!1}}async function X(e){e==="text"&&await O(),e==="photo"&&await W(),e==="voice"&&await K(),e==="mcq"&&await H()}async function fe(){await X(_.value)}async function ye(){if(!v){b.error("شناسه چالش نامعتبر است"),Y();return}L.value=!0;try{const[e,o]=await Promise.all([Re(v),je(v)]);J.value=(e==null?void 0:e.title)||"",q.value=o,g.value=o.length?String(o[0].id):"",g.value&&await X(_.value)}catch(e){b.error(e.message||"خطا در بارگذاری صفحه")}finally{L.value=!1}}Ce(_,e=>{X(e)});function te(){F.forEach(e=>e.resize())}return Ie(()=>{ye(),window.addEventListener("resize",te)}),qe(()=>{window.removeEventListener("resize",te),ee()}),(e,o)=>{const h=ge,f=be;return n(),l("div",He,[i(f,null,{default:B(()=>{var p;return[a("div",Xe,[a("div",Ge,[a("div",null,[Je,a("h2",Qe,u(J.value||"—"),1)]),i(h,{onClick:Y},{default:B(()=>[i($,{icon:"vuesax-linear:arrow-right",class:"ml-1"}),ne(" بازگشت به پیشرفت کاربران ")]),_:1})]),a("div",Ye,[a("aside",Ze,[(n(),l(y,null,k(ue,t=>a("button",{key:t.key,type:"button",class:Be(["feedback-menu__item",{"feedback-menu__item--active":_.value===t.key}]),onClick:s=>_.value=t.key},[i($,{icon:t.icon,class:"text-lg"},null,8,["icon"]),a("span",null,u(t.label),1)],10,et)),64))]),a("section",tt,[L.value?(n(),l("div",at,[i(d(Ve),{size:"large"})])):(n(),l(y,{key:1},[q.value.length?(n(),l(y,{key:1},[i(d(ie),{activeKey:g.value,"onUpdate:activeKey":o[0]||(o[0]=t=>g.value=t),class:"step-feedback-tabs",onChange:fe},{default:B(()=>[(n(!0),l(y,null,k(q.value,t=>(n(),Te(d(ce),{key:String(t.id),tab:t.label},null,8,["tab"]))),128))]),_:1},8,["activeKey"]),(p=Q.value)!=null&&p.description?(n(),l("div",st,u(Q.value.description),1)):G("",!0),T(a("div",nt,[a("div",lt,[it,i(d(I),{value:P.value,"onUpdate:value":o[1]||(o[1]=t=>P.value=t),placeholder:"جستجو بر اساس نام، موبایل یا متن","allow-clear":"",class:"max-w-sm",onSearch:O,onPressEnter:O},null,8,["value"])]),i(d(M),{columns:_e,"data-source":N.value,loading:r.text,pagination:{pageSize:10,showSizeChanger:!0},"row-key":"id",bordered:"",size:"middle"},null,8,["data-source","loading"])],512),[[U,_.value==="text"]]),T(a("div",ct,[a("div",rt,[dt,i(d(I),{value:R.value,"onUpdate:value":o[2]||(o[2]=t=>R.value=t),placeholder:"جستجو بر اساس نام یا شماره موبایل","allow-clear":"",class:"max-w-sm",onSearch:W,onPressEnter:W},null,8,["value"])]),!E.value.length&&!r.photo?(n(),l("div",ut," عکسی برای این مرحله ثبت نشده است. ")):(n(),l("div",_t,[(n(!0),l(y,null,k(E.value,t=>(n(),l("div",{key:t.id,class:"photo-card"},[i(d(Oe),{src:z(t.photo_url,"image"),preview:{mask:"پیشنمایش"},class:"photo-card__image"},null,8,["src"]),a("div",mt,[a("div",{class:"font-semibold text-xs truncate",title:t.user_name},u(t.user_name),9,pt),a("div",vt,u(t.user_phone||"—"),1),a("button",{type:"button",class:"photo-card__download",title:"دانلود",onClick:s=>Z(t.photo_url,`photo-${t.id}`,"image")},[i($,{icon:"vuesax-linear:document-download"}),ne(" دانلود ")],8,ht)])]))),128))]))],512),[[U,_.value==="photo"]]),T(a("div",ft,[a("div",yt,[bt,i(d(I),{value:j.value,"onUpdate:value":o[3]||(o[3]=t=>j.value=t),placeholder:"جستجو بر اساس نام یا شماره موبایل","allow-clear":"",class:"max-w-sm",onSearch:K,onPressEnter:K},null,8,["value"])]),i(d(M),{columns:me,"data-source":D.value,loading:r.voice,pagination:{pageSize:10,showSizeChanger:!0},"row-key":"id",bordered:"",size:"middle"},{bodyCell:B(({column:t,record:s})=>[t.key==="voice"?(n(),l("div",gt,[a("audio",{src:z(s.voice_url,"audio"),controls:"",preload:"metadata",class:"voice-player"},null,8,xt),a("button",{type:"button",class:"voice-download-btn",title:"دانلود",onClick:ae=>Z(s.voice_url,`voice-${s.id}`,"audio")},[i($,{icon:"vuesax-linear:document-download"})],8,wt)])):G("",!0)]),_:1},8,["data-source","loading"])],512),[[U,_.value==="voice"]]),T(a("div",kt,[a("div",St,[Ct,i(d(I),{value:A.value,"onUpdate:value":o[4]||(o[4]=t=>A.value=t),placeholder:"جستجو بر اساس نام یا شماره موبایل","allow-clear":"",class:"max-w-sm",onSearch:H,onPressEnter:H},null,8,["value"])]),!x.value.length&&!r.mcq?(n(),l("div",It," سوال چندگزینهای برای این مرحله تعریف نشده یا پاسخی ثبت نشده است. ")):G("",!0),(n(!0),l(y,null,k(x.value,t=>(n(),l("div",{key:t.step_id,class:"mcq-block"},[a("div",qt,[a("div",Et,u(t.question),1),a("div",Ft,"تعداد پاسخها: "+u(t.total_answers),1)]),a("div",zt,[a("div",Bt,[i(d(M),{columns:pe,"data-source":t.answers,pagination:{pageSize:8,showSizeChanger:!0},"row-key":"id",bordered:"",size:"small"},null,8,["data-source"])]),a("div",Tt,[a("div",{ref_for:!0,ref:s=>ve(t.step_id,s),class:"mcq-chart"},null,512),a("div",Ut,[(n(!0),l(y,null,k(t.option_stats,s=>(n(),l("div",{key:s.optionIndex,class:"mcq-legend__item"},[a("span",$t,u(s.label||`گزینه ${s.optionIndex+1}`),1),a("span",Mt,u(s.count)+" نفر · "+u(s.percent)+"٪",1)]))),128))])])])]))),128))],512),[[U,_.value==="mcq"]])],64)):(n(),l("div",ot," مرحلهای برای این چالش تعریف نشده است. "))],64))])])])]}),_:1})])}}});const ma=Ke(Lt,[["__scopeId","data-v-f473195d"]]);export{ma as default};
|