🛗
电梯维保管理系统
企业微信公众号 · 全流程协同 · 请选择登录身份
{{u.initial}}
{{u.name}}
{{u.roleName}}
进入 →
—— 甲方(客户)端 ——
🏢
XX物业(客户演示)
查看电梯工单/报修/确认验收
进入 →
{{pageTitle}}
{{me.name}} · {{me.roleName}}
甲方端 · {{me.name}}
🔔
{{unread>99?'99+':unread}}
+ 新建工单
{{t.l}}
📭
暂无工单
#{{o.id}} {{o.elevator_code}} · {{o.type==='maintenance'?'保养':'维修'}}
{{statusName(o.status)}}
{{o.customer_name||'—'}}
{{o.address||''}}
🧑{{o.assignee_name}}
⏱ {{fmtTime(o.created_at)}}
⏰{{fmtTime(o.sla_finish_deadline)}}
待甲方确认
上一页
第 {{orderPage}} 页 / 共 {{orderTotal}} 条
下一页
{{t.l}}
✅
暂无待办
{{a.title}}
{{a.statusName}}
{{a.desc}}
申请人:{{a.applicant_name}}
{{fmtTime(a.created_at)}}
+ 新建整改单
{{t.l}}
🛠
暂无整改单
整改#{{r.id}} {{r.elevator_code}}
{{statusName(r.status)}}
{{r.description}}
🧑{{r.assignee_name}}
截止{{r.deadline}}
{{t.l}}
{{inv.summary.totalQty}}
库存总量
{{inv.summary.lowStock}}
低于下限
{{inv.summary.overStock}}
超上限
{{inv.summary.totalKinds}}
配件种类
导入期初库存/阈值
下载模板
阈值按件设置,未设(0/空)不告警
{{m.name}}
[{{m.brand_name||'通用'}}/{{m.model_name||'—'}}]
库存{{m.stock_qty}}{{m.alert==='low'?' · 低库存':(m.alert==='over'?' · 超储':'')}}
规格:{{m.spec||'—'}}
单价 ¥{{m.unit_price}}
下限 {{m.safety_threshold>0?m.safety_threshold:'未设'}}
上限 {{m.max_threshold>0?m.max_threshold:'未设'}}
入库
出库
退库
生成条码
设置上下限
上一页
第 {{invPage}} 页 · 共 {{invTotal}} 条
下一页
配件目录
+ 新增配件
🏷 {{b.name}}({{b.models.length}}型号)
{{b.open?'▼':'▶'}}
📦 {{md.name}}({{md.material_count||md.materials.length}}配件)
{{md.open?'▼':'▶'}}
🔩 {{m.name}}
{{m.spec}}
{{m.stock_qty}}
全部
低库存 {{inv.summary.lowStock}}
超储 {{inv.summary.overStock}}
导入期初库存/阈值
下载模板
阈值按件设置:下限 0/空 与上限 空 都表示不告警;看板与报表按每件自己的阈值判断。
{{m.name}}
[{{m.brand_name||'通用'}}/{{m.model_name||'—'}}]
库存{{m.stock_qty}}
规格:{{m.spec||'—'}}
下限:{{m.safety_threshold>0?m.safety_threshold:'未设(不告警)'}}
上限:{{m.max_threshold>0?m.max_threshold:'未设(不告警)'}}
设置上下限
低库存
超储
正常
上一页
第 {{invPage}} 页 · 共 {{invTotal}} 条
下一页
🧾
暂无流水
{{r.typeName}} {{r.qty}} × {{r.material_name}}
{{r.type==='in'?'入库':r.type==='out'?'出库':'退库'}}
采购#{{r.purchase_id}}
领用#{{r.material_request_id}}
¥{{r.amount}}
{{r.operator_name}}
{{fmtTime(r.created_at)}}
+ 发起盘点
盘点单号
#{{stocktaking.id}}({{stocktaking.statusName}})
{{it.material_name}}
账{{it.book_qty}}
提交盘点(待管理员审批)
盘点#{{s.id}}
{{statusName(s.status)}}
{{s.creator_name}}
{{fmtTime(s.created_at)}}
批准调整
驳回
+ 发起采购(缺料转采购自动生成)
📦
暂无采购单
采购#{{p.id}}
{{p.applicant_name}}
{{statusName(p.status)}}
金额
¥{{p.total_amount}}
供应商:{{p.supplier}}
来源领用#{{p.source_mr_id}}
{{fmtTime(p.created_at)}}
+ 发起报销
💳
暂无报销单
报销#{{r.id}} ¥{{r.amount}}
{{statusName(r.status)}}
{{r.typeName}}
{{r.targetName}}
申请人 {{r.applicant_name}}
驳回:{{r.reject_reason}}
修改重提
{{fmtTime(r.created_at)}}
+ 申请用印
🖊
暂无用印申请
用印#{{s.id}} {{s.seal_type}}
{{statusName(s.status)}}
{{s.purpose}}
{{s.applicant_name}}
{{fmtTime(s.created_at)}}
+ 登记电梯
🏢
暂无电梯
{{e.code}} {{e.building}}
{{e.status==='active'?'在用':e.status==='terminated'?'停用':'待审核'}}
{{e.address}}
{{e.brand_name||e.brand}} {{e.model_name||e.model}}
🛗{{e.capacity||'—'}}kg
{{e.team_name||''}}
周期{{e.actual_period_days||'—'}}天
+ 录入合同
📄
暂无合同
合同#{{c.id}} {{c.customer_name}}
{{c.elevator_code}}
{{statusName(c.status)}}
{{c.contract_no}}
¥{{c.amount}}
到期{{fmtDate(c.dueDate)}}
{{fmtDate(c.start_date)}} ~ {{fmtDate(c.end_date)}}
年检到期清单(60 天内)
年检日期/结论/报告归档与下次到期自动更新;使用标志可一并登记。
✅
60 天内无年检到期电梯
{{e.code}} {{e.address}}
{{e.warn_level==='overdue'?'已过期':'即将到期'}}
下次年检 {{e.next_inspect_date}}
{{e.team_name||''}}
使用标志:{{e.use_flag||'—'}}
登记年检
¥{{billSummary.receivable_open||0}}
未收
¥{{billSummary.receivable_paid||0}}
已收
{{billSummary.overdue_count||0}} 笔
逾期
按合同生成月度账单
🧾
暂无账单
#{{b.id}} {{b.period}} {{b.elevator_code}}
{{statusName(b.status)}}
{{b.customer_name||'—'}}
¥{{b.amount}} / 已收 ¥{{b.paid_amount}}
到期 {{b.due_date||'—'}}
登记收款
发票管理(关联账单 · 抬头税号 · 文件归档)
发起开票申请
🧾
暂无发票记录
发票#{{i.id}} · 账单#{{i.bill_id}} {{i.bill_period||''}}
{{i.status==='issued'?'已开票':(i.status==='void'?'已作废':'待开票')}}
{{i.title}}
税号 {{i.tax_no}}
{{i.customer_name||'—'}}
¥{{i.amount}}
{{i.file_name?('已归档:'+i.file_name):'未归档发票文件'}}
标记开票
归档文件
作废
上一页
第 {{invoicePage}} 页 · 共 {{invoiceTotal}} 条
下一页
工资规则(固定+补贴 / 台量计件含底薪)
{{r.employee_name}}
固定
计件
保存
计件金额 = 当月结算点数 × 单价;社保/医保在规则中扣除。
生成月度工资单
💵
暂无工资单
{{p.employee_name}} · {{p.period}}
{{statusName(p.status)}}
当月点数 {{p.piece_points}},计件 ¥{{p.piece_amount}}
实发 ¥{{p.net}}
底薪 ¥{{p.base_salary}} + 补贴 ¥{{p.allowance}}
应发 ¥{{p.gross}}
进行中:{{fmtTime(tripCurrent.checkin_time)}} 起
签退结束
开始定位打卡(记录行程工时)
签退后自动计算时长与加班(标准工时、加班倍率取系统设置)。
📍
暂无行程记录
{{t.employee_name}} {{t.work_order_id?('工单#'+t.work_order_id):''}}
{{t.checkout_time?'已完成':'进行中'}}
{{fmtTime(t.checkin_time)}} {{t.checkin_address||''}}
时长 {{t.duration_minutes||0}} 分钟
加班 {{t.overtime_minutes||0}} 分钟
操作审计日志(最近 50 条)
按员工/动作/单据过滤可调用 API:/api/audit/logs
🔍
暂无日志
{{l.action}} · {{l.target_type}}#{{l.target_id||'—'}}
{{fmtTime(l.created_at)}}
{{l.operator_name||'—'}}({{l.operator_role||''}})
{{l.detail||''}}
四层组织:省 → 市 → 自定义区域 → 班组
当前共 {{orgTree.managers.length}} 名员工;未归属班组 {{orgTree.unassigned_teams.length}} 个。
省:{{r.name}}
市:{{c.name}}
负责人 {{c.manager_name||'未任命'}}
区:{{a.name}}
负责人 {{a.manager_name||'未任命'}}
班组
{{t.name}}({{t.member_count}} 人)
组长 {{t.leader_name||'—'}}
系统参数(阈值/档位可配置)
{{rule.desc || k}}
保存设置
保养周期 15/17/30、SLA 小时、预警天数、工时与加班倍率、计件单价均可在此调整。
全部标记已读
🔔
暂无消息
📨
{{m.title}}
新
{{m.content}}
{{fmtTime(m.created_at)}}
经营概览
{{stats.totalElevators}}
电梯总数
{{stats.activeContracts}}
有效合同
{{stats.pendingOrders}}
待派工单
{{stats.todayOrders}}
今日工单
{{stats.overdueOrders}}
SLA超时
{{stats.lowStock}}
低库存
保养完成率
{{maintRate.done}}/{{maintRate.total}}
本期保养完成
{{maintRate.rate}}%
完成率
财务汇总
{{finance.reimbPaid}}
已付报销
{{finance.reimbPending}}
待付报销
{{finance.receivable}}
应收未收
{{finance.payable}}
采购应付
班组工作量排行
#{{i+1}}
{{t.name}}({{t.team_name}})
{{t.order_count}}单
¥{{t.total_settlement}}
{{t.l}}
{{custData.elevators.length}}
我的电梯
{{custData.unread}}
未读消息
{{custData.recentOrders.length}}
近期工单
我的电梯
+ 报修
{{e.code}} {{e.building}}
{{e.status==='active'?'在用':(e.status==='terminated'?'停用':'待开通')}}
{{e.address}}
{{e.brand_name}} {{e.model_name}}
📭
暂无工单
#{{o.id}} {{o.elevator_code}} {{o.type==='maintenance'?'保养':'维修'}}
{{statusName(o.status)}}
{{o.remark||o.elevator_code}}
{{fmtTime(o.created_at)}}
已确认
✓ 确认验收
提出异议
{{custElevator.code}} {{custElevator.building}}
地址
{{custElevator.address}}
高德
百度
品牌型号
{{custElevator.brand_name}} {{custElevator.model_name}}
维保班组
{{custElevator.team_name||'—'}}
下次保养
{{custElevator.next_plan_date||'—'}}
工单历史
{{statusName(o.status)}}
{{o.type==='maintenance'?'保养':'维修'}} {{o.assignee_name||''}}
{{fmtTime(o.created_at)}}
📭
暂无记录
🧾
暂无账单
账单#{{b.id}} · {{b.period}}
{{b.status==='paid'?'已收':'待收'}}
{{b.elevator_code}}
¥{{b.amount}}(未收 ¥{{b.unpaid_amount}})
到期 {{b.due_date||'—'}}
逾期请及时支付
{{t.ico}}
{{t.l}}
☰
更多
全部功能
{{t.ico}}
{{t.l}}
{{modalTitle}}
✕
电梯(在用)
请选择电梯
{{e.code}} {{e.brand}} {{e.model}}
类型
保养
维修
优先级
紧急
普通
低
备注
创建工单
编号
{{elevatorDetail.code}}
地址
{{elevatorDetail.address}}
高德
百度
品牌型号
{{elevatorDetail.brand_name||elevatorDetail.brand}} {{elevatorDetail.model_name||elevatorDetail.model}}
载重
{{elevatorDetail.capacity||'—'}}kg
状态
{{elevatorDetail.status==='active'?'在用':(elevatorDetail.status==='terminated'?'停用':'待审核')}}
所属班组
{{elevatorDetail.team_name||'—'}}
周期
{{elevatorDetail.actual_period_days||'—'}}天
甲方
{{elevatorDetail.customer_name||'—'}} {{elevatorDetail.customer_contact||''}}
工单数
{{elevatorDetail.orderCount||0}} 张
当前合同
合同号
{{elevatorDetail.contract.contract_no}}
状态
{{elevatorDetail.contract.status==='active'?'生效中':elevatorDetail.contract.status}}
金额
¥{{elevatorDetail.contract.amount||'—'}}
有效期
{{fmtDate(elevatorDetail.contract.start_date)}} ~ {{fmtDate(elevatorDetail.contract.end_date)}}
审核通过(投入使用)
停用/删除
合同号
{{contractDetail.contract_no}}
客户
{{contractDetail.customer_name||'—'}}
电梯
{{contractDetail.elevator_code}}
金额
¥{{contractDetail.amount||'—'}}
状态
{{statusName(contractDetail.status)}}
有效期
{{fmtDate(contractDetail.start_date)}} ~ {{fmtDate(contractDetail.end_date)}}
周期
{{contractDetail.ref_period_days||'—'}}天
确认生效后自动生成首保工单并通知维保班组
确认生效
标记合同丢失
电梯
请选择电梯
{{e.code}} {{e.brand}} {{e.model}}
整改内容
关联工单(可选)
整改期限
创建整改单
工单号
#{{order.id}}
电梯
{{order.elevator_code}} {{order.address}}
高德
百度
类型
{{order.type==='maintenance'?'保养':'维修'}}
状态
{{statusName(order.status)}}
负责人
{{order.assignee_name||'未派工'}}
创建时间
{{fmtTime(order.created_at)}}
备注
{{order.remark}}
流程进度
{{s.done?'✓':(s.cur?'●':i+1)}}
{{s.label}}
{{s.time}}
派工
认领工单
撤回派工
到场确认
开始作业
挂起
恢复
完工提交
验收通过
验收驳回
领料申请
关联整改
整改#{{r.id}}
{{r.description}}
参与人员
{{p.name}}
{{p.role}}
单据流转时间线
{{n.label}}
· {{n.operator}}
{{n.detail}}
{{fmtTime(n.time)}}
操作日志
{{l.operator_name||'系统'}}
{{l.action_desc}}
{{fmtTime(l.created_at)}}
单号
{{approval.title}}
申请人
{{approval.applicant_name}}
内容
{{approval.desc}}
金额
¥{{approval.amount}}
当前状态
{{approval.statusName}}
审批进度
{{s.done?'✓':(s.cur?'●':i+1)}}
{{s.label}}
处理记录
{{n.label}}
· {{n.operator}}
{{n.detail}}
{{fmtTime(n.time)}}
审批意见(驳回必填)
✓ 通过
✗ 驳回
派工人选(本班组持证员工)
{{w.name}}({{w.roleName}}){{w.cert_expire?'证至'+fmtDate(w.cert_expire):'无证'}}
确认派工
完工说明
保养周期(天)
完工照片(必传,至少 1 张,jpg/png/webp ≤10MB)
已上传:{{finishPhoto}}
提交完工
年检日期
结论
合格
整改后合格
不合格
使用标志/登记编号
年检报告(PDF/图片)
已上传:{{annualForm.report_file}}
保存年检记录
配件(三级目录选择:品牌→型号→配件)
{{b.name}}
{{matBrand&&matBrand.id===b.id?'▼':'▶'}}
{{md.name}}
{{matModel&&matModel.id===md.id?'▼':'▶'}}
{{m.name}} {{m.spec}}
{{m.stock_qty}}
通用:{{m.name}} {{m.spec}}
{{m.stock_qty}}
申请数量(库存{{matMaterial.stock_qty}},超出自动转采购)
提交领料申请
⏳
加载中…
配件
{{matDetail.material.name}}({{matDetail.material.spec||'—'}})
品牌/型号
{{matDetail.material.brand_name||'通用'}} / {{matDetail.material.model_name||'通用'}}
当前库存
{{matDetail.material.stock_qty}} 件
安全线(下限)
{{matDetail.material.safety_threshold>0?matDetail.material.safety_threshold:'不告警'}}
库存上限
{{matDetail.material.max_threshold!=null?matDetail.material.max_threshold:'不告警'}}
参考单价
¥{{matDetail.material.unit_price||0}}
入库
出库
生成条码
设上下限
最近 10 条库存流水
📭
暂无流水
{{r.type==='in'?'入库':r.type==='out'?'出库':r.type==='return'?'退库':'盘点调整'}} {{r.qty>0?'+':''}}{{r.qty}}
{{r.remark||''}}
{{r.operator_name||'系统'}} · {{fmtTime(r.created_at)}}
配件
{{mat.name}} {{mat.spec}}
当前库存
{{mat.stock_qty}}
入库数量
采购单(到货入库时选)
不关联
采购#{{p.id}} ¥{{p.total_amount}}({{p.statusName}})
条码(批次码一码整批,单品码一码一件;可扫码自动填入)
模拟扫码
确认入库
配件
{{mat.name}} {{mat.spec}}
当前库存
{{mat.stock_qty}}
出库数量
用途(关联领用单可选)
直接出库
领用#{{m.id}} {{m.material_name}}
条码
模拟扫码
确认出库
配件
{{mat.name}} {{mat.spec}}
当前库存
{{mat.stock_qty}}
关联原领用单(仅已发料单据可退)
请选择领用单
领用#{{m.id}} {{m.material_name||mat.name}}(已发{{m.qty}})
该配件暂无已发料的领用单,无法退库
退库数量
条码(可空)
确认退库
生成数量
条码类型
批次码(一码整批)
单品码(一码一件)
生成条码
生成条码(可打印粘贴)
{{c}}
配件
{{thMat.name}} {{thMat.spec||''}}
归属
{{thMat.brand_name||'通用'}} / {{thMat.model_name||'—'}}
当前库存
{{thMat.stock_qty}}
库存下限(0 或留空 = 不告警)
库存上限(留空 = 不告警)
规则:下限 0/空 与上限 空 都不告警;上限必须 ≥ 下限,否则后端返回 400。
保存
取消
模板列:品牌 / 型号 / 配件名称 / 规格 / 库存下限 / 库存上限 / 期初库存。按「品牌+型号+名称+规格」匹配,不新建物料;有任一错误行则整批不写。
下载模板
选择 CSV 文件
已选:{{impFileName}}
处理中…
总行数
{{impStat.total}}
可更新
{{impStat.ok}}
错误行
{{impStat.failed}}
库存变动行
{{impStat.stockRows}}
预检
{{impDryRunned?'已预检(未写库)':'—'}}
错误行(前 20 条)
第 {{e.row}} 行:{{e.reason}}
预览(前 20 条)
第 {{p.row}} 行 · {{p.name}} {{p.spec||''}}:下限 {{p.old.safety_threshold}}→{{p.new.safety_threshold}},上限 {{p.old.max_threshold===null?'空':p.old.max_threshold}}→{{p.new.max_threshold===null?'空':p.new.max_threshold}},库存 {{p.old.stock_qty}}→{{p.new.stock_qty}}
确认导入(写库)
取消
关联对象
不关联
关联工单
关联客户
选择工单(本人相关)
#{{o.id}} {{o.elevator_code}} {{o.type==='maintenance'?'保养':'维修'}}
选择客户
{{c.name}}
报销类型
交通费
餐费
配件费
其他
金额(元)
发票照片(base64 可选)
提交报销
印章类型
公章
合同章
财务章
发票章
用途说明
用印次数
附件(可选)
提交申请
关联账单
请选择账单
账单#{{b.id}} {{b.period}} {{b.customer_name||''}} ¥{{b.amount}}
发票抬头
税号
开票金额(元)
发票文件(PDF/图片,可选)
已上传,提交时自动归档
提交开票申请
电梯编号(项目名+编号)
楼栋
地址
品牌
直接填写品牌名
{{b.name}}
型号
直接填写型号
{{m.name}}
载重kg
周期(天)
所属班组
{{t.name}}
保存
客户
{{c.name}}
电梯
{{e.code}} {{e.building}}
合同编号
金额(元)
开始日期
结束日期
合同扫描件(可选)
保存(确认生效后自动生成首保工单)
采购单
#{{purchase.id}} 来源领用#{{purchase.source_mr_id||'—'}}
供应商
{{it.material_name}} × {{it.qty}}
¥
确认并转区域审批
整改单
#{{rect.id}} {{rect.elevator_code}}
内容
{{rect.description}}
状态
{{statusName(rect.status)}}
关联工单
#{{rect.work_order_id}}({{rect.work_order_status}})
派发
提交整改结果
复核通过
复核驳回
{{rect.remark}}
{{toast}}