2 lines
5.7 KiB
JavaScript
2 lines
5.7 KiB
JavaScript
"use strict";const e=require("../../common/vendor.js"),t=require("../../utils/store.js"),a=require("../../utils/date.js"),u=require("../../utils/money.js");Math||(n+o+l)();const n=()=>"../../components/SectionCard.js",o=()=>"../../components/AppTabBar.js",l=()=>"../../components/BillEditorPopup.js",r={__name:"index",setup(n){const o=t.useAppStore(),l=e.ref(!1),r=e.ref(null),i=e.ref(!1),c=e.ref([]),d=e.computed((()=>"dark"===o.state.settings.theme?"theme-dark":"")),m=e.reactive({type:"all",period:"month",month:a.toMonthKey(),keyword:"",categoryId:"",accountId:"",minAmount:"",maxAmount:""}),v=[{label:"全部",value:"all"},{label:"支出",value:"expense"},{label:"收入",value:"income"}],s=[{label:"本月",value:"month"},{label:"近 7 天",value:"7d"},{label:"近 30 天",value:"30d"},{label:"全部",value:"all"}],p=e.computed((()=>[...o.state.bills].sort(((e,t)=>t.createdAt-e.createdAt)))),f=e.computed((()=>[{id:"",name:"全部分类"},..."all"===m.type?[...o.state.categories.expense,...o.state.categories.income]:o.state.categories[m.type]])),y=e.computed((()=>[{id:"",name:"全部账户"},...o.state.accounts])),h=e.computed((()=>f.value.map((e=>e.name)))),b=e.computed((()=>y.value.map((e=>e.name)))),g=e.computed((()=>Math.max(0,f.value.findIndex((e=>e.id===m.categoryId))))),x=e.computed((()=>Math.max(0,y.value.findIndex((e=>e.id===m.accountId))))),I=e.computed((()=>{var e;return(null==(e=f.value[g.value])?void 0:e.name)||"全部分类"})),w=e.computed((()=>{var e;return(null==(e=y.value[x.value])?void 0:e.name)||"全部账户"})),A=e.computed((()=>a.formatMonthLabel(m.month))),k=e.computed((()=>m.month));function M(e){const t=new Date,u=a.parseDate(e);return(t.getTime()-u.getTime())/864e5}const j=e.computed((()=>p.value.filter((e=>{if("all"!==m.type&&e.type!==m.type)return!1;if("month"===m.period&&!a.isSameMonth(e.date,m.month))return!1;if("7d"===m.period&&M(e.date)>7)return!1;if("30d"===m.period&&M(e.date)>30)return!1;if(m.categoryId&&e.categoryId!==m.categoryId)return!1;if(m.accountId&&e.accountId!==m.accountId)return!1;if(m.minAmount&&Number(e.amount)<Number(m.minAmount))return!1;if(m.maxAmount&&Number(e.amount)>Number(m.maxAmount))return!1;if(m.keyword){const t=B(e).name||"",a=D(e).name||"",u=m.keyword.trim().toLowerCase();if(!`${e.note||""} ${t} ${a}`.toLowerCase().includes(u))return!1}return!0})))),N=e.computed((()=>j.value.filter((e=>"expense"===e.type)).reduce(((e,t)=>e+Number(t.amount)),0))),C=e.computed((()=>j.value.filter((e=>"income"===e.type)).reduce(((e,t)=>e+Number(t.amount)),0)));function B(e){return(o.state.categories[e.type]||[]).find((t=>t.id===e.categoryId))||{}}function D(e){return o.state.accounts.find((t=>t.id===e.accountId))||{}}function L(e){var t;m.categoryId=(null==(t=f.value[Number(e.detail.value)])?void 0:t.id)||""}function T(e){var t;m.accountId=(null==(t=y.value[Number(e.detail.value)])?void 0:t.id)||""}function $(e){m.month=String(e.detail.value).slice(0,7),m.period="month"}function _(){m.type="all",m.period="month",m.month=a.toMonthKey(),m.keyword="",m.categoryId="",m.accountId="",m.minAmount="",m.maxAmount=""}function q(e=null){r.value=e?{...e}:null,l.value=!0}function S(){l.value=!1,r.value=null}function P(t){o.saveBill(t),e.index.showToast({title:t.id?"账单已更新":"账单已保存",icon:"none"})}function K(t){e.index.showActionSheet({itemList:["编辑账单","删除账单"],success:({tapIndex:a})=>{0===a&&q(t),1===a&&function(t){e.index.showModal({title:"删除账单",content:`确认删除 ${B(t).name||"该账单"} 吗?`,success:({confirm:e})=>{e&&o.deleteBill(t.id)}})}(t)}})}function E(){i.value=!i.value,c.value=[]}function R(){c.value=j.value.map((e=>e.id))}function z(){c.value.length?e.index.showModal({title:"批量删除",content:`确认删除 ${c.value.length} 笔账单吗?`,success:({confirm:e})=>{e&&(o.deleteBills(c.value),c.value=[],i.value=!1)}}):e.index.showToast({title:"请选择账单",icon:"none"})}return e.onPullDownRefresh((()=>{setTimeout((()=>{e.index.stopPullDownRefresh()}),200)})),(t,n)=>e.e({a:e.f(v,((t,a,u)=>({a:e.t(t.label),b:t.value,c:m.type===t.value?1:"",d:e.o((e=>{m.type=t.value,m.categoryId=""}),t.value)}))),b:e.f(s,((t,a,u)=>({a:e.t(t.label),b:t.value,c:m.period===t.value?1:"",d:e.o((e=>m.period=t.value),t.value)}))),c:e.t(A.value),d:k.value,e:e.o($),f:m.keyword,g:e.o((e=>m.keyword=e.detail.value)),h:m.minAmount,i:e.o((e=>m.minAmount=e.detail.value)),j:m.maxAmount,k:e.o((e=>m.maxAmount=e.detail.value)),l:e.t(I.value),m:h.value,n:g.value,o:e.o(L),p:e.t(w.value),q:b.value,r:x.value,s:e.o(T),t:e.o(_),v:e.o((e=>q())),w:e.p({title:"账单筛选",subtitle:"按月份、分类、账户、金额区间和关键词组合查询"}),x:e.t(i.value?"退出批量":"批量删除"),y:e.o(E),z:e.t(e.unref(u.formatCurrency)(N.value)),A:e.t(e.unref(u.formatCurrency)(C.value)),B:e.t(e.unref(u.formatCurrency)(C.value-N.value)),C:j.value.length},j.value.length?{D:e.f(j.value,((t,n,o)=>e.e(i.value?{a:c.value.includes(t.id)?1:""}:{},{b:B(t).color||"#7b8794",c:e.t(B(t).name||"未分类"),d:e.t(D(t).name||"账户"),e:e.t(e.unref(a.formatDateLabel)(t.date)),f:e.t(t.note||"无备注"),g:e.t("income"===t.type?"+":"-"),h:e.t(e.unref(u.formatCurrency)(t.amount).replace("¥","")),i:e.n("income"===t.type?"positive":"negative"),j:t.id,k:e.o((e=>{return i.value?(a=t.id,void(i.value&&(c.value=c.value.includes(a)?c.value.filter((e=>e!==a)):[...c.value,a]))):q(t);var a}),t.id),l:e.o((e=>K(t)),t.id)}))),E:i.value}:{},{F:e.p({title:"账单概览",subtitle:`共 ${j.value.length} 笔记录,点击编辑,长按可删除`}),G:i.value},i.value?{H:e.t(c.value.length),I:e.o(R),J:e.o(z)}:{},{K:e.p({current:"bills"}),L:e.o(S),M:e.o(P),N:e.p({visible:l.value,entry:r.value,categories:e.unref(o).state.categories,accounts:e.unref(o).state.accounts}),O:e.n(d.value)})}},i=e._export_sfc(r,[["__scopeId","data-v-ff523969"]]);wx.createPage(i);
|