ajun 4 лет назад
Родитель
Сommit
051f9793e6

+ 19 - 13
app/Http/Controllers/RejectedController.php

@@ -275,21 +275,27 @@ class RejectedController extends Controller
         app('LogService')->log(__METHOD__,__FUNCTION__,json_encode($request->toArray()),Auth::user()['id']);
         return ['success'=>'false','fail_info'=>'数据更新失败'];
     }
-    public function cancelCheck(Request $request)
+
+    public function cancelCheckApi(Request $request): array
     {
-        if(!Gate::allows('退货管理-审核')){ return ['success'=>'false','fail_info'=>"没有权限"]; }
-        $rejected=RejectedBill::query()->find($request->input('id')??'');
-        if ($rejected){
-            $rejected->is_checked=0;
-            $rejected->checked_numbers=null;
-            $re=$rejected->update();
-            if ($re){
-                return ['success'=>'true','id'=>$request->input('id')];
-            }
-        }
-        app('LogService')->log(__METHOD__,__FUNCTION__,json_encode($request->toArray()),Auth::user()['id']);
-        return ['success'=>'false','fail_info'=>'数据更新失败'];
+        if(!Gate::allows('退货管理-审核')) return ['success'=>'false','fail_info'=>"没有权限"];
+
+        if (!$request->has('ids'))
+            return ['success'=>'false','fail_info'=>"没有选中对应的参数"];
+
+        $rejected = RejectedBill::query()->find($request->input('ids'));
+
+        if (!$rejected)
+            return ['success'=>'false','fail_info'=>'对应的退货单不存在'];
+
+        if (RejectedBill::query()->whereIn('id',$request->input('ids'))->update(['is_checked' => 0, 'checked_numbers' => null]))
+            return ['success'=>'true', 'data' => $rejected->map(function($item){
+                return $item->id;
+            })];
+
+        return ['success'=>'true', 'fail_info' => '刷新当前页面重试'];
     }
+
     public function ajaxCheckAll(Request $request)
     {
         if(!Gate::allows('退货管理-审核')){ return ['success'=>'false','fail_info'=>"没有权限"];  }

+ 20 - 35
resources/views/rejected/search/general.blade.php

@@ -45,8 +45,11 @@
                 @can('退货管理-编辑')
                     <a class="btn btn-sm btn-outline-dark" href="{{url('rejected/importRejectedNumber')}}" style="cursor: pointer">批量填充订单号</a>
                 @endcan
+
                 <button class="btn btn-sm ml-2 btn-primary" @click="copyLogisticNumber()">复制快递单号</button>
-                <table class="table table-striped table-sm table-bordered table-hover text-nowrap table-body td-min-width-80"  style="background: #fff;" id="table">
+                <button class="btn btn-sm btn-outline-dark" @click="cancelCheck">取消审核 </button>
+
+                    <table class="table table-striped table-sm table-bordered table-hover text-nowrap table-body td-min-width-80"  style="background: #fff;" id="table">
                     <tr v-for="(rejectedBill,i) in rejectedBills" :data-id="rejectedBill.id"  @click="selectTr===i+1?selectTr=0:selectTr=i+1" :class="selectTr===i+1?'focusing' : ''">
                         <td>
                             <label><input type="checkbox" :value="rejectedBill.id"/></label>
@@ -54,17 +57,13 @@
                         <td class="text-nowrap">
                             <span class="text-muted" style="opacity:0.7">@{{ i+1 }}</span> <span v-if="rejectedBill.order_issue_rejected_bill" class="badge badge-pill badge-danger">问题件</span>
                         </td>
-                        <td class="text-muted" @mouseover="showCancelBtn(rejectedBill)"
-                            @mouseleave="blankCancelBtn(rejectedBill)">
-                            <span class="text-center">
+                        <td class="text-muted text-center">
                             <span v-if="rejectedBill.is_checked==1">
-                                <span @click="cancelCheck(rejectedBill.id)" class="btn btn-sm btn-outline-secondary" v-if="rejectedBill.isShowCancelBtn">取消审核</span>
-                                <span  class="text-success" v-if="!(rejectedBill.isShowCancelBtn)">
+                                <span  class="text-success">
                                     <span class="fa fa-check-square" ></span> @{{ rejectedBill.checked_numbers }}
                                 </span>
                             </span>
                             <span v-else>未审核</span>
-                                </span>
                         </td>
                         <td class="" :class="[rejectedBill.is_finished==1?'text-success':'text-muted']">@{{rejectedBill.is_finished | yesNo}}</td>
                         <td class="" :class="[rejectedBill.is_loaded==1?'text-success':'text-muted']">
@@ -199,8 +198,6 @@
                 ],
                 selectTr:'',
                 upList:{},
-                cancelCheckedHover:null,
-                isShowCancelBtn:false,
             },
             mounted:function(){
                 $(".up").slideUp();
@@ -276,33 +273,21 @@
                 });
             },
             methods:{
-                showCancelBtn(a){
-                    a.isShowCancelBtn=true;
-                    this.$forceUpdate();
-                },
-                blankCancelBtn(a){
-                    a.isShowCancelBtn=false;
-                    this.$forceUpdate();
-                },
-                cancelCheck(id){
-                    let _this=this;
-                    let url= '{{url("rejected/index/cancelCheck")}}';
-                    axios.post(url,{'id':id}).then(function (response) {
-                        if(response.data.success){
-                           _this.rejectedBills.forEach(function (rejectedBill){
-                                if (rejectedBill.id==response.data.id){
-                                    rejectedBill.is_checked=0;
-                                }
-                           })
-                            tempTip.setDuration(2000);
-                            tempTip.showSuccess('取消审核成功');
-                        }else{
-                            tempTip.setDuration(3000);
-                            tempTip.show('取消审核失败!'+response.data.fail_info);
+                cancelCheck() {
+                    let url = '{{url("apiLocal/rejected/cancelCheck")}}';
+                    let data = {ids: checkData};
+                    window.tempTip.setDuration(2000);
+                    window.axios.post(url, data).then(res => {
+                        if (res.data.success) {
+                            this.rejectedBills.forEach(item => {
+                                if (res.data.data.includes(item.id)) item.is_checked = 0;
+                            });
+                            window.tempTip.showSuccess('取消审核成功!');
+                            return;
                         }
-                    }).catch(function (err) {
-                        tempTip.setDuration(3000);
-                        tempTip.show('取消审核失败!网络异常:'+err);
+                        window.tempTip.show(res.data.message ? res.data.message : '取消审核失败!');
+                    }).catch(err => {
+                        tempTip.show('取消审核失败!网络异常:' + err);
                     });
                 },
                 unfold(id){

+ 5 - 0
routes/apiLocal.php

@@ -22,6 +22,11 @@ Route::post('rejectedBill/apiConfirmBeStored', 'RejectedBillController@apiConfir
 Route::post('rejectedBill/seekOrder','RejectedBillController@seekOrder');
 Route::post('rejectedBill/importRejectedNumber','RejectedBillController@disposeImportApi');
 
+/** 退货 */
+Route::group(['prefix' => 'rejected' ],function(){
+    Route::post('cancelCheck','RejectedController@cancelCheckApi');
+});
+
 Route::post('logistic/numberFeatures/computeLogisticByNumber', 'LogisticNumberFeatureController@apiComputeLogisticByNumber');
 Route::post('logistic/logisticNumberReturnIsUnique', 'RejectedBillController@apiLogisticNumberReturnIsUnique');