Enhance recurring investment features and UI components:
- Implement restrictions on the start date selection in the creation form to prevent past dates. - Add order status display in the recent execution records for better visibility. - Introduce system code mapping for order statuses, frequency types, and end types, ensuring multi-language support. - Implement pagination for the investment plans list to improve performance and user experience. - Update internationalization files to include new labels for order status and other UI elements. - Document changes in `IMPACT_ANALYSIS.md` and `TASK_SUMMARY.md` for clarity on the updates.
This commit is contained in:
@@ -1085,3 +1085,153 @@
|
||||
### 5. 验证与测试
|
||||
|
||||
- `npm run build`;表单三种结束类型切换与提交 payload `endType` 符合预期。
|
||||
|
||||
---
|
||||
|
||||
## 补充:开始日期禁选过去日 + 详情执行订单状态列(2026-10-14)
|
||||
|
||||
- **背景与目标**:创建计划开始日期不得早于今天;计划详情最近执行列表展示后端 `orderStatus`。
|
||||
- **涉及模块**:`RecurringInvestmentView.vue`、三语言 `planDetail.colOrderStatus`。
|
||||
- **改动类型**:缺陷修复 / 功能优化(UI)。
|
||||
|
||||
### 2. 方法级改动分析
|
||||
|
||||
| 位置 | 差异 |
|
||||
|------|------|
|
||||
| `disableFormStartDate` / `isStartDateBeforeToday` | 按本地日历日禁用/校验开始日期。 |
|
||||
| 创建表单 `el-date-picker`(startDate) | 绑定 `:disabled-date="disableFormStartDate"`。 |
|
||||
| `validate()` | 开始日期为空或早于今天时 `fieldError.startDate`。 |
|
||||
| 详情 `detail-exec-table` / 移动端卡片 | 末列增加 `colOrderStatus` 与 `row.orderStatus`。 |
|
||||
|
||||
### 3. 调用方与影响范围
|
||||
|
||||
- 仅创建表单与计划详情弹窗展示;**破坏性变更**:否。
|
||||
|
||||
### 4. 风险与回滚
|
||||
|
||||
- **风险级别**:低。
|
||||
- **回滚方式是否简单**:是。
|
||||
|
||||
### 5. 验证与测试
|
||||
|
||||
- `npm run build`;开始日期面板不可点选昨日;详情执行表末列为订单状态。
|
||||
|
||||
---
|
||||
|
||||
## 补充:订单状态系统码展示(2026-10-14)
|
||||
|
||||
- **背景与目标**:计划详情「最近执行」的 `orderStatus` 为系统码 `codeValue`(如 `12`),需通过 `POST /admin/systemCode/getByCodeTypeBatch`(`param: ['OrderStatus']`)映射 `descriptionI18nId`,并结合已有 `systemI18n` 展示当前语言文案。
|
||||
- **涉及模块**:`src/api/systemCode.ts`、`src/stores/systemCode.ts`、`src/composables/useSystemCode.ts`、`RecurringInvestmentView.vue`。
|
||||
- **改动类型**:功能优化(UI)。
|
||||
|
||||
### 2. 方法级改动分析
|
||||
|
||||
| 位置 | 差异 |
|
||||
|------|------|
|
||||
| `getSystemCodeByCodeTypeBatch` | 新增批量查询系统码 API 封装。 |
|
||||
| `useSystemCodeStore.ensureCodeTypes` | 缓存 `OrderStatus` 等 codeType 的 value→i18nId 映射。 |
|
||||
| `useSystemCode().codeLabel` | 解析 codeValue 为服务端多语言文案。 |
|
||||
| `formatOrderStatus` / 详情执行表与移动端卡片 | 原样展示 `row.orderStatus` 改为 `formatOrderStatus`。 |
|
||||
|
||||
### 3. 调用方与影响范围
|
||||
|
||||
- 仅定期投资计划详情弹窗执行记录「订单状态」列;**破坏性变更**:否(无匹配码时仍回退显示原 codeValue)。
|
||||
|
||||
### 4. 风险与回滚
|
||||
|
||||
- **风险级别**:低(依赖 admin 系统码与 base i18n 接口可用性)。
|
||||
- **回滚方式是否简单**:是。
|
||||
|
||||
### 5. 验证与测试
|
||||
|
||||
- `npm run build`;详情执行记录订单状态显示为 i18n 文案而非裸数字码。
|
||||
|
||||
---
|
||||
|
||||
## 补充:定投周期系统码下拉(2026-10-14)
|
||||
|
||||
- **背景与目标**:创建表单「定投周期」选项来自 `getByCodeTypeBatch` 的 `ScheduleInvestmentFrequencyType`(`DAILY` / `WEEKLY` / `MONTHLY`),展示 `descriptionI18nId` 对应服务端多语言;列表/详情/确认预览的周期文案与表单一致。
|
||||
- **涉及模块**:`systemCode` store/composable、`scheduleInvestment.ts` 常量、`RecurringInvestmentView.vue`、`recurringInvestment.ts`(draft `frequencyType`)。
|
||||
- **改动类型**:功能优化(UI)。
|
||||
|
||||
### 2. 方法级改动分析
|
||||
|
||||
| 位置 | 差异 |
|
||||
|------|------|
|
||||
| `useSystemCodeStore` | 按 `sort` 保留系统码条目,提供 `getSortedCodeValues`。 |
|
||||
| `codeSelectOptions` / `codeLabelWithFallback` | 下拉选项与带本地 i18n 回退的文案解析。 |
|
||||
| `frequencyOptions` | 优先系统码列表,接口失败时回退 `FREQUENCY_TYPE_KEYS` + 静态 i18n。 |
|
||||
| `frequencyTypeLabel` | 替换多处 `t('recurring.frequency.*')`。 |
|
||||
| `onMounted` `ensureCodeTypes` | 增加 `ScheduleInvestmentFrequencyType`。 |
|
||||
|
||||
### 3. 调用方与影响范围
|
||||
|
||||
- 创建表单周期下拉、计划列表/详情/确认弹窗周期展示;**破坏性变更**:否(选项 value 仍为 `DAILY` 等 API 枚举)。
|
||||
|
||||
### 4. 风险与回滚
|
||||
|
||||
- **风险级别**:低。
|
||||
- **回滚方式是否简单**:是。
|
||||
|
||||
### 5. 验证与测试
|
||||
|
||||
- `npm run build`;周期下拉为服务端文案;未加载系统码时仍显示静态 i18n。
|
||||
|
||||
---
|
||||
|
||||
## 补充:结束类型系统码下拉(2026-10-14)
|
||||
|
||||
- **背景与目标**:创建表单「结束类型」组合框左侧选项来自 `ScheduleInvestmentEndType`(`NO_END` / `END_DATE` / `COUNT`),展示服务端 i18n;表单内部仍用 `endMode`(`none` / `date` / `count`)与提交逻辑不变。
|
||||
- **涉及模块**:`scheduleInvestment.ts` 常量、`scheduleInvestmentPlanMapper.ts`(`endMode` ↔ API 枚举)、`RecurringInvestmentView.vue`。
|
||||
- **改动类型**:功能优化(UI)。
|
||||
|
||||
### 2. 方法级改动分析
|
||||
|
||||
| 位置 | 差异 |
|
||||
|------|------|
|
||||
| `endModeToScheduleEndType` / `scheduleEndTypeToEndMode` | UI 与 API 结束类型互转。 |
|
||||
| `endModeOptions` | 系统码驱动下拉,`codeValue` 映射为 `endMode`。 |
|
||||
| `endTypeLabel` | 列表/详情/确认中 GTC 等结束类型文案与下拉一致。 |
|
||||
| `ensureCodeTypes` | 增加 `ScheduleInvestmentEndType`。 |
|
||||
|
||||
### 3. 调用方与影响范围
|
||||
|
||||
- 创建表单结束类型选择与相关展示;**破坏性变更**:否。
|
||||
|
||||
### 4. 风险与回滚
|
||||
|
||||
- **风险级别**:低。
|
||||
- **回滚方式是否简单**:是。
|
||||
|
||||
### 5. 验证与测试
|
||||
|
||||
- `npm run build`;结束类型下拉显示服务端文案(如 GTC 对应 `NO_END`)。
|
||||
|
||||
---
|
||||
|
||||
## 补充:我的计划列表分页(2026-10-14)
|
||||
|
||||
- **背景与目标**:「我的定期投资计划」表格/卡片列表对接 `plan/page` 分页,避免一次拉取过多记录。
|
||||
- **涉及模块**:`RecurringInvestmentView.vue`。
|
||||
- **改动类型**:功能优化(UI)。
|
||||
|
||||
### 2. 方法级改动分析
|
||||
|
||||
| 位置 | 差异 |
|
||||
|------|------|
|
||||
| `loadPlans` | 使用 `current` / `size` 请求,写入 `planPageTotal`;支持 `loadPlans(1)` 重置页码。 |
|
||||
| `el-pagination` | 默认每页 10 条,可选 10/20/50;移动端精简 layout。 |
|
||||
| 空状态 | 以 `planPageTotal === 0` 判断无计划。 |
|
||||
|
||||
### 3. 调用方与影响范围
|
||||
|
||||
- 计划列表展示与创建/终止后刷新;**破坏性变更**:否(`runningCount` 仍为当前页内统计,与改前单页数据范围一致)。
|
||||
|
||||
### 4. 风险与回滚
|
||||
|
||||
- **风险级别**:低。
|
||||
- **回滚方式是否简单**:是。
|
||||
|
||||
### 5. 验证与测试
|
||||
|
||||
- `npm run build`;翻页、改每页条数后列表与总数一致;新建计划后回到第 1 页。
|
||||
|
||||
Reference in New Issue
Block a user