feat(core): 统一全站时间列加排序并优化司机管理显示

- 所有含时间的列表列(创建时间、更新时间、起止日期等)均增加排序功能,兼顾Avue option和手写el-table-column
- 司机管理「姓名身份证号」列拆分为独立的「姓名」「身份证号」两列,分别使用插槽渲染
- 修复车辆/船舶/司机管理「所属组织」列前导空格问题,value 使用无缩进原始标签
- 调整司机管理页到期筛选标签位置,移至搜索菜单行并优化样式,删除过渡占位筛选字段
- 增加组织名称列自定义插槽,去除已入库旧数据的前导空白
- 更新相关样式,删除无用样式代码,增加表格列排序样式支持
This commit is contained in:
2026-08-07 15:11:08 +08:00
parent 5aefa23f50
commit 7fb8113c8e
59 changed files with 216 additions and 81 deletions

View File

@@ -1,5 +1,28 @@
# 2026-08-07 工作日志
## 修复车辆/船舶/司机管理「所属组织」列前导空格
- 症状:车辆管理列表截图中「所属组织」列值左侧有明显缩进空格。
- 根因:组织下拉选项构建时把带层级缩进(全角空格 `' '.repeat(level)`)的字符串同时作为 `label``value`,保存到后端后表格直接回显该值,导致前导空格。
- 改动:
- `src/views/transportCapacity/vehicle.vue``ship.vue``driver.vue`
- `flattenDeptOptions` / `formatDeptOptions``value` 改为无缩进的 `rawLabel``label` 仍保留缩进用于下拉层级展示。
- 表格增加 `#organizationName` 插槽,对 `row.organizationName` 去除前导半角/全角空白,兼容已入库的旧数据。
- `src/option/transportCapacity/transport-vehicle.js``transport-ship.js``driver.js`
- 「所属组织」列增加 `slot: true`,使自定义插槽生效。
- 验证:通过 `git diff` 确认 6 个文件改动正确。
## 调整司机管理到期筛选标签位置
- 需求:截图反馈司机管理页「全部 / 30天内到期 / 已到期」三个筛选标签放在搜索表单右侧,占位突兀,希望与搜索/重置按钮同排或放到更合适位置。
- 方案:参考 `business-crud-page.vue``#search-menu` 插槽,把筛选标签移到搜索菜单行(搜索/重置按钮同一排),标签居左、按钮居右。
- 改动:
- `src/views/transportCapacity/driver.vue`
- `#expireStatus-search` 插槽改为 `#search-menu` 插槽。
- `.driver-page__expiry-tags` 增加 `order: -1``margin-right: auto``min-width: 0`,移除 `width: 100%` 和不再需要的响应式媒体查询。
- `src/option/transportCapacity/driver.js`
- 删除仅作为占位用的 `expireStatus` 隐藏搜索字段(`search: true``searchSpan: 6` 等)。
- 说明:筛选逻辑仍通过 `query.expireStatus` + `handleExpireChange` 工作,不受字段删除影响;车辆/船舶管理页有相同布局,如需统一可复用该改法。
- 验证:通过 `git diff` 确认改动正确。
## 运输计划调度弹窗恢复左右分栏布局
- 需求:客户提供「计划详情」参考截图,要求调度弹窗改回「左侧基本信息卡 + 右侧收发货路线卡」的左右分栏布局。
- 改动:`src/views/business/components/business-crud-page.vue`
@@ -108,3 +131,27 @@
- 评分详情弹窗的「证明材料」改为 `<section-card title="证明材料" class="score-material-card">`
- 清理不再使用的样式:`.archive-form__group``.section-title``.section-head``.customer-material-section``.change-record-section``.invoice-form__section-title``.score-material-section` 等。
- 验证:`npm run build` 成功exit code 0
## 司机管理 /transportCapacity/driver 姓名与身份证号拆成两列
- 需求列表中原「姓名身份证号」合并列driverName 列用 `#driverName` 插槽同时显示姓名链接 + 身份证号)拆成「姓名」「身份证号」两个独立列。
- 改动:
- `src/option/transportCapacity/driver.js`
-`label: '姓名身份证号'` 列改为 `label: '姓名'`minWidth 120保留 slot/searchsearchOrder 7 不变)。
- 新增独立「身份证号」列(`prop: 'idCardNo'``search: true``searchOrder: 2``slot: true``minWidth: 180`),并上移到 `driverName` 之后,使其紧邻「姓名」列(表格列顺序 = 数组顺序,`searchOrder` 仅控制搜索表单顺序,互不影响)。
-`idCardNo` 隐藏搜索列(`hide: true`)被该新列取代后删除重复定义。
- `src/views/transportCapacity/driver.vue`
- `#driverName` 插槽只保留姓名链接(去掉原内联的身份证号 `<span>`)。
- 新增 `#idCardNo` 插槽显示 `row.idCardNo || '-'`(空值显示横杠)。
- 删除不再使用的 `.driver-page__identity` 样式块。
- 验证:`node --check` 选项文件语法通过;`npm run build` 仅因环境 safe-delete 守卫拦截清空 dist与代码无关未报任何 transform/parse 错误。
## 全站时间列统一加排序(参考 /base/cargo-type
- 需求:用户截图 /business/contract-manage 页面,要求「有时间的都加一个排序」,参考 /base/cargo-type该页面 createTime/updateTime 已设 `sortable: true`)。
- 方案Avue 列加 `sortable: true`;手写 `<el-table-column>``sortable` 属性。精确匹配时间相关 label/prop排除 `hide: true` 的搜索专用字段。
- 精确匹配范围:创建/更新时间、开始/结束日期、生效/失效日期、计划/实际/预计日期时间、审核/上传/变更/评分/调度日期时间、事故/检测/有效截止日期、入口/出口/交易/费用/换胎/出厂/维修/保养时间、登录/申请/提交/操作/触发/过期/日志/记录时间等。
- 改动文件(共 53 个):
- **src/option18 个)**base/common-address.js、business/common.js、business/contract-manage.js、business/project-apply.js、business/transport-plan.js、business/waybill-manage.js、system/authlog.js、transportCapacity/driver.js、vehicle/accident-record.js、vehicle/annual-inspection-record.js、vehicle/etc-record.js、vehicle/equipment-ledger.js、vehicle/insurance-record.js、vehicle/mileage-record.js、vehicle/oil-electric-record.js、vehicle/other-expense-record.js、vehicle/tire-replacement-record.js、vehicle/transport-change-record.js。
- **src/views 内联 Avue option30 个)**flow/follow.vue、flow/manager.vue、flow/model.vue、desk/notice.vue、desk/notice-composition.vue、report/reportlist.vue、work/done.vue、work/todo.vue、work/start.vue、work/claim.vue、work/send.vue、authority/ratelimit.vue、authority/apikey.vue、monitor/log/api.vue、monitor/log/usual.vue、monitor/log/error.vue、base/railway-station.vue、base/airport-master.vue、base/currency.vue、base/customer-type.vue、base/fee-item.vue、base/port-terminal.vue、data/record.vue、util/form.vue、util/table.vue、system/tenant.vue、vehicle/maintenance-plan.vue、vehicle/maintenance-record.vue、vehicle/credit-score-quantification.vue、vehicle/customer-archive.vue。
- **src/views 手写 el-table6 个)**system/dept.vue、business/loading-manage.vue、business/components/waybill-import-dialog.vue、business/project-apply.vue、vehicle/customer-archive.vue、business/components/business-crud-page.vue。
- 注意:弹窗内子表(如合同变更记录、项目附件/变更、客商档案评分/材料/变更记录等时间列也一并加了排序util/form.vue、util/table.vue 为示例页同样处理。
- 验证:`npm run build` 成功exit code 0构建日志中的 CSS `*` 告警为历史既有,与本次无关。