✨ 运单管理新增「确认回单」行操作

回单节点配成「需业务员确认」时,运单会一直停在进行中等人确认,此前后台没有这个入口。
在与「完成」并列的位置加一个「确认回单」行操作:只在进行中的运单上出现,沿用「完成」的
权限码(它比完成更严——后端还要校验司机打卡节点齐全且无未了结异常,故不会多开出任何权限)。
确认后不可撤销,提示里写明。
This commit is contained in:
2026-10-18 12:15:07 +08:00
parent 6d80ffde6c
commit 2ae817ec38
3 changed files with 31 additions and 2 deletions
+7
View File
@@ -14,6 +14,13 @@ export const cancel = api.cancel;
export const reassign = api.reassign; export const reassign = api.reassign;
export const complete = api.complete; export const complete = api.complete;
export const batchComplete = api.batchComplete; export const batchComplete = api.batchComplete;
/** 确认回单:回单节点配成「需业务员确认」时用;后端校验司机打卡节点齐全且无未了结异常后才置完成 */
export const confirmReturn = id =>
request({
url: `${baseUrl}/confirm-return`,
method: 'post',
params: { id },
});
export const changeRoute = data => export const changeRoute = data =>
request({ request({
url: `${baseUrl}/change-route`, url: `${baseUrl}/change-route`,
+1 -1
View File
@@ -471,7 +471,7 @@ export const config = {
endDateRange: ['endDateStart', 'endDateEnd'], endDateRange: ['endDateStart', 'endDateEnd'],
createTimeRange: ['createTimeStart', 'createTimeEnd'], createTimeRange: ['createTimeStart', 'createTimeEnd'],
}, },
actions: ['copy', 'cancel', 'reassign', 'complete', 'batchComplete'], actions: ['copy', 'cancel', 'reassign', 'complete', 'batchComplete', 'confirmReturn'],
detailButton: true, detailButton: true,
statusProp: 'businessStatus', statusProp: 'businessStatus',
statusTextProp: 'businessStatusName', statusTextProp: 'businessStatusName',
@@ -1594,6 +1594,13 @@
<el-link type="primary" v-if="canComplete(row)" @click="handleAction('complete', row)"> <el-link type="primary" v-if="canComplete(row)" @click="handleAction('complete', row)">
{{ completeActionLabel }} {{ completeActionLabel }}
</el-link> </el-link>
<el-link
type="primary"
v-if="canConfirmReturn(row)"
@click="handleAction('confirmReturn', row)"
>
确认回单
</el-link>
<el-link type="primary" v-if="canMaintainMileage(row)" @click="openMileageDialog(row)"> <el-link type="primary" v-if="canMaintainMileage(row)" @click="openMileageDialog(row)">
维护里程 维护里程
</el-link> </el-link>
@@ -5113,6 +5120,15 @@ export default {
const status = this.statusValue(row); const status = this.statusValue(row);
return status === 'processing' || status === 'running'; return status === 'processing' || status === 'running';
}, },
canConfirmReturn(row) {
return (
this.hasAction('confirmReturn') &&
this.hasPermission(`${this.config.permission}_complete`) &&
!this.readonlyScope &&
!row.readonly &&
this.statusValue(row) === 'running'
);
},
canMaintainMileage(row) { canMaintainMileage(row) {
return ( return (
this.config.permission === 'waybill_manage' && this.config.permission === 'waybill_manage' &&
@@ -10150,8 +10166,14 @@ export default {
cancel: '取消', cancel: '取消',
complete: this.completeActionLabel, complete: this.completeActionLabel,
reassign: '重新派单', reassign: '重新派单',
confirmReturn: '确认回单',
}[action]; }[action];
this.$confirm(`确定${actionName}该${this.config.title}?`, '提示', { // 确认回单是终态动作(本轮不做撤销),把后果写在提示里,别让人以为还能退回
const confirmText =
action === 'confirmReturn'
? '确认回单后该运单将置为已完成,且不可撤销。是否继续?'
: `确定${actionName}该${this.config.title}?`;
this.$confirm(confirmText, '提示', {
confirmButtonText: '确定', confirmButtonText: '确定',
cancelButtonText: '取消', cancelButtonText: '取消',
type: 'warning', type: 'warning',