browser.html 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta http-equiv="X-UA-Compatible" content="IE=edge">
  6. <link rel="icon" href="../static/img/favicon2.ico" type="img/x-ico">
  7. <meta name="viewport" content="width=device-width,initial-scale=1.0,minimum-scale=1.0,maximum-scale=1.0">
  8. <title>双子星浏览器</title>
  9. <link rel="stylesheet" href="https://cdn.bootcss.com/weui/1.1.3/style/weui.min.css">
  10. <script src="../static/js/vender/vue/axios.min.js"></script>
  11. <script src="../static/js/vender/jquery-3.4.1.min.js"></script>
  12. <script src="../static/js/vender/vue/vue.min.js"></script>
  13. <link rel="stylesheet" href="../static/js/vender/toastr/toastr.min.css">
  14. <script src="../static/js/vender/toastr/toastr.min.js"></script>
  15. <link rel="stylesheet" href="https://cdn.bootcss.com/jquery-weui/1.2.1/css/jquery-weui.min.css">
  16. <script src="../static/js/vender/config.js"></script>
  17. <link rel="stylesheet" href="../static/css/browser.css">
  18. <script src="../static/js/vender/vue/config.js"></script>
  19. <script type="text/javascript">
  20. var deviveWidth = document.documentElement.clientWidth;
  21. document.documentElement.style.fontSize = deviveWidth / 7.5 + 'px';
  22. </script>
  23. </head>
  24. <body>
  25. <div class="container">
  26. <div class="logo-row">
  27. <img class="logo" src="../static/img/browser/logo.png" />
  28. </div>
  29. <div class="search-wrap">
  30. <img class="search-icon" id="search-icon" src="../static/img/browser/search-icon.png" />
  31. <form class="form" id="myform" action="javascript: void(0);">
  32. <input class="ipt" id="ipt" type="search" placeholder="搜索或输入网址" />
  33. </form>
  34. </div>
  35. <div class="tag-wrap" id="tag-wrap"></div>
  36. </div>
  37. <script>
  38. toastr.options.positionClass = 'toast-center-center';
  39. toastr.options.timeOut = '1500';
  40. </script>
  41. <script type="text/javascript">
  42. document.addEventListener("visibilitychange",()=>{
  43. if(document.hidden){
  44. init();
  45. }else{
  46. init();
  47. }
  48. })
  49. const tagDom = document.getElementById("tag-wrap");
  50. let flag = true, timer=null;
  51. (function(){
  52. init();
  53. })();
  54. function init(){
  55. $.ajax({
  56. url: `${baseUrl}/api/public/v1/browserPlate/client/query`,
  57. type: 'get',
  58. contentType:"application/json",
  59. dataType: 'json',
  60. cache: false,
  61. success: function (res) {
  62. let list = res.data;
  63. let node = '';
  64. for(let i=0; i < list.length; i++){
  65. node += `<div class="tag-item" data-plateName="${list[i].plateName}" data-id="${list[i].id}">
  66. <img class="icon-row" data-plateName="${list[i].plateName}" data-id="${list[i].id}" src=${fileCenterApi}/document/newFile/download/0/${uploadKey}?fileKey=${list[i].iconImage} />
  67. <div class="icon-title" data-plateName="${list[i].plateName}" data-id="${list[i].id}">${list[i].plateName}</div>
  68. <img class="right-arrow" src="../static/img/browser/right-arrow.png" data-plateName="${list[i].plateName}" data-id="${list[i].id}" />
  69. <div class="right-arrow-heght"></div>
  70. </div>`
  71. }
  72. tagDom.innerHTML = node;
  73. }
  74. })
  75. };
  76. tagDom.addEventListener('click',(e)=>{
  77. let plateName = e.target.dataset.platename;
  78. let id = e.target.dataset.id;
  79. if(!id) {
  80. return
  81. }
  82. $.ajax({
  83. url: `${baseUrl}/api/public/v1/browserPlate/reportClickNum/${id}`,
  84. type: 'get',
  85. contentType:"application/json",
  86. dataType: 'json',
  87. cache: false,
  88. success: function (res) {
  89. if(res.status === 0){
  90. isGetStatus(id, plateName);
  91. } else {
  92. stopManyClick(() => {
  93. toastr.error(res.msg);
  94. })
  95. }
  96. }
  97. })
  98. },false);
  99. // 验证是否下架
  100. function isGetStatus(id, plateName) {
  101. $.ajax({
  102. url: `${baseUrl}/api/public/v1/browserPlate/getStatus/${id}`,
  103. type: 'get',
  104. contentType:"application/json",
  105. dataType: 'json',
  106. cache: false,
  107. success: function (res) {
  108. if(res.status === 0){
  109. location.href = `./browserDetail.html?plateName=${encodeURIComponent(plateName)}&plateId=${id}`;
  110. } else {
  111. stopManyClick(() => {
  112. toastr.error(res.msg);
  113. })
  114. }
  115. }
  116. })
  117. }
  118. //防止提示一秒内重复显示
  119. function stopManyClick(fn) {
  120. if (flag) {
  121. fn();
  122. }
  123. flag = false;
  124. if(timer){clearTimeout(timer);}
  125. timer = setTimeout(() => {flag = true}, 1500);
  126. }
  127. $("#myform").bind('search', searchFun);
  128. //点击按钮搜索
  129. const searchDom = document.getElementById("search-icon");
  130. searchDom.addEventListener('click',searchFun,false);
  131. function searchFun() {
  132. var key = document.getElementById("ipt").value;
  133. var wd = "https://www.baidu.com/s?wd=" + key;
  134. window.open(wd);
  135. }
  136. // input 监听回车事件
  137. $("#ipt").keydown(function (e){
  138. // 当 keyCode 是13时,是回车操作
  139. if (e.keyCode == 13){
  140. searchFun();
  141. // 取消之前的keydown事件
  142. e.preventDefault();
  143. }
  144. })
  145. </script>
  146. </body>
  147. </html>