feat(core): 统一全站时间列加排序并优化司机管理显示
- 所有含时间的列表列(创建时间、更新时间、起止日期等)均增加排序功能,兼顾Avue option和手写el-table-column - 司机管理「姓名身份证号」列拆分为独立的「姓名」「身份证号」两列,分别使用插槽渲染 - 修复车辆/船舶/司机管理「所属组织」列前导空格问题,value 使用无缩进原始标签 - 调整司机管理页到期筛选标签位置,移至搜索菜单行并优化样式,删除过渡占位筛选字段 - 增加组织名称列自定义插槽,去除已入库旧数据的前导空白 - 更新相关样式,删除无用样式代码,增加表格列排序样式支持
This commit is contained in:
@@ -132,6 +132,22 @@
|
|||||||
- 清理不再使用的样式:`.archive-form__group`、`.section-title`、`.section-head`、`.customer-material-section`、`.change-record-section`、`.invoice-form__section-title`、`.score-material-section` 等。
|
- 清理不再使用的样式:`.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)。
|
- 验证:`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 姓名与身份证号拆成两列
|
## 司机管理 /transportCapacity/driver 姓名与身份证号拆成两列
|
||||||
- 需求:列表中原「姓名身份证号」合并列(driverName 列用 `#driverName` 插槽同时显示姓名链接 + 身份证号)拆成「姓名」「身份证号」两个独立列。
|
- 需求:列表中原「姓名身份证号」合并列(driverName 列用 `#driverName` 插槽同时显示姓名链接 + 身份证号)拆成「姓名」「身份证号」两个独立列。
|
||||||
- 改动:
|
- 改动:
|
||||||
|
|||||||
@@ -1808,13 +1808,12 @@
|
|||||||
width="96%"
|
width="96%"
|
||||||
class="business-crud-page__detail-dialog"
|
class="business-crud-page__detail-dialog"
|
||||||
>
|
>
|
||||||
<div v-loading="detailLoading">
|
<div v-loading="detailLoading" class="business-crud-page__detail-content">
|
||||||
<section
|
<section-card
|
||||||
v-for="section in detailSections"
|
v-for="section in detailSections"
|
||||||
:key="section.title"
|
: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 :column="2" border>
|
||||||
<el-descriptions-item
|
<el-descriptions-item
|
||||||
v-for="field in section.fields"
|
v-for="field in section.fields"
|
||||||
@@ -1825,9 +1824,8 @@
|
|||||||
{{ formatDetailValue(detailRow, field[0]) }}
|
{{ formatDetailValue(detailRow, field[0]) }}
|
||||||
</el-descriptions-item>
|
</el-descriptions-item>
|
||||||
</el-descriptions>
|
</el-descriptions>
|
||||||
</section>
|
</section-card>
|
||||||
<section v-if="config.enableTransportPlanForm" class="business-crud-page__detail-section">
|
<section-card v-if="config.enableTransportPlanForm" title="货物信息">
|
||||||
<div class="dialog-section-title">货物信息</div>
|
|
||||||
<el-table :data="transportCargoRows" border empty-text="暂无货物信息">
|
<el-table :data="transportCargoRows" border empty-text="暂无货物信息">
|
||||||
<el-table-column type="index" label="序号" width="70" align="center" />
|
<el-table-column type="index" label="序号" width="70" align="center" />
|
||||||
<el-table-column prop="cargoName" label="货物名称" min-width="180" />
|
<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="deviceCode" label="设备编码" min-width="140" />
|
||||||
<el-table-column prop="remark" label="备注" min-width="160" />
|
<el-table-column prop="remark" label="备注" min-width="160" />
|
||||||
</el-table>
|
</el-table>
|
||||||
</section>
|
</section-card>
|
||||||
<section v-if="config.enableAttachmentTable" class="business-crud-page__detail-section">
|
<section-card v-if="config.enableAttachmentTable" :title="config.attachmentTitle || '附件'">
|
||||||
<div class="dialog-section-title">{{ config.attachmentTitle || '附件' }}</div>
|
|
||||||
<el-table :data="attachmentRows" border empty-text="暂无附件">
|
<el-table :data="attachmentRows" border empty-text="暂无附件">
|
||||||
<el-table-column type="index" label="序号" width="70" align="center" />
|
<el-table-column type="index" label="序号" width="70" align="center" />
|
||||||
<el-table-column label="文件名" min-width="260">
|
<el-table-column label="文件名" min-width="260">
|
||||||
@@ -1857,7 +1854,7 @@
|
|||||||
<el-table-column prop="uploadUserName" label="上传人" width="140" />
|
<el-table-column prop="uploadUserName" label="上传人" width="140" />
|
||||||
<el-table-column prop="uploadTime" label="上传时间" width="180" sortable/>
|
<el-table-column prop="uploadTime" label="上传时间" width="180" sortable/>
|
||||||
</el-table>
|
</el-table>
|
||||||
</section>
|
</section-card>
|
||||||
</div>
|
</div>
|
||||||
<template #footer>
|
<template #footer>
|
||||||
<el-button type="primary" @click="detailBox = false">关闭</el-button>
|
<el-button type="primary" @click="detailBox = false">关闭</el-button>
|
||||||
@@ -9792,24 +9789,28 @@ export default {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
&__detail-section {
|
&__detail-content {
|
||||||
margin-bottom: 20px;
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
gap: 12px;
|
||||||
|
|
||||||
:deep(.el-descriptions__label) {
|
.section-card {
|
||||||
width: 140px;
|
:deep(.el-descriptions__label) {
|
||||||
color: #606266;
|
width: 140px;
|
||||||
font-weight: 600;
|
color: #606266;
|
||||||
text-align: right;
|
font-weight: 600;
|
||||||
}
|
text-align: right;
|
||||||
|
}
|
||||||
|
|
||||||
:deep(.el-descriptions__content) {
|
:deep(.el-descriptions__content) {
|
||||||
min-height: 42px;
|
min-height: 42px;
|
||||||
white-space: pre-wrap;
|
white-space: pre-wrap;
|
||||||
word-break: break-word;
|
word-break: break-word;
|
||||||
}
|
}
|
||||||
|
|
||||||
:deep(.el-table) {
|
:deep(.el-table) {
|
||||||
border-color: #eff1f7;
|
border-color: #eff1f7;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -9899,4 +9900,22 @@ export default {
|
|||||||
.section-card{
|
.section-card{
|
||||||
margin-bottom: 0 !important;
|
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>
|
</style>
|
||||||
|
|||||||
Reference in New Issue
Block a user