Преглед изворни кода

临时工添加身份证字段

yuang пре 4 година
родитељ
комит
81b0baf42a
2 измењених фајлова са 354 додато и 142 уклоњено
  1. 15 5
      app/Jobs/RejectedPushJob.php
  2. 339 137
      resources/views/rejected/rejectedPushTask/index.blade.php

+ 15 - 5
app/Jobs/RejectedPushJob.php

@@ -8,6 +8,7 @@ use Illuminate\Foundation\Bus\Dispatchable;
 use Illuminate\Queue\InteractsWithQueue;
 use Illuminate\Queue\SerializesModels;
 use Illuminate\Support\Facades\Http;
+use Illuminate\Support\Facades\Log;
 
 class RejectedPushJob implements ShouldQueue
 {
@@ -20,8 +21,8 @@ class RejectedPushJob implements ShouldQueue
     /**
      * type: 推单,上架
      *  [
-     * ['logisticNumberReturn' => '75603675975072', 'asnNo' => 'asn002', 'type' => '推单'],
-     * ['logisticNumberReturn' => '75603675975072', 'asnNo' => 'asn002', 'type' => '推单'],
+     * ['sku' => '75603675975072','taskNum' => 'JI20220316211', 'asnNo' => 'asn002', 'type' => '推单'],
+     * ['sku' => '75603675975072','taskNum' => 'JI20220316211', 'asnNo' => 'asn002', 'type' => '推单'],
      * ]
      */
     private $pushData;
@@ -42,9 +43,18 @@ class RejectedPushJob implements ShouldQueue
      */
     public function handle()
     {
+        $data = [];
+        foreach ($this->pushData as $item) {
+            $data[] = [
+                'asnNo' => $item[0],
+                'logisticNumberReturn' => $item[1],
+                'type' => '推单',
+
+            ];
+        }
         $url = config('api.java.wms.rejectedPushTask.receivePush');
-        dump($url);
-        $response = Http::post($url, $this->pushData);
-        dump($response->body());
+        $response = Http::post($url, $data);
+        Log::info("推送信息!", ['res' => $response->body(), 'req' => $data]);
+
     }
 }

+ 339 - 137
resources/views/rejected/rejectedPushTask/index.blade.php

@@ -10,7 +10,7 @@
                 <label class="form-check-label" for="checkAll">选择全部</label>
             </div>
             <div class="form-group m-2">
-                <select class="form-control selectpicker" title="分页大小" v-model="size">
+                <select class="form-control selectpicker" title="分页大小" v-model="tableData.secondData.size">
                     <option value="50">50</option>
                     <option value="100">100</option>
                     <option value="200">200</option>
@@ -20,46 +20,48 @@
             </div>
 
             <div class="form-group m-2">
-                <select class="form-control selectpicker" title="货主" v-model="search.ownerId">
+                <select class="form-control selectpicker" title="货主" v-model="tableData.secondData.search.ownerId">
                     <option v-for="item of selectData.owners" :value="item.id">@{{ item.name }}</option>
                 </select>
             </div>
 
             <div class="form-group m-2">
-                <select class="form-control selectpicker" title="类型" v-model="search.type">
+                <select class="form-control selectpicker" title="类型" v-model="tableData.secondData.search.type">
                     <option value="正品">正品</option>
                     <option value="次品">次品</option>
                 </select>
             </div>
 
             <div class="form-group m-2">
-                <select class="form-control selectpicker" title="类型" v-model="search.status">
-                    <option selected value="创建">创建</option>
+                <select class="form-control selectpicker" title="状态" v-model="tableData.secondData.search.status">
+                    <option value="创建">创建</option>
                     <option value="等待下载">等待下载</option>
                     <option value="已下载">已下载</option>
-                    <option value="部分推单">部分推单</option>
+                    <option value="推单异常">推单异常</option>
                     <option value="已推单">已推单</option>
+                    <option value="已入库">已入库</option>
                     <option value="部分上架">部分上架</option>
                     <option value="已上架">已上架</option>
                 </select>
             </div>
-
-            <div class="form-group m-2">
-                <button class="form-control btn btn-sm btn-info" @click="searchData()">查询</button>
+            <div class="form-group m-2" data-toggle="tooltip" data-placement="top" title="推单任务编号">
+                <input v-model="tableData.secondData.search.taskNum" class="form-control" type="text"
+                       placeholder="推单任务编号">
             </div>
             <div class="form-group m-2">
-                <button class="form-control btn btn-sm btn-info" @click="stopStoreUp()">批量停止攒单</button>
+                <button class="form-control btn btn-sm btn-info" @click="searchData()">查询</button>
             </div>
         </div>
-        <!--            表格-->
-        <table class="table table-striped table-bordered table-hover card-body td-min-width-80" id="table">
-            <tr v-for="(item,i) in details.data" @click="selectTr===i+1?selectTr=0:selectTr=i+1"
+        <!--表格-->
+        <!--创建-->
+        <table class="table table-striped table-bordered table-hover card-body td-min-width-80" id="firstTable">
+            <tr v-for="(item,i) in tableData.firstData.data" @click="selectTr===i+1?selectTr=0:selectTr=i+1"
                 :class="selectTr===i+1?'focusing' : ''">
                 <td>
                     <input class="checkItem" type="checkbox" v-model="item.checked">
                     <span>@{{ i+1 }}</span>
                 </td>
-                <td class="td-warm text-muted"><span>@{{ item.id }}</span></td>
+                <td class="td-warm text-muted"><span>@{{ item.taskNum }}</span></td>
                 <td class="td-warm text-muted"><span>@{{ item.type }}</span></td>
                 <td class="td-warm text-muted"><span>@{{ item.status }}</span></td>
                 <td class="td-warm text-muted"><span>@{{ item.asnNos }}</span></td>
@@ -68,7 +70,7 @@
                 <td class="td-warm text-muted">
                     <span>
                         @{{ item.orderAmount }}
-                          <button @click="showPackageDetail(item.id)" type="button"
+                          <button @click="showPackageDetail(item.id,true)" type="button"
                                   class="btn btn-sm btn-primary" data-toggle="modal"
                                   data-target="#staticBackdropShowPackageDetail">查看明细</button>
                     </span>
@@ -76,7 +78,7 @@
                 <td class="td-warm text-muted">
                     <span>
                         @{{ item.commodityAmount }}
-                        <button @click="showCommodityDetail(item.id)" type="button"
+                        <button @click="showCommodityDetail(item.id,true)" type="button"
                                 class="btn btn-sm btn-primary" data-toggle="modal"
                                 data-target="#staticBackdropShowCommodityDetail">查看明细</button>
                     </span>
@@ -86,26 +88,74 @@
                                  @click="stopStoreUp(item.id)" type="button"
                                  class="btn btn-success">停止攒单
                          </button>
+                    </span></td>
+            </tr>
+        </table>
+
+        <!--非创建-->
+        <table class="table table-striped table-bordered table-hover card-body td-min-width-80" id="secondTable">
+            <tr v-for="(item,i) in tableData.secondData.data" @click="selectTr===i+1?selectTr=0:selectTr=i+1"
+                :class="selectTr===i+1?'focusing' : ''">
+                <td>
+                    <input class="checkItem" type="checkbox" v-model="item.checked">
+                    <span>@{{ i+1 }}</span>
+                </td>
+                <td class="td-warm text-muted"><span>@{{ item.taskNum }}</span></td>
+                <td class="td-warm text-muted"><span>@{{ item.createTime }}</span></td>
+                <td class="td-warm text-muted"><span>@{{ item.type }}</span></td>
+                <td class="td-warm text-muted"><span>@{{ item.status }}</span></td>
+                <td class="td-warm text-muted overflow-hidden" style="max-width: 20px!important;"><span>@{{ item.asnNos }}</span>
+                </td>
+                <td class="td-warm text-muted"><span>@{{ item.ownerName }}</span></td>
+                <td class="td-warm text-muted"><span>@{{ item.storeUpHour }}</span></td>
+                <td class="td-warm text-muted">
+                    <span>
+                        @{{ item.orderAmount }}
+                          <button @click="showPackageDetail(item.id,true)" type="button"
+                                  class="btn btn-sm btn-primary" data-toggle="modal"
+                                  data-target="#staticBackdropShowPackageDetail">查看明细</button>
+                    </span>
+                </td>
+                <td class="td-warm text-muted">
+                    <span>
+                        @{{ item.commodityAmount }}
+                        <button @click="showCommodityDetail(item.id,true)" type="button"
+                                class="btn btn-sm btn-primary" data-toggle="modal"
+                                data-target="#staticBackdropShowCommodityDetail">查看明细</button>
+                    </span>
+                </td>
+                <td class="td-warm text-muted"><span>
                            <button v-if="item.status != '创建'"
-                                   @click="downExcel(item.id)" type="button"
+                                   @click="downExcel(item)" type="button"
                                    class="btn btn-success">导出EXCEL
                          </button>
+                         <button v-if="item.status === '推单异常'"
+                                 @click="cancelPush(item)" type="button"
+                                 class="btn btn-success">取消推单
+                         </button>
+                         <button v-if="item.status === '推单异常'"
+                                 @click="showPushDetail(item.id)" type="button"
+                                 class="btn btn-sm btn-primary" data-toggle="modal"
+                                 data-target="#staticBackdropShowPushDetail">查看异常明细</button>
+                             <button v-if="item.status === '已推单'"
+                                     @click="storeIn(item)" type="button"
+                                     class="btn btn-sm btn-primary">入库</button>
                     </span></td>
             </tr>
         </table>
-
+        <!--分页-->
         <nav aria-label="...">
             <ul class="pagination">
-                <li class="page-item" :class="current===1?'disabled':''">
-                    <button class="page-link" @click="pagination('pre')">上一页</button>
+                <li class="page-item" :class="tableData.secondData.current===1?'disabled':''">
+                    <button class="page-link" @click="secondTablePagination('pre')">上一页</button>
                 </li>
-                <li class="page-item" :class="current===details.pages?'disabled':''">
-                    <button class="page-link" @click="pagination('next')">下一页</button>
+                <li class="page-item" :class="tableData.secondData.current===tableData.secondData.pages?'disabled':''">
+                    <button class="page-link" @click="secondTablePagination('next')">下一页</button>
                 </li>
             </ul>
         </nav>
-
         <!-- Modal -->
+        <!--商品明细-->
         <div class="modal fade" id="staticBackdropShowPackageDetail" tabindex="-1" aria-labelledby="staticBackdropLabel"
              aria-hidden="true">
             <div class="modal-dialog " style="max-width: 100% !important;">
@@ -121,9 +171,9 @@
                         <div class="modal-dialog  modal-dialog-scrollable" style="max-width: 100% !important;">
                             <table class="table table-sm"
                                    style="background: #fff;" id="tablePackage">
-                                <tr v-for="(item,i) in resData.packageDetail.data" :key="i">
+                                <tr v-for="(item,i) in showDetailData.packageDetail.data" :key="i">
                                     <td class="td-warm text-muted"><span>@{{ i+1 }}</span></td>
-                                    <td class="td-warm text-muted"><span>@{{ item.rejectedPushTaskHeaderId }}</span>
+                                    <td class="td-warm text-muted"><span>@{{ item.taskNum }}</span>
                                     </td>
                                     <td class="td-warm text-muted"><span>@{{ item.createdAt }}</span></td>
                                     <td class="td-warm text-muted"><span>@{{ item.checkedNumbers }}</span></td>
@@ -152,11 +202,11 @@
 
                         <nav aria-label="...">
                             <ul class="pagination">
-                                <li class="page-item" :class="resData.packageDetail.current===1?'disabled':''">
+                                <li class="page-item" :class="showDetailData.packageDetail.current===1?'disabled':''">
                                     <button class="page-link" @click="packagePagination('pre')">上一页</button>
                                 </li>
                                 <li class="page-item"
-                                    :class="resData.packageDetail.current===resData.packageDetail.pages?'disabled':''">
+                                    :class="showDetailData.packageDetail.current===showDetailData.packageDetail.pages?'disabled':''">
                                     <button class="page-link" @click="packagePagination('next')">下一页</button>
                                 </li>
                             </ul>
@@ -165,6 +215,7 @@
                 </div>
             </div>
         </div>
+        <!--订单明细-->
         <div class="modal fade" id="staticBackdropShowCommodityDetail" tabindex="-1"
              aria-labelledby="staticBackdropLabel"
              aria-hidden="true">
@@ -181,9 +232,9 @@
                         <div class="modal-dialog  modal-dialog-scrollable">
                             <table class="table table-sm"
                                    style="background: #fff;" id="tableCommodity">
-                                <tr v-for="(item,i) in resData.commodityDetail.data" :key="i">
+                                <tr v-for="(item,i) in showDetailData.commodityDetail.data" :key="i">
                                     <td class="td-warm text-muted"><span>@{{ i+1 }}</span></td>
-                                    <td class="td-warm text-muted"><span>@{{ item.rejectedPushTaskHeaderId }}</span>
+                                    <td class="td-warm text-muted"><span>@{{ item.taskNum }}</span>
                                     </td>
                                     <td class="td-warm text-muted"><span>@{{ item.sku }}</span></td>
                                     <td class="td-warm text-muted"><span>@{{ item.nameGoods }}</span></td>
@@ -194,11 +245,11 @@
                         </div>
                         <nav aria-label="...">
                             <ul class="pagination">
-                                <li class="page-item" :class="resData.commodityDetail.current===1?'disabled':''">
+                                <li class="page-item" :class="showDetailData.commodityDetail.current===1?'disabled':''">
                                     <button class="page-link" @click="commodityPagination('pre')">上一页</button>
                                 </li>
                                 <li class="page-item"
-                                    :class="resData.commodityDetail.current===resData.commodityDetail.pages?'disabled':''">
+                                    :class="showDetailData.commodityDetail.current===showDetailData.commodityDetail.pages?'disabled':''">
                                     <button class="page-link" @click="commodityPagination('next')">下一页</button>
                                 </li>
                             </ul>
@@ -207,6 +258,40 @@
                 </div>
             </div>
         </div>
+        <!--推单明细-->
+        <div class="modal fade" id="staticBackdropShowPushDetail" tabindex="-1"
+             aria-labelledby="staticBackdropLabel"
+             aria-hidden="true">
+            <div class="modal-dialog modal-xl">
+                <div class="modal-content ">
+                    <div class="modal-header ">
+                        <h5 class="modal-title" id="staticBackdropLabel">明细</h5>
+                        <button type="button" class="close" data-dismiss="modal" aria-label="Close">
+                            <span aria-hidden="true">&times;</span>
+                        </button>
+                    </div>
+                    <div class="modal-body ">
+                        <!-- Scrollable modal -->
+                        <div class="modal-dialog  modal-dialog-scrollable" style="pointer-events:auto!important;">
+                            <table class="table table-sm"
+                                   style="background: #fff;" id="tablePushDetail">
+                                <tr v-for="(item,i) in showDetailData.pushDetail" :key="i">
+                                    <td class="td-warm text-muted"><span>@{{ i+1 }}</span></td>
+                                    <td class="td-warm text-muted"><span>@{{ item.sku }}</span></td>
+                                    <td class="td-warm text-muted"><span :style="pushDetailStyle(item.status)">@{{ item.status }}</span>
+                                    </td>
+                                    <td class="td-warm text-muted">
+                                        <button @click="removePushDetailError(item)" type="button"
+                                                class="btn btn-sm btn-primary">移除异常SKU
+                                        </button>
+                                    </td>
+                                </tr>
+                            </table>
+                        </div>
+                    </div>
+                </div>
+            </div>
+        </div>
     </div>
 
 
@@ -218,7 +303,7 @@
         let vue = new Vue({
             el: "#list",
             data: {
-                resData: {
+                showDetailData: {
                     packageDetail: {
                         data: [],
                         total: null,
@@ -232,46 +317,52 @@
                         current: 1,
                         pages: null,
                         size: 50,
-                    }
+                    },
+                    pushDetail: []
 
                 },
-                submitData: {
-                    type: null,
-                    warehouseId: null,
-                    allowMixed: null,
-                    volume: null,
-                    loadWeight: null,
-                    createAmount: null,
-                },
                 selectData: {
                     owners: {!! $owners !!}
                 },
                 checkAll: false,
                 selectTr: 0,
-                details: {
-                    data: [],
-                    total: null,
-                    current: 1,
-                    pages: null,
-                    size: 50,
-                },
-                search: {
-                    ownerId: null,
-                    type: null,
-                    status: '创建',
-                    ownerIdList: {!! $ownerIds !!}
-                },
-                size: 50,
-                current: 1,
+                tableData: {
+                    firstData: {
+                        data: [],
+                        total: null,
+                        current: 1,
+                        pages: null,
+                        size: 1000,
+                        search: {
+                            ownerId: null,
+                            type: null,
+                            status: '创建',
+                            ownerIdList: {!! $ownerIds !!}
+                        }
+                    },
+                    secondData: {
+                        data: [],
+                        total: null,
+                        current: 1,
+                        pages: null,
+                        size: 50,
+                        search: {
+                            ownerId: null,
+                            taskNum: null,
+                            type: null,
+                            status: null,
+                            ownerIdList: {!! $ownerIds !!}
+                        }
+                    }
+                }
             },
             created() {
-                let url = this.getBaseUrl() + `/api/wms/rejectedPushTask/list?size=${this.size}&current=${this.current}`;
-                this.getPageResult(url);
+                this.initData();
             },
             mounted: function () {
                 $('#list').removeClass('d-none');
                 $(".up").slideUp();
-                let column = [
+                let firstTableColumn = [
                     {name: 'row_num', value: '序号'},
                     {name: 'id', value: '推单任务编号'},
                     {name: 'type', value: '任务类型'},
@@ -284,10 +375,33 @@
                     {name: 'action', value: '操作'},
                 ];
                 new Header({
-                    el: "table",
-                    name: "details",
-                    column: column,
-                    data: this.details.data,
+                    el: "firstTable",
+                    name: "firstData",
+                    column: firstTableColumn,
+                    data: this.tableData.firstData.data,
+                    restorationColumn: 'addtime',
+                    isCheckAllBox: false,
+                    fixedTop: ($('#form_div').height()) + ($('#btn').height()) + 1,
+                }).init();
+
+                let secondTableColumn = [
+                    {name: 'row_num', value: '序号'},
+                    {name: 'id', value: '推单任务编号'},
+                    {name: 'createTime', value: '创建时间'},
+                    {name: 'type', value: '任务类型'},
+                    {name: 'status', value: '状态'},
+                    {name: 'asnNos', value: 'ASN单号'},
+                    {name: 'ownerName', value: '货主'},
+                    {name: 'storeUpHour', value: '积攒时间'},
+                    {name: 'orderAmount', value: '订单数'},
+                    {name: 'commodityAmount', value: '商品数'},
+                    {name: 'action', value: '操作'},
+                ];
+                new Header({
+                    el: "secondTable",
+                    name: "secondData",
+                    column: secondTableColumn,
+                    data: this.tableData.secondData.data,
                     restorationColumn: 'addtime',
                     isCheckAllBox: false,
                     fixedTop: ($('#form_div').height()) + ($('#btn').height()) + 1,
@@ -318,7 +432,7 @@
                     el: "tablePackage",
                     name: "details",
                     column: columnPackage,
-                    data: this.resData.packageDetail.data,
+                    data: this.showDetailData.packageDetail.data,
                     restorationColumn: 'addtime',
                     isCheckAllBox: false,
 
@@ -337,70 +451,125 @@
                     el: "tableCommodity",
                     name: "details",
                     column: columnCommodity,
-                    data: this.resData.commodityDetail.data,
+                    data: this.showDetailData.commodityDetail.data,
+                    restorationColumn: 'addtime',
+                    isCheckAllBox: false,
+                    fixedTop: ($('#form_div').height()) + ($('#btn').height()) + 1,
+                }).init();
+
+
+                let pushDetailColumn = [
+                    {name: 'id', value: '序号'},
+                    {name: 'sku', value: 'SKU'},
+                    {name: 'status', value: '状态'},
+                    {name: 'action', value: '操作'}
+                ];
+                new Header({
+                    el: "tablePushDetail",
+                    name: "details",
+                    column: pushDetailColumn,
+                    data: this.showDetailData.pushDetail,
                     restorationColumn: 'addtime',
                     isCheckAllBox: false,
                     fixedTop: ($('#form_div').height()) + ($('#btn').height()) + 1,
                 }).init();
             },
             methods: {
+                //初始化页面数据
+                initData() {
+                    //加载firstTable
+                    let firstDataUrl = this.getBaseUrl() + `/api/wms/rejectedPushTask/list?size=${this.tableData.firstData.size}&current=${this.tableData.firstData.current}`;
+                    this.fetch(firstDataUrl, this.tableData.firstData, this.tableData.firstData.search);
+                    //加载secondTable
+                    let secondDataUrl = this.getBaseUrl() + `/api/wms/rejectedPushTask/list?size=${this.tableData.secondData.size}&current=${this.tableData.secondData.current}`;
+                    this.fetch(secondDataUrl, this.tableData.secondData, this.tableData.secondData.search);
+                },
+                //发送请求并给对应数据赋值
+                fetch(url, data, search) {
+                    tempTip.showSuccess('开始查询,请稍后!');
+                    axios.post(url, search).then(res => {
+                        if (res.data.code !== 200) {
+                            tempTip.show('接口异常!');
+                            data.data = [];
+                            data.total = 0
+                            data.current = 1
+                            data.pages = 0
+                        } else {
+                            tempTip.showSuccess('查询成功!');
+                            data.data = res.data.data.list;
+                            data.total = res.data.data.page.total;
+                            data.current = res.data.data.page.pageNum;
+                            data.pages = res.data.data.page.pages
+                            data.size = res.data.data.page.pageSize;
+                        }
+                    });
+                },
+                //包裹明细分页
                 packagePagination(flag) {
                     console.log(flag);
-                    if (flag === 'pre' && this.resData.packageDetail.current > 1) {
-                        this.resData.packageDetail.current--;
-                    } else if (flag === 'next' && this.resData.packageDetail.current < this.resData.packageDetail.pages) {
-                        this.resData.packageDetail.current++;
+                    if (flag === 'pre' && this.showDetailData.packageDetail.current > 1) {
+                        this.showDetailData.packageDetail.current--;
+                    } else if (flag === 'next' && this.showDetailData.packageDetail.current < this.showDetailData.packageDetail.pages) {
+                        this.showDetailData.packageDetail.current++;
                     }
-                    this.showPackageDetail(this.resData.packageDetail.data[0].rejectedPushTaskHeaderId);
+                    this.showPackageDetail(this.showDetailData.packageDetail.data[0].rejectedPushTaskHeaderId);
                 },
+                //商品明细分页
                 commodityPagination(flag) {
-                    console.log(flag);
-                    if (flag === 'pre' && this.resData.commodityDetail.current > 1) {
-                        this.resData.commodityDetail.current--;
-                    } else if (flag === 'next' && this.resData.commodityDetail.current < this.resData.commodityDetail.pages) {
-                        this.resData.commodityDetail.current++;
+                    if (flag === 'pre' && this.showDetailData.commodityDetail.current > 1) {
+                        this.showDetailData.commodityDetail.current--;
+                    } else if (flag === 'next' && this.showDetailData.commodityDetail.current < this.showDetailData.commodityDetail.pages) {
+                        this.showDetailData.commodityDetail.current++;
                     }
-                    this.showCommodityDetail(this.resData.commodityDetail.data[0].rejectedPushTaskHeaderId);
+                    this.showCommodityDetail(this.showDetailData.commodityDetail.data[0].rejectedPushTaskHeaderId);
                 },
-                showCommodityDetail(id) {
-                    let url = this.getBaseUrl() + `/api/wms/rejectedPushTask/commodity/list?size=${this.resData.commodityDetail.size}&current=${this.resData.commodityDetail.current}&rejectedPushTaskId=${id}`
+                //查询商品明细
+                showCommodityDetail(id, firstFlag = false) {
+                    if (firstFlag) {
+                        this.showDetailData.commodityDetail.current = 1;
+                    }
+                    let url = this.getBaseUrl() + `/api/wms/rejectedPushTask/commodity/list?size=${this.showDetailData.commodityDetail.size}&current=${this.showDetailData.commodityDetail.current}&rejectedPushTaskId=${id}`;
                     tempTip.showSuccess('开始查询,请稍后!');
                     axios.get(url).then(res => {
                         tempTip.showSuccess('查询成功!');
                         if (res.data.code !== 200) {
                             tempTip.show('接口异常!');
-                            this.resData.commodityDetail.data = [];
-                            this.resData.commodityDetail.total = 0
-                            this.resData.commodityDetail.current = 1
-                            this.resData.commodityDetail.pages = 0
-                            this.resData.commodityDetail.size = 50;
+                            this.showDetailData.commodityDetail.data = [];
+                            this.showDetailData.commodityDetail.total = 0
+                            this.showDetailData.commodityDetail.current = 1
+                            this.showDetailData.commodityDetail.pages = 0
+                            this.showDetailData.commodityDetail.size = 50;
                         } else {
-                            this.resData.commodityDetail.data = res.data.data.list;
-                            this.resData.commodityDetail.total = res.data.data.page.total;
-                            this.resData.commodityDetail.current = res.data.data.page.pageNum;
-                            this.resData.commodityDetail.pages = res.data.data.page.pages
-                            this.resData.commodityDetail.size = res.data.data.page.pageSize;
+                            this.showDetailData.commodityDetail.data = res.data.data.list;
+                            this.showDetailData.commodityDetail.total = res.data.data.page.total;
+                            this.showDetailData.commodityDetail.current = res.data.data.page.pageNum;
+                            this.showDetailData.commodityDetail.pages = res.data.data.page.pages
+                            this.showDetailData.commodityDetail.size = res.data.data.page.pageSize;
                         }
                     });
                 },
-                showPackageDetail(id) {
-                    let url = this.getBaseUrl() + `/api/wms/rejectedPushTask/package/list?size=${this.resData.packageDetail.size}&current=${this.resData.packageDetail.current}&rejectedPushTaskId=${id}`
+                //查询包裹明细
+                showPackageDetail(id, firstFlag = false) {
+                    if (firstFlag) {
+                        this.showDetailData.packageDetail.current = 1;
+                    }
+                    let url = this.getBaseUrl() + `/api/wms/rejectedPushTask/package/list?size=${this.showDetailData.packageDetail.size}&current=${this.showDetailData.packageDetail.current}&rejectedPushTaskId=${id}`
                     tempTip.showSuccess('开始查询,请稍后!');
                     axios.get(url).then(res => {
                         tempTip.showSuccess('查询成功!');
                         if (res.data.code !== 200) {
                             tempTip.show('接口异常!');
-                            this.resData.packageDetail.data = [];
-                            this.resData.packageDetail.total = 0
-                            this.resData.packageDetail.current = 1
-                            this.resData.packageDetail.pages = 0
-                            this.resData.packageDetail.size = 50;
+                            this.showDetailData.packageDetail.data = [];
+                            this.showDetailData.packageDetail.total = 0
+                            this.showDetailData.packageDetail.current = 1
+                            this.showDetailData.packageDetail.pages = 0
+                            this.showDetailData.packageDetail.size = 50;
                         } else {
-                            this.resData.packageDetail.data = res.data.data.list;
-                            this.resData.packageDetail.total = res.data.data.page.total;
-                            this.resData.packageDetail.current = res.data.data.page.pageNum;
-                            this.resData.packageDetail.pages = res.data.data.page.pages
-                            this.resData.packageDetail.size = res.data.data.page.pageSize;
+                            this.showDetailData.packageDetail.data = res.data.data.list;
+                            this.showDetailData.packageDetail.total = res.data.data.page.total;
+                            this.showDetailData.packageDetail.current = res.data.data.page.pageNum;
+                            this.showDetailData.packageDetail.pages = res.data.data.page.pages
+                            this.showDetailData.packageDetail.size = res.data.data.page.pageSize;
                         }
                     });
                 },
@@ -409,6 +578,7 @@
                         item.checked = this.checkAll;
                     }
                 },
+                //停止攒单
                 stopStoreUp(id = null) {
                     let idList = null
                     let url = this.getBaseUrl() + `/api/wms/rejectedPushTask/stopStoreUp/`;
@@ -428,36 +598,14 @@
                             tempTip.show(res.data.message);
                         } else {
                             tempTip.showSuccess('修改状态成功!');
-                            this.searchData();
+                            this.initData();
                         }
                     });
                 },
-                getPageResult(url) {
-                    tempTip.showSuccess('开始查询,请稍后!');
-                    axios.post(url, this.getSearch()).then(res => {
-                        if (res.data.code !== 200) {
-                            tempTip.show('接口异常!');
-                            this.details.data = [];
-                            this.details.total = 0
-                            this.details.current = 1
-                            this.details.pages = 0
-                            this.details.size = 50;
-                        } else {
-                            tempTip.showSuccess('查询成功!');
-                            this.details.data = res.data.data.list;
-                            this.details.total = res.data.data.page.total;
-                            this.details.current = res.data.data.page.pageNum;
-                            this.details.pages = res.data.data.page.pages
-                            this.details.size = res.data.data.page.pageSize;
-                        }
-                    });
-                },
-                getSearch() {
-                    return Object.assign({}, this.search);
-                },
+                //查询
                 searchData() {
-                    this.current = 1;
-                    this.pagination();
+                    this.tableData.secondData.current = 1;
+                    this.secondTablePagination();
                 },
                 //根据环境获取不同的url
                 getBaseUrl() {
@@ -470,21 +618,23 @@
                     }
                     return url;
                 },
-                pagination(flag) {
-                    if (flag === 'pre' && this.current > 1) {
-                        this.current--;
-                    } else if (flag === 'next' && this.current < this.details.pages) {
-                        this.current++;
+                //第二个表格分页查询
+                secondTablePagination(flag) {
+                    if (flag === 'pre' && this.tableData.secondData.current > 1) {
+                        this.tableData.secondData.current--;
+                    } else if (flag === 'next' && this.tableData.secondData.current < this.tableData.secondData.pages) {
+                        this.tableData.secondData.current++;
                     }
-                    let url = this.getBaseUrl() + `/api/wms/rejectedPushTask/list?size=${this.size}&current=${this.current}`;
-                    this.getPageResult(url);
+                    let url = this.getBaseUrl() + `/api/wms/rejectedPushTask/list?size=${this.tableData.secondData.size}&current=${this.tableData.secondData.current}`;
+                    this.fetch(url, this.tableData.secondData, this.tableData.secondData.search);
                 },
-
-                downExcel(id) {
+                //下载excel
+                downExcel(item) {
                     let url = this.getBaseUrl();
-                    url += `/api/wms/rejectedPushTask/export/create?rejectedPushTaskId=${id}`;
+                    url += `/api/wms/rejectedPushTask/export/create?rejectedPushTaskId=${item.id}`;
                     axios.get(url).then(res => {
                         if (res.data.code === 200) {
+                            item.status = '已下载';
                             let filename = res.data.data;
                             let downUrl = this.getBaseUrl() + `/api/wms/rejectedPushTask/export/download?filename=${filename}`;
                             let link = document.createElement('a');
@@ -500,9 +650,61 @@
                             tempTip.show(res.data.data);
                         }
                     })
+                },
+                cancelPush(item) {
+                    let url = this.getBaseUrl() + `/api/wms/rejectedPushTask/cancelPush?taskId=${item.id}`
+                    axios.post(url).then(res => {
+                        tempTip.showSuccess('取消成功!');
+                        item.status = "已下载"
+                    })
+                },
+                showPushDetail(id) {
+                    let url = this.getBaseUrl() + `/api/wms/rejectedPushTask/sku/list?taskId=${id}`
+                    axios.get(url).then(res => {
+                        this.showDetailData.pushDetail = res.data.data
+                    })
+                },
+                pushDetailStyle(status) {
+                    let res = {};
+                    switch (status) {
+                        case "未推单":
+                            res.color = '#0206ff'
+                            break;
+                        case "已推单":
+                            res.color = '#bfa'
+                            break;
+                        case "推单异常":
+                            res.color = '#f00'
+                            break;
+                    }
+                    return res;
+                },
+
+                removePushDetailError(item) {
+                    let index = this.showDetailData.pushDetail.indexOf(item);
+
+                    let url = this.getBaseUrl() + `/api/wms/rejectedPushTask/sku/${item.id}`
+                    axios.delete(url).then(res => {
+                        if (res.data.code === 200) {
+                            tempTip.showSuccess('移除成功!');
+                            this.showDetailData.pushDetail.splice(index, 1);
+                        } else {
+                            tempTip.show('移除失败!' + res.data.message);
+                        }
+                    })
+                },
+                storeIn(item) {
+                    let url = this.getBaseUrl() + `/api/wms/rejectedPushTask/${item.id}/storeIn`
+                    axios.post(url).then((res) => {
+                        if (res.data.code === 200) {
+                            tempTip.showSuccess('入库成功!');
+                            item.status = "已入库";
+                        } else {
+                            tempTip.show('入库失败!' + res.data.message);
+                        }
+                    });
                 }
             },
-
         });
     </script>
 @endsection