dev-bind.html 6.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="utf-8"/>
  5. <meta http-equiv="Content-Type" content="application/xhtml+xml;charset=UTF-8">
  6. <meta http-equiv="Cache-Control" content="no-cache,no-store,must-revalidate">
  7. <meta http-equiv="pragma" content="no-cache">
  8. <meta http-equiv="expires" content="0">
  9. <meta name="format-detection" content="telphone=no,email=no"/>
  10. <meta name="viewport"
  11. content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no"/>
  12. <title>测试:扫码绑定</title>
  13. <link rel="stylesheet" href="/components/lib/mui.min.css"/>
  14. <link rel="stylesheet" href="/components/custom/css/common.css"/>
  15. <link rel="stylesheet" href="/app/css/xyf.common.min.css"/>
  16. <style>
  17. .result-panel {
  18. top: 164px;
  19. }
  20. </style>
  21. </head>
  22. <body>
  23. <div class="device-test">
  24. <ul class="mui-table-view">
  25. <li class="mui-table-view-cell">
  26. <div class="head-tips">
  27. <span class="info c-primary">请扫描盒子外壳和电路板上的二维码。</span>
  28. <span class="error c-red mui-hidden">该二维码已经绑定过了,不能再绑定!</span>
  29. </div>
  30. </li>
  31. <li class="mui-table-view-cell">逻辑码:<span class="logicalCode c-success"></span></li>
  32. <li class="mui-table-view-cell">IMEI:<span class="imei c-success"></span></li>
  33. </ul>
  34. <h5 class="result-panel-tips mui-hidden">绑定记录,总共 <em class="c-success"></em> 个</h5>
  35. <div class="result-panel">
  36. <ul class="mui-table-view result-list">
  37. </ul>
  38. </div>
  39. <div class="handle-panel">
  40. <div class="handle-btn scan-btn" onclick="scanQRCode()">扫描二维码</div>
  41. <div class="handle-btn bind-btn mui-hidden" onclick="bind()">绑定</div>
  42. </div>
  43. </div>
  44. <div class="test-fixed-btn needVoice">
  45. <i onclick="switchSound()" class="switchSound iconfont icon-volume c-primary"></i>
  46. <i onclick="changeSound()" class="changeSound iconfont icon-sound c-primary"></i>
  47. </div>
  48. <audio id='audioPlay' src='' hidden='true'></audio>
  49. </body>
  50. <script src="/components/lib/jquery.min.js"></script>
  51. <script src="/app/js/xyf.common.js"></script>
  52. <script src="/components/lib/mui.min.js"></script>
  53. <script src="https://res.wx.qq.com/open/js/jweixin-1.2.0.js"></script>
  54. <script src="https://gw.alipayobjects.com/as/g/h5-lib/alipayjsapi/3.1.0/alipayjsapi.inc.min.js"></script>
  55. <script src="/components/custom/js/common.js"></script>
  56. <script>
  57. var logicalCode = "";
  58. var imei = "";
  59. function scanQRCode() {
  60. ScanResult(function (resultStr) {
  61. if (resultStr.indexOf("http") > -1) {
  62. var url = new URL(resultStr);
  63. logicalCode = url.searchParams.get("l");
  64. } else {
  65. imei = resultStr;
  66. }
  67. if (logicalCode) {
  68. $(".logicalCode").text(logicalCode);
  69. }
  70. if (imei) {
  71. $(".imei").text(imei);
  72. }
  73. if (logicalCode && imei) {
  74. $(".scan-btn").addClass("mui-hidden");
  75. $(".bind-btn").removeClass("mui-hidden");
  76. showMsg("info", "扫描完成。");
  77. } else if (logicalCode && !imei) {
  78. showMsg("info", "请扫描IMEI...");
  79. } else if (!logicalCode && imei) {
  80. showMsg("info", "请扫描外壳二维码...");
  81. }
  82. });
  83. }
  84. var needVoice = true;
  85. var successVoice = 0;
  86. //扫码出结果后进行绑定
  87. function bind() {
  88. var mask = new Mask("正在进行绑定...");
  89. mask.show();
  90. sendRequestWithHeaders("/test/bindCode", "GET", get_token_headers("Tester"), {logicalCode: logicalCode, imei: imei}, function (response) {
  91. if (response.result == 1) {
  92. $(".result-list").prepend('<li class="mui-table-view-cell">逻辑码:<span>' + logicalCode + '</span>, IMEI:<span>' + imei + '</span></li>');
  93. $(".result-panel-tips em").text($(".result-list li").length);
  94. //绑定成功,把之前数据清空
  95. logicalCode = "";
  96. imei = "";
  97. $(".logicalCode").text(logicalCode);
  98. $(".imei").text(imei);
  99. $(".scan-btn").removeClass("mui-hidden");
  100. $(".bind-btn").addClass("mui-hidden");
  101. $(".result-panel-tips").removeClass("mui-hidden");
  102. showMsg("info", "恭喜,绑定成功");
  103. playVoice(successVoice);
  104. } else {
  105. showMsg("error", response.description);
  106. playVoice(3);
  107. }
  108. mask.remove();
  109. });
  110. }
  111. function showMsg(type, text) {
  112. if (type == "error") {
  113. $(".error").removeClass("mui-hidden").text(text);
  114. $(".info").addClass("mui-hidden");
  115. } else {
  116. $(".error").addClass("mui-hidden");
  117. $(".info").removeClass("mui-hidden").text(text);
  118. }
  119. }
  120. function switchSound() {
  121. fadeShow();
  122. if (needVoice) {
  123. needVoice = false;
  124. $(".switchSound").removeClass("icon-volume").addClass("icon-mute");
  125. } else {
  126. needVoice = true;
  127. $(".switchSound").removeClass("icon-mute").addClass("icon-volume");
  128. }
  129. }
  130. function changeSound() {
  131. fadeShow();
  132. if (successVoice == 0) {
  133. successVoice = 1;
  134. $(".changeSound").removeClass("icon-sound").addClass("icon-voice");
  135. playVoice(successVoice);
  136. } else {
  137. successVoice = 0;
  138. $(".changeSound").removeClass("icon-voice").addClass("icon-sound");
  139. playVoice(successVoice);
  140. }
  141. }
  142. var timer1;
  143. var timer2;
  144. function fadeShow() {
  145. clearTimeout(timer1);
  146. clearTimeout(timer2);
  147. $(".needVoice").addClass("active");
  148. timer1 = setTimeout(function () {
  149. $(".needVoice").addClass("transition");
  150. $(".needVoice").removeClass("active");
  151. }, 2000);
  152. timer2 = setTimeout(function () {
  153. $(".needVoice").removeClass("transition");
  154. }, 3000);
  155. }
  156. function playVoice(key) {
  157. if (!needVoice) {
  158. return;
  159. }
  160. //非IE内核浏览器
  161. var path = "/components/custom/voice/";
  162. var vSrc = [
  163. "success-ef.mp3",
  164. "great.mp3",
  165. "data-existed.mp3",
  166. "error.mp3",
  167. ];
  168. $("#audioPlay").attr("src", path + vSrc[key]);
  169. var audio = document.getElementById("audioPlay");
  170. audio.play();
  171. }
  172. </script>
  173. </html>