Files
huishou/dist/build/h5/assets/pages-admin-statistics.C20lGP2x.js
2026-07-27 14:07:26 +08:00

2 lines
5.6 KiB
JavaScript

import{g as a,x as l,c as s,s as t,i as e,w as c,a as u,K as d,k as r,u as n,f as o,l as f,e as i,d as _,F as m,z as v,p as h,H as b,q as g}from"./index-rFZGwK6S.js";import{u as p}from"./order.C70qTO-4.js";import{_ as y}from"./_plugin-vue_export-helper.BCo6x5W8.js";import"./index.BMqqrwWp.js";const k=y(a({__name:"statistics",setup(a){const y=p(),k=l("today"),x=[{label:"今日",value:"today"},{label:"本周",value:"week"},{label:"本月",value:"month"},{label:"全部",value:"all"}],j=s(()=>{const a=y.orders,l=a.length,s=a.reduce((a,l)=>a+l.amount,0);return{totalOrders:l,totalAmount:s,totalWeight:a.reduce((a,l)=>a+(l.weight||0),0),avgAmount:l>0?s/l:0}}),w=s(()=>{const a={};return y.orders.forEach(l=>{a[l.category]||(a[l.category]={name:l.name,amount:0}),a[l.category].amount+=l.amount}),Object.values(a).sort((a,l)=>l.amount-a.amount).slice(0,5)}),F=s(()=>["周一","周二","周三","周四","周五","周六","周日"].map((a,l)=>({date:`2026-05-${String(l+1).padStart(2,"0")}`,label:a,amount:Math.floor(500*Math.random())+100}))),A=s(()=>{const a={pending:0,completed:0,cancelled:0};return y.orders.forEach(l=>{l.status in a&&a[l.status]++}),a}),M=a=>0===a?"rank-1":1===a?"rank-2":2===a?"rank-3":"";return t(()=>{e("admin_login")?y.loadOrders():c({url:"/pages/admin/login"})}),(a,l)=>{const s=f,t=r;return n(),u(t,{class:"admin-container"},{default:d(()=>[o(t,{class:"admin-header"},{default:d(()=>[o(t,{class:"header-left"},{default:d(()=>[o(s,{class:"header-title"},{default:d(()=>[i("统计报表")]),_:1}),o(s,{class:"header-subtitle"},{default:d(()=>[i("数据统计与分析")]),_:1})]),_:1})]),_:1}),o(t,{class:"time-filter"},{default:d(()=>[(n(),_(m,null,v(x,a=>o(t,{key:a.value,class:h(["filter-item",{active:k.value===a.value}]),onClick:l=>k.value=a.value},{default:d(()=>[i(b(a.label),1)]),_:2},1032,["class","onClick"])),64))]),_:1}),o(t,{class:"summary-cards"},{default:d(()=>[o(t,{class:"summary-card"},{default:d(()=>[o(t,{class:"card-icon"},{default:d(()=>[i("📊")]),_:1}),o(t,{class:"card-content"},{default:d(()=>[o(s,{class:"card-value"},{default:d(()=>[i(b(j.value.totalOrders),1)]),_:1}),o(s,{class:"card-label"},{default:d(()=>[i("总订单数")]),_:1})]),_:1})]),_:1}),o(t,{class:"summary-card"},{default:d(()=>[o(t,{class:"card-icon"},{default:d(()=>[i("💰")]),_:1}),o(t,{class:"card-content"},{default:d(()=>[o(s,{class:"card-value"},{default:d(()=>[i("¥"+b(j.value.totalAmount.toFixed(2)),1)]),_:1}),o(s,{class:"card-label"},{default:d(()=>[i("总金额")]),_:1})]),_:1})]),_:1}),o(t,{class:"summary-card"},{default:d(()=>[o(t,{class:"card-icon"},{default:d(()=>[i("♻️")]),_:1}),o(t,{class:"card-content"},{default:d(()=>[o(s,{class:"card-value"},{default:d(()=>[i(b(j.value.totalWeight.toFixed(2))+"kg",1)]),_:1}),o(s,{class:"card-label"},{default:d(()=>[i("总回收量")]),_:1})]),_:1})]),_:1}),o(t,{class:"summary-card"},{default:d(()=>[o(t,{class:"card-icon"},{default:d(()=>[i("📈")]),_:1}),o(t,{class:"card-content"},{default:d(()=>[o(s,{class:"card-value"},{default:d(()=>[i(b(j.value.avgAmount.toFixed(2)),1)]),_:1}),o(s,{class:"card-label"},{default:d(()=>[i("平均单价")]),_:1})]),_:1})]),_:1})]),_:1}),o(t,{class:"chart-section"},{default:d(()=>[o(t,{class:"section-header"},{default:d(()=>[o(s,{class:"section-title"},{default:d(()=>[i("品类回收排行")]),_:1})]),_:1}),o(t,{class:"chart-list"},{default:d(()=>[(n(!0),_(m,null,v(w.value,(a,l)=>(n(),u(t,{key:a.category,class:"chart-item"},{default:d(()=>[o(t,{class:h(["chart-rank",M(l)])},{default:d(()=>[i(b(l+1),1)]),_:2},1032,["class"]),o(t,{class:"chart-info"},{default:d(()=>[o(t,{class:"chart-name"},{default:d(()=>[i(b(a.name),1)]),_:2},1024),o(t,{class:"chart-bar-wrap"},{default:d(()=>{return[o(t,{class:"chart-bar",style:g({width:(l=a.amount,l/Math.max(...w.value.map(a=>a.amount),1)*100+"%")})},null,8,["style"])];var l}),_:2},1024)]),_:2},1024),o(t,{class:"chart-value"},{default:d(()=>[i("¥"+b(a.amount.toFixed(2)),1)]),_:2},1024)]),_:2},1024))),128))]),_:1})]),_:1}),o(t,{class:"chart-section"},{default:d(()=>[o(t,{class:"section-header"},{default:d(()=>[o(s,{class:"section-title"},{default:d(()=>[i("每日趋势")]),_:1})]),_:1}),o(t,{class:"line-chart"},{default:d(()=>[o(t,{class:"chart-grid"},{default:d(()=>[(n(),_(m,null,v(5,a=>o(t,{class:"grid-line",key:a})),64))]),_:1}),o(t,{class:"chart-bars"},{default:d(()=>[(n(!0),_(m,null,v(F.value,a=>(n(),u(t,{key:a.date,class:"bar-item"},{default:d(()=>{return[o(t,{class:"bar",style:g({height:(l=a.amount,l/Math.max(...F.value.map(a=>a.amount),1)*100+"%")})},null,8,["style"]),o(s,{class:"bar-label"},{default:d(()=>[i(b(a.label),1)]),_:2},1024)];var l}),_:2},1024))),128))]),_:1})]),_:1})]),_:1}),o(t,{class:"detail-section"},{default:d(()=>[o(t,{class:"section-header"},{default:d(()=>[o(s,{class:"section-title"},{default:d(()=>[i("订单状态分布")]),_:1})]),_:1}),o(t,{class:"status-stats"},{default:d(()=>[o(t,{class:"status-item"},{default:d(()=>[o(t,{class:"status-circle pending"},{default:d(()=>[o(s,{class:"status-value"},{default:d(()=>[i(b(A.value.pending),1)]),_:1})]),_:1}),o(s,{class:"status-label"},{default:d(()=>[i("待处理")]),_:1})]),_:1}),o(t,{class:"status-item"},{default:d(()=>[o(t,{class:"status-circle completed"},{default:d(()=>[o(s,{class:"status-value"},{default:d(()=>[i(b(A.value.completed),1)]),_:1})]),_:1}),o(s,{class:"status-label"},{default:d(()=>[i("已完成")]),_:1})]),_:1}),o(t,{class:"status-item"},{default:d(()=>[o(t,{class:"status-circle cancelled"},{default:d(()=>[o(s,{class:"status-value"},{default:d(()=>[i(b(A.value.cancelled),1)]),_:1})]),_:1}),o(s,{class:"status-label"},{default:d(()=>[i("已取消")]),_:1})]),_:1})]),_:1})]),_:1})]),_:1})}}}),[["__scopeId","data-v-858c90b0"]]);export{k as default};