importAndExportQRCode.blade.php 4.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="utf-8">
  5. <meta name="viewport" content="width=device-width, initial-scale=1">
  6. <link rel="icon" href="{{asset('icon/faviconc.ico')}}" type="image/x-icon"/>
  7. <!-- CSRF Token -->
  8. <meta name="csrf-token" content="{{ csrf_token() }}">
  9. <title>显示二维码 BsWAS</title>
  10. <!-- Styles -->
  11. <link href="{{ mix('css/app.css') }}" rel="stylesheet">
  12. </head>
  13. <body>
  14. <div class="container-fluid " id="page">
  15. <div class="card ">
  16. <div class="card-body">
  17. <div class="align-content-center m-3" >
  18. <h3 class="text-center text-dark">首次扫描后将与设备绑定,之后扫描需使用原设备与原软件!</h3><br>
  19. <h4 class="text-center text-danger">如更换设备请联系管理人员解除设备绑定!</h4>
  20. </div>
  21. <div class="text-center">
  22. <button class="btn btn-secondary" v-if="is_show_export" @click="showExportQrcode()">显示出场码</button>
  23. <button class="btn btn-secondary" v-else @click="hiddenExportQrcode()">隐藏出场码</button>
  24. </div>
  25. <div class="row">
  26. <div class="col-6 text-center" v-for="(importAndExportQRCode,i) in importAndExportQRCodes" >
  27. <div :id="'hiddenCode-'+importAndExportQRCode.source">
  28. <img id="img" class="img-thumbnail img-fluid" :src="'data:image/png;base64,'+importAndExportQRCode.src" width="75%"/>
  29. <p class="font-weight-bold m-2 h1 text-center" style="color: red">@{{ importAndExportQRCode.source }}</p>
  30. </div>
  31. </div>
  32. </div>
  33. </div>
  34. </div>
  35. </div>
  36. <script src="{{ asset('js/app.js') }}"></script>
  37. <script>
  38. function computeDiffMicroTime_fromNow(dateComparing) {
  39. let now=new Date();
  40. let dateComparingObj=new Date(dateComparing)
  41. let mil = dateComparingObj.getTime()-now.getTime();
  42. if (mil>0){
  43. return mil;
  44. }else {
  45. return mil=1000;
  46. }
  47. }
  48. new Vue({
  49. el:"#page",
  50. data:{
  51. importAndExportQRCodes:[
  52. @foreach($importAndExportQRCodes as $importAndExportQRCode)
  53. {url:'{{$importAndExportQRCode->url}}', type:'{{$importAndExportQRCode->type}}',source:'{{$importAndExportQRCode->source}}'},
  54. @endforeach
  55. ],
  56. next_refresh_time:'{{$next_refresh_time}}',
  57. is_show_export:false,
  58. },
  59. mounted(){
  60. let _this=this;
  61. let refreshQRCode=function(){
  62. axios.post('{{url('personnel/checking-in/refreshQRCode')}}')
  63. .then(function (response) {
  64. _this.importAndExportQRCodes=response.data.importAndExportQRCodes;
  65. _this.next_refresh_time=response.data.next_refresh_time;
  66. document.querySelector("meta[name='csrf-token']").setAttribute('content',response.data.csrf_Token);
  67. setTimeout(refreshQRCode,computeDiffMicroTime_fromNow(_this.next_refresh_time));
  68. }).catch(function (err) {
  69. setTimeout(refreshQRCode,computeDiffMicroTime_fromNow(_this.next_refresh_time));
  70. tempTip.setDuration(4000);
  71. tempTip.show(err);
  72. });
  73. };
  74. refreshQRCode();
  75. },
  76. methods:{
  77. hiddenExportQrcode(){
  78. let div = document.getElementById('hiddenCode-出场');
  79. div.setAttribute("style","display:none");
  80. this.is_show_export=true;
  81. },
  82. showExportQrcode(){
  83. let div = document.getElementById('hiddenCode-出场');
  84. div.setAttribute("style","display");
  85. this.is_show_export=false;
  86. },
  87. }
  88. });
  89. </script>
  90. </body>
  91. </html>