Files
app_02_bill/types.ts
karlcarlo c06e74bd01 feat(app): 实现完整的财务管家记账聊天与统计功能
- 新增App主组件,实现聊天、账本、统计三大功能模块切换
- 支持语音及文本输入,自动解析记账信息并生成交易记录
- 交易记录支持编辑、删除、提醒等操作,数据本地持久化
- 管家性格预设和自定义设定,包含头像上传和语气调整
- 会话展示支持关联交易显示,样式区分收入与支出
- 账本页添加日期分组交易列表及饼图统计展示
- 消息列表实现渐变背景和交互动画,提升用户体验
- 支持图片上传并同步发送给AI进行解析记账
- 底部导航实现三标签切换并同步显示对应内容
- 全局事务编辑弹窗支持直接调用和删除操作
- 增加环境变量示例和.gitignore规则,完善工程配置
2026-01-19 20:20:54 +08:00

74 lines
1.5 KiB
TypeScript

export enum TransactionType {
EXPENSE = 'expense',
INCOME = 'income',
}
export enum ExpenseCategory {
FOOD = '餐饮',
SHOPPING = '购物',
TRANSPORT = '交通',
HOUSING = '住房',
ENTERTAINMENT = '娱乐',
MEDICAL = '医疗',
SOCIAL = '人情',
EDUCATION = '学习',
FINANCE = '金融',
CHILD = '孩子',
PET = '宠物',
CAR = '汽车',
BEAUTY = '美容',
BUSINESS = '经营',
MISC = '杂项',
}
export enum IncomeCategory {
SALARY = '工资',
BONUS = '奖金',
INVESTMENT = '理财',
PARTTIME = '兼职',
GIFT = '红包',
OTHER = '其他收入',
}
export interface Transaction {
id: string;
item: string;
amount: number;
type: TransactionType;
category: string; // Takes values from ExpenseCategory or IncomeCategory
date: string; // ISO string YYYY-MM-DD
timestamp: number;
}
export interface Message {
id: string;
role: 'user' | 'assistant';
content: string;
timestamp: number;
relatedTransactionId?: string; // If this message created a transaction
}
export interface BillReminder {
id: string;
title: string;
amount?: number; // Made optional
frequency: 'monthly' | 'once';
targetDate: string; // 'DD' (e.g. "15") for monthly, or 'YYYY-MM-DD' for once
isCompleted: boolean;
}
// Global augmentation for Web Speech API
declare global {
interface Window {
SpeechRecognition: any;
webkitSpeechRecognition: any;
}
}
export interface DailyStat {
date: string;
total: number;
breakdown: { name: string; value: number; fill: string }[];
}