Parcourir la source

修改考勤界面

haozi il y a 6 ans
Parent
commit
78f64f3498

+ 12 - 5
app/Http/Controllers/UserDutyCheckController.php

@@ -10,6 +10,7 @@ use App\UserToken;
 use App\UserWorkGroup;
 use Carbon\Carbon;
 use Endroid\QrCode\QrCode;
+use http\Url;
 use Illuminate\Http\Request;
 use Illuminate\Http\Response;
 use Illuminate\Support\Facades\Cache;
@@ -37,15 +38,21 @@ class UserDutyCheckController extends Controller
         }
         $qrCode=new QrCode($url);
         if ($userWorkGroup_id){
-            if (file_exists("images/QRCodeIMG/".$userWorkGroup_id.'.png')){
-                return "images/QRCodeIMG/".$userWorkGroup_id.'.png';
+            $fileURL=base_path('public/images/QRCodeIMG/'.$userWorkGroup_id.'.png');
+            if (file_exists($fileURL)){
+                return url('images/QRCodeIMG/'.$userWorkGroup_id.'.png');
             }
-            $qrCode->writeFile(storage_path('app/public/QRCodeIMG/'.$userWorkGroup_id.'.png'));
-            return 'images/QRCodeIMG/'.$userWorkGroup_id.'.png';
+            $qrCode->writeFile($fileURL);
+            return url('images/QRCodeIMG/'.$userWorkGroup_id.'.png');
         }
         return (new Response())->header('Content-Type',$qrCode->getContentType())->setContent($qrCode->writeString());
     }
-
+    //进入二维码显示页面
+    public function QRCode(Request $request){
+        $userWorkGroup_id=$request->input('userWorkGroup_id');
+        $userWorkGroup=UserWorkGroup::find($userWorkGroup_id);
+        return view('personnel/checking-in/QRcode',compact('userWorkGroup'));
+    }
     //校验二维码进入打卡页面
     public function clock(Request $request){
         $userWorkGroupID=$request->input('userWorkGroupID');

BIN
public/faviconb.ico


BIN
public/images/QRCodeIMG/1.png


BIN
public/images/QRCodeIMG/2.png


BIN
public/images/QRCodeIMG/3.png


BIN
public/images/QRCodeIMG/4.png


BIN
public/images/QRCodeIMG/undefined.png


+ 2 - 2
public/js/app.js

@@ -61384,8 +61384,8 @@ module.exports = tempTip;
 /*! no static exports found */
 /***/ (function(module, exports, __webpack_require__) {
 
-__webpack_require__(/*! D:\wamp64\www\bswas2\resources\js\app.js */"./resources/js/app.js");
-module.exports = __webpack_require__(/*! D:\wamp64\www\bswas2\resources\sass\app.scss */"./resources/sass/app.scss");
+__webpack_require__(/*! D:\wamp64\www\bswas\resources\js\app.js */"./resources/js/app.js");
+module.exports = __webpack_require__(/*! D:\wamp64\www\bswas\resources\sass\app.scss */"./resources/sass/app.scss");
 
 
 /***/ }),

+ 52 - 0
resources/views/personnel/checking-in/QRcode.blade.php

@@ -0,0 +1,52 @@
+<!DOCTYPE html>
+<html>
+<head>
+    <meta charset="utf-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1">
+    <link href="{{ asset('css/app.css') }}" rel="stylesheet">
+</head>
+<body>
+<div class="container-fluid mt-3" id="page">
+    <div class="card col-md-10 offset-md-1 p-0">
+        <div class="card-body">
+            <p class="h3 p-1 m-1" style="text-align:center">扫描进入@{{ userWorkGroup.name }}工作组</p>
+            <div class="col m-0 pull-right mt-5 form-inline" >
+                <img id="img" class="img-thumbnail"   src="" />
+                <div class="pull-right col-6" >
+                    <h3 class="text-center text-dark">首次扫描后将与设备绑定,之后扫描需使用原设备与原软件!</h3><br>
+                    <h4 class="text-center text-danger">如更换设备请联系管理人员解除设备绑定!</h4>
+                </div>
+            </div>
+        </div>
+    </div>
+</div>
+
+
+<script src="{{ asset('js/app.js?202002111414') }}"></script>
+<script>
+    new Vue({
+        el:"#page",
+        data:{
+            userWorkGroup:{
+                id:'{{$userWorkGroup->id}}',name:'{{$userWorkGroup->name}}',
+            },
+
+        },
+        mounted:function () {
+            let _this=this;
+            axios.get('{{url("personnel/checking-in/userDutyCheck/getQRCode?userWorkGroup_id=")}}'+_this.userWorkGroup.id)
+                .then(function (response) {
+                    console.log(response.data)
+                    $("#img").attr('src',response.data);
+                }).catch(function (err) {
+                tempTip.setDuration(3000);
+                tempTip.show('获取二维码失败!网络错误:'+err);
+            });
+        }
+
+
+
+    });
+</script>
+</body>
+</html>

+ 6 - 31
resources/views/personnel/checking-in/getQRcode.blade.php

@@ -7,30 +7,18 @@
     </div>
     <div class="container-fluid mt-3" id="page">
         <div class="card col-md-10 offset-md-1 p-0">
-            <div class="card-body p-0 m-0">
-                <div class="container pull-left m-0 p-0 dontprint" style="width: 20%;">
-                    <div class="btn-group-vertical ml-0 mt-5" >
-                        <button type="button" @click="getQRCode(userWorkGroup.id)" :class="userWorkGroup.id==checkedUserWorkGroup ? 'btn-primary' : 'btn-outline-primary'"
-                                class="btn" v-for="userWorkGroup in userWorkGroups">@{{ userWorkGroup.name }}</button>
+            <div class="card-body">
+                    <div class="list-group list-group-horizontal-lg" >
+{{--                        @click="getQRCode(userWorkGroup.id)"--}}
+                        <a target="_blank"  class="btn list-group-item" type="button" :href="('{{url('personnel/checking-in/userDutyCheck/QRCode?userWorkGroup.id=')}}'+userWorkGroup.id)"  :class="userWorkGroup==checkedUserWorkGroup ? 'btn-primary' : 'btn-outline-primary'"
+                                v-for="userWorkGroup in userWorkGroups">@{{ userWorkGroup.name }}</a>
                     </div>
-                </div>
-                <div class="col m-0 pull-right mt-5" style="width: 80%">
-                    <img id="img" class="col-6 pull-left m-auto" style="max-height: 300px;max-width: 300px;"  src="{{url('personnel/checking-in/userDutyCheck/getQRCode')}}" />
-                    <div class="pull-right col-6" style="margin-top: 5%">
-                        <h3 class="text-center text-dark">首次扫描后将与设备绑定,之后扫描需使用原设备与原软件!</h3><br>
-                        <h4 class="text-center text-danger">如更换设备请联系管理人员解除设备绑定!</h4>
-                    </div>
-                </div>
             </div>
         </div>
     </div>
 @endsection
 
 @section('lastScript')
-    <style type="text/css" media="print">
-        .dontprint
-        { display: none; }
-    </style>
     <script>
         new Vue({
             el:"#page",
@@ -42,19 +30,6 @@
                 ],
                 checkedUserWorkGroup:'',
             },
-            methods:{
-                getQRCode(userWorkGroup_id){
-                    let _this=this;
-                    axios.get('{{url("personnel/checking-in/userDutyCheck/getQRCode?userWorkGroup_id=")}}'+userWorkGroup_id)
-                        .then(function (response) {
-                            $("#img").attr('src',response.data);
-                            _this.checkedUserWorkGroup=userWorkGroup_id;
-                        }).catch(function (err) {
-                            tempTip.setDuration(3000);
-                            tempTip.show('获取二维码失败!网络错误:'+err);
-                        });
-                }
-            },
         });
     </script>
-@endsection
+@endsection

+ 6 - 11
resources/views/process/index.blade.php

@@ -33,33 +33,28 @@
                                <span class="text-muted">根据条件过滤:</span>
                            </td>
                            <td >
-                               <label for="date_start" style="width: 35px">时间:</label>
-                               <input id="date_start" name="date_start" v-model="filterData.date_start" type="date" class="form-control-sm ">
+                               <input id="date_start" name="date_start" v-model="filterData.date_start" type="date" class="form-control-sm tooltipTarget" title="选择显示指定日期的起始时间">
                            </td>
                            <td >
-                               <label>&nbsp;客&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;户&nbsp;:</label>
-                               <input type="text" class="form-control-sm tooltipTarget" placeholder="查找"
+                               <input type="text" class="form-control-sm tooltipTarget" placeholder="客户"
                                       style="width:70px" @input="owner_seek"
                                       title="输入关键词快速定位下拉列表,回车确定">
-                               <select name="owner_id" v-model="filterData.owner_id" @change="submit" class="form-control-sm tooltipTarget">
+                               <select name="owner_id" v-model="filterData.owner_id" @change="submit" class="form-control-sm tooltipTarget"  title="选择要显示的客户">
                                    <option >    </option>
                                    <option v-for="owner in owners" :value="owner.id">@{{owner.name}}</option>
                                </select>
                            </td>
                            <td>
-                               <label for="wms_code">单据号:</label>
-                               <input id="wms_code" name="wms_code" v-model="filterData.wms_code" class="form-control-sm">
+                               <input id="wms_code" name="wms_code" v-model="filterData.wms_code" class="form-control-sm tooltipTarget" placeholder="单据号">
                            </td>
                            <td colspan="6"></td>
                        </tr>
                        <tr>
                            <td >
-                               <label for="date_end" style="width: 35px"></label>
-                               <input id="date_end" name="date_end" v-model="filterData.date_end" type="date" class="form-control-sm ">
+                               <input id="date_end" name="date_end" v-model="filterData.date_end" type="date" class="form-control-sm tooltipTarget" title="选择显示指定日期的结束时间">
                            </td>
                            <td>
-                               <label>商品条码:</label>
-                               <input name="commodity_barcode" v-model="filterData.commodity_barcode" class="form-control-sm">
+                               <input name="commodity_barcode" v-model="filterData.commodity_barcode" class="form-control-sm" placeholder="商品条码">
                            </td>
                            <td >
                                <label for="status">&nbsp;状&nbsp;&nbsp;态&nbsp;:</label>

+ 4 - 4
resources/views/waybill/index.blade.php

@@ -29,7 +29,7 @@
         <div class="d-none" id="list">
 
             <form  method="GET" action="@if($uriType=='ZF'){{url('waybill/index/ZF')}}@elseif($uriType=='ZX'){{url('waybill/index/ZX')}}@else{{url('waybill/index')}}@endif" id="optionSubmit">
-                <table class="table table-sm table-bordered table-hover text-nowrap mb-0" style="background: #fff;">
+                <table class="table table-sm table-bordered  text-nowrap mb-0" style="background: #fff;">
                     <tr v-if="isBeingFilterConditions">
                         <td colspan="4"><div class="col" style="padding:0">
                                 <a  href="@if($uriType=='ZF'){{url('waybill/index/ZF')}}@elseif($uriType=='ZX'){{url('waybill/index/ZX')}}@else{{url('waybill/index')}}@endif"><span class="btn btn-warning text-dark">清除过滤条件</span></a>
@@ -49,7 +49,7 @@
                     </tr>
                     <tr >
                         <td >
-                            <select name="owner_id" v-model="filterData.owner_id" class="form-control-sm  "  @change="setOwner" style="vertical-align: middle">
+                            <select name="owner_id" v-model="filterData.owner_id" class="form-control-sm  "  @change="setOwner" style="vertical-align: middle" :class="filterData.owner_id?'bg-warning':''">
                                 <option value="" selected>货主</option>
                                 @foreach($owners as $owner)
                                     <option value="{{$owner->id}}">{{$owner->name}}</option>
@@ -80,9 +80,9 @@
                                 <input type="text" title="目的地:支持15内模糊搜索与15天外精确搜索" style="vertical-align: middle" placeholder="目的地"
                                        name="destination" class="form-control-sm  tooltipTarget" v-model="filterData.destination"></div></td>
                         <td  style="width: 500px"><div>
-                                <input type="date" name="created_at_start" class="form-control-sm tooltipTarget" title="开始日期"
+                                <input type="date" name="created_at_start" class="form-control-sm tooltipTarget" title="选择显示指定日期的起始时间"
                                        v-model="filterData.created_at_start">
-                                <input type="date" class="form-control-sm tooltipTarget" name="created_at_end" title="截至日期"
+                                <input type="date" class="form-control-sm tooltipTarget" name="created_at_end" title="选择显示指定日期的结束时间"
                                        v-model="filterData.created_at_end"></div></td>
                         <td>
                             <select name="status" v-model="filterData.status" @change="setState" class="form-control-sm" style="vertical-align: middle">

+ 71 - 71
resources/views/weight/package/index.blade.php

@@ -37,32 +37,32 @@
                                 </td>
                                 <td >
                                     <label class="form-inline" style="width: 350px">时间:
-                                        <input style="width: 150px" name="created_at_start" type="date" v-model="filterData.created_at_start" class="form-control-sm">
-                                        <input style="width: 150px" type="date" name="created_at_end" v-model="filterData.created_at_end" class="form-control-sm">
+                                        <input style="width: 150px" name="created_at_start" type="date" v-model="filterData.created_at_start" class="form-control-sm tooltipTarget" title="选择显示指定日期的起始时间">
+                                        <input style="width: 150px" type="date" name="created_at_end" v-model="filterData.created_at_end" class="form-control-sm tooltipTarget" title="选择显示指定日期的结束时间">
                                     </label>
                                 </td>
                                 <td>
-                                    <label for="">客户:</label>
-                                    <input type="text" class="form-control-sm tooltipTarget" placeholder="查找"
+                                    <input type="text" class="form-control-sm tooltipTarget" placeholder="客户"
                                            style="width:70px" @input="owner_seek"
                                            title="输入关键词快速定位下拉列表,回车确定">
-                                    <select name="owner_id" v-model="filterData.owner_id" @change="setOwner" class="form-control-sm tooltipTarget">
-                                        <option >    </option>
+                                    <select name="owner_id" id="owner_id" :class="filterData.owner_id?'bg-warning':''" v-model="filterData.owner_id" @change="setOwner"
+                                            class="form-control-sm tooltipTarget"  title="选择要显示的客户">
                                         @foreach($owners as $owner)
                                             <option value="{{$owner->id}}">{{$owner->name}}</option>
                                         @endforeach
                                     </select>
                                     <input hidden type="submit" >
                                 </td>
-                                <td > <label class="form-inline" style="width:250px;margin-left: 2%">快递单号:
-                                        <input type="text" title="支持15内模糊搜索与15天外精确搜索" name="logistic_number" class="form-control-sm  tooltipTarget" v-model="filterData.logistic_number" style="vertical-align: middle"></label></td>
-                                <td > <label  class="form-inline" style="width:250px;margin-left: 2%">发货单号:
-                                        <input type="text" title="支持15内模糊搜索与15天外精确搜索" name="delivery_number" class="form-control-sm  tooltipTarget" v-model="filterData.delivery_number" style="vertical-align: middle"></label></td>
+
+                                <td > <label class="form-inline" style="width:250px;margin-left: 2%">
+                                        <input type="text" title="支持15内模糊搜索与15天外精确搜索" name="logistic_number" class="form-control-sm  tooltipTarget" v-model="filterData.logistic_number" style="vertical-align: middle" placeholder="快递单号"></label></td>
+                                <td > <label  class="form-inline" style="width:250px;margin-left: 2%">
+                                        <input type="text" title="支持15内模糊搜索与15天外精确搜索" name="delivery_number" class="form-control-sm  tooltipTarget" v-model="filterData.delivery_number" style="vertical-align: middle" placeholder="发货单号"></label></td>
                                 <td colspan="5"></td>
                             </tr>
                             <tr>
-                                <td > <label class="form-inline" >波次号:
-                                        <input type="text" title="支持15内模糊搜索与15天外精确搜索" name="batch_number" class="form-control-sm  tooltipTarget" v-model="filterData.batch_number" style="vertical-align: middle"></label></td>
+                                <td > <label class="form-inline" >
+                                        <input type="text" title="支持15内模糊搜索与15天外精确搜索" name="batch_number" class="form-control-sm  tooltipTarget" v-model="filterData.batch_number" style="vertical-align: middle" placeholder="波次号"></label></td>
                             </tr>
                             <tr>
                                 <td>
@@ -85,76 +85,76 @@
                         </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>ID</th>
-                        <th>货主</th>
-                        <th>快递单号</th>
-                        <th>波次号</th>
-                        <th>物流公司</th>
-                        <th>设备</th>
-                        <th>重(KG)</th>
-                        <th>长*宽*高(cm)</th>
-                        <th>体积(cm³)</th>
-                        <th>纸箱</th>
-                        <th>状态</th>
-                        <th>波次规则</th>
-                        <th>称重时间</th>
-                        <th>收件人</th>
-                        <th>收件人电话</th>
-                    </tr>
-                    <tr v-for="(package,i) in packages">
-                        <td>
-                            <input class="checkItem" type="checkbox" :value="package.id" v-model="checkData">
-                        </td>
-                        <td>@{{ i+1  }}</td>
-                        <td class="text-muted">@{{package.id}}</td>
-                        <td>@{{package.ownerName}}</td>
-                        <td>@{{package.logisticNumber}}</td>
-                        <td class="text-muted">@{{package.batchNumber}}</td>
-                        <td class="text-muted">@{{package.logisticName}}</td>
-                        <td class="text-muted">@{{package.measuringMachineName}}</td>
-                        <td>@{{package.weight}}</td>
-                        <td>@{{package.length}}<a v-if="package.length" class="text-primary">*</a>@{{package.width}}<a class="text-primary" v-if="package.width">*</a>@{{package.height}}</td>
-                        <td>@{{package.bulk}}</td>
-                        <td>@{{package.paperBoxName}}</td>
-                        <td :class="[package.status==='已上传'?'text-success':'']">@{{package.status}}</td>
-                        <td class="text-muted">@{{package.batchRule}}</td>
-                        <td class="text-muted">@{{package.weighed_at}}</td>
-                        <td class="text-muted">@{{package.recipient}}</td>
-                        <td class="text-muted">@{{package.recipientMobile}}</td>
-                    </tr>
-                </table>
-                <div class="text-info h5 btn btn">{{$packages->count()}}/{{$packages->total()}}</div>
-                @if(isset($request))
-                {{$packages->appends($request)->links()}}
-                @else
-                {{$packages->links()}}
-                @endif
+                <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>ID</th>
+                            <th>货主</th>
+                            <th>快递单号</th>
+                            <th>波次号</th>
+                            <th>物流公司</th>
+                            <th>设备</th>
+                            <th>重(KG)</th>
+                            <th>长*宽*高(cm)</th>
+                            <th>体积(cm³)</th>
+                            <th>纸箱</th>
+                            <th>状态</th>
+                            <th>波次规则</th>
+                            <th>称重时间</th>
+                            <th>收件人</th>
+                            <th>收件人电话</th>
+                        </tr>
+                        <tr v-for="(package,i) in packages">
+                            <td>
+                                <input class="checkItem" type="checkbox" :value="package.id" v-model="checkData">
+                            </td>
+                            <td>@{{ i+1  }}</td>
+                            <td class="text-muted">@{{package.id}}</td>
+                            <td>@{{package.ownerName}}</td>
+                            <td>@{{package.logisticNumber}}</td>
+                            <td class="text-muted">@{{package.batchNumber}}</td>
+                            <td class="text-muted">@{{package.logisticName}}</td>
+                            <td class="text-muted">@{{package.measuringMachineName}}</td>
+                            <td>@{{package.weight}}</td>
+                            <td>@{{package.length}}<a v-if="package.length" class="text-primary">*</a>@{{package.width}}<a class="text-primary" v-if="package.width">*</a>@{{package.height}}</td>
+                            <td>@{{package.bulk}}</td>
+                            <td>@{{package.paperBoxName}}</td>
+                            <td :class="[package.status==='已上传'?'text-success':'']">@{{package.status}}</td>
+                            <td class="text-muted">@{{package.batchRule}}</td>
+                            <td class="text-muted">@{{package.weighed_at}}</td>
+                            <td class="text-muted">@{{package.recipient}}</td>
+                            <td class="text-muted">@{{package.recipientMobile}}</td>
+                        </tr>
+                    </table>
+                    <div class="text-info h5 btn btn">{{$packages->count()}}/{{$packages->total()}}</div>
+                    @if(isset($request))
+                        {{$packages->appends($request)->links()}}
+                    @else
+                        {{$packages->links()}}
+                    @endif
+                </div>
             </div>
         </div>
     </div>
-    </div>
 @endsection
 
 @section('lastScript')
     <script>
-        @if(isset($request))
+            @if(isset($request))
         let request={!! json_encode($request) !!};
         @endif
         new Vue({
             el:"#list",
             data:{
                 packages:[
-                    @foreach($packages as $package)
-                        {id:'{{$package->id}}',ownerName:'{{$package->owner_name}}',logisticNumber:'{{$package->logistic_number}}'
+                        @foreach($packages as $package)
+                    {id:'{{$package->id}}',ownerName:'{{$package->owner_name}}',logisticNumber:'{{$package->logistic_number}}'
                         ,wmsNumber:'{{$package->delivery_number}}',batchNumber:'{{$package->batch_number}}',batchRule:'{{$package->batch_rule}}'
                         ,recipient:'{{$package->recipient}}',recipientMobile:'{{$package->recipient_mobile}}',logisticName:'{{$package->logistic_name}}'
                         ,measuringMachineName:'{{$package->measuring_machine_name}}',
@@ -165,8 +165,8 @@
                 ],
                 i:0,
                 owners:[
-                    @foreach($owners as $owner)
-                        {id:'{{$owner->id}}',name:'{{$owner->name}}'},
+                        @foreach($owners as $owner)
+                    {id:'{{$owner->id}}',name:'{{$owner->name}}'},
                     @endforeach
                 ],
                 filterData:

+ 3 - 1
routes/web.php

@@ -129,6 +129,8 @@ Route::group(['prefix'=>'personnel/checking-in/userDutyCheck'],function(){
     Route::get('goGetQRCode','UserDutyCheckController@goGetQRCode');
     //获取当日二维码
     Route::get('getQRCode','UserDutyCheckController@getQRCode');
+    //进入二维码显示页面
+    Route::get('QRCode','UserDutyCheckController@QRCode');
     //进入打卡接口
     Route::get('clock','UserDutyCheckController@clock');
     //提交打卡
@@ -202,4 +204,4 @@ Route::group(['prefix'=>'personnel'],function(){
     Route::post('checking-in/storeMissionAudit','PersonnelController@storeMissionAudit');
     //相关设置
     Route::get('relating',function (){return view('personnel/menuPersonnel');});
-});
+});