page7.js 7.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339
  1. let healthCheckRunning = false;
  2. let healthCheckAbortController = null;
  3. async function startHealthCheck() {
  4. if (healthCheckRunning) {
  5. return;
  6. }
  7. healthCheckRunning = true;
  8. healthCheckAbortController = new AbortController();
  9. updateHealthCheckButtons();
  10. resetHealthCheck();
  11. try {
  12. try {
  13. setCheckText("avar1", "测试中...");
  14. setCheckText("avar4", "测试中...");
  15. await checkNetwork();
  16. } catch (err) {
  17. if (err.name === "AbortError") {
  18. return;
  19. }
  20. setCheckText("avar1", "已完成");
  21. setCheckText("avar2", "不通过");
  22. setCheckText("avar3", "检测失败");
  23. setCheckText("avar4", "已完成");
  24. setCheckText("avar5", "不通过");
  25. setCheckText("avar6", "检测失败");
  26. }
  27. if (!healthCheckRunning) {
  28. return;
  29. }
  30. try {
  31. setCheckText("bvar1", "测试中...");
  32. setCheckText("bvar4", "测试中...");
  33. await checkTime();
  34. } catch (err) {
  35. if (err.name === "AbortError") {
  36. return;
  37. }
  38. setCheckText("bvar1", "已完成");
  39. setCheckText("bvar2", "不通过");
  40. setCheckText("bvar3", "检测失败");
  41. setCheckText("bvar4", "已完成");
  42. setCheckText("bvar5", "不通过");
  43. setCheckText("bvar6", "检测失败");
  44. }
  45. if (!healthCheckRunning) {
  46. return;
  47. }
  48. try {
  49. setCheckText("cvar1", "测试中...");
  50. setCheckText("cvar4", "测试中...");
  51. await checkPosition();
  52. } catch (err) {
  53. if (err.name === "AbortError") {
  54. return;
  55. }
  56. setCheckText("cvar1", "已完成");
  57. setCheckText("cvar2", "不通过");
  58. setCheckText("cvar3", "检测失败");
  59. setCheckText("cvar4", "已完成");
  60. setCheckText("cvar5", "不通过");
  61. setCheckText("cvar6", "检测失败");
  62. }
  63. if (!healthCheckRunning) {
  64. return;
  65. }
  66. try {
  67. setCheckText("dvar1", "测试中...");
  68. setCheckText("dvar4", "测试中...");
  69. await checkCamera();
  70. } catch (err) {
  71. if (err.name === "AbortError") {
  72. return;
  73. }
  74. setCheckText("dvar1", "已完成");
  75. setCheckText("dvar2", "不通过");
  76. setCheckText("dvar3", "检测失败");
  77. setCheckText("dvar4", "已完成");
  78. setCheckText("dvar5", "不通过");
  79. setCheckText("dvar6", "检测失败");
  80. }
  81. if (!healthCheckRunning) {
  82. return;
  83. }
  84. try {
  85. setCheckText("dvar7", "测试中...");
  86. await setCameraWaitAEDone(false);
  87. await checkCameraPhoto();
  88. } catch (err) {
  89. if (err.name === "AbortError") {
  90. return;
  91. }
  92. setCheckText("dvar7", "已完成");
  93. setCheckText("dvar8", "不通过");
  94. setCheckText("dvar9", "检测失败");
  95. }
  96. if (!healthCheckRunning) {
  97. return;
  98. }
  99. try {
  100. setCheckText("evar1", "测试中...");
  101. await checkUserApp();
  102. } catch (err) {
  103. if (err.name === "AbortError") {
  104. return;
  105. }
  106. setCheckText("evar1", "已完成");
  107. setCheckText("evar2", "不通过");
  108. setCheckText("evar3", "检测失败");
  109. }
  110. } finally {
  111. try {
  112. await setCameraWaitAEDone(true);
  113. } finally {
  114. healthCheckRunning = false;
  115. healthCheckAbortController = null;
  116. updateHealthCheckButtons();
  117. }
  118. }
  119. }
  120. function stopHealthCheck() {
  121. if (!healthCheckRunning) {
  122. return;
  123. }
  124. healthCheckAbortController?.abort();
  125. }
  126. function checkHealthCheckStopped() {
  127. if (healthCheckAbortController?.signal.aborted) {
  128. throw new DOMException("Health check stopped", "AbortError");
  129. }
  130. }
  131. function updateHealthCheckButtons() {
  132. if (currentPage !== "page7") {
  133. return;
  134. }
  135. setBtnStatus("btn1", !healthCheckRunning, "page7");
  136. setBtnStatus("btn2", healthCheckRunning, "page7");
  137. }
  138. function resetHealthCheck() {
  139. const ids = [
  140. "avar1", "avar2", "avar3",
  141. "avar4", "avar5", "avar6",
  142. "bvar1", "bvar2", "bvar3",
  143. "bvar4", "bvar5", "bvar6",
  144. "cvar1", "cvar2", "cvar3",
  145. "cvar4", "cvar5", "cvar6",
  146. "dvar1", "dvar2", "dvar3",
  147. "dvar4", "dvar5", "dvar6",
  148. "dvar7", "dvar8", "dvar9",
  149. "evar1", "evar2", "evar3"
  150. ];
  151. for (const id of ids) {
  152. setCheckText(id, "--");
  153. }
  154. }
  155. async function checkNetwork() {
  156. checkHealthCheckStopped();
  157. const response = await fetch("/api/health-check/network", {
  158. signal: healthCheckAbortController.signal
  159. });
  160. if (!response.ok) {
  161. throw new Error("检测失败");
  162. }
  163. const data = await response.json();
  164. checkHealthCheckStopped();
  165. for (const id of [
  166. "avar1", "avar2", "avar3",
  167. "avar4", "avar5", "avar6"
  168. ]) {
  169. setCheckText(id, data[id] ?? "--");
  170. }
  171. }
  172. async function checkTime() {
  173. checkHealthCheckStopped();
  174. const response = await fetch("/api/health-check/time", {
  175. signal: healthCheckAbortController.signal
  176. });
  177. if (!response.ok) {
  178. throw new Error("检测失败");
  179. }
  180. const data = await response.json();
  181. checkHealthCheckStopped();
  182. setCheckText("bvar1", data.bvar1 ?? "--");
  183. setCheckText("bvar2", data.bvar2 ?? "--");
  184. setCheckText("bvar3", data.bvar3 ?? "--");
  185. setCheckText("bvar4", data.bvar4 ?? "--");
  186. setCheckText("bvar5", data.bvar5 ?? "--");
  187. setCheckText("bvar6", data.bvar6 ?? "--");
  188. }
  189. async function checkPosition() {
  190. checkHealthCheckStopped();
  191. const response = await fetch("/api/health-check/position", {
  192. signal: healthCheckAbortController.signal
  193. });
  194. if (!response.ok) {
  195. throw new Error("检测失败");
  196. }
  197. const data = await response.json();
  198. checkHealthCheckStopped();
  199. setCheckText("cvar1", data.cvar1 ?? "--");
  200. setCheckText("cvar2", data.cvar2 ?? "--");
  201. setCheckText("cvar3", data.cvar3 ?? "--");
  202. setCheckText("cvar4", data.cvar4 ?? "--");
  203. setCheckText("cvar5", data.cvar5 ?? "--");
  204. setCheckText("cvar6", data.cvar6 ?? "--");
  205. }
  206. async function checkCamera() {
  207. checkHealthCheckStopped();
  208. const response = await fetch("/api/health-check/camera", {
  209. signal: healthCheckAbortController.signal
  210. });
  211. if (!response.ok) {
  212. throw new Error("检测失败");
  213. }
  214. const data = await response.json();
  215. checkHealthCheckStopped();
  216. setCheckText("dvar1", data.dvar1 ?? "--");
  217. setCheckText("dvar2", data.dvar2 ?? "--");
  218. setCheckText("dvar3", data.dvar3 ?? "--");
  219. setCheckText("dvar4", data.dvar4 ?? "--");
  220. setCheckText("dvar5", data.dvar5 ?? "--");
  221. setCheckText("dvar6", data.dvar6 ?? "--");
  222. }
  223. async function checkCameraPhoto() {
  224. checkHealthCheckStopped();
  225. const response = await fetch("/api/health-check/camera/photo", {
  226. signal: healthCheckAbortController.signal
  227. });
  228. if (!response.ok) {
  229. throw new Error("检测失败");
  230. }
  231. const data = await response.json();
  232. checkHealthCheckStopped();
  233. setCheckText("dvar7", data.dvar7 ?? "--");
  234. setCheckText("dvar8", data.dvar8 ?? "--");
  235. setCheckText("dvar9", data.dvar9 ?? "--");
  236. }
  237. async function checkUserApp() {
  238. checkHealthCheckStopped();
  239. const response = await fetch("/api/health-check/user-app", {
  240. signal: healthCheckAbortController.signal
  241. });
  242. if (!response.ok) {
  243. throw new Error("检测失败");
  244. }
  245. const data = await response.json();
  246. checkHealthCheckStopped();
  247. setCheckText("evar1", data.evar1 ?? "--");
  248. setCheckText("evar2", data.evar2 ?? "--");
  249. setCheckText("evar3", data.evar3 ?? "--");
  250. }
  251. function setCheckText(id, value) {
  252. if (currentPage !== "page7") {
  253. return;
  254. }
  255. setText(id, value, "page7");
  256. const el = document.getElementById(id);
  257. if (!el) {
  258. return;
  259. }
  260. el.classList.remove("check-success", "check-fail");
  261. if (value === "已完成" || value === "通过") {
  262. el.classList.add("check-success");
  263. } else if (value === "不通过") {
  264. el.classList.add("check-fail");
  265. }
  266. }
  267. function initPage7() {
  268. }
  269. function exitPage7() {
  270. stopHealthCheck()
  271. }