Explorar el Código

统计页面样式修复,时间条件增加至分

Zhouzhendong hace 6 años
padre
commit
281d93faff

+ 3 - 1
app/Exports/WaybillExport.php

@@ -4,10 +4,12 @@ use Maatwebsite\Excel\Concerns\FromCollection;
 use Maatwebsite\Excel\Concerns\ShouldAutoSize;
 use Maatwebsite\Excel\Concerns\WithColumnFormatting;
 use Maatwebsite\Excel\Concerns\WithCustomValueBinder;
+use Maatwebsite\Excel\Concerns\WithStrictNullComparison;
 use PhpOffice\PhpSpreadsheet\Cell\StringValueBinder;
 use PhpOffice\PhpSpreadsheet\Style\NumberFormat;
 
-class WaybillExport extends StringValueBinder implements FromCollection,ShouldAutoSize,WithColumnFormatting,WithCustomValueBinder
+class WaybillExport extends StringValueBinder implements FromCollection,
+    ShouldAutoSize,WithColumnFormatting,WithCustomValueBinder,WithStrictNullComparison
 {
     private $row;
     private $data;

+ 4 - 3
app/Http/Controllers/OwnerController.php

@@ -62,14 +62,15 @@ class OwnerController extends Controller
     protected function validatorCreate(array $data)
     {
         return Validator::make($data, [
-            'code' => ['required', 'string', 'max:50', 'unique:owners'],
+            'code' => ['required', 'string', 'max:50', "unique:owners,code"],
             'name' => ['required', 'string', 'max:50'],
         ]);
     }
-    protected function validatorUpdate(array $data)
+    protected function validatorUpdate(array $data,$id)
     {
         return Validator::make($data, [
             'name' => ['required', 'string', 'max:50'],
+            'code'=>['required', 'string', 'max:50',"unique:owners,code,$id"]
         ]);
     }
     /**
@@ -105,7 +106,7 @@ class OwnerController extends Controller
     public function update(Request $request, Owner $owner)
     {
         if(!Gate::allows('货主-编辑')){ return redirect(url('/'));  }
-        $this->validatorUpdate($request->all())->validate();
+        $this->validatorUpdate($request->all(),$owner->id)->validate();
         $owner->fill($request->all());
         $owner->update();
         event(new CustomerStored($owner));

+ 101 - 5
app/Http/Controllers/PackageController.php

@@ -8,12 +8,19 @@ use App\Logistic;
 use App\Owner;
 use App\Package;
 use App\PaperBox;
+use Box\Spout\Common\Helper\Escaper\XLSX;
+use Box\Spout\Common\Type;
+use Box\Spout\Writer\Common\Creator\WriterEntityFactory;
+use Box\Spout\Writer\Common\Creator\WriterFactory;
 use Carbon\Carbon;
 use Illuminate\Http\Request;
+use Illuminate\Support\Facades\Auth;
 use Illuminate\Support\Facades\DB;
 use Illuminate\Support\Facades\Gate;
 use Illuminate\Support\Facades\Validator;
 use Maatwebsite\Excel\Facades\Excel;
+use Box\Spout\Common\Entity\Row;
+
 
 class PackageController extends Controller
 {
@@ -51,11 +58,10 @@ class PackageController extends Controller
         if(!Gate::allows('称重管理-查询')){ return redirect(url('/'));  }
         if ($request->input()){
             $packages=Package::orderBy('id','DESC');
-
             $packages=$this->conditionQuery($request,$packages);
             $packages=$packages->paginate($request->input('paginate')?$request->input('paginate'):50);
             $owners=Owner::select('id','name')->get();
-            return view('weight.package.index',['packages'=>$packages,'owners'=>$owners]);
+            return view('weight.package.index',['packages'=>$packages,'owners'=>$owners,'request'=>$request->input()]);
         }
         $packages=Package::orderBy('id','DESC')->paginate(50);
         $owners=Owner::select('id','name')->get();
@@ -95,6 +101,7 @@ class PackageController extends Controller
         if ($package){
             $accomplishToWMS=new \App\Http\Controllers\Api\thirdPart\flux\PackageController();
             if ($package->batch_rule&&strstr($package->batch_rule,'组合')){
+                $this->log(__METHOD__,'活动波次开始同步_'.__FUNCTION__,json_encode($package),Auth::user()['name']);
                 $this->syncBatch($package->batch_number,$weight,null,null,null,Carbon::now(),$paper_box_id);
             }else{
                 $package->weight=$weight;
@@ -117,10 +124,12 @@ class PackageController extends Controller
             ]);
         }
         $package->save();
+        $this->log(__METHOD__,'create_'.__FUNCTION__,json_encode($package),Auth::user()['name']);
         event(new WeighedEvent($package));
         return redirect('package/create')->with('successTip','操作成功');
     }
 
+
     public function statistics(Request $request){
         $packages=Package::select(DB::raw('owner_id,logistic_id,COUNT(logistic_id) AS count'));
         if($request->input('owner_id')){
@@ -132,18 +141,34 @@ class PackageController extends Controller
             $packages=$packages->whereIn('logistic_id',$logistics_id);
         }
         if($request->input('date_start')){
-            $packages=$packages->where('created_at','<=',$request->input('date_start'));
+            $packages=$packages->where('created_at','>=',$request->input('date_start'));
         }
         if($request->input('date_end')){
-            $packages=$packages->where('created_at','>=',$request->input('date_end'));
+            $packages=$packages->where('created_at','<=',$request->input('date_end'));
         }
-
         $packages=$packages->groupBy(['owner_id','logistic_id'])->get();
         $owners=Owner::get();
         $logistics=Logistic::get();
+        if ($request->input('checkSign')){
+            if ($request->input('checkSign')=="-1"){
+/*                $id=[];
+                foreach ($packages as $package){
+                    array_push($id,$package->id);
+                }*/
+                $excel=$this->statisticExport($packages,$owners,$logistics);
+                return $excel;
+            }
+            $id=$id = explode( ',',$request->input('checkSign'));
+            $packages=Package::select(DB::raw('owner_id,logistic_id,COUNT(logistic_id) AS count'))
+                ->whereIn('owner_id',$id)->groupBy(['owner_id','logistic_id'])->get();
+            $excel=$this->statisticExport($packages,$owners,$logistics);
+            return $excel;
+
+        }
         return view('weight.package.statistics',["packages"=>$packages,'owners'=>$owners,'logistics'=>$logistics]);
     }
 
+
     /**
      * Display the specified resource.
      *
@@ -293,7 +318,78 @@ class PackageController extends Controller
                 $packageBatch->status="上传异常";
             }
             $packageBatch->save();
+            $this->log(__METHOD__,'SUCCESS_'.__FUNCTION__,json_encode($packageBatch));
+        }
+    }
+
+    public function statisticExport($packages,$owners,$logistics){
+        if (!$packages||!$owners||!$logistics) return;
+        $row=[[]];
+        $row[0]['owner']='货主';
+        $row[0]['sum']='总计';
+        foreach ($logistics as $logistic){
+            $row[0][$logistic->id]=$logistic->name;
+        }
+        $ownerArr=[];
+        foreach ($owners as $owner){
+            foreach ($packages as $package){
+                if ($owner->id==$package->owner_id){
+                    $ownerArr[$owner->name][$package->logistic_id]=$package->count;
+                }
+            }
+        }
+        $list=[];
+        for ($i=0;$i<count($ownerArr);$i++){
+            foreach ($owners as $owner){
+                if (isset($ownerArr[$owner->name])){
+                    $w['owner']=$owner->name;
+                    $sum=0;
+                    foreach ($logistics as $logistic){
+                        if (isset($ownerArr[$owner->name][$logistic->id])){
+                            $w[$logistic->id]=$ownerArr[$owner->name][$logistic->id];
+                            $sum=$sum+$ownerArr[$owner->name][$logistic->id];
+                        }
+                        if (!isset($ownerArr[$owner->name][$logistic->id])){
+                            $w[$logistic->id]=0;
+                        }
+                    }
+                    $w['sum']=$sum;
+                    break;
+                }
+            }
+            $list[$i]=$w;
         }
+        return Excel::download(new WaybillExport($row,$list),date('YmdHis', time()).'-称重统计记录单.xls');
+       /* $writer = WriterEntityFactory::createXLSXWriter();
+// $writer = WriterEntityFactory::createODSWriter();
+// $writer = WriterEntityFactory::createCSVWriter();
+
+        $writer->openToBrowser("test.xlsx"); // write data to a file or to a PHP stream
+//$writer->openToBrowser($fileName); // stream data directly to the browser
+
+        $cells = [
+            WriterEntityFactory::createCell('a'),
+            WriterEntityFactory::createCell('is'),
+            WriterEntityFactory::createCell('great!'),
+        ];
+
+        /** add a row at a time */
+        /* $singleRow = WriterEntityFactory::createRow($cells);
+        $writer->addRow($singleRow);
+
+        /** add multiple rows at a time */
+        /*  $multipleRows = [
+             WriterEntityFactory::createRow($cells),
+             WriterEntityFactory::createRow($cells),
+         ];
+         $writer->addRows($multipleRows);
+
+         /** Shortcut: add a row from an array of values */
+        /* $values = ['Carl', 'is', 'great!'];
+        $rowFromValues = WriterEntityFactory::createRowFromArray($values);
+        $writer->addRow($rowFromValues);
+
+        $writer->close();*/
     }
 
 }

+ 2 - 2
app/Http/Controllers/api/thirdPart/flux/PackageController.php

@@ -172,10 +172,10 @@ class PackageController extends Controller
             $noIssues=false;
         }
         if($noIssues&&$response['response']['flag']=='Y'){
-            $this->log(__METHOD__,'SUCCESS_'.__FUNCTION__,json_encode($package),null);
+            $this->log(__METHOD__,'SUCCESS_'.__FUNCTION__,json_encode($package)."||".json_encode($response['response']),null);
             return ['result'=>'success'];
         }
-        $this->log(__METHOD__,'ERROR_'.__FUNCTION__,json_encode($package),null);
+        $this->log(__METHOD__,'ERROR_'.__FUNCTION__,json_encode($package)."||".json_encode($response['response']),null);
         return ['result'=>'false'];
     }
 

+ 1 - 0
composer.json

@@ -12,6 +12,7 @@
         "ext-json": "*",
         "ext-mbstring": "*",
         "ext-openssl": "*",
+        "box/spout": "^3.1",
         "doctrine/dbal": "^2.10",
         "fideloper/proxy": "^4.0",
         "kitetail/zttp": "^0.6.0",

+ 76 - 1
composer.lock

@@ -4,8 +4,83 @@
         "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
         "This file is @generated automatically"
     ],
-    "content-hash": "82502142521bfea299349151b466d516",
+    "content-hash": "5487e1f24bfd3670ee65a66f5aa3af78",
     "packages": [
+        {
+            "name": "box/spout",
+            "version": "v3.1.0",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/box/spout.git",
+                "reference": "7964dadc2128f3a00ffa393395b618ea115c8032"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/box/spout/zipball/7964dadc2128f3a00ffa393395b618ea115c8032",
+                "reference": "7964dadc2128f3a00ffa393395b618ea115c8032",
+                "shasum": "",
+                "mirrors": [
+                    {
+                        "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+                        "preferred": true
+                    }
+                ]
+            },
+            "require": {
+                "ext-xmlreader": "*",
+                "ext-zip": "*",
+                "php": ">=7.1.0"
+            },
+            "require-dev": {
+                "friendsofphp/php-cs-fixer": "^2",
+                "phpunit/phpunit": "^7"
+            },
+            "suggest": {
+                "ext-iconv": "To handle non UTF-8 CSV files (if \"php-intl\" is not already installed or is too limited)",
+                "ext-intl": "To handle non UTF-8 CSV files (if \"iconv\" is not already installed)"
+            },
+            "type": "library",
+            "extra": {
+                "branch-alias": {
+                    "dev-master": "3.1.x-dev"
+                }
+            },
+            "autoload": {
+                "psr-4": {
+                    "Box\\Spout\\": "src/Spout"
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "Apache-2.0"
+            ],
+            "authors": [
+                {
+                    "name": "Adrien Loison",
+                    "email": "adrien@box.com"
+                }
+            ],
+            "description": "PHP Library to read and write spreadsheet files (CSV, XLSX and ODS), in a fast and scalable way",
+            "homepage": "https://www.github.com/box/spout",
+            "keywords": [
+                "OOXML",
+                "csv",
+                "excel",
+                "memory",
+                "odf",
+                "ods",
+                "office",
+                "open",
+                "php",
+                "read",
+                "scale",
+                "spreadsheet",
+                "stream",
+                "write",
+                "xlsx"
+            ],
+            "time": "2019-12-02T21:21:41+00:00"
+        },
         {
             "name": "dnoegel/php-xdg-base-dir",
             "version": "0.1",

+ 2 - 2
public/js/app.js

@@ -61348,8 +61348,8 @@ module.exports = tempTip;
 /*! no static exports found */
 /***/ (function(module, exports, __webpack_require__) {
 
-__webpack_require__(/*! D:\Reald\desktop\BsWAS\src\resources\js\app.js */"./resources/js/app.js");
-module.exports = __webpack_require__(/*! D:\Reald\desktop\BsWAS\src\resources\sass\app.scss */"./resources/sass/app.scss");
+__webpack_require__(/*! D:\Demo\bswas\resources\js\app.js */"./resources/js/app.js");
+module.exports = __webpack_require__(/*! D:\Demo\bswas\resources\sass\app.scss */"./resources/sass/app.scss");
 
 
 /***/ }),

+ 7 - 6
resources/views/waybill/index.blade.php

@@ -77,7 +77,7 @@
                                 <label style="margin-left: 1%"> 截至日期:&nbsp;&nbsp;</label><input type="date" class="form-control-sm" name="created_at_end" v-model="filterData.created_at_end"></div></td>
                         <td>
                             <label style="margin-left: 2%">运单状态:&nbsp;&nbsp;&nbsp;&nbsp;</label>
-                            <select name="state" v-model="filterData.state" @change="setState" class="form-control-sm" style="vertical-align: middle">
+                            <select name="status" v-model="filterData.status" @change="setState" class="form-control-sm" style="vertical-align: middle">
                                 <option value="待审核">待审核</option>
                                 <option value="已审核">待调度</option>
                                 <option value="待终审">待终审</option>
@@ -150,13 +150,13 @@
                     @endcan
                 </tr>
 
-                <tr v-for="waybill in waybills" :style="{color:waybill.state=='待重审'?'red':''||waybill.state=='已完结'?'green':''}">
+                <tr v-for="waybill in waybills" :style="{color:waybill.status=='待重审'?'red':''||waybill.status=='已完结'?'green':''}">
                     <td>
                         <input class="checkItem" type="checkbox" :value="waybill.id" v-model="checkData">
                     </td>
                     <td>@{{waybill.id}}</td>
                     <td>@{{waybill.type}}</td>
-                    <td :style="{color:waybill.state=='已审核'?'blue':''}">@{{waybill.state}}</td>
+                    <td :style="{color:waybill.status=='已审核'?'blue':''}">@{{waybill.status}}</td>
                     <td>@{{waybill.waybill_number}}</td>
                     <td>@{{waybill.owner}}</td>
                     <td>@{{waybill.wms_bill_number}}</td>
@@ -169,7 +169,7 @@
                     <td>@{{waybill.ordering_remark}}</td>
                     <td><p v-for="waybillAuditLog in waybill.waybillAuditLogs" v-if=waybillAuditLog.audit_stage==="运单阶段">@{{waybillAuditLog.user.name}}</p></td>
                     <td>
-                        <div v-if=waybill.state==="未审核"||waybill.state==="待重审">
+                        <div v-if=waybill.status==="未审核"||waybill.status==="待重审">
                             @can('运输管理-运单审核')
                                 <button class="btn btn-outline-success" @click="waybillAudit(waybill.id,waybill.waybill_number)">审核</button>
                             @endcan
@@ -177,7 +177,7 @@
                                 <button class="btn btn-outline-secondary" @click="waybillUpdate(waybill.id)">修改</button>
                             @endcan
                         </div>
-                        <div v-if=waybill.state==="已审核">
+                        <div v-if=waybill.status==="已审核">
                             @can('运输管理-调度')
                                 <button class="btn btn-outline-secondary" @click="waybillRetreatAudit(waybill.id,waybill.waybill_number)">取消审核</button>
                                 <button class="btn btn-outline-secondary" @click="job(waybill.id)">调度</button>
@@ -204,7 +204,7 @@
                     <td><p v-for="waybillAuditLog in waybill.waybillAuditLogs" v-if=waybillAuditLog.audit_stage==="调度阶段">@{{waybillAuditLog.user.name}}</p></td>
 
                     <td>
-                        <div v-if=waybill.state==="待终审">
+                        <div v-if=waybill.status==="待终审">
                             @can('运输管理-调度审核')
                                 <button class="btn btn-outline-success" @click="waybillEndAudit(waybill.id,waybill.waybill_number)">完结</button>
                             @endcan
@@ -220,6 +220,7 @@
     </div>
 @endsection
 
+
 @section('lastScript')
     <script>
         let vueList=new Vue({

+ 7 - 0
resources/views/weight/package/index.blade.php

@@ -136,7 +136,11 @@
                         <td class="text-muted">@{{package.recipientMobile}}</td>
                     </tr>
                 </table>
+                @if(isset($request))
+                {{$packages->appends($request)->links()}}
+                @else
                 {{$packages->links()}}
+                @endif
             </div>
         </div>
     </div>
@@ -145,6 +149,9 @@
 
 @section('lastScript')
     <script>
+        @if(isset($request))
+        let request={!! json_encode($request) !!};
+        @endif
         new Vue({
             el:"#list",
             data:{

+ 124 - 13
resources/views/weight/package/statistics.blade.php

@@ -65,14 +65,29 @@
                                     </div>
                                 </td>
                                 <td >
-                                    <div class="form-inline" style="height: 100px;width: 350px">
-                                        <div class=" align-items-center d-flex">
+
+                                    <div style="height: 100px">
+                                        <div class="form-inline ">
                                             <label >时间:</label>
-                                            <input style="width: 150px" name="date_start" type="date" v-model="filterData.date_start" class="form-control-sm">
-                                            <input style="width: 150px"  name="date_end" type="date" v-model="filterData.date_end" class="form-control-sm">
+                                            <div class="pl-1" style="width: 300px">
+                                                <input  style="width: 170px;transform:scale(0.8)" type="date" v-model="filterData.date_start" class="form-control">
+                                                <input id="hour_input" type="text" class="form-control"  placeholder="00:00"
+                                                       @input="hourFilter($event)" v-model="inputtingAdd_start" style="transform:scale(0.8);width: 80px"
+                                                       @keypress="hourFilter($event)" >
+                                            </div>
+                                            <input hidden  name="date_start" :value="filterData.date_start+' '+inputtingAdd_start">
+                                        </div>
+                                        <div class="form-inline pl-5" style="width: 300px">
+                                            <input style="transform:scale(0.8);width: 170px"  type="date" v-model="filterData.date_end" class="form-control" >
+                                            <input id="hour_input" type="text" class="form-control"  placeholder="00:00"
+                                                   @input="hourFilter($event)" v-model="inputtingAdd_end" style="transform:scale(0.8);width:80px"
+                                                   @keypress="hourFilter($event)" >
+                                            <input hidden  name="date_end" :value="filterData.date_end+' '+inputtingAdd_end">
                                         </div>
+                                    </div>
+                                    <div class=" align-items-center d-flex pt-2">
                                         <div class="m-auto d-flex">
-                                            <button class="btn btn-primary">提交</button>
+                                            <button class="btn btn-primary btn-sm pl-5 pr-5">提交</button>
                                         </div>
                                     </div>
                                 </td>
@@ -80,17 +95,46 @@
 
                                 </td>
                             </tr>
+                            <tr></tr>
+                            <tr>
+                                <td>
+                                    <div>
+                                        <span class="text-muted">操作选定记录:</span>
+                                    </div>
+                                </td>
+                                <td colspan="3">
+                                    <span class="dropdown">
+                                        <button class="btn btn-outline-dark btn-sm form-control-sm dropdown-toggle tooltipTarget" {{--:class="[rejectedBills_checkBoxes.length>0?'btn-dark text-light':'']"--}}
+                                        data-toggle="dropdown" title="导出所有页将会以搜索条件得到的过滤结果,将其全部记录(每一页)导出">
+                                            导出Excel
+                                        </button>
+                                        <div class="dropdown-menu">
+                                            <a class="dropdown-item"  @click="statisticExport(1)" href="javascript:">导出勾选内容</a>
+                                            <a class="dropdown-item"  @click="statisticExport(2)" href="javascript:">导出所有页</a>
+                                        </div>
+                                        <input hidden name="checkSign" v-model="checkSign">
+                                    </span>
+                                </td>
+                            </tr>
                         </table>
                     </form>
                 </div>
                 <div class="">
                     <table class="table table-striped table-sm text-nowrap table-hover">
                         <tr>
+                            <th>
+                                <label for="all">
+                                    <input id="all" type="checkbox" @click="checkAll($event)">全选
+                                </label>
+                            </th>
                             <th>货主</th>
                             <th>总计</th>
                             <th v-for="logisticCopy in logisticsCopy">@{{ logisticCopy.name }}</th>
                         </tr>
                         <tr v-for="ownerModel in ownersModel">
+                            <td>
+                                <input class="checkItem" type="checkbox" :value="ownerModel.id" v-model="checkData">
+                            </td>
                             <th class="text-muted">@{{ ownerModel.name }}</th>
                             <td><p v-if="ownerModel.sum">@{{ ownerModel.sum }}</p><p v-else>0</p></td>
                             <td class="text-muted" v-for="logisticCopy in logisticsCopy"><p v-if="ownerModel.logistics[logisticCopy.name]">@{{ ownerModel.logistics[logisticCopy.name] }}</p>
@@ -138,6 +182,10 @@
                     {date_start:'',date_end:''},
                 selectedOwners:[],
                 selectedLogistics:[],
+                checkData:[],
+                checkSign:'',
+                inputtingAdd_start:'',
+                inputtingAdd_end:'',
             },
             computed:{
                 isBeingFilterConditions:function(){
@@ -153,6 +201,18 @@
                 },
 
             },
+            watch:{
+                checkData:{
+                    handler(){
+                        if (this.checkData.length === this.ownersModel.length){
+                            document.querySelector('#all').checked = true;
+                        }else {
+                            document.querySelector('#all').checked = false;
+                        }
+                    },
+                    deep:true
+                }
+            },
             mounted:function(){
                 let _this=this;
                 let owners=this.owners;
@@ -208,10 +268,10 @@
                             if (key!='owner_id'||key!='logistic_id') {
                                 decodeURI(data.filterData[key]=val);
                             }
+                            let str=unescape(val);
+                            let strs=new Array();
+                            strs=str.split(",");
                             if (key=='owner_id'){
-                                let str=unescape(val);
-                                let strs=new Array();
-                                strs=str.split(",");
                                 for (let i=0;i<strs.length;i++){
                                     data.selectedOwners.push(strs[i]);
                                     data.ownersCopy.every(function (ownerCopy) {
@@ -224,9 +284,6 @@
                                 }
                             }
                             if (key=='logistic_id'){
-                                let str=unescape(val);
-                                let strs=new Array();
-                                strs=str.split(",");
                                 for (let i=0;i<strs.length;i++){
                                     data.selectedLogistics.push(strs[i]);
                                     data.logisticsCopy.every(function (logisticCopy) {
@@ -238,6 +295,18 @@
                                     });
                                 }
                             }
+                            if (key=='date_start'){
+                                strs=str.split("+");
+                                if (strs.length!=2) return;
+                                data.filterData.date_start=strs[0];
+                                data.inputtingAdd_start=strs[1];
+                            }
+                            if (key=='date_end'){
+                                strs=str.split("+");
+                                if (strs.length!=2) return;
+                                data.filterData.date_end=strs[0];
+                                data.inputtingAdd_end=strs[1];
+                            }
                         });
                     }
                 },
@@ -322,8 +391,50 @@
                             return  true;
                         });
                     }
-                }
-            },
+                },
+                checkAll(e){
+                    if (e.target.checked){
+                        this.ownersModel.forEach((el,i)=>{
+                            if (this.checkData.indexOf(el.id) == '-1'){
+                                this.checkData.push(el.id);
+                            }
+                        });
+                    }else {
+                        this.checkData = [];
+                    }
+                },
+                statisticExport:function (e) {
+                    if (e==1){
+                        location.href="{{url('package/statistics?checkSign=')}}"+this.checkData;
+                    }else{
+                        this.checkSign=-1;
+                        setTimeout(function(){
+                            $("#optionSubmit").submit();
+                        },50);
+                    }
+                },
+                hourFilter:function(e){
+                    setTimeout(function(){
+                        e.target.value=e.target.value.replace(':',':');
+                        e.target.value=e.target.value.replace(/[a-zA-Z]/,'');
+                        e.target.value=e.target.value.replace(/^([\d]{1})([\s]{1})/,"$1:");
+                        e.target.value=e.target.value.replace(/^([\d]{1})([\d]{1})([\s]{1})/,"$1$2:");
+                        //e.target.value=e.target.value.replace(/^([3-9]{1})([\d]{1})/,"$1:$2");
+                        e.target.value=e.target.value.replace(/^([\d]{1})([\d]{1})([\d]{1})/,"$1$2:$3");
+                        e.target.value=e.target.value.replace(/^([\d]{1})([\d]{1})([\d]{1})([\d]{1})(.*?)/,"$1$2$3$4");
+                        e.target.value=e.target.value.replace(/^([\d]{1})([\d]{1})([\d]{1})([\d]{1})/,"$1$2:$3$4");
+                        e.target.value=e.target.value.replace(/^([\d]{1})([\d]{1}):([\d]{1})([\d]{1})([\s\S]{1})/,"$1$2:$3$4");
+                        e.target.value=e.target.value.replace(/^([\d]{1})([\d]{1}):([\D]{1,99})/,"$1$2:");
+                        e.target.value=e.target.value.replace(/^([\d]{1})([\d]{1})([\d]{1})\./,"$1:$2$3");
+                        e.target.value=e.target.value.replace(/^([\d]{1})\.([\d]{1})([\d]{1})/,"$1:$2$3");
+                        e.target.value=e.target.value.replace(/^([\d]{1})([\d]{2})([\S\s]{1,99})/,"$1$2:$3");
+                        e.target.value=e.target.value.replace(/^([\d]{1}):([\d]{2})([\S\s]{1,99})/,"$1:$2");
+                        e.target.value=e.target.value.replace(/^([3-9])/,"2");
+                        e.target.value=e.target.value.replace(/^([\d]{1})([4-9]{1})/,"$13");
+                        e.target.value=e.target.value.replace(/^([\d]{1})([\d]{1}):([6-9]{1})/,"$1$2:5");
+                    },1);
+                },
+            }
         });
     </script>
 @endsection

+ 1 - 0
routes/web.php

@@ -94,6 +94,7 @@ Route::post('package/measureMonitor/data','MeasureMonitorController@data');
 Route::resource('package/measureMonitor','MeasureMonitorController');
 Route::get('package/export/{id}','PackageController@export');
 Route::get('package/statistics','PackageController@statistics');
+Route::get('package/statisticExport','PackageController@statisticExport');
 Route::get('package/relating', function () {return view('weight.menuWeight');});
 Route::get('package/weightExcepted/indexCreate','WeighExceptedController@indexCreate');
 Route::get('package/weightExcepted/indexIssued','WeighExceptedController@indexIssued');