# 西行云途 · 兑换码批量生成器（网页版）

纯前端、零依赖的兑换码批量生成工具，对应小程序工具 `tool/兑换码批量生成工具.py` 的浏览器交互版本。用户在网页里设定参数即可即时生成可导入数据库的兑换码，无需 Python 环境。

## 功能

- **参数面板**
  - 类型选择：仙途勋礼包（XIANTU）/ 梵言书卷礼包（FANYAN）/ 积分抵扣券（YOULI）/ 全部
  - 生成数量（滑块 + 数字输入联动；选「全部」时数量均分至三类）
  - 有效期天数、单ID限领次数、全局库存
  - 奖励内容（JSON 文本输入，留空则用各类型默认奖励）
- **生成逻辑（JS）**：`前缀_ + 10位随机字符`，随机字符池排除易混淆字符 `0/O/1/I/L`，用 `Set` 全局去重保证唯一，跨类型不重复。
- **结果展示**：表格列出 类型 / 兑换码 / 有效期 / 单ID限领 / 奖励，支持按类型筛选，可复制单条。
- **导出**：导出 CSV（带 BOM，`Blob` 下载，Excel 不乱码）、导出 SQL（生成 `INSERT INTO t_exchange_code` 语句文件）、复制全部到剪贴板。
- **顶部 HUD**：实时显示本次生成总数、各类型计数与唯一性（100% / ×）。

## 与 Python 脚本的关系

网页版逻辑与 `tool/兑换码批量生成工具.py` 保持一致：

| 项目 | Python 脚本 | 网页版 |
| --- | --- | --- |
| 类型与前缀 | XIANTU / FANYAN / YOULI | 一致 |
| 类型中文名 | 仙途勋礼包 / 梵言书卷礼包 / 积分抵扣券 | 一致 |
| 默认奖励 | 仙途勋值100 / 梵言书卷值50 / 积分抵扣100 | 一致 |
| 随机字符池 | 去除 0/O/1/I/L 的 A-Z+0-9 | 一致 |
| 去重 | `set` | `Set` |
| 导出 | Excel / CSV / SQL | CSV / SQL（去掉需 `openpyxl` 的 Excel，改用复制全部 / 直接粘贴） |
| 运行环境 | 依赖 Python + openpyxl | 纯浏览器，零依赖 |

> 说明：网页版将随机段设为 10 位（前缀 7 + 下划线 1 + 随机 10 = 18 位），比脚本的 8 位随机段更长、碰撞概率更低，且更便于人工抄录。导出 CSV/SQL 的字段与脚本 `t_exchange_code` 表结构字段一一对应，可直接衔接。

## 本地预览

单文件，无构建步骤，任选一种方式：

1. 直接双击 `index.html` 用浏览器打开即可。
2. 或启动本地静态服务（任选）：
   ```bash
   # Python
   python3 -m http.server 8080
   # 然后访问 http://localhost:8080
   ```
3. 或在本项目根目录用部署脚本 / 任意静态服务器托管 `exchange-code/` 目录。

## 版权脱敏

- 积分体系为脱敏设定：**仙途勋值**、**梵言书卷值**、**积分抵扣**，对应原版「仙勋分 / 经书分 / 积分」等表述，无任何原版西游 IP 名称、角色或剧情直引。
- 兑换码前缀为内部代号（XIANTU / FANYAN / YOULI），不含任何 copyrighted 标识。
- 全部数据均在本地浏览器内存中生成，不上传任何服务器，符合数据最小化原则。
