✨ 运单详情已完成隐藏变更路线并移除路线编辑
已完成运单不再展示变更运输路线入口,变更弹窗去掉拖拽路线编辑区。 Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -2478,7 +2478,7 @@
|
||||
{{ formatTransportPlanDetailTransportType(waybillTransportMode(detailRow)) }}
|
||||
</span>
|
||||
<el-link
|
||||
v-if="detailRow.id"
|
||||
v-if="detailRow.id && canChangeWaybillRoute(detailRow)"
|
||||
class="business-crud-page__waybill-route-change-link"
|
||||
type="primary"
|
||||
@click="openWaybillRouteChangeDialog"
|
||||
@@ -2947,35 +2947,6 @@
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
</section-card>
|
||||
<section-card title="路线编辑">
|
||||
<template #extra>
|
||||
<span class="business-crud-page__route-change-hint">拖拽调整顺序</span>
|
||||
</template>
|
||||
<div
|
||||
v-if="waybillRouteChangeNodes.length"
|
||||
class="business-crud-page__route-change-list"
|
||||
>
|
||||
<div
|
||||
v-for="(node, index) in waybillRouteChangeNodes"
|
||||
:key="node.key || index"
|
||||
class="business-crud-page__route-change-item"
|
||||
draggable="true"
|
||||
@dragstart="handleWaybillRouteChangeDragStart(index)"
|
||||
@dragover.prevent
|
||||
@drop="handleWaybillRouteChangeDrop(index)"
|
||||
>
|
||||
<span class="business-crud-page__route-change-type">
|
||||
{{ waybillRouteChangeTypeText(index) }}
|
||||
</span>
|
||||
<span>{{ node.address }}</span>
|
||||
<span class="business-crud-page__route-change-tags">
|
||||
<el-tag v-for="tag in node.tags || []" :key="tag" size="small">{{ tag }}</el-tag>
|
||||
</span>
|
||||
<el-icon><Rank /></el-icon>
|
||||
</div>
|
||||
</div>
|
||||
<el-empty v-else description="暂无路线" :image-size="60" />
|
||||
</section-card>
|
||||
<el-form label-width="auto">
|
||||
<el-form-item label="变更备注" style="margin-top: 8px">
|
||||
<el-input
|
||||
@@ -5311,7 +5282,7 @@ import { openImportDialog } from '@/utils/import-excel';
|
||||
import { applyTableMenuWidth } from '@/utils/table-menu';
|
||||
import { downloadFileByUrl, downloadXls } from '@/utils/util';
|
||||
import { isMobile } from '@/utils/validate';
|
||||
import { Location, OfficeBuilding, Rank, Search } from '@element-plus/icons-vue';
|
||||
import { Location, OfficeBuilding, Search } from '@element-plus/icons-vue';
|
||||
import { ElImageViewer } from 'element-plus';
|
||||
import { OpenFileViewer } from '@open-file-viewer/vue';
|
||||
import {
|
||||
@@ -5574,7 +5545,6 @@ export default {
|
||||
components: {
|
||||
BillingPlanEditor,
|
||||
PageAvueForm,
|
||||
Rank,
|
||||
ElImageViewer,
|
||||
OpenFileViewer,
|
||||
},
|
||||
@@ -5637,7 +5607,6 @@ export default {
|
||||
waybillRouteChangeNodes: [],
|
||||
waybillRouteChangeRemark: '',
|
||||
waybillRouteChangeRecords: [],
|
||||
waybillRouteChangeDragIndex: -1,
|
||||
waybillRouteChangeSaving: false,
|
||||
mileageDialog: {
|
||||
visible: false,
|
||||
@@ -7438,7 +7407,7 @@ export default {
|
||||
: [];
|
||||
},
|
||||
openWaybillRouteChangeDialog() {
|
||||
if (!this.detailRow.id) return;
|
||||
if (!this.detailRow.id || !this.canChangeWaybillRoute(this.detailRow)) return;
|
||||
this.restoreWaybillRouteChangeRecords();
|
||||
this.waybillRouteChangeTab = 'change';
|
||||
this.waybillRouteChangeRemark = '';
|
||||
@@ -7455,22 +7424,11 @@ export default {
|
||||
this.waybillRouteChangeNodes = this.buildWaybillRouteNodes(this.waybillRouteChangeRows);
|
||||
this.waybillRouteChangeBox = true;
|
||||
},
|
||||
waybillRouteChangeTypeText(index) {
|
||||
if (index === 0) return '起';
|
||||
if (index === this.waybillRouteChangeNodes.length - 1) return '终';
|
||||
return '经';
|
||||
},
|
||||
handleWaybillRouteChangeDragStart(index) {
|
||||
this.waybillRouteChangeDragIndex = index;
|
||||
},
|
||||
handleWaybillRouteChangeDrop(index) {
|
||||
if (this.waybillRouteChangeDragIndex < 0 || this.waybillRouteChangeDragIndex === index)
|
||||
return;
|
||||
const nodes = [...this.waybillRouteChangeNodes];
|
||||
const [node] = nodes.splice(this.waybillRouteChangeDragIndex, 1);
|
||||
nodes.splice(index, 0, node);
|
||||
this.waybillRouteChangeNodes = nodes;
|
||||
this.waybillRouteChangeDragIndex = -1;
|
||||
canChangeWaybillRoute(row = {}) {
|
||||
const status = String(this.statusValue(row) || row.businessStatus || row.status || '');
|
||||
if (status === 'completed') return false;
|
||||
const statusName = String(row.businessStatusName || row.statusName || '');
|
||||
return !statusName.includes('已完成');
|
||||
},
|
||||
updateWaybillRouteChangeNodes() {
|
||||
this.waybillRouteChangeNodes = this.buildWaybillRouteNodes(this.waybillRouteChangeRows);
|
||||
@@ -7519,9 +7477,8 @@ export default {
|
||||
row.departureAddress !== row.originalDepartureAddress ||
|
||||
row.arrivalAddress !== row.originalArrivalAddress;
|
||||
const routeJson = JSON.stringify(this.waybillRouteChangeNodes);
|
||||
const originalRouteJson = this.detailRow.routeJson || '';
|
||||
if (!changed && routeJson === originalRouteJson && !this.waybillRouteChangeRemark) {
|
||||
this.$message.warning('请修改地址、调整路线或填写变更备注');
|
||||
if (!changed && !this.waybillRouteChangeRemark) {
|
||||
this.$message.warning('请修改地址或填写变更备注');
|
||||
return;
|
||||
}
|
||||
if (typeof this.api.changeRoute !== 'function') {
|
||||
@@ -7529,11 +7486,9 @@ export default {
|
||||
return;
|
||||
}
|
||||
|
||||
const content = changed
|
||||
? `${row.waybillNo || '运单'}:发货地 ${row.originalDepartureAddress || '-'} → ${
|
||||
row.departureAddress || '-'
|
||||
};到货地 ${row.originalArrivalAddress || '-'} → ${row.arrivalAddress || '-'}`
|
||||
: '调整运输路线顺序';
|
||||
const content = `${row.waybillNo || '运单'}:发货地 ${row.originalDepartureAddress || '-'} → ${
|
||||
row.departureAddress || '-'
|
||||
};到货地 ${row.originalArrivalAddress || '-'} → ${row.arrivalAddress || '-'}`;
|
||||
const records = [
|
||||
{
|
||||
changeTime: this.$dayjs().format('YYYY-MM-DD HH:mm:ss'),
|
||||
|
||||
Reference in New Issue
Block a user