瀏覽代碼

问题件处理结果 删除的如果是完结条目,将处理状态改为空

ajun 5 年之前
父節點
當前提交
a00e38f7f8

+ 24 - 3
app/Http/Controllers/OrderIssueProcessLogController.php

@@ -2,6 +2,7 @@
 
 namespace App\Http\Controllers;
 
+use App\OrderIssue;
 use App\OrderIssueProcessLog;
 use App\Services\LogService;
 use App\Services\OrderIssueProcessLogService;
@@ -13,7 +14,11 @@ use Illuminate\Support\Facades\Gate;
 class OrderIssueProcessLogController extends Controller
 {
 
-
+    /**
+     * 处理日志创建
+     * @param Request $request
+     * @return array
+     */
     public function apiStore(Request $request)
     {
         if (!Gate::allows('订单管理-问题件-编辑')) {
@@ -41,15 +46,31 @@ class OrderIssueProcessLogController extends Controller
         }
     }
 
-    public function apiDestroy(Request $request){
+    /**
+     * 删除处理日志
+     * @param Request $request
+     * @return array|bool[]
+     * @throws \Exception
+     */
+    public function destroyApi(Request $request): array
+    {
         if(!$request->filled('id')){
             return ['success'=>false,'fail_info'=>'没有传入对应参数'];
         }
-        OrderIssueProcessLog::query()->where('id',$request->input('id'))->delete();
+        /** @var OrderIssueProcessLog $orderIssueProcessLog */
+        $orderIssueProcessLog = OrderIssueProcessLog::query()->where('id',$request->input('id'))->first();
+        // 删除的如果是完结条目,将处理状态改为空
+        if($orderIssueProcessLog['type'] === '结束') OrderIssue::query()->where('id',$orderIssueProcessLog['order_issue_id'])->update(['final_status'=>null]);
+        $orderIssueProcessLog->delete();
         app('LogService')->log(__METHOD__, __FUNCTION__, json_encode($request->getContent()));
         return ['success'=>true];
     }
 
+    /**
+     * 批量完结订单
+     * @param Request $request
+     * @return array
+     */
     public function batchStoreApi(Request $request){
         if (!Gate::allows('订单管理-问题件-编辑')) {
             return ['success' => false, 'fail_info' => '没有对应的权限'];

+ 4 - 10
resources/views/order/issue/index.blade.php

@@ -418,7 +418,7 @@
                                             <td class="text-muted" style="min-width: 170px">@{{ log.created_at }}</td>
                                             @can('订单管理-问题件-处理结果删除')
                                                 <td style="" class="m-0 p-0 border-0">
-                                                    <button type="button" class="btn btn-sm btn-outline-danger m-0 del-btn invisible" @click="deleteOrderIssueLog(log,orderIssue.id)">删</button>
+                                                    <button type="button" class="btn btn-sm btn-outline-danger m-0 del-btn invisible" @click="deleteOrderIssueLog(log,orderIssue,index,logIndex)">删</button>
                                                 </td>
                                             @endcan
                                         </template>
@@ -1248,8 +1248,7 @@
                         tempTip.show('网络异常:' + err);
                     });
                 },
-                deleteOrderIssueLog(log, OrderIssueId) {
-                    let _this = this;
+                deleteOrderIssueLog(log, orderIssue,index,logIndex) {
                     if(!confirm('是否删除当前记录'))return;
                     if(log.type === '创建'){
                         tempTip.show('创建记录不能删除');
@@ -1257,13 +1256,8 @@
                     }
                     axios.post("{{url('apiLocal/order/issue/log/destroy')}}", {id: log.id}).then(function (res) {
                         if (res.data.success) {
-                            _this.orderIssues.forEach(function (orderIssue) {
-                                if (orderIssue.id == OrderIssueId) {
-                                    orderIssue.logs.forEach(function (item, index) {
-                                        if (item.id == log.id)orderIssue.logs.splice(index, 1);
-                                    });
-                                }
-                            })
+                            if(log.type ==='结束')orderIssue.final_status = '';
+                            orderIssue.logs.splice(logIndex,1);
                             tempTip.setDuration(2000);
                             tempTip.showSuccess('删除成功');
                             return;

+ 1 - 1
routes/apiLocal.php

@@ -80,7 +80,7 @@ Route::group(['prefix' => 'order'], function () {
 
         Route::group(['prefix'=>'log'],function(){
             Route::post('store', 'OrderIssueProcessLogController@apiStore');
-            Route::post('destroy', 'OrderIssueProcessLogController@apiDestroy');
+            Route::post('destroy', 'OrderIssueProcessLogController@destroyApi')->name('order.issue.log.destroyApi');
             Route::post('batchStore','OrderIssueProcessLogController@batchStoreApi');
         });
         Route::group(['prefix'=>'recycle'],function(){