本帖最后由 dada02 于 2026-1-27 07:44 编辑
简单个人财务管理系统
【看到网友发布的个人财务管理系统,功能较多,操作稍显复杂,用html写个简单的用一下】
软件截图
功能介绍
日期:区间日期,上月、本月、下月等区间查询
汇总: 实时统计总收入、总支出和当前余额
统计:收入和支出分类饼图展示
新增:模态窗口新增记录
交易:可按交易描述、分类和金额搜索
修改:支持直接分类查询、修改和删除
关键代码
// 更新支出图表
async function updateExpenseChart() {
const container = document.getElementById('expense-chart-container');
// 如果容器是折叠状态,不更新图表
if (container.classList.contains('collapsed')) {
return;
}
try {
// 确保Chart.js已加载
if (typeof Chart === 'undefined') {
console.warn('Chart.js未加载,正在重试...');
await loadChartJS();
}
const transactions = currentDateRange ?
await getTransactionsByDateRange(currentDateRange.startDate, currentDateRange.endDate) :
await getAllTransactions();
// 只统计支出
const expenseTransactions = transactions.filter(t => t.type === 'expense');
// 如果没有支出数据,显示空状态
if (expenseTransactions.length === 0) {
document.getElementById('expenseChart').style.display = 'none';
document.getElementById('expense-chart-placeholder').style.display = 'block';
document.getElementById('expense-chart-legend').innerHTML = '';
return;
}
// 显示图表
document.getElementById('expenseChart').style.display = 'block';
document.getElementById('expense-chart-placeholder').style.display = 'none';
...
// 更新图例
const legendContainer = document.getElementById('expense-chart-legend');
let legendHtml = '';
Object.keys(filteredCategories).forEach((category, index) => {
legendHtml += `
<div class="legend-item">
<div class="legend-color" style="background-color: ${filteredColors[index]}"></div>
<span>${getCategoryText(category)}: ¥${filteredCategories[category].toFixed(2)}</span>
</div>
`;
});
...
附件
个人财务管理系统html.zip,解压到文件夹,双击html浏览器打开使用。
蓝奏云
https://wwavl.lanzouu.com/iE0jD3gtv2qd 密码:52pj 基础管理
https://wwavl.lanzouu.com/i4zGm3h3g2bi 密码:52pj 增加和优化分类管理
欢迎试用
|