Преглед на файлове

添加批量修改问题件类型

ajun преди 4 години
родител
ревизия
a0c44ef2b9

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

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

+ 5 - 0
app/Services/OrderIssueService.php

@@ -468,5 +468,10 @@ class OrderIssueService
     {
         OrderIssue::query()->whereIn('id',$ids)->update(['final_status'=>$status]);
     }
+
+    public function batchUpdateIssueType($ids,$orderIssueTypeID)
+    {
+        OrderIssue::query()->whereIn('id',$ids)->update(['order_issue_type_id'=>$orderIssueTypeID]);
+    }
 }
 

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

@@ -0,0 +1,26 @@
+<div class="modal fade " id="batch-update-issue-type" 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-update-issue">修改问题件类型</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-order-issue-select" class="form-control ">
+                        <option v-for="type in orderIssueType" :value="type.name" v-text="type.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="batchUpdateOrderIssue">提交
+                </button>
+            </div>
+        </div>
+    </div>
+</div>

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

@@ -82,6 +82,11 @@
                                     v-show="checkData.length > 0"
                                     >批量修改最终状态
                             </button>
+                            <button type="button"
+                                    class="btn btn-outline-primary btn-sm form-control-sm tooltipTarget ml-1"
+                                    data-toggle="modal" data-target="#batch-update-issue-type"
+                                    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"
@@ -1114,6 +1119,7 @@
             </div>
         </div>
         @include('order.issue._batchUpdateFinalStatus')
+        @include('order.issue._change_order_issue_type')
         <textarea id="clipboardDiv" style="opacity:0"></textarea>
     </div>
 
@@ -2483,7 +2489,32 @@
                 isDB(item) {
                     let arr = [14, 15, 28, 29, 72, 87, 121];
                     return arr.indexOf(item) >= 0;
-                }
+                },
+                batchUpdateOrderIssue(){
+                    let url = "{{route('orderIssue.batchUpdate.issueTypeApi')}}";
+                    let data = {
+                        ids:this.checkData,
+                        order_issue_type_id:document.getElementById('update-order-issue-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-issue-type").modal('hide');
+                            this.orderIssues.forEach(item=>{
+                                if (this.checkData.includes(item.id)){
+                                    item.order_issue_type_id= data.order_issue_type_id
+                                }
+                            });
+                            window.tempTip.showSuccess("修改成功");
+                        } else {
+                            window.tempTip.show("修改失败:"+res.data.message);
+                        }
+                    }).catch(err=>{
+                        window.tempTip.cancelWaitingTip();
+                        window.tempTip.show("修改异常");
+                    });                }
             },
             filters: {
                 date: function (value) {

+ 1 - 0
routes/apiLocal.php

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