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:
@@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user