班期驾驶舱
实时掌握班期动态与渠道收客表现 · 数据每 60 秒自动刷新
实时数据 · LIVE
{{k.label}}
{{k.value}}{{k.unit}}
{{k.sub}}
进入
班期工作台 {{dashRows.length}} 个班期在盯
全部
需关注{{riskCount}}
临近截团
已成团
收客中
发团日期
产品 / 班期
收客进度 · 渠道构成
关注点(点击直达)
{{calInfo(d).m}}
{{calInfo(d).d}}
{{calInfo(d).wd}}
{{cdnInfo(d).label}}
{{d.title}}
班期 #{{d.id}} · 余 {{d.remain}} 位 · 截团 {{d.cutoff_at||'-'}}
{{depStatus(d.status).t}}
已收 {{Math.round((d.confirmed_cnt+d.held_cnt)/Math.max(1,d.quota)*100)}}%
{{d.confirmed_cnt}} / {{d.quota}} 席
{{r.t}}
✓ 无异常
暂无班期。请先到「产品库」录入产品,再到「班期与占位」开班期。
当前「{{dashTabName}}」下没有班期。
经营驾驶舱
当月经营汇总 · 渠道排行 · 销售业绩 · 待办提醒(仅总负责人可见)
{{cockpit ? cockpit.monthly.month : ''}} · 经营视图
{{k.label}}
{{k.value}}{{k.unit}}
{{k.sub}}
渠道排行 TOP8{{(cockpit.channels||[]).length}} 家
| 排名 | 组团社 | 收客 | 开班 | 金额 |
|---|---|---|---|---|
| {{i+1}} | {{c.name}} | {{c.book_cnt}} 人 | {{c.dep_cnt}} 个 | ¥{{yuan(c.amount_cents)}} |
暂无渠道收客数据
销售业绩榜{{(cockpit.sales||[]).length}} 人
按收款人统计
| 排名 | 员工 | 岗位 | 收款 | 笔数 | 覆盖 |
|---|---|---|---|---|---|
| {{i+1}} | {{s.name}} | {{s.role_cn}} | ¥{{yuan(s.amount_cents)}} | {{s.cnt}} 笔 | {{s.channel_cnt}} 家 |
暂无收款记录 —— 登记收款时填「收款人」,业绩即归到该员工名下
待确认变更
{{cockpit.todos.pending_changes}}
需人工确认后生效
待收款项
¥{{yuan(cockpit.todos.due_cents)}}
应收合计 ¥{{yuan(cockpit.todos.receivable_cents)}}
临期班期
{{cockpit.todos.near_cutoff}}
7 天内出发
待解析消息
{{cockpit.todos.unparsed}}
去解析工作台处理
正在加载经营数据…
产品库是「一次录入、两端复用」的源头:批发商在这里录入线路(支持粘贴秀米 / 详情页链接自动代抓解析),
组团社端即可看到目录、一键导入为自己的线路,并生成带二维码的专属海报。
1
→
分渠道定价给每家组团社 / 渠道单独定成本价
2
→
开班期收客到「班期与占位」排期,线路才算在卖
3
推送同业推给同业伙伴,对方库生成草稿副本
产品总数
{{prodStat.total}}款
在售 {{prodStat.on}} · 下架 {{prodStat.off}}
已排班期
{{prodStat.with_dep}}款
点击前往「班期与占位」管理 ›
被组团社导入
{{prodStat.imported}}款
下游已下载线路
① 链接收录粘一个链接,建品与抓正文一次完成;也可批量导入
支持的链接
秀米 v.xiumius.cn / xiumi.us
公众号文章 mp.weixin.qq.com
普通网页 详情页也可
公众号请用已群发文章的链接;未群发的临时链接打不开。
{{prodMsg.text}}
单次最多 100 条;带链接的会自动代抓,抓不到则按文字解析
(已填 {{bulkLines}} 行,超出的 {{bulkLines-100}} 行不会被导入)
② 产品清单
🏞️
{{p.status_cn||(p.status==='on'?'在售':'下架')}}
热门
{{p.title}}
¥{{yuan(p.price_cents)}}
价格待补
{{p.code}}
班期 {{p.dep_cnt}}
收客 {{p.book_cnt}}
导入 {{p.import_cnt}}
浏览 {{p.view_cnt || 0}}
转发 {{p.share_cnt || 0}}
平台共享货源(未归属)· 须先接收为自有才能定价与推送
非本家货源({{ownerLabel(p)}})· 仅货主可定价与推送
还没有产品。用上面的「链接收录」粘贴一个秀米链接试试 →
生成海报
{{ posterBox.title }}
正在按最新价格出图…
{{ posterErr }}
价格按当前定价实时叠加;二维码扫开即是这条线路的纯展示页(不含货源与联系方式)。
{{prodForm.id?'编辑产品':'新建产品'}}
{{prodForm.id ? '编号 ' + (prodForm.code||'—') : '解析链接后自动建档,可继续补充详情'}}
1基础信息
2详情正文
3顶部横幅图
已设置 {{ bannerBox.banners.length }} 张
尚未设置横幅。可上传图片或AI 生成;上传会先做 AI 价格体检,图里印着价格的会被拦下。可多张轮播。
体检发现这张图里印有价格,已暂存未启用。
图上的价不会跟着改价变,客户会看到旧价。选一个出口:
{{bannerBox.msg}}
作为所有已导入此线路的组团社的默认顶部图;组团社自设的横幅不受影响。
4海报底图
生成海报时用这张做底图。不指定就自动从详情里取第一张;取得不对,在下面点一张即可。
已指定一张
3顶部横幅图
保存产品后,即可上传图片或 AI 生成横幅。
4卖点标签
5编号与状态
原标题:{{prodForm.origin_title}}
正文预览 · {{contentPreview.title}}
✕
这就是客户在店铺详情页看到的版式与文字。
一键排版 · 生成公众号推文
✕
粘贴纯文字或 Markdown,系统自动识别小标题、要点列表、价格行与温馨提示,
按「适老阅读」口径排版(正文 17px / 行高 1.9 / 表格降级为要点列表)。
排版算力在点「生成预览」时消耗一次,随后保存不重复扣减。
把微信群里的原话粘贴到左边,系统自动识别意图 → 匹配退改政策 → 算出费用 → 生成确认链接。
链接复制回微信群,组团社点开即可确认。不需要对方装任何软件。
① 粘贴群消息 / 截图
{{visionHint}}
{{inboxErr}}
② 识别结果 · 一键确认
左侧粘贴内容后点击解析
{{channelName(selectedChannelId)}}
自动识别
{{travelerLabel}}
自动识别
{{typeLabel(parsed.intent.change_type)}}
{{parsed.intent.headcount}} 人
{{parsed.intent.names.join('、')}}
{{parsed.intent.special_care}}
+
需要增加的费用明细
新增 {{parsed.intent.headcount}} 人
{{b.label}}{{b.note}}
{{yuan(b.cents)}}元
口径:{{calc.rule_name}} · 金额由规则引擎计算
{{currentCnt}} 人
→
{{afterCnt}} 人{{deltaText}}
识别摘要:{{parsed.intent.summary}}
· 引擎 {{parsed.intent.engine==='llm' ? '语义解析' : '本地规则'}} · 置信度 {{(parsed.intent.confidence*100).toFixed(0)}}%
费用试算(由规则引擎计算,非人工估算)
{{calc.amount_delta_cents>0 ? '应补收 ' : calc.amount_delta_cents<0 ? '应退 ' : ''}}
{{yuan(Math.abs(calc.amount_delta_cents))}} 元
扣费{{yuan(calc.charge_cents)}} 元
距出发{{calc.days_before}} 天
命中规则{{calc.rule_name}}
{{calc.rule_desc}}
检测到 {{calc.conflicts.length}} 条冲突规则(已按优先级取最高):
【{{c.rule_set_name}}】扣 {{yuan(c.per_person_charge)}} 元/人;
如需调整,请到「出团规则政策」修改优先级。
选择班期后自动试算费用…
③ 复制到微信群
已复制到剪贴板,粘到微信群即可。
历史消息
| 时间 | 渠道 | 原文 | 识别结果 | 状态 |
|---|---|---|---|---|
| {{m.created_at}} | {{m.channel_name}} | {{m.raw_content}} | {{(m.parsed_intent||{}).summary||'-'}} | {{m.linked_change_order_id?'已生成单据':'待处理'}} |
暂无记录
变更单列表
| 单号 | 班期 | 渠道 | 类型 | 人数 | 差额 | 命中规则 | 状态 | 操作 |
|---|---|---|---|---|---|---|---|---|
{{c.order_no}} |
{{c.depart_title}} {{c.depart_date}} |
{{c.channel_name}} | {{c.change_type_label}} | {{c.headcount}} | {{c.amount_delta_cents>0?'+':''}}{{yuan(c.amount_delta_cents)}} 元 | {{c.rule_name}} | {{statusTxt(c.status)}} | — |
暂无变更单
「分享」按钮是做什么的?
「分享」不会给任何人发消息,它只负责两件事:
① 把这笔变更整理成一段可直接粘到微信群的确认文案 —— 班期、组团社、变更类型与人数、应补 / 应退金额、命中的退改政策依据;
② 在文案末尾附一条免登录确认链接(形如
点击后文案会出现在下方,复制粘贴到群里即可。它只是把单据推进到「待确认」,并不等于生效 —— 生效仍需您点「确认生效」,届时才写库存、留痕。
① 把这笔变更整理成一段可直接粘到微信群的确认文案 —— 班期、组团社、变更类型与人数、应补 / 应退金额、命中的退改政策依据;
② 在文案末尾附一条免登录确认链接(形如
/c/单号)。组团社点开即可查看并确认,不需要账号密码、不用装任何软件。点击后文案会出现在下方,复制粘贴到群里即可。它只是把单据推进到「待确认」,并不等于生效 —— 生效仍需您点「确认生效」,届时才写库存、留痕。
分享文案
已复制到剪贴板,粘到微信群即可。
{{chDetail.order_no}}
{{chDetail.status_cn}}
{{chDetail.amount_delta_cents>0?'应补收':'应退'}} {{yuan(Math.abs(chDetail.amount_delta_cents))}} 元
✕
班期与产品
产品
{{chDetail.product_title}}
({{chDetail.product_code}})
· {{chDetail.dest}}
· {{chDetail.days}} 天
出发 / 返程
{{chDetail.depart_date}}
→ {{chDetail.return_date}}
班期状态
{{depStatusCn(chDetail.dep_status)}} ·
余位 {{chDetail.dep_remain}} / 已确认 {{chDetail.dep_confirmed}} / 成团线 {{chDetail.min_group_size}}
收客截止
{{chDetail.cutoff_at}}
组团社
名称
{{chDetail.channel_name}}
({{chDetail.channel_short}})
等级 / 返点
{{chDetail.channel_level || '—'}} 级 ·
{{(chDetail.channel_rebate_bp/100).toFixed(1)}}%
账期
{{chDetail.channel_credit_days || 0}} 天
计费拆解
变更类型
{{chDetail.change_type_label}} · {{chDetail.headcount}} 人
距出发
{{chDetail.days_before}} 天
扣费口径
{{modeCn(chDetail.calc_mode) || '—'}}
规则单价
规则原值 ¥{{yuan(chDetail.raw_per_person_charge)}}
(上下限:{{chDetail.applied_min?('¥'+yuan(chDetail.applied_min)):'无'}} ~
{{chDetail.applied_max?('¥'+yuan(chDetail.applied_max)):'无'}})
→ 每人实收 ¥{{yuan(chDetail.final_per_person_charge)}}
合计
每人 ¥{{yuan(chDetail.final_per_person_charge)}} × {{chDetail.headcount}} 人
= ¥{{yuan(chDetail.final_per_person_charge * chDetail.headcount)}}
+ 附加费 ¥{{yuan(chDetail.extra_amount_cents)}}
差额
{{chDetail.amount_delta_cents>0?'应补收 ':'应退 '}}{{yuan(Math.abs(chDetail.amount_delta_cents))}} 元
规则依据
命中规则集
{{chDetail.rule_set_name || chDetail.rule_name || '未命中任何规则'}}
(#{{chDetail.rule_set_id}})
适用范围
{{scopeCn(chDetail.rule_scope) || '—'}} ·
优先级 {{chDetail.rule_priority}}
计算说明
{{chDetail.rule_desc || '—'}}
未采用的候选
{{cf.rule_set_name}}({{scopeCn(cf.scope_type)}},优先级 {{cf.priority}})→
每人 ¥{{yuan(cf.per_person_charge)}}
涉及人员({{chDetail.travelers.length}} 人)
{{t.name}}
{{t.phone || '—'}}
房号 {{t.room_no || '未分'}} · 座号 {{t.seat_no || '未分'}}
· {{t.special_care}}
原始消息
{{chDetail.raw_text || '(无,手工创建)'}}
证据附件
附件 {{i+1}}
流转留痕
创建
{{chDetail.created_at}}
· 来源 {{sourceCn(chDetail.source)}}
确认
{{chDetail.confirmed_by || '—'}} · {{chDetail.confirmed_at || '—'}}
生效
{{chDetail.effective_at}}
反向单
已由 #{{chDetail.reversed_by_id}} 冲正
备注
{{chDetail.remark}}
变更待处理
· {{cockpitChModal.depTitle}} · 班期 #{{cockpitChModal.depId}}
✕
待处理变更 {{cockpitChModal.list.length}}
{{c.change_type_label}}
{{c.order_no}}
{{c.channel_name}} · {{c.headcount}} 人
{{c.amount_delta_cents>0?'应补收':'应退'}} {{yuan(Math.abs(c.amount_delta_cents))}} 元
该班期没有待处理的变更单
班期与产品
{{cockpitChDetail.product_title}}
· {{cockpitChDetail.dest}}
· {{cockpitChDetail.days}} 天
{{calInfo({depart_date: cockpitChDetail.depart_date}).m}}
{{calInfo({depart_date: cockpitChDetail.depart_date}).d}}
{{calInfo({depart_date: cockpitChDetail.depart_date}).wd}}
出发
返程{{cockpitChDetail.return_date || '单程 / 当日返'}}
班期状态{{depStatusCn(cockpitChDetail.dep_status)}} · 余位 {{cockpitChDetail.dep_remain}} / 已确认 {{cockpitChDetail.dep_confirmed}}
成团线{{cockpitChDetail.min_group_size}} 人
收客截止{{cockpitChDetail.cutoff_at||'—'}}
组团社
名称{{cockpitChDetail.channel_name}}({{cockpitChDetail.channel_short}})
等级 / 返点{{cockpitChDetail.channel_level||'—'}} 级 · {{ (cockpitChDetail.channel_rebate_bp/100).toFixed(1) }}%
账期{{cockpitChDetail.channel_credit_days||0}} 天
计费拆解
| 变更类型 | {{cockpitChDetail.change_type_label}} · {{cockpitChDetail.headcount}} 人 |
| 距出发 | {{cockpitChDetail.days_before}} 天 |
| 扣费口径 | {{modeCn(cockpitChDetail.calc_mode)||'—'}} |
| 规则单价 | 原 ¥{{yuan(cockpitChDetail.raw_per_person_charge)}} (上下限 {{cockpitChDetail.applied_min?('¥'+yuan(cockpitChDetail.applied_min)):'无'}} ~ {{cockpitChDetail.applied_max?('¥'+yuan(cockpitChDetail.applied_max)):'无'}}) → 每人实收 ¥{{yuan(cockpitChDetail.final_per_person_charge)}} |
| 合计 | ¥{{yuan(cockpitChDetail.final_per_person_charge)}} × {{cockpitChDetail.headcount}} 人 = ¥{{yuan(cockpitChDetail.final_per_person_charge * cockpitChDetail.headcount)}} + 附加费 ¥{{yuan(cockpitChDetail.extra_amount_cents)}} |
{{cockpitChDetail.amount_delta_cents>0?'应补收':'应退'}} {{yuan(Math.abs(cockpitChDetail.amount_delta_cents))}} 元
规则依据
命中规则集{{cockpitChDetail.rule_set_name || cockpitChDetail.rule_name}}
适用范围{{scopeCn(cockpitChDetail.rule_scope)||'—'}} · 优先级 {{cockpitChDetail.rule_priority}}
涉及人员({{cockpitChDetail.travelers.length}})
| 姓名 | 操作 | 房号 | 座位 | 特殊照护 |
|---|---|---|---|---|
| {{p.name}} | {{typeLabel(p.action) || p.action || '—'}} | {{p.room_no||'—'}} | {{p.seat_no||'—'}} | {{p.special_care||'—'}} |
已生效
选择左侧一条变更查看详情
班期列表{{depRows.length}} 个班期
| 产品 / 班期 | 出发 | 收客情况 | 参考价 | 状态 | 操作 |
|---|---|---|---|---|---|
|
{{d.product_title}}
班期 #{{d.id}} · 截团 {{d.cutoff_at||'—'}}
{{modeLabel(d.travel_mode)}}
包班 · {{d.exclusive_channel_name || ('#' + d.exclusive_channel_id)}}
|
{{d.depart_date}}
{{calInfo(d).wd}}
|
{{d.min_group_size}} 成团线
{{d.confirmed_cnt+d.held_cnt}}={{d.confirmed_cnt}}+{{d.held_cnt}}
已收 = 确认 + 占位
{{d.remain}} 余位 |
¥{{yuan(d.product_price_cents)}}
—
|
{{depStatus(d.status).t}}
{{depStatusSub(d)}}
|
没有符合条件的班期
并团:把同一班期下多个组团社报上来的人,合并成一个团队交付地接。
系统会自动汇总各渠道人数、特殊照护需求与餐食禁忌——银发团最容易出事的就是这些信息没传达到地接。
可并团班期{{deps.length}}
团队列表{{teams.length}}
可并团班期收客达线即可并团
| 产品 / 班期 | 出发 | 收客情况 | 操作 |
|---|---|---|---|
|
{{d.product_title}}
班期 #{{d.id}} · 成团线 {{d.min_group_size}} 人
|
{{d.depart_date}} {{calInfo(d).wd}} |
{{d.min_group_size}} 成团线{{d.confirmed_cnt+d.held_cnt}}={{d.confirmed_cnt}}+{{d.held_cnt}} 已收 = 确认 + 占位{{d.remain}} 余位 |
已并团 |
暂无班期
团队列表{{teams.length}} 个团队
| 团号 | 团队 | 出发 | 人数 | 地接 | 确认 | |
|---|---|---|---|---|---|---|
{{t.team_no}} |
{{t.name}} | {{t.depart_date}} | {{t.actual_cnt}} | {{t.dmc_name}} | {{t.dmc_confirm_status==='confirmed'?'已确认':'待确认'}} |
尚未并团
{{team.team_no}} · {{team.name}}
{{team.actual_cnt}} 人 / {{team.traveler_cnt}} 人
缺 {{team.name_gap}}
{{team.dmc_name}}
{{team.dmc_contact}} {{team.dmc_phone}}
{{team.guide_name||'待定'}}
{{team.guide_phone||''}}
{{team.driver_name||'待定'}}
{{team.driver_phone||''}} {{team.vehicle_no||''}}
| 组团社 | 人数 | 同业金额 |
|---|---|---|
| {{m.channel_name}} | {{m.cnt}} | {{yuan(m.net_amount_cents)}} 元 |
{{k}} × {{v}}
无
{{k}} × {{v}}
无
尚未添加上车点
{{ dmc.saved ? ('已保存 · ' + dmc.saved_at) : '未保存(当前为系统默认)' }}
致:{{dmc.dmc_name}}
暂无章节,可点下方添加
{{L.channel_name}}
{{L.seat_text}}
暂无领队(可留空,由组团社报名时补)
{{g.channel_name}}
已交 {{g.submitted}} 人
未交 {{g.missing}} 人
该渠道共 {{g.total}} 人
{{n}}
该渠道已全部提交
异常行:{{dmc.idcard.mask_only_names.join('、')}} —— 这几位的证件号只有掩码,投保前请让组团社重传
{{dmcMsg}}
已复制
文书预览
所见即所得 = 导出 / 复制的内容
{{dmcText}}
改完点「保存委托件」才会存档;只「导出文本」不改存档。
按班期安排大巴:人数涨了就增开一辆,每辆车挂司机与导游,组团社在选座页能看到。
座位只管到「哪段号归哪家社」,具体谁坐哪号由导游现场安排;先到先得,提交即锁定。
选择班期{{vehDeps.length}} 个班期
| 产品 | 班期 | 结团时间 | 出发 | 需座位 | 状态 | |
|---|---|---|---|---|---|---|
|
{{d.product_title}}
{{modeLabel(d.travel_mode)}}
|
班期 #{{d.id}} |
{{d.cutoff_at||'—'}}
{{cdnInfo(d).label}}
未设截团
|
{{calInfo(d).m}}
{{calInfo(d).d}}
{{calInfo(d).wd}}
|
{{d.confirmed_cnt+d.held_cnt}} | {{depStatus(d.status).t}} | 维护 › |
没有符合条件的班期
‹ 返回班期列表
{{vehDep.product_title}} · {{vehDep.depart_date}}
{{modeLabel(vehMode)}}
{{vehInfo.departure.need_cnt}} 人
{{vehInfo.total_seat}} 座
{{vehInfo.need_more_bus ? '还差 '+vehInfo.seat_gap+' 座,建议增开一辆'
: '座位充足'}}
{{vehInfo.departure.need_cnt}} 人
{{vehInfo.departure.depart_date}}
{{modeLabel(vehMode)}}
大交通信息大交通不做座位图,只收名单 + 身份证
{{modeLabel(vehMode)}}
客人自行抵达{{vehMode==='flight'?'机场':'车站/集合点'}},按下方集合地点时间统一集合。
{{vehMode==='bus'?'上车地点':'集合地点'}}{{boardPts.length}} 个点位
| 顺序 | 点位名称 / 详细地址 | 时间 | 现场负责人 | 等候条件(适老) | 预计人数 | |
|---|---|---|---|---|---|---|
| {{p.sort}} | {{p.name}}
主集合点
{{p.address}} · {{p.parking_note}} |
{{p.board_time}} | {{p.contact_name||'—'}} {{p.contact_phone}} |
{{t}} — | 已选 {{p.selected_cnt}} / 计划 {{p.planned_cnt}} |
还没有点位:点「从产品模板带出」(产品级模板首次需手工新增一次),或直接「+ 新增点位」
{{p.name}}{{p.board_time}}
发车{{departTime}}
{{vehMode==='bus' ? '车辆列表' : '地面段车辆列表'}}
| 车辆 | 车牌 | 司机 | 导游 | 占用 | |
|---|---|---|---|---|---|
| {{v.name}} {{v.model_label}} |
{{v.plate_no || '待定'}} | {{v.driver_name || '待定'}} {{v.driver_phone}} |
{{v.guide_name || '待定'}} {{v.guide_phone}} |
{{v.used_cnt}}/{{v.seat_count}} |
{{vehMode==='bus' ? '尚未安排车辆,点右上「增开一辆」' : '尚未安排地面段车辆,点右上「增开地面段」(目的地接驳/摆渡大巴,可多段)'}}
{{curCar.name}} 座位图
余 {{curCar.free_cnt}} 座 · 已占 {{curCar.taken_cnt}}
前排(适老)
可选
后排(颠簸)
已占
工作位
{{s.st==='blocked'?'位':s.no}}
{{s.st==='blocked'?'位':s.no}}
| 组团社 | 号段 | 个数 | |
|---|---|---|---|
| {{h.channel_name}} | {{h.start}} – {{h.end}} 号 | {{h.cnt}} |
还没有组团社选位
座位图
← 选一辆车看座位分布
{{editingCar ? '编辑车辆' : (vehMode==='bus' ? '增开一辆大巴' : '增开地面段大巴')}}
前 2 个号默认留作导游/工作位,可在车辆编辑里调整
按渠道核对:应收 = 报名金额 + 其他费用 + 变更增减,与「已收款」自动比对,差异行标红。
「报名金额」由系统带出(只读);自费项目等填在「其他费用」。
结团后照这一页跟组团社对账、跟地接结算,不用再翻微信群拼记录。
班期列表{{reconList.length}} 个班期
| 产品 / 班期 | 出发 | 状态 | |
|---|---|---|---|
|
{{d.product_title}}
班期 #{{d.id}} · 确认 {{d.confirmed_cnt}} 人 · 变更 {{d.change_cnt}}
|
{{d.depart_date}} {{calInfo(d).wd}} |
{{depStatus(d.status).t}} | 对账 › |
暂无班期
{{recon.departure.product_title}} · {{recon.departure.depart_date}}
{{recon.totals.diff_cents===0?'账平':'有差异 '+recon.totals.diff_channel_cnt+' 家'}}
组团社应收对账
应收 = 报名金额 + 变更增减 · 差异行标红
| 组团社 | 成人 | 儿童 | 报名金额 | 其他费用 | 变更 | 应收 | 已收 | 差异 | |||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| {{r.channel_name}} | {{r.adult_cnt}} | {{r.child_cnt}} | {{yuan(r.booking_amount_cents)}} | {{yuan(r.extra_fee_cents)}} — | {{(r.change_delta_cents>0?'+':'')+yuan(r.change_delta_cents)}}{{r.change_cnt}} 笔— | {{yuan(r.receivable_cents)}} | {{yuan(r.paid_cents)}}{{r.payment_cnt}} | {{r.has_diff? yuan(r.diff_cents) : '平'}} | |||||||||||||||||
|
收款流水 · {{r.channel_name}}
加载中…
本组团社暂无收款记录
冲正 {{rowReverse.pay_no}}
原金额 ¥{{yuan(rowReverse.amount_cents)}}
|
|||||||||||||||||||||||||
| 合计 | {{recon.totals.adult_cnt}} | {{recon.totals.child_cnt}} | {{yuan(recon.totals.booking_amount_cents)}} | {{yuan(recon.totals.extra_fee_cents)}} | {{(recon.totals.change_delta_cents>0?'+':'')+yuan(recon.totals.change_delta_cents)}} | {{yuan(recon.totals.receivable_cents)}} | {{yuan(recon.totals.paid_cents)}} | {{yuan(recon.totals.diff_cents)}} | |||||||||||||||||
岗位分账 · 收款核对
每笔收款记「收款人」→ 人 / 岗位 / 全公司三层
全公司有效已收
¥{{yuan(recon.staff_split.company.amount_cents)}}
共 {{recon.staff_split.company.cnt}} 笔有效收款
岗位 · {{rr.role_cn}}({{rr.person_cnt}} 人)
¥{{yuan(rr.amount_cents)}}
{{rr.cnt}} 笔
| 收款人 | 岗位 | 收款金额 | 笔数 | 覆盖组团社 |
|---|---|---|---|---|
| {{p.name}} | {{p.role_cn}} | {{yuan(p.amount_cents)}} | {{p.cnt}} | {{p.channel_cnt}} 家 |
本班期暂无收款流水(登记收款时选择「收款人」,此处自动汇总)
地接社结算
应付 = 地接确认人数 × 地接结算价
地接社
{{recon.dmc.name}}
确认 {{recon.dmc.actual_cnt}} 人
应付地接
¥{{yuan(recon.dmc.payable_cents)}}
地接结算价 ¥{{yuan(recon.departure.dmc_price_cents)}} × {{recon.dmc.actual_cnt}} 人
毛收(应收 − 应付地接)
¥{{yuan(recon.totals.receivable_cents - recon.dmc.payable_cents)}}
应收 ¥{{yuan(recon.totals.receivable_cents)}}
地接结算价
¥{{yuan(recon.departure.dmc_price_cents)}}
占位单明细
{{reconDetail.length}} 张占位单
| 单号 | 组团社 | 人数 | 金额 | 已收 | 状态 |
|---|---|---|---|---|---|
{{b.booking_no}} |
{{b.ch_name}} | {{b.cnt}} | {{yuan(b.amount_cents)}} | {{yuan(b.paid_cents)}} | {{bkStatus(b.status).t}} |
该班期暂无占位单
对账明细
← 选一个班期开始对账
地接在团上用链接直接上报(天气/交通/闭馆/客人身体等),无需登录。
涉及客人身体的一律自动升级为紧急——这类事晚一小时通报,性质就变了。
处置过程全部留痕,需要退补时一键转变更单,仍由规则引擎算钱。
待处理
{{incSummary.open}}
处理中
{{incSummary.handling}}
已解决
{{incSummary.resolved}}
紧急未闭环
{{incSummary.high}}
异常单
| 编号 | 紧急度 | 类型 | 情况 | 团号 | 影响 | 上报人 | 状态 | |
|---|---|---|---|---|---|---|---|---|
{{i.incident_no}} |
{{i.severity_label}} | {{i.category_label}} | {{i.title}} | {{i.team_no}} | {{i.affect_cnt}} 人 | {{i.reporter_name}} {{i.reporter_phone}} | {{i.status_label}} |
暂无异常上报
{{inc.incident_no}} · {{inc.title}}
{{inc.severity_label}}
{{inc.team_name}}
{{inc.team_no}}{{inc.dmc_name}}
{{inc.reporter_name}} {{inc.reporter_phone}}
{{inc.reporter_name}} {{inc.reporter_phone}}
{{inc.reported_at}}
{{inc.affect_cnt}} 人
{{inc.affect_cnt}} 人
{{inc.detail}}
{{inc.playbook}}
已转变更单
已复制
渠道履约
成团预测
传播洞察
按履约评分排序:退团率、退订率、变更频次越高扣分越多。
用来支撑差异化政策——A 级给配额与返点,C/D 级收紧占位与账期。
各组团社履约表现
| 评级 | 评分 | 组团社 | 累计报名 | 退团 | 退团率 | 变更笔数 | 退订人次 | 涉及异常 | 累计金额 |
|---|---|---|---|---|---|---|---|---|---|
| {{r.grade}} | {{r.score}} | {{r.channel_name}} | {{r.booked_cnt}} 人 | {{r.cancelled_cnt}} 人 | {{ (r.cancel_rate_bp/100).toFixed(0) }}% | {{r.change_cnt}} | {{r.refund_cnt}} | {{r.incident_cnt}} | {{yuan(r.net_amount_cents)}} 元 |
暂无渠道数据
怎么用这张表
A 级(≥85):优先给配额、可谈更高返点,新班期优先通知。
B 级(70–84):正常合作,观察变更频次。
C 级(55–69):占位需确认时限,收紧账期;变更频繁的建议收手续费。
D 级(<55):先款后位或暂停合作——退团率过高会直接吃掉班期利润。
B 级(70–84):正常合作,观察变更频次。
C 级(55–69):占位需确认时限,收紧账期;变更频繁的建议收手续费。
D 级(<55):先款后位或暂停合作——退团率过高会直接吃掉班期利润。
按当前报名进度(60%权重)+ 距出发天数 + 历史成团率估算。
样本少时置信度低,仅供参考,不替代人工判断。
班期成团概率
历史成团率 {{ (fcHistory*100).toFixed(0) }}%(样本 {{fcN}} 个)
| 产品 | 出发 | 距今 | 已确认/占位 | 成团线 | 缺口 | 概率 | 建议 |
|---|---|---|---|---|---|---|---|
| {{i.product_title}} | {{i.depart_date}} | {{i.days_left}} 天 | {{i.confirmed_cnt}} / {{i.held_cnt}} | {{i.min_group_size}} | {{i.gap ? '缺 '+i.gap+' 人' : '已达标'}} |
|
{{i.advice}} |
暂无班期
看你的线路在别人的群里传得多广:谁转了、转到第几层、客户从哪儿点开。
数字来自每条线路的分享短链 —— 只统计你自己的货源(别人转你家的线路,传播量也归你这条线路)。
分享链接
{{ shStat.link_cnt || 0 }}
累计访问
{{ shStat.visit_cnt || 0 }}
去重访客
{{ shStat.unique_cnt || 0 }}
已转化
{{ shStat.converted_cnt || 0 }}
转发层级
暂无埋点数据
打开场景
暂无埋点数据
线路传播榜按访问量排序 · 同一线路的多条短链已合并
| 线路 | 短链数 | 访问 | 去重 | 转化 |
|---|---|---|---|---|
| {{ r.title || '—' }} | {{ r.link_cnt }} | {{ r.visit_cnt }} | {{ r.unique_cnt }} | {{ r.converted_cnt }} |
暂无传播数据 —— 组团社把线路分享出去后,这里会汇总
转发链贡献榜哪条短链带人最多
| 归属 | 标题 | 短链 | 访问 | 去重 | 转化 |
|---|---|---|---|---|---|
| {{ b.owner_name }} | {{ b.title }} | {{ b.visit_cnt }} | {{ b.unique_cnt }} | {{ b.converted_cnt }} |
暂无短链数据
{{pricing.title}}
分渠道定价 · 已单独定价 {{priceSetCnt}} / {{pricing.channels.length}} 家
未单独定价的组团社按班期统一价
{{priceRangeTxt(pricing.default_net_min, pricing.default_net_max)}} 结算
(成人)· 儿童
{{priceRangeTxt(pricing.default_child_min, pricing.default_child_max)}}
该产品还没有班期
—— 未单独定价的组团社暂无统一价可回落,无法结算
请先到「班期与占位」给这款产品开班期并设统一价;设好后,未单独定价的组团社自动按统一价结算
该产品的班期还没设统一价,未单独定价的组团社将按 ¥0 计算 —— 请先到「班期与占位」把班期统一价设好
A 级
B 级
C 级
按各家等级批量填,填完可再逐家微调
| 组团社 | 等级 | 返点 | 账期 | 成人价(元) | 儿童价(元) | |
|---|---|---|---|---|---|---|
| {{c.short_name || c.channel_name}} 专属 | {{c.level}} | {{(c.rebate_rate_bp / 100).toFixed(0)}}% | {{c.credit_days ? c.credit_days + ' 天' : '现结'}} |
成人价留空 = 恢复默认(回到统一价);儿童价留空 = 沿用班期童价。
改价只影响之后的新报名单 —— 已成交订单按其成交价结算,不会被追溯改动。
改价只影响之后的新报名单 —— 已成交订单按其成交价结算,不会被追溯改动。
{{depOrders.departure.product_title}}
{{depOrders.departure.depart_date}} 出发 · 查看订单(按组团社分组)
组团社
{{depOrders.totals.channel_cnt}} 家
成人
{{depOrders.totals.adult}} 人
儿童
{{depOrders.totals.child}} 人
合计上报
{{depOrders.totals.total}} 人
{{c.channel_name}}
本社报名
{{c.booking_status==='confirmed'?'已确认':(c.booking_status==='held'?'占位中':'多单')}}
{{c.booking_ids.length>2 ? (c.booking_ids.length+' 张单') : c.booking_no}}
{{c.adult_cnt}}
成人
{{c.child_cnt}}
儿童
{{c.total_cnt}}
合计
{{c.roster.filled}}/{{c.roster.need}}
名单已收
备注{{c.remark || '—'}}
上车地点
{{bp.name}}
{{bp.board_time}}
—
座位号段
{{s.vehicle_name}} {{s.start}}~{{s.end}} 号({{s.cnt}})
尚未选座
名单
{{c.roster.filled}} / {{c.roster.need}} 人
| 单号 | 姓名 | 证件号(脱敏) | 类型 | 手机号 | 特殊照护 / 餐食 |
|---|---|---|---|---|---|
| {{t.booking_no}} | {{t.name}} | {{t.id_no_mask || '—'}} | {{t.traveler_type==='child'?'儿童':'成人'}} | {{t.phone || '—'}} | {{[t.special_care, t.meal_restriction].filter(x=>x).join(' / ') || '—'}} |
该组团社尚未提交名单 —— 点上方「复制收集链接」发过去,对方手机打开即可自助填写。
该班期还没有组团社报名。
直接选座 · {{ seatPick.channel_name }}
后台直接为该单分配座位号段(先到先得)
在座位图上先点起点、再点终点框选一段号段;已选号段可随时释放。座位只到「号段」,现场由导游按此安排。
{{seatPick.total}}
本单人数
{{seatPick.picked}}
已选
{{seatPick.total - seatPick.picked}}
待选
{{ seatPick.start && seatPick.end ? (Math.abs(seatPick.end-seatPick.start)+1) : 0 }}
本次选
本单已选号段
{{h.vehicle_name}} {{h.start}}~{{h.end}} 号({{h.cnt}})
{{v.vehicle_name}}{{v.plate_no || (v.seat_count + ' 座')}}
{{cell.no}}
销售报名 · 录自有单
报名单不挂组团社,仅记销售业绩归因
当前没有可报名的班期(需为「在售、有余位、未截团」的自家线路班期)。
成人价 ¥{{yuan(signupDep().adult_price_cents)}} / 人
儿童价 ¥{{yuan(signupDep().child_price_cents)}} / 人
上传名单,不用逐个录入
Excel / Word(.docx) / PDF / CSV · 一行一位客人 · 列顺序任意
{{ signupRosterMsg }}
建议列:姓名 · 证件号 · 手机号 · 成人/儿童
出行人名单({{ signupTravelers.length }} 人)
{{ i+1 }} 号
补名单 · {{ rosterUp.channel_name }}
已收 {{ (rosterUpCur() || {}).filled || 0 }} /
{{ (rosterUpCur() || {}).total_cnt || 0 }} 人 · 上传后直接加入名单,已有的不会重复
上传这一单的名单
Excel / Word(.docx) / PDF / CSV · 一行一位客人 · 列顺序任意
建议列:姓名 · 证件号 · 手机号 · 成人/儿童
这张单的名单已经齐了({{ (rosterUpCur() || {}).filled || 0 }} /
{{ (rosterUpCur() || {}).total_cnt || 0 }} 人)。如需换人,请先在名单里删除原出行人再补。
{{ rosterUpMsg }}
- {{ e }}
登记收款 · {{payForm.channel_name}}
金额单位为元 · 登记后自动分摊到该组团社各占位单
应收¥{{yuan(payForm.receivable_cents)}}
已收¥{{yuan(payForm.paid_cents)}}
差额¥{{yuan(payForm.diff_cents)}}
登记后该团差额
¥{{yuan(payForm.diff_cents)}} → ¥{{yuan(payAfterDiff)}}
{{payAfterHint}}
登记后可在该行「收款流水」里冲正改错
{{editingDep?'编辑班期 #'+editingDep.id:'开班期'}}
日期 / 名额 / 出行方式可随时调整
{{depCalTitle()}}
线路 {{depProdDays() || '—'}} 天
已选 {{depDates.length}} 期
{{w}}
{{d.slice(5)}} ✕
尚未选择日期 —— 点日历上的数字即选中,再点一次取消
返程日期按线路天数自动推算(出发 + {{depProdDays() > 0 ? depProdDays() - 1 : 0}} 天)
{{editingBp?'编辑点位':'新增点位'}}
{{vehDep.product_title}} · {{vehDep.depart_date}}
{{t}}
规则优先级:班期专属(10) > 渠道专属(20) > 客人类型(30) > 产品(40) > 全局默认(99)。
多条命中时自动取优先级最高者,并在试算时提示冲突。金额一律由规则引擎计算,不经过任何估算。
规则集
| 名称 | 适用范围 | 优先级 | 条数 | |
|---|---|---|---|---|
| {{r.name}} | {{scopeLabel(r.scope_type)}} | {{r.priority}} | {{r.item_count}} |
暂无规则集
自然语言录入政策
| 类型 | 距出发(天) | 口径 | 标准 | 原文依据 |
|---|---|---|---|---|
| {{typeLabel(it.change_type)}} | {{it.days_from_min}} ~ {{it.days_from_max>9000?'∞':it.days_from_max}} | {{modeLabel(it.calc_mode)}} | {{it.calc_mode==='percent'? it.percent+'%' : it.fixed_yuan+' 元'}} | {{it.note}} |
解析结果需人工确认后才入库,避免机器误读政策。
{{curSet.name}} · 规则明细
| 变更类型 | 距出发(天) | 计算口径 | 扣费标准 | 下限 | 上限 |
|---|---|---|---|---|---|
| {{it.change_type_label}} | {{it.days_from_min}} ~ {{it.days_from_max>9000?'∞':it.days_from_max}} | {{it.calc_mode_label}} | {{it.calc_mode==='percent' ? (it.percent_bp/100)+'%' : it.calc_mode==='fixed' ? yuan(it.fixed_amount_cents)+' 元' : '—'}} | {{it.min_charge_cents?yuan(it.min_charge_cents)+' 元':'—'}} | {{it.max_charge_cents?yuan(it.max_charge_cents)+' 元':'—'}} |
该规则集暂无明细
组团社合作管理:这里是您与每一家组团社的全部关系 ——
档案(名称 / 对接人 / 电话 / 等级 / 返点 / 账期)与
授权(能不能把您的线路导进他自己的库)。
一家组团社一行看全:状态是待处理就去「待处理申请」点同意;
已合作的可随时收回授权,收回不会删除他已经导走的线路(那些货可能正在对外销售)。
渠道档案{{channels.length}}
待处理申请{{coopPendingCnt}}
已合作组团社{{coopPartners.length}}
处理历史{{coopHistory().length}}
⚠ {{coopErr}}
{{coopPendingCnt}} 家组团社申请导入你的线路,等待处理
去审批 ›
{{s.l}}
{{s.v}}{{s.u}}
{{s.s}}
渠道统计暂不可用,请点上方重试
组团社档案
共 {{channels.length}} 家 · 当前显示 {{filteredChannels.length}} 家
电话用于日常业务对接与审批前沟通。
返点用于结算让利,账期决定对账单的到期口径。
| 公司名称 | 对接人 · 电话 | 等级 | 返点 · 账期 | 合作状态 | 导走线路 | 订单 | 最近导入 | 操作 |
|---|---|---|---|---|---|---|---|---|
| {{c.name}}
{{c.short_name}} |
{{c.contact_name || '—'}}
{{c.phone_masked}}
未登记电话
|
{{c.level}} 级 | {{chRebate(c)}}% / {{chCredit(c)}} 天 | {{chCoopCn(c)}} | {{c.import_cnt}}条 — | {{c.order_cnt || 0}} | {{c.last_import_at ? chAgo(c.last_import_at) : '—'}} |
暂无组团社 —— 点右上角「+ 新增组团社」建档
没有符合条件的组团社,试试放宽筛选条件
谁在卖我的线路
{{importers}}家已收进店铺
{{importers - followUps.length}}家已开单
{{followUps.length}}家待跟进
还没有组团社把你的线路收进自己店铺。线路在大合集里被看到、被收录之后,这里会显示是谁收的、卖得怎么样。
已经把线路收进店铺的 {{importers}} 家组团社,都已经在你这里开过单了。
{{(c.short_name || c.name || '?').slice(0,1)}}
{{c.short_name || c.name}}
{{c.import_cnt}} 条线路已收进店铺({{chAgo(c.last_import_at)}})· 至今没在你这里开过单 · 建议主动跟进
对接人 {{c.contact_name || '未登记'}} · 电话尾号 {{c.phone_tail}}
未留电话
{{contactView && (contactView.short_name || contactView.name)}}
✕
对接人
{{contactView.contact_name || '未登记'}}
联系电话
{{contactView.phone || '未登记'}}
{{contactView.source === 'registered'
? '来源:对方在平台注册时提交' : '来源:您建档时录入'}}
本次查看已记录。
组团社收客排行
应收合计 ¥{{yuan(chReceivable)}}
暂无收客数据
{{i+1}}
{{(c.name||'?').slice(0,1)}}
{{c.name}}{{c.book_cnt}}人
{{c.dep_cnt}} 个班期在售 · 应收 ¥{{yuan(c.amount_cents)}}
收客数据实时汇总,明细见上方渠道表
暂无收客数据
待处理申请同意后即建立合作,之后免申请
| 组团社 | 对接人 | 联系电话 | 申请导入的线路 | 申请时间 | 操作 |
|---|---|---|---|---|---|
| {{r.channel_name}} {{r.level}} 级 | {{r.contact_name || '—'}} | {{r.phone_mask || '—'}}
|
{{r.products.length}}条
{{ r.products.slice(0,2).map(p=>p.title).join('、') }} 等 {{r.products.length}} 条
未指定线路 · 仅申请建立合作
备注:{{r.apply_note}}
|
{{ (r.apply_at||'').slice(0,16) }} |
暂无待处理申请 —— 组团社申请导入你的线路时会出现在这里
已合作组团社可查看与收回授权
| 组团社 | 对接人 | 联系电话 | 状态 | 导走我的货 | 建立时间 | 操作 |
|---|---|---|---|---|---|---|
| {{r.channel_name}} | {{r.contact_name || '—'}} | {{r.phone_mask || '—'}}
|
{{r.status_cn}} | {{r.imported_cnt}} 条 | {{ (r.active_at||r.apply_at||'').slice(0,16) }} | — |
还没有已合作的组团社
处理历史被拒 / 已收回
| 组团社 | 状态 | 说明 | 时间 |
|---|---|---|---|
| {{h.channel_name}} | {{h.status_cn}} | {{h.reject_reason || (h.status==='revoked' ? '授权已收回' : '—')}} | {{ (h.reviewed_at||h.apply_at||'').slice(0,16) }} |
暂无处理历史 —— 被拒绝或已收回的合作申请会留在这里
批发商同业合作:你是供货方,对方也是 —— 这是批发商之间互相倒货。
建立关系后双方可互相推货:推过去的线路在对方库里生成草稿副本,
由他自行定价上架,两边独立运营、各自结算。
接货方的下游(组团社)看不到你的信息,只显示接货方自己的品牌。
已合作
{{ peerPartners.length }}家
关系存续中,可互相推货
待我处理
{{ peerInvites.length }}家
{{ peerInvites.length ? '有邀请等你接受' : '暂无待办' }}
等待对方
{{ peerOutgoing.length }}家
{{ peerOutgoing.length ? '我已发出,可撤回' : '暂无进行中的邀请' }}
收进线路
{{ peerFlowCnt.in }}条
同业伙伴推给我的货源
合作伙伴{{peerPartners.length}}
待处理
{{peerInvites.length + peerOutgoing.length}}
找伙伴
线路往来
{{peerFlowCnt.in + peerFlowCnt.out}}
已合作同业伙伴
关系存续期间免逐条确认
| 批发商 | 建立时间 | 操作 |
|---|---|---|
| {{r.peer_name}} | {{ (r.accepted_at||r.apply_at||'').slice(0,16) }} |
还没有同业伙伴。
待我接受的邀请
对方发起,等你点头
{{ peerInvites.length }}
| 批发商 | 附言 | 邀请时间 | 操作 |
|---|---|---|---|
| {{r.peer_name}} | {{r.note || '—'}} | {{ (r.apply_at||'').slice(0,16) }} |
没有待你处理的邀请。
别家批发商向你发起的合作邀请会出现在这里,接受后即可互相推货。
我发出的邀请
等待对方接受,可撤回
{{ peerOutgoing.length }}
| 批发商 | 附言 | 发出时间 | 操作 |
|---|---|---|---|
| {{r.peer_name}} | {{r.note || '—'}} | {{ (r.apply_at||'').slice(0,16) }} |
你还没有发出过邀请。
平台批发商名录
找同行互补线路
| 批发商 | 全称 | 当前关系 | 操作 |
|---|---|---|---|
| {{s.name}} | {{s.full_name}} | {{s.status_cn}} | {{ s.direction==='out' ? '已发出邀请' : '待你处理' }} 已合作 |
没有匹配的批发商。
换个关键词试试,或清空搜索框看全部名录。
线路往来 · 货源追溯
回答「我库里这条货从哪来」
| 对方 | 来源线路 | 我库副本 | 状态 | 时间 |
|---|---|---|---|---|
| {{x.other_name}} | {{x.source_title}} | {{x.new_title}}{{x.new_status}} | {{x.st_cn}} | {{ (x.when||'').slice(0,16) }} |
{{ peerFlowBox==='in' ? '还没有接收过同业的线路。' : '你还没有向外推送过线路。' }}
{{ peerFlowBox==='in'
? '伙伴推给你的线路会在他「推送给 TA」后出现在这里。'
: '到「合作伙伴」里选一家,点「推送给 TA」即可推货。' }}
拒绝「{{coopRej.name}}」的合作申请
✕
理由会展示给组团社。写清楚能省掉他反复申请的来回。
推送「{{peerPickProd.title}}」给同业伙伴
✕
推送后在对方产品库生成草稿副本,由他自行定价上架。
重复推送同一条不会产生第二份。
发起同业合作 · {{peerApplyFor.name}}
✕
对方接受后,双方可互相推送线路:推到对方库里的会生成草稿副本,
由他自己定价上架,两边独立运营。
推送线路给「{{peerPushFor.name}}」
已选 {{peerPushFor.ids.length}} 条
✕
推送后在对方产品库生成草稿副本,由他自行定价上架。
重复推送同一条不会产生第二份。草稿不参与推送。
你还没有可推送的线路
{{peerCatalog.name}} 的线路
已选 {{peerCatalog.ids.length}} 条
✕
领取后在你的产品库生成草稿副本,由你定价上架。
对方的信息不会出现在你的下游页面(组团社只看到你的品牌)。
对方暂无可领取的线路
我的店铺纯展示:对外只展示线路,不含报名 / 电话 / 二维码
公司全称 {{ brandCompany || "—" }} 仅用于平台审核与合同;
对外(店铺、海报、上下游)一律显示品牌名。
电脑端:{{shop.url}} · 手机端:{{shop.mobile_url}}
客户 · 看店铺
扫码进店铺手机版,只展示线路,免登录。
店铺装修
店铺 logo建议 400×400 · 正方形 · PNG / JPG
未上传时用店名首字占位
封面大图建议 1600×900 · 16:9 横图
手机版首屏头图,宜用横向实拍
{{shopMsg}}
货架管理上架要在店铺里展示的线路
{{ (shop.shelf || []).length }} 条在架
| 在架 | 线路 | 目的地 | 天数 | 参考价 | 浏览量 | 热门 |
|---|---|---|---|---|---|---|
|
{{p.title}}
{{p.tags.join(' · ')}}
|
{{p.dest || '—'}} | {{p.days}} 天 | ¥{{ (p.price_cents / 100).toLocaleString('zh-CN', {maximumFractionDigits: 2}) }} | {{p.view_cnt || 0}} | {{p.is_hot ? '热门' : '普通'}} | |
| 还没有产品 —— 先到「产品库」录入或导入线路,再回来上架 | ||||||
会员套餐
{{ planChainText }}
当前:{{curPlanName}} · {{curPlanStatusText}}
当前:未开通会员
当前
推荐
免费
{{pl.name}}
免费 · 长期有效
¥{{yuan(upgradeQuote(pl).diff)}}/年 · 升级价
¥{{yuan(pl.price_cents)}}/年
已抵扣 ¥{{yuan(upgradeQuote(pl).discount)}} · 剩余 {{upgradeQuote(pl).days}} 天
原价 ¥{{yuan(pl.price_cents)}}
- {{m.on?'✓':''}}{{m.n}}
正在使用此版本
{{(planRole && planRole.n) || '权益明细'}}
{{permCntText()}} · {{permTotalRows()}} 项权益逐项对照
| 权益明细 | {{permShort(p.name)}} {{permPrice(p)}} |
|---|---|
| {{g.n}} {{g.d}} | |
| {{row.n}}i | {{permCell(row, p).t}} |
「不限」指不设上限;「—」指该档不含此项;「免费试用期」= 开通后 30 天,功能与旗舰版相同,AI 额度为上表限量的体验额,到期后转为正式套餐的月度额度,可随时购买 AI 服务包加量。
AI 服务包
用完可单独加购,与会员套餐额度分开计费
会员套餐额度
{{planLeftTotal}}
按自然月重置
服务包额度
{{packLeftTotal}}
按购买量扣减
消耗顺序:先用套餐额度,再用服务包额度。额度没用完之前,对应功能可以直接使用;用完之后再加购服务包,与会员套餐分开计费。
{{c.n}}
{{c.left >= 9999 ? '不限' : c.left + ' 次'}}
{{p.name}}
¥{{yuan(p.price_cents)}}
免费
{{p.desc}}
金额由平台按套餐价计算,开通需平台方后台审核(不可逆操作),本页仅作权益展示与申请。
员工管理同事用各自的手机号登录,按岗位分权
不限人数
已用 {{supTeamMeta.used}}/{{supTeamMeta.max}} · 还可建 {{supTeamMeta.left}} 个
已用 {{supTeamMeta.used}}/{{supTeamMeta.max}} · 已达上限
员工只能看到自己岗位内的模块:计调管产品与班期、销售管渠道与收客、财务只管对账。
「设置」与「会员套餐」仅主账号可见。越权访问由服务端拦下 —— 不只是把菜单藏起来。
{{supTeamMsg.m}}
| 姓名 | 岗位 | 手机号 | 可见模块 | 状态 | 操作 |
|---|---|---|---|---|---|
|
{{s.name}}
自定义
{{s.title || '员工'}} · {{s.staff_no}}
|
{{s.role_cn}} | {{s.phone || '—'}} | {{n}} +{{s.pages_cn.length-5}} 当前套餐下暂无可操作模块 套餐未含 {{s.plan_blocked_cn.length}} 项 | {{s.status==='on'?'在岗':'已停用'}} | |
| 还没有员工账号 —— 点下面的「新增员工」开第一个 | |||||
员工上限由会员套餐决定;停用的员工仍占用名额(避免「停用→新建→启用」绕过限额)
{{supStaffForm.id ? '编辑员工' : '新增员工'}}
手机号即登录账号,员工用本人手机号 + 验证码登录
✕
{{roleHint(supStaffForm.role)}}
勾选不受岗位限制(自由的分配);实际可见=勾选 ∩ 会员套餐。「设置」始终仅主账号可用。
{{m.n}}
绿色=该岗位可用;金色=该岗位本可用、但当前套餐不含(升级可解锁);
浅灰=该岗位看不到。要给这位员工单独勾选,点上方「自定义勾选」。
{{supTeamMsg.m}}
关于部署
数据保存在服务端
data/app.db(SQLite 单文件)。
备份只需复制该文件。如需切换 PostgreSQL,设置环境变量 DB_URL 即可,无需改代码。
常见问题常规操作自助查询,未解决再问小川
✕
◈{{ g.category }}{{ g.items.length }}
{{ it.question }}
▾
{{ it.answer }}
没有找到相关问题 —— 换个关键词试试,或点击右下角「小川」直接问。