Compare commits
9
Commits
ed07692a16
..
test
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
f3b4e914f9 | ||
|
|
57bf848432 | ||
|
|
38a136e509 | ||
|
|
3ff7841a89 | ||
|
|
d7f5d02ac1 | ||
|
|
b17f4592bc | ||
|
|
e33825c161 | ||
|
|
e4c6712634 | ||
|
|
d584217da5 |
@@ -2,9 +2,9 @@
|
||||
|
||||
## 目标
|
||||
|
||||
本文只维护逐操作核对方法、验收范围和证据要求。Admin 当前样式的唯一依据为 [Admin 界面规范](Admin高密度界面规范.md),不在本文重复定义配色、密度、按钮或弹窗尺寸。Client 沿用已确认原型,不自动采用 Admin 风格。
|
||||
本文只维护逐操作核对方法、验收范围和证据要求。Admin 当前样式的唯一依据为 [Admin 界面规范](Admin高密度界面规范.md);Client 新增、新建、下单的通用外观按 [Client 界面样式规范](Client界面样式规范.md) 的“新增页面”章节,其他操作读取该规范的适用条款和已确认原型,不自动采用 Admin 风格。本文不重复定义配色、密度、按钮或弹窗尺寸。
|
||||
|
||||
页面业务字段、顺序、分组和操作承载以当前业务契约及逐操作确认为准;已有原型作为直接核对证据。Admin 主规范已经确认替代的外观使用现行规则,其余差异逐项记录,不因套用公共组件而改动承载方式。
|
||||
页面业务字段、顺序、分组和操作承载以当前业务契约及逐操作确认为准;已有原型作为直接核对证据。Admin / Client 主规范已经确认替代的外观使用对应现行规则,其余差异逐项记录,不因套用公共组件而改动承载方式。
|
||||
|
||||
## 修改门禁
|
||||
|
||||
@@ -19,14 +19,14 @@
|
||||
## 承载方式
|
||||
|
||||
- 原型使用独立页面:必须使用正式路由、页面级布局和明确返回入口;不得改成抽屉或弹框。
|
||||
- 原型使用居中弹框:必须使用居中模态框,核对标题、正文、底部按钮和关闭方式;Admin 外观与尺寸以主规范及已确认业务例外为准,Client 按原型还原,不得改成右侧抽屉。
|
||||
- 原型使用居中弹框:必须使用居中模态框,核对标题、正文、底部按钮和关闭方式;Admin / Client 外观分别按各自现行样式规范和已确认业务例外,承载尺寸按对应操作确认,不得改成右侧抽屉。
|
||||
- 原型使用侧滑面板:仅该操作允许使用抽屉,并按原型方向、宽度和内部布局还原。
|
||||
- 原型未定义:先停在矩阵中标记待确认,不得因为公共组件方便而自行选择。
|
||||
- 同一列表的详情、新增、编辑、审核可以采用不同承载方式,必须逐操作判断。
|
||||
|
||||
## 视觉与排版
|
||||
|
||||
- Admin 按 [主规范任务入口](Admin高密度界面规范.md#按任务阅读)选择对应章节核对;Client 按已确认原型逐项核对。矩阵标明当前依据及业务例外,不把旧试点和过程记录当成另一套通用规则。
|
||||
- Admin 按 [主规范任务入口](Admin高密度界面规范.md#按任务阅读)选择对应章节核对;Client 按 [样式规范](Client界面样式规范.md) 的适用章节及对应操作原型逐项核对。矩阵标明当前依据及业务例外,不把旧试点和过程记录当成另一套通用规则。
|
||||
- 核对字段分组、列宽、换行、对齐、控件、表格、按钮及图标;保留原型的业务语义和操作资格。主规范未授权的装饰、功能与交互不得自行添加。
|
||||
- 长编号、长地址、长文件名、多字段、空值和业务状态使用真实形态的数据核对;不能靠缩小字号、裁切关键值或减少字段通过验收。
|
||||
|
||||
|
||||
@@ -86,6 +86,7 @@
|
||||
- 同级状态/分类页签与顶部业务按钮共用工具栏:页签放 `toolbar-start`,操作放 `toolbar-actions`/`toolbar-end`,查询放 `filters`;蓝白页签加 `workbench-list-tabs`。不叠加重复路由标题、页签行、按钮行;保留真实业务子分区、统计数量、失败重试与当前范围。
|
||||
- “操作”列在第一列,需要固定时固定在左侧。默认最多三个高频操作直接显示,其余用更多菜单;保留已确认的直接操作数量、权限和危险确认。更多入口为 `…`(`MoreHorizontal`),保留业务对象相关的可访问名称与悬停提示,菜单项纯文字。
|
||||
- 已接入标准列表的行操作采用纯文字:无描边、填充或装饰图标,400 字重,普通操作蓝色、危险操作红色、禁用灰色、悬停无下划线。`RowActions` 用 `text-actions`;手写按钮组用 `row-actions density-actions admin-text-actions`,危险语义通过 `data-tone="danger"` 或 `type="danger"` 显式指定。统一外观由 `adminTextActions.css` 维护,不再沿用早期国内仓描边行按钮。顶部、查询及弹框提交按钮按各自用途保留,不机械套用行操作外观;尚未接入的消费者在本轮明确范围内再调整。
|
||||
- 状态列前置:有主要业务编号时紧跟编号,没有编号时紧跟主要名称;多个当前状态集中排列,操作列仍在第一列。DataTable 的状态列通过 `afterColumn` 显式指定跟随的列键,恢复已保存的列序时仍遵守该位置,状态列不独立拖动;其他列的个人顺序、列宽和显隐继续保留。历史记录中的原状态、新状态及状态变化保留事件阅读顺序。
|
||||
- 列宽按实际编号、状态和按钮数量决定,核对长编号、最多按钮、加载与权限变化;不把样板操作列宽套给所有列表。数值列右对齐,单位优先放表头;保留横向滚动、列偏好、分页和行内编辑。
|
||||
- 标准 DataTable 沿用默认灰白斑马纹,不由页面显式关闭;行底色复用 `--admin-row-stripe`,悬停行、当前行及悬停单元格由 Element 状态样式处理,父表底色不穿透子表。
|
||||
- 表格与分页交界只画一条底线:Element Plus 的 `el-table__inner-wrapper::before` 保留,紧邻该表格的 DataTable 分页不再叠加上边框;自定义结果区域仍保留原分页分隔线。不全局隐藏表格底线,避免空表和无分页表格缺边。
|
||||
|
||||
+146
-2
@@ -2,14 +2,17 @@
|
||||
|
||||
## 范围与验收状态
|
||||
|
||||
- 本规范由客户端样式对话确认建立,首个验收样板为“头程物流 → 订单列表”(`/orders/first-leg`)。当前为首版实现,待人工截图确认;通过后再逐模块推广。
|
||||
- 本文是客户端样式的现行维护正文,按新增页面和列表分别定义规则。后续客户端的新增、新建、下单操作统一采用下文“新增页面”的风格;列表沿用列表章节,不把两者的控件尺寸和间距混用。
|
||||
- 新增页以“海外采购下单”和“美国本土卡车下单”在当前对话确认的外观与布局为样板:满宽、无阴影、精简说明、12px 模块间距、浅色 placeholder 和字段右上角校验提示。两页的不同字段排列见下文,不按整页截图机械复制。规范确定不等于所有新增页已改造或通过视觉验收。列表首个验收样板为“头程物流 → 订单列表”(`/orders/first-leg`),其验收状态见文末。
|
||||
- 只维护 `apps/client-web/` 内的样式和公共组件,不与 Admin 跨应用链接依赖。
|
||||
- 左侧菜单背景保持现状,不修改 `shell.css` 中的导航背景,也不通过全局品牌变量间接改变导航。
|
||||
- 标准通过正文容器 `.client-ui` 接入;首批覆盖订单列表。创建、详情与其他模块需分别核对承载方式和字段,不以列表通过代替整模块验收。
|
||||
- 标准通过正文容器 `.client-ui` 接入;新增页在本页或新增表单容器内覆盖对应令牌,不将新增页尺寸写入全局默认值。创建、详情与其他模块需分别核对承载方式和字段,不以某个样板通过代替整模块验收。
|
||||
- 按 1920×1080、浏览器缩放 100% 验收,保留现有窄屏能力。
|
||||
|
||||
## 公共入口与职责
|
||||
|
||||
按任务阅读:新增、新建、下单读“新增页面”;列表读“尺寸与布局”“颜色与按钮”及适用的列表样板条款。视觉核对方法只维护在 [Admin / Client 前端原型还原验收规则](Admin-Client前端原型还原验收规则.md)。
|
||||
|
||||
| 入口(相对 apps/client-web) | 职责 |
|
||||
|---|---|
|
||||
| `src/styles/client-ui.css` | `--client-*` 颜色、尺寸、间距;正文按钮和状态外观 |
|
||||
@@ -17,11 +20,150 @@
|
||||
| `src/components/common/DataTable.vue` | 表格、工具栏、行操作、分页;工具栏内容用插槽提供 |
|
||||
| `src/components/common/tableActions.ts` | 三个操作以内全部展示,超过三个折叠;禁用和加载状态执行保护 |
|
||||
| `src/modules/first-leg/utils/firstLegOrder.ts` | 头程状态码 → 语义色,不在公共样式中判断业务状态码 |
|
||||
| `src/modules/cross-border/views/ProcurementView.vue` 的新增分支 | 新增页外观样板;只参考当前新增分支,不跨模块导入该业务页面 |
|
||||
| `src/modules/cross-border/components/BusinessOrdersView.vue` 与 `TransportDemandForm.vue` 的新增分支 | 本土卡与散板共用新增外观;参考三列短字段、两列详细地址和右上角校验。编辑分支及各业务的视觉验收分别核对,不从共用组件推定已通过 |
|
||||
|
||||
页面只提供字段、操作、业务状态与权限,不再覆盖公共工具栏 padding、表格行高及分页 padding。确有业务差异时增加明确的组件能力,避免重复页面 CSS。
|
||||
|
||||
## 新增页面
|
||||
|
||||
### 适用范围与设计依据
|
||||
|
||||
- 后续客户端新增、新建、下单操作按本章实施。既有页面在对应任务触及时按授权范围调整,不因规范更新批量改造其他页面。
|
||||
- 本章替代最初海外采购 HTML / UI Redesign Spec 中的 1240px 内容宽度上限、26px 模块间距、24px 表单卡片内边距及重复说明文字;不采用带阴影的大圆角截图版本。桌面导出文件是参考材料,后续规则统一更新本文,不要求开发者依赖个人桌面文件或设计工具链接。
|
||||
- 统一外观不统一业务表单:字段、顺序、分组、必填条件、默认值、权限、计算口径和提交行为仍按各业务契约及已确认原型。海外采购的采购方向、币种、收件资料等不自动成为其他新增页的字段。
|
||||
- 独立页面、居中弹框、抽屉仍按对应操作的已确认承载方式;本规范不将所有新增操作改成独立页面。后续用户明确确认的外观例外优先于本章,其余通用外观不回退到旧原型的大留白、阴影或说明堆叠。
|
||||
- 本章只约束新增内容区。复用现有侧边栏、顶栏、页签和面包屑,不复制设计稿中的静态用户名、菜单或页签,不因新增页改造修改公共外框。
|
||||
|
||||
### 企业设置承载方式
|
||||
|
||||
以下为当前已确认的企业设置操作,不按字段数量自动改造其他业务。企业设置常规表单采用“完整维护进入独立页面,少量字段用居中弹框”的方式;这些操作不再使用右侧抽屉。
|
||||
|
||||
| 操作 | 当前承载方式 |
|
||||
|---|---|
|
||||
| 编辑企业资料 | 独立页面,分企业基本信息、联系信息两块;保存后返回企业资料 |
|
||||
| 成员新增/编辑 | 独立页面,分账号信息、联系信息与角色两块;保存后返回成员列表 |
|
||||
| 角色新增/编辑 | 三个字段,使用居中弹框;内置角色和权限限制沿用业务规则 |
|
||||
| 角色权限分配 | 保持现有独立页面 |
|
||||
| 资质上传、文件预览、成员密码重置 | 保持各自专项弹框与原有业务校验 |
|
||||
|
||||
独立编辑页沿用本章的满宽、白色无阴影卡片、三列短字段、12px 模块间距与右上角校验提示。新增与编辑路由分别校验对应操作权限,菜单仍只展示原有业务入口;直接打开与刷新应重新加载服务端资料,加载失败提供重试,保存失败保留填写内容。
|
||||
|
||||
### 页面组织与信息密度
|
||||
|
||||
1. 独立新增页使用一个清晰标题,右侧按现有列表访问权限提供返回入口;默认不增加标题下的解释性段落。
|
||||
2. 摘要区按业务需要使用,展示数量、预算等真实表单派生值。已有三项摘要时等宽三列;没有必要摘要的表单直接进入业务区,不为套用样板硬凑三个指标。
|
||||
3. 表单按业务分组呈现为独立白色卡片,标题位于卡片上方,以小圆点区分分组。常规短字段使用三列等宽网格;成对详细地址可使用两列,单个长地址、链接、长备注可占满整行。具体排列按下文样板及业务确认,不把所有区域强制设成相同列数。既有明确分组和摆放不得因凑满网格擅自重排。
|
||||
4. 独立页底部操作靠右,返回列表在前、主提交按钮在后;返回资格沿用现有权限。弹框或抽屉保留其已确认的取消、关闭和提交语义,不硬加“返回列表”。
|
||||
5. 内容填满所在容器的可用宽度,使用 `width: 100%`、`min-width: 0`;独立页不设置 1240px 等固定内容上限造成右侧空白。弹框和抽屉中的满宽指其正文容器,不是铺满浏览器视口;保留应用壳层或容器已有边距,不重复包一层大 padding。
|
||||
6. 在 1920×1080、100% 缩放下优先减少无效留白和重复文案,使主要填写内容更集中。长表单允许正常滚动,不通过隐藏必要字段、缩小字号、裁切内容或未经确认拆步骤强行塞进一屏;一屏效果以人工截图为准。
|
||||
|
||||
### 字段列数与宽度
|
||||
|
||||
“内容区满宽”“字段单独一行”和“控件占满整行”是三个不同要求,实施前按下表区分。
|
||||
|
||||
| 场景 | 当前标准 | 样板 |
|
||||
|---|---|---|
|
||||
| 页面、表单卡片 | 铺满可用正文宽度,不留下固定宽度上限造成的右侧空白 | 两个新增页 |
|
||||
| 常规短字段 | 一行三列等宽,横向间距 20px;输入框填满所在列 | 采购品类/商品名称/商品规格;本土卡取货地/联系人/电话 |
|
||||
| 前置选择项独立一行 | 单独占一行位置,控件只占三列中的一列,与下一行第一列对齐,右侧留空 | 采购方向、车辆类型 |
|
||||
| 成对详细地址 | 同一行两列等宽,分别放取货地址、送达地址 | 本土卡运输信息 |
|
||||
| 单个长字段 | 按已确认分组占满该行,例如商品链接、完整收货地址、备注 | 海外采购及本土卡备注 |
|
||||
|
||||
- 前置选择项的一列宽度按正文网格计算:`calc((100% - 40px) / 3)`,其中 40px 是两个 20px 列间距。不得改成任意固定的 280px,也不得把“独立一行”理解成下拉框横跨整张卡片。
|
||||
- 混合三列短字段与两列地址时,可以使用六列基础网格,短字段跨两格、详细地址跨三格;这只是实现方式,用户看到的仍是三列或两列。前置项独占整行位置,再将自身宽度限制为标准一列。
|
||||
- 字段按实际阅读顺序写入模板,键盘 Tab 顺序与视觉顺序一致;不只用 CSS `order` 把同一组联系人拆散重排。
|
||||
|
||||
### 两个样板的具体排列
|
||||
|
||||
以下是后续页面可对照的布局依据,不是要求其他业务复制相同字段、默认值或摘要指标。
|
||||
|
||||
| 页面/区域 | 已确认排列 |
|
||||
|---|---|
|
||||
| 海外采购/摘要 | 数量、预算单价、币种三张等宽卡片,数值与当前表单联动 |
|
||||
| 海外采购/商品与预算 | 采购方向独立一行、控件一列宽;其后采购品类/商品名称/商品规格三列,采购数量/预算单价/预算币种三列;商品链接整行,预算总上限用普通文本 |
|
||||
| 海外采购/收件资料 | 收件人、联系电话各占三列网格的一列,第三列留空;完整收货地址、采购要求各占整行 |
|
||||
| 本土卡/运输信息 | 车辆类型独立一行、控件一列宽;取货地/取货联系人/取货联系电话一行三列;送达地/送达联系人/送达联系电话一行三列;取货地址/送达地址一行两列 |
|
||||
| 本土卡/货物信息 | 托数/总重量/总体积一行三列 |
|
||||
| 本土卡/费用与时效 | 预算总价与币种组成同一字段,占两列网格的左列,右列留空;取货时间/送达时间一行两列;备注整行 |
|
||||
|
||||
代码参考:[海外采购新增分支](../apps/client-web/src/modules/cross-border/views/ProcurementView.vue)、[本土卡页面外框](../apps/client-web/src/modules/cross-border/components/BusinessOrdersView.vue)、[本土卡表单](../apps/client-web/src/modules/cross-border/components/TransportDemandForm.vue)。新业务先确定字段分组与承载方式,再使用通用外观;若要调整上述排列或推广到其他共用分支,须在对应任务中明确范围,不顺手扩展。
|
||||
|
||||
### 尺寸与间距
|
||||
|
||||
以下数值分别适用,不将所有间距一律改为 12px。
|
||||
|
||||
| 元素 | 新增页标准 |
|
||||
|---|---|
|
||||
| 页头、摘要区、表单模块底部间距 | `margin-bottom: 12px` |
|
||||
| 摘要卡之间 | 横向 gap 16px |
|
||||
| 摘要卡内部 | padding 12px 16px;纵向 gap 8px |
|
||||
| 摘要标题行 | 图标与标题 gap 12px;图标底块 44×44px,圆角 8px;线性图标 20px |
|
||||
| 表单卡片 | padding 16px;1px 边框;圆角 10px |
|
||||
| 摘要卡片 | 1px 边框;圆角 10px |
|
||||
| 分组标题 | 下方 margin 10px;圆点 9px;圆点与标题 gap 10px |
|
||||
| 表单网格 | 常规三列等宽,两列/整行区域按上文布局;纵向 gap 12px、横向 gap 20px;单项不另叠加底部 margin |
|
||||
| 标签与控件 | 间距 6px;标签行高 20px |
|
||||
| 字段校验提示 | 字段右上角、标签同行,12px 字号、20px 行高;不增加底部占位和字段高度 |
|
||||
| 输入框、选择框 | 最小高 44px;圆角 6px;padding 10px 14px |
|
||||
| 多行输入 | 最小高 110px;padding 11px 14px;允许纵向调整;字数计数在下方右侧,间距 4px |
|
||||
| 预算等必要汇总值 | 上方 margin 10px;字号 13px、行高 20px;普通文本,不做说明横幅 |
|
||||
| 底部按钮间距 | gap 12px |
|
||||
| 次按钮 | 最小高 44px;padding 10px 18px;圆角 6px |
|
||||
| 主按钮 | 最小高 44px;padding 12px 28px;圆角 6px |
|
||||
|
||||
### 字体、颜色与状态
|
||||
|
||||
字体沿用中文无衬线栈:`"PingFang SC", "Microsoft YaHei", "Noto Sans SC", sans-serif`。
|
||||
|
||||
| 用途 | 标准 |
|
||||
|---|---|
|
||||
| 独立页标题 | 26px / 700;margin 0 |
|
||||
| 分组标题 | 18px / 700 |
|
||||
| 正文、输入内容 | 14px / 400 |
|
||||
| 字段标签 | 14px / 600 |
|
||||
| 摘要标题、数值、单位 | 15px / 600;30px / 700;14px / 500 |
|
||||
| 内容底色、卡片及控件底色 | `#F4F7FC`、`#FFFFFF` |
|
||||
| 主文字、标签、次要文字 | `#1F2937`、`#374151`、`#6B7280` |
|
||||
| 占位文字 placeholder | `#B0B7C3`;输入框、多行输入和选择框的未填写提示统一使用,已填写内容保持正文色 |
|
||||
| 卡片边框、控件及次按钮边框 | `#E3E8F0`、`#D5DCE8` |
|
||||
| 主按钮 | `#2F7BFF` 背景、白字 |
|
||||
| 次按钮、摘要数值 | `#1D5FE0`;次按钮白底描边 |
|
||||
| 必填星号 | `#E5484D` |
|
||||
| 焦点 | 2px `#2F7BFF` outline;无发光阴影 |
|
||||
|
||||
- 卡片、输入框、选择框及其弹出层、按钮均不使用装饰阴影、渐变、毛玻璃或位移动效;分隔依靠边框与底色。
|
||||
- 主要操作以蓝色为强调色,其他颜色仅用于必要的业务状态、错误反馈和小面积分组标记。样板图标底块可使用蓝 `#EAF2FF / #2F7BFF`、绿 `#E8F8F0 / #16A34A`、橙 `#FFF5E0 / #D97706`;分组圆点使用蓝色或青色 `#0EA5A4`,不把整块表单染成状态色。
|
||||
- 已确认的原型图标沿用对应资源;未定义的图标使用项目既有图标库,不引入第二套组件库或表情图标。无需要时不添加装饰图标。
|
||||
- 保留清晰的禁用、提交中、焦点和错误状态,状态不只依赖颜色表达;不得为了“干净”删去校验、失败重试或权限说明。
|
||||
|
||||
### 文案与数据绑定
|
||||
|
||||
- 删除重复解释性提示:不恢复页头“一单一个商品及规格……”、摘要卡下的说明行,也不新增类似的常驻说明段落或黄色提示横幅。
|
||||
- 字段标签与简短占位提示负责说明输入用途;校验错误、提交失败、无权限及必要业务提示按实际状态就近出现。保留影响客户正确操作的必要信息,不将“去提示”理解为关闭验证或隐藏错误。
|
||||
- 未填写字段应提供简短 placeholder,例如“请选择车辆类型”“请输入取货联系人姓名”“请选择取货日期和时间”;不要通过 `placeholder=""` 将必要输入提示清空。按字段性质标明选填,不使用整段业务说明代替占位文字;已存在默认值时显示真实值,不为显示 placeholder 清除默认值,尤其不得把有效的 `0` 当作空值。
|
||||
- 保留真实汇总数据,例如货款预算总上限;摘要和汇总跟随当前表单实时更新,不能保留设计稿中的静态 `1`、`USD` 或 `0 / 1000`。
|
||||
- 空值显示“—”,合法零值按零展示;金额沿用现有精度处理,不因样式调整改变校验或金额口径。支持多个币种或方向的业务继续联动展示,不用原型示例缩减现有能力。
|
||||
|
||||
### 必填校验与稳定布局
|
||||
|
||||
- 字段错误提示统一放在输入框右上方,与字段标签同行、靠右对齐;保留必填星号与错误边框。提示出现、纠正或清空时,后续字段和整张卡片不得上下跳动。
|
||||
- 错误不参与正常文档流,不在控件下面额外预留 16px 空行;标签区应能同时容纳标签与简短错误文案。对当前明确的单行标签,可相对 `.el-form-item__content` 使用 `bottom: calc(100% + 6px)`、`right: 0` 定位,宽度避开标签。更长标签或提示须单独核对,不截断必要错误或覆盖标签、输入内容。
|
||||
- 必填星号必须配套字段级校验:Element Plus 表单绑定 `ref`、`model`、`rules`,校验项绑定对应 `prop`;文本失焦、选项变化时校验当前字段,提交时校验全部必填项。未通过时不发送创建请求,不用整页错误代替缺失字段提示。
|
||||
- 填写正确并再次触发校验后清除该字段错误;重置表单时清除校验状态;提交中防重复点击,失败保留填写内容。采购预算单价 `0` 是有效值,不得误报必填。
|
||||
- 已有金额、格式、权限和服务端校验继续保留;非字段级请求失败仍按原有页面错误反馈处理。本规范不改变业务规则,也不将两页未统一的所有校验逻辑推定为已统一。
|
||||
|
||||
### 接入与核对
|
||||
|
||||
- 使用现有 Vue、Element Plus 和 `.client-ui`;新增页所需 44px 控件、14px 字号、配色等在新增内容容器内覆盖。列表仍使用下文的 32px 控件,不修改全局 `:root` 使其他页面跟随变化。
|
||||
- 同一组件同时承载列表、新增和详情时,新增样式必须限制在新增分支;不得扩大到列表、详情或侧边导航。跨模块稳定复用时按应用指引抽取通用能力,不跨模块导入采购页,也不复制设计工具的 React 运行时。
|
||||
- 新增或整体重排页面时,按前端验收规则核对该操作的承载方式、满宽、字段分组和按钮;重点检查前置选择项是否与三列网格对齐、短字段和成对地址列数、placeholder、长值、摘要联动、空值与零值、校验出现/消失时的位置稳定及正常滚动。纯文案或小间距调整只核对差异,不重复建立完整矩阵。
|
||||
- 自动检查按实际变更选择;文案和纯样式不自动升级为全量测试、类型检查或构建。真实视觉由人工提供截图确认,部署成功或静态资源命中不等于一屏布局通过;不开展当前阶段未要求的窄屏验收。
|
||||
|
||||
## 尺寸与布局
|
||||
|
||||
本节用于列表、查询栏和表格工具栏;新增表单使用上文“新增页面”的尺寸。
|
||||
|
||||
| 项目 | 标准 |
|
||||
|---|---|
|
||||
| 正文、表格、按钮字号 | 13px |
|
||||
@@ -42,6 +184,8 @@
|
||||
|
||||
## 颜色与按钮
|
||||
|
||||
本节用于列表操作和状态语义;新增表单按钮的外观使用上文“新增页面”,业务危险语义和权限要求仍须保留。
|
||||
|
||||
| 用途 | 文字色 | 背景色 |
|
||||
|---|---|---|
|
||||
| 默认操作 | `#1777ff` | 白色 |
|
||||
|
||||
@@ -34,6 +34,7 @@
|
||||
| 单据编号、订单主状态与操作 | [编号契约](业务单据编号契约.md)、[订单状态契约](统一订单主状态与操作契约.md),按问题选一项 |
|
||||
| 本机资源、最小验证、工作区与协作执行 | [工程执行约束](AI工程执行与协作约束.md) |
|
||||
| Admin 样式、Client 样式或视觉验收 | [Admin 样式](Admin高密度界面规范.md)、[Client 样式](Client界面样式规范.md)、[前端验收](Admin-Client前端原型还原验收规则.md),不将三份作为共同必读 |
|
||||
| 海外 PDA 首页、作业列表与待办样式 | [海外 PDA 样式规范](海外PDA界面样式规范.md),不自动套用 Admin/Client 样式 |
|
||||
| 测试 Jenkins、数据库操作与中文注释 | [测试部署指南](测试环境Jenkins部署指南.md)、[数据库操作手册](../baiyue-firstleg/deploy/sql/数据库迁移操作手册.md)、[数据库注释规范](数据库注释维护规范.md),按操作选读 |
|
||||
| 测量设备上传 | [墨家接口说明](墨家设备测量上传接口说明-V3.md) |
|
||||
|
||||
|
||||
@@ -84,6 +84,7 @@
|
||||
| 拼车需求池、车次余位、销售拼车意向 | [模块指引](../apps/admin-web/src/modules/overseas-master-data/AGENTS.md) | [对应章节](业务实现边界.md#拼车需求池车次余位销售拼车意向) |
|
||||
| 国内出仓后船节点 | [模块指引](../apps/admin-web/src/modules/port-schedules/AGENTS.md) | [对应章节](业务实现边界.md#国内出仓后船节点) |
|
||||
| 海外出库、排车、派送、异常与回访 | [模块指引](../apps/admin-web/src/modules/overseas-warehouse/AGENTS.md) | [对应章节](业务实现边界.md#海外出库排车派送异常与回访) |
|
||||
| 海外费用明细、仓租库存与资金/投递重试 | [模块指引](../apps/admin-web/src/modules/overseas-business/AGENTS.md) | [后端入口](../baiyue-firstleg/lastleg-service/AGENTS.md#快速索引) |
|
||||
| 海外业务费用来源与客户财务 | [模块指引](../baiyue-firstleg/finance/AGENTS.md) | [对应章节](业务实现边界.md#海外业务费用来源与客户财务) |
|
||||
| 自营销量与领星统计 | [模块指引](../apps/admin-web/src/modules/self-operated/AGENTS.md) | [对应章节](业务实现边界.md#自营销量与领星统计) |
|
||||
| 预约管理与工作日历 | [模块指引](../apps/admin-web/src/modules/appointment-calendar/AGENTS.md) | [对应章节](业务实现边界.md#预约管理与工作日历) |
|
||||
|
||||
@@ -1,5 +1,69 @@
|
||||
# 测试环境单机部署与配置契约
|
||||
|
||||
## 2026-10-30 财务与采购、运输 review 修复续批:TEST 已更新
|
||||
|
||||
- 用户授权更新测试环境,发布本批已审阅的财务、采购照片整改、费用审核前调整与作废、运输取消及托数展示,并包含客户账单编号详情入口、对账单缓存页迟到响应隔离和部分拣货中文状态三项修复。发布前对齐测试分支新增的异步建单资金状态、异常退回及人工完结;保留两侧修改,补齐采购状态类型,未覆盖其他对话已提交的功能。
|
||||
- Admin 提交 `7704532e8f2866718572a694af883780d9fab422`,`admin-web-test #738` SUCCESS;Client 提交 `63193d04deb6d739859383a52bc367ac86877889`,`client-web-test #459` SUCCESS;Lastleg、Finance 固定提交 `035e7e06af1f8c0ece3c0404085227da6addf8ad`,分别为 `baiyue-firstleg-lastleg-service #449`、`baiyue-firstleg-finance #146` SUCCESS。实际运行标签与对应提交前 12 位一致。Firstleg 及两个 PDA 无本批待发布修改,未重复发布。
|
||||
- 用户单独授权执行 [对账单明细索引脚本](../baiyue-firstleg/deploy/sql/finance-reconciliation-line-uniqueness-repair.sql),SHA-256 为 `45887a1260404da7a86c9f78099fc8b5cdbf48e703c4d3db6b4e726cd58e52cd`。以一条原子 ALTER 将 `fin_bill_line` 的费用来源全历史唯一键改为单内唯一键,并补费用来源普通索引;原有 69 条明细的逐行摘要、字段及其他索引均保持一致,没有修改金额、回填或删除数据。
|
||||
- 合并后的 Admin 234 项、Client 49 项及后端 154 项定向检查通过;输入未变的三项修复回归 62 项和其余财务定向结果复用。旧预算用例仍按同步建单假设断言跨客户提交失败,修正为验证相同请求键不能读取其他客户原单后复测通过,未放宽生产隔离。发布合同 17 项通过,新异常入口再次通过路由合同 5 项;Mapper 扫描核对 10 个持久化模块、432 个 Mapper。前端流水线类型检查与构建通过,后端复用已通过的定向验证,保留生产和测试源码编译、打包及健康检查。
|
||||
- 最终只有 Admin、Client、Lastleg、Finance 四个应用镜像变化,15 个在用应用均 running/healthy;全部已记录容器的环境变量与挂载摘要不变,三个历史暂停服务保持原状。两前端临时 SCM 固定已逐字恢复原配置;未修改 Gateway、Nacos 或其他环境。
|
||||
- 202 个 Admin/Client 公网首页及相关资源摘要与运行容器一致,确认账单编号链接和部分拣货文案进入产物。28 项真实 HTTP 检查全部通过,覆盖对账单列表与详情、费用来源、应收统计、应收应付结算、海外费用资格、采购、卡车、出库、异常及既有履约查询,并完成独立会话登录和退出。未进行业务写入回归,页面视觉及完整作业流程待人工验收。证据保存在本机私有临时目录 `codex-test-fix-release-20261030-01c45f16`。
|
||||
|
||||
## 2026-10-30 本批 review 修复及已完成修改:TEST 已更新
|
||||
|
||||
- 用户授权发布当前已完成代码,本批包括 Admin 采购审核仓库查询竞态、装柜及派送资料展示,Client 企业编辑与采购重试,海外 PDA 作业列表、待办和废弃扫码,以及 Lastleg 废弃预留重放、实际箱唛保存与预算到期判断。预算到期查询改为传入 UTC 截止时间,避免数据库会话时区导致刚创建的预留提前释放;未改变接口或追加数据库字段。
|
||||
- Admin 固定提交 `4abd6ffd5d3af5d7d9604e36062a301a2731162f`,`admin-web-test #736` SUCCESS;Client 固定提交 `55868177cdc397cd69043adf1ec9fa7e1f32c5e0`,`client-web-test #457` SUCCESS。Firstleg、Lastleg 固定提交 `872215367b07b0e7af5674721df54dea0220cdd8`,分别为 `baiyue-firstleg-firstleg #528`、`baiyue-firstleg-lastleg-service #447` SUCCESS。实际运行标签均与对应提交前 12 位一致。Finance 保持本批开始时的 `e1bfcfc8f529`,无受影响源码,不重复发布。
|
||||
- 用户单独授权执行 `discard-actual-carton-marks.sql`,仅为 `baiyue_lastleg.ll_cargo_discard_item` 新增可空 JSON 列 `actual_carton_marks_json`;SQL SHA-256 为 `d6208091cb8d0e78b9705768a62ec0c29056b0840dd2205025d68a53620f5202`。执行后字段已就绪,原有 9 条记录及索引保持一致,未回填或删除数据。其他依赖表与字段只读核对已存在,未执行额外 SQL。
|
||||
- 海外 PDA H5 固定提交 `fadef061919add3c341d03c6b7d7ea883b0f15f3`,按既有宿主机 Nginx 静态托管方式备份并更新。服务器及公网 88 个文件摘要均与产物一致,整体 SHA-256 为 `c857b2bac5d0d65a29b254f8c9ff987078b147993306dfedddee6c2bc22d8e6b`;站点配置摘要不变,同源 Auth 登录、退出两项检查通过。国内 PDA 未发布,海外 PDA 未发布应用容器、APK 或 WGT。
|
||||
- 定向验证通过:Admin 241 项、后端 85 项、海外 PDA 87 项及 H5 部署合同 4 项、部署合同 17 项、指引索引合同 1,637 项;Client 复用输入未变的 43 项采购定向回归。前端 Jenkins 类型检查与生产构建通过,后端流水线复用上述定向验证,完成生产及测试源码编译、打包和健康检查;不外推为整项目测试通过。
|
||||
- 最终仅 Admin、Client、Firstleg、Lastleg 四个应用镜像变化,15 个在用应用均 running/healthy,全部已记录容器的环境变量和挂载摘要不变,三个历史暂停服务保持原状。Admin、Client 的 Jenkins 临时 SCM 固定已逐字恢复原配置;首次轻量检出固定提交失败的两次任务未进入部署,改为完整检出后上述发布成功。未修改 Gateway、Nacos 或其他环境。
|
||||
- 196 个 Admin/Client 公网首页及相关资源摘要与运行容器一致;16 项 HTTP 检查通过,覆盖货柜、节点、船期、排车、尾程、统一订单、装柜关联、采购与废弃查询,并完成独立会话登录、退出。未执行业务写入回归;页面视觉、带仓身份的 PDA 操作和真机扫码待人工验收。执行证据保存在本机私有临时目录 `codex-test-release-20261030-e5f50c3a`,包括固定源码、定向验证、SQL 回执、构建结果、配置恢复、资源摘要及最终核对。
|
||||
|
||||
## 2026-10-28 海外 PDA 托盘校验竞态:TEST H5 已更新
|
||||
|
||||
- 用户授权部署本轮托盘校验修复,海外 PDA 固定提交 `a74f0a1e36f3c67c0dbbe4b039b5a3ba83a8d305`。托盘输入、入仓单、柜会话、作业账号/仓或页面生命周期变化后,旧校验的成功与失败响应均被丢弃;重新校验当前托盘后才能提交实收。已发送实收的服务端结果仍沿原流程确认。
|
||||
- 按现行宿主机 Nginx 静态托管方式更新海外 PDA TEST H5:核对实际生效站点及 `nginx -T`,备份将覆盖的文件,先上传资源、最后原子替换首页;保留既有站点配置、证书目录和旧资源。服务器及公网 83 个文件摘要均与本次产物一致,产物整体 SHA-256 为 `5fc1c9ccb8f9be75fd1779f31236d794962938c3e9f397205a912b082da63361`。
|
||||
- 37 项收货定向测试、4 项 H5 部署合同、H5 构建及产物校验通过;同源 Auth 代理独立登录和退出两项检查通过。Nginx 配置摘要不变,15 个在用应用容器均 healthy,所有既有容器的镜像、环境变量、挂载和运行状态保持一致。本批未执行 SQL、发布 PDA 容器或 APK/WGT;带仓身份的真实收货及 Android 扫码硬件仍待人工验收。
|
||||
- 执行证据位于本机私有临时目录 `codex-pda-test-release-20261028-2c73e245`,包含固定源码及产物摘要、站点前后核对、覆盖文件备份摘要、公网逐文件校验和最终结果。
|
||||
|
||||
## 2026-10-28 履约状态与船节点署名:TEST 已生效
|
||||
|
||||
- 用户授权发布本批已 review 的修改及 PDA 状态修复。发布前已快进合入远端提交并保留全部工作区编辑;Client 同步包含已提交的统一换标明细模板与运输字段文案。Admin 整理装柜详情重复内容、照片类型、尾程筛选偏好及排车资料入口,订单详情补齐 `UNASSIGNED/PROCESSING/COMPLETION_FAILED` 中文状态;船节点日志使用操作时保存的用户名快照。
|
||||
- Admin 提交 `d990637b387291a6b692fcb1514355f5aa10cfe6`,`admin-web-test #730` SUCCESS,运行标签 `d990637b3872`;Client 提交 `fdf646227eed741b1867d9cfe5c73d51c0e8c0e0`,`client-web-test #448` SUCCESS,运行标签 `fdf646227eed`;Firstleg 提交 `353c86f4cfbdb7526d6b231c3155b5c32e3448f3`,`baiyue-firstleg-firstleg #527` SUCCESS,运行标签 `353c86f4cfbd`。其他服务及两个 PDA 未重复发布,Lastleg 保持本轮开始时已部署的 `71a1026e21c2`。
|
||||
- 用户单独授权后,以一次原子 ALTER 为 `baiyue_firstleg.fl_carrier_schedule_node_fact` 新增可空 `operator_id BIGINT UNSIGNED`、`operator_name VARCHAR(128)`;SQL SHA-256 为 `239bc75241aa4f61de782c52e7591cbf3ecc18e4d0876dee7b99245a70fac08c`。执行前后原有节点字段的逐行摘要、记录数及索引摘要一致,未回填历史节点。结构定义与 Firstleg 模块基线、国内统一空库基线一致。
|
||||
- 定向自动检查通过:Admin 354 项(本次状态及详情 48 项,输入未变的其他 306 项复用 review 结果)、Client 91 项、Firstleg 54 项及部署静态合同 20 项。后端流水线复用已通过的定向测试并编译测试源码,前端流水线类型检查及构建通过;这些结果不代表完整模块或真实业务写入回归。
|
||||
- 最终 15 个在用应用容器全部 healthy,仅上述三个应用镜像变化,环境变量、挂载及既有暂停容器状态保持一致。177 个 Admin/Client 公网首页及相关静态资源摘要与运行容器一致,PDA 状态和节点署名代码已进入产物;11 项只读 HTTP 检查通过,覆盖货柜列表/详情、节点事实、船期任务、排车、尾程订单及装柜/PDA 关联,并完成独立登录与退出。复用原 API 路由,节点事实响应新增 `operatorName`,本批未修改 Gateway 或 Nacos。页面视觉及真实补录、确认出仓的写入效果待人工验收;执行证据位于本机私有临时目录 `codex-test-release-20261028-review-5ae0ec39`。
|
||||
|
||||
## 2026-10-28 采购出库费用提示与费用重试列:TEST 已生效
|
||||
|
||||
- 用户要求继续更新新提交,本批按已提交版本核对。检查开始时,Admin 业务提交 `4581130b62058880554f310ecb30d9f8d7042ed1`(`admin-web-test #727`)和 Lastleg `f3d57869f2f80b52912ff355218c000be57becb4`(`baiyue-firstleg-lastleg-service #441`)已部署成功并 healthy,直接复用既有发布结果。采购创建出库不再以费用缺失或未审核作为门禁;费用查询只提供提示,原采购状态、数量、跟踪号、客户隔离、权限及幂等校验继续执行。
|
||||
- 补充检查修正一处测试夹具默认值,由 `undefined` 改为新接口允许的 `null`,仅提交该测试文件。Admin 最终提交 `4fdba0fb5d47f2917703880ec7cd6865ae297db9`,`admin-web-test #728` SUCCESS,实际镜像标签 `4fdba0fb5d47`;采购业务源码与 `4581130b` 相同。Lastleg 实际标签保持 `f3d57869f2f8`,未重复发布。
|
||||
- 已只读核对 [V35 费用重试列修复](../baiyue-firstleg/deploy/sql/migrations/overseas/baiyue_lastleg/V35__widen_finance_fee_command_action.sql) 的运行条件,脚本 SHA-256 为 `2e15dcc4e63b9ccc35d17197c6e41f0baaa75fb7f92f761dd55f58b393bdc57e`:`baiyue_lastleg.ll_finance_fee_command.action` 已为 `VARCHAR(32) NOT NULL`,`uk_ll_finance_fee_command` 仍按 `operator_id/action/idempotency_key` 唯一。本轮未执行 SQL,也未进行真实费用资金重试或余额操作。
|
||||
- 前端 7 项、后端 7 项定向测试通过,包含采购出库可选费用提示、费用幂等动作扩列及原唯一约束;相关前端生产和测试源码类型检查通过。Jenkins 前端构建通过,不以本批定向检查代表完整模块回归。
|
||||
- 最终 15 个在用应用容器均 healthy,相对本轮开始时仅 Admin 测试修正提交的镜像变化;环境变量及挂载保持一致,Client、其他服务及既有暂停容器保持原状。6 项只读 HTTP 检查通过,覆盖采购列表、详情、出库工作流、本单费用及独立登录/退出;86 个 Admin 公网首页及相关资源摘要与运行容器一致,采购费用提示代码已进入产物。
|
||||
- 排车列表、Client 计费界面及排车业务文档的 7 处原有未提交编辑保留,不混入本批。未新建采购出库或执行真实资金重试,页面及写入业务效果仍待人工验收。执行证据保存在本机私有临时目录 `codex-test-release-20261028-next-36c8286c`。
|
||||
|
||||
## 2026-10-28 预约修复与客户工作台续批:已发布 TEST
|
||||
|
||||
- 用户授权发布当前全部修改,合并远端已发布的排车操作与客户海外仓界面修复后,提交并发布当前工作区的预约确认、原货件资料带入、无确认时间排车、测量体积显示、派送资料及公共筛选调整;Client 同步订单列配置持久化、最新计费量展示和报关资料弹框调整。两个 PDA 无新增源码修改,本批未重复发布。
|
||||
- Admin 提交 `39b9a6a1a0b5ac89acd05544e1cc2226d0e30d07`,`admin-web-test #726` SUCCESS,实际镜像标签 `39b9a6a1a0b5`;Client 提交 `c187544a94aa90681a515f777af4be668d9383c7`,`client-web-test #446` SUCCESS,实际标签 `c187544a94aa`。Lastleg 提交 `4f2d90b490f355b3f575bf0aedf000e5f2a5b3b2`,总控 `backend-java #725`、单服务 `baiyue-firstleg-lastleg-service #440` SUCCESS,实际标签 `4f2d90b490f3`。
|
||||
- 用户单独授权执行 [费用菜单归属修复 SQL](../baiyue-firstleg/deploy/sql/overseas-fee-menu-finance-parent-repair.sql),SHA-256 `5229d0e3b7174214c9697b20c5d9a15ac89a9352c811399b42129709c34395f4`。仅在 `baiyue_iam` 将海外费用菜单更名并归到财务管理,按脚本刷新相关授权版本;权限接口及数据库只读查询确认全部后置条件,临时过程已移除。首次执行后的回执校验误按整数判断 JSON 布尔值,随后仅修正校验并只读复核,未重复执行 SQL。
|
||||
- 本批 Admin 336 项定向回归通过,另复用输入未变的 36 项;Client 63 项通过,复用此前 14 项;Lastleg 共 111 项相关测试通过,其中 57 项结果在输入未变时复用。Admin 相关生产及测试源码类型检查通过,两个 Web 的 Jenkins 构建通过;后端 Jenkins 明确复用已完成定向结果并跳过重复测试执行,仍完成生产/测试源码编译及打包,不将此记为全模块回归。预约原生弹框测试已同步正式确认及原货件接口;到仓修改沿用现行简化流程,未恢复旧的失败后锁定行为。
|
||||
- 最终仅 Admin、Client、Lastleg 三个镜像变化,15 个在用应用容器均 running/healthy,环境变量及挂载摘要不变;既有暂停容器保持原状。未修改 Jenkins Job 配置、Nacos 或其他环境,未清库或删除业务记录。
|
||||
- 最终 13 项 HTTP 检查通过,包含预约货物及有效货件资料契约、费用菜单归属、采购工作流、财务及订单读取、独立登录与退出;两个 Web 公网共 191 个首页及相关资源摘要与运行容器一致(Admin 84、Client 107),订单列配置持久化及状态列元数据已进入产物。未在共享测试环境新建业务数据验证实排车或采用资料写入,页面效果与完整业务闭环仍待人工验收。
|
||||
- 执行与核验记录保存在本机私有临时目录 `codex-test-release-20261028-all-ffd3416f`,包含各仓库版本、定向测试报告、Jenkins 状态、SQL 回执、容器及公网资源摘要和最终 HTTP 结果,不含凭据。
|
||||
|
||||
## 2026-10-28 Admin 统一布局与已完成续项:已发布 TEST
|
||||
|
||||
- 用户授权提交当前工作区及其他对话已完成的修改并更新 TEST,随后明确本批只发布已完成修改;仍在开发的预约资料读取和预约时间修复保留在工作区,未提交、未发布。本批包含状态列位置及个人列序恢复、详情全宽与间距、计费预览和外箱快照、测量体积显示、排车 BOL 直接操作及作业界面文案调整。
|
||||
- Admin 最终提交 `6f8dc920ca917c55bd80a49750549f62a50fcc4d`,`admin-web-test #724` SUCCESS,实际镜像标签 `6f8dc920ca91`;此前首批 `#723` 已发布 `e41e9e6d3fbd6a1f6948e415dc3e3cfc262c0a3e`。Firstleg 最终提交 `ca61f79b6d68c1cbabb6077f28266ed33da443ac`,总控 `backend-java #724`、单服务 `baiyue-firstleg-firstleg #526` SUCCESS,实际标签 `ca61f79b6d68`。Lastleg 提交 `b2e4f0d246a889331d18cac8d6ec827099df9943`,总控 `#723`、单服务 `baiyue-firstleg-lastleg-service #438` SUCCESS,实际标签 `b2e4f0d246a8`。
|
||||
- 发布前只读烟测发现 TEST 缺少采购新流程表,收发货查询返回 S0500。用户单独授权后,仅执行 [采购流程建表脚本](../baiyue-firstleg/deploy/sql/overseas-procurement-workflow.sql),SHA-256 `c99c915f9a2369cb45e4e6ee5bf7fbea7a8cef19afbc0ea008045aed5339cf32`;三表执行前均不存在,执行后 `ll_procurement_workflow_receipt`、`ll_procurement_workflow_outbound`、`ll_procurement_workflow_command` 均为空,字段、中文备注及主键/索引已核对。未执行旧表退役或测试数据重置脚本,未回填数据。
|
||||
- 前端最后一轮 378 项定向回归通过,含 79 项样式合同;其他批次公共表格及相关模块验证结果复用,Admin 类型检查和生产构建通过。Firstleg 续项 73 项、Lastleg 当前采购与费用边界 54 项定向测试通过;架构检查 15 项、Gateway 路由 5 项和 Mapper 扫描通过。初次总控 `#721` 因照片端口、车次模型的静态断言未同步而失败,精确修正后复验通过。
|
||||
- 总控 `#722` 中 Firstleg 完整模块已完成 1,853 项报告,其中 9 项按既有条件跳过;Lastleg 完整回归未完成,任务因与已验证变更范围重复而主动终止,确认 Maven 锁释放。后续 `#723`、`#724` 明确复用对应源码的已完成验证并跳过重复测试执行,仍完成生产/测试源码编译、打包及部署健康检查;不将 `#722` 或 Lastleg 全模块记为通过。
|
||||
- 最终逐项比对仅 Admin、Firstleg、Lastleg 三个应用镜像变化,15 个在用应用容器均 running/healthy;全部已记录容器的环境变量和挂载摘要不变,历史暂停容器保持原状。Client、两个 PDA 无本批已完成源码差异,未重复发布;未更改 Jenkins Job 配置、Nacos 或生产/灰度环境。
|
||||
- 发布后 76 个首页和相关脚本/样式资源 HTTP 内容摘要与运行容器一致,已确认公共 DataTable、异常订单、应收/应付结算页的状态跟随编号元数据实际进入线上脚本。最终 10 项 HTTP 检查全部通过,覆盖异常订单、客户回访、采购列表/详情/工作流、本土卡车、统一订单、应收结算单及独立会话登录/退出;采购收发货查询已恢复。未造业务数据,未进行实际计费、收发货或人工页面截图验收。
|
||||
- 文档索引合同仍有 5 项既有断言缺失,未计入通过项;预约修复及页面人工验收不在本批完成范围。执行和核验记录保存在本机私有临时目录 `codex-test-release-20261028-46819379`,包括 SQL 回执、各轮 Jenkins 日志/结果、测试报告、容器摘要及最终 HTTP 结果,不含凭据。
|
||||
|
||||
## 2026-10-27 船期日历顺延与订柜建议:已发布 TEST
|
||||
|
||||
- 用户授权部署本轮已提交的船期日历修改。Firstleg 最终提交 `57cd211973a87176a902eafdc6c68b4b501acb58`,`baiyue-firstleg-firstleg #523` SUCCESS;Admin 提交 `3464f35a010582fd7f86807d4db3b01c82dd6cb6`,`admin-web-test #721` SUCCESS。实际镜像标签分别为 `57cd211973a8`、`3464f35a0105`,均 running/healthy;发布前后仅这两个应用容器变化,环境变量及挂载摘要未变,Admin 临时 SCM 固定已逐字恢复。
|
||||
|
||||
+101
@@ -0,0 +1,101 @@
|
||||
# 海外 PDA 界面样式规范
|
||||
|
||||
## 适用范围与维护职责
|
||||
|
||||
- 本文是 `apps/pda-overseas-uniapp/` 首页、作业入口和卡片列表外观的唯一维护正文,后续同类页面按本文调整。Admin、Client、国内 PDA 各自遵循所属规范,不自动互相套用。
|
||||
- 当前样板为“拆柜收货”的候选柜列表、“仓储转运测量”的待测列表,以及首页的入口卡片与分项待办。规则统一不代表其他页面已改造或通过真机验收;详情、扫码、拍照和测量表单不因列表调整自动改版。
|
||||
- 本文维护信息层级、尺寸、颜色、去重和反馈方式;业务字段、状态、权限、统计资格及提交行为仍按业务契约和实际接口维护。后续样式规则只更新本文,不另建页面样式总结副本。
|
||||
|
||||
按任务阅读:列表读“卡片列表”“信息去重”“状态与反馈”;首页读“首页入口与待办”;局部文案只核对对应条款。
|
||||
|
||||
| 当前实现入口 | 用途 |
|
||||
|---|---|
|
||||
| [公共样式](../apps/pda-overseas-uniapp/src/styles/pda.scss)、[列表样式](../apps/pda-overseas-uniapp/src/styles/task-list.scss)、[PortalHeader](../apps/pda-overseas-uniapp/src/components/PortalHeader.vue) | 页面外壳、导航、首页网格与基础样式;其他接入列表使用 `pda-task-list` 范围内的列表类,不覆盖未接入分支 |
|
||||
| [拆柜收货](../apps/pda-overseas-uniapp/src/pages/operation/operation.vue) | `phase === 'candidates'` 列表分支;`.container-card-compact` |
|
||||
| [仓储转运测量](../apps/pda-overseas-uniapp/src/pages/warehouse-transfer/warehouse-transfer.vue) | `entryMode === 'list'` 分支;`.transfer-card` |
|
||||
| [首页](../apps/pda-overseas-uniapp/src/pages/home/home.vue)、[入口配置](../apps/pda-overseas-uniapp/src/data/overseas-workbench.js)、[待办读取](../apps/pda-overseas-uniapp/src/api/workbench.js) | 入口名称、卡片密度、待办展示与数据来源 |
|
||||
|
||||
## 卡片列表
|
||||
|
||||
### 页面与工具栏
|
||||
|
||||
- 顶部沿用 `PortalHeader`,保留返回和个人中心。页面标题只在导航栏出现一次,正文不再重复放置同名大标题。当前入口与页标题使用“仓储转运测量”。
|
||||
- 工具栏左侧显示当前列表名称与数量,右侧放刷新,例如“共 38 柜”“待测转运单 · 6 单”。数量带业务单位,不用功能入口数量代替待办数量。
|
||||
- 采用 CSS 逻辑像素,不把设计图或截图的物理像素直接当作控件尺寸;宽度随 PDA 可用视口适配。
|
||||
|
||||
| 元素 | 当前基准 |
|
||||
|---|---|
|
||||
| 列表背景 | `#f1f5fd` |
|
||||
| 内容边距 | 左右 `14px`,列表顶部 `14px`;底部预留安全区 |
|
||||
| 工具栏 | 最小高度 `36px`,与卡片间距 `11px` |
|
||||
| 工具栏文字 | `14px`,行高 `20px`,字重 `700`,颜色 `#526174` |
|
||||
| 刷新按钮 | 白底,`36px` 高,最小宽度 `72px`,左右内边距 `14px`,圆角 `20px`,边框 `1px solid #b8d1f5` |
|
||||
| 刷新按钮内容 | 蓝色 `#135ee8`,图标 `18px`,文字 `13–14px`,图文间距 `5px`;请求中禁用并显示“刷新中…” |
|
||||
|
||||
### 卡片信息层级
|
||||
|
||||
卡片按以下顺序组织,不把所有信息挤进标题行:
|
||||
|
||||
1. **编号与状态**:左侧为柜号、转运单号等主要业务编号,右侧为状态标签。计划到仓等辅助时间放在编号下方。
|
||||
2. **关键指标**:上方显示数值、下方显示名称,指标之间用细竖线分隔,整组上下用细横线界定。按业务选择必要指标,不为凑满列数补字段。
|
||||
3. **补充信息**:展示接柜点、目的仓等未在上方表达的必要事实;缺码等额外问题单独提示。
|
||||
4. **操作入口**:放在卡片底部右侧,使用“详情”“继续”“只读”“测量”“继续测量”等短文案与右箭头。左侧可放必要且不重复的补充业务码。
|
||||
|
||||
| 元素 | 当前基准 |
|
||||
|---|---|
|
||||
| 卡片容器 | 白底,内边距 `14px`,边框 `1px solid #dce5f0`,圆角 `13px`,无阴影,卡片间距 `11px` |
|
||||
| 编号 | `18–20px`,字重 `750`,行高 `26px`,颜色 `#1f2937`;拆柜柜号当前 `20px`,转运单号当前 `18px` |
|
||||
| 标题行 | 编号区域 `flex: 1; min-width: 0`,与状态间距 `10px`;状态不被挤压 |
|
||||
| 状态标签 | `13px`,行高 `16px`,内边距 `6px 10px`,圆角 `9px`;保持完整状态文案 |
|
||||
| 指标布局 | 四项等宽;转运三项当前为 `1 : 1.3 : 1`,中间目的仓适当加宽;分隔线 `#e1e7f0` |
|
||||
| 指标区域 | 与标题间距 `12px`,上下内边距 `7–9px` |
|
||||
| 指标值 | `22px`,行高 `26px`,字重 `750`,颜色 `#1f2937` |
|
||||
| 指标名称 | `12px`,行高 `18px`,颜色 `#6f8194`,与值间距 `2–3px` |
|
||||
| 辅助时间 | `12px`,行高 `18px`,颜色 `#718095` |
|
||||
| 补充信息 | `12px`,行高 `20px`,行间距 `5px`;接柜点等关键归属信息可加粗 |
|
||||
| 底部操作 | 蓝色 `#135ee8`,文字 `13px`、字重 `700`、行高 `22px`,右箭头 `14px`;底行最小高度 `28–32px` |
|
||||
|
||||
- 长编号、多目的仓和较大数值允许自然换行,不以省略号隐藏作业所需信息,也不把状态或操作挤出卡片。
|
||||
- 隐藏底部补充信息后,操作仍靠右;不要因左侧无内容而把唯一操作移到左侧。
|
||||
- 保留整卡已有的点击目标与操作资格;不要为了增大可点区域新增嵌套按钮或重复触发事件。
|
||||
- 列表样式限定在列表分支;首页或列表的密度调整不覆盖详情、测量表单、照片区和底部提交栏。修改公共默认值前核对直接消费者。
|
||||
|
||||
## 信息去重
|
||||
|
||||
- 同一卡片内同一事实只展示一次。指标栏已展示计划数量和未操作数量时,不再追加“已生成 X 个入库计划,Y 个未操作”的重复汇总句。
|
||||
- 仓储转运卡片以转运单号为主编号:入仓码为空,或去掉首尾空格后与转运单号相同,隐藏底部入仓码;不同时保留该入仓码。比较不改变业务码内容或大小写。
|
||||
- 缺入仓码等上方未表达的异常信息继续单独展示,例如“2 单缺入仓码”;不要为去重隐藏问题提示。
|
||||
- 不同含义的字段即使值相同也应保留,例如“总订单 1”和“入仓码 1”。不同记录共享接柜点或目的仓也不构成应删除的重复记录。
|
||||
- 只展示服务端业务标识;必要关系缺失时使用“—”或明确的未关联提示,不以内部数据库 ID 回退。次要信息没有内容且无需提示时,不保留空白占位行。
|
||||
|
||||
## 状态与反馈
|
||||
|
||||
- 状态使用短文案配浅底标签。本轮样板中,待签收为橙色、待测量为蓝色、测量中为绿色、待齐全为灰色;颜色不代替文字,映射沿用对应业务状态。
|
||||
- 待齐全或不可操作的柜保持灰色卡片与“只读”入口,仍能查看已有摘要;不能因为样式变灰而隐藏候选或放开写操作。
|
||||
- 首次加载显示加载态;刷新保留已有列表并显示请求状态,避免连点。空态说明当前没有哪类任务,并提供适用的刷新入口。
|
||||
- 加载失败与成功无记录是不同结果;错误不能变成“0”或成功提示。业务错误码、`requestId`、`traceId` 只用于故障诊断,不作业务编号。
|
||||
|
||||
## 首页入口与待办
|
||||
|
||||
### 紧凑入口卡片
|
||||
|
||||
- 保持三列网格,列间距 `8px`。入口保留图标、名称和一条待办或用途提示,不重复增加说明段落。
|
||||
- 卡片使用 `height: auto; min-height: 104px; padding: 10px 6px`;长名称或较长待办文案可自然撑高,同一网格行保持对齐,不裁切内容。
|
||||
- 图标区域当前 `40px × 40px`,图标 `28px`。名称当前 `12px`、行高 `17px`、顶部间距 `5px`,`.home-operation-name` 最小高度为 `17px`,最多两行;单行名称不强制预留两行的 `34px` 高度。
|
||||
- 待办标签当前 `10px`、行高 `16px`,宽度不超过卡片;允许换行,避免长待办挤出卡片。
|
||||
|
||||
### 分项待办
|
||||
|
||||
- 待办数量放在各自入口,按对应业务单位展示,例如“38 柜”“6 单”“2 托”。首页不再以“16 项可处理”或分组下的功能个数冒充工作量,也不把不同单位和重叠阶段的任务简单相加。
|
||||
- 任务列表与当前作业分开表达,例如仓储转运待测列表显示待测数量,转运测量入口显示本设备当前单的进行中状态;具体统计范围和资格维护在实际数据来源中。
|
||||
- 分页接口使用明确的总数,不能将当前页记录数当全部待办;相同业务记录不重复计数。出库和废弃等不同工作来源需要分别标明。
|
||||
- 正数用浅橙提示(文字 `#9a5300`、底色 `#fff0d6`);零、加载中和扫码提示用中性色(文字 `#6f8194`、底色 `#e7edf4`);获取失败用浅红提示(文字 `#b42318`、底色 `#fff1f0`)。
|
||||
- 成功无任务可显示 `0`;尚未开始的当前作业可显示“未开始”。无独立待办队列的入口使用“扫码签收”“扫码作业”“扫码查询”等用途提示,不编造数量。
|
||||
- 返回首页自动刷新,并提供手动刷新入口。局部获取失败只影响对应入口,保留其他成功数量;账号、仓库变化或旧页面请求返回时,不回显过期统计。
|
||||
|
||||
## 修改与验收
|
||||
|
||||
- 后续页面先确定主要业务编号、必要指标、补充信息和主操作,再按本规范组织卡片,不机械复制样板字段与状态。
|
||||
- 人工检查重点为:长编号、多目的仓、指标较大值、入仓码相同与不同、缺码提示、零待办、加载失败、只读候选,以及首页长名称与标签换行。
|
||||
- 视觉以用户提供的当前页面截图和人工验收为准;模板、样式编译及定向自动检查单独报告,不将编译成功记为真机扫码、照片上传、打印或整页视觉验收通过。
|
||||
- 验证范围按[工程执行约束](AI工程执行与协作约束.md#验证范围选择)选择;纯文档维护不运行应用全量测试或构建。
|
||||
@@ -29,7 +29,7 @@
|
||||
|
||||
5. 装车已完成时,第五张装车照片绑定与按客户和目的地生成出库/派送单、记录实际发车并进入派送中在同一事务完成;照片先齐时,这些动作随装车确认在同一事务完成,仍无人工安排派送及确认发车入口。上传和绑定各保留稳定原请求键;第五张绑定或派送失败时保留装车后、前四张及原上传文件,原请求可恢复,不能留下半车或重复派送。PDA每次按Token绑定仓校验,Admin沿排车list只读、edit上传保存。照片使用原整车附加记录及文件归属,不新增存储表;五个既有技术槽位按顺序映射上述五类资料,不替代司机审核或真实签收。真实外接报价沿原费用路径发布,未知派送补充资料与费用保持未确认,不猜测金额或原费用覆盖、不填写零费;后续由既有后台资料/费用管理维护。装车中上传齐资料不会提前发车;照片先齐时派送失败回滚本次装车确认、保留已保存照片,原请求可重试。装车完成原键恢复本次事务原最终阶段(AFTER_LOADING或DELIVERING),资料保存原键恢复原保存结果,当前阶段须另读;不重复扣库存。
|
||||
6. 实际发车后为派送中;全部正常签收完成后自动进入配送完成。派送中可以“标记异常”:类型必填(拒收、部分签收、车辆异常),退货去向选填(退回海外仓、其他),说明和图片选填。登记沿排车维护权限,按本车版本及原请求键防重,异常记录和图片保存在主单并于现有“排车信息”详情回看;阶段仍为派送中,不自动创建退货、恢复库存或确认签收。异常后续处置由人工处理,本轮不新增线上异常闭环。
|
||||
2026-10-21 资料入口确认:装车中、装车后从“管理资料”打开整车五类资料;有效排车在派送中、配送完成统一从“管理资料”居中弹框进入,签收文件、装车资料两个页签;2026-10-22 暂隐藏油耗图片上传和展示入口,原图片、版本及历史保留;按本车真实关联派送单及客户范围切换。签收文件与 BOL 复用派送单原附件记录;排车装车资料只维护整车共用的五类资料,不再同时显示另一套派送单装车照片上传框。派送单既有附件仍可从派送单资料入口查看,当前页签的上传类别统计只包含该页签内容。签收文件保存即沿现行逻辑完成对应派送单,全车全部正常签收才汇总配送完成;其他资料后补,不作为完成门禁。车辆与司机审核附件只读回看,油耗图片按车复用车队附加照片、版本及历史;保留原油耗接口的dispatch:list读取、dispatch:edit上传权限,当前排车页面不挂载油耗框,不改变车队原独立权限。外配任务原入口仍只输出五个装车框,但共享记录允许排车入口补充油耗图片;不复制派送签收文件为车队照片,不新增状态或数据库表。
|
||||
资料入口(2026-10-28 最新确认):装车中、装车后从“管理资料”打开整车五类资料;有效排车在派送中从“管理资料”居中弹框进入,签收文件、装车资料两个页签,配送完成列表不再提供“管理资料”入口;2026-10-22 暂隐藏油耗图片上传和展示入口,原图片、版本及历史保留;按本车真实关联派送单及客户范围切换。签收文件与 BOL 复用派送单原附件记录;排车装车资料只维护整车共用的五类资料,不再同时显示另一套派送单装车照片上传框。派送单既有附件仍可从派送单资料入口查看,当前页签的上传类别统计只包含该页签内容。签收文件保存即沿现行逻辑完成对应派送单,全车全部正常签收才汇总配送完成;其他资料后补,不作为完成门禁。车辆与司机审核附件只读回看,油耗图片按车复用车队附加照片、版本及历史;保留原油耗接口的dispatch:list读取、dispatch:edit上传权限,当前排车页面不挂载油耗框,不改变车队原独立权限。外配任务原入口仍只输出五个装车框,但共享记录允许排车入口补充油耗图片;不复制派送签收文件为车队照片,不新增状态或数据库表。
|
||||
|
||||
|
||||
2026-10-21 本轮登记契约:`POST /api/platform/v1/last-leg/dispatches/{dispatchNo}/exceptions`,动作`MARK_EXCEPTION`,`recordVersion/idempotencyKey/exceptionType`必填;`returnDirection/description/imageFileIds`选填。说明最多1000字、图片最多20张;异常图片类型`OVERSEAS_DISPATCH_EXCEPTION_EVIDENCE`,平台0、本车ID归属,非空JPG/PNG、单文件10MiB。主表新增可空`exceptions_json`,与原版本、历史、命令账本同事务保存;代码及基线已准备,未执行SQL或部署。
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
- 排车仅指海外仓送往 FBA/客户仓的真实整车排车主单,一张主单中的多客户只展示一次;已发车按实际起运仓当地日期,未发车按计划日期,取消主单不列入活动安排。日历返回真实排车单号并进入排车详情;独立旧车次不作为日历来源,也不得将内部车次号当排车号拼接路径。读取沿用排车列表权限;从详情可返回原日历日期与月/周视图。港口提柜送海外仓不作为排车类型。
|
||||
- 还柜未完成按原业务截止日期提醒,完成后按实际还柜日期展示;日历不独立计算或改写还柜状态,登记进入原货柜业务。
|
||||
- 用户随后明确恢复日历顶部“新增预约”:本次先支持FBA,普通客户仓不在本次范围。居中弹框选择已有货物,核对真实来源后复用原预约表单与保存接口;同起运仓、同目的FBA仓可跨客户合约,保留原写权限、版本/幂等、未知结果重试及未保存保护。货物查询栏支持可搜索、可清空的目的FBA仓下拉框;选项来自同权限范围的权威美国FBA目录,不从当前分页推算。提交查询后回到第一页,翻页沿用目的仓条件,重置恢复全部目的仓;跨页已选货物仍保留并执行同起运仓、同目的仓校验。保存成功显示真实预约编号及内容,不自动创建车次,不增加第五类日历或手工编造到港/还柜等事实。
|
||||
- 平台新建及重新登记 FBA 送仓预约时均填写已取得的外部约号、确认开始时间和可选结束时间,直接保存正式确认,不再提供“先保存安排,等待对方确认”选项;已有取消、替代和只读记录仍展示真实历史状态。客户、来源版本、目的仓、货物完整性与外部约号唯一性校验继续执行。
|
||||
- 平台新建及重新登记 FBA 送仓预约时填写已取得的外部约号,直接保存正式确认,不再提供“先保存安排,等待对方确认”选项。确认开始、结束时间改为可选;预约列表的新增窗口不再显示这两个输入及其夏令时时差输入,未提供的确认时间保持为空,不从计划日期推造。其他原业务入口补充真实确认时段时仍执行地区时区、夏令时和起止顺序校验;已有取消、替代和只读记录仍展示真实历史状态。货物核对自动展示并带入有效货件号或追踪号:已补录的非空核实值优先,未补录货件时采用同客户原订单资料,只补过箱数的记录不得遮蔽原有编号;原资料确实缺失时仍须补齐。客户、来源版本、目的仓、货物完整性与外部约号唯一性校验继续执行。
|
||||
- 入口移除全局工作待办、流程筛选、负责人分派、跟进、复核、责任交接,以及货物核实/分批/共约/共车编排入口;这些原业务在相应模块继续处理。仍由其他业务页面实际使用的精确来源或事项深链可以打开原业务表单,不恢复旧全局待办及筛选协议。
|
||||
- 排车日历同时返回各排车单货物快照中的关联集装箱号,以及货物通过同客户真实尾程订单关联的原装柜事件中的柜次短号(如 D1821),分别按单去空、去重;同车多个完整柜号、柜次短号均可在当前日历范围搜索,支持忽略大小写的包含匹配,仍只展示一条排车安排。没有装柜来源时不推测短号,也不依赖当月到港记录拼接短号。柜号只作检索和展示,不改变客户归属、货物数量或排车状态。详情明确展示起运仓时区及当地计划出发时间;北京时间与美国当地日期可能跨日,不把浏览器日期用作日历归属。
|
||||
- 缺权限、来源失败或缺时区明确提示数据范围不完整,不能显示为全部完成或完整空日历。未能定位日期的排车提示具体排车单号和原因,避免误认为当前搜索的单据缺资料。未知日期保留未定,不用浏览器当前日期、内部 ID 或假数据补齐。
|
||||
|
||||
Reference in New Issue
Block a user