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