Files
machartaa_admin_dist/dist/assets/index-4dcb559f.js
T

11 lines
67 KiB
JavaScript
Raw Normal View History

2026-07-22 17:08:59 +03:30
import{o as A,c as R,L as st,d as Pe,h as te,a as e,F as G,n as le,j as k,i as se,w as X,b as N,t as F,J as We,G as Y,g as $,v as at,O as ie,P as ot,x as ee,y as de,e as He,Q as Ke,_ as ne}from"./index-02897754.js";import{_ as rt}from"./button.vue_vue_type_style_index_0_lang-58c562e7.js";import{_ as it}from"./BasicSelect.vue_vue_type_style_index_0_lang-8ca6bfe9.js";import{_ as nt}from"./_plugin-vue_export-helper-2dea18d7.js";import{S as ce}from"./index-644e91ea.js";import{T as pe}from"./isSymbol-792a2a97.js";import{I as Ne}from"./Icon-2ca0951c.js";import{_ as _e}from"./InputDatePicker.vue_vue_type_script_setup_true_lang-b8bf0540.js";import{m as P,a as ae}from"./useDataTime-a9a38277.js";import{u as lt}from"./usePrice-bc935b83.js";import{i as Ve}from"./index-30e9b5a1.js";import{a as Re}from"./index-9f87c1a7.js";import"./lodash-f280de5a.js";import"./index-1d9cca6c.js";import"./toArray-b84867a5.js";import"./vnode-65917850.js";import"./FormItemContext-0ec501fb.js";import"./pickAttrs-66d27c5c.js";import"./useState-4419625c.js";import"./updateLocale-ed1a4c67.js";import"./useRefs-44db43e1.js";import"./_flatRest-bac800e2.js";const ct={},ut={class:"bg-gradient"};function dt(L,m){return A(),R("div",ut,[st(L.$slots,"default")])}const ge=nt(ct,[["render",dt]]),ze="/assets/users4-80585f51.svg",Be="/assets/users3-3a96ddd8.svg",Ue="/assets/users5-1dc3f500.svg",_t="/assets/users2-8002992a.svg",ft={class:"grid grid-cols-1 md:grid-cols-4 gap-3"},vt={class:"flex"},wt=["src","alt"],ht={class:"flex flex-col justify-between w-full mr-2"},yt={class:"text-base font-bold"},pt={class:"flex items-center justify-end min-h-[24px]"},gt={class:"text-base font-bold"},mt={class:"mr-1"},Dt={class:"grid grid-cols-1 md:grid-cols-4 gap-3 mt-3"},St={class:"flex"},bt=["src","alt"],xt={class:"flex flex-col justify-between w-full mr-2"},kt={class:"text-base font-bold"},It={class:"flex items-center justify-end min-h-[24px]"},Et={class:"text-base font-bold"},Ot={class:"mr-1"},Ct=Pe({__name:"Header",props:{statistics:{},loading:{type:Boolean,default:!1}},setup(L){const m=L,p=te(()=>{var g,b,c,f;return[{title:"تعداد کاربران",alt:"sales-number",image:_t,value:((g=m.statistics.count_sale_order)==null?void 0:g.toLocaleString("fa-IR"))||"0",unit:"نفر"},{title:"کاربران جدید 7 روز گذشته",alt:"new-users-last-7-days",image:Ue,value:((b=m.statistics.new_users_last_7_days)==null?void 0:b.toLocaleString("fa-IR"))||"0",unit:"نفر"},{title:"کاربران فعال این هفته",alt:"active-users-saturday-to-friday",image:Be,value:((c=m.statistics.active_users_saturday_to_friday)==null?void 0:c.toLocaleString("fa-IR"))||"0",unit:"نفر"},{title:"کاربران فعال این ماه",alt:"active-users-jalali-month",image:ze,value:((f=m.statistics.active_users_jalali_month)==null?void 0:f.toLocaleString("fa-IR"))||"0",unit:"نفر"}]}),E=te(()=>{var g,b,c;return[{title:"کاربران جدید امروز",alt:"customers",image:Ue,value:m.statistics.new_customer,unit:"نفر"},{title:"کاربران جدید 30 روز گذشته",alt:"new-users-last-30-days",image:Ue,value:((g=m.statistics.new_users_last_30_days)==null?void 0:g.toLocaleString("fa-IR"))||"0",unit:"نفر"},{title:"کاربران فعال هفته گذشته",alt:"active-users-last-week",image:Be,value:((b=m.statistics.active_users_last_week)==null?void 0:b.toLocaleString("fa-IR"))||"0",unit:"نفر"},{title:"کاربران فعال ماه گذشته",alt:"active-users-last-month",image:ze,value:((c=m.statistics.active_users_last_month)==null?void 0:c.toLocaleString("fa-IR"))||"0",unit:"نفر"}]}),x=g=>({"تعداد کاربران":"این عدد تعداد کل کاربران ثبت‌نام شده در سیستم از اول تا حالا را نشان می‌دهد","کاربران جدید 7 روز گذشته":"این عدد تعداد کاربرانی است که در 7 روز گذشته ثبت‌نام کرده‌اند","کاربران فعال این هفته":"این عدد تعداد کاربرانی است که در این هفته (از شنبه تا جمعه) ح�
2026-07-15 13:20:16 +03:30
<div style="font-weight: bold; margin-bottom: 4px;">${q[0].name}</div>`;return q.forEach(y=>{h+=`<div style="color: ${y.color}; margin-top: 4px;">
${y.seriesName}: <span style="color: #fff; font-weight: bold;">${y.value.toLocaleString("fa-IR")}</span>
</div>`}),h+="</div>",h}},legend:{data:["بازدید کل صوت","بازدید کل تصویر"],top:10,right:10,textStyle:{color:"#6B7280",fontSize:12,fontFamily:"iran-sans"}},grid:{left:"5%",right:"5%",bottom:"10%",top:"15%",containLabel:!0},xAxis:{type:"category",data:d,boundaryGap:!1,axisLine:{lineStyle:{color:"#E5E7EB",width:1}},axisTick:{show:!1},axisLabel:{color:"#6B7280",fontSize:11,fontFamily:"iran-sans",rotate:c.value==="daily"||c.value==="weekly"||c.value==="monthly"?45:0,margin:12},splitLine:{show:!1}},yAxis:{type:"value",axisLine:{show:!1},axisTick:{show:!1},axisLabel:{color:"#6B7280",fontSize:11,fontFamily:"iran-sans",formatter:q=>Math.round(q).toLocaleString("fa-IR")},minInterval:1,scale:!1,splitLine:{lineStyle:{color:"#F3F4F6",type:"dashed",width:1}}},series:[{name:"بازدید کل صوت",type:"line",smooth:!0,symbol:"circle",symbolSize:6,showSymbol:!1,data:_,areaStyle:{color:{type:"linear",x:0,y:0,x2:0,y2:1,colorStops:[{offset:0,color:"rgba(239, 68, 68, 0.4)"},{offset:1,color:"rgba(239, 68, 68, 0.05)"}]}},lineStyle:{width:3,color:"#EF4444"},itemStyle:{color:"#EF4444",borderColor:"#fff",borderWidth:2}},{name:"بازدید کل تصویر",type:"line",smooth:!0,symbol:"circle",symbolSize:6,showSymbol:!1,data:j,areaStyle:{color:{type:"linear",x:0,y:0,x2:0,y2:1,colorStops:[{offset:0,color:"rgba(34, 197, 94, 0.4)"},{offset:1,color:"rgba(34, 197, 94, 0.05)"}]}},lineStyle:{width:3,color:"#22C55E"},itemStyle:{color:"#22C55E",borderColor:"#fff",borderWidth:2}}]};return V.setOption(C,!0),V},Ze=async()=>{x.value=!0;try{const d=await Vt(10);s.value.count_sale_order=d.usersStats.total,s.value.new_customer=d.usersStats.today,s.value.count_order=d.activeUsersSummary.active_users_week,s.value.active_users_week=d.activeUsersSummary.active_users_week,s.value.active_users_last_week=d.activeUsersSummary.active_users_last_week,s.value.active_users_last_month=d.activeUsersSummary.active_users_last_month,s.value.total_sale=String(d.activeUsersSummary.active_users_month),s.value.active_users_saturday_to_friday=d.activeUsersSummary.active_users_week,s.value.active_users_jalali_month=d.activeUsersSummary.active_users_month,Fe.value=d.latestUsers||[],s.value.total_story_views=d.storyViewsSummary.total_story_views,s.value.unique_story_viewers=d.storyViewsSummary.unique_story_viewers,s.value.latest_story_views=d.storyViewsSummary.latest_story_views,we.value=d.storyViewsSummary.story_views_stats||[],s.value.total_audio_views=d.musicMachartaViewsSummary.total_audio_views,s.value.unique_audio_viewers=d.musicMachartaViewsSummary.unique_audio_viewers,s.value.total_video_views=d.musicMachartaViewsSummary.total_video_views,s.value.unique_video_viewers=d.musicMachartaViewsSummary.unique_video_viewers,$e.value=d.musicMachartaViewsSummary.audio_views_stats||[],Le.value=d.musicMachartaViewsSummary.video_views_stats||[],s.value.new_users_last_7_days=d.newUsersLast7Days,s.value.new_users_last_30_days=d.newUsersLast30Days,s.value.today_unique_story_viewers=d.todayUniqueStoryViewers,s.value.this_week_story_views=d.storyViews.story_view_week,s.value.today_total_story_views=d.storyViews.story_view_last_week,s.value.this_month_jalali_story_views=d.storyViews.story_view_month,s.value.total_story_viewers=d.storyViews.uniqAllStoryView}catch{}finally{x.value=!1}if(!E.value)try{const d=await jt();s.value={...s.value,...d}}catch{}},Ie=d=>{const _=f.value.indexOf(d);_>-1?f.value.length>1&&f.value.splice(_,1):f.value.push(d),he()},Ee=d=>{const _=v.value.indexOf(d);_>-1?v.value.length>1&&v.value.splice(_,1):v.value.push(d),ye()},Oe=d=>({"بازدید همه قصه ها":"این عدد آمار بازدیدکنندگان همه قصه‌ها از اول تا حالا را نشان می‌دهد","بازدید کننده امروز قصه ها":"این عدد تعداد کاربران منحصر به فردی است که امروز حداقل یک قصه را دیده‌اند","بازدید فعال این هفته قصه ها":"این عدد بازدید نهایی همه قصه‌ها در هفته گذشته است"," بازدید فعال �
<div style="font-weight: bold; margin-bottom: 4px;">${h[0].name}</div>`;return h.forEach(r=>{y+=`<div style="color: ${r.color}; margin-top: 4px;">
${r.seriesName}: <span style="color: #fff; font-weight: bold;">${r.value.toLocaleString("fa-IR")}</span>
</div>`}),y+="</div>",y}},legend:{data:_.map(h=>h.name),top:10,right:10,textStyle:{color:"#6B7280",fontSize:12,fontFamily:"iran-sans"}},grid:{left:"5%",right:"5%",bottom:"10%",top:"15%",containLabel:!0},xAxis:{type:"category",data:d,boundaryGap:!1,axisLine:{lineStyle:{color:"#E5E7EB",width:1}},axisTick:{show:!1},axisLabel:{color:"#6B7280",fontSize:11,fontFamily:"iran-sans",rotate:b.value==="daily"||b.value==="weekly"||b.value==="monthly"?45:0,margin:12},splitLine:{show:!1}},yAxis:{type:"value",axisLine:{show:!1},axisTick:{show:!1},axisLabel:{color:"#6B7280",fontSize:11,fontFamily:"iran-sans",formatter:h=>Math.round(h).toLocaleString("fa-IR")},minInterval:1,scale:!1,splitLine:{lineStyle:{color:"#F3F4F6",type:"dashed",width:1}}},series:C};return l.setOption(q,!0),l},ye=async()=>{try{const d=new Date().toISOString().split("T")[0],_=v.value.map(async h=>{const y={type:g.value,date:d,statType:h};a.value&&i.value&&(y.startDate=a.value,y.endDate=i.value,delete y.date);const r=await Ut(y);return{statType:h,data:r||[]}}),j=await Promise.all(_);let O=[];const l={};v.value.forEach(h=>{l[h]=[]});const V=new Set;if(j.forEach(({data:h})=>{g.value==="hourly"?h.forEach(y=>{if(y.hour!==void 0)V.add(String(y.hour));else if(y.day){const r=Number(y.hour)||0;V.add(`${y.day}_${r}`)}}):h.forEach(y=>{const r=y.day||"";r&&V.add(r)})}),g.value==="hourly")for(let h=0;h<=24;h++){const y=h===24?"24:00":`${h.toString().padStart(2,"0")}:00`;O.push(y)}else Array.from(V).sort().forEach(y=>{if(g.value==="daily")O.push(ae(y));else if(g.value==="weekly")try{const r=new Date(y+"T00:00:00"),I=new Date(r);I.setDate(r.getDate()+5);const T=ae(y)+" تا "+ae(I.toISOString().split("T")[0]);O.push(T)}catch{O.push(y)}else if(g.value==="monthly"){const[r,I]=y.split("-"),T=`${r}/${I}`;O.push(T)}});j.forEach(({statType:h,data:y})=>{const r={};g.value==="hourly"?h==="total_views"?y.forEach(I=>{const T=Number(I.hour)||0,z=Number((I==null?void 0:I.views)||0),B=String(T);r[B]=(r[B]||0)+z}):y.forEach(I=>{const T=I.day||"",z=Number(I.hour)||0,B=`${T}_${z}`,oe=Number((I==null?void 0:I.views)||0);r[B]=oe}):y.forEach(I=>{const T=I.day||"",z=Number((I==null?void 0:I.views)||0);h==="total_views"?r[T]=(r[T]||0)+z:r[T]=z}),O.forEach(I=>{let T=I;if(g.value==="daily")T=P(I,"jYYYY/jMM/jDD").format("YYYY-MM-DD");else if(g.value==="weekly"){const B=I.split(" تا ");T=P(B[0],"jYYYY/jMM/jDD").format("YYYY-MM-DD")}else if(g.value==="monthly")T=P(I,"jYYYY/jMM").format("YYYY-MM");else if(g.value==="hourly")if(h==="total_views")T=String(parseInt(I.split(":")[0]));else{const B=parseInt(I.split(":")[0]);T=Object.keys(r).find(re=>re.endsWith(`_${B}`))||String(B)}const z=r[T]||0;l[h].push(Math.round(z))})});const C=v.value.map(h=>({name:h==="cumulative_viewers"?"آمار بازدید کننده تجمیعی همه قصه ها":h==="total_views"?"آمار بازدید همه قصه ها":"آمار بازدید کننده همه قصه ها",data:l[h]||[],color:h==="cumulative_viewers"?"#3B82F6":h==="total_views"?"#F97316":"#22C55E"}));if(await ie(),!W.value){setTimeout(()=>{if(W.value){const h=je(O,C,W.value,Q);h&&(Q=h)}},100);return}const q=je(O,C,W.value,Q);q&&(Q=q)}catch{if(await ie(),W.value){const _=je([],[],W.value,Q);_&&(Q=_)}}},je=(d,_,j,O)=>{if(!j)return O;let l=O;l||(l=Ve(j));const V={backgroundColor:"transparent",tooltip:{trigger:"axis",backgroundColor:"rgba(0, 0, 0, 0.8)",borderColor:"#3B82F6",borderWidth:1,textStyle:{color:"#fff",fontSize:12,fontFamily:"iran-sans"},axisPointer:{type:"line",lineStyle:{color:"#3B82F6",width:1,type:"dashed"},shadowStyle:{color:"rgba(59, 130, 246, 0.1)"}},formatter:C=>{let q=`<div style="padding: 8px;">
<div style="font-weight: bold; margin-bottom: 4px;">${C[0].name}</div>`;return C.forEach(h=>{q+=`<div style="color: ${h.color}; margin-top: 4px;">
${h.seriesName}: <span style="color: #fff; font-weight: bold;">${h.value.toLocaleString("fa-IR")}</span>
2026-07-22 17:08:59 +03:30
</div>`}),q+="</div>",q}},legend:{data:_.map(C=>C.name),top:10,right:10,textStyle:{color:"#6B7280",fontSize:12,fontFamily:"iran-sans"}},grid:{left:"5%",right:"5%",bottom:"10%",top:"15%",containLabel:!0},xAxis:{type:"category",data:d,boundaryGap:!1,axisLine:{lineStyle:{color:"#E5E7EB",width:1}},axisTick:{show:!1},axisLabel:{color:"#6B7280",fontSize:11,fontFamily:"iran-sans",rotate:g.value==="daily"||g.value==="weekly"||g.value==="monthly"?45:0,margin:12},splitLine:{show:!1}},yAxis:{type:"value",axisLine:{show:!1},axisTick:{show:!1},axisLabel:{color:"#6B7280",fontSize:11,fontFamily:"iran-sans",formatter:C=>Math.round(C).toLocaleString("fa-IR")},minInterval:1,scale:!1,splitLine:{lineStyle:{color:"#F3F4F6",type:"dashed",width:1}}},series:_.map(C=>({name:C.name,type:"line",smooth:!0,symbol:"circle",symbolSize:6,showSymbol:!1,data:C.data,areaStyle:{color:{type:"linear",x:0,y:0,x2:0,y2:1,colorStops:[{offset:0,color:`${C.color}40`},{offset:1,color:`${C.color}0D`}]}},lineStyle:{width:3,color:C.color,shadowColor:`${C.color}80`,shadowBlur:10,shadowOffsetY:5},itemStyle:{color:C.color,borderColor:"#fff",borderWidth:2,shadowBlur:8,shadowColor:`${C.color}80`},emphasis:{focus:"series",itemStyle:{color:C.color,borderColor:"#fff",borderWidth:3,shadowBlur:12,shadowColor:`${C.color}CC`}},animation:!0,animationDuration:1e3,animationEasing:"cubicOut"}))};return l.setOption(V,!0),l},De=async()=>{var d,_;try{const j=new Date().toISOString().split("T")[0],O={type:c.value,date:j};D.value&&t.value&&(O.startDate=D.value,O.endDate=t.value,delete O.date);const l=await Ht(O);M.value=l||[];let V=[],C=[],q=[];if(c.value==="hourly"){const y={};M.value.forEach(r=>{const I=Number(r.hour)||0;y[I]={audio:Number((r==null?void 0:r.audioViews)||0),video:Number((r==null?void 0:r.videoViews)||0)}});for(let r=0;r<=24;r++){const I=r===24?"24:00":`${r.toString().padStart(2,"0")}:00`;V.push(I),C.push(((d=y[r])==null?void 0:d.audio)||0),q.push(((_=y[r])==null?void 0:_.video)||0)}}else if(c.value==="daily"){const y={};M.value.forEach(r=>{const I=r.day||"";y[I]={audio:Number((r==null?void 0:r.audioViews)||0),video:Number((r==null?void 0:r.videoViews)||0)}}),Object.keys(y).sort().forEach(r=>{V.push(ae(r)),C.push(y[r].audio),q.push(y[r].video)})}else if(c.value==="weekly"){const y={};M.value.forEach(r=>{const I=r.day||"";y[I]={audio:Number((r==null?void 0:r.audioViews)||0),video:Number((r==null?void 0:r.videoViews)||0)}}),Object.keys(y).sort().forEach(r=>{try{const I=new Date(r+"T00:00:00"),T=new Date(I);T.setDate(I.getDate()+5);const z=ae(r)+" تا "+ae(T.toISOString().split("T")[0]);V.push(z),C.push(y[r].audio),q.push(y[r].video)}catch{V.push(r),C.push(y[r].audio),q.push(y[r].video)}})}else if(c.value==="monthly"){const y={};M.value.forEach(r=>{const I=r.day||"";y[I]={audio:Number((r==null?void 0:r.audioViews)||0),video:Number((r==null?void 0:r.videoViews)||0)}}),Object.keys(y).sort().forEach(r=>{const[I,T]=r.split("-");V.push(`${I}/${T}`),C.push(y[r].audio),q.push(y[r].video)})}if(await ie(),!K.value){setTimeout(()=>{if(K.value){const y=ke(V,C,q,K.value,Z);y&&(Z=y)}},100);return}const h=ke(V,C,q,K.value,Z);h&&(Z=h)}catch{if(await ie(),K.value){const O=ke([],[],[],K.value,Z);O&&(Z=O)}}};at(async()=>{await Ze(),await ie(),await he(),await ye(),await ie(),await new Promise(d=>setTimeout(d,100)),await De(),window.addEventListener("resize",()=>{J&&J.resize(),Q&&Q.resize(),Z&&Z.resize()})}),ot(()=>{J&&(J.dispose(),J=null),Q&&(Q.dispose(),Q=null),Z&&(Z.dispose(),Z=null)});async function et(){if(me.value.length===0){const{message:d}=await ne(()=>import("./index-7de8a7a0.js"),["assets/index-7de8a7a0.js","assets/index-f459a9b9.js","assets/index-02897754.js","assets/index-338b63e2.css","assets/vnode-65917850.js","assets/_plugin-vue_export-helper-2dea18d7.js","assets/isSymbol-792a2a97.js","assets/index-1d9cca6c.js","assets/toArray-b84867a5.js","assets/FormItemContext-0ec501fb.js","assets/pickAttrs-66d27c5c.js","assets/useState-4419625c.js","assets/index-4cf251d4.js","assets/styleChecker-ce90d19e.js","assets/index-834ba08a.js","assets/button.vue_vue_type_style_index_0_la