style(ui): 统一全站 el-table 表头背景色及弹窗卡片化风格

- 将所有 el-table 表头背景色统一设为浅灰 #fafafa,覆盖普通表格、avue-crud 和固定列
- 移除业务组件内冗余的表头样式,改由全局样式统一控制
- 调整多处弹窗(预结算单、正式结算单、运输对账单、应收明细等)内容板块,改用全局 section-card 组件实现白底卡片分组
- 为多个弹窗内的搜索区域增加白底、圆角和阴影样式,提升视觉层次感
- 缩减多处表格“操作”列宽度以适配新布局
- 付款申请弹窗按钮由主色调 primary 改为 success,符合全站按钮风格规范
- 统一调整弹窗内表单、按钮、间距及背景细节,改善界面体验和视觉一致性
This commit is contained in:
2026-08-20 14:47:29 +08:00
parent f6b05ed71d
commit 8f35e6b265
12 changed files with 250 additions and 191 deletions
+83
View File
@@ -17,3 +17,86 @@
- 调整文件:`src/views/business/components/business-crud-page.vue` - 调整文件:`src/views/business/components/business-crud-page.vue`
- 修改内容:在“计划调度”弹窗的待调度列表 `el-table` 上增加 `:header-cell-style="{ background: '#fafafa' }"`,将表头背景由白色改为浅灰。 - 修改内容:在“计划调度”弹窗的待调度列表 `el-table` 上增加 `:header-cell-style="{ background: '#fafafa' }"`,将表头背景由白色改为浅灰。
- 原因:用户反馈 `/business/transport-plan` 页面白色表头需统一改为灰色 `#fafafa` - 原因:用户反馈 `/business/transport-plan` 页面白色表头需统一改为灰色 `#fafafa`
## 运单管理货物信息表头背景色调整
- 调整文件:`src/views/business/components/business-crud-page.vue`
- 修改内容:在 `goodsJson-form` 货物信息表格上增加 `:header-cell-style="{ background: '#fafafa' }"`,表头背景改为浅灰。
- 原因:用户反馈 `/business/waybill-manage` 页面货物信息表头需统一改为灰色 `#fafafa`
## 全站 el-table 表头背景色统一
- 调整文件:`src/styles/element-ui.scss`(修改原仅限 `.avue-crud` 的表头规则)
- 修改内容:将表头背景规则扩展为全站 `.el-table` 表头(含普通表格、avue-crud、固定列),统一 `background-color: #fafafa !important`
- 连带清理:移除 `business-crud-page.vue` 中两处冗余的 `:header-cell-style="{ background: '#fafafa' }"`(调度表、货物表),改由全局规则兜底。
- 影响:`/business/loading-manage``/business/waybill-manage``/business/transport-plan` 以及全站所有白色 el-table 表头均统一为 `#fafafa``!important` 同时覆盖了部分组件内 scoped 设定的 `#f5f7fa` 表头背景。
## 应收明细调整费用弹窗按钮间距
- 调整文件:`src/views/settlement/receivable-payable-detail.vue`
- 修改内容:为“调整费用”弹窗内的 `.settlement-detail-page__adjust-toolbar` 增加 `margin-bottom: 16px`,让“新增费用项”按钮与下方表格拉开间距。
- 原因:用户反馈 `/settlement/receivable-detail` 页面调整费用弹窗中“新增费用项”按钮与表格贴得太近。
## 应收明细生成费用弹窗搜索区域加白底
- 调整文件:`src/views/settlement/receivable-payable-detail.vue`
- 修改内容:为“生成费用”弹窗内的搜索 `el-form` 增加 class `settlement-detail-page__generate-search`,设置白底、圆角 6px、轻阴影,并与下方表格保留 16px 间距。
- 原因:用户反馈 `/settlement/receivable-detail` 页面生成费用弹窗中搜索区域缺少白底卡片效果。
## 应收明细更新费用弹窗表单加白底
- 调整文件:`src/views/settlement/receivable-payable-detail.vue`
- 修改内容:为“更新费用”弹窗的 `.settlement-detail-page__dialog-form` 增加白底、圆角 6px、轻阴影;将 padding 由 `16px 20px 0` 改为 `16px 20px`,并去掉最后一个表单项的底部外边距。
- 原因:用户反馈 `/settlement/receivable-detail` 页面更新费用弹窗中表单区域缺少白底卡片效果。
## 应收明细批量转结算弹窗搜索区域加白底
- 调整文件:`src/views/settlement/receivable-payable-detail.vue`
- 修改内容:为“批量转结算”弹窗的 `.settlement-detail-page__transfer-form` 搜索区域增加白底、圆角 6px、轻阴影,并保留与下方表格 16px 间距。
- 原因:用户反馈 `/settlement/receivable-detail` 页面批量转结算弹窗中搜索区域缺少白底卡片效果。
## 预结算单编辑弹窗改白底卡片分组
- 调整文件:`src/views/settlement/components/pre-settlement-editor.vue`
- 修改内容:将“新增/编辑预结算单”弹窗内的全部板块由自定义 `dialog-section-title` + `<section>` 改为全局 `<section-card>` 组件,包括:结算基本信息、结算合计、结算明细、附件、预付信息(readonly)、变更记录(readonly)。结算合计/结算明细头部右侧按钮改为 section-card 的 `#extra` 插槽;删除了不再使用的 `.pre-settlement-editor__section``.pre-settlement-editor__section-head` 样式,并去掉了 `.pre-settlement-editor__form` 多余的 `margin-top`
- 间距:卡片间距沿用全局 `.section-card``margin-bottom: 12px`(符合用户要求)。候选弹窗(添加应收应付明细)的 `dialog-section-title` 保持不变。
- 原因:用户要求预结算单弹窗各板块使用白底卡片分隔,统一项目视觉规范。
## 应收明细详情弹窗 tabs 内容区背景改白
- 调整文件:`src/views/settlement/receivable-payable-detail.vue`
- 修改内容:在 scoped 样式末尾新增 `.settlement-detail-dialog` 规则块,对 `:deep(.el-tabs__content)` 设置 `background: #fff; padding: 16px; border-radius: 0 0 6px 6px;``:deep(.el-tab-pane)` 设为透明。
- 原因:全局 `.el-dialog__body { background: #f5f6fa }` 灰底透到 tabs 内容区(费用明细/变更记录),用户要求改为白色背景。
## 预结算单打印弹窗白底卡片化
- 调整文件:`src/views/settlement/pre-settlement.vue`
- 修改内容:将“打印”弹窗内的手写 `.dialog-section-title` + 普通 `el-form` 改为全局 `<section-card title="选择打印模板">` 包裹表单;为打印弹窗增加 `class="pre-settlement-print-dialog"`;删除页面底部不再使用的 `.dialog-section-title` 样式块,并去掉 `.pre-settlement-page__print-form``margin-top`
- 原因:用户要求 `/settlement/pre-settlement` 打印弹窗按项目规范使用白底卡片分组,与预结算单编辑弹窗风格统一。
## 正式结算付款申请弹窗白底卡片化
- 调整文件:`src/views/settlement/formal-settlement.vue`
- 修改内容:将“付款申请”弹窗内的普通 `el-form` 改为全局 `<section-card title="付款信息">` 包裹;为弹窗增加 `class="formal-payment-dialog"`;按全站按钮规范将“提交”按钮由 `type="primary"` 改为 `type="success"`
- 原因:用户要求 `/settlement/formal-settlement` 付款申请弹窗使用白底卡片分组,并与项目统一按钮风格对齐。
## 正式结算单编辑弹窗改白底卡片分组
- 调整文件:`src/views/settlement/components/formal-settlement-editor.vue`
- 修改内容:将“新增/编辑正式结算单”弹窗内的全部板块由 `dialog-section-title` + `<section>` 改为全局 `<section-card>` 组件,包括:结算基本信息、来源预结算单、结算明细、附件、付款信息(readonly)。“来源预结算单”头部按钮改为 section-card 的 `#extra` 插槽;删除了不再使用的 `.formal-editor__section``.formal-editor__section-head` 样式。
- 间距:沿用全局 `.section-card``margin-bottom: 12px`
- 原因:用户要求 `/settlement/formal-settlement` 页面与预结算单弹窗统一使用白底卡片分隔。
## 正式结算选择预结算单/选择结算明细弹窗搜索区白底
- 调整文件:`src/views/settlement/components/formal-settlement-editor.vue`
- 修改内容:为"选择预结算单"和"选择结算明细"两个弹窗内的搜索 `el-form` 分别增加 class `formal-editor__candidate-search` / `formal-editor__detail-search`,统一样式:白底、圆角 6px、12px 内边距、16px 底间距、轻阴影。
- 原因:用户反馈 `/settlement/formal-settlement` 页面"选择预结算单"弹窗搜索区域缺少白底卡片效果。
## 运输对账单编辑弹窗改白底卡片分组
- 调整文件:`src/views/settlement/components/transport-reconciliation-editor.vue`
- 修改内容:将"新增/编辑运输对账单"弹窗内的全部板块由 `dialog-section-title` + `<section>` 改为全局 `<section-card>` 组件,包括:导入外部账单与内部账单核对、内部账单、导入外部账单、操作说明。"导入外部账单"头部按钮改为 section-card 的 `#extra` 插槽;删除了不再使用的 `.reconciliation-editor__section``.reconciliation-editor__section-head` 样式。
- 间距:沿用全局 `.section-card``margin-bottom: 12px`
- 验证:已通过 SFC 解析与模板编译检查。
- 原因:用户要求 `/settlement/transport-reconciliation` 页面与预结算单/正式结算单弹窗统一使用白底卡片分隔。
+5 -5
View File
@@ -598,11 +598,11 @@
border-color: #eff1f7; border-color: #eff1f7;
} }
// 统一 avue-crud 表头背景色 // 统一全站 el-table 表头背景色为浅灰 #fafafa(普通表格、avue-crud、固定列均覆盖)
.avue-crud .el-table th.el-table__cell, .el-table .el-table__header-wrapper th.el-table__cell,
.avue-crud .el-table__header-wrapper tr th.el-table-fixed-column--left, .el-table .el-table__header-wrapper tr th.el-table-fixed-column--left,
.avue-crud .el-table__header-wrapper tr th.el-table-fixed-column--right { .el-table .el-table__header-wrapper tr th.el-table-fixed-column--right {
background-color: #fafafa; background-color: #fafafa !important;
} }
// 统一 avue-crud 偶数行背景色 // 统一 avue-crud 偶数行背景色
@@ -3774,7 +3774,6 @@
height="100%" height="100%"
row-key="_key" row-key="_key"
class="business-crud-page__dispatch-table" class="business-crud-page__dispatch-table"
:header-cell-style="{ background: '#fafafa' }"
> >
<el-table-column type="index" label="序号" width="70" align="center" fixed="left" /> <el-table-column type="index" label="序号" width="70" align="center" fixed="left" />
<el-table-column label="运输方式" min-width="180" align="center" show-overflow-tooltip> <el-table-column label="运输方式" min-width="180" align="center" show-overflow-tooltip>
@@ -1,8 +1,7 @@
<template> <template>
<el-dialog v-model="visible" :title="title" width="96%" top="2vh" append-to-body destroy-on-close> <el-dialog v-model="visible" :title="title" width="96%" top="2vh" append-to-body destroy-on-close>
<div v-loading="loading" class="formal-editor"> <div v-loading="loading" class="formal-editor">
<section class="formal-editor__section"> <section-card title="结算基本信息">
<div class="dialog-section-title">结算基本信息</div>
<el-form <el-form
ref="formRef" ref="formRef"
:model="form" :model="form"
@@ -64,11 +63,10 @@
</el-col> </el-col>
</el-row> </el-row>
</el-form> </el-form>
</section> </section-card>
<section class="formal-editor__section"> <section-card title="来源预结算单">
<div class="formal-editor__section-head"> <template #extra>
<div class="dialog-section-title">来源预结算单</div>
<div class="formal-editor__actions"> <div class="formal-editor__actions">
<el-button v-if="editable" type="primary" plain @click="openCandidateDialog" <el-button v-if="editable" type="primary" plain @click="openCandidateDialog"
>选择预结算单</el-button >选择预结算单</el-button
@@ -77,7 +75,7 @@
>选择结算明细</el-button >选择结算明细</el-button
> >
</div> </div>
</div> </template>
<el-table :data="sources" border> <el-table :data="sources" border>
<el-table-column type="index" label="序号" width="64" align="center" /> <el-table-column type="index" label="序号" width="64" align="center" />
<el-table-column <el-table-column
@@ -97,10 +95,9 @@
> >
</el-table-column> </el-table-column>
</el-table> </el-table>
</section> </section-card>
<section v-if="details.length" class="formal-editor__section"> <section-card v-if="details.length" title="结算明细">
<div class="dialog-section-title">结算明细</div>
<el-table :data="details" border> <el-table :data="details" border>
<el-table-column type="index" label="序号" width="64" fixed="left" align="center" /> <el-table-column type="index" label="序号" width="64" fixed="left" align="center" />
<el-table-column <el-table-column
@@ -131,10 +128,9 @@
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
</section> </section-card>
<section class="formal-editor__section"> <section-card title="附件">
<div class="dialog-section-title">附件</div>
<vehicle-attachment-upload <vehicle-attachment-upload
v-model="attachments" v-model="attachments"
:readonly="!editable" :readonly="!editable"
@@ -143,10 +139,9 @@
:max-size="500" :max-size="500"
:file-types="attachmentFileTypes" :file-types="attachmentFileTypes"
/> />
</section> </section-card>
<section v-if="readonly && payments.length" class="formal-editor__section"> <section-card v-if="readonly && payments.length" title="付款信息">
<div class="dialog-section-title">付款信息</div>
<el-table :data="payments" border> <el-table :data="payments" border>
<el-table-column type="index" label="序号" width="64" align="center" /> <el-table-column type="index" label="序号" width="64" align="center" />
<el-table-column <el-table-column
@@ -167,7 +162,7 @@
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
</section> </section-card>
</div> </div>
<template #footer> <template #footer>
<el-button @click="visible = false">取消</el-button> <el-button @click="visible = false">取消</el-button>
@@ -177,7 +172,7 @@
</template> </template>
<el-dialog v-model="candidate.visible" title="选择预结算单" width="88%" append-to-body> <el-dialog v-model="candidate.visible" title="选择预结算单" width="88%" append-to-body>
<el-form :model="candidate.query" inline label-position="right" label-width="160px"> <el-form :model="candidate.query" inline label-position="right" label-width="160px" class="formal-editor__candidate-search">
<el-form-item label="预结算单号" <el-form-item label="预结算单号"
><el-input v-model="candidate.query.preSettlementNo" clearable ><el-input v-model="candidate.query.preSettlementNo" clearable
/></el-form-item> /></el-form-item>
@@ -227,7 +222,7 @@
</el-dialog> </el-dialog>
<el-dialog v-model="detailCandidate.visible" title="选择结算明细" width="92%" append-to-body> <el-dialog v-model="detailCandidate.visible" title="选择结算明细" width="92%" append-to-body>
<el-form :model="detailCandidate.query" inline label-position="right" label-width="160px"> <el-form :model="detailCandidate.query" inline label-position="right" label-width="160px" class="formal-editor__detail-search">
<el-form-item label="批次号" <el-form-item label="批次号"
><el-input v-model="detailCandidate.query.batchNo" clearable ><el-input v-model="detailCandidate.query.batchNo" clearable
/></el-form-item> /></el-form-item>
@@ -725,15 +720,6 @@ export default {
</script> </script>
<style scoped lang="scss"> <style scoped lang="scss">
.formal-editor__section {
margin-bottom: 24px;
}
.formal-editor__section-head {
display: flex;
align-items: center;
justify-content: space-between;
margin-bottom: 12px;
}
.formal-editor__actions { .formal-editor__actions {
display: flex; display: flex;
gap: 8px; gap: 8px;
@@ -761,4 +747,13 @@ export default {
.formal-editor__adjust-reason { .formal-editor__adjust-reason {
margin-top: 16px; margin-top: 16px;
} }
/* 选择预结算单 / 选择结算明细 弹窗搜索区白底 */
.formal-editor__candidate-search,
.formal-editor__detail-search {
background: #fff;
border-radius: 6px;
padding: 12px;
margin-bottom: 16px;
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
}
</style> </style>
@@ -10,7 +10,7 @@
@closed="handleClosed" @closed="handleClosed"
> >
<div v-loading="loading" class="pre-settlement-editor__content"> <div v-loading="loading" class="pre-settlement-editor__content">
<div class="dialog-section-title">结算基本信息</div> <section-card title="结算基本信息">
<el-form <el-form
ref="formRef" ref="formRef"
:model="form" :model="form"
@@ -81,14 +81,14 @@
</el-col> </el-col>
</el-row> </el-row>
</el-form> </el-form>
</section-card>
<section class="pre-settlement-editor__section"> <section-card title="结算合计">
<div class="pre-settlement-editor__section-head"> <template #extra>
<div class="dialog-section-title">结算合计</div>
<el-button v-if="editable" type="primary" plain @click="addSummaryFee"> <el-button v-if="editable" type="primary" plain @click="addSummaryFee">
添加费用 添加费用
</el-button> </el-button>
</div> </template>
<el-table :data="summaryFees" border> <el-table :data="summaryFees" border>
<el-table-column type="index" label="序号" width="64" align="center" /> <el-table-column type="index" label="序号" width="64" align="center" />
<el-table-column <el-table-column
@@ -161,11 +161,10 @@
<div class="pre-settlement-editor__summary-total"> <div class="pre-settlement-editor__summary-total">
合计{{ formatMoney(summaryTotal, form.currency) }} 合计{{ formatMoney(summaryTotal, form.currency) }}
</div> </div>
</section> </section-card>
<section class="pre-settlement-editor__section"> <section-card title="结算明细">
<div class="pre-settlement-editor__section-head"> <template #extra>
<div class="dialog-section-title">结算明细</div>
<div class="pre-settlement-editor__section-actions"> <div class="pre-settlement-editor__section-actions">
<el-button <el-button
v-if="hasPermission('pre_settlement_export')" v-if="hasPermission('pre_settlement_export')"
@@ -182,7 +181,7 @@
{{ detailCollapsed ? '展开明细' : '收起明细' }} {{ detailCollapsed ? '展开明细' : '收起明细' }}
</el-button> </el-button>
</div> </div>
</div> </template>
<el-form <el-form
:model="detailQuery" :model="detailQuery"
inline inline
@@ -284,12 +283,9 @@
</el-table-column> </el-table-column>
</el-table> </el-table>
</div> </div>
</section> </section-card>
<section class="pre-settlement-editor__section"> <section-card title="附件">
<div class="pre-settlement-editor__section-head">
<div class="dialog-section-title">附件</div>
</div>
<div class="pre-settlement-editor__attachment"> <div class="pre-settlement-editor__attachment">
<div class="pre-settlement-editor__attachment-actions"> <div class="pre-settlement-editor__attachment-actions">
<vehicle-attachment-upload <vehicle-attachment-upload
@@ -344,10 +340,9 @@
</el-table-column> </el-table-column>
</el-table> </el-table>
</div> </div>
</section> </section-card>
<section v-if="form.id && readonly" class="pre-settlement-editor__section"> <section-card v-if="form.id && readonly" title="预付信息">
<div class="dialog-section-title">预付信息</div>
<el-table :data="advances" border> <el-table :data="advances" border>
<el-table-column type="index" label="序号" width="64" align="center" /> <el-table-column type="index" label="序号" width="64" align="center" />
<el-table-column <el-table-column
@@ -370,10 +365,9 @@
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
</section> </section-card>
<section v-if="form.id && readonly" class="pre-settlement-editor__section"> <section-card v-if="form.id && readonly" title="变更记录">
<div class="dialog-section-title">变更记录</div>
<el-table :data="changeRecords" border> <el-table :data="changeRecords" border>
<el-table-column type="index" label="序号" width="64" align="center" /> <el-table-column type="index" label="序号" width="64" align="center" />
<el-table-column <el-table-column
@@ -391,7 +385,7 @@
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
</section> </section-card>
</div> </div>
<template #footer> <template #footer>
@@ -1317,12 +1311,9 @@ export default {
&__content { &__content {
max-height: 82vh; max-height: 82vh;
overflow-y: auto; overflow-y: auto;
padding: 4px 12px 16px;
} }
&__form { &__form {
margin-top: 12px;
:deep(.el-select), :deep(.el-select),
:deep(.el-date-editor), :deep(.el-date-editor),
:deep(.el-input-number) { :deep(.el-input-number) {
@@ -1330,17 +1321,6 @@ export default {
} }
} }
&__section {
margin-top: 20px;
}
&__section-head {
display: flex;
align-items: center;
justify-content: space-between;
margin-bottom: 12px;
}
&__section-actions, &__section-actions,
&__links { &__links {
display: flex; display: flex;
@@ -1,8 +1,7 @@
<template> <template>
<el-dialog v-model="visible" :title="title" width="94%" top="3vh" append-to-body destroy-on-close> <el-dialog v-model="visible" :title="title" width="94%" top="3vh" append-to-body destroy-on-close>
<div v-loading="loading" class="settlement-adjustment-editor"> <div v-loading="loading" class="settlement-adjustment-editor">
<section class="settlement-adjustment-editor__section"> <section-card title="基本信息">
<div class="dialog-section-title">基本信息</div>
<el-form <el-form
ref="formRef" ref="formRef"
:model="form" :model="form"
@@ -57,11 +56,10 @@
> >
</el-row> </el-row>
</el-form> </el-form>
</section> </section-card>
<section class="settlement-adjustment-editor__section"> <section-card title="调整费用">
<div class="settlement-adjustment-editor__section-head"> <template #extra>
<div class="dialog-section-title">调整费用</div>
<el-button <el-button
v-if="editable && form.formalSettlementId" v-if="editable && form.formalSettlementId"
type="primary" type="primary"
@@ -69,7 +67,7 @@
@click="openFeeDialog" @click="openFeeDialog"
>添加费用</el-button >添加费用</el-button
> >
</div> </template>
<el-table :data="details" border> <el-table :data="details" border>
<el-table-column type="index" label="序号" width="64" align="center" /><el-table-column <el-table-column type="index" label="序号" width="64" align="center" /><el-table-column
prop="feeType" prop="feeType"
@@ -141,7 +139,7 @@
}}</strong }}</strong
>调整后结算金额<strong>{{ formatMoney(form.adjustedSettlementAmount) }}</strong> >调整后结算金额<strong>{{ formatMoney(form.adjustedSettlementAmount) }}</strong>
</div> </div>
</section> </section-card>
</div> </div>
<template #footer <template #footer
><el-button @click="visible = false">取消</el-button ><el-button @click="visible = false">取消</el-button
@@ -354,15 +352,6 @@ export default {
</script> </script>
<style scoped lang="scss"> <style scoped lang="scss">
.settlement-adjustment-editor__section {
margin-bottom: 24px;
}
.settlement-adjustment-editor__section-head {
display: flex;
align-items: center;
justify-content: space-between;
margin-bottom: 12px;
}
.settlement-adjustment-editor__summary { .settlement-adjustment-editor__summary {
padding: 12px 0; padding: 12px 0;
text-align: right; text-align: right;
@@ -379,18 +368,4 @@ export default {
.negative { .negative {
color: #f56c6c; color: #f56c6c;
} }
.dialog-section-title {
display: flex;
align-items: center;
min-height: 22px;
font-size: 16px;
font-weight: 600;
}
.dialog-section-title::before {
width: 4px;
height: 18px;
margin-right: 8px;
background: #409eff;
content: '';
}
</style> </style>
@@ -1,8 +1,7 @@
<template> <template>
<el-dialog v-model="visible" :title="title" width="98%" top="2vh" append-to-body destroy-on-close> <el-dialog v-model="visible" :title="title" width="98%" top="2vh" append-to-body destroy-on-close>
<div v-loading="loading" class="reconciliation-editor"> <div v-loading="loading" class="reconciliation-editor">
<section class="reconciliation-editor__section"> <section-card title="导入外部账单,与内部账单核对">
<div class="dialog-section-title">导入外部账单与内部账单核对</div>
<el-form <el-form
ref="formRef" ref="formRef"
:model="form" :model="form"
@@ -61,10 +60,9 @@
</el-col> </el-col>
</el-row> </el-row>
</el-form> </el-form>
</section> </section-card>
<section class="reconciliation-editor__section"> <section-card title="内部账单">
<div class="dialog-section-title">内部账单</div>
<div class="reconciliation-editor__stats"> <div class="reconciliation-editor__stats">
<div class="stat-card"> <div class="stat-card">
<b>{{ form.internalBillCount || 0 }}</b <b>{{ form.internalBillCount || 0 }}</b
@@ -149,11 +147,10 @@
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
</section> </section-card>
<section class="reconciliation-editor__section"> <section-card title="导入外部账单">
<div class="reconciliation-editor__section-head"> <template #extra>
<div class="dialog-section-title">导入外部账单</div>
<div class="reconciliation-editor__actions" v-if="editable"> <div class="reconciliation-editor__actions" v-if="editable">
<el-button type="primary" plain @click="downloadTemplate('vehicle')" <el-button type="primary" plain @click="downloadTemplate('vehicle')"
>下载整车对账模板</el-button >下载整车对账模板</el-button
@@ -171,7 +168,7 @@
@change="handleImport" @change="handleImport"
/> />
</div> </div>
</div> </template>
<el-tabs v-model="externalTab"> <el-tabs v-model="externalTab">
<el-tab-pane :label="`导入明细(${externalDetails.length}`" name="all" /> <el-tab-pane :label="`导入明细(${externalDetails.length}`" name="all" />
<el-tab-pane :label="`疑似重复(${duplicateRows.length}`" name="duplicate" /> <el-tab-pane :label="`疑似重复(${duplicateRows.length}`" name="duplicate" />
@@ -203,9 +200,9 @@
> >
</el-table-column> </el-table-column>
</el-table> </el-table>
</section> </section-card>
<section class="reconciliation-editor__section"> <section-card title="操作说明">
<el-collapse> <el-collapse>
<el-collapse-item title="操作说明" name="help"> <el-collapse-item title="操作说明" name="help">
<div class="reconciliation-editor__help"> <div class="reconciliation-editor__help">
@@ -224,7 +221,7 @@
</div> </div>
</el-collapse-item> </el-collapse-item>
</el-collapse> </el-collapse>
</section> </section-card>
</div> </div>
<template #footer> <template #footer>
@@ -744,15 +741,6 @@ export default {
</script> </script>
<style scoped lang="scss"> <style scoped lang="scss">
.reconciliation-editor__section {
margin-bottom: 24px;
}
.reconciliation-editor__section-head {
display: flex;
align-items: center;
justify-content: space-between;
margin-bottom: 12px;
}
.reconciliation-editor__actions, .reconciliation-editor__actions,
.reconciliation-editor__links { .reconciliation-editor__links {
display: flex; display: flex;
+11 -3
View File
@@ -115,7 +115,7 @@
<span v-else>{{ displayValue(row[column.prop]) }}</span> <span v-else>{{ displayValue(row[column.prop]) }}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="操作" width="320" fixed="right" align="center"> <el-table-column label="操作" width="120" fixed="right" align="center">
<template #default="{ row }" <template #default="{ row }"
><div class="formal-page__links"> ><div class="formal-page__links">
<el-link <el-link
@@ -190,7 +190,14 @@
:readonly="editor.readonly" :readonly="editor.readonly"
@success="loadTable" @success="loadTable"
/> />
<el-dialog v-model="paymentDialog.visible" title="付款申请" width="520px" append-to-body> <el-dialog
v-model="paymentDialog.visible"
title="付款申请"
width="520px"
append-to-body
class="formal-payment-dialog"
>
<section-card title="付款信息">
<el-form :model="paymentDialog.form" label-position="right" label-width="auto"> <el-form :model="paymentDialog.form" label-position="right" label-width="auto">
<el-form-item label="结算单号">{{ <el-form-item label="结算单号">{{
paymentDialog.row.formalSettlementNo || '-' paymentDialog.row.formalSettlementNo || '-'
@@ -214,9 +221,10 @@
show-word-limit show-word-limit
/></el-form-item> /></el-form-item>
</el-form> </el-form>
</section-card>
<template #footer <template #footer
><el-button @click="paymentDialog.visible = false">取消</el-button ><el-button @click="paymentDialog.visible = false">取消</el-button
><el-button type="primary" :loading="paymentDialog.loading" @click="submitPayment" ><el-button type="success" :loading="paymentDialog.loading" @click="submitPayment"
>提交</el-button >提交</el-button
></template ></template
> >
+10 -21
View File
@@ -128,7 +128,7 @@
<span v-else>{{ displayValue(row[column.prop]) }}</span> <span v-else>{{ displayValue(row[column.prop]) }}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="操作" width="320" fixed="right" align="center"> <el-table-column label="操作" width="130" fixed="right" align="center">
<template #default="{ row }"> <template #default="{ row }">
<div class="pre-settlement-page__links"> <div class="pre-settlement-page__links">
<el-link <el-link
@@ -255,8 +255,14 @@
</template> </template>
</el-dialog> </el-dialog>
<el-dialog v-model="printDialog.visible" title="打印" width="620px" append-to-body> <el-dialog
<div class="dialog-section-title">选择打印模板</div> v-model="printDialog.visible"
title="打印"
width="620px"
append-to-body
class="pre-settlement-print-dialog"
>
<section-card title="选择打印模板">
<el-form label-position="right" label-width="auto" class="pre-settlement-page__print-form"> <el-form label-position="right" label-width="auto" class="pre-settlement-page__print-form">
<el-form-item label="项目"> <el-form-item label="项目">
<span>{{ printDialog.row.projectName || '-' }}</span> <span>{{ printDialog.row.projectName || '-' }}</span>
@@ -272,6 +278,7 @@
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-form> </el-form>
</section-card>
<template #footer> <template #footer>
<el-button @click="printDialog.visible = false">取消</el-button> <el-button @click="printDialog.visible = false">取消</el-button>
<el-button type="primary" :loading="printDialog.loading" @click="handlePrintPreview"> <el-button type="primary" :loading="printDialog.loading" @click="handlePrintPreview">
@@ -752,8 +759,6 @@ export default {
} }
&__print-form { &__print-form {
margin-top: 20px;
:deep(.el-select) { :deep(.el-select) {
width: 320px; width: 320px;
} }
@@ -772,22 +777,6 @@ export default {
} }
} }
.dialog-section-title {
display: flex;
align-items: center;
min-height: 22px;
font-size: 16px;
font-weight: 600;
&::before {
width: 4px;
height: 18px;
margin-right: 8px;
background: #409eff;
content: '';
}
}
:deep(.pre-settlement-page .el-table) { :deep(.pre-settlement-page .el-table) {
--el-table-border-color: #eff1f7; --el-table-border-color: #eff1f7;
background: #fff; background: #fff;
@@ -76,7 +76,7 @@
<span v-else>{{ formatColumnValue(row, column) }}</span> <span v-else>{{ formatColumnValue(row, column) }}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="操作" width="220" fixed="right" align="center"> <el-table-column label="操作" width="120" fixed="right" align="center">
<template #default="{ row }"> <template #default="{ row }">
<div class="settlement-detail-page__actions"> <div class="settlement-detail-page__actions">
<el-link v-if="row.settlementStatus === 'pending'" type="primary" @click="openAdjustDialog(row)"> <el-link v-if="row.settlementStatus === 'pending'" type="primary" @click="openAdjustDialog(row)">
@@ -399,7 +399,13 @@
</el-dialog> </el-dialog>
<el-dialog v-model="generateDialog.visible" title="生成费用" width="88%" append-to-body> <el-dialog v-model="generateDialog.visible" title="生成费用" width="88%" append-to-body>
<el-form :model="generateQuery" inline label-position="right" label-width="120px"> <el-form
:model="generateQuery"
class="settlement-detail-page__generate-search"
inline
label-position="right"
label-width="120px"
>
<el-form-item label="运单合同" required> <el-form-item label="运单合同" required>
<el-select <el-select
v-model="generateQuery.contractId" v-model="generateQuery.contractId"
@@ -1329,10 +1335,17 @@ export default {
} }
.settlement-detail-page__dialog-form { .settlement-detail-page__dialog-form {
padding: 16px 20px 0; padding: 16px 20px;
background: #fff;
border-radius: 6px;
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
:deep(.el-form-item) { :deep(.el-form-item) {
margin-bottom: 16px; margin-bottom: 16px;
&:last-child {
margin-bottom: 0;
}
} }
:deep(.el-select) { :deep(.el-select) {
@@ -1340,8 +1353,24 @@ export default {
} }
} }
.settlement-detail-page__adjust-toolbar {
margin-bottom: 8px;
}
.settlement-detail-page__generate-search {
margin-bottom: 16px;
padding: 12px 12px 4px;
background: #fff;
border-radius: 6px;
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
}
.settlement-detail-page__transfer-form { .settlement-detail-page__transfer-form {
margin-bottom: 16px; margin-bottom: 16px;
padding: 12px 12px 4px;
background: #fff;
border-radius: 6px;
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
} }
@media screen and (max-width: 1200px) { @media screen and (max-width: 1200px) {
@@ -1355,4 +1384,17 @@ export default {
grid-template-columns: 1fr; grid-template-columns: 1fr;
} }
} }
/* 详情弹窗 tabs 白底 */
.settlement-detail-dialog {
:deep(.el-tabs__content) {
background: #fff;
padding: 16px;
border-radius: 0 0 6px 6px;
}
:deep(.el-tab-pane) {
background: transparent;
}
}
</style> </style>
@@ -78,7 +78,7 @@
><span v-else>{{ displayValue(row[column.prop]) }}</span></template ><span v-else>{{ displayValue(row[column.prop]) }}</span></template
></el-table-column ></el-table-column
> >
<el-table-column label="操作" width="320" fixed="right" align="center" <el-table-column label="操作" width="120" fixed="right" align="center"
><template #default="{ row }" ><template #default="{ row }"
><div class="settlement-adjustment-page__links"> ><div class="settlement-adjustment-page__links">
<el-link <el-link
@@ -74,7 +74,7 @@
<span v-else>{{ displayValue(row[column.prop]) }}</span> <span v-else>{{ displayValue(row[column.prop]) }}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="操作" width="220" fixed="right" align="center"> <el-table-column label="操作" width="120" fixed="right" align="center">
<template #default="{ row }"> <template #default="{ row }">
<div class="reconciliation-page__links"> <div class="reconciliation-page__links">
<el-link type="primary" @click="openView(row)">查看</el-link> <el-link type="primary" @click="openView(row)">查看</el-link>