165 lines
4.1 KiB
Markdown
165 lines
4.1 KiB
Markdown
|
|
# 流程列表更新时间展示设计文档
|
||
|
|
|
||
|
|
## 1. 背景
|
||
|
|
|
||
|
|
当前流程列表页展示的是“创建时间”,但列表排序语义已经是按 `update_time` 倒序。这会导致页面展示字段与排序依据不一致。
|
||
|
|
|
||
|
|
本次需求是将流程列表中的“创建时间”替换为“更新时间”,并保持列表继续按更新时间排序。
|
||
|
|
|
||
|
|
## 2. 已确认约束
|
||
|
|
|
||
|
|
- 仅调整流程列表页时间列展示
|
||
|
|
- 列表中不同时展示创建时间和更新时间
|
||
|
|
- 后端列表链路继续按 `update_time` 倒序排序
|
||
|
|
- 前端时间列改为展示 `updateTime`
|
||
|
|
- 不修改详情页时间展示逻辑
|
||
|
|
- 文档和计划统一保存在 `doc` 目录
|
||
|
|
|
||
|
|
## 3. 现状分析
|
||
|
|
|
||
|
|
当前列表链路情况如下:
|
||
|
|
|
||
|
|
1. 前端流程列表页时间列文案为“创建时间”
|
||
|
|
2. 前端时间列绑定字段为 `createTime`
|
||
|
|
3. 后端列表专用 SQL 已按 `lpw.update_time DESC` 排序
|
||
|
|
4. 列表专用 VO 当前仅暴露 `createTime`
|
||
|
|
|
||
|
|
因此页面展示与实际排序依据不一致。
|
||
|
|
|
||
|
|
## 4. 方案对比
|
||
|
|
|
||
|
|
### 方案一:前后端统一切换为更新时间
|
||
|
|
|
||
|
|
做法:
|
||
|
|
|
||
|
|
- 前端将时间列文案改为“更新时间”
|
||
|
|
- 前端字段绑定从 `createTime` 改为 `updateTime`
|
||
|
|
- 后端列表专用 VO 增加 `updateTime`
|
||
|
|
- 联表 SQL 返回 `lpw.update_time AS updateTime`
|
||
|
|
- 排序继续保留 `ORDER BY lpw.update_time DESC`
|
||
|
|
|
||
|
|
优点:
|
||
|
|
|
||
|
|
- 展示语义与排序语义完全一致
|
||
|
|
- 改动范围小
|
||
|
|
- 不引入字段语义混乱
|
||
|
|
|
||
|
|
缺点:
|
||
|
|
|
||
|
|
- 无明显缺点
|
||
|
|
|
||
|
|
### 方案二:继续展示创建时间,只补充说明按更新时间排序
|
||
|
|
|
||
|
|
做法:
|
||
|
|
|
||
|
|
- 保持前端展示 `createTime`
|
||
|
|
- 仅在文档或页面认知上说明排序按更新时间进行
|
||
|
|
|
||
|
|
优点:
|
||
|
|
|
||
|
|
- 改动最少
|
||
|
|
|
||
|
|
缺点:
|
||
|
|
|
||
|
|
- 不符合“列表中展示更新时间”的需求
|
||
|
|
- 页面展示和排序逻辑仍不一致
|
||
|
|
|
||
|
|
### 方案三:后端把 `update_time` 映射到 `createTime`
|
||
|
|
|
||
|
|
做法:
|
||
|
|
|
||
|
|
- 前端继续绑定 `createTime`
|
||
|
|
- 后端列表返回时用 `update_time` 填到 `createTime`
|
||
|
|
|
||
|
|
优点:
|
||
|
|
|
||
|
|
- 前端改动更少
|
||
|
|
|
||
|
|
缺点:
|
||
|
|
|
||
|
|
- 字段语义错误
|
||
|
|
- 后续维护容易误解
|
||
|
|
|
||
|
|
## 5. 设计结论
|
||
|
|
|
||
|
|
采用方案一。
|
||
|
|
|
||
|
|
最终实现为:
|
||
|
|
|
||
|
|
- 流程列表页将“创建时间”替换为“更新时间”
|
||
|
|
- 时间列字段绑定改为 `updateTime`
|
||
|
|
- 后端列表专用 VO 补充 `updateTime`
|
||
|
|
- 联表 SQL 返回 `lpw.update_time AS updateTime`
|
||
|
|
- 排序继续按 `lpw.update_time DESC`
|
||
|
|
|
||
|
|
## 6. 后端设计
|
||
|
|
|
||
|
|
### 6.1 返回对象
|
||
|
|
|
||
|
|
列表专用返回对象 `LoanPricingWorkflowListVO` 增加:
|
||
|
|
|
||
|
|
- `private Date updateTime;`
|
||
|
|
|
||
|
|
保留现有字段不变。
|
||
|
|
|
||
|
|
### 6.2 SQL 设计
|
||
|
|
|
||
|
|
在列表专用 SQL 中:
|
||
|
|
|
||
|
|
- 新增 `lpw.update_time AS updateTime`
|
||
|
|
- 保持 `ORDER BY lpw.update_time DESC`
|
||
|
|
|
||
|
|
不修改当前筛选条件。
|
||
|
|
|
||
|
|
## 7. 前端设计
|
||
|
|
|
||
|
|
在 `ruoyi-ui/src/views/loanPricing/workflow/index.vue` 中:
|
||
|
|
|
||
|
|
- 将时间列文案从“创建时间”改为“更新时间”
|
||
|
|
- 将列绑定字段从 `createTime` 改为 `updateTime`
|
||
|
|
- 模板中 `parseTime` 的参数改为 `scope.row.updateTime`
|
||
|
|
|
||
|
|
页面中只保留这一列,不再显示创建时间。
|
||
|
|
|
||
|
|
## 8. 边界与非目标
|
||
|
|
|
||
|
|
本次不包含以下内容:
|
||
|
|
|
||
|
|
- 不新增双时间列展示
|
||
|
|
- 不修改详情页时间展示逻辑
|
||
|
|
- 不修改数据库表结构
|
||
|
|
- 不调整列表筛选项
|
||
|
|
- 不改变分页行为
|
||
|
|
|
||
|
|
## 9. 风险与控制
|
||
|
|
|
||
|
|
风险点主要有两个:
|
||
|
|
|
||
|
|
1. 后端 VO 未补充 `updateTime`,前端会拿不到值
|
||
|
|
2. 前端列头改了但仍绑定 `createTime`,会继续展示旧字段
|
||
|
|
|
||
|
|
控制方式:
|
||
|
|
|
||
|
|
- 同步修改 VO、SQL、前端模板三个位置
|
||
|
|
- 保持排序语句不动,只对齐展示字段
|
||
|
|
- 通过源码检查、后端测试和前端构建做验证
|
||
|
|
|
||
|
|
## 10. 验证方案
|
||
|
|
|
||
|
|
实施后需要完成以下验证:
|
||
|
|
|
||
|
|
1. 前端列表时间列文案为“更新时间”
|
||
|
|
2. 前端列表时间列绑定字段为 `updateTime`
|
||
|
|
3. 后端 `LoanPricingWorkflowListVO` 已定义 `updateTime`
|
||
|
|
4. 后端联表 SQL 已返回 `lpw.update_time AS updateTime`
|
||
|
|
5. 后端模块测试通过
|
||
|
|
6. 前端生产构建通过
|
||
|
|
|
||
|
|
## 11. 实施范围
|
||
|
|
|
||
|
|
- 前端:流程列表页 1 个页面文件
|
||
|
|
- 后端:列表 VO 与联表 SQL
|
||
|
|
- 数据库:无改动
|
||
|
|
|
||
|
|
本次属于列表展示字段与排序语义对齐,不涉及业务流程变更。
|