⚡ 运单管理行操作「完成」合并为单一入口

待回单确认仍走确认回单(校验打卡节点与未了结异常),进行中/处理中二次确认后置完成。
This commit is contained in:
2026-11-09 20:33:53 +08:00
parent 16fe1fe091
commit 6155ec8c57
@@ -1599,14 +1599,7 @@
<el-link type="primary" v-if="canCancel(row)" @click="handleAction('cancel', row)">
取消
</el-link>
<el-link type="primary" v-if="canComplete(row)" @click="handleAction('complete', row)">
{{ completeActionLabel }}
</el-link>
<el-link
type="primary"
v-if="canConfirmReturn(row)"
@click="handleAction('confirmReturn', row)"
>
<el-link type="primary" v-if="canComplete(row)" @click="handleComplete(row)">
{{ completeActionLabel }}
</el-link>
<el-link type="primary" v-if="canMaintainMileage(row)" @click="openMileageDialog(row)">
@@ -5178,12 +5171,9 @@ export default {
return false;
}
const status = this.statusValue(row);
// 待回单确认的「完成」由确认回单入口承担(走打卡节点与未了结异常校验);
// 只有确认回单不可用时才退回这里的普通完成
if (status === 'pending_return_confirm') {
return !this.canConfirmReturn(row);
}
return status === 'processing' || status === 'running';
// 同一枚「完成」按钮覆盖两种状态:待回单确认走确认回单(后端校验司机打卡节点齐全且无未了结异常),
// 进行中/处理中二次确认后直接置完成
return status === 'processing' || status === 'running' || status === 'pending_return_confirm';
},
canConfirmReturn(row) {
return (
@@ -10252,6 +10242,14 @@ export default {
this.mileageForm = { id: '', mileage: '', mileageRemark: '' };
this.$refs.mileageFormRef?.clearValidate();
},
// 行操作「完成」的唯一入口:待回单确认的运单走确认回单(后端校验司机打卡节点齐全且无未了结异常,
// 配置里没有确认回单动作时退回普通完成);进行中/处理中的运单二次确认后直接置完成。
handleComplete(row) {
if (this.canConfirmReturn(row)) {
return this.handleAction('confirmReturn', row);
}
return this.handleAction('complete', row);
},
handleAction(action, row) {
if (action === 'reassign') {
this.openReassignDrawer(row);
@@ -10265,11 +10263,13 @@ export default {
reassign: '重新派单',
confirmReturn: '完成',
}[action];
// 回单确认是终态动作(本轮不做撤销),把后果写在提示里,别让人以为还能退回
const confirmText =
action === 'confirmReturn'
? '回单确认后该运单将置为已完成,且不可撤销。是否继续?'
: `确定${actionName}该${this.config.title}?`;
// 回单确认与「完成」都是终态动作(本轮不做撤销),把后果写在提示里,别让人以为还能退回
let confirmText = `确定${actionName}该${this.config.title}?`;
if (action === 'confirmReturn') {
confirmText = '回单确认后该运单将置为已完成,且不可撤销。是否继续?';
} else if (action === 'complete') {
confirmText = `确定完成该${this.config.title}?完成后将置为已完成,且不可撤销。`;
}
this.$confirm(confirmText, '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',