app.blade.php 3.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  1. <!DOCTYPE html>
  2. <html lang="{{ str_replace('_', '-', app()->getLocale()) }}">
  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>@yield('title') {{ config('app.name', '宝时WAS') }}</title>
  10. @yield('head')
  11. <!-- Styles -->
  12. <link href="{{ mix('css/app.css') }}" rel="stylesheet">
  13. </head>
  14. <body>
  15. <div id="app">
  16. <nav class="navbar navbar-expand-md navbar-light bg-white shadow-sm">
  17. <div class="container-fluid">
  18. <a class="navbar-brand" href="{{ url('/control/panel/menu') }}" title="宝时 Warehouse Assistance System" style="vertical-align: text-bottom">
  19. <img src="{{asset('icon/logo100b.png')}}" alt="宝时 Warehouse Assistance System" height="30" >
  20. </a>
  21. <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="{{ __('Toggle navigation') }}">
  22. <span class="navbar-toggler-icon"></span>
  23. </button>
  24. @component('layouts.menu')@endcomponent
  25. </div>
  26. </nav>
  27. @yield('content')
  28. <hr>
  29. </div>
  30. </body>
  31. <!-- Scripts -->
  32. @yield('script')
  33. {{-- 必须在app.js前边--}}
  34. <script src="{{ mix('js/app.js') }}"></script>
  35. <script>
  36. let isActive=function (name,atSlashLevel) {
  37. let uriWithNoParam=location.href.split('?')[0];
  38. let uriParts=uriWithNoParam.split('//')[1].split('/');
  39. if(!name){
  40. return uriParts.length===atSlashLevel;
  41. }
  42. if(atSlashLevel>uriParts.length||!atSlashLevel)return false;
  43. return uriParts[atSlashLevel]===name;
  44. };
  45. new Vue({
  46. el:'#nav1',
  47. methods:{
  48. isActive:isActive,
  49. }
  50. });
  51. if($('#nav2').length>0)
  52. new Vue({
  53. el:'#nav2',
  54. methods:{
  55. isActive:isActive,
  56. }
  57. });
  58. </script>
  59. <script>
  60. //后退则刷新页面
  61. let currentPageUuid=function (){
  62. let maxPagesOpening = 60;
  63. let pageUuid="{{$pageUuid}}";
  64. let pageUuids=localStorage.getItem('pageUuids')
  65. if(!pageUuids)pageUuids=[];
  66. try{
  67. pageUuids=JSON.parse(pageUuids)
  68. }catch (error){pageUuids=[]}
  69. if(pageUuids.length>=maxPagesOpening)pageUuids.shift();
  70. pageUuids.push(pageUuid)
  71. localStorage.setItem('pageUuids',JSON.stringify(pageUuids))
  72. return pageUuid;
  73. }()
  74. window.addEventListener('pageshow', function(e) {
  75. let pageUuids=localStorage.getItem('pageUuids')
  76. if(!pageUuids)return;
  77. try{
  78. pageUuids=JSON.parse(pageUuids)
  79. }catch (error){return}
  80. let pageReturnedTimes=pageUuids.reduce(function(prev,cur){
  81. if(cur===currentPageUuid){
  82. if(!prev)return 1;
  83. return prev+1;
  84. }
  85. if(!prev)return 0;
  86. if(prev&&prev.length>5)return 0;
  87. return prev;
  88. })
  89. if(pageReturnedTimes>1){
  90. $('body').remove();
  91. $('html').append("<h5>刷新中……</h5>")
  92. location.reload();
  93. }
  94. });
  95. </script>
  96. @yield('lastScript')
  97. </html>