Explorar o código

订单追踪修改

ajun %!s(int64=5) %!d(string=hai) anos
pai
achega
38514ec491

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

@@ -13,6 +13,7 @@ use App\Owner;
 use App\QualityLabel;
 use App\RejectedBill;
 use App\Services\LogService;
+use App\Services\OrderIssueProcessLogService;
 use App\Services\OrderIssueService;
 use App\Services\OwnerService;
 use App\Shop;
@@ -429,4 +430,20 @@ class OrderIssueController extends Controller
             'id_logistic_return'=> '退回单号承运商',
         ]);
     }
+
+
+    public function endOrderIssuesApi(Request $request)
+    {
+        if (!Gate::allows('订单管理-问题件-编辑')) {
+            return ['success'=>false,'fail_info' => '没有对应权限'];
+        }
+        $orderIssue_ids = $request->input('ids');
+        $bool = app(OrderIssueProcessLogService::class)->isExistOrderIssueTypeIsEnd($orderIssue_ids);
+        if($bool)return ['success'=>false,'fail_info'=> '需要完结的订单问题件重已有完结的订单问题件'];
+        $bool = app(OrderIssueService::class)->endOrderIssues($orderIssue_ids);
+        if($bool == 0) return ['success'=>false,'fail_info' => '操作失败'];
+        $params = ['ids'=>$orderIssue_ids,'content'=>'完结订单','type'=>'结束'];
+        $logs = app(OrderIssueProcessLogService::class)->create($params);
+        return ['success'=>true,'logs'=>$logs];
+    }
 }

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

@@ -489,7 +489,7 @@ class TestController extends Controller
 //        $startDate = \Illuminate\Support\Carbon::parse('2020-05-06 13:16:51')->toDateTimeString();
         //$orderTrackingService->trackingWmsOrder($startDate);
         $owners = app(OrderTrackingOwnerService::class)->getTrackingOrderOwner();
-        $startDate = \Illuminate\Support\Carbon::parse('2020-09-26 00:00:00')->toDateTimeString();
+        $startDate = \Illuminate\Support\Carbon::parse('2020-09-30 00:00:00')->toDateTimeString();
 //        $endData = \Illuminate\Support\Carbon::parse('2020-09-29 00:00:00')->toDateTimeString();
         $orderHeaders = OracleDOCOrderHeader::query()
             ->with(['oracleDOCOrderDetails', 'actAllocationDetails','oracleBASCode'])

+ 1 - 1
app/OrderTracking.php

@@ -14,7 +14,7 @@ class OrderTracking extends Model
         'pick_up_at','sale','client',
         'order_remark','pallet_total','planning_sent_at',
         'is_on_duty_shift','is_arrival','signed_at',
-        'receive_bill_status','remark'];
+        'receive_bill_status','remark','gross_weight','bulk'];
 
     protected $appends =[
         'ownerName','sku','packageWeight','packageBulk','orderCity','packageLogisticNumber','packageLogistic','orderClientCode'

+ 8 - 0
app/Services/OracleBasSkuService.php

@@ -63,4 +63,12 @@ Class OracleBasSkuService
         $sql .= " ORDER BY addtime)WHERE rn>".$start." AND rn <= ".($start+$amount);
         return DB::connection('oracle')->select(DB::raw($sql));
     }
+
+    public function 获取BasSKu_通过WMSOrderHeaders($orderHeaders){
+        if(!$orderHeaders){return null;}
+        $customer_Ids = array_unique(data_get($orderHeaders,'*.customerid'));
+        $sku_s = array_unique(data_get($orderHeaders,'*.oracleDOCOrderDetails.*.sku'));
+        if(!$customer_Ids || !$sku_s){return null;}
+        return OracleBasSKU::query()->whereIn('customerid',$customer_Ids)->whereIn('sku',$sku_s)->get();
+    }
 }

+ 16 - 0
app/Services/OrderIssueProcessLogService.php

@@ -21,4 +21,20 @@ class OrderIssueProcessLogService
         return $logs;
     }
 
+    public function create(array  $params)
+    {
+        $ids = $params['ids'];
+        $content = $params['content'];
+        $user_id = Auth::user()['id'];
+        $logs = [];
+        foreach ($ids as $id) {
+            $logs[] = OrderIssueProcessLog::query()->create(['order_issue_id' => $id, 'content' => $content, 'user_id' => $user_id, 'type' => $params['type']]);
+        }
+        return OrderIssueProcessLog::query()->with('user')->whereIn('id',data_get($logs,'*.id'))->get();
+    }
+
+    public function isExistOrderIssueTypeIsEnd($ids){
+        return OrderIssueProcessLog::query()->whereIn('order_issue_id',$ids)->where('type','结束')->count() > 0;
+    }
+
 }

+ 25 - 5
app/Services/OrderIssueService.php

@@ -55,6 +55,10 @@ class OrderIssueService
                 }
             });
         }
+        if(isset($arr['is_new_rejecting'])){
+            $query->where('is_new_rejecting','=',$arr['is_new_rejecting']);
+        }
+
         $query->selectRaw('order_issues.* ,order_issue_on_tops.id top_id ,order_issue_on_tops.remark,order_issue_on_tops.updated_at top_update')
             ->leftJoin('order_issue_on_tops', 'order_issue_on_tops.order_issue_id', '=', 'order_issues.id')
             ->whereNull('order_issue_on_tops.deleted_at')
@@ -87,7 +91,7 @@ class OrderIssueService
                         return $this->searchWay($query,$arr['good_barcode'],'sku');
                     }
                     if ($arr['good_name'] ?? false) {
-                        $query->where('name','like', $arr['good_name']);
+                        $query->where('name','like', '%'.$arr['good_name'].'%');
                     }
                 });
             }
@@ -146,9 +150,11 @@ class OrderIssueService
             $query->where('order_issue_type_id', $condition['order_issue_type_id']);
         }
         if (!($condition['is_handle'] ?? false) && !($condition['final_status'] ?? false)) {
-            $query->where(function ($query) {
-                $query->where('final_status', '<>', '已解决')->orWhereNull('final_status');
-            });
+            if(! (isset($condition['settlement_at_start']) || isset($condition['settlement_at_end']))){
+                $query->where(function ($query) {
+                    $query->where('final_status', '<>', '已解决')->orWhereNull('final_status');
+                });
+            }
         }
         if (isset($condition['logistic_indemnity_money'])) {
             $query->where('logistic_indemnity_money', $condition['logistic_indemnity_money']);
@@ -163,7 +169,16 @@ class OrderIssueService
             }
             $query->whereIn('order_issues.id', $orderIssuesId);
         }
-
+        if(isset($condition['settlement_at_start']) || isset($condition['settlement_at_end'])){
+            $query->whereHas('logs',function($query) use ($condition){
+                if(isset($condition['settlement_at_start'])){
+                    $query->where('created_at','>=',$condition['settlement_at_start'].' 00:00:00')->where('type','结束');
+                }
+                if(isset($condition['settlement_at_end'])){
+                    $query->where('created_at','<=',$condition['settlement_at_start'].' 23:59:59')->where('type','结束');
+                }
+            });
+        }
         return $query;
     }
 
@@ -440,4 +455,9 @@ class OrderIssueService
             }
         }
     }
+
+    public function endOrderIssues(array $ids)
+    {
+        return OrderIssue::query()->whereIn('id',$ids)->update(['final_status'=>'已解决']);
+    }
 }

+ 1 - 1
app/Services/OrderService.php

@@ -811,7 +811,7 @@ class OrderService
         $shopService = app(ShopService::class);
         $orderPackageService = app(OrderPackageService::class);
 
-       ;$owners_code_map = [];$logistics_code_map = [];$shop_name_map=[]; $owners_id_map = [];
+        $owners_code_map = [];$logistics_code_map = [];$shop_name_map=[]; $owners_id_map = [];
 
         $owners = $ownerService->getByWmsOrders($orderHeaders);
         $logistics = $logisticService->getByWmsOrders($orderHeaders);

+ 12 - 5
app/Services/OrderTrackingService.php

@@ -7,6 +7,7 @@ use App\OracleDOCOrderHeader;
 use App\OrderPackageCommodities;
 use App\OrderTracking;
 use App\Services\common\BatchUpdateService;
+use App\Services\common\DataHandlerService;
 use App\Services\common\QueryService;
 use Illuminate\Support\Facades\Auth;
 use Maatwebsite\Excel\Facades\Excel;
@@ -421,8 +422,8 @@ class OrderTrackingService
 
             $owner = $dataService->getKeyValue(['id'=>$order->owner_id],$owner_id_map);
             $basSkU = $dataService->getKeyValue(['customerid'=>$owner->code,'sku'=>$item->commodity->sku],$BasSKUs_code_sku_map);
-            $gross_weight = round($basSkU->grossweight * $item->amount, 3);
-            $bulk = round($basSkU->cube * $item->amount, 3);
+            $gross_weight = round($basSkU->grossweight * $item->amount, 2);
+            $bulk = round($basSkU->cube * $item->amount, 2);
             $params[] =[
                 'order_package_commodity_id' => $item->id,
                 'owner_id' => $order->owner_id,
@@ -430,7 +431,9 @@ class OrderTrackingService
                 'created_at' => $order->created_at,
                 'order_remark' => $order_remark,
                 'pick_up_at' => $order_header->lastshipmenttime, // 提货时间,
-                'web_order_number' => $web_order_number
+                'web_order_number' => $web_order_number,
+                'gross_weight'=> $gross_weight,
+                'bulk'=> $bulk
             ];
         }
 
@@ -447,6 +450,8 @@ class OrderTrackingService
     public function updateByWmsOrderHeaders($orderHeaders)
     {
         if(!$orderHeaders){return ;}
+        /** @var DataHandlerService  $dataService */
+        $dataService = app(DataHandlerService::class);
         $order_nos = data_get($orderHeaders,'*.orderno');
         $order_package_commodities = OrderPackageCommodities::query()
             ->with('package.order')
@@ -503,6 +508,8 @@ class OrderTrackingService
                         'pick_up_at' => $params['pick_up_at'],
                         'order_remark' => $params['order_remark'],
                         'web_order_number' => $params['web_order_number'],
+                        'gross_weight'  => $gross_weight,
+                        'bulk' => $bulk
                     ];
                 }
             }
@@ -575,8 +582,8 @@ class OrderTrackingService
             }
         }
         $web_order_number = null;
-        if(preg_match('/^O[\d]/',$order_header['soreference1'] ?? '') > 0){
-            $web_order_number = $order_header['soreference1'];
+        if(preg_match('/^O[\d]/',$orderHeader['soreference1'] ?? '') > 0){
+            $web_order_number = $orderHeader['soreference1'];
         }
         return [
             'owner_id' => $order->owner_id,

+ 3 - 1
app/Services/common/DataHandlerService.php

@@ -8,11 +8,12 @@ class DataHandlerService
 {
     public function dataHeader(array $mapKeys= [], $resultData =[]){
         $handlerData = [];
+        $handlerData['mapkey'] = $mapKeys;
+        if(!$resultData){return $handlerData;}
         foreach ($resultData as $data) {
             $key =  $this->getKey($mapKeys,$data);
             $handlerData[$key] = $data;
         }
-        $handlerData['mapkey'] = $mapKeys;
         return $handlerData;
     }
 
@@ -76,6 +77,7 @@ class DataHandlerService
     public function getKeyValue($keyValues,$data){
          $mapkeys =  $data['mapkey'];
          $key = '';
+         if(!$data){return null;}
          foreach ($mapkeys as $mapkey) {
              $key .=$mapkey.'='.$keyValues[$mapkey];
          }

+ 33 - 0
database/migrations/2020_09_30_153758_change_order_issue_and_o_rder_issue_logs.php

@@ -0,0 +1,33 @@
+<?php
+
+use Illuminate\Database\Migrations\Migration;
+use Illuminate\Database\Schema\Blueprint;
+use Illuminate\Support\Facades\Schema;
+
+class ChangeOrderIssueAndORderIssueLogs extends Migration
+{
+    /**
+     * Run the migrations.
+     *
+     * @return void
+     */
+    public function up()
+    {
+        Schema::table('order_issues', function (Blueprint $table) {
+            $table->dropColumn('settlement_at');
+        });
+    }
+
+    /**
+     * Reverse the migrations.
+     *
+     * @return void
+     */
+    public function down()
+    {
+        Schema::table('order_issues', function (Blueprint $table) {
+            $table->timestamp('settlement_at')->index()->nullable()->comment('完结日期');
+        });
+
+    }
+}

+ 15 - 2
resources/views/order/index/delivering.blade.php

@@ -101,7 +101,11 @@
                                 <tr v-for="oracleDOCOrderDetail in commodities[order.orderno]">
                                     <td><div style="width: 180px;overflow: hidden">@{{ oracleDOCOrderDetail.sku }}</div></td>
                                     <td><div style="width: 180px;overflow: hidden">@{{ oracleDOCOrderDetail.alternate_sku1 }}</div></td>
-                                    <td><div :title="oracleDOCOrderDetail.descr_c" class="tooltipTarget" style="width: 180px;overflow: hidden">@{{ oracleDOCOrderDetail.descr_c }}</div></td>
+                                    <td>
+                                        <div class="text-truncate text-primary tooltipTarget" style="width: 100px;cursor:pointer;text-decoration: underline" title="双击展开" @dblclick="nowrapText($event)">@{{ oracleDOCOrderDetail.descr_c  }}</div>
+                                        <div class="text-nowrap tooltipTarget"  style="display: none;cursor:pointer" @dblclick="truncateText($event)" title="双击收起">@{{ oracleDOCOrderDetail.descr_c  }}</div>
+{{--                                        <div :title="oracleDOCOrderDetail.descr_c" class="tooltipTarget" style="width: 180px;overflow: hidden">@{{ oracleDOCOrderDetail.descr_c }}</div>--}}
+                                    </td>
                                     <td>@{{ oracleDOCOrderDetail.qtyordered }}</td>
                                     <td><div style="width: 180px;overflow: hidden">@{{ oracleDOCOrderDetail.orderdetailcodename }}</div></td>
                                     <td><div style="width: 180px;overflow: hidden">@{{ oracleDOCOrderDetail.checktime }}</div></td>
@@ -733,9 +737,18 @@
                         tempTip.setDuration(3000)
                         tempTip.show('网络异常:'+error)
                     })
+                },
+                truncateText(e){
+                    let nowrapSpan = $(e.target);
+                    nowrapSpan.hide();
+                    nowrapSpan.siblings('.text-truncate').show();
+                },
+                nowrapText(e){
+                    let truncateSpan = $(e.target);
+                    truncateSpan.hide();
+                    truncateSpan.siblings('.text-nowrap').show();
                 }
             },
-
         });
     </script>
 @endsection

+ 267 - 210
resources/views/order/issue/index.blade.php

@@ -20,20 +20,20 @@
                         </div>
                     </span>
                     @cannot('订单管理-问题件-客户不可见')
-                    <span class="ml-1">
+                        <span class="ml-1">
                         <button type="button" class="btn btn-outline-dark btn-sm form-control-sm   tooltipTarget" @click="endOrderIssue" :class="[checkData.length>0?'btn-dark text-light':'']">
                             完结
                         </button>
                     </span>
                     @endcannot @can('订单管理-问题件-删除')
-                    <span class="ml-1">
+                        <span class="ml-1">
                         <button type="button" class="btn btn-outline-dark btn-sm form-control-sm  tooltipTarget" @click="batchDeleteOrderIssue">
                             删除
                         </button>
                     </span>
                     @endcan
                     @can('订单管理-问题件-编辑')
-                    <span class="ml-1">
+                        <span class="ml-1">
                         <button type="button" class="btn btn-outline-dark btn-sm form-control-sm  tooltipTarget" @click="batchStoreLogsModel">
                             修改
                         </button>
@@ -57,20 +57,20 @@
                         </th>
                         <th class="font-weight-bolder header-3">
 
-{{--                            @cannot('订单管理-问题件-客户不可见')--}}
+                            {{--                            @cannot('订单管理-问题件-客户不可见')--}}
                             <button class="btn btn-sm btn-outline-secondary float-left" v-if="isShowRejectedBill" @click="hideRejectedBill">
                                 隐藏退单列
                             </button>
-{{--                            @endcannot--}}
+                            {{--                            @endcannot--}}
                             情况说明
                             @cannot('订单管理-问题件-客户不可见')
-                            <button class="btn btn-sm btn-outline-secondary" v-if="isShowSecondOrderInfo" @click="hideSecondOrder">
-                                隐藏运单列
-                            </button>
+                                <button class="btn btn-sm btn-outline-secondary" v-if="isShowSecondOrderInfo" @click="hideSecondOrder">
+                                    隐藏运单列
+                                </button>
                             @endcannot
                         </th>
                         @cannot('订单管理-问题件-客户不可见')
-                        <th></th>
+                            <th></th>
                         @endcannot
                     </tr>
 
@@ -84,15 +84,15 @@
                         <th class="one-layer align-middle" rowspan="2" style=" min-width: 50px;">序号</th>
                         <th class="one-layer align-middle" rowspan="2" style=" min-width: 25px;">ID</th>
                         @cannot('订单管理-问题件-客户不可见')
-                        <th class="one-layer align-middle" rowspan="2" style=" min-width: 75px;">退件</th>
-                        @can("订单管理-问题件-置顶")
-                        <th class="one-layer align-middle" rowspan="2" style=" min-width: 75px;">置顶</th>
-                        @endcan
-                        <th class="one-layer align-middle" rowspan="2" style=" min-width: 100px;">退单状态</th>
+                            <th class="one-layer align-middle" rowspan="2" style=" min-width: 75px;">退件</th>
+                            @can("订单管理-问题件-置顶")
+                                <th class="one-layer align-middle" rowspan="2" style=" min-width: 75px;">置顶</th>
+                            @endcan
+                            <th class="one-layer align-middle" rowspan="2" style=" min-width: 100px;">退单状态</th>
                         @endcannot
                         <th class="one-layer align-middle" rowspan="2" style="min-width: 120px">最终状态</th>
                         @cannot('订单管理-问题件-客户不可见')
-                        <th class="tow-layer align-middle td-yellow" rowspan="2" style="min-width: 165px;">登记日期</th>
+                            <th class="tow-layer align-middle td-yellow" rowspan="2" style="min-width: 165px;">登记日期</th>
                         @endcannot
 
                         <th class="tow-layer align-middle td-yellow" rowspan="2" style="min-width: 165px;">订单日期</th>
@@ -110,27 +110,29 @@
                         <th class="tow-layer align-middle td-yellow" v-if="isShowOrderInfo" rowspan="2" style="min-width: 70px">区</th>
                         <th class="tow-layer align-middle td-yellow" v-if="isShowOrderInfo" rowspan="2" style="min-width:300px">收货人地址</th>
                         <th class="tow-layer align-middle td-yellow" v-if="isShowOrderInfo" colspan="3" style="min-width:300px">原始商品明细</th>
-{{--                        <th class="three-layer  align-middle" rowspan="2" >退回单号</th>--}}
-{{--                        @cannot('订单管理-问题件-客户不可见')--}}
+                        {{--                        <th class="three-layer  align-middle" rowspan="2" >退回单号</th>--}}
+                        {{--                        @cannot('订单管理-问题件-客户不可见')--}}
                         <th class="three-layer   align-middle" rowspan="2" v-if="!isShowRejectedBill" style="min-width:50px">展开</th>
                         <th class="three-layer align-middle" rowspan="2" v-if="isShowRejectedBill" style="min-width:220px">退回单号</th>
                         <th class="three-layer   align-middle" colspan="5" v-if="isShowRejectedBill" style="min-width: 450px">返回商品明细</th>
-{{--                        @endcannot--}}
+                        {{--                        @endcannot--}}
                         <th class="three-layer bg-whit  align-middle" rowspan="2" style="min-width: 115px">情况说明</th>
                         <th class="three-layer   align-middle" rowspan="2" style="min-width: 115px">问题类别</th>
                         <th class="three-layer  align-middle" colspan="3" style="min-width: 115px">处理结果</th>
                         @cannot('订单管理-问题件-客户不可见')
-                        <th class="three-layer  align-middle" rowspan="2" v-if="!isShowSecondOrderInfo" style="width:50px">展开</th>
-                        <th class="three-layer  align-middle" rowspan="2" v-if="isShowSecondOrderInfo" style=" min-width: 120px;">二次客户订单号</th>
-                        <th class="three-layer  align-middle" rowspan="2" v-if="isShowSecondOrderInfo" style=" min-width: 100px;">二次承运商</th>
-                        <th class="three-layer  align-middle" rowspan="2" v-if="isShowSecondOrderInfo" style=" min-width: 200px;">二次运单号</th>
-                        <th class="three-layer" colspan="3" style="min-width: 300px" v-if="isShowSecondOrderInfo" style=" min-width: 350px;">二次商品明细</th>
+                            <th class="three-layer  align-middle" rowspan="2" v-if="!isShowSecondOrderInfo" style="width:50px">展开</th>
+                            <th class="three-layer  align-middle" rowspan="2" v-if="isShowSecondOrderInfo" style=" min-width: 120px;">二次客户订单号</th>
+                            <th class="three-layer  align-middle" rowspan="2" v-if="isShowSecondOrderInfo" style=" min-width: 100px;">二次承运商</th>
+                            <th class="three-layer  align-middle" rowspan="2" v-if="isShowSecondOrderInfo" style=" min-width: 200px;">二次运单号</th>
+                            <th class="three-layer" colspan="3" style="min-width: 300px" v-if="isShowSecondOrderInfo" style=" min-width: 350px;">二次商品明细</th>
                         @endcannot
-                        <th class="three-layer  align-middle" rowspan="2" style="min-width: 120px">承运商赔偿金额</th>
-                        <th class="three-layer  align-middle" rowspan="2" style="min-width: 120px">承运商快递减免</th>
                         @cannot('订单管理-问题件-客户不可见')
+                            <th class="three-layer  align-middle" rowspan="2" style="min-width: 120px">承运商赔偿金额</th>
+                            <th class="three-layer  align-middle" rowspan="2" style="min-width: 120px">承运商快递减免</th>
+                        @endcannot
                         <th class="three-layer  align-middle" rowspan="2" style="min-width: 120px">宝时赔偿金额</th>
                         <th class="three-layer  align-middle" rowspan="2" style="min-width: 120px">宝时快递减免</th>
+                        @cannot('订单管理-问题件-客户不可见')
                         <th class="three-layer  align-middle" rowspan="2" style="min-width: 120px">事故责任方</th>
                         <th class="align-middle" rowspan="2" style="min-width: 120px">操作</th>
                         @endcannot
@@ -140,19 +142,19 @@
                         <th class="td-yellow" v-if="isShowOrderInfo" style="min-width: 150px">商品名</th>
                         <th class="td-yellow" v-if="isShowOrderInfo" style="min-width: 75px">数量</th>
                         @cannot('订单管理-问题件-客户不可见')
-                        <th  v-if="isShowRejectedBill" style="min-width: 75px">条码</th>
-                        <th  v-if="isShowRejectedBill" style="min-width: 100px">商品名</th>
-                        <th  v-if="isShowRejectedBill" style="min-width: 50px">数量</th>
-                        <th  v-if="isShowRejectedBill" style="min-width: 50px">是否正品</th>
-                        <th  v-if="isShowRejectedBill" style="min-width: 100px">备注</th>
+                            <th  v-if="isShowRejectedBill" style="min-width: 75px">条码</th>
+                            <th  v-if="isShowRejectedBill" style="min-width: 100px">商品名</th>
+                            <th  v-if="isShowRejectedBill" style="min-width: 50px">数量</th>
+                            <th  v-if="isShowRejectedBill" style="min-width: 50px">是否正品</th>
+                            <th  v-if="isShowRejectedBill" style="min-width: 100px">备注</th>
                         @endcannot
                         <th  style="min-width: 75px">操作类型</th>
                         <th  style="min-width: 120px">说明</th>
                         <th  style="min-width: 100px">操作者</th>
                         @cannot('订单管理-问题件-客户不可见')
-                        <th  v-if="isShowSecondOrderInfo" style="min-width: 100px">条码</th>
-                        <th  v-if="isShowSecondOrderInfo" style="min-width: 100px">商品名</th>
-                        <th  v-if="isShowSecondOrderInfo" style="min-width: 75px">数量</th>
+                            <th  v-if="isShowSecondOrderInfo" style="min-width: 100px">条码</th>
+                            <th  v-if="isShowSecondOrderInfo" style="min-width: 100px">商品名</th>
+                            <th  v-if="isShowSecondOrderInfo" style="min-width: 75px">数量</th>
                         @endcannot
                     </tr>
 
@@ -167,43 +169,43 @@
                         <td class="child-layer-1">@{{index+1}}</td>
                         <td class="child-layer-1">@{{ orderIssue.id }}</td>
                         @cannot('订单管理-问题件-客户不可见')
-                        <td class="child-layer-1">
-                            @can('订单管理-问题件-编辑')
-                            <button type="button" class="btn btn-sm btn-outline-secondary" @click="disposeOrderIssue($event,orderIssue)" :data-value="orderIssue.id"
-                                    v-if="orderIssue.is_new_rejecting === '有'">有
-                            </button>
-                            <span v-else>@{{ orderIssue.is_new_rejecting }}</span>
-                            @else
-                            <span v-if="orderIssue.is_new_rejecting">@{{ orderIssue.is_new_rejecting }}</span>
-                            @endcan
-                        </td>
-                        @can("订单管理-问题件-置顶")
-                        <td class="text-muted child-layer-1">
-                            <button type="button" class="btn btn-sm btn-outline-danger " @click="cancelOnTop($event)" :data-value="orderIssue.top.id" style="opacity: 0.75" v-if="orderIssue.top">
-                                取消
-                            </button>
-                            <button type="button" class="btn btn-sm btn-outline-secondary" @click="OrderIssueOnTop($event)" :data-value="orderIssue.id" style="opacity: 0.75" v-else>
-                                置顶
-                            </button>
-                        </td>
-                        <td class="child-layer-1">
-                            @can('订单管理-问题件-编辑')
-                            <select class="form-control form-control-sm" :value="orderIssue.rejecting_status" @change="updateOrderIssue(orderIssue,'rejecting_status',$event)">
-                                <option v-for="item in rejectingStatus" :value="item.name">@{{ item.value }}</option>
-                            </select>
-                            @else
-                                @{{ orderIssue.rejecting_status }}
+                            <td class="child-layer-1">
+                                @can('订单管理-问题件-编辑')
+                                    <button type="button" class="btn btn-sm btn-outline-secondary" @click="disposeOrderIssue($event,orderIssue)" :data-value="orderIssue.id"
+                                            v-if="orderIssue.is_new_rejecting === '有'">有
+                                    </button>
+                                    <span v-else>@{{ orderIssue.is_new_rejecting }}</span>
+                                @else
+                                    <span v-if="orderIssue.is_new_rejecting">@{{ orderIssue.is_new_rejecting }}</span>
+                                @endcan
+                            </td>
+                            @can("订单管理-问题件-置顶")
+                                <td class="text-muted child-layer-1">
+                                    <button type="button" class="btn btn-sm btn-outline-danger " @click="cancelOnTop($event)" :data-value="orderIssue.top.id" style="opacity: 0.75" v-if="orderIssue.top">
+                                        取消
+                                    </button>
+                                    <button type="button" class="btn btn-sm btn-outline-secondary" @click="OrderIssueOnTop($event)" :data-value="orderIssue.id" style="opacity: 0.75" v-else>
+                                        置顶
+                                    </button>
+                                </td>
+                                <td class="child-layer-1">
+                                    @can('订单管理-问题件-编辑')
+                                        <select class="form-control form-control-sm" :value="orderIssue.rejecting_status" @change="updateOrderIssue(orderIssue,'rejecting_status',$event)">
+                                            <option v-for="item in rejectingStatus" :value="item.name">@{{ item.value }}</option>
+                                        </select>
+                                    @else
+                                        @{{ orderIssue.rejecting_status }}
+                                    @endcan
+                                </td>{{--退件状态--}}
                             @endcan
-                        </td>{{--退件状态--}}
-                        @endcan
                         @endcannot
                         <td class="child-layer-1">
                             @can('订单管理-问题件-编辑')
-                            <select class="form-control form-control-sm" :value="orderIssue.final_status" @change="updateOrderIssue(orderIssue,'final_status',$event)">
-                                <option v-for="item in  finalStatus" :value="item">@{{ item }}</option>
-                            </select>
+                                <select class="form-control form-control-sm" :value="orderIssue.final_status" @change="updateOrderIssue(orderIssue,'final_status',$event)">
+                                    <option v-for="item in  finalStatus" :value="item.value">@{{ item.name }}</option>
+                                </select>
                             @else
-                            @{{ orderIssue.final_status }}
+                                @{{ orderIssue.final_status }}
                             @endcan
                         </td>{{--最终状态--}}
                         @cannot('订单管理-问题件-客户不可见')  {{--登记日期--}}
@@ -218,9 +220,9 @@
                         <td class="td-yellow child-layer-2">
                             @cannot('订单管理-问题件-客户不可见')
                             @else
-                            <div v-if="orderIssue.remark" class="bg-light-yellow  text-danger top text-left" data-toggle="tooltip" style="opacity: 0.1;position: absolute;z-index: 1">
-                                置顶备注:@{{ orderIssue.remark }}
-                            </div>
+                                <div v-if="orderIssue.remark" class="bg-light-yellow  text-danger top text-left" data-toggle="tooltip" style="opacity: 0.1;position: absolute;z-index: 1">
+                                    置顶备注:@{{ orderIssue.remark }}
+                                </div>
                             @endcannot
                             @{{ orderIssue.order.created_at }}
                         </td>
@@ -236,10 +238,10 @@
                             <span v-if='orderIssue.order.logistic'>@{{ orderIssue.order.logistic.name }}</span>
                         </td>
                         <td class=" hide-content p-0 td-yellow child-layer-2" valign="middle" align="center">
-                            <div :id="'logisticNumbers'+orderIssue.id" :class="orderIssue.order.logisticNumbers.length > 1 ?'collapse ':''">
-                                <p v-for="logisticNumber in orderIssue.order.logisticNumbers" class="m-0 p-0  text-muted ">@{{ logisticNumber }}</p>
-                            </div>
-                            <button v-if="orderIssue.order.logisticNumbers.length > 1" type="button" class="btn btn-sm btn-outline-primary   align-middle mt-1"
+                            <span :id="'logisticNumbers'+orderIssue.id" :class="orderIssue.order.logisticNumbers.length > 1 ?'collapse ':''">
+                                <span class="text-nowrap" v-for="logisticNumber in orderIssue.order.logisticNumbers" class="m-0 p-0  text-muted ">@{{ logisticNumber }}</span>
+                            </span>
+                            <button v-if="orderIssue.order.logisticNumbers.length > 1" type="button" class="btn btn-sm btn-outline-primary align-middle mt-1"
                                     :id="'logisticNumbersBtn'+orderIssue.id" data-toggle="collapse" :data-target="'#logisticNumbers'+orderIssue.id"
                                     @click="toggleLogisticNumbers(orderIssue.id,orderIssue.order.logisticNumbers.length)">
                                 分箱@{{ orderIssue.order.logisticNumbers.length }}件,点击展开
@@ -262,14 +264,16 @@
                             v-if="isShowOrderInfo">
                             <div v-if="orderIssue.order">
                                 <table  class="table table-sm m-0" v-if="orderIssue.order.packages"
-                                       :class="orderIssue.orderPackagecount > 1  ? 'collapse' : ''" :id="'order'+orderIssue.id"
+                                        :class="orderIssue.orderPackagecount > 1  ? 'collapse' : ''" :id="'order'+orderIssue.id"
                                         :data-value="orderIssue.orderCount = 0" :data-count="orderIssue.orderPackagecount = 0">
                                     <template v-for="packages in orderIssue.order.packages">
                                         <tr v-for="item in packages.commodities" class="text-center" :data-value="orderIssue.orderCount += 1" align="center">
                                             <td >@{{ item.commodity.sku }}</td>
                                             <td>
-                                                <p class="text-truncate text-primary m-0 p-0" style="width: 100px;cursor:pointer;text-decoration: underline"  @click="nowrapText($event)">@{{ item.commodity.name }}</p>
-                                                <p class="text-nowrap m-0 p-0" style="display: none;cursor:pointer" @click="truncateText($event)">@{{ item.commodity.name }}</p>
+                                                <div class="text-truncate text-primary tooltipTarget" style="width: 100px;cursor:pointer;text-decoration: underline" title="双击展开" @dblclick="nowrapText($event)">@{{ item.commodity.name }}</div>
+                                                <div class="text-nowrap m-0 p-0 tooltipTarget"  style="display: none;cursor:pointer" @dblclick="truncateText($event)" title="双击收起">@{{ item.commodity.name }}</div>
+                                                {{--                                                <p class="text-truncate text-primary m-0 p-0 tooltipTarget" style="width: 100px;cursor:pointer;text-decoration: underline" title="双击展开"  @dblclick="nowrapText($event)">@{{ item.commodity.name }}</p>--}}
+                                                {{--                                                <p class="text-nowrap m-0 p-0 tooltipTarget" style="display: none;cursor:pointer" @dblclick="truncateText($event)" title="双击收起">@{{ item.commodity.name }}</p>--}}
                                             </td>
                                             <td  :data-value="orderIssue.orderPackagecount += item.amount ">@{{ item.amount }}</td>
                                         </tr>
@@ -285,16 +289,16 @@
                         {{--商品明细 结束--}}
 
                         {{--退单商品明细 开始--}}
-{{--                        @cannot('订单管理-问题件-客户不可见')--}}
+                        {{--                        @cannot('订单管理-问题件-客户不可见')--}}
 
                         <td class="text-muted child-layer-3-hide" v-if="isShowRejectedBill">
                             @can('订单管理-问题件-编辑')
-                            <input type="text" class="form-control form-control-sm" :value="orderIssue.logistic_number_return" @change="changeRejectedBill(orderIssue,$event)">
+                                <input type="text" class="form-control form-control-sm" :value="orderIssue.logistic_number_return" @change="changeRejectedBill(orderIssue,$event)">
                             @else
-                            @{{ orderIssue.logistic_number_return }}
+                                @{{ orderIssue.logistic_number_return }}
                             @endcan
                         </td>
-{{--                        @cannot('订单管理-问题件-客户不可见')--}}
+                        {{--                        @cannot('订单管理-问题件-客户不可见')--}}
                         <td class="p-0 m-0 child-layer-3" v-if="!isShowRejectedBill && index === 0 " style="width:50px;" :rowspan="orderIssues.length" >
                             <span class="btn  btn-outline-secondary "  @click="showRejectedBill"  :style="orderIssues.length>4 ?'{height: 200px;line-height: 100px':''" >展开退单列</span>
                         </td>
@@ -308,8 +312,8 @@
                                         <td style="min-width: 100px" >
                                             <div class="text-truncate text-primary tooltipTarget" style="width: 100px;cursor:pointer;text-decoration: underline" title="双击展开" @dblclick="nowrapText($event)">@{{ item.name_goods }}</div>
                                             <div class="text-nowrap m-0 p-0 tooltipTarget"  style="display: none;cursor:pointer" @dblclick="truncateText($event)" title="双击收起">@{{ item.name_goods }}</div>
-{{--                                            <p class="text-truncate text-primary m-0 p-0 tooltipTarget" style="width: 100px;cursor:pointer;text-decoration: underline" title="双击展开"  @dblclick="nowrapText($event)" >@{{ item.name_goods }}</p>--}}
-{{--                                            <p class="text-nowrap m-0 p-0 tooltipTarget" style="display: none;cursor:pointer"  title="双击收起" @dblclick="truncateText($event)" >@{{ item.name_goods }}</p>--}}
+                                            {{--                                            <p class="text-truncate text-primary m-0 p-0 tooltipTarget" style="width: 100px;cursor:pointer;text-decoration: underline" title="双击展开"  @dblclick="nowrapText($event)" >@{{ item.name_goods }}</p>--}}
+                                            {{--                                            <p class="text-nowrap m-0 p-0 tooltipTarget" style="display: none;cursor:pointer"  title="双击收起" @dblclick="truncateText($event)" >@{{ item.name_goods }}</p>--}}
                                         </td>
                                         <td style="min-width: 50px" :data-value="orderIssue.rejectedCount += item.amount">@{{ item.amount }}</td>
                                         <td style="min-width: 50px" >@{{ item.quality_label }}</td>
@@ -322,7 +326,7 @@
                                 </button>
                             </div>
                         </td>
-{{--                        @endcannot--}}
+                        {{--                        @endcannot--}}
                         {{--退单商品明细 结束--}}
 
                         <td class="child-layer-3">@{{ orderIssue.result_explain}}</td>
@@ -331,9 +335,9 @@
                                 <select class="form-control form-control-sm" :value="orderIssue.order_issue_type_id" @change="updateOrderIssue(orderIssue,'order_issue_type_id',$event)">
                                     <option value></option>
                                     <option v-for="type in orderIssueType" :value="type.name" >@{{ type.value }}</option>
-                                <select>
-                            @else
-                            <span v-if="orderIssue.issue_type">
+                                    <select>
+                                        @else
+                                            <span v-if="orderIssue.issue_type">
                                 @{{ orderIssue.issue_type.name}}
                             </span>
                             @endcan
@@ -366,8 +370,7 @@
                                         <td style="min-width: 200px">@{{ log.content }}</td>
                                         <td style="min-width: 120px">@{{ log.user.name }}</td>
                                         <td style="" class="m-0 p-0 border-0">
-                                            <button type="button" class="btn btn-sm btn-outline-danger m-0 del-btn invisible"
-                                                    @click="deleteOrderIssueLog(log.id,orderIssue.id)">删</button>
+                                            <button type="button" class="btn btn-sm btn-outline-danger m-0 del-btn invisible" @click="deleteOrderIssueLog(log.id,orderIssue.id)">删</button>
                                         </td>
                                     </tr>
                                 </table>
@@ -381,116 +384,121 @@
                             </div>
                         </td>
                         @cannot('订单管理-问题件-客户不可见')
-                        <td class="p-0 m-0 h-100 child-layer-3" v-if="!isShowSecondOrderInfo && index === 0" style="width:50px;" :rowspan="orderIssues.length" >
-                            <span class="btn btn-outline-secondary " @click="showSecondeOrder"   :style="orderIssues.length>4 ?'{height: 200px;line-height: 100px':''">展开运单列</span>
-                        </td>
-                        <td class="child-layer-3-hide" v-if="isShowSecondOrderInfo">
-                            <span v-if="orderIssue.second_order" class="p-0"> @{{ orderIssue.second_order.client_code }}</span>
-                        </td>
-                        <td class="child-layer-3-hide" v-if="isShowSecondOrderInfo">
-                            <span v-if="orderIssue.second_order" class="p-0"> @{{ orderIssue.second_order.logistic.name }}</span>
-                        </td>
-                        <td class="p-0 child-layer-3-hide" valign="middle" align="center" v-if="isShowSecondOrderInfo">
-                            <template v-if="orderIssue.second_order">
-                                <div class=" m-0" :id="'secondOrderNumbers'+orderIssue.id"
-                                     :class="orderIssue.seconderCount > 1 ? 'collapse':''"
-                                     :data-value="orderIssue.seconderCount = 0">
-                                    <p class="m-0 p-0  text-muted " v-for="logisticNumber in orderIssue.second_order.logisticNumbers"
-                                       :data-value="orderIssue.seconderCount +=1">@{{ logisticNumber }}</p>
-                                </div>
-                                <button v-if="orderIssue.seconderCount > 1" type="button"
-                                        class="btn btn-sm btn-outline-primary align-middle mt-1"
-                                        data-toggle="collapse"
-                                        :id="'secondOrderNumbersBtn'+orderIssue.id"
-                                        :data-target="'#secondOrderNumbers'+orderIssue.id"
-                                        @click="toggleseCondOrderNumbers(orderIssue.id,orderIssue.second_order.logisticNumbers.length)">
-                                    分箱@{{ orderIssue.second_order.logisticNumbers.length }}件,点击展开
-                                </button>
-                            </template>
-                        </td>
-                        <td class="child-layer-3-hide p-0" colspan="3" v-if="isShowSecondOrderInfo">
-                            <template v-if="orderIssue.second_order" class=" p-0">
-                                <div class="m-0 p-0" :class="orderIssue.secondeOrderCount > 1 ? 'collapse':''"
-                                     :id="'secondOrder'+orderIssue.id">
-                                    <table class="table table-sm  m-0 "
-                                           :data-count="orderIssue.secondeOrderCount = 0"
-                                           :data-value="orderIssue.secondeOrderItems = 0">
-                                        <template v-for="packages in orderIssue.second_order.packages">
-                                            <tr v-for="item in packages.commodities" :data-value="orderIssue.secondeOrderCount += 1">
-                                                <td >@{{ item.commodity.sku }}</td>
-                                                <td >
-                                                    <p class="text-truncate text-primary m-0 p-0" style="width: 100px;cursor:pointer;text-decoration: underline"  @click="nowrapText($event)">@{{ item.commodity.name }}</p>
-                                                    <p class="text-nowrap m-0 p-0" style="display: none;cursor:pointer" @click="truncateText($event)">@{{ item.commodity.name }}</p>
-                                                </td>
-                                                <td :data-value="orderIssue.secondeOrderItems+=item.amount">@{{ item.amount }}</td>
-                                            </tr>
-                                        </template>
-                                    </table>
-                                </div>
-                                <button type="button" class="btn btn-sm btn-outline-primary  align-middle mt-1"  data-toggle="collapse"
-                                        v-if="orderIssue.secondeOrderCount > 0"
-                                        :id="'secondOrderBtn'+orderIssue.id"
-                                        :data-target="'#secondOrder'+orderIssue.id"
-                                        @click="toggleSecond(orderIssue.id,orderIssue.secondeOrderItems)">
-                                    商品@{{ orderIssue.secondeOrderItems }}件,点击展开
-                                </button>
-                            </template>
-                        </td>
+                            <td class="p-0 m-0 h-100 child-layer-3" v-if="!isShowSecondOrderInfo && index === 0" style="width:50px;" :rowspan="orderIssues.length" >
+                                <span class="btn btn-outline-secondary " @click="showSecondeOrder"   :style="orderIssues.length>4 ?'{height: 200px;line-height: 100px':''">展开运单列</span>
+                            </td>
+                            <td class="child-layer-3-hide" v-if="isShowSecondOrderInfo">
+                                <span v-if="orderIssue.second_order" class="p-0"> @{{ orderIssue.second_order.client_code }}</span>
+                            </td>
+                            <td class="child-layer-3-hide" v-if="isShowSecondOrderInfo">
+                                <span v-if="orderIssue.second_order" class="p-0"> @{{ orderIssue.second_order.logistic.name }}</span>
+                            </td>
+                            <td class="p-0 child-layer-3-hide" valign="middle" align="center" v-if="isShowSecondOrderInfo">
+                                <template v-if="orderIssue.second_order">
+                                    <div class=" m-0" :id="'secondOrderNumbers'+orderIssue.id"
+                                         :class="orderIssue.seconderCount > 1 ? 'collapse':''"
+                                         :data-value="orderIssue.seconderCount = 0">
+                                        <p class="m-0 p-0  text-muted " v-for="logisticNumber in orderIssue.second_order.logisticNumbers"
+                                           :data-value="orderIssue.seconderCount +=1">@{{ logisticNumber }}</p>
+                                    </div>
+                                    <button v-if="orderIssue.seconderCount > 1" type="button"
+                                            class="btn btn-sm btn-outline-primary align-middle mt-1"
+                                            data-toggle="collapse"
+                                            :id="'secondOrderNumbersBtn'+orderIssue.id"
+                                            :data-target="'#secondOrderNumbers'+orderIssue.id"
+                                            @click="toggleseCondOrderNumbers(orderIssue.id,orderIssue.second_order.logisticNumbers.length)">
+                                        分箱@{{ orderIssue.second_order.logisticNumbers.length }}件,点击展开
+                                    </button>
+                                </template>
+                            </td>
+                            <td class="child-layer-3-hide p-0" colspan="3" v-if="isShowSecondOrderInfo">
+                                <template v-if="orderIssue.second_order" class=" p-0">
+                                    <div class="m-0 p-0" :class="orderIssue.secondeOrderCount > 1 ? 'collapse':''"
+                                         :id="'secondOrder'+orderIssue.id">
+                                        <table class="table table-sm  m-0 "
+                                               :data-count="orderIssue.secondeOrderCount = 0"
+                                               :data-value="orderIssue.secondeOrderItems = 0">
+                                            <template v-for="packages in orderIssue.second_order.packages">
+                                                <tr v-for="item in packages.commodities" :data-value="orderIssue.secondeOrderCount += 1">
+                                                    <td >@{{ item.commodity.sku }}</td>
+                                                    <td >
+                                                        <div class="text-truncate text-primary tooltipTarget" style="width: 100px;cursor:pointer;text-decoration: underline" title="双击展开" @dblclick="nowrapText($event)">@{{ item.commodity.name }}</div>
+                                                        <div class="text-nowrap tooltipTarget"  style="display: none;cursor:pointer" @dblclick="truncateText($event)" title="双击收起">@{{ item.commodity.name }}</div>
+                                                        {{--                                                    <p class="text-truncate text-primary m-0 p-0" style="width: 100px;cursor:pointer;text-decoration: underline"  @click="nowrapText($event)">@{{ item.commodity.name }}</p>--}}
+                                                        {{--                                                    <p class="text-nowrap m-0 p-0" style="display: none;cursor:pointer" @click="truncateText($event)" >@{{ item.commodity.name }}</p>--}}
+                                                    </td>
+                                                    <td :data-value="orderIssue.secondeOrderItems+=item.amount">@{{ item.amount }}</td>
+                                                </tr>
+                                            </template>
+                                        </table>
+                                    </div>
+                                    <button type="button" class="btn btn-sm btn-outline-primary  align-middle mt-1"  data-toggle="collapse"
+                                            v-if="orderIssue.secondeOrderCount > 0"
+                                            :id="'secondOrderBtn'+orderIssue.id"
+                                            :data-target="'#secondOrder'+orderIssue.id"
+                                            @click="toggleSecond(orderIssue.id,orderIssue.secondeOrderItems)">
+                                        商品@{{ orderIssue.secondeOrderItems }}件,点击展开
+                                    </button>
+                                </template>
+                            </td>
                         @endcannot
-                        <td class="child-layer-3">
-                            @can('订单管理-问题件-编辑')
-                            <input type="number" class="form-control form-control-sm" :value="orderIssue.logistic_indemnity_money" @change="updateOrderIssue(orderIssue,'logistic_indemnity_money',$event)">
-                            @else
-                                @{{ orderIssue.logistic_indemnity_money }}
-                            @endcan
-                        </td>
-                        <td class="child-layer-3">
-                            @can('订单管理-问题件-编辑')
-                            <select class="form-control form-control-sm" :value="orderIssue.logistic_express_remission" @change="updateOrderIssue(orderIssue,'logistic_express_remission',$event)">
-                                <option value></option>
-                                <option v-for="item in expressRemission" :value="item">@{{ item }}</option>
-                            </select>
-                            @else
-                                @{{ orderIssue.logistic_express_remission }}
-                            @endcan
-                        </td>
                         @cannot('订单管理-问题件-客户不可见')
+                            <td class="child-layer-3">
+                                @can('订单管理-问题件-编辑')
+                                    <input type="number" class="form-control form-control-sm" :value="orderIssue.logistic_indemnity_money" @change="updateOrderIssue(orderIssue,'logistic_indemnity_money',$event)">
+                                @else
+                                    @{{ orderIssue.logistic_indemnity_money }}
+                                @endcan
+                            </td>
+                            <td class="child-layer-3">
+                                @can('订单管理-问题件-编辑')
+                                    <select class="form-control form-control-sm" :value="orderIssue.logistic_express_remission" @change="updateOrderIssue(orderIssue,'logistic_express_remission',$event)">
+                                        <option value></option>
+                                        <option v-for="item in expressRemission" :value="item">@{{ item }}</option>
+                                    </select>
+                                @else
+                                    @{{ orderIssue.logistic_express_remission }}
+                                @endcan
+                            </td>
+                        @endcannot
                         <td class="child-layer-3">
                             @can('订单管理-问题件-编辑')
-                            <input type="number" class="form-control form-control-sm" :value="orderIssue.baoshi_indemnity_money" @change="updateOrderIssue(orderIssue,'baoshi_indemnity_money',$event)">
+                                <input type="number" class="form-control form-control-sm" :value="orderIssue.baoshi_indemnity_money" @change="updateOrderIssue(orderIssue,'baoshi_indemnity_money',$event)">
                             @else
                                 @{{ orderIssue.baoshi_indemnity_money }}
                             @endcan
                         </td>
                         <td class="child-layer-3">
                             @can('订单管理-问题件-编辑')
-                            <select class="form-control form-control-sm" :value="orderIssue.baoshi_express_remission" @change="updateOrderIssue(orderIssue,'baoshi_express_remission',$event)">
-                                <option value></option>
-                                <option v-for="item in expressRemission" :value="item">@{{ item }}</option>
-                            </select>
+                                <select class="form-control form-control-sm" :value="orderIssue.baoshi_express_remission" @change="updateOrderIssue(orderIssue,'baoshi_express_remission',$event)">
+                                    <option value></option>
+                                    <option v-for="item in expressRemission" :value="item">@{{ item }}</option>
+                                </select>
                             @else
                                 @{{ orderIssue.baoshi_express_remission }}
                             @endcan
                         </td>
-                        <td class="child-layer-3">
-                            <select class="form-control form-control-sm" :value="orderIssue.user_workgroup_id" @change="updateOrderIssue(orderIssue,'user_workgroup_id',$event)">
-                                <option value></option>
-                                <option v-for="item in userWorkGroup" :value="item.name">@{{ item.value }}</option>
-                            </select>
-                        </td>
-                        <td>
-                            @can('订单管理-问题件-编辑')
-                            <a :href="'edit/'+orderIssue.id"  class="btn btn-sm btn-outline-primary" target="_blank">改</a>
-                            @endcan
-                            @can('订单管理-问题件-删除')
-                            <button type="button" class="btn btn-sm btn-outline-danger" @click="deleteOrderIssue($event)" :data-value="orderIssue.id">
-                                删
-                            </button>
-                            @endcan
-                        </td>
+                        @cannot('订单管理-问题件-客户不可见')
+                            <td class="child-layer-3">
+                                <select class="form-control form-control-sm" :value="orderIssue.user_workgroup_id" @change="updateOrderIssue(orderIssue,'user_workgroup_id',$event)">
+                                    <option value></option>
+                                    <option v-for="item in userWorkGroup" :value="item.name">@{{ item.value }}</option>
+                                </select>
+                            </td>
+                            <td>
+                                @can('订单管理-问题件-编辑')
+                                    <a :href="'edit/'+orderIssue.id"  class="btn btn-sm btn-outline-primary" target="_blank">改</a>
+                                @endcan
+                                @can('订单管理-问题件-删除')
+                                    <button type="button" class="btn btn-sm btn-outline-danger" @click="deleteOrderIssue($event)" :data-value="orderIssue.id">
+                                        删
+                                    </button>
+                                @endcan
+                            </td>
                         @endcannot
                     </tr>
                 </table>
+                <div class="text-info h5 btn btn">{{$orderIssues->count()}}/@{{  total }}</div>
                 {{$orderIssues->withQueryString()->links()}}
             </div>
         </div>
@@ -636,11 +644,11 @@
                 orderIssues: {!!  $orderIssues->toJson() !!}['data'],
                 owners: [@foreach($owners as $owner){name: '{{ $owner->id }}', value: '{{ $owner->name}}'},@endforeach],
                 orderIssueType: [
-                    @foreach($orderIssueType as $type)
+                        @foreach($orderIssueType as $type)
                     {name: '{{$type->id}}', value: '{{$type->name}}' },
                     @endforeach],
                 qualityLabel: [
-                    @foreach($qualityLabel as $type)
+                        @foreach($qualityLabel as $type)
                     {name: '{{$type->id}}', value: '{{$type->name}}'},
                     @endforeach],
                 userWorkGroup: [
@@ -659,7 +667,7 @@
                 expressRemission:['原单减免', '部分减免', '全部减免'],
                 checkData: [],
                 from: '',
-                finalStatus: ['已解决', '待退回', '退回中'],
+                finalStatus: [{value:'',name:""},{value:'已解决',name:"已解决"},{value:'待退回',name:"待退回"},{value:'退回中',name:"退回中"},],//['无','已解决', '待退回', '退回中'],
                 selectedStyle: '',
                 deleteId: '',
                 total: {!!  $orderIssues->toJson() !!}['total'],
@@ -672,6 +680,7 @@
                 },
             },
             mounted: function () {
+                $(".tooltipTarget").tooltip({'trigger':'hover'});
                 this.isShowOrderInfo = false;
                 this.isShowRejectedBill= false;
                 this.isShowSecondOrderInfo= false;
@@ -679,11 +688,10 @@
                 let countShow = $(tr).children('.one-layer').length;
                 $('.header-1').attr('colspan',countShow);
 
-                $('.tooltipTarget').tooltip({'trigger': 'hover'});
                 $('#list').removeClass("d-none");
 
                 let _this = this;
-                let log_content_range = [{name:'31',value:'近一月'},{name:'92',value:'近三月'},{name:'183',value:'近半年'},{name:'366',value:'近一年'},{name:'0',value:'不限'},];
+                let log_content_range = [{name:'15',value:'15天内'},{name:'31',value:'近一月'},{name:'92',value:'近三月'},{name:'183',value:'近半年'},{name:'366',value:'近一年'},{name:'0',value:'不限'},];
                 let final_status = [
                     {name: 'null', value: '无'},
                     {name: '已解决', value: '已解决'},
@@ -702,26 +710,33 @@
                     {name: 'logistic_number', type: 'input', tip: ['输入原始运单号:前或后加百分号为单个模糊搜索,否则为多条件精确搜索'], placeholder: '运单号'},
                     {name: 'logistic_number_return', type: 'input', tip: '退回单号:前或后加百分号为单个模糊搜索,否则为多条件精确搜索', placeholder: '退回单号'},
                     {name: 'send_client_code', type: 'input', tip: '二次订单号:前或后加百分号为单个模糊搜索,否则为多条件精确搜索', placeholder: '二次订单号'},
+
                 ], [
                     {name: 'created_at_end', type: 'dateTime', tip: '订单结束日期'},
                     {name: 'consignee_name', type: 'input', tip: '收货人名称:前或后加百分号为单个模糊搜索,否则为多条件精确搜索', placeholder: '收货人名称'},
                     {name: 'consignee_phone', type: 'input', tip: '收货人电话:前或后加百分号为单个模糊搜索,否则为多条件精确搜索', placeholder: '收货人电话'},
                     {name: 'good_barcode', type: 'input', tip: '条码:前或后加 百分号为单个模糊搜索,否则为多条件精确搜索', placeholder: '条码'},
                     {name: 'good_name', type: 'input', tip: '商品名:前或后加 百分号为单个模糊搜索,否则为多条件精确搜索', placeholder: '商品名'},
-                    {name: 'id_quality_label', type: 'select', tip: '是否正品', placeholder: '是否正品', data: this.qualityLabel
-                    },
+                    {name: 'id_quality_label', type: 'select', tip: '是否正品', placeholder: '是否正品', data: this.qualityLabel},
+
                 ],[
-                    {name: 'logistic_indemnity_money', type: 'input', tip: '承运商赔偿金额', placeholder: '承运商赔偿金额'},
                     @cannot('订单管理-问题件-客户不可见')
+                    {name: 'logistic_indemnity_money', type: 'input', tip: '承运商赔偿金额', placeholder: '承运商赔偿金额'},
+                    @endcannot
                     {name: 'baoshi_indemnity_money', type: 'input', tip: '宝时赔偿金额', placeholder: '宝时赔偿金额'},
+                    @cannot('订单管理-问题件-客户不可见')
                     {name: 'final_status', type: 'select', tip: '问题件的最终状态', placeholder: '最终状态', data: final_status},
                     {name: 'order_issue_type_id', type: 'select', tip: '问题类别', placeholder: '问题类别', data: this.orderIssueType},
+                    @endcannot
                     {name: ['log_content','addtime'], type: 'input_select', tip: ['处理结果:前或后加 百分号为单个模糊搜索,否则为多条件精确搜索','查询范围越短,搜索速度越快'], placeholder: ['处理结果',''],
                         data:log_content_range,
                         rules:[{son:{addtime:{default:'31',required_without_all_if:['created_at_start','created_at_end']}}}]},
-                         // {date_relevance:{date:['orderdate_start','orderdate_end'],relevance:'addtime',killing:'date',default:[31,92,183,366]}}]},
+                    // {date_relevance:{date:['orderdate_start','orderdate_end'],relevance:'addtime',killing:'date',default:[31,92,183,366]}}]},
                     {name: 'is_handle', type: 'checkbox', tip: '是否已处理', data: [{name: 'ture', value: '已解决'}]},
-                    @endcannot
+                ],[
+                    {name: 'settlement_at_start', type: 'dateTime', tip: '完结起始日期'},
+                    {name: 'settlement_at_end', type: 'dateTime', tip: '完结结束日期' },
+                    {name: 'is_new_rejecting', type: 'select', tip: '退件状态',placeholder: '退件状态',data:[{name:'无',value:'无'},{name:'有',value:'有'},{name:'已处理',value:'已处理'}]},
                 ]];
                 this.form = new query({
                     el: '#form_div',
@@ -785,6 +800,7 @@
                 },
                 deleteOrderIssueById() {
                     let _this = this;
+
                     tempTip.setDuration(99999)
                     tempTip.waitingTip('删除中,请稍候')
                     let id = $('#deleteId').val();
@@ -940,25 +956,26 @@
                     }
                     let _this = this;
                     let ids = _this.checkData;
-                    let data = {ids: ids};
-                    axios.post('{{url('apiLocal/order/issue/endOrderIssue')}}', data).then(function (res) {
-                        if (res.data.success) {
-                            tempTip.setDuration(2000);
-                            tempTip.showSuccess('勾选订单已变为已完结');
-                            _this.orderIssues.forEach(function (item,index) {
-                                if (ids.includes(item.id)) {
-                                    item.final_status = '已解决'
-                                }
-                            });
-                            _this.checkData = [];
-                        } else {
-                            tempTip.setDuration(3000)
-                            tempTip.show(res.data.fail_info)
-                        }
-                    }).catch(function (err) {
-                        tempTip.setDuration(4000);
-                        tempTip.show('网络异常:' + err);
-                    })
+                    // let data = {ids: ids};
+                    this.endOrderIssues(ids)
+                    {{--axios.post('{{url('apiLocal/order/issue/endOrderIssue')}}', data).then(function (res) {--}}
+                    {{--    if (res.data.success) {--}}
+                    {{--        tempTip.setDuration(2000);--}}
+                    {{--        tempTip.showSuccess('勾选订单已变为已完结');--}}
+                    {{--        _this.orderIssues.forEach(function (item,index) {--}}
+                    {{--            if (ids.includes(item.id)) {--}}
+                    {{--                item.final_status = '已解决'--}}
+                    {{--            }--}}
+                    {{--        });--}}
+                    {{--        _this.checkData = [];--}}
+                    {{--    } else {--}}
+                    {{--        tempTip.setDuration(3000)--}}
+                    {{--        tempTip.show(res.data.fail_info)--}}
+                    {{--    }--}}
+                    {{--}).catch(function (err) {--}}
+                    {{--    tempTip.setDuration(4000);--}}
+                    {{--    tempTip.show('网络异常:' + err);--}}
+                    {{--})--}}
                 },
                 disposeOrderIssue(e,orderIssue) {
                     let _this = this;
@@ -978,6 +995,39 @@
                         tempTip.show('网路链接异常' + err);
                     });
                 },
+                endOrderIssueById(id){
+                    this.endOrderIssues([id]);
+                },
+                endOrderIssues(ids){
+                    let data = {ids:ids}
+                    let orderIssues = {};
+                    for (let i = 0; i < this.orderIssues.length; i++) {
+                        let id = this.orderIssues[i]['id']
+                        if(ids.includes(id))orderIssues[id] = this.orderIssues[i];
+
+                    }
+                    axios.post('{{url('apiLocal/order/issue/endOrderIssues')}}',data).then(function(response){
+                        if(response.data.success){
+                            tempTip.setDuration(3000)
+                            tempTip.showSuccess('订单已处理')
+                            let logs = response.data.logs
+                            for (let i = 0; i < logs.length; i++) {
+                                let log = logs[i]
+                                let orderIssue = orderIssues[log['order_issue_id']]
+                                if(orderIssue){
+                                    orderIssue.logs.unshift(log)
+                                    orderIssue['final_status'] = '已解决'
+                                }
+                            }
+                        }else{
+                            tempTip.setDuration(3000)
+                            tempTip.show(response.data.fail_info)
+                        }
+                    }).catch(function(error){
+                        tempTip.setDuration(4000)
+                        tempTip.show('网路链接异常' + error);
+                    })
+                },
                 addOrderIssueLog(id,orderIssue) {
                     let idInput = $('#' + id + ' :input[name="id"]');
                     let contentInput = $('#' + id + ' :input[name="content"]');
@@ -1005,6 +1055,7 @@
                 },
                 deleteOrderIssueLog(id, OrderIssueId) {
                     let _this = this;
+                    if(!confirm('是否删除当前记录'))return;
                     axios.post("{{url('apiLocal/order/issue/log/destroy')}}", {id: id}).then(function (res) {
                         if (res.data.success) {
                             _this.orderIssues.forEach(function (orderIssue) {
@@ -1145,7 +1196,12 @@
                     this.isShowSecondOrderInfo = true;
                 },
                 updateOrderIssue(orderIssue,column,e){
-                    let data = {id:orderIssue['id'],column:column,value:$(e.target).val()}
+                    let value = $(e.target).val()
+                    if(column === 'final_status' && value === '已解决'){
+                        this.endOrderIssueById(orderIssue['id'])
+                        return ;
+                    }
+                    let data = {id:orderIssue['id'],column:column,value:value}
                     axios.post('{{url("apiLocal/order/issue/updateColumn")}}',data).then(function(response){
                         if(response.data.success){
                             orderIssue[column] = data.value
@@ -1166,6 +1222,7 @@
                         tempTip.show('没有勾选内容')
                         return;
                     }
+                    if(!confirm('是否删除当前问题件'))return;
                     let _this = this
                     let data = {ids:this.checkData}
                     axios.post('{{url('apiLocal/order/issue/batchDestroy')}}',data).then(function(response){

+ 2 - 2
resources/views/order/menu.blade.php

@@ -8,13 +8,13 @@
             </li>
             @endcan
             @can('订单管理-波次-查询')
-                <li class="nav-item">
+            <li class="nav-item">
                     <a class="nav-link" href="{{url('order/wave/index/')}}" :class="{active:isActive('wave',2)}">波次</a>
             </li>
             @endcan
             @can('订单管理-问题件-查询')
             <li class="nav-item">
-                <a class="nav-link" href="{{url('order/issue/index/')}}" :class="{active:isActive('issue',2)}">问题件</a>
+                <a class="nav-link" href="{{url('order/issue/index?addtime=15')}}" :class="{active:isActive('issue',2)}">问题件</a>
             </li>
             @endcan
             @can('订单管理-跟踪')

+ 3 - 3
resources/views/order/tracking/index.blade.php

@@ -126,8 +126,8 @@
                                 @{{ trackOrder.order_remark }}
                             @endcan
                         </td>
-                        <td class="td-yellow">@{{ trackOrder.packageWeight }}</td>
-                        <td class="td-yellow">@{{ trackOrder.packageBulk |millimeterToCubic}}</td>
+                        <td class="td-yellow">@{{ trackOrder.gross_weight }}</td>
+                        <td class="td-yellow">@{{ trackOrder.bulk |millimeterToCubic}}</td>
                         <td class="td-yellow">
                             @can('订单管理-跟踪-仓库编辑')
                                 <input class="form-control form-control-sm" :value="trackOrder.pallet_total" @change="warehouseUpdate($event,'pallet_total',trackOrder)" >
@@ -187,7 +187,7 @@
                         </td>
                     </tr>
                 </table>
-
+                <div class="text-info h5 btn btn">{{$trackOrders->count()}}/@{{  page.total }}</div>
               {{ $trackOrders->withQueryString()->links() }}
 
                 <div id="alert_modal" class="modal fade " tabindex="-1" aria-hidden="true" >

+ 1 - 0
routes/apiLocal.php

@@ -47,6 +47,7 @@ Route::group(['prefix' => 'order'], function () {
         Route::post('getOrderInfoByClientNo', 'OrderIssueController@apiGetOrderInfoByClientNo');
         Route::post('isExistByOrderNo','OrderIssueController@isExistByOrderNoApi');
         Route::post('updateLogisticNumberReturn','OrderIssueController@updateLogisticNumberReturnApi');
+        Route::post('endOrderIssues','OrderIssueController@endOrderIssuesApi');
 
          Route::group(['prefix'=>'onTop'],function(){
             Route::post('/store', 'OrderIssueOnTopController@apiStore');