为旅行社一键生成专业的定制报价单与内部核价表(Word 文档)。支持自选景点、多日行程、住宿餐标、用车与门票核算,自动计算毛利并给出建议售价;品牌配色、logo 与成本均可配置,首次按引导填一次本部门成本即可上手。适用于团队定制游报价、企业团建、研学/亲子线路、内部成本核算等场景。
旅行引文生成器是一项面向实际任务的技能,主要用于此公共枢纽版本生成两个Word文件用于团队旅行: .;Document.;
使用时应结合输入条件选择合适的执行方式,核对必要参数、依赖环境与输出内容,并按原始要求处理异常情况。该技能适合需要稳定复用相关能力的场景,可作为自动化工作流的一部分,也便于后续检查、调整和扩展。从功能定位来看,该技能强调把分散的操作要求整理成清晰、可复用的处理流程,使用户能够围绕既定目标快速准备输入、选择执行方式并获得结构化结果。
实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;涉及批量任务时,还应保存进度,避免中断后重复操作。
本公开 Hub 版本为团队旅行报价生成两份 Word 文档:
| 文档 | 面向对象 | 脚本 |
|---|---|---|
| 客户报价单 | 面向外部客户的行程单、包含项目说明及人均价格 | assets/build_quote.js |
| 内部成本表 | 内部成本明细、利润核查及风险备注 | assets/build_cost.js |
默认配置文件:config.json 采用 Spring Tour 品牌标识。其他团队可在不修改代码的前提下,通过配置文件替换公司名称、配色、Logo、图片源顺序、基准成本及措辞。
每次启动报价任务前,请检查本地成本文件是否存在:
node -e "const { hasLocalCost, getLocalCostPath } = require('./assets/cost_store'); console.log(hasLocalCost(), getLocalCostPath())"
本地成本路径默认为 ~/.travel-quote/cost.json。该路径位于技能目录之外,因此包更新不会覆盖部门级设置。
每轮新对话均应在报价前简要说明当前配置状态;且该状态需在初始化后持续可见,因为各部门将持续迭代车辆、门票及酒店价格。
若本地成本文件不存在,提供以下三种选择:
node assets/init_cost.js template 生成模板,由用户填写后,再执行 node assets/init_cost.js import 导入。若用户提出“重设成本”、“更新成本”、“补充门票”或“reset costs”,则重新生成、导入或补丁更新本地成本文件。
Excel 配置模板包含以下工作表:
固定成本:导游费、餐标、保险、瓶装水、利润倍率,以及默认的上海车辆基准价。常用景点门票:经部门确认的景点或活动门票价格。地区用车:提供上海与杭州等地示例,便于配置人员理解不同城市车辆价格存在差异。仅导入含数值的价格行。常用酒店:酒店名称、所在区域、房型、默认每间夜价格,以及可选的日期-价格 JSON 字段。每种房型单独占一行;样例行若未填价格,则不被导入。对于多日期价格,仅填写已确认的特殊日期,例如 {"2026-06-15":520,"2026-06-16":560,"2026-06-17":520};其余日期自动回落至默认价格。如业务用户不熟悉 JSON 编写,可先将多日期价格填入备注栏,后续统一整理后再导入或于报价确认前完成结构化处理。本表用于存储酒店引用,以支持后续房间日历定价;但每份最终报价仍须单独确认住宿价格。酒店填写说明:非导入用辅助工作表,含常见酒店填写示例,包括常规价格、周末/旺季价格、临时报价价格及多种房型组合。针对上海标准成本,按以下顺序解析取值:
~/.travel-quote/cost.jsonconfig.json 中的公开基准值车辆成本依据 carType 选择 carTotal37 或 carTotal49,除非报价输入中已明确指定 fixedCosts.carTotal。
针对非上海城市,车辆价格按以下顺序解析:
fixedCosts.carTotalcost.json 中 地区用车 表格所定义的 regionalCarCosts,按城市与车型匹配references/car-cost-policy.md 中公布的车辆成本区间若本地地区车辆价格已标记为“已确认”,则直接采用,无需添加调度预警备注;若未确认,或仅有公开区间可用,则面向客户的表述中应注明“当地车辆资源以最终调度确认为准”,而内部成本表中则需展示估算区间。
公开版 assets/spot_catalog.json 中不得包含门票价格、图片路径或私有源 URL。
常用景点门票价格来自本地 cost.json 中的 spotTickets 字段。备注可包含工作日/周末、儿童票、季节性、团体规模等适用规则。当备注表明存在多个可能价格时,须在最终报价前向业务用户确认适用档位。
临时新增景点须逐单确认。即使某景点免费,仍需向业务用户确认,并设置 ticketPriceConfirmed: true。
当门票数据不完整时,应批量汇总确认项,而非逐个询问。请以紧凑表格形式呈现:
| 景点 | 本地已存价格 | 公开/市场参考价 | 备注 | 已确认报价价格 |
|---|
请业务用户填写或确认最后一列。若需开展公开调研,请注明该价格仅为市场参考,不代表供应商承诺。
优先采用前置式表单收集业务用户信息。一次性提问,后续仅就缺失项或高风险项进行跟进。
起始采用如下紧凑式报价信息采集表单:
请一次性补充/确认这些信息,已确定的填具体值,不确定可写“待定”: 1. 客户/团队名: 2. 出行日期、人数、城市: 3. 天数/晚数: 4. 已选景点或希望推荐的区域/主题: 5. 是否有临时景点、门票/体验费是否已确认: 6. 餐标: 7. 多日住宿:酒店名/双人间/单间人数和价格: 8. 用车:车型/是否已有确认车价: 9. 预算、竞品价、目标报价或价格敏感度: 10. 是否需要把本次确认的成本/门票保存为常用配置:
收到表单后执行以下步骤:
cost.json 自动填充已知的本地成本与门票价格。salePricePerPerson。对于多日行程,须基于总成本重新计算报价,不可复用单日默认价格。
切勿将 pricing.profitMultiplier 视为最终报价。它仅作为首轮估算的建议参考价。
在正式生成 Word 文件前,业务用户必须确认最终销售价格。脚本通过强制要求如下字段来确保该流程:
{
"salePricePerPerson": 300,
"salePriceConfirmed": true
}
若无已确认的销售价格,则运行 build_plan.js --dry-run 展示成本估算与建议参考价,再请用户确认具有竞争力的最终报价。
面向客户的报价文件中严禁出现任何内部成本相关表述:利润率、利润、亏损、成本、内部核算、供应商底价、团队用车成本、团队导游成本、人均保险成本、人均瓶装水成本等。
内部成本表可包含上述细节,但必须明确标注为“内部专用”。
禁止硬编码个人用户名或机器特定路径。
默认输出路径应为当前用户桌面下的单一会话文件夹,或用户指定的工作区文件夹。文件夹命名格式如下:
{route}_{people}_{MMDD}
同一会话的客户报价单与内部成本表必须保存在同一文件夹内。
为兼容 Skill Hub 上传要求,二进制图片未打包进发布包。默认品牌 Logo 以文本形式嵌入于 assets/brand/logo_embedded.js,并在文档生成时动态还原。景点图片于运行时实时获取,并缓存至 assets/cache/spot_images/ 目录下。
运行时图片源顺序配置于 config.json 中,切勿依赖打包的本地风景图片。
["springtour", "wiki"]
Spring Tour 图片源默认启用,仅作为示例/默认配置,可在配置中禁用或替换。
安装依赖:
cd assets npm install
生成试运行方案(dry-run):
node build_plan.js --dry-run '{"people":20,"route":"上海精选一日游","selectedSpotIds":["fengxian-museum"]}'
生成两份 Word 文件:
node build_plan.js '{"people":20,"route":"上海精选一日游","selectedSpotIds":["fengxian-museum"],"salePricePerPerson":300,"salePriceConfirmed":true,"outputDir":"../outputs/example"}'
发布前请务必验证以下事项:
node_modules、outputs、.DS_Store 或图片缓存文件。assets/spot_catalog.json 中不含门票价格、图片路径或私有源 URL。相关专题
热门下载
相关下载
精品课程
共6课时 | 54.7万人学习
共89课时 | 134.1万人学习
共49课时 | 82.6万人学习
最新文章