Merge remote-tracking branch 'websoft/master'

# Conflicts:
#	src/views/settlement/transport-reconciliation.vue
This commit is contained in:
2026-08-21 00:18:28 +08:00
36 changed files with 517 additions and 336 deletions
@@ -126,14 +126,16 @@
</template>
<template #contractName="{ row }">
<el-link
v-if="config.contractNameDetail && row.contractName"
type="primary"
@click.stop="openDetail(row)"
>
{{ row.contractName }}
</el-link>
<span v-else>{{ row.contractName || '-' }}</span>
<div class="business-crud-page__contract-name">
<el-link
v-if="config.contractNameDetail && row.contractName"
type="primary"
@click.stop="openDetail(row)"
>
{{ row.contractName }}
</el-link>
<span v-else>{{ row.contractName || '-' }}</span>
</div>
</template>
<template #loadingNo="{ row }">
@@ -2715,26 +2717,33 @@
</span>
</div>
<div class="business-crud-page__waybill-route">
<div class="business-crud-page__waybill-route-head">
<b></b
><strong>{{
detailRow.departureName || detailRow.departureAddress || '-'
}}</strong
><b class="end"></b
><strong>{{ detailRow.arrivalName || detailRow.arrivalAddress || '-' }}</strong>
<div class="business-crud-page__waybill-route-item">
<span class="business-crud-page__waybill-route-dot"></span>
<div class="business-crud-page__waybill-route-detail">
<span class="business-crud-page__waybill-route-label">发货地</span>
<strong class="business-crud-page__waybill-route-name">{{
detailRow.departureName || detailRow.departureAddress || '-'
}}</strong>
<el-tooltip :content="detailRow.departureAddress || '-'" placement="top">
<span class="business-crud-page__waybill-route-addr">{{
formatTransportPlanProvinceCityDistrict(detailRow.departureAddress)
}}</span>
</el-tooltip>
</div>
</div>
<div class="business-crud-page__waybill-route-text">
<el-tooltip :content="detailRow.departureAddress || '-'" placement="top">
<span>{{
formatTransportPlanProvinceCityDistrict(detailRow.departureAddress)
}}</span>
</el-tooltip>
<span>  </span>
<el-tooltip :content="detailRow.arrivalAddress || '-'" placement="top">
<span>{{
formatTransportPlanProvinceCityDistrict(detailRow.arrivalAddress)
}}</span>
</el-tooltip>
<div class="business-crud-page__waybill-route-item">
<span class="business-crud-page__waybill-route-dot is-end"></span>
<div class="business-crud-page__waybill-route-detail">
<span class="business-crud-page__waybill-route-label">收货地</span>
<strong class="business-crud-page__waybill-route-name">{{
detailRow.arrivalName || detailRow.arrivalAddress || '-'
}}</strong>
<el-tooltip :content="detailRow.arrivalAddress || '-'" placement="top">
<span class="business-crud-page__waybill-route-addr">{{
formatTransportPlanProvinceCityDistrict(detailRow.arrivalAddress)
}}</span>
</el-tooltip>
</div>
</div>
</div>
<div class="business-crud-page__waybill-attachments">
@@ -13955,6 +13964,10 @@ export default {
width: 100%;
}
&__contract-name {
text-align: left;
}
&__contract-expiry-search {
display: flex;
align-items: center;
@@ -14583,7 +14596,7 @@ export default {
background: #fff;
border: 1px solid #eff1f7;
border-radius: 4px;
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.04);
:deep(.el-form-item) {
margin-bottom: 8px;
@@ -15710,62 +15723,86 @@ export default {
grid-row: 1 / span 3;
grid-column: 5;
min-width: 0;
padding: 8px 0;
padding: 4px 0;
}
&__waybill-route-head {
&__waybill-route-item {
position: relative;
display: flex;
align-items: center;
justify-content: space-between;
align-items: stretch;
gap: 12px;
b {
display: inline-flex;
flex: 0 0 auto;
width: 34px;
height: 34px;
align-items: center;
justify-content: center;
color: #fff;
border-radius: 4px;
background: #409eff;
&.end {
background: #e6a23c;
}
}
strong {
min-width: 0;
overflow: hidden;
color: #303133;
font-size: 18px;
text-overflow: ellipsis;
white-space: nowrap;
}
&::before {
flex: 1;
order: 2;
height: 4px;
content: '';
background: #e4e7ed;
}
b.end {
order: 3;
}
strong:last-child {
order: 4;
& + & {
margin-top: 18px;
}
}
&__waybill-route-text {
margin-top: 12px;
&__waybill-route-dot {
position: relative;
flex: 0 0 auto;
width: 12px;
margin-top: 2px;
&::before {
display: block;
width: 12px;
height: 12px;
border-radius: 50%;
content: '';
background: #409eff;
box-shadow: 0 0 0 3px #fff, 0 0 0 4px #c6e0ff;
}
&.is-end::before {
background: #e6a23c;
box-shadow: 0 0 0 3px #fff, 0 0 0 4px #f5d9b0;
}
}
&__waybill-route-item:not(:last-child) &__waybill-route-dot::after {
content: '';
position: absolute;
top: 14px;
left: 5px;
width: 2px;
height: calc(100% + 10px);
background: repeating-linear-gradient(
to bottom,
#c0c4cc 0,
#c0c4cc 4px,
transparent 4px,
transparent 8px
);
}
&__waybill-route-detail {
flex: 1;
min-width: 0;
display: flex;
flex-direction: column;
gap: 4px;
}
&__waybill-route-label {
color: #909399;
font-size: 12px;
}
&__waybill-route-name {
color: #303133;
font-size: 15px;
font-weight: 500;
line-height: 1.4;
overflow: hidden;
display: -webkit-box;
-webkit-line-clamp: 2;
-webkit-box-orient: vertical;
}
&__waybill-route-addr {
overflow: hidden;
color: #606266;
text-align: center;
font-size: 12px;
text-overflow: ellipsis;
white-space: nowrap;
}