← 返回
未分类

定制旅游一键报价

Use when generating configurable travel quote Word documents, internal cost sheets, self-selected scenic spot plans, first-time local cost initialization, Excel cost setup, ticket confirmation, or brand-configurable team travel quotes.
为旅行社一键生成专业的定制报价单与内部核价表(Word 文档)。支持自选景点、多日行程、住宿餐标、用车与门票核算,自动计算毛利并给出建议售价;品牌配色、logo 与成本均可配置,首次按引导填一次本部门成本即可上手。适用于团队定制游报价、企业团建、研学/亲子线路、内部成本核算等场景。
LynnPan
未分类 community v1.0.2 3 版本 100000 Key: 无需
★ 1
Stars
📥 30
下载
💾 0
安装
3
版本
#latest

概述

Travel Quote Generator

This public Hub version generates two Word documents for a team travel quote:

DocumentAudienceScript
---------
Customer quoteExternal customer-facing itinerary, inclusions, and per-person priceassets/build_quote.js
Internal cost sheetInternal cost breakdown, profit check, and risk notesassets/build_cost.js

Default profile: config.json uses Spring Tour branding. Other teams can replace company name, colors, logo, image source order, baseline costs, and phrasing in config without changing code.

Cost Setup Status

At the start of a quote task, check whether the local cost file exists:

node -e "const { hasLocalCost, getLocalCostPath } = require('./assets/cost_store'); console.log(hasLocalCost(), getLocalCostPath())"

Local cost path defaults to ~/.travel-quote/cost.json. It lives outside the skill directory, so package updates do not overwrite department settings.

Every new conversation should briefly mention the setup status before quoting. The setup status should remain visible even after initialization, because departments will keep iterating vehicle, ticket, and hotel prices.

  • If no local cost file exists: show the setup prompt and say the quote can still proceed with public baseline estimates.
  • If local cost exists: say local department costs are being used and offer “补充常用景点票价 / 调整地区用车 / 维护常用酒店 / 调整车导餐保险水 / 重设成本”.
  • If the user gives new ticket or cost information during a quote, offer to save it back to local cost after the current quote is finished.

If the file does not exist, offer three choices:

  1. Quick form setup: ask for Shanghai 37-seat car, Shanghai 49-seat car, Hangzhou or other common destination car prices, guide, meal, insurance, water, common spot tickets, and common hotels in one compact form.
  2. Excel setup: generate a template with node assets/init_cost.js template , let the user fill it, then import it with node assets/init_cost.js import .
  3. Skip for now: continue with public baseline values and mention that these are estimates.

If the user says “重设成本”, “更新成本”, “补充门票”, or “reset costs”, regenerate, import, or patch the local file.

The Excel setup template includes:

  • 固定成本: guide, meal, insurance, water, profit multiplier, and default Shanghai vehicle baselines.
  • 常用景点门票: department-confirmed ticket or activity prices.
  • 地区用车: examples for Shanghai and Hangzhou, so configurators see that vehicle prices differ by city. Only rows with numeric prices are imported.
  • 常用酒店: hotel, area, room type, default room-night price, and optional date-price JSON such as {"2026-06-15":520}. This table stores hotel references for later room calendar pricing; still confirm lodging price before finalizing each quote.

Cost Source Priority

For Shanghai standard costs, resolve values in this order:

  1. Current quote input
  2. Local ~/.travel-quote/cost.json
  3. Public baseline in config.json

Car cost uses carType to choose carTotal37 or carTotal49 unless the quote input provides fixedCosts.carTotal.

For non-Shanghai cities, resolve vehicle prices in this order:

  1. Current quote input fixedCosts.carTotal
  2. Local regionalCarCosts from the 地区用车 setup sheet, matched by city and car type
  3. Public car-cost ranges in references/car-cost-policy.md

If the local regional vehicle price is marked confirmed, use it without a dispatch-warning note. If it is not confirmed, or only a public range is available, customer-facing language may say local vehicle resources are subject to final dispatch confirmation, and the internal sheet should show the estimated range.

Ticket Rules

The public assets/spot_catalog.json must not contain ticket prices, image paths, or private source URLs.

Common spot tickets come from local cost.json under spotTickets. Notes can include weekday, weekend, children, season, or group-size rules. When notes indicate multiple possible prices, confirm the applicable tier with the business user before finalizing the quote.

Temporary or new spots must be confirmed per quote. If a spot is free, still ask the business user to confirm and set ticketPriceConfirmed: true.

When ticket data is incomplete, group the confirmation instead of asking one spot at a time. Present a compact table:

SpotLocal saved pricePublic/market referenceNoteConfirmed quote price
------:---:------:

Ask the business user to fill or confirm the final column. If public research is needed, cite that it is only a market reference and not a supplier commitment.

Interaction Order

Prefer a front-loaded form for business users. Ask once, then only follow up on missing or risky items.

Start with this compact quote intake:

请一次性补充/确认这些信息,已确定的填具体值,不确定可写“待定”:
1. 客户/团队名:
2. 出行日期、人数、城市:
3. 天数/晚数:
4. 已选景点或希望推荐的区域/主题:
5. 是否有临时景点、门票/体验费是否已确认:
6. 餐标:
7. 多日住宿:酒店名/双人间/单间人数和价格:
8. 用车:车型/是否已有确认车价:
9. 预算、竞品价、目标报价或价格敏感度:
10. 是否需要把本次确认的成本/门票保存为常用配置:

After receiving the form:

  1. Travel date and people count, using plain text questions only.
  2. Fill known local cost and ticket values from cost.json.
  3. For missing tickets, vehicle prices, closures, or reservation rules, summarize market/public references and ask for final confirmation in one table.
  4. For multi-day trips, confirm lodging before final meal and price review.
  5. Present cost estimate, market reference, and a suggested quote range.
  6. Ask the business user to confirm the final salePricePerPerson.

For multi-day trips, calculate price from total cost. Do not reuse a one-day default price.

Price Confirmation Rule

Do not treat pricing.profitMultiplier as the final quote. It is only a suggested-price reference for first-pass estimation.

Before generating formal Word files, the business user must confirm the final sale price. The script enforces this by requiring:

{
  "salePricePerPerson": 300,
  "salePriceConfirmed": true
}

If no confirmed sale price is available, run build_plan.js --dry-run to show the cost estimate and suggested reference price, then ask the user to confirm a competitive final price.

Customer Safety Boundary

Customer-facing quote files must never include internal cost language: margin, profit, loss, cost, internal calculation, supplier bottom price, group car cost, group guide cost, insurance per-person cost, or water per-person cost.

Internal cost sheets may include those details and must remain clearly marked as internal.

File Output

Do not hard-code personal usernames or machine-specific paths.

Default output should be a single session folder on the current user’s Desktop, or a user-provided workspace folder. Use folder naming like:

{route}_{people}_{MMDD}

Quote and cost sheet for the same session must be saved in the same folder.

Image Sources

Binary images are not bundled for Skill Hub upload compatibility. The default brand logo is embedded as text in assets/brand/logo_embedded.js and restored at document generation time. Spot images are fetched at runtime and cached under assets/cache/spot_images/.

Configured runtime source order lives in config.json. Do not rely on bundled local scenic images.

["springtour", "wiki"]

The Spring Tour source is enabled by default as an example/default profile source and can be disabled or replaced in config.

Script Usage

Install dependencies:

cd assets
npm install

Generate a dry-run plan:

node build_plan.js --dry-run '{"people":20,"route":"上海精选一日游","selectedSpotIds":["fengxian-museum"]}'

Generate both Word files:

node build_plan.js '{"people":20,"route":"上海精选一日游","selectedSpotIds":["fengxian-museum"],"salePricePerPerson":300,"salePriceConfirmed":true,"outputDir":"../outputs/example"}'

Public Package Red Lines

Before publishing, verify:

  • No real customer names.
  • No internal cost tables or route-margin references.
  • No bundled third-party scenic images.
  • No node_modules, outputs, .DS_Store, or image cache files.
  • assets/spot_catalog.json has no ticket prices, image paths, or private source URLs.

版本历史

共 3 个版本

  • v1.0.2 更新配置项 当前
    2026-06-05 12:58 安全 安全
  • v1.0.1 Initial release
    2026-06-05 11:06 安全 安全
  • v1.0.0 Initial release
    2026-06-04 23:40 安全 安全

安全检测

腾讯云安全 (Keen)

安全,无风险
查看报告

腾讯云安全 (Sanbu)

安全,无风险
查看报告

🔗 相关推荐

ai-intelligence

Self-Improving + Proactive Agent

ivangdavila
自我反思+自我批评+自我学习+自组织记忆。智能体评估自身工作、发现错误并持续改进。
★ 1,358 📥 318,296
developer-tools

Github

steipete
使用 `gh` CLI 与 GitHub 交互,通过 `gh issue`、`gh pr`、`gh run` 和 `gh api` 管理议题、PR、CI 运行及高级查询。
★ 668 📥 324,121
ai-intelligence

ontology

oswalpalash
类型化知识图谱,用于结构化智能体记忆与可组合技能。支持创建/查询实体(人员、项目、任务、事件、文档)及关联...
★ 712 📥 243,795