公寓收租管理系统

0
总房源数
0
本月应收租
0
本月实收租
0
待收租金
仪表盘
房屋管理
租户管理
收据打印
单据格式
数据备份

本月租金缴纳情况

地址/房号 租户姓名 本月租金 缴费状态 租金交至 合同到期 操作

合同到期提醒

地址/房号 租户姓名 起租日期 合同结束日期 剩余天数
地址/房号 目前租户 本月是否交租 租金交至 押金 起租日期 合同结束日期 备注 操作
租户姓名 身份证号 籍贯 电话 网络账号 工作单位 已租房号 备注 操作
房号 租户 租金月份 租金金额 水电燃气费 其他费用 总金额 开票人 状态 操作

收据格式设置

数据备份与恢复

提示: 备份文件为JSON格式,包含所有房屋、租户和收据信息。

`); } function closeReceiptModal() { document.getElementById('receiptModal').style.display = 'none'; } // 格式设置 function saveFormatSettings() { formatSettings.header = document.getElementById('receiptHeader').value; formatSettings.waterRate = parseFloat(document.getElementById('waterRate').value) || 3.5; formatSettings.electricityRate = parseFloat(document.getElementById('electricityRate').value) || 0.6; formatSettings.gasRate = parseFloat(document.getElementById('gasRate').value) || 2.8; localStorage.setItem('formatSettings', JSON.stringify(formatSettings)); alert('格式设置保存成功!'); } // 数据备份和恢复 function backupData() { const data = { houses, tenants, receipts, formatSettings, timestamp: new Date().toISOString() }; const dataStr = JSON.stringify(data, null, 2); const dataBlob = new Blob([dataStr], {type: 'application/json'}); const url = URL.createObjectURL(dataBlob); const link = document.createElement('a'); link.href = url; link.download = `apartment_rental_backup_${new Date().toISOString().slice(0, 10)}.json`; link.click(); URL.revokeObjectURL(url); } function restoreData(event) { const file = event.target.files[0]; if (!file) return; const reader = new FileReader(); reader.onload = function(e) { try { const data = JSON.parse(e.target.result); if (confirm('确定要恢复数据吗?这将覆盖当前所有数据!')) { houses = data.houses || []; tenants = data.tenants || []; receipts = data.receipts || []; formatSettings = data.formatSettings || { header: '公寓租金收据', waterRate: 3.5, electricityRate: 0.6, gasRate: 2.8 }; localStorage.setItem('houses', JSON.stringify(houses)); localStorage.setItem('tenants', JSON.stringify(tenants)); localStorage.setItem('receipts', JSON.stringify(receipts)); localStorage.setItem('formatSettings', JSON.stringify(formatSettings)); loadData(); updateStats(); alert('数据恢复成功!'); } } catch (error) { alert('文件格式错误,无法恢复数据!'); } }; reader.readAsText(file); } // 初始化 document.addEventListener('DOMContentLoaded', function() { // 检查是否已登录 if (localStorage.getItem('isLoggedIn') === 'true') { currentUser = 'admin'; document.getElementById('loginContainer').style.display = 'none'; document.getElementById('mainApp').style.display = 'block'; loadData(); updateStats(); } });