Explorar o código

订单操作日志

yuang %!s(int64=4) %!d(string=hai) anos
pai
achega
17f30dfccd

+ 6 - 0
app/Http/Controllers/KpiController.php

@@ -49,6 +49,12 @@ class KpiController extends Controller
         return view('kpi.logisticsPunctuality.index', compact('ownerIds'));
     }
 
+    public function orderOperationLog()
+    {
+        $ownerIds = $this->getOwners()->pluck('id');
+        return view('kpi.orderOperationLog.index', compact('ownerIds'));
+    }
+
     /**
      * @return Builder[]|Collection
      */

+ 24 - 13
resources/views/kpi/logisticsPunctuality/index.blade.php

@@ -25,7 +25,12 @@
             <div class="form-group m-2" data-toggle="tooltip" data-placement="top" title="截止日期">
                 <input v-model="search.endTime" class="form-control" type="date" step="01">
             </div>
-
+            <div class="form-group m-2">
+                <select class="form-control selectpicker" title="是否收货" v-model="search.receiveStatus">
+                    <option value="1">全部</option>
+                    <option value="2">是</option>
+                </select>
+            </div>
             <div class="form-group m-2">
                 <button class="form-control btn btn-sm btn-info" @click="searchData()">查询</button>
             </div>
@@ -180,19 +185,25 @@
                     search.endTime += ' 23:59:59';
                     tempTip.showSuccess('开始查询,请稍后!');
                     axios.post(url, search).then(res => {
-                        tempTip.showSuccess('查询成功!');
-                        if (res.data.data === undefined) {
-                            this.details.data = [];
-                            this.details.total = 0
-                            this.details.current = 1
-                            this.details.pages = 0
-                            this.details.size = 50;
+                        if (res.data.code !== 200) {
+                            Object.keys(res.data.data).forEach(k => {
+                                tempTip.show(res.data.data[k]);
+                            })
                         } else {
-                            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;
+                            tempTip.showSuccess('查询成功!');
+                            if (res.data.data === undefined) {
+                                this.details.data = [];
+                                this.details.total = 0
+                                this.details.current = 1
+                                this.details.pages = 0
+                                this.details.size = 50;
+                            } else {
+                                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;
+                            }
                         }
                     });
                 },

+ 230 - 0
resources/views/kpi/orderOperationLog/index.blade.php

@@ -0,0 +1,230 @@
+@extends('layouts.app')
+@section('title')订单操作日志@endsection
+@section('content')
+    <div class="d-none" id="list">
+        <!--查询            -->
+        <div class="row m-3" style="background-color: #fff;">
+            <div class="form-group m-2">
+                <select class="form-control selectpicker" title="分页大小" v-model="size">
+                    <option value="50">50</option>
+                    <option value="100">100</option>
+                    <option value="200">200</option>
+                    <option value="500">500</option>
+                    <option value="1000">1000</option>
+                </select>
+            </div>
+            <div class="form-group m-2" data-toggle="tooltip" data-placement="top" title="货主">
+                <input v-model="search.customerName" class="form-control" type="text" step="01" placeholder="货主">
+            </div>
+            <div class="form-group m-2" data-toggle="tooltip" data-placement="top" title="起始日期">
+                <input v-model="search.startTime" class="form-control" type="date" step="01">
+            </div>
+            <div class="form-group m-2" data-toggle="tooltip" data-placement="top" title="截止日期">
+                <input v-model="search.endTime" class="form-control" type="date" step="01">
+            </div>
+            <div class="form-group m-2">
+                <button class="form-control btn btn-sm btn-info" @click="searchData()">查询</button>
+            </div>
+
+            <div class="form-group m-2">
+                <button class="form-control btn btn-sm btn-success" @click="downExcel()">导出EXCEL</button>
+            </div>
+        </div>
+
+        <!--            导出-->
+        <span class="dropdown"></span>
+        <!--            表格-->
+        <table class="table table-striped table-bordered table-hover text-nowrap waybill-table td-min-width-80"
+               style="background: #fff;" id="table">
+            <tr v-for="(item,i) in details.data" :key="i">
+                <td class="td-warm text-muted"><span>@{{ i+1 }}</span></td>
+                <td class="td-warm text-muted"><span>@{{ item.ownerName }}</span></td>
+                <td class="td-warm text-muted"><span>@{{ item.erpOrderNo }}</span></td>
+                <td class="td-warm text-muted"><span>@{{ item.logisticNumber }}</span></td>
+                <td class="td-warm text-muted"><span>@{{ item.province }}</span></td>
+                <td class="td-warm text-muted"><span>@{{ item.warehouseCode }}</span></td>
+                <td class="td-warm text-muted"><span>@{{ item.payTime }}</span></td>
+                <td class="td-warm text-muted"><span>@{{ item.issueTime }}</span></td>
+                <td class="td-warm text-muted"><span>@{{ item.checkTime }}</span></td>
+                <td class="td-warm text-muted"><span>@{{ item.logisticBranch }}</span></td>
+                <td class="td-warm text-muted"><span>@{{ item.pickupTime }}</span></td>
+                <td class="td-warm text-muted"><span>@{{ item.transferTime }}</span></td>
+                <td class="td-warm text-muted"><span>@{{ item.receiveTime }}</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>
+                <li class="page-item" :class="current===details.pages?'disabled':''">
+                    <button class="page-link" @click="pagination('next')">下一页</button>
+                </li>
+            </ul>
+        </nav>
+    </div>
+
+
+@endsection
+
+@section('lastScript')
+    <script type="text/javascript" src="{{mix('js/queryForm/header.js')}}"></script>{{--新版2--}}
+    <script>
+        let vue = new Vue({
+            el: "#list",
+            data: {
+                selectTr: null,
+                details: {
+                    data: [],
+                },
+                search: {
+                    startTime: null,
+                    endTime: null,
+                    customerName: null,
+                    ownerIdList: {!! $ownerIds !!}
+                },
+                size: 50,
+                current: 1,
+            },
+            created() {
+                let url = this.getBaseUrl();
+                url += `/api/report/orderOperationLog/list?size=${this.size}&current=${this.current}`;
+
+                var day1 = new Date();
+                day1.setTime(day1.getTime() - 24 * 60 * 60 * 1000);
+                var s1 = day1.getFullYear() + "-" + ((day1.getMonth() + 1) >= 10 ? (day1.getMonth() + 1) : ('0' + (day1.getMonth() + 1))) + "-" + (day1.getDate() >= 10 ? day1.getDate() : ('0' + day1.getDate()));
+
+                //今天的时间
+                var day2 = new Date();
+                day2.setTime(day2.getTime());
+                var s2 = day2.getFullYear() + "-" + ((day2.getMonth() + 1) >= 10 ? (day2.getMonth() + 1) : ('0' + (day2.getMonth() + 1))) + "-" + (day2.getDate() >= 10 ? day2.getDate() : ('0' + day2.getDate()));
+                this.search.startTime = s1;
+                this.search.endTime = s2;
+                let search = Object.assign({}, this.search);
+                search.startTime += ' 00:00:00';
+                search.endTime += ' 23:59:59';
+                tempTip.showSuccess('开始查询,请稍后!');
+                axios.post(url, search).then(res => {
+                    tempTip.showSuccess('查询成功!');
+                    if (res.data.data === undefined) {
+                        this.details.data = [];
+                        this.details.total = 0
+                        this.details.current = 1
+                        this.details.pages = 0
+                        this.details.size = 50;
+                    } else {
+                        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;
+                    }
+                });
+            },
+            mounted: function () {
+                $('#list').removeClass('d-none');
+                let column = [
+                    {name: 'ownerName', value: '货主'},
+                    {name: 'erpOrderNo', value: 'erp订单号'},
+                    {name: 'logisticNumber', value: '快递单号'},
+                    {name: 'province', value: '省份'},
+                    {name: 'warehouseCode', value: '仓库代码'},
+                    {name: 'payTime', value: '顾客付款时间'},
+                    {name: 'issueTime', value: '订单推送时间'},
+                    {name: 'checkTime', value: '订单复核时间'},
+                    {name: 'logisticBranch', value: ' 网点信息'},
+                    {name: 'pickupTime', value: '包裹揽收时间'},
+                    {name: 'transferTime', value: '包裹中转时间'},
+                    {name: 'receiveTime', value: '包裹签收时间'},
+
+                ];
+                new Header({
+                    el: "table",
+                    name: "details",
+                    column: column,
+                    data: this.details.data,
+                    restorationColumn: 'addtime',
+                    fixedTop: ($('#form_div').height()) + ($('#btn').height()) + 1,
+                }).init();
+            },
+            methods: {
+                searchData() {
+                    this.current = 1;
+                    this.pagination();
+                },
+                //根据环境获取不同的url
+                getBaseUrl() {
+                    let url = null;
+                    let env = "{{ config('app.env') }}";
+                    if (env === 'local') {
+                        url = 'http://127.0.0.1:8111'
+                    } else if (env === 'production') {
+                        url = 'https://stat.baoshi56.com'
+                    }
+                    return url;
+                },
+                pagination(flag) {
+                    if (flag === 'pre' && this.current > 1) {
+                        this.current--;
+                    } else if (flag === 'next' && this.current < this.details.pages) {
+                        this.current++;
+                    }
+                    let url = this.getBaseUrl();
+                    url += `/api/report/orderOperationLog/list?size=${this.size}&current=${this.current}`;
+                    let search = Object.assign({}, this.search);
+                    search.startTime += ' 00:00:00';
+                    search.endTime += ' 23:59:59';
+                    tempTip.showSuccess('开始查询,请稍后!');
+                    axios.post(url, search).then(res => {
+                        if (res.data.code !== 200) {
+                            Object.keys(res.data.data).forEach(k => {
+                                tempTip.show(res.data.data[k]);
+                            })
+                        } else {
+                            tempTip.showSuccess('查询成功!');
+                            if (res.data.data === undefined) {
+                                this.details.data = [];
+                                this.details.total = 0
+                                this.details.current = 1
+                                this.details.pages = 0
+                                this.details.size = 50;
+                            } else {
+                                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;
+                            }
+                        }
+                    });
+                },
+                downExcel() {
+                    let url = this.getBaseUrl();
+                    url += '/api/report/orderOperationLog/export';
+                    let search = Object.assign({}, this.search);
+                    search.startTime += ' 00:00:00';
+                    search.endTime += ' 23:59:59';
+                    axios.post(url, search).then(res => {
+                        if (res.data.code === 200) {
+                            let filename = res.data.data;
+                            let downUrl = this.getBaseUrl() + '/api/report/orderOperationLog/export/' + filename;
+                            let link = document.createElement('a');
+                            link.style.display = 'none';
+                            link.href = downUrl;
+                            link.download = `${filename}.xlsx`;
+                            document.body.appendChild(link);
+                            link.click();
+                            document.body.removeChild(link);
+                            tempTip.showSuccess('导出成功!');
+                        } else {
+                            tempTip.setDuration(3000);
+                            tempTip.show(res.data.data);
+                        }
+                    })
+                }
+            },
+
+        });
+    </script>
+@endsection

+ 1 - 0
routes/web.php

@@ -1188,6 +1188,7 @@ Route::group(['middleware' => 'auth'], function ($route) {
         Route::get('workCoefficientDayStat', 'KpiController@workCoefficientDayStatIndex');
         Route::get('ownerPcsReport', 'KpiController@ownerPcsReport');
         Route::get('logisticsPunctuality', 'KpiController@logisticsPunctuality');
+        Route::get('orderOperationLog', 'KpiController@orderOperationLog');
     });
 });