Ver código fonte

样式整理与图表更新

zhangjie 3 anos atrás
pai
commit
35f6e8bee8
86 arquivos alterados com 1517 adições e 1198 exclusões
  1. BIN
      src/assets/images/bg-login.png
  2. BIN
      src/assets/images/icon-audit.png
  3. BIN
      src/assets/images/icon-back-white.png
  4. BIN
      src/assets/images/icon-back.png
  5. BIN
      src/assets/images/icon-base.png
  6. BIN
      src/assets/images/icon-box-check.png
  7. BIN
      src/assets/images/icon-box.png
  8. BIN
      src/assets/images/icon-cancel.png
  9. BIN
      src/assets/images/icon-close.png
  10. BIN
      src/assets/images/icon-code.png
  11. BIN
      src/assets/images/icon-course.png
  12. BIN
      src/assets/images/icon-create-paper.png
  13. BIN
      src/assets/images/icon-delete-white.png
  14. BIN
      src/assets/images/icon-delete.png
  15. BIN
      src/assets/images/icon-edit.png
  16. BIN
      src/assets/images/icon-error.png
  17. BIN
      src/assets/images/icon-export.png
  18. BIN
      src/assets/images/icon-home.png
  19. BIN
      src/assets/images/icon-import-white.png
  20. BIN
      src/assets/images/icon-import.png
  21. BIN
      src/assets/images/icon-logout.png
  22. BIN
      src/assets/images/icon-paper-book.png
  23. BIN
      src/assets/images/icon-pass.png
  24. BIN
      src/assets/images/icon-password.png
  25. BIN
      src/assets/images/icon-play.png
  26. BIN
      src/assets/images/icon-plus-white.png
  27. BIN
      src/assets/images/icon-question-book.png
  28. BIN
      src/assets/images/icon-question.png
  29. BIN
      src/assets/images/icon-radio-check.png
  30. BIN
      src/assets/images/icon-radio.png
  31. BIN
      src/assets/images/icon-right.png
  32. BIN
      src/assets/images/icon-save-white.png
  33. BIN
      src/assets/images/icon-save.png
  34. BIN
      src/assets/images/icon-search-white.png
  35. BIN
      src/assets/images/icon-set.png
  36. BIN
      src/assets/images/icon-share.png
  37. BIN
      src/assets/images/icon-split.png
  38. BIN
      src/assets/images/icon-star.png
  39. BIN
      src/assets/images/icon-user.png
  40. BIN
      src/assets/images/icon-username.png
  41. BIN
      src/assets/images/icon-users.png
  42. 0 0
      src/assets/images/system-icon.png
  43. 298 0
      src/assets/styles/base.scss
  44. 186 0
      src/assets/styles/element-ui-costom.scss
  45. 0 0
      src/assets/styles/element-variables.scss
  46. 184 0
      src/assets/styles/home.scss
  47. 170 0
      src/assets/styles/icons.scss
  48. 10 0
      src/assets/styles/index.scss
  49. 83 0
      src/assets/styles/login.scss
  50. 21 0
      src/assets/styles/pages.scss
  51. 31 0
      src/assets/styles/variables.scss
  52. 1 4
      src/main.js
  53. BIN
      src/modules/portal/assets/images/bg.jpg
  54. 78 227
      src/modules/portal/views/Login.vue
  55. 4 108
      src/modules/portal/views/home/Home.vue
  56. 2 57
      src/modules/portal/views/home/HomeSide.vue
  57. 1 20
      src/modules/portal/views/home/LinkTitles.vue
  58. 9 7
      src/modules/questions/views/BluePaperStructure.vue
  59. 16 4
      src/modules/questions/views/CheckDuplicateInfo.vue
  60. 11 5
      src/modules/questions/views/CheckDuplicateList.vue
  61. 14 15
      src/modules/questions/views/Course.vue
  62. 13 9
      src/modules/questions/views/CourseProperty.vue
  63. 1 0
      src/modules/questions/views/EditOtherQuestion.vue
  64. 73 75
      src/modules/questions/views/EditPaper.vue
  65. 70 78
      src/modules/questions/views/EditPaperPendingTrial.vue
  66. 67 42
      src/modules/questions/views/EditSelectQuestion.vue
  67. 7 6
      src/modules/questions/views/ExamPaperPendingTrial.vue
  68. 8 8
      src/modules/questions/views/ExportTemplate.vue
  69. 14 9
      src/modules/questions/views/GenPaper.vue
  70. 15 11
      src/modules/questions/views/GenPaperDetail.vue
  71. 13 9
      src/modules/questions/views/ImportPaper.vue
  72. 15 9
      src/modules/questions/views/ImportPaperInfo.vue
  73. 5 3
      src/modules/questions/views/InsertPaperStructure.vue
  74. 8 5
      src/modules/questions/views/InsertPaperStructureInfo.vue
  75. 47 35
      src/modules/questions/views/InsertPaperTitle.vue
  76. 9 8
      src/modules/questions/views/PaperPendingTrial.vue
  77. 2 1
      src/modules/questions/views/PaperStorage.vue
  78. 9 10
      src/modules/questions/views/PaperStructure.vue
  79. 0 9
      src/modules/questions/views/Question.vue
  80. 1 1
      src/modules/questions/views/QuestionInfo.vue
  81. 2 2
      src/modules/questions/views/School.vue
  82. 9 4
      src/modules/questions/views/ViewPaper.vue
  83. 8 12
      src/modules/questions/views/user.vue
  84. 1 1
      src/plugins/element.js
  85. 0 380
      src/styles/base.scss
  86. 1 24
      src/styles/global.css

BIN
src/assets/images/bg-login.png


BIN
src/assets/images/icon-audit.png


BIN
src/assets/images/icon-back-white.png


BIN
src/assets/images/icon-back.png


BIN
src/assets/images/icon-base.png


BIN
src/assets/images/icon-box-check.png


BIN
src/assets/images/icon-box.png


BIN
src/assets/images/icon-cancel.png


BIN
src/assets/images/icon-close.png


BIN
src/assets/images/icon-code.png


BIN
src/assets/images/icon-course.png


BIN
src/assets/images/icon-create-paper.png


BIN
src/assets/images/icon-delete-white.png


BIN
src/assets/images/icon-delete.png


BIN
src/assets/images/icon-edit.png


BIN
src/assets/images/icon-error.png


BIN
src/assets/images/icon-export.png


BIN
src/assets/images/icon-home.png


BIN
src/assets/images/icon-import-white.png


BIN
src/assets/images/icon-import.png


BIN
src/assets/images/icon-logout.png


BIN
src/assets/images/icon-paper-book.png


BIN
src/assets/images/icon-pass.png


BIN
src/assets/images/icon-password.png


BIN
src/assets/images/icon-play.png


BIN
src/assets/images/icon-plus-white.png


BIN
src/assets/images/icon-question-book.png


BIN
src/assets/images/icon-question.png


BIN
src/assets/images/icon-radio-check.png


BIN
src/assets/images/icon-radio.png


BIN
src/assets/images/icon-right.png


BIN
src/assets/images/icon-save-white.png


BIN
src/assets/images/icon-save.png


BIN
src/assets/images/icon-search-white.png


BIN
src/assets/images/icon-set.png


BIN
src/assets/images/icon-share.png


BIN
src/assets/images/icon-split.png


BIN
src/assets/images/icon-star.png


BIN
src/assets/images/icon-user.png


BIN
src/assets/images/icon-username.png


BIN
src/assets/images/icon-users.png


+ 0 - 0
src/modules/portal/views/home/icon.png → src/assets/images/system-icon.png


+ 298 - 0
src/assets/styles/base.scss

@@ -0,0 +1,298 @@
+/* reset */
+body,
+div,
+ul,
+ol,
+li,
+h1,
+h2,
+h3,
+h4,
+h5,
+h6,
+input,
+p,
+tr,
+th,
+td,
+span,
+a,
+header,
+footer,
+i {
+  margin: 0;
+  padding: 0;
+  box-sizing: border-box;
+  -webkit-tap-highlight-color: rgba(255, 255, 255, 0);
+}
+li {
+  list-style: none;
+}
+em,
+i,
+u {
+  font-style: normal;
+}
+input {
+  outline: none;
+  border: none;
+  background: rgba(245, 245, 245, 1);
+  font-family: $--font-family;
+}
+input::-webkit-input-placeholder,
+input::-moz-placeholder,
+input:-ms-input-placeholder,
+input:-moz-placeholder {
+  font-size: 12px;
+  font-weight: bold;
+  color: $--color-text-placeholder;
+}
+button,
+textarea {
+  font-family: $--font-family;
+}
+h1,
+h2,
+h3,
+h4,
+h5,
+h6 {
+  font-size: 100%;
+}
+fieldset,
+img {
+  border: 0;
+}
+abbr {
+  border: 0;
+  font-variant: normal;
+}
+a {
+  text-decoration: none;
+  color: inherit;
+  *color: $--color-text-secondary;
+}
+img {
+  vertical-align: middle;
+}
+
+/* common-style */
+input:-webkit-autofill {
+  box-shadow: 0 0 0 1000px white inset;
+}
+input[type="text"]:focus,
+input[type="password"]:focus,
+input[type="number"]:focus,
+textarea:focus {
+  box-shadow: 0 0 0 1000px white inset;
+}
+
+/* browse style */
+::-webkit-scrollbar {
+  width: 8px;
+  height: 8px;
+  background: transparent;
+}
+::-webkit-scrollbar-button {
+  display: none;
+}
+::-webkit-scrollbar-track {
+  background: transparent;
+}
+::-webkit-scrollbar-thumb {
+  border-radius: 8px;
+  background: #666;
+}
+::-webkit-scrollbar-corner {
+  background: transparent;
+}
+::-webkit-scrollbar-resizer {
+  background: transparent;
+}
+
+body {
+  font-family: $--font-family;
+  -webkit-font-smoothing: antialiased;
+  -moz-osx-font-smoothing: grayscale;
+  font-size: $--font-size-base;
+  color: $--color-text-primary;
+  background-color: $--color-background;
+}
+
+/* part */
+.part-box {
+  margin-bottom: 20px;
+  background-color: $--color-white;
+  border-radius: 20px;
+  padding: 30px;
+}
+.part-box-border {
+  border: 1px solid $--color-border;
+}
+
+.el-form.part-filter-form {
+  padding: 20px 0 5px;
+
+  /* element-ui*/
+  .el-form-item {
+    margin-bottom: 15px;
+    border: 1px solid $--color-border-dark;
+    border-radius: 5px;
+
+    &:last-child {
+      border: none;
+    }
+  }
+  .el-form-item__label {
+    margin: 0;
+    padding: 0 20px 0 15px;
+    color: $--color-text-secondary;
+    position: relative;
+
+    &::after {
+      content: "";
+      position: absolute;
+      height: 16px;
+      width: 4px;
+      right: 0;
+      top: 50%;
+      margin-top: -8px;
+      background-image: url(../images/icon-split.png);
+      background-size: 100% 100%;
+    }
+  }
+  .el-input__inner {
+    border: none;
+  }
+  .el-input.is-disabled {
+    .el-input__inner {
+      background-color: $--color-white;
+    }
+  }
+}
+
+.part-box-title {
+  font-size: 20px;
+  line-height: 1;
+  padding-bottom: 20px;
+  border-bottom: 1px solid $--color-border;
+  margin: 0;
+  font-weight: 500;
+}
+.part-box-header {
+  padding-bottom: 20px;
+  border-bottom: 1px solid $--color-border;
+  display: flex;
+  align-items: center;
+  justify-content: space-between;
+  .part-box-title {
+    font-size: 20px;
+    line-height: 1;
+    margin: 0;
+    padding: 0;
+    border: none;
+  }
+}
+.part-box-action {
+  display: flex;
+  align-items: center;
+  justify-content: space-between;
+  border-top: 1px solid $--color-border;
+  padding-top: 20px;
+}
+.part-page {
+  margin-top: 15px;
+  text-align: right;
+}
+.part-none {
+  padding: 100px;
+  font-size: 20px;
+  color: #aaa;
+  text-align: center;
+}
+// ckeditor
+.ckeditor {
+  line-height: 24px;
+  .cke_textarea_inline {
+    min-height: 36px;
+    border: 1px solid $--color-border-dark;
+    border-radius: 5px;
+    padding: 5px 10px;
+    outline: none;
+  }
+  .cke_focus {
+    border-color: $--color-text-secondary;
+  }
+
+  p {
+    margin: 0;
+  }
+}
+// other
+.box-justify {
+  display: flex;
+  align-items: center;
+  justify-content: space-between;
+}
+.padding-tb-20 {
+  padding: 20px 0;
+}
+.padding-none {
+  padding: 0 !important;
+}
+.margin-right-5 {
+  margin-right: 5px;
+}
+.margin-right-10 {
+  margin-right: 10px;
+}
+.margin-bottom-15 {
+  margin-bottom: 15px;
+}
+.margin-tb-20 {
+  margin: 20px 0;
+}
+.line-seperator {
+  border-bottom: 1px solid $--color-border;
+  margin: 15px 0;
+}
+.tiny-btn {
+  padding: 0;
+  height: 28px;
+  width: 28px;
+  line-height: 28px;
+  border-radius: 6px;
+  border: none;
+  background-color: $--color-border-dark;
+  font-weight: 600;
+  font-size: 14px;
+}
+.tips-info {
+  color: $--color-text-secondary;
+  height: 25px;
+  line-height: 25px;
+}
+.select_width {
+  width: 150px;
+}
+.search_width {
+  width: 150px;
+}
+.search_width_80px {
+  width: 80px;
+}
+.search_width_120px {
+  width: 120px;
+}
+.form_width {
+  width: 200px;
+}
+.dialog_input_width {
+  width: 200px;
+}
+.margin_top_10 {
+  margin-top: 10px;
+}
+.margin_left_10 {
+  margin-left: 10px;
+}

+ 186 - 0
src/assets/styles/element-ui-costom.scss

@@ -0,0 +1,186 @@
+// customize element-ui
+.side-dialog {
+  position: absolute;
+  margin: 0 !important;
+  top: 0;
+  right: 0;
+  height: 100%;
+  box-shadow: -20px 20px 20px 0px rgba(212, 220, 243, 0.3);
+  .el-dialog__header {
+    position: absolute;
+    top: 0;
+    left: 0;
+    right: 0;
+    padding: 20px;
+    &::after {
+      content: "";
+      position: absolute;
+      left: 20px;
+      right: 20px;
+      bottom: 0;
+      border-bottom: 1px solid $--color-border;
+    }
+  }
+  .el-dialog__body {
+    position: absolute;
+    left: 0;
+    right: 0;
+    top: 70px;
+    bottom: 80px;
+    padding: 20px;
+    overflow: auto;
+  }
+  .el-dialog__footer {
+    position: absolute;
+    bottom: 0;
+    left: 0;
+    right: 0;
+    padding: 20px;
+  }
+  // other
+  .el-form {
+    &-item {
+      margin-bottom: 16px;
+      &__label {
+        margin: 0;
+      }
+      &__error {
+        padding-top: 2px;
+      }
+    }
+  }
+}
+// el-form
+.el-form-linemess {
+  .el-form {
+    &-item {
+      margin-bottom: 5px;
+    }
+  }
+}
+// el-button
+.el-button--danger.is-plain,
+.el-button--success.is-plain,
+.el-button--primary.is-plain,
+.el-button--warning.is-plain {
+  color: $--color-text-primary;
+  background-color: #fcfcfd;
+  border-color: $--color-border-dark;
+
+  &.is-disabled {
+    color: #999 !important;
+    background-color: #fcfcfd !important;
+    border-color: $--color-border-dark !important;
+  }
+}
+.el-button--info {
+  color: $--color-white;
+  background: $--color-blue;
+  border: 1px solid $--color-blue;
+  &:hover,
+  &:focus {
+    color: $--color-white;
+    background: mix(#fff, $--color-blue, 20%);
+    border: 1px solid $--color-blue;
+  }
+}
+.el-button {
+  [class*="icon"] + span {
+    margin-left: 6px;
+  }
+
+  &.is-plain {
+    &:hover {
+      .icon {
+        filter: brightness(250%);
+      }
+    }
+  }
+  &.is-disabled {
+    .icon {
+      opacity: 0.5;
+    }
+    &:hover {
+      .icon {
+        filter: none;
+      }
+    }
+  }
+}
+.el-button + .el-upload,
+.el-upload + .el-button,
+.el-button + .el-dropdown,
+.el-dropdown + .el-button {
+  margin-left: 10px;
+}
+// .el-upload
+.el-upload {
+  &-list__item {
+    &.is-ready {
+      background-color: #f6f6fa;
+      color: #434555;
+      padding: 5px;
+    }
+    .el-icon-close {
+      top: 10px;
+    }
+    .el-icon-document {
+      color: $--color-danger;
+    }
+  }
+}
+// .el-message-box
+.el-message-box {
+  border-radius: 10px;
+  .el-message-box__header {
+    padding: 20px 20px 10px;
+  }
+  .el-message-box__content {
+    padding: 10px 30px;
+    min-height: 60px;
+  }
+  .el-message-box__status {
+    left: -5px;
+    font-size: 30px !important;
+  }
+}
+// .el-input-number
+.el-input-number--medium {
+  .el-input-number__increase,
+  .el-input-number__decrease {
+    height: 28px;
+    width: 28px;
+    line-height: 28px;
+    top: 4px;
+    border-radius: 6px;
+    border: none;
+    background-color: $--color-border-dark;
+    font-weight: 600;
+    font-size: 14px;
+    > i {
+      font-weight: 600;
+    }
+  }
+  .el-input-number__increase {
+    right: 4px;
+  }
+  .el-input-number__decrease {
+    left: 4px;
+  }
+}
+// .el-form
+.el-form {
+  &-item {
+    &__label {
+      color: $--color-text-regular;
+      font-weight: 500;
+    }
+  }
+}
+// .el-table
+.el-table {
+  color: $--color-text-primary;
+  .thead {
+    color: $--color-text-secondary;
+  }
+}

+ 0 - 0
src/styles/element-variables.scss → src/assets/styles/element-variables.scss


+ 184 - 0
src/assets/styles/home.scss

@@ -0,0 +1,184 @@
+.home {
+  position: absolute;
+  width: 100%;
+  height: 100%;
+  z-index: auto;
+
+  &::before {
+    content: "";
+    display: block;
+    position: absolute;
+    width: 700px;
+    height: 200px;
+    left: 200px;
+    z-index: 1;
+    background: $--color-primary;
+    border-bottom-left-radius: 140px;
+    border-top-right-radius: 80px;
+    transform: skew(15deg, 0);
+  }
+}
+.home-body {
+  position: absolute;
+  left: 0;
+  top: 70px;
+  right: 0;
+  bottom: 0;
+  overflow: auto;
+  z-index: 8;
+}
+.home-main {
+  position: relative;
+  padding: 0 20px 50px 260px;
+  min-height: 100%;
+}
+.home-header {
+  position: absolute;
+  height: 70px;
+  top: 0;
+  left: 240px;
+  right: 0;
+  z-index: 99;
+  overflow: hidden;
+  padding: 19px 20px;
+
+  display: flex;
+  align-items: center;
+  justify-content: space-between;
+}
+
+.header-menu {
+  font-size: 0;
+  margin: 0;
+}
+.header-menu-item {
+  list-style: none;
+  display: inline-block;
+  vertical-align: top;
+  font-size: 14px;
+  background: #fff;
+  line-height: 32px;
+  height: 32px;
+  min-width: 32px;
+  border-radius: 16px;
+  margin: 0 5px;
+  padding: 0 16px;
+  color: $--color-text-regular;
+  text-align: center;
+  cursor: pointer;
+  &:hover {
+    color: $--color-text-primary;
+    background-color: #fcfcfd;
+  }
+  > .icon {
+    margin-right: 5px;
+  }
+}
+.header-menu-org {
+  cursor: default;
+  &:hover {
+    background-color: #fff;
+  }
+}
+.header-menu-logout {
+  padding: 0;
+  > .icon {
+    margin-right: 0;
+  }
+
+  &:hover {
+    background-color: $--color-danger;
+    .icon {
+      filter: brightness(250%);
+    }
+  }
+}
+
+.home-footer {
+  position: absolute;
+  width: 100%;
+  height: 50px;
+  bottom: 0;
+  left: 0;
+  z-index: auto;
+  padding: 15px 0;
+  line-height: 20px;
+  text-align: center;
+  font-size: 13px;
+  color: #aaa;
+}
+// home-side
+.home-side {
+  position: fixed;
+  width: 240px;
+  left: 0;
+  top: 0;
+  bottom: 0;
+  z-index: 99;
+  overflow-y: auto;
+  overflow-x: hidden;
+  background: #fff;
+  border-top-right-radius: 32px;
+  border-bottom-right-radius: 32px;
+}
+.home-logo {
+  padding: 0 40px;
+  font-size: 20px;
+  line-height: 40px;
+  text-align: center;
+  a {
+    display: block;
+    padding: 30px 0;
+    border-bottom: 1px solid #eff0f5;
+  }
+  img {
+    display: block;
+    max-width: 160px;
+    height: 40px;
+  }
+}
+.el-menu-vertical-demo {
+  padding-top: 20px;
+  .el-submenu {
+    margin-bottom: 10px;
+  }
+  .el-submenu__title {
+    padding: 0 40px !important;
+    height: 50px;
+    line-height: 50px;
+    font-weight: 600;
+  }
+  .el-submenu .el-menu-item {
+    padding-left: 64px !important;
+    height: 40px;
+    line-height: 40px;
+  }
+  .el-submenu .el-menu-item.is-active {
+    font-weight: 600;
+  }
+  .el-submenu__icon-arrow {
+    right: 30px;
+  }
+}
+// link-title
+.breadcrumb-tips {
+  display: inline-block;
+  vertical-align: middle;
+  color: #fff;
+  i {
+    margin-top: -2px;
+    margin-right: 8px;
+  }
+}
+.breadcrumb-list {
+  display: inline-block;
+  vertical-align: middle;
+  color: #fff;
+
+  .el-breadcrumb__inner,
+  .el-breadcrumb__inner a,
+  .el-breadcrumb__inner.is-link,
+  .el-breadcrumb__item:last-child .el-breadcrumb__inner {
+    color: #fff;
+  }
+}

+ 170 - 0
src/assets/styles/icons.scss

@@ -0,0 +1,170 @@
+// icon
+@mixin icon-12 {
+  width: 12px;
+  height: 12px;
+  margin-top: -1px;
+}
+@mixin icon-14 {
+  width: 14px;
+  height: 14px;
+}
+.icon {
+  display: inline-block;
+  vertical-align: middle;
+  width: 16px;
+  height: 16px;
+  background-repeat: no-repeat;
+  background-size: 100% 100%;
+
+  &-user {
+    background-image: url(../images/icon-user.png);
+    width: 10px;
+    height: 12px;
+  }
+  &-users {
+    background-image: url(../images/icon-users.png);
+    width: 13px;
+    height: 12px;
+  }
+  &-logout {
+    background-image: url(../images/icon-logout.png);
+    @include icon-12;
+  }
+  &-home {
+    background-image: url(../images/icon-home.png);
+    width: 10px;
+    height: 10px;
+  }
+  // action
+  &-set {
+    background-image: url(../images/icon-set.png);
+    @include icon-12;
+  }
+  &-play {
+    background-image: url(../images/icon-play.png);
+    @include icon-12;
+  }
+  &-play {
+    background-image: url(../images/icon-play.png);
+    @include icon-12;
+  }
+  &-delete {
+    background-image: url(../images/icon-delete.png);
+    @include icon-12;
+  }
+  &-save {
+    background-image: url(../images/icon-save.png);
+    @include icon-12;
+  }
+  &-save-white {
+    background-image: url(../images/icon-save-white.png);
+    @include icon-12;
+  }
+  &-back {
+    background-image: url(../images/icon-back.png);
+    @include icon-12;
+  }
+  &-pass {
+    background-image: url(../images/icon-pass.png);
+    @include icon-12;
+  }
+  &-back-white {
+    background-image: url(../images/icon-back-white.png);
+    @include icon-12;
+  }
+  &-plus-white {
+    background-image: url(../images/icon-plus-white.png);
+    @include icon-12;
+  }
+  &-cancel {
+    background-image: url(../images/icon-cancel.png);
+    @include icon-12;
+  }
+  &-edit {
+    background-image: url(../images/icon-edit.png);
+    @include icon-12;
+  }
+  &-share {
+    background-image: url(../images/icon-share.png);
+    @include icon-12;
+  }
+  &-search-white {
+    background-image: url(../images/icon-search-white.png);
+    @include icon-12;
+  }
+  &-import {
+    background-image: url(../images/icon-import.png);
+    @include icon-12;
+  }
+  &-import-white {
+    background-image: url(../images/icon-import-white.png);
+    @include icon-12;
+  }
+  &-export {
+    background-image: url(../images/icon-export.png);
+    @include icon-12;
+  }
+  &-audit {
+    background-image: url(../images/icon-audit.png);
+    @include icon-12;
+  }
+  &-star {
+    background-image: url(../images/icon-star.png);
+    @include icon-12;
+  }
+  // login
+  &-username {
+    background-image: url(../images/icon-username.png);
+  }
+  &-password {
+    background-image: url(../images/icon-password.png);
+  }
+  &-code {
+    background-image: url(../images/icon-code.png);
+  }
+  // menu
+  &-base {
+    background-image: url(../images/icon-base.png);
+  }
+  &-course {
+    background-image: url(../images/icon-course.png);
+  }
+  &-create-paper {
+    background-image: url(../images/icon-create-paper.png);
+  }
+  &-question-book {
+    background-image: url(../images/icon-question-book.png);
+  }
+  &-paper-book {
+    background-image: url(../images/icon-paper-book.png);
+  }
+  &-question {
+    background-image: url(../images/icon-question.png);
+  }
+  // other
+  &-right {
+    background-image: url(../images/icon-right.png);
+  }
+  &-error {
+    background-image: url(../images/icon-error.png);
+  }
+  &-close {
+    background-image: url(../images/icon-close.png);
+  }
+  &-radio {
+    background-image: url(../images/icon-radio.png);
+    @include icon-14;
+  }
+  &-radio-check {
+    background-image: url(../images/icon-radio-check.png);
+    @include icon-14;
+  }
+  &-box {
+    background-image: url(../images/icon-box.png);
+    @include icon-14;
+  }
+  &-box-check {
+    background-image: url(../images/icon-box-check.png);
+    @include icon-14;
+  }
+}

+ 10 - 0
src/assets/styles/index.scss

@@ -0,0 +1,10 @@
+@import "./variables.scss";
+@import "./base.scss";
+@import "./icons.scss";
+@import "./element-ui-costom.scss";
+@import "./home.scss";
+
+@import "./login.scss";
+@import "./pages.scss";
+
+// @import "./adaptive.scss";

+ 83 - 0
src/assets/styles/login.scss

@@ -0,0 +1,83 @@
+.login {
+  width: 100vw;
+  height: 100vh;
+  background-color: #e9edf9;
+}
+.login-main {
+  position: absolute;
+  left: 50%;
+  top: 50%;
+  width: 1080px;
+  height: 680px;
+  transform: translate(-50%, -52%);
+  background-image: url("../images/bg-login.png");
+  background-size: cover;
+}
+.login-title {
+  position: absolute;
+  left: 156px;
+  top: 96px;
+  font-size: 46px;
+  font-weight: 500;
+  color: #ffffff;
+  line-height: 68px;
+  p {
+    margin: 0;
+  }
+}
+.login-footer {
+  position: absolute;
+  left: 156px;
+  bottom: 136px;
+  height: 20px;
+  font-size: 14px;
+  font-weight: 500;
+  color: #ffffff;
+  line-height: 20px;
+}
+.login-footer a {
+  color: #fff;
+}
+.login-body {
+  position: absolute;
+  width: 400px;
+  right: 156px;
+  top: 92px;
+  padding: 60px;
+  border-radius: 20px;
+  background-color: #fff;
+
+  &-title {
+    height: 34px;
+    line-height: 34px;
+    text-align: center;
+    font-size: 20px;
+    font-weight: 600;
+    margin-bottom: 40px;
+  }
+  .el-form-item:last-child {
+    margin: 0;
+  }
+  .el-form-item__error {
+    white-space: nowrap;
+  }
+  .el-input__inner {
+    height: 48px !important;
+    padding-top: 7px;
+    padding-bottom: 7px;
+    padding-left: 46px;
+  }
+  .el-input__prefix {
+    width: 16px;
+    height: 16px;
+    top: 16px;
+    left: 20px;
+    line-height: 16px;
+  }
+}
+.login-submit-btn {
+  width: 100%;
+  height: 54px;
+  box-shadow: 0px 20px 20px 0px rgba(254, 114, 61, 0.3);
+  font-size: 18px;
+}

+ 21 - 0
src/styles/pages.scss → src/assets/styles/pages.scss

@@ -457,6 +457,27 @@
     margin-bottom: 0;
   }
 }
+// question-edit
+.question-edit-option {
+  display: flex;
+  align-items: center;
+  justify-content: space-between;
+
+  .option-check {
+    width: 60px;
+    flex-grow: 0;
+    flex-shrink: 0;
+  }
+  .option-delete {
+    width: 60px;
+    flex-grow: 0;
+    flex-shrink: 0;
+    text-align: center;
+  }
+  .option-body {
+    flex-grow: 2;
+  }
+}
 // question-info
 .question-info {
   border: 1px solid #f0f2f6;

+ 31 - 0
src/assets/styles/variables.scss

@@ -0,0 +1,31 @@
+// text ------------------->
+$--color-text-primary: #393c4c !default;
+$--color-text-primary-dark: #313444 !default;
+$--color-text-regular: #6e7080 !default;
+$--color-text-secondary: #9a9dab !default;
+$--color-text-placeholder: #9a9dab !default;
+
+// status
+$--color-primary: #624fff !default;
+$--color-success: rgba(28, 208, 161, 1) !default;
+$--color-danger: #ff7240 !default;
+$--color-warning-lighter: rgba(253, 203, 90, 1) !default;
+$--color-danger: rgba(254, 108, 105, 1) !default;
+$--color-info: #909399 !default;
+$--color-blue: #29abff;
+$--color-white: #ffffff;
+$--color-dark: #21252b;
+// skin
+$--color-background: #e9edf9;
+// border
+$--color-border: #f0f2f6;
+$--color-border-dark: #e2e4ec;
+
+// size ------------------->
+$--font-size-base: 14px !default;
+$--font-size-medium: 16px !default;
+$--font-size-large: 18px !default;
+$--border-radius: 8px;
+
+$--font-family: "Helvetica Neue", Helvetica, "PingFang SC", "Hiragino Sans GB",
+  "Microsoft YaHei", Arial, sans-serif;

+ 1 - 4
src/main.js

@@ -10,10 +10,7 @@ import "./plugins/axios";
 import "./plugins/vueAwesome";
 import "./directives/directives.js";
 import "./filters/filters.js";
-import "./styles/bootstrap.scss";
-import "./styles/base.scss";
-import "./styles/global.css";
-import "./styles/pages.scss";
+import "./assets/styles/index.scss";
 
 Vue.config.productionTip = process.env.NODE_ENV !== "production";
 

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


+ 78 - 227
src/modules/portal/views/Login.vue

@@ -1,62 +1,55 @@
 <template>
-  <div class="bg">
+  <div class="login">
     <main class="login-main">
-      <!-- <img class="left_tree" src="../assets/images/login_main_left_tree.png" /> -->
-
-      <div class="logo-text">题库</div>
-      <div class="right_login">
-        <h1 style="font-size: 20px; color: #666">欢迎登录</h1>
-        <div class="username">
-          <v-icon
-            name="user"
-            scale="1.4"
-            style="padding: 5px 0px; z-index: 3"
-          />
-          <input
-            id="accountValue"
-            v-model="loginInfo.accountValue"
-            type="text"
-            placeholder="请输入账号"
-            @keyup.enter="login"
-            @change="nameChange"
-          />
-        </div>
-        <div class="password">
-          <v-icon
-            name="lock"
-            scale="1.4"
-            style="padding: 5px 0px; z-index: 3"
-          />
-          <input
-            id="password"
-            v-model="loginInfo.password"
-            type="password"
-            placeholder="请输入密码"
-            @keyup.enter="login"
-          />
-        </div>
-        <div class="smscode">
-          <v-icon
-            v-if="dialogVisible"
-            name="lock"
-            scale="1.4"
-            style="padding: 5px 0px; z-index: 3"
-          />
-          <input
-            v-if="dialogVisible"
-            id="smsCode"
-            v-model="loginInfo.smsCode"
-            type="text"
-            placeholder="请输入短信验证码"
-            @keyup.enter="login"
-          />
-        </div>
-        <button class="login-btn" @click="login">登 录</button>
+      <div class="login-title">
+        <p>欢迎登录</p>
+        <p>题库管理系统</p>
+      </div>
+      <div class="login-footer">
+        Copyright &copy; 2021 <a href="https://www.qmth.com.cn">启明泰和</a>.
+      </div>
+      <div class="login-body" @keyup.enter="submit">
+        <h1 class="login-body-title">题库管理系统</h1>
+        <el-form ref="loginForm" :model="loginInfo" :rules="loginRules">
+          <el-form-item prop="accountValue">
+            <el-input
+              v-model.trim="loginInfo.accountValue"
+              placeholder="请输入账号"
+              clearable
+            >
+              <i slot="prefix" class="icon icon-username"></i>
+            </el-input>
+          </el-form-item>
+          <el-form-item prop="password">
+            <el-input
+              v-model.trim="loginInfo.password"
+              type="password"
+              placeholder="请输入密码"
+              clearable
+            >
+              <i slot="prefix" class="icon icon-password"></i>
+            </el-input>
+          </el-form-item>
+          <el-form-item v-if="dialogVisible" prop="smsCode">
+            <el-input
+              v-model.trim="loginInfo.smsCode"
+              placeholder="请输入短信验证码"
+              clearable=""
+            >
+              <i slot="prefix" class="icon icon-code"></i>
+            </el-input>
+          </el-form-item>
+          <el-form-item>
+            <el-button
+              class="login-submit-btn"
+              type="danger"
+              :disabled="isSubmit"
+              @click="submit"
+              >登录</el-button
+            >
+          </el-form-item>
+        </el-form>
       </div>
-      <footer class="login-footer">
-        Copyright &copy; 2021
-        <a href="https://www.qmth.com.cn">启明泰和</a>.
-      </footer>
     </main>
   </div>
 </template>
@@ -69,9 +62,7 @@ import { QUESTION_API } from "@/constants/constants";
 export default {
   data() {
     return {
-      errorInfo: "",
-      title: "题库",
-      jwptCustomize: false,
+      isSubmit: false,
       dialogVisible: false,
       loginInfo: {
         rootOrgId: "",
@@ -81,6 +72,30 @@ export default {
         password: "",
         smsCode: null,
       },
+      loginRules: {
+        accountValue: [
+          {
+            required: true,
+            message: "请输入用户名",
+            trigger: "change",
+          },
+        ],
+        password: [
+          {
+            required: true,
+            pattern: /^[a-zA-Z0-9_]{6,20}$/,
+            message: "密码只能由数字、字母和下划线组成,长度6-20个字符",
+            trigger: "change",
+          },
+        ],
+        smsCode: [
+          {
+            required: true,
+            message: "请输入短信验证码",
+            trigger: "change",
+          },
+        ],
+      },
     };
   },
   watch: {
@@ -102,48 +117,10 @@ export default {
   },
   methods: {
     ...mapActions([USER_SIGNIN]),
-    nameChange() {
-      // this.dialogVisible = false;
-    },
-    checkAccountValue() {
-      this.errorInfo = "";
-      if (!this.loginInfo.accountValue) {
-        this.errorInfo += "账号不能为空!\n";
-      }
-      if (this.errorInfo) {
-        this.$notify({
-          showClose: true,
-          message: this.errorInfo,
-          type: "error",
-        });
-        return false;
-      }
-      return true;
-    },
+    async submit() {
+      const valid = await this.$refs.loginForm.validate().catch(() => {});
+      if (!valid) return;
 
-    checkPassword() {
-      this.errorInfo = "";
-      if (!this.loginInfo.password) {
-        this.errorInfo += "密码不能为空!\n";
-      }
-      if (this.errorInfo) {
-        this.$notify({
-          showClose: true,
-          message: this.errorInfo,
-          type: "error",
-        });
-        return false;
-      }
-      return true;
-    },
-
-    login() {
-      if (!this.checkAccountValue()) {
-        return;
-      }
-      if (!this.checkPassword()) {
-        return;
-      }
       var url = QUESTION_API + "/auth/login";
       this.$httpWithMsg
         .post(url, this.loginInfo)
@@ -165,134 +142,8 @@ export default {
     },
     loginWithSms() {
       this.dialogVisible = false;
-      this.login();
+      this.submit();
     },
   },
 };
 </script>
-
-<style scoped>
-.bg {
-  width: 100vw;
-  height: 100vh;
-  background-image: url("../assets/images/bg.jpg");
-  background-size: cover;
-}
-
-.qm-logo-text {
-  font-size: 36px;
-  font-weight: 700;
-  font-stretch: normal;
-  line-height: 36px;
-  letter-spacing: 0px;
-  margin-left: 40px;
-}
-
-.logo-text {
-  /* font-family: "Xingkai SC", "STXingkai", "KaiTi"; */
-  width: 100%;
-  height: 40px;
-  font-size: 40px;
-  margin-bottom: 30px;
-  font-weight: bold;
-  font-stretch: normal;
-  line-height: 48px;
-  letter-spacing: 0px;
-  color: #3968d7;
-  text-shadow: 0px 7px 4px rgba(77, 124, 196, 0.3);
-  text-align: center;
-  letter-spacing: 0.2em;
-}
-
-.login-main {
-  width: 100%;
-  height: 90vh;
-  display: flex;
-  flex-direction: column;
-  align-items: center;
-  justify-content: center;
-}
-
-.right_login {
-  width: 480px;
-  height: 330px;
-  background-color: #ffffff;
-  box-shadow: 0px 7px 20px 0px rgba(77, 124, 196, 0.1);
-  border-radius: 38px;
-  opacity: 0.8;
-  padding: 0 80px;
-}
-
-.right_login h1 {
-  text-align: center;
-  height: 20px;
-  font-size: 20px;
-  font-weight: normal;
-  font-stretch: normal;
-  line-height: 24px;
-  letter-spacing: 0px;
-  color: #666666;
-  margin: 30px 0;
-}
-
-.right_login .username {
-  display: flex;
-  align-items: center;
-  justify-items: center;
-}
-.right_login .password {
-  display: flex;
-  align-items: center;
-  justify-items: center;
-  margin-top: 10px;
-}
-.right_login .smscode {
-  height: 38px;
-  display: flex;
-  align-items: center;
-  justify-items: center;
-  margin-top: 10px;
-}
-
-.right_login input {
-  width: 100%;
-  padding: 5px 30px;
-  margin-left: -21px;
-  font-size: 16px;
-  border-radius: 10px;
-}
-
-.right_login input::placeholder {
-  font-size: 16px;
-  color: #000000;
-  opacity: 0.3;
-}
-
-.login-btn {
-  margin-top: 20px;
-  margin-bottom: 20px;
-  width: 100%;
-  background-color: #4d7cc4;
-  font-size: 25px;
-  color: #fff;
-  cursor: pointer;
-  border-radius: 27px;
-}
-
-.login-btn:hover {
-  box-shadow: 0 16px 29px rgba(29, 170, 240, 0.3);
-}
-
-.login-footer {
-  clear: both;
-  width: 240px;
-  height: 40px;
-  line-height: 40px;
-  background-color: #fff;
-  color: #999999;
-  margin: -20px auto;
-  text-align: center;
-  border-radius: 25px;
-  z-index: 3;
-}
-</style>

+ 4 - 108
src/modules/portal/views/home/Home.vue

@@ -8,21 +8,21 @@
       </div>
       <ul class="header-menu">
         <li class="header-menu-item header-menu-org" title="机构名称">
-          <v-icon name="users" /> {{ user.rootOrgName }}
+          <i class="icon icon-users"></i>{{ user.rootOrgName }}
         </li>
         <li
           class="header-menu-item header-menu-user"
           title="个人信息管理"
           @click="openUserDialog"
         >
-          <i class="el-icon-user-solid"></i> {{ user.displayName }}
+          <i class="icon icon-user"></i>{{ user.displayName }}
         </li>
         <li
           class="header-menu-item header-menu-logout"
           title="退出系统"
           @click="logout"
         >
-          <i class="el-icon-switch-button"></i>
+          <i class="icon icon-logout"></i>
         </li>
       </ul>
     </div>
@@ -138,7 +138,7 @@
         </el-row>
         <el-row>
           <el-form-item
-            ><span class="passWeakInfo"
+            ><span
               >*为保护您的账户安全,请重新录入新密码,以防泄露
             </span></el-form-item
           >
@@ -333,107 +333,3 @@ export default {
   },
 };
 </script>
-
-<style scoped>
-.home {
-  position: absolute;
-  width: 100%;
-  height: 100%;
-  z-index: auto;
-}
-.home::before {
-  content: "";
-  display: block;
-  position: absolute;
-  width: 700px;
-  height: 200px;
-  left: 200px;
-  z-index: 1;
-  background: #705eff;
-  border-bottom-left-radius: 140px;
-  border-top-right-radius: 80px;
-  transform: skew(15deg, 0);
-}
-.home-body {
-  position: absolute;
-  left: 0;
-  top: 70px;
-  right: 0;
-  bottom: 0;
-  overflow: auto;
-  z-index: 8;
-}
-.home-main {
-  position: relative;
-  padding: 0 20px 50px 260px;
-  min-height: 100%;
-}
-.home-header {
-  position: absolute;
-  height: 70px;
-  top: 0;
-  left: 240px;
-  right: 0;
-  z-index: 99;
-  overflow: hidden;
-  padding: 19px 20px;
-
-  display: flex;
-  align-items: center;
-  justify-content: space-between;
-}
-
-.header-menu {
-  font-size: 0;
-  margin: 0;
-}
-.header-menu-item {
-  list-style: none;
-  display: inline-block;
-  vertical-align: top;
-  font-size: 14px;
-  background: #fff;
-  line-height: 32px;
-  height: 32px;
-  min-width: 32px;
-  border-radius: 16px;
-  margin: 0 5px;
-  padding: 0 16px;
-  color: #6e7080;
-  text-align: center;
-  cursor: pointer;
-}
-.header-menu-item:hover {
-  color: #383b4a;
-  background-color: #fcfcfd;
-}
-.header-menu-org {
-  cursor: default;
-}
-.header-menu-org:hover {
-  background-color: #fff;
-}
-.header-menu-logout {
-  padding: 0;
-}
-.passWeakInfo {
-  color: blue !important;
-}
-.passWeakErr {
-  color: red !important;
-}
-
-.home-footer {
-  position: absolute;
-  width: 100%;
-  height: 50px;
-  bottom: 0;
-  left: 0;
-  z-index: auto;
-  padding: 15px 0;
-  line-height: 20px;
-  text-align: center;
-  font-size: 13px;
-  color: #aaa;
-}
-</style>

+ 2 - 57
src/modules/portal/views/home/HomeSide.vue

@@ -1,8 +1,8 @@
 <template>
-  <div v-if="menuList.length > 0" class="home-side" width="240px">
+  <div v-if="menuList.length > 0" class="home-side">
     <div class="home-logo">
       <router-link to="/questions/tips">
-        <img src="./icon.png" />
+        <img src="@/assets/images/system-icon.png" />
       </router-link>
     </div>
     <el-menu
@@ -150,58 +150,3 @@ export default {
   },
 };
 </script>
-
-<style scoped>
-.home-side {
-  position: fixed;
-  width: 240px;
-  left: 0;
-  top: 0;
-  bottom: 0;
-  z-index: 99;
-  overflow-y: auto;
-  overflow-x: hidden;
-  background: #fff;
-  border-top-right-radius: 32px;
-  border-bottom-right-radius: 32px;
-}
-.home-logo {
-  padding: 0 40px;
-  font-size: 20px;
-  line-height: 40px;
-  text-align: center;
-}
-.home-logo a {
-  display: block;
-  padding: 30px 0;
-  border-bottom: 1px solid #eff0f5;
-}
-.home-logo img {
-  display: block;
-  max-width: 160px;
-  height: 40px;
-}
-.el-menu-vertical-demo {
-  padding-top: 20px;
-}
-.el-menu-vertical-demo >>> .el-submenu {
-  margin-bottom: 10px;
-}
-.el-menu-vertical-demo >>> .el-submenu__title {
-  padding: 0 40px !important;
-  height: 50px;
-  line-height: 50px;
-  font-weight: 600;
-}
-.el-menu-vertical-demo >>> .el-submenu .el-menu-item {
-  padding-left: 64px !important;
-  height: 40px;
-  line-height: 40px;
-}
-.el-menu-vertical-demo >>> .el-submenu .el-menu-item.is-active {
-  font-weight: 600;
-}
-.el-menu-vertical-demo >>> .el-submenu__icon-arrow {
-  right: 30px;
-}
-</style>

+ 1 - 20
src/modules/portal/views/home/LinkTitles.vue

@@ -1,7 +1,7 @@
 <template>
   <div v-if="currentPaths.length > 0" class="link-titles">
     <span class="breadcrumb-tips">
-      <i class="icon icon-location"></i>
+      <i class="icon icon-home"></i>
       <span>当前所在位置:</span>
     </span>
     <el-breadcrumb class="breadcrumb-list">
@@ -28,22 +28,3 @@ export default {
   },
 };
 </script>
-
-<style scoped>
-.breadcrumb-tips,
-.el-breadcrumb {
-  display: inline-block;
-  vertical-align: middle;
-  color: #fff;
-}
-.breadcrumb-tips > i {
-  margin-top: -2px;
-  margin-right: 8px;
-}
-.breadcrumb-list >>> .el-breadcrumb__inner,
-.breadcrumb-list >>> .el-breadcrumb__inner a,
-.breadcrumb-list >>> .el-breadcrumb__inner.is-link,
-.breadcrumb-list >>> .el-breadcrumb__item:last-child .el-breadcrumb__inner {
-  color: #fff;
-}
-</style>

+ 9 - 7
src/modules/questions/views/BluePaperStructure.vue

@@ -35,21 +35,23 @@
           </el-select>
         </el-form-item>
         <el-form-item>
-          <el-button type="primary" @click="searchFrom"
-            ><i class="el-icon-search"></i> 查询</el-button
-          >
+          <el-button type="danger" @click="searchFrom">查询</el-button>
         </el-form-item>
       </el-form>
       <div class="part-box-action">
         <el-button
           type="danger"
+          plain
+          icon="icon icon-delete"
           :disabled="noBatchSelected"
           @click="deleteStructs"
-        >
-          <i class="el-icon-delete"></i> 删除
+          >删除
         </el-button>
-        <el-button type="primary" @click="insertStruct"
-          ><i class="el-icon-plus"></i> 新增</el-button
+        <el-button
+          type="primary"
+          icon="icon icon-plus-white"
+          @click="insertStruct"
+          >新增</el-button
         >
       </div>
     </div>

+ 16 - 4
src/modules/questions/views/CheckDuplicateInfo.vue

@@ -3,10 +3,22 @@
     <div class="part-box-header">
       <h1 class="part-box-title">试题详情</h1>
       <div>
-        <el-button type="primary" @click="retain">保留</el-button>
-        <el-button type="danger" plain @click="deleteQues">删除</el-button>
-        <el-button type="danger" plain @click="ignore">跳过</el-button>
-        <el-button type="danger" plain @click="back">返回</el-button>
+        <el-button type="primary" icon="icon icon-save-white" @click="retain"
+          >保留</el-button
+        >
+        <el-button
+          type="danger"
+          plain
+          icon="icon icon-delete"
+          @click="deleteQues"
+          >删除</el-button
+        >
+        <el-button type="danger" plain icon="icon icon-pass" @click="ignore"
+          >跳过</el-button
+        >
+        <el-button type="danger" plain icon="icon icon-back" @click="back"
+          >返回</el-button
+        >
       </div>
     </div>
     <div class="part-page margin-tb-20">

+ 11 - 5
src/modules/questions/views/CheckDuplicateList.vue

@@ -70,18 +70,23 @@
           </el-select>
         </el-form-item>
         <el-form-item>
-          <el-button type="primary" @click="searchFrom"
-            ><i class="el-icon-search"></i> 查询</el-button
-          >
+          <el-button type="danger" @click="searchFrom">查询</el-button>
         </el-form-item>
       </el-form>
       <div class="part-box-action">
         <div>
-          <el-button type="primary" plain @click="dispose">快速审核</el-button>
+          <el-button
+            type="primary"
+            plain
+            icon="icon icon-audit"
+            @click="dispose"
+            >快速审核</el-button
+          >
           <el-button
             :disabled="noBatchSelected"
             type="danger"
             plain
+            icon="icon icon-delete"
             @click="deleteQuestions"
             >批量删除</el-button
           >
@@ -89,6 +94,7 @@
             :disabled="noBatchSelected"
             type="primary"
             plain
+            icon="icon icon-save"
             @click="retainQuestions"
             >批量保留</el-button
           >
@@ -163,7 +169,7 @@
               >
                 详情
               </el-button>
-              <el-dropdown class="button_left">
+              <el-dropdown>
                 <el-button type="primary" size="mini" plain>
                   快速审核<i class="el-icon-more el-icon--right"></i>
                 </el-button>

+ 14 - 15
src/modules/questions/views/Course.vue

@@ -93,38 +93,37 @@
             type="success"
             plain
             :disabled="noBatchSelected"
-            icon="el-icon-check"
+            icon="icon icon-play"
             @click="enableByIds"
-          >
-            启用
+            >启用
           </el-button>
           <el-button
             type="danger"
             plain
             :disabled="noBatchSelected"
-            icon="el-icon-close"
+            icon="icon icon-delete"
             @click="disableByIds"
+            >禁用</el-button
           >
-            禁用
-          </el-button>
           <el-button
             type="primary"
             plain
-            icon="el-icon-upload2"
+            icon="icon icon-import"
             @click="impCourse"
+            >导入</el-button
           >
-            导入
-          </el-button>
           <el-button
             type="primary"
             plain
-            icon="el-icon-download"
+            icon="icon icon-export"
             @click="exportCourse"
+            >导出</el-button
           >
-            导出
-          </el-button>
         </div>
-        <el-button type="primary" icon="el-icon-plus" @click="insertCourse"
+        <el-button
+          type="primary"
+          icon="icon icon-plus-white"
+          @click="insertCourse"
           >新增</el-button
         >
       </div>
@@ -150,7 +149,7 @@
                 content="启用"
                 placement="left"
               >
-                <i class="el-icon-success" style="color: #1fb46f"></i>
+                <i class="icon icon-right"></i>
               </el-tooltip>
             </span>
             <span v-else>
@@ -160,7 +159,7 @@
                 content="禁用"
                 placement="left"
               >
-                <i class="el-icon-error" style="color: #ff7240"></i>
+                <i class="icon icon-error"></i>
               </el-tooltip>
             </span>
           </span>

+ 13 - 9
src/modules/questions/views/CourseProperty.vue

@@ -43,28 +43,32 @@
           <el-button
             type="success"
             plain
+            icon="icon icon-play"
             :disabled="noBatchSelected"
             @click="openCoursePropertys"
-            ><i class="el-icon-check"></i> 启用</el-button
+            >启用</el-button
           >
           <el-button
             type="danger"
             plain
+            icon="icon icon-delete"
             :disabled="noBatchSelected"
             @click="closeCoursePropertys"
-            ><i class="el-icon-close"></i> 禁用</el-button
+            >禁用</el-button
           >
           <el-button
             type="primary"
             plain
-            icon="el-icon-upload2"
+            icon="icon icon-import"
             @click="impCourseProperty"
-          >
-            导入
+            >导入
           </el-button>
         </div>
-        <el-button type="primary" @click="addCourseProperty"
-          ><i class="el-icon-plus"></i> 新增</el-button
+        <el-button
+          type="primary"
+          icon="icon icon-plus-white"
+          @click="addCourseProperty"
+          >新增</el-button
         >
       </div>
     </div>
@@ -101,7 +105,7 @@
                 content="启用"
                 placement="left"
               >
-                <i class="el-icon-success" style="color: #1fb46f"></i>
+                <i class="icon icon-right"></i>
               </el-tooltip>
             </span>
             <span v-else>
@@ -111,7 +115,7 @@
                 content="禁用"
                 placement="left"
               >
-                <i class="el-icon-error" style="color: #ff7240"></i>
+                <i class="icon icon-error"></i>
               </el-tooltip>
             </span>
           </template>

+ 1 - 0
src/modules/questions/views/EditOtherQuestion.vue

@@ -97,6 +97,7 @@
                 :key="content.id"
                 style="margin-right: 5px"
                 closable
+                effect="dark"
                 type="primary"
                 @close="handleClose(content)"
               >

+ 73 - 75
src/modules/questions/views/EditPaper.vue

@@ -56,9 +56,9 @@
           >
             进入查重
           </el-button>
-          <el-dropdown class="margin_left_10">
+          <el-dropdown>
             <el-button type="primary" size="small" plain>
-              更多 <i class="el-icon-more el-icon--right"></i>
+              更多<i class="el-icon-more el-icon--right"></i>
             </el-button>
             <el-dropdown-menu slot="dropdown">
               <el-dropdown-item>
@@ -87,12 +87,12 @@
             </el-dropdown-menu>
           </el-dropdown>
           <el-button
-            class="margin_left_10"
             size="small"
             type="danger"
             plain
+            icon="icon icon-back"
             @click="back"
-            ><i class="el-icon-arrow-left"></i>返回</el-button
+            >返回</el-button
           >
         </div>
       </div>
@@ -719,6 +719,7 @@
                 style="margin-right: 5px"
                 :closable="!updatePorperty"
                 type="primary"
+                effect="dark"
                 @close="handleClose(content)"
               >
                 {{ content.courseProperty.name }}
@@ -799,20 +800,15 @@
           </el-col>
         </el-row>
         <!-- end by weiwenhai -->
-        <div>
-          <el-row>
-            <el-col>
-              <el-form-item label="题目">
-                <ckeditor v-model="quesModel.quesBody"></ckeditor>
-              </el-form-item>
-            </el-col>
-          </el-row>
-
-          <el-form-item
-            v-for="(quesOption, optIndex) in quesModel.quesOptions"
-            :key="optIndex"
-          >
-            <el-col :span="2">
+        <el-form-item label="题目">
+          <ckeditor v-model="quesModel.quesBody"></ckeditor>
+        </el-form-item>
+        <el-form-item
+          v-for="(quesOption, optIndex) in quesModel.quesOptions"
+          :key="optIndex"
+        >
+          <div class="question-edit-option">
+            <div class="option-check">
               <div
                 v-if="
                   !quesModel.parentType ||
@@ -865,82 +861,43 @@
                   }}</span>
                 </el-tooltip>
               </div>
-            </el-col>
-            <el-col
+            </div>
+            <div
               v-if="
                 !quesModel.parentType ||
                 !isMatchingQuestion(quesModel.parentType)
               "
-              :span="20"
+              class="option-body"
             >
               <ckeditor v-model="quesOption.optionBody"></ckeditor>
-            </el-col>
-            <el-col
+            </div>
+            <div
               v-if="
                 quesModel.parentType && isMatchingQuestion(quesModel.parentType)
               "
-              :span="20"
+              class="option-body"
             >
               <span v-html="quesOption.optionBody"></span>
-            </el-col>
-            <el-col
+            </div>
+            <div
               v-if="
                 !quesModel.parentType ||
                 !isMatchingQuestion(quesModel.parentType)
               "
-              :span="2"
+              class="option-delete"
             >
-              <i
-                class="el-icon-delete"
+              <el-button
+                size="mini"
+                circle
+                type="danger"
+                icon="el-icon-delete"
                 title="删除"
                 @click.prevent="removeQuesOption(quesOption)"
-              ></i>
-            </el-col>
-          </el-form-item>
-
-          <div
-            v-if="
-              quesModel.questionType == 'TEXT_ANSWER_QUESTION' ||
-              quesModel.questionType == 'FILL_BLANK_QUESTION'
-            "
-          >
-            <el-form-item label="答案">
-              <ckeditor v-model="quesModel.quesAnswer"></ckeditor>
-            </el-form-item>
-          </div>
-          <!-- 单选或多选 -->
-          <div
-            v-if="
-              quesModel.questionType == 'SINGLE_ANSWER_QUESTION' ||
-              quesModel.questionType == 'MULTIPLE_ANSWER_QUESTION'
-            "
-          >
-            <el-form-item label="答案">
-              <span v-html="answer"></span>
-            </el-form-item>
-          </div>
-          <div v-if="quesModel.questionType == 'BOOL_ANSWER_QUESTION'">
-            <el-row>
-              <el-col>
-                <el-form-item label="答案" prop="quesAnswer">
-                  <el-select
-                    v-model="quesModel.quesAnswer"
-                    placeholder="请选择"
-                  >
-                    <el-option
-                      v-for="op in options"
-                      :key="op"
-                      :label="op"
-                      :value="op"
-                    >
-                    </el-option>
-                  </el-select>
-                </el-form-item>
-              </el-col>
-            </el-row>
+              ></el-button>
+            </div>
           </div>
-        </div>
-        <div style="text-align: right">
+        </el-form-item>
+        <el-form-item>
           <el-button
             v-if="
               (quesModel.questionType == 'SINGLE_ANSWER_QUESTION' ||
@@ -952,6 +909,47 @@
             @click="addQuesOption"
             ><i class="el-icon-plus"></i> 新增选项
           </el-button>
+        </el-form-item>
+        <!-- 答案 -->
+        <!-- 填空,简答 -->
+        <div
+          v-if="
+            quesModel.questionType == 'TEXT_ANSWER_QUESTION' ||
+            quesModel.questionType == 'FILL_BLANK_QUESTION'
+          "
+        >
+          <el-form-item label="答案">
+            <ckeditor v-model="quesModel.quesAnswer"></ckeditor>
+          </el-form-item>
+        </div>
+        <!-- 单选或多选 -->
+        <div
+          v-if="
+            quesModel.questionType == 'SINGLE_ANSWER_QUESTION' ||
+            quesModel.questionType == 'MULTIPLE_ANSWER_QUESTION'
+          "
+        >
+          <el-form-item label="答案">
+            <span v-html="answer"></span>
+          </el-form-item>
+        </div>
+        <!-- 判断 -->
+        <div v-if="quesModel.questionType == 'BOOL_ANSWER_QUESTION'">
+          <el-row>
+            <el-col>
+              <el-form-item label="答案" prop="quesAnswer">
+                <el-select v-model="quesModel.quesAnswer" placeholder="请选择">
+                  <el-option
+                    v-for="op in options"
+                    :key="op"
+                    :label="op"
+                    :value="op"
+                  >
+                  </el-option>
+                </el-select>
+              </el-form-item>
+            </el-col>
+          </el-row>
         </div>
       </el-form>
       <div slot="footer">

+ 70 - 78
src/modules/questions/views/EditPaperPendingTrial.vue

@@ -65,8 +65,7 @@
             type="primary"
             size="small"
             @click="savePaper"
-          >
-            保存
+            >保存
           </el-button>
           <el-button
             v-show="isShowEditBtn()"
@@ -74,8 +73,7 @@
             plain
             size="small"
             @click="deletePaper(paper.id)"
-          >
-            删除
+            >删除
           </el-button>
           <el-button
             v-if="showCheckDuplicateBtn"
@@ -86,7 +84,7 @@
           >
             进入查重
           </el-button>
-          <el-dropdown v-show="isShowEditBtn()" class="margin_left_10">
+          <el-dropdown v-show="isShowEditBtn()">
             <el-button type="primary" size="small" plain>
               更多 <i class="el-icon-more el-icon--right"></i>
             </el-button>
@@ -117,12 +115,12 @@
             </el-dropdown-menu>
           </el-dropdown>
           <el-button
-            class="margin_left_10"
             size="small"
             type="danger"
             plain
+            icon="icon icon-back"
             @click="back"
-            ><i class="el-icon-arrow-left"></i>返回</el-button
+            >返回</el-button
           >
         </div>
       </div>
@@ -762,6 +760,7 @@
                 style="margin-right: 5px"
                 :closable="!updatePorperty"
                 type="primary"
+                effect="dark"
                 @close="handleClose(content)"
               >
                 {{ content.courseProperty.name }}
@@ -842,20 +841,15 @@
           </el-col>
         </el-row>
         <!-- end by weiwenhai -->
-        <div>
-          <el-row>
-            <el-col>
-              <el-form-item label="题目">
-                <ckeditor v-model="quesModel.quesBody"></ckeditor>
-              </el-form-item>
-            </el-col>
-          </el-row>
-
-          <el-form-item
-            v-for="(quesOption, optIndex) in quesModel.quesOptions"
-            :key="optIndex"
-          >
-            <el-col :span="2">
+        <el-form-item label="题目">
+          <ckeditor v-model="quesModel.quesBody"></ckeditor>
+        </el-form-item>
+        <el-form-item
+          v-for="(quesOption, optIndex) in quesModel.quesOptions"
+          :key="optIndex"
+        >
+          <div class="question-edit-option">
+            <div class="option-check">
               <div
                 v-if="
                   !quesModel.parentType ||
@@ -908,82 +902,43 @@
                   }}</span>
                 </el-tooltip>
               </div>
-            </el-col>
-            <el-col
+            </div>
+            <div
               v-if="
                 !quesModel.parentType ||
                 !isMatchingQuestion(quesModel.parentType)
               "
-              :span="20"
+              class="option-body"
             >
               <ckeditor v-model="quesOption.optionBody"></ckeditor>
-            </el-col>
-            <el-col
+            </div>
+            <div
               v-if="
                 quesModel.parentType && isMatchingQuestion(quesModel.parentType)
               "
-              :span="20"
+              class="option-body"
             >
               <span v-html="quesOption.optionBody"></span>
-            </el-col>
-            <el-col
+            </div>
+            <div
               v-if="
                 !quesModel.parentType ||
                 !isMatchingQuestion(quesModel.parentType)
               "
-              :span="2"
+              class="option-delete"
             >
-              <i
-                class="el-icon-delete"
+              <el-button
+                size="mini"
+                circle
+                type="danger"
+                icon="el-icon-delete"
                 title="删除"
                 @click.prevent="removeQuesOption(quesOption)"
-              ></i>
-            </el-col>
-          </el-form-item>
-
-          <div
-            v-if="
-              quesModel.questionType == 'TEXT_ANSWER_QUESTION' ||
-              quesModel.questionType == 'FILL_BLANK_QUESTION'
-            "
-          >
-            <el-form-item label="答案">
-              <ckeditor v-model="quesModel.quesAnswer"></ckeditor>
-            </el-form-item>
-          </div>
-          <!-- 单选或多选 -->
-          <div
-            v-if="
-              quesModel.questionType == 'SINGLE_ANSWER_QUESTION' ||
-              quesModel.questionType == 'MULTIPLE_ANSWER_QUESTION'
-            "
-          >
-            <el-form-item label="答案">
-              <span v-html="answer"></span>
-            </el-form-item>
-          </div>
-          <div v-if="quesModel.questionType == 'BOOL_ANSWER_QUESTION'">
-            <el-row>
-              <el-col>
-                <el-form-item label="答案" prop="quesAnswer">
-                  <el-select
-                    v-model="quesModel.quesAnswer"
-                    placeholder="请选择"
-                  >
-                    <el-option
-                      v-for="op in options"
-                      :key="op"
-                      :label="op"
-                      :value="op"
-                    >
-                    </el-option>
-                  </el-select>
-                </el-form-item>
-              </el-col>
-            </el-row>
+              ></el-button>
+            </div>
           </div>
-        </div>
-        <div style="text-align: right">
+        </el-form-item>
+        <el-form-item>
           <el-button
             v-if="
               (quesModel.questionType == 'SINGLE_ANSWER_QUESTION' ||
@@ -995,6 +950,43 @@
             @click="addQuesOption"
             ><i class="el-icon-plus"></i> 新增选项
           </el-button>
+        </el-form-item>
+        <!-- 答案 -->
+        <!-- 填空,简答 -->
+        <div
+          v-if="
+            quesModel.questionType == 'TEXT_ANSWER_QUESTION' ||
+            quesModel.questionType == 'FILL_BLANK_QUESTION'
+          "
+        >
+          <el-form-item label="答案">
+            <ckeditor v-model="quesModel.quesAnswer"></ckeditor>
+          </el-form-item>
+        </div>
+        <!-- 单选或多选 -->
+        <div
+          v-if="
+            quesModel.questionType == 'SINGLE_ANSWER_QUESTION' ||
+            quesModel.questionType == 'MULTIPLE_ANSWER_QUESTION'
+          "
+        >
+          <el-form-item label="答案">
+            <span v-html="answer"></span>
+          </el-form-item>
+        </div>
+        <!-- 判断 -->
+        <div v-if="quesModel.questionType == 'BOOL_ANSWER_QUESTION'">
+          <el-form-item label="答案" prop="quesAnswer">
+            <el-select v-model="quesModel.quesAnswer" placeholder="请选择">
+              <el-option
+                v-for="op in options"
+                :key="op"
+                :label="op"
+                :value="op"
+              >
+              </el-option>
+            </el-select>
+          </el-form-item>
         </div>
       </el-form>
       <div slot="footer">

+ 67 - 42
src/modules/questions/views/EditSelectQuestion.vue

@@ -1,5 +1,5 @@
 <template>
-  <div id="editSelectApp" v-loading="fullscreenLoading">
+  <div v-loading="fullscreenLoading">
     <!-- 头信息 -->
     <h3 class="box-title">
       <span v-if="!quesModel.id"
@@ -10,13 +10,34 @@
       /></span>
     </h3>
     <div class="part-box">
+      <div class="part-box-header">
+        <h1 class="part-box-title">
+          {{ quesModel.id ? "试题修改" : "试题新增" }}
+        </h1>
+        <div>
+          <el-button
+            type="primary"
+            icon="icon icon-save-white"
+            :disabled="saveDisabled"
+            @click="submitForm('quesModel')"
+            >保存</el-button
+          >
+          <el-button
+            type="danger"
+            plain
+            icon="icon icon-back"
+            @click="backToQuesList()"
+            >返回
+          </el-button>
+        </div>
+      </div>
       <!-- 正文信息 -->
       <el-form
         ref="quesModel"
+        class="padding-tb-20"
         :model="quesModel"
         :rules="rules"
         label-width="100px"
-        class="demo-ruleForm"
       >
         <el-form-item label="题型">
           <el-select
@@ -102,14 +123,15 @@
               :key="content.id"
               style="margin-right: 5px"
               closable
+              effect="dark"
               type="primary"
               @close="handleClose(content)"
             >
-              {{ content.courseProperty.name }}
+              {{ content.coursePropertyName || content.courseProperty.name }}
             </el-tag>
           </el-tooltip>
         </el-form-item>
-        <el-row :gutter="20">
+        <el-row :gutter="10">
           <el-col :xs="6" :sm="6" :md="6" :lg="6">
             <el-form-item label="属性名">
               <el-select
@@ -164,17 +186,21 @@
             </el-form-item>
           </el-col>
           <el-col :xs="3" :sm="3" :md="3" :lg="3">
-            <el-form-item>
+            <el-form-item label-width="0px">
               <el-button
                 type="primary"
-                style="margin-left: -30px"
+                icon="icon icon-plus-white"
                 @click="insertProperty"
-                ><i class="el-icon-plus"></i> 新增属性</el-button
+                >新增属性</el-button
               >
             </el-form-item>
           </el-col>
         </el-row>
         <!-- end -->
+      </el-form>
+    </div>
+    <div class="part-box">
+      <el-form label-width="100px">
         <el-form-item label="题干" prop="quesBody">
           <ckeditor v-model="quesModel.quesBody"></ckeditor>
         </el-form-item>
@@ -182,46 +208,45 @@
           v-for="(option, index) in quesModel.quesOptions"
           :key="option.number"
         >
-          <el-col :span="1">
-            <el-radio
-              v-if="quesModel.questionType === 'SINGLE_ANSWER_QUESTION'"
-              v-model="singleRightAnswer"
-              :label="index | optionOrderWordFilter"
-            ></el-radio>
-            <el-checkbox
-              v-if="quesModel.questionType === 'MULTIPLE_ANSWER_QUESTION'"
-              v-model="multipleRightAnswer"
-              :label="index | optionOrderWordFilter"
-            ></el-checkbox>
-          </el-col>
-          <el-col :span="20">
-            <ckeditor v-model="option.optionBody"></ckeditor>
-          </el-col>
-          <el-col :span="2">
-            <i
-              class="el-icon-delete"
-              title="删除"
-              @click.prevent="removeQuesOption(option)"
-            ></i>
-          </el-col>
-        </el-form-item>
-        <el-form-item label="答案">
-          <el-col> <span v-html="answer"></span> </el-col>
+          <div class="question-edit-option">
+            <div class="option-check">
+              <el-radio
+                v-if="quesModel.questionType === 'SINGLE_ANSWER_QUESTION'"
+                v-model="singleRightAnswer"
+                :label="index | optionOrderWordFilter"
+              ></el-radio>
+              <el-checkbox
+                v-if="quesModel.questionType === 'MULTIPLE_ANSWER_QUESTION'"
+                v-model="multipleRightAnswer"
+                :label="index | optionOrderWordFilter"
+              ></el-checkbox>
+            </div>
+            <div class="option-body">
+              <ckeditor v-model="option.optionBody"></ckeditor>
+            </div>
+            <div class="option-delete">
+              <el-button
+                size="mini"
+                circle
+                type="danger"
+                icon="el-icon-delete"
+                title="删除"
+                @click.prevent="removeQuesOption(option)"
+              ></el-button>
+            </div>
+          </div>
         </el-form-item>
         <el-form-item>
-          <el-button type="primary" @click="addQuesOption"
-            ><i class="el-icon-plus"></i> 新增选项</el-button
-          >
           <el-button
             type="primary"
-            icon="check"
-            :disabled="saveDisabled"
-            @click="submitForm('quesModel')"
-            >保存</el-button
+            icon="icon icon-plus-white"
+            @click="addQuesOption"
+            >新增选项</el-button
           >
-          <el-button type="primary" icon="caret-left" @click="backToQuesList()"
-            ><i class="el-icon-arrow-left"></i> 返回列表
-          </el-button>
+        </el-form-item>
+        <div class="line-seperator"></div>
+        <el-form-item label="答案">
+          <el-col><span v-html="answer"></span></el-col>
         </el-form-item>
       </el-form>
     </div>

+ 7 - 6
src/modules/questions/views/ExamPaperPendingTrial.vue

@@ -75,6 +75,7 @@
             :disabled="noBatchSelected"
             type="danger"
             plain
+            icon="icon icon-delete"
             @click="deletePapers"
             >批量删除</el-button
           >
@@ -82,6 +83,7 @@
             :disabled="noBatchSelected"
             type="primary"
             plain
+            icon="icon icon-pass"
             @click="auditPapers('PASS')"
             >批量通过</el-button
           >
@@ -89,6 +91,7 @@
             :disabled="noBatchSelected"
             type="danger"
             plain
+            icon="icon icon-delete"
             @click="auditPapers('NOT_PASS')"
             >批量不通过</el-button
           >
@@ -96,6 +99,7 @@
             :disabled="noBatchSelected"
             type="primary"
             plain
+            icon="icon icon-cancel"
             @click="withdrawPapers()"
             >批量撤回</el-button
           >
@@ -103,11 +107,11 @@
             :disabled="noBatchSelected"
             type="primary"
             plain
+            icon="icon icon-save"
             @click="submitPapers()"
             >批量提交</el-button
           >
         </div>
-        <div></div>
       </div>
     </div>
 
@@ -198,10 +202,7 @@
                 @click="editImportPaper(scope.row)"
                 >详情</el-button
               >
-              <el-dropdown
-                v-show="isShowAuditBtn(scope.row)"
-                class="button_left"
-              >
+              <el-dropdown v-if="isShowAuditBtn(scope.row)">
                 <el-button type="primary" size="mini" plain>
                   审核<i class="el-icon-more el-icon--right"></i>
                 </el-button>
@@ -228,7 +229,7 @@
                   </el-dropdown-item>
                 </el-dropdown-menu>
               </el-dropdown>
-              <el-dropdown class="button_left">
+              <el-dropdown>
                 <el-button type="primary" size="mini" plain>
                   更多 <i class="el-icon-more el-icon--right"></i>
                 </el-button>

+ 8 - 8
src/modules/questions/views/ExportTemplate.vue

@@ -45,16 +45,16 @@
           </el-select>
         </el-form-item>
         <el-form-item>
-          <el-button type="danger" @click="handleSearchBtn"> 查询 </el-button>
+          <el-button type="danger" @click="handleSearchBtn">查询</el-button>
         </el-form-item>
       </el-form>
       <div class="part-box-action">
-        <el-button type="primary" plain icon="el-icon-edit" @click="operConfig">
-          配置
-        </el-button>
-        <el-button type="primary" icon="el-icon-plus" @click="addFile">
-          新增
+        <el-button type="primary" plain icon="icon icon-set" @click="operConfig"
+          >配置
         </el-button>
+        <el-button type="primary" icon="icon icon-plus-white" @click="addFile"
+          >新增</el-button
+        >
       </div>
     </div>
     <div class="part-box">
@@ -78,7 +78,7 @@
                 content="启用"
                 placement="left"
               >
-                <i class="el-icon-success" style="color: #1fb46f"></i>
+                <i class="icon icon-right"></i>
               </el-tooltip>
             </span>
             <span v-else>
@@ -88,7 +88,7 @@
                 content="禁用"
                 placement="left"
               >
-                <i class="el-icon-error" style="color: #ff7240"></i>
+                <i class="icon icon-error"></i>
               </el-tooltip>
             </span>
           </template>

+ 14 - 9
src/modules/questions/views/GenPaper.vue

@@ -74,37 +74,42 @@
           <el-button
             type="danger"
             plain
+            icon="icon icon-delete"
             :disabled="noBatchSelected"
             @click="batchDeleteGenPaper"
-          >
-            <i class="el-icon-delete"></i> 删除成卷
+            >删除成卷
           </el-button>
           <el-button
             type="danger"
             plain
+            icon="icon icon-delete"
             :disabled="noBatchSelected"
             @click="recoveryPapers"
-          >
-            <i class="el-icon-delete"></i>回收
+            >回收
           </el-button>
           <el-button
             type="primary"
             plain
+            icon="icon icon-export"
             :disabled="noBatchSelected"
             @click="openBatchExportPaperDialog"
-            ><i class="el-icon-download"></i> 下载成卷</el-button
+            >下载成卷</el-button
           >
           <el-button
             type="primary"
             plain
+            icon="icon icon-edit"
             :disabled="noBatchSelected"
             @click="openQuesPro"
-            ><i class="el-icon-edit"></i>试卷属性</el-button
+            >试卷属性</el-button
           >
         </div>
         <div>
-          <el-button type="primary" @click="genPaperDetail"
-            ><i class="el-icon-plus"></i> 组卷</el-button
+          <el-button
+            type="primary"
+            icon="icon icon-plus-white"
+            @click="genPaperDetail"
+            >组卷</el-button
           >
         </div>
       </div>
@@ -191,7 +196,7 @@
                 @click="editGenPaper(scope.row)"
                 >编辑</el-button
               >
-              <el-dropdown class="button_left">
+              <el-dropdown>
                 <el-button type="primary" size="mini" plain>
                   更多 <i class="el-icon-more el-icon--right"></i>
                 </el-button>

+ 15 - 11
src/modules/questions/views/GenPaperDetail.vue

@@ -11,15 +11,19 @@
           <el-button
             v-if="genModelType == 'A-Type'"
             type="primary"
-            icon="check"
+            icon="icon icon-save-white"
             @click="confirmGenPaperMType"
             >确定</el-button
           >
-          <el-button v-else type="primary" icon="check" @click="confirmGenPaper"
+          <el-button
+            v-else
+            type="primary"
+            icon="icon icon-save-white"
+            @click="confirmGenPaper"
             >确定</el-button
           >
-          <el-button type="danger" plain @click="back"
-            ><i class="el-icon-arrow-left"></i> 返 回</el-button
+          <el-button type="danger" plain icon="icon icon-back" @click="back"
+            >返回</el-button
           >
         </div>
       </div>
@@ -382,7 +386,7 @@
                 </template>
               </el-table-column>
               <!-- 新增公开度和难度 -->
-              <el-table-column label="公开(简单)" width="100">
+              <el-table-column label="公开(简单)">
                 <template slot-scope="scope">
                   <div
                     @mouseenter="showActiveIn(1, 1, scope.row)"
@@ -406,7 +410,7 @@
                   </div>
                 </template>
               </el-table-column>
-              <el-table-column label="公开(中等)" width="100">
+              <el-table-column label="公开(中等)">
                 <template slot-scope="scope">
                   <div
                     @mouseenter="showActiveIn(1, 2, scope.row)"
@@ -430,7 +434,7 @@
                   </div>
                 </template>
               </el-table-column>
-              <el-table-column label="公开(困难)" width="100">
+              <el-table-column label="公开(困难)">
                 <template slot-scope="scope">
                   <div
                     @mouseenter="showActiveIn(1, 3, scope.row)"
@@ -454,7 +458,7 @@
                   </div>
                 </template>
               </el-table-column>
-              <el-table-column label="非公开(简单)" width="100">
+              <el-table-column label="非公开(简单)">
                 <template slot-scope="scope">
                   <div
                     @mouseenter="showActiveIn(0, 1, scope.row)"
@@ -478,7 +482,7 @@
                   </div>
                 </template>
               </el-table-column>
-              <el-table-column label="非公开(中等)" width="100">
+              <el-table-column label="非公开(中等)">
                 <template slot-scope="scope">
                   <div
                     @mouseenter="showActiveIn(0, 2, scope.row)"
@@ -502,7 +506,7 @@
                   </div>
                 </template>
               </el-table-column>
-              <el-table-column label="非公开(困难)" width="100">
+              <el-table-column label="非公开(困难)">
                 <template slot-scope="scope">
                   <div
                     @mouseenter="showActiveIn(0, 3, scope.row)"
@@ -527,7 +531,7 @@
                 </template>
               </el-table-column>
               <!-- 总数求和 -->
-              <el-table-column :label="setName()" width="100">
+              <el-table-column :label="setName()">
                 <template slot-scope="scope">
                   <div>
                     <span

+ 13 - 9
src/modules/questions/views/ImportPaper.vue

@@ -66,9 +66,7 @@
           ></el-input>
         </el-form-item>
         <el-form-item>
-          <el-button type="primary" @click="searchFrom"
-            ><i class="el-icon-search"></i> 查询</el-button
-          >
+          <el-button type="danger" @click="searchFrom">查询</el-button>
         </el-form-item>
       </el-form>
       <div class="part-box-action">
@@ -76,23 +74,29 @@
           <el-button
             type="primary"
             plain
+            icon="icon icon-star"
             :disabled="noBatchSelected"
             @click="useBasePaper"
-            ><i class="el-icon-star-on"></i> 使用原卷</el-button
+            >使用原卷</el-button
           >
           <el-button
             type="danger"
             plain
+            icon="icon icon-delete"
             :disabled="noBatchSelected"
             @click="batchDeletePaper"
-            ><i class="el-icon-delete"></i> 删除原卷</el-button
+            >删除原卷</el-button
           >
         </div>
         <div>
-          <el-button type="primary" plain @click="impPaper"
-            ><i class="el-icon-upload2"></i> 导入</el-button
+          <el-button
+            type="primary"
+            plain
+            icon="icon icon-import"
+            @click="impPaper"
+            >导入</el-button
           >
-          <el-dropdown class="button_left">
+          <el-dropdown>
             <el-button type="primary" plain>
               更多 <i class="el-icon-more el-icon--right"></i>
             </el-button>
@@ -220,7 +224,7 @@
                 @click="editImportPaper(scope.row)"
                 >编辑</el-button
               >
-              <el-dropdown class="button_left">
+              <el-dropdown>
                 <el-button type="primary" size="mini" plain>
                   更多 <i class="el-icon-more el-icon--right"></i>
                 </el-button>

+ 15 - 9
src/modules/questions/views/ImportPaperInfo.vue

@@ -64,7 +64,6 @@
         <el-form-item class="padding-tb-20">
           <el-upload
             ref="upload"
-            class="form_left"
             :accept="importFileType"
             :action="uploadAction"
             :headers="uploadHeaders"
@@ -77,20 +76,27 @@
             :auto-upload="false"
             :multiple="false"
           >
-            <el-button slot="trigger" type="primary"
-              ><i class="el-icon-search"></i> 选择文件</el-button
+            <el-button
+              slot="trigger"
+              type="primary"
+              icon="icon icon-search-white"
+              >选择文件</el-button
             >
             <el-button
-              class="margin_left_10"
               type="primary"
+              icon="icon icon-save-white"
               @click="submitUpload"
-              ><i class="el-icon-check"></i> 确认上传
+              >确认上传
             </el-button>
-            <el-button type="danger" plain @click="removeFile"
-              ><i class="el-icon-refresh"></i> 清空文件
+            <el-button
+              type="danger"
+              plain
+              icon="icon icon-delete"
+              @click="removeFile"
+              >清空文件
             </el-button>
-            <el-button type="danger" plain @click="back"
-              ><i class="el-icon-arrow-left"></i> 返回</el-button
+            <el-button type="danger" plain icon="icon icon-back" @click="back"
+              >返回</el-button
             >
             <div slot="tip" class="el-upload__tip">只能上传docx和zip文件</div>
           </el-upload>

+ 5 - 3
src/modules/questions/views/InsertPaperStructure.vue

@@ -10,18 +10,20 @@
         <div>
           <el-button
             type="primary"
+            icon="icon icon-save-white"
             :disabled="button_disabled"
             @click="savePaperStruct()"
             >保存试卷结构</el-button
           >
           <el-button
             type="primary"
+            icon="icon icon-plus-white"
             :disabled="button_disabled"
             @click="insert()"
-            ><i class="el-icon-plus"></i> 新增大题</el-button
+            >新增大题</el-button
           >
-          <el-button type="danger" plain @click="back"
-            ><i class="el-icon-arrow-left"></i>  回</el-button
+          <el-button type="danger" plain icon="icon icon-back" @click="back"
+            >返回</el-button
           >
         </div>
       </div>

+ 8 - 5
src/modules/questions/views/InsertPaperStructureInfo.vue

@@ -73,14 +73,17 @@
           </el-select>
         </el-form-item>
         <el-form-item>
-          <el-button type="primary" @click="submitForm('paperUnitForm')"
-            >保 存</el-button
+          <el-button
+            type="primary"
+            icon="icon icon-save-white"
+            @click="submitForm('paperUnitForm')"
+            >保存</el-button
           >
           <el-button type="danger" plain @click="resetForm('paperUnitForm')"
-            >重 置</el-button
+            >重置</el-button
           >
-          <el-button type="danger" plain icon="el-icon-arrow-left" @click="back"
-            >返 回</el-button
+          <el-button type="danger" plain icon="icon icon-back" @click="back"
+            >返回</el-button
           >
         </el-form-item>
       </el-form>

+ 47 - 35
src/modules/questions/views/InsertPaperTitle.vue

@@ -2,7 +2,12 @@
   <section class="content">
     <!-- 正文信息 -->
     <div class="part-box">
-      <el-form :model="paperTitleForm" label-width="150px">
+      <h1 class="part-box-title">单体录入</h1>
+      <el-form
+        class="padding-tb-20"
+        :model="paperTitleForm"
+        label-width="150px"
+      >
         <el-form-item label="课程名称(代码)">
           <el-select
             v-model="paperTitleForm.courseNo"
@@ -42,8 +47,11 @@
             </el-option>
           </el-select>
           <span style="padding-left: 5px">
-            <el-button type="primary" @click="insertPaper"
-              ><i class="el-icon-plus"></i> 新增试卷</el-button
+            <el-button
+              type="primary"
+              icon="icon icon-plus-white"
+              @click="insertPaper"
+              >新增试卷</el-button
             >
           </span>
         </el-form-item>
@@ -80,43 +88,47 @@
           </el-select>
         </el-form-item>
         <el-form-item label=" ">
-          <el-button type="primary" :disabled="nextDisabled" @click="submitForm"
+          <el-button type="danger" :disabled="nextDisabled" @click="submitForm"
             >下一步
           </el-button>
         </el-form-item>
       </el-form>
-
-      <!-- 添加试卷弹出框 -->
-      <el-dialog title="新增试卷" :visible.sync="paperDialog" width="500px">
-        <el-form
-          ref="paperForm"
-          :model="paperForm"
-          :rules="rules"
-          label-position="right"
-          label-width="120px"
-          inline-message
-          class="el-form-linemess"
-        >
-          <el-row>
-            <el-form-item label="试卷名称" label-width="120px" prop="name">
-              <el-input
-                v-model="paperForm.name"
-                class="dialog_input_width"
-                placeholder="请输入试卷名称"
-              ></el-input>
-            </el-form-item>
-          </el-row>
-          <el-row class="margin_top_10 margin_left_120">
-            <el-button type="primary" @click="submitPaperForm('paperForm')"
-              >保 存</el-button
-            >
-            <el-button @click="resetPaperForm('paperForm')"
-              ><i class="el-icon-refresh"></i> 重 置</el-button
-            >
-          </el-row>
-        </el-form>
-      </el-dialog>
     </div>
+    <!-- 添加试卷弹出框 -->
+    <el-dialog
+      title="新增试卷"
+      :visible.sync="paperDialog"
+      width="500px"
+      :modal="false"
+      append-to-body
+      custom-class="side-dialog"
+    >
+      <el-form
+        ref="paperForm"
+        :model="paperForm"
+        :rules="rules"
+        label-position="right"
+        label-width="120px"
+        inline-message
+        class="el-form-linemess"
+      >
+        <el-form-item label="试卷名称" label-width="120px" prop="name">
+          <el-input
+            v-model="paperForm.name"
+            class="dialog_input_width"
+            placeholder="请输入试卷名称"
+          ></el-input>
+        </el-form-item>
+      </el-form>
+      <div slot="footer">
+        <el-button type="primary" @click="submitPaperForm('paperForm')"
+          >保 存</el-button
+        >
+        <el-button type="danger" plain @click="resetPaperForm('paperForm')"
+          >重 置</el-button
+        >
+      </div>
+    </el-dialog>
   </section>
 </template>
 <script>

+ 9 - 8
src/modules/questions/views/PaperPendingTrial.vue

@@ -67,12 +67,8 @@
           ></el-input>
         </el-form-item>
         <el-form-item>
-          <el-button type="primary" @click="searchFrom"
-            ><i class="el-icon-search"></i> 查询</el-button
-          >
-          <el-button @click="resetForm"
-            ><i class="el-icon-refresh"></i> 重 置</el-button
-          >
+          <el-button type="danger" @click="searchFrom">查询</el-button>
+          <el-button type="danger" plain @click="resetForm">重 置</el-button>
         </el-form-item>
       </el-form>
       <div class="part-box-action">
@@ -81,6 +77,7 @@
             :disabled="noBatchSelected"
             type="danger"
             plain
+            icon="icon icon-delete"
             @click="deletePapers"
             >批量删除</el-button
           >
@@ -88,13 +85,15 @@
             :disabled="noBatchSelected"
             type="primary"
             plain
+            icon="icon icon-save"
             @click="auditPapers('PASS')"
             >批量通过</el-button
           >
           <el-button
             :disabled="noBatchSelected"
-            type="primary"
+            type="danger"
             plain
+            icon="icon icon-delete"
             @click="auditPapers('NOT_PASS')"
             >批量不通过</el-button
           >
@@ -102,6 +101,7 @@
             :disabled="noBatchSelected"
             type="primary"
             plain
+            icon="icon icon-cancel"
             @click="withdrawPapers()"
             >批量撤回</el-button
           >
@@ -109,6 +109,7 @@
             :disabled="noBatchSelected"
             type="primary"
             plain
+            icon="icon icon-save"
             @click="submitPapers()"
             >批量提交</el-button
           >
@@ -232,7 +233,7 @@
                   </el-dropdown-item>
                 </el-dropdown-menu>
               </el-dropdown>
-              <el-dropdown class="button_left">
+              <el-dropdown>
                 <el-button type="primary" size="mini" plain>
                   更多 <i class="el-icon-more el-icon--right"></i>
                 </el-button>

+ 2 - 1
src/modules/questions/views/PaperStorage.vue

@@ -74,8 +74,9 @@
           :disabled="noBatchSelected"
           type="primary"
           plain
+          icon="icon icon-share"
           @click="releasePapers"
-          ><i class="el-icon-share"></i>释放</el-button
+          >释放</el-button
         >
       </div>
     </div>

+ 9 - 10
src/modules/questions/views/PaperStructure.vue

@@ -42,25 +42,24 @@
           </el-select>
         </el-form-item>
         <el-form-item>
-          <el-button type="danger" @click="searchFrom"
-            ><i class="el-icon-search"></i> 查询</el-button
-          >
-          <el-button type="danger" plain @click="resetForm">
-            <i class="el-icon-refresh"></i>重置</el-button
-          >
+          <el-button type="danger" @click="searchFrom">查询</el-button>
+          <el-button type="danger" plain @click="resetForm">重置</el-button>
         </el-form-item>
       </el-form>
       <div class="part-box-action">
         <el-button
           type="danger"
           plain
+          icon="icon icon-delete"
           :disabled="noBatchSelected"
           @click="deletePapers"
-        >
-          <i class="el-icon-delete"></i> 删除
+          >删除
         </el-button>
-        <el-button type="primary" @click="addPaperStruct"
-          ><i class="el-icon-plus"></i> 新增</el-button
+        <el-button
+          type="primary"
+          icon="icon icon-plus-white"
+          @click="addPaperStruct"
+          >新增</el-button
         >
       </div>
     </div>

+ 0 - 9
src/modules/questions/views/Question.vue

@@ -763,12 +763,3 @@ export default {
   },
 };
 </script>
-<style scoped>
-.select_width {
-  width: 150px;
-}
-.row_quesBody >>> p {
-  text-overflow: ellipsis;
-  overflow: hidden;
-}
-</style>

+ 1 - 1
src/modules/questions/views/QuestionInfo.vue

@@ -85,7 +85,7 @@
               :key="content.id"
               style="margin-right: 5px"
               type="primary"
-              size="mini"
+              effect="dark"
             >
               {{ content.courseProperty.name }}
             </el-tag>

+ 2 - 2
src/modules/questions/views/School.vue

@@ -215,7 +215,7 @@
                 content="启用"
                 placement="left"
               >
-                <i class="el-icon-success" style="color: #1fb46f"></i>
+                <i class="icon icon-right"></i>
               </el-tooltip>
             </span>
             <span v-else>
@@ -225,7 +225,7 @@
                 content="禁用"
                 placement="left"
               >
-                <i class="el-icon-error" style="color: #ff7240"></i>
+                <i class="icon icon-error"></i>
               </el-tooltip>
             </span>
           </span>

+ 9 - 4
src/modules/questions/views/ViewPaper.vue

@@ -27,11 +27,15 @@
         </div>
       </div>
       <div class="header-btns">
-        <el-button type="primary" @click="releasePaper(paper.id)"
-          ><i class="el-icon-share"></i>释放</el-button
+        <el-button
+          type="primary"
+          plain
+          icon="icon icon-share"
+          @click="releasePaper(paper.id)"
+          >释放</el-button
         >
-        <el-button type="danger" plain @click="back"
-          ><i class="el-icon-arrow-left"></i> 返回</el-button
+        <el-button type="danger" plain icon="icon icon-back" @click="back"
+          >返回</el-button
         >
       </div>
     </div>
@@ -360,6 +364,7 @@
                 style="margin-right: 5px"
                 :closable="false"
                 type="primary"
+                effect="dark"
               >
                 {{ content.courseProperty.name }}
               </el-tag>

+ 8 - 12
src/modules/questions/views/user.vue

@@ -97,7 +97,7 @@
           <el-button
             type="success"
             plain
-            icon="el-icon-check"
+            icon="icon icon-play"
             :disabled="noBatchSelected"
             @click="enableByIds"
             >启用
@@ -105,7 +105,7 @@
           <el-button
             type="danger"
             plain
-            icon="el-icon-close"
+            icon="icon icon-delete"
             :disabled="noBatchSelected"
             @click="disableByIds"
             >禁用
@@ -113,21 +113,17 @@
         </div>
         <div>
           <el-button
-            size="small"
             type="primary"
-            icon="el-icon-plus"
+            icon="icon icon-plus-white"
             @click="openAddingDialog"
-          >
-            新增
+            >新增
           </el-button>
           <el-button
-            size="small"
             type="primary"
             plain
-            icon="el-icon-upload2"
+            icon="icon icon-import"
             @click="impUser"
-          >
-            导入
+            >导入
           </el-button>
         </div>
       </div>
@@ -188,7 +184,7 @@
                 content="启用"
                 placement="left"
               >
-                <i class="el-icon-success" style="color: #1fb46f"></i>
+                <i class="icon icon-right"></i>
               </el-tooltip>
             </span>
             <span v-else>
@@ -198,7 +194,7 @@
                 content="禁用"
                 placement="left"
               >
-                <i class="el-icon-error" style="color: #ff7240"></i>
+                <i class="icon icon-error"></i>
               </el-tooltip>
             </span>
           </span>

+ 1 - 1
src/plugins/element.js

@@ -1,6 +1,6 @@
 import Vue from "vue";
 import Element from "element-ui";
 // import "element-ui/lib/theme-chalk/index.css";
-import "../styles/element-variables.scss";
+import "../assets/styles/element-variables.scss";
 
 Vue.use(Element, { size: "medium" });

+ 0 - 380
src/styles/base.scss

@@ -1,380 +0,0 @@
-/* common */
-h1,
-h2,
-h3,
-h4,
-h5,
-h6,
-label {
-  margin: 0;
-}
-
-/* part */
-.part-box {
-  margin-bottom: 20px;
-  background-color: #fff;
-  border-radius: 20px;
-  padding: 30px;
-}
-.part-box-border {
-  border: 1px solid #eff0f5;
-}
-
-.el-form.part-filter-form {
-  padding: 20px 0 5px;
-
-  /* element-ui*/
-  .el-form-item {
-    margin-bottom: 15px;
-    border: 1px solid #dcdfe6;
-    border-radius: 5px;
-
-    &:last-child {
-      border: none;
-    }
-  }
-  .el-form-item__label {
-    margin: 0;
-    padding: 0 20px 0 15px;
-    color: #9a9dab;
-    position: relative;
-
-    &::after {
-      content: "";
-      position: absolute;
-      top: 5px;
-      bottom: 5px;
-      width: 3px;
-      right: 0;
-      background-color: #eff0f5;
-    }
-  }
-  .el-input__inner {
-    border: none;
-  }
-  .el-input.is-disabled {
-    .el-input__inner {
-      background-color: #fff;
-    }
-  }
-}
-
-.part-box-title {
-  font-size: 20px;
-  line-height: 1;
-  padding-bottom: 20px;
-  border-bottom: 1px solid #eff0f5;
-  margin: 0;
-}
-.part-box-header {
-  padding-bottom: 20px;
-  border-bottom: 1px solid #eff0f5;
-  display: flex;
-  align-items: center;
-  justify-content: space-between;
-  .part-box-title {
-    font-size: 20px;
-    line-height: 1;
-    margin: 0;
-    padding: 0;
-    border: none;
-  }
-}
-.part-box-action {
-  display: flex;
-  align-items: center;
-  justify-content: space-between;
-  border-top: 1px solid #eff0f5;
-  padding-top: 20px;
-}
-.part-page {
-  margin-top: 15px;
-  text-align: right;
-}
-.part-none {
-  padding: 100px;
-  font-size: 20px;
-  color: #aaa;
-  text-align: center;
-}
-// other
-.box-justify {
-  display: flex;
-  align-items: center;
-  justify-content: space-between;
-}
-.padding-tb-20 {
-  padding: 20px 0;
-}
-.padding-none {
-  padding: 0 !important;
-}
-.margin-right-5 {
-  margin-right: 5px;
-}
-.margin-right-10 {
-  margin-right: 10px;
-}
-.margin-bottom-15 {
-  margin-bottom: 15px;
-}
-.margin-tb-20 {
-  margin: 20px 0;
-}
-.line-seperator {
-  border-bottom: 1px solid #eff0f5;
-  margin: 15px 0;
-}
-.tiny-btn {
-  padding: 0;
-  height: 28px;
-  width: 28px;
-  line-height: 28px;
-  border-radius: 6px;
-  border: none;
-  background-color: #e2e4ec;
-  font-weight: 600;
-  font-size: 14px;
-}
-.tips-info {
-  color: #9a9dab;
-  height: 25px;
-  line-height: 25px;
-}
-
-/* 检索框的长度 */
-.select_width {
-  width: 150px;
-}
-.search_width {
-  width: 150px;
-}
-.search_width_80px {
-  width: 80px;
-}
-.search_width_120px {
-  width: 120px;
-}
-.form_width {
-  width: 200px;
-}
-/* 查询按钮与检索框对齐 */
-.search_down {
-  margin-top: 3.3px;
-}
-/* 操作按钮左移*/
-.operate_left {
-  margin-left: 2.6px;
-}
-.button_left {
-  margin-left: 10px;
-}
-.paper_title {
-  background-color: bisque;
-  width: 400px;
-  border-top-right-radius: 15px;
-  border-bottom-right-radius: 15px;
-}
-.row_header_word {
-  font-size: 14px;
-  font-weight: bold;
-}
-.row_quesBody {
-  cursor: pointer;
-  white-space: nowrap;
-  overflow: hidden;
-}
-.row_quesBody p {
-  font-size: 13px;
-}
-.dialog_input_width {
-  width: 200px;
-}
-.margin_top_10 {
-  margin-top: 10px;
-}
-.margin_left_120 {
-  margin-left: 120px;
-}
-.margin_left_10 {
-  margin-left: 10px;
-}
-.error_message {
-  color: #f56c6c;
-  font-size: 12px;
-  line-height: 1;
-  padding-top: 4px;
-}
-.error_other {
-  position: relative;
-  top: auto;
-  left: auto;
-  display: inline-block;
-  margin-left: 10px;
-}
-.check_remark {
-  content: "*";
-  color: #f56c6c;
-  margin-right: 4px;
-  box-sizing: border-box;
-}
-.form_font_size {
-  margin-left: 15px;
-  padding-top: 7px;
-}
-.margin_left_30 {
-  margin-left: 30%;
-}
-.margin_left_40 {
-  margin-left: 40%;
-}
-.font_length {
-  text-overflow: ellipsis;
-  overflow: hidden;
-}
-.message_style {
-  color: #f56c6c;
-  margin-bottom: -20px;
-}
-
-// customize element-ui
-.side-dialog {
-  position: absolute;
-  margin: 0 !important;
-  top: 0;
-  right: 0;
-  height: 100%;
-  box-shadow: 0 0 30px #ccdaec;
-  .el-dialog__header {
-    position: absolute;
-    top: 0;
-    left: 0;
-    right: 0;
-    padding: 20px;
-    &::after {
-      content: "";
-      position: absolute;
-      left: 20px;
-      right: 20px;
-      bottom: 0;
-      border-bottom: 1px solid #eff0f5;
-    }
-  }
-  .el-dialog__body {
-    position: absolute;
-    left: 0;
-    right: 0;
-    top: 70px;
-    bottom: 80px;
-    padding: 20px;
-    overflow: auto;
-  }
-  .el-dialog__footer {
-    position: absolute;
-    bottom: 0;
-    left: 0;
-    right: 0;
-    padding: 20px;
-  }
-  // other
-  .el-form {
-    &-item {
-      margin-bottom: 16px;
-      &__label {
-        margin: 0;
-      }
-      &__error {
-        padding-top: 2px;
-      }
-    }
-  }
-}
-// el-form
-.el-form-linemess {
-  .el-form {
-    &-item {
-      margin-bottom: 5px;
-    }
-  }
-}
-// el-button
-.el-button--danger.is-plain,
-.el-button--success.is-plain,
-.el-button--primary.is-plain,
-.el-button--warning.is-plain {
-  color: #434555;
-  background-color: #fcfcfd;
-  border-color: #e2e4ec;
-
-  &.is-disabled {
-    color: #999 !important;
-    background-color: #fcfcfd !important;
-    border-color: #e2e4ec !important;
-  }
-}
-.el-button--info {
-  color: #fff;
-  background: #29abff;
-  border: 1px solid #29abff;
-  &:hover,
-  &:focus {
-    color: #fff;
-    background: mix(#fff, #29abff, 20%);
-    border: 1px solid #29abff;
-  }
-}
-// .el-upload
-.el-upload {
-  &-list__item {
-    &.is-ready {
-      background-color: #f6f6fa;
-      color: #434555;
-      padding: 5px;
-    }
-    .el-icon-close {
-      top: 10px;
-    }
-    .el-icon-document {
-      color: #ff7240;
-    }
-  }
-}
-// .el-message-box
-.el-message-box {
-  border-radius: 10px;
-  .el-message-box__header {
-    padding: 20px 20px 10px;
-  }
-  .el-message-box__content {
-    padding: 10px 30px;
-    min-height: 60px;
-  }
-  .el-message-box__status {
-    left: -5px;
-    font-size: 30px !important;
-  }
-}
-// .el-input-number
-.el-input-number--medium {
-  .el-input-number__increase,
-  .el-input-number__decrease {
-    height: 28px;
-    width: 28px;
-    line-height: 28px;
-    top: 4px;
-    border-radius: 6px;
-    border: none;
-    background-color: #e2e4ec;
-    font-weight: 600;
-    font-size: 14px;
-    > i {
-      font-weight: 600;
-    }
-  }
-  .el-input-number__increase {
-    right: 4px;
-  }
-  .el-input-number__decrease {
-    left: 4px;
-  }
-}

+ 1 - 24
src/styles/global.css

@@ -1,31 +1,8 @@
 @import "./elementuiCustomize.css";
 @import "./nprogress.css";
 
-/* browse style */
-::-webkit-scrollbar {
-  width: 8px;
-  height: 8px;
-  background: transparent;
-}
-::-webkit-scrollbar-button {
-  display: none;
-}
-::-webkit-scrollbar-track {
-  background: transparent;
-}
-::-webkit-scrollbar-thumb {
-  border-radius: 8px;
-  background: #8c94ac;
-}
-::-webkit-scrollbar-corner {
-  background: transparent;
-}
-::-webkit-scrollbar-resizer {
-  background: transparent;
-}
-
 body {
-  font-family: "Helvetica Neue", Helvetica, "PingFang SC", "Hiragino Sans GB",
+  font-family: "PingFang SC", "Helvetica Neue", Helvetica, "Hiragino Sans GB",
     "Microsoft YaHei", "微软雅黑", Arial, sans-serif;
   -webkit-font-smoothing: antialiased;
   -moz-osx-font-smoothing: grayscale;