Procházet zdrojové kódy

Merge branch 'change_order_issue' into zengjun

ajun před 4 roky
rodič
revize
e91a9da675

+ 12 - 0
app/Http/Controllers/OrderIssueController.php

@@ -807,4 +807,16 @@ class OrderIssueController extends Controller
             return ['success'=>false,'error'=>'删除失败'];
         }
     }
+
+    public function batchUpdateFinalStatusApi(Request $request,OrderIssueService $service): array
+    {
+        if (!Gate::allows('订单管理-问题件-编辑')) return ['success'=>false,'error'=>'没有对应权限'];
+        try {
+            $service->batchUpdateFinalStatus($request->input('ids', []), $request->input('final_status'));
+            return ['success'=>true];
+        } catch (Exception $e) {
+            return ['success'=>false,'message' => '批量修改异常'];
+        }
+
+    }
 }

+ 5 - 0
app/Http/Controllers/TestController.php

@@ -712,4 +712,9 @@ sql;
             $workOrder->save();
         }
     }
+
+    public function SyncOrder11(){
+        WorkOrder::query()->whereIn('id',['3420','3421','3422'])->update(['status'=>'3']);
+        WorkOrder::query()->whereIn('id',['3423','3424','3425'])->update(['status'=>'3']);
+    }
 }

+ 5 - 0
app/Services/OrderIssueService.php

@@ -463,5 +463,10 @@ class OrderIssueService
             else $orderIssue->is_work_order = false;
         }
     }
+
+    public function batchUpdateFinalStatus($ids,$status)
+    {
+        OrderIssue::query()->whereIn('id',$ids)->update(['final_status'=>$status]);
+    }
 }
 

+ 26 - 0
resources/views/order/issue/_batchUpdateFinalStatus.blade.php

@@ -0,0 +1,26 @@
+<div class="modal fade " id="batch-update-final-status" tabindex="-1" role="dialog" aria-labelledby="checkModalLabel"
+     aria-hidden="true">
+    <div class="modal-dialog modal-md modal-dialog-centered">
+        <div class="modal-content">
+            <div class="modal-header">
+                <h5 class="modal-title" id="update-final-status">修改最终状态</h5>
+                <button type="button" class="close" data-dismiss="modal" aria-label="Close">
+                    <span aria-hidden="true">&times;</span>
+                </button>
+            </div>
+            <div class="modal-body">
+                <div class="">
+                    <select name="" id="update-final-status-select" class="form-control ">
+                        <option v-for="statues in finalStatus" :value="statues.value" v-text="statues.value"></option>
+                    </select>
+                </div>
+            </div>
+            <div class="modal-footer">
+                <button type="button" class="btn btn-secondary" data-dismiss="modal">关闭
+                </button>
+                <button type="button" class="btn btn-outline-primary" @click="batchUpdateRejectingStatus">提交
+                </button>
+            </div>
+        </div>
+    </div>
+</div>

+ 33 - 1
resources/views/order/issue/index.blade.php

@@ -76,6 +76,12 @@
                                     @click="archiveOrderIssue">批量归档
                             </button>
                         @endcan
+                            <button type="button"
+                                    class="btn btn-outline-primary btn-sm form-control-sm tooltipTarget ml-1"
+                                    data-toggle="modal" data-target="#batch-update-final-status"
+                                    v-show="checkData.length > 0"
+                                    >批量修改最终状态
+                            </button>
                     @endcannot
                 </div>
                 <table class="table table-sm table-striped table-bordered table-hover card-body p-0 m-0"
@@ -1107,6 +1113,7 @@
                 </div>
             </div>
         </div>
+        @include('order.issue._batchUpdateFinalStatus')
         <textarea id="clipboardDiv" style="opacity:0"></textarea>
     </div>
 
@@ -2429,6 +2436,32 @@
                         tempTip.show("网络异常:" + error);
                     });
                 },
+                batchUpdateRejectingStatus(){
+                    let url = "{{route('orderIssue.batchUpdate.finalStatusApi')}}";
+                    let data = {
+                        ids:this.checkData,
+                        final_status:document.getElementById('update-final-status-select').value
+                    };
+                    window.tempTip.waitingTip('修改中....');
+                    window.tempTip.setIndex(1999);
+                    window.axios.post(url,data).then(res=>{
+                        window.tempTip.cancelWaitingTip();
+                        if (res.data.success){
+                            $("#batch-update-final-status").modal('hide');
+                            this.orderIssues.forEach(item=>{
+                                if (this.checkData.includes(item.id)){
+                                    item.final_status= data.final_status
+                                }
+                            });
+                            window.tempTip.showSuccess("修改成功");
+                        } else {
+                            window.tempTip.show("修改失败:"+res.data.message);
+                        }
+                    }).catch(err=>{
+                        window.tempTip.cancelWaitingTip();
+                        window.tempTip.show("修改异常");
+                    });
+                },
                 listenTBodyResize() {
                     this.$set(this, 'toggleBtnHeight', document.getElementById('tbody').clientHeight);
                 },
@@ -2442,7 +2475,6 @@
                             item.tag = 1;
                         } else {
                             window.tempTip.show(res.data.message ? res.data.message : '标记出现异常');
-
                         }
                     }).catch(err => {
                         window.tempTip.show(err);

+ 2 - 0
routes/apiLocal.php

@@ -83,6 +83,8 @@ Route::group(['prefix' => 'order'], function () {
         Route::post('archiveOrderIssue','OrderIssueController@archiveOrderIssueApi');
         Route::post('destroySecondLogisticNumber','OrderIssueController@destroySecondLogisticNumberApi');
 
+        Route::post('batchUpdate/finalStatus','OrderIssueController@batchUpdateFinalStatusApi')->name('orderIssue.batchUpdate.finalStatusApi');
+
         Route::match(['get','post'],'disposeImport','OrderIssueController@disposeImportApi');
         Route::post('financeConfirm','OrderIssueController@financeConfirmApi');