Просмотр исходного кода

批量操作拦截和信息更改

loustwo 4 лет назад
Родитель
Сommit
b88224ab8a

+ 10 - 0
app/Http/Controllers/WorkOrderInformationChangeController.php

@@ -4,6 +4,7 @@ namespace App\Http\Controllers;
 
 use App\Services\OrderService;
 use App\Services\WorkOrderInformationChangeService;
+use App\WorkOrder;
 use App\WorkOrderDetail;
 use Illuminate\Http\Request;
 use Illuminate\Support\Facades\Gate;
@@ -76,4 +77,13 @@ class WorkOrderInformationChangeController extends Controller
         $data = $this->service->getDefaultWith($detail->work_order_id);
         return ['success' => true, 'data' => $data];
     }
+
+    public function baoShiBatchReviewApi(Request $request): array
+    {
+        if (Gate::denies('订单管理-工单处理-宝时编辑'))
+            return ['success' => false, 'message' => '没有对应权限'];
+        $workOrder = WorkOrder::query()->find($request->input('ids'));
+        $this->service->baoShiBatchReviewInformationChange($workOrder,$request->input('process_progress'));
+        return ['success' => true];
+    }
 }

+ 13 - 0
app/Services/WorkOrderInformationChangeService.php

@@ -99,4 +99,17 @@ class WorkOrderInformationChangeService extends WorkOrderService
         $detail->change('待货主完结',$params['process_progress'],'宝时终审');
         $detail->workOrder->change('待货主完结',$params['process_progress'],'宝时终审');
     }
+
+    /**
+     * 宝时批量终审
+     * @param $workOrders
+     * @param $processProgress
+     */
+    public function baoShiBatchReviewInformationChange($workOrders,$processProgress){
+        $params = ['process_progress'=>$processProgress];
+        foreach ($workOrders as $workOrder){
+            $detail = $workOrder->details()->where('order_issue_type_id',$workOrder->order_issue_type_id)->where('status','!=',5)->orderByDesc('created_at')->first();
+            if ($detail) $this->baoShiReviewInformationChange($detail,$params);
+        }
+    }
 }

+ 20 - 26
resources/views/order/workOrder/_batch_edit_work_order.blade.php

@@ -1,27 +1,21 @@
-<div class="modal fade" id="edit-work-order-modal" data-backdrop="static" data-keyboard="false" tabindex="-1" aria-labelledby="staticBackdropLabel" aria-hidden="true" z-index="51">
-    <div class="modal-dialog">
-        <div class="modal-content">
-            <div class="modal-header">
-                <h5 class="modal-title" id="edit-work-order">批量修改</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="form-group">
-                    <label for="">
-                        当前进度
-                    </label>
-                    <select v-model="" class="form-control" v-modal="batchEditWorkOrder.process_progress">
-                        <option value=""></option>
-                        <option v-for="item in getEditWorkOrderProcessProgress" :value="item" v-text="item"></option>
-                    </select>
-                </div>
-            </div>
-            <div class="modal-footer">
-                <button @click="TypeName = ''" type="button" class="btn btn-secondary" data-dismiss="modal">关闭</button>
-                <button @click="batchEditWorkOrderFunc" type="button" class="btn btn-primary">提交</button>
-            </div>
-        </div>
+<el-dialog :visible.sync="dialogBatchEditBaoShiVisible" width="75%">
+
+    <div slot="title">
+        批量修改
     </div>
-</div>
+    <div class="form-group row" v-if="batchEditWorkOrder.p_process_progress">
+        <label class="col-sm-2 col-form-label text-right text-primary">
+            当前进度
+        </label>
+        <select class="form-control col-sm-10" v-model="batchEditWorkOrder.process_progress">
+             <option v-for="item in getEditWorkOrderProcessProgress(batchEditWorkOrder)" :value="item" v-text="item"></option>
+        </select>
+    </div>
+    <div slot="footer" class="dialog-footer">
+        <el-button @click="dialogBatchEditBaoShiVisible = false">关 闭</el-button>
+        <el-button type="primary" @click="batchEditWorkOrderFunc">
+            提交
+        </el-button>
+    </div>
+</el-dialog>
+

+ 44 - 35
resources/views/order/workOrder/index.blade.php

@@ -29,7 +29,7 @@
                     @can('订单管理-工单处理-宝时编辑')
                         <button type="button"
                                 class="ml-1 btn btn-outline-info btn-sm"
-                                @click="batchEdit()">批量复制单号
+                                @click="batchEdit()">批量编辑工单
                         </button>
                     @endcan
 
@@ -58,7 +58,9 @@
                                     <span v-text="item.id"></span>
                                     <br v-show="item.is_issue_order">
                                     <a :href="'{{url("order/issue/index")}}'+'?orderCode='+item.orderno"
-                                       target="order/issue/index?addtime=15">
+                                       target="order/issue/index?addtime=15"
+                                       v-show="item.is_issue_order">
+
                                         <span class="badge badge-primary">问题件</span>
                                     </a>
                                     <br>
@@ -116,14 +118,6 @@
                                         </button>
                                         <br v-show="canLogisticEdit(item)">
 
-                                        <button class="btn btn-sm"
-                                                style="background-color:#bf674e;color: #FFFFFF;border-color: #9a3d23"
-                                                v-show="canLogisticEdit(item)"
-                                                @click="logisticShowEdit(item,i)">
-                                            重新编辑
-                                        </button>
-                                        <br v-show="canLogisticEdit(item)">
-
 
                                         <button
                                             class="btn btn-sm"
@@ -225,6 +219,7 @@
         @include('order.workOrder._bao_shi_fill_work_order_modal')
         @include('order.workOrder._logistic_fill_work_order_modal')
         @include('order.workOrder._owner_fill_work_order_modal')
+        @include('order.workOrder._batch_edit_work_order');
     </div>
 @endsection()
 
@@ -432,6 +427,7 @@
                     dialogShowLogisticVisible: false,
                     dialogEditLogisticVisible: false,
                     dialogShowOrderWorkVisible: false,
+                    dialogBatchEditBaoShiVisible: false,
                     batchEditWorkOrder: {
                         TypeName: '',
                         process_progress: '',
@@ -2737,9 +2733,11 @@
                         return false;
                     },
                     batchEdit() {
-                        let editWorkOrders = this.workOrders.forEach(e => checkData.includes(e.id));
+                        let editWorkOrders = this.workOrders.filter(e => {
+                            return checkData.includes(`${e.id}`);
+                        });
                         let editWorkOrder = editWorkOrders.find(e => e);
-                        let count = editWorkOrders.filter(e => e.status === editWorkOrder.status && e.issue_type_name === editWorkOrder.issue_type_name);
+                        let count = editWorkOrders.filter(e => e.status !== editWorkOrder.status || e.current_issue_type !== editWorkOrder.current_issue_type).length;
                         if (count > 0) {
                             this.errorTempTip('当前勾选工单部分状态,类型不符合');
                             return;
@@ -2749,48 +2747,59 @@
                             p_process_progress: editWorkOrder.process_progress,
                             process_progress: '',
                         };
-
-                        $("#edit-work-order-modal").modal("show")
+                        this.dialogBatchEditBaoShiVisible = true;
                     },
-                    getEditWorkOrderProcessProgress() {
+                    getEditWorkOrderProcessProgress(batchEditWorkOrder) {
+                        let {p_process_progress, TypeName} = batchEditWorkOrder;
                         let editWorkOrderProcessProgressObj = [{
                             name: '拦截', options: {
                                 success: ['成功已退回,不赔偿', '拦截在途丢件,赔偿'],
-                                filed: ['无法拦截'],},
-                        }, {name: '信息更改', options: {
+                                filed: ['无法拦截'],
+                            },
+                        }, {
+                            name: '信息更改', options: {
                                 success: ['更改成功'],
                                 filed: ['更改失败'],
-                        },}];
-                        let processProgressObj =  editWorkOrderProcessProgressObj.find(e=>this.batchEditWorkOrder.TypeName === e.name);
-                        if (processProgressObj.name === '拦截'){
-                            if (this.batchEditWorkOrder.process_progress === '已处理') return processProgressObj.success;
-                            if (this.batchEditWorkOrder.process_progress === '已签收') return processProgressObj.filed;
-                        } else if (processProgressObj.name === '信息更改') {
-                            if (this.batchEditWorkOrder.process_progress === '已处理') return processProgressObj.success;
-                            if (this.batchEditWorkOrder.process_progress === '无法更改') return processProgressObj.filed;
+                            },
+                        }];
+                        let processProgressObj = editWorkOrderProcessProgressObj.find(e => TypeName === e.name);
+                        let {options, name} = processProgressObj;
+                        let option = [];
+                        if (name === '拦截') {
+                            if (p_process_progress === '拦截退回中') option = options.success;
+                            if (p_process_progress === '拦截失败') option = options.filed;
+                        } else if (name === '信息更改') {
+                            if (p_process_progress === '已处理') option = options.success;
+                            if (p_process_progress === '无法更改') option = options.filed;
                         }
-                        return [];
+                        return option;
                     },
-                    batchEditWorkOrderFunc(){
-                        let {TypeName,process_progress} = this.batchEditWorkOrder;
-                        if (!process_progress){
+                    batchEditWorkOrderFunc() {
+                        let {TypeName, process_progress} = this.batchEditWorkOrder;
+                        if (!process_progress) {
                             this.errorTempTip('选择处理结果');
                             return;
                         }
                         let url = null;
-                        if ("拦截" === TypeName){
+                        if ("拦截" === TypeName) {
                             url = '{{route('workOrder.intercept.baoShi.batchReviewApi')}}';
+                        } else if ('信息更改' === TypeName){
+                            url = '{{route('workOrder.informationChange.baoShi.batchReviewApi')}}'
                         }
-                        let data = {ids:checkData,process_progress:process_progress};
+                        let data = {ids: checkData, process_progress: process_progress};
                         this.waitingTempTip('处理中');
-                        window.axios.post(url,data).then(res=>{
+                        window.axios.post(url, data).then(res => {
                             window.tempTip.cancelWaitingTip();
-                            if (res.data.success){
-                                this.successTempTip('处理完成');
+                            if (res.data.success) {
+                                this.successTempTip('处理完成,刷新页面展示');
+                                this.dialogBatchEditBaoShiVisible = false;
+                                this.workOrders.forEach(e=>{
+                                    if (checkData.includes(`${e.id}`))e.process_progress = process_progress;
+                                });
                                 return;
                             }
                             this.waitingTempTip(res.data.message ? res.data.message : '处理异常');
-                        }).catch(err=>{
+                        }).catch(err => {
                             window.tempTip.cancelWaitingTip();
                             this.errorTempTip(err);
                         });

+ 2 - 1
routes/apiLocal.php

@@ -284,7 +284,7 @@ Route::prefix('workOrder')->group(function(){
         Route::post('baoShi/batchReview','WorkOrderInterceptController@baoShiBatchReviewApi')->name('workOrder.intercept.baoShi.batchReviewApi');              // 宝时终审
 
     });
-    Route::prefix('cancelIntercept')->group(function(){           // 拦截
+    Route::prefix('cancelIntercept')->group(function(){           // 取消拦截
         Route::post('store','WorkOrderCancelInterceptController@storeApi')->name('workOrder.cancelIntercept.storeApi');                                     // 拦截订单创建
         Route::post('logistic/header','WorkOrderCancelInterceptController@logisticHandlerApi')->name('workOrder.cancelIntercept.logistic.handlerApi');        // 承运商处理
         Route::post('baoShi/review','WorkOrderCancelInterceptController@baoShiReviewApi')->name('workOrder.cancelIntercept.baoShi.reviewApi');              // 宝时终审
@@ -294,6 +294,7 @@ Route::prefix('workOrder')->group(function(){
         Route::post('owner/edit','WorkOrderInformationChangeController@ownerEditApi')->name('workOrder.informationChange.owner.editApi');     // 信息修改
         Route::post('logistic/header','WorkOrderInformationChangeController@logisticHandlerApi')->name('workOrder.informationChange.logistic.handlerApi');     // 信息修改
         Route::post('baoShi/review','WorkOrderInformationChangeController@baoShiReviewApi')->name('workOrder.informationChange.baoShi.reviewApi');              // 宝时终审
+        Route::post('baoShi/batchReview','WorkOrderInformationChangeController@baoShiBatchReviewApi')->name('workOrder.informationChange.baoShi.batchReviewApi');              // 宝时终审
     });
     Route::prefix('loss')->group(function(){                // 快递丢件
         Route::post('store','WorkOrderLossController@storeApi')->name('workOrder.loss.storeApi');                                       // 创建(宝时)