Files
accounting/client/dist/assets/CalendarView-W0Yungyo.js

2 lines
4.5 KiB
JavaScript
Raw Normal View History

2026-03-26 01:23:19 +08:00
import{i as T}from"./echarts-Bn9PLWWT.js";import{_ as j,r as V,s as E}from"./index-jY687wPe.js";import{j as B,k as N,a3 as P,H as n,L as l,P as e,M as x,O as U,V as I,Z as i,X as b,F as Y,ab as H,I as W,n as X,e as c,ag as _,ah as Z,c as y,R as F}from"./vue-Gs2e-20-.js";import"./element-plus-JbJMPIks.js";const q={class:"calendar-view app-page"},G={class:"calendar-container card"},J={class:"date-text"},K={key:0,class:"date-dots"},Q={class:"day-panel"},ee={class:"section-label"},te={class:"today-summary-grid"},se={class:"today-card income"},ae={class:"today-icon"},oe={class:"today-info"},ne={class:"today-amount mono-number"},ie={class:"today-card expense"},le={class:"today-icon"},de={class:"today-info"},ce={class:"today-amount mono-number"},re={key:0,class:"card chart-card mt-20"},ue={class:"card list-card mt-20"},me={key:0,class:"mobile-record-list"},pe={class:"item-left"},ve={class:"item-category"},_e={class:"item-sub"},ye={class:"item-user"},he={key:0,class:"item-note"},ge={class:"item-right"},fe={__name:"CalendarView",setup(xe){const p=c(new Date),M=c(null),h=c(!1),r=c({income:0,expense:0,userStats:{}}),g=c([]),S=c(new Set),f=c(null);let o=null;const z=y(()=>{const s=p.value;return`${s.getFullYear()}${s.getMonth()+1}${s.getDate()}`}),v=y(()=>{const s=p.value,t=s.getFullYear(),d=String(s.getMonth()+1).padStart(2,"0"),u=String(s.getDate()).padStart(2,"0");return`${t}-${d}-${u}`}),k=y(()=>v.value.substring(0,7)),D=y(()=>r.value.income>0||r.value.expense>0);function C(s){return S.value.has(s)}function $(){if(!f.value)return;o||(o=T(f.value));const s=r.value.userStats||{},t=Object.keys(s);if(t.length===0){o.clear();return}const d=t.map(m=>s[m].income||0),u=t.map(m=>s[m].expense||0);o.setOption({tooltip:{trigger:"axis",confine:!0,axisPointer:{type:"shadow"}},legend:{data:["收入","支出"],bottom:0},grid:{left:12,right:12,bottom:52,top:24,containLabel:!0},xAxis:{type:"category",data:t,axisTick:{alignWithLabel:!0},axisLabel:{interval:0,rotate:0,margin:10,color:"#64748b"}},yAxis:{type:"value",axisLabel:{formatter:"¥{value}",margin:12,color:"#64748b"},splitLine:{lineStyle:{color:"#e2e8f0"}}},series:[{name:"收入",type:"bar",data:d,itemStyle:{color:"#10b981",borderRadius:[4,4,0,0]}},{name:"支出",type:"bar",data:u,itemStyle:{color:"#f43f5e",borderRadius:[4,4,0,0]}}]},{notMerge:!0})}async function R(){h.value=!0;try{const[s,t]=await Promise.all([E.daily(v.value),V.getByDate(v.value)]);r.value=s||{income:0,expense:0,userStats:{}},g.value=t||[],D.value&&(await X(),$())}finally{h.value=!1}}async function w(){try{const t=(await V.getByMonth(k.value)).map(d=>d.date);S.value=new Set(t)}catch{}}B(v,()=>{R()}),B(k,()=>{w()});function L(){o==null||o.resize()}return N(()=>{w(),R(),window.addEventListener("resize",L)}),P(()=>{o==null||o.dispose(),window.removeEventListener("resize",L)}),(s,t)=>{const d=_("el-calendar"),u=_("Top"),m=_("Bottom"),A=_("el-empty"),O=Z("loading");return n(),l("div",q,[t[6]||(t[6]=e("div",{class:"page-header"},[e("h2",{class:"page-title"},"日历查账")],-1)),e("div",G,[x(d,{modelValue:p.value,"onUpdate:modelValue":t[0]||(t[0]=a=>p.value=a),ref_key:"calendarRef",ref:M},{"date-cell":U(({data:a})=>[e("div",{class:F(["date-cell",{"is-selected":a.isSelected}])},[e("span",J,i(a.day.split("-").pop()),1),C(a.day)?(n(),l("div",K,[...t[1]||(t[1]=[e("div",{class:"dot expense"},null,-1)])])):b("",!0)],2)]),_:1},8,["modelValue"])]),I((n(),l("div",Q,[e("div",ee,i(z.value)+" 收支概览",1),e("div",te,[e("div",se,[e("div",ae,[x(u)]),e("div",oe,[t[2]||(t[2]=e("span",{class:"today-label"},"收入",-1)),e("span",ne,"¥"+i(r.value.income.toFixed(2)),1)])]),e("div",ie,[e("div",le,[x(m)]),e("div",de,[t[3]||(t[3]=e("span",{class:"today-label"},"支出",-1)),e("span",ce,"¥"+i(r.value.expense.toFixed(2)),1)])])]),D.value?(n(),l("div",re,[t[4]||(t[4]=e("div",{class:"chart-header"},"各用户收支分布",-1)),e("div",{ref_key:"userChartRef",ref:f,style:{height:"260px"}},null,512)])):b("",!0),e("div",ue,[t[5]||(t[5]=e("div",{class:"list-header"},"当日记录明细",-1)),g.value.length>0?(n(),l("div",me,[(n(!0),l(Y,null,H