Browse Source

update header.vue

dusenyao 3 years ago
parent
commit
0686a742f7

+ 1 - 4
.vscode/settings.json

@@ -5,10 +5,7 @@
     "titleBar.activeForeground": "#15202b",
     "titleBar.inactiveBackground": "#42b88399",
     "titleBar.inactiveForeground": "#15202b99",
-    "editorGroup.border": "#65c89b",
-    "panel.border": "#65c89b",
-    "sash.hoverBorder": "#65c89b",
-    "sideBar.border": "#65c89b"
+    "sash.hoverBorder": "#65c89b"
   },
   "peacock.color": "#42b883"
 }

+ 220 - 288
package-lock.json

@@ -11,12 +11,12 @@
         "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.20.tgz",
+        "book-ui": "file:../book-ui-0.1.26.tgz",
         "core-js": "^3.19.1",
         "element-ui": "^2.15.6",
         "gcls-book-question-ui": "file:../gcls-book-question-ui-0.1.0.tgz",
         "jquery": "^3.6.0",
-        "js-cookie": "^2.2.1",
+        "js-cookie": "^3.0.1",
         "jsplumb": "^2.15.6",
         "normalize.css": "^8.0.1",
         "nprogress": "^0.2.0",
@@ -30,14 +30,14 @@
       "devDependencies": {
         "@babel/core": "^7.16.0",
         "@babel/eslint-parser": "^7.16.3",
-        "@babel/preset-env": "^7.16.0",
+        "@babel/preset-env": "^7.16.4",
         "@vue/cli-plugin-babel": "~4.5.15",
         "@vue/cli-plugin-eslint": "~4.5.15",
         "@vue/cli-plugin-router": "~4.5.15",
         "@vue/cli-plugin-unit-jest": "^4.5.15",
         "@vue/cli-plugin-vuex": "~4.5.15",
         "@vue/cli-service": "~4.5.15",
-        "@vue/test-utils": "^1.2.2",
+        "@vue/test-utils": "^1.3.0",
         "babel-jest": "^27.3.1",
         "babel-loader": "^8.2.3",
         "babel-plugin-dynamic-import-node": "^2.3.3",
@@ -54,11 +54,11 @@
         "script-ext-html-webpack-plugin": "^2.1.5",
         "stylelint": "^14.0.1",
         "stylelint-config-prettier": "^9.0.3",
-        "stylelint-config-recess-order": "^2.6.0",
+        "stylelint-config-recess-order": "^3.0.0",
         "stylelint-config-recommended-vue": "^1.0.0",
         "stylelint-config-sass-guidelines": "^9.0.1",
         "stylelint-config-standard-scss": "^2.0.1",
-        "stylelint-declaration-block-no-ignored-properties": "^2.4.0",
+        "stylelint-declaration-block-no-ignored-properties": "^2.5.0",
         "stylelint-webpack-plugin": "^3.1.0",
         "svg-sprite-loader": "^6.0.11",
         "svgo": "^2.8.0",
@@ -83,9 +83,9 @@
       }
     },
     "node_modules/@babel/compat-data": {
-      "version": "7.16.0",
-      "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.16.0.tgz",
-      "integrity": "sha512-DGjt2QZse5SGd9nfOSqO4WLJ8NN/oHkijbXbPrxuoJO3oIPJL3TciZs9FX+cOHNiY9E9l0opL8g7BmLe3T+9ew==",
+      "version": "7.16.4",
+      "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.16.4.tgz",
+      "integrity": "sha512-1o/jo7D+kC9ZjHX5v+EHrdjl3PhxMrLSOTGsOdHJ+KL8HCaEK6ehrVL2RS6oHDZp+L7xLirLrPmQtEng769J/Q==",
       "dev": true,
       "engines": {
         "node": ">=6.9.0"
@@ -388,9 +388,9 @@
       }
     },
     "node_modules/@babel/helper-remap-async-to-generator": {
-      "version": "7.16.0",
-      "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.16.0.tgz",
-      "integrity": "sha512-MLM1IOMe9aQBqMWxcRw8dcb9jlM86NIw7KA0Wri91Xkfied+dE0QuBFSBjMNvqzmS0OSIDsMNC24dBEkPUi7ew==",
+      "version": "7.16.4",
+      "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.16.4.tgz",
+      "integrity": "sha512-vGERmmhR+s7eH5Y/cp8PCVzj4XEjerq8jooMfxFdA5xVtAk9Sh4AQsrWgiErUEBjtGrBtOFKDUcWQFW4/dFwMA==",
       "dev": true,
       "dependencies": {
         "@babel/helper-annotate-as-pure": "^7.16.0",
@@ -558,13 +558,13 @@
       }
     },
     "node_modules/@babel/plugin-proposal-async-generator-functions": {
-      "version": "7.16.0",
-      "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.16.0.tgz",
-      "integrity": "sha512-nyYmIo7ZqKsY6P4lnVmBlxp9B3a96CscbLotlsNuktMHahkDwoPYEjXrZHU0Tj844Z9f1IthVxQln57mhkcExw==",
+      "version": "7.16.4",
+      "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.16.4.tgz",
+      "integrity": "sha512-/CUekqaAaZCQHleSK/9HajvcD/zdnJiKRiuUFq8ITE+0HsPzquf53cpFiqAwl/UfmJbR6n5uGPQSPdrmKOvHHg==",
       "dev": true,
       "dependencies": {
         "@babel/helper-plugin-utils": "^7.14.5",
-        "@babel/helper-remap-async-to-generator": "^7.16.0",
+        "@babel/helper-remap-async-to-generator": "^7.16.4",
         "@babel/plugin-syntax-async-generators": "^7.8.4"
       },
       "engines": {
@@ -1578,18 +1578,18 @@
       }
     },
     "node_modules/@babel/preset-env": {
-      "version": "7.16.0",
-      "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.16.0.tgz",
-      "integrity": "sha512-cdTu/W0IrviamtnZiTfixPfIncr2M1VqRrkjzZWlr1B4TVYimCFK5jkyOdP4qw2MrlKHi+b3ORj6x8GoCew8Dg==",
+      "version": "7.16.4",
+      "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.16.4.tgz",
+      "integrity": "sha512-v0QtNd81v/xKj4gNKeuAerQ/azeNn/G1B1qMLeXOcV8+4TWlD2j3NV1u8q29SDFBXx/NBq5kyEAO+0mpRgacjA==",
       "dev": true,
       "dependencies": {
-        "@babel/compat-data": "^7.16.0",
-        "@babel/helper-compilation-targets": "^7.16.0",
+        "@babel/compat-data": "^7.16.4",
+        "@babel/helper-compilation-targets": "^7.16.3",
         "@babel/helper-plugin-utils": "^7.14.5",
         "@babel/helper-validator-option": "^7.14.5",
-        "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.16.0",
+        "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.16.2",
         "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.16.0",
-        "@babel/plugin-proposal-async-generator-functions": "^7.16.0",
+        "@babel/plugin-proposal-async-generator-functions": "^7.16.4",
         "@babel/plugin-proposal-class-properties": "^7.16.0",
         "@babel/plugin-proposal-class-static-block": "^7.16.0",
         "@babel/plugin-proposal-dynamic-import": "^7.16.0",
@@ -1639,7 +1639,7 @@
         "@babel/plugin-transform-named-capturing-groups-regex": "^7.16.0",
         "@babel/plugin-transform-new-target": "^7.16.0",
         "@babel/plugin-transform-object-super": "^7.16.0",
-        "@babel/plugin-transform-parameters": "^7.16.0",
+        "@babel/plugin-transform-parameters": "^7.16.3",
         "@babel/plugin-transform-property-literals": "^7.16.0",
         "@babel/plugin-transform-regenerator": "^7.16.0",
         "@babel/plugin-transform-reserved-words": "^7.16.0",
@@ -1652,10 +1652,10 @@
         "@babel/plugin-transform-unicode-regex": "^7.16.0",
         "@babel/preset-modules": "^0.1.5",
         "@babel/types": "^7.16.0",
-        "babel-plugin-polyfill-corejs2": "^0.2.3",
-        "babel-plugin-polyfill-corejs3": "^0.3.0",
-        "babel-plugin-polyfill-regenerator": "^0.2.3",
-        "core-js-compat": "^3.19.0",
+        "babel-plugin-polyfill-corejs2": "^0.3.0",
+        "babel-plugin-polyfill-corejs3": "^0.4.0",
+        "babel-plugin-polyfill-regenerator": "^0.3.0",
+        "core-js-compat": "^3.19.1",
         "semver": "^6.3.0"
       },
       "engines": {
@@ -1665,6 +1665,64 @@
         "@babel/core": "^7.0.0-0"
       }
     },
+    "node_modules/@babel/preset-env/node_modules/@babel/helper-define-polyfill-provider": {
+      "version": "0.3.0",
+      "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.0.tgz",
+      "integrity": "sha512-7hfT8lUljl/tM3h+izTX/pO3W3frz2ok6Pk+gzys8iJqDfZrZy2pXjRTZAvG2YmfHun1X4q8/UZRLatMfqc5Tg==",
+      "dev": true,
+      "dependencies": {
+        "@babel/helper-compilation-targets": "^7.13.0",
+        "@babel/helper-module-imports": "^7.12.13",
+        "@babel/helper-plugin-utils": "^7.13.0",
+        "@babel/traverse": "^7.13.0",
+        "debug": "^4.1.1",
+        "lodash.debounce": "^4.0.8",
+        "resolve": "^1.14.2",
+        "semver": "^6.1.2"
+      },
+      "peerDependencies": {
+        "@babel/core": "^7.4.0-0"
+      }
+    },
+    "node_modules/@babel/preset-env/node_modules/babel-plugin-polyfill-corejs2": {
+      "version": "0.3.0",
+      "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.0.tgz",
+      "integrity": "sha512-wMDoBJ6uG4u4PNFh72Ty6t3EgfA91puCuAwKIazbQlci+ENb/UU9A3xG5lutjUIiXCIn1CY5L15r9LimiJyrSA==",
+      "dev": true,
+      "dependencies": {
+        "@babel/compat-data": "^7.13.11",
+        "@babel/helper-define-polyfill-provider": "^0.3.0",
+        "semver": "^6.1.1"
+      },
+      "peerDependencies": {
+        "@babel/core": "^7.0.0-0"
+      }
+    },
+    "node_modules/@babel/preset-env/node_modules/babel-plugin-polyfill-corejs3": {
+      "version": "0.4.0",
+      "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.4.0.tgz",
+      "integrity": "sha512-YxFreYwUfglYKdLUGvIF2nJEsGwj+RhWSX/ije3D2vQPOXuyMLMtg/cCGMDpOA7Nd+MwlNdnGODbd2EwUZPlsw==",
+      "dev": true,
+      "dependencies": {
+        "@babel/helper-define-polyfill-provider": "^0.3.0",
+        "core-js-compat": "^3.18.0"
+      },
+      "peerDependencies": {
+        "@babel/core": "^7.0.0-0"
+      }
+    },
+    "node_modules/@babel/preset-env/node_modules/babel-plugin-polyfill-regenerator": {
+      "version": "0.3.0",
+      "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.3.0.tgz",
+      "integrity": "sha512-dhAPTDLGoMW5/84wkgwiLRwMnio2i1fUe53EuvtKMv0pn2p3S8OCoV1xAzfJPl0KOX7IB89s2ib85vbYiea3jg==",
+      "dev": true,
+      "dependencies": {
+        "@babel/helper-define-polyfill-provider": "^0.3.0"
+      },
+      "peerDependencies": {
+        "@babel/core": "^7.0.0-0"
+      }
+    },
     "node_modules/@babel/preset-modules": {
       "version": "0.1.5",
       "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.5.tgz",
@@ -3851,9 +3909,9 @@
       }
     },
     "node_modules/@vue/test-utils": {
-      "version": "1.2.2",
-      "resolved": "https://registry.npmjs.org/@vue/test-utils/-/test-utils-1.2.2.tgz",
-      "integrity": "sha512-P+yiAsszoy8z1TqXiVUnAZaJj0WGGz5fCxm4bOSI6Cpwy1+PNYwYxDv0ROAA/SUtOPppV+aD8tp/QWwxf8ROJw==",
+      "version": "1.3.0",
+      "resolved": "https://registry.npmjs.org/@vue/test-utils/-/test-utils-1.3.0.tgz",
+      "integrity": "sha512-Xk2Xiyj2k5dFb8eYUKkcN9PzqZSppTlx7LaQWBbdA8tqh3jHr/KHX2/YLhNFc/xwDrgeLybqd+4ZCPJSGPIqeA==",
       "dev": true,
       "dependencies": {
         "dom-event-types": "^1.0.0",
@@ -5869,9 +5927,9 @@
       "dev": true
     },
     "node_modules/book-ui": {
-      "version": "0.1.20",
-      "resolved": "file:../book-ui-0.1.20.tgz",
-      "integrity": "sha512-9MmIJp6pIyERxvhn9EEuJAHIve3sxpMMXN4ogbFR9LSiKbhIPOH4MAMmLwPNBwzyPz/hDUcG/77FrM1YWz0cUw==",
+      "version": "0.1.26",
+      "resolved": "file:../book-ui-0.1.26.tgz",
+      "integrity": "sha512-bCfAlnlxmOFL+dqWIRHxqIdBJjYDWrnOIx9TrrnSfDOUqCckJFo65FMZC46/o6zFJRPfnP9hd94AjU6VivtTXA==",
       "dependencies": {
         "awe-dnd": "^0.3.4",
         "axios": "^0.21.1",
@@ -5883,12 +5941,11 @@
         "jsplumb": "^2.15.6",
         "less-loader": "^5.0.0",
         "node-sass": "^4.14.1",
-        "pdfjs-dist": "^2.5.207",
         "sass-loader": "^7.1.0",
         "seededshuffle": "^0.2.0",
         "vue": "^2.6.11",
         "vue-esign": "^1.0.5",
-        "vue-pdf": "^4.2.0",
+        "vue-pdf": "^4.3.0",
         "vuedraggable": "^2.24.3",
         "xgplayer": "^2.30.2"
       }
@@ -5949,14 +6006,6 @@
         "node": ">=0.10.0"
       }
     },
-    "node_modules/book-ui/node_modules/js-cookie": {
-      "version": "3.0.1",
-      "resolved": "https://registry.npmjs.org/js-cookie/-/js-cookie-3.0.1.tgz",
-      "integrity": "sha512-+0rgsUXZu4ncpPxRL+lNEptWMOWl9etvPHc/koSRp6MPwpRYAhmk0dUG00J4bxVV3r9uUzfo24wW0knS07SKSw==",
-      "engines": {
-        "node": ">=12"
-      }
-    },
     "node_modules/book-ui/node_modules/lru-cache": {
       "version": "4.1.5",
       "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz",
@@ -14192,9 +14241,12 @@
       }
     },
     "node_modules/js-cookie": {
-      "version": "2.2.1",
-      "resolved": "https://registry.npmjs.org/js-cookie/-/js-cookie-2.2.1.tgz",
-      "integrity": "sha512-HvdH2LzI/EAZcUwA8+0nKNtWHqS+ZmijLA30RwZA0bo7ToCckjK5MkGhjED9KoRcXO6BaGI3I9UIzSA1FKFPOQ=="
+      "version": "3.0.1",
+      "resolved": "https://registry.npmjs.org/js-cookie/-/js-cookie-3.0.1.tgz",
+      "integrity": "sha512-+0rgsUXZu4ncpPxRL+lNEptWMOWl9etvPHc/koSRp6MPwpRYAhmk0dUG00J4bxVV3r9uUzfo24wW0knS07SKSw==",
+      "engines": {
+        "node": ">=12"
+      }
     },
     "node_modules/js-message": {
       "version": "1.0.7",
@@ -18309,48 +18361,12 @@
       }
     },
     "node_modules/postcss-sorting": {
-      "version": "5.0.1",
-      "resolved": "https://registry.npmjs.org/postcss-sorting/-/postcss-sorting-5.0.1.tgz",
-      "integrity": "sha512-Y9fUFkIhfrm6i0Ta3n+89j56EFqaNRdUKqXyRp6kvTcSXnmgEjaVowCXH+JBe9+YKWqd4nc28r2sgwnzJalccA==",
-      "dev": true,
-      "dependencies": {
-        "lodash": "^4.17.14",
-        "postcss": "^7.0.17"
-      },
-      "engines": {
-        "node": ">=8.7.0"
-      }
-    },
-    "node_modules/postcss-sorting/node_modules/picocolors": {
-      "version": "0.2.1",
-      "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz",
-      "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==",
-      "dev": true
-    },
-    "node_modules/postcss-sorting/node_modules/postcss": {
-      "version": "7.0.39",
-      "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz",
-      "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==",
-      "dev": true,
-      "dependencies": {
-        "picocolors": "^0.2.1",
-        "source-map": "^0.6.1"
-      },
-      "engines": {
-        "node": ">=6.0.0"
-      },
-      "funding": {
-        "type": "opencollective",
-        "url": "https://opencollective.com/postcss/"
-      }
-    },
-    "node_modules/postcss-sorting/node_modules/source-map": {
-      "version": "0.6.1",
-      "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
-      "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+      "version": "7.0.1",
+      "resolved": "https://registry.npmjs.org/postcss-sorting/-/postcss-sorting-7.0.1.tgz",
+      "integrity": "sha512-iLBFYz6VRYyLJEJsBJ8M3TCqNcckVzz4wFounSc5Oez35ogE/X+aoC5fFu103Ot7NyvjU3/xqIXn93Gp3kJk4g==",
       "dev": true,
-      "engines": {
-        "node": ">=0.10.0"
+      "peerDependencies": {
+        "postcss": "^8.3.9"
       }
     },
     "node_modules/postcss-svgo": {
@@ -21176,15 +21192,15 @@
       }
     },
     "node_modules/stylelint-config-recess-order": {
-      "version": "2.6.0",
-      "resolved": "https://registry.npmjs.org/stylelint-config-recess-order/-/stylelint-config-recess-order-2.6.0.tgz",
-      "integrity": "sha512-s5+2sCEb+/3NzcBHjqLUJRt9JXl+o8pvWEVfAC0mKDrFbuftZJ53hKW1VAMjRvRk1nDJRB/rnFMtFbXb5xB8SA==",
+      "version": "3.0.0",
+      "resolved": "https://registry.npmjs.org/stylelint-config-recess-order/-/stylelint-config-recess-order-3.0.0.tgz",
+      "integrity": "sha512-uNXrlDz570Q7HJlrq8mNjgfO/xlKIh2hKVKEFMTG1/ih/6tDLcTbuvO1Zoo2dnQay990OAkWLDpTDOorB+hmBw==",
       "dev": true,
       "dependencies": {
-        "stylelint-order": "4.1.x"
+        "stylelint-order": "5.x"
       },
       "peerDependencies": {
-        "stylelint": ">=9"
+        "stylelint": ">=14"
       }
     },
     "node_modules/stylelint-config-recommended": {
@@ -21245,28 +21261,6 @@
         "stylelint": "^14.0.1"
       }
     },
-    "node_modules/stylelint-config-sass-guidelines/node_modules/postcss-sorting": {
-      "version": "7.0.1",
-      "resolved": "https://registry.npmjs.org/postcss-sorting/-/postcss-sorting-7.0.1.tgz",
-      "integrity": "sha512-iLBFYz6VRYyLJEJsBJ8M3TCqNcckVzz4wFounSc5Oez35ogE/X+aoC5fFu103Ot7NyvjU3/xqIXn93Gp3kJk4g==",
-      "dev": true,
-      "peerDependencies": {
-        "postcss": "^8.3.9"
-      }
-    },
-    "node_modules/stylelint-config-sass-guidelines/node_modules/stylelint-order": {
-      "version": "5.0.0",
-      "resolved": "https://registry.npmjs.org/stylelint-order/-/stylelint-order-5.0.0.tgz",
-      "integrity": "sha512-OWQ7pmicXufDw5BlRqzdz3fkGKJPgLyDwD1rFY3AIEfIH/LQY38Vu/85v8/up0I+VPiuGRwbc2Hg3zLAsJaiyw==",
-      "dev": true,
-      "dependencies": {
-        "postcss": "^8.3.11",
-        "postcss-sorting": "^7.0.1"
-      },
-      "peerDependencies": {
-        "stylelint": "^14.0.0"
-      }
-    },
     "node_modules/stylelint-config-standard": {
       "version": "23.0.0",
       "resolved": "https://registry.npmjs.org/stylelint-config-standard/-/stylelint-config-standard-23.0.0.tgz",
@@ -21293,61 +21287,28 @@
       }
     },
     "node_modules/stylelint-declaration-block-no-ignored-properties": {
-      "version": "2.4.0",
-      "resolved": "https://registry.npmjs.org/stylelint-declaration-block-no-ignored-properties/-/stylelint-declaration-block-no-ignored-properties-2.4.0.tgz",
-      "integrity": "sha512-ffAvq8GaXHL8rz0Qo+4gr3vqcau4pz/Z6WF9TJr4yG6WY5Vbqa6RPechgqv/izZu5trOKwJgnznOzO8VvhIKlw==",
+      "version": "2.5.0",
+      "resolved": "https://registry.npmjs.org/stylelint-declaration-block-no-ignored-properties/-/stylelint-declaration-block-no-ignored-properties-2.5.0.tgz",
+      "integrity": "sha512-UNz5nUC5GMgMb6GPc/pHUTC0+ydxTdj2mUn7XcKRdwQoiUzzUmWWdSf1aFv2UzrW4x8JYNReE1u5JOj7g0ThJw==",
       "dev": true,
       "engines": {
         "node": ">=6"
       },
       "peerDependencies": {
-        "stylelint": "^7.0.0 || ^8.0.0 || ^9.0.0 || ^10.0.0 || ^11.0.0 || ^12.0.0 || ^13.0.0"
+        "stylelint": "^7.0.0 || ^8.0.0 || ^9.0.0 || ^10.0.0 || ^11.0.0 || ^12.0.0 || ^13.0.0 || ^14.0.0"
       }
     },
     "node_modules/stylelint-order": {
-      "version": "4.1.0",
-      "resolved": "https://registry.npmjs.org/stylelint-order/-/stylelint-order-4.1.0.tgz",
-      "integrity": "sha512-sVTikaDvMqg2aJjh4r48jsdfmqLT+nqB1MOsaBnvM3OwLx4S+WXcsxsgk5w18h/OZoxZCxuyXMh61iBHcj9Qiw==",
+      "version": "5.0.0",
+      "resolved": "https://registry.npmjs.org/stylelint-order/-/stylelint-order-5.0.0.tgz",
+      "integrity": "sha512-OWQ7pmicXufDw5BlRqzdz3fkGKJPgLyDwD1rFY3AIEfIH/LQY38Vu/85v8/up0I+VPiuGRwbc2Hg3zLAsJaiyw==",
       "dev": true,
       "dependencies": {
-        "lodash": "^4.17.15",
-        "postcss": "^7.0.31",
-        "postcss-sorting": "^5.0.1"
+        "postcss": "^8.3.11",
+        "postcss-sorting": "^7.0.1"
       },
       "peerDependencies": {
-        "stylelint": "^10.0.1 || ^11.0.0 || ^12.0.0 || ^13.0.0"
-      }
-    },
-    "node_modules/stylelint-order/node_modules/picocolors": {
-      "version": "0.2.1",
-      "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz",
-      "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==",
-      "dev": true
-    },
-    "node_modules/stylelint-order/node_modules/postcss": {
-      "version": "7.0.39",
-      "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz",
-      "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==",
-      "dev": true,
-      "dependencies": {
-        "picocolors": "^0.2.1",
-        "source-map": "^0.6.1"
-      },
-      "engines": {
-        "node": ">=6.0.0"
-      },
-      "funding": {
-        "type": "opencollective",
-        "url": "https://opencollective.com/postcss/"
-      }
-    },
-    "node_modules/stylelint-order/node_modules/source-map": {
-      "version": "0.6.1",
-      "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
-      "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
-      "dev": true,
-      "engines": {
-        "node": ">=0.10.0"
+        "stylelint": "^14.0.0"
       }
     },
     "node_modules/stylelint-scss": {
@@ -21761,9 +21722,9 @@
       }
     },
     "node_modules/stylelint/node_modules/ignore": {
-      "version": "5.1.8",
-      "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.8.tgz",
-      "integrity": "sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==",
+      "version": "5.1.9",
+      "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.9.tgz",
+      "integrity": "sha512-2zeMQpbKz5dhZ9IwL0gbxSW5w0NK/MSAMtNuhgIHEPmaU3vPdKPL0UdvUCXs5SS4JAwsBxysK5sFMW8ocFiVjQ==",
       "dev": true,
       "engines": {
         "node": ">= 4"
@@ -25085,9 +25046,9 @@
       }
     },
     "@babel/compat-data": {
-      "version": "7.16.0",
-      "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.16.0.tgz",
-      "integrity": "sha512-DGjt2QZse5SGd9nfOSqO4WLJ8NN/oHkijbXbPrxuoJO3oIPJL3TciZs9FX+cOHNiY9E9l0opL8g7BmLe3T+9ew==",
+      "version": "7.16.4",
+      "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.16.4.tgz",
+      "integrity": "sha512-1o/jo7D+kC9ZjHX5v+EHrdjl3PhxMrLSOTGsOdHJ+KL8HCaEK6ehrVL2RS6oHDZp+L7xLirLrPmQtEng769J/Q==",
       "dev": true
     },
     "@babel/core": {
@@ -25312,9 +25273,9 @@
       "dev": true
     },
     "@babel/helper-remap-async-to-generator": {
-      "version": "7.16.0",
-      "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.16.0.tgz",
-      "integrity": "sha512-MLM1IOMe9aQBqMWxcRw8dcb9jlM86NIw7KA0Wri91Xkfied+dE0QuBFSBjMNvqzmS0OSIDsMNC24dBEkPUi7ew==",
+      "version": "7.16.4",
+      "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.16.4.tgz",
+      "integrity": "sha512-vGERmmhR+s7eH5Y/cp8PCVzj4XEjerq8jooMfxFdA5xVtAk9Sh4AQsrWgiErUEBjtGrBtOFKDUcWQFW4/dFwMA==",
       "dev": true,
       "requires": {
         "@babel/helper-annotate-as-pure": "^7.16.0",
@@ -25434,13 +25395,13 @@
       }
     },
     "@babel/plugin-proposal-async-generator-functions": {
-      "version": "7.16.0",
-      "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.16.0.tgz",
-      "integrity": "sha512-nyYmIo7ZqKsY6P4lnVmBlxp9B3a96CscbLotlsNuktMHahkDwoPYEjXrZHU0Tj844Z9f1IthVxQln57mhkcExw==",
+      "version": "7.16.4",
+      "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.16.4.tgz",
+      "integrity": "sha512-/CUekqaAaZCQHleSK/9HajvcD/zdnJiKRiuUFq8ITE+0HsPzquf53cpFiqAwl/UfmJbR6n5uGPQSPdrmKOvHHg==",
       "dev": true,
       "requires": {
         "@babel/helper-plugin-utils": "^7.14.5",
-        "@babel/helper-remap-async-to-generator": "^7.16.0",
+        "@babel/helper-remap-async-to-generator": "^7.16.4",
         "@babel/plugin-syntax-async-generators": "^7.8.4"
       }
     },
@@ -26091,18 +26052,18 @@
       }
     },
     "@babel/preset-env": {
-      "version": "7.16.0",
-      "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.16.0.tgz",
-      "integrity": "sha512-cdTu/W0IrviamtnZiTfixPfIncr2M1VqRrkjzZWlr1B4TVYimCFK5jkyOdP4qw2MrlKHi+b3ORj6x8GoCew8Dg==",
+      "version": "7.16.4",
+      "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.16.4.tgz",
+      "integrity": "sha512-v0QtNd81v/xKj4gNKeuAerQ/azeNn/G1B1qMLeXOcV8+4TWlD2j3NV1u8q29SDFBXx/NBq5kyEAO+0mpRgacjA==",
       "dev": true,
       "requires": {
-        "@babel/compat-data": "^7.16.0",
-        "@babel/helper-compilation-targets": "^7.16.0",
+        "@babel/compat-data": "^7.16.4",
+        "@babel/helper-compilation-targets": "^7.16.3",
         "@babel/helper-plugin-utils": "^7.14.5",
         "@babel/helper-validator-option": "^7.14.5",
-        "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.16.0",
+        "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.16.2",
         "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.16.0",
-        "@babel/plugin-proposal-async-generator-functions": "^7.16.0",
+        "@babel/plugin-proposal-async-generator-functions": "^7.16.4",
         "@babel/plugin-proposal-class-properties": "^7.16.0",
         "@babel/plugin-proposal-class-static-block": "^7.16.0",
         "@babel/plugin-proposal-dynamic-import": "^7.16.0",
@@ -26152,7 +26113,7 @@
         "@babel/plugin-transform-named-capturing-groups-regex": "^7.16.0",
         "@babel/plugin-transform-new-target": "^7.16.0",
         "@babel/plugin-transform-object-super": "^7.16.0",
-        "@babel/plugin-transform-parameters": "^7.16.0",
+        "@babel/plugin-transform-parameters": "^7.16.3",
         "@babel/plugin-transform-property-literals": "^7.16.0",
         "@babel/plugin-transform-regenerator": "^7.16.0",
         "@babel/plugin-transform-reserved-words": "^7.16.0",
@@ -26165,11 +26126,59 @@
         "@babel/plugin-transform-unicode-regex": "^7.16.0",
         "@babel/preset-modules": "^0.1.5",
         "@babel/types": "^7.16.0",
-        "babel-plugin-polyfill-corejs2": "^0.2.3",
-        "babel-plugin-polyfill-corejs3": "^0.3.0",
-        "babel-plugin-polyfill-regenerator": "^0.2.3",
-        "core-js-compat": "^3.19.0",
+        "babel-plugin-polyfill-corejs2": "^0.3.0",
+        "babel-plugin-polyfill-corejs3": "^0.4.0",
+        "babel-plugin-polyfill-regenerator": "^0.3.0",
+        "core-js-compat": "^3.19.1",
         "semver": "^6.3.0"
+      },
+      "dependencies": {
+        "@babel/helper-define-polyfill-provider": {
+          "version": "0.3.0",
+          "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.0.tgz",
+          "integrity": "sha512-7hfT8lUljl/tM3h+izTX/pO3W3frz2ok6Pk+gzys8iJqDfZrZy2pXjRTZAvG2YmfHun1X4q8/UZRLatMfqc5Tg==",
+          "dev": true,
+          "requires": {
+            "@babel/helper-compilation-targets": "^7.13.0",
+            "@babel/helper-module-imports": "^7.12.13",
+            "@babel/helper-plugin-utils": "^7.13.0",
+            "@babel/traverse": "^7.13.0",
+            "debug": "^4.1.1",
+            "lodash.debounce": "^4.0.8",
+            "resolve": "^1.14.2",
+            "semver": "^6.1.2"
+          }
+        },
+        "babel-plugin-polyfill-corejs2": {
+          "version": "0.3.0",
+          "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.0.tgz",
+          "integrity": "sha512-wMDoBJ6uG4u4PNFh72Ty6t3EgfA91puCuAwKIazbQlci+ENb/UU9A3xG5lutjUIiXCIn1CY5L15r9LimiJyrSA==",
+          "dev": true,
+          "requires": {
+            "@babel/compat-data": "^7.13.11",
+            "@babel/helper-define-polyfill-provider": "^0.3.0",
+            "semver": "^6.1.1"
+          }
+        },
+        "babel-plugin-polyfill-corejs3": {
+          "version": "0.4.0",
+          "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.4.0.tgz",
+          "integrity": "sha512-YxFreYwUfglYKdLUGvIF2nJEsGwj+RhWSX/ije3D2vQPOXuyMLMtg/cCGMDpOA7Nd+MwlNdnGODbd2EwUZPlsw==",
+          "dev": true,
+          "requires": {
+            "@babel/helper-define-polyfill-provider": "^0.3.0",
+            "core-js-compat": "^3.18.0"
+          }
+        },
+        "babel-plugin-polyfill-regenerator": {
+          "version": "0.3.0",
+          "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.3.0.tgz",
+          "integrity": "sha512-dhAPTDLGoMW5/84wkgwiLRwMnio2i1fUe53EuvtKMv0pn2p3S8OCoV1xAzfJPl0KOX7IB89s2ib85vbYiea3jg==",
+          "dev": true,
+          "requires": {
+            "@babel/helper-define-polyfill-provider": "^0.3.0"
+          }
+        }
       }
     },
     "@babel/preset-modules": {
@@ -27952,9 +27961,9 @@
       "requires": {}
     },
     "@vue/test-utils": {
-      "version": "1.2.2",
-      "resolved": "https://registry.npmjs.org/@vue/test-utils/-/test-utils-1.2.2.tgz",
-      "integrity": "sha512-P+yiAsszoy8z1TqXiVUnAZaJj0WGGz5fCxm4bOSI6Cpwy1+PNYwYxDv0ROAA/SUtOPppV+aD8tp/QWwxf8ROJw==",
+      "version": "1.3.0",
+      "resolved": "https://registry.npmjs.org/@vue/test-utils/-/test-utils-1.3.0.tgz",
+      "integrity": "sha512-Xk2Xiyj2k5dFb8eYUKkcN9PzqZSppTlx7LaQWBbdA8tqh3jHr/KHX2/YLhNFc/xwDrgeLybqd+4ZCPJSGPIqeA==",
       "dev": true,
       "requires": {
         "dom-event-types": "^1.0.0",
@@ -29597,8 +29606,8 @@
       }
     },
     "book-ui": {
-      "version": "file:..\\book-ui-0.1.20.tgz",
-      "integrity": "sha512-9MmIJp6pIyERxvhn9EEuJAHIve3sxpMMXN4ogbFR9LSiKbhIPOH4MAMmLwPNBwzyPz/hDUcG/77FrM1YWz0cUw==",
+      "version": "file:..\\book-ui-0.1.26.tgz",
+      "integrity": "sha512-bCfAlnlxmOFL+dqWIRHxqIdBJjYDWrnOIx9TrrnSfDOUqCckJFo65FMZC46/o6zFJRPfnP9hd94AjU6VivtTXA==",
       "requires": {
         "awe-dnd": "^0.3.4",
         "axios": "^0.21.1",
@@ -29610,12 +29619,11 @@
         "jsplumb": "^2.15.6",
         "less-loader": "^5.0.0",
         "node-sass": "^4.14.1",
-        "pdfjs-dist": "^2.5.207",
         "sass-loader": "^7.1.0",
         "seededshuffle": "^0.2.0",
         "vue": "^2.6.11",
         "vue-esign": "^1.0.5",
-        "vue-pdf": "^4.2.0",
+        "vue-pdf": "^4.3.0",
         "vuedraggable": "^2.24.3",
         "xgplayer": "^2.30.2"
       },
@@ -29664,11 +29672,6 @@
           "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz",
           "integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4="
         },
-        "js-cookie": {
-          "version": "3.0.1",
-          "resolved": "https://registry.npmjs.org/js-cookie/-/js-cookie-3.0.1.tgz",
-          "integrity": "sha512-+0rgsUXZu4ncpPxRL+lNEptWMOWl9etvPHc/koSRp6MPwpRYAhmk0dUG00J4bxVV3r9uUzfo24wW0knS07SKSw=="
-        },
         "lru-cache": {
           "version": "4.1.5",
           "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz",
@@ -36181,9 +36184,9 @@
       }
     },
     "js-cookie": {
-      "version": "2.2.1",
-      "resolved": "https://registry.npmjs.org/js-cookie/-/js-cookie-2.2.1.tgz",
-      "integrity": "sha512-HvdH2LzI/EAZcUwA8+0nKNtWHqS+ZmijLA30RwZA0bo7ToCckjK5MkGhjED9KoRcXO6BaGI3I9UIzSA1FKFPOQ=="
+      "version": "3.0.1",
+      "resolved": "https://registry.npmjs.org/js-cookie/-/js-cookie-3.0.1.tgz",
+      "integrity": "sha512-+0rgsUXZu4ncpPxRL+lNEptWMOWl9etvPHc/koSRp6MPwpRYAhmk0dUG00J4bxVV3r9uUzfo24wW0knS07SKSw=="
     },
     "js-message": {
       "version": "1.0.7",
@@ -39460,38 +39463,11 @@
       }
     },
     "postcss-sorting": {
-      "version": "5.0.1",
-      "resolved": "https://registry.npmjs.org/postcss-sorting/-/postcss-sorting-5.0.1.tgz",
-      "integrity": "sha512-Y9fUFkIhfrm6i0Ta3n+89j56EFqaNRdUKqXyRp6kvTcSXnmgEjaVowCXH+JBe9+YKWqd4nc28r2sgwnzJalccA==",
+      "version": "7.0.1",
+      "resolved": "https://registry.npmjs.org/postcss-sorting/-/postcss-sorting-7.0.1.tgz",
+      "integrity": "sha512-iLBFYz6VRYyLJEJsBJ8M3TCqNcckVzz4wFounSc5Oez35ogE/X+aoC5fFu103Ot7NyvjU3/xqIXn93Gp3kJk4g==",
       "dev": true,
-      "requires": {
-        "lodash": "^4.17.14",
-        "postcss": "^7.0.17"
-      },
-      "dependencies": {
-        "picocolors": {
-          "version": "0.2.1",
-          "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz",
-          "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==",
-          "dev": true
-        },
-        "postcss": {
-          "version": "7.0.39",
-          "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz",
-          "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==",
-          "dev": true,
-          "requires": {
-            "picocolors": "^0.2.1",
-            "source-map": "^0.6.1"
-          }
-        },
-        "source-map": {
-          "version": "0.6.1",
-          "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
-          "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
-          "dev": true
-        }
-      }
+      "requires": {}
     },
     "postcss-svgo": {
       "version": "4.0.3",
@@ -41832,9 +41808,9 @@
           }
         },
         "ignore": {
-          "version": "5.1.8",
-          "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.8.tgz",
-          "integrity": "sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==",
+          "version": "5.1.9",
+          "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.9.tgz",
+          "integrity": "sha512-2zeMQpbKz5dhZ9IwL0gbxSW5w0NK/MSAMtNuhgIHEPmaU3vPdKPL0UdvUCXs5SS4JAwsBxysK5sFMW8ocFiVjQ==",
           "dev": true
         },
         "import-fresh": {
@@ -42060,12 +42036,12 @@
       "requires": {}
     },
     "stylelint-config-recess-order": {
-      "version": "2.6.0",
-      "resolved": "https://registry.npmjs.org/stylelint-config-recess-order/-/stylelint-config-recess-order-2.6.0.tgz",
-      "integrity": "sha512-s5+2sCEb+/3NzcBHjqLUJRt9JXl+o8pvWEVfAC0mKDrFbuftZJ53hKW1VAMjRvRk1nDJRB/rnFMtFbXb5xB8SA==",
+      "version": "3.0.0",
+      "resolved": "https://registry.npmjs.org/stylelint-config-recess-order/-/stylelint-config-recess-order-3.0.0.tgz",
+      "integrity": "sha512-uNXrlDz570Q7HJlrq8mNjgfO/xlKIh2hKVKEFMTG1/ih/6tDLcTbuvO1Zoo2dnQay990OAkWLDpTDOorB+hmBw==",
       "dev": true,
       "requires": {
-        "stylelint-order": "4.1.x"
+        "stylelint-order": "5.x"
       }
     },
     "stylelint-config-recommended": {
@@ -42105,25 +42081,6 @@
         "postcss-scss": "^4.0.2",
         "stylelint-order": "^5.0.0",
         "stylelint-scss": "^4.0.0"
-      },
-      "dependencies": {
-        "postcss-sorting": {
-          "version": "7.0.1",
-          "resolved": "https://registry.npmjs.org/postcss-sorting/-/postcss-sorting-7.0.1.tgz",
-          "integrity": "sha512-iLBFYz6VRYyLJEJsBJ8M3TCqNcckVzz4wFounSc5Oez35ogE/X+aoC5fFu103Ot7NyvjU3/xqIXn93Gp3kJk4g==",
-          "dev": true,
-          "requires": {}
-        },
-        "stylelint-order": {
-          "version": "5.0.0",
-          "resolved": "https://registry.npmjs.org/stylelint-order/-/stylelint-order-5.0.0.tgz",
-          "integrity": "sha512-OWQ7pmicXufDw5BlRqzdz3fkGKJPgLyDwD1rFY3AIEfIH/LQY38Vu/85v8/up0I+VPiuGRwbc2Hg3zLAsJaiyw==",
-          "dev": true,
-          "requires": {
-            "postcss": "^8.3.11",
-            "postcss-sorting": "^7.0.1"
-          }
-        }
       }
     },
     "stylelint-config-standard": {
@@ -42146,45 +42103,20 @@
       }
     },
     "stylelint-declaration-block-no-ignored-properties": {
-      "version": "2.4.0",
-      "resolved": "https://registry.npmjs.org/stylelint-declaration-block-no-ignored-properties/-/stylelint-declaration-block-no-ignored-properties-2.4.0.tgz",
-      "integrity": "sha512-ffAvq8GaXHL8rz0Qo+4gr3vqcau4pz/Z6WF9TJr4yG6WY5Vbqa6RPechgqv/izZu5trOKwJgnznOzO8VvhIKlw==",
+      "version": "2.5.0",
+      "resolved": "https://registry.npmjs.org/stylelint-declaration-block-no-ignored-properties/-/stylelint-declaration-block-no-ignored-properties-2.5.0.tgz",
+      "integrity": "sha512-UNz5nUC5GMgMb6GPc/pHUTC0+ydxTdj2mUn7XcKRdwQoiUzzUmWWdSf1aFv2UzrW4x8JYNReE1u5JOj7g0ThJw==",
       "dev": true,
       "requires": {}
     },
     "stylelint-order": {
-      "version": "4.1.0",
-      "resolved": "https://registry.npmjs.org/stylelint-order/-/stylelint-order-4.1.0.tgz",
-      "integrity": "sha512-sVTikaDvMqg2aJjh4r48jsdfmqLT+nqB1MOsaBnvM3OwLx4S+WXcsxsgk5w18h/OZoxZCxuyXMh61iBHcj9Qiw==",
+      "version": "5.0.0",
+      "resolved": "https://registry.npmjs.org/stylelint-order/-/stylelint-order-5.0.0.tgz",
+      "integrity": "sha512-OWQ7pmicXufDw5BlRqzdz3fkGKJPgLyDwD1rFY3AIEfIH/LQY38Vu/85v8/up0I+VPiuGRwbc2Hg3zLAsJaiyw==",
       "dev": true,
       "requires": {
-        "lodash": "^4.17.15",
-        "postcss": "^7.0.31",
-        "postcss-sorting": "^5.0.1"
-      },
-      "dependencies": {
-        "picocolors": {
-          "version": "0.2.1",
-          "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz",
-          "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==",
-          "dev": true
-        },
-        "postcss": {
-          "version": "7.0.39",
-          "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz",
-          "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==",
-          "dev": true,
-          "requires": {
-            "picocolors": "^0.2.1",
-            "source-map": "^0.6.1"
-          }
-        },
-        "source-map": {
-          "version": "0.6.1",
-          "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
-          "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
-          "dev": true
-        }
+        "postcss": "^8.3.11",
+        "postcss-sorting": "^7.0.1"
       }
     },
     "stylelint-scss": {

+ 8 - 8
package.json

@@ -16,12 +16,12 @@
     "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.20.tgz",
+    "book-ui": "file:../book-ui-0.1.26.tgz",
     "core-js": "^3.19.1",
     "element-ui": "^2.15.6",
     "gcls-book-question-ui": "file:../gcls-book-question-ui-0.1.0.tgz",
     "jquery": "^3.6.0",
-    "js-cookie": "^2.2.1",
+    "js-cookie": "^3.0.1",
     "jsplumb": "^2.15.6",
     "normalize.css": "^8.0.1",
     "nprogress": "^0.2.0",
@@ -35,14 +35,14 @@
   "devDependencies": {
     "@babel/core": "^7.16.0",
     "@babel/eslint-parser": "^7.16.3",
-    "@babel/preset-env": "^7.16.0",
+    "@babel/preset-env": "^7.16.4",
     "@vue/cli-plugin-babel": "~4.5.15",
     "@vue/cli-plugin-eslint": "~4.5.15",
     "@vue/cli-plugin-router": "~4.5.15",
     "@vue/cli-plugin-unit-jest": "^4.5.15",
     "@vue/cli-plugin-vuex": "~4.5.15",
     "@vue/cli-service": "~4.5.15",
-    "@vue/test-utils": "^1.2.2",
+    "@vue/test-utils": "^1.3.0",
     "babel-jest": "^27.3.1",
     "babel-loader": "^8.2.3",
     "babel-plugin-dynamic-import-node": "^2.3.3",
@@ -51,19 +51,19 @@
     "eslint-plugin-prettier": "^4.0.0",
     "eslint-plugin-vue": "^7.20.0",
     "html-webpack-plugin": "^5.3.1",
+    "postcss": "^8.3.11",
+    "postcss-html": "^1.2.0",
     "prettier": "2.4.1",
     "sass": "^1.43.4",
     "sass-loader": "^10.2.0",
     "script-ext-html-webpack-plugin": "^2.1.5",
     "stylelint": "^14.0.1",
-    "postcss": "^8.3.11",
-    "postcss-html": "^1.2.0",
     "stylelint-config-prettier": "^9.0.3",
-    "stylelint-config-recess-order": "^2.6.0",
+    "stylelint-config-recess-order": "^3.0.0",
     "stylelint-config-recommended-vue": "^1.0.0",
     "stylelint-config-sass-guidelines": "^9.0.1",
     "stylelint-config-standard-scss": "^2.0.1",
-    "stylelint-declaration-block-no-ignored-properties": "^2.4.0",
+    "stylelint-declaration-block-no-ignored-properties": "^2.5.0",
     "stylelint-webpack-plugin": "^3.1.0",
     "svg-sprite-loader": "^6.0.11",
     "svgo": "^2.8.0",

+ 7 - 7
src/components/StepBar.vue

@@ -69,8 +69,8 @@ export default {
     display: flex;
     align-items: center;
     justify-content: center;
-    width: $basicWidth;
-    min-width: $basicWidth;
+    width: $basic-width;
+    min-width: $basic-width;
     height: 100%;
     margin: 0 auto;
 
@@ -83,8 +83,8 @@ export default {
         border-radius: 50%;
 
         &.completed {
-          color: $basicColor;
-          border-color: $basicColor;
+          color: $basic-color;
+          border-color: $basic-color;
         }
       }
 
@@ -101,7 +101,7 @@ export default {
         background-color: #d9d9d9;
 
         &.completed {
-          background-color: $basicColor;
+          background-color: $basic-color;
         }
       }
 
@@ -110,8 +110,8 @@ export default {
 
         .step-number {
           color: #fff;
-          background-color: $basicColor;
-          border-color: $basicColor;
+          background-color: $basic-color;
+          border-color: $basic-color;
         }
       }
     }

+ 3 - 3
src/components/payment/Audit.vue

@@ -129,7 +129,7 @@ export default {
           font-size: 12px;
           font-weight: bold;
           line-height: 24px;
-          color: $basicColor;
+          color: $basic-color;
           text-align: center;
           background: #ffefd8;
           border-radius: 4px;
@@ -180,7 +180,7 @@ export default {
 
     .sp2 {
       font-size: 16px;
-      color: $basicColor;
+      color: $basic-color;
       cursor: pointer;
     }
   }
@@ -255,7 +255,7 @@ export default {
       line-height: 40px;
       color: #fff;
       cursor: pointer;
-      background: $basicColor;
+      background: $basic-color;
       border: none;
       border-radius: 4px;
     }

+ 3 - 3
src/components/select/treeMenus.vue

@@ -108,7 +108,7 @@ export default {
     cursor: pointer;
 
     :nth-child(2):hover {
-      color: $basicColor;
+      color: $basic-color;
     }
 
     &-leaf {
@@ -119,7 +119,7 @@ export default {
 
   &.selected {
     color: #fff;
-    background-color: $basicColor;
+    background-color: $basic-color;
   }
 
   &.children {
@@ -130,7 +130,7 @@ export default {
 
   &:not(.has-children) .tree-node-name:hover {
     color: #fff;
-    background-color: $basicColor;
+    background-color: $basic-color;
 
     :nth-child(2):hover {
       color: #fff;

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

@@ -56,8 +56,8 @@ export default {
   background-color: #f6ecdd;
 
   &-container {
-    width: $basicWidth;
-    min-width: $basicWidth;
+    width: $basic-width;
+    min-width: $basic-width;
     height: 100%;
     padding: 15px 0;
     margin: 0 auto;
@@ -73,7 +73,7 @@ export default {
       margin-right: 24px;
       vertical-align: bottom;
       content: '';
-      background-color: $basicColor;
+      background-color: $basic-color;
     }
 
     .el-icon-arrow-right {

+ 30 - 46
src/layouts/components/LayoutHeader.vue

@@ -5,42 +5,16 @@
       <span class="logo-img">
         <el-image :src="$store.state.app.config.logo_image_url" />
       </span>
-      <el-menu
-        :default-active="activeIndex"
-        class="el-menu-demo"
-        mode="horizontal"
-        text-color="#000"
-        active-text-color="#F90"
-        @select="handleSelect"
-      >
-        <el-menu-item index="1">主页</el-menu-item>
-        <el-menu-item index="2">
-          <template v-if="projectList.length > 1">
-            <el-dropdown trigger="click" @command="handleCommand">
-              <span class="el-dropdown-link" :style="{ color: activeIndex === '2' ? '#F90' : '#000' }">
-                {{ projectName }}
-                <!-- SYSTEM -->
-                <i class="el-icon-arrow-down el-icon--right" />
-              </span>
-              <el-dropdown-menu slot="dropdown" style="min-width: 278px">
-                <el-dropdown-item
-                  v-for="(item, i) in projectList"
-                  :key="i"
-                  :class="i === LoginNavIndex ? 'menuActive' : ''"
-                  :command="i"
-                  class="projectList"
-                >
-                  <img style="position: relative; width: 24px" :src="item.icon_url_memu_default" alt="">
-                  <span style="margin-left: 16px">
-                    {{ item.name }}
-                  </span>
-                </el-dropdown-item>
-              </el-dropdown-menu>
-            </el-dropdown>
-          </template>
-          <template v-else>{{ projectList.length > 0 && projectList[0].name }}</template>
-        </el-menu-item>
-      </el-menu>
+      <ul class="logo-projectlist">
+        <li
+          v-for="({name}, i) in projectList"
+          :key="i"
+          :class="i === LoginNavIndex ? 'active' : ''"
+          @click="handleCommand(i)"
+        >
+          {{ name }}
+        </li>
+      </ul>
     </div>
     <div class="userName">
       <el-dropdown style="margin-right: 16px" trigger="click" @command="changeLang">
@@ -209,22 +183,32 @@ export default {
     display: flex;
     align-items: center;
 
-    .el-menu-demo {
-      background: rgba(0, 0, 0, 0%);
+    &-img {
+      min-width: 242px;
+    }
+
+    &-projectlist {
+      display: flex;
+      height: 64px;
+      padding: 0 24px;
 
       li {
-        font-size: 16px;
-        background: none;
+        padding: 0 12px;
+        font-weight: 500;
+        line-height: $header-h;
+        color: rgba(0, 0, 0, 45%);
+        white-space: nowrap;
+        cursor: pointer;
 
         &:hover {
-          background: none;
+          background: #f6f6f6;
         }
-      }
-    }
 
-    // 取消组件默认的样式
-    .el-menu.el-menu--horizontal {
-      border-bottom-width: 0;
+        &.active {
+          color: $basic-color;
+          background: #ffefd6;
+        }
+      }
     }
   }
 

+ 1 - 1
src/layouts/index.vue

@@ -52,7 +52,7 @@ export default {
     width: 100%;
     height: calc(100vh - #{$header-h});
     overflow-y: auto;
-    background-color: $bacColor;
+    background-color: $bac-color;
   }
 }
 </style>

+ 4 - 4
src/styles/element-ui.scss

@@ -31,14 +31,14 @@
 
 .el-button.el-button--primary {
   color: #fff;
-  background-color: $basicColor;
-  border-color: $basicColor;
+  background-color: $basic-color;
+  border-color: $basic-color;
 }
 
 .el-radio__input.is-checked {
   .el-radio__inner {
-    background-color: $basicColor;
-    border-color: $basicColor;
+    background-color: $basic-color;
+    border-color: $basic-color;
   }
 
   + .el-radio__label {

+ 3 - 3
src/styles/mixin.scss

@@ -1,6 +1,6 @@
 @mixin container {
-  width: $basicWidth;
-  min-width: $basicWidth;
+  width: $basic-width;
+  min-width: $basic-width;
   padding: 32px 0 20px;
   margin: 0 auto;
 }
@@ -48,7 +48,7 @@
     }
 
     &.is-background .el-pager li:not(.disabled).active {
-      background-color: $basicColor;
+      background-color: $basic-color;
     }
   }
 }

+ 3 - 3
src/styles/variables.scss

@@ -1,6 +1,6 @@
 $header-h: 64px;
 $step-h: 124px;
-$basicWidth: 1200px;
-$bacColor: #f5f5f5;
-$basicColor: #f90;
+$basic-width: 1200px;
+$bac-color: #f5f5f5;
+$basic-color: #f90;
 $color: #2c2c2c;

+ 7 - 7
src/views/course_details/index.vue

@@ -495,7 +495,7 @@ export default {
           font-size: 20px;
           color: #fff;
           cursor: pointer;
-          background: $basicColor;
+          background: $basic-color;
           border-style: none;
           border-radius: 4px;
           outline: none;
@@ -536,9 +536,9 @@ export default {
 
       .moreTitle::before {
         margin-right: 16px;
-        color: $basicColor;
+        color: $basic-color;
         content: '|';
-        background: $basicColor;
+        background: $basic-color;
       }
 
       .moreList {
@@ -595,7 +595,7 @@ export default {
               font-size: 20px;
               color: #fff;
               cursor: pointer;
-              background: $basicColor;
+              background: $basic-color;
               border-style: none;
               border-radius: 4px;
               outline: none;
@@ -644,9 +644,9 @@ export default {
 
       .moreTitle::before {
         margin-right: 16px;
-        color: $basicColor;
+        color: $basic-color;
         content: '|';
-        background: $basicColor;
+        background: $basic-color;
       }
 
       .course-list {
@@ -847,7 +847,7 @@ export default {
 
         .select {
           color: #fff;
-          background: $basicColor;
+          background: $basic-color;
           box-shadow: 0 2px 8px rgba(255, 153, 0, 15%);
         }
       }

+ 1 - 1
src/views/main/TaskList.vue

@@ -330,7 +330,7 @@ export default {
               .task-link {
                 margin-left: 8px;
                 font-size: 16px;
-                color: $basicColor;
+                color: $basic-color;
                 vertical-align: top;
               }
             }

+ 1 - 1
src/views/main/curricula_list/student.vue

@@ -224,7 +224,7 @@ export default {
         color: #aaa;
 
         > a {
-          color: $basicColor;
+          color: $basic-color;
         }
       }
 

+ 1 - 1
src/views/main/index.vue

@@ -115,7 +115,7 @@ export default {
       &.active {
         font-weight: 700;
         color: #fff;
-        background-color: $basicColor;
+        background-color: $basic-color;
       }
     }
   }

+ 3 - 3
src/views/teacher/create_course/step_table/CourseInfo.vue

@@ -288,8 +288,8 @@ export default {
   margin-top: $step-h;
 
   &-container {
-    width: $basicWidth;
-    min-width: $basicWidth;
+    width: $basic-width;
+    min-width: $basic-width;
     min-height: calc(100vh - #{$header-h} - #{$step-h} - 80px);
     padding: 48px 64px;
     background-color: #fff;
@@ -311,7 +311,7 @@ export default {
       }
 
       .teacher {
-        background-color: $basicColor;
+        background-color: $basic-color;
         border-width: 0;
 
         .el-icon-plus {

+ 2 - 2
src/views/teacher/create_course/step_table/CreateTask.vue

@@ -785,14 +785,14 @@ export default {
         &-mid {
           &-title {
             .mid {
-              background-color: $basicColor;
+              background-color: $basic-color;
             }
           }
 
           &-list {
             padding-left: 19px;
             margin: 16px 9px;
-            border-left: 2px solid $basicColor;
+            border-left: 2px solid $basic-color;
           }
         }
 

+ 5 - 5
src/views/teacher/create_course/step_table/SelectBook.vue

@@ -140,8 +140,8 @@ export default {
   margin-top: $step-h;
 
   &-container {
-    width: $basicWidth;
-    min-width: $basicWidth;
+    width: $basic-width;
+    min-width: $basic-width;
     min-height: 674px;
     padding: 24px 32px;
     background-color: #fff;
@@ -165,7 +165,7 @@ export default {
 
         .buy {
           margin-left: 16px;
-          color: $basicColor;
+          color: $basic-color;
         }
 
         .tip {
@@ -204,7 +204,7 @@ export default {
               }
 
               &.selected {
-                border: 2px solid $basicColor;
+                border: 2px solid $basic-color;
 
                 &::after {
                   position: absolute;
@@ -217,7 +217,7 @@ export default {
                   color: #fff;
                   text-align: center;
                   content: '√';
-                  background-color: $basicColor;
+                  background-color: $basic-color;
                   border-top-left-radius: 5px;
                 }
               }

+ 1 - 1
src/views/teacher/student_list/index.vue

@@ -170,7 +170,7 @@ export default {
 
           &.active {
             font-weight: 600;
-            border-bottom: 2px solid $basicColor;
+            border-bottom: 2px solid $basic-color;
           }
 
           &:not(:first-child) {

+ 2 - 2
stylelint.config.js

@@ -22,7 +22,7 @@ module.exports = {
     // 可组合成一个属性的写法,不允许拆开书写
     'declaration-block-no-redundant-longhand-properties': true,
     // 选择器最大深度
-    'selector-max-compound-selectors': 8,
+    'selector-max-compound-selectors': 10,
     // 限制 id选择器的数目在一个选择器中
     'selector-max-id': 1,
     // 最多2个类型选择器
@@ -42,7 +42,7 @@ module.exports = {
     // 不允许使用 unicode 作为顺序标记
     'unicode-bom': 'never',
     'at-rule-no-unknown': [true, { ignoreAtRules: ['import', 'include', 'mixin', 'include', 'extend'] }],
-    'max-nesting-depth': 8,
+    'max-nesting-depth': [10, { ignore: ['blockless-at-rules', 'pseudo-classes'] }],
     'selector-no-qualifying-type': [true, { ignore: ['attribute', 'class', 'id'] }],
     // 为类选择器指定一个模式
     'selector-class-pattern': null,