Files
nademitex_admin/dist/assets/DashboardView-BUfTfLwy.js
T

1 line
12 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 e,B as t,I as n,N as r,P as i,Q as a,St as o,X as s,Y as c,Z as l,_ as u,bt as d,ct as f,ft as p,i as m,mt as h,n as g,nt as _,o as v,ot as y,q as b,rt as x,tt as S,ut as C,vt as w,xt as T,y as E,yt as D,z as O}from"./index-BHqDDh7X.js";import{t as k}from"./StatusBadge-BMzuiwOg.js";var ee={class:`sales-chart`},te={key:0,class:`sales-chart__header`},A={key:0,class:`sales-chart__title`},j={key:1,class:`sales-chart__subtitle`},M=[`viewBox`,`aria-label`],N=[`x1`,`x2`,`y1`,`y2`],P=[`points`],F=[`points`],I=[`x1`,`x2`,`y1`,`y2`],L=[`cx`,`cy`],R={class:`sales-chart__tooltip-label`},z={key:1,class:`sales-chart__axis`},B=320,V=120,H=t(x({__name:`SalesAreaChart`,props:{data:{},title:{},subtitle:{},height:{default:160},color:{default:`#0a353c`},unit:{default:`میلیارد تومان`},labels:{}},setup(t){let n=t,r=w(null),i={top:12,right:8,bottom:8,left:8},l=c(()=>Math.max(...n.data,.001)),u=c(()=>{let e=B-i.left-i.right,t=V-i.top-i.bottom,r=e/Math.max(n.data.length-1,1);return n.data.map((e,n)=>({x:i.left+n*r,y:i.top+t-e/l.value*t,value:e,index:n}))}),d=c(()=>u.value.map(e=>`${e.x},${e.y}`).join(` `)),p=c(()=>{let e=V-i.bottom,t=u.value[0],n=u.value[u.value.length-1];return!t||!n?``:`${t.x},${e} ${d.value} ${n.x},${e}`}),m=c(()=>{let e=V-i.top-i.bottom;return[0,.5,1].map(t=>i.top+e*t)}),h=c(()=>r.value===null?null:u.value[r.value]??null);function g(e){let t=e.currentTarget.getBoundingClientRect(),n=(e.clientX-t.left)/t.width*B,i=0,a=1/0;u.value.forEach(e=>{let t=Math.abs(e.x-n);t<a&&(a=t,i=e.index)}),r.value=i}function _(){r.value=null}return(n,r)=>(f(),e(`div`,ee,[t.title||t.subtitle?(f(),e(`div`,te,[s(`div`,null,[t.title?(f(),e(`h3`,A,o(t.title),1)):a(``,!0),t.subtitle?(f(),e(`p`,j,o(t.subtitle),1)):a(``,!0)])])):a(``,!0),s(`div`,{class:`sales-chart__body`,style:T({height:`${t.height}px`})},[(f(),e(`svg`,{class:`sales-chart__svg`,viewBox:`0 0 ${B} ${V}`,preserveAspectRatio:`none`,role:`img`,"aria-label":t.title||`نمودار فروش`,onMousemove:g,onMouseleave:_},[(f(!0),e(b,null,C(m.value,(t,n)=>(f(),e(`line`,{key:n,x1:i.left,x2:B-i.right,y1:t,y2:t,class:`sales-chart__grid`},null,8,N))),128)),p.value?(f(),e(`polygon`,{key:0,points:p.value,class:`sales-chart__area`,style:T({fill:`${t.color}22`})},null,12,P)):a(``,!0),s(`polyline`,{points:d.value,class:`sales-chart__line`,style:T({stroke:t.color})},null,12,F),h.value?(f(),e(b,{key:1},[s(`line`,{x1:h.value.x,x2:h.value.x,y1:i.top,y2:V-i.bottom,class:`sales-chart__cursor`},null,8,I),s(`circle`,{cx:h.value.x,cy:h.value.y,r:`4`,class:`sales-chart__dot`,style:T({fill:t.color})},null,12,L)],64)):a(``,!0)],40,M)),h.value?(f(),e(`div`,{key:0,class:`sales-chart__tooltip`,style:T({left:`${h.value.x/B*100}%`})},[s(`span`,R,o(t.labels?.[h.value.index]??`روز ${h.value.index+1}`),1),s(`strong`,null,o(D(v)(h.value.value))+` `+o(t.unit),1)],4)):a(``,!0)],4),t.labels?.length?(f(),e(`div`,z,[(f(!0),e(b,null,C(t.labels,(t,n)=>(f(),e(`span`,{key:n},o(t),1))),128))])):a(``,!0)]))}}),[[`__scopeId`,`data-v-85c70c78`]]),U={info:`var(--color-info-light)`,warning:`var(--color-warning-light)`,purple:`var(--color-purple-light)`,success:`var(--color-success-light)`},W={info:`var(--color-info)`,warning:`var(--color-warning-dark)`,purple:`var(--color-purple)`,success:`var(--color-success)`},G=()=>({newOrders:0,pendingReview:0,pendingCheck:0,finalApproval:0,todaySales:0,todaySalesGrowth:0,monthSales:0});function K(){let e=n(),t=O(),i=w(G()),a=w([]),o=w(Array.from({length:28},()=>0)),s=w([`۱`,`۷`,`۱۴`,`۲۱`,`۲۸`]),l=w([]),d=w(!1),f=c(()=>[{label:`سفارش‌های جدید`,value:i.value.newOrders,icon:`cart`,tone:`info`,link:`/orders`},{label:`در انتظار بررسی`,value:i.value.pendingReview,icon:`file`,tone:`warning`,link:`/orders?tab=pending_review`},{label:`بررسی چک`,value:i.value.pendingCheck,icon:`wallet`,tone:`purple`,link:`/orders?tab=pending_check`},{label:`تأیید نهایی شده`,value:i.value.finalApproval,icon:`check-circle`,tone:`success`,link:`/orders?tab=final_approval`}]),p=c(()=>{let e=o.value;if(!e.length)return``;let t=Math.max(...e,.001),n=e.length>1?280/(e.length-1):280;return e.map((e,r)=>`${r*n},${120-e/t*110-5}`).join(` `)});async function m(){d.value=!0;try{let e=await u.get();i.value=e.stats,a.value=(e.recentOrders??[]).map(e=>E(e)),o.value=e.salesChartData?.length?e.salesChartData:Array.from({length:28},()=>0),s.value=e.chartAxisLabels?.length?e.chartAxisLabels:[`۱`,`۷`,`۱۴`,`۲۱`,`۲۸`],l.value=e.checkDeadlines??[]}catch(e){t.error(e instanceof r?e.message:`بارگذاری داشبورد انجام نشد.`)}finally{d.value=!1}}y(()=>{m()});function h(){e.push(`/orders`)}return{checkDeadlines:l,dashboardStats:i,recentOrders:a,chartPoints:p,salesChartData:o,chartAxisLabels:s,statCards:f,loading:d,goOrders:h,loadDashboard:m}}var q={class:`dashboard`},J={class:`dashboard__toolbar`},Y={type:`button`,class:`admin-btn admin-btn--outline admin-btn--sm`},X={class:`dashboard__stats`},Z={class:`admin-stat-card__label`},Q={class:`admin-stat-card__value`},ne={class:`dashboard__sales-card admin-stat-card`},re={class:`dashboard__sales-header`},ie={class:`admin-stat-card__value dashboard__sales-value`},$={class:`dashboard__sales-growth`},ae={class:`dashboard__grid`},oe={class:`dashboard__chart-card admin-card`},se={class:`dashboard__orders-card admin-card`},ce={class:`admin-table-wrap`},le={class:`admin-table admin-table--compact`},ue={class:`dashboard__card-footer`},de={class:`dashboard__checks-card admin-card`},fe={class:`dashboard__deadline-list`},pe={class:`dashboard__deadline-count`},me={class:`dashboard__deadline-amount`},he={class:`dashboard__card-footer`},ge=t(x({__name:`DesktopDashboard`,setup(t){let{checkDeadlines:n,dashboardStats:r,recentOrders:a,salesChartData:c,chartAxisLabels:l,goOrders:u,statCards:v}=K();return(t,y)=>{let x=p(`RouterLink`);return f(),e(`div`,q,[s(`div`,J,[s(`button`,Y,[_(i,{name:`calendar`,size:16}),y[1]||=S(` امروز `,-1)])]),s(`div`,X,[(f(!0),e(b,null,C(D(v),t=>(f(),e(`div`,{key:t.label,class:`admin-stat-card`},[s(`div`,{class:`admin-stat-card__icon`,style:T({background:D(U)[t.tone],color:D(W)[t.tone]})},[_(i,{name:t.icon,size:20},null,8,[`name`])],4),s(`p`,Z,o(t.label),1),s(`p`,Q,o(t.value),1),_(x,{to:t.link,class:`admin-stat-card__link`},{default:h(()=>[...y[2]||=[S(`مشاهده سفارش‌ها`,-1)]]),_:1},8,[`to`])]))),128)),s(`div`,ne,[s(`div`,re,[s(`div`,null,[y[3]||=s(`p`,{class:`admin-stat-card__label`},`فروش امروز`,-1),s(`p`,ie,o(D(g)(D(r).todaySales)),1),s(`span`,$,` +`+o(D(r).todaySalesGrowth)+`% نسبت به دیروز `,1)]),_(i,{name:`calendar`,size:20,class:`dashboard__sales-icon`})]),y[4]||=s(`svg`,{class:`dashboard__sparkline`,viewBox:`0 0 120 32`,preserveAspectRatio:`none`},[s(`polyline`,{fill:`none`,stroke:`#159660`,"stroke-width":`2`,points:`0,24 20,18 40,22 60,12 80,16 100,8 120,14`})],-1)])]),s(`div`,ae,[s(`div`,oe,[_(H,{title:`فروش ماه جاری`,subtitle:D(g)(D(r).monthSales),data:D(c),labels:D(l),unit:`میلیارد`,height:168},null,8,[`subtitle`,`data`,`labels`])]),s(`div`,se,[y[7]||=s(`div`,{class:`dashboard__card-header`},[s(`h2`,{class:`dashboard__card-title`},`سفارش‌های اخیر`)],-1),s(`div`,ce,[s(`table`,le,[y[5]||=s(`thead`,null,[s(`tr`,null,[s(`th`,null,`شماره سفارش`),s(`th`,null,`مشتری`),s(`th`,null,`شرکت`),s(`th`,null,`وضعیت`),s(`th`,null,`تاریخ ثبت`)])],-1),s(`tbody`,null,[(f(!0),e(b,null,C(D(a),t=>(f(),e(`tr`,{key:t.id},[s(`td`,null,o(t.orderNumber),1),s(`td`,null,o(t.customerName),1),s(`td`,null,o(t.companyName),1),s(`td`,null,[_(k,{status:t.status},null,8,[`status`])]),s(`td`,null,o(D(m)(t.createdAt)),1)]))),128))])])]),s(`div`,ue,[s(`button`,{type:`button`,class:`admin-btn admin-btn--primary admin-btn--sm`,onClick:y[0]||=(...e)=>D(u)&&D(u)(...e)},[y[6]||=S(` مشاهده همه سفارش‌ها `,-1),_(i,{name:`chevron-left`,size:16})])])]),s(`div`,de,[y[9]||=s(`div`,{class:`dashboard__card-header`},[s(`h2`,{class:`dashboard__card-title`},`سررسید چک‌ها`)],-1),s(`ul`,fe,[(f(!0),e(b,null,C(D(n),t=>(f(),e(`li`,{key:t.id,class:`dashboard__deadline-item`},[s(`span`,{class:d([`admin-badge`,{"admin-badge--danger":t.tone===`danger`,"admin-badge--warning":t.tone===`warning`,"admin-badge--neutral":t.tone===`neutral`}])},o(t.label),3),s(`span`,pe,o(t.count)+` فقره`,1),s(`span`,me,o(D(g)(t.amount)),1)]))),128))]),s(`div`,he,[_(x,{to:`/checks`,class:`admin-btn admin-btn--outline admin-btn--sm`},{default:h(()=>[y[8]||=S(` مشاهده همه `,-1),_(i,{name:`chevron-left`,size:16})]),_:1})])])])])}}}),[[`__scopeId`,`data-v-bf2ebdae`]]),_e={class:`compact-dashboard page-shell`},ve={class:`flex justify-end mb-3`},ye={type:`button`,class:`admin-btn admin-btn--outline admin-btn--sm`},be={class:`compact-stats-grid`},xe={class:`admin-stat-card__label`},Se={class:`admin-stat-card__value`},Ce={class:`admin-stat-card col-span-full`},we={class:`admin-stat-card__value`},Te={class:`text-xs font-semibold text-success`},Ee={class:`compact-section-grid`},De={class:`compact-section-card admin-panel`},Oe={class:`compact-section-card admin-panel`},ke={class:`admin-card-list`},Ae={class:`admin-card-item__header`},je={class:`admin-card-item__title`},Me={class:`admin-card-item__meta`},Ne={class:`compact-section-card admin-panel`},Pe={class:`m-0 p-0 list-none flex flex-col gap-2.5`},Fe={class:`mr-auto text-xs`},Ie=x({__name:`CompactDashboard`,setup(t){let{checkDeadlines:n,dashboardStats:r,recentOrders:a,salesChartData:c,chartAxisLabels:u,goOrders:v,statCards:y}=K();return(t,x)=>{let w=p(`RouterLink`);return f(),e(`div`,_e,[s(`div`,ve,[s(`button`,ye,[_(i,{name:`calendar`,size:16}),x[1]||=S(` امروز `,-1)])]),s(`div`,be,[(f(!0),e(b,null,C(D(y),t=>(f(),e(`div`,{key:t.label,class:`admin-stat-card`},[s(`div`,{class:`admin-stat-card__icon`,style:T({background:D(U)[t.tone],color:D(W)[t.tone]})},[_(i,{name:t.icon,size:20},null,8,[`name`])],4),s(`p`,xe,o(t.label),1),s(`p`,Se,o(t.value),1),_(w,{to:t.link,class:`admin-stat-card__link`},{default:h(()=>[...x[2]||=[S(`مشاهده`,-1)]]),_:1},8,[`to`])]))),128)),s(`div`,Ce,[x[3]||=s(`p`,{class:`admin-stat-card__label`},`فروش امروز`,-1),s(`p`,we,o(D(g)(D(r).todaySales)),1),s(`span`,Te,` +`+o(D(r).todaySalesGrowth)+`% نسبت به دیروز `,1)])]),s(`div`,Ee,[s(`section`,De,[_(H,{title:`فروش ماه جاری`,subtitle:D(g)(D(r).monthSales),data:D(c),labels:D(u),unit:`میلیارد`,height:140},null,8,[`subtitle`,`data`,`labels`])]),s(`section`,Oe,[x[5]||=s(`h2`,{class:`compact-section-card__title`},`سفارش‌های اخیر`,-1),s(`div`,ke,[(f(!0),e(b,null,C(D(a),e=>(f(),l(w,{key:e.id,to:`/orders`,class:`admin-card-item block no-underline text-inherit`},{default:h(()=>[s(`div`,Ae,[s(`p`,je,o(e.orderNumber),1),_(k,{status:e.status},null,8,[`status`])]),s(`div`,Me,[s(`span`,null,o(e.customerName),1),s(`span`,null,o(D(m)(e.createdAt)),1)])]),_:2},1024))),128))]),s(`button`,{type:`button`,class:`admin-btn admin-btn--primary admin-btn--sm inline-flex mt-3`,onClick:x[0]||=(...e)=>D(v)&&D(v)(...e)},[x[4]||=S(` مشاهده همه سفارش‌ها `,-1),_(i,{name:`chevron-left`,size:16})])]),s(`section`,Ne,[x[7]||=s(`h2`,{class:`compact-section-card__title`},`سررسید چک‌ها`,-1),s(`ul`,Pe,[(f(!0),e(b,null,C(D(n),t=>(f(),e(`li`,{key:t.id,class:`flex flex-wrap items-center gap-2 text-sm`},[s(`span`,{class:d([`admin-badge`,{"admin-badge--danger":t.tone===`danger`,"admin-badge--warning":t.tone===`warning`,"admin-badge--neutral":t.tone===`neutral`}])},o(t.label),3),s(`span`,null,o(t.count)+` فقره`,1),s(`strong`,Fe,o(D(g)(t.amount)),1)]))),128))]),_(w,{to:`/checks`,class:`admin-btn admin-btn--outline admin-btn--sm inline-flex mt-3 no-underline`},{default:h(()=>[x[6]||=S(` مشاهده همه `,-1),_(i,{name:`chevron-left`,size:16})]),_:1})])])])}}}),Le=x({__name:`DashboardView`,setup(t){return(t,n)=>(f(),e(b,null,[_(ge,{class:`desktop-only`}),_(Ie,{class:`compact-only`})],64))}});export{Le as default};