{{ user.role==='sales'?'我的客户':'本月营收' }}
{{ dash.totalCustomers||0 }}位
¥{{ fmt(dash.monthRevenue) }}
本月利润
{{ fmtMoney(dash.monthProfit||0) }}
本月已收 ¥{{ fmt(dash.monthIncome) }} · 本月支出 ¥{{ fmt(dash.monthExpense) }}
{{ user.role==='sales'?'我的客户':'分销商总数' }}
{{ dash.totalCustomers||0 }}
{{ user.role==='sales'?'我的客户':'分销商' }}
开放团期
{{ dash.openTours||0 }}
本月出行 {{ dash.monthPax||0 }} 人
本月支出
{{ fmtMoney(dash.monthExpense) }}
本月支出
今日提醒
出发
{{ t.tour_no }}
{{ t.title }}
{{ t.total_pax||0 }} 人
回团
{{ t.tour_no }}
{{ t.title }}
{{ t.total_pax||0 }} 人
今日无出发 / 回团
待办
{{ dash.pendingChanges }}
●待审核变更
{{ dash.unpaidBookings }}
●未收款笔数
暂无待办
收客趋势 · 近 4 日
排行榜
销售额 · 收客人数 · 昨日线路
销售排行
销售额按金额
- {{ i+1 }} {{ s.name }} {{ ((s.val||0)/maxSalesVal*100).toFixed(0) }}% ¥{{ fmt(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||'跟团' }} | ¥{{ fmt(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 }}个
|
共 {{ customers.length }} 条结果
| 组团社名称 | 联系人 | 电话 | 类型 | 活跃度 | 所属销售 | 品牌 | 订单数 | 累计消费 | 操作 |
|---|---|---|---|---|---|---|---|---|---|
| {{ 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 }} | ¥{{ fmt(c.total_spent) }} |
{{ customerFilter.keyword||customerFilter.customer_type||customerFilter.brand_id||customerFilter.alliance_id ? '没有匹配的分销商' : '暂无分销商,点击"添加分销商"录入' }}
全部
航司票务
地接社
车队
酒店平台
保险
签证
其他
| 供应商名称 | 联系人 | 电话 | 类别 | 开户行 | 银行账号 | 备注 | 操作 |
|---|---|---|---|---|---|---|---|
| {{ s.name }} | {{ s.contact||'-' }} | {{ s.phone||'-' }} | {{ s.category }} | {{ s.bank_name||'-' }} | {{ s.bank_account||'-' }} | {{ s.notes||'-' }} |
暂无供应商记录
{{ supplierForm.id?'编辑':'添加' }}供应商
记账
应收欠款 {{ unpaidCount }}
逾期催收 {{ overdueCount }}
付款审核
待入账收款 {{ pendingPayList.length }}
财务科目
银行账户
变更审核 {{ pendingCount }}
垫付报销 {{ advances.total }}
| 日期 | 团号 | 类型 | 科目 | 金额 | 账户 | 状态 | 操作 |
|---|---|---|---|---|---|---|---|
| {{ 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'?'已驳回':'待审核' }} |
暂无财务记录
客户欠款汇总(按客户合并)
欠款总额(客户未付合计)
¥{{ fmt(receivables.total) }}
| 客户 | 联系人 | 电话 | 品牌 | 联盟 | 订单数 | 订单总额 | 已收 | 欠款 |
|---|---|---|---|---|---|---|---|---|
| {{ r.company_name || r.name }} | {{ r.contact_name||'-' }} | {{ r.phone||'-' }} | {{ r.brand_name||'-' }} | {{ r.alliance_name||'-' }} | {{ r.booking_count }} | ¥{{ fmt(r.total_amount) }} | ¥{{ fmt(r.total_paid) }} | ¥{{ fmt(r.total_owed) }} |
太好了,暂无应收欠款
订单未收款明细(逐单收款)
未收款总额
¥{{ fmt(unpaidTotal) }}
未收订单笔数
{{ unpaidCount }}
| 团号 | 线路 | 出发日 | 客户 | 销售 | 订单总额 | 已收 | 未收 | 状态 | 操作 |
|---|---|---|---|---|---|---|---|---|---|
| {{ o.tour_no }} | {{ o.tour_title }} | {{ o.departure_date }}逾期{{ o.overdue_days }}天 | {{ o.customer_name||'-' }} | {{ o.sales_name||'-' }} | ¥{{ fmt(o.total_amount) }} | ¥{{ fmt(o.paid_amount) }} | ¥{{ fmt(o.unpaid) }} | {{ {pending:'待确认',confirmed:'已确认',paid:'已付',cancelled:'取消',reserved:'预留'}[o.status]||o.status }} |
太好了,没有未收款订单
总欠款
¥{{ fmt(overdueTotal) }}
超30天
{{ overdue30 }}
超60天
{{ overdue60 }}
超90天
{{ overdue90 }}
| 团号 | 客户 | 销售 | 团款 | 欠款 | 逾期天数 |
|---|---|---|---|---|---|
| {{ o.tour_no }} | {{ o.customer_name||'-' }} | {{ o.sales_name||'-' }} | ¥{{ fmt(o.total_amount) }} | ¥{{ fmt(o.unpaid) }} | {{ o.overdue_days }} 天 严重催收关注 |
没有逾期欠款
⏳ 待审核支出
| 日期 | 团号 | 线路 | 科目 | 金额 | 摘要 | 记录人 | 操作 |
|---|---|---|---|---|---|---|---|
| {{ f.record_date }} | {{ f.tour_no||'-' }} | {{ f.subject_name || f.category || '-' }} | ¥{{ fmt(f.amount) }} | {{ f.description_text || f.description || '-' }} | {{ f.created_by_name||'-' }} |
暂无待审核的支出
待入账 {{ pendingPayList.length }} 笔 · 合计 ¥{{ fmt(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 || '-' }} | ¥{{ fmt(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) }} | ¥{{ fmt(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 }} |
暂无待审核的变更
垫付报销(待报销合计 ¥{{ fmt(advances.total) }})
员工垫付的成本,月底按人汇总报销| 垫付人 | 笔数 | 垫付总额 | 操作 |
|---|---|---|---|
| {{ s.advance_name }} | {{ s.count }} | ¥{{ fmt(s.total) }} |
暂无待报销的垫付
待报销明细
| 团号 | 项目 | 金额 | 供应商 | 垫付人 |
|---|---|---|---|---|
| {{ it.tour_no }} | {{ it.item || it.category }} | ¥{{ fmt(it.total_price) }} | {{ it.supplier||'-' }} | {{ it.advance_name }} |
提成计算
{{ commResult.message }}
{{ k }}{{ v.pax||0 }}人 · ¥{{ fmt(v.total||0) }}{{ v.volume?' (含操作量¥'+fmt(v.volume)+')':'' }}
选择月份后点击「计算提成」
提成明细
暂无提成数据,请先计算
| 日期 | 报销人 | 类别 | 金额 | 事由 | 发票 | 状态 | 操作 |
|---|---|---|---|---|---|---|---|
| {{ e.expense_date }} | {{ e.user_name }} | {{ e.category }} | ¥{{ fmt(e.amount) }} | - | {{ {pending:'待审核',approved:'已通过',rejected:'已拒绝',paid:'已打款'}[e.status] }} |
暂无报销记录,点右上角「提交报销」
{{ {pending:'待匹配',unmatched:'待归类',matched:'已匹配',confirmed:'已入账',ignored:'已忽略'}[s.status]||s.status }}
{{ s.c }} 笔
转入 ¥{{ fmt(s.ins) }} · 转出 ¥{{ fmt(s.outs) }}
按平台归集(转入)
{{ p.platform }} {{ p.c }}笔 ¥{{ fmt(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 || '-' }}
金额:¥{{ fmt(categorizeTarget?.amount_out) }} · {{ (categorizeTarget?.txn_time||'').slice(0,10) }}
金额:¥{{ fmt(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 }} | ||
| 暂无记录,点「导入账单」或「记一笔」 | |||||||
记一笔私账
月营收
¥{{ fmt(opsSummary.revenue) }}
直接成本
¥{{ fmt(opsSummary.directCost) }}
管理费用
¥{{ fmt(opsSummary.overheadCost) }}
毛利
{{ fmtMoney(opsSummary.grossProfit) }}
净利(本月利润)
{{ fmtMoney(opsSummary.netProfit) }}
已收款
¥{{ fmt(opsSummary.collected) }}
费用分类汇总
| 分类 | 子类 | 金额 | 笔数 |
|---|---|---|---|
| {{ {personnel:'人力',office:'办公',platform:'平台',business:'业务',team:'团建',tax:'税务'}[c.category]||c.category }} | {{ c.sub_category }} | ¥{{ fmt(c.total) }} | {{ c.cnt }} |
暂无费用,点「+ 新增费用」录入
费用明细
| 分类 | 子类 | 月份 | 金额 | 收款方 | 说明 | 操作 |
|---|---|---|---|---|---|---|
| {{ {personnel:'人力',office:'办公',platform:'平台',business:'业务',team:'团建',tax:'税务'}[c.category] }} | {{ c.sub_category }} | {{ c.month }} | ¥{{ fmt(c.amount) }} | {{ c.payee||'-' }} | {{ c.description||'-' }} |
暂无费用记录
新增费用
表格导入预览
识别到 {{ opsFileTotal }} 条数据 · 金额候选列: {{ opsAmountCandidates.join(', ') || '无' }}
| {{ h }} |
|---|
| {{ r[h]||'-' }} |
月度
营收
台账
同行
利润
月度收入
¥{{ fmt(report.finance?.total_income) }}
月度支出
¥{{ fmt(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||'未分类' }} | ¥{{ fmt(e.total) }} |
本月暂无支出记录
销售业绩
| 销售 | 订单数 | 销售额 |
|---|---|---|
| {{ c.name }} | {{ c.booking_count }} | ¥{{ fmt(c.total_sales) }} |
本月暂无销售数据
{{ partnerReport.year }}年 联盟/品牌业绩统计(大客户协议参考)
按联盟
| 联盟 | 客户数 | 订单 | 销售额 |
|---|---|---|---|
| {{ a.alliance_name }} | {{ a.customer_count }} | {{ a.booking_count }} | ¥{{ fmt(a.total_sales) }} |
暂无联盟数据
按品牌
| 品牌 | 客户数 | 订单 | 销售额 |
|---|---|---|---|
| {{ b.brand_name }} | {{ b.customer_count }} | {{ b.booking_count }} | ¥{{ fmt(b.total_sales) }} |
暂无品牌数据
按客户类型
| 类型 | 客户数 | 销售额 |
|---|---|---|
| {{ t.customer_type }} | {{ t.customer_count }} | ¥{{ fmt(t.total_sales) }} |
暂无类型数据
| 月份 | 订单 | 人数 | 营收 | 已收 | 收款率 |
|---|---|---|---|---|---|
| {{ r.month }} | {{ r.bookings }} | {{ r.total_pax }} | ¥{{ fmt(r.revenue) }} | ¥{{ fmt(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 }} | ¥{{ fmt(l.revenue) }} | ¥{{ fmt(l.collected) }} | ¥{{ fmt(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 }} | ¥{{ fmt(a.total_amount) }} | ¥{{ fmt(a.paid_amount) }} | ¥{{ fmt(a.unpaid) }} |
暂无贡献数据
目的地利润
| 目的地 | 操作计调 | 团数 | 人数 | 收入 | 成本 | 利润 | 利润率 |
|---|---|---|---|---|---|---|---|
| {{ d.destination }} | {{ d.operators || '-' }} | {{ d.tours }} | {{ d.pax }} | ¥{{ fmt(d.revenue) }} | ¥{{ fmt(d.cost) }} | {{ fmtMoney(d.profit) }} | {{ d.margin }}% |
该月暂无目的地利润数据
各销售利润
| # | 销售 | 订单 | 人数 | 收入 | 成本 | 利润 | 利润率 |
|---|---|---|---|---|---|---|---|
| {{ i+1 }} | {{ s.name }} | {{ s.orders }} | {{ s.pax }} | ¥{{ fmt(s.revenue) }} | ¥{{ fmt(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||'-' }} |
暂无部门
选择员工
{{ 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) ? ' ✓' : '' }} | ¥{{ fmt(o.total_amount) }} | ¥{{ fmt(o.paid_amount) }}超收¥{{ fmt(overPaid((o.paid_amount||0)+(o.pending_amount||0), o.total_amount)) }} | ¥{{ fmt(o.pending_amount) }} | ¥{{ fmt(Math.max(0, (o.total_amount||0) - (o.paid_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 }}
应收:¥{{ fmt(o.total_amount) }}
已收:¥{{ fmt(o.paid_amount) }}
未收:¥{{ fmt(Math.max(0,(o.total_amount||0)-(o.paid_amount||0)-(o.pending_amount||0))) }}
备注:{{ o.notes }}
|
暂无订单
按销售人员 共{{ orders.length }}条
暂无订单
{{ currentTour?.title }}
团号
{{ currentTour.tour_no }}
目的地
{{ currentTour.destination||'-' }}
出发日期
{{ currentTour.departure_date }}
天数
{{ currentTour.days }}天
成人价
¥{{ fmt(currentTour.adult_price) }}
儿童不占床
¥{{ fmt(currentTour.child_no_bed_price) }}
儿童占床
¥{{ fmt(currentTour.child_with_bed_price) }}
单房差
¥{{ fmt(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||'-' }} | ¥{{ fmt(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 }} | ¥{{ fmt(b.sale_price) }} | ¥{{ fmt(b.total_amount) }} | ¥{{ fmt(b.paid_amount) }}超收¥{{ fmt(overPaid((b.paid_amount||0)+(b.pending_amount||0), b.total_amount)) }} | ¥{{ fmt(b.pending_amount) }} | ¥{{ fmt(Math.max(0, (b.total_amount||0) - (b.paid_amount||0))) }} | {{ statusText(b.status) }} |
暂无报名
共 {{ currentTour.passenger_rows?.length||0 }} 位旅客 · 点击证件图片可放大核对(窗口可拖动缩放)
导出游客名单
导出机票名单
导出旅游局名单
导出保险名单
| 证件图片 | 旅客姓名 | 拼音名 | 性别 | 出生日期 | 证件号 | 有效期至 | 国籍 | 出生地省 | 发证机关 | 交客机构 | 订单归属 | 状态 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|
{{ p.name }} | {{ p.pinyin_name||'-' }} | {{ p.gender||'-' }} | {{ p.birth_date||'-' }} | {{ p.id_card||'-' }} | {{ p.expiry_date||'-' }} | {{ p.nationality||'-' }} | {{ p.birth_place||'-' }} | {{ p.issue_place||'-' }} | {{ p.customer_company||'-' }} | {{ p.sales_name||'-' }} | {{ {pending:'待确认',confirmed:'已确认',paid:'已付',cancelled:'取消',reserved:'预留'}[p.booking_status]||p.booking_status }} |
暂无旅客(各订单录入名单后自动汇总)
团级公共成本
¥{{ fmt(totalCost) }}
订单独立成本
¥{{ fmt(currentTour.profit_summary?.total_own_costs||0) }}
成本合计
¥{{ fmt(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 }} | ¥{{ fmt(c.unit_price) }} | ¥{{ fmt(c.total_price) }} | {{ shareText(c.share_type) }} | {{ c.supplier||'-' }} | {{ c.payment_status==='paid'?'已付款':c.payment_status==='pending'?'请款中':'待付款' }} {{ c.voucher_path }} | |
| 总计 | ¥{{ fmt(totalCost) }} | |||||||
暂无团级成本
各订单独立成本(单房差/签证费等每单独立成本,在订单详情中添加)
| 客户 | 人数 | 订单额 | 独立成本 | 均摊成本 | 总成本 | 利润 | 操作 |
|---|---|---|---|---|---|---|---|
| {{ b.customer_name }} | {{ b.pax }} | ¥{{ fmt(b.total_amount) }} | ¥{{ fmt(b.own_cost) }} | ¥{{ fmt(b.shared_cost) }} | ¥{{ fmt(b.total_cost) }} | {{ fmtMoney(b.profit) }} |
各订单暂无独立成本
报名总收入
¥{{ fmt(currentTour.profit_summary?.total_revenue) }}
全部成本
¥{{ fmt(currentTour.profit_summary?.total_costs) }}
团级¥{{ fmt((currentTour.profit_summary?.total_shared||0)+(currentTour.profit_summary?.total_unshared||0)) }} + 订单¥{{ fmt(currentTour.profit_summary?.total_own_costs) }}
团期毛利
{{ fmtMoney(currentTour.profit_summary?.gross_profit) }}
各订单利润明细
| 客户 | 销售额 | 自身成本 | 均摊成本 | 总成本 | 利润 | 利润率 |
|---|---|---|---|---|---|---|
| {{ b.customer_name }} | ¥{{ fmt(b.total_amount) }} | ¥{{ fmt(b.own_cost) }} | ¥{{ fmt(b.shared_cost) }} | ¥{{ fmt(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 }}
合计:¥{{ fmt(bookingTotalAmount) }}
一单一价时可在此备注,格式:项目+金额
{{ costForm.id ? '编辑成本' : '添加成本' }}
包车费/导游费等公共成本建议均摊;仅记录的团级开支选不均摊
✓ {{ costForm.voucher_name || costForm.voucher_path }}
{{ payForm.id ? '修改收款' : '收款' }} · {{ currentBooking?.customer_name }} 订单总额 ¥{{ fmt(currentBooking?.total_amount) }} · 已入账 ¥{{ fmt(currentBooking?.paid_amount) }} · 待入账 ¥{{ fmt(currentBooking?.pending_amount) }}(超收¥{{ fmt(overPaid((currentBooking?.paid_amount||0)+(currentBooking?.pending_amount||0), currentBooking?.total_amount)) }})
¥{{ fmt(payForm.amount_received * payForm.exchange_rate) }}
📎 点击选择 / 拖拽图片进来 / Ctrl+V 粘贴截图(可多张)
本单收款记录
| 科目 | 方式 | 账户 | 应收 | 实收 | 到账日期 | 已收款 | 已入账 | 凭证 | 操作 |
|---|---|---|---|---|---|---|---|---|---|
| {{ p.subject_name||'收款' }} | {{ p.payment_method||'-' }} | {{ p.account_name||'-' }} | ¥{{ fmt(p.amount_due) }} | ¥{{ fmt(p.amount_received) }} | {{ p.arrival_date||'-' }} | {{ p.payment_status==='paid'?'已收款':'未收款' }} | {{ p.status==='confirmed'?'已入账':'待入账' }} | 凭证{{ vi+1 }}、- |
暂无收款记录
{{ payForm.id ? '修改收款' : '收款' }} · {{ currentBooking?.customer_name }} 订单总额 ¥{{ fmt(currentBooking?.total_amount) }} · 已入账 ¥{{ fmt(currentBooking?.paid_amount) }} · 待入账 ¥{{ fmt(currentBooking?.pending_amount) }}(超收¥{{ fmt(overPaid((currentBooking?.paid_amount||0)+(currentBooking?.pending_amount||0), currentBooking?.total_amount)) }})
📎 点击选择 / 拖拽图片进来 / Ctrl+V 粘贴截图(可多张)
本单收款记录
| 科目 | 方式 | 账户 | 应收 | 实收 | 到账日期 | 收款状态 | 入账状态 | 凭证 | 操作 |
|---|---|---|---|---|---|---|---|---|---|
| {{ p.subject_name||'收款' }} | {{ p.payment_method||'-' }} | {{ p.account_name||'-' }} | ¥{{ fmt(p.amount_due) }} | ¥{{ fmt(p.amount_received) }} | {{ p.arrival_date||'-' }} | {{ p.payment_status==='paid' ? '已收款' : '未收款' }} | {{ p.status==='confirmed' ? '已入账' : '待入账' }} | 凭证{{ vi+1 }}、- |
暂无收款记录
退款 · {{ currentBooking?.customer_name }} 订单总额 ¥{{ fmt(currentBooking?.total_amount) }} · 已收 ¥{{ fmt(currentBooking?.paid_amount) }}
📎 点击选择 / 拖拽图片 / Ctrl+V 粘贴截图(可多张)
退款记录
| 退款单号 | 金额 | 方式 | 日期 | 备注 | 凭证 | 操作 |
|---|---|---|---|---|---|---|
| {{ r.refund_no }} | ¥{{ fmt(r.amount) }} | {{ r.refund_method }} | {{ r.refund_date||'-' }} | {{ r.notes||'-' }} | 凭证{{ vi+1 }}、- |
暂无退款记录
返佣 · {{ rebateForm.needPickBooking ? '请选择订单' : currentBooking?.customer_name }}
返佣记录
| 类型 | 金额 | 收款账号 | 备注 | 操作 |
|---|---|---|---|---|
| {{ r.rebate_type }} | ¥{{ fmt(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] }} |
修改订单
项目
单价
人数/份数
合计:¥{{ fmt(editBookingTotal) }}
{{ c.company_name || c.name }} {{ c.contact_name||'' }} {{ c.phone||'' }}
已选: {{ editCustomerSearchName }}
{{ noteView.title }} · 备注
{{ noteView.content }}
订单备注 · {{ bookingNoteBooking?.customer_name || '' }}
{{ n.created_at }} · {{ n.created_by_name || '未知用户' }}
{{ n.note }}
暂无追加备注
申请开发票 · {{ invoiceForm.booking_name }}
已收款(含待入账)¥{{ fmt(invoiceForm.paid_amount) }}(其中待入账 ¥{{ fmt(invoiceForm.pending_amount) }}) | 已开票 ¥{{ fmt(invoiceForm.already_invoiced) }} | 剩余可开 ¥{{ fmt(invoiceForm.remaining) }}
该订单已申请的发票
{{ iv.invoice_title }} 税号{{ iv.tax_no||'-' }}
¥{{ fmt(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 粘贴(可多张,识别取第一张)
已选 {{ scanForm.images.length }} 张证件图(点击预览可放大,识别只取第一张)
识别结果(可修改后确认添加)
使用方法:
1. 下载导入模版(Excel可打开)2. 在Excel里填好名单,直接复制粘贴到下方文本框
3. 每行:姓名、性别、证件号、电话、价格类型(成人/儿童不占床/儿童占床)
4. 价格类型留空默认"成人",价格自动按团期价格计算
{{ importResult }}
{{ zoomImageList.length > 1 ? '第 '+(zoomImageIndex+1)+' / '+zoomImageList.length+' 张 · ' : '' }}拖动标题栏移动 · 滚轮/按钮可放大
{{ Math.round(zoomScale*100) }}%
团队结算单 · {{ currentTour?.tour_no }}
团 队 结 算 单
收入
¥{{ fmt(settleRevenue) }}
成本
¥{{ fmt(settleCostAll) }}
利润
{{ fmtMoney(currentTour.profit_summary?.gross_profit) }}
毛利率 {{ settleRevenue>0 ? ((currentTour.profit_summary?.gross_profit||0)/settleRevenue*100).toFixed(2) : '0.00' }}% | 返佣 ¥{{ fmt(tourRebateTotal) }}
| 分区汇总 | ||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 分区 | 笔数 | 金额 | 待处理 | |||||||||||||||||
| - | 报名收入 | {{ settleBookings.length }} | ¥{{ fmt(settleRevenue) }} | {{ settleOwed>0 ? '¥'+fmt(settleOwed) : '已结清' }} | ||||||||||||||||
| ||||||||||||||||||||
| - | 大交通 | {{ settleGroupCount('transport') }} | ¥{{ fmt(settleGroupTotal('transport')) }} | {{ settleGroupUnpaid('transport')>0 ? '¥'+fmt(settleGroupUnpaid('transport')) : '已结清' }} | ||||||||||||||||
| ||||||||||||||||||||
| - | 地接 | {{ settleGroupCount('ground') }} | ¥{{ fmt(settleGroupTotal('ground')) }} | {{ settleGroupUnpaid('ground')>0 ? '¥'+fmt(settleGroupUnpaid('ground')) : '已结清' }} | ||||||||||||||||
| ||||||||||||||||||||
| - | 酒店住宿 | {{ settleGroupCount('hotel') }} | ¥{{ fmt(settleGroupTotal('hotel')) }} | {{ settleGroupUnpaid('hotel')>0 ? '¥'+fmt(settleGroupUnpaid('hotel')) : '已结清' }} | ||||||||||||||||
| ||||||||||||||||||||
| - | 其它成本 | {{ settleGroupCount('other') }} | ¥{{ fmt(settleGroupTotal('other')) }} | {{ settleGroupUnpaid('other')>0 ? '¥'+fmt(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 }} | ¥{{ fmt(b.total_amount) }} | ¥{{ fmt(b.paid_amount) }} | ¥{{ fmt(b.pending_amount) }} | ¥{{ fmt(Math.max(0, (b.total_amount||0)-(b.paid_amount||0)-(b.pending_amount||0))) }} | ||
| 暂无报名 | ||||||||
| 收入小计 | ¥{{ fmt(settleRevenue) }} | ¥{{ fmt(settlePaid) }} | ¥{{ fmt(settlePending) }} | ¥{{ fmt(settleOwed) }} | ||||
| 大交通(机票/动车/汽车) | ||||||||
| 经办人 | 航司/票务 | 订票明细 | 应付金额 | 付款状态 | ||||
| {{ c.operator_name || '-' }} | {{ c.supplier || '-' }} | {{ c.item || '-' }}(备注:{{ c.notes }}) | ¥{{ fmt(c.total_price) }} | {{ c.payment_status==='paid'?'已付款':c.payment_status==='pending'?'请款中':'待付款' }} | ||||
| 暂无大交通 | ||||||||
| 大交通小计 | ¥{{ fmt(settleGroupTotal('transport')) }} | |||||||
| 地接 | ||||||||
| 经办人 | 地接社 | 费用明细 | 应付金额 | 付款状态 | ||||
| {{ c.operator_name || '-' }} | {{ c.supplier || '-' }} | {{ c.item || '-' }}(备注:{{ c.notes }}) | ¥{{ fmt(c.total_price) }} | {{ c.payment_status==='paid'?'已付款':c.payment_status==='pending'?'请款中':'待付款' }} | ||||
| 暂无地接 | ||||||||
| 地接小计 | ¥{{ fmt(settleGroupTotal('ground')) }} | |||||||
| 酒店住宿 | ||||||||
| 经办人 | 酒店名称 | 订房信息 | 应付金额 | 付款状态 | ||||
| {{ c.operator_name || '-' }} | {{ c.supplier || '-' }} | {{ c.item || '-' }}(备注:{{ c.notes }}) | ¥{{ fmt(c.total_price) }} | {{ c.payment_status==='paid'?'已付款':c.payment_status==='pending'?'请款中':'待付款' }} | ||||
| 暂无酒店 | ||||||||
| 酒店小计 | ¥{{ fmt(settleGroupTotal('hotel')) }} | |||||||
| 其它成本 | ||||||||
| 经办人 | 客户/供应商 | 费用明细 | 应付金额 | 付款状态 | ||||
| {{ c.operator_name || '-' }} | {{ c.supplier || '-' }} | {{ c.item || '-' }}(备注:{{ c.notes }}) | ¥{{ fmt(c.total_price) }} | {{ c.payment_status==='paid'?'已付款':c.payment_status==='pending'?'请款中':'待付款' }} | ||||
| 暂无其它成本 | ||||||||
| 其它成本小计 | ¥{{ fmt(settleGroupTotal('other')) }} | |||||||
| 返佣(不计入成本) | ||||||||
| {{ c.operator_name || '-' }} | {{ c.supplier || '-' }} | {{ c.item || '-' }}(备注:{{ c.notes }}) | ¥{{ fmt(c.total_price) }} | {{ c.payment_status==='paid'?'已付款':c.payment_status==='pending'?'请款中':'待付款' }} | ||||
| 返佣小计 | ¥{{ fmt(settleGroupTotal('rebate')) }} | |||||||
| 毛利润 {{ fmtMoney(currentTour.profit_summary?.gross_profit) }} | 毛利率 {{ settleRevenue>0 ? ((currentTour.profit_summary?.gross_profit||0)/settleRevenue*100).toFixed(2) : '0.00' }}% | 人均毛利 {{ fmtMoney(settlePerPaxProfit) }} | |||||||
| 团队毛利 | |||
|---|---|---|---|
| 收入合计 | ¥{{ fmt(settleRevenue) }} | 应收未收款 | ¥{{ fmt(settleOwed) }} |
| 退款 | ¥{{ fmt(settleRefundTotal) }} | 团队总成本 | ¥{{ fmt(settleCostAll) }} |
| 已付款 | ¥{{ fmt(settleCostPaid) }} | 应付未付 | ¥{{ fmt(settleCostUnpaid) }} |
| 返佣(不计入成本) | ¥{{ fmt(tourRebateTotal) }} | 返佣笔数 | {{ (currentTour?.rebates || []).length + settleGroupRows('rebate').length }} |
| 毛利润 | {{ fmtMoney(currentTour.profit_summary?.gross_profit) }} | 毛利率 | {{ settleRevenue>0 ? ((currentTour.profit_summary?.gross_profit||0)/settleRevenue*100).toFixed(2) : '0.00' }}% |
| 提单人 | 审核人 | ||
订单详情 · {{ bookingDetail?.customer_name }} {{ bookingDetail?.tour_no }}
团号{{ bookingDetail?.tour_no || '-' }}
线路{{ bookingDetail?.tour_title || '-' }}
销售{{ bookingDetail?.sales_name||'-' }}
{{ it.label }}{{ it.count }} 人 × ¥{{ fmt(it.price) }} = ¥{{ fmt((Number(it.count)||0)*(Number(it.price)||0)) }}
明细共 {{ bookingDetail?.pax }} 人
订单总额¥{{ fmt(bookingDetail?.total_amount) }}
应收¥{{ fmt(bookingDetail?.total_amount) }}
已收¥{{ fmt(bookingDetail?.paid_amount) }}
未收¥{{ fmt(Math.max(0,(bookingDetail?.total_amount||0)-(bookingDetail?.paid_amount||0))) }}
状态{{ {pending:'待确认',confirmed:'已确认',paid:'已付',cancelled:'取消',reserved:'预留'}[bookingDetail?.status]||bookingDetail?.status }}
备注{{ bookingDetail?.notes || '-' }}
订单结算汇总
收入(应收)
¥{{ fmt(bookingDetail?.total_amount) }}
已收
¥{{ fmt(bookingDetail?.paid_amount) }}
退款
¥{{ fmt(bookingRefundTotal) }}
成本
¥{{ fmt(bookingCostsTotal) }}
未收 ¥{{ fmt(Math.max(0,(bookingDetail?.total_amount||0)-(bookingDetail?.paid_amount||0))) }}
结余(已收−退款−成本):{{ fmtMoney(bookingGross) }}
收款记录({{ bookingPayments.length }})
| 日期 | 方式 | 应收 | 实到账 | 手续费 | 平台 | 状态 |
|---|---|---|---|---|---|---|
| {{ p.arrival_date || p.created_at || '-' }} | {{ p.payment_method }} | ¥{{ fmt(p.amount_due) }} | ¥{{ fmt(p.actual_amount ?? p.amount_received) }} | ¥{{ fmt(p.fee) }} | {{ p.platform||'-' }} | {{ p.status==='confirmed'?'已确认':p.status }} |
无收款记录
退款记录({{ bookingRefunds.length }})
| 日期 | 金额 | 方式 | 原因 |
|---|---|---|---|
| {{ r.refund_date || r.created_at || '-' }} | ¥{{ fmt(r.amount) }} | {{ r.refund_method||'-' }} | {{ r.reason||'-' }} |
无退款记录
成本明细({{ currentBookingCosts.length }})
| 项目 | 类别 | 供应商 | 金额 | 状态 |
|---|---|---|---|---|
| {{ c.item||'-' }} | {{ c.category||'-' }} | {{ c.supplier||'-' }} | ¥{{ fmt(c.total_price) }} | {{ c.payment_status==='paid'?'已付款':c.payment_status==='pending'?'请款中':'待付款' }} |
无成本明细
旅客名单({{ 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 }}
金额:¥{{ fmt(costPayForm.cost?.total_price) }}
✓ {{ costPayForm.voucher_name }}
✓ {{ costPayForm.voucher_name }}
✓ {{ costPayForm.invoice_name }}
提交报销
✓ {{ expenseForm.invoice_name }}
订单成本 · {{ currentBooking?.customer_name }}
| 类别 | 项目 | 数量 | 单价 | 小计 | 供应商 | 付款状态 | 操作 |
|---|---|---|---|---|---|---|---|
| {{ c.category }} | {{ c.item }} | {{ c.quantity }} | ¥{{ fmt(c.unit_price) }} | ¥{{ fmt(c.total_price) }} | {{ c.supplier || '-' }} | {{ c.payment_status==='paid'?'已付款':c.payment_status==='pending'?'请款中':'待付款' }}{{ c.voucher_path }} | |
| 总计 | ¥{{ fmt(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) }} |