This commit is contained in:
xman 2025-04-17 16:55:10 +08:00
parent e36704bd28
commit 3af4172660
4 changed files with 18 additions and 16 deletions

View File

@ -483,7 +483,7 @@ class Order extends Backend
if(!empty($order->dispatch)){ if(!empty($order->dispatch)){
$orderLogic = new OrderLogic(); $orderLogic = new OrderLogic();
$orderLogic->cancelOrderDispatch($order->dispatch,$this->auth,'后台取消订单,操作人'.$this->auth->nickname,false); $orderLogic->cancelOrderDispatch($order->dispatch,$this->auth,'订单被取消',false);
} }
//日志 //日志

View File

@ -378,12 +378,7 @@ class Dispatch2 extends Backend
]; ];
Hook::listen('order_dispatch_change', $hookParams);*/ Hook::listen('order_dispatch_change', $hookParams);*/
$remark2='操作人:'.$this->auth->nickname; $OrderLogic->cancelOrderDispatch($item,$this->auth,$remark);
if(!empty($remark)){
$remark2 .= ',说明:'.$remark;
}
$OrderLogic->cancelOrderDispatch($item,$this->auth,$remark2);
} }
Db::commit(); Db::commit();
} catch (PDOException | Exception $e) { } catch (PDOException | Exception $e) {

View File

@ -122,19 +122,18 @@ class OrderLogic
$hookParams = [ $hookParams = [
'dispatch' => $dispatch, 'dispatch' => $dispatch,
'remark' => '后台取消,操作人:'.$auth->nickname, 'remark' => '操作说明:'.$remark?:'无'.',操作人:'.$auth->nickname
]; ];
Hook::listen('order_dispatch_change', $hookParams); Hook::listen('order_dispatch_change', $hookParams);
if($cancelOrder){ if($cancelOrder){
$order = Order::where('id',$dispatch->id)->where('status',Order::STATUS_DISPATCHED)->find(); $order = Order::where('id',$dispatch->order_id)->where('status',Order::STATUS_DISPATCHED)->find();
if(!empty($order)){ if(empty($order)){
throw new Exception('未找到关联订单'); throw new Exception('未找到关联订单');
} }
//回退订单状态 //回退订单状态
$order->allowField(true)->save(['status' => Order::STATUS_DISPATCHING]); $order->status = Order::STATUS_DISPATCHING;
$params['order'] = $order; $params['order'] = $order;
$params['role'] = 1; $params['role'] = 1;

View File

@ -71,20 +71,20 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form','layer'], function ($,
// {field: 'order.source', title: __('Order.source')}, // {field: 'order.source', title: __('Order.source')},
{field: 'order.customer', title: __('Order.customer'), operate: 'LIKE'}, {field: 'order.customer', title: __('Order.customer'), operate: 'LIKE'},
{field: 'order.tel', title: __('Order.tel'), operate: 'LIKE'}, {field: 'order.tel', title: __('Order.tel'), operate: 'LIKE'},
{field: 'order.address', title: __('Order.address'), operate: 'LIKE', table: table, class: 'autocontent', formatter: Table.api.formatter.content}, {field: 'order.address', title: __('Order.address'), operate: false, table: table, class: 'autocontent', formatter: Table.api.formatter.content},
{field: 'order.item_title', title: __('Order.item_title'), operate: 'LIKE'}, {field: 'order.item_title', title: __('Order.item_title'), operate: 'LIKE'},
{field: 'order.detail', title: __('Order.detail'), operate: 'LIKE', table: table, class: 'autocontent', formatter: Table.api.formatter.content}, {field: 'order.detail', title: __('Order.detail'), operate: false, table: table, class: 'autocontent', formatter: Table.api.formatter.content},
{field: 'order.images', title: __('Order.images'), operate: false, events: Table.api.events.image, formatter: Table.api.formatter.images}, {field: 'order.images', title: __('Order.images'), operate: false, events: Table.api.events.image, formatter: Table.api.formatter.images},
{field: 'remark', title: __('Remark'), operate: 'LIKE', table: table, class: 'autocontent', formatter: Table.api.formatter.content}, {field: 'remark', title: __('Remark'), operate: false, table: table, class: 'autocontent', formatter: Table.api.formatter.content},
// {field: 'is_notice', title: __('Is_notice'), searchList: {"0":__('Is_notice 0'),"1":__('Is_notice 1')}, formatter: Table.api.formatter.normal}, // {field: 'is_notice', title: __('Is_notice'), searchList: {"0":__('Is_notice 0'),"1":__('Is_notice 1')}, formatter: Table.api.formatter.normal},
// {field: 'admin_id', title: __('Admin_id')}, // {field: 'admin_id', title: __('Admin_id')},
{field: 'admin_user', title: __('Admin_user'), operate: 'LIKE'}, {field: 'admin_user', title: __('Admin_user'), operate: 'LIKE'},
{field: 'create_time', title: __('Create_time'), operate:'RANGE', addclass:'datetimerange', autocomplete:false}, {field: 'create_time', title: __('Create_time'), operate:'RANGE', addclass:'datetimerange', autocomplete:false},
{field: 'update_time', title: __('Update_time'), operate:'RANGE', addclass:'datetimerange', autocomplete:false}, {field: 'update_time', title: __('Update_time'), operate:false, addclass:'datetimerange', autocomplete:false},
{field: 'finish_time', title: __('Finish_time'), operate:'RANGE', addclass:'datetimerange', autocomplete:false}, {field: 'finish_time', title: __('Finish_time'), operate:'RANGE', addclass:'datetimerange', autocomplete:false},
{field: 'operate', title: __('Operate'), table: table, events: Table.api.events.operate, formatter: Table.api.formatter.operate, {field: 'operate', title: __('Operate'), table: table, events: Table.api.events.operate, formatter: Table.api.formatter.operate,
@ -189,6 +189,12 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form','layer'], function ($,
// 关闭弹出框 // 关闭弹出框
Layer.close(index); Layer.close(index);
// 显示 loading 层
var loadingIndex = Layer.load(1, {
shade: [0.1, '#fff'], // 背景遮罩,可选
});
//这里可以加入 Ajax 请求处理逻辑 //这里可以加入 Ajax 请求处理逻辑
$.ajax({ $.ajax({
url: 'orders/dispatch2/del', url: 'orders/dispatch2/del',
@ -198,6 +204,7 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form','layer'], function ($,
reason: inputValue, reason: inputValue,
}, },
success: function (response,data) { success: function (response,data) {
Layer.close(loadingIndex); // 关闭 loading
if(response.code == 1){ if(response.code == 1){
// 成功提示 // 成功提示
Toastr.success(data.message || "操作成功!"); Toastr.success(data.message || "操作成功!");
@ -209,6 +216,7 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form','layer'], function ($,
return; return;
}, },
error: function () { error: function () {
Layer.close(loadingIndex); // 关闭 loading
Toastr.error("操作失败,请重试!"); Toastr.error("操作失败,请重试!");
return; return;
} }