exam-list.html 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>云阅卷本地代理工具</title>
  6. <meta name="viewport"
  7. content="width=device-width,initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no" />
  8. <link rel="stylesheet" href="css/style.css">
  9. </head>
  10. <body>
  11. <div class="wp">
  12. <div class="hd">
  13. <div class="logo"><img src="img/logo.png" /></div>
  14. <span class="y"> 欢迎您,<span id="user-name"></span>
  15. <span class="pipe">|</span><a href="login.html">退出</a>
  16. </span>
  17. </div>
  18. <div class="cont">
  19. <div class="title cl" style="background:#FFF;">
  20. <span class="y">共有<b id="total-count">0</b>场考试,请选择</span>
  21. <h2>考试列表</h2>
  22. </div>
  23. <table cellpadding="0" cellspacing="0" width="100%" class="tablelist">
  24. <thead>
  25. <th>ID</th>
  26. <th>考试名称</th>
  27. <th>创建时间</th>
  28. <th>操作</th>
  29. </thead>
  30. <tbody id="exam-list">
  31. </tbody>
  32. </table>
  33. <div class="page">
  34. <span class="back" id="previous-button">上页</span>
  35. <div id="page-list">
  36. </div>
  37. <span class="next" id="next-button">下页</span>
  38. </div>
  39. </div>
  40. <div class="ft">Copyright © 2011-2020 www.qmth.com.cn, All Rights Reserved</div>
  41. </div>
  42. <script>
  43. const $ = require('jquery')
  44. const env = require('../lib/env.js')
  45. const api = require('../lib/api.js')
  46. const mustache = require('mustache')
  47. const examTemplate = '<tr><td>{{id}}</td>\
  48. <td>{{name}}</td><td>{{examTime}}</td>\
  49. <td><a href="##" data-index="{{index}}">进入考试</a></td></tr>'
  50. const pageTemplate = '<a href="##" data-number="{{number}}">{{number}}</a>'
  51. const pageSize = 10
  52. let examList = []
  53. let currentPage
  54. let pageCount
  55. $(document).ready(() => {
  56. env.merge(JSON.parse(window.localStorage.getItem('env')))
  57. $('#user-name').html(env.user.userName)
  58. api.getExams(1, 1000).then(list => {
  59. examList = list
  60. initPage()
  61. }).catch(err => {
  62. alert('获取考试列表失败\n' + (err || ''))
  63. })
  64. })
  65. function initPage() {
  66. let totalCount = examList.length
  67. if (totalCount > 0) {
  68. pageCount = totalCount % pageSize == 0 ? parseInt(totalCount / pageSize) : parseInt(totalCount /
  69. pageSize) + 1
  70. } else {
  71. pageCount = 0
  72. }
  73. $('#total-count').html(totalCount)
  74. $('#page-list').empty()
  75. for (let i = 1; i <= pageCount; i++) {
  76. let dom = $(mustache.render(pageTemplate, {
  77. number: i
  78. }))
  79. $('#page-list').append(dom)
  80. dom.click(function () {
  81. changePage(parseInt($(this).attr('data-number')))
  82. })
  83. }
  84. $('#previous-button').click(() => {
  85. if (currentPage > 1) {
  86. changePage(currentPage - 1)
  87. }
  88. })
  89. $('#next-button').click(() => {
  90. if (currentPage < pageCount) {
  91. changePage(currentPage + 1)
  92. }
  93. })
  94. if (pageCount > 0) {
  95. changePage(1)
  96. }
  97. }
  98. function render() {
  99. $('#page-list').find('a').removeClass('on')
  100. $('#page-list').find('a[data-number="' + currentPage + '"]').addClass('on')
  101. $('#exam-list').empty()
  102. let start = (currentPage - 1) * pageSize
  103. let end = start + pageSize
  104. for (let i = start; i < end && i < examList.length; i++) {
  105. examList[i].index = i
  106. let dom = $(mustache.render(examTemplate, examList[i]))
  107. $('#exam-list').append(dom)
  108. dom.find('a').click(selectExam)
  109. }
  110. }
  111. function selectExam() {
  112. let exam = examList[parseInt($(this).attr('data-index'))]
  113. env.exam = exam
  114. env.examId = exam.id
  115. window.localStorage.setItem('env', JSON.stringify(env))
  116. window.location.href = 'index.html'
  117. }
  118. function changePage(pageNumber) {
  119. currentPage = pageNumber
  120. render()
  121. }
  122. </script>
  123. </body>
  124. </html>