Browse Source

Merge branch 'master' of http://git.qmth.com.cn/ExamCloud-3/examcloud-web-admin

weiwenhai 6 years ago
parent
commit
7fdc852534
63 changed files with 719 additions and 385 deletions
  1. 1 1
      package.json
  2. BIN
      public/favicon.ico
  3. BIN
      public/img/icons/android-chrome-192x192.png
  4. BIN
      public/img/icons/android-chrome-512x512.png
  5. BIN
      public/img/icons/android-icon-144x144.png
  6. BIN
      public/img/icons/android-icon-192x192.png
  7. BIN
      public/img/icons/android-icon-96x96.png
  8. BIN
      public/img/icons/apple-icon-precomposed.png
  9. BIN
      public/img/icons/apple-icon.png
  10. BIN
      public/img/icons/apple-touch-icon-120x120.png
  11. BIN
      public/img/icons/apple-touch-icon-152x152.png
  12. BIN
      public/img/icons/apple-touch-icon-180x180.png
  13. BIN
      public/img/icons/apple-touch-icon-60x60.png
  14. BIN
      public/img/icons/apple-touch-icon-76x76.png
  15. BIN
      public/img/icons/apple-touch-icon.png
  16. BIN
      public/img/icons/favicon-16x16.png
  17. BIN
      public/img/icons/favicon-32x32.png
  18. BIN
      public/img/icons/favicon-96x96.png
  19. BIN
      public/img/icons/favicon.ico
  20. BIN
      public/img/icons/msapplication-icon-144x144.png
  21. BIN
      public/img/icons/mstile-150x150.png
  22. 0 149
      public/img/icons/safari-pinned-tab.svg
  23. 16 8
      public/manifest.json
  24. 6 2
      src/modules/basic/view/campus.vue
  25. 12 2
      src/modules/basic/view/course.vue
  26. 6 1
      src/modules/basic/view/school.vue
  27. 12 3
      src/modules/basic/view/specially.vue
  28. 6 1
      src/modules/basic/view/user.vue
  29. 76 18
      src/modules/examwork/view/onlineExam.vue
  30. 3 3
      src/modules/examwork/view/student.vue
  31. 1 6
      src/modules/oe/views/absent.vue
  32. 62 10
      src/modules/oe/views/alreadyAudited.vue
  33. 9 0
      src/modules/oe/views/awaitingAudit.vue
  34. 6 4
      src/modules/oe/views/captureDetail.vue
  35. 95 19
      src/modules/oe/views/examDetail.vue
  36. 65 15
      src/modules/oe/views/examScheduling.vue
  37. 20 8
      src/modules/oe/views/examSummary.vue
  38. 45 8
      src/modules/oe/views/illegalityNameList.vue
  39. 74 14
      src/modules/oe/views/scoreStatistics.vue
  40. BIN
      src/modules/portal/assets/images/login_footer_logo.jpg
  41. BIN
      src/modules/portal/assets/images/login_main_bg_full.png
  42. BIN
      src/modules/portal/assets/images/login_main_left_tree.png
  43. BIN
      src/modules/portal/assets/images/new_login_logo.png
  44. 1 1
      src/modules/portal/routes/routes.js
  45. 21 5
      src/modules/portal/views/home/Home.vue
  46. 0 106
      src/modules/portal/views/home/HomeMain.vue
  47. 1 1
      src/modules/portal/views/home/HomeSide.vue
  48. BIN
      src/modules/portal/views/home/icon.png
  49. 181 0
      src/modules/portal/views/home/main/HomeMain.vue
  50. BIN
      src/modules/portal/views/home/main/images/basic-hover.png
  51. BIN
      src/modules/portal/views/home/main/images/basic.png
  52. BIN
      src/modules/portal/views/home/main/images/examwork-hover.png
  53. BIN
      src/modules/portal/views/home/main/images/examwork.png
  54. BIN
      src/modules/portal/views/home/main/images/iconbg-hover.png
  55. BIN
      src/modules/portal/views/home/main/images/iconbg.png
  56. BIN
      src/modules/portal/views/home/main/images/marking-hover.png
  57. BIN
      src/modules/portal/views/home/main/images/marking.png
  58. BIN
      src/modules/portal/views/home/main/images/oe-hover.png
  59. BIN
      src/modules/portal/views/home/main/images/oe.png
  60. BIN
      src/modules/portal/views/home/main/images/print-hover.png
  61. BIN
      src/modules/portal/views/home/main/images/print.png
  62. BIN
      src/modules/portal/views/home/main/images/questions-hover.png
  63. BIN
      src/modules/portal/views/home/main/images/questions.png

+ 1 - 1
package.json

@@ -1,5 +1,5 @@
 {
-  "name": "vue-starter",
+  "name": "ecs-web-admin",
   "version": "0.1.0",
   "private": true,
   "scripts": {

BIN
public/favicon.ico


BIN
public/img/icons/android-chrome-192x192.png


BIN
public/img/icons/android-chrome-512x512.png


BIN
public/img/icons/android-icon-144x144.png


BIN
public/img/icons/android-icon-192x192.png


BIN
public/img/icons/android-icon-96x96.png


BIN
public/img/icons/apple-icon-precomposed.png


BIN
public/img/icons/apple-icon.png


BIN
public/img/icons/apple-touch-icon-120x120.png


BIN
public/img/icons/apple-touch-icon-152x152.png


BIN
public/img/icons/apple-touch-icon-180x180.png


BIN
public/img/icons/apple-touch-icon-60x60.png


BIN
public/img/icons/apple-touch-icon-76x76.png


BIN
public/img/icons/apple-touch-icon.png


BIN
public/img/icons/favicon-16x16.png


BIN
public/img/icons/favicon-32x32.png


BIN
public/img/icons/favicon-96x96.png


BIN
public/img/icons/favicon.ico


BIN
public/img/icons/msapplication-icon-144x144.png


BIN
public/img/icons/mstile-150x150.png


+ 0 - 149
public/img/icons/safari-pinned-tab.svg

@@ -1,149 +0,0 @@
-<?xml version="1.0" standalone="no"?>
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 20010904//EN"
- "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
-<svg version="1.0" xmlns="http://www.w3.org/2000/svg"
- width="16.000000pt" height="16.000000pt" viewBox="0 0 16.000000 16.000000"
- preserveAspectRatio="xMidYMid meet">
-<metadata>
-Created by potrace 1.11, written by Peter Selinger 2001-2013
-</metadata>
-<g transform="translate(0.000000,16.000000) scale(0.000320,-0.000320)"
-fill="#000000" stroke="none">
-<path d="M18 46618 c45 -75 122 -207 122 -211 0 -2 25 -45 55 -95 30 -50 55
--96 55 -102 0 -5 5 -10 10 -10 6 0 10 -4 10 -9 0 -5 73 -135 161 -288 89 -153
-173 -298 187 -323 14 -25 32 -57 41 -72 88 -149 187 -324 189 -335 2 -7 8 -13
-13 -13 5 0 9 -4 9 -10 0 -5 46 -89 103 -187 175 -302 490 -846 507 -876 8 -16
-20 -36 25 -45 28 -46 290 -498 339 -585 13 -23 74 -129 136 -236 61 -107 123
--215 137 -240 14 -25 29 -50 33 -56 5 -5 23 -37 40 -70 18 -33 38 -67 44 -75
-11 -16 21 -33 63 -109 14 -25 29 -50 33 -56 4 -5 21 -35 38 -65 55 -100 261
--455 269 -465 4 -5 14 -21 20 -35 15 -29 41 -75 103 -180 24 -41 52 -88 60
--105 9 -16 57 -100 107 -185 112 -193 362 -626 380 -660 8 -14 23 -38 33 -55
-11 -16 23 -37 27 -45 4 -8 26 -46 48 -85 23 -38 53 -90 67 -115 46 -81 64
--113 178 -310 62 -107 121 -210 132 -227 37 -67 56 -99 85 -148 16 -27 32 -57
-36 -65 4 -8 15 -27 25 -42 9 -15 53 -89 96 -165 44 -76 177 -307 296 -513 120
--206 268 -463 330 -570 131 -227 117 -203 200 -348 36 -62 73 -125 82 -140 10
--15 21 -34 25 -42 4 -8 20 -37 36 -65 17 -27 38 -65 48 -82 49 -85 64 -111 87
--153 13 -25 28 -49 32 -55 4 -5 78 -134 165 -285 87 -151 166 -288 176 -305
-10 -16 26 -43 35 -59 9 -17 125 -217 257 -445 132 -229 253 -441 270 -471 17
--30 45 -79 64 -108 18 -29 33 -54 33 -57 0 -2 20 -37 44 -77 24 -40 123 -212
-221 -383 97 -170 190 -330 205 -355 16 -25 39 -65 53 -90 13 -25 81 -144 152
--265 70 -121 137 -238 150 -260 12 -22 37 -65 55 -95 18 -30 43 -73 55 -95 12
--22 48 -85 80 -140 77 -132 163 -280 190 -330 13 -22 71 -123 130 -225 59
--102 116 -199 126 -217 10 -17 29 -50 43 -72 15 -22 26 -43 26 -45 0 -2 27
--50 60 -106 33 -56 60 -103 60 -105 0 -2 55 -98 90 -155 8 -14 182 -316 239
--414 13 -22 45 -79 72 -124 27 -46 49 -86 49 -89 0 -2 14 -24 30 -48 16 -24
-30 -46 30 -49 0 -5 74 -135 100 -176 5 -8 24 -42 43 -75 50 -88 58 -101 262
--455 104 -179 199 -345 213 -370 14 -25 28 -49 32 -55 4 -5 17 -26 28 -45 10
--19 62 -109 114 -200 114 -197 133 -230 170 -295 16 -27 33 -57 38 -65 17 -28
-96 -165 103 -180 4 -8 16 -28 26 -45 10 -16 77 -131 148 -255 72 -124 181
--313 243 -420 62 -107 121 -209 131 -227 35 -62 323 -560 392 -678 38 -66 83
--145 100 -175 16 -30 33 -59 37 -65 4 -5 17 -27 29 -47 34 -61 56 -100 90
--156 17 -29 31 -55 31 -57 0 -2 17 -32 39 -67 21 -35 134 -229 251 -433 117
--203 235 -407 261 -451 27 -45 49 -85 49 -88 0 -4 8 -19 19 -34 15 -21 200
--341 309 -533 10 -19 33 -58 51 -87 17 -29 31 -54 31 -56 0 -2 25 -44 55 -94
-30 -50 55 -95 55 -98 0 -4 6 -15 14 -23 7 -9 27 -41 43 -71 17 -30 170 -297
-342 -594 171 -296 311 -542 311 -547 0 -5 5 -9 10 -9 6 0 10 -4 10 -10 0 -5
-22 -47 49 -92 27 -46 58 -99 68 -118 24 -43 81 -140 93 -160 5 -8 66 -114 135
--235 69 -121 130 -227 135 -235 12 -21 259 -447 283 -490 10 -19 28 -47 38
--62 11 -14 19 -29 19 -32 0 -3 37 -69 83 -148 99 -170 305 -526 337 -583 13
--22 31 -53 41 -70 11 -16 22 -37 26 -45 7 -14 82 -146 103 -180 14 -24 181
--311 205 -355 13 -22 46 -80 75 -130 29 -49 64 -110 78 -135 14 -25 51 -88 82
--140 31 -52 59 -102 63 -110 4 -8 18 -33 31 -55 205 -353 284 -489 309 -535
-17 -30 45 -78 62 -106 18 -28 36 -60 39 -72 4 -12 12 -22 17 -22 5 0 9 -4 9
--10 0 -5 109 -197 241 -427 133 -230 250 -431 259 -448 51 -90 222 -385 280
--485 37 -63 78 -135 92 -160 14 -25 67 -117 118 -205 51 -88 101 -175 111
--193 34 -58 55 -95 149 -257 51 -88 101 -173 110 -190 9 -16 76 -131 147 -255
-72 -124 140 -241 151 -260 61 -108 281 -489 355 -615 38 -66 77 -133 87 -150
-35 -63 91 -161 100 -175 14 -23 99 -169 128 -220 54 -97 135 -235 142 -245 4
--5 20 -32 35 -60 26 -48 238 -416 276 -480 10 -16 26 -46 37 -65 30 -53 382
--661 403 -695 10 -16 22 -37 26 -45 4 -8 26 -48 50 -88 24 -41 43 -75 43 -77
-0 -2 22 -40 50 -85 27 -45 50 -84 50 -86 0 -3 38 -69 83 -147 84 -142 302
--520 340 -587 10 -19 34 -60 52 -90 18 -30 44 -75 57 -100 14 -25 45 -79 70
--120 25 -41 56 -96 70 -121 14 -25 77 -133 138 -240 62 -107 122 -210 132
--229 25 -43 310 -535 337 -581 11 -19 26 -45 34 -59 17 -32 238 -414 266 -460
-11 -19 24 -41 28 -49 3 -7 75 -133 160 -278 84 -146 153 -269 153 -274 0 -5 5
--9 10 -9 6 0 10 -4 10 -10 0 -5 82 -150 181 -322 182 -314 201 -346 240 -415
-12 -21 80 -139 152 -263 71 -124 141 -245 155 -270 14 -25 28 -49 32 -55 6 -8
-145 -248 220 -380 37 -66 209 -362 229 -395 11 -19 24 -42 28 -49 4 -8 67
--118 140 -243 73 -125 133 -230 133 -233 0 -2 15 -28 33 -57 19 -29 47 -78 64
--108 17 -30 53 -93 79 -139 53 -90 82 -141 157 -272 82 -142 115 -199 381
--659 142 -245 268 -463 281 -485 12 -22 71 -125 132 -230 60 -104 172 -298
-248 -430 76 -132 146 -253 156 -270 11 -16 22 -36 26 -44 3 -8 30 -54 60 -103
-29 -49 53 -91 53 -93 0 -3 18 -34 40 -70 22 -36 40 -67 40 -69 0 -2 37 -66 81
--142 45 -77 98 -168 119 -204 20 -36 47 -81 58 -100 12 -19 27 -47 33 -62 6
--16 15 -28 20 -28 5 0 9 -4 9 -9 0 -6 63 -118 140 -251 77 -133 140 -243 140
--245 0 -2 18 -33 41 -70 22 -37 49 -83 60 -101 10 -19 29 -51 40 -71 25 -45
-109 -189 126 -218 7 -11 17 -29 22 -40 6 -11 22 -38 35 -60 14 -22 37 -62 52
--90 14 -27 35 -62 45 -77 11 -14 19 -29 19 -32 0 -3 18 -35 40 -71 22 -36 40
--67 40 -69 0 -2 19 -35 42 -72 23 -38 55 -94 72 -124 26 -47 139 -244 171
--298 6 -9 21 -36 34 -60 28 -48 37 -51 51 -19 6 12 19 36 29 52 10 17 27 46
-38 65 11 19 104 181 208 360 103 179 199 345 213 370 14 25 42 74 64 109 21
-34 38 65 38 67 0 2 18 33 40 69 22 36 40 67 40 69 0 3 177 310 199 346 16 26
-136 234 140 244 2 5 25 44 52 88 27 44 49 81 49 84 0 2 18 34 40 70 22 36 40
-67 40 69 0 2 20 36 43 77 35 58 169 289 297 513 9 17 50 86 90 155 40 69 86
-150 103 180 16 30 35 62 41 70 6 8 16 24 22 35 35 64 72 129 167 293 59 100
-116 199 127 220 11 20 30 53 41 72 43 72 1070 1850 1121 1940 14 25 65 113
-113 195 48 83 96 166 107 185 10 19 28 50 38 68 11 18 73 124 137 235 64 111
-175 303 246 427 71 124 173 299 225 390 52 91 116 202 143 248 27 45 49 85 49
-89 0 4 6 14 14 22 7 9 28 43 46 76 26 47 251 436 378 655 11 19 29 51 40 70
-11 19 101 176 201 348 99 172 181 317 181 323 0 5 5 9 10 9 6 0 10 5 10 11 0
-6 8 23 18 37 11 15 32 52 49 82 16 30 130 228 253 440 122 212 234 405 248
-430 13 25 39 70 57 100 39 65 69 117 130 225 25 44 50 87 55 95 12 19 78 134
-220 380 61 107 129 224 150 260 161 277 222 382 246 425 15 28 47 83 71 123
-24 41 43 78 43 83 0 5 4 9 8 9 4 0 13 12 19 28 7 15 23 45 36 67 66 110 277
-478 277 483 0 3 6 13 14 21 7 9 27 41 43 71 17 30 45 80 63 110 34 57 375 649
-394 685 6 11 16 27 22 35 6 8 26 42 44 75 18 33 41 74 51 90 10 17 24 41 32
-55 54 97 72 128 88 152 11 14 19 28 19 30 0 3 79 141 175 308 96 167 175 305
-175 308 0 3 6 13 14 21 7 9 26 39 41 66 33 60 276 483 338 587 24 40 46 80 50
-88 4 8 13 24 20 35 14 23 95 163 125 215 11 19 52 91 92 160 40 69 80 139 90
-155 9 17 103 179 207 360 105 182 200 346 211 365 103 181 463 802 489 845 7
-11 15 27 19 35 4 8 29 51 55 95 64 110 828 1433 848 1470 9 17 24 41 33 55 9
-14 29 48 45 77 15 28 52 93 82 145 30 51 62 107 71 123 17 30 231 398 400 690
-51 88 103 179 115 202 12 23 26 48 32 55 6 7 24 38 40 68 17 30 61 107 98 170
-37 63 84 144 103 180 19 36 41 72 48 81 8 8 14 18 14 21 0 4 27 51 59 106 32
-55 72 124 89 154 16 29 71 125 122 213 51 88 104 180 118 205 13 25 28 50 32
-55 4 6 17 26 28 45 11 19 45 80 77 135 31 55 66 116 77 135 11 19 88 152 171
-295 401 694 620 1072 650 1125 11 19 87 152 170 295 83 143 158 273 166 288 9
-16 21 36 26 45 6 9 31 52 55 96 25 43 54 94 66 115 11 20 95 164 186 321 91
-157 173 299 182 315 9 17 26 46 37 65 12 19 66 114 121 210 56 96 108 186 117
-200 8 14 24 40 34 59 24 45 383 664 412 713 5 9 17 29 26 45 15 28 120 210
-241 419 36 61 68 117 72 125 4 8 12 23 19 34 35 57 245 420 262 453 11 20 35
-61 53 90 17 29 32 54 32 56 0 3 28 51 62 108 33 57 70 119 80 138 10 19 23 42
-28 50 5 8 32 53 59 100 27 47 149 258 271 470 122 212 234 405 248 430 30 53
-62 108 80 135 6 11 15 27 19 35 4 8 85 150 181 315 96 165 187 323 202 350 31
-56 116 202 130 225 5 8 25 42 43 75 19 33 92 159 162 280 149 257 157 271 202
-350 19 33 38 67 43 75 9 14 228 392 275 475 12 22 55 96 95 165 40 69 80 139
-90 155 24 42 202 350 221 383 9 15 27 47 41 72 14 25 75 131 136 236 61 106
-121 210 134 232 99 172 271 470 279 482 5 8 23 40 40 70 18 30 81 141 142 245
-60 105 121 210 135 235 14 25 71 124 127 220 56 96 143 247 194 335 51 88 96
-167 102 175 14 24 180 311 204 355 23 43 340 590 356 615 5 8 50 87 101 175
-171 301 517 898 582 1008 25 43 46 81 46 83 0 2 12 23 27 47 14 23 40 67 56
-97 16 30 35 62 42 70 7 8 15 22 18 30 4 8 20 38 37 65 16 28 33 57 37 65 6 12
-111 196 143 250 5 8 55 95 112 193 57 98 113 195 126 215 12 20 27 46 32 57 6
-11 14 27 20 35 5 8 76 130 156 270 80 140 165 287 187 325 23 39 52 90 66 115
-13 25 30 52 37 61 8 8 14 18 14 21 0 4 41 77 92 165 50 87 175 302 276 478
-101 176 208 360 236 408 28 49 67 117 86 152 19 35 41 70 48 77 6 6 12 15 12
-19 0 7 124 224 167 291 12 21 23 40 23 42 0 2 21 40 46 83 26 43 55 92 64 109
-54 95 327 568 354 614 19 30 45 75 59 100 71 128 82 145 89 148 4 2 8 8 8 13
-0 5 42 82 94 172 311 538 496 858 518 897 14 25 40 70 58 100 18 30 42 71 53
-90 10 19 79 139 152 265 73 127 142 246 153 265 10 19 43 76 72 125 29 50 63
-108 75 130 65 116 80 140 87 143 4 2 8 8 8 12 0 8 114 212 140 250 6 8 14 24
-20 35 5 11 54 97 108 190 l100 170 -9611 3 c-5286 1 -9614 -1 -9618 -5 -5 -6
--419 -719 -619 -1068 -89 -155 -267 -463 -323 -560 -38 -66 -81 -140 -95 -165
--31 -56 -263 -457 -526 -910 -110 -190 -224 -388 -254 -440 -29 -52 -61 -109
--71 -125 -23 -39 -243 -420 -268 -465 -11 -19 -204 -352 -428 -740 -224 -388
--477 -826 -563 -975 -85 -148 -185 -322 -222 -385 -37 -63 -120 -207 -185
--320 -65 -113 -177 -306 -248 -430 -72 -124 -172 -297 -222 -385 -51 -88 -142
--245 -202 -350 -131 -226 -247 -427 -408 -705 -65 -113 -249 -432 -410 -710
--160 -278 -388 -673 -506 -877 -118 -205 -216 -373 -219 -373 -3 0 -52 82
--109 183 -58 100 -144 250 -192 332 -95 164 -402 696 -647 1120 -85 149 -228
-396 -317 550 -212 365 -982 1700 -1008 1745 -10 19 -43 76 -72 125 -29 50 -64
-110 -77 135 -14 25 -63 110 -110 190 -47 80 -96 165 -110 190 -14 25 -99 171
--188 325 -89 154 -174 300 -188 325 -13 25 -64 113 -112 195 -48 83 -140 242
--205 355 -65 113 -183 317 -263 454 -79 137 -152 264 -163 282 -50 89 -335
-583 -354 614 -12 19 -34 58 -50 85 -15 28 -129 226 -253 440 -124 215 -235
-408 -247 430 -12 22 -69 121 -127 220 -58 99 -226 389 -373 645 -148 256 -324
-561 -392 678 -67 117 -134 232 -147 255 -13 23 -33 59 -46 80 l-22 37 -9615 0
--9615 0 20 -32z"/>
-</g>
-</svg>

+ 16 - 8
public/manifest.json

@@ -1,16 +1,24 @@
 {
-  "name": "vue-starter",
-  "short_name": "vue-starter",
+  "name": "ecs-web-admin",
+  "short_name": "ecs-web-admin",
   "icons": [
     {
-      "src": "./img/icons/android-chrome-192x192.png",
-      "sizes": "192x192",
-      "type": "image/png"
+      "src": "./img/icons/android-icon-96x96.png",
+      "sizes": "96x96",
+      "type": "image/png",
+      "density": "2.0"
+    },
+    {
+      "src": "./img/icons/android-icon-144x144.png",
+      "sizes": "144x144",
+      "type": "image/png",
+      "density": "3.0"
     },
     {
-      "src": "./img/icons/android-chrome-512x512.png",
-      "sizes": "512x512",
-      "type": "image/png"
+      "src": "./img/icons/android-icon-192x192.png",
+      "sizes": "192x192",
+      "type": "image/png",
+      "density": "4.0"
     }
   ],
   "start_url": "./index.html",

+ 6 - 2
src/modules/basic/view/campus.vue

@@ -250,8 +250,12 @@
           <el-table-column width="120" label="联系方式">
             <span slot-scope="scope">{{ scope.row.telephone }}</span>
           </el-table-column>
-          <el-table-column width="170" label="更新时间">
-            <span slot-scope="scope">{{ scope.row.updateTime }}</span>
+          <el-table-column
+            sortable
+            width="170"
+            label="更新时间"
+            prop="updateTime"
+          >
           </el-table-column>
           <el-table-column width="50" label="状态">
             <span slot-scope="scope">

+ 12 - 2
src/modules/basic/view/course.vue

@@ -309,7 +309,12 @@
             <el-table-column prop="id" label="ID" width="100" />
             <el-table-column prop="name" label="专业名称" width="250" />
             <el-table-column prop="code" label="专业代码" />
-            <el-table-column prop="updateTime" label="更新时间" width="170" />
+            <el-table-column
+              sortable
+              prop="updateTime"
+              label="更新时间"
+              width="170"
+            />
             <el-table-column label="操作">
               <div slot-scope="scope">
                 <span>
@@ -421,7 +426,12 @@
               </span>
             </span>
           </el-table-column>
-          <el-table-column prop="updateTime" label="更新时间" width="170" />
+          <el-table-column
+            sortable
+            prop="updateTime"
+            label="更新时间"
+            width="170"
+          />
           <el-table-column label="操作" width="290">
             <div slot-scope="scope">
               <el-button

+ 6 - 1
src/modules/basic/view/school.vue

@@ -261,7 +261,12 @@
           </template>
         </el-table-column>
         <el-table-column prop="domainName" width="190" label="学校域名" />
-        <el-table-column prop="updateTime" width="170" label="更新时间" />
+        <el-table-column
+          sortable
+          prop="updateTime"
+          width="170"
+          label="更新时间"
+        />
         <el-table-column width="50" label="状态">
           <span slot-scope="scope">
             <span v-if="scope.row.enable">

+ 12 - 3
src/modules/basic/view/specially.vue

@@ -189,7 +189,12 @@
           <el-table-column prop="id" label="ID" width="60" />
           <el-table-column prop="name" label="课程名称" width="220" />
           <el-table-column prop="code" label="课程代码" />
-          <el-table-column prop="updateTime" label="更新时间" width="170" />
+          <el-table-column
+            sortable
+            prop="updateTime"
+            label="更新时间"
+            width="170"
+          />
           <el-table-column label="操作" width="120">
             <span slot-scope="scope">
               <el-button
@@ -265,7 +270,12 @@
         <el-table-column prop="id" label="ID" width="60"> </el-table-column>
         <el-table-column prop="code" label="专业代码"> </el-table-column>
         <el-table-column prop="name" label="专业名称"> </el-table-column>
-        <el-table-column prop="updateTime" label="更新时间" width="170">
+        <el-table-column
+          sortable
+          prop="updateTime"
+          label="更新时间"
+          width="170"
+        >
         </el-table-column>
         <el-table-column label="操作" width="300">
           <template slot-scope="scope">
@@ -597,7 +607,6 @@ export default {
     },
     handleCurrentChange(val) {
       this.currentPage = val;
-      this.currentPage = 1;
       this.searchForm();
     },
     handleCourseCurrentChange(val) {

+ 6 - 1
src/modules/basic/view/user.vue

@@ -357,7 +357,12 @@
             >
             </span>
           </el-table-column>
-          <el-table-column prop="updateTime" width="160" label="更新时间" />
+          <el-table-column
+            sortable
+            prop="updateTime"
+            width="160"
+            label="更新时间"
+          />
           <el-table-column width="50" label="状态">
             <span slot-scope="scope">
               <span v-if="scope.row.enable">

+ 76 - 18
src/modules/examwork/view/onlineExam.vue

@@ -16,10 +16,18 @@
             label-position="right"
           >
             <div style="margin-bottom: 10px;">
-              <el-button type="primary" size="small" @click="saveExam"
+              <el-button
+                type="primary"
+                size="small"
+                icon="el-icon-document"
+                @click="saveExam"
                 >保 存</el-button
               >
-              <el-button type="primary" size="small" @click="back"
+              <el-button
+                type="primary"
+                size="small"
+                @click="back"
+                icon="el-icon-arrow-left"
                 >返 回</el-button
               >
             </div>
@@ -307,10 +315,10 @@
                   </el-form-item>
                 </el-row>
               </el-tab-pane>
-              <el-tab-pane label="人脸识别设置" name="tab4">
+              <el-tab-pane label="生物检测设置" name="tab4">
                 <el-row>
                   <el-form-item
-                    label="是否开启"
+                    label="开启生物检测"
                     :label-width="style.label_width_tab4"
                   >
                     <el-radio-group
@@ -318,8 +326,8 @@
                       @change="faceChange"
                       class="input"
                     >
-                      <el-radio label="true">开启</el-radio>
-                      <el-radio label="false">关闭</el-radio>
+                      <el-radio label="true"></el-radio>
+                      <el-radio label="false"></el-radio>
                     </el-radio-group>
                   </el-form-item>
                 </el-row>
@@ -388,6 +396,58 @@
                     >
                   </el-form-item>
                 </el-row>
+                <el-row v-show="form.properties.IS_FACE_ENABLE == 'true'">
+                  <el-form-item
+                    label="开启人脸活体检测"
+                    :label-width="style.label_width_tab4"
+                  >
+                    <el-radio-group
+                      v-model="form.properties.IS_FACE_VERIFY"
+                      class="input"
+                    >
+                      <el-radio label="true">是</el-radio>
+                      <el-radio label="false">否</el-radio>
+                    </el-radio-group>
+                  </el-form-item>
+                </el-row>
+                <el-row v-show="form.properties.IS_FACE_VERIFY == 'true'">
+                  <el-form-item
+                    label="人脸活体检测开始时间"
+                    prop="FACE_VERIFY_START_MINUTE"
+                    :label-width="style.label_width_tab4"
+                  >
+                    <el-input
+                      maxlength="20"
+                      v-model.trim.number="
+                        form.properties.FACE_VERIFY_START_MINUTE
+                      "
+                      auto-complete="off"
+                      class="input"
+                      ><template slot="append"
+                        >分钟</template
+                      ></el-input
+                    >
+                  </el-form-item>
+                </el-row>
+                <el-row v-show="form.properties.IS_FACE_VERIFY == 'true'">
+                  <el-form-item
+                    label="人脸活体检测结束时间"
+                    prop="FACE_VERIFY_END_MINUTE"
+                    :label-width="style.label_width_tab4"
+                  >
+                    <el-input
+                      maxlength="20"
+                      v-model.trim.number="
+                        form.properties.FACE_VERIFY_END_MINUTE
+                      "
+                      auto-complete="off"
+                      class="input"
+                      ><template slot="append"
+                        >分钟</template
+                      ></el-input
+                    >
+                  </el-form-item>
+                </el-row>
               </el-tab-pane>
               <el-tab-pane label="阅卷设置" name="tab5">
                 <el-row>
@@ -657,7 +717,7 @@ export default {
         label_width_tab1: "80px",
         label_width_tab2: "110px",
         label_width_tab3: "120px",
-        label_width_tab4: "120px",
+        label_width_tab4: "160px",
         label_width_tab5: "80px",
         label_width_tab6: "120px"
       },
@@ -697,7 +757,11 @@ export default {
           MARKING_TYPE: "ALL",
           IP_LIMIT: "false",
           IP_ADDRESSES: null,
-          LIVING_WARN_THRESHOLD: 50
+          LIVING_WARN_THRESHOLD: 50,
+          IS_FACE_VERIFY: "false",
+          FACE_VERIFY_START_MINUTE: 5,
+          FACE_VERIFY_END_MINUTE: 10,
+          PUSH_SCORE: "true"
         }
       },
       examTypeList: EXAM_TYPE,
@@ -751,8 +815,9 @@ export default {
   methods: {
     faceChange() {
       if (this.form.properties.IS_FACE_ENABLE == "false") {
-        this.form.properties.SNAPSHOT_INTERVAL = 30;
-        this.form.properties.WARN_THRESHOLD = 50;
+        this.form.properties.IS_FACE_VERIFY = "false";
+      } else if (this.form.properties.IS_FACE_ENABLE == "true") {
+        this.form.properties.IS_FACE_VERIFY = "true";
       }
     },
     init() {
@@ -772,14 +837,7 @@ export default {
               this.form.properties,
               response.data
             );
-            this.form.properties.SINGLE_EDIT =
-              this.form.properties.SINGLE_EDIT == "true" ? true : false;
-            this.form.properties.MUTIPLE_EDIT =
-              this.form.properties.MUTIPLE_EDIT == "true" ? true : false;
-            this.form.properties.BOOL_EDIT =
-              this.form.properties.BOOL_EDIT == "true" ? true : false;
-            this.form.properties.FILL_BLANK_EDIT =
-              this.form.properties.FILL_BLANK_EDIT == "true" ? true : false;
+
             this.show_ckeditor = true;
           });
         });

+ 3 - 3
src/modules/examwork/view/student.vue

@@ -47,7 +47,7 @@
           </el-form-item>
           <el-form-item label="是否上传照片">
             <el-select v-model="formSearch.hasPhoto" class="input">
-              <el-option label="未选择" value="ALL"> </el-option>
+              <el-option label="未选择" value="UNDEFINED"> </el-option>
               <el-option label="是" value="TRUE"> </el-option>
               <el-option label="否" value="FALSE"> </el-option>
             </el-select>
@@ -482,7 +482,7 @@ export default {
         studentCode: "",
         identityNumber: "",
         enable: "",
-        hasPhoto: "ALL"
+        hasPhoto: "UNDEFINED"
       },
       selectedStuIds: [],
       statusList: [
@@ -664,7 +664,7 @@ export default {
       this.formSearch.studentCode = "";
       this.formSearch.identityNumber = "";
       this.formSearch.enable = "";
-      this.formSearch.hasPhoto = "ALL";
+      this.formSearch.hasPhoto = "UNDEFINED";
     },
     resetPageAndSearchForm() {
       this.currentPage = 1;

+ 1 - 6
src/modules/oe/views/absent.vue

@@ -38,12 +38,7 @@
           >
             <el-table-column sortable label="课程" prop="courseName">
             </el-table-column>
-            <el-table-column
-              width="103"
-              sortable
-              label="课程层次"
-              prop="courseLevel"
-            >
+            <el-table-column sortable label="课程层次" prop="courseLevel">
             </el-table-column>
             <el-table-column sortable label="学习中心" prop="orgName">
             </el-table-column>

+ 62 - 10
src/modules/oe/views/alreadyAudited.vue

@@ -125,37 +125,89 @@
             </el-table-column>
             <el-table-column sortable label="姓名" prop="studentName">
             </el-table-column>
-            <el-table-column sortable label="身份证号" prop="identityNumber">
+            <el-table-column
+              sortable
+              label="身份证号"
+              prop="identityNumber"
+              width="120"
+            >
             </el-table-column>
-            <el-table-column sortable label="学号" prop="studentCode">
+            <el-table-column
+              sortable
+              label="学号"
+              prop="studentCode"
+              width="120"
+            >
             </el-table-column>
-            <el-table-column sortable label="课程" prop="courseName">
+            <el-table-column
+              sortable
+              label="课程"
+              prop="courseName"
+              width="120"
+            >
             </el-table-column>
-            <el-table-column sortable label="课程层次" prop="courseLevel">
+            <el-table-column
+              sortable
+              label="课程层次"
+              prop="courseLevel"
+              width="120"
+            >
             </el-table-column>
-            <el-table-column sortable label="校验次数" prop="faceTotalCount">
+            <el-table-column
+              sortable
+              label="校验次数"
+              prop="faceTotalCount"
+              width="120"
+            >
             </el-table-column>
-            <el-table-column sortable label="成功次数" prop="faceSuccessCount">
+            <el-table-column
+              sortable
+              label="成功次数"
+              prop="faceSuccessCount"
+              width="120"
+            >
             </el-table-column>
             <el-table-column
               sortable
               label="陌生人记录"
               prop="faceStrangerCount"
+              width="120"
             >
             </el-table-column>
             <el-table-column
               sortable
               label="人脸识别成功率(%)"
               prop="faceSuccessPercent"
+              width="180"
             >
             </el-table-column>
-            <el-table-column sortable label="考试次数" prop="examOrder">
+            <el-table-column
+              sortable
+              label="考试次数"
+              prop="examOrder"
+              width="120"
+            >
             </el-table-column>
-            <el-table-column sortable label="审核说明" prop="disciplineType">
+            <el-table-column
+              sortable
+              label="审核说明"
+              prop="disciplineType"
+              width="120"
+            >
             </el-table-column>
-            <el-table-column sortable label="审核结果" prop="status">
+            <el-table-column
+              sortable
+              label="审核结果"
+              prop="status"
+              width="120"
+            >
             </el-table-column>
-            <el-table-column sortable label="审核人" prop="auditUserName">
+            <el-table-column
+              sortable
+              label="审核人"
+              prop="auditUserName"
+              width="120"
+            >
             </el-table-column>
           </el-table>
           <div class="block pull-right">

+ 9 - 0
src/modules/oe/views/awaitingAudit.vue

@@ -188,6 +188,7 @@
               sortable
               label="身份证号"
               prop="identityNumber"
+              width="120"
             ></el-table-column>
             <el-table-column
               sortable
@@ -198,41 +199,49 @@
               sortable
               label="学习中心"
               prop="orgName"
+              width="120"
             ></el-table-column>
             <el-table-column
               sortable
               label="课程"
               prop="courseName"
+              width="150"
             ></el-table-column>
             <el-table-column
               sortable
               label="课程层次"
               prop="courseLevel"
+              width="120"
             ></el-table-column>
             <el-table-column
               sortable
               label="校验次数"
               prop="faceTotalCount"
+              width="120"
             ></el-table-column>
             <el-table-column
               sortable
               label="成功次数"
               prop="faceSuccessCount"
+              width="120"
             ></el-table-column>
             <el-table-column
               sortable
               label="陌生人记录"
               prop="faceStrangerCount"
+              width="120"
             ></el-table-column>
             <el-table-column
               sortable
               label="人脸识别成功率(%)"
               prop="faceSuccessPercent"
+              width="180"
             ></el-table-column>
             <el-table-column
               sortable
               label="人脸真实性比率(%)"
               prop="baiduFaceLivenessSuccessPercent"
+              width="180"
             ></el-table-column>
             <el-table-column
               :context="_self"

+ 6 - 4
src/modules/oe/views/captureDetail.vue

@@ -13,22 +13,24 @@
             </el-col>
             <el-col :span="8" style="text-align: right;">
               <el-button
+                size="small"
                 v-if="showAudit"
                 type="success"
                 icon="el-icon-success"
-                circle
                 title="通过"
                 @click="auditPass"
-              ></el-button>
+                >通过</el-button
+              >
 
               <el-button
+                size="small"
                 v-if="showAudit"
                 type="danger"
                 icon="el-icon-error"
                 title="不通过"
-                circle
                 @click="openAuditDialog"
-              ></el-button>
+                >不通过</el-button
+              >
               <el-button
                 size="small"
                 icon="el-icon-back"

+ 95 - 19
src/modules/oe/views/examDetail.vue

@@ -95,7 +95,7 @@
             :data="tableData"
             border
           >
-            <el-table-column fixed label="考试ID">
+            <el-table-column label="考试ID" width="120">
               <template slot-scope="scope">
                 <el-button
                   v-show="currentPagePrivileges.SNAPSHOT_DETAILS"
@@ -108,45 +108,121 @@
                 </span>
               </template>
             </el-table-column>
-            <el-table-column fixed sortable label="学习中心" prop="orgName">
+            <el-table-column
+              sortable
+              label="学习中心"
+              prop="orgName"
+              width="120"
+            >
             </el-table-column>
-            <el-table-column fixed sortable label="姓名" prop="studentName">
+            <el-table-column
+              sortable
+              label="姓名"
+              prop="studentName"
+              width="120"
+            >
             </el-table-column>
-            <el-table-column sortable label="身份证号" prop="identityNumber">
+            <el-table-column
+              sortable
+              label="身份证号"
+              prop="identityNumber"
+              width="120"
+            >
             </el-table-column>
-            <el-table-column sortable label="学号" prop="studentCode">
+            <el-table-column
+              sortable
+              label="学号"
+              prop="studentCode"
+              width="120"
+            >
             </el-table-column>
-            <el-table-column sortable label="课程" prop="courseNameAndCode">
+            <el-table-column
+              sortable
+              label="课程"
+              prop="courseNameAndCode"
+              width="120"
+            >
             </el-table-column>
-            <el-table-column sortable label="课程层次" prop="courseLevel">
+            <el-table-column
+              sortable
+              label="课程层次"
+              prop="courseLevel"
+              width="120"
+            >
             </el-table-column>
-            <el-table-column sortable label="年级" prop="grade">
+            <el-table-column sortable label="年级" prop="grade" width="120">
             </el-table-column>
-            <el-table-column sortable label="学生电话" prop="phone">
+            <el-table-column sortable label="学生电话" prop="phone" width="120">
             </el-table-column>
-            <el-table-column sortable label="采集人" prop="infoCollector">
+            <el-table-column
+              sortable
+              label="采集人"
+              prop="infoCollector"
+              width="120"
+            >
             </el-table-column>
-            <el-table-column sortable label="考试次数" prop="examOrder">
+            <el-table-column
+              sortable
+              label="考试次数"
+              prop="examOrder"
+              width="120"
+            >
             </el-table-column>
-            <el-table-column sortable label="开考时间" prop="paperStartTime">
+            <el-table-column
+              sortable
+              label="开考时间"
+              prop="paperStartTime"
+              width="120"
+            >
             </el-table-column>
-            <el-table-column sortable label="交卷时间" prop="paperSubmitTime">
+            <el-table-column
+              sortable
+              label="交卷时间"
+              prop="paperSubmitTime"
+              width="120"
+            >
             </el-table-column>
-            <el-table-column sortable label="持续时间" prop="examTime">
+            <el-table-column
+              sortable
+              label="持续时间"
+              prop="examTime"
+              width="120"
+            >
             </el-table-column>
             <el-table-column
               sortable
-              label="校验成功率"
+              label="校验成功率(%)"
               prop="faceSuccessPercent"
+              width="150"
             >
             </el-table-column>
-            <el-table-column sortable label="续考次数" prop="continuedCount">
+            <el-table-column
+              sortable
+              label="续考次数"
+              prop="continuedCount"
+              width="120"
+            >
             </el-table-column>
-            <el-table-column sortable label="卷面总分" prop="paperTotalScore">
+            <el-table-column
+              sortable
+              label="卷面总分"
+              prop="paperTotalScore"
+              width="120"
+            >
             </el-table-column>
-            <el-table-column sortable label="是否违纪" prop="isIllegality">
+            <el-table-column
+              sortable
+              label="是否违纪"
+              prop="isIllegality"
+              width="120"
+            >
             </el-table-column>
-            <el-table-column sortable label="是否提交" prop="isSubmit">
+            <el-table-column
+              sortable
+              label="是否提交"
+              prop="isSubmit"
+              width="120"
+            >
             </el-table-column>
             <el-table-column
               fixed="right"

+ 65 - 15
src/modules/oe/views/examScheduling.vue

@@ -100,31 +100,74 @@
             :data="tableData"
             border
           >
-            <el-table-column sortable label="学习中心" prop="orgName">
-            </el-table-column>
-            <el-table-column sortable label="姓名" prop="studentName">
+            <el-table-column
+              sortable
+              label="学习中心"
+              prop="orgName"
+              width="120"
+            >
             </el-table-column>
-            <el-table-column sortable label="身份证号" prop="identityNumber">
+            <el-table-column
+              sortable
+              label="姓名"
+              prop="studentName"
+              width="120"
+            >
             </el-table-column>
-            <el-table-column sortable label="学号" prop="studentCode">
+            <el-table-column
+              sortable
+              label="身份证号"
+              prop="identityNumber"
+              width="120"
+            >
             </el-table-column>
-            <el-table-column sortable label="课程" prop="courseName">
+            <el-table-column
+              sortable
+              label="学号"
+              prop="studentCode"
+              width="120"
+            >
             </el-table-column>
-            <el-table-column sortable label="课程层次" prop="courseLevel">
+            <el-table-column
+              sortable
+              label="课程"
+              prop="courseName"
+              width="120"
+            >
             </el-table-column>
-            <el-table-column sortable label="专业" prop="specialtyName">
+            <el-table-column
+              sortable
+              label="课程层次"
+              prop="courseLevel"
+              width="120"
+            >
             </el-table-column>
-            <el-table-column sortable label="已考次数" prop="normalExamTimes">
+            <el-table-column
+              sortable
+              label="专业"
+              prop="specialtyName"
+              width="120"
+            >
             </el-table-column>
-            <el-table-column sortable label="学生电话" prop="phone">
+            <el-table-column
+              sortable
+              label="已考次数"
+              prop="normalExamTimes"
+              width="120"
+            >
             </el-table-column>
-            <el-table-column sortable label="年级" prop="grade">
+            <el-table-column sortable label="学生电话" prop="phone" width="120">
             </el-table-column>
-            <el-table-column sortable label="采集人" prop="infoCollector">
+            <el-table-column sortable label="年级" prop="grade" width="120">
             </el-table-column>
-            <el-table-column sortable label="采集人1" prop="canUpload">
+            <el-table-column
+              sortable
+              label="采集人"
+              prop="infoCollector"
+              width="120"
+            >
             </el-table-column>
-            <el-table-column fixed="right" sortable label="完成状态">
+            <el-table-column sortable label="完成状态" width="120">
               <template slot-scope="scope">
                 <span>
                   <el-tag> {{ scope.row.finishedStatus }} </el-tag>
@@ -412,7 +455,7 @@ export default {
                   }
                 )
                 .then(response => {
-                  if (response.data) {
+                  if (response.data && response.data.byteLength > 0) {
                     var blob = new Blob([response.data], {
                       type: "application/zip"
                     });
@@ -426,6 +469,13 @@ export default {
                     a.target = "_blank";
                     a.click();
                     URL.revokeObjectURL(url);
+                  } else {
+                    this.$notify({
+                      title: "提示",
+                      message: "无相关文件",
+                      type: "error",
+                      duration: 2000
+                    });
                   }
                   this.loading = false;
                 })

+ 20 - 8
src/modules/oe/views/examSummary.vue

@@ -271,6 +271,7 @@ export default {
             this.buildLine(response.data);
           } else {
             this.courseProgressList = [];
+            this.lineOptions = {};
           }
         });
     },
@@ -293,13 +294,18 @@ export default {
           }
         });
     },
-    changeExam() {
-      this.getPieData();
+    changeExam(examId) {
+      var exam = this.examList.filter(item => {
+        return item.id == examId;
+      })[0];
+      this.getPieData(exam.examType);
       this.getCourses();
       this.getOrgExamInfos();
       this.getCourseProgress();
     },
-    getPieData() {
+    getPieData(examType) {
+      var completedWord = examType == "ONLINE" ? "已完成:" : "已抽题:";
+      var noCompletedWord = examType == "ONLINE" ? "未完成:" : "未抽题:";
       if (!this.examId) {
         return;
       }
@@ -313,12 +319,18 @@ export default {
           var optionData = {
             title: "考试人次:" + (resp.finished + resp.unFinished),
             legendData: [
-              "未完成:" + resp.unFinished,
-              "已完成:" + resp.finished
+              noCompletedWord + resp.unFinished,
+              completedWord + resp.finished
             ],
             seriesData: [
-              { name: "未完成:" + resp.unFinished, value: resp.unFinished },
-              { name: "已完成:" + resp.finished, value: resp.finished }
+              {
+                name: noCompletedWord + resp.unFinished,
+                value: resp.unFinished
+              },
+              {
+                name: completedWord + resp.finished,
+                value: resp.finished
+              }
             ]
           };
           this.buildPieOptions(optionData);
@@ -349,7 +361,7 @@ export default {
             name: "",
             type: "pie",
             radius: "50%",
-            center: ["30%", "60%"],
+            center: ["35%", "60%"],
             data: data.seriesData,
             itemStyle: {
               emphasis: {

+ 45 - 8
src/modules/oe/views/illegalityNameList.vue

@@ -76,37 +76,74 @@
               </template>
             </el-table-column>
             <el-table-column
-              width="80"
+              width="120"
               sortable
               label="姓名"
               prop="studentName"
             >
             </el-table-column>
-            <el-table-column sortable label="身份证号" prop="identityNumber">
+            <el-table-column
+              sortable
+              label="身份证号"
+              prop="identityNumber"
+              width="120"
+            >
             </el-table-column>
-            <el-table-column sortable label="学号" prop="studentCode">
+            <el-table-column
+              sortable
+              label="学号"
+              prop="studentCode"
+              width="120"
+            >
             </el-table-column>
-            <el-table-column sortable label="课程" prop="courseName">
+            <el-table-column
+              sortable
+              label="课程"
+              prop="courseName"
+              width="120"
+            >
             </el-table-column>
-            <el-table-column sortable label="课程层次" prop="courseLevel">
+            <el-table-column
+              sortable
+              label="课程层次"
+              prop="courseLevel"
+              width="120"
+            >
             </el-table-column>
-            <el-table-column sortable label="校验次数" prop="faceTotalCount">
+            <el-table-column
+              sortable
+              label="校验次数"
+              prop="faceTotalCount"
+              width="120"
+            >
             </el-table-column>
-            <el-table-column sortable label="成功次数" prop="faceSuccessCount">
+            <el-table-column
+              sortable
+              label="成功次数"
+              prop="faceSuccessCount"
+              width="120"
+            >
             </el-table-column>
             <el-table-column
               sortable
               label="陌生人记录"
               prop="faceStrangerCount"
+              width="150"
             >
             </el-table-column>
             <el-table-column
               sortable
               label="成功率(%)"
               prop="faceSuccessPercent"
+              width="150"
             >
             </el-table-column>
-            <el-table-column sortable label="违纪类型" prop="disciplineType">
+            <el-table-column
+              sortable
+              label="违纪类型"
+              prop="disciplineType"
+              width="120"
+            >
             </el-table-column>
           </el-table>
           <div class="block pull-right">

+ 74 - 14
src/modules/oe/views/scoreStatistics.vue

@@ -65,38 +65,98 @@
             :data="tableData"
             border
           >
-            <el-table-column fixed sortable label="学习中心" prop="orgName">
+            <el-table-column
+              sortable
+              label="学习中心"
+              prop="orgName"
+              width="120"
+            >
             </el-table-column>
-            <el-table-column fixed sortable label="姓名" prop="studentName">
+            <el-table-column
+              sortable
+              label="姓名"
+              prop="studentName"
+              width="120"
+            >
             </el-table-column>
             <el-table-column
-              fixed
               sortable
               label="身份证号"
               prop="identityNumber"
+              width="120"
             >
             </el-table-column>
-            <el-table-column sortable label="学号" prop="studentCode">
+            <el-table-column
+              sortable
+              label="学号"
+              prop="studentCode"
+              width="120"
+            >
             </el-table-column>
-            <el-table-column sortable label="课程" prop="courseNameAndCode">
+            <el-table-column
+              sortable
+              label="课程"
+              prop="courseNameAndCode"
+              width="120"
+            >
             </el-table-column>
-            <el-table-column sortable label="课程层次" prop="courseLevel">
+            <el-table-column
+              sortable
+              label="课程层次"
+              prop="courseLevel"
+              width="120"
+            >
             </el-table-column>
-            <el-table-column sortable label="年级" prop="grade">
+            <el-table-column sortable label="年级" prop="grade" width="120">
             </el-table-column>
-            <el-table-column sortable label="专业" prop="specialtyName">
+            <el-table-column
+              sortable
+              label="专业"
+              prop="specialtyName"
+              width="120"
+            >
             </el-table-column>
-            <el-table-column sortable label="违纪次数" prop="disciplineCount">
+            <el-table-column
+              sortable
+              label="违纪次数"
+              prop="disciplineCount"
+              width="120"
+            >
             </el-table-column>
-            <el-table-column sortable label="正常交卷次数" prop="submitCount">
+            <el-table-column
+              sortable
+              label="正常交卷次数"
+              prop="submitCount"
+              width="150"
+            >
             </el-table-column>
-            <el-table-column sortable label="剩余考试次数" prop="leftExamTimes">
+            <el-table-column
+              sortable
+              label="剩余考试次数"
+              prop="leftExamTimes"
+              width="150"
+            >
             </el-table-column>
-            <el-table-column sortable label="是否缺考" prop="isAbsent">
+            <el-table-column
+              sortable
+              label="是否缺考"
+              prop="isAbsent"
+              width="120"
+            >
             </el-table-column>
-            <el-table-column sortable label="最终成绩" prop="finalExamScore">
+            <el-table-column
+              sortable
+              label="最终成绩"
+              prop="finalExamScore"
+              width="120"
+            >
             </el-table-column>
-            <el-table-column sortable label="成绩统计时间" prop="startTime">
+            <el-table-column
+              sortable
+              label="成绩统计时间"
+              prop="startTime"
+              width="155"
+            >
             </el-table-column>
           </el-table>
           <div class="block pull-right">

BIN
src/modules/portal/assets/images/login_footer_logo.jpg


BIN
src/modules/portal/assets/images/login_main_bg_full.png


BIN
src/modules/portal/assets/images/login_main_left_tree.png


BIN
src/modules/portal/assets/images/new_login_logo.png


+ 1 - 1
src/modules/portal/routes/routes.js

@@ -1,7 +1,7 @@
 import Login from "../views/Login.vue";
 import Access from "../views/Access.vue";
 import Home from "../views/home/Home.vue";
-import HomeMain from "../views/home/HomeMain.vue";
+import HomeMain from "../views/home/main/HomeMain.vue";
 import Component404 from "../views/Component404.vue";
 
 export default [

+ 21 - 5
src/modules/portal/views/home/Home.vue

@@ -8,6 +8,10 @@
             style="display: inline-block; font-size: 20px; line-height: 48px; width: 100%; text-decoration-line: none"
             title="回到主页"
           >
+            <img
+              src="./icon.png"
+              style="margin-bottom: 2px; line-height: 48px; display: inline-block"
+            />
             云平台主页
           </router-link>
         </el-menu-item>
@@ -26,7 +30,12 @@
             {{ user.displayName }}
           </span>
         </el-menu-item>
-        <el-menu-item index="2" style="float: right;" title="机构名称">
+        <el-menu-item
+          index="2"
+          class="navbar-group-item"
+          style="float: right;"
+          title="机构名称"
+        >
           <v-icon name="users" /> {{ user.rootOrgName }}
         </el-menu-item>
       </el-menu>
@@ -266,10 +275,17 @@ export default {
   color: white !important;
 }
 
-/* .el-menu >>> .el-menu--horizontal > .el-menu-item:not(.is-disabled):focus, */
-/* .el-menu >>> .el-menu--horizontal > .el-menu-item:not(.is-disabled):hover {
-  background-color: #000 !important;
-} */
+.el-menu >>> .navbar-group-item.is-active.el-menu-item:focus {
+  color: none !important;
+}
+
+.el-menu >>> .navbar-group-item.el-menu-item:hover,
+.el-menu >>> .navbar-group-item.el-menu-item:focus {
+  color: white !important;
+  background-color: transparent !important;
+  cursor: unset;
+  border-bottom: none;
+}
 
 body > .el-container {
   margin-bottom: 40px;

+ 0 - 106
src/modules/portal/views/home/HomeMain.vue

@@ -1,106 +0,0 @@
-<template>
-  <el-main style="display: flex; align-items: center; margin-bottom: 20px;">
-    <div class="main-content">
-      <div
-        class="module-card"
-        v-for="menu in menuList.filter(m => m.parentId === null)"
-        :key="menu.id"
-        @click="() => $router.push('/' + menu.ext4 + '/tips')"
-      >
-        {{ menu.name }}
-      </div>
-    </div>
-  </el-main>
-</template>
-
-<script>
-import { mapState } from "vuex";
-import { CORE_API } from "@/constants/constants";
-
-export default {
-  name: "HomeMain",
-  data() {
-    return {
-      menuList: []
-    };
-  },
-  components: {},
-  computed: {
-    ...mapState({ user: state => state.user })
-  },
-  methods: {
-    async getUserPrivileges(groupCode) {
-      var url = CORE_API + "/rolePrivilege/getUserPrivileges";
-      const params = new URLSearchParams();
-      params.append("groupCode", groupCode);
-      params.append("full", false);
-      const res = await this.$httpWithMsg.post(url, params, {
-        headers: { "content-type": "application/x-www-form-urlencoded" }
-      });
-
-      return res.data;
-    }
-  },
-  async created() {
-    this.menuList = await this.getUserPrivileges("PORTAL_MENUS");
-  }
-};
-</script>
-
-<style scoped>
-.el-main {
-  background-color: #e9eef3;
-  color: #333;
-  text-align: center;
-  line-height: 60px;
-}
-
-.main-content {
-  display: flex;
-  flex-direction: row;
-  flex-wrap: wrap;
-  justify-content: center;
-  align-items: center;
-  justify-items: center;
-
-  /* min-width: 100%; */
-
-  /* height: 100%; */
-}
-
-.module-card {
-  width: 200px;
-  height: 150px;
-  margin-bottom: 50px;
-  margin-right: 20px;
-  cursor: pointer;
-  background-color: white;
-  display: flex;
-  /* justify-items: center; */
-  align-items: center;
-  justify-content: space-around;
-
-  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.12), 0 1px 2px rgba(0, 0, 0, 0.24);
-  transition: all 0.3s cubic-bezier(0.25, 0.8, 0.25, 1);
-}
-
-.module-card:hover {
-  box-shadow: 0 14px 28px rgba(0, 0, 0, 0.25), 0 10px 10px rgba(0, 0, 0, 0.22);
-
-  font-size: 30px;
-  /* color: #fff; */
-  text-align: center;
-  /* animation: glow 1s ease-in-out infinite alternate; */
-}
-
-/* @keyframes glow {
-  from {
-    text-shadow: 0 0 10px #fff, 0 0 20px #fff, 0 0 30px #e60073,
-      0 0 40px #e60073, 0 0 50px #e60073, 0 0 60px #e60073, 0 0 70px #e60073;
-  }
-  to {
-    text-shadow: 0 0 20px #fff, 0 0 30px #ff4da6, 0 0 40px #ff4da6,
-      0 0 50px #ff4da6, 0 0 60px #ff4da6, 0 0 70px #ff4da6, 0 0 80px #ff4da6;
-  }
-} */
-</style>

+ 1 - 1
src/modules/portal/views/home/HomeSide.vue

@@ -162,7 +162,7 @@ export default {
         part = this.menuList.find(v => v.id === part.parentId);
         currentPaths.unshift(part.name);
       }
-      console.log(currentPaths);
+      // console.log(currentPaths);
       this.UPDATE_CURRENT_PATHS(currentPaths);
     }
   },

BIN
src/modules/portal/views/home/icon.png


+ 181 - 0
src/modules/portal/views/home/main/HomeMain.vue

@@ -0,0 +1,181 @@
+<template>
+  <el-main style="display: flex; align-items: center; margin-bottom: 20px;">
+    <el-row width="100vw">
+      <el-col
+        :span="11"
+        :offset="1"
+        v-for="(menu, index) in menuList.filter(m => m.parentId === null)"
+        :key="menu.id"
+      >
+        <div
+          :class="['module-card', index % 2 ? 'float-left' : 'float-right']"
+          @click="() => $router.push('/' + menu.ext4 + '/tips')"
+        >
+          <div>
+            <img :class="['module-image', menu.ext4 + '-main-module']" />
+          </div>
+          <div
+            class="align-self-left d-flex d-flex flex-column align-items-start module-desc"
+          >
+            <div class="h4">{{ menu.name }}</div>
+            <div style="width: 400px; font-size: 14px; text-align: left;">
+              {{ moduleDesc[menu.ext4] && moduleDesc[menu.ext4].detail }}
+            </div>
+          </div>
+        </div>
+      </el-col>
+    </el-row>
+  </el-main>
+</template>
+
+<script>
+const moduleDesc = {
+  basic: {
+    detail: "包括学习中心查询、课程查询、用户查询"
+  },
+  examwork: {
+    detail: "包括安排考试、考试课程、学生档案"
+  },
+  questions: {
+    detail: "包括试卷导入、卷库组成、考试用卷绑定"
+  },
+  oe: {
+    detail: "包括考试过程监考、考试明细查询、考试完成进度查询"
+  },
+  marking: {
+    detail: "包括评卷进度查询、评卷员工作量核算、评卷结果检查"
+  },
+  print: {
+    detail: "记录线下纸笔考试数码印刷准确数量与实施过程"
+  }
+};
+
+import { mapState } from "vuex";
+import { CORE_API } from "@/constants/constants";
+
+export default {
+  name: "HomeMain",
+  data() {
+    return {
+      moduleDesc: moduleDesc,
+      menuList: []
+    };
+  },
+  components: {},
+  computed: {
+    ...mapState({ user: state => state.user })
+  },
+  methods: {
+    async getUserPrivileges(groupCode) {
+      var url = CORE_API + "/rolePrivilege/getUserPrivileges";
+      const params = new URLSearchParams();
+      params.append("groupCode", groupCode);
+      params.append("full", false);
+      const res = await this.$httpWithMsg.post(url, params, {
+        headers: { "content-type": "application/x-www-form-urlencoded" }
+      });
+
+      return res.data;
+    }
+  },
+  async created() {
+    this.menuList = await this.getUserPrivileges("PORTAL_MENUS");
+  }
+};
+</script>
+
+<style scoped>
+.el-main {
+  background-color: #e9eef3;
+  color: #333;
+  text-align: center;
+  line-height: 60px;
+}
+
+.main-content {
+  display: flex;
+  flex-direction: row;
+  flex-wrap: wrap;
+  justify-content: center;
+  align-items: center;
+  justify-items: center;
+}
+
+.module-card {
+  height: 120px;
+  margin-bottom: 50px;
+  margin-right: 20px;
+  cursor: pointer;
+  display: flex;
+  align-items: center;
+  justify-content: space-around;
+
+  transition: all 0.3s cubic-bezier(0.25, 0.8, 0.25, 1);
+}
+</style>
+
+<style scoped>
+.module-card:hover .h4 {
+  color: #4d7cc4 !important;
+}
+.module-card:hover div {
+  color: #65738b !important;
+}
+.module-image {
+  width: 90px;
+  height: 90px;
+  background-position: center;
+  background-repeat: no-repeat;
+  background-color: #4d7cc4;
+  border-top-left-radius: 20px 20px;
+  border-bottom-left-radius: 20px 20px;
+}
+.module-card:hover .module-image {
+  background-color: #55bfff;
+  box-shadow: 0px 5px 20px 0px #55bfff;
+  color: #4d7cc4 !important;
+}
+.module-desc {
+  background-color: white;
+  padding: 10px;
+}
+.module-card:hover .module-desc {
+  box-shadow: 7px 7px 10px 0px rgba(0, 0, 0, 0.1);
+}
+.basic-main-module {
+  background-image: url("./images/basic.png");
+}
+.module-card:hover .basic-main-module {
+  background-image: url("./images/basic-hover.png");
+}
+.examwork-main-module {
+  background-image: url("./images/examwork.png");
+}
+.module-card:hover .examwork-main-module {
+  background-image: url("./images/examwork-hover.png");
+}
+.questions-main-module {
+  background-image: url("./images/questions.png");
+}
+.module-card:hover .questions-main-module {
+  background-image: url("./images/questions-hover.png");
+}
+.oe-main-module {
+  background-image: url("./images/oe.png");
+}
+.module-card:hover .oe-main-module {
+  background-image: url("./images/oe-hover.png");
+}
+.marking-main-module {
+  background-image: url("./images/marking.png");
+}
+.module-card:hover .marking-main-module {
+  background-image: url("./images/marking-hover.png");
+}
+.print-main-module {
+  background-image: url("./images/print.png");
+}
+.module-card:hover .print-main-module {
+  background-image: url("./images/print-hover.png");
+}
+</style>

BIN
src/modules/portal/views/home/main/images/basic-hover.png


BIN
src/modules/portal/views/home/main/images/basic.png


BIN
src/modules/portal/views/home/main/images/examwork-hover.png


BIN
src/modules/portal/views/home/main/images/examwork.png


BIN
src/modules/portal/views/home/main/images/iconbg-hover.png


BIN
src/modules/portal/views/home/main/images/iconbg.png


BIN
src/modules/portal/views/home/main/images/marking-hover.png


BIN
src/modules/portal/views/home/main/images/marking.png


BIN
src/modules/portal/views/home/main/images/oe-hover.png


BIN
src/modules/portal/views/home/main/images/oe.png


BIN
src/modules/portal/views/home/main/images/print-hover.png


BIN
src/modules/portal/views/home/main/images/print.png


BIN
src/modules/portal/views/home/main/images/questions-hover.png


BIN
src/modules/portal/views/home/main/images/questions.png