2 lines
10 KiB
JavaScript
2 lines
10 KiB
JavaScript
|
|
import{H as f,L as g,P as e,M as o,O as d,Y as E,Z as c,F as H,ab as W,X as F,ag as r,e as w,j as K,k as j,a3 as Q,u as h,V as ee,I as P,m as te,c as T,ay as se,ah as ae,R as O}from"./vue-Gs2e-20-.js";import{u as q,S as oe,C as ne}from"./CategoryPieChart-DcwJBwPs.js";import{u as le}from"./records-rp0LN8a-.js";import{_ as G,a as ie}from"./index-jY687wPe.js";import{f as ce,a as re}from"./date-CWsjnySd.js";import{a as Y}from"./element-plus-JbJMPIks.js";import{i as de,L as ue}from"./echarts-Bn9PLWWT.js";const me={class:"balance-card gradient-card breathe-animation"},_e={class:"card-header"},pe={class:"header-info"},fe={class:"balance-amount mono-number"},ve={key:0,class:"user-sections"},ye=["onClick"],he={class:"user-avatar"},ge={class:"user-info"},be={class:"user-name"},xe={class:"user-value mono-number"},Se={class:"dialog-content"},$e={class:"balance-icon-wrapper"},Ce={class:"input-wrapper"},we={class:"dialog-footer"},ke={__name:"BalanceCard",props:{balance:{type:Number,default:0},userBalances:{type:Array,default:()=>[]}},setup(C){const m=q(),i=w(!1),l=w(null),_=w(0),x=w(!1);function v(u){return(u||0).toLocaleString("zh-CN",{minimumFractionDigits:2,maximumFractionDigits:2})}function b(u){l.value=u,_.value=u.initial_balance,i.value=!0}async function y(){x.value=!0;try{await m.updateUserInitialBalance(l.value.user,_.value),Y.success(`${l.value.user} 的初始余额已更新`),i.value=!1}catch(u){Y.error(u.message)}finally{x.value=!1}}return(u,a)=>{var z;const k=r("InfoFilled"),S=r("el-icon"),t=r("el-tooltip"),s=r("Edit"),$=r("Wallet"),B=r("el-input-number"),D=r("el-button"),L=r("el-dialog");return f(),g("div",me,[e("div",_e,[e("div",pe,[a[3]||(a[3]=e("span",{class:"label"},"当前总余额",-1)),o(t,{content:"初始余额 + 收入 - 支出",placement:"top"},{default:d(()=>[o(S,{class:"info-icon"},{default:d(()=>[o(k)]),_:1})]),_:1})]),a[4]||(a[4]=e("div",{class:"currency"},"CNY",-1))]),e("div",fe,[a[5]||(a[5]=e("span",{class:"symbol"},"¥",-1)),E(c(v(C.balance)),1)]),C.userBalances&&C.userBalances.length>0?(f(),g("div",ve,[(f(!0),g(H,null,W(C.userBalances,p=>(f(),g("div",{key:p.user,class:"user-item",onClick:V=>b(p)},[e("div",he,c(p.user.charAt(0).toUpperCase()),1),e("div",ge,[e("div",be,c(p.user),1),e("div",xe,"¥"+c(v(p.balance)),1)]),o(S,{class:"edit-hint"},{default:d(()=>[o(s)]),_:1})],8,ye))),128))])):F("",!0),o(L,{modelValue:i.value,"onUpdate:modelValue":a[2]||(a[2]=p=>i.value=p),title:`调整 ${(z=l.value)==null?void 0:z.user} 的初始余额`,width:"360px",class:"modern-balance-dialog","align-center":"","destroy-on-close":"","append-to-body":""},{footer:d(()=>[e("div",we,[o(D,{round:"",size:"large",onClick:a[1]||(a[1]=p=>i.value=!1),class:"cancel-btn"},{default:d(()=>[...a[7]||(a[7]=[E("暂不修改",-1)])]),_:1}),o(D,{round:"",size:"large",type:"primary",class:"confirm-btn",onClick:y,loading:x.value},{default:d(()=>[...a[8]||(a[8]=[E(" 确认保存 ",-1)])]),_:1},8,["loading"])])]),default:d(()=>[e("div",Se,[e("div",$e,[o(S,null,{default:d(()=>[o($)]),_:1})]),a[6]||(a[6]=e("p",{class:"dialog-tip"},"请设置该用户的初始资金基数,系统将以此为起点,结合后续账单自动为您计算最新余额。",-1)),e("div",Ce,[o(B,{modelValue:_.value,"onUpdate:modelValue":a[0]||(a[0]=p=>_.value=p),precision:2,step:100,"controls-position":"right",size:"large",class:"amount-input"},null,8,["modelValue"])])])]),_:1},8,["modelValue","title"])])}}},De=G(ke,[["__scopeId","data-v-a942667d"]]),Be={__name:"TrendChart",props:{data:{type:Array,default:()=>[]},title:{type:String,default:"支出趋势"},users:{type:Array,default:()=>[]}},setup(C){const m=C,i=w(null);let l=null;const _=["#409eff","#67c23a","#e6a23c","#9b59b6","#1abc9c"];function x(){if(!i.value)return;l||(l=de(i.value));const v=new Set;m.data.forEach(t=>{t.type==="expense"&&v.add(t.date)});const b=[...v].sort(),y={};m.data.forEach(t=>{t.type==="expense"&&(y[t.date]=(y[t.date]||0)+t.total)});const u=m.users.map(t=>t.name),a={};u.forEach(t=>{a[t]={}}),m.data.forEach(t=>{t.type==="expense"&&t.user&&a[t.user]&&(a[t.user][t.date]=(a[t.user][t.date]||0)+t.tota
|