OnlineExamHome.vue 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104
  1. <template>
  2. <main-layout>
  3. <Breadcrumb
  4. style="text-align: left; padding-left: 20px; height: 40px; line-height: 40px;
  5. background-color: #fafafa;"
  6. >
  7. 当前所在位置:
  8. <BreadcrumbItem>在线考试</BreadcrumbItem>
  9. </Breadcrumb>
  10. <div class="home">
  11. <ecs-online-list :courses="courses"></ecs-online-list>
  12. </div>
  13. <PhoneVerifyForDD />
  14. </main-layout>
  15. </template>
  16. <script>
  17. import EcsOnlineList from "./OnlineExamList.vue";
  18. import PhoneVerifyForDD from "./PhoneVerifyForDD.vue";
  19. export default {
  20. name: "OnlineExamHome",
  21. data() {
  22. return {
  23. previousUrl: "",
  24. autoCloseModal: 10,
  25. courses: [],
  26. };
  27. },
  28. beforeRouteEnter(to, from, next) {
  29. next(vm => {
  30. vm.previousUrl = from.path;
  31. });
  32. },
  33. beforeMount() {
  34. this.$nextTick(() => {
  35. if (this.previousUrl.startsWith("/login/")) {
  36. this.$Modal.info({
  37. render: () => (
  38. <div class="welcome-modal">
  39. <div class="smile-png" />
  40. <div style="margin-left: 20px; flex: 1">
  41. <div style="margin-bottom: 1.5em">
  42. 欢迎使用考试系统,祝顺利完成考试!
  43. </div>
  44. <div style="font-weight:bold; line-height: 25px;">
  45. 姓名:{this.$store.state.user.name} -{" "}
  46. {this.$store.state.user.studentCode}
  47. </div>
  48. <div style="font-weight:bold; line-height: 25px;">
  49. 专业:{this.$store.state.user.specialty}
  50. </div>
  51. </div>
  52. </div>
  53. ),
  54. onOk: () => {
  55. clearInterval(this.interval);
  56. },
  57. });
  58. this.interval = setInterval(() => {
  59. this.autoCloseModal--;
  60. if (this.autoCloseModal <= 0) {
  61. this.$Modal.remove();
  62. clearInterval(this.interval);
  63. }
  64. }, 1000);
  65. }
  66. });
  67. },
  68. async mounted() {
  69. window._hmt.push(["_trackEvent", "在线考试列表页面", "进入页面"]);
  70. const res = await this.$http.get(
  71. "/api/ecs_oe_student/examControl/queryExamList"
  72. );
  73. this.courses = res.data;
  74. },
  75. beforeDestroy() {
  76. clearInterval(this.interval);
  77. },
  78. components: {
  79. "ecs-online-list": EcsOnlineList,
  80. PhoneVerifyForDD,
  81. },
  82. };
  83. </script>
  84. <style scoped>
  85. .home {
  86. margin: 20px;
  87. }
  88. .welcome-modal {
  89. display: flex;
  90. margin-top: 26px;
  91. margin-left: 20px;
  92. }
  93. .smile-png {
  94. width: 40px;
  95. height: 40px;
  96. background: url(./smile-icon.png);
  97. }
  98. </style>