Files
shanxia2.0/docs/superpowers/plans/2026-09-08-pl-date-column-sort.md
T

40 lines
1.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 运输管理日期列头双三角排序 Implementation Plan
> **For agentic workers:** REQUIRED SUB-SKILL: Use superpowers:executing-plans or subagent-driven-development.
**Goal:** 方案 A 范围内 PL 列表 datetime 列双三角整库排序。
**Architecture:** `useColumnSort` + `ColumnHeaderFilter` inject;`pl/list_sort.py` + 各 list/export `order_by`。
**Spec:** `docs/superpowers/specs/2026-09-08-pl-date-column-sort-design.md`
---
### Task 1: `list_sort` + 单测
Create `backend/app/services/pl/list_sort.py`:
- `PLAN_WHITELIST = {"planDate": PlPlan.plan_date}`
- `REMINDER_WHITELIST = {"expireDate": PlDocumentReminder.expire_date}`
- `MAINT_APPLY_WHITELIST = {"applyDate": PlVehicleMaintenanceApply.apply_date}`
- `MAINT_BOARD_WHITELIST = {applyDate→apply.apply_date, processDate→process.process_date}`
- `RECHARGE_APPLY_WHITELIST = {"applyDate": PlVehicleRechargeApply.apply_date}`
- `RECHARGE_BOARD_WHITELIST = {applyDate→apply.apply_date, rechargeDate→record.recharge_date}`
- `order_plan` / `order_reminder` / `order_maint_apply` / `order_maint_board` / `order_recharge_apply` / `order_recharge_board` + `parse_sort_params`
- Tests in `backend/tests/test_pl_list_sort.py`
### Task 2: 后端接线
- `api/pl/plan.py` list + export:`order_plan`
- `services/pl_plan_contract_gap.py`:`order_plan`(替换硬编码 plan_date.desc 当有 sort)
- `api/pl/inventory.py` `_query_document_reminders`:`order_reminder`
- `pl_vehicle_maintenance_service` list_applies / list_process_board + API merge params
- `pl_vehicle_recharge_service` list_applies / list_disburse_board + API merge params
- Export bodies:`sortField`/`sortOrder`(extra=allow 亦可)
### Task 3: 前端 9 页接线
每页:`useColumnSort`、`provide('crmColumnSort')`、`watchSortVisibleColumns`、`build*Query`/`export` 合并 `toSortQueryParams()`。
### Task 4: 回归
`pytest tests/test_pl_list_sort.py`;`./scripts/update-graph.sh all`;提交。