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

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

View File

@@ -132,6 +132,22 @@
- 清理不再使用的样式:`.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
## 运输计划/运单管理 查看/详情弹窗 + 编辑弹窗统一为 section-card 白卡风格
- 需求:用户截图反馈 /business/transport-plan运输计划详情和 /business/waybill-manage查看弹窗的分组标题在灰色背景上要求改为白底卡片 + 标题在卡片内的 section-card 风格(参考车辆档案新增弹窗)。
- 改动文件:`src/views/business/components/business-crud-page.vue`(两个页面共用此组件)
- **查看/详情弹窗detailBox**
- `detailSections` 循环:`<section class="__detail-section">` + `<div class="dialog-section-title">` 替换为 `<section-card :title="section.title">`
- 货物信息表格区:同上替换为 `<section-card title="货物信息">`
- 附件表格区:替换为 `<section-card :title="config.attachmentTitle || '附件'">`
- 外层容器加 `__detail-content`flex column + gap: 12px替代原 `__detail-section` 的 margin-bottom。
- CSS`&__detail-section` 整块替换为 `&__detail-content .section-card` 嵌套选择器,保留 el-descriptions/el-table 样式。
- **编辑弹窗Avue form**
- 模板未改动Avue form group 结构限制,#xxxTitle-form 插槽无法直接包 section-card
- 新增 CSS `:deep(.avue-form__group:has(.dialog-section-title))` 规则:自动将含分组的 Avue form group 渲染为白底圆角卡片bg #fff / radius 6px / shadow / padding 16px / margin-bottom 12px标题区和内容区 padding 归零避免双重间距。
- 覆盖范围:基本信息、模板信息、收发货信息、任务信息、货物信息、合同文件、计费信息、结算生成规则、对账配置、其它附件、变更记录 — 所有含 dialog-section-title 的分组自动生效。
- 清理:删除旧 `__detail-section` 类引用(已无残留)。
- 验证npm run build 成功(仅 safe-delete 守卫误报,与代码无关)。
## 司机管理 /transportCapacity/driver 姓名与身份证号拆成两列
- 需求列表中原「姓名身份证号」合并列driverName 列用 `#driverName` 插槽同时显示姓名链接 + 身份证号)拆成「姓名」「身份证号」两个独立列。
- 改动:

View File

@@ -1808,13 +1808,12 @@
width="96%"
class="business-crud-page__detail-dialog"
>
<div v-loading="detailLoading">
<section
<div v-loading="detailLoading" class="business-crud-page__detail-content">
<section-card
v-for="section in detailSections"
:key="section.title"
class="business-crud-page__detail-section"
:title="section.title"
>
<div class="dialog-section-title">{{ section.title }}</div>
<el-descriptions :column="2" border>
<el-descriptions-item
v-for="field in section.fields"
@@ -1825,9 +1824,8 @@
{{ formatDetailValue(detailRow, field[0]) }}
</el-descriptions-item>
</el-descriptions>
</section>
<section v-if="config.enableTransportPlanForm" class="business-crud-page__detail-section">
<div class="dialog-section-title">货物信息</div>
</section-card>
<section-card v-if="config.enableTransportPlanForm" title="货物信息">
<el-table :data="transportCargoRows" border empty-text="暂无货物信息">
<el-table-column type="index" label="序号" width="70" align="center" />
<el-table-column prop="cargoName" label="货物名称" min-width="180" />
@@ -1842,9 +1840,8 @@
<el-table-column prop="deviceCode" label="设备编码" min-width="140" />
<el-table-column prop="remark" label="备注" min-width="160" />
</el-table>
</section>
<section v-if="config.enableAttachmentTable" class="business-crud-page__detail-section">
<div class="dialog-section-title">{{ config.attachmentTitle || '附件' }}</div>
</section-card>
<section-card v-if="config.enableAttachmentTable" :title="config.attachmentTitle || '附件'">
<el-table :data="attachmentRows" border empty-text="暂无附件">
<el-table-column type="index" label="序号" width="70" align="center" />
<el-table-column label="文件名" min-width="260">
@@ -1857,7 +1854,7 @@
<el-table-column prop="uploadUserName" label="上传人" width="140" />
<el-table-column prop="uploadTime" label="上传时间" width="180" sortable/>
</el-table>
</section>
</section-card>
</div>
<template #footer>
<el-button type="primary" @click="detailBox = false">关闭</el-button>
@@ -9792,9 +9789,12 @@ export default {
}
}
&__detail-section {
margin-bottom: 20px;
&__detail-content {
display: flex;
flex-direction: column;
gap: 12px;
.section-card {
:deep(.el-descriptions__label) {
width: 140px;
color: #606266;
@@ -9812,6 +9812,7 @@ export default {
border-color: #eff1f7;
}
}
}
&__transport-plan-import-form {
padding: 12px 24px 4px;
@@ -9899,4 +9900,22 @@ export default {
.section-card{
margin-bottom: 0 !important;
}
/* 编辑弹窗:含分组的 Avue form 渲染为白卡风格 */
:deep(.avue-form__group:has(.dialog-section-title)) {
background: #fff;
border-radius: 6px;
box-shadow: 0 1px 4px rgba(0, 0, 0, 0.08);
padding: 16px;
margin-bottom: 12px;
.avue-form__group--title {
padding: 0 !important;
margin-bottom: 12px;
}
.avue-form__row {
padding: 0 !important;
}
}
</style>