2 lines
6.1 KiB
JavaScript
2 lines
6.1 KiB
JavaScript
import{i as B}from"./index-dfdb843b.js";import{u as T,b as I,a as N,c as F,s as U,e as V,d as q,f as A,n as G,o as O,G as L}from"./story-4-5986412b.js";import{_ as D}from"./InputDatePicker.vue_vue_type_script_setup_true_lang-1bd63f75.js";import{a as k}from"./useDataTime-5a09f654.js";import{S}from"./index-5ade1644.js";import{d as J,g as u,h as C,v as $,L as H,o as a,c as r,a as t,F as m,n as E,b as h,T as K,i as f,w as v,j as _,t as n,k as R}from"./index-d718011e.js";import{T as M}from"./isSymbol-e219d64b.js";import"./_plugin-vue_export-helper-0ed48b96.js";import"./updateLocale-dac04afb.js";import"./index-12b8b726.js";import"./shallowequal-c9e151d3.js";import"./vnode-0b482026.js";import"./useState-d226846a.js";import"./useMemo-9e09b0c8.js";import"./FormItemContext-6bb05345.js";import"./omit-86fc1094.js";const Q={class:"m-2 md:m-5 bg-white p-2 md:p-3 rounded-xl"},W=t("h2",{class:"text-xl font-bold mb-4"},"نمای کلی مشترکین",-1),X={class:"grid grid-cols-1 md:grid-cols-4 gap-3"},Y={class:"flex"},Z=["src","alt"],tt={class:"flex flex-col justify-between w-full mr-2"},et={class:"text-base font-bold"},st={class:"flex items-center justify-end min-h-[24px]"},at={class:"text-base font-bold"},lt={key:0,class:"mr-1"},ot={class:"grid grid-cols-1 md:grid-cols-4 gap-3 mt-3"},it={class:"flex"},rt=["src","alt"],nt={class:"flex flex-col justify-between w-full mr-2"},ut={class:"text-base font-bold"},ct={class:"flex items-center justify-end min-h-[24px]"},dt={class:"text-base font-bold"},pt={key:0,class:"mr-1"},mt={class:"border-solid border-1 border-gray-200 rounded-lg p-6 mt-3"},ht={class:"flex flex-col gap-3 md:flex-row md:justify-between md:items-center mb-2"},ft=t("span",{class:"text-lg font-bold"},"نمودار پایان اشتراک",-1),vt={class:"flex flex-wrap items-center gap-2"},_t={class:"w-32"},yt=t("span",{class:"text-gray-500"},"تا",-1),gt={class:"w-32"},Nt=J({__name:"index",setup(xt){const c=u(!0),d=u(""),p=u(""),y=u(null);let l=null;const o=u({nearestExpiryDate:null,farthestExpiryDate:null,oneMonthPurchasesLast7Days:0,oneMonthPurchasesLast30Days:0,threeMonthPurchasesLast7Days:0,threeMonthPurchasesLast30Days:0,renewalsLast7Days:0,renewalsLast30Days:0});function w(s){if(!s)return"—";try{return k(s.split("T")[0])}catch{return"—"}}const P=C(()=>[{title:"تاریخ اولین انقضا",alt:"nearest-expiry",image:T,value:w(o.value.nearestExpiryDate),unit:"",tooltip:"نزدیکترین تاریخ انقضای پیشروی اشتراکهای فعال"},{title:"خرید پلن یکماهه ۷ روز",alt:"month-7",image:I,value:o.value.oneMonthPurchasesLast7Days.toLocaleString("fa-IR"),unit:"مورد",tooltip:"تعداد خرید پلن یکماهه در ۷ روز گذشته"},{title:"خرید پلن یکماهه ۳۰ روز",alt:"month-30",image:N,value:o.value.oneMonthPurchasesLast30Days.toLocaleString("fa-IR"),unit:"مورد",tooltip:"تعداد خرید پلن یکماهه در ۳۰ روز گذشته"},{title:"تمدید ۷ روز گذشته",alt:"renew-7",image:F,value:o.value.renewalsLast7Days.toLocaleString("fa-IR"),unit:"مورد",tooltip:"تعداد تمدید اشتراک در ۷ روز گذشته"}]),z=C(()=>[{title:"تاریخ آخرین انقضا",alt:"farthest-expiry",image:U,value:w(o.value.farthestExpiryDate),unit:"",tooltip:"دورترین تاریخ انقضای اشتراکهای فعال"},{title:"خرید پلن سهماهه ۷ روز",alt:"quarter-7",image:V,value:o.value.threeMonthPurchasesLast7Days.toLocaleString("fa-IR"),unit:"مورد",tooltip:"تعداد خرید پلن سهماهه در ۷ روز گذشته"},{title:"خرید پلن سهماهه ۳۰ روز",alt:"quarter-30",image:q,value:o.value.threeMonthPurchasesLast30Days.toLocaleString("fa-IR"),unit:"مورد",tooltip:"تعداد خرید پلن سهماهه در ۳۰ روز گذشته"},{title:"تمدید ۳۰ روز گذشته",alt:"renew-30",image:A,value:o.value.renewalsLast30Days.toLocaleString("fa-IR"),unit:"مورد",tooltip:"تعداد تمدید اشتراک در ۳۰ روز گذشته"}]);function j(s,i){y.value&&(l||(l=B(y.value)),l.setOption({tooltip:{trigger:"axis"},grid:{left:40,right:20,top:30,bottom:40},xAxis:{type:"category",data:s,axisLabel:{rotate:30,fontSize:11}},yAxis:{type:"value",minInterval:1},series:[{name:"پایان اشتراک",type:"bar",data:i,itemStyle:{color:"#3B82F6",borderRadius:[4,4,0,0]}}]},!0))}async function g(){try{const s={days:30};d.value&&p.value&&(s.startDate=d.value,s.endDate=p.value,delete s.days);const i=await O(s);await K(),j(i.map(e=>k(e.day)),i.map(e=>e.endingCount))}catch{}}const b=()=>l==null?void 0:l.resize();return $(async()=>{c.value=!0;try{const s=await G();o.value=s,await g()}catch{}finally{c.value=!1}window.addEventListener("resize",b)}),H(()=>{window.removeEventListener("resize",b),l==null||l.dispose(),l=null}),(s,i)=>(a(),r("div",Q,[W,t("div",X,[(a(!0),r(m,null,E(P.value,(e,x)=>(a(),f(L,{class:"h-[120px] p-5",key:"b1-"+x},{default:v(()=>[h(_(M),{title:e.tooltip,placement:"top"},{default:v(()=>[t("div",Y,[t("div",null,[t("img",{class:"w-20 h-20",src:e.image,alt:e.alt},null,8,Z)]),t("div",tt,[t("div",null,[t("span",et,n(e.title),1)]),t("div",st,[c.value?(a(),f(_(S),{key:0,size:"small"})):(a(),r(m,{key:1},[t("span",at,n(e.value),1),e.unit?(a(),r("span",lt,n(e.unit),1)):R("",!0)],64))])])])]),_:2},1032,["title"])]),_:2},1024))),128))]),t("div",ot,[(a(!0),r(m,null,E(z.value,(e,x)=>(a(),f(L,{class:"h-[120px] p-5",key:"b2-"+x},{default:v(()=>[h(_(M),{title:e.tooltip,placement:"top"},{default:v(()=>[t("div",it,[t("div",null,[t("img",{class:"w-20 h-20",src:e.image,alt:e.alt},null,8,rt)]),t("div",nt,[t("div",null,[t("span",ut,n(e.title),1)]),t("div",ct,[c.value?(a(),f(_(S),{key:0,size:"small"})):(a(),r(m,{key:1},[t("span",dt,n(e.value),1),e.unit?(a(),r("span",pt,n(e.unit),1)):R("",!0)],64))])])])]),_:2},1032,["title"])]),_:2},1024))),128))]),t("div",mt,[t("div",ht,[ft,t("div",vt,[t("div",_t,[h(D,{value:d.value,"onUpdate:value":[i[0]||(i[0]=e=>d.value=e),g]},null,8,["value"])]),yt,t("div",gt,[h(D,{value:p.value,"onUpdate:value":[i[1]||(i[1]=e=>p.value=e),g]},null,8,["value"])])])]),t("div",{ref_key:"chartContainer",ref:y,style:{width:"100%",height:"320px"}},null,512)])]))}});export{Nt as default};
|