快速旅游线路成本核算系统说明书

快速开始

1.打开 index.html(推荐使用 Chrome、edge 浏览器,你能打开使用说明页面说明已经打开过了)

2.设置出行日期和人数

3.选择车型(已根据人数自动推荐)

4.根据需要调整勾选司陪餐补等杂项

5.粘贴行程文本

优先使用硬编码分析,能够快速处理tab制表符的行程文本和大多数自然语言的文本描述,如表述不清或较为复杂请尝试使用ai分析,注意任何分析后都会转化为行程表格,请仔细核对表格内容是否和原行程一致

6.点击「点我开始核算」

需要注意行程距离和过路费基于高德地图api,如地名不够官方或太小众无法搜索获取距离路费数据,需手动输入调整,点击眼睛按钮可隐藏该条行程不进行计算

7.查看成本明细

请仔细核对是否有遗漏项目

8.导出核算

点击「复制行程核算」自动复制于剪贴板,使用于快速分享微信沟通表述,点击「导出为excel」更适用于留档

Tips:可手动勾选已含项目,双击行程可修改公里/过路费 并自动计算费用

配置项说明

顶部按钮说明

系统概述与特性

快速旅游线路成本核算系统 V2 是一个专业的旅游线路成本计算工具,专门为旅游行业从业者设计。该系统能够快速、准确地计算旅游线路的各项成本,包括交通、住宿、餐饮、景点门票等,并提供智能化的成本分析和优化建议。

主要特性

  • 🚗 智能车型匹配 - 根据人数自动推荐合适车型
  • 📍 实时距离计算 - 集成高德地图API,自动计算行程距离
  • 💰 精细化成本核算 - 支持多种费用类型和季节价格差异
  • 🤖 AI智能分析 - 支持自然语言行程解析
  • 📊 Excel导出 - 生成包含公式的详细成本报表
  • 💾 数据缓存 - 本地存储历史数据,提高计算效率
  • 🎯 自定义配置 - 灵活的价格和参数设置

文件结构

cache/ ├── index.html # 主界面文件 ├── config.js # 价格配置和常量定义 ├── cache.js # 缓存管理和地理编码API ├── calculator.js # 核心成本计算逻辑 ├── parser.js # 行程文本解析器 ├── ui.js # 用户界面交互逻辑 ├── cost-calculate.js # 成本计算模块 ├── cost-display.js # 成本显示模块 ├── editable-table.js # 可编辑表格组件 ├── excel.js # Excel导出功能 ├── ai-analysis.js # AI智能分析模块 ├── nlp-converter.js # 自然语言转换器 ├── nlp-integration.js # NLP集成模块 ├── style.css # 样式文件 └── 8que.png # 应用图标

核心模块说明

  1. 配置模块 (config.js) - 价格配置、季节定义、地名映射和关键词匹配
  2. 缓存模块 (cache.js) - 地理编码缓存管理、距离计算结果缓存、手动输入数据存储
  3. 计算引擎 (calculator.js) - 核心成本计算逻辑、租车天数计算、单接送费用处理
  4. 解析器 (parser.js) - 行程文本智能解析、景点识别和匹配、住宿信息提取
  5. 用户界面 (ui.js) - 界面交互逻辑、事件处理、数据验证

详细使用说明

系统运行流程

系统采用模块化设计,完整的处理流程如下:

用户输入 → 文本解析 → 距离计算 → 成本计算 → 结果展示 ↓ ↓ ↓ ↓ ↓ 配置参数 行程结构 路线数据 费用明细 可视化界面

详细处理步骤:

  1. 用户输入阶段
    • 设置出行日期、人数、车型等基本参数
    • 配置司陪餐补、普通餐标等费用标准
    • 输入行程文本(Tab格式或自然语言)
  2. 文本解析阶段
    • Tab切割解析:按制表符分割文本
    • AI智能分析:调用NLP接口解析自然语言
    • 数据标准化:转换为统一的数据结构
  3. 距离计算阶段
    • 地理编码:将地名转换为经纬度坐标
    • 路径规划:计算各点之间的行驶距离
    • 缓存优化:存储计算结果提高性能
  4. 成本计算阶段
    • 住宿费用:按酒店类型和季节计算
    • 餐饮费用:根据餐标和人数计算
    • 交通费用:燃油、租车、过路费综合计算
    • 景点费用:门票和娱乐项目费用
  5. 结果展示阶段
    • 表格展示:生成可编辑的成本明细表
    • 图表展示:可视化费用分布
    • 导出功能:生成Excel格式报表

文本解析说明

系统支持两种文本格式解析:Tab制表符分隔和自然语言文本。

Tab制表符分割解析(推荐)

行程使用 Tab制表符 或 多个空格 分隔,使用硬编码分析可快速识别进行核算,几乎无需修改行程错误,规范如下:

D{天数} {行程描述} {早餐} {午餐} {晚餐} {酒店}

其中每一行代表一天

示例

D1 全国各地—呼和浩特—达旗 × × × 达拉特旗4钻酒店 D2 达拉特旗—响沙湾—呼和浩特 √ × × 呼和浩特4钻酒店 D3 呼和浩特—辉腾锡勒草原—呼和浩特送团 √ × × 无

自然语言文本解析

自然语言文本解析分为「硬编码解析」和「ai大模型解析」

硬编码解析

使用制定好的规则逻辑,匹配数据文件进行文字识别,转换输出为Tab制表符标准格式,速度优于ai大模型解析但死板

具体步骤:

  1. 文本预处理 - 清理特殊字符、统一格式、标准化地名
  2. 实体识别 - 识别景点、酒店、餐饮、交通等关键信息
  3. 关系抽取 - 建立景点与日期、餐饮与时间的关联关系
  4. 结构化转换 - 将自然语言转换为标准化的数据结构

ai大模型解析

调用AI接口将自然语言文本丢给大模型进行重新整合,根据提示词转换输出为Tab制表符标准格式,速度较慢且存在偶然性因素需要再次点击「ai大模型解析」进行重新解析,但胜在灵活能够处理绝大多数自然语言文本。注:本次预制了mimo 2.5大模型及apikey,可自主修改

// AI分析核心流程 async function analyzeWithAI(text) { // 1. 文本预处理 const cleanedText = preprocessText(text); // 2. 调用AI接口 const aiResponse = await callAIApi(cleanedText); // 3. 解析AI返回的结构化数据 const structuredData = parseAIResponse(aiResponse); // 4. 转换为Tab制表符标准格式 return convertToStandardFormat(structuredData); }

表格数据处理流程:

  1. 数据解析 - 将文本转换为结构化数据对象
  2. 表格生成 - 动态创建HTML表格元素
  3. 事件绑定 - 添加编辑和计算更新功能
  4. 实时计算 - 用户编辑时自动更新成本

成本计算详解

计算公式

人均总计 = 住宿 + 餐饮 + 交通 + 娱乐 + 杂项

住宿费计算
住宿费 = Σ(酒店单价)

餐饮费计算
餐饮费 = Σ(午餐费 + 晚餐费)

交通费计算
燃油费 = 总里程 × 车型油耗单价
租车费 = 日租金 × 行程天数
过路费 = Σ(各路段过路费)
单接送费 = 次数 × 单价(系统自动判断)

交通团队总计 = 燃油费 + 租车费 + 过路费 + 单接送费
人均交通费 = 交通团队总计 ÷ 人数

费用说明

交通费用

  • 租车费用:根据车型和租用天数计算
  • 燃油费用:基于距离和燃油单价
  • 过路费用:根据实际路线计算
  • 单接送费:首末日的接送服务费用

住宿费用

  • 酒店价格:区分淡季、平季、旺季价格进行计算
  • 蒙古包:特殊住宿类型,当天有“诈马宴” → 蒙古包住宿费全免

餐饮费用

  • 特色餐费:即普通餐标,默认按50/人算
  • 特殊餐费:扎马宴、红酒晚宴等,按照对应价格计费
  • 自理餐费:× / 自理 等表述 均为0元
  • 司陪餐补:司机和导游的餐费补贴,平摊至平均每人餐饮成本上

景点费用

  • 门票价格:各景点的标准票价
  • 娱乐项目:骑马、私家牧场等附加项目

4. 季节价格策略

系统支持三季价格策略:

  • 淡季:5月之前(去年10月-次年4月)
  • 平季:5月、6月、9月
  • 旺季:7月、8月

不同季节的住宿和部分服务价格会相应调整。

数据配置修改

配置格式:

javascript { name: "项目名称", // 显示名称 aliases: ["别名1", "别名2"], // 关键词,用于自动勾选 price: 100, // 单价(元/人) group: "景区分组名", // 所属分组 keywords: ["关键字1", "关键字2"] // 触发分组展开的关键字 }

示例:

{ name: "沙漠越野车", aliases: ["越野", "沙地车"], price: 380, group: "沙漠区 (响沙湾/库布齐)", keywords: ["响沙湾", "沙漠"] }

修改住宿价格
文件位置:config.js → priceConfig.accommodation

{ "name": "酒店名称", "aliases": ["别名1", "别名2"], "off_season": 100, // 淡季价格(元/人/晚) "peak_season": 180 // 旺季价格(元/人/晚) }

修改车型参数
文件位置:config.js → priceConfig.vehicleList

{ "model": "车型名称", "fuel_cost_per_km": 1.2, // 油耗单价(元/km) "daily_rent": 600 // 日租金(元/天) }

修改地名映射
文件位置:config.js → nameMapping

let nameMapping = new Map([ ["简称", "标准地名"], ["呼市", "呼和浩特市"], // 添加更多映射... ]);

修改餐补和杂项默认值

文件位置:index.html 中的配置项

<!-- 司陪餐补默认值 --> <input type="number" id="driverMealAllowance" value="50"> <!-- 单接送默认价格 --> <input type="number" id="transferPrice" value="300"> <!-- 导服费默认值 --> <input type="number" id="guidePriceBase" value="300">

常见问题解答

Q1: 为什么距离计算不准确?

距离计算依赖高德地图API,请确保:

  • 网络连接正常
  • API Key有效
  • 地点名称准确无误

Q2: 如何添加新的景点或服务?

config.js 文件的相应配置数组中添加新项目:

  • 景点:添加到 scenic 数组
  • 住宿:添加到 accommodation 数组
  • 车型:添加到 vehicleList 数组

Q3: 单接送费用如何计算?

单接送费用逻辑:

  • 小于8人:按30元/人收费
  • 大于8人:按300元整团收费
  • 仅在首日接机/末日送机时计算

Q4: 如何导出完整的成本报表?

点击"导出Excel"按钮,系统会生成包含:

  • 详细的费用明细表
  • 计算公式和汇总数据
  • 可编辑的Excel格式文件

Q5: 缓存数据有什么作用?

缓存功能可以:

  • 提高重复计算的速度
  • 保存手动输入的距离数据
  • 导出/导入历史计算记录