核心功能: - 记账CRUD(支出/收入/分类/备注/日期) - 统计分析(概览/分类占比/每日趋势) - 预算管理(按月设置/进度条/超支提醒) - 数据导出CSV 安全与认证: - HMAC-SHA256签名token认证 - 用户数据隔离 - 输入验证与错误处理 - CORS配置 前端优化: - 骨架屏加载 - 账单按日期分组 - 预算页面重构(快捷预设+Numpad) - SvgIcon组件(H5+微信双端适配) - 下拉刷新 后端优化: - 共享日期工具函数 - 数据库连接池优化 - 健康检查端点 - 优雅关闭处理 技术栈: - 前端:Uni-app (Vue 3 + Pinia) - 后端:Node.js + Express + MySQL
18 lines
594 B
TypeScript
18 lines
594 B
TypeScript
const MONTH_REGEX = /^\d{4}-(0[1-9]|1[0-2])$/
|
|
|
|
export function getCurrentMonth(): string {
|
|
const d = new Date()
|
|
const offset = 8 * 60 * 60 * 1000
|
|
const local = new Date(d.getTime() + offset)
|
|
return local.toISOString().slice(0, 7)
|
|
}
|
|
|
|
export function getMonthRange(m: string): { startDate: string; endDate: string } | null {
|
|
if (!MONTH_REGEX.test(m)) return null
|
|
const [year, mon] = m.split('-').map(Number)
|
|
const startDate = `${m}-01`
|
|
const lastDay = new Date(year, mon, 0).getDate()
|
|
const endDate = `${m}-${String(lastDay).padStart(2, '0')}`
|
|
return { startDate, endDate }
|
|
}
|