App.vue 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. <template>
  2. <div class="app download">
  3. <div class="download-bg"></div>
  4. <div class="download-body">
  5. <div class="download-content">
  6. <div class="school-logo">
  7. <img :src="info.logo" :alt="info.name" />
  8. </div>
  9. <div class="download-logo">
  10. <img src="./assets/logo.png" alt="客户端" />
  11. </div>
  12. <h1 class="download-title">在线考试客户端</h1>
  13. <p class="download-version">版本号:{{ info.version.name }}</p>
  14. <div class="btn-primary" @click="toDownload">点击下载</div>
  15. </div>
  16. </div>
  17. </div>
  18. </template>
  19. <script>
  20. import { getSchoolInfo } from "./api";
  21. function getParam(paramName) {
  22. const hs = window.location.href.split(/\?|&/);
  23. const validh = hs.find((item) => item.startsWith(paramName));
  24. if (!validh) return;
  25. return validh.split("=")[1];
  26. }
  27. export default {
  28. name: "app",
  29. data() {
  30. return {
  31. info: {
  32. name: "",
  33. logo: "",
  34. packagePath: "",
  35. version: {
  36. name: "",
  37. },
  38. },
  39. };
  40. },
  41. created() {
  42. this.getData();
  43. },
  44. methods: {
  45. async getData() {
  46. const code = getParam("code");
  47. if (!code) {
  48. window.alert("学校code丢失!");
  49. return;
  50. }
  51. const res = await getSchoolInfo(code);
  52. this.info = res.data.data;
  53. },
  54. toDownload() {
  55. window.open(this.info.packagePath);
  56. },
  57. },
  58. };
  59. </script>