Prechádzať zdrojové kódy

升级依赖
更新eslintrc,并修复问题

dusenyao 3 rokov pred
rodič
commit
c19436f94f
35 zmenil súbory, kde vykonal 747 pridanie a 258 odobranie
  1. 1 1
      .eslintrc.js
  2. 289 101
      package-lock.json
  3. 6 6
      package.json
  4. 6 2
      src/common/show_file/index.vue
  5. 3 1
      src/components/StepBar.vue
  6. 3 1
      src/components/course/FinishCourseware.vue
  7. 3 1
      src/components/live/SelectMaterial.vue
  8. 6 2
      src/components/payment/Audit.vue
  9. 6 2
      src/components/select/SelectCourse.vue
  10. 9 3
      src/components/select/SelectTeacher.vue
  11. 12 4
      src/components/select/SelectTemplate.vue
  12. 3 1
      src/layouts/components/BreadCrumb.vue
  13. 51 17
      src/views/course_details/index.vue
  14. 15 5
      src/views/live/SelectDevice.vue
  15. 15 5
      src/views/live/student/audit.vue
  16. 15 5
      src/views/live/student/group.vue
  17. 15 5
      src/views/live/student/index.vue
  18. 30 10
      src/views/live/teacher/group.vue
  19. 24 8
      src/views/live/teacher/index.vue
  20. 3 1
      src/views/login/index.vue
  21. 27 9
      src/views/main/TaskList.vue
  22. 9 3
      src/views/main/TemplateList.vue
  23. 1 0
      src/views/main/components/MonthlyCalendar.vue
  24. 9 3
      src/views/main/curricula_list/student.vue
  25. 6 2
      src/views/main/curricula_list/teacher.vue
  26. 9 3
      src/views/task_details/TaskTop.vue
  27. 15 5
      src/views/task_details/student/index.vue
  28. 18 6
      src/views/task_details/teacher/index.vue
  29. 9 3
      src/views/teacher/create_course/index.vue
  30. 6 2
      src/views/teacher/create_course/step_table/AddItem.vue
  31. 21 7
      src/views/teacher/create_course/step_table/CourseInfo.vue
  32. 39 13
      src/views/teacher/create_course/step_table/CreateTask.vue
  33. 45 15
      src/views/teacher/create_course/step_table/NewTask.vue
  34. 12 4
      src/views/teacher/create_course/step_table/SelectBook.vue
  35. 6 2
      src/views/teacher/student_list/index.vue

+ 1 - 1
.eslintrc.js

@@ -33,7 +33,7 @@ module.exports = {
   rules: {
     'no-console': process.env.NODE_ENV === 'production' ? 'warn' : 'off',
     'no-debugger': process.env.NODE_ENV === 'production' ? 'warn' : 'off',
-    'vue/singleline-html-element-content-newline': 0,
+    'vue/multi-word-component-names': 0,
     'vue/max-attributes-per-line': [
       2,
       {

+ 289 - 101
package-lock.json

@@ -11,7 +11,7 @@
         "ailp-book-question-ui": "file:../ailp-book-question-ui-0.1.1.tgz",
         "awe-dnd": "^0.3.4",
         "axios": "^0.24.0",
-        "book-ui": "file:../book-ui-0.1.26.tgz",
+        "book-ui": "file:../book-ui-0.2.2.tgz",
         "core-js": "^3.19.1",
         "dayjs": "^1.10.7",
         "element-ui": "^2.15.6",
@@ -22,7 +22,7 @@
         "normalize.css": "^8.0.1",
         "nprogress": "^0.2.0",
         "vue": "^2.6.14",
-        "vue-i18n": "^8.24.0",
+        "vue-i18n": "^8.26.7",
         "vue-pdf": "^4.3.0",
         "vue-router": "^3.5.3",
         "vue-video-player": "^5.0.2",
@@ -45,18 +45,18 @@
         "compression-webpack-plugin": "^6.1.1",
         "eslint": "^7.32.0",
         "eslint-plugin-prettier": "^4.0.0",
-        "eslint-plugin-vue": "^7.20.0",
+        "eslint-plugin-vue": "^8.1.1",
         "html-webpack-plugin": "^5.3.1",
-        "postcss": "^8.4.1",
+        "postcss": "^8.4.4",
         "postcss-html": "^1.3.0",
-        "prettier": "2.4.1",
-        "sass": "^1.43.4",
+        "prettier": "2.5.0",
+        "sass": "^1.43.5",
         "sass-loader": "^10.2.0",
         "script-ext-html-webpack-plugin": "^2.1.5",
         "stylelint": "^14.0.1",
         "stylelint-config-prettier": "^9.0.3",
         "stylelint-config-recess-order": "^3.0.0",
-        "stylelint-config-recommended-vue": "^1.0.0",
+        "stylelint-config-recommended-vue": "^1.1.0",
         "stylelint-config-sass-guidelines": "^9.0.1",
         "stylelint-config-standard-scss": "^3.0.0",
         "stylelint-declaration-block-no-ignored-properties": "^2.5.0",
@@ -5928,9 +5928,9 @@
       "dev": true
     },
     "node_modules/book-ui": {
-      "version": "0.1.26",
-      "resolved": "file:../book-ui-0.1.26.tgz",
-      "integrity": "sha512-bCfAlnlxmOFL+dqWIRHxqIdBJjYDWrnOIx9TrrnSfDOUqCckJFo65FMZC46/o6zFJRPfnP9hd94AjU6VivtTXA==",
+      "version": "0.2.2",
+      "resolved": "file:../book-ui-0.2.2.tgz",
+      "integrity": "sha512-xwYNmMgT4FimP1S52QpR+kZFpz3m6ESPlZbRpsVCoqWTcyfhwXfeU6Zj5bz12fU+866DIFZak+F9hwbZ7ByA2Q==",
       "dependencies": {
         "awe-dnd": "^0.3.4",
         "axios": "^0.21.1",
@@ -9615,23 +9615,83 @@
       }
     },
     "node_modules/eslint-plugin-vue": {
-      "version": "7.20.0",
-      "resolved": "https://registry.npmjs.org/eslint-plugin-vue/-/eslint-plugin-vue-7.20.0.tgz",
-      "integrity": "sha512-oVNDqzBC9h3GO+NTgWeLMhhGigy6/bQaQbHS+0z7C4YEu/qK/yxHvca/2PTZtGNPsCrHwOTgKMrwu02A9iPBmw==",
+      "version": "8.1.1",
+      "resolved": "https://registry.npmjs.org/eslint-plugin-vue/-/eslint-plugin-vue-8.1.1.tgz",
+      "integrity": "sha512-rx64IrlhdfPya6u2V5ukOGiLCTgaCBdMSpczLVqyo8A0l+Vbo+lzvIfEUfAQ2auj+MF6y0TwxLorzdCIzHunnw==",
       "dev": true,
       "dependencies": {
-        "eslint-utils": "^2.1.0",
+        "eslint-utils": "^3.0.0",
         "natural-compare": "^1.4.0",
-        "semver": "^6.3.0",
-        "vue-eslint-parser": "^7.10.0"
+        "semver": "^7.3.5",
+        "vue-eslint-parser": "^8.0.1"
       },
       "engines": {
-        "node": ">=8.10"
+        "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
       },
       "peerDependencies": {
         "eslint": "^6.2.0 || ^7.0.0 || ^8.0.0"
       }
     },
+    "node_modules/eslint-plugin-vue/node_modules/eslint-utils": {
+      "version": "3.0.0",
+      "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz",
+      "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==",
+      "dev": true,
+      "dependencies": {
+        "eslint-visitor-keys": "^2.0.0"
+      },
+      "engines": {
+        "node": "^10.0.0 || ^12.0.0 || >= 14.0.0"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/mysticatea"
+      },
+      "peerDependencies": {
+        "eslint": ">=5"
+      }
+    },
+    "node_modules/eslint-plugin-vue/node_modules/eslint-visitor-keys": {
+      "version": "2.1.0",
+      "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz",
+      "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==",
+      "dev": true,
+      "engines": {
+        "node": ">=10"
+      }
+    },
+    "node_modules/eslint-plugin-vue/node_modules/lru-cache": {
+      "version": "6.0.0",
+      "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
+      "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
+      "dev": true,
+      "dependencies": {
+        "yallist": "^4.0.0"
+      },
+      "engines": {
+        "node": ">=10"
+      }
+    },
+    "node_modules/eslint-plugin-vue/node_modules/semver": {
+      "version": "7.3.5",
+      "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz",
+      "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==",
+      "dev": true,
+      "dependencies": {
+        "lru-cache": "^6.0.0"
+      },
+      "bin": {
+        "semver": "bin/semver.js"
+      },
+      "engines": {
+        "node": ">=10"
+      }
+    },
+    "node_modules/eslint-plugin-vue/node_modules/yallist": {
+      "version": "4.0.0",
+      "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
+      "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
+      "dev": true
+    },
     "node_modules/eslint-scope": {
       "version": "4.0.3",
       "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-4.0.3.tgz",
@@ -16644,9 +16704,9 @@
       }
     },
     "node_modules/postcss": {
-      "version": "8.4.1",
-      "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.1.tgz",
-      "integrity": "sha512-WqLs/TTzXdG+/A4ZOOK9WDZiikrRaiA+eoEb/jz2DT9KUhMNHgP7yKPO8vwi62ZCsb703Gwb7BMZwDzI54Y2Ag==",
+      "version": "8.4.4",
+      "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.4.tgz",
+      "integrity": "sha512-joU6fBsN6EIer28Lj6GDFoC/5yOZzLCfn0zHAn/MYXI7aPt4m4hK5KC5ovEZXy+lnCjmYIbQWngvju2ddyEr8Q==",
       "dev": true,
       "dependencies": {
         "nanoid": "^3.1.30",
@@ -18606,9 +18666,9 @@
       }
     },
     "node_modules/prettier": {
-      "version": "2.4.1",
-      "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.4.1.tgz",
-      "integrity": "sha512-9fbDAXSBcc6Bs1mZrDYb3XKzDLm4EXXL9sC1LqKP5rZkT6KRr/rf9amVUcODVXgguK/isJz0d0hP72WeaKWsvA==",
+      "version": "2.5.0",
+      "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.5.0.tgz",
+      "integrity": "sha512-FM/zAKgWTxj40rH03VxzIPdXmj39SwSjwG0heUcNFwI+EMZJnY93yAiKXM3dObIKAM5TA88werc8T/EwhB45eg==",
       "dev": true,
       "bin": {
         "prettier": "bin-prettier.js"
@@ -19814,9 +19874,9 @@
       }
     },
     "node_modules/sass": {
-      "version": "1.43.4",
-      "resolved": "https://registry.npmjs.org/sass/-/sass-1.43.4.tgz",
-      "integrity": "sha512-/ptG7KE9lxpGSYiXn7Ar+lKOv37xfWsZRtFYal2QHNigyVQDx685VFT/h7ejVr+R8w7H4tmUgtulsKl5YpveOg==",
+      "version": "1.43.5",
+      "resolved": "https://registry.npmjs.org/sass/-/sass-1.43.5.tgz",
+      "integrity": "sha512-WuNm+eAryMgQluL7Mbq9M4EruyGGMyal7Lu58FfnRMVWxgUzIvI7aSn60iNt3kn5yZBMR7G84fAGDcwqOF5JOg==",
       "dev": true,
       "dependencies": {
         "chokidar": ">=3.0.0 <4.0.0"
@@ -21233,9 +21293,9 @@
       }
     },
     "node_modules/stylelint-config-recommended-vue": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npmjs.org/stylelint-config-recommended-vue/-/stylelint-config-recommended-vue-1.0.0.tgz",
-      "integrity": "sha512-F1lq75ZcMr+wfn2QaqJ52A75nJqLktWqEmRc/ZTjhhk+/XaSoZxTHf7SeT/tdE/Bhe+TuJxqM6cxZS/zRyM1bQ==",
+      "version": "1.1.0",
+      "resolved": "https://registry.npmjs.org/stylelint-config-recommended-vue/-/stylelint-config-recommended-vue-1.1.0.tgz",
+      "integrity": "sha512-6O9gHdZ5nmnpq+qJv19pLEcZTZ/BV7ZzBmtl0J/kx92tGwe4CRqoO//SswibLWQP/1VwOaTrjJxN497pNfw7VA==",
       "dev": true,
       "dependencies": {
         "stylelint-config-html": ">=1.0.0",
@@ -23693,33 +23753,33 @@
       }
     },
     "node_modules/vue-eslint-parser": {
-      "version": "7.11.0",
-      "resolved": "https://registry.npmjs.org/vue-eslint-parser/-/vue-eslint-parser-7.11.0.tgz",
-      "integrity": "sha512-qh3VhDLeh773wjgNTl7ss0VejY9bMMa0GoDG2fQVyDzRFdiU3L7fw74tWZDHNQXdZqxO3EveQroa9ct39D2nqg==",
+      "version": "8.0.1",
+      "resolved": "https://registry.npmjs.org/vue-eslint-parser/-/vue-eslint-parser-8.0.1.tgz",
+      "integrity": "sha512-lhWjDXJhe3UZw2uu3ztX51SJAPGPey1Tff2RK3TyZURwbuI4vximQLzz4nQfCv8CZq4xx7uIiogHMMoSJPr33A==",
       "dev": true,
       "dependencies": {
-        "debug": "^4.1.1",
-        "eslint-scope": "^5.1.1",
-        "eslint-visitor-keys": "^1.1.0",
-        "espree": "^6.2.1",
+        "debug": "^4.3.2",
+        "eslint-scope": "^6.0.0",
+        "eslint-visitor-keys": "^3.0.0",
+        "espree": "^9.0.0",
         "esquery": "^1.4.0",
         "lodash": "^4.17.21",
-        "semver": "^6.3.0"
+        "semver": "^7.3.5"
       },
       "engines": {
-        "node": ">=8.10"
+        "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
       },
       "funding": {
         "url": "https://github.com/sponsors/mysticatea"
       },
       "peerDependencies": {
-        "eslint": ">=5.0.0"
+        "eslint": ">=6.0.0"
       }
     },
     "node_modules/vue-eslint-parser/node_modules/acorn": {
-      "version": "7.4.1",
-      "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz",
-      "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==",
+      "version": "8.6.0",
+      "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.6.0.tgz",
+      "integrity": "sha512-U1riIR+lBSNi3IbxtaHOIKdH8sLFv3NYfNv8sg7ZsNhcfl4HF2++BfqqrNAxoCLQW1iiylOj76ecnaUxz+z9yw==",
       "dev": true,
       "bin": {
         "acorn": "bin/acorn"
@@ -23729,32 +23789,83 @@
       }
     },
     "node_modules/vue-eslint-parser/node_modules/eslint-scope": {
-      "version": "5.1.1",
-      "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz",
-      "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==",
+      "version": "6.0.0",
+      "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-6.0.0.tgz",
+      "integrity": "sha512-uRDL9MWmQCkaFus8RF5K9/L/2fn+80yoW3jkD53l4shjCh26fCtvJGasxjUqP5OT87SYTxCVA3BwTUzuELx9kA==",
       "dev": true,
       "dependencies": {
         "esrecurse": "^4.3.0",
-        "estraverse": "^4.1.1"
+        "estraverse": "^5.2.0"
       },
       "engines": {
-        "node": ">=8.0.0"
+        "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+      }
+    },
+    "node_modules/vue-eslint-parser/node_modules/eslint-visitor-keys": {
+      "version": "3.1.0",
+      "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.1.0.tgz",
+      "integrity": "sha512-yWJFpu4DtjsWKkt5GeNBBuZMlNcYVs6vRCLoCVEJrTjaSB6LC98gFipNK/erM2Heg/E8mIK+hXG/pJMLK+eRZA==",
+      "dev": true,
+      "engines": {
+        "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
       }
     },
     "node_modules/vue-eslint-parser/node_modules/espree": {
-      "version": "6.2.1",
-      "resolved": "https://registry.npmjs.org/espree/-/espree-6.2.1.tgz",
-      "integrity": "sha512-ysCxRQY3WaXJz9tdbWOwuWr5Y/XrPTGX9Kiz3yoUXwW0VZ4w30HTkQLaGx/+ttFjF8i+ACbArnB4ce68a9m5hw==",
+      "version": "9.1.0",
+      "resolved": "https://registry.npmjs.org/espree/-/espree-9.1.0.tgz",
+      "integrity": "sha512-ZgYLvCS1wxOczBYGcQT9DDWgicXwJ4dbocr9uYN+/eresBAUuBu+O4WzB21ufQ/JqQT8gyp7hJ3z8SHii32mTQ==",
       "dev": true,
       "dependencies": {
-        "acorn": "^7.1.1",
-        "acorn-jsx": "^5.2.0",
-        "eslint-visitor-keys": "^1.1.0"
+        "acorn": "^8.6.0",
+        "acorn-jsx": "^5.3.1",
+        "eslint-visitor-keys": "^3.1.0"
       },
       "engines": {
-        "node": ">=6.0.0"
+        "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+      }
+    },
+    "node_modules/vue-eslint-parser/node_modules/estraverse": {
+      "version": "5.3.0",
+      "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz",
+      "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==",
+      "dev": true,
+      "engines": {
+        "node": ">=4.0"
+      }
+    },
+    "node_modules/vue-eslint-parser/node_modules/lru-cache": {
+      "version": "6.0.0",
+      "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
+      "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
+      "dev": true,
+      "dependencies": {
+        "yallist": "^4.0.0"
+      },
+      "engines": {
+        "node": ">=10"
+      }
+    },
+    "node_modules/vue-eslint-parser/node_modules/semver": {
+      "version": "7.3.5",
+      "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz",
+      "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==",
+      "dev": true,
+      "dependencies": {
+        "lru-cache": "^6.0.0"
+      },
+      "bin": {
+        "semver": "bin/semver.js"
+      },
+      "engines": {
+        "node": ">=10"
       }
     },
+    "node_modules/vue-eslint-parser/node_modules/yallist": {
+      "version": "4.0.0",
+      "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
+      "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
+      "dev": true
+    },
     "node_modules/vue-hot-reload-api": {
       "version": "2.3.4",
       "resolved": "https://registry.npmjs.org/vue-hot-reload-api/-/vue-hot-reload-api-2.3.4.tgz",
@@ -23762,9 +23873,9 @@
       "dev": true
     },
     "node_modules/vue-i18n": {
-      "version": "8.24.4",
-      "resolved": "https://registry.npmjs.org/vue-i18n/-/vue-i18n-8.24.4.tgz",
-      "integrity": "sha512-RZE94WUAGxEiBAANxQ0pptbRwDkNKNSXl3fnJslpFOxVMF6UkUtMDSuYGuW2blDrVgweIXVpethOVkYoNNT9xw=="
+      "version": "8.26.7",
+      "resolved": "https://registry.npmjs.org/vue-i18n/-/vue-i18n-8.26.7.tgz",
+      "integrity": "sha512-7apa5PvRg1YCLoraE3lOgpCG8hJGupLCtywQWedWsgBbvF0TOgFvhitqK9xRH0PBGG1G8aiJz9oklyNDFfDxLg=="
     },
     "node_modules/vue-jest": {
       "version": "3.0.7",
@@ -29612,8 +29723,8 @@
       }
     },
     "book-ui": {
-      "version": "file:..\\book-ui-0.1.26.tgz",
-      "integrity": "sha512-bCfAlnlxmOFL+dqWIRHxqIdBJjYDWrnOIx9TrrnSfDOUqCckJFo65FMZC46/o6zFJRPfnP9hd94AjU6VivtTXA==",
+      "version": "file:..\\book-ui-0.2.2.tgz",
+      "integrity": "sha512-xwYNmMgT4FimP1S52QpR+kZFpz3m6ESPlZbRpsVCoqWTcyfhwXfeU6Zj5bz12fU+866DIFZak+F9hwbZ7ByA2Q==",
       "requires": {
         "awe-dnd": "^0.3.4",
         "axios": "^0.21.1",
@@ -32824,15 +32935,56 @@
       }
     },
     "eslint-plugin-vue": {
-      "version": "7.20.0",
-      "resolved": "https://registry.npmjs.org/eslint-plugin-vue/-/eslint-plugin-vue-7.20.0.tgz",
-      "integrity": "sha512-oVNDqzBC9h3GO+NTgWeLMhhGigy6/bQaQbHS+0z7C4YEu/qK/yxHvca/2PTZtGNPsCrHwOTgKMrwu02A9iPBmw==",
+      "version": "8.1.1",
+      "resolved": "https://registry.npmjs.org/eslint-plugin-vue/-/eslint-plugin-vue-8.1.1.tgz",
+      "integrity": "sha512-rx64IrlhdfPya6u2V5ukOGiLCTgaCBdMSpczLVqyo8A0l+Vbo+lzvIfEUfAQ2auj+MF6y0TwxLorzdCIzHunnw==",
       "dev": true,
       "requires": {
-        "eslint-utils": "^2.1.0",
+        "eslint-utils": "^3.0.0",
         "natural-compare": "^1.4.0",
-        "semver": "^6.3.0",
-        "vue-eslint-parser": "^7.10.0"
+        "semver": "^7.3.5",
+        "vue-eslint-parser": "^8.0.1"
+      },
+      "dependencies": {
+        "eslint-utils": {
+          "version": "3.0.0",
+          "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz",
+          "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==",
+          "dev": true,
+          "requires": {
+            "eslint-visitor-keys": "^2.0.0"
+          }
+        },
+        "eslint-visitor-keys": {
+          "version": "2.1.0",
+          "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz",
+          "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==",
+          "dev": true
+        },
+        "lru-cache": {
+          "version": "6.0.0",
+          "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
+          "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
+          "dev": true,
+          "requires": {
+            "yallist": "^4.0.0"
+          }
+        },
+        "semver": {
+          "version": "7.3.5",
+          "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz",
+          "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==",
+          "dev": true,
+          "requires": {
+            "lru-cache": "^6.0.0"
+          }
+        },
+        "yallist": {
+          "version": "4.0.0",
+          "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
+          "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
+          "dev": true
+        }
       }
     },
     "eslint-scope": {
@@ -38152,9 +38304,9 @@
       "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs="
     },
     "postcss": {
-      "version": "8.4.1",
-      "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.1.tgz",
-      "integrity": "sha512-WqLs/TTzXdG+/A4ZOOK9WDZiikrRaiA+eoEb/jz2DT9KUhMNHgP7yKPO8vwi62ZCsb703Gwb7BMZwDzI54Y2Ag==",
+      "version": "8.4.4",
+      "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.4.tgz",
+      "integrity": "sha512-joU6fBsN6EIer28Lj6GDFoC/5yOZzLCfn0zHAn/MYXI7aPt4m4hK5KC5ovEZXy+lnCjmYIbQWngvju2ddyEr8Q==",
       "dev": true,
       "requires": {
         "nanoid": "^3.1.30",
@@ -39666,9 +39818,9 @@
       "dev": true
     },
     "prettier": {
-      "version": "2.4.1",
-      "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.4.1.tgz",
-      "integrity": "sha512-9fbDAXSBcc6Bs1mZrDYb3XKzDLm4EXXL9sC1LqKP5rZkT6KRr/rf9amVUcODVXgguK/isJz0d0hP72WeaKWsvA==",
+      "version": "2.5.0",
+      "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.5.0.tgz",
+      "integrity": "sha512-FM/zAKgWTxj40rH03VxzIPdXmj39SwSjwG0heUcNFwI+EMZJnY93yAiKXM3dObIKAM5TA88werc8T/EwhB45eg==",
       "dev": true
     },
     "prettier-linter-helpers": {
@@ -40593,9 +40745,9 @@
       }
     },
     "sass": {
-      "version": "1.43.4",
-      "resolved": "https://registry.npmjs.org/sass/-/sass-1.43.4.tgz",
-      "integrity": "sha512-/ptG7KE9lxpGSYiXn7Ar+lKOv37xfWsZRtFYal2QHNigyVQDx685VFT/h7ejVr+R8w7H4tmUgtulsKl5YpveOg==",
+      "version": "1.43.5",
+      "resolved": "https://registry.npmjs.org/sass/-/sass-1.43.5.tgz",
+      "integrity": "sha512-WuNm+eAryMgQluL7Mbq9M4EruyGGMyal7Lu58FfnRMVWxgUzIvI7aSn60iNt3kn5yZBMR7G84fAGDcwqOF5JOg==",
       "dev": true,
       "requires": {
         "chokidar": ">=3.0.0 <4.0.0"
@@ -42074,9 +42226,9 @@
       }
     },
     "stylelint-config-recommended-vue": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npmjs.org/stylelint-config-recommended-vue/-/stylelint-config-recommended-vue-1.0.0.tgz",
-      "integrity": "sha512-F1lq75ZcMr+wfn2QaqJ52A75nJqLktWqEmRc/ZTjhhk+/XaSoZxTHf7SeT/tdE/Bhe+TuJxqM6cxZS/zRyM1bQ==",
+      "version": "1.1.0",
+      "resolved": "https://registry.npmjs.org/stylelint-config-recommended-vue/-/stylelint-config-recommended-vue-1.1.0.tgz",
+      "integrity": "sha512-6O9gHdZ5nmnpq+qJv19pLEcZTZ/BV7ZzBmtl0J/kx92tGwe4CRqoO//SswibLWQP/1VwOaTrjJxN497pNfw7VA==",
       "dev": true,
       "requires": {
         "stylelint-config-html": ">=1.0.0",
@@ -43660,46 +43812,82 @@
       }
     },
     "vue-eslint-parser": {
-      "version": "7.11.0",
-      "resolved": "https://registry.npmjs.org/vue-eslint-parser/-/vue-eslint-parser-7.11.0.tgz",
-      "integrity": "sha512-qh3VhDLeh773wjgNTl7ss0VejY9bMMa0GoDG2fQVyDzRFdiU3L7fw74tWZDHNQXdZqxO3EveQroa9ct39D2nqg==",
+      "version": "8.0.1",
+      "resolved": "https://registry.npmjs.org/vue-eslint-parser/-/vue-eslint-parser-8.0.1.tgz",
+      "integrity": "sha512-lhWjDXJhe3UZw2uu3ztX51SJAPGPey1Tff2RK3TyZURwbuI4vximQLzz4nQfCv8CZq4xx7uIiogHMMoSJPr33A==",
       "dev": true,
       "requires": {
-        "debug": "^4.1.1",
-        "eslint-scope": "^5.1.1",
-        "eslint-visitor-keys": "^1.1.0",
-        "espree": "^6.2.1",
+        "debug": "^4.3.2",
+        "eslint-scope": "^6.0.0",
+        "eslint-visitor-keys": "^3.0.0",
+        "espree": "^9.0.0",
         "esquery": "^1.4.0",
         "lodash": "^4.17.21",
-        "semver": "^6.3.0"
+        "semver": "^7.3.5"
       },
       "dependencies": {
         "acorn": {
-          "version": "7.4.1",
-          "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz",
-          "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==",
+          "version": "8.6.0",
+          "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.6.0.tgz",
+          "integrity": "sha512-U1riIR+lBSNi3IbxtaHOIKdH8sLFv3NYfNv8sg7ZsNhcfl4HF2++BfqqrNAxoCLQW1iiylOj76ecnaUxz+z9yw==",
           "dev": true
         },
         "eslint-scope": {
-          "version": "5.1.1",
-          "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz",
-          "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==",
+          "version": "6.0.0",
+          "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-6.0.0.tgz",
+          "integrity": "sha512-uRDL9MWmQCkaFus8RF5K9/L/2fn+80yoW3jkD53l4shjCh26fCtvJGasxjUqP5OT87SYTxCVA3BwTUzuELx9kA==",
           "dev": true,
           "requires": {
             "esrecurse": "^4.3.0",
-            "estraverse": "^4.1.1"
+            "estraverse": "^5.2.0"
           }
         },
+        "eslint-visitor-keys": {
+          "version": "3.1.0",
+          "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.1.0.tgz",
+          "integrity": "sha512-yWJFpu4DtjsWKkt5GeNBBuZMlNcYVs6vRCLoCVEJrTjaSB6LC98gFipNK/erM2Heg/E8mIK+hXG/pJMLK+eRZA==",
+          "dev": true
+        },
         "espree": {
-          "version": "6.2.1",
-          "resolved": "https://registry.npmjs.org/espree/-/espree-6.2.1.tgz",
-          "integrity": "sha512-ysCxRQY3WaXJz9tdbWOwuWr5Y/XrPTGX9Kiz3yoUXwW0VZ4w30HTkQLaGx/+ttFjF8i+ACbArnB4ce68a9m5hw==",
+          "version": "9.1.0",
+          "resolved": "https://registry.npmjs.org/espree/-/espree-9.1.0.tgz",
+          "integrity": "sha512-ZgYLvCS1wxOczBYGcQT9DDWgicXwJ4dbocr9uYN+/eresBAUuBu+O4WzB21ufQ/JqQT8gyp7hJ3z8SHii32mTQ==",
+          "dev": true,
+          "requires": {
+            "acorn": "^8.6.0",
+            "acorn-jsx": "^5.3.1",
+            "eslint-visitor-keys": "^3.1.0"
+          }
+        },
+        "estraverse": {
+          "version": "5.3.0",
+          "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz",
+          "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==",
+          "dev": true
+        },
+        "lru-cache": {
+          "version": "6.0.0",
+          "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
+          "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
+          "dev": true,
+          "requires": {
+            "yallist": "^4.0.0"
+          }
+        },
+        "semver": {
+          "version": "7.3.5",
+          "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz",
+          "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==",
           "dev": true,
           "requires": {
-            "acorn": "^7.1.1",
-            "acorn-jsx": "^5.2.0",
-            "eslint-visitor-keys": "^1.1.0"
+            "lru-cache": "^6.0.0"
           }
+        },
+        "yallist": {
+          "version": "4.0.0",
+          "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
+          "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
+          "dev": true
         }
       }
     },
@@ -43710,9 +43898,9 @@
       "dev": true
     },
     "vue-i18n": {
-      "version": "8.24.4",
-      "resolved": "https://registry.npmjs.org/vue-i18n/-/vue-i18n-8.24.4.tgz",
-      "integrity": "sha512-RZE94WUAGxEiBAANxQ0pptbRwDkNKNSXl3fnJslpFOxVMF6UkUtMDSuYGuW2blDrVgweIXVpethOVkYoNNT9xw=="
+      "version": "8.26.7",
+      "resolved": "https://registry.npmjs.org/vue-i18n/-/vue-i18n-8.26.7.tgz",
+      "integrity": "sha512-7apa5PvRg1YCLoraE3lOgpCG8hJGupLCtywQWedWsgBbvF0TOgFvhitqK9xRH0PBGG1G8aiJz9oklyNDFfDxLg=="
     },
     "vue-jest": {
       "version": "3.0.7",

+ 6 - 6
package.json

@@ -16,7 +16,7 @@
     "ailp-book-question-ui": "file:../ailp-book-question-ui-0.1.1.tgz",
     "awe-dnd": "^0.3.4",
     "axios": "^0.24.0",
-    "book-ui": "file:../book-ui-0.1.26.tgz",
+    "book-ui": "file:../book-ui-0.2.2.tgz",
     "core-js": "^3.19.1",
     "dayjs": "^1.10.7",
     "element-ui": "^2.15.6",
@@ -27,7 +27,7 @@
     "normalize.css": "^8.0.1",
     "nprogress": "^0.2.0",
     "vue": "^2.6.14",
-    "vue-i18n": "^8.24.0",
+    "vue-i18n": "^8.26.7",
     "vue-pdf": "^4.3.0",
     "vue-router": "^3.5.3",
     "vue-video-player": "^5.0.2",
@@ -50,18 +50,18 @@
     "compression-webpack-plugin": "^6.1.1",
     "eslint": "^7.32.0",
     "eslint-plugin-prettier": "^4.0.0",
-    "eslint-plugin-vue": "^7.20.0",
+    "eslint-plugin-vue": "^8.1.1",
     "html-webpack-plugin": "^5.3.1",
-    "postcss": "^8.4.1",
+    "postcss": "^8.4.4",
     "postcss-html": "^1.3.0",
-    "prettier": "2.4.1",
+    "prettier": "2.5.0",
     "sass": "^1.43.5",
     "sass-loader": "^10.2.0",
     "script-ext-html-webpack-plugin": "^2.1.5",
     "stylelint": "^14.0.1",
     "stylelint-config-prettier": "^9.0.3",
     "stylelint-config-recess-order": "^3.0.0",
-    "stylelint-config-recommended-vue": "^1.0.0",
+    "stylelint-config-recommended-vue": "^1.1.0",
     "stylelint-config-sass-guidelines": "^9.0.1",
     "stylelint-config-standard-scss": "^3.0.0",
     "stylelint-declaration-block-no-ignored-properties": "^2.5.0",

+ 6 - 2
src/common/show_file/index.vue

@@ -1,6 +1,8 @@
 <template>
   <el-dialog class="show-file" :visible="dialogVisibleShowFile" width="900px" @close="dialogShowFileClose">
-    <div slot="title">查看文件【{{ fileName }}】</div>
+    <div slot="title">
+      查看文件【{{ fileName }}】
+    </div>
 
     <template v-if="fileType === 'pdf'">
       <pdf v-for="i in numPages" :key="i" :src="pdfSrc" :page="i" />
@@ -34,7 +36,9 @@
     </template>
 
     <div slot="footer">
-      <el-button @click="dialogShowFileClose">关闭</el-button>
+      <el-button @click="dialogShowFileClose">
+        关闭
+      </el-button>
     </div>
   </el-dialog>
 </template>

+ 3 - 1
src/components/StepBar.vue

@@ -7,7 +7,9 @@
           <span class="step-name">{{ stepName(i) }}</span>
           <span v-if="i < 2" :class="['step-line', { completed: i < stepNumber }]" />
         </div>
-        <div :class="['step-container-name', { active: i === stepNumber }]">{{ item.name }}</div>
+        <div :class="['step-container-name', { active: i === stepNumber }]">
+          {{ item.name }}
+        </div>
       </div>
     </div>
   </div>

+ 3 - 1
src/components/course/FinishCourseware.vue

@@ -32,7 +32,9 @@
     </template>
 
     <div slot="footer">
-      <el-button type="primary" @click="finishTaskMaterial">完成</el-button>
+      <el-button type="primary" @click="finishTaskMaterial">
+        完成
+      </el-button>
     </div>
   </el-dialog>
 </template>

+ 3 - 1
src/components/live/SelectMaterial.vue

@@ -11,7 +11,9 @@
       <div v-for="item in material_list" :key="item.material_id" class="material">
         <el-image fit="contain" :src="item.material_picture_url" />
         <div class="material-info">
-          <div class="material-info-name">{{ item.material_name }}</div>
+          <div class="material-info-name">
+            {{ item.material_name }}
+          </div>
           <div class="material-info-push">
             <div />
             <el-button type="primary" @click="sendMaterial(item.material_id, item.material_type)">

+ 6 - 2
src/components/payment/Audit.vue

@@ -36,7 +36,9 @@
         <img src="../../assets/course_details/auditimg.png" alt="">
         参加本课程学习需提交申请,审核通过后完成付款即可参加学习。
       </div>
-      <button @click="buy">提交申请</button>
+      <button @click="buy">
+        提交申请
+      </button>
     </div>
 
     <el-dialog
@@ -51,7 +53,9 @@
         申请已经提交,请留意系统通知或在 <a class="jump" @click="goPersonal">个人中心-订单管理</a> 页面查询审核结果。
       </div>
       <div slot="footer">
-        <el-button type="primary" @click="visible = false">确定</el-button>
+        <el-button type="primary" @click="visible = false">
+          确定
+        </el-button>
       </div>
     </el-dialog>
   </div>

+ 6 - 2
src/components/select/SelectCourse.vue

@@ -38,8 +38,12 @@
     </div>
 
     <div slot="footer">
-      <el-button size="mini" @click="dialogClose">取 消</el-button>
-      <el-button type="primary" size="mini" @click="confirm">确 定</el-button>
+      <el-button size="mini" @click="dialogClose">
+        取 消
+      </el-button>
+      <el-button type="primary" size="mini" @click="confirm">
+        确 定
+      </el-button>
     </div>
   </el-dialog>
 </template>

+ 9 - 3
src/components/select/SelectTeacher.vue

@@ -10,7 +10,9 @@
       </el-form-item>
 
       <el-form-item class="search-button">
-        <el-button type="primary" @click="getTeacherUserList"> <i class="el-icon-search" /> 搜索 </el-button>
+        <el-button type="primary" @click="getTeacherUserList">
+          <i class="el-icon-search" /> 搜索
+        </el-button>
       </el-form-item>
     </el-form>
 
@@ -36,8 +38,12 @@
     />
 
     <div slot="footer">
-      <el-button size="mini" @click="dialogClose">取 消</el-button>
-      <el-button type="primary" size="mini" @click="confirmTeacher">确 定</el-button>
+      <el-button size="mini" @click="dialogClose">
+        取 消
+      </el-button>
+      <el-button type="primary" size="mini" @click="confirmTeacher">
+        确 定
+      </el-button>
     </div>
   </el-dialog>
 </template>

+ 12 - 4
src/components/select/SelectTemplate.vue

@@ -8,7 +8,9 @@
         </el-form-item>
 
         <el-form-item class="search-button">
-          <el-button type="primary" @click="queryCourseList"> <i class="el-icon-search" /> 搜索 </el-button>
+          <el-button type="primary" @click="queryCourseList">
+            <i class="el-icon-search" /> 搜索
+          </el-button>
         </el-form-item>
       </el-form>
     </div>
@@ -22,7 +24,9 @@
     >
       <el-table-column prop="name" label="用户名" width="320" />
       <el-table-column label="课程周期">
-        <template slot-scope="{ row }"> <i class="el-icon-date" /> {{ row.begin_date }} - {{ row.end_date }} </template>
+        <template slot-scope="{ row }">
+          <i class="el-icon-date" /> {{ row.begin_date }} - {{ row.end_date }}
+        </template>
       </el-table-column>
     </el-table>
 
@@ -40,8 +44,12 @@
     />
 
     <div slot="footer">
-      <el-button size="mini" @click="dialogClose">取 消</el-button>
-      <el-button type="primary" size="mini" @click="confirmTemplate">确 定</el-button>
+      <el-button size="mini" @click="dialogClose">
+        取 消
+      </el-button>
+      <el-button type="primary" size="mini" @click="confirmTemplate">
+        确 定
+      </el-button>
     </div>
   </el-dialog>
 </template>

+ 3 - 1
src/layouts/components/BreadCrumb.vue

@@ -1,7 +1,9 @@
 <template>
   <div v-show="isShow" class="breadcrumb">
     <div class="breadcrumb-container">
-      <router-link to="/"><svg-icon icon-class="homepage" /></router-link>
+      <router-link to="/">
+        <svg-icon icon-class="homepage" />
+      </router-link>
       <i class="el-icon-arrow-right" />
       <span v-for="item in routerList" :key="item.path">
         <span class="router-title">

+ 51 - 17
src/views/course_details/index.vue

@@ -8,7 +8,9 @@
             <span>HOT</span>
           </div>
           <div class="text">
-            <p class="p1 nowrap-ellipsis" :title="CourseData.name">{{ CourseData.name }}</p>
+            <p class="p1 nowrap-ellipsis" :title="CourseData.name">
+              {{ CourseData.name }}
+            </p>
             <!-- 机构名称 -->
             <p>{{ CourseData.org_name }}</p>
             <p>
@@ -27,29 +29,49 @@
               <span> {{ CourseData.end_date }} </span>
             </p>
 
-            <p v-if="backTime" class="tip">距离关闭购买渠道还有</p>
+            <p v-if="backTime" class="tip">
+              距离关闭购买渠道还有
+            </p>
             <div class="operation">
               <div v-if="backTime" class="countdown">
                 <div class="time">
                   <div>
-                    <div class="time-num">{{ backTime.days }}</div>
-                    <div class="time-name">天</div>
+                    <div class="time-num">
+                      {{ backTime.days }}
+                    </div>
+                    <div class="time-name">
+                      天
+                    </div>
                   </div>
                   <div>
-                    <div class="time-num">{{ backTime.hours }}</div>
-                    <div class="time-name">小时</div>
+                    <div class="time-num">
+                      {{ backTime.hours }}
+                    </div>
+                    <div class="time-name">
+                      小时
+                    </div>
                   </div>
                   <div>
-                    <div class="time-num">{{ backTime.minutes }}</div>
-                    <div class="time-name">分</div>
+                    <div class="time-num">
+                      {{ backTime.minutes }}
+                    </div>
+                    <div class="time-name">
+                      分
+                    </div>
                   </div>
                   <div>
-                    <div class="time-num">{{ backTime.seconds }}</div>
-                    <div class="time-name">秒</div>
+                    <div class="time-num">
+                      {{ backTime.seconds }}
+                    </div>
+                    <div class="time-name">
+                      秒
+                    </div>
                   </div>
                 </div>
               </div>
-              <div v-else>购买渠道已关闭</div>
+              <div v-else>
+                购买渠道已关闭
+              </div>
 
               <div v-if="!readonly">
                 <span class="price">
@@ -68,14 +90,18 @@
           </div>
         </div>
         <div class="more">
-          <div class="moreTitle">配套教材</div>
+          <div class="moreTitle">
+            配套教材
+          </div>
           <div class="moreList">
             <div v-for="(item, i) in CourseData.book_list" :key="i" class="moreOne">
               <div>
                 <img :src="item.book_picture_url" alt="">
               </div>
               <div class="text">
-                <p class="p1">{{ item.book_name }}</p>
+                <p class="p1">
+                  {{ item.book_name }}
+                </p>
                 <p>{{ item.book_org_name }}</p>
                 <p>{{ item.book_author }}</p>
                 <div class="operation">
@@ -93,14 +119,18 @@
           </div>
         </div>
         <div class="more">
-          <div class="moreTitle">授课教师</div>
+          <div class="moreTitle">
+            授课教师
+          </div>
           <div class="moreList teacherList">
             <div v-for="(item, i) in CourseData.teacher_list" :key="i" class="moreOne">
               <div>
                 <img :src="item.teacher_image_url" alt="">
               </div>
               <div class="text">
-                <p class="p1">{{ item.teacher_name }}</p>
+                <p class="p1">
+                  {{ item.teacher_name }}
+                </p>
                 <p>{{ item.teacher_org_name }}</p>
                 <p />
               </div>
@@ -108,7 +138,9 @@
           </div>
         </div>
         <div class="course-arrangement">
-          <div class="moreTitle">课程安排</div>
+          <div class="moreTitle">
+            课程安排
+          </div>
           <div v-for="(item, i) in CourseData.cs_item_list" :key="i" class="course-list">
             <div class="courseOne">
               <div class="title">
@@ -116,7 +148,9 @@
                   <span>{{ i + 1 }}.</span>
                   <span>{{ item.name }}</span>
                 </div>
-                <div class="courseOne-time">{{ item.begin_time }} ~ {{ item.end_time }}</div>
+                <div class="courseOne-time">
+                  {{ item.begin_time }} ~ {{ item.end_time }}
+                </div>
               </div>
             </div>
             <div class="course-content">

+ 15 - 5
src/views/live/SelectDevice.vue

@@ -8,11 +8,15 @@
   >
     <div class="device">
       <div>
-        <div class="title">视频</div>
+        <div class="title">
+          视频
+        </div>
         <div class="device-video">
           <template v-if="device.video.length > 0">
             <div v-for="item in device.video" :key="item.deviceId">
-              <el-radio v-model="video" :label="item.deviceId"> {{ item.label }}</el-radio>
+              <el-radio v-model="video" :label="item.deviceId">
+                {{ item.label }}
+              </el-radio>
             </div>
           </template>
           <template v-else>
@@ -21,11 +25,15 @@
         </div>
       </div>
       <div>
-        <div class="title">音频</div>
+        <div class="title">
+          音频
+        </div>
         <div class="device-audio">
           <template v-if="device.audio.length > 0">
             <div v-for="item in device.audio" :key="item.deviceId">
-              <el-radio v-model="audio" :label="item.deviceId"> {{ item.label }}</el-radio>
+              <el-radio v-model="audio" :label="item.deviceId">
+                {{ item.label }}
+              </el-radio>
             </div>
           </template>
           <template v-else>
@@ -36,7 +44,9 @@
     </div>
 
     <div slot="footer">
-      <el-button type="primary" @click="dialogDeviceClose">完成</el-button>
+      <el-button type="primary" @click="dialogDeviceClose">
+        完成
+      </el-button>
     </div>
   </el-dialog>
 </template>

+ 15 - 5
src/views/live/student/audit.vue

@@ -3,12 +3,18 @@
     <!--顶部-->
     <div class="group-top">
       <div class="live-title">
-        <div class="live-title-name">{{ roomInfo.cs_item_name }} {{ roomInfo.task_name }}</div>
+        <div class="live-title-name">
+          {{ roomInfo.cs_item_name }} {{ roomInfo.task_name }}
+        </div>
         <div>
-          <el-button @click="exitRoom">退出房间</el-button>
+          <el-button @click="exitRoom">
+            退出房间
+          </el-button>
         </div>
       </div>
-      <div class="live-course-name">{{ roomInfo.course_name }}</div>
+      <div class="live-course-name">
+        {{ roomInfo.course_name }}
+      </div>
       <div class="live-teacher">
         <span class="live-teacher-name"> <svg-icon icon-class="person" />{{ roomInfo.teacher_name }} </span>
         <span><svg-icon icon-class="people" />{{ roomInfo.student_count }}</span>
@@ -70,7 +76,9 @@
           </div>
           <div class="chat-speak">
             <el-input v-model="msg" placeholder="输入发言" maxlength="400" disabled @keydown.enter.native="sendMsg">
-              <el-button slot="append" disabled @click="sendMsg">发送</el-button>
+              <el-button slot="append" disabled @click="sendMsg">
+                发送
+              </el-button>
             </el-input>
           </div>
         </div>
@@ -90,7 +98,9 @@
           </div>
         </div>
         <div class="student-list">
-          <div class="student-list-title">小组成员</div>
+          <div class="student-list-title">
+            小组成员
+          </div>
           <ul>
             <li v-for="item in student_list" :key="item.room_user_id">
               <div class="student-list-left">

+ 15 - 5
src/views/live/student/group.vue

@@ -3,12 +3,18 @@
     <!--顶部-->
     <div class="group-top">
       <div class="live-title">
-        <div class="live-title-name">{{ roomInfo.cs_item_name }} {{ roomInfo.task_name }}</div>
+        <div class="live-title-name">
+          {{ roomInfo.cs_item_name }} {{ roomInfo.task_name }}
+        </div>
         <div>
-          <el-button @click="exitRoom">退出房间</el-button>
+          <el-button @click="exitRoom">
+            退出房间
+          </el-button>
         </div>
       </div>
-      <div class="live-course-name">{{ roomInfo.course_name }}</div>
+      <div class="live-course-name">
+        {{ roomInfo.course_name }}
+      </div>
       <div class="live-teacher">
         <span class="live-teacher-name"> <svg-icon icon-class="person" />{{ roomInfo.teacher_name }} </span>
         <span><svg-icon icon-class="people" />{{ roomInfo.student_count }}</span>
@@ -87,7 +93,9 @@
           </div>
           <div class="chat-speak">
             <el-input v-model="msg" placeholder="输入发言" maxlength="400" @keydown.enter.native="sendMsg">
-              <el-button slot="append" @click="sendMsg">发送</el-button>
+              <el-button slot="append" @click="sendMsg">
+                发送
+              </el-button>
             </el-input>
           </div>
         </div>
@@ -107,7 +115,9 @@
           </div>
         </div>
         <div class="student-list">
-          <div class="student-list-title">小组成员</div>
+          <div class="student-list-title">
+            小组成员
+          </div>
           <ul>
             <li v-for="item in student_list" :key="item.room_user_id">
               <div class="student-list-left">

+ 15 - 5
src/views/live/student/index.vue

@@ -10,8 +10,12 @@
           {{ roomInfo.course_name }} - {{ roomInfo.cs_item_name }} - {{ roomInfo.task_name }}
         </div>
         <div class="live-button-group">
-          <el-button @click="exitRoom">退出房间</el-button>
-          <el-button @click="setDevice">设置设备</el-button>
+          <el-button @click="exitRoom">
+            退出房间
+          </el-button>
+          <el-button @click="setDevice">
+            设置设备
+          </el-button>
         </div>
       </div>
     </div>
@@ -22,7 +26,9 @@
         <div v-show="callLoading" class="loading">
           <div class="loading-wrapper">
             <el-avatar icon="el-icon-user" :src="roomInfo.teacher_image_url" />
-            <p class="loading-title">{{ roomInfo.teacher_name }}邀请您连线中</p>
+            <p class="loading-title">
+              {{ roomInfo.teacher_name }}邀请您连线中
+            </p>
             <div>
               <el-button type="danger" circle @click="handsDown">
                 <svg-icon icon-class="hang-up" />
@@ -101,7 +107,9 @@
               maxlength="400"
               @keydown.enter.native="sendMsg"
             >
-              <el-button slot="append" :disabled="!roomData.allow_chat" @click="sendMsg">发送</el-button>
+              <el-button slot="append" :disabled="!roomData.allow_chat" @click="sendMsg">
+                发送
+              </el-button>
             </el-input>
           </div>
         </div>
@@ -141,7 +149,9 @@
               <el-avatar icon="el-icon-user" :size="40" :src="item.student_image_url" />
             </div>
             <div class="li-bottom">
-              <div class="name">{{ item.student_name }}</div>
+              <div class="name">
+                {{ item.student_name }}
+              </div>
             </div>
           </li>
         </ul>

+ 30 - 10
src/views/live/teacher/group.vue

@@ -3,15 +3,27 @@
     <!--顶部-->
     <div class="live-top">
       <div class="live-title">
-        <div class="live-title-name">{{ roomInfo.cs_item_name }} {{ roomInfo.task_name }}</div>
+        <div class="live-title-name">
+          {{ roomInfo.cs_item_name }} {{ roomInfo.task_name }}
+        </div>
         <div>
-          <el-button @click="stopGroup">结束群组讨论</el-button>
-          <el-button v-show="isGroup" @click="reconnection">重连</el-button>
-          <el-button v-show="isGroup && !isAudit" @click="setCurGroupToExample_Teacher">设为示范讨论组</el-button>
-          <el-button v-show="isGroup && !isAudit" @click="exitCurGroup_Teacher">退出小组讨论</el-button>
+          <el-button @click="stopGroup">
+            结束群组讨论
+          </el-button>
+          <el-button v-show="isGroup" @click="reconnection">
+            重连
+          </el-button>
+          <el-button v-show="isGroup && !isAudit" @click="setCurGroupToExample_Teacher">
+            设为示范讨论组
+          </el-button>
+          <el-button v-show="isGroup && !isAudit" @click="exitCurGroup_Teacher">
+            退出小组讨论
+          </el-button>
         </div>
       </div>
-      <div class="live-course-name">{{ roomInfo.course_name }}</div>
+      <div class="live-course-name">
+        {{ roomInfo.course_name }}
+      </div>
       <div class="live-teacher">
         <span class="live-teacher-name"> <svg-icon icon-class="person" />{{ roomInfo.teacher_name }} </span>
         <span><svg-icon icon-class="people" />{{ roomInfo.student_count }}</span>
@@ -24,7 +36,9 @@
         <div v-show="!isGroup" class="student-group">
           <template v-for="(item, i) in group_list">
             <div :key="item.room_id" class="student-group-list" @click="enterGroup(item.group_id)">
-              <div class="group-serial">{{ i + 1 }}</div>
+              <div class="group-serial">
+                {{ i + 1 }}
+              </div>
               <div class="student-group-list-avatar">
                 <el-avatar
                   v-for="li in item.student_list"
@@ -77,7 +91,9 @@
         <div class="live-container-left-chat">
           <div class="chat-top">
             <span>聊天</span>
-            <el-button size="small" @click="sendAllMsg">给所有小组发送群消息</el-button>
+            <el-button size="small" @click="sendAllMsg">
+              给所有小组发送群消息
+            </el-button>
           </div>
           <div class="chat-window">
             <ul ref="chat" class="chat-window-ul">
@@ -97,7 +113,9 @@
               :disabled="!isGroup"
               @keydown.enter.native="sendMsg"
             >
-              <el-button slot="append" :disabled="!isGroup" @click="sendMsg">发送</el-button>
+              <el-button slot="append" :disabled="!isGroup" @click="sendMsg">
+                发送
+              </el-button>
             </el-input>
           </div>
         </div>
@@ -114,7 +132,9 @@
           </div>
         </div>
         <div class="student-list">
-          <div class="student-list-title">小组成员列表</div>
+          <div class="student-list-title">
+            小组成员列表
+          </div>
           <ul>
             <template v-if="isGroup">
               <li v-for="item in student_list" :key="item.room_user_id">

+ 24 - 8
src/views/live/teacher/index.vue

@@ -10,10 +10,18 @@
           {{ roomInfo.course_name }} - {{ roomInfo.cs_item_name }} - {{ roomInfo.task_name }}
         </div>
         <div class="live-button-group">
-          <el-button v-if="!liveStat" @click="startLive">开启直播</el-button>
-          <el-button v-if="liveStat" icon="el-icon-switch-button" @click="closeLiveRoom"> 结束直播 </el-button>
-          <el-button v-if="liveStat" @click="reconnection">重连</el-button>
-          <el-button @click="setDevice(true)">设置设备</el-button>
+          <el-button v-if="!liveStat" @click="startLive">
+            开启直播
+          </el-button>
+          <el-button v-if="liveStat" icon="el-icon-switch-button" @click="closeLiveRoom">
+            结束直播
+          </el-button>
+          <el-button v-if="liveStat" @click="reconnection">
+            重连
+          </el-button>
+          <el-button @click="setDevice(true)">
+            设置设备
+          </el-button>
         </div>
       </div>
     </div>
@@ -24,7 +32,9 @@
         <div v-show="callLoading" class="loading">
           <div class="loading-wrapper">
             <el-avatar icon="el-icon-user" :src="connectStudent.student_image_url" />
-            <p class="loading-title">正在呼叫【{{ connectStudent.student_name }}】,等待对方接通...</p>
+            <p class="loading-title">
+              正在呼叫【{{ connectStudent.student_name }}】,等待对方接通...
+            </p>
             <div>
               <el-button type="danger" circle @click="handsDown">
                 <svg-icon icon-class="hang-up" />
@@ -36,7 +46,9 @@
           <div v-show="roomInfo.video_mode === 1 || remoteStreamType === 1" id="student" />
           <template v-if="remoteStreamType !== 1">
             <template v-if="roomInfo.video_mode === 1">
-              <el-button type="danger" @click="handsDown"> <svg-icon icon-class="hang-up" /> 挂断 </el-button>
+              <el-button type="danger" @click="handsDown">
+                <svg-icon icon-class="hang-up" /> 挂断
+              </el-button>
             </template>
             <template v-else>
               <div class="student-audio">
@@ -137,7 +149,9 @@
           </div>
           <div class="chat-speak">
             <el-input v-model="msg" placeholder="输入发言" maxlength="400" @keydown.enter.native="sendMsg">
-              <el-button slot="append" @click="sendMsg">发送</el-button>
+              <el-button slot="append" @click="sendMsg">
+                发送
+              </el-button>
             </el-input>
           </div>
         </div>
@@ -172,7 +186,9 @@
               <el-avatar icon="el-icon-user" :size="40" :src="item.student_image_url" />
             </div>
             <div class="li-bottom">
-              <div class="name">{{ item.student_name }}</div>
+              <div class="name">
+                {{ item.student_name }}
+              </div>
               <div class="li-bottom-operate">
                 <svg-icon
                   v-if="item.connection_mode === 1 && item.connection_status !== 0"

+ 3 - 1
src/views/login/index.vue

@@ -9,7 +9,9 @@
       label-position="left"
     >
       <div class="title-container">
-        <h3 class="title">{{ $t('login') }}</h3>
+        <h3 class="title">
+          {{ $t('login') }}
+        </h3>
       </div>
 
       <el-form-item prop="user_name">

+ 27 - 9
src/views/main/TaskList.vue

@@ -59,14 +59,18 @@
           <svg-icon icon-class="schedule" class-name="svg-normal" />
         </span>
         <el-select v-model="course_id" @change="changeCourse">
+          <el-option label="全部" value="" />
           <el-option v-for="{ id, name } in course_list" :key="id" :label="name" :value="id" />
         </el-select>
       </div>
 
       <div class="task-container">
-        <ul v-for="({ task_list }, i) in task_group_list" :key="i" class="task-list">
+        <ul v-for="({ task_list, date_stamp }, i) in task_group_list" :key="i" class="task-list">
+          <li v-if="time_unit === 'MONTH'" class="date-stamp">
+            {{ date_stamp }}
+          </li>
           <li
-            v-for="({ id, cs_item_name, time_type, course_name, teaching_type }, j) in task_list"
+            v-for="({ id, cs_item_name, time_type, course_name, teaching_type, time_space_view_txt }, j) in task_list"
             :key="id"
             class="task-item"
             :style="{
@@ -88,7 +92,12 @@
               </span>
             </div>
             <div class="task-item-bottom">
-              <span>{{ course_name }}</span>
+              <div>
+                {{ course_name }}
+              </div>
+              <div class="time-txt">
+                {{ time_space_view_txt }}
+              </div>
             </div>
           </li>
         </ul>
@@ -195,8 +204,7 @@ export default {
       this.getMyCourseList_TaskBelong();
     },
 
-    changeCourse(val) {
-      if (val.length <= 0) return;
+    changeCourse() {
       this.getMyTaskList();
     },
 
@@ -274,7 +282,7 @@ export default {
 
     // 日历
     .monthly-calendar {
-      height: 498px;
+      min-height: 498px;
       padding: 32px;
       margin: 16px 0;
       background-color: #fff;
@@ -336,7 +344,7 @@ export default {
 
   &-right {
     width: 802px;
-    height: calc(100vh - 119px);
+    min-height: calc(100vh - 119px);
     padding: 16px 24px;
     background-color: #fff;
     border-radius: 8px;
@@ -390,10 +398,15 @@ export default {
     }
 
     .task-container {
-      height: calc(100% - 50px);
-      overflow: auto;
+      min-height: calc(100% - 50px);
 
       .task-list {
+        li.date-stamp {
+          margin-top: 16px;
+          margin-bottom: -8px;
+          font-weight: 700;
+        }
+
         .task-item {
           padding: 16px 24px;
           margin-top: 16px;
@@ -419,6 +432,11 @@ export default {
           &-bottom {
             font-size: 14px;
             color: #808080;
+
+            .time-txt {
+              margin-top: 8px;
+              color: #000;
+            }
           }
         }
       }

+ 9 - 3
src/views/main/TemplateList.vue

@@ -4,14 +4,18 @@
     <div class="template-search">
       <div>
         <el-input v-model="template_name" class="search-name" prefix-icon="el-icon-search" @change="queryCourseList">
-          <el-button slot="append" @click="queryCourseList">搜索</el-button>
+          <el-button slot="append" @click="queryCourseList">
+            搜索
+          </el-button>
         </el-input>
       </div>
       <div>
         <el-select v-model="release_status">
           <el-option v-for="item in releaseStatusList" :key="item.value" :label="item.name" :value="item.value" />
         </el-select>
-        <el-button class="query-button" type="primary" @click="queryCourseList">查询</el-button>
+        <el-button class="query-button" type="primary" @click="queryCourseList">
+          查询
+        </el-button>
       </div>
     </div>
     <!-- 模板列表 -->
@@ -55,7 +59,9 @@
                   <svg-icon icon-class="more" />
                 </span>
                 <el-dropdown-menu slot="dropdown">
-                  <el-dropdown-item @click.native="edit(id)"> <svg-icon icon-class="edit" /> 编辑 </el-dropdown-item>
+                  <el-dropdown-item @click.native="edit(id)">
+                    <svg-icon icon-class="edit" /> 编辑
+                  </el-dropdown-item>
                   <el-dropdown-item v-if="is_release === 'false'" @click.native="releaseCourse(id, true)">
                     <svg-icon icon-class="publish" /> 发布
                   </el-dropdown-item>

+ 1 - 0
src/views/main/components/MonthlyCalendar.vue

@@ -32,6 +32,7 @@
           </div>
         </div>
       </template>
+
       <template v-if="time_unit === MONTH">
         <div v-for="({ name, label }, i) in monthList" :key="label" class="month">
           <div

+ 9 - 3
src/views/main/curricula_list/student.vue

@@ -4,7 +4,9 @@
     <div class="curricula-student-search">
       <div class="curricula-student-search-condition">
         <el-input v-model="search" prefix-icon="el-icon-search" @change="queryMyCourseList">
-          <el-button slot="append" @click="queryMyCourseList">搜索</el-button>
+          <el-button slot="append" @click="queryMyCourseList">
+            搜索
+          </el-button>
         </el-input>
       </div>
       <div class="curricula-student-search-button">
@@ -30,7 +32,9 @@
           <el-option label="-请选择-" :value="-1" />
           <el-option v-for="item in buy_status_list" :key="item.status" :label="item.name" :value="item.status" />
         </el-select>
-        <el-button type="primary" @click="queryMyCourseList">查询</el-button>
+        <el-button type="primary" @click="queryMyCourseList">
+          查询
+        </el-button>
       </div>
     </div>
     <!-- 课程列表 -->
@@ -57,7 +61,9 @@
           <el-table-column prop="course_name" label="课程名称" width="300" />
           <el-table-column label="课程教师" prop="teacher_name_desc" width="360" />
           <el-table-column label="课程周期" width="280">
-            <template slot-scope="{ row }"> <i class="el-icon-date" /> {{ row.date_space_view_text }} </template>
+            <template slot-scope="{ row }">
+              <i class="el-icon-date" /> {{ row.date_space_view_text }}
+            </template>
           </el-table-column>
           <el-table-column label="完成状态" width="140">
             <template slot-scope="{ row }">

+ 6 - 2
src/views/main/curricula_list/teacher.vue

@@ -4,7 +4,9 @@
     <div class="curricula-teacher-search">
       <div class="curricula-teacher-search-condition">
         <el-input v-model="search" prefix-icon="el-icon-search" @change="queryMyCourseList">
-          <el-button slot="append" @click="queryMyCourseList">搜索</el-button>
+          <el-button slot="append" @click="queryMyCourseList">
+            搜索
+          </el-button>
         </el-input>
       </div>
       <div class="curricula-teacher-search-button">
@@ -17,7 +19,9 @@
             :value="item.finish_status"
           />
         </el-select>
-        <el-button type="primary" @click="queryMyCourseList">查询</el-button>
+        <el-button type="primary" @click="queryMyCourseList">
+          查询
+        </el-button>
       </div>
     </div>
     <!-- 课程列表 -->

+ 9 - 3
src/views/task_details/TaskTop.vue

@@ -4,9 +4,13 @@
       <span class="title-name">{{ itemInfo.course_name }}</span>
       <span class="title-time">{{ itemInfo.time_space_view_txt }}</span>
     </div>
-    <div class="cs_item_name">{{ itemInfo.cs_item_name }}</div>
+    <div class="cs_item_name">
+      {{ itemInfo.cs_item_name }}
+    </div>
     <div class="courseware-list">
-      <div class="courseware-list-title">课件</div>
+      <div class="courseware-list-title">
+        课件
+      </div>
       <el-tag
         v-for="item in itemInfo.courseware_list"
         :key="item.courseware_id"
@@ -26,7 +30,9 @@
       </el-tag>
     </div>
     <div class="learning-material">
-      <div class="learning-material-title">学习资料</div>
+      <div class="learning-material-title">
+        学习资料
+      </div>
       <el-tag
         v-for="item in itemInfo.cs_item_learning_material_list"
         :key="item.file_id"

+ 15 - 5
src/views/task_details/student/index.vue

@@ -3,9 +3,15 @@
     <task-top :item-info="itemInfo" @viewFile="viewFile" />
 
     <div class="task-detail-main">
-      <div class="time-type">{{ timeType }}任务 {{ name }}</div>
-      <div class="time-interval">{{ time_space_view_txt }}</div>
-      <div class="task-require"><span class="label">任务要求</span>{{ content }}</div>
+      <div class="time-type">
+        {{ timeType }}任务 {{ name }}
+      </div>
+      <div class="time-interval">
+        {{ time_space_view_txt }}
+      </div>
+      <div class="task-require">
+        <span class="label">任务要求</span>{{ content }}
+      </div>
       <div class="task-courseware">
         <span class="label">课件任务</span>
         <div>
@@ -79,7 +85,9 @@
             <el-rate v-model="student_score" />
           </div>
           <div class="confirm single-line">
-            <el-button type="primary" @click="fillTaskExecuteInfo_Student_live">提交</el-button>
+            <el-button type="primary" @click="fillTaskExecuteInfo_Student_live">
+              提交
+            </el-button>
           </div>
         </div>
       </template>
@@ -107,7 +115,9 @@
           <el-input v-model="student_message" type="textarea" resize="none" :rows="6" />
         </div>
         <div class="submit-button">
-          <el-button type="primary" @click="fillTaskExecuteInfo_Student">完成任务</el-button>
+          <el-button type="primary" @click="fillTaskExecuteInfo_Student">
+            完成任务
+          </el-button>
         </div>
       </template>
     </div>

+ 18 - 6
src/views/task_details/teacher/index.vue

@@ -28,7 +28,9 @@
           <span class="finish-time">{{ curFinishDetail.finish_time_view_txt }}</span>
         </div>
         <div ref="situation" class="finish-situation">
-          <div class="title">课件任务</div>
+          <div class="title">
+            课件任务
+          </div>
           <div class="courseware-list">
             <el-tag
               v-for="item in curFinishDetail.courseware_list"
@@ -44,13 +46,17 @@
               </div>
             </el-tag>
           </div>
-          <div class="title">文档列表</div>
+          <div class="title">
+            文档列表
+          </div>
           <div>
             <el-tag v-for="item in accessory_list" :key="item.file_id" color="#fff" :title="item.file_name">
               <span @click="viewFile(item.file_name, item.file_id)">{{ item.file_name }}</span>
             </el-tag>
           </div>
-          <div class="title">作业列表</div>
+          <div class="title">
+            作业列表
+          </div>
           <div>
             <el-tag
               v-for="item in curFinishDetail.homework_list"
@@ -61,10 +67,14 @@
               <span @click="viewFile(item.file_name, item.file_id)">{{ item.file_name }}</span>
             </el-tag>
           </div>
-          <div class="title">学生留言</div>
+          <div class="title">
+            学生留言
+          </div>
           <div>{{ curFinishDetail.student_message }}</div>
           <template v-if="teaching_type === 10">
-            <div class="title">学员课后评价</div>
+            <div class="title">
+              学员课后评价
+            </div>
             <div>{{ student_remark }}</div>
             <div class="title">
               <span>学员课后评分</span>
@@ -79,7 +89,9 @@
             <el-input v-model="teacher_remark" type="textarea" resize="none" :rows="6" />
           </div>
           <div class="confirm">
-            <el-button type="primary" @click="remarkTaskStudentExecuteInfo_Teacher">提交</el-button>
+            <el-button type="primary" @click="remarkTaskStudentExecuteInfo_Teacher">
+              提交
+            </el-button>
             <el-button v-if="student_list.length > 1" @click="next">
               {{ buttonName() }} <i class="el-icon-right" />
             </el-button>

+ 9 - 3
src/views/teacher/create_course/index.vue

@@ -1,18 +1,24 @@
 <template>
   <div class="create-course">
-    <div class="create-course-title">创建课程</div>
+    <div class="create-course-title">
+      创建课程
+    </div>
     <div class="create-course-container">
       <div class="create template">
         <div class="click" @click="selectTemplate">
           <i class="el-icon-plus" />
         </div>
-        <div class="name">模板库</div>
+        <div class="name">
+          模板库
+        </div>
       </div>
       <div class="create build">
         <div class="click" @click="$router.push('/create_course_step_table')">
           <i class="el-icon-plus" />
         </div>
-        <div class="name">新建</div>
+        <div class="name">
+          新建
+        </div>
       </div>
     </div>
 

+ 6 - 2
src/views/teacher/create_course/step_table/AddItem.vue

@@ -36,8 +36,12 @@
     </el-form>
 
     <div slot="footer">
-      <el-button class="cancel" @click="dialogClose">取消</el-button>
-      <el-button type="primary" @click="addCSItem">确定</el-button>
+      <el-button class="cancel" @click="dialogClose">
+        取消
+      </el-button>
+      <el-button type="primary" @click="addCSItem">
+        确定
+      </el-button>
     </div>
   </el-dialog>
 </template>

+ 21 - 7
src/views/teacher/create_course/step_table/CourseInfo.vue

@@ -60,12 +60,18 @@
 
         <el-form-item label="学生数量">
           <el-input v-model.number.lazy="form.student_count_max" class="student-count" />
-          <el-checkbox v-model="form.is_auto_close">报满后自动封班</el-checkbox>
+          <el-checkbox v-model="form.is_auto_close">
+            报满后自动封班
+          </el-checkbox>
         </el-form-item>
 
         <el-form-item label="加入方式">
-          <el-radio v-model="form.student_enter_control_type" :label="0">公开</el-radio>
-          <el-radio v-model="form.student_enter_control_type" :label="1">需要申请</el-radio>
+          <el-radio v-model="form.student_enter_control_type" :label="0">
+            公开
+          </el-radio>
+          <el-radio v-model="form.student_enter_control_type" :label="1">
+            需要申请
+          </el-radio>
         </el-form-item>
 
         <el-form-item label="价格">
@@ -75,14 +81,22 @@
         </el-form-item>
 
         <el-form-item label="课后评价">
-          <el-radio v-model="form.is_enable_KHPJ" :label="true">开启</el-radio>
-          <el-radio v-model="form.is_enable_KHPJ" :label="false">关闭</el-radio>
+          <el-radio v-model="form.is_enable_KHPJ" :label="true">
+            开启
+          </el-radio>
+          <el-radio v-model="form.is_enable_KHPJ" :label="false">
+            关闭
+          </el-radio>
           <span class="tip">每节课后学生可对课程及老师进行打分及评价</span>
         </el-form-item>
 
         <el-form-item label="学生自评">
-          <el-radio v-model="form.is_enable_XYZP" :label="true">开启</el-radio>
-          <el-radio v-model="form.is_enable_XYZP" :label="false">关闭</el-radio>
+          <el-radio v-model="form.is_enable_XYZP" :label="true">
+            开启
+          </el-radio>
+          <el-radio v-model="form.is_enable_XYZP" :label="false">
+            关闭
+          </el-radio>
           <span class="tip">每节课后学生需对自己的课上表现进行打分及评价</span>
         </el-form-item>
 

+ 39 - 13
src/views/teacher/create_course/step_table/CreateTask.vue

@@ -3,16 +3,26 @@
     <step-bar :step-number="2" />
     <!-- 课程基本信息 -->
     <div class="task-course-info">
-      <div class="cover"><el-image fit="contain" :src="picture_url" alt="封面" /></div>
+      <div class="cover">
+        <el-image fit="contain" :src="picture_url" alt="封面" />
+      </div>
       <div class="info">
-        <div class="name">{{ name }}</div>
-        <div class="date">{{ begin_date }}<span>-</span>{{ end_date }}</div>
+        <div class="name">
+          {{ name }}
+        </div>
+        <div class="date">
+          {{ begin_date }}<span>-</span>{{ end_date }}
+        </div>
       </div>
     </div>
     <!-- 按钮 -->
     <div class="task-button">
-      <el-button class="prev-step" @click="preStep"><i class="el-icon-back" />选择教材</el-button>
-      <el-button @click="$router.push(closeLink)">关闭</el-button>
+      <el-button class="prev-step" @click="preStep">
+        <i class="el-icon-back" />选择教材
+      </el-button>
+      <el-button @click="$router.push(closeLink)">
+        关闭
+      </el-button>
     </div>
     <!-- 任务课节 -->
     <div class="task-item">
@@ -40,7 +50,9 @@
             </el-dropdown>
           </div>
         </template>
-        <div v-else class="task-item-list-title">新课节</div>
+        <div v-else class="task-item-list-title">
+          新课节
+        </div>
         <el-button class="create-item selected" type="primary" @click="dialogVisible = true">
           <svg-icon icon-class="create-white" /> 创建新课节
         </el-button>
@@ -48,7 +60,9 @@
       <!-- 课节信息 -->
       <div class="task-item-container">
         <div class="item-info">
-          <div class="title">课节信息</div>
+          <div class="title">
+            课节信息
+          </div>
           <div class="item-info-name">
             <div>课节名称</div>
             <el-input v-model="itemInfoBox.name" readonly />
@@ -82,7 +96,9 @@
                   <el-collapse-item>
                     <template slot="title">
                       <div class="card-title">
-                        <div class="name">{{ i + 1 }}. {{ item.name }}</div>
+                        <div class="name">
+                          {{ i + 1 }}. {{ item.name }}
+                        </div>
                         <div class="info">
                           {{ item.time_space_view_txt }}
                           <!-- 任务下拉框 -->
@@ -134,7 +150,9 @@
                   </el-collapse-item>
                 </el-collapse>
               </el-card>
-              <el-button @click="newTask(0)"><i class="el-icon-plus" /> 新建任务</el-button>
+              <el-button @click="newTask(0)">
+                <i class="el-icon-plus" /> 新建任务
+              </el-button>
             </div>
           </div>
           <!-- 课中任务 -->
@@ -149,7 +167,9 @@
                   <el-collapse-item>
                     <template slot="title">
                       <div class="card-title">
-                        <div class="name">{{ itemInfoBox.pre_task_list.length + i + 1 }}. {{ item.name }}</div>
+                        <div class="name">
+                          {{ itemInfoBox.pre_task_list.length + i + 1 }}. {{ item.name }}
+                        </div>
                         <div class="info">
                           {{ item.time_space_view_txt }}
                           <el-dropdown placement="bottom" @command="handleTask">
@@ -200,7 +220,9 @@
                   </el-collapse-item>
                 </el-collapse>
               </el-card>
-              <el-button @click="newTask(1)"><i class="el-icon-plus" /> 新建任务</el-button>
+              <el-button @click="newTask(1)">
+                <i class="el-icon-plus" /> 新建任务
+              </el-button>
             </div>
           </div>
           <!-- 课后任务 -->
@@ -269,12 +291,16 @@
                   </el-collapse-item>
                 </el-collapse>
               </el-card>
-              <el-button @click="newTask(2)"><i class="el-icon-plus" /> 新建任务</el-button>
+              <el-button @click="newTask(2)">
+                <i class="el-icon-plus" /> 新建任务
+              </el-button>
             </div>
           </div>
         </div>
         <div class="learning-materials">
-          <div class="title">学习资料</div>
+          <div class="title">
+            学习资料
+          </div>
           <div>
             <el-upload action="no" :http-request="upload" multiple :show-file-list="false" accept="*">
               <el-button><svg-icon icon-class="upload" /> 上传文件</el-button>

+ 45 - 15
src/views/teacher/create_course/step_table/NewTask.vue

@@ -2,11 +2,15 @@
   <div class="new-task">
     <div class="go-back">
       <el-button @click="goBack">
-        <div class="go-back-button"><svg-icon icon-class="go-back" /><span>返回</span></div>
+        <div class="go-back-button">
+          <svg-icon icon-class="go-back" /><span>返回</span>
+        </div>
       </el-button>
     </div>
     <div class="new-task-container">
-      <div class="title">新任务</div>
+      <div class="title">
+        新任务
+      </div>
       <el-form ref="newTaskForm" :model="form" :rules="rules" label-width="150px" label-position="left">
         <el-form-item label="任务名称" prop="name">
           <el-input v-model="form.name" />
@@ -58,7 +62,9 @@
           <div v-if="form.teaching_type === 10" class="task-template">
             <el-form :model="liveForm" label-width="100px" label-position="left">
               <el-form-item label="课件任务">
-                <el-button @click="dialogVisible = true"> <i class="el-icon-plus" /> 添加课件 </el-button>
+                <el-button @click="dialogVisible = true">
+                  <i class="el-icon-plus" /> 添加课件
+                </el-button>
                 <div>
                   <el-tag
                     v-for="(item, i) in liveForm.coursewareInfo"
@@ -90,13 +96,21 @@
               </el-form-item>
 
               <el-form-item label="可见性">
-                <el-radio v-model="liveForm.courseware_visible_mode" :label="21"> 手动推送 </el-radio>
-                <el-radio v-model="liveForm.courseware_visible_mode" :label="22"> 一直可见 </el-radio>
+                <el-radio v-model="liveForm.courseware_visible_mode" :label="21">
+                  手动推送
+                </el-radio>
+                <el-radio v-model="liveForm.courseware_visible_mode" :label="22">
+                  一直可见
+                </el-radio>
               </el-form-item>
 
               <el-form-item label="直播录制">
-                <el-radio v-model="liveForm.zhibo_record_mode" :label="31">自动开启</el-radio>
-                <el-radio v-model="liveForm.zhibo_record_mode" :label="32">手动开启</el-radio>
+                <el-radio v-model="liveForm.zhibo_record_mode" :label="31">
+                  自动开启
+                </el-radio>
+                <el-radio v-model="liveForm.zhibo_record_mode" :label="32">
+                  手动开启
+                </el-radio>
               </el-form-item>
             </el-form>
           </div>
@@ -104,7 +118,9 @@
           <div v-else-if="form.teaching_type === 11" class="task-template">
             <el-form :model="courseForm" label-width="100px" label-position="left">
               <el-form-item label="课件任务">
-                <el-button @click="dialogVisible = true"> <i class="el-icon-plus" /> 添加课件 </el-button>
+                <el-button @click="dialogVisible = true">
+                  <i class="el-icon-plus" /> 添加课件
+                </el-button>
                 <div>
                   <el-tag
                     v-for="(item, i) in courseForm.coursewareInfo"
@@ -131,8 +147,12 @@
               </el-form-item>
 
               <el-form-item label="留言功能">
-                <el-radio v-model="courseForm.is_enable_message" :label="true">开启</el-radio>
-                <el-radio v-model="courseForm.is_enable_message" :label="false">关闭</el-radio>
+                <el-radio v-model="courseForm.is_enable_message" :label="true">
+                  开启
+                </el-radio>
+                <el-radio v-model="courseForm.is_enable_message" :label="false">
+                  关闭
+                </el-radio>
               </el-form-item>
             </el-form>
           </div>
@@ -156,20 +176,30 @@
               </el-form-item>
 
               <el-form-item label="提交作业">
-                <el-radio v-model="basicForm.is_enable_homework" :label="true">开启</el-radio>
-                <el-radio v-model="basicForm.is_enable_homework" :label="false">关闭</el-radio>
+                <el-radio v-model="basicForm.is_enable_homework" :label="true">
+                  开启
+                </el-radio>
+                <el-radio v-model="basicForm.is_enable_homework" :label="false">
+                  关闭
+                </el-radio>
               </el-form-item>
 
               <el-form-item label="留言功能">
-                <el-radio v-model="basicForm.is_enable_message" :label="true">开启</el-radio>
-                <el-radio v-model="basicForm.is_enable_message" :label="false">关闭</el-radio>
+                <el-radio v-model="basicForm.is_enable_message" :label="true">
+                  开启
+                </el-radio>
+                <el-radio v-model="basicForm.is_enable_message" :label="false">
+                  关闭
+                </el-radio>
               </el-form-item>
             </el-form>
           </div>
         </el-form-item>
 
         <el-form-item>
-          <el-button class="done" type="primary" @click="addTaskToCSItem">确定</el-button>
+          <el-button class="done" type="primary" @click="addTaskToCSItem">
+            确定
+          </el-button>
         </el-form-item>
       </el-form>
     </div>

+ 12 - 4
src/views/teacher/create_course/step_table/SelectBook.vue

@@ -2,7 +2,9 @@
   <div class="select-book">
     <step-bar :step-number="1" />
     <div class="select-book-container">
-      <div class="select-book-container-title">配套教材</div>
+      <div class="select-book-container-title">
+        配套教材
+      </div>
       <div class="select-book-container-table">
         <div class="search">
           <div>
@@ -13,7 +15,9 @@
               class="keyword"
               @keyup.enter.native="queryBookList"
             >
-              <el-button slot="append" @click="queryBookList">搜索</el-button>
+              <el-button slot="append" @click="queryBookList">
+                搜索
+              </el-button>
             </el-input>
             <!-- <el-button class="buy">去购买</el-button><span class="tip">只能添加已购买的资源</span> -->
           </div>
@@ -30,7 +34,9 @@
               >
                 <el-image fit="contain" :src="item.picture_url" />
               </div>
-              <div class="book-list-item-name">{{ item.name }}</div>
+              <div class="book-list-item-name">
+                {{ item.name }}
+              </div>
             </div>
           </div>
           <div class="book-bottom">
@@ -44,7 +50,9 @@
               @current-change="changePage"
             />
             <div>
-              <el-button class="prev-step" @click="prevCourseInfo"> <i class="el-icon-back" />课程信息</el-button>
+              <el-button class="prev-step" @click="prevCourseInfo">
+                <i class="el-icon-back" />课程信息
+              </el-button>
               <el-button type="primary" class="next-step" @click="nextStep">
                 下一步<i class="el-icon-right" />
               </el-button>

+ 6 - 2
src/views/teacher/student_list/index.vue

@@ -2,7 +2,9 @@
   <div class="student-list">
     <div class="search">
       <el-input v-model="student_name" prefix-icon="el-icon-search" @change="queryCourseStudentList">
-        <el-button slot="append" @click="queryCourseStudentList">搜索</el-button>
+        <el-button slot="append" @click="queryCourseStudentList">
+          搜索
+        </el-button>
       </el-input>
     </div>
     <div class="student-list-container">
@@ -28,7 +30,9 @@
             </template>
           </el-table-column>
           <el-table-column prop="age" width="120">
-            <template slot-scope="scope"> {{ scope.row.age }}岁 </template>
+            <template slot-scope="scope">
+              {{ scope.row.age }}岁
+            </template>
           </el-table-column>
           <el-table-column prop="org_name" width="280" />
           <el-table-column prop="country_name" width="180" />