1 line
9.2 KiB
JavaScript
1 line
9.2 KiB
JavaScript
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[662],{8356:function(n,e,t){(window.__NEXT_P=window.__NEXT_P||[]).push(["/settings",function(){return t(9301)}])},6248:function(n,e,t){"use strict";t.d(e,{Z:function(){return o}});var s=t(5893),c=t(7294),i=t(1163),a=t(9415);let r=[{href:"/",label:"首页",icon:"home"},{href:"/stats",label:"统计",icon:"chart"},{href:"/recurring",label:"周期",icon:"repeat"},{href:"/categories",label:"分类",icon:"tags"}];function o(n){let{title:e,subtitle:t,actions:o,headerContent:l,children:u,contentClassName:d="",hideNav:h=!1,compactHeader:p=!1}=n,f=(0,i.useRouter)(),m=(0,c.useMemo)(()=>{let n=r.find(n=>n.href===f.pathname);return(null==n?void 0:n.href)||null},[f.pathname]),g=l||(e?(0,s.jsxs)("div",{className:"app-header__text",children:[(0,s.jsx)("h1",{children:e}),t?(0,s.jsx)("p",{children:t}):null]}):null),j=["app-header",p?"app-header--compact":"",g?"app-header--with-content":"app-header--actions-only",o?"app-header--with-actions":""].filter(Boolean).join(" ");return(0,s.jsxs)("div",{className:"app-shell".concat(h?" app-shell--standalone":""),children:[(0,s.jsx)("header",{className:j,children:(0,s.jsxs)("div",{className:"app-shell__container app-header__inner",children:[g?(0,s.jsx)("div",{className:"app-header__main",children:g}):(0,s.jsx)("div",{className:"app-header__spacer","aria-hidden":"true"}),o?(0,s.jsx)("div",{className:"app-header__actions",children:o}):null]})}),(0,s.jsx)("main",{className:"app-content ".concat(d).trim(),children:(0,s.jsx)("div",{className:"app-shell__container app-content__inner",children:u})}),h?null:(0,s.jsx)("nav",{className:"bottom-nav","aria-label":"主导航",children:(0,s.jsx)("div",{className:"app-shell__container bottom-nav__inner",children:r.map(n=>{let e=m===n.href;return(0,s.jsxs)("button",{type:"button",className:"bottom-nav__item".concat(e?" is-active":""),onClick:()=>f.push(n.href),"aria-current":e?"page":void 0,children:[(0,s.jsx)(a.J,{name:n.icon,size:20}),(0,s.jsx)("span",{children:n.label})]},n.href)})})})]})}},610:function(n,e,t){"use strict";async function s(n){let e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},t=await fetch("".concat("").concat(n),{...e,headers:{"Content-Type":"application/json",...function(){let n=localStorage.getItem("token");return n?{Authorization:"Bearer ".concat(n)}:{}}(),...e.headers}}),s=await t.json();if(!t.ok)throw Error(s.error||"请求失败");return s}async function c(n,e){let t=await s("/api/auth/login",{method:"POST",body:JSON.stringify({username:n,password:e})});return localStorage.setItem("token",t.token),t}async function i(n,e){let t=await s("/api/auth/register",{method:"POST",body:JSON.stringify({username:n,password:e})});return localStorage.setItem("token",t.token),t}function a(){localStorage.removeItem("token")}function r(){return!!localStorage.getItem("token")}async function o(n){let e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"all",t="/api/records?month=".concat(n);return"all"!==e&&(t+="&type=".concat(e)),s(t)}async function l(n){return s("/api/stats?month=".concat(n))}async function u(n){return s("/api/records",{method:"POST",body:JSON.stringify(n)})}async function d(n,e){return s("/api/records/".concat(n),{method:"PUT",body:JSON.stringify(e)})}async function h(n){return s("/api/records/".concat(n),{method:"DELETE"})}async function p(n){return s("/api/records/search?q=".concat(encodeURIComponent(n)))}async function f(){let n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"month",e=arguments.length>1?arguments[1]:void 0,t="/api/stats/trend?period=".concat(n);return e&&(t+="&month=".concat(e)),s(t)}async function m(n){let e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"all",t="/api/stats/category?type=".concat(e);return n&&(t+="&month=".concat(n)),s(t)}async function g(){return s("/api/recurring")}async function j(n){return s("/api/recurring",{method:"POST",body:JSON.stringify(n)})}async function y(n,e){return s("/api/recurring/".concat(n),{method:"PUT",body:JSON.stringify(e)})}async function x(n){return s("/api/recurring/".concat(n),{method:
|