Procházet zdrojové kódy

工单->处理日志处理日志隐藏标记

loustwo před 4 roky
rodič
revize
ce8fb6021a

+ 1 - 1
app/Http/Controllers/OrderIssueProcessLogController.php

@@ -78,7 +78,7 @@ class OrderIssueProcessLogController extends Controller
      * @param Request $request
      * @return array
      */
-    public function batchStoreApi(Request $request)
+    public function batchStoreApi(Request $request): array
     {
         if (!Gate::allows('订单管理-问题件-编辑')) {
             return ['success' => false, 'fail_info' => '没有对应的权限'];

+ 14 - 1
app/Http/Controllers/WorkOrderProcessLogController.php

@@ -126,7 +126,20 @@ class WorkOrderProcessLogController extends Controller
         if (Gate::denies('订单管理-工单处理-处理日志删除')) {
             return ['success' => false, 'message' => '没有对应的权限'];
         }
-        WorkOrderProcessLog::query()->where('id',$request->input('id'))->delete();
+        WorkOrderProcessLog::query()->where('id', $request->input('id'))->delete();
+        return ['success' => true];
+    }
+
+
+    public function tagApi(Request $request): array
+    {
+        if (Gate::denies('订单管理-工单处理-宝时编辑')) {
+            return ['success' => false, 'message' => '没有对应的权限'];
+        }
+        if (!$request->has('id')) {
+            return ['success' => false, 'message' => '参数异常'];
+        }
+        WorkOrderProcessLog::query()->where('id', $request->input('id'))->update(['tag' => 1]);
         return ['success' => true];
     }
 

+ 2 - 0
app/Services/WorkOrderProcessLogService.php

@@ -24,11 +24,13 @@ class WorkOrderProcessLogService
     public function createProcessLog(WorkOrderDetail $detail, $params, User $user = null): Model
     {
         $user = $user ?? Auth::user();
+
         $process_log = $detail->processLogs()->create([
             'work_order_detail_id' => $detail->id,
             'work_order_id' => $detail->work_order_id,
             'content' => $params['content'],
             'user_id' => Auth::id(),
+            'tag' => $params['tag'] ?? 0,
         ]);
 
         /** @var WorkOrder $work_order */

+ 5 - 1
app/WorkOrder.php

@@ -285,7 +285,11 @@ class WorkOrder extends Model
         return ['owner', 'logistic', 'issueType', 'creator', 'lastHandler','orderDetail','orderIssueRejectedBills.rejectedBill.items',
             'userWorkGroups','details' => function ($query) {
             return $query->with(['commodities.commodity', 'logs' => function ($query) {
-                return $query->with('creator')->orderByDesc('created_at');
+                if(Gate::denies('订单管理-工单处理-宝时编辑')){
+                    return $query->with('creator')->orderByDesc('created_at');
+                } else {
+                    return $query->with('creator')->where('tag','!=','1')->orderByDesc('created_at');
+                }
             }, 'images.uploadFile', 'issueType', 'processLogs' => function ($query) {
                 return $query->with('user')->orderByDesc('created_at');
             }]);

+ 1 - 0
app/WorkOrderProcessLog.php

@@ -20,6 +20,7 @@ class WorkOrderProcessLog extends Model
         'content',
         'status',
         'type', // 创建 处理 完结
+        'tag'
     ];
 
 

+ 32 - 0
database/migrations/2022_02_18_170500_work_order_precess_logs_add_hidden_tag.php

@@ -0,0 +1,32 @@
+<?php
+
+use Illuminate\Database\Migrations\Migration;
+use Illuminate\Database\Schema\Blueprint;
+use Illuminate\Support\Facades\Schema;
+
+class WorkOrderPrecessLogsAddHiddenTag extends Migration
+{
+    /**
+     * Run the migrations.
+     *
+     * @return void
+     */
+    public function up()
+    {
+        Schema::table('work_order_process_logs', function (Blueprint $table) {
+            $table->tinyInteger('tag');
+        });
+    }
+
+    /**
+     * Reverse the migrations.
+     *
+     * @return void
+     */
+    public function down()
+    {
+        Schema::table('work_order_process_logs', function (Blueprint $table) {
+            $table->dropColumn('tag');
+        });
+    }
+}

+ 44 - 30
resources/views/order/workOrder/_process_logs.blade.php

@@ -2,30 +2,37 @@
     @if( \Illuminate\Support\Facades\Gate::check('订单管理-工单处理-宝时编辑') ||
             \Illuminate\Support\Facades\Gate::check('订单管理-工单处理-商家编辑') ||
              \Illuminate\Support\Facades\Gate::check('订单管理-工单处理-承运商编辑'))
-    <div class="add-btn"
-         style="position: absolute;display: none;margin-top: -35px;z-index: 51"
-         :id="'AddProcessLogBtn'+item.pending_detail.id">
-        <button type="button" class="btn btn-primary"
-                @click="showAddDiv('addWorkOrderProcessLogForm'+item.pending_detail.id)">新
-        </button>
-    </div>
-
-    <div class="addLogDiv row m-0 p-0 form-group" style="display: none;"
-         :id="'addWorkOrderProcessLogForm'+item.pending_detail.id">
-        <input type="hidden" name="id" :value="item.pending_detail.id">
-        <div style="width: 45px"></div>
-        <div class="form-inline m-2">
-            <input type="text" name="content" :id="'addWorkOrderProcessLogFormInput_'+item.pending_detail.id"
-                   class="form-control m-0 p-0"
-                   style="width: 275px"
-                   required>
-            <button type="button"
-                    class="btn btn-primary ml-2 m-0 p-0"
-                    style="width: 50px"
-                    @click="formStoreProcessLog(item.pending_detail.id,item.id)">添加
+        <div class="add-btn"
+             style="position: absolute;display: none;margin-top: -35px;z-index: 51"
+             :id="'AddProcessLogBtn'+item.pending_detail.id">
+            <button type="button" class="btn btn-primary"
+                    @click="showAddDiv('addWorkOrderProcessLogForm'+item.pending_detail.id)">新
             </button>
         </div>
-    </div>
+
+        <div class="addLogDiv row m-0 p-0 form-group" style="display: none;"
+             :id="'addWorkOrderProcessLogForm'+item.pending_detail.id">
+            <input type="hidden" name="id" :value="item.pending_detail.id">
+            <div style="width: 45px"></div>
+            <div class="form-inline m-2">
+                <input type="text" name="content" :id="'addWorkOrderProcessLogFormInput_'+item.pending_detail.id"
+                       class="form-control m-0 p-0"
+                       style="width: 275px"
+                       required>
+                @can('订单管理-工单处理-宝时编辑')
+                    <input type="checkbox" class="form-control"
+                           value="true"
+                           :name="item.pending_detail.id + '_log_check'"
+                           :id="item.pending_detail.id + '_log_check'">
+                    <label :for="item.pending_detail.id + '_log_check'">标</label>
+                @endcan
+                <button type="button"
+                        class="btn btn-primary ml-2 m-0 p-0"
+                        style="width: 50px"
+                        @click="formStoreProcessLog(item.pending_detail.id,item.id)">添加
+                </button>
+            </div>
+        </div>
     @endif
     <template class="p-0 m-0" v-if="item.process_logs.length > 0">
         <table class="table table-sm p-0 m-0 " :id="'logs'+item.pending_detail.id">
@@ -45,13 +52,19 @@
                     <span v-text="log.created_at"></span>
                 </td>
                 @if( \Illuminate\Support\Facades\Gate::check('订单管理-工单处理-宝时编辑') || \Illuminate\Support\Facades\Gate::check('订单管理-工单处理-商家编辑') )
-                <td style="max-width: 35px;min-width: 35px;" class="m-0 p-0 border-0">
-                    <button type="button"
-                            class="btn btn-sm btn-outline-danger m-0 del-btn invisible"
-                            @click="destroyProcessLog(item,log,logIndex)">
-                        删
-                    </button>
-                </td>
+                    <td style="max-width: 70px;min-width: 70px;" class="m-0 p-0 border-0">
+                        <button type="button"
+                                class="btn btn-sm btn-outline-danger m-0 del-btn invisible"
+                                @click="destroyProcessLog(item,log,logIndex)">
+                            删
+                        </button>
+                        <button type="button"
+                                v-if="log.tag !== '1' "
+                                class="btn btn-sm btn-primary m-0 del-btn invisible"
+                                @click="workOrderProcessLogTagApi(log)">
+                            标
+                        </button>
+                    </td>
                 @endif
             </tr>
         </table>
@@ -63,7 +76,8 @@
 
             <button type="button" class="btn btn-sm btn-outline-primary align-middle mt-1 center-block"
                     v-show="showWorkOrderProcessLog === item.id"
-                    @click="showWorkOrderProcessLog = null">点击收起</button>
+                    @click="showWorkOrderProcessLog = null">点击收起
+            </button>
         </div>
 
     </template>

+ 25 - 1
resources/views/order/workOrder/index.blade.php

@@ -1221,7 +1221,7 @@
                     return new Array(...logistic_numbers);
                 },
                 groupProcessLogs(workOrder) {
-                    return workOrder.details.map(e => e.process_logs ? e.process_logs : []).reduce((a, b) => a = [...a, ...b], []).sort((pre, cur) => cur.id - pre.id);
+                    return workOrder.details.map(e => e.process_logs ? e.process_logs : []).reduce((a, b) => [...a, ...b], []).sort((pre, cur) => cur.id - pre.id);
                 },
                 createOrderIssue(item, tag) { // 生成问题件
                     let url = '{{route('workOrder.buildOrderIssueApi')}}';
@@ -3444,6 +3444,7 @@
                     let data = {
                         id: worK_order_id,
                         content: document.getElementById('addWorkOrderProcessLogFormInput_' + work_order_detail_id).value,
+                        tag: document.getElementById(work_order_detail_id + '_log_check').value ? 1 : 0
                     };
                     this.waitingTempTip('处理中');
                     window.axios.post(url, data).then(res => {
@@ -3452,6 +3453,8 @@
                             this.pushProcessLog(res.data.data);
                             this.successTempTip('处理完成');
                             this.showAddDiv('addWorkOrderProcessLogForm' + work_order_detail_id);
+                            document.getElementById('addWorkOrderProcessLogFormInput_' + work_order_detail_id).value = '';
+                            document.getElementById(work_order_detail_id + '_log_check').value = false;
                             this.$forceUpdate();
                             return;
                         }
@@ -3525,6 +3528,7 @@
                     this.workOrders.forEach((e, index) => {
                         let has = e.details.filter(detail => `${detail.id}` === `${work_order_detail_id}`).length > 0;
                         if (has) {
+                            process_log.tag = process_log.tag+'';
                             this.workOrders[index]['process_logs'].unshift(process_log);
                             if (this.isBaoShi) {
                                 this.workOrders[index]['bao_shi_tag'] = '1'
@@ -3787,6 +3791,26 @@
                 checkAll(e) {
                     this.checkData = e.target.checked ? this.workOrders.map(e => e.id) : []
                 },
+
+                workOrderProcessLogTagApi(item){
+                    let url = "{{route('workOrder.processLog.tagApi')}}"
+                    let data = {
+                        id:item.id
+                    }
+                    window.tempTip.waitingTip('处理中')
+                    axios.post(url,data).then(res=>{
+                        window.tempTip.cancelWaitingTip()
+                        if(res.data.success){
+                            item.tag = '1';
+                            this.successTempTip('标记成功');
+                        } else {
+                            this.errorTempTip(res.data.message ? res.data.message : '处理出现异常');
+                        }
+                    }).catch(err=>{
+                        window.tempTip.cancelWaitingTip()
+                        this.errorTempTip(err)
+                    })
+                }
             },
         });
     </script>

+ 1 - 0
routes/apiLocal.php

@@ -362,6 +362,7 @@ Route::prefix('workOrder')->group(function(){
         Route::post('/store/baoShi','WorkOrderProcessLogController@baoShiStoreApi')->name('workOrder.processLog.baoShiStoreApi');
         Route::post('/batchStore','WorkOrderProcessLogController@batchStoreApi')->name('workOrder.processLog.batchStore');
         Route::post('/destroy','WorkOrderProcessLogController@destroyApi')->name('workOrder.processLog.destroyApi');
+        Route::post('/tag','WorkOrderProcessLogController@tagApi')->name('workOrder.processLog.tagApi');
     });
 
     Route::post('updateIssueType','WorkOrderController@updateIssueTypeApi')->name('workOrder.updateIssueTypeApi');                // 修改问题类型