产品/客户搜索提前到启动前:输入框防抖搜索+下拉选择+缓存,登录时初始化搜索API,batch结束自动清空

This commit is contained in:
2026-05-15 15:49:33 +08:00
parent ae43899dbd
commit b925a89b6c
6 changed files with 296 additions and 29 deletions
+37 -23
View File
@@ -1,4 +1,4 @@
# 中国邮政揽收系统 - 自动填单工具
# 中国邮政揽收系统 - 自动填单工具 v2.0
通过 HTTP API + Node.js token bridge 实现,**不依赖浏览器自动化**。读取 Excel 运单数据,逐条自动填写产品、客户、运单信息并提交。
@@ -53,11 +53,11 @@ bash build.sh # Linux
```
Excel 行数据
→ 产品搜索 (autocomplete API) → 用户选择
→ 客户搜索 (autocomplete API) → 用户选择
→ 产品选择 (启动前搜索 + 缓存) → 用户确认
→ 客户选择 (启动前搜索 + 缓存) → 用户确认
→ 运单查询 → 获取收寄件人/地址/电话
→ 地址匹配 → 获取区划代码
→ 组装表单 (5层优先级) → 确认弹窗 → 提交
→ 组装表单 (5层优先级) → 确认弹窗(首行) → 提交
```
### 表单字段优先级
@@ -80,19 +80,32 @@ Excel 行数据
点击 `🔑 登录` → 弹出对话框 → 用浏览器 cookies 导出工具导出 `10.4.188.1` 的所有 cookies 为 JSON 数组 → 粘贴到对话框 → 保存。
cookies 保存到 `session.json`(与 exe 同目录)。
cookies 保存到 `session.json`(与 exe 同目录)。登录成功后自动初始化 token bridge 和搜索 API,供后续产品/客户搜索使用。
### 2. 选择 Excel
### 2. 选择产品/客户
登录后,在"固定值设置"区域的产品和客户输入框中输入关键词,自动触发搜索并弹出下拉选择框。选中后自动获取产品详情和客户详情并缓存,缓存有效期为一个 batch(处理完一批 Excel 数据后自动清空)。
### 3. 选择 Excel
点击 `选择文件`,选择要处理的 Excel 文件。
### 3. 配置固定值(可选)
### 4. 配置固定值(可选)
在 GUI 固定值表格中设置常用字段,勾选 "强制覆盖" 可覆盖 API 获取的值。
在固定值区域填写:
### 4. 开始处理
| 字段 | 说明 |
|------|------|
| 产品 | 用于 autocomplete 搜索,从下拉框选择 |
| 客户 | 用于 autocomplete 搜索,从下拉框选择 |
| 寄达地 | 强制覆盖运单返回的寄达地(勾选强制覆盖后生效) |
| 寄达地区划代码 | 直接决定寄达地,勾选强制覆盖后优先级最高 |
| 寄件人姓名 | 强制覆盖客户资料中的寄件人 |
| 寄件地址 | 强制覆盖客户资料中的寄件地址 |
点击 `▶ 开始处理` → 弹出产品/客户选择框 → 确认提交信息 → 自动批量处理后续行。
### 5. 开始处理
点击 `▶ 开始处理` → 首行弹出确认弹窗 → 确认后自动批量处理后续行。提交结果实时显示在下方表格中。
## Excel 格式
@@ -116,13 +129,13 @@ cookies 保存到 `session.json`(与 exe 同目录)。
- `url`: 揽收系统地址
### timing
- `delay_between_rows_ms`: 行间延时(毫秒)
- `delay_between_rows_ms`: 行间延时(毫秒),GUI 中间隔输入框单位也是毫秒
### fixed_values
```
"字段名": {"value": "值", "force": false}
```
`force: true` 时覆盖 API 获取值。
`force: true` 时覆盖 API 获取值。GUI 中通过复选框控制,点击"开始处理"时自动保存到配置文件。
### defaults
字段的默认值(中文名,自动翻译为系统编码)。
@@ -130,6 +143,18 @@ cookies 保存到 `session.json`(与 exe 同目录)。
### field_mapping
Excel 列名 → 表单参数名的自定义映射。内置映射覆盖常见字段,仅需在此配置自定义列名。
## 开发
### 日志等级
`log.py` 中修改 `LEVEL`:
- `-1` = 关闭所有日志(默认)
- `0` = 仅用户级消息
- `1` = 调试级
- `2` = 追踪级(API 请求/响应)
修改后重新打包生效。
## 文档
项目级文档见 `../docs/`:
@@ -142,14 +167,3 @@ Excel 列名 → 表单参数名的自定义映射。内置映射覆盖常见字
| `portal-to-pickup-full-flow.har` | 门户→揽收页面完整网络流 |
| `product-customer-selection-flow.har` | 产品/客户选择 API 流 |
| `successful-submit-with-address-change.har` | 改寄达地后成功提交 |
## 开发
### 日志等级
`log.py` 中修改 `LEVEL`:
- `0` = 仅用户级消息
- `1` = 调试级
- `2` = 追踪级(API 请求/响应)
修改后重新打包生效。