Files
nademitex_admin/dist/assets/DashboardView-BTmX0Wl1.js
T
2026-09-30 09:53:30 +03:30

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