dev-test.html 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310
  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. .device-test {
  18. padding-bottom: 60px;
  19. }
  20. .edit-content {
  21. width: 95%;
  22. }
  23. </style>
  24. </head>
  25. <body>
  26. <div id="progress" class="mui-progressbar mui-progressbar-infinite" style="display: none;top: 0">
  27. <span></span>
  28. </div>
  29. <div class="device-test">
  30. <ul class="mui-table-view ">
  31. <li class="mui-table-view-cell">
  32. <div class="head-tips">
  33. <span class="info c-primary">请扫描盒子外壳或电路板上的二维码</span>
  34. <span class="error c-red mui-hidden"></span>
  35. </div>
  36. </li>
  37. </ul>
  38. <ul class="mui-table-view mui-table-view-radio intfTypeRadio">
  39. <li class="mui-table-view-cell mui-selected" intfType="uart">
  40. <a class="mui-navigate-right">这是串口设备</a>
  41. </li>
  42. <li class="mui-table-view-cell" intfType="pulse">
  43. <a class="mui-navigate-right">这是脉冲设备</a>
  44. </li>
  45. </ul>
  46. <ul class="mui-table-view margin-t-10">
  47. <li class="mui-table-view-cell">逻辑码:<span class="logicalCode c-success"></span></li>
  48. <li class="mui-table-view-cell">IMEI:<span class="devNo c-success"></span></li>
  49. <div class="more-info">
  50. <li class="mui-table-view-cell">绑定时间:<span class="bindTime "></span></li>
  51. <li class="mui-table-view-cell">测试时间:<span class="testTime "></span></li>
  52. <li class="mui-table-view-cell">测试结果:<span class="testResult "></span></li>
  53. <li class="mui-table-view-cell">软件版本:<span class="softVer "></span></li>
  54. <li class="mui-table-view-cell">硬件版本:<span class="hwVer "></span></li>
  55. <li class="mui-table-view-cell">驱动编码:<span class="driverCode"></span></li>
  56. <li class="mui-table-view-cell">驱动版本:<span class="driverVersion"></span></li>
  57. <li class="mui-table-view-cell">生产厂商:<span class="mf"></span></li>
  58. <li class="mui-table-view-cell">核心版本:<span class="coreVer"></span></li>
  59. <li class="mui-table-view-cell">主板检测:<span class="boardValid"></span></li>
  60. <li class="mui-table-view-cell">异常标记:<span class="label c-red"></span></li>
  61. </div>
  62. </ul>
  63. <div class="result-panel">
  64. <h5 class="result-panel-tips ">上分记录</h5>
  65. <ul class="mui-table-view result-list">
  66. </ul>
  67. </div>
  68. <div class="right-menu">
  69. <div class="menu-item" onclick="moreInfo()">设备详情</div>
  70. <div class="menu-item" onclick="markDev()">标记异常</div>
  71. </div>
  72. <div class="handle-panel">
  73. <div class="handle-btn scan-btn" onclick="scanQRCode()">扫描二维码</div>
  74. <div class="handle-btn upper-oper">
  75. <div class="handle-btn-sub mui-input-row mui-input-range ">
  76. <input id="coins" type="range" step="1" min="1" max="10" value="1" onchange="showCoins()"/>
  77. </div>
  78. <div class="handle-btn-sub upper-btn" onclick="upper()">上分(1个)</div>
  79. <div class="handle-btn-sub next-btn" onclick="next()">下一个</div>
  80. </div>
  81. </div>
  82. </div>
  83. <div class="markDialog edit-back mui-hidden">
  84. <div class="edit-content">
  85. <div class="edit-box">
  86. <div class="reg-des">
  87. <label>标签</label>
  88. <textarea id="label" maxlength="100" rows="1" placeholder=""></textarea>
  89. </div>
  90. <div class="mark-list">
  91. <a href="javascript:void(0)" class="mark-item">红灯慢闪,无法上线</a>
  92. <a href="javascript:void(0)" class="mark-item">红灯不亮、无法上线</a>
  93. <a href="javascript:void(0)" class="mark-item">上分成功,不跳时</a>
  94. <a href="javascript:void(0)" class="mark-item">投币成功、不跳时</a>
  95. <a href="javascript:void(0)" class="mark-item">响应非常慢</a>
  96. <a href="javascript:void(0)" class="mark-item">所有灯不亮</a>
  97. </div>
  98. </div>
  99. <div class="mui-popup-buttons">
  100. <span class="mui-popup-button">取消</span>
  101. <span class="mui-popup-button mui-popup-button-bold">保存</span>
  102. </div>
  103. </div>
  104. </div>
  105. </body>
  106. <script src="/components/lib/jquery.min.js"></script>
  107. <script src="/app/js/xyf.common.js"></script>
  108. <script src="/components/lib/mui.min.js"></script>
  109. <script src="https://res.wx.qq.com/open/js/jweixin-1.2.0.js"></script>
  110. <script src="https://gw.alipayobjects.com/as/g/h5-lib/alipayjsapi/3.1.0/alipayjsapi.inc.min.js"></script>
  111. <script src="/components/custom/js/common.js"></script>
  112. <script>
  113. $(function () {
  114. var coins = getConst("coins");
  115. if (coins) {
  116. $("#coins").val(coins);
  117. $(".upper-btn").text("上分(" + coins + "个)");
  118. }
  119. });
  120. var logicalCode = "";
  121. var devNo = "";
  122. function scanQRCode() {
  123. // 先置空信息,避免扫码失败后信息又没有刷新
  124. setInfo({});
  125. ScanResult(function (resultStr) {
  126. var code = "";
  127. var type = "";
  128. if (resultStr.indexOf("http") > -1) {
  129. var url = new URL(resultStr);
  130. code = logicalCode = url.searchParams.get("l");
  131. $(".logicalCode").text(logicalCode);
  132. type = "logicalCode";
  133. } else {
  134. code = devNo = resultStr;
  135. $(".devNo").text(devNo);
  136. type = "devNo";
  137. }
  138. getDevInfo(code, type);
  139. });
  140. }
  141. //显示更多设备信息
  142. function moreInfo() {
  143. if ($(".more-info").hasClass("hidden")) {
  144. $(".more-info").removeClass("hidden");
  145. } else {
  146. $(".more-info").addClass("hidden");
  147. }
  148. }
  149. function setInfo(obj) {
  150. $(".logicalCode").text(obj.logicalCode || '');
  151. $(".devNo").text(obj.devNo || '');
  152. $(".bindTime").text(obj.bindTime || '');
  153. $(".testTime").text(obj.testTime || '');
  154. $(".testResult").text(obj.testResult || '');
  155. $(".label").text(obj.label || '');
  156. $(".softVer").text(obj.softVer || '');
  157. $(".driverCode").text(obj.driverCode || '');
  158. $(".driverVersion").text(obj.driverVersion || '');
  159. $(".hwVer").text(obj.hwVer || '');
  160. $(".mf").text(obj.mf || '');
  161. $(".coreVer").text(obj.coreVer || '');
  162. $(".boardValid").text(obj.boardValid || '');
  163. }
  164. //扫码出结果后查询结果
  165. function getDevInfo(code, type) {
  166. $("#progress").show();
  167. var data = {};
  168. data[type] = code;
  169. sendRequestWithHeaders("/test/getDeviceInfo", "GET",
  170. get_token_headers("Tester"),
  171. data, function (response) {
  172. if (response.result == 1) {
  173. var obj = response.para;
  174. setInfo(obj);
  175. devNo = obj.devNo;
  176. logicalCode = obj.logicalCode;
  177. if (obj.groupId) {
  178. showMsg("error", "设备已绑定并已被经销商注册!无法上分!");
  179. } else {
  180. if (obj.logicalCode && obj.devNo) {
  181. $(".device-test").addClass("step2");
  182. showMsg("info", "IMEI和逻辑码已经绑定,可以上分。");
  183. } else {
  184. showMsg("error", "IMEI和逻辑码未绑定,暂不能上分!");
  185. }
  186. }
  187. } else {
  188. showMsg("error", response.description);
  189. }
  190. $("#progress").hide();
  191. });
  192. }
  193. //添加标签到设备
  194. function markDev() {
  195. $('.markDialog').removeClass('mui-hidden');
  196. $('body').on('touchmove', function (e) {
  197. e.preventDefault();
  198. });
  199. $('.markDialog .mui-popup-buttons span').off().tap(function () {
  200. if ($(this).index() == 0) {
  201. //点击取消
  202. $('.markDialog').addClass('mui-hidden');
  203. $('body').off('touchmove');
  204. } else {
  205. //点击保存
  206. var label = $('#label').val();
  207. if ($.isEmptyObject(label)) {
  208. return;
  209. }
  210. var data = {"logicalCode": logicalCode, "devNo": devNo, "label": label};
  211. var url = "/test/labelDevice";
  212. sendRequestWithHeaders(url, "POST", get_token_headers("Tester"), data, function (res) {
  213. if (res.result == 1) {
  214. $('.markDialog').addClass('mui-hidden');
  215. mui.toast("保存成功");
  216. $('body').off('touchmove');
  217. } else {
  218. mui.toast(res.description);
  219. }
  220. }, "json");
  221. }
  222. return false;
  223. });
  224. }
  225. //添加预设标记
  226. $(function () {
  227. $(".mark-item").click(function () {
  228. $("#label").val($(this).text());
  229. })
  230. });
  231. //扫码出结果后进行上分
  232. function upper() {
  233. var coins = $("#coins").val();
  234. var url = "/test/onPoints";
  235. var type = $('.intfTypeRadio .mui-selected').attr("intfType");
  236. var data = {"value": logicalCode, "coins": coins, type: type};
  237. sendRequestWithHeaders(url, "POST", get_token_headers("Tester"), data, function (res) {
  238. if (res.result == 1) {
  239. mui.toast('上分成功');
  240. $(".result-list").prepend('<li class="mui-table-view-cell">逻辑码:<span>' + logicalCode + '</span>, IMEI:<span>' + devNo + '</span>, 数量:<span>' + coins + '</span></li>');
  241. } else {
  242. mui.toast(res.description);
  243. }
  244. });
  245. }
  246. //下一个设备
  247. function next() {
  248. scanQRCode();
  249. }
  250. function showCoins() {
  251. var coins = $("#coins").val();
  252. $(".upper-btn").text("上分(" + coins + "个)");
  253. setConst("coins", coins);
  254. }
  255. function showMsg(type, text) {
  256. if (type == "error") {
  257. $(".error").removeClass("mui-hidden").text(text);
  258. $(".info").addClass("mui-hidden");
  259. } else {
  260. $(".error").addClass("mui-hidden");
  261. $(".info").removeClass("mui-hidden").text(text);
  262. }
  263. }
  264. function setConst(key, value) {
  265. var conArr = localStorage.testconst ? JSON.parse(localStorage.testconst) : {};
  266. conArr[key] = value;
  267. localStorage.testconst = JSON.stringify(conArr);
  268. }
  269. function getConst(key) {
  270. var conArr = localStorage.testconst ? JSON.parse(localStorage.testconst) : {};
  271. return conArr[key];
  272. }
  273. </script>
  274. </html>