快速旅游线路成本核算系统说明书
快速开始
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 # 应用图标
核心模块说明
- 配置模块 (config.js) - 价格配置、季节定义、地名映射和关键词匹配
- 缓存模块 (cache.js) - 地理编码缓存管理、距离计算结果缓存、手动输入数据存储
- 计算引擎 (calculator.js) - 核心成本计算逻辑、租车天数计算、单接送费用处理
- 解析器 (parser.js) - 行程文本智能解析、景点识别和匹配、住宿信息提取
- 用户界面 (ui.js) - 界面交互逻辑、事件处理、数据验证
详细使用说明
系统运行流程
系统采用模块化设计,完整的处理流程如下:
用户输入 → 文本解析 → 距离计算 → 成本计算 → 结果展示
↓ ↓ ↓ ↓ ↓
配置参数 行程结构 路线数据 费用明细 可视化界面
详细处理步骤:
- 用户输入阶段
- 设置出行日期、人数、车型等基本参数
- 配置司陪餐补、普通餐标等费用标准
- 输入行程文本(Tab格式或自然语言)
- 文本解析阶段
- Tab切割解析:按制表符分割文本
- AI智能分析:调用NLP接口解析自然语言
- 数据标准化:转换为统一的数据结构
- 距离计算阶段
- 地理编码:将地名转换为经纬度坐标
- 路径规划:计算各点之间的行驶距离
- 缓存优化:存储计算结果提高性能
- 成本计算阶段
- 住宿费用:按酒店类型和季节计算
- 餐饮费用:根据餐标和人数计算
- 交通费用:燃油、租车、过路费综合计算
- 景点费用:门票和娱乐项目费用
- 结果展示阶段
- 表格展示:生成可编辑的成本明细表
- 图表展示:可视化费用分布
- 导出功能:生成Excel格式报表
文本解析说明
系统支持两种文本格式解析:Tab制表符分隔和自然语言文本。
Tab制表符分割解析(推荐)
行程使用 Tab制表符 或 多个空格 分隔,使用硬编码分析可快速识别进行核算,几乎无需修改行程错误,规范如下:
D{天数} {行程描述} {早餐} {午餐} {晚餐} {酒店}
其中每一行代表一天
示例
D1 全国各地—呼和浩特—达旗 × × × 达拉特旗4钻酒店
D2 达拉特旗—响沙湾—呼和浩特 √ × × 呼和浩特4钻酒店
D3 呼和浩特—辉腾锡勒草原—呼和浩特送团 √ × × 无
自然语言文本解析
自然语言文本解析分为「硬编码解析」和「ai大模型解析」
硬编码解析
使用制定好的规则逻辑,匹配数据文件进行文字识别,转换输出为Tab制表符标准格式,速度优于ai大模型解析但死板
具体步骤:
- 文本预处理 - 清理特殊字符、统一格式、标准化地名
- 实体识别 - 识别景点、酒店、餐饮、交通等关键信息
- 关系抽取 - 建立景点与日期、餐饮与时间的关联关系
- 结构化转换 - 将自然语言转换为标准化的数据结构
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);
}
表格数据处理流程:
- 数据解析 - 将文本转换为结构化数据对象
- 表格生成 - 动态创建HTML表格元素
- 事件绑定 - 添加编辑和计算更新功能
- 实时计算 - 用户编辑时自动更新成本
成本计算详解
计算公式
人均总计 = 住宿 + 餐饮 + 交通 + 娱乐 + 杂项
住宿费计算
住宿费 = Σ(酒店单价)
餐饮费计算
餐饮费 = Σ(午餐费 + 晚餐费)
交通费计算
燃油费 = 总里程 × 车型油耗单价
租车费 = 日租金 × 行程天数
过路费 = Σ(各路段过路费)
单接送费 = 次数 × 单价(系统自动判断)
交通团队总计 = 燃油费 + 租车费 + 过路费 + 单接送费
人均交通费 = 交通团队总计 ÷ 人数
费用说明
交通费用
- 租车费用:根据车型和租用天数计算
- 燃油费用:基于距离和燃油单价
- 过路费用:根据实际路线计算
- 单接送费:首末日的接送服务费用
住宿费用
- 酒店价格:区分淡季、平季、旺季价格进行计算
- 蒙古包:特殊住宿类型,当天有“诈马宴” → 蒙古包住宿费全免
餐饮费用
- 特色餐费:即普通餐标,默认按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: 缓存数据有什么作用?
缓存功能可以:
- 提高重复计算的速度
- 保存手动输入的距离数据
- 导出/导入历史计算记录
评论