经营驾驶舱 数据时间 {{ cockpit.fetched_at }}
{{ fmtMoney(cockpit.cards.income_contracts_total) }}
收入合同总额
{{ fmtMoney(cockpit.cards.expense_contracts_total) }}
支出合同总额
{{ fmtMoney(cockpit.cards.pending_receivable) }}
合同待收款
{{ fmtMoney(cockpit.aging.overdue_total) }}
逾期应收款
{{ fmtMoney(cockpit.region_total.profit_book) }}
账面利润(已归集区域)
{{ fmtMoney(cockpit.region_total.profit_cash) }}
现金利润(已归集区域)
{{ cockpit.pending.total || 0 }}
我的待办
{{ cockpit.reminders.length || 0 }}
回款到期提醒
区域盈亏(账面/现金双口径,点「项目下钻」看单项目)
各区域账面利润排行
| 区域 | 项目数 | 收入(账面) | 成本(账面) | 账面利润 | 现金利润 | 操作 |
|---|---|---|---|---|---|---|
| {{ r.region }} | {{ r.project_count }} | {{ fmtMoney(r.income_book) }} | {{ fmtMoney(r.expense_book_contract) }} | {{ fmtMoney(r.profit_book) }} | {{ fmtMoney(r.profit_cash) }} | |
| 暂无区域盈亏数据(尚未按区域归集) | ||||||
回款到期提醒(30天内到期 + 已逾期未收)
| 合同/项目 | 节点 | 计划日期 | 未回金额 | 状态 |
|---|---|---|---|---|
| {{ p.project_name || p.contract_no }} | {{ p.plan_name }} | {{ p.plan_date }} | {{ fmtMoney(p.unpaid) }} | {{ p.status }} |
| 暂无到期提醒 | ||||
我的待办速览
| 类型 | 数量 | 前往处理 |
|---|---|---|
| 计划外采购待审批 | {{ (cockpit.pending.purchase_items||0) }} | |
| 合同待审核 | {{ (cockpit.pending.contract_reviews||0) }} | |
| 暂无待办 | ||
项目总览看板
今天要处理
{{ abTodo().length }} 条
{{ a.label }}{{ a.sub }}
{{ a.val }}
没有逾期待办
项目健康度
红 {{ abRiskCount('danger') }} · 橙 {{ abRiskCount('warn') }}
{{ r.label }}{{ r.sub }}
暂无风险项目
近期资金节点
{{ abNodes().length }} 条
{{ n.label }}{{ n.sub }}
{{ n.val }}
近 30 天无到期回款节点
{{ dash.total_projects || 0 }}
项目总数
{{ trendLabel('projects') }}
{{ dash.active_projects || 0 }}
进行中
{{ dash.done_projects || 0 }}
已完工
{{ fmtMoney(dash.income_contracts_total) }}
收入合同总额
{{ trendLabel('income_contracts') }}
{{ fmtMoney(dash.expense_contracts_total) }}
支出合同总额
{{ fmtMoney(dash.total_income) }}
总收入
{{ trendLabel('income') }}
{{ fmtMoney(dash.total_expense) }}
总支出
{{ trendLabel('expense') }}
{{ fmtMoney(dash.pending_receivable) }}
合同待收款
逾期回款 {{ dashAlerts.overdue_receipts.count }} 笔
一、项目类别分布
总看板:各类别项目数量
分看板:子类型分布
{{ grp }}
暂无数据
二、项目阶段分布
总看板:各阶段项目数量
分看板:子类型分布
{{ grp }}
暂无数据
三、项目级别分布
总看板:各级别项目数量
分看板:子类型分布
{{ grp }}
暂无数据
四、资金看板
资金汇总(万元)
延误预警 (TOP20)
| 项目 | 阶段 | 办理人 | 计划日期 | 延误天数 | 重要值 |
|---|---|---|---|---|---|
| {{ w.project_name }} | {{ w.stage_name }} | {{ w.handler }} | {{ w.planned_date }} | {{ w.delay_days }}天 | {{ w.importance }} |
质保金到期预警
| 合同号 | 项目 | 未收质保金 | 到期日 | 剩余天数 |
|---|---|---|---|---|
| {{ w.contract_no }} | {{ w.project_name }} | {{ fmtMoney(w.warranty_pending) }} | {{ w.warranty_expire_date }} | — 已过期{{ Math.abs(w.days_remaining) }}天 {{ w.days_remaining }}天 {{ w.days_remaining }}天 |
回款计划提醒 30 天内到期 + 已逾期未收 · 到「财务分析 → 回款计划」维护节点
| 合同号 | 项目 | 节点 | 计划日期 | 计划金额 | 未回款 | 状态 |
|---|---|---|---|---|---|---|
| {{ w.contract_no }} | {{ w.project_name || '-' }} | [{{ w.node_type }}]{{ w.plan_name }} | {{ w.plan_date || '-' }} | {{ fmtMoney(w.plan_amount) }} | {{ fmtMoney(w.unpaid) }} | 已逾期 {{ Math.abs(w.days_left) }} 天 {{ w.days_left }} 天内到期 |
| 暂无 30 天内到期的回款节点 | ||||||
| 序号 |
所处阶段
|
{{ col.col_label }}
|
{{ ef.field_label }} | |
|---|---|---|---|---|
| {{ i+1 + (pageMap.projects-1)*perPageMap.projects }} | {{ p.current_stage_name }} — | {{ p.name }} {{ p.category }} {{ p.status }} {{ fmtCell(p[col.col_name], col) }} {{ fmtCell(p[col.col_name], col) }} | {{ stageFieldValue(p.id, ef.field_name) }} | |
| {{ projectsLoading ? '加载中…' : '暂无项目数据' }} |
{{ p.name }}
已完成阶段
{{ projectCardProgress(p).done }} / {{ projectCardProgress(p).total }}({{ projectCardProgress(p).pct }}%)
{{ projectsLoading ? '加载中…' : '暂无项目数据' }}
{{ currentProject ? currentProject.name : '' }} 项目全流程管理
{{ seg.code }}
成本利润核算 决算口径 · 计入日常支出(税金/管理费等)
收入(决算)
{{ fmtMoney(projectFinance.income_book) }}
{{ projectFinance.income_contract_count }}份合同 · 已开 {{ fmtMoney(projectFinance.income_invoiced) }}({{ projectFinance.invoice_rate }}%)
已回款(现金)
{{ fmtMoney(projectFinance.income_cash) }}
回款率 {{ projectFinance.payment_rate }}%
质保金
{{ fmtMoney(projectFinance.warranty_total) }}
未收 {{ fmtMoney(projectFinance.warranty_pending) }}({{ projectFinance.warranty_rate }}%)
支出合同(决算)
{{ fmtMoney(projectFinance.expense_book_contract) }}
{{ projectFinance.expense_contract_count }}份合同 · 已付 {{ fmtMoney(projectFinance.expense_cash_contract) }}
日常支出(计入项目)
{{ fmtMoney(projectFinance.daily_cost_total) }}
{{ projectFinance.daily_cost_count }}笔(按科目归类配置判定)
成本合计
{{ fmtMoney(projectFinance.cost_book) }}
支出合同 + 日常支出
账面利润
{{ fmtMoney(projectFinance.profit_book) }}
收入决算 − 成本合计
现金利润
{{ fmtMoney(projectFinance.profit_cash) }}
实际回款 − 实际付款 − 日常支出
日常支出按科目分解
{{ subj }}
{{ fmtMoney(amt) }}
走账合同 {{ projectFinance.through_contract_count }}份,
金额 {{ fmtMoney(projectFinance.through_total) }}(内部过账,未计入利润)
{{ w.contract_no }}:{{ fmtMoney(w.warranty_amount - w.warranty_received) }}未收
({{ w.days_remaining < 0 ? '已过期' + Math.abs(w.days_remaining) + '天' : '剩' + w.days_remaining + '天' }})
项目进度
{{ projectProgress.progress_pct }}%
完成
已完成阶段
{{ projectProgress.completed }} / {{ projectProgress.total }}
最大延误
{{ projectProgress.max_delay_days }}天
延误阶段
{{ ds.stage_name }}({{ ds.delay_days }}天)
暂无延误
项目基本信息
项目名称{{ currentProject.name }}
项目类型{{ currentProject.project_type || '-' }}
项目类别{{ currentProject.category || '-' }}
保护级别{{ currentProject.heritage_level || '-' }}
负责人{{ currentProject.responsible_person || '-' }}
项目状态{{ currentProject.status || '-' }}
项目地域{{ currentProject.province }}{{ currentProject.city ? ' / ' + currentProject.city : '' }}{{ currentProject.county ? ' / ' + currentProject.county : '' }}
建设单位{{ currentProject.construction_unit || '-' }}
立项金额{{ fmtMoney(currentProject.allocation_approval_amount) }}
设计方案金额{{ fmtMoney(currentProject.design_amount) }}
财评金额{{ fmtMoney(currentProject.financial_review_amount) }}
回款金额{{ fmtMoney(currentProject.collection_amount) }}
备注{{ currentProject.remark }}
建设单位信息
单位名称{{ projectUnitInfo.name }}
单位类型{{ projectUnitInfo.unit_type || '-' }}
联系人{{ projectUnitInfo.contact_person || '-' }}
联系电话{{ projectUnitInfo.phone || '-' }}
法定代表人{{ projectUnitInfo.legal_rep || '-' }}
开户银行{{ projectUnitInfo.bank_name || '-' }}
银行账号{{ projectUnitInfo.bank_account || '-' }}
税号{{ projectUnitInfo.tax_no || '-' }}
合作情况{{ projectUnitInfo.cooperation || '-' }}
地址{{ projectUnitInfo.address }}
备注{{ projectUnitInfo.remark }}
暂无建设单位信息
请在项目管理中设置"建设单位"字段
保护对象构成
对象名称{{ currentProject.name }}
保护级别{{ currentProject.heritage_level || '-' }}
对象类别{{ currentProject.category || '-' }}
项目类型{{ currentProject.project_type || '-' }}
所在地域{{ currentProject.province }}{{ currentProject.city ? ' / ' + currentProject.city : '' }}{{ currentProject.county ? ' / ' + currentProject.county : '' }}
建设单位{{ currentProject.construction_unit || '-' }}
负责人{{ currentProject.responsible_person || '-' }}
重要值{{ currentProject.importance || '-' }}
对象描述{{ currentProject.remark }}
建筑单体构成 ({{ buildingObjects.length }}栋)
| 单体名称 | 类型 | 年代 | 结构 | 面积 | 保护措施 | 备注 | 操作 |
|---|---|---|---|---|---|---|---|
| {{ b.obj_name }} | {{ b.obj_type || '-' }} | {{ b.built_year || '-' }} | {{ b.structure || '-' }} | {{ b.area || '-' }} | {{ b.protect_measures || '-' }} | {{ b.remark || '-' }} |
暂无建筑单体记录,点击"新增单体"录入(名称/年代/结构/面积/保护措施等)
项目日志 / 大事记 ({{ projectLogs.length }}条)
{{ l.log_date || l.created_at }}
{{ l.log_type }}
{{ l.title }}
{{ l.operator }}
{{ l.content }}
暂无项目日志,点击"新增日志"记录项目大事记
项目阶段时间轴
{{ s.stage_name }}
{{ stageStatusText(s.status) }}
进度{{ s.progress || '-' }}
待办{{ s.todo || '-' }}
办理人{{ s.handler || '-' }}
重要值{{ s.importance || '-' }}
金额{{ s.amount ? fmtMoney(s.amount) : '-' }}
计划日期{{ s.planned_date || '-' }}
实际日期{{ s.actual_date || '-' }}
延误{{ s.delay_days }}天
设计/施工单位{{ s.design_unit || '-' }}
{{ s.process_log }}
资料管理
{{ dtype }} ({{ docs.length }})
{{ d.title || d.file_name }}
{{ d.created_at }}
{{ r.reminder_text }}
{{ r.handler }}
{{ r.remind_date }}
每{{ r.interval_days }}天
质量安全检查 ({{ qualitySafety.length }}条)
| 类型 | 日期 | 检查内容 | 结果 | 问题描述 | 整改状态 | 责任人 | 操作 |
|---|---|---|---|---|---|---|---|
| {{ q.check_type }} | {{ q.check_date }} | {{ q.check_content }} | {{ q.result }} | {{ q.problem_desc || '-' }} | {{ q.rectify_status }} | {{ q.responsible_person || '-' }} |
暂无检查记录,点击"新增检查"登记
项目档案 ({{ projectFiles.length }}份)
{{ dtype }} ({{ group.length }}份)
未分类 ({{ archiveUnsorted.length }}份)
{{ f.title || f.file_name || '未命名' }}
暂无项目档案
请在"项目时间轴"中上传各阶段资料
关联合同 ({{ projectContracts.length }}份)
| 合同编号 | 合同类别 | 性质 | 甲方 | 乙方 | 合同金额 | 已开票 | 已支付 | 待付 | 质保金 |
|---|---|---|---|---|---|---|---|---|---|
| {{ c.contract_no }} | {{ c.contract_category }} | {{ c.contract_nature }} | {{ c.party_a }} | {{ c.party_b }} | {{ fmtMoney(c.contract_amount) }} | {{ fmtMoney(c.invoiced) }} | {{ fmtMoney(c.paid) }} | {{ fmtMoney(c.contract_unpaid) }} | {{ fmtMoney(c.warranty_amount) }} |
| 暂无关联合同 | |||||||||
关联发票 ({{ projectInvoices.length }}张)
| 开票日期 | 合同编号 | 项目名称 | 开票内容 | 发票类型 | 金额 | 税率 | 已收 | 未收 | 备注 |
|---|---|---|---|---|---|---|---|---|---|
| {{ inv.invoice_date || '-' }} | {{ inv.contract_no || '-' }} | {{ inv.project_name || '-' }} | {{ inv.nature || '-' }} | {{ inv.invoice_type || '-' }} | {{ fmtMoney(inv.amount) }} | {{ inv.tax_rate || '-' }} | {{ fmtMoney(inv.paid) }} | {{ fmtMoney(inv.invoiced_unpaid) }} | {{ inv.remark || '-' }} |
| 暂无关联发票 | |||||||||
关联收付款 ({{ projectPayments.length }}笔)
| 日期 | 合同编号 | 项目名称 | 收付类型 | 内容 | 发票数 | 发票金额 | 付款金额 | 状态 | 备注 |
|---|---|---|---|---|---|---|---|---|---|
| {{ p.pay_date || '-' }} | {{ p.contract_no || '-' }} | {{ p.project_name || '-' }} | {{ p.pay_type || '-' }} | {{ p.payment_content || '-' }} | {{ p.invoice_count || '-' }} | {{ fmtMoney(p.invoice_amount) }} | {{ fmtMoney(p.amount) }} | {{ p.status || '-' }} | {{ p.remark || '-' }} |
| 暂无关联收付款 | |||||||||
| 序号 |
{{ col.col_label }}
|
|
|---|---|---|
| {{ idx + 1 + (pageMap.contracts-1)*perPageMap.contracts }} | {{ c.contract_category }} {{ fmtCell(c[col.col_name], col) }} {{ fmtCell(c[col.col_name], col) }} {{ fmtCell(c[col.col_name], col) }} | |
| {{ contractsLoading ? '加载中…' : '暂无合同数据' }} |
| 编号 | 方向 | 标题 | 工程类型 | 标段 | 单位 | 预算金额 | 投标金额 | 结果 | 中标金额 | 开标日期 | 操作 |
|---|---|---|---|---|---|---|---|---|---|---|---|
| {{ t.tender_no || t.id }} | {{ t.direction }} | {{ t.title }} | {{ t.engineer_type || '-' }} | {{ t.section || '-' }} | {{ t.unit_name || '-' }} | {{ fmtMoney(t.budget_amount) }} | {{ fmtMoney(t.bid_amount) }} | {{ t.result || '待开标' }} | {{ fmtMoney(t.win_amount) }} | {{ t.open_date || '-' }} | |
| 暂无招投标记录 | |||||||||||
| 编号 | 类型 | 供应商 | 金额 | 状态 | 申请日 | 验收日 | 明细 | 操作 |
|---|---|---|---|---|---|---|---|---|
| {{ p.purchase_no || p.id }} | {{ p.purchase_type }} | {{ p.supplier_name }} | {{ fmtMoney(p.total_amount) }} | {{ p.status }} | {{ p.apply_date || '-' }} | {{ p.accept_date || '-' }} | {{ p.items.length }}项 | |
| 暂无采购单 | ||||||||
前置成本核算清单(预算) ({{ costEstimates.length }}条 · 预算合计 {{ fmtMoney(costEstimateTotal()) }})
| 条目 | 型号/参数 | 类别 | 数量 | 单价 | 总价 | 备注 | 操作 |
|---|---|---|---|---|---|---|---|
| {{ e.item_name }} | {{ e.spec || '-' }} | {{ e.category }} | {{ e.quantity }} | {{ fmtMoney(e.unit_price) }} | {{ fmtMoney(e.amount) }} | {{ e.remark || '-' }} |
暂无成本核算条目,点击"新增条目"录入预算清单(采购时可从清单拉取条目)
供应商库 ({{ suppliers.length }}家)
| 名称 | 类别 | 联系人 | 电话 | 资质 | 平均分 | 评级 | 状态 | 评分 | 备注 | 操作 |
|---|---|---|---|---|---|---|---|---|---|---|
| {{ s.name }} | {{ s.category || '-' }} | {{ s.contact_person || '-' }} | {{ s.contact_phone || '-' }} | {{ s.qualification || '-' }} | {{ s.score_count ? s.avg_score.toFixed(1) : '-' }} | {{ s.rating }}- | {{ s.status || '-' }} | {{ s.remark || '-' }} | ||
| 暂无供应商,点击右上角"新增供应商"开始维护(采购单可选择供应商) | ||||||||||
未收回款(发票口径)
{{ fmtMoney(agingReport.summary.total_unpaid || 0) }}
逾期未收(>{{ agingReport.threshold || 30 }}天)
{{ fmtMoney(agingReport.summary.overdue_total || 0) }}
{{ name }}
{{ fmtMoney(val || 0) }}
| 开票日期 | 合同号 | 项目 | 区域 | 付款方 | 开票额 | 已收 | 未收 | 账龄(天) | 区间 | 状态 |
|---|---|---|---|---|---|---|---|---|---|---|
| {{ r.invoice_date }} | {{ r.contract_no }} | {{ r.project_name || '-' }} | {{ r.region || '-' }} | {{ r.payer || '-' }} | {{ fmtMoney(r.invoice_amount) }} | {{ fmtMoney(r.paid) }} | {{ fmtMoney(r.unpaid) }} | {{ r.age_days }} | {{ r.bucket }} | {{ r.overdue ? '逾期' : '正常' }} |
| {{ agingKeyword ? '无匹配记录' : '暂无未收回款记录(发票均已结清)' }} | ||||||||||
{{ agingReport.note || '应付账龄待采购验收与付款核销数据启用后提供' }}
有预算项目数
{{ budgetExec.summary.project_count || 0 }}
预算合计
{{ fmtMoney(budgetExec.summary.budget_total || 0) }}
已发生合计
{{ fmtMoney(budgetExec.summary.used_total || 0) }}
超预算项目
{{ budgetExec.summary.over_budget_count || 0 }}
| 项目 | 区域 | 清单条数 | 预算合计 | 计划内已发生 | 计划外已批 | 计划外待批 | 已发生合计 | 预算结余 | 执行率 | 状态 |
|---|---|---|---|---|---|---|---|---|---|---|
| {{ r.project_name || ('#' + r.project_id) }} | {{ r.region || '-' }} | {{ r.budget_items }} | {{ fmtMoney(r.budget_total) }} | {{ fmtMoney(r.planned_actual) }} | {{ fmtMoney(r.extra_approved) }} | {{ fmtMoney(r.extra_pending) }} | {{ fmtMoney(r.used_total) }} | {{ fmtMoney(r.remaining) }} | {{ r.exec_rate }}% | {{ r.over_budget ? '超支' : '正常' }} |
| 暂无数据:请先在"采购管理 → 前置成本核算清单"录入预算,采购验收后自动归集对比 | ||||||||||
计划外采购审批 ({{ (todoData.purchase_items || []).length }} 项待审批)
| 采购单号 | 项目 | 条目 | 数量×单价 | 金额 | 供应商 | 采购单状态 | 申请人 | 操作 |
|---|---|---|---|---|---|---|---|---|
| {{ it.purchase_no || ('#' + it.purchase_id) }} | {{ it.project_name || '-' }} | {{ it.item_name }} {{ it.spec || '' }} | {{ it.quantity }} × {{ fmtMoney(it.unit_price) }} | {{ fmtMoney(it.amount) }} | {{ it.supplier_name || '-' }} | {{ it.purchase_status || '-' }} | {{ it.applicant || '-' }} | |
| 暂无待审批的计划外采购条目(计划内条目无需审批) | ||||||||
合同评审 ({{ (todoData.contract_reviews || []).length }} 份待审核)
| 合同号 | 项目 | 甲方 | 合同金额 | 状态 | 操作 |
|---|---|---|---|---|---|
| {{ c.contract_no }} | {{ c.project_name || '-' }} | {{ c.party_a || '-' }} | {{ fmtMoney(c.contract_amount) }} | {{ c.review_status }} | |
| 暂无待审核合同 | |||||
节点数(当前筛选)
{{ planStats().nodes }}
计划应收合计
{{ fmtMoney(planStats().plan_total) }}
已回款
{{ fmtMoney(planStats().received) }}
未回款
{{ fmtMoney(planStats().unpaid) }}
逾期未收
{{ fmtMoney(planStats().overdue) }}
| 计划日期 | 合同号 | 项目 | 节点 | 计划金额 | 已回款 | 未回款 | 状态 | 距到期 | 操作 |
|---|---|---|---|---|---|---|---|---|---|
| {{ p.plan_date || '-' }} | {{ p.contract_no }} | {{ p.project_name || '-' }} | [{{ p.node_type }}]{{ p.plan_name }}… | {{ fmtMoney(p.plan_amount) }} | {{ fmtMoney(p.actual_amount) }} | {{ fmtMoney(p.unpaid) }} | {{ planStatusText(p.status) }} | — — 已逾期 {{ Math.abs(p.days_left) }} 天 {{ p.days_left }} 天 {{ p.days_left }} 天 | |
| 暂无回款计划:点击右上角「批量生成」按合同付款条款一键生成,或「新建节点」手动维护 | |||||||||
{{ s.project_name || ('项目#' + s.project_id) }}
{{ fmtMoney(s.amt) }}
人工成本 · {{ s.hrs }} 工日 · {{ s.n }} 笔
| 日期 | 员工 | 部门 | 项目 | 工日/工时 | 人工成本(元) | 工作内容 | 操作 |
|---|---|---|---|---|---|---|---|
| {{ w.work_date || '-' }} | {{ w.employee || '-' }} | {{ w.dept || '-' }} | {{ w.project_name || ('#' + w.project_id) }} | {{ w.hours }} | {{ fmtMoney(w.amount) }} | {{ w.work_content || '-' }} | |
| 暂无工时记录:点击「登记工时」按项目登记人工成本,将自动计入项目/区域双口径利润 | |||||||
{{ bankImportMsg }}
当前筛选流水
{{ bankStat().count }} 笔
收入 {{ fmtMoney(bankStat().inc) }} / 支出 {{ fmtMoney(bankStat().exp) }}
已匹配收付
{{ bankStat().matched }}
已与收付款台账核对
未匹配
{{ bankStat().unmatched }}
待人工核对/确认为差异
已忽略
{{ bankStat().ignored }}
户间转账等无需对账项
| 记账日期 | 方向 | 金额(元) | 对方户名 | 摘要 | 关联收付款 | 状态 | 操作 |
|---|---|---|---|---|---|---|---|
| {{ r.stmt_date || '-' }} | {{ r.direction }} | {{ fmtMoney(r.amount) }} | {{ r.counterparty || '-' }} |
收付款 #{{ (r.match_ref || '').replace('payment:', '') }} {{ r.pay_contract_no || r.pay_project_name || '' }} 日记账 #{{ (r.match_ref || '').replace('tx:', '') }} - |
{{ r.match_type }} | ||
| 暂无数据:点击「上传银行流水」导入网银导出的交易明细(Excel),系统将按「金额+日期」自动匹配收付款台账 | |||||||
| 序号 |
{{ col.col_label }}
|
|
|---|---|---|
| {{ idx + 1 + (pageMap.invoices-1)*perPageMap.invoices }} | {{ fmtMoney(inv.amount) }} {{ fmtCell(inv[col.col_name], col) }} {{ fmtCell(inv[col.col_name], col) }} {{ fmtCell(inv[col.col_name], col) }} | |
| {{ invoicesLoading ? '加载中…' : '暂无发票数据' }} |
| 序号 |
{{ col.col_label }}
|
|
|---|---|---|
| {{ idx + 1 + (pageMap.payments-1)*perPageMap.payments }} | {{ fmtMoney(p.actual_amount || p.amount) }} {{ fmtMoney(p.invoice_amount) }} {{ fmtCell(p[col.col_name], col) }} {{ fmtCell(p[col.col_name], col) }} {{ fmtCell(p[col.col_name], col) }} | |
| {{ paymentsLoading ? '加载中…' : '暂无数据' }} |
| 序号 |
{{ col.col_label }}
|
|
|---|---|---|
| {{ idx + 1 + (pageMap.transactions-1)*perPageMap.transactions }} | {{ t.income_amount ? fmtMoney(t.income_amount) : '' }} {{ t.expense_amount ? fmtMoney(t.expense_amount) : '' }} {{ fmtCell(t[col.col_name], col) }} {{ fmtCell(t[col.col_name], col) }} {{ fmtCell(t[col.col_name], col) }} | |
| {{ txLoading ? '加载中…' : (txFilterActive ? '没有符合条件的记录' : '暂无数据') }} |
| 序号 |
{{ col.col_label }}
|
|
|---|---|---|
| {{ i+1 }} | {{ r[col.col_name] }} {{ r[col.col_name] }} {{ fmtCell(r[col.col_name], col) }} {{ fmtCell(r[col.col_name], col) }} {{ fmtCell(r[col.col_name], col) }} | |
| 暂无入库项目 |
内部账户 ({{ internalAccounts.length }}个)
本区已选 {{ selectedCountBySection('internal') }} 个 / 余额 {{ fmtMoneyExact(selectedAccountsTotalBySection('internal')) }}
{{ a.account_name }}
{{ fmtMoneyExact(a.balance) }}
≈ {{ fmtWan(a.balance) }}
收入
{{ fmtMoneyExact(a.income) }}
支出
{{ fmtMoneyExact(a.expense) }}
期初
{{ fmtMoneyExact(a.opening_balance) }}
拖拽账户到此区域
外部账户 ({{ externalAccounts.length }}个)
本区已选 {{ selectedCountBySection('external') }} 个 / 余额 {{ fmtMoneyExact(selectedAccountsTotalBySection('external')) }}
{{ a.account_name }}
{{ fmtMoneyExact(a.balance) }}
≈ {{ fmtWan(a.balance) }}
收入
{{ fmtMoneyExact(a.income) }}
支出
{{ fmtMoneyExact(a.expense) }}
期初
{{ fmtMoneyExact(a.opening_balance) }}
拖拽账户到此区域
一、总收支总盈亏查询
点击行或勾选框选定,右侧自动汇总
| 选 | 序号 | 科目1 | 收入 | 支出 | 结余 | 笔数 | ||
|---|---|---|---|---|---|---|---|---|
| 金额 | 占比 | 金额 | 占比 | |||||
| {{ idx + 1 }} | {{ row.subject1 }} | {{ fmtMoney(row.income) }} | {{ fmtPct(row.income_pct) }} | {{ fmtMoney(row.expense) }} | {{ fmtPct(row.expense_pct) }} | {{ fmtMoney(row.balance) }} | {{ row.tx_count }} | |
| 暂无科目1汇总数据 | ||||||||
| 合计: | {{ fmtMoney(plSubject1Overview.total_income) }} | 100% | {{ fmtMoney(plSubject1Overview.total_expense) }} | 100% | {{ fmtMoney(plSubject1Overview.total_balance) }} | — | ||
已选收入合计
{{ fmtMoney(plCheckedSummary.income) }}
已选支出合计
{{ fmtMoney(plCheckedSummary.expense) }}
已选结余
{{ fmtMoney(plCheckedSummary.balance) }}
已勾选 {{ plCheckedSummary.count }} 项
未勾选任何科目1
{{ name }}
正在加载科目1汇总…
二、区域盈亏查询
收入 {{ fmtMoney(plSubject1DetailA.total_income) }}
支出 {{ fmtMoney(plSubject1DetailA.total_expense) }}
结余 {{ fmtMoney(plSubject1DetailA.total_balance) }}
| 序号 | 科目2 | 收入 | 支出 | 结余 | ||
|---|---|---|---|---|---|---|
| 金额 | 占比 | 金额 | 占比 | |||
| {{ idx + 1 }} | {{ row.subject2 }} | {{ fmtMoney(row.income) }} | {{ fmtPct(row.income_pct) }} | {{ fmtMoney(row.expense) }} | {{ fmtPct(row.expense_pct) }} | {{ fmtMoney(row.balance) }} |
| 暂无明细 | ||||||
| 合计: | {{ fmtMoney(plSubject1DetailA.total_income) }} | 100% | {{ fmtMoney(plSubject1DetailA.total_expense) }} | 100% | {{ fmtMoney(plSubject1DetailA.total_balance) }} | |
请选择科目1
收入 {{ fmtMoney(plSubject1DetailB.total_income) }}
支出 {{ fmtMoney(plSubject1DetailB.total_expense) }}
结余 {{ fmtMoney(plSubject1DetailB.total_balance) }}
| 序号 | 科目2 | 收入 | 支出 | 结余 | ||
|---|---|---|---|---|---|---|
| 金额 | 占比 | 金额 | 占比 | |||
| {{ idx + 1 }} | {{ row.subject2 }} | {{ fmtMoney(row.income) }} | {{ fmtPct(row.income_pct) }} | {{ fmtMoney(row.expense) }} | {{ fmtPct(row.expense_pct) }} | {{ fmtMoney(row.balance) }} |
| 暂无明细 | ||||||
| 合计: | {{ fmtMoney(plSubject1DetailB.total_income) }} | 100% | {{ fmtMoney(plSubject1DetailB.total_expense) }} | 100% | {{ fmtMoney(plSubject1DetailB.total_balance) }} | |
请选择科目1
四、区域核算盈亏总览 区域=独立核算单位,下钻查看区域内单项目盈亏
| 区域 | 项目数 | 收入(决算) | 支出合同(决算) | 区域级日常支出 | 区域利润(账面) | 操作 |
|---|---|---|---|---|---|---|
| {{ rg.region }} | {{ rg.project_count }} | {{ fmtMoney(rg.income_book) }} | {{ fmtMoney(rg.expense_book_contract) }} | {{ fmtMoney(rg.region_tx_expense) }} ({{ rg.region_tx_count }}笔) | {{ fmtMoney(rg.profit) }} |
暂无区域数据(项目未划分区域)
三、项目盈亏查询
收入 {{ fmtMoney(plProjectDetailA.total_income) }}
支出 {{ fmtMoney(plProjectDetailA.total_expense) }}
结余 {{ fmtMoney(plProjectDetailA.total_balance) }}
| 序号 | 科目2 | 收入 | 支出 | 结余 | ||
|---|---|---|---|---|---|---|
| 金额 | 占比 | 金额 | 占比 | |||
| {{ idx + 1 }} | {{ row.subject2 }} | {{ fmtMoney(row.income) }} | {{ fmtPct(row.income_pct) }} | {{ fmtMoney(row.expense) }} | {{ fmtPct(row.expense_pct) }} | {{ fmtMoney(row.balance) }} |
| 暂无明细 | ||||||
| 合计: | {{ fmtMoney(plProjectDetailA.total_income) }} | 100% | {{ fmtMoney(plProjectDetailA.total_expense) }} | 100% | {{ fmtMoney(plProjectDetailA.total_balance) }} | |
请选择项目
收入 {{ fmtMoney(plProjectDetailB.total_income) }}
支出 {{ fmtMoney(plProjectDetailB.total_expense) }}
结余 {{ fmtMoney(plProjectDetailB.total_balance) }}
| 序号 | 科目2 | 收入 | 支出 | 结余 | ||
|---|---|---|---|---|---|---|
| 金额 | 占比 | 金额 | 占比 | |||
| {{ idx + 1 }} | {{ row.subject2 }} | {{ fmtMoney(row.income) }} | {{ fmtPct(row.income_pct) }} | {{ fmtMoney(row.expense) }} | {{ fmtPct(row.expense_pct) }} | {{ fmtMoney(row.balance) }} |
| 暂无明细 | ||||||
| 合计: | {{ fmtMoney(plProjectDetailB.total_income) }} | 100% | {{ fmtMoney(plProjectDetailB.total_expense) }} | 100% | {{ fmtMoney(plProjectDetailB.total_balance) }} | |
请选择项目
加载中...
总收入
¥{{ fmtMoney(mrOverview.total_income) }}
总支出
¥{{ fmtMoney(mrOverview.total_expense) }}
总结余
¥{{ fmtMoney(mrOverview.total_balance) }}
有数据月份
{{ mrOverview.months.length }}
| 月份 | 收入 | 支出 | 结余 | 收入笔数 | 支出笔数 | 操作 |
|---|---|---|---|---|---|---|
| {{ m.label }} | ¥{{ fmtMoney(m.income) }} | ¥{{ fmtMoney(m.expense) }} | ¥{{ fmtMoney(m.balance) }} | {{ m.count_income }} | {{ m.count_expense }} | |
| 暂无数据 | ||||||
{{ mrMonth }} 收支明细
| 日期 | 类型 | 金额 | 科目 | 项目 | 来源 |
|---|---|---|---|---|---|
| {{ d.date }} | {{ d.direction === 'in' ? '收入' : '支出' }} | {{ d.direction === 'in' ? '+' : '-' }}¥{{ fmtMoney(d.amount) }} | {{ d.category }} | {{ d.project_name }} | {{ d.source }} |
| 本月暂无收支记录 | |||||
加载中...
| 序号 | 合同号 | 项目名称 | 性质 | 合同金额 | 签约日期 | 计提比例 | 提成池 | 经理30% | 成员70% | 计提状态 | 操作 |
|---|---|---|---|---|---|---|---|---|---|---|---|
| {{ i + 1 }} | {{ c.contract_no || '—' }} | {{ truncateStr(c.project_display || c.project_name, 22) }} | {{ c.contract_nature || '—' }} | ¥{{ fmtMoney(c.contract_amount) }} | {{ c.sign_date || '—' }} | {{ c.is_commission ? perfRateText(c.contract_nature) : '—' }} | ¥{{ fmtMoney(perfPoolAmount(c)) }} | ¥{{ fmtMoney(perfManagerShare(c)) }} | ¥{{ fmtMoney(perfMemberShare(c)) }} | {{ c.is_commission ? '计提' : '不计提' }} | 不计提类型 |
| 暂无收入合同数据 | |||||||||||
人员在离状态
{{ p.name }}
({{ p.dept }})
{{ p.status }}
{{ p.project_name }}
@ {{ p.location }}
出发: {{ p.out_date }}
预计回: {{ p.expected_return }}
| 日期 | 账户 | 金额 | 科目1 | 项目名称 | 经手人 | 备注 | 操作 |
|---|---|---|---|---|---|---|---|
| {{ t.trans_date }} | {{ t.account }} | {{ fmtMoney(t.amount) }} | {{ t.subject1 }} | {{ t.project_name }} | {{ t.handler }} | {{ t.remark }} |
| 单位名称 | 类型 | 联系人 | 电话 | 地址 | 法定代表人 | 开户银行 | 银行账号 | 税号 | 合作情况 | 备注 | |
|---|---|---|---|---|---|---|---|---|---|---|---|
| {{ u.name }} | {{ u.unit_type }} | {{ u.contact_person }} | {{ u.phone }} | {{ u.address }} | {{ u.legal_rep }} | {{ u.bank_name }} | {{ u.bank_account }} | {{ u.tax_no }} | {{ u.cooperation }} | {{ u.remark }} | |
| 暂无数据,可点击"同步"从收入合同自动导入 | |||||||||||
| 单位名称 | 资质类型 | 专业等级 | 有效期 | 法定代表人 | 注册地 | 注册资金 | 成立日期 | 联系人 | 合作情况 | 备注 | |
|---|---|---|---|---|---|---|---|---|---|---|---|
| {{ q.name }} | {{ q.qual_type }} | {{ q.qual_level }} | {{ q.valid_until }} | {{ q.legal_rep }} | {{ q.address }} | {{ q.reg_capital }} | {{ q.founded_date }} | {{ q.contact_person }} | {{ q.cooperation }} | {{ q.remark }} | |
| 暂无数据,可点击"同步"从收入合同自动导入 | |||||||||||
| 客户名称 | 类型 | 联系人 | 电话 | 地址 | 法定代表人 | 开户银行 | 银行账号 | 税号 | 合作项目 | 备注 | |
|---|---|---|---|---|---|---|---|---|---|---|---|
| {{ c.name }} | {{ c.customer_type }} | {{ c.contact_person }} | {{ c.phone }} | {{ c.address }} | {{ c.legal_rep }} | {{ c.bank_name }} | {{ c.bank_account }} | {{ c.tax_no }} | {{ c.cooperation }} | {{ c.remark }} | |
| 暂无数据,可点击"同步"从走账/支出合同自动导入 | |||||||||||
AI助手对话
出差时用手机也能跟我对话
授权
{{ (license.payload||{}).customer }}({{ license.edition_label }})
· 有效期至 {{ (license.payload||{}).expires_at || '永久' }}
(剩 {{ license.days_left }} 天)
(已逾期 {{ license.days_over }} 天 → {{ licenseLevelLabel }})
· 已购单元:{{ (license.unit_labels||[]).join('、') || '—' }}
· 授权号 {{ (license.payload||{}).license_id }}
· 机器白名单 {{ (license.fingerprint_allowed||[]).length }} 台
未导入有效授权 · {{ license.error }}
判定档位 {{ license.enforce }} (未真正拦截) · 可用模块 {{ (license.deployment_modules||[]).length ? (license.deployment_modules||[]).length + ' 个' : (license.deployment_modules ? '0 个' : '不受限') }}
席位 {{ license.seats.unlimited ? '不限' : (license.seats.used + ' / ' + license.seats.limit) }} (未限制账号数) (已超额:只能减、不能增,已有账号不受影响) (年费含 {{ license.seats.included }} 席,超出每席 ¥{{ license.seats.price }}/年)
判定档位 {{ license.enforce }} (未真正拦截) · 可用模块 {{ (license.deployment_modules||[]).length ? (license.deployment_modules||[]).length + ' 个' : (license.deployment_modules ? '0 个' : '不受限') }}
席位 {{ license.seats.unlimited ? '不限' : (license.seats.used + ' / ' + license.seats.limit) }} (未限制账号数) (已超额:只能减、不能增,已有账号不受影响) (年费含 {{ license.seats.included }} 席,超出每席 ¥{{ license.seats.price }}/年)
把服务商发来的 .hqlic 文件内容整段粘贴进来(纯文本即可)。 导入前先验签:签名不符或被改过一律拒绝;导入后立即生效,无需重启。
{{ licenseMsg }}
| 序 | 用户名 | 姓名 | 部门 | 手机 | 角色 | 状态 | 可见模块 | 注册时间 | 最后登录 | 操作 |
|---|---|---|---|---|---|---|---|---|---|---|
| {{ i+1 }} | {{ u.username }} | {{ u.display_name }} | {{ u.dept }} | {{ u.phone || '-' }} | {{ u.role === 'admin' ? '管理员' : (u.role === 'manager' ? '部门经理' : '普通用户') }} | {{ userStatusText(u.status) }} 登录锁定 | {{ userModuleSummary(u) }} | {{ u.created_at }} | {{ u.last_login || '-' }} |
| 序 | 所属模块 | 记录名称 | 删除时间 | 操作人 | 操作 | |
|---|---|---|---|---|---|---|
| {{ i+1 }} | {{ it.table_label }} | {{ it.record_label }} | {{ it.deleted_at }} | {{ it.deleted_by || '-' }} | ||
| 回收站为空 | ||||||
| 时间 | 操作人 | 角色 | 动作 | 模块 | 记录 | 变更摘要 | |
|---|---|---|---|---|---|---|---|
| {{ log.created_at }} | {{ log.actor_name }} | {{ log.actor_role }} | {{ log.action }} | {{ log.table_name || '-' }} | {{ log.record_label || ('序号' + log.record_id) }} | {{ auditChangeText(log) }} | |
| 暂无审计记录 | |||||||
| 序 | 备份文件 | 大小 | 生成时间 | 操作 |
|---|---|---|---|---|
| {{ i+1 }} | {{ b.name }} | {{ (b.size/1024).toFixed(1) }} KB | {{ b.mtime }} | |
| 暂无备份 | ||||