|
|
# 本次更新说明(2026-08-11c)— Direct 对齐官网 + 二级加速 + 轮询 400ms
|
|
|
|
|
|
| 项目 | 说明 |
|
|
|
|------|------|
|
|
|
| 打包文件 | **`chajia-code-20260811c.zip`**(仅代码) |
|
|
|
| 是否改库 | **否** |
|
|
|
| 是否改 `.env` | **否** |
|
|
|
| 重建镜像 | **是**(Next + Worker) |
|
|
|
|
|
|
### 含本次变更
|
|
|
|
|
|
1. MotherShip 登录态报价条数对齐官网:`cargo.type` 用 `Pieces`、优先 `ratesV2`、提货时刻进时区、不自动加住宅/尾板
|
|
|
2. 二级「补充信息」刷价走 Direct HTTP,失败再回退 DOM 队列
|
|
|
3. 一级 Direct 成功即写入 refine-hold,可继续填二级
|
|
|
4. 同承运商多档报价卡 React key 含价格,不再撞 key
|
|
|
5. 前端轮询间隔 400ms(原 2s),页面出结果更快
|
|
|
6. 含 11b 查价记录全档展示及此前累计改动
|
|
|
7. **ccnew / cc-client 无需改代码**(iframe 协议未变)
|
|
|
|
|
|
```bash
|
|
|
bash deploy/update-code-only-bt-host-mysql.sh
|
|
|
```
|
|
|
|
|
|
---
|
|
|
|
|
|
# 本次更新说明(2026-08-11b)— 查价记录展示全部报价
|
|
|
|
|
|
| 项目 | 说明 |
|
|
|
|------|------|
|
|
|
| 打包文件 | **`chajia-code-20260811b.zip`**(仅代码) |
|
|
|
| 是否改库 | **否** |
|
|
|
| 是否改 `.env` | **否** |
|
|
|
| 重建镜像 | **是**(Next;Worker 可不建) |
|
|
|
|
|
|
### 含本次变更
|
|
|
|
|
|
1. 查价记录不再只显示第一条报价;详情列出该次询价全部承运商档位
|
|
|
2. 主表报价列改为「N 档 / 最低价」
|
|
|
3. 详情支持复制全部报价
|
|
|
4. 含 11a 及此前累计改动
|
|
|
|
|
|
```bash
|
|
|
bash deploy/update-code-only-bt-host-mysql.sh
|
|
|
```
|
|
|
|
|
|
---
|
|
|
|
|
|
# 本次更新说明(2026-08-11a)— 查价记录减压与复制
|
|
|
|
|
|
| 项目 | 说明 |
|
|
|
|------|------|
|
|
|
| 打包文件 | **`chajia-code-20260811a.zip`**(仅代码) |
|
|
|
| 是否改库 | **否** |
|
|
|
| 是否改 `.env` | **否** |
|
|
|
| 重建镜像 | **是**(Next;Worker 可不建) |
|
|
|
|
|
|
### 含本次变更
|
|
|
|
|
|
1. 查价记录主表改为:时间、客户、线路、结果、报价、详情,不再横向滑动
|
|
|
2. 详情抽屉展示完整提货/派送地址与货物参数,支持单项复制与复制全部
|
|
|
3. 含此前累计改动
|
|
|
|
|
|
```bash
|
|
|
bash deploy/update-code-only-bt-host-mysql.sh
|
|
|
```
|
|
|
|
|
|
---
|
|
|
|
|
|
# 本次更新说明(2026-08-07q)— 更新报价回顶 + 时间/邮箱校验
|
|
|
|
|
|
| 项目 | 说明 |
|
|
|
|------|------|
|
|
|
| 打包文件 | **`chajia-code-20260807q.zip`**(仅代码) |
|
|
|
| 是否改库 | **否** |
|
|
|
| 是否改 `.env` | **否** |
|
|
|
| 重建镜像 | **是**(Next;Worker 建议同刷) |
|
|
|
|
|
|
### 含本次变更
|
|
|
|
|
|
1. 点击「保存并更新报价」后视角回弹到「选择承运商」报价区(刷价结束也会再滚一次)
|
|
|
2. 就绪时刻早于开门、开门不早于关门:选择时即时红字提示并禁止提交
|
|
|
3. 提货/送货联系人邮箱不得相同:即时提示 + 前后端拦截
|
|
|
4. 含 07p 及此前累计改动
|
|
|
|
|
|
```bash
|
|
|
bash deploy/update-code-only-bt-host-mysql.sh
|
|
|
```
|
|
|
|
|
|
---
|
|
|
|
|
|
# 本次更新说明(2026-08-07p)— 线路无价不再误导补详情
|
|
|
|
|
|
| 项目 | 说明 |
|
|
|
|------|------|
|
|
|
| 打包文件 | **`chajia-code-20260807p.zip`**(仅代码) |
|
|
|
| 是否改库 | **否** |
|
|
|
| 是否改 `.env` | **否** |
|
|
|
| 重建镜像 | **是**(Next + Worker) |
|
|
|
|
|
|
### 含本次变更
|
|
|
|
|
|
1. 官网已明确「该线路/货物暂无报价」时,直接展示中文拒价,**不再**弹出「请补充必要信息以获取报价」
|
|
|
2. 修复同屏同时出现 required fields + unable to find any rates 时误判为需补二级的问题
|
|
|
3. 含 07o 及此前累计改动
|
|
|
|
|
|
```bash
|
|
|
bash deploy/update-code-only-bt-host-mysql.sh
|
|
|
```
|
|
|
|
|
|
---
|
|
|
|
|
|
# 本次更新说明(2026-08-07o)— 全面取消托盘 1–25 硬限
|
|
|
|
|
|
| 项目 | 说明 |
|
|
|
|------|------|
|
|
|
| 打包文件 | **`chajia-code-20260807o.zip`**(仅代码) |
|
|
|
| 是否改库 | **否** |
|
|
|
| 是否改 `.env` | **否** |
|
|
|
| 重建镜像 | **是**(Next;Worker 可不建) |
|
|
|
|
|
|
### 含本次变更
|
|
|
|
|
|
1. 取消托盘数 1–25 上限(一级/二级/匿名均不再因此拒价);仅要求托盘数为正整数
|
|
|
2. 重量、尺寸、登录态均重≤5000 / 总重≤45000 等其他规则保留
|
|
|
3. 含 07n 及此前累计改动
|
|
|
|
|
|
```bash
|
|
|
bash deploy/update-code-only-bt-host-mysql.sh
|
|
|
```
|
|
|
|
|
|
---
|
|
|
|
|
|
# 本次更新说明(2026-08-07n)— 二级刷价误触托盘 1–25
|
|
|
|
|
|
| 项目 | 说明 |
|
|
|
|------|------|
|
|
|
| 打包文件 | **`chajia-code-20260807n.zip`**(仅代码) |
|
|
|
| 是否改库 | **否** |
|
|
|
| 是否改 `.env` | **否** |
|
|
|
| 重建镜像 | **是**(Next;Worker 可不建) |
|
|
|
|
|
|
### 含本次变更
|
|
|
|
|
|
1. 修复:一级可出价、二级刷价却报「托盘数超出(1-25)」——刷价请求无 `cargo_lines` 误走匿名硬限
|
|
|
2. 与 piece count 无关;有 `mothership_details` 即按登录态跳过 1–25
|
|
|
3. 含 07m 件数类型非必填等累计改动
|
|
|
|
|
|
```bash
|
|
|
bash deploy/update-code-only-bt-host-mysql.sh
|
|
|
```
|
|
|
|
|
|
---
|
|
|
|
|
|
# 本次更新说明(2026-08-07m)— 件数类型非必填 + 选项补全
|
|
|
|
|
|
| 项目 | 说明 |
|
|
|
|------|------|
|
|
|
| 打包文件 | **`chajia-code-20260807m.zip`**(仅代码) |
|
|
|
| 是否改库 | **否** |
|
|
|
| 是否改 `.env` | **否** |
|
|
|
| 重建镜像 | **是**(Next;Worker 可不建) |
|
|
|
|
|
|
### 含本次变更
|
|
|
|
|
|
1. 件数类型 / 件数数量按官网改为非必填(去掉 * 与校验拦截)
|
|
|
2. 件数类型下拉补全为 18 项(Pieces/Cartons/Boxes/…)
|
|
|
3. 补齐附加服务区块 ⓘ;含 07l tip 点击等累计改动
|
|
|
|
|
|
```bash
|
|
|
bash deploy/update-code-only-bt-host-mysql.sh
|
|
|
```
|
|
|
|
|
|
---
|
|
|
|
|
|
# 本次更新说明(2026-08-07l)— 二级 ⓘ 提示可点击且译中文
|
|
|
|
|
|
| 项目 | 说明 |
|
|
|
|------|------|
|
|
|
| 打包文件 | **`chajia-code-20260807l.zip`**(仅代码) |
|
|
|
| 是否改库 | **否** |
|
|
|
| 是否改 `.env` | **否** |
|
|
|
| 重建镜像 | **是**(Next;Worker 可不建) |
|
|
|
|
|
|
### 含本次变更
|
|
|
|
|
|
1. 二级 Details 字段 ⓘ 可点击/悬停显示说明(原为空图标)
|
|
|
2. 货物类型 / 件数类型 / NMFC 按官网 tip 原文准确译中;参考号、就绪时刻、运费等级同步说明
|
|
|
3. 含 07k 混装托盘计数修复等累计改动
|
|
|
|
|
|
```bash
|
|
|
bash deploy/update-code-only-bt-host-mysql.sh
|
|
|
```
|
|
|
|
|
|
---
|
|
|
|
|
|
# 本次更新说明(2026-08-07k)— 混装询价误报托盘数超限
|
|
|
|
|
|
| 项目 | 说明 |
|
|
|
|------|------|
|
|
|
| 打包文件 | **`chajia-code-20260807k.zip`**(仅代码) |
|
|
|
| 是否改库 | **否** |
|
|
|
| 是否改 `.env` | **否** |
|
|
|
| 重建镜像 | **是**(Next;Worker 可不建) |
|
|
|
|
|
|
### 含本次变更
|
|
|
|
|
|
1. 修复:登录态 `pallet_count` 误把纸箱等行数量加总,触发「托盘数超出允许范围(1-25)」;现仅合计类型为托盘的行
|
|
|
2. 录入提示文案对齐:支持小数录入,提交时向上取整
|
|
|
3. 含 07j 补填红边等累计改动
|
|
|
|
|
|
```bash
|
|
|
bash deploy/update-code-only-bt-host-mysql.sh
|
|
|
```
|
|
|
|
|
|
---
|
|
|
|
|
|
# 本次更新说明(2026-08-07j)— 补填态必填框红边提醒
|
|
|
|
|
|
| 项目 | 说明 |
|
|
|
|------|------|
|
|
|
| 打包文件 | **`chajia-code-20260807j.zip`**(仅代码) |
|
|
|
| 是否改库 | **否** |
|
|
|
| 是否改 `.env` | **否** |
|
|
|
| 重建镜像 | **是**(Next;Worker 可不建) |
|
|
|
|
|
|
### 含本次变更
|
|
|
|
|
|
1. 用户确认「请补充必要信息后重新获取报价」后,空/错必填输入框显示明显红边与短提示
|
|
|
2. 填写正确后红边消失;提交校验失败也会强制高亮
|
|
|
3. 含 07i 就绪时刻规则等累计改动
|
|
|
|
|
|
```bash
|
|
|
bash deploy/update-code-only-bt-host-mysql.sh
|
|
|
```
|
|
|
|
|
|
---
|
|
|
|
|
|
# 本次更新说明(2026-08-07i)— 货运就绪时刻不得早于提货开门
|
|
|
|
|
|
| 项目 | 说明 |
|
|
|
|------|------|
|
|
|
| 打包文件 | **`chajia-code-20260807i.zip`**(仅代码) |
|
|
|
| 是否改库 | **否** |
|
|
|
| 是否改 `.env` | **否** |
|
|
|
| 重建镜像 | **是**(Next **与** Worker) |
|
|
|
|
|
|
### 含本次变更
|
|
|
|
|
|
1. 对齐官网:就绪时刻不得早于提货点开门;开门须早于关门(前端拦截 + 开门变更自动拨就绪时刻)
|
|
|
2. 二级刷价透传 `ready_date` / `ready_time`;RPA refine 重填就绪时间
|
|
|
3. 门户英文「Freight ready time is before…」译为中文
|
|
|
4. 含 07h 及此前白标累计改动
|
|
|
|
|
|
```bash
|
|
|
bash deploy/update-code-only-bt-host-mysql.sh
|
|
|
# Worker 须一并重建(refine RPA 改动)
|
|
|
```
|
|
|
|
|
|
---
|
|
|
|
|
|
# 本次更新说明(2026-08-07h)— 去掉「无法服务此货件的承运商」模块
|
|
|
|
|
|
| 项目 | 说明 |
|
|
|
|------|------|
|
|
|
| 打包文件 | **`chajia-code-20260807h.zip`**(仅代码) |
|
|
|
| 是否改库 | **否** |
|
|
|
| 是否改 `.env` | **否** |
|
|
|
| 重建镜像 | **是**(Next) |
|
|
|
|
|
|
### 含本次变更
|
|
|
|
|
|
1. 侧栏移除「无法服务此货件的承运商」整块占位模块
|
|
|
2. 含 07g 及此前白标累计改动
|
|
|
|
|
|
```bash
|
|
|
bash deploy/update-code-only-bt-host-mysql.sh
|
|
|
```
|
|
|
|
|
|
---
|
|
|
|
|
|
# 本次更新说明(2026-08-07g)— 侧栏去掉「以官网为准」
|
|
|
|
|
|
| 项目 | 说明 |
|
|
|
|------|------|
|
|
|
| 打包文件 | **`chajia-code-20260807g.zip`**(仅代码) |
|
|
|
| 是否改库 | **否** |
|
|
|
| 是否改 `.env` | **否** |
|
|
|
| 重建镜像 | **是**(Next) |
|
|
|
|
|
|
### 含本次变更
|
|
|
|
|
|
1. Dedicated 等服务说明不再出现「以官网为准」
|
|
|
2. 不可用承运商相关占位文案同步去官网表述
|
|
|
3. 含 07f 及此前白标/补填/保障外链等累计改动
|
|
|
|
|
|
```bash
|
|
|
bash deploy/update-code-only-bt-host-mysql.sh
|
|
|
```
|
|
|
|
|
|
---
|
|
|
|
|
|
# 本次更新说明(2026-08-07f)— 去掉保障方案外链与官网提示
|
|
|
|
|
|
| 项目 | 说明 |
|
|
|
|------|------|
|
|
|
| 打包文件 | **`chajia-code-20260807f.zip`**(仅代码) |
|
|
|
| 是否改库 | **否** |
|
|
|
| 是否改 `.env` | **否** |
|
|
|
| 重建镜像 | **是**(Next) |
|
|
|
|
|
|
### 含本次变更
|
|
|
|
|
|
1. 移除「查看保障详情与除外条款」「了解更多」
|
|
|
2. 不再弹出「外链暂未配置 / 请在官网查看」类提示
|
|
|
|
|
|
```bash
|
|
|
bash deploy/update-code-only-bt-host-mysql.sh
|
|
|
```
|
|
|
|
|
|
---
|
|
|
|
|
|
# 本次更新说明(2026-08-07e)— 补充信息无客户时限 + 笼统提示
|
|
|
|
|
|
| 项目 | 说明 |
|
|
|
|------|------|
|
|
|
| 打包文件 | **`chajia-code-20260807e.zip`**(仅代码) |
|
|
|
| 是否改库 | **否** |
|
|
|
| 是否改 `.env` | **否** |
|
|
|
| 重建镜像 | **是**(Next + Worker) |
|
|
|
|
|
|
### 含本次变更
|
|
|
|
|
|
1. 取消客户侧填写倒计时与自动放弃;修复超时后「保存并更新报价」按钮消失
|
|
|
2. 敏感文案(超时/二级/官网)改为笼统提示,如「请补充必要信息后重新获取报价」「信息不完整…」
|
|
|
3. 内部会话过期时:用原地址 + 补充信息完整重查,不向客户暴露超时
|
|
|
4. 提交区 sticky,下滚仍可见
|
|
|
|
|
|
```bash
|
|
|
bash deploy/update-code-only-bt-host-mysql.sh
|
|
|
```
|
|
|
|
|
|
---
|
|
|
|
|
|
# 本次更新说明(2026-08-07d)— 二级补填提示改为短文案
|
|
|
|
|
|
| 项目 | 说明 |
|
|
|
|------|------|
|
|
|
| 打包文件 | **`chajia-code-20260807d.zip`**(仅代码) |
|
|
|
| 是否改库 | **否** |
|
|
|
| 是否改 `.env` | **否** |
|
|
|
| 重建镜像 | **是**(Next 必须) |
|
|
|
|
|
|
### 含本次变更
|
|
|
|
|
|
1. 图一弹窗与图二红色提示统一为:「请补充必要信息后重新获取报价」
|
|
|
2. 去掉「官网 / Save & update quote」等对外暴露细节
|
|
|
3. 含 07c:MotherShip 品牌脱敏
|
|
|
|
|
|
```bash
|
|
|
bash deploy/update-code-only-bt-host-mysql.sh
|
|
|
```
|
|
|
|
|
|
---
|
|
|
|
|
|
# 本次更新说明(2026-08-07c)— 客户可见文案隐藏 MotherShip 品牌
|
|
|
|
|
|
| 项目 | 说明 |
|
|
|
|------|------|
|
|
|
| 打包文件 | **`chajia-code-20260807c.zip`**(仅代码) |
|
|
|
| 是否改库 | **否** |
|
|
|
| 是否改 `.env` | **否** |
|
|
|
| 重建镜像 | **是**(Next 必须;Worker 建议重建以同步错误文案) |
|
|
|
|
|
|
### 含本次变更
|
|
|
|
|
|
1. 校验/错误提示不再出现 MotherShip / Mothership 字样(如「尺寸超出允许范围」)
|
|
|
2. 模块入口改为「私卡询价 / 合单询价」;报价卡片承运商名「MotherShip」脱敏为「平台承运」
|
|
|
3. API `fail` 与询价 `error_message` 统一品牌脱敏,防止漏网
|
|
|
4. 含 07b:shipment-form import 修复等
|
|
|
|
|
|
### 重测要点
|
|
|
|
|
|
1. 故意超尺寸询价:红字不得含 MotherShip
|
|
|
2. 报价结果承运商列表不得显示 MotherShip 品牌名
|
|
|
3. 若宿主左侧仍写「MotherShip 要求整数」,需宿主侧同步改文案(本仓嵌入侧提示已无品牌)
|
|
|
|
|
|
```bash
|
|
|
bash deploy/update-code-only-bt-host-mysql.sh
|
|
|
```
|
|
|
|
|
|
---
|
|
|
|
|
|
# 本次更新说明(2026-08-07b)— 修复 shipment-form 构建缺 import
|
|
|
|
|
|
| 项目 | 说明 |
|
|
|
|------|------|
|
|
|
| 打包文件 | **`chajia-code-20260807b.zip`**(仅代码) |
|
|
|
| 是否改库 | **否** |
|
|
|
| 是否改 `.env` | **否** |
|
|
|
| 重建镜像 | **是**(Next 必须;Worker 建议一并重建以含 07a) |
|
|
|
|
|
|
### 含本次变更
|
|
|
|
|
|
1. 修复 `mothership-logged-in-shipment-form.tsx` 误删 `evaluateMothershipAccessorialCompat` import 导致 `npm run build` 失败
|
|
|
2. 含 07a:ste/suite 不自动勾住宅等 RPA 对齐官网改动
|
|
|
|
|
|
### 重测要点
|
|
|
|
|
|
1. `npm run build` / 镜像构建通过
|
|
|
2. West Covina → Columbus(ste 2)未选手动附加服务可询价
|
|
|
|
|
|
```bash
|
|
|
bash deploy/update-code-only-bt-host-mysql.sh
|
|
|
```
|
|
|
|
|
|
---
|
|
|
|
|
|
# 本次更新说明(2026-08-07a)— 对齐官网:ste/suite 不自动勾住宅
|
|
|
|
|
|
| 项目 | 说明 |
|
|
|
|------|------|
|
|
|
| 打包文件 | **`chajia-code-20260807a.zip`**(仅代码) |
|
|
|
| 是否改库 | **否** |
|
|
|
| 是否改 `.env` | **否** |
|
|
|
| 重建镜像 | **是**(Next + RPA Worker 须重建) |
|
|
|
|
|
|
### 含本次变更
|
|
|
|
|
|
1. 商业地址含 `ste`/`suite` 时,RPA 不再自动勾选派送「住宅/尾板」(与官网可直接出价行为对齐)
|
|
|
2. 仅 `apt`/`apartment` 才自动补住宅类附加服务
|
|
|
3. 清空残留附加服务时先打开下拉;附加服务操作失败时优先展示官网拒价原文
|
|
|
4. 含 05g:一级页去掉常驻风险横幅等
|
|
|
|
|
|
### 重测要点
|
|
|
|
|
|
1. West Covina → Columbus(含 ste 2)未选手动附加服务时应能正常询价
|
|
|
2. 若仍失败,前端应优先显示官网真实拒价,而非固定「附加服务下拉超时」
|
|
|
3. 硬刷新(Ctrl+F5)
|
|
|
|
|
|
```bash
|
|
|
bash deploy/update-code-only-bt-host-mysql.sh
|
|
|
```
|
|
|
|
|
|
---
|
|
|
|
|
|
# 本次更新说明(2026-08-05g)— 去掉一级页常驻风险横幅
|
|
|
|
|
|
| 项目 | 说明 |
|
|
|
|------|------|
|
|
|
| 打包文件 | **`chajia-code-20260805g.zip`**(仅代码) |
|
|
|
| 是否改库 | **否** |
|
|
|
| 是否改 `.env` | **否** |
|
|
|
| 重建镜像 | **是**(Next 必须) |
|
|
|
|
|
|
### 含本次变更
|
|
|
|
|
|
1. 一级「创建新货件」页去掉顶部一直常驻的附加服务风险横幅
|
|
|
2. 提货侧「住宅」仍可选,且仍会在控件附近提示“可能得不到报价”
|
|
|
3. 含 05f:提货住宅改为可选风险提示
|
|
|
|
|
|
### 重测要点
|
|
|
|
|
|
1. 勾选提货「住宅」后,标题下方不再出现整条常驻提示
|
|
|
2. 附加服务控件附近仍会显示风险提示
|
|
|
3. 硬刷新(Ctrl+F5)
|
|
|
|
|
|
```bash
|
|
|
bash deploy/update-code-only-bt-host-mysql.sh
|
|
|
```
|
|
|
|
|
|
---
|
|
|
|
|
|
# 本次更新说明(2026-08-05f)— 提货住宅改为可选风险提示
|
|
|
|
|
|
| 项目 | 说明 |
|
|
|
|------|------|
|
|
|
| 打包文件 | **`chajia-code-20260805f.zip`**(仅代码) |
|
|
|
| 是否改库 | **否** |
|
|
|
| 是否改 `.env` | **否** |
|
|
|
| 重建镜像 | **是**(Next 必须) |
|
|
|
|
|
|
### 含本次变更
|
|
|
|
|
|
1. MotherShip 提货侧「住宅」不再前端直接禁选,用户可勾选后继续
|
|
|
2. 勾选后立即提示「该选择可能得不到报价」,与官网实际拒价规律对齐
|
|
|
3. 含 05e:FreightProtect 货值支持小数
|
|
|
|
|
|
### 重测要点
|
|
|
|
|
|
1. 提货侧可勾选「住宅」,且会显示风险提示,不再被灰掉
|
|
|
2. 送货侧互斥与提醒逻辑保持不变
|
|
|
3. 硬刷新(Ctrl+F5)
|
|
|
|
|
|
```bash
|
|
|
bash deploy/update-code-only-bt-host-mysql.sh
|
|
|
```
|
|
|
|
|
|
---
|
|
|
|
|
|
# 本次更新说明(2026-08-05e)— FreightProtect 货值支持小数
|
|
|
|
|
|
| 项目 | 说明 |
|
|
|
|------|------|
|
|
|
| 打包文件 | **`chajia-code-20260805e.zip`**(仅代码) |
|
|
|
| 是否改库 | **否** |
|
|
|
| 是否改 `.env` | **否** |
|
|
|
| 重建镜像 | **是**(Next 必须;RPA Worker 须重建以同步小数货值填入) |
|
|
|
|
|
|
### 含本次变更
|
|
|
|
|
|
1. FreightProtect 货值输入支持小数(最多两位,如 `300.55`),不再强制进位为整数
|
|
|
2. RPA 同步官网时按小数填入货值字段
|
|
|
3. 含 05d:客户端隐藏加价明细 + 去掉嵌入保存按钮
|
|
|
|
|
|
### 重测要点
|
|
|
|
|
|
1. 保障方案货值可输入 `300.5` / `300.55` 且不会被改成整数
|
|
|
2. 硬刷新(Ctrl+F5)
|
|
|
|
|
|
```bash
|
|
|
bash deploy/update-code-only-bt-host-mysql.sh
|
|
|
```
|
|
|
|
|
|
---
|
|
|
|
|
|
# 本次更新说明(2026-08-05d)— 客户端隐藏加价 + 去掉嵌入保存按钮
|
|
|
|
|
|
| 项目 | 说明 |
|
|
|
|------|------|
|
|
|
| 打包文件 | **`chajia-code-20260805d.zip`**(仅代码) |
|
|
|
| 是否改库 | **否** |
|
|
|
| 是否改 `.env` | **否** |
|
|
|
| 重建镜像 | **是**(Next 必须) |
|
|
|
|
|
|
### 含本次变更
|
|
|
|
|
|
1. 私卡侧栏/报价卡:客户端不再展示「原价 / 客户加价 / 最终价」拆解,仅显示加价后最终报价
|
|
|
2. 嵌入宿主模式去掉绿色「保存本次询价记录」按钮(点选承运商/保障已通过 `chajia:quote-result` 同步)
|
|
|
3. 含 05c:去掉货值小数说明 + 超时文案精确化
|
|
|
|
|
|
### 重测要点
|
|
|
|
|
|
1. 承运商卡片与底部摘要不再出现「原价」「客户加价」
|
|
|
2. 嵌入页侧栏底部无绿色保存按钮;点选承运商宿主仍能收到选中报价
|
|
|
3. 硬刷新(Ctrl+F5)
|
|
|
|
|
|
```bash
|
|
|
bash deploy/update-code-only-bt-host-mysql.sh
|
|
|
```
|
|
|
|
|
|
---
|
|
|
|
|
|
# 本次更新说明(2026-08-05c)— 去掉货值小数说明 + 超时文案精确化
|
|
|
|
|
|
| 项目 | 说明 |
|
|
|
|------|------|
|
|
|
| 打包文件 | **`chajia-code-20260805c.zip`**(仅代码) |
|
|
|
| 是否改库 | **否** |
|
|
|
| 是否改 `.env` | **否** |
|
|
|
| 重建镜像 | **是**(Next 必须) |
|
|
|
|
|
|
### 含本次变更
|
|
|
|
|
|
1. FreightProtect 区去掉「货值不允许小数/进位」说明文案(进位逻辑仍静默生效)
|
|
|
2. 含 05b:超时/报错按具体控件显示真实原因;历史笼统文案展示时纠正
|
|
|
|
|
|
### 重测要点
|
|
|
|
|
|
1. 保障方案区不再出现货值小数进位说明
|
|
|
2. 预警详情超时根因不再出现「附加服务选项未展开」套话
|
|
|
3. 硬刷新(Ctrl+F5)
|
|
|
|
|
|
```bash
|
|
|
bash deploy/update-code-only-bt-host-mysql.sh
|
|
|
```
|
|
|
|
|
|
---
|
|
|
|
|
|
# 本次更新说明(2026-08-05b)— 超时/报错根因文案精确化
|
|
|
|
|
|
| 项目 | 说明 |
|
|
|
|------|------|
|
|
|
| 打包文件 | **`chajia-code-20260805b.zip`**(仅代码) |
|
|
|
| 是否改库 | **否** |
|
|
|
| 是否改 `.env` | **否** |
|
|
|
| 重建镜像 | **是**(Next 必须;预警/报价失败文案走 API) |
|
|
|
|
|
|
### 含本次变更
|
|
|
|
|
|
1. Playwright 超时按具体控件翻译(提货地址框 / 「继续」按钮 / 报价卡片等),不再笼统写成「创建货件/报价表单控件」
|
|
|
2. 去掉易误导的「附加服务选项未展开」套话;改为与控件匹配的真实原因
|
|
|
3. 历史已入库的笼统超时文案,在预警详情/报价失败展示时自动纠正
|
|
|
|
|
|
### 重测要点
|
|
|
|
|
|
1. 管理端打开预警 #85(或同文案失败单):根本原因不应再出现「附加服务选项未展开」
|
|
|
2. 硬刷新后新失败单应显示具体控件名
|
|
|
|
|
|
```bash
|
|
|
bash deploy/update-code-only-bt-host-mysql.sh
|
|
|
```
|
|
|
|
|
|
---
|
|
|
|
|
|
# 本次更新说明(2026-08-05)— 「继续」进二级后置顶 + scroll-top
|
|
|
|
|
|
| 项目 | 说明 |
|
|
|
|------|------|
|
|
|
| 打包文件 | **`chajia-code-20260805.zip`**(仅代码) |
|
|
|
| 是否改库 | **否** |
|
|
|
| 是否改 `.env` | **否** |
|
|
|
| 重建镜像 | **是**(Next 必须) |
|
|
|
|
|
|
### 含本次变更
|
|
|
|
|
|
1. 一级点「继续」进入提货信息后:iframe 内滚顶,并向宿主发 `chajia:scroll-top`
|
|
|
2. 协议正式登记 `chajia:scroll-top` / `chajia:scroll-quotes`
|
|
|
3. 含 0804c:出报价滚到「选择承运商」、已选不挡标题;点选锁价等
|
|
|
|
|
|
### 重测要点
|
|
|
|
|
|
1. 私卡询价点「继续」后,查价区应回到视口顶部(需 cc-client 一并处理 scroll-top)
|
|
|
2. 硬刷新(Ctrl+F5)
|
|
|
|
|
|
```bash
|
|
|
bash deploy/update-code-only-bt-host-mysql.sh
|
|
|
```
|
|
|
|
|
|
---
|
|
|
|
|
|
# 本次更新说明(2026-08-04c)— 出报价后自动滚到选择承运商
|
|
|
|
|
|
| 项目 | 说明 |
|
|
|
|------|------|
|
|
|
| 打包文件 | **`chajia-code-20260804c.zip`**(仅代码) |
|
|
|
| 是否改库 | **否** |
|
|
|
| 是否改 `.env` | **否** |
|
|
|
| 重建镜像 | **是**(Next 必须) |
|
|
|
|
|
|
### 含本次变更
|
|
|
|
|
|
1. 报价列表出现后自动滚到侧栏「选择承运商」
|
|
|
2. 「已选」角标与承运商名同行,不挡标题
|
|
|
3. 宿主可发 `chajia:scroll-quotes` 再滚一次
|
|
|
4. 含 0804b:侧栏点选即时 `quote-result` 锁价;0804 隐藏门户外壳
|
|
|
|
|
|
### 重测要点
|
|
|
|
|
|
1. 出票后视口落在承运商列表(配合宿主左侧「当前选中报价」)
|
|
|
2. 已选角标不遮挡承运商名称
|
|
|
3. 硬刷新(Ctrl+F5)
|
|
|
|
|
|
```bash
|
|
|
bash deploy/update-code-only-bt-host-mysql.sh
|
|
|
```
|
|
|
|
|
|
---
|
|
|
|
|
|
# 本次更新说明(2026-08-04b)— 侧栏点选即时 quote-result 锁价
|
|
|
|
|
|
| 项目 | 说明 |
|
|
|
|------|------|
|
|
|
| 打包文件 | **`chajia-code-20260804b.zip`**(仅代码) |
|
|
|
| 是否改库 | **否** |
|
|
|
| 是否改 `.env` | **否** |
|
|
|
| 重建镜像 | **是**(Next 必须) |
|
|
|
|
|
|
### 含本次变更
|
|
|
|
|
|
1. **MS 侧栏点选承运商**:立即 `chajia:quote-result`,点中行 `selected: true`(无需绿「保存」)
|
|
|
2. 默认选中 / 换承运商 / 保障变化导致生效费率变 → 再推一次
|
|
|
3. 绿「保存」仍可选 `chajia:quote-save` 写快照
|
|
|
4. 含 0804:嵌入隐藏门户外壳(账密/模块条)
|
|
|
|
|
|
### 重测要点
|
|
|
|
|
|
1. 宿主 iframe 点侧栏承运商 → 收到带 `selected` 的 `quote-result` 并可锁价
|
|
|
2. 未点绿保存也能跳转确认询价
|
|
|
3. 硬刷新(Ctrl+F5)
|
|
|
|
|
|
```bash
|
|
|
bash deploy/update-code-only-bt-host-mysql.sh
|
|
|
```
|
|
|
|
|
|
---
|
|
|
|
|
|
# 本次更新说明(2026-08-04)— 嵌入演示隐藏门户外壳
|
|
|
|
|
|
| 项目 | 说明 |
|
|
|
|------|------|
|
|
|
| 打包文件 | **`chajia-code-20260804.zip`**(仅代码) |
|
|
|
| 是否改库 | **否** |
|
|
|
| 是否改 `.env` | **否** |
|
|
|
| 重建镜像 | **是**(Next 必须;Worker 建议一并) |
|
|
|
|
|
|
### 含本次变更
|
|
|
|
|
|
1. **嵌入 `/embed-demo`**:登录后隐藏「当前客户」卡、模块切换、免账号/登录后 Tab、承运商明文账密表单
|
|
|
2. 已配置官网账密时直接进入查价表单;账密仅管理端维护
|
|
|
3. 宿主托管(SSO / embed)去掉顶栏大壳,仅查价区
|
|
|
4. 含此前:quote-save 补全、查价记录供应商/报价、MotherShip 加价展示等
|
|
|
|
|
|
### 重测要点
|
|
|
|
|
|
1. 登录 CUST_004 → 不应再出现账密明文卡 / 模块条
|
|
|
2. 有账密应直接看到 MotherShip 登录态表单并可询价
|
|
|
3. 硬刷新(Ctrl+F5)后再验
|
|
|
|
|
|
```bash
|
|
|
bash deploy/update-code-only-bt-host-mysql.sh
|
|
|
```
|
|
|
|
|
|
---
|
|
|
|
|
|
# 本次更新说明(2026-07-31)— 检测包:quote-save 补全 + 查价记录/加价展示
|
|
|
|
|
|
| 项目 | 说明 |
|
|
|
|------|------|
|
|
|
| 打包文件 | **`chajia-code-20260731.zip`**(仅代码) |
|
|
|
| 是否改库 | **否** |
|
|
|
| 是否改 `.env` | **否** |
|
|
|
| 重建镜像 | **是**(Next 必须;Worker 建议一并) |
|
|
|
|
|
|
### 含本次变更
|
|
|
|
|
|
1. **`chajia:quote-save`**:回传货物行、提派送地址、可提货日、预计送达(供宿主 ccnew 快照落库)
|
|
|
2. **管理端查价记录**:供应商 / 最终报价列;长文本折叠悬停看全量
|
|
|
3. **MotherShip 侧栏**:原价 / 客户加价 / 最终价;FreightProtect 未确认前不误报最终价
|
|
|
4. **宿主协议**:客户加价显式字段(`customer_final_total` 等)
|
|
|
|
|
|
### 检测要点
|
|
|
|
|
|
1. if.dev `embed-demo` / 宿主私卡询价 → 保存后快照含送达日、货物、地址
|
|
|
2. 管理端「查价记录」有供应商与 USD 报价
|
|
|
3. 侧栏有加价时拆开显示;硬刷新(Ctrl+F5)后再测
|
|
|
|
|
|
```bash
|
|
|
bash deploy/update-code-only-bt-host-mysql.sh
|
|
|
```
|
|
|
|
|
|
---
|
|
|
|
|
|
# 本次更新说明(2026-07-30g)— 管理端查价记录供应商/报价 + MotherShip 加价展示
|
|
|
|
|
|
| 项目 | 说明 |
|
|
|
|------|------|
|
|
|
| 打包文件 | **`chajia-code-20260730g.zip`**(仅代码) |
|
|
|
| 是否改库 | **否** |
|
|
|
| 是否改 `.env` | **否** |
|
|
|
| 重建镜像 | **是**(Next 必须;Worker 建议一并,含近期结账/加价逻辑) |
|
|
|
|
|
|
### 含本次变更
|
|
|
|
|
|
1. **管理端查价记录**:地址/货物/失败原因过长单行折叠,悬停看全量;新增「供应商」「报价」列(按 `quote_id` 回查默认档)
|
|
|
2. **MotherShip 侧栏**:显示原价 / 客户加价 / 最终价;FreightProtect 未确认前不误报最终价
|
|
|
3. **宿主 postMessage**:`quote-result` / `quote-save` 显式标明客户加价后字段
|
|
|
4. 含 30f:加价搜索/保存、Flock 档内加价、日历翻月
|
|
|
|
|
|
### 重测要点
|
|
|
|
|
|
1. 管理端「查价记录」能看到供应商与 USD 报价;长地址悬停可看全量
|
|
|
2. MotherShip 侧栏有加价时拆开原价/加价/最终价
|
|
|
3. 勾选 FreightProtect 后,未确认前不显示假最终总价
|
|
|
|
|
|
```bash
|
|
|
bash deploy/update-code-only-bt-host-mysql.sh
|
|
|
```
|
|
|
|
|
|
---
|
|
|
|
|
|
# 本次更新说明(2026-07-30f)— 加价搜索/保存 + Flock 档内加价 + 日历翻月
|
|
|
|
|
|
| 项目 | 说明 |
|
|
|
|------|------|
|
|
|
| 打包文件 | **`chajia-code-20260730f.zip`**(仅代码) |
|
|
|
| 是否改库 | **否** |
|
|
|
| 是否改 `.env` | **否** |
|
|
|
| 重建镜像 | **是**(Next + Worker 均须重建) |
|
|
|
|
|
|
### 含本次变更
|
|
|
|
|
|
1. **加价配置搜索**:按客户代码/名称/账号可搜;`SPO`↔`SP012`(0/O);防抖;空态提示
|
|
|
2. **业务客户「客户加价」弹窗**:空值拒存、回显已有规则、保存成功提示、列表加价列
|
|
|
3. **Flock 档内承运商/灵活价**:落库前叠加业务客户加价(Echo 等不再只显示官网原价)
|
|
|
4. **MotherShip 登录态日历**:选日前翻到目标月;报错全中文
|
|
|
|
|
|
### 重测要点
|
|
|
|
|
|
1. 管理端「客户加价」搜 `SP012` / `STAR` / `STARPOST` 能命中
|
|
|
2. 给 SP012 设固定 `$3` → 保存后列表显示「固定 $3.00」
|
|
|
3. STARPOST 询价选 Echo FTL → 价应为原价 + $3(须 Worker 新镜像)
|
|
|
4. MotherShip 可提货日跨月(如 8/5)应能点中
|
|
|
|
|
|
```bash
|
|
|
bash deploy/update-code-only-bt-host-mysql.sh
|
|
|
```
|
|
|
|
|
|
---
|
|
|
|
|
|
# 本次更新说明(2026-07-30e)— 货物红 ! 提示点加固(内联可见)
|
|
|
|
|
|
| 项目 | 说明 |
|
|
|
|------|------|
|
|
|
| 打包文件 | **`chajia-code-20260730e.zip`**(仅代码) |
|
|
|
| 是否改库 | **否** |
|
|
|
| 是否改 `.env` | **否** |
|
|
|
| 重建镜像 | **是**(Next 必须) |
|
|
|
|
|
|
### 含本次变更
|
|
|
|
|
|
1. 「货物」旁红 `!` 改为内联上移按钮(避免 absolute 被裁切)
|
|
|
2. `QuoteSectionTitle` 增加 `overflow-visible`
|
|
|
3. 测服实测:`MS_LOGGED_IN` 标题已含「货物 !」,点击可展开录入限制
|
|
|
|
|
|
```bash
|
|
|
bash deploy/update-code-only-bt-host-mysql.sh
|
|
|
```
|
|
|
|
|
|
---
|
|
|
|
|
|
# 本次更新说明(2026-07-30d)— 一级「货物」录入限制提示点
|
|
|
|
|
|
| 项目 | 说明 |
|
|
|
|------|------|
|
|
|
| 打包文件 | **`chajia-code-20260730d.zip`**(仅代码) |
|
|
|
| 是否改库 | **否** |
|
|
|
| 是否改 `.env` | **否** |
|
|
|
| 重建镜像 | **是**(Next;Worker 建议一并) |
|
|
|
|
|
|
### 含本次变更
|
|
|
|
|
|
1. 一级表单「货物」标题右上角红 `!` 提示点(`data-testid=cargo-limits-hint-dot`)
|
|
|
2. 悬停/聚焦展开黄底说明:整数进一、单件 ≤5000 lb、整票 ≤45000 lb
|
|
|
3. 保留标题下灰色整数提示文案
|
|
|
|
|
|
```bash
|
|
|
bash deploy/update-code-only-bt-host-mysql.sh
|
|
|
```
|
|
|
|
|
|
---
|
|
|
|
|
|
# 本次更新说明(2026-07-30c)— 结账/刷价透传二级详情与附加服务
|
|
|
|
|
|
| 项目 | 说明 |
|
|
|
|------|------|
|
|
|
| 打包文件 | **`chajia-code-20260730c.zip`**(仅代码,约 1.36MB) |
|
|
|
| 是否改库 | **否** |
|
|
|
| 是否改 `.env` | **否** |
|
|
|
| 重建镜像 | **是**(Next + Worker 必须) |
|
|
|
|
|
|
### 含本次变更(在 30b 基础上)
|
|
|
|
|
|
1. 结账 `ms-checkout` / 刷价 `refine-details` 透传 `mothership_details` + `pickup/delivery_accessorials`
|
|
|
2. 二级 `toPayload` 含附加服务;结账侧栏读取最新二级表单状态
|
|
|
3. Worker 结账失败时回传中文业务原因(非堆栈)
|
|
|
|
|
|
测服未闭环:报价有效期 3min 内 refine/checkout 易超时;需看 `rpa-worker` 的 `[ms-checkout] FAIL` 日志。
|
|
|
|
|
|
```bash
|
|
|
bash deploy/update-code-only-bt-host-mysql.sh
|
|
|
```
|
|
|
|
|
|
---
|
|
|
|
|
|
# 历史:本次更新说明(2026-07-30b)— MotherShip 二级 UI 对齐官网
|
|
|
|
|
|
| 项目 | 说明 |
|
|
|
|------|------|
|
|
|
| 打包文件 | **`chajia-code-20260730b.zip`**(仅代码) |
|
|
|
| 是否改库 | **否** |
|
|
|
| 是否改 `.env` | **否** |
|
|
|
| 重建镜像 | **是**(Next;Worker 建议一并重建) |
|
|
|
|
|
|
### 含本次变更(在 30a 基础上)
|
|
|
|
|
|
1. **二级附加服务卡片化**:双列服务卡 +「查看服务详情」开关(替换下拉)
|
|
|
2. **侧栏视觉对齐**:已选角标、服务类型本地说明、无法服务折叠占位、FreightProtect 徽章、结账「前往结账 — $x」
|
|
|
3. **验收 fixture**:`/e2e-fixtures/ms-l2-ui`(仅本地/非生产)
|
|
|
|
|
|
缺口(可点仅提示):保障详情外链、了解更多、See why 完整名单、Dedicated Dry Van 抽屉、一级 Create 卡片化。
|
|
|
|
|
|
```bash
|
|
|
# 解压覆盖(勿覆盖 .env)后:
|
|
|
bash deploy/update-code-only-bt-host-mysql.sh
|
|
|
```
|
|
|
|
|
|
---
|
|
|
|
|
|
# 历史:本次更新说明(2026-07-29i)— Inside 误勾 / lane 红字 / 小数进一
|
|
|
|
|
|
| 项目 | 说明 |
|
|
|
|------|------|
|
|
|
| 打包文件 | **`chajia-code-20260729i.zip`**(仅代码,约 0.9MB) |
|
|
|
| 是否改库 | **否** |
|
|
|
| 是否改 `.env` | **否** |
|
|
|
| 重建镜像 | **是**(Next + Worker) |
|
|
|
|
|
|
### 含本次修复(在 29h 基础上)
|
|
|
|
|
|
1. **一级禁止点 Recommended**:避免官网自动勾选 Inside Delivery/Pickup
|
|
|
2. **清残留附加服务勾选**:用户未选则主动取消 Sticky/Recommended 残留
|
|
|
3. **红字 lane 无价识别**:`unable to find any rates for this lane` 译回中文并硬拒,不再误走 NEEDS_DETAILS
|
|
|
4. **重量/尺寸小数进一**:表单提示 + RPA 填整数(如 25.68 → 26)
|
|
|
|
|
|
仍含 29h:均重 ≤5000 lb、整票 ≤45000 lb、一级/二级分流、`MS_NEEDS_DETAILS`。
|
|
|
|
|
|
```bash
|
|
|
# 解压覆盖(勿覆盖 .env)后:
|
|
|
bash deploy/update-code-only-bt-host-mysql.sh
|
|
|
```
|
|
|
|
|
|
---
|
|
|
|
|
|
# 历史:本次更新说明(2026-07-29h)— 货物重量限制 + 测试包
|
|
|
|
|
|
| 项目 | 说明 |
|
|
|
|------|------|
|
|
|
| 打包文件 | **`chajia-code-20260729h.zip`**(仅代码,约 0.89MB) |
|
|
|
| 是否改库 | **否** |
|
|
|
| 是否改 `.env` | **否** |
|
|
|
| 重建镜像 | **是**(Next + Worker) |
|
|
|
|
|
|
### 含本次能力
|
|
|
|
|
|
1. 一级/二级分流、`MS_NEEDS_DETAILS`、官网红字译回
|
|
|
2. `readyDate` 构建修复(29g)
|
|
|
3. **MotherShip 登录态货物限**:
|
|
|
- 单件均重(Weight each)> **5000 lb** → 不可询价
|
|
|
- 整票总重 > **45000 lb**(53 英尺货车最大载重)→ 不可询价
|
|
|
- 托数不设 1–25 硬拒
|
|
|
|
|
|
```bash
|
|
|
# 解压覆盖(勿覆盖 .env)后:
|
|
|
bash deploy/update-code-only-bt-host-mysql.sh
|
|
|
```
|
|
|
|
|
|
---
|
|
|
|
|
|
# 历史:本次更新说明(2026-07-29g)— 修复构建类型错误 readyDate
|
|
|
|
|
|
| 项目 | 说明 |
|
|
|
|------|------|
|
|
|
| 打包文件 | **`chajia-code-20260729g.zip`**(仅代码) |
|
|
|
| 是否改库 | **否** |
|
|
|
| 是否改 `.env` | **否** |
|
|
|
| 重建镜像 | **是** |
|
|
|
|
|
|
### 修复
|
|
|
|
|
|
`embedded-quote-widget.tsx`:`loggedInDraft?.ready_date` → `readyDate`(对齐 `MothershipLoggedInShipmentPayload`),解决 `npm run build` TS 失败。
|
|
|
|
|
|
含 29f 全部能力(一级/二级分流、官网红字回传)。
|
|
|
|
|
|
```bash
|
|
|
bash deploy/update-code-only-bt-host-mysql.sh
|
|
|
```
|
|
|
|
|
|
---
|
|
|
|
|
|
# 历史:本次更新说明(2026-07-29f)— 一级/二级询价分流 + 官网红字回传
|
|
|
|
|
|
| 项目 | 说明 |
|
|
|
|------|------|
|
|
|
| 打包文件 | **`chajia-code-20260729f.zip`**(仅代码,约 0.89MB) |
|
|
|
| 是否改库 | **否** |
|
|
|
| 是否改 `.env` | **否** |
|
|
|
| 重建镜像 | **是**(必须重建 Worker + Next) |
|
|
|
|
|
|
### 含本次能力
|
|
|
|
|
|
1. **一级询价**不填公司名/联系人;Continue 后 Skip + Save&update 出价
|
|
|
2. 一级仍「必填无价」→ `MS_NEEDS_DETAILS`,引导客户填**二级**再刷价(驻留会话)
|
|
|
3. 官网底部**红色业务报错**(线路无运力、地址问题、住宅取件等)译中文回传客户
|
|
|
|
|
|
```bash
|
|
|
# 解压覆盖项目目录(勿覆盖 .env)后:
|
|
|
bash deploy/update-code-only-bt-host-mysql.sh
|
|
|
```
|
|
|
|
|
|
---
|
|
|
|
|
|
# 历史:本次更新说明(2026-07-29d)— Details 禁用字段 30s 空等修复
|
|
|
|
|
|
| 项目 | 说明 |
|
|
|
|------|------|
|
|
|
| 打包文件 | **`chajia-code-20260729d.zip`**(仅代码,约 0.88MB) |
|
|
|
| 是否改库 | **否** |
|
|
|
| 是否改 `.env` | **否** |
|
|
|
| 重建镜像 | **是**(必须重建 Worker) |
|
|
|
|
|
|
### 根因(用户 LA→New Haven 参数复现)
|
|
|
|
|
|
Continue 后无价卡 → 补 Details 时 `delivery-contact-first-name` 为 **disabled**,`locator.fill` 空等默认 30s。
|
|
|
|
|
|
### 修复
|
|
|
|
|
|
- `safeFillInput`:禁用字段跳过/短超时,禁止默认 30s
|
|
|
- 优先点 `Skip (none apply)` + `Save & update quote`
|
|
|
- 本地无头复现同参数已 OK(12 档报价)
|
|
|
|
|
|
```bash
|
|
|
bash deploy/update-code-only-bt-host-mysql.sh
|
|
|
```
|
|
|
|
|
|
---
|
|
|
|
|
|
# 历史:本次更新说明(2026-07-29c)— 可提货日空等修复(正式部署包)
|
|
|
|
|
|
| 项目 | 说明 |
|
|
|
|------|------|
|
|
|
| 打包文件 | **`chajia-code-20260729c.zip`**(仅代码,约 0.88MB) |
|
|
|
| 是否改库 | **否**(若尚未执行 `datagrip-manual-migrate-20260728.sql` 仍须先跑) |
|
|
|
| 是否改 `.env` | **否** |
|
|
|
| 重建镜像 | **是**(Worker 含登录态可提货日修复) |
|
|
|
|
|
|
### 含本次修复
|
|
|
|
|
|
- MotherShip 登录态:可提货日按钮多选择器 + 短超时 + Inbox 遮挡 force 点击
|
|
|
- 本地有头探针已验证可出 9 档报价
|
|
|
|
|
|
```bash
|
|
|
# 解压覆盖 /home/project/chajia(勿覆盖 .env)后:
|
|
|
bash deploy/update-code-only-bt-host-mysql.sh
|
|
|
```
|
|
|
|
|
|
---
|
|
|
|
|
|
# 历史:本次更新说明(2026-07-29b)— 登录态可提货日 30s 空等修复
|
|
|
|
|
|
| 项目 | 说明 |
|
|
|
|------|------|
|
|
|
| 打包文件 | **`chajia-code-20260729b.zip`**(仅代码) |
|
|
|
| 是否改库 | **否**(若尚未跑过 `datagrip-manual-migrate-20260728.sql` 仍须先跑) |
|
|
|
| 是否改 `.env` | **否** |
|
|
|
| 重建镜像 | **是** |
|
|
|
|
|
|
### 修复
|
|
|
|
|
|
MotherShip 登录态选「可提货日」时,日期按钮 `click()` 被 Inbox 遮挡会空等 Playwright 默认 **30 秒**,前端显示「未能等到目标页面元素」。
|
|
|
|
|
|
已改为:多选择器找日期钮、显式短超时、force 点击兜底、点日期前关闭 Inbox。
|
|
|
|
|
|
```bash
|
|
|
# 解压覆盖代码后(勿覆盖 .env):
|
|
|
bash deploy/update-code-only-bt-host-mysql.sh
|
|
|
```
|
|
|
|
|
|
---
|
|
|
|
|
|
# 历史:本次更新说明(2026-07-29)— 租户/业务客户二层 + 更新后 HTTP 500 修复
|
|
|
|
|
|
| 项目 | 说明 |
|
|
|
|------|------|
|
|
|
| 打包文件 | **`chajia-code-20260729.zip`**(仅代码) |
|
|
|
| 是否改库 | **是** — DataGrip 执行 `deploy/datagrip-manual-migrate-20260728.sql` |
|
|
|
| 是否改 `.env` | **否** |
|
|
|
| 重建镜像 | **是**(已更新则只需补库) |
|
|
|
|
|
|
### 更新后「服务异常 (HTTP 500)」
|
|
|
|
|
|
**根因**:代码已读 `business_customer` 表 / `business_customer_id` 列,但 `update-code-only-bt-host-mysql.sh` **不跑 migrate**,库结构落后。
|
|
|
|
|
|
**立刻修**:
|
|
|
|
|
|
1. DataGrip 连生产库,执行 `deploy/datagrip-manual-migrate-20260728.sql`
|
|
|
2. 自检:`SHOW TABLES LIKE 'business_customer';` 有结果
|
|
|
3. 刷新页面(无需再打镜像)
|
|
|
|
|
|
可选(容器内标记 migration 已应用):
|
|
|
|
|
|
```bash
|
|
|
npx prisma migrate resolve --applied 20260728171500_tenant_business_customer_split
|
|
|
npx prisma migrate resolve --applied 20260728174500_business_customer_id_guid_width
|
|
|
```
|
|
|
|
|
|
---
|
|
|
|
|
|
# 历史:本次更新说明(2026-07-27e)— Flock 一级表单 4 项补齐
|
|
|
|
|
|
| 项目 | 说明 |
|
|
|
|------|------|
|
|
|
| 打包文件 | **`上传到服务器/chajia-code-20260727e.zip`**(仅代码) |
|
|
|
| 是否改库 / `.env` | **否** |
|
|
|
| 重建镜像 | **是** |
|
|
|
| 构建校验 | **已通过**:`tsc --noEmit`、`next build` |
|
|
|
|
|
|
### 本次代码要点
|
|
|
|
|
|
- 调度高级项:件数>5 **或** 总重>5000 解锁(含提示文案)
|
|
|
- 提货「指定提货时段」常可选;选中即出起止时间
|
|
|
- 额外货运险:选「需要」时展示货值 `$` 并必填
|
|
|
- 解锁后车型区下增加撑杆 / 绑带(Load Bars / Straps)
|
|
|
- 含此前聚合能力(MS/Flock 结账、hold、灵活价等)
|
|
|
|
|
|
```bash
|
|
|
cp .env .env.backup.$(date +%Y%m%d)
|
|
|
# 解压 chajia-code-20260727e.zip 覆盖代码后:
|
|
|
bash deploy/update-code-only-bt-host-mysql.sh
|
|
|
```
|
|
|
|
|
|
### 部署后冒烟
|
|
|
|
|
|
1. embed-demo 登录 `CUST_004` → Flock 登录后
|
|
|
2. 件数填 6:高级调度应变可选;车型区下出现撑杆/绑带
|
|
|
3. 选「需要额外货运险」须出现货值框,空值不可提交
|
|
|
|
|
|
---
|
|
|
|
|
|
# 历史:本次更新说明(2026-07-27d)— 多项更新聚合重打包(构建校验通过)
|
|
|
|
|
|
| 项目 | 说明 |
|
|
|
|------|------|
|
|
|
| 打包文件 | **`上传到服务器/chajia-code-20260727d.zip`**(仅代码) |
|
|
|
| 是否改库 / `.env` | **否** |
|
|
|
| 重建镜像 | **是** |
|
|
|
| 构建校验 | **已通过**:`tsc --noEmit`、`next build` |
|
|
|
|
|
|
### 本次出包说明
|
|
|
|
|
|
- 本包聚合当前工作区已完成的多项更新,含 MotherShip、Flock、嵌入组件、RPA 与相关测试/脚本
|
|
|
- 出包前已本地完成生产构建校验,避免服务器重建时再出现 TypeScript / Next build 报错
|
|
|
- 上传时仍按既有增量覆盖方式执行,**不要覆盖服务器 `.env`**
|
|
|
|
|
|
```bash
|
|
|
cp .env .env.backup.$(date +%Y%m%d)
|
|
|
# 解压 chajia-code-20260727d.zip 覆盖代码后:
|
|
|
bash deploy/update-code-only-bt-host-mysql.sh
|
|
|
```
|
|
|
|
|
|
---
|
|
|
|
|
|
# 历史:本次更新说明(2026-07-27c)— RPA 优先点 Save & update quote(对齐人工复现)
|
|
|
|
|
|
| 项目 | 说明 |
|
|
|
|------|------|
|
|
|
| 打包文件 | **`上传到服务器/chajia-code-20260727c.zip`**(仅代码) |
|
|
|
| 是否改库 / `.env` | **否** |
|
|
|
| 重建镜像 | **是** |
|
|
|
|
|
|
### 根因(用户手测)
|
|
|
|
|
|
Brea / Boston 手测均可出价,**只需先点 Save & update quote**。RPA 原在点 Save 前就因「无价」文案抛错。
|
|
|
|
|
|
### 修复
|
|
|
|
|
|
- Continue 后 grace 无价卡 → **强制补 Details + 点 Save & update**
|
|
|
- `ensureRateCardsReady`:**先 Save,再判无运力**(idle≥4 才 throw)
|
|
|
- Save 按钮短暂 disabled 时等待启用
|
|
|
|
|
|
```bash
|
|
|
bash deploy/update-code-only-bt-host-mysql.sh
|
|
|
```
|
|
|
|
|
|
---
|
|
|
|
|
|
# 历史:本次更新说明(2026-07-27b)— MS fail5 加固(货型预切 Pallet + 派送附加服务软降级)
|
|
|
|
|
|
| 项目 | 说明 |
|
|
|
|------|------|
|
|
|
| 打包文件 | **`上传到服务器/chajia-code-20260727b.zip`**(仅代码) |
|
|
|
| 适用场景 | 服务器增量覆盖 |
|
|
|
| 是否改库 | **否** |
|
|
|
| 是否改 `.env` | **否** |
|
|
|
| 重建镜像 | **是**:`bash deploy/update-code-only-bt-host-mysql.sh` |
|
|
|
|
|
|
### 针对线上 fail5 复测残留
|
|
|
|
|
|
- 复测结果曾 **3/5**:Albany/Phoenix/Detroit OK;Brea 小件 `cargo-type-dropdown` 超时;Boston 双侧尾板派送入口仍缺失
|
|
|
- **Brea**:piece/box/carton/drum 预切换 Pallet;货型下拉前清遮罩+滚动重试
|
|
|
- **Boston**:派送 Services 等待/补选地址;入口仍缺失则**跳过派送附加服务继续出价**(不整单失败)
|
|
|
- 复测:`npx tsx scripts/probe-embed-ms-fail5-retest.ts`
|
|
|
- Flock×20:`npx tsx scripts/probe-embed-flock-server-x20.ts`
|
|
|
|
|
|
```bash
|
|
|
cp .env .env.backup.$(date +%Y%m%d)
|
|
|
# 解压 chajia-code-20260727b.zip 覆盖后:
|
|
|
bash deploy/update-code-only-bt-host-mysql.sh
|
|
|
```
|
|
|
|
|
|
---
|
|
|
|
|
|
# 历史:本次更新说明(2026-07-27a)— Flock 登录态 hold(60s/5min)+ 安全收口
|
|
|
|
|
|
| 项目 | 说明 |
|
|
|
|------|------|
|
|
|
| 打包文件 | **`上传到服务器/chajia-code-20260727a.zip`**(仅代码) |
|
|
|
| 适用场景 | 服务器**已有**查价项目,增量覆盖代码 |
|
|
|
| 是否改库 | **否** |
|
|
|
| 是否改 `.env` | **否**(勿覆盖;勿带本机 `.env`) |
|
|
|
| 重建镜像 | **是**:`bash deploy/update-code-only-bt-host-mysql.sh` |
|
|
|
|
|
|
### 本次代码要点
|
|
|
|
|
|
- Flock 登录询价:首价同步 Direct/Standard 下三档灵活价;60s「继续填写 / 不继续」;5min 硬限;结账接管驻留会话
|
|
|
- API:`POST /api/quotes/flock-hold/continue|decline`;GET quote 附带 `flock_hold` / `flock_flexibility_by_tier`
|
|
|
- 安全:生产禁用 `/e2e-fixtures`;hold continue/decline 失败可观测;Redis hold JSON zod 校验
|
|
|
|
|
|
```bash
|
|
|
cp .env .env.backup.$(date +%Y%m%d)
|
|
|
# 解压 chajia-code-20260727a.zip 覆盖代码后:
|
|
|
chmod +x deploy/update-code-only-bt-host-mysql.sh
|
|
|
bash deploy/update-code-only-bt-host-mysql.sh
|
|
|
```
|
|
|
|
|
|
---
|
|
|
|
|
|
# 历史:本次更新说明(2026-07-27)— ×20 失败 5 条修复(标准档/附加服务/托盘回退)
|
|
|
|
|
|
| 项目 | 说明 |
|
|
|
|------|------|
|
|
|
| 打包文件 | **`上传到服务器/chajia-code-20260727.zip`**(仅代码) |
|
|
|
| 适用场景 | 服务器**已有**查价项目,增量覆盖代码 |
|
|
|
| 是否改库 | **否** |
|
|
|
| 是否改 `.env` | **否**(勿覆盖) |
|
|
|
| 重建镜像 | **是**:`bash deploy/update-code-only-bt-host-mysql.sh` |
|
|
|
|
|
|
### 本次代码要点
|
|
|
|
|
|
- 入库不再强制 `standard` 档(仅 guaranteed/dedicated 也可完成报价)
|
|
|
- 派送附加服务:地址就绪等待 + 侧感知内联检测(修双侧尾板入口缺失)
|
|
|
- 官网无价时:piece/box/carton/drum 自动改 Pallet 再刷价一次
|
|
|
- 复测:`npx tsx scripts/probe-embed-ms-fail5-retest.ts`
|
|
|
|
|
|
```bash
|
|
|
cp .env .env.backup.$(date +%Y%m%d)
|
|
|
# 解压 chajia-code-20260727.zip 覆盖代码后:
|
|
|
chmod +x deploy/update-code-only-bt-host-mysql.sh
|
|
|
bash deploy/update-code-only-bt-host-mysql.sh
|
|
|
```
|
|
|
|
|
|
---
|
|
|
|
|
|
# 历史:本次更新说明(2026-07-24d)— 修复构建类型错误(部署失败)
|
|
|
|
|
|
| 项目 | 说明 |
|
|
|
|------|------|
|
|
|
| 打包文件 | **`上传到服务器/chajia-code-20260724d.zip`**(仅代码) |
|
|
|
| 适用场景 | 服务器增量覆盖;替代构建失败的 24c |
|
|
|
| 是否改库 | **否** |
|
|
|
| 是否改 `.env` | **否** |
|
|
|
| 重建镜像 | **是**:`bash deploy/update-code-only-bt-host-mysql.sh` |
|
|
|
|
|
|
### 修复
|
|
|
|
|
|
- `mothership-logged-in-shipment-form`:`normalizeMothershipReadyDateIso` 可能 `undefined`,仅在有值时 `setReadyDate`
|
|
|
- `flock/checkout.ts`:登录失败分支用 `!login.ok` 收窄后再读 `errorMessage`
|
|
|
- 含 24c:ShipRo URL 直进 + fill 灌表
|
|
|
|
|
|
```bash
|
|
|
cp .env .env.backup.$(date +%Y%m%d)
|
|
|
# 解压 chajia-code-20260724d.zip 覆盖代码后:
|
|
|
chmod +x deploy/update-code-only-bt-host-mysql.sh
|
|
|
bash deploy/update-code-only-bt-host-mysql.sh
|
|
|
```
|
|
|
|
|
|
---
|
|
|
|
|
|
# 历史:本次更新说明(2026-07-24c)— ShipRo 嵌入 postMessage 灌表
|
|
|
|
|
|
| 项目 | 说明 |
|
|
|
|------|------|
|
|
|
| 打包文件 | **`上传到服务器/chajia-code-20260724c.zip`**(仅代码,约 0.8MB+) |
|
|
|
| 对接文档 | **`上传到服务器/文档/`**(嵌入 + postMessage v1.1 + OpenAPI) |
|
|
|
| 适用场景 | 服务器**已有**查价项目,增量覆盖代码 |
|
|
|
| 是否改库 | **否** |
|
|
|
| 是否改 `.env` | **否**(勿覆盖) |
|
|
|
| 重建镜像 | **是**:`bash deploy/update-code-only-bt-host-mysql.sh` |
|
|
|
|
|
|
### 本次代码要点
|
|
|
|
|
|
- URL `module=MS_LOGGED_IN` / `entry=ms_logged_in` 直进 MotherShip 登录后「创建新货件」
|
|
|
- `chajia:fill` 可晚到、可重复、先缓存再灌表;地址整段文本写入搜索框 + `cargo_lines`
|
|
|
- 文档:`嵌入-postMessage对接文档.md` v1.1(ShipRo 联调要点)
|
|
|
|
|
|
### 上传与更新(推荐)
|
|
|
|
|
|
```bash
|
|
|
cp .env .env.backup.$(date +%Y%m%d)
|
|
|
# 解压 chajia-code-20260724c.zip 覆盖代码后:
|
|
|
chmod +x deploy/update-code-only-bt-host-mysql.sh
|
|
|
bash deploy/update-code-only-bt-host-mysql.sh
|
|
|
```
|
|
|
|
|
|
### 给宿主的 iframe 样例
|
|
|
|
|
|
```text
|
|
|
https://if.dev.51track.vip/embed-demo?login_type=api_key&api_key=<API_Key>&embed=1&module=MS_LOGGED_IN
|
|
|
```
|
|
|
|
|
|
---
|
|
|
|
|
|
# 历史:本次更新说明(2026-07-24b)— 修复 ms-checkout 构建类型错误
|
|
|
|
|
|
| 项目 | 说明 |
|
|
|
|------|------|
|
|
|
| 打包文件 | **`上传到服务器/chajia-code-20260724b.zip`**(仅代码) |
|
|
|
| 适用场景 | 服务器**已有**查价项目,增量覆盖代码 |
|
|
|
| 是否改库 | **否** |
|
|
|
| 是否改 `.env` | **否**(勿覆盖) |
|
|
|
| 重建镜像 | **是**:`bash deploy/update-code-only-bt-host-mysql.sh` |
|
|
|
|
|
|
### 本次代码要点
|
|
|
|
|
|
- 修复 `ms-checkout/route.ts`:`mothership_details.pickup/delivery` Zod 输出与 `QuoteRequestBody` 对齐(`default({})`),`npm run build` 类型检查通过
|
|
|
- 含 2026-07-24:结账选承运商/保障 + 安全收口
|
|
|
|
|
|
### 上传与更新(推荐)
|
|
|
|
|
|
```bash
|
|
|
cp .env .env.backup.$(date +%Y%m%d)
|
|
|
# 解压 chajia-code-20260724b.zip 覆盖代码后:
|
|
|
chmod +x deploy/update-code-only-bt-host-mysql.sh
|
|
|
bash deploy/update-code-only-bt-host-mysql.sh
|
|
|
```
|
|
|
|
|
|
---
|
|
|
|
|
|
# 历史:本次更新说明(2026-07-24)— MS 结账选承运商/保障 + 安全收口
|
|
|
|
|
|
| 项目 | 说明 |
|
|
|
|------|------|
|
|
|
| 打包文件 | **`上传到服务器/chajia-code-20260724.zip`**(仅代码) |
|
|
|
| 适用场景 | 服务器**已有**查价项目,增量覆盖代码 |
|
|
|
| 是否改库 | **否** |
|
|
|
| 是否改 `.env` | **否**(勿覆盖) |
|
|
|
| 重建镜像 | **是**:`bash deploy/update-code-only-bt-host-mysql.sh` |
|
|
|
|
|
|
### 本次代码要点
|
|
|
|
|
|
- MotherShip 登录态:侧栏指定承运商 + FreightProtect 货值 → `POST /api/quotes/ms-checkout` fill-only(不支付)
|
|
|
- 首价后 60s 确认刷价 / 5min 硬限(既有能力一并打包)
|
|
|
- 安全收口:`fillOnly` 参数化;结账状态脱敏;details 结构化校验;同单 job 互斥且完成后可重试;嵌入轮询 AbortController
|
|
|
|
|
|
### 上传与更新(推荐)
|
|
|
|
|
|
```bash
|
|
|
cp .env .env.backup.$(date +%Y%m%d)
|
|
|
# 解压 chajia-code-20260724.zip 覆盖代码后:
|
|
|
chmod +x deploy/update-code-only-bt-host-mysql.sh
|
|
|
bash deploy/update-code-only-bt-host-mysql.sh
|
|
|
```
|
|
|
|
|
|
### 验证建议
|
|
|
|
|
|
1. 登录态询价 → 侧栏选承运商/保障 →「前往结账」→ 轮询至 done(官网填齐、未支付)
|
|
|
2. FreightProtect 缺货值应拦截;processing 中重复提交提示「进行中」
|
|
|
3. 附加服务勾选(提货尾板等)回归仍正常
|
|
|
|
|
|
---
|
|
|
|
|
|
# 历史:本次更新说明(2026-07-23a)— MotherShip 附加服务内联 UI 修复
|
|
|
|
|
|
| 项目 | 说明 |
|
|
|
|------|------|
|
|
|
| 打包文件 | **`上传到服务器/chajia-code-20260723a.zip`**(仅代码,约 0.75MB) |
|
|
|
| 适用场景 | 服务器**已有**查价项目,增量覆盖代码 |
|
|
|
| 是否改库 | **否** |
|
|
|
| 是否改 `.env` | **否**(勿覆盖) |
|
|
|
| 重建镜像 | **是**:`bash deploy/update-code-only-bt-host-mysql.sh` |
|
|
|
|
|
|
### 本次代码要点
|
|
|
|
|
|
- MotherShip 登录态:官网附加服务改为平铺 checkbox 后,不再硬等 `address-book-accessorials-trigger` 25s
|
|
|
- 内联勾选 + 旧 trigger/Chevron 兜底;失败抛中文业务错
|
|
|
- 探测:`PROBE_PICKUP_LIFTGATE=1` / `PROBE_APPOINTMENT=1`
|
|
|
|
|
|
### 上传与更新(推荐)
|
|
|
|
|
|
```bash
|
|
|
cp .env .env.backup.$(date +%Y%m%d)
|
|
|
# 解压 chajia-code-20260723a.zip 覆盖代码后:
|
|
|
chmod +x deploy/update-code-only-bt-host-mysql.sh
|
|
|
bash deploy/update-code-only-bt-host-mysql.sh
|
|
|
```
|
|
|
|
|
|
### 验证建议
|
|
|
|
|
|
1. 登录态询价勾选提货尾板 / 派送预约,确认不再出现「未能等到 address-book-accessorials-trigger」
|
|
|
2. 管理端 `/admin/alerts` 观察是否仍有同类 STRUCT_CHANGE
|
|
|
|
|
|
---
|
|
|
|
|
|
# 历史:本次更新说明(2026-07-22a)— CC iframe 直登 + 对接文档 §2.5
|
|
|
|
|
|
| 项目 | 说明 |
|
|
|
|------|------|
|
|
|
| 打包文件 | **`上传到服务器/chajia-code-20260722a.zip`**(仅代码,约 0.75MB) |
|
|
|
| 对接文档 | **`上传到服务器/文档/api对接文档.md`**(v1.2) |
|
|
|
| 适用场景 | 服务器已有项目,增量覆盖代码 |
|
|
|
| 是否改库 | **否** |
|
|
|
| 是否改 `.env` | **否**(勿覆盖) |
|
|
|
| 重建镜像 | **是**:`bash deploy/update-code-only-bt-host-mysql.sh` |
|
|
|
|
|
|
### 本次代码要点
|
|
|
|
|
|
- `/embed-demo`:宿主传 `login_type` + `api_key` 自动登录,**跳过登录页**;成功后剥离 URL 敏感参数
|
|
|
- 生产嵌入 Cookie:`SameSite=None; Secure`(跨站 iframe)
|
|
|
- 密码 / Key 登录统一两模块门户(MotherShip / Flock)
|
|
|
- 对接文档 v1.2:§2.5 网页嵌入完整说明(参数、iframe 示例、排错)
|
|
|
|
|
|
### 上传与更新
|
|
|
|
|
|
```bash
|
|
|
cp .env .env.backup.$(date +%Y%m%d)
|
|
|
# 解压 chajia-code-20260722a.zip 覆盖代码后:
|
|
|
chmod +x deploy/update-code-only-bt-host-mysql.sh
|
|
|
bash deploy/update-code-only-bt-host-mysql.sh
|
|
|
```
|
|
|
|
|
|
CC iframe 示例:
|
|
|
|
|
|
```text
|
|
|
https://if.dev.51track.vip/embed-demo?login_type=api_key&api_key=<API_Key>&embed=1
|
|
|
```
|
|
|
|
|
|
---
|
|
|
|
|
|
# 历史:本次更新说明(2026-07-21d)— 嵌入门户两模块统一(密码=Key)
|
|
|
|
|
|
| 项目 | 说明 |
|
|
|
|------|------|
|
|
|
| 打包文件 | **`上传到服务器/chajia-code-20260721d.zip`**(仅代码) |
|
|
|
| 适用场景 | 服务器**已有**查价项目,增量覆盖代码 |
|
|
|
| 是否改库 | **否** |
|
|
|
| 是否改 `.env` | **否**(勿覆盖) |
|
|
|
| 重建镜像 | **是**:`bash deploy/update-code-only-bt-host-mysql.sh` |
|
|
|
|
|
|
### 本次代码要点
|
|
|
|
|
|
- 账号密码登录与 API Key 登录同一门户:仅 **MotherShip / Flock Freight** 两模块
|
|
|
- 模块内切换「免账号 / 登录后」;登录后可配置官网账密
|
|
|
- 含 21c:单位换算、选项互斥提示、MS/Flock 稳定性修复
|
|
|
|
|
|
### 上传与更新
|
|
|
|
|
|
```bash
|
|
|
cp .env .env.backup.$(date +%Y%m%d)
|
|
|
# 解压 chajia-code-20260721d.zip 覆盖代码后:
|
|
|
chmod +x deploy/update-code-only-bt-host-mysql.sh
|
|
|
bash deploy/update-code-only-bt-host-mysql.sh
|
|
|
```
|
|
|
|
|
|
---
|
|
|
|
|
|
# 历史:本次更新说明(2026-07-21c)— 单位换算 / 选项互斥提示 / MS+Flock 稳定性
|
|
|
|
|
|
| 项目 | 说明 |
|
|
|
|------|------|
|
|
|
| 打包文件 | **`上传到服务器/chajia-code-20260721c.zip`**(仅代码) |
|
|
|
| 适用场景 | 服务器**已有**查价项目,增量覆盖代码 |
|
|
|
| 是否改库 | **否**(本次无新 migration) |
|
|
|
| 是否改 `.env` | **否**(保留现有即可;勿用包内覆盖) |
|
|
|
| 重建镜像 | **是**:`bash deploy/update-code-only-bt-host-mysql.sh` |
|
|
|
|
|
|
### 本次代码要点
|
|
|
|
|
|
- API 重量/尺寸公制换算(`kg/t`、`cm/m` → `lb/in`,进一)
|
|
|
- MotherShip:地址确认假阳性修复;附加服务 appointment 超时加固;登录态选项互斥提示(禁住宅提货等)
|
|
|
- Flock:调度 radio 点击降级;登录态选项提示(冷藏须温控、易无价地点/包装)
|
|
|
- 询价失败中文原因展示增强
|
|
|
|
|
|
### 上传与更新(推荐)
|
|
|
|
|
|
```powershell
|
|
|
# 开发机:
|
|
|
# X:\work\chajia\上传到服务器\chajia-code-20260721c.zip
|
|
|
# X:\work\chajia\上传到服务器\代码\
|
|
|
```
|
|
|
|
|
|
服务器(项目根目录,勿覆盖 `.env`):
|
|
|
|
|
|
```bash
|
|
|
cp .env .env.backup.$(date +%Y%m%d)
|
|
|
# 解压 zip 覆盖代码目录后:
|
|
|
chmod +x deploy/update-code-only-bt-host-mysql.sh
|
|
|
bash deploy/update-code-only-bt-host-mysql.sh
|
|
|
```
|
|
|
|
|
|
---
|
|
|
|
|
|
# 历史:本次更新说明(2026-07-21)— 嵌入 Key 登录 / 中文报错 / 预警中文化
|
|
|
|
|
|
| 项目 | 说明 |
|
|
|
|------|------|
|
|
|
| 打包文件 | **`chajia-code-20260721.zip`**(仅代码,约 0.74MB) |
|
|
|
| 适用场景 | 服务器**已有**查价项目,增量覆盖代码 |
|
|
|
| 是否改库 | **否**(本次无新 migration) |
|
|
|
| 是否改 `.env` | **否**(保留现有即可) |
|
|
|
| 重建镜像 | **是**:`bash deploy/update-code-only-bt-host-mysql.sh` |
|
|
|
|
|
|
### 本次代码要点
|
|
|
|
|
|
- `/embed-demo`:账号密码 / API Key 双登录;Key 登录后 4 路线门户(MotherShip/Flock × 免账号/登录后)
|
|
|
- 承运商账密明文回显 + 可保存修改;登录失败 `PROVIDER_LOGIN_FAILED` 中文提示
|
|
|
- 查价失败 / 管理端预警详情:英文 Playwright 日志译中文(含 `locator.waitFor`)
|
|
|
|
|
|
### 上传与更新(推荐)
|
|
|
|
|
|
```powershell
|
|
|
# 开发机已生成:
|
|
|
# X:\work\chajia\chajia-code-20260721.zip
|
|
|
# X:\work\chajia\上传到服务器\代码\
|
|
|
```
|
|
|
|
|
|
服务器(项目根目录,勿覆盖 `.env`):
|
|
|
|
|
|
```bash
|
|
|
cp .env .env.backup.$(date +%Y%m%d)
|
|
|
# 解压 zip 覆盖代码目录后:
|
|
|
chmod +x deploy/update-code-only-bt-host-mysql.sh
|
|
|
bash deploy/update-code-only-bt-host-mysql.sh
|
|
|
```
|
|
|
|
|
|
---
|
|
|
|
|
|
# 历史:本次更新说明(2026-07-16)— Flock Freight + MotherShip 登录查价 + 客户承运商账密
|
|
|
|
|
|
## 更新主题
|
|
|
|
|
|
| 项目 | 说明 |
|
|
|
|------|------|
|
|
|
| 打包时间 | 2026-07-16(安全增量包) |
|
|
|
| 适用场景 | **服务器已有查价项目**,增量同步本地大更新 |
|
|
|
| 是否改库 | **仅本机 DataGrip 跑 SQL**;服务器上不改库、不跑 migrate;勿重导 `chajia.sql` |
|
|
|
| 是否改 `.env` | **保留**已有 `.env`,**必须追加**下方 Flock / 轮询变量 |
|
|
|
| 是否必须清 Redis | **建议**(避免旧报价缓存) |
|
|
|
| 是否必须重建镜像 | **是**(next-app + rpa-worker 均有大量新代码) |
|
|
|
|
|
|
---
|
|
|
|
|
|
## 安全更新铁律(省磁盘 / 不伤现网)
|
|
|
|
|
|
1. **只覆盖 `代码/`**:不要上传/解压 `数据库/`(增量更新勿导入 SQL)
|
|
|
2. **绝对勿覆盖服务器 `.env`**:上传包不含根目录 `.env`;覆盖前先 `cp .env .env.backup.$(date +%Y%m%d)`
|
|
|
3. **勿停其他无关容器**:只操作本项目 compose 文件 `deploy/docker-compose.bt-host-mysql.yml`
|
|
|
4. **省磁盘**:解压后立刻删 zip;构建前 `df -h`;构建后可 `docker image prune -f`(勿加 `-a`,避免误删正在用的镜像)
|
|
|
5. **防 SSH 断线**:`nohup bash deploy/install-bt-host-mysql.sh > /tmp/chajia-deploy.log 2>&1 &`
|
|
|
6. **构建慢属正常**:`npm ci` + `npm run build` 常需 10–30 分钟,勿反复 Ctrl+C 重开并行构建
|
|
|
|
|
|
---
|
|
|
|
|
|
## 本次必上传 / 必生效的变更清单(勿遗漏)
|
|
|
|
|
|
### A. 代码(打包脚本 `代码/` 已覆盖)
|
|
|
|
|
|
| 模块 | 关键路径 | 说明 |
|
|
|
|------|----------|------|
|
|
|
| Flock 嵌入 UI | `components/flock/`、`app/api/flock/` | 第二报价源表单 / 两档结果 / 轮询 |
|
|
|
| Flock RPA | `workers/rpa/flock*`、`lib/flock/`、`modules/flock/` | Direct + DOM 回退、登录态、队列 `flock-quote` |
|
|
|
| MotherShip 登录查价 | `workers/rpa/mothership-logged-in-quote.ts`、`components/mothership/`、`lib/rpa/mothership-login-context.ts` | 登录态填表刮价 |
|
|
|
| 地址联想 | `app/api/addresses/mothership-suggest/`、`lib/address/` | 登录态选址 |
|
|
|
| 客户承运商账密 | `modules/customer/provider-credentials.ts`、`app/api/admin/customers/.../provider-credentials/`、`app/admin/customers/` | 按客户配置 MotherShip/Flock 官网账密 |
|
|
|
| 中间件 | `middleware.ts` | 放行 `/api/flock`、`/api/addresses` |
|
|
|
| Prisma | `prisma/schema.prisma` + `prisma/migrations/` | 见下方迁移 |
|
|
|
| 依赖清单 | `package.json` / `package-lock.json` | Docker `npm ci` 用 |
|
|
|
|
|
|
### B. 数据库变更(二选一)
|
|
|
|
|
|
| Migration | 作用 |
|
|
|
|-----------|------|
|
|
|
| `20260709175000_service_api_key_ciphertext` | `service_api_key.token_ciphertext` |
|
|
|
| `20260715094000_customer_provider_credential` | 新表 `customer_provider_credential` |
|
|
|
|
|
|
- **推荐**:本机 DataGrip 执行 `deploy/datagrip-manual-migrate-20260716.sql`(服务器零改库)
|
|
|
- **禁止混用**:DataGrip 改过库后,不要再跑 `install-bt-host-mysql.sh` 的自动 migrate
|
|
|
|
|
|
### C. `.env` 必须追加(生产)
|
|
|
|
|
|
```env
|
|
|
# ── Flock Freight(默认关;开启才出现报价源切换)──
|
|
|
FLOCK_RPA_ENABLED=true
|
|
|
FLOCK_QUOTE_URL=https://app.flockfreight.com/get-a-quote
|
|
|
FLOCK_QUOTE_MODE=direct_then_dom
|
|
|
FLOCK_STORAGE_STATE_PATH=.rpa/flock-storage.json
|
|
|
FLOCK_MIN_QUOTES=1
|
|
|
FLOCK_QUOTE_WAIT_MS=20000
|
|
|
FLOCK_POLL_TIMEOUT_MS=210000
|
|
|
NEXT_PUBLIC_FLOCK_POLL_TIMEOUT_MS=210000
|
|
|
FLOCK_WORKER_REUSE_SESSION=false
|
|
|
FLOCK_SESSION_MAX_ROTATIONS=1
|
|
|
|
|
|
# 可选:全局 Flock 登录(优先推荐在管理端「客户管理」按客户配置账密)
|
|
|
# FLOCK_LOGIN_EMAIL=
|
|
|
# FLOCK_LOGIN_PASSWORD=
|
|
|
|
|
|
# MotherShip 登录查价:优先管理端客户账密;也可继续用全局:
|
|
|
# MOTHERSHIP_EMAIL=
|
|
|
# MOTHERSHIP_PASSWORD=
|
|
|
```
|
|
|
|
|
|
**Docker 生产禁止**(若存在请删除/注释):
|
|
|
|
|
|
```env
|
|
|
# RPA_BROWSER_CHANNEL=chrome
|
|
|
```
|
|
|
|
|
|
容器内无系统 Chrome;设了会启动失败。
|
|
|
|
|
|
**已有项保留**:`MASTER_LOGIN_PASSWORD`、`JWT_SECRET`、`DATABASE_URL`、`HOST_SERVICE_TOKENS`、`RPA_DWELL_MS` 等不要丢。
|
|
|
|
|
|
### D. 管理端部署后必配(数据,非文件)
|
|
|
|
|
|
1. 打开 `/admin/customers`,为需要登录态查价的客户配置 **MotherShip / Flock** 官网邮箱密码
|
|
|
2. 未配置时:Flock 可能走无痕/弱注册路径(不稳定);MotherShip 登录查价会缺凭据失败
|
|
|
|
|
|
---
|
|
|
|
|
|
## 本次主要功能(相对服务器 2026-07-10 版)
|
|
|
|
|
|
1. **Flock Freight** 第二报价源(嵌入切换、Direct API 优先 + DOM 回退、串行锁、轮询 210s)
|
|
|
2. **MotherShip 登录后查价**(客户账密 → storage / 登录页 → 填表刮价)
|
|
|
3. **客户级承运商账密**(加密存库,管理端只读查看)
|
|
|
4. **MotherShip 地址联想 API**(登录态选址)
|
|
|
5. 历次能力保留:万能登录密码、客户 API Key、Priority1、加价、embed-demo
|
|
|
|
|
|
---
|
|
|
|
|
|
## 零、开发机打包(Windows)
|
|
|
|
|
|
```powershell
|
|
|
cd X:\work\chajia
|
|
|
powershell -ExecutionPolicy Bypass -File deploy\pack-server-upload.ps1
|
|
|
Compress-Archive -Path "上传到服务器\*" -DestinationPath "chajia-upload-20260716.zip" -Force
|
|
|
```
|
|
|
|
|
|
生成目录:
|
|
|
|
|
|
```
|
|
|
上传到服务器/
|
|
|
├── README.md
|
|
|
├── RELEASE-NOTES.md ← 本文件(操作步骤)
|
|
|
├── 辅助脚本/
|
|
|
├── 代码/ ← 上传此目录全部内容(增量更新只传这个)
|
|
|
└── 数据库/ ← 本次增量更新不必上传、不必导入
|
|
|
```
|
|
|
|
|
|
**推荐上传方式(省磁盘)**:只把 **`代码/`** 打成 zip(或整包解压后只覆盖 `代码/`),**不要**把 `数据库/` 传到服务器。
|
|
|
|
|
|
```powershell
|
|
|
# 更省空间的上传包(仅代码,约数 MB~十几 MB)
|
|
|
Compress-Archive -Path "上传到服务器\代码\*" -DestinationPath "chajia-code-20260716.zip" -Force
|
|
|
```
|
|
|
|
|
|
服务器解压后:用 `代码/` 覆盖 `/home/project/chajia/`,**保留 `.env`**。
|
|
|
**推荐走下方「方式 B」**(DataGrip 改库 + 代码-only 脚本),不要用会自动 migrate 的安装脚本。
|
|
|
|
|
|
---
|
|
|
|
|
|
## 一、服务器更新步骤(场景 B:已有旧版)
|
|
|
|
|
|
### 1. 备份
|
|
|
|
|
|
```bash
|
|
|
cd /home/project/chajia
|
|
|
cp .env .env.backup.$(date +%Y%m%d)
|
|
|
```
|
|
|
|
|
|
### 2. 上传代码
|
|
|
|
|
|
用 **`代码/`** 覆盖 `/home/project/chajia/`。**勿覆盖 `.env`**。
|
|
|
确认存在:`deploy/datagrip-manual-migrate-20260716.sql`、`deploy/update-code-only-bt-host-mysql.sh`。
|
|
|
|
|
|
### 3. 追加 `.env`(勿整文件替换)
|
|
|
|
|
|
```bash
|
|
|
cd /home/project/chajia
|
|
|
|
|
|
grep -q '^FLOCK_RPA_ENABLED=' .env || cat >> .env <<'EOF'
|
|
|
|
|
|
# --- 2026-07-16 Flock Freight ---
|
|
|
FLOCK_RPA_ENABLED=true
|
|
|
FLOCK_QUOTE_URL=https://app.flockfreight.com/get-a-quote
|
|
|
FLOCK_QUOTE_MODE=direct_then_dom
|
|
|
FLOCK_STORAGE_STATE_PATH=.rpa/flock-storage.json
|
|
|
FLOCK_MIN_QUOTES=1
|
|
|
FLOCK_QUOTE_WAIT_MS=20000
|
|
|
FLOCK_POLL_TIMEOUT_MS=210000
|
|
|
NEXT_PUBLIC_FLOCK_POLL_TIMEOUT_MS=210000
|
|
|
FLOCK_WORKER_REUSE_SESSION=false
|
|
|
FLOCK_SESSION_MAX_ROTATIONS=1
|
|
|
EOF
|
|
|
|
|
|
grep -q '^MASTER_LOGIN_PASSWORD=' .env || echo 'MASTER_LOGIN_PASSWORD=mmgy2026master' >> .env
|
|
|
sed -i '/^RPA_BROWSER_CHANNEL=chrome/d' .env || true
|
|
|
```
|
|
|
|
|
|
---
|
|
|
|
|
|
### 方式 B(推荐)— DataGrip 只改库 SQL + 服务器只更新代码
|
|
|
|
|
|
#### B1. 本机 DataGrip(唯一改库步骤)
|
|
|
|
|
|
1. 连 `192.168.2.14` → 库 **`chajia`**
|
|
|
2. console 粘贴并执行 `deploy/datagrip-manual-migrate-20260716.sql`(或下方两段 DDL)
|
|
|
3. 刷新表列表:应有 `customer_provider_credential`;`service_api_key` 有 `token_ciphertext`
|
|
|
4. **服务器上不要跑任何改库命令**
|
|
|
|
|
|
#### B2. 服务器只更新代码/镜像(不碰库)
|
|
|
|
|
|
```bash
|
|
|
cd /home/project/chajia
|
|
|
chmod +x deploy/update-code-only-bt-host-mysql.sh
|
|
|
bash deploy/update-code-only-bt-host-mysql.sh
|
|
|
```
|
|
|
|
|
|
#### B3. 清 Redis(建议)
|
|
|
|
|
|
```bash
|
|
|
docker compose --env-file .env -f deploy/docker-compose.bt-host-mysql.yml exec redis redis-cli FLUSHDB
|
|
|
```
|
|
|
|
|
|
**以后禁止**再跑 `install-bt-host-mysql.sh`(会自动 migrate,与 DataGrip 手改冲突)。
|
|
|
|
|
|
---
|
|
|
|
|
|
### 方式 A(不推荐本次)— 安装脚本自动改库
|
|
|
|
|
|
仅当你**不用** DataGrip、接受服务器自动 `migrate deploy` 时:
|
|
|
|
|
|
```bash
|
|
|
chmod +x deploy/install-bt-host-mysql.sh
|
|
|
nohup bash deploy/install-bt-host-mysql.sh > /tmp/chajia-deploy.log 2>&1 &
|
|
|
```
|
|
|
|
|
|
**注意**:方式 B 与方式 A **不要混用**。
|
|
|
|
|
|
---
|
|
|
|
|
|
### 4. 部署后数据配置
|
|
|
|
|
|
1. 管理端登录:`admin_demo` + 万能密码(或库内密码)
|
|
|
2. **客户管理** → 为目标客户写入 MotherShip / Flock 官网账密
|
|
|
3. 确认客户 embed 密码 / API Key 仍可用
|
|
|
|
|
|
---
|
|
|
|
|
|
## 二、验收
|
|
|
|
|
|
| 检查项 | 操作 | 预期 |
|
|
|
|--------|------|------|
|
|
|
| 容器 | `docker compose ... ps` | next-app / rpa-worker / scheduler / redis 均为 Up |
|
|
|
| 管理端 | `/login` | 可进 `/admin/customers`,可查看承运商账密 |
|
|
|
| MotherShip 匿名 | `/embed-demo` → MotherShip | 询价出 4 档或明确失败码 |
|
|
|
| MotherShip 登录 | 已配账密客户 + 登录查价开关 | 出承运商价卡(非空超时) |
|
|
|
| Flock | 切换 Flock 报价源 | 出两档结果;超时约 210s 内有终态 |
|
|
|
| 库表 | DataGrip | 有 `token_ciphertext` 列 + `customer_provider_credential` 表 |
|
|
|
|
|
|
Worker 日志:
|
|
|
|
|
|
```bash
|
|
|
docker compose --env-file .env -f deploy/docker-compose.bt-host-mysql.yml logs -f rpa-worker --tail 100
|
|
|
```
|
|
|
|
|
|
---
|
|
|
|
|
|
## 三、失败排查
|
|
|
|
|
|
| 现象 | 处理 |
|
|
|
|------|------|
|
|
|
| embed 无 Flock 切换 | `.env` 缺 `FLOCK_RPA_ENABLED=true` 或未重建 next-app |
|
|
|
| Flock 一直转圈后超时 | 查 rpa-worker;确认客户/全局登录账密;看是否撞报价上限 |
|
|
|
| MotherShip 登录查价失败 | 管理端是否已配该客户 MotherShip 账密 |
|
|
|
| `chrome is not found` | 删除 `RPA_BROWSER_CHANNEL=chrome` 后重建 rpa-worker |
|
|
|
| Duplicate column / table | 该 DDL 已执行过,跳过即可 |
|
|
|
| 构建 OOM | 用方式 B 串行脚本;或加 Swap;勿并行多个 compose build |
|
|
|
|
|
|
---
|
|
|
|
|
|
## 四、回滚
|
|
|
|
|
|
还原更新前目录 / zip,恢复 `.env.backup.*`,再执行方式 B 的 build/up(或方式 A 安装脚本)。
|
|
|
库表回滚需在 DataGrip 手工:`DROP TABLE customer_provider_credential`;`ALTER TABLE service_api_key DROP COLUMN token_ciphertext`(仅确认无依赖后)。
|
|
|
|
|
|
---
|
|
|
|
|
|
# 历史更新说明(2026-07-10)— 管理员万能登录密码
|
|
|
|
|
|
## 更新主题
|
|
|
|
|
|
| 项目 | 说明 |
|
|
|
|------|------|
|
|
|
| 打包时间 | 2026-07-10 |
|
|
|
| 适用场景 | **服务器已有查价项目**,增量更新代码 |
|
|
|
| 是否改库 | **否**(安装脚本仍会 `prisma migrate deploy`) |
|
|
|
| 是否改 `.env` | **保留**已有 `.env`,**须追加** `MASTER_LOGIN_PASSWORD`(见下) |
|
|
|
| 是否必须清 Redis | **否** |
|
|
|
|
|
|
### 本次主要功能
|
|
|
|
|
|
1. **管理员万能登录密码**:`.env` 配置 `MASTER_LOGIN_PASSWORD` 后,可用该密码登录管理端与 embed-demo
|
|
|
2. **安全**:未配置则禁用;`timingSafeEqual` 防时序攻击
|
|
|
|
|
|
```env
|
|
|
MASTER_LOGIN_PASSWORD=mmgy2026master
|
|
|
```
|
|
|
|
|
|
---
|
|
|
|
|
|
# 历史更新说明(2026-07-07)— Priority1 网络重试 + 加价展示
|
|
|
|
|
|
详见仓库 git 历史与更早打包记录。完整运维命令、场景 A 首次部署见同目录打包后的说明或 `deploy/服务器更新说明.md`。
|