⚡ 优化区划国家入口、计划-1展示、路线地图点选与对账导出
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -2909,14 +2909,15 @@
|
||||
原:{{ row.originalDepartureAddress || '-' }}
|
||||
</div>
|
||||
<el-input
|
||||
v-model="row.departureAddress"
|
||||
placeholder="请选择或输入地址"
|
||||
@input="updateWaybillRouteChangeNodes"
|
||||
:model-value="row.departureAddress"
|
||||
readonly
|
||||
placeholder="请点击地图选点"
|
||||
@click="openWaybillRouteChangeMapDialog(row, 'departure')"
|
||||
>
|
||||
<template #suffix>
|
||||
<el-icon
|
||||
class="business-crud-page__route-change-location"
|
||||
@click="openWaybillCommonAddressDialog(row, 'departure')"
|
||||
@click.stop="openWaybillRouteChangeMapDialog(row, 'departure')"
|
||||
>
|
||||
<Location />
|
||||
</el-icon>
|
||||
@@ -2930,14 +2931,15 @@
|
||||
原:{{ row.originalArrivalAddress || '-' }}
|
||||
</div>
|
||||
<el-input
|
||||
v-model="row.arrivalAddress"
|
||||
placeholder="请选择或输入地址"
|
||||
@input="updateWaybillRouteChangeNodes"
|
||||
:model-value="row.arrivalAddress"
|
||||
readonly
|
||||
placeholder="请点击地图选点"
|
||||
@click="openWaybillRouteChangeMapDialog(row, 'arrival')"
|
||||
>
|
||||
<template #suffix>
|
||||
<el-icon
|
||||
class="business-crud-page__route-change-location"
|
||||
@click="openWaybillCommonAddressDialog(row, 'arrival')"
|
||||
@click.stop="openWaybillRouteChangeMapDialog(row, 'arrival')"
|
||||
>
|
||||
<Location />
|
||||
</el-icon>
|
||||
@@ -2993,49 +2995,6 @@
|
||||
</template>
|
||||
</el-dialog>
|
||||
|
||||
<el-dialog
|
||||
v-model="waybillCommonAddressBox"
|
||||
title="选择常用地址"
|
||||
append-to-body
|
||||
width="900px"
|
||||
class="business-crud-page__common-address-dialog"
|
||||
>
|
||||
<div class="business-crud-page__common-address-toolbar">
|
||||
<el-input
|
||||
v-model="waybillCommonAddressQuery.addressName"
|
||||
clearable
|
||||
placeholder="请输入地址名称"
|
||||
@keyup.enter="loadWaybillCommonAddresses"
|
||||
/>
|
||||
<el-button type="primary" @click="loadWaybillCommonAddresses">查询</el-button>
|
||||
</div>
|
||||
<el-table
|
||||
v-loading="waybillCommonAddressLoading"
|
||||
:data="waybillCommonAddressRows"
|
||||
border
|
||||
@row-dblclick="selectWaybillCommonAddress"
|
||||
>
|
||||
<el-table-column prop="addressName" label="地址名称" min-width="180" />
|
||||
<el-table-column prop="regionName" label="区域" min-width="180" />
|
||||
<el-table-column prop="detailAddress" label="详细地址" min-width="260" />
|
||||
<el-table-column label="操作" width="90">
|
||||
<template #default="{ row }">
|
||||
<el-link type="primary" @click="selectWaybillCommonAddress(row)">选择</el-link>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
<template #footer>
|
||||
<el-pagination
|
||||
v-model:current-page="waybillCommonAddressPage.currentPage"
|
||||
v-model:page-size="waybillCommonAddressPage.pageSize"
|
||||
layout="total, prev, pager, next"
|
||||
:total="waybillCommonAddressPage.total"
|
||||
@current-change="loadWaybillCommonAddresses"
|
||||
/>
|
||||
<el-button @click="waybillCommonAddressBox = false">关闭</el-button>
|
||||
</template>
|
||||
</el-dialog>
|
||||
|
||||
<el-dialog
|
||||
v-if="config.enableTransportPlanImport"
|
||||
v-model="transportPlanImportBox"
|
||||
@@ -4982,6 +4941,7 @@
|
||||
v-model="transportMapBox"
|
||||
width="920px"
|
||||
@opened="initTransportAmap"
|
||||
@closed="waybillRouteChangeMapTarget = null"
|
||||
>
|
||||
<div class="business-crud-page__map-toolbar">
|
||||
<el-input
|
||||
@@ -5010,7 +4970,7 @@
|
||||
>
|
||||
</div>
|
||||
<template #footer>
|
||||
<el-button @click="transportMapBox = false">取消</el-button>
|
||||
<el-button @click="closeTransportMapDialog">取消</el-button>
|
||||
<el-button
|
||||
type="primary"
|
||||
:disabled="!transportMapSelected.longitude"
|
||||
@@ -5633,18 +5593,7 @@ export default {
|
||||
},
|
||||
],
|
||||
},
|
||||
waybillCommonAddressBox: false,
|
||||
waybillCommonAddressLoading: false,
|
||||
waybillCommonAddressQuery: {
|
||||
addressName: '',
|
||||
},
|
||||
waybillCommonAddressRows: [],
|
||||
waybillCommonAddressTarget: null,
|
||||
waybillCommonAddressPage: {
|
||||
pageSize: 10,
|
||||
currentPage: 1,
|
||||
total: 0,
|
||||
},
|
||||
waybillRouteChangeMapTarget: null,
|
||||
transportPlanImportBox: false,
|
||||
transportPlanImportLoading: false,
|
||||
transportPlanImportFiles: [],
|
||||
@@ -7440,43 +7389,22 @@ export default {
|
||||
updateWaybillRouteChangeNodes() {
|
||||
this.waybillRouteChangeNodes = this.buildWaybillRouteNodes(this.waybillRouteChangeRows);
|
||||
},
|
||||
openWaybillCommonAddressDialog(row, field) {
|
||||
this.waybillCommonAddressTarget = { row, field };
|
||||
this.waybillCommonAddressQuery = { addressName: '' };
|
||||
this.waybillCommonAddressPage.currentPage = 1;
|
||||
this.waybillCommonAddressBox = true;
|
||||
this.loadWaybillCommonAddresses();
|
||||
},
|
||||
loadWaybillCommonAddresses() {
|
||||
this.waybillCommonAddressLoading = true;
|
||||
getCommonAddressList(
|
||||
this.waybillCommonAddressPage.currentPage,
|
||||
this.waybillCommonAddressPage.pageSize,
|
||||
{
|
||||
...this.waybillCommonAddressQuery,
|
||||
allDept: 0,
|
||||
}
|
||||
)
|
||||
.then(res => {
|
||||
const data = res.data?.data || {};
|
||||
this.waybillCommonAddressRows = data.records || [];
|
||||
this.waybillCommonAddressPage.total = data.total || 0;
|
||||
})
|
||||
.finally(() => {
|
||||
this.waybillCommonAddressLoading = false;
|
||||
});
|
||||
},
|
||||
selectWaybillCommonAddress(address) {
|
||||
const target = this.waybillCommonAddressTarget;
|
||||
if (!target) return;
|
||||
target.row[`${target.field}Address`] =
|
||||
[address.regionName, address.detailAddress || address.addressName]
|
||||
.filter(Boolean)
|
||||
.join('') ||
|
||||
address.addressName ||
|
||||
'';
|
||||
this.updateWaybillRouteChangeNodes();
|
||||
this.waybillCommonAddressBox = false;
|
||||
openWaybillRouteChangeMapDialog(row, field) {
|
||||
if (!row || !field) return;
|
||||
this.waybillRouteChangeMapTarget = { row, field };
|
||||
this.transportMapTarget = field;
|
||||
this.transportMapKeyword = row[`${field}Address`] || row[`${field}Name`] || '';
|
||||
this.transportMapSelected = this.buildTransportMapSelection({
|
||||
lng: row[`${field}Longitude`],
|
||||
lat: row[`${field}Latitude`],
|
||||
address: row[`${field}Address`],
|
||||
regionName: row[`${field}Name`],
|
||||
regionCode: row[`${field}RegionCode`],
|
||||
});
|
||||
this.transportMapStatus = this.transportMapSelected.longitude
|
||||
? '已加载当前选点,可重新选点'
|
||||
: '可搜索地址或点击地图选点';
|
||||
this.transportMapBox = true;
|
||||
},
|
||||
async confirmWaybillRouteChange() {
|
||||
const row = this.waybillRouteChangeRows[0] || {};
|
||||
@@ -10201,10 +10129,15 @@ export default {
|
||||
this.$refs.crud?.clearValidate?.([`${prefix}Address`]);
|
||||
});
|
||||
},
|
||||
closeTransportMapDialog() {
|
||||
this.transportMapBox = false;
|
||||
this.waybillRouteChangeMapTarget = null;
|
||||
},
|
||||
openTransportMapDialog(target) {
|
||||
if (this.dialogReadonly) return;
|
||||
if (!this.ensureTransportTypeBeforeAddress()) return;
|
||||
const prefix = target === 'departure' ? 'departure' : 'arrival';
|
||||
this.waybillRouteChangeMapTarget = null;
|
||||
this.transportMapTarget = prefix;
|
||||
this.transportMapKeyword = this.form[`${prefix}Address`] || this.form[`${prefix}Name`] || '';
|
||||
this.transportMapSelected = this.buildTransportMapSelection({
|
||||
@@ -10363,6 +10296,23 @@ export default {
|
||||
this.$message.warning('请先搜索或点击地图完成选点');
|
||||
return;
|
||||
}
|
||||
if (this.waybillRouteChangeMapTarget) {
|
||||
const { row, field } = this.waybillRouteChangeMapTarget;
|
||||
row[`${field}Address`] =
|
||||
this.transportMapSelected.detailAddress || row[`${field}Address`] || '';
|
||||
if (this.transportMapSelected.regionName) {
|
||||
row[`${field}Name`] = this.transportMapSelected.regionName;
|
||||
}
|
||||
row[`${field}Longitude`] = this.transportMapSelected.longitude;
|
||||
row[`${field}Latitude`] = this.transportMapSelected.latitude;
|
||||
if (this.transportMapSelected.regionCode) {
|
||||
row[`${field}RegionCode`] = this.transportMapSelected.regionCode;
|
||||
}
|
||||
this.updateWaybillRouteChangeNodes();
|
||||
this.waybillRouteChangeMapTarget = null;
|
||||
this.transportMapBox = false;
|
||||
return;
|
||||
}
|
||||
const prefix = this.transportMapTarget;
|
||||
this.form[`${prefix}Address`] =
|
||||
this.transportMapSelected.detailAddress || this.form[`${prefix}Address`];
|
||||
@@ -15914,16 +15864,6 @@ export default {
|
||||
white-space: pre-wrap;
|
||||
}
|
||||
|
||||
&__common-address-toolbar {
|
||||
display: flex;
|
||||
gap: 8px;
|
||||
margin-bottom: 12px;
|
||||
|
||||
.el-input {
|
||||
width: 260px;
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 1200px) {
|
||||
&__waybill-summary-grid {
|
||||
grid-template-columns: repeat(4, minmax(130px, 1fr));
|
||||
|
||||
@@ -1212,7 +1212,11 @@ const fillEditForm = async row => {
|
||||
carrierIds: [],
|
||||
});
|
||||
const plan = plans.value.find(item => String(item.id) === String(snapshot.planId));
|
||||
if (plan) form.planId = plan.id;
|
||||
// 接口数字 null 会序列化为 -1,未选计划时回填为空
|
||||
form.planId =
|
||||
plan && Number(plan.id) !== -1 && Number(plan.id) > 0
|
||||
? plan.id
|
||||
: normalizeOptionalPlanId(snapshot.planId) || '';
|
||||
const contract = contracts.value.find(item => String(item.id) === String(snapshot.contractId));
|
||||
form.contractId = contract?.id || '';
|
||||
form.carrierType = snapshot.carrierType || '承运商';
|
||||
@@ -1677,10 +1681,18 @@ const normalizeImportRow = row => ({
|
||||
row['*运输方式']
|
||||
),
|
||||
});
|
||||
const normalizeOptionalPlanId = value => {
|
||||
if (value === undefined || value === null || value === '') return null;
|
||||
return Number(value) === -1 || Number(value) <= 0 ? null : value;
|
||||
};
|
||||
const buildImportPayload = (status = form.status, rowList = rows.value, extra = {}) => {
|
||||
const { file, ...batch } = form;
|
||||
const planId = normalizeOptionalPlanId(batch.planId);
|
||||
return {
|
||||
...batch,
|
||||
planId,
|
||||
// 未选计划时不带占位名称,避免落库/回显 -1
|
||||
planName: planId ? batch.planName || undefined : null,
|
||||
status,
|
||||
rows: rowList.map(normalizeImportRow).map(stripInternalRowFields),
|
||||
...extra,
|
||||
|
||||
@@ -1789,14 +1789,14 @@
|
||||
:class="{ 'is-plan': item[0] === 'planName' }"
|
||||
>
|
||||
<span class="waybill-manage-page__waybill-label">{{ item[1] }}</span>
|
||||
<el-link
|
||||
<span
|
||||
v-if="canOpenWaybillDetailSummaryLink(item[0])"
|
||||
type="primary"
|
||||
class="waybill-manage-page__waybill-value is-link"
|
||||
role="link"
|
||||
@click="handleWaybillDetailSummaryClick(item[0])"
|
||||
>
|
||||
{{ formatDetailValue(detailRow, item[0]) }}
|
||||
</el-link>
|
||||
</span>
|
||||
<span
|
||||
v-else
|
||||
:class="['waybill-manage-page__waybill-value', { 'is-link': item[2] }]"
|
||||
@@ -2413,14 +2413,15 @@
|
||||
原:{{ row.originalDepartureAddress || '-' }}
|
||||
</div>
|
||||
<el-input
|
||||
v-model="row.departureAddress"
|
||||
placeholder="请选择或输入地址"
|
||||
@input="updateWaybillRouteChangeNodes"
|
||||
:model-value="row.departureAddress"
|
||||
readonly
|
||||
placeholder="请点击地图选点"
|
||||
@click="openWaybillRouteChangeMapDialog(row, 'departure')"
|
||||
>
|
||||
<template #suffix>
|
||||
<el-icon
|
||||
class="waybill-manage-page__route-change-location"
|
||||
@click="openWaybillCommonAddressDialog(row, 'departure')"
|
||||
@click.stop="openWaybillRouteChangeMapDialog(row, 'departure')"
|
||||
>
|
||||
<Location />
|
||||
</el-icon>
|
||||
@@ -2434,14 +2435,15 @@
|
||||
原:{{ row.originalArrivalAddress || '-' }}
|
||||
</div>
|
||||
<el-input
|
||||
v-model="row.arrivalAddress"
|
||||
placeholder="请选择或输入地址"
|
||||
@input="updateWaybillRouteChangeNodes"
|
||||
:model-value="row.arrivalAddress"
|
||||
readonly
|
||||
placeholder="请点击地图选点"
|
||||
@click="openWaybillRouteChangeMapDialog(row, 'arrival')"
|
||||
>
|
||||
<template #suffix>
|
||||
<el-icon
|
||||
class="waybill-manage-page__route-change-location"
|
||||
@click="openWaybillCommonAddressDialog(row, 'arrival')"
|
||||
@click.stop="openWaybillRouteChangeMapDialog(row, 'arrival')"
|
||||
>
|
||||
<Location />
|
||||
</el-icon>
|
||||
@@ -2497,49 +2499,6 @@
|
||||
</template>
|
||||
</el-dialog>
|
||||
|
||||
<el-dialog
|
||||
v-model="waybillCommonAddressBox"
|
||||
title="选择常用地址"
|
||||
append-to-body
|
||||
width="900px"
|
||||
class="waybill-manage-page__common-address-dialog"
|
||||
>
|
||||
<div class="waybill-manage-page__common-address-toolbar">
|
||||
<el-input
|
||||
v-model="waybillCommonAddressQuery.addressName"
|
||||
clearable
|
||||
placeholder="请输入地址名称"
|
||||
@keyup.enter="loadWaybillCommonAddresses"
|
||||
/>
|
||||
<el-button type="primary" @click="loadWaybillCommonAddresses">查询</el-button>
|
||||
</div>
|
||||
<el-table
|
||||
v-loading="waybillCommonAddressLoading"
|
||||
:data="waybillCommonAddressRows"
|
||||
border
|
||||
@row-dblclick="selectWaybillCommonAddress"
|
||||
>
|
||||
<el-table-column prop="addressName" label="地址名称" min-width="180" />
|
||||
<el-table-column prop="regionName" label="区域" min-width="180" />
|
||||
<el-table-column prop="detailAddress" label="详细地址" min-width="260" />
|
||||
<el-table-column label="操作" width="90">
|
||||
<template #default="{ row }">
|
||||
<el-link type="primary" @click="selectWaybillCommonAddress(row)">选择</el-link>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
<template #footer>
|
||||
<el-pagination
|
||||
v-model:current-page="waybillCommonAddressPage.currentPage"
|
||||
v-model:page-size="waybillCommonAddressPage.pageSize"
|
||||
layout="total, prev, pager, next"
|
||||
:total="waybillCommonAddressPage.total"
|
||||
@current-change="loadWaybillCommonAddresses"
|
||||
/>
|
||||
<el-button @click="waybillCommonAddressBox = false">关闭</el-button>
|
||||
</template>
|
||||
</el-dialog>
|
||||
|
||||
<flow-design
|
||||
v-if="website.design.designMode"
|
||||
is-dialog
|
||||
@@ -2850,6 +2809,7 @@
|
||||
v-model="transportMapBox"
|
||||
width="920px"
|
||||
@opened="initTransportAmap"
|
||||
@closed="waybillRouteChangeMapTarget = null"
|
||||
>
|
||||
<div class="waybill-manage-page__map-toolbar">
|
||||
<el-input
|
||||
@@ -2878,7 +2838,7 @@
|
||||
>
|
||||
</div>
|
||||
<template #footer>
|
||||
<el-button @click="transportMapBox = false">取消</el-button>
|
||||
<el-button @click="closeTransportMapDialog">取消</el-button>
|
||||
<el-button
|
||||
type="primary"
|
||||
:disabled="!transportMapSelected.longitude"
|
||||
@@ -3467,18 +3427,7 @@ export default {
|
||||
},
|
||||
],
|
||||
},
|
||||
waybillCommonAddressBox: false,
|
||||
waybillCommonAddressLoading: false,
|
||||
waybillCommonAddressQuery: {
|
||||
addressName: '',
|
||||
},
|
||||
waybillCommonAddressRows: [],
|
||||
waybillCommonAddressTarget: null,
|
||||
waybillCommonAddressPage: {
|
||||
pageSize: 10,
|
||||
currentPage: 1,
|
||||
total: 0,
|
||||
},
|
||||
waybillRouteChangeMapTarget: null,
|
||||
draftSaveLoading: false,
|
||||
crudDialogType: '',
|
||||
defaultDialogButtons: null,
|
||||
@@ -4051,7 +4000,7 @@ export default {
|
||||
this.attachmentDocumentPreviewVisible = false;
|
||||
this.attachmentImagePreviewVisible = false;
|
||||
this.waybillRouteChangeBox = false;
|
||||
this.waybillCommonAddressBox = false;
|
||||
this.waybillRouteChangeMapTarget = null;
|
||||
this.flowBox = false;
|
||||
this.transportRouteBox = false;
|
||||
this.transportAddressBox = false;
|
||||
@@ -4518,6 +4467,20 @@ export default {
|
||||
if (prop === 'feeGenerationMode') {
|
||||
return row[prop] === 'manual' ? '账单导入生成' : '系统生成';
|
||||
}
|
||||
// 计划未选时接口可能回传 planId=-1 / planName=-1,详情统一显示为空
|
||||
if (prop === 'planName' || prop === 'planId') {
|
||||
const planName = row.planName;
|
||||
if (
|
||||
planName === undefined ||
|
||||
planName === null ||
|
||||
planName === '' ||
|
||||
String(planName) === '-1' ||
|
||||
Number(planName) === -1
|
||||
) {
|
||||
return '-';
|
||||
}
|
||||
return planName;
|
||||
}
|
||||
const column = this.findColumn(this.option.column, prop);
|
||||
if (column?.formatter) return column.formatter(row, {}, row[prop]);
|
||||
if (column?.dicData) {
|
||||
@@ -4525,6 +4488,15 @@ export default {
|
||||
if (item) return item.label;
|
||||
}
|
||||
const value = row[prop];
|
||||
if (
|
||||
value === undefined ||
|
||||
value === null ||
|
||||
value === '' ||
|
||||
Number(value) === -1 ||
|
||||
String(value) === '-1'
|
||||
) {
|
||||
return '-';
|
||||
}
|
||||
if (value && typeof value === 'object') return JSON.stringify(value);
|
||||
if (typeof value === 'string' && /^[\[{]/.test(value.trim())) {
|
||||
try {
|
||||
@@ -4534,7 +4506,7 @@ export default {
|
||||
// 非 JSON 文本按原值展示。
|
||||
}
|
||||
}
|
||||
return value === undefined || value === null || value === '' ? '-' : value;
|
||||
return value;
|
||||
},
|
||||
waybillTransportMode(row = {}) {
|
||||
return (
|
||||
@@ -5029,43 +5001,22 @@ export default {
|
||||
updateWaybillRouteChangeNodes() {
|
||||
this.waybillRouteChangeNodes = this.buildWaybillRouteNodes(this.waybillRouteChangeRows);
|
||||
},
|
||||
openWaybillCommonAddressDialog(row, field) {
|
||||
this.waybillCommonAddressTarget = { row, field };
|
||||
this.waybillCommonAddressQuery = { addressName: '' };
|
||||
this.waybillCommonAddressPage.currentPage = 1;
|
||||
this.waybillCommonAddressBox = true;
|
||||
this.loadWaybillCommonAddresses();
|
||||
},
|
||||
loadWaybillCommonAddresses() {
|
||||
this.waybillCommonAddressLoading = true;
|
||||
getCommonAddressList(
|
||||
this.waybillCommonAddressPage.currentPage,
|
||||
this.waybillCommonAddressPage.pageSize,
|
||||
{
|
||||
...this.waybillCommonAddressQuery,
|
||||
allDept: 0,
|
||||
}
|
||||
)
|
||||
.then(res => {
|
||||
const data = res.data?.data || {};
|
||||
this.waybillCommonAddressRows = data.records || [];
|
||||
this.waybillCommonAddressPage.total = data.total || 0;
|
||||
})
|
||||
.finally(() => {
|
||||
this.waybillCommonAddressLoading = false;
|
||||
});
|
||||
},
|
||||
selectWaybillCommonAddress(address) {
|
||||
const target = this.waybillCommonAddressTarget;
|
||||
if (!target) return;
|
||||
target.row[`${target.field}Address`] =
|
||||
[address.regionName, address.detailAddress || address.addressName]
|
||||
.filter(Boolean)
|
||||
.join('') ||
|
||||
address.addressName ||
|
||||
'';
|
||||
this.updateWaybillRouteChangeNodes();
|
||||
this.waybillCommonAddressBox = false;
|
||||
openWaybillRouteChangeMapDialog(row, field) {
|
||||
if (!row || !field) return;
|
||||
this.waybillRouteChangeMapTarget = { row, field };
|
||||
this.transportMapTarget = field;
|
||||
this.transportMapKeyword = row[`${field}Address`] || row[`${field}Name`] || '';
|
||||
this.transportMapSelected = this.buildTransportMapSelection({
|
||||
lng: row[`${field}Longitude`],
|
||||
lat: row[`${field}Latitude`],
|
||||
address: row[`${field}Address`],
|
||||
regionName: row[`${field}Name`],
|
||||
regionCode: row[`${field}RegionCode`],
|
||||
});
|
||||
this.transportMapStatus = this.transportMapSelected.longitude
|
||||
? '已加载当前选点,可重新选点'
|
||||
: '可搜索地址或点击地图选点';
|
||||
this.transportMapBox = true;
|
||||
},
|
||||
async confirmWaybillRouteChange() {
|
||||
const row = this.waybillRouteChangeRows[0] || {};
|
||||
@@ -5475,6 +5426,26 @@ export default {
|
||||
submitRow[key] = submitRow[key].trim();
|
||||
}
|
||||
});
|
||||
// 未选计划时清空 -1 占位,避免落库后编辑/查看回显 -1
|
||||
if (
|
||||
submitRow.planId === undefined ||
|
||||
submitRow.planId === null ||
|
||||
submitRow.planId === '' ||
|
||||
Number(submitRow.planId) === -1 ||
|
||||
Number(submitRow.planId) <= 0
|
||||
) {
|
||||
submitRow.planId = null;
|
||||
if (
|
||||
!submitRow.planName ||
|
||||
String(submitRow.planName) === '-1' ||
|
||||
Number(submitRow.planName) === -1
|
||||
) {
|
||||
submitRow.planName = null;
|
||||
}
|
||||
}
|
||||
if (String(submitRow.planName) === '-1' || Number(submitRow.planName) === -1) {
|
||||
submitRow.planName = null;
|
||||
}
|
||||
return submitRow;
|
||||
},
|
||||
validateMobileFields(fields = []) {
|
||||
@@ -7909,10 +7880,15 @@ export default {
|
||||
this.$refs.crud?.clearValidate?.([`${prefix}Address`]);
|
||||
});
|
||||
},
|
||||
closeTransportMapDialog() {
|
||||
this.transportMapBox = false;
|
||||
this.waybillRouteChangeMapTarget = null;
|
||||
},
|
||||
openTransportMapDialog(target) {
|
||||
if (this.dialogReadonly) return;
|
||||
if (!this.ensureTransportTypeBeforeAddress()) return;
|
||||
const prefix = target === 'departure' ? 'departure' : 'arrival';
|
||||
this.waybillRouteChangeMapTarget = null;
|
||||
this.transportMapTarget = prefix;
|
||||
this.transportMapKeyword = this.form[`${prefix}Address`] || this.form[`${prefix}Name`] || '';
|
||||
this.transportMapSelected = this.buildTransportMapSelection({
|
||||
@@ -8071,6 +8047,23 @@ export default {
|
||||
this.$message.warning('请先搜索或点击地图完成选点');
|
||||
return;
|
||||
}
|
||||
if (this.waybillRouteChangeMapTarget) {
|
||||
const { row, field } = this.waybillRouteChangeMapTarget;
|
||||
row[`${field}Address`] =
|
||||
this.transportMapSelected.detailAddress || row[`${field}Address`] || '';
|
||||
if (this.transportMapSelected.regionName) {
|
||||
row[`${field}Name`] = this.transportMapSelected.regionName;
|
||||
}
|
||||
row[`${field}Longitude`] = this.transportMapSelected.longitude;
|
||||
row[`${field}Latitude`] = this.transportMapSelected.latitude;
|
||||
if (this.transportMapSelected.regionCode) {
|
||||
row[`${field}RegionCode`] = this.transportMapSelected.regionCode;
|
||||
}
|
||||
this.updateWaybillRouteChangeNodes();
|
||||
this.waybillRouteChangeMapTarget = null;
|
||||
this.transportMapBox = false;
|
||||
return;
|
||||
}
|
||||
const prefix = this.transportMapTarget;
|
||||
this.form[`${prefix}Address`] =
|
||||
this.transportMapSelected.detailAddress || this.form[`${prefix}Address`];
|
||||
@@ -10161,6 +10154,10 @@ export default {
|
||||
font-weight: 500;
|
||||
vertical-align: baseline;
|
||||
}
|
||||
|
||||
&.is-link[role='link'] {
|
||||
cursor: pointer;
|
||||
}
|
||||
}
|
||||
|
||||
&__waybill-route {
|
||||
|
||||
Reference in New Issue
Block a user