useAppVersion.ts 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. import { DOMAIN, STRICT_CHECK_HOSTS } from "@/constants/constants";
  2. import { checkMainExe, fileExists, isElectron } from "@/utils/nativeMethods";
  3. import ua from "@/utils/ua";
  4. import { onMounted, Ref, watch } from "vue";
  5. export function useAppVersion(newVersionAvailable: Ref<boolean>) {
  6. function checkApp() {
  7. if (isElectron() && !eval(`proceess.env.PORTABLE_EXECUTABLE_FILE`)) {
  8. disableLoginBtnBecauseAppVersionChecker = true;
  9. if (ua.getBrowser().version !== "1.9.3") {
  10. $message.error("请与学校申请最新的客户端,进行考试!", {
  11. duration: 24 * 60 * 60 * 1000,
  12. });
  13. } else {
  14. $message.error(
  15. "电脑环境达不到考试要求,请清理与考试无关软件或更换电脑",
  16. {
  17. duration: 24 * 60 * 60 * 1000,
  18. }
  19. );
  20. }
  21. }
  22. if (
  23. [
  24. "xjtu.ecs.qmth.com.cn",
  25. "ccnu.ecs.qmth.com.cn",
  26. "snnu.ecs.qmth.com.cn",
  27. "swjtu.ecs.qmth.com.cn",
  28. ].includes(DOMAIN)
  29. ) {
  30. if (!isElectron() || !fileExists("multiCamera.exe")) {
  31. disableLoginBtnBecauseAppVersionChecker = true;
  32. $message.error("请与学校申请最新的客户端,进行考试!", {
  33. duration: 24 * 60 * 60 * 1000,
  34. });
  35. }
  36. }
  37. if (STRICT_CHECK_HOSTS.includes(window.location.hostname)) {
  38. if (!checkMainExe()) {
  39. disableLoginBtnBecauseAppVersionChecker = true;
  40. if (ua.getBrowser().version !== "1.9.3") {
  41. $message.error("请与学校申请最新的客户端,进行考试!", {
  42. duration: 24 * 60 * 60 * 1000,
  43. });
  44. } else {
  45. $message.error(
  46. "电脑环境达不到考试要求,请清理与考试无关软件或更换电脑",
  47. { duration: 24 * 60 * 60 * 1000 }
  48. );
  49. }
  50. }
  51. }
  52. }
  53. onMounted(() => checkApp());
  54. watch(newVersionAvailable, () => {
  55. if (newVersionAvailable) {
  56. $message.error("程序有更新,请重新打开客户端!", {
  57. duration: 24 * 60 * 60 * 1000,
  58. });
  59. }
  60. });
  61. let disableLoginBtnBecauseAppVersionChecker = $ref(false);
  62. return {
  63. disableLoginBtnBecauseAppVersionChecker: $$(
  64. disableLoginBtnBecauseAppVersionChecker
  65. ),
  66. };
  67. }