style(business): 优化合同管理、综合台账及应付明细弹窗样式调整

- 统一 business-crud-page 系列独立表单页标题显示,新增 contract-manage 支持
- 综合台账弹窗 vehicle-ledger/ship-ledger 中 el-table 移入各 tab-pane,调整蓝标内容为全局 section-card 组件
- 临时额度查看弹窗改为两列自定义详情显示,支持草稿态详情按钮显示
- 修复合同管理详情弹窗 label 对齐问题,增强 el-descriptions 表格宽度与标签样式
- contract-manage.vue 全局样式改为 scoped,消除全站弹窗样式污染
- 应付明细调整弹窗控件宽度撑满单元格,统一所有表头居中显示
- 移除 receivable-payable-detail 表格中部分列 align:right,避免内容截断
- 新增相应组件样式支持 :deep 选择器实现样式穿透,保证兼容性和维护性
This commit is contained in:
2026-08-21 12:42:02 +08:00
parent 037031b76c
commit 6989486d8a
7 changed files with 125 additions and 22 deletions
@@ -45,6 +45,35 @@ export const config = {
editStatus: ['draft', 'withdrawn', 'rejected', '草稿', '已撤回'],
ignoreReadonlyEditStatus: ['draft', 'withdrawn', '草稿', '已撤回'],
ignoreReadonlyDeleteStatus: ['draft', '草稿'],
detailButton: true,
detailButtonIgnoreDraftStatus: true,
detailSections: [
{
title: '申请信息',
fields: [
['applicationNo', '申请单号', 2],
['projectName', '项目', 1],
['projectCode', '项目编号', 1],
['undertakeDeptName', '承办部门', 1],
['applyDeptName', '申请部门', 1],
['applicantName', '申请人', 1],
['approvalStatus', '审批状态', 1],
['currentNode', '当前节点', 1],
['currentProcessor', '当前处理人', 1],
['validUntil', '申请有效期至', 1],
['remark', '备注', 2],
],
},
{
title: '额度信息',
fields: [
['projectFundLimit', '项目资金使用额度(万元)', 1],
['usedFundLimit', '已使用项目资金使用额度(万元)', 1],
['remainingFundLimit', '剩余项目资金使用额度(万元)', 1],
['applyLimit', '申请临时额度(万元)', 1],
],
},
],
operations: [
{
action: 'submitApproval',
@@ -42,11 +42,11 @@ export const tableColumns = [
{ label: '运输类型', prop: 'transportType', minWidth: 120 },
{ label: '货物名称', prop: 'cargoName', minWidth: 130 },
{ label: '货物类型', prop: 'cargoType', minWidth: 120 },
{ label: '运输总量', prop: 'transportQuantity', minWidth: 120, align: 'right' },
{ label: '里程(KM', prop: 'mileage', minWidth: 120, align: 'right' },
{ label: '运输总量', prop: 'transportQuantity', minWidth: 120 },
{ label: '里程(KM', prop: 'mileage', minWidth: 120 },
{ label: '批次号', prop: 'batchNo', minWidth: 120 },
{ label: '运输单价', prop: 'unitPriceText', minWidth: 120, align: 'right' },
{ label: '费用合计', prop: 'totalAmountText', minWidth: 130, align: 'right' },
{ label: '运输单价', prop: 'unitPriceText', minWidth: 120 },
{ label: '费用合计', prop: 'totalAmountText', minWidth: 130 },
{ label: '状态', prop: 'settlementStatusName', minWidth: 120 },
{ label: '创建人', prop: 'createUserName', minWidth: 120 },
{ label: '创建时间', prop: 'createTime', minWidth: 170 },
@@ -61,15 +61,16 @@ export const feeDetailBaseColumns = [
{ label: '运费计费类型', prop: 'billingType', minWidth: 130 },
{ label: '运输量', prop: 'transportQuantityText', minWidth: 120 },
{ label: '运费计算单位', prop: 'priceUnit', minWidth: 130 },
{ label: '运输单价', prop: 'unitPrice', minWidth: 120, align: 'right' },
{ label: '里程(KM', prop: 'mileage', minWidth: 120, align: 'right' },
{ label: '运输费', prop: 'freightAmount', minWidth: 120, align: 'right' },
{ label: '运输单价', prop: 'unitPrice', minWidth: 120 },
{ label: '里程(KM', prop: 'mileage', minWidth: 120 },
{ label: '运输费', prop: 'freightAmount', minWidth: 180 }
];
export const feeDetailTailColumns = [
{ label: '原总金额', prop: 'originalAmountText', minWidth: 120, align: 'right' },
{ label: '调整金额', prop: 'adjustAmountText', minWidth: 120, align: 'right' },
{ label: '调整后总金额', prop: 'afterAmountText', minWidth: 140, align: 'right' },
{ label: '原总金额', prop: 'originalAmountText', minWidth: 120 },
{ label: '调整金额', prop: 'adjustAmountText', minWidth: 120 },
{ label: '调整后总金额', prop: 'afterAmountText', minWidth: 140 },
{ label: '备注', prop: 'remark', minWidth: 160 },
{ label: '最后录入人', prop: 'updateUserName', minWidth: 120 },
{ label: '最后录入时间', prop: 'updateTime', minWidth: 170 },
@@ -116,10 +117,10 @@ export const generateWaybillColumns = [
{ label: '发货联系人', prop: 'departureContact', minWidth: 130 },
{ label: '到货地址', prop: 'arrivalAddress', minWidth: 220 },
{ label: '收货联系人', prop: 'arrivalContact', minWidth: 130 },
{ label: '单价', prop: 'unitPrice', minWidth: 110, align: 'right' },
{ label: '运费', prop: 'freight', minWidth: 110, align: 'right' },
{ label: '其他费用合计', prop: 'otherFeeTotal', minWidth: 140, align: 'right' },
{ label: '运费合计', prop: 'freightTotal', minWidth: 120, align: 'right' },
{ label: '单价', prop: 'unitPrice', minWidth: 110 },
{ label: '运费', prop: 'freight', minWidth: 110 },
{ label: '其他费用合计', prop: 'otherFeeTotal', minWidth: 140 },
{ label: '运费合计', prop: 'freightTotal', minWidth: 120 },
{ label: '客户合同', prop: 'contractName', minWidth: 160 },
{ label: '发货计划', prop: 'planName', minWidth: 140 },
{ label: '运输批次', prop: 'batchNo', minWidth: 140 },
@@ -6267,7 +6267,10 @@ export default {
formPageTitle() {
if (
this.isStandaloneFormPage &&
(this.isShippingTemplatePage || this.isTransportPlanPage || this.isWaybillDetailLayout)
(this.isShippingTemplatePage ||
this.isTransportPlanPage ||
this.isWaybillDetailLayout ||
this.isContractConfig)
) {
return (
this.$route.query.name ||
@@ -7350,6 +7353,7 @@ export default {
showDetailButton(row) {
if (!this.config.detailButton || !this.hasPermission(`${this.config.permission}_view`))
return false;
if (this.config.detailButtonIgnoreDraftStatus) return true;
const status = this.statusValue(row);
return status !== 'draft';
},
@@ -15437,17 +15441,31 @@ export default {
gap: 12px;
.section-card {
:deep(.el-descriptions__table) {
width: 100%;
table-layout: fixed;
}
:deep(.el-descriptions__label) {
width: 140px;
min-width: 140px;
max-width: 140px;
box-sizing: border-box;
padding: 8px 12px;
color: #606266;
font-weight: 600;
text-align: right;
vertical-align: middle;
line-height: 1.4;
}
:deep(.el-descriptions__content) {
min-height: 42px;
padding: 8px 12px;
white-space: pre-wrap;
word-break: break-word;
vertical-align: middle;
line-height: 1.4;
}
}
}
+4 -4
View File
@@ -25,10 +25,10 @@ export default {
};
</script>
<style>
/* 合同管理弹窗:长 label(如"是否需要加盖法人章")在标签列内自动换行 */
.el-dialog .el-form-item__label {
<style scoped>
/* 合同管理弹窗:长 label(如"是否需要加盖法人章")在标签列内自动换行,且不影响全站弹窗 */
.contract-manage-dialog .el-form-item__label {
white-space: normal;
line-height: 1.2;
line-height: 1.4;
}
</style>
@@ -166,8 +166,13 @@
<div class="settlement-detail-page__adjust-toolbar">
<el-button type="primary" plain @click="addManualAdjustRow">新增费用项</el-button>
</div>
<el-table v-loading="adjustDialog.loading" :data="adjustRows" border>
<el-table-column type="index" label="序号" width="64" align="center" />
<el-table
v-loading="adjustDialog.loading"
:data="adjustRows"
border
class="settlement-detail-page__adjust-table"
>
<el-table-column type="index" label="序号" width="64" align="center" header-align="center" />
<el-table-column label="手工费用项目" min-width="180" align="center">
<template #default="{ row }">
<el-input
@@ -1319,6 +1324,7 @@ export default {
:deep(th.el-table__cell) {
background: #f5f7fa;
text-align: center !important;
}
:deep(.el-table__row:nth-child(even) td.el-table__cell) {
@@ -1362,6 +1368,22 @@ export default {
margin-bottom: 8px;
}
.settlement-detail-page__adjust-table {
:deep(th.el-table__cell) {
text-align: center !important;
}
:deep(.el-input-number),
:deep(.el-input),
:deep(.el-select) {
width: 100% !important;
}
:deep(.el-input-number .el-input__inner) {
text-align: right;
}
}
.settlement-detail-page__generate-search {
margin-bottom: 16px;
padding: 12px 12px 4px;