小区(项目)档案
新增小区
{{ row.opening_date || '—' }}
{{ buildings.filter(b=>b.community_id===row.id).length }}
详情
编辑
删除
commPage=p" @size-change="s=>{commSize=s;commPage=1}">
楼栋档案
新增楼栋
{{ commName(row.community_id) }}
{{ rooms.filter(r=>r.building_id===row.id).length }}
详情
编辑
删除
bldPage=p" @size-change="s=>{bldSize=s;bldPage=1}">
房间 / 房产档案(小区-楼栋-单元-房号)
新增房间
{{ commName(row.community_id) }}
{{ row.property_fee>0 ? '¥'+row.property_fee : '默认' }}
{{ row.parking_fee>0 ? '¥'+row.parking_fee : '—' }}
{{ row.owner? row.owner.name : '—' }}
{{ row.status==='occupied'?'已入住':(row.status==='vacant'?'空置(已售)':'未售') }}
详情
编辑
删除
roomPage=p" @size-change="s=>{roomSize=s;roomPage=1}">
业主 / 租户档案
新增档案
{{ row.type==='owner'?'业主':'租户' }}
{{ roomNosOf(row.room_ids || (row.room_id?[row.room_id]:[])) }}
详情
编辑
重置密码
删除
ownerPage=p" @size-change="s=>{ownerSize=s;ownerPage=1}">
车位台账(月租 / 固定 / 临时)
新增车位
{{ {fixed:'固定',monthly:'月租',temp:'临时'}[row.type] }}
{{ row.vehicle_plate||'—' }}
{{ row.vehicle_plate?'已使用':(row.type==='temp'?'临时':'空闲') }}
详情
编辑
删除
spPage=p" @size-change="s=>{spSize=s;spPage=1}">
{{ it.value }}
关闭
早于开盘日期的账期无法生成账单(用于收房后首次计费的起点)
取消保存
取消保存
取消保存
取消保存
取消保存
新增表具
{{ typeName(row.type) }}
{{ row.category==='house'?'户表':'公摊表' }}
{{ row.price_type==='fixed'?('固定 ¥'+row.price):'阶梯' }}
详情
编辑
删除
meterPage=p"
@size-change="s=>{meterSize=s;meterPage=1}">
取消保存
{{ meterDetail.id }}
{{ meterDetail.code }}
{{ typeName(meterDetail.type) }}
{{ meterDetail.category==='house'?'户表':'公摊表' }}
{{ meterDetail.category==='house' ? roomNoOf(meterDetail.room_id) : bldName(meterDetail.building_id) }}
{{ meterDetail.multiplier }}
{{ meterDetail.initial_reading }}
{{ meterDetail.price_type==='fixed' ? ('固定单价 ¥'+meterDetail.price) : '阶梯' }}
{{ meterLastReading(meterDetail.id).period || '—' }}
{{ meterLastReading(meterDetail.id).reading != null ? meterLastReading(meterDetail.id).reading : '—' }}
{{ meterDevice(meterDetail.id) }}
查询
录入读数
{{ row.code||row.meter_id }}({{ row.room_no||'公共' }})
删除
取消保存
生成账单(抄表→算量→计费→出账)
刷新
批量打印单据({{ billSel.length }})
对选中账单收费({{ billSel.length }})
导出账单 CSV
欠费追缴:账期支持填「范围」如 2026-01~2026-06 一次补齐多个月份账单,再在下方勾选同一业主多张未缴账单「对选中账单收费」即可一次收取多月物业费。
{{ billStats.rate||0 }}%
收缴率
¥{{ (billStats.total||0).toFixed(2) }}
应收
¥{{ (billStats.paidAmount||0).toFixed(2) }}
已收
¥{{ (billStats.unpaidAmount||0).toFixed(2) }}
未收({{ billStats.unpaidCount||0 }} 单)
欠费追缴(全部账期未缴)
共 {{ billFiltered.length }} 张
跨账期模式:可勾选同一业主多张未缴账单(不同月份)后点「对选中账单收费」,一次收取多月物业费。
¥{{ row.total.toFixed(2) }}
{{ row.paid?'已缴':'未缴' }}
{{ row.paid?(row.paid_at?fmtTime(row.paid_at):'—'):'—' }}
明细
单据
收费
作废
billPage=p" @size-change="s=>{billSize=s;billPage=1}">
{{ curBill.room_no }}
{{ curBill.owner_name }}
{{ curBill.period }}
¥{{ curBill.total.toFixed(2) }}
{{ curBill.paid?'已缴':'未缴' }}
{{ curBill.paid_at?fmtTime(curBill.paid_at):'—' }}
{{ curBill.pay_method||'—' }}
{{ it.name }}:¥{{ it.amount.toFixed(2) }} (用量 {{ it.usage }})
一、收费明细单
{{ row.usage!=null ? row.usage : '—' }}
¥{{ row.amount.toFixed(2) }}
¥{{ (row.total-(row.paid_amount||0)).toFixed(2) }}
¥{{ (row.paid_amount||0).toFixed(2) }}
¥{{ (row.total-(row.paid_amount||0)).toFixed(2) }}
二、收款信息
按金额
按折扣率
%
应收合计:¥{{ chargeReceivable.toFixed(2) }}
优惠:¥{{ effDiscount.toFixed(2) }}({{ (Number(chargeForm.discount_rate)||0)/10 }} 折)
优惠后净额:¥{{ chargeNet.toFixed(2) }}
找零:¥{{ chargeChange.toFixed(2) }}
欠款:¥{{ chargeArrears.toFixed(2) }}
取消
确认收费并出单
查询
重置
{{ fmtTime(row.created_at) }}
¥{{ row.receivable.toFixed(2) }}
¥{{ row.discount.toFixed(2) }}
¥{{ row.received.toFixed(2) }}
找零¥{{ row.change.toFixed(2) }}欠¥{{ row.arrears.toFixed(2) }}—
{{ row.status==='paid'?'已缴清':'部分缴' }}
详情
收据
重打
共 {{ chargeFiltered.length }} 条记录
chargePage=v" @size-change="v=>{chargePageSize=v;chargePage=1}" background>
{{ curCharge.no }}
{{ curCharge.owner_name }} · {{ curCharge.room_no }}
¥{{ curCharge.receivable.toFixed(2) }}
¥{{ curCharge.discount.toFixed(2) }}
¥{{ curCharge.received.toFixed(2) }}
{{ curCharge.method }}
{{ curCharge.collector }}
{{ curCharge.status==='paid'?'已缴清':'部分缴' }}
¥{{ row.amount.toFixed(2) }}
¥{{ (row.discount||0).toFixed(2) }}
¥{{ row.this_pay.toFixed(2) }}
关闭
打印收据
查询
¥{{ (ledgerSummary.income||0).toFixed(2) }}
收入
¥{{ (ledgerSummary.outcome||0).toFixed(2) }}
支出
¥{{ (ledgerSummary.discount||0).toFixed(2) }}
优惠
¥{{ (ledgerSummary.net||0).toFixed(2) }}
净收支
{{ row.type }}
¥{{ row.amount.toFixed(2) }}
¥{{ (row.discount||0).toFixed(2) }}
日结
{{ row.count }}
¥{{ row.received.toFixed(2) }}
¥{{ row.discount.toFixed(2) }}
¥{{ row.net.toFixed(2) }}
¥{{ row.arrears.toFixed(2) }}
¥{{ row.total.toFixed(2) }}
¥{{ row.paid.toFixed(2) }}
{{ row.rate }}%
¥{{ row.amount.toFixed(2) }}
¥{{ row.amount.toFixed(2) }}
¥{{ row.income.toFixed(2) }}
¥{{ (row.discount||0).toFixed(2) }}
按房间
按业主
~
查询
重置
¥{{ (arrTotalDue||0).toFixed(2) }}
欠款合计
{{ arrTotal }}
欠款主体数
{{ arrBillTotal }}
欠款账单数
{{ row.name }}
{{ row.owner_name }}
¥{{ row.due.toFixed(2) }}
{{ row.bill_count }}
{{ row.earliest }} ~ {{ row.latest }}
明细
{arrPage=p;loadArrears()}" @size-change="s=>{arrSize=s;arrPage=1;loadArrears()}">
录入支出
录入凭证
{{ e.account_code }} {{ e.account_name }} 借{{ e.debit }} / 贷{{ e.credit }}
取消保存
a.code===row.account_code)||{}).name">
删
借贷差额:{{ vouchBal.toFixed(2) }}
+ 增加分录
取消保存凭证
{{ arrDetail.name }}
{{ arrDetail.owner_name }}
{{ arrDetail.owner_phone }}
{{ arrDetail.community_name }}
¥{{ arrDetail.due.toFixed(2) }}
{{ arrDetail.bill_count }}
{{ row.items.map(i=>i.name).join('、')||'—' }}
¥{{ row.total.toFixed(2) }}
¥{{ row.paid_amount.toFixed(2) }}
¥{{ row.due.toFixed(2) }}
{{ statusText(row.status) }}
受理
完成
¥{{ fmtMoney(repSummary.total) }}
应收总额
¥{{ fmtMoney(repSummary.paid) }}
已收总额
¥{{ fmtMoney(repSummary.arrears) }}
欠费总额
{{ repSummary.rate }}%
整体收缴率
¥{{ fmtMoney(repSummary.monthIncome) }}
最近月份收入
¥{{ fmtMoney(repSummary.discount) }}
累计优惠
¥{{ fmtMoney(row.total) }}
¥{{ fmtMoney(row.paid) }}
¥{{ fmtMoney(row.amount) }}
模拟摄像机推送:输入车牌与闸口,系统按黑白名单 / 月租有效期 / 计费规则自动决策。
识别置信度
识别并放行
人工开闸
{{ lprRes.plate }}
{{ lprRes.reason }}
应收停车费 ¥{{ lprRes.fee.toFixed(2) }}
{{ gateStat.total||0 }}
识别总数
{{ gateStat.allowed||0 }}
自动放行
{{ gateStat.denied||0 }}
拦截
{{ gateStat.avgConf||0 }}%
平均置信度
{{ row.gate==='in'?'入口':'出口' }}
{{ (row.confidence*100).toFixed(0) }}%
{{ {allowed:'放行',denied:'拒绝',manual:'人工',need_pay:'待缴费'}[row.decision] }}
{{ fmtTime(row.at) }}
登记车辆
共 {{ vehicles.length }} 辆 ·
即将到期 {{ vehStat.expiring||0 }} ·
已过期 {{ vehStat.expired||0 }} ·
黑名单 {{ vehStat.blacklist||0 }}
{{ {monthly:'月租',fixed:'固定',temp:'临时',blacklist:'黑名单'}[row.type] }}
—
{{ row.valid_until }}({{ row.expired?'已过期':'剩'+row.days_left+'天' }})
续费
取消保存
新增车位
{{ {fixed:'固定',monthly:'月租',temp:'临时'}[row.type] }}
车辆入场
{{ row.exit_at?'已出场':'在场' }}
计费出场
缴费
取消保存
取消入场
{{ {pending:'待处理',processing:'处理中',resolved:'已解决'}[row.status] }}
处理
新增邀约
{{ row.status==='valid'?'有效':'已用' }}
{{ curComplaint.title }}
{{ curComplaint.content }}
{{ curComplaint.owner_name }}({{ curComplaint.room_no }})
取消提交
取消创建
{{ s.value }}
{{ s.label }}
{{ openAlerts }}
{{ offlineDevices }}
{{ patrol.stats?patrol.stats.rate:0 }}%
{{ patrol.stats?patrol.stats.abnormal:0 }}
¥{{ revenue.invoiceAmount||0 }}
{{ revenue.invoiceCount||0 }}
{{ devices.length }}
设备总数
{{ devices.length-offlineDevices }}
在线设备
{{ offlineDevices }}
离线设备
{{ openAlerts }}
未处理告警
设备台账
一键远程采集
注册设备
{{ s.row.protocol }}
{{ s.row.online?'在线':'离线' }}
{{ s.row.battery==null?'—':s.row.battery+'%' }}
{{ s.row.last_report_at?s.row.last_report_at.slice(0,16).replace('T',' '):'—' }}
模拟上报
{{ s.row.online?'置离线':'置在线' }}
{{ s.row.created_at.slice(0,16).replace('T',' ') }}
{{ {offline:'设备离线',rollback:'读数倒退',surge:'用量突增'}[s.row.type]||s.row.type }}
{{ s.row.level==='error'?'严重':'预警' }}
已处理
标记处理
取消保存
{{ patrol.stats?patrol.stats.rate:0 }}%
今日巡检完成率
{{ patrol.stats?patrol.stats.todayDone:0 }}/{{ patrol.stats?patrol.stats.todayTotal:0 }}
今日打卡/应打卡
{{ patrol.stats?patrol.stats.abnormal:0 }}
异常上报
{{ points.length }}
巡检点位
巡检点位(NFC / 二维码)新增点位
{{ s.row.tag_type==='nfc'?'NFC':'二维码' }}
{{ s.row.today_done }}/{{ s.row.today_total }}
巡检打卡记录模拟打卡
{{ s.row.checked_at.slice(0,16).replace('T',' ') }}
{{ s.row.method==='nfc'?'NFC 刷卡':'扫二维码' }}
{{ s.row.status==='normal'?'正常':'异常' }}
异常打卡会自动生成一条报修工单,可在「报修工单」中跟进。
取消保存
正常异常
取消提交打卡
{{ revenue.invoiceCount||0 }}
有效发票
¥{{ revenue.invoiceAmount||0 }}
开票金额
¥{{ revenue.paid||0 }}
已收金额
电子发票 / 收据代客开票
{{ s.row.kind==='receipt'?'收据':'电子发票' }}
{{ s.row.tax_no||'—' }}
¥{{ s.row.amount }}
{{ s.row.status==='issued'?'已开具':'已作废' }}
查看
作废
电子发票收据
个人单位
取消开具
{{ curInv.number }}
{{ curInv.title }}
{{ curInv.tax_no||'—' }}
{{ curInv.room_no }} · {{ curInv.period }}
{{ curInv.created_at.slice(0,19).replace('T',' ') }}
¥{{ s.row.amount }}
价税合计:¥{{ curInv.amount }}
{{ group.summary.projectCount||0 }}
在管项目
{{ group.summary.roomCount||0 }}
在管户数
{{ group.summary.ownerCount||0 }}
业主数
¥{{ fmtMoney(group.summary.paidAmount) }}
已收金额
¥{{ fmtMoney(group.summary.arrears) }}
欠费金额
{{ group.summary.rate||0 }}%
整体收缴率
{{ q.icon }} {{ q.label }}
一键直达常用功能;支持多项目时先在右上角切换项目,再进入对应模块。
¥{{ fmtMoney(row.totalAmount) }}
¥{{ fmtMoney(row.paidAmount) }}
¥{{ fmtMoney(row.arrears) }}
进入
💧 水电费代收(按表读数自动生成账单)
开启后,户表/公摊表抄表读数参与出账;关闭则整模块不出水电费。开启会同步启用下方四类水电收费项目。
toggleWaterElectric(v)">
{{ fiTypeName(row.type) }}
内置
{{ fiCalcLabel(row) }}{{ row.price_type==='ladder' ? ' · 阶梯' : '' }}
{{ row.price_type==='ladder' ? '—' : row.price }}
toggleFiEnabled(row,v)">
详情
编辑
删除
fiPage=p" @size-change="s=>{fiSize=s;fiPage=1}">
{{ it.value }}
关闭
改价后将同步到同类表具默认单价(有自定义阶梯的表具不覆盖)
≤ {{tier.up_to===99999?'∞':tier.up_to}} {{fiForm.type.includes('water')?'吨':'度'}}
元/{{fiForm.type.includes('water')?'吨':'度'}}
删
+ 添加档位
空置(已售未入住)房屋的物业费按比例优惠,0 表示不优惠
取消保存
新增员工
{{ row.enabled?'在职':'已停用' }}
编辑
{{ row.enabled?'停用':'启用' }}
重置密码
删除
取消保存
正在为客户「{{ resetPwdName }}」设置新的登录密码
取消
确认重置
勾选后点击「保存角色」生效。超级管理员为内置角色,不可修改。
全部菜单
{{ menuName(m) }}
全部权限
{{ permName(p) }}
保存角色
刷新
记录所有敏感操作,用于责任追溯
{{ fmtTime(row.at) }}
模版列表
+ 新建模版
{{ t.name }} 默认
{{ PAPER[t.size]?PAPER[t.size].label:t.size }}
编辑
设为默认
删除
{{ tplDraft.id?'编辑模版':'新建模版' }}({{ printType==='receipt'?'收款收据':'缴费通知单' }})
收起
基础
上 / 右 / 下 / 左
抬头信息
单位名称
地址
单据编号
出单日期
业主 / 房间信息字段
{{ f.label }}
费用明细表
表格宽度 %
列(勾选启用并设置列宽,单位为表格宽度的百分比)
{{ c.label }}
合计区
显示大写金额
收款信息
{{ p.label }}
备注
保存模版
保存并设为默认
实时预览{{ PAPER[tplDraft.size]?PAPER[tplDraft.size].label:tplDraft.size }}
导出账单
导出收款流水
导出房产档案
导出抄表数据
房产档案
抄表数据
下载模板
上传文件(.xlsx / .csv)
开始导入
可粘贴 CSV 或上传 .xlsx/.csv 文件;系统会逐行校验:重复房号、表号不存在、读数倒退将被拦截并给出行号
保存设置
单据预览 · 共 {{ printDocs.length }} 张
🖨 打印
关闭
取消
确认修改