{{ user.role==='sales'?'我的客户':'本月营收' }}
{{ dash.totalCustomers||0 }}位
¥{{ fmt(dash.monthRevenue) }}
本月利润
{{ fmtMoney(dash.monthProfit||0) }}
本月已收 {{ fmtMoney(dash.monthIncome) }} · 本月支出 {{ fmtMoney(dash.monthExpense) }}
{{ user.role==='sales'?'我的客户':'分销商总数' }}
{{ dash.totalCustomers||0 }}
{{ user.role==='sales'?'我的客户':'分销商' }}
开放团期
{{ dash.openTours||0 }}
本月出行 {{ dash.monthPax||0 }} 人
本月支出
{{ fmtMoney(dash.monthExpense) }}
本月支出
我的任务进度季度 {{ myProgress.quarter.label }} · 按出发月 · 仅已确认订单
季度绩效
{{ myProgress.quarter.done }}
/ {{ myProgress.quarter.target }} 人
{{ (myProgress.quarter.rate*100).toFixed(1) }}%
{{ (myProgress.quarter.rate*100).toFixed(1) }}%
未设目标
还差 {{ myProgress.quarter.target - myProgress.quarter.done }} 人 · 未达标
已超额完成 · 冲季度奖励
本月基础目标 ({{ myProgress.month.note }})
{{ myProgress.month.done }}
/ {{ myProgress.month.target }} 人
已完成
{{ myProgress.month.done }}
/ {{ myProgress.month.target }} 人
{{ (myProgress.month.rate*100).toFixed(1) }}%
未设目标
还差 {{ myProgress.month.target - myProgress.month.done }} 人 · 未达标
我的任务进度季度 {{ opProgress.quarter.label }} · 毛利口径(收入−成本−返佣)· 按出发月
本季度已实现 (提成按此算)
{{ (opProgress.quarter.realized_amount/10000).toFixed(2) }}
/ {{ (opProgress.quarter.target_amount/10000).toFixed(2) }} 万元
{{ (opProgress.quarter.realized_rate*100).toFixed(1) }}%
{{ (opProgress.quarter.realized_rate*100).toFixed(1) }}%
未设目标
预计可完成(含未出发 / 未锁团 / 款未到账)
{{ (opProgress.quarter.done_amount/10000).toFixed(2) }} / {{ (opProgress.quarter.target_amount/10000).toFixed(2) }} 万元 · {{ (opProgress.quarter.rate*100).toFixed(1) }}%
还差 {{ ((opProgress.quarter.target_amount-opProgress.quarter.done_amount)/10000).toFixed(2) }} 万元 · 未达标
已超额完成 · 冲季度奖励
团队进度各销售季度完成 + 计调季度利润 · 按出发月 · 仅已确认订单
| 销售 | 季度完成 | 完成率 | 本月基础目标 |
|---|---|---|---|
| {{ p.name }} | {{ p.quarter.done }} / {{ p.quarter.target }} 人 | {{ (p.quarter.rate*100).toFixed(1) }}% 未设目标 | 已完成 {{ p.month.done }} / {{ p.month.target }} 人 {{ (p.month.rate*100).toFixed(1) }}% 未设目标 |
计调(季度利润 · 提成按「已实现」算)
| 计调 | 已实现利润 | 已实现率 | 预计完成率 |
|---|---|---|---|
| {{ p.name }} | {{ (p.quarter.realized_amount/10000).toFixed(2) }} / {{ (p.quarter.target_amount/10000).toFixed(2) }} 万元 | {{ (p.quarter.realized_rate*100).toFixed(1) }}% 未设目标 | {{ (p.quarter.rate*100).toFixed(1) }}% 未设目标 |
今日提醒
出发
{{ t.tour_no }}
{{ t.title }}
{{ t.total_pax||0 }} 人
回团
{{ t.tour_no }}
{{ t.title }}
{{ t.total_pax||0 }} 人
今日无出发 / 回团
待办
{{ dash.pendingChanges }}
●待审核变更
{{ dash.unpaidBookings }}
●未收款笔数
{{ planCollectDueCount }}
●收款该催
{{ planCollectOverdueCount }}
●收款逾期
暂无待办
收客趋势 · 近 4 日
排行榜
销售额 · 收客人数 · 昨日线路
销售排行
销售额按金额
- {{ i+1 }} {{ s.name }} {{ ((s.val||0)/maxSalesVal*100).toFixed(0) }}% {{ fmtMoney(s.val) }}
收客人数按人数
- {{ i+1 }} {{ s.name }} {{ s.pax||0 }}人{{ s.orders||0 }}单
收客排行分销商 · 客户
{{ a.name }}
{{ a.pax||0 }}人{{ a.orders||0 }}单
昨日线路分布按收客人数
{{ routeTotalPax }}
总收客 · 人
- {{ s.name }} {{ s.pax }}人{{ s.pct }}%
| 团号 | 线路 | 出发 | 天 | 类型 | 成人价 | 机位 | 确认 | 预留 | 余位 | 状态 | 计调 | ||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| {{ t.tour_no }} |
{{ t.title }}
{{ t.destination||'—' }} · {{ t.departure_city }}出发
|
{{ t.departure_date }}{{ holidayTag(t.departure_date) }} | {{ t.days }}天 | {{ t.tour_type||'跟团' }} | {{ fmtMoney(t.adult_price) }} | {{ seatInfo(t).total }} | {{ seatInfo(t).sold }} | {{ seatInfo(t).hold }} | {{ seatInfo(t).remaining }} | 已锁团(只读)满位(自动){{ statusText(t.status) }} | {{ t.operator_name||'—' }} | ||||||||||||||||||||||||||||||||||||||||||||||
|
报名
团期配置
报价管理
团队结算单
地接确认书
操作日志
报名订单
旅客护照 ({{ currentTour.passenger_rows?.length||0 }})
暂无报名
共 {{ currentTour.passenger_rows?.length||0 }} 位旅客 · 点击证件图片可放大核对(窗口可拖动缩放)
导出游客名单
导出机票名单
导出旅游局名单
导出保险名单
暂无旅客(各订单录入名单后自动汇总) 锁团请用团期行上的「锁团」按钮(会先检查未确认收款、并计提联盟后返)。收满自动满位不需要在这里选。
支持 PDF/JPG/PNG,单文件≤20MB,供财务对账查证
暂无确认书,点击上方按钮上传 出团通知书
团队结算表
暂无操作记录 |
暂无团期
每页
条
共 {{ tourTotal }} 条 · 第 {{ tourPage }} / {{ Math.max(1, Math.ceil(tourTotal / tourPageSize)) }} 页
{{ calYear }}年{{ calMonth }}月
| 日 | 一 | 二 | 三 | 四 | 五 | 六 |
|---|---|---|---|---|---|---|
|
{{ day.date }}
+{{ day.tour_ids.length-3 }}个
|
共 {{ customerTotal }} 条结果
| 组团社名称 | 联系人 | 电话 | 类型 | 活跃度 | 所属销售 | 品牌 | 订单数 | 累计消费 | 操作 |
|---|---|---|---|---|---|---|---|---|---|
| {{ c.company_name || c.name }} | {{ c.contact_name||'—' }} ({{ c.gender }}) | {{ c.phone||'—' }} | {{ c.customer_type }}— | 活跃沉睡流失新客 | {{ c.sales_name||'—' }} | {{ c.brand_name||'—' }} | {{ c.booking_count||0 }} | {{ fmtMoney(c.total_spent) }} |
{{ customerFilter.keyword||customerFilter.customer_type||customerFilter.brand_id||customerFilter.alliance_id ? '没有匹配的分销商' : '暂无分销商,点击"添加分销商"录入' }}
每页
条
共 {{ customerTotal }} 条 · 第 {{ customerPage }} / {{ Math.max(1, Math.ceil(customerTotal / customerPageSize)) }} 页
全部
航司票务
地接社
车队
酒店平台
保险
签证
其他
| 供应商名称 | 联系人 | 电话 | 类别 | 开户行 | 银行账号 | 备注 | 操作 |
|---|---|---|---|---|---|---|---|
| {{ s.name }} | {{ s.contact||'—' }} | {{ s.phone||'—' }} | {{ s.category }} | {{ s.bank_name||'—' }} | {{ s.bank_account||'—' }} | {{ s.notes||'—' }} |
暂无供应商记录
{{ supplierForm.id?'编辑':'添加' }}供应商
记账
应收欠款 {{ unpaidCount }}
逾期催收 {{ overdueCount }}
付款审核
待入账收款 {{ pendingPayList.length }}
收款计划催收 {{ planCollectTotal }}
财务科目
银行账户
变更审核 {{ pendingCount }}
垫付报销 {{ advances.total }}
批量付款 {{ batchPending.length }}
| 日期 | 团号 | 类型 | 科目 | 金额 | 账户 | 状态 | 操作 |
|---|---|---|---|---|---|---|---|
| {{ f.record_date }} | {{ f.tour_no||'—' }} | {{ f.type==='income'?'收入':'支出' }} | {{ f.subject_name || f.subject || f.category || '其他' }} {{ f.notes || f.description }} |
{{ f.type==='income'?'+':'-' }}¥{{ fmt(f.amount) }} | {{ f.account_name||'—' }} {{ f.payment_method }} |
{{ f.status==='approved'?'已审核':f.status==='rejected'?'已驳回':'待审核' }} |
暂无财务记录
客户欠款汇总(按客户合并)
欠款总额(客户未付合计)
{{ fmtMoney(receivables.total) }}
| 客户 | 联系人 | 电话 | 品牌 | 联盟 | 订单数 | 订单总额 | 已收 | 欠款 |
|---|---|---|---|---|---|---|---|---|
| {{ r.company_name || r.name }} | {{ r.contact_name||'—' }} | {{ r.phone||'—' }} | {{ r.brand_name||'—' }} | {{ r.alliance_name||'—' }} | {{ r.booking_count }} | {{ fmtMoney(r.total_amount) }} | {{ fmtMoney(r.total_paid) }} | {{ fmtMoney(r.total_owed) }} |
太好了,暂无应收欠款
订单未收款明细(逐单收款)
未收款总额
{{ fmtMoney(unpaidTotal) }}
未收订单笔数
{{ unpaidCount }}
| 团号 | 线路 | 出发日 | 客户 | 销售 | 订单总额 | 已收 | 未收 | 状态 | 操作 |
|---|---|---|---|---|---|---|---|---|---|
| {{ o.tour_no }} | {{ o.tour_title }} | {{ o.departure_date }}逾期{{ o.overdue_days }}天 | {{ o.customer_name||'—' }} | {{ o.sales_name||'—' }} | {{ fmtMoney(o.total_amount) }} | {{ fmtMoney(o.paid_amount) }} | {{ fmtMoney(o.unpaid) }} | {{ {pending:'待确认',confirmed:'已确认',paid:'已付',cancelled:'取消',reserved:'预留'}[o.status]||o.status }} |
太好了,没有未收款订单
收款计划催收
该催 {{ planDueSoon.length }} 笔({{ fmtMoney(planDueSoonAmount) }})
逾期 {{ planOverdue.length }} 笔({{ fmtMoney(planOverdueAmount) }})
暂无需要催收的收款计划
期次到期前 3 天会进入「该催」;过期未收满会标为「逾期」
该催({{ planDueSoon.length }})
| 团号 | 客户 | 期次 | 应收日 | 该期金额 | 已核销 | 还差 | 状态 | 操作 |
|---|---|---|---|---|---|---|---|---|
| {{ r.tour_no }} | {{ r.customer }} | 第{{ r.seq }}期 {{ r.kind_label || planKindLabel(r.kind) }} | {{ r.due_date || '—' }} | {{ fmtMoney(r.amount_due) }} | {{ fmtMoney(r.settled_due) }} | {{ fmtMoney(r.outstanding) }} | 该催 |
已逾期({{ planOverdue.length }})
| 团号 | 客户 | 期次 | 应收日 | 该期金额 | 已核销 | 还差 | 逾期天数 | 操作 |
|---|---|---|---|---|---|---|---|---|
| {{ r.tour_no }} | {{ r.customer }} | 第{{ r.seq }}期 {{ r.kind_label || planKindLabel(r.kind) }} | {{ r.due_date || '—' }} | {{ fmtMoney(r.amount_due) }} | {{ fmtMoney(r.settled_due) }} | {{ fmtMoney(r.outstanding) }} | 逾期 {{ r.overdue_days }} 天 |
总欠款
{{ fmtMoney(overdueTotal) }}
超30天
{{ overdue30 }}
超60天
{{ overdue60 }}
超90天
{{ overdue90 }}
| 团号 | 客户 | 销售 | 团款 | 欠款 | 逾期天数 |
|---|---|---|---|---|---|
| {{ o.tour_no }} | {{ o.customer_name||'—' }} | {{ o.sales_name||'—' }} | {{ fmtMoney(o.total_amount) }} | {{ fmtMoney(o.unpaid) }} | {{ o.overdue_days }} 天 严重催收关注 |
没有逾期欠款
⏳ 待审核支出
| 日期 | 团号 | 线路 | 科目 | 金额 | 摘要 | 记录人 | 操作 |
|---|---|---|---|---|---|---|---|
| {{ f.record_date }} | {{ f.tour_no||'—' }} | {{ f.subject_name || f.category || '—' }} | {{ fmtMoney(f.amount) }} | {{ f.description_text || f.description || '—' }} | {{ f.created_by_name||'—' }} |
暂无待审核的支出
待入账 {{ pendingPayList.length }} 笔 · 合计 {{ fmtMoney(pendingPayTotal) }}
其中 {{ pendingPayNoAccount }} 笔未关联收款账户,无法入账,请先在收款记录上补选账户
| 团号 | 出发日期 | 客户 | 销售 | 科目 | 收款方式 | 平台/单号 | 实收金额 | 到账日期 | 录入人 | 凭证 | 操作 | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| {{ p.tour_no || '—' }} | {{ p.departure_date || '—' }} | {{ p.customer_name || '—' }} | {{ p.sales_name || '—' }} | {{ p.subject_name || '—' }} | {{ p.payment_method || '—' }} · {{ p.platform }} | {{ p.platform_order_no || '—' }} | {{ fmtMoney(p.actual_amount ?? p.amount_received) }} | {{ p.arrival_date || '—' }} | {{ p.created_by_name || '—' }} | 凭证{{ vi+1 }}、— |
太好了,没有待入账的收款
收入科目
| {{ s.name }} | 内置 |
支出科目
| {{ s.name }} | 内置 |
| 账户名称 | 账号 | 开户行 | 类型 | 性质 | 扣点 | 入账账号 | 期初 | 当前 | 操作 |
|---|---|---|---|---|---|---|---|---|---|
| {{ a.name }} | {{ a.account_no||'—' }} | {{ a.bank_name||'—' }} | {{ a.account_type }} | {{ a.account_nature||'公账' }} | {{ a.platform_fee_rate ? a.platform_fee_rate+'%' : '-' }} | {{ depositName(a.deposit_account_id) }} | {{ fmtMoney(a.balance) }} | {{ fmtMoney(a.current_balance) }} |
暂无账户
| 申请日期 | 团期 | 客户 | 类型 | 原值→新值 | 金额变动 | 申请人 | 原因 | 操作 |
|---|---|---|---|---|---|---|---|---|
| {{ ch.applied_at?.slice(0,10) }} | {{ ch.tour_no }} {{ ch.title }} | {{ ch.customer_name }} | {{ {pax:'改人数',price:'改价格',date:'改日期',room:'改房型',name:'换旅客',other:'其他'}[ch.change_type] }} | {{ ch.old_value }} → {{ ch.new_value }} | {{ fmtMoney(ch.amount_change) }} | {{ ch.applied_by_name }} |
暂无待审核的变更
垫付报销(待报销合计 {{ fmtMoney(advances.total) }})
员工垫付的成本,月底按人汇总报销| 垫付人 | 笔数 | 垫付总额 | 操作 |
|---|---|---|---|
| {{ s.advance_name }} | {{ s.count }} | {{ fmtMoney(s.total) }} |
暂无待报销的垫付
待报销明细
凭证「待补」的可先补传,不影响已登记的垫付;报销时会一并核对
| 团号 | 项目 | 金额 | 供应商 | 垫付人 | 凭证 |
|---|---|---|---|---|---|
| {{ it.tour_no }} | {{ it.item || it.category }} | {{ fmtMoney(it.total_price) }} | {{ it.supplier||'—' }} | {{ it.advance_name }} | ✓ 已有 待补 |
批量付款(按供应商)
同一供应商的团成本 + 订单成本一起付,传一次水单、选一次账户;付款方式按账户类型记录| 供应商 | 待付笔数 | 合计金额 | 操作 |
|---|---|---|---|
| {{ s.supplier }} | {{ s.count }} | {{ fmtMoney(s.total) }} |
没有待付款的成本
提成计算
{{ commResult.message }}
{{ k }}{{ v.pax||0 }}人 · {{ fmtMoney(v.total||0) }}{{ v.volume?'(含量奖 ¥'+fmt(v.volume)+')':'' }}
选择月份后点击「计算提成」
提成明细
暂无提成数据,请先计算
季度考核与发放由财务线下核算,本页仅供查看进度。系统不做结算、不会自动扣款。
加载中…
暂无数据,请点「刷新」
季度 {{ qreview.quarter }}({{ qreview.range && qreview.range.from }} ~ {{ qreview.range && qreview.range.to }})· 扣款参考月份 {{ qreview.deduct_month }} · 统计日 {{ qreview.today }}
⚠️ {{ qreview.warning }}
本季度已结束({{ qreview.range && qreview.range.to }})
| 计调 | 季度目标(万) | 已实现(万) | 已实现团数 | 预计(对照,万) | 完成率 | 当季已发 | 参考系数 | 扣款参考月份 | 说明 | |||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| {{ qreviewOpen[it.user_id] ? '▾' : '▸' }} | {{ it.user_name }} | {{ it.target_amount ? (it.target_amount/10000).toFixed(2) : '—' }} | {{ ((it.realized_amount||0)/10000).toFixed(2) }} | {{ it.realized_tours || 0 }} | {{ ((it.done_amount||0)/10000).toFixed(2) }} | — {{ ((it.rate||0)*100).toFixed(1) }}% | {{ fmt(it.paid && it.paid.total ? it.paid.total : 0) }} | — {{ it.coef }} | {{ qreview.deduct_month }} | {{ it.error }} 未设季度目标,不参与考核 应发参考 {{ fmt(it.due_amount||0) }} · 调整 {{ fmt(it.adjust_amount||0) }} ⚠️ {{ it.readiness.months_without_records.join(' / ') }} 还没算过月度提成,「当季已发」可能不完整 | ||||||||||||
|
本季度各团(已实现口径)
本季度暂无已实现团
当季已发(按月度提成记录)
当季尚无提成记录
{{ qreview.rule }}
|
||||||||||||||||||||||
| 本季度没有计调数据 |
| 日期 | 报销人 | 类别 | 金额 | 事由 | 发票 | 状态 | 操作 |
|---|---|---|---|---|---|---|---|
| {{ e.expense_date }} | {{ e.user_name }} | {{ e.category }} | {{ fmtMoney(e.amount) }} | — | {{ {pending:'待审核',approved:'已通过',rejected:'已拒绝',paid:'已打款'}[e.status] }} |
暂无报销记录,点右上角「提交报销」
{{ {pending:'待匹配',unmatched:'待归类',matched:'已匹配',confirmed:'已入账',ignored:'已忽略'}[s.status]||s.status }}
{{ s.c }} 笔
转入 {{ fmtMoney(s.ins) }} · 转出 {{ fmtMoney(s.outs) }}
按平台归集(转入)
{{ p.platform }} {{ p.c }}笔 {{ fmtMoney(p.ins) }}
| 交易时间 | 对方单位 | 摘要 | 方向 | 金额 | 平台归类 | 状态 | 操作 |
|---|---|---|---|---|---|---|---|
| {{ (s.txn_time||'').slice(0,16) }} | {{ s.counterparty }} | {{ s.summary }} | {{ s.direction==='in'?'转入':'转出' }} | {{ s.direction==='in'?'+':'−' }}{{ fmt(s.direction==='in'?s.amount_in:s.amount_out) }} | {{ s.platform }} |
{{ bankStatusText(s.status) }}
{{ bankMatchText(s) }}
|
|
| 暂无流水,请先导入银行流水(网银导出 xlsx) | |||||||
归类付款流水
对方单位:{{ categorizeTarget?.counterparty || '—' }}
金额:{{ fmtMoney(categorizeTarget?.amount_out) }} · {{ (categorizeTarget?.txn_time||'').slice(0,10) }}
金额:{{ fmtMoney(categorizeTarget?.amount_out) }} · {{ (categorizeTarget?.txn_time||'').slice(0,10) }}
{{ s.biz_type==='公司'?'公司款':'个人款' }} · {{ s.direction==='in'?'收入':'支出' }}
{{ s.direction==='in'?'+':'−' }}{{ fmt(s.total) }}
{{ s.c }} 笔
| 时间 | 渠道 | 对方 | 方向 | 金额 | 转账单号 | 性质 | 操作 |
|---|---|---|---|---|---|---|---|
| {{ (a.txn_time||'').slice(0,16) }} | {{ a.channel }} | {{ a.counterparty }} | {{ a.direction==='in'?'收入':'支出' }} | {{ a.direction==='in'?'+':'−' }}{{ fmt(a.amount) }} | {{ a.txn_no }} | ||
| 暂无记录,点「导入账单」或「记一笔」 | |||||||
记一笔私账
月营收
{{ fmtMoney(opsSummary.revenue) }}
直接成本
{{ fmtMoney(opsSummary.directCost) }}
返佣
{{ fmtMoney(opsSummary.rebates) }}
系统手续费
{{ fmtMoney(opsSummary.fees) }}
管理费用
{{ fmtMoney(opsSummary.overheadCost) }}
毛利
{{ fmtMoney(opsSummary.grossProfit) }}
净利(本月利润)
{{ fmtMoney(opsSummary.netProfit) }}
已收款
{{ fmtMoney(opsSummary.collected) }}
费用分类汇总
| 分类 | 子类 | 金额 | 笔数 |
|---|---|---|---|
| {{ {personnel:'人力',office:'办公',platform:'平台',business:'业务',team:'团建',tax:'税务'}[c.category]||c.category }} | {{ c.sub_category }} | {{ fmtMoney(c.total) }} | {{ c.cnt }} |
暂无费用,点「+ 新增费用」录入
费用明细
| 分类 | 子类 | 月份 | 金额 | 收款方 | 说明 | 附件 | 操作 |
|---|---|---|---|---|---|---|---|
| {{ {personnel:'人力',office:'办公',platform:'平台',business:'业务',team:'团建',tax:'税务'}[c.category] }} | {{ c.sub_category }} | {{ c.month }} | {{ fmtMoney(c.amount) }} | {{ c.payee||'—' }} | {{ c.description||'—' }} | — |
暂无费用记录
新增费用
已选:{{ opsForm.invoice_name }}
表格导入预览
识别到 {{ opsFileTotal }} 条数据 · 金额候选列: {{ opsAmountCandidates.join(', ') || '无' }}
| {{ h }} |
|---|
| {{ r[h]||'—' }} |
月度
营收
台账
同行
利润
月度收入
{{ fmtMoney(report.finance?.total_income) }}
月度支出
{{ fmtMoney(report.finance?.total_expense) }}
月度利润
{{ fmtMoney(report.finance?.total_income-report.finance?.total_expense) }}
月度团期
{{ report.tours?.total_tours||0 }}
出行人数
{{ report.tours?.total_pax||0 }}
支出分类
| 类别 | 金额 |
|---|---|
| {{ e.category||'未分类' }} | {{ fmtMoney(e.total) }} |
本月暂无支出记录
销售业绩
| 销售 | 订单数 | 销售额 |
|---|---|---|
| {{ c.name }} | {{ c.booking_count }} | {{ fmtMoney(c.total_sales) }} |
本月暂无销售数据
{{ partnerReport.year }}年 联盟/品牌业绩统计(大客户协议参考)
按联盟
| 联盟 | 客户数 | 订单 | 销售额 |
|---|---|---|---|
| {{ a.alliance_name }} | {{ a.customer_count }} | {{ a.booking_count }} | {{ fmtMoney(a.total_sales) }} |
暂无联盟数据
按品牌
| 品牌 | 客户数 | 订单 | 销售额 |
|---|---|---|---|
| {{ b.brand_name }} | {{ b.customer_count }} | {{ b.booking_count }} | {{ fmtMoney(b.total_sales) }} |
暂无品牌数据
按客户类型
| 类型 | 客户数 | 销售额 |
|---|---|---|
| {{ t.customer_type }} | {{ t.customer_count }} | {{ fmtMoney(t.total_sales) }} |
暂无类型数据
| 月份 | 订单 | 人数 | 营收 | 已收 | 收款率 |
|---|---|---|---|---|---|
| {{ r.month }} | {{ r.bookings }} | {{ r.total_pax }} | {{ fmtMoney(r.revenue) }} | {{ fmtMoney(r.collected) }} | {{ r.revenue>0?(r.collected/r.revenue*100).toFixed(1)+'%':'0%' }} |
暂无营收数据
| 团号 | 线路 | 出发 | 人数 | 营收 | 已收 | 成本 | 利润 |
|---|---|---|---|---|---|---|---|
| {{ l.tour_no }} | {{ l.title?.slice(0,18) }} | {{ l.departure_date }} | {{ l.total_pax }} | {{ fmtMoney(l.revenue) }} | {{ fmtMoney(l.collected) }} | {{ fmtMoney(l.tour_costs+l.booking_costs) }} | {{ fmtMoney(l.revenue-l.tour_costs-l.booking_costs) }} |
暂无台账数据
| # | 分销商 | 订单 | 人数 | 贡献额 | 已付 | 平台代收中 | 客户真欠款 |
|---|---|---|---|---|---|---|---|
| {{ i+1 }} | {{ a.agent_name }} | {{ a.bookings }} | {{ a.total_pax }} | {{ fmtMoney(a.total_amount) }} | {{ fmtMoney(a.paid_amount) }} | {{ fmtMoney(a.pending_amount) }} | {{ fmtMoney(a.unpaid) }} |
暂无贡献数据
目的地利润
| 目的地 | 操作计调 | 团数 | 人数 | 收入 | 成本 | 利润 | 利润率 |
|---|---|---|---|---|---|---|---|
| {{ d.destination }} | {{ d.operators || '—' }} | {{ d.tours }} | {{ d.pax }} | {{ fmtMoney(d.revenue) }} | {{ fmtMoney(d.cost) }} | {{ fmtMoney(d.profit) }} | {{ d.margin }}% |
该月暂无目的地利润数据
各销售利润
| # | 销售 | 订单 | 人数 | 收入 | 成本 | 利润 | 利润率 |
|---|---|---|---|---|---|---|---|
| {{ i+1 }} | {{ s.name }} | {{ s.orders }} | {{ s.pax }} | {{ fmtMoney(s.revenue) }} | {{ fmtMoney(s.cost) }} | {{ fmtMoney(s.profit) }} | {{ s.margin }}% |
该月暂无销售利润数据
账号管理
员工档案
| 用户名 | 姓名 | 角色 | 状态 | 操作 |
|---|---|---|---|---|
| {{ u.username }} | {{ u.name }} | {{ {admin:'管理员',operator:'计调',sales:'销售',finance:'财务'}[u.role]||u.role }} | {{ u.status==='active'?'启用':'停用' }} |
暂无用户
{{ userForm.id?'编辑':'添加' }}账号
| 姓名 | 部门 | 职位 | 电话 | 操作 |
|---|---|---|---|---|
| {{ e.name }} | {{ e.department }} | {{ e.position }} | {{ e.phone }} |
暂无员工
{{ hrEmpForm.id?'编辑':'添加' }}员工
员工管理
部门设置
岗位权限
| 姓名 | 部门 | 职位 | 电话 | 账号 | 角色 | 状态 | 操作 |
|---|---|---|---|---|---|---|---|
| {{ e.name }} | {{ e.department||'—' }} | {{ e.position||'—' }} | {{ e.phone||'—' }} | {{ e.username||'—' }} | {{ e.role||'—' }} | {{ e.status==='active'?'在职':'离职' }} |
暂无员工
{{ hrEmpForm.id?'编辑':'添加' }}员工
| 部门 | 人数 | 负责人 | 操作 |
|---|---|---|---|
| {{ d.name }} | {{ d.count }}人 | {{ d.leader||'—' }} | |
| 未分配 | {{ deptUnassigned }}人 | — | 在员工里选部门即可归类 |
暂无部门
选择员工
{{ e.name }} (管理员)
管理员拥有全部权限,无需单独配置。
{{ permUser.name }} 的权限配置 已保存 (自动保存中...)
切换角色会自动套用该角色默认权限,可再勾选增减
共 {{ orders.length }} 条
收客合计:{{ ordersPax }} 人| 团号 | 线路 | 出发日 | 分销商 | 销售 | 人数 | 已录名单 | 应收款 | 已收款 | 待入账 | 未收款 | 备注 | 状态 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| {{ o.tour_no }} | {{ o.tour_title }} | {{ o.departure_date }} | {{ o.customer_name }} {{ o.contact_name }} |
{{ o.sales_name||'—' }} | {{ o.pax }} | {{ o.passenger_count||0 }}/{{ o.pax||0 }}{{ (o.passenger_count||0) >= (o.pax||0) ? ' ✓' : '' }} | {{ fmtMoney(o.total_amount) }} | {{ fmtMoney(o.paid_amount) }}超收 {{ fmtMoney(overPaid((o.paid_amount||0)+(o.pending_amount||0), o.total_amount)) }} | {{ fmtMoney(o.pending_amount) }} | {{ fmtMoney(Math.max(0, (o.total_amount||0) - (o.paid_amount||0) - (o.pending_amount||0))) }} | {{ {pending:'待确认',confirmed:'已确认',paid:'已付',cancelled:'取消',reserved:'预留'}[o.status]||o.status }} | |
|
线路:{{ o.tour_title }}
出发:{{ o.departure_date }}
人数:{{ o.pax }}
已录:{{ o.passenger_count||0 }}/{{ o.pax||0 }}
应收:{{ fmtMoney(o.total_amount) }}
已收:{{ fmtMoney(o.paid_amount) }}
未收:{{ fmtMoney(Math.max(0,(o.total_amount||0)-(o.paid_amount||0)-(o.pending_amount||0))) }}
备注:{{ o.notes }}
|
暂无订单
按销售人员 共{{ orders.length }}条
{{ g.name }}
{{ g.count }}条{{ g.pax }}人{{ fmtMoney(g.revenue) }}▼
| 团号 | 线路 | 出发日 | 分销商 | 销售 | 人数 | 已录名单 | 应收款 | 已收款 | 待入账 | 未收款 | 备注 | 状态 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| {{ o.tour_no }} | {{ o.tour_title }} | {{ o.departure_date }} | {{ o.customer_name }} {{ o.contact_name }} |
{{ o.sales_name||'—' }} | {{ o.pax }} | {{ o.passenger_count||0 }}/{{ o.pax||0 }}{{ (o.passenger_count||0) >= (o.pax||0) ? ' ✓' : '' }} | {{ fmtMoney(o.total_amount) }} | {{ fmtMoney(o.paid_amount) }}超收 {{ fmtMoney(overPaid((o.paid_amount||0)+(o.pending_amount||0), o.total_amount)) }} | {{ fmtMoney(o.pending_amount) }} | {{ fmtMoney(Math.max(0, (o.total_amount||0) - (o.paid_amount||0) - (o.pending_amount||0))) }} | {{ {pending:'待确认',confirmed:'已确认',paid:'已付',cancelled:'取消',reserved:'预留'}[o.status]||o.status }} | |
|
线路:{{ o.tour_title }}
出发:{{ o.departure_date }}
人数:{{ o.pax }}
已录:{{ o.passenger_count||0 }}/{{ o.pax||0 }}
应收:{{ fmtMoney(o.total_amount) }}
已收:{{ fmtMoney(o.paid_amount) }}
未收:{{ fmtMoney(Math.max(0,(o.total_amount||0)-(o.paid_amount||0)-(o.pending_amount||0))) }}
备注:{{ o.notes }}
|
暂无订单
{{ currentTour?.title }}
团号
{{ currentTour.tour_no }}
目的地
{{ currentTour.destination||'—' }}
出发日期
{{ currentTour.departure_date }}
天数
{{ currentTour.days }}天
成人价
{{ fmtMoney(currentTour.adult_price) }}
儿童不占床
{{ fmtMoney(currentTour.child_no_bed_price) }}
儿童占床
{{ fmtMoney(currentTour.child_with_bed_price) }}
单房差
{{ fmtMoney(currentTour.single_room_supplement) }}
状态
已锁团(只读)满位(自动){{ statusText(currentTour.status) }}
报名名单 ({{ currentTour.bookings?.length||0 }})
成本明细
财务汇总
地接安排
导游报账
文档打印
操作日志
行程安排
共 {{ currentTour.days }} 天行程,已录 {{ itineraries.length }} 天
第 {{ it.day_no }} 天 {{ it.day_date || '' }}
暂无行程,点"添加一天"开始录入
出团通知书
行程+名单+团期信息
团队结算表
各社应收/已收/未收
已保存
确认函件
报名确认函
点击卡片在新窗口打开,可直接打印或另存为 PDF
| 日期 | 项目 | 供应商 | 联系人 | 电话 | 备注 | 操作 |
|---|---|---|---|---|---|---|
暂无地接安排,点击上方按钮添加
| 导游 | 日期 | 项目 | 金额 | 凭证 | 状态 |
|---|---|---|---|---|---|
| {{ g.guide_name||'—' }} | {{ g.expense_date||'—' }} | {{ g.item||'—' }} | {{ fmtMoney(g.amount) }} | {{ g.voucher||'—' }} | {{ g.status||'待报' }} |
导游报账模块待开发——数据将从汇旅通导入
| 时间 | 操作人 | 操作 | 对象 | 详情 |
|---|---|---|---|---|
| {{ a.created_at }} | {{ a.user_name||'—' }} | {{ logActionText(a.action) }} | {{ logTableText(a.table_name) }} |
暂无操作记录
报名订单
旅客护照 ({{ currentTour.passenger_rows?.length||0 }})
| 客户 | 销售 | 航班 | 人数 | 状态 | 单价 | 应收款 | 已收款 | 备注 | 待入账 | 未收款 | 操作 |
|---|---|---|---|---|---|---|---|---|---|---|---|
| {{ b.customer_name }} | {{ b.sales_name||'—' }} | {{ b.flight_no||'—' }} {{ b.flight_time||'' }} |
{{ b.pax }} | {{ statusText(b.status) }} | {{ fmtMoney(b.sale_price) }} | {{ fmtMoney(b.total_amount) }} | {{ fmtMoney(b.paid_amount) }}超收 {{ fmtMoney(overPaid((b.paid_amount||0)+(b.pending_amount||0), b.total_amount)) }} | {{ fmtMoney(b.pending_amount) }} | {{ fmtMoney(Math.max(0, (b.total_amount||0) - (b.paid_amount||0) - (b.pending_amount||0))) }} |
暂无报名
共 {{ currentTour.passenger_rows?.length||0 }} 位旅客 · 点击证件图片可放大核对(窗口可拖动缩放)
导出游客名单
导出机票名单
导出旅游局名单
导出保险名单
| 证件图片 | 旅客姓名 | 性别 | 证件号 | 有效期至 | 发证机关 | 状态 |
|---|---|---|---|---|---|---|
|
|
{{ p.name }} | {{ p.gender||'—' }} | {{ p.id_card||'—' }} | {{ p.expiry_date||'—' }} | {{ p.issue_place||'—' }} | {{ {pending:'待确认',confirmed:'已确认',paid:'已付',cancelled:'取消',reserved:'预留'}[p.booking_status]||p.booking_status }} |
暂无旅客(各订单录入名单后自动汇总)
团级公共成本
{{ fmtMoney(totalCost) }}
订单独立成本
{{ fmtMoney(currentTour.profit_summary?.total_own_costs||0) }}
成本合计
{{ fmtMoney(totalCost + (currentTour.profit_summary?.total_own_costs||0)) }}
毛利率
{{ (currentTour.profit_summary?.total_revenue>0 ? ((currentTour.profit_summary.gross_profit/currentTour.profit_summary.total_revenue*100).toFixed(1)) : 0) }}%
(大交通/地接/酒店等公共支出,可按人数均摊到各订单)
| 类别 | 项目 | 数量 | 单价 | 小计 | 均摊方式 | 供应商 | 付款状态 | 操作 |
|---|---|---|---|---|---|---|---|---|
| {{ c.category }} | {{ c.item }} | {{ c.quantity }} | {{ fmtMoney(c.unit_price) }} | {{ fmtMoney(c.total_price) }} | {{ shareText(c.share_type) }}(指定 {{ shareBookingsCount(c) }} 张) | {{ c.supplier||'—' }} | {{ costTagText(c) }} {{ c.voucher_path }} | |
| 总计 | {{ fmtMoney(totalCost) }} | |||||||
暂无团级成本
各订单独立成本(单房差/签证费等每单独立成本,在订单详情中添加)
| 客户 | 人数 | 订单额 | 独立成本 | 均摊成本 | 总成本 | 利润 | 操作 |
|---|---|---|---|---|---|---|---|
| {{ b.customer_name }} | {{ b.pax }} | {{ fmtMoney(b.total_amount) }} | {{ fmtMoney(b.own_cost) }} | {{ fmtMoney(b.shared_cost) }} | {{ fmtMoney(b.total_cost) }} | {{ fmtMoney(b.profit) }} |
各订单暂无独立成本
报名总收入
{{ fmtMoney(currentTour.profit_summary?.total_revenue) }}
全部成本
{{ fmtMoney(currentTour.profit_summary?.total_costs) }}
团级{{ fmtMoney((currentTour.profit_summary?.total_shared||0)+(currentTour.profit_summary?.total_unshared||0)) }} + 订单{{ fmtMoney(currentTour.profit_summary?.total_own_costs) }}
团期毛利
{{ fmtMoney(currentTour.profit_summary?.gross_profit) }}
各订单利润明细
| 客户 | 销售额 | 自身成本 | 均摊成本 | 总成本 | 利润 | 利润率 |
|---|---|---|---|---|---|---|
| {{ b.customer_name }} | {{ fmtMoney(b.total_amount) }} | {{ fmtMoney(b.own_cost) }} | {{ fmtMoney(b.shared_cost) }} | {{ fmtMoney(b.total_cost) }} | {{ fmtMoney(b.profit) }} | {{ b.total_amount>0 ? ((b.profit/b.total_amount*100).toFixed(1)+'%') : '-' }} |
暂无有效订单
{{ tourForm.id ? '编辑团期' : '开新团' }}
是代理产品
✓ {{ tourForm.attachment_name }}
价格体系
出团资料(出团通知书/结算表用)
复制团期 · 勾选出发日期
源团期:{{ copyModal.source?.tour_no }} {{ copyModal.source?.title }}({{ copyModal.source?.days }} 天)
{{ copyModal.month }}
{{ wd }}
{{ c.day }}
已选 {{ copyModal.selected.length }} 个日期
添加报名 {{ currentTour?.tour_type ? '· '+currentTour.tour_type : '' }}
以下是您最近的客户,继续输入可搜索全部
{{ c.company_name || c.name }} {{ c.contact_name||'' }} {{ c.phone||'' }}
未搜到,点左边直接添加
已选: {{ selectedCustomerName }}
预留订单下定金后自动转确认
项目
单价
人数
{{ item.label }}
合计:{{ fmtMoney(bookingTotalAmount) }}
一单一价时可在此备注,格式:项目+金额
订单金额为 0,暂不生成收款计划
请先填写有效人数,再生成收款计划
暂无法生成收款计划
| 期次 | 名称 | 应收日 | 金额 |
|---|---|---|---|
| 第{{ it.seq }}期 | {{ planKindLabel(it.kind) }} | —(待选团期) {{ it.due_date }} | {{ fmtMoney(it.amount_due) }} |
定金 {{ fmtMoney(bookingPlanPreview.deposit_per_person) }}/人 × {{ bookingPlanPreview.headcount }} 人 = {{ fmtMoney(bookingPlanPreview.deposit_amount) }}
(原 {{ fmtMoney(bookingPlanPreview.deposit_raw) }},已封顶到订单总价)
婴儿不占机位,不计入定金人数
✓ 计划合计与订单合计一致({{ fmtMoney(bookingPlanPreview.total_amount) }})
计划合计 {{ fmtMoney(planSum) }} ≠ 订单合计 {{ fmtMoney(bookingPlanPreview.total_amount) }}
录单后如需调整期次金额或应收日,请到订单详情的「收款计划」里改。
{{ costForm.id ? '编辑成本' : '添加成本' }}
合计:{{ fmtMoney(costLinesTotal) }}
冲减=供应商退/赔给我们的钱(如联泰补偿 100 元/人 × 14 人 = -1,400):单价填负数,保存后自动结清,不需要请款、不会生成付款,毛利按冲减后的成本算。
包车费/导游费等公共成本建议均摊;仅记录的团级开支选不均摊
本团暂无可选订单(已取消/已删除的订单不参与分摊)
{{ (costForm.share_bookings||[]).length ? ('已选 ' + (costForm.share_bookings||[]).length + ' 张订单;未勾选的订单完全不承担这笔成本') : '至少选择 1 张订单(未勾选的订单完全不承担这笔成本)' }}
选「员工垫付」=这笔钱已由员工先垫,保存后直接进「财务 → 垫付报销」,付款凭证可稍后补传
管理员 / 财务可代他人登记;其他角色只能记本人垫付
✓ {{ v.name || v.path }}
✓ {{ costForm.voucher_name || costForm.voucher_path }}
{{ payForm.id ? '修改收款' : '收款' }} · {{ currentBooking?.customer_name }} 订单总额 {{ fmtMoney(currentBooking?.total_amount) }} · 已入账 {{ fmtMoney(currentBooking?.paid_amount) }} · 待入账 {{ fmtMoney(currentBooking?.pending_amount) }}(超收{{ fmtMoney(overPaid((currentBooking?.paid_amount||0)+(currentBooking?.pending_amount||0), currentBooking?.total_amount)) }})
{{ fmtMoney(actualReceived) }}
{{ fmtMoney(payForm.amount_received * payForm.exchange_rate) }}
📎 点击选择 / 拖拽图片进来 / Ctrl+V 粘贴截图(可多张)
本单收款记录
| 科目 | 核销期次 | 方式 | 账户 | 应收 | 实收 | 到账日期 | 已收款 | 已入账 | 凭证 | 操作 |
|---|---|---|---|---|---|---|---|---|---|---|
| {{ p.subject_name||'收款' }} | {{ planLabelById(p.plan_id) }}— | {{ p.payment_method||'—' }} | {{ p.account_name||'—' }} | {{ fmtMoney(p.amount_due) }} | {{ fmtMoney(p.actual_amount ?? p.amount_received) }} | {{ p.arrival_date||'—' }} | {{ p.payment_status==='paid'?'已收款':'未收款' }} | {{ p.status==='confirmed'?'已入账':'待入账' }} | 凭证{{ vi+1 }}、— |
暂无收款记录
{{ payForm.id ? '修改收款' : '收款' }} · {{ currentBooking?.customer_name }} 订单总额 {{ fmtMoney(currentBooking?.total_amount) }} · 已入账 {{ fmtMoney(currentBooking?.paid_amount) }} · 待入账 {{ fmtMoney(currentBooking?.pending_amount) }}(超收{{ fmtMoney(overPaid((currentBooking?.paid_amount||0)+(currentBooking?.pending_amount||0), currentBooking?.total_amount)) }})
{{ wxPreview.text }}
{{ fmtMoney(actualReceived) }}
📎 点击选择 / 拖拽图片进来 / Ctrl+V 粘贴截图(可多张)
冲账 无需上传凭证:请在「备注信息」里写清冲账依据(与哪笔款/哪家单位对冲、依据是什么)。备注为必填。
本单收款记录
| 科目 | 方式 | 账户 | 应收 | 实收 | 到账日期 | 收款状态 | 入账状态 | 凭证 | 操作 |
|---|---|---|---|---|---|---|---|---|---|
| {{ p.subject_name||'收款' }} | {{ p.payment_method||'—' }} | {{ p.account_name||'—' }} | {{ fmtMoney(p.amount_due) }} | {{ fmtMoney(p.actual_amount ?? p.amount_received) }} | {{ p.arrival_date||'—' }} | {{ p.payment_status==='paid' ? '已收款' : '未收款' }} | {{ p.status==='confirmed' ? '已入账' : '待入账' }} | 凭证{{ vi+1 }}、— |
暂无收款记录
退款 · {{ currentBooking?.customer_name }} 订单总额 {{ fmtMoney(currentBooking?.total_amount) }} · 已收 {{ fmtMoney(currentBooking?.paid_amount) }}
📎 点击选择 / 拖拽图片 / Ctrl+V 粘贴截图(可多张)
退款记录
| 退款单号 | 金额 | 方式 | 日期 | 备注 | 凭证 | 操作 |
|---|---|---|---|---|---|---|
| {{ r.refund_no }} | {{ fmtMoney(r.amount) }} | {{ r.refund_method }} | {{ r.refund_date||'—' }} | {{ r.notes||'—' }} | 凭证{{ vi+1 }}、— |
暂无退款记录
返佣 · {{ rebateForm.needPickBooking ? '请选择订单' : currentBooking?.customer_name }}
返佣记录
| 类型 | 金额 | 收款账号 | 备注 | 操作 |
|---|---|---|---|---|
| {{ r.rebate_type }} | {{ fmtMoney(r.amount) }} | {{ r.account||'—' }} | {{ r.notes||'—' }} |
暂无返佣记录
订单变更申请 · {{ currentBooking?.customer_name }}
变更记录
| 单号 | 类型 | 原值→新值 | 金额变动 | 状态 | 操作 |
|---|---|---|---|---|---|
| {{ ch.change_no }} | {{ {pax:'改人数',sale_price:'改价格',total_amount:'改总额',status:'改状态',other:'其他'}[ch.change_type]||ch.change_type }} | {{ ch.old_value }} → {{ ch.new_value }} | {{ fmtMoney(ch.amount_change) }} | {{ {pending:'待审',approved:'已通过',rejected:'已拒绝'}[ch.status] }} |
修改订单
项目
单价
人数/份数
合计:{{ fmtMoney(editBookingTotal) }}
以下是您最近的客户,继续输入可搜索全部
{{ c.company_name || c.name }} {{ c.contact_name||'' }} {{ c.phone||'' }}
已选: {{ editCustomerSearchName }}
{{ noteView.title }} · 备注
{{ noteView.content }}
订单备注 · {{ bookingNoteBooking?.customer_name || '' }}
订单备注(销售填写)
{{ bookingNoteBooking.notes }}
{{ n.created_at }} · {{ n.created_by_name || '未知用户' }}
{{ n.note }}
暂无追加备注
申请开发票 · {{ invoiceForm.booking_name }}
已收款(含待入账){{ fmtMoney(invoiceForm.paid_amount) }}(其中待入账 {{ fmtMoney(invoiceForm.pending_amount) }}) | 已开票 {{ fmtMoney(invoiceForm.already_invoiced) }} | 剩余可开 {{ fmtMoney(invoiceForm.remaining) }}
该订单已申请的发票
{{ iv.invoice_title }} 税号{{ iv.tax_no||'—' }}
{{ fmtMoney(iv.amount) }}{{ iv.status==='issued'?'已开票':'待开票' }}
旅客名单 · {{ currentBooking?.customer_name }}
名单 ({{ passengers.length }}/{{ currentBooking?.pax }}人)
单个添加
扫描证件
批量导入
| 姓名 | 拼音 | 性别 | 出生日期 | 证件类型 | 证件号码 | 有效期至 | 国籍 | 护照扫描件 | 类型 | 操作 |
|---|---|---|---|---|---|---|---|---|---|---|
| {{ p.name }} | {{ p.pinyin_name||'—' }} | {{ p.gender||'—' }} | {{ p.birth_date||'—' }} | {{ p.doc_type||'身份证' }} | {{ p.id_card||'—' }} | {{ p.expiry_date||'—' }} | {{ p.nationality||'—' }} | 查看护照 未上传 | {{ priceTypeText(p.price_type) }} |
暂无旅客,可"单个添加"、"扫描证件"或"批量导入"
识别服务未配置
1. 打开 百度智能云 OCR 注册并实名认证2. 创建应用,领取「身份证识别」「护照识别」免费额度(各500次/天)
3. 把 API Key 和 Secret Key 填到下面:
请联系管理员配置证件识别服务后再使用。
{{ scanDragOver ? '松手即可上传' : '把护照图片拖到这里' }}
也可以点击这里选文件,或截图后按 Ctrl+V 粘贴(可多张,识别取第一张)
若 Ctrl+V 没反应:先点一下上面这块虚线区(弹出选择文件后点「取消」),再按 Ctrl+V —— 这是浏览器对粘贴焦点的限制
已选 {{ scanForm.images.length }} 张证件图(点击预览可放大,识别只取第一张)
识别结果(左图右字段,同屏逐项核对;点图可全屏放大)
未选择证件图
识别只取第一张 · 点图可全屏放大
使用方法:
1. 下载导入模版(Excel可打开)2. 在Excel里填好名单,直接复制粘贴到下方文本框
3. 每行:姓名、性别、证件号、电话、价格类型(成人/儿童不占床/儿童占床)
4. 价格类型留空默认"成人",价格自动按团期价格计算
{{ importResult }}
{{ zoomImageList.length > 1 ? '第 '+(zoomImageIndex+1)+' / '+zoomImageList.length+' 张 · ' : '' }}拖动标题栏移动 · 滚轮/按钮可放大
{{ Math.round(zoomScale*100) }}%
团队结算单 · {{ currentTour?.tour_no }}
团 队 结 算 单
收入
{{ fmtMoney(settleRevenue) }}
成本
{{ fmtMoney(settleCostAll) }}
利润
{{ fmtMoney(currentTour.profit_summary?.gross_profit) }}
毛利率 {{ settleRevenue>0 ? ((currentTour.profit_summary?.gross_profit||0)/settleRevenue*100).toFixed(2) : '0.00' }}% | 返佣 {{ fmtMoney(tourRebateTotal) }} | 系统手续费 {{ fmtMoney(currentTour.profit_summary?.total_fees||0) }}
| 分区汇总 | ||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 分区 | 笔数 | 金额 | 待处理 | |||||||||||||||||
| — | 报名收入 | {{ settleBookings.length }} | {{ fmtMoney(settleRevenue) }} | {{ settleOwed>0 ? fmtMoney(settleOwed) : '已结清' }} | ||||||||||||||||
| ||||||||||||||||||||
| - | 系统手续费 | — | {{ fmtMoney(currentTour.profit_summary?.total_fees||0) }} | 平台已扣 | ||||||||||||||||
| — | 大交通 | {{ settleGroupCount('transport') }} | {{ fmtMoney(settleGroupTotal('transport')) }} | {{ settleGroupUnpaid('transport')>0 ? fmtMoney(settleGroupUnpaid('transport')) : '已结清' }} | ||||||||||||||||
| ||||||||||||||||||||
| — | 地接 | {{ settleGroupCount('ground') }} | {{ fmtMoney(settleGroupTotal('ground')) }} | {{ settleGroupUnpaid('ground')>0 ? fmtMoney(settleGroupUnpaid('ground')) : '已结清' }} | ||||||||||||||||
| ||||||||||||||||||||
| — | 酒店住宿 | {{ settleGroupCount('hotel') }} | {{ fmtMoney(settleGroupTotal('hotel')) }} | {{ settleGroupUnpaid('hotel')>0 ? fmtMoney(settleGroupUnpaid('hotel')) : '已结清' }} | ||||||||||||||||
| ||||||||||||||||||||
| — | 其它成本 | {{ settleGroupCount('other') }} | {{ fmtMoney(settleGroupTotal('other')) }} | {{ settleGroupUnpaid('other')>0 ? fmtMoney(settleGroupUnpaid('other')) : '已结清' }} | ||||||||||||||||
| ||||||||||||||||||||
| 基础信息 | |||||
|---|---|---|---|---|---|
| 产品名称 | {{ currentTour?.title || '—' }} | 团期编号 | {{ currentTour?.tour_no || '—' }} | ||
| 发团日期 | {{ currentTour?.departure_date || '—' }} | 回团日期 | {{ currentTour?.return_date || '—' }} | ||
| 计划/使用位 | {{ settlePax }}人 | 团队状态 | {{ {open:'正常收客',paused:'暂停销售',reserved_full:'预留满位',full:'满位结团',cancelled:'取消团期'}[currentTour?.status] || currentTour?.status }} | ||
| 备注 | {{ currentTour?.notes || '—' }} | ||||
| 报名收入 | ||||||||
|---|---|---|---|---|---|---|---|---|
| 客户 | 销售 | 人数 | 应收款 | 已收款 | 待入账 | 未收款 | 备注 | |
| {{ b.customer_name }} | {{ b.sales_name || '—' }} | {{ b.pax }} | {{ fmtMoney(b.total_amount) }} | {{ fmtMoney(b.paid_amount) }} | {{ fmtMoney(b.pending_amount) }} | {{ fmtMoney(Math.max(0, (b.total_amount||0)-(b.paid_amount||0)-(b.pending_amount||0))) }} | ||
| 暂无报名 | ||||||||
| 收入小计 | {{ fmtMoney(settleRevenue) }} | {{ fmtMoney(settlePaid) }} | {{ fmtMoney(settlePending) }} | {{ fmtMoney(settleOwed) }} | ||||
| 大交通(机票/动车/汽车) | ||||||||
| 经办人 | 航司/票务 | 订票明细 | 应付金额 | 付款状态 | ||||
| {{ c.operator_name || '—' }} | {{ c.supplier || '—' }} | {{ c.item || '—' }}(备注:{{ c.notes }}) | {{ fmtMoney(c.total_price) }} | {{ costTagText(c) }} | ||||
| 暂无大交通 | ||||||||
| 大交通小计 | {{ fmtMoney(settleGroupTotal('transport')) }} | |||||||
| 地接 | ||||||||
| 经办人 | 地接社 | 费用明细 | 应付金额 | 付款状态 | ||||
| {{ c.operator_name || '—' }} | {{ c.supplier || '—' }} | {{ c.item || '—' }}(备注:{{ c.notes }}) | {{ fmtMoney(c.total_price) }} | {{ costTagText(c) }} | ||||
| 暂无地接 | ||||||||
| 地接小计 | {{ fmtMoney(settleGroupTotal('ground')) }} | |||||||
| 酒店住宿 | ||||||||
| 经办人 | 酒店名称 | 订房信息 | 应付金额 | 付款状态 | ||||
| {{ c.operator_name || '—' }} | {{ c.supplier || '—' }} | {{ c.item || '—' }}(备注:{{ c.notes }}) | {{ fmtMoney(c.total_price) }} | {{ costTagText(c) }} | ||||
| 暂无酒店 | ||||||||
| 酒店小计 | {{ fmtMoney(settleGroupTotal('hotel')) }} | |||||||
| 其它成本 | ||||||||
| 经办人 | 客户/供应商 | 费用明细 | 应付金额 | 付款状态 | ||||
| {{ c.operator_name || '—' }} | {{ c.supplier || '—' }} | {{ c.item || '—' }}(备注:{{ c.notes }}) | {{ fmtMoney(c.total_price) }} | {{ costTagText(c) }} | ||||
| 暂无其它成本 | ||||||||
| 其它成本小计 | {{ fmtMoney(settleGroupTotal('other')) }} | |||||||
| 返佣(不计入成本) | ||||||||
| {{ c.operator_name || '—' }} | {{ c.supplier || '—' }} | {{ c.item || '—' }}(备注:{{ c.notes }}) | {{ fmtMoney(c.total_price) }} | {{ costTagText(c) }} | ||||
| 返佣小计 | {{ fmtMoney(settleGroupTotal('rebate')) }} | |||||||
| 毛利润 {{ fmtMoney(currentTour.profit_summary?.gross_profit) }} | 毛利率 {{ settleRevenue>0 ? ((currentTour.profit_summary?.gross_profit||0)/settleRevenue*100).toFixed(2) : '0.00' }}% | 人均毛利 {{ fmtMoney(settlePerPaxProfit) }} | |||||||
| 团队毛利 | |||
|---|---|---|---|
| 收入合计 | {{ fmtMoney(settleRevenue) }} | 应收未收款 | {{ fmtMoney(settleOwed) }} |
| 退款 | {{ fmtMoney(settleRefundTotal) }} | 团队总成本 | {{ fmtMoney(settleCostAll) }}(含供应商冲减 {{ fmtMoney(settleCostDeducted) }},不进付款) |
| 已付款 | {{ fmtMoney(settleCostPaid) }} | 应付未付 | {{ fmtMoney(settleCostUnpaid) }} |
| 返佣(不计入成本) | {{ fmtMoney(tourRebateTotal) }} | 返佣笔数 | {{ (currentTour?.rebates || []).length + settleGroupRows('rebate').length }} |
| 系统手续费(平台已扣·已计入利润) | {{ fmtMoney(currentTour.profit_summary?.total_fees||0) }} | 说明 | 收款时已被平台扣走,已计入上方毛利润的扣减项 |
| 毛利润 | {{ fmtMoney(currentTour.profit_summary?.gross_profit) }} | 毛利率 | {{ settleRevenue>0 ? ((currentTour.profit_summary?.gross_profit||0)/settleRevenue*100).toFixed(2) : '0.00' }}% |
| 提单人 | 审核人 | ||
团队退税({{ tourRefunds.length }})
只记录,不计入毛利率与提成
| 日期 | 金额 | 原因 | 人数 | 备注 | 登记人 | |
|---|---|---|---|---|---|---|
| {{ r.refund_date || '—' }} | {{ fmt(r.amount) }} | {{ r.reason || '—' }} | {{ r.pax || 0 }} | {{ r.note || '—' }} | {{ r.created_by_name || '—' }} |
无退税记录
本团退税合计 {{ fmt(tourRefundTotal) }}
(已退客人,不计入毛利率与提成)
订单详情 · {{ bookingDetail?.customer_name }} {{ bookingDetail?.tour_no }}
团号{{ bookingDetail?.tour_no || '—' }}
线路{{ bookingDetail?.tour_title || '—' }}
销售{{ bookingDetail?.sales_name||'—' }}
{{ it.label }}{{ it.count }} 人 × {{ fmtMoney(it.price) }} = {{ fmtMoney((Number(it.count)||0)*(Number(it.price)||0)) }}
明细共 {{ bookingDetail?.pax }} 人
订单总额{{ fmtMoney(bookingDetail?.total_amount) }}
应收{{ fmtMoney(bookingDetail?.total_amount) }}
已收{{ fmtMoney(bookingDetail?.paid_amount) }}
待入账{{ fmtMoney(bookingDetail?.pending_amount) }}
未收{{ fmtMoney(Math.max(0,(bookingDetail?.total_amount||0)-(bookingDetail?.paid_amount||0)-(bookingDetail?.pending_amount||0))) }}
状态{{ {pending:'待确认',confirmed:'已确认',paid:'已付',cancelled:'取消',reserved:'预留'}[bookingDetail?.status]||bookingDetail?.status }}
备注{{ bookingDetail?.notes || '—' }}
收款计划
逾期 {{ plan.max_overdue_days }} 天
超收 {{ fmtMoney(plan.unallocated) }} 未分配(需退款或查错)
该订单暂无收款计划(老订单不回溯)。
(该团由他人负责,计划由该团负责人或管理员维护)
| 期次 | 名称 | 应收日 | 该期金额 | 已核销 | 还差 | 状态 |
|---|---|---|---|---|---|---|
| {{ it.seq }} | {{ it.kind_label }} | —(待选团期) {{ it.due_date }} 逾期 {{ it.overdue_days }} 天 还剩 {{ it.days_left }} 天 | {{ fmtMoney(it.amount_due) }} | {{ fmtMoney(it.settled_due) }} | {{ fmtMoney(it.outstanding) }} | {{ planStatusLabel(it) }} |
按计划还差(计划口径)
{{ fmtMoney(plan.outstanding || 0) }}
未收款(账务口径)
{{ fmtMoney(bookingOwed) }}
计划口径=各期「还差」之和;账务口径=订单总额 − 已收 − 待入账。两者含义不同,请勿混用。
订单结算汇总
收入(应收)
{{ fmtMoney(bookingDetail?.total_amount) }}
已收
{{ fmtMoney(bookingDetail?.paid_amount) }}
退款
{{ fmtMoney(bookingRefundTotal) }}
成本
{{ fmtMoney(bookingCostsTotal) }}
待入账 {{ fmtMoney(bookingDetail?.pending_amount) }} | 未收 {{ fmtMoney(Math.max(0,(bookingDetail?.total_amount||0)-(bookingDetail?.paid_amount||0)-(bookingDetail?.pending_amount||0))) }}
结余(已收−退款−成本):{{ fmtMoney(bookingGross) }}
收款记录({{ bookingPayments.length }})
| 日期 | 方式 | 应收 | 实到账 | 平台手续费 | 平台 | 状态 |
|---|---|---|---|---|---|---|
| {{ p.arrival_date || p.created_at || '—' }} | {{ p.payment_method }} | {{ fmtMoney(p.amount_due) }} | {{ fmtMoney(p.actual_amount ?? p.amount_received) }} | {{ fmtMoney(p.fee) }} | {{ p.platform||'—' }} | {{ p.status==='confirmed'?'已确认':p.status }} |
无收款记录
退款记录({{ bookingRefunds.length }})
| 日期 | 金额 | 方式 | 原因 |
|---|---|---|---|
| {{ r.refund_date || r.created_at || '—' }} | {{ fmtMoney(r.amount) }} | {{ r.refund_method||'—' }} | {{ r.reason||'—' }} |
无退款记录
成本明细({{ currentBookingCosts.length }})
| 项目 | 类别 | 供应商 | 金额 | 状态 |
|---|---|---|---|---|
| {{ c.item||'—' }} | {{ c.category||'—' }} | {{ c.supplier||'—' }} | {{ fmtMoney(c.total_price) }} | {{ costTagText(c) }} |
无成本明细
旅客名单({{ passengers.length }}/{{ bookingDetail?.pax }} 人)
| 姓名 | 拼音 | 证件号 | 出生日期 | 护照 |
|---|---|---|---|---|
| {{ p.name }} | {{ p.pinyin_name||'—' }} | {{ p.id_card||'—' }} | {{ p.birth_date||'—' }} | 查看未上传 |
无旅客名单
记账明细
时间{{ (financeDetail?.created_at || '').slice(0, 16) || financeDetail?.record_date || '—' }}
类型{{ financeDetail?.type==='income'?'收入':'支出' }}
金额{{ financeDetail?.type==='income'?'+':'-' }}¥{{ fmt(financeDetail?.amount) }}
团号{{ financeDetail?.tour_no||'—' }}
科目{{ financeDetail?.subject_name || financeDetail?.subject || financeDetail?.category || '其他' }}
账户{{ financeDetail?.account_name||'—' }}
支付方式{{ financeDetail?.payment_method||'—' }}
状态{{ financeDetail?.status==='approved'?'已审核':financeDetail?.status==='rejected'?'已驳回':'待审核' }}
摘要{{ financeDetail?.notes || financeDetail?.description || '—' }}
成本付款 · {{ costPayForm.cost?.item }}
金额:{{ fmtMoney(costPayForm.cost?.total_price) }}
付款方式将记为:{{ accountMethodLabel(costPayForm.account_id) }}(跟着付款账户走,不用手填)
可一次选多张(银行回单/转账截图),已上传 {{ costPayForm.vouchers.length }} 张
可一次选多张,已上传 {{ costPayForm.vouchers.length }} 张;暂时没有可先记垫付,到「财务 → 垫付报销」补传
✓ {{ costPayForm.invoice_name }}
✓ {{ v.name || v.path }}
水单 · {{ voucherTarget?.item || voucherTarget?.category }}
正在读取…
{{ voucherError }}
共 {{ voucherItems.length }} 张
批量付款 · {{ batchPayForm.supplier }}
该供应商待付款:{{ batchPayForm.count || 0 }} 笔,合计 {{ fmtMoney(batchPayForm.total || 0) }}
付款方式将记为:{{ accountMethodLabel(batchPayForm.account_id) }}
可一次选多张,已上传 {{ batchPayForm.vouchers.length }} 张;同一组水单会挂到这批每一笔
✓ {{ v.name || v.path }}
提交报销
✓ {{ i+1 }}. {{ f.name }}
订单成本 · {{ currentBooking?.customer_name }}
✓ {{ v.name || v.path }} 付款水单
冲减=供应商退/赔给这张订单的钱:单价填负数,保存后自动结清,不需要请款、不会生成付款;这张订单与全团的毛利按冲减后的成本算。
| 类别 | 项目 | 数量 | 单价 | 小计 | 供应商 | 付款状态 | 操作 |
|---|---|---|---|---|---|---|---|
| {{ c.category }} | {{ c.item }} | {{ c.quantity }} | {{ fmtMoney(c.unit_price) }} | {{ fmtMoney(c.total_price) }} | {{ c.supplier || '—' }} | {{ costTagText(c) }}{{ c.voucher_path }} | |
| 总计 | {{ fmtMoney(bookingCostsTotal) }} | ||||||
该订单暂无独立成本(如单房差、签证费等)
{{ customerForm.id ? '编辑分销商' : '添加分销商' }}
品牌 / 联盟管理
品牌管理
联盟管理
| 品牌名称 | 客户数 | 操作 |
|---|---|---|
| {{ b.name }} | {{ b.customer_count }} |
| 联盟名称 | 客户数 | 返利方式 | 金额/比例 | 操作 |
|---|---|---|---|---|
| {{ a.name }} | {{ a.customer_count }} | {{ {none:'无',per_head:'按人头',percent:'按比例'}[a.rebate_type||'none'] }} | {{ a.rebate_type==='percent' ? (a.rebate_amount||0)+'%' : '¥'+(a.rebate_amount||0) }} |