Michael Wang 3 سال پیش
والد
کامیت
b04dfe0094

+ 7 - 7
package.json

@@ -17,7 +17,7 @@
   "dependencies": {
     "@chenfengyuan/vue-qrcode": "^2.0.0",
     "@vicons/ionicons5": "^0.12.0",
-    "@vitejs/plugin-legacy": "1.8.0",
+    "@vitejs/plugin-legacy": "^1.8.1",
     "axios": "^0.26.1",
     "axios-progress-bar": "^1.2.0",
     "axios-retry": "^3.2.4",
@@ -33,19 +33,19 @@
     "ua-parser-js": "^1.0.2",
     "vfonts": "^0.0.3",
     "viewerjs": "^1.10.5",
-    "vue": "^3.2.32",
+    "vue": "^3.2.33",
     "vue-router": "^4.0.14",
     "vuedraggable": "4.1.0"
   },
   "devDependencies": {
     "@types/js-md5": "^0.4.3",
     "@types/lodash-es": "^4.17.6",
-    "@types/node": "^17.0.23",
+    "@types/node": "^17.0.24",
     "@types/ua-parser-js": "^0.7.36",
     "@typescript-eslint/eslint-plugin": "^5.19.0",
     "@typescript-eslint/parser": "^5.19.0",
     "@vitejs/plugin-vue": "^2.3.1",
-    "@vitejs/plugin-vue-jsx": "^1.3.9",
+    "@vitejs/plugin-vue-jsx": "^1.3.10",
     "autoprefixer": "^10.4.4",
     "electron": "1.7.16",
     "eslint": "^8.13.0",
@@ -55,9 +55,9 @@
     "postcss": "^8.4.12",
     "prettier": "^2.6.2",
     "typescript": "^4.6.3",
-    "unplugin-auto-import": "^0.7.0",
-    "unplugin-vue-components": "^0.19.2",
-    "vite": "^2.9.1",
+    "unplugin-auto-import": "^0.7.1",
+    "unplugin-vue-components": "^0.19.3",
+    "vite": "^2.9.5",
     "vitest": "^0.9.3",
     "vue-eslint-parser": "^8.3.0",
     "vue-tsc": "^0.34.6"

+ 143 - 143
pnpm-lock.yaml

@@ -4,14 +4,14 @@ specifiers:
   '@chenfengyuan/vue-qrcode': ^2.0.0
   '@types/js-md5': ^0.4.3
   '@types/lodash-es': ^4.17.6
-  '@types/node': ^17.0.23
+  '@types/node': ^17.0.24
   '@types/ua-parser-js': ^0.7.36
   '@typescript-eslint/eslint-plugin': ^5.19.0
   '@typescript-eslint/parser': ^5.19.0
   '@vicons/ionicons5': ^0.12.0
-  '@vitejs/plugin-legacy': 1.8.0
+  '@vitejs/plugin-legacy': ^1.8.1
   '@vitejs/plugin-vue': ^2.3.1
-  '@vitejs/plugin-vue-jsx': ^1.3.9
+  '@vitejs/plugin-vue-jsx': ^1.3.10
   autoprefixer: ^10.4.4
   axios: ^0.26.1
   axios-progress-bar: ^1.2.0
@@ -34,22 +34,22 @@ specifiers:
   tailwindcss: ^3.0.24
   typescript: ^4.6.3
   ua-parser-js: ^1.0.2
-  unplugin-auto-import: ^0.7.0
-  unplugin-vue-components: ^0.19.2
+  unplugin-auto-import: ^0.7.1
+  unplugin-vue-components: ^0.19.3
   vfonts: ^0.0.3
   viewerjs: ^1.10.5
-  vite: ^2.9.1
+  vite: ^2.9.5
   vitest: ^0.9.3
-  vue: ^3.2.32
+  vue: ^3.2.33
   vue-eslint-parser: ^8.3.0
   vue-router: ^4.0.14
   vue-tsc: ^0.34.6
   vuedraggable: 4.1.0
 
 dependencies:
-  '@chenfengyuan/vue-qrcode': 2.0.0_qrcode@1.5.0+vue@3.2.32
+  '@chenfengyuan/vue-qrcode': 2.0.0_qrcode@1.5.0+vue@3.2.33
   '@vicons/ionicons5': 0.12.0
-  '@vitejs/plugin-legacy': 1.8.0_vite@2.9.1
+  '@vitejs/plugin-legacy': 1.8.1_vite@2.9.5
   axios: 0.26.1
   axios-progress-bar: 1.2.0_axios@0.26.1
   axios-retry: 3.2.4
@@ -58,26 +58,26 @@ dependencies:
   js-sls-logger: 2.0.1
   lodash-es: 4.17.21
   moment: 2.29.1
-  naive-ui: 2.28.0_vue@3.2.32
-  pinia: 2.0.13_typescript@4.6.3+vue@3.2.32
+  naive-ui: 2.28.0_vue@3.2.33
+  pinia: 2.0.13_typescript@4.6.3+vue@3.2.33
   qrcode: 1.5.0
   tailwindcss: 3.0.24
   ua-parser-js: 1.0.2
   vfonts: 0.0.3
   viewerjs: 1.10.5
-  vue: 3.2.32
-  vue-router: 4.0.14_vue@3.2.32
-  vuedraggable: 4.1.0_vue@3.2.32
+  vue: 3.2.33
+  vue-router: 4.0.14_vue@3.2.33
+  vuedraggable: 4.1.0_vue@3.2.33
 
 devDependencies:
   '@types/js-md5': 0.4.3
   '@types/lodash-es': 4.17.6
-  '@types/node': 17.0.23
+  '@types/node': 17.0.24
   '@types/ua-parser-js': 0.7.36
   '@typescript-eslint/eslint-plugin': 5.19.0_f34adc8488d2e4f014fe61432d70cbf2
   '@typescript-eslint/parser': 5.19.0_eslint@8.13.0+typescript@4.6.3
-  '@vitejs/plugin-vue': 2.3.1_vite@2.9.1+vue@3.2.32
-  '@vitejs/plugin-vue-jsx': 1.3.9
+  '@vitejs/plugin-vue': 2.3.1_vite@2.9.5+vue@3.2.33
+  '@vitejs/plugin-vue-jsx': 1.3.10
   autoprefixer: 10.4.4_postcss@8.4.12
   electron: 1.7.16
   eslint: 8.13.0
@@ -87,9 +87,9 @@ devDependencies:
   postcss: 8.4.12
   prettier: 2.6.2
   typescript: 4.6.3
-  unplugin-auto-import: 0.7.0_vite@2.9.1
-  unplugin-vue-components: 0.19.2_vite@2.9.1+vue@3.2.32
-  vite: 2.9.1
+  unplugin-auto-import: 0.7.1_vite@2.9.5
+  unplugin-vue-components: 0.19.3_vite@2.9.5+vue@3.2.33
+  vite: 2.9.5
   vitest: 0.9.3_happy-dom@2.55.0
   vue-eslint-parser: 8.3.0_eslint@8.13.0
   vue-tsc: 0.34.6_typescript@4.6.3
@@ -405,14 +405,14 @@ packages:
       to-fast-properties: 2.0.0
     dev: true
 
-  /@chenfengyuan/vue-qrcode/2.0.0_qrcode@1.5.0+vue@3.2.32:
+  /@chenfengyuan/vue-qrcode/2.0.0_qrcode@1.5.0+vue@3.2.33:
     resolution: {integrity: sha512-33Cfr0zjbc3Dd8d5b1IgzXRAgXH0c2Gv19VI4snS25V/x9Z41eg769tC+Us1x+vqgQQhgD5YUjLnkpkrQfeMSw==}
     peerDependencies:
       qrcode: ^1.5.0
       vue: ^3.0.0
     dependencies:
       qrcode: 1.5.0
-      vue: 3.2.32
+      vue: 3.2.33
     dev: false
 
   /@css-render/plugin-bem/0.15.9_css-render@0.15.9:
@@ -423,12 +423,12 @@ packages:
       css-render: 0.15.9
     dev: false
 
-  /@css-render/vue3-ssr/0.15.9_vue@3.2.32:
+  /@css-render/vue3-ssr/0.15.9_vue@3.2.33:
     resolution: {integrity: sha512-b3wvEIZYjToOEAV/oUqVtcg+MPF/iSZB9VmVF7fMAAAfvVTc2kB4TZDhGZCMkGjGZxOUm1jia7q/Z9FJnJGLKw==}
     peerDependencies:
       vue: ^3.0.11
     dependencies:
-      vue: 3.2.32
+      vue: 3.2.33
     dev: false
 
   /@emotion/hash/0.8.0:
@@ -501,8 +501,8 @@ packages:
       '@nodelib/fs.scandir': 2.1.5
       fastq: 1.13.0
 
-  /@rollup/pluginutils/4.2.0:
-    resolution: {integrity: sha512-2WUyJNRkyH5p487pGnn4tWAsxhEFKN/pT8CMgHshd5H+IXkOnKvKZwsz5ZWz+YCXkleZRAU5kwbfgF8CPfDRqA==}
+  /@rollup/pluginutils/4.2.1:
+    resolution: {integrity: sha512-iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ==}
     engines: {node: '>= 8.0.0'}
     dependencies:
       estree-walker: 2.0.2
@@ -524,23 +524,23 @@ packages:
   /@types/chai-subset/1.3.3:
     resolution: {integrity: sha512-frBecisrNGz+F4T6bcc+NLeolfiojh5FxW2klu669+8BARtyQv2C/GkNW6FUodVe4BroGMP/wER/YDGc7rEllw==}
     dependencies:
-      '@types/chai': 4.3.0
+      '@types/chai': 4.3.1
     dev: true
 
-  /@types/chai/4.3.0:
-    resolution: {integrity: sha512-/ceqdqeRraGolFTcfoXNiqjyQhZzbINDngeoAq9GoHa8PPK1yNzTaxWjA6BFWp5Ua9JpXEMSS4s5i9tS0hOJtw==}
+  /@types/chai/4.3.1:
+    resolution: {integrity: sha512-/zPMqDkzSZ8t3VtxOa4KPq7uzzW978M9Tvh+j7GHKuo6k6GTLxPJ4J5gE5cjfJ26pnXst0N5Hax8Sr0T2Mi9zQ==}
     dev: true
 
   /@types/concat-stream/1.6.1:
     resolution: {integrity: sha512-eHE4cQPoj6ngxBZMvVf6Hw7Mh4jMW4U9lpGmS5GBPB9RYxlFg+CHaVN7ErNY4W9XfLIEn20b4VDYaIrbq0q4uA==}
     dependencies:
-      '@types/node': 17.0.23
+      '@types/node': 17.0.24
     dev: true
 
   /@types/form-data/0.0.33:
     resolution: {integrity: sha512-8BSvG1kGm83cyJITQMZSulnl6QV8jqAGreJsc5tPu1Jq0vTSOiY/k24Wx82JRpWwZSqrala6sd5rWi6aNXvqcw==}
     dependencies:
-      '@types/node': 17.0.23
+      '@types/node': 17.0.24
     dev: true
 
   /@types/jest/27.4.1:
@@ -570,8 +570,8 @@ packages:
     resolution: {integrity: sha512-F0KIgDJfy2nA3zMLmWGKxcH2ZVEtCZXHHdOQs2gSaQ27+lNeEfGxzkIw90aXswATX7AZ33tahPbzy6KAfUreVw==}
     dev: true
 
-  /@types/node/17.0.23:
-    resolution: {integrity: sha512-UxDxWn7dl97rKVeVS61vErvw086aCYhDLyvRQZ5Rk65rZKepaFdm53GeqXaKBuOhED4e9uWq34IC3TdSdJJ2Gw==}
+  /@types/node/17.0.24:
+    resolution: {integrity: sha512-aveCYRQbgTH9Pssp1voEP7HiuWlD2jW2BO56w+bVrJn04i61yh6mRfoKO6hEYQD9vF+W8Chkwc6j1M36uPkx4g==}
 
   /@types/node/7.10.14:
     resolution: {integrity: sha512-29GS75BE8asnTno3yB6ubOJOO0FboExEqNJy4bpz0GSmW/8wPTNL4h9h63c6s1uTrOopCmJYe/4yJLh5r92ZUA==}
@@ -735,8 +735,8 @@ packages:
     resolution: {integrity: sha512-Iy1EUVRpX0WWxeu1VIReR1zsZLMc4fqpt223czR+Rpnrwu7pt46nbnC2ycO7ItI/uqDLJxnbcMC7FujKs9IfFA==}
     dev: false
 
-  /@vitejs/plugin-legacy/1.8.0_vite@2.9.1:
-    resolution: {integrity: sha512-S3+uL1zp8GLUbmJAQk2wQbZLTyISKRFSMBwCFI3XQVRD3OZshqkiPyOKdRiSPlP9HoGz+q90kk+1qPm1tJRqCg==}
+  /@vitejs/plugin-legacy/1.8.1_vite@2.9.5:
+    resolution: {integrity: sha512-kmBWKq7EeNvzS4AqPBqUKdoWG/NYQXh7StUFMWR3D21aN5Mfmar7CTO2a7K+bBxJH/vAL9gnnueA0wb7cycCmQ==}
     engines: {node: '>=12.0.0'}
     peerDependencies:
       vite: ^2.8.0
@@ -746,32 +746,32 @@ packages:
       magic-string: 0.26.1
       regenerator-runtime: 0.13.9
       systemjs: 6.12.1
-      vite: 2.9.1
+      vite: 2.9.5
     dev: false
 
-  /@vitejs/plugin-vue-jsx/1.3.9:
-    resolution: {integrity: sha512-aJpmBpAXM9jbVWaf7UR22/c0v/wfNPqOj0nBibuOndnrM8YmPAj4NnHEasguXxf0wVH00DinWqyzgZV8CZqEOQ==}
+  /@vitejs/plugin-vue-jsx/1.3.10:
+    resolution: {integrity: sha512-Cf5zznh4yNMiEMBfTOztaDVDmK1XXfgxClzOSUVUc8WAmHzogrCUeM8B05ABzuGtg0D1amfng+mUmSIOFGP3Pw==}
     engines: {node: '>=12.0.0'}
     dependencies:
       '@babel/core': 7.17.9
       '@babel/plugin-syntax-import-meta': 7.10.4_@babel+core@7.17.9
       '@babel/plugin-transform-typescript': 7.16.8_@babel+core@7.17.9
-      '@rollup/pluginutils': 4.2.0
+      '@rollup/pluginutils': 4.2.1
       '@vue/babel-plugin-jsx': 1.1.1_@babel+core@7.17.9
       hash-sum: 2.0.0
     transitivePeerDependencies:
       - supports-color
     dev: true
 
-  /@vitejs/plugin-vue/2.3.1_vite@2.9.1+vue@3.2.32:
+  /@vitejs/plugin-vue/2.3.1_vite@2.9.5+vue@3.2.33:
     resolution: {integrity: sha512-YNzBt8+jt6bSwpt7LP890U1UcTOIZZxfpE5WOJ638PNxSEKOqAi0+FSKS0nVeukfdZ0Ai/H7AFd6k3hayfGZqQ==}
     engines: {node: '>=12.0.0'}
     peerDependencies:
       vite: ^2.5.10
       vue: ^3.2.25
     dependencies:
-      vite: 2.9.1
-      vue: 3.2.32
+      vite: 2.9.5
+      vue: 3.2.33
     dev: true
 
   /@volar/code-gen/0.34.6:
@@ -789,9 +789,9 @@ packages:
     dependencies:
       '@volar/code-gen': 0.34.6
       '@volar/source-map': 0.34.6
-      '@vue/compiler-core': 3.2.32
-      '@vue/compiler-dom': 3.2.32
-      '@vue/shared': 3.2.32
+      '@vue/compiler-core': 3.2.33
+      '@vue/compiler-dom': 3.2.33
+      '@vue/shared': 3.2.33
     dev: true
 
   /@volar/vue-typescript/0.34.6:
@@ -800,8 +800,8 @@ packages:
       '@volar/code-gen': 0.34.6
       '@volar/source-map': 0.34.6
       '@volar/vue-code-gen': 0.34.6
-      '@vue/compiler-sfc': 3.2.32
-      '@vue/reactivity': 3.2.32
+      '@vue/compiler-sfc': 3.2.33
+      '@vue/reactivity': 3.2.33
     dev: true
 
   /@vue/babel-helper-vue-transform-on/1.0.2:
@@ -825,85 +825,85 @@ packages:
       - supports-color
     dev: true
 
-  /@vue/compiler-core/3.2.32:
-    resolution: {integrity: sha512-bRQ8Rkpm/aYFElDWtKkTPHeLnX5pEkNxhPUcqu5crEJIilZH0yeFu/qUAcV4VfSE2AudNPkQSOwMZofhnuutmA==}
+  /@vue/compiler-core/3.2.33:
+    resolution: {integrity: sha512-AAmr52ji3Zhk7IKIuigX2osWWsb2nQE5xsdFYjdnmtQ4gymmqXbjLvkSE174+fF3A3kstYrTgGkqgOEbsdLDpw==}
     dependencies:
       '@babel/parser': 7.17.9
-      '@vue/shared': 3.2.32
+      '@vue/shared': 3.2.33
       estree-walker: 2.0.2
       source-map: 0.6.1
 
-  /@vue/compiler-dom/3.2.32:
-    resolution: {integrity: sha512-maa3PNB/NxR17h2hDQfcmS02o1f9r9QIpN1y6fe8tWPrS1E4+q8MqrvDDQNhYVPd84rc3ybtyumrgm9D5Rf/kg==}
+  /@vue/compiler-dom/3.2.33:
+    resolution: {integrity: sha512-GhiG1C8X98Xz9QUX/RlA6/kgPBWJkjq0Rq6//5XTAGSYrTMBgcLpP9+CnlUg1TFxnnCVughAG+KZl28XJqw8uQ==}
     dependencies:
-      '@vue/compiler-core': 3.2.32
-      '@vue/shared': 3.2.32
+      '@vue/compiler-core': 3.2.33
+      '@vue/shared': 3.2.33
 
-  /@vue/compiler-sfc/3.2.32:
-    resolution: {integrity: sha512-uO6+Gh3AVdWm72lRRCjMr8nMOEqc6ezT9lWs5dPzh1E9TNaJkMYPaRtdY9flUv/fyVQotkfjY/ponjfR+trPSg==}
+  /@vue/compiler-sfc/3.2.33:
+    resolution: {integrity: sha512-H8D0WqagCr295pQjUYyO8P3IejM3vEzeCO1apzByAEaAR/WimhMYczHfZVvlCE/9yBaEu/eu9RdiWr0kF8b71Q==}
     dependencies:
       '@babel/parser': 7.17.9
-      '@vue/compiler-core': 3.2.32
-      '@vue/compiler-dom': 3.2.32
-      '@vue/compiler-ssr': 3.2.32
-      '@vue/reactivity-transform': 3.2.32
-      '@vue/shared': 3.2.32
+      '@vue/compiler-core': 3.2.33
+      '@vue/compiler-dom': 3.2.33
+      '@vue/compiler-ssr': 3.2.33
+      '@vue/reactivity-transform': 3.2.33
+      '@vue/shared': 3.2.33
       estree-walker: 2.0.2
       magic-string: 0.25.9
       postcss: 8.4.12
       source-map: 0.6.1
 
-  /@vue/compiler-ssr/3.2.32:
-    resolution: {integrity: sha512-ZklVUF/SgTx6yrDUkaTaBL/JMVOtSocP+z5Xz/qIqqLdW/hWL90P+ob/jOQ0Xc/om57892Q7sRSrex0wujOL2Q==}
+  /@vue/compiler-ssr/3.2.33:
+    resolution: {integrity: sha512-XQh1Xdk3VquDpXsnoCd7JnMoWec9CfAzQDQsaMcSU79OrrO2PNR0ErlIjm/mGq3GmBfkQjzZACV+7GhfRB8xMQ==}
     dependencies:
-      '@vue/compiler-dom': 3.2.32
-      '@vue/shared': 3.2.32
+      '@vue/compiler-dom': 3.2.33
+      '@vue/shared': 3.2.33
 
   /@vue/devtools-api/6.1.4:
     resolution: {integrity: sha512-IiA0SvDrJEgXvVxjNkHPFfDx6SXw0b/TUkqMcDZWNg9fnCAHbTpoo59YfJ9QLFkwa3raau5vSlRVzMSLDnfdtQ==}
     dev: false
 
-  /@vue/reactivity-transform/3.2.32:
-    resolution: {integrity: sha512-CW1W9zaJtE275tZSWIfQKiPG0iHpdtSlmTqYBu7Y62qvtMgKG5yOxtvBs4RlrZHlaqFSE26avLAgQiTp4YHozw==}
+  /@vue/reactivity-transform/3.2.33:
+    resolution: {integrity: sha512-4UL5KOIvSQb254aqenW4q34qMXbfZcmEsV/yVidLUgvwYQQ/D21bGX3DlgPUGI3c4C+iOnNmDCkIxkILoX/Pyw==}
     dependencies:
       '@babel/parser': 7.17.9
-      '@vue/compiler-core': 3.2.32
-      '@vue/shared': 3.2.32
+      '@vue/compiler-core': 3.2.33
+      '@vue/shared': 3.2.33
       estree-walker: 2.0.2
       magic-string: 0.25.9
 
-  /@vue/reactivity/3.2.32:
-    resolution: {integrity: sha512-4zaDumuyDqkuhbb63hRd+YHFGopW7srFIWesLUQ2su/rJfWrSq3YUvoKAJE8Eu1EhZ2Q4c1NuwnEreKj1FkDxA==}
+  /@vue/reactivity/3.2.33:
+    resolution: {integrity: sha512-62Sq0mp9/0bLmDuxuLD5CIaMG2susFAGARLuZ/5jkU1FCf9EDbwUuF+BO8Ub3Rbodx0ziIecM/NsmyjardBxfQ==}
     dependencies:
-      '@vue/shared': 3.2.32
+      '@vue/shared': 3.2.33
 
-  /@vue/runtime-core/3.2.32:
-    resolution: {integrity: sha512-uKKzK6LaCnbCJ7rcHvsK0azHLGpqs+Vi9B28CV1mfWVq1F3Bj8Okk3cX+5DtD06aUh4V2bYhS2UjjWiUUKUF0w==}
+  /@vue/runtime-core/3.2.33:
+    resolution: {integrity: sha512-N2D2vfaXsBPhzCV3JsXQa2NECjxP3eXgZlFqKh4tgakp3iX6LCGv76DLlc+IfFZq+TW10Y8QUfeihXOupJ1dGw==}
     dependencies:
-      '@vue/reactivity': 3.2.32
-      '@vue/shared': 3.2.32
+      '@vue/reactivity': 3.2.33
+      '@vue/shared': 3.2.33
     dev: false
 
-  /@vue/runtime-dom/3.2.32:
-    resolution: {integrity: sha512-AmlIg+GPqjkNoADLjHojEX5RGcAg+TsgXOOcUrtDHwKvA8mO26EnLQLB8nylDjU6AMJh2CIYn8NEgyOV5ZIScQ==}
+  /@vue/runtime-dom/3.2.33:
+    resolution: {integrity: sha512-LSrJ6W7CZTSUygX5s8aFkraDWlO6K4geOwA3quFF2O+hC3QuAMZt/0Xb7JKE3C4JD4pFwCSO7oCrZmZ0BIJUnw==}
     dependencies:
-      '@vue/runtime-core': 3.2.32
-      '@vue/shared': 3.2.32
+      '@vue/runtime-core': 3.2.33
+      '@vue/shared': 3.2.33
       csstype: 2.6.20
     dev: false
 
-  /@vue/server-renderer/3.2.32_vue@3.2.32:
-    resolution: {integrity: sha512-TYKpZZfRJpGTTiy/s6bVYwQJpAUx3G03z4G7/3O18M11oacrMTVHaHjiPuPqf3xQtY8R4LKmQ3EOT/DRCA/7Wg==}
+  /@vue/server-renderer/3.2.33_vue@3.2.33:
+    resolution: {integrity: sha512-4jpJHRD4ORv8PlbYi+/MfP8ec1okz6rybe36MdpkDrGIdEItHEUyaHSKvz+ptNEyQpALmmVfRteHkU9F8vxOew==}
     peerDependencies:
-      vue: 3.2.32
+      vue: 3.2.33
     dependencies:
-      '@vue/compiler-ssr': 3.2.32
-      '@vue/shared': 3.2.32
-      vue: 3.2.32
+      '@vue/compiler-ssr': 3.2.33
+      '@vue/shared': 3.2.33
+      vue: 3.2.33
     dev: false
 
-  /@vue/shared/3.2.32:
-    resolution: {integrity: sha512-bjcixPErUsAnTQRQX4Z5IQnICYjIfNCyCl8p29v1M6kfVzvwOICPw+dz48nNuWlTOOx2RHhzHdazJibE8GSnsw==}
+  /@vue/shared/3.2.33:
+    resolution: {integrity: sha512-UBc1Pg1T3yZ97vsA2ueER0F6GbJebLHYlEi4ou1H5YL4KWvMOOWwpYo9/QpWq93wxKG6Wo13IY74Hcn/f7c7Bg==}
 
   /acorn-jsx/5.3.2_acorn@8.7.0:
     resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==}
@@ -1029,7 +1029,7 @@ packages:
       postcss: ^8.1.0
     dependencies:
       browserslist: 4.20.2
-      caniuse-lite: 1.0.30001328
+      caniuse-lite: 1.0.30001332
       fraction.js: 4.2.0
       normalize-range: 0.1.2
       picocolors: 1.0.0
@@ -1106,8 +1106,8 @@ packages:
     engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7}
     hasBin: true
     dependencies:
-      caniuse-lite: 1.0.30001328
-      electron-to-chromium: 1.4.107
+      caniuse-lite: 1.0.30001332
+      electron-to-chromium: 1.4.108
       escalade: 3.1.1
       node-releases: 2.0.3
       picocolors: 1.0.0
@@ -1148,8 +1148,8 @@ packages:
     engines: {node: '>=10'}
     dev: true
 
-  /caniuse-lite/1.0.30001328:
-    resolution: {integrity: sha512-Ue55jHkR/s4r00FLNiX+hGMMuwml/QGqqzVeMQ5thUewznU2EdULFvI3JR7JJid6OrjJNfFvHY2G2dIjmRaDDQ==}
+  /caniuse-lite/1.0.30001332:
+    resolution: {integrity: sha512-10T30NYOEQtN6C11YGg411yebhvpnC6Z102+B95eAsN0oB6KUs01ivE8u+G6FMIRtIrVlYXhL+LUwQ3/hXwDWw==}
     dev: true
 
   /caseless/0.12.0:
@@ -1288,7 +1288,7 @@ packages:
     resolution: {integrity: sha512-FMVcWsVipKEBR/mVf1+pIjCRQdztILVKxbp8TN5/Vf0Q/fdTq0OIb8JRW/pk7PP1eeWnB/ejQ0MNBe7ELjLblg==}
     dependencies:
       '@emotion/hash': 0.8.0
-      '@types/node': 17.0.23
+      '@types/node': 17.0.24
       csstype: 3.0.11
     dev: false
 
@@ -1441,8 +1441,8 @@ packages:
       sumchecker: 1.3.1
     dev: true
 
-  /electron-to-chromium/1.4.107:
-    resolution: {integrity: sha512-Huen6taaVrUrSy8o7mGStByba8PfOWWluHNxSHGBrCgEdFVLtvdQDBr9LBCF9Uci8SYxh28QNNMO0oC17wbGAg==}
+  /electron-to-chromium/1.4.108:
+    resolution: {integrity: sha512-/36KkMuL6+WTrodVlOjtHhH9Ro7BgRaQrh0bfKckwDtdRSjTBuZCOddeXxzK1PkwphoeTxGUFVT9xnmvQ7xEdw==}
     dev: true
 
   /electron/1.7.16:
@@ -2493,13 +2493,13 @@ packages:
     resolution: {integrity: sha1-0J0fNXtEP0kzgqjrPM0YOHKuYAk=, tarball: ms/download/ms-2.1.2.tgz}
     dev: true
 
-  /naive-ui/2.28.0_vue@3.2.32:
+  /naive-ui/2.28.0_vue@3.2.33:
     resolution: {integrity: sha512-/yXMF0nrciLrs5Os88omN4dbKlLU7D51lU60+di/o2dx7faJM7wsiXa0nS1fwTGTF9L19x6GBGSvBTxYtvx+lg==}
     peerDependencies:
       vue: ^3.0.0
     dependencies:
       '@css-render/plugin-bem': 0.15.9_css-render@0.15.9
-      '@css-render/vue3-ssr': 0.15.9_vue@3.2.32
+      '@css-render/vue3-ssr': 0.15.9_vue@3.2.33
       '@types/lodash': 4.14.181
       '@types/lodash-es': 4.17.6
       async-validator: 4.0.7
@@ -2512,11 +2512,11 @@ packages:
       lodash-es: 4.17.21
       seemly: 0.3.3
       treemate: 0.3.11
-      vdirs: 0.1.8_vue@3.2.32
+      vdirs: 0.1.8_vue@3.2.33
       vfonts: 0.0.3
-      vooks: 0.2.12_vue@3.2.32
-      vue: 3.2.32
-      vueuc: 0.4.28_vue@3.2.32
+      vooks: 0.2.12_vue@3.2.33
+      vue: 3.2.33
+      vueuc: 0.4.28_vue@3.2.33
     dev: false
 
   /nanoid/3.3.2:
@@ -2690,7 +2690,7 @@ packages:
     resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==}
     engines: {node: '>=8.6'}
 
-  /pinia/2.0.13_typescript@4.6.3+vue@3.2.32:
+  /pinia/2.0.13_typescript@4.6.3+vue@3.2.33:
     resolution: {integrity: sha512-B7rSqm1xNpwcPMnqns8/gVBfbbi7lWTByzS6aPZ4JOXSJD4Y531rZHDCoYWBwLyHY/8hWnXljgiXp6rRyrofcw==}
     peerDependencies:
       '@vue/composition-api': ^1.4.0
@@ -2704,8 +2704,8 @@ packages:
     dependencies:
       '@vue/devtools-api': 6.1.4
       typescript: 4.6.3
-      vue: 3.2.32
-      vue-demi: 0.12.5_vue@3.2.32
+      vue: 3.2.33
+      vue-demi: 0.12.5_vue@3.2.33
     dev: false
 
   /pinkie-promise/2.0.1:
@@ -3363,8 +3363,8 @@ packages:
     resolution: {integrity: sha512-00y/AXhx0/SsnI51fTc0rLRmafiGOM4/O+ny10Ps7f+j/b8p/ZY11ytMgznXkOVo4GQ+KwQG5UQLkLGirsACRg==}
     dev: false
 
-  /unplugin-auto-import/0.7.0_vite@2.9.1:
-    resolution: {integrity: sha512-40oC7bxzSyyvJI4mXmk8gDD7gKjR10gYkeWBu/UigK8TusXwUsJOjwvIr+REgzOMBGH/5pUiVMoBYEZrLejk3w==}
+  /unplugin-auto-import/0.7.1_vite@2.9.5:
+    resolution: {integrity: sha512-9865OV9eP99PNxHR2mtTDExeN01m4M9boT5U2BtIwsU1wDRsaFIYWLwcCBEjvXzXfTTC2NNMskhHGVAMfL2WgA==}
     engines: {node: '>=14'}
     peerDependencies:
       '@vueuse/core': '*'
@@ -3373,11 +3373,11 @@ packages:
         optional: true
     dependencies:
       '@antfu/utils': 0.5.1
-      '@rollup/pluginutils': 4.2.0
+      '@rollup/pluginutils': 4.2.1
       local-pkg: 0.4.1
       magic-string: 0.26.1
       resolve: 1.22.0
-      unplugin: 0.6.1_vite@2.9.1
+      unplugin: 0.6.2_vite@2.9.5
     transitivePeerDependencies:
       - esbuild
       - rollup
@@ -3385,8 +3385,8 @@ packages:
       - webpack
     dev: true
 
-  /unplugin-vue-components/0.19.2_vite@2.9.1+vue@3.2.32:
-    resolution: {integrity: sha512-7DhQfTyHLyVIWR6VBQONLU6dDBOXtEYvZQYUpN9C+t11WOb5baIFoxfzDxkeFHTHGMhznyEOw6afHyV9JKWnig==}
+  /unplugin-vue-components/0.19.3_vite@2.9.5+vue@3.2.33:
+    resolution: {integrity: sha512-z/kpYJnqrJuWglDNs7fy0YRHr41oLc07y2TkP3by6DqPb1GG9xGC9SFigeFwd4J7GVTqyFVsnjoeup7uK7I2dA==}
     engines: {node: '>=14'}
     peerDependencies:
       '@babel/parser': ^7.15.8
@@ -3399,7 +3399,7 @@ packages:
         optional: true
     dependencies:
       '@antfu/utils': 0.5.1
-      '@rollup/pluginutils': 4.2.0
+      '@rollup/pluginutils': 4.2.1
       chokidar: 3.5.3
       debug: 4.3.4
       fast-glob: 3.2.11
@@ -3407,8 +3407,8 @@ packages:
       magic-string: 0.26.1
       minimatch: 5.0.1
       resolve: 1.22.0
-      unplugin: 0.6.1_vite@2.9.1
-      vue: 3.2.32
+      unplugin: 0.6.2_vite@2.9.5
+      vue: 3.2.33
     transitivePeerDependencies:
       - esbuild
       - rollup
@@ -3417,8 +3417,8 @@ packages:
       - webpack
     dev: true
 
-  /unplugin/0.6.1_vite@2.9.1:
-    resolution: {integrity: sha512-cQqRCgQ2v/Q4fPIWNVZ6sNIDdl5v8JXOnlsUOsGzT4fblTONoPWaytiYSpu5qJ9lvSDZYAQN6BRVo3XQoZMfUQ==}
+  /unplugin/0.6.2_vite@2.9.5:
+    resolution: {integrity: sha512-+QONc2uBFQbeo4x5mlJHjTKjR6pmuchMpGVrWhwdGFFMb4ttFZ4E9KqhOOrNcm3Q8NNyB1vJ4s5e36IZC7UWYw==}
     peerDependencies:
       esbuild: '>=0.13'
       rollup: ^2.50.0
@@ -3435,7 +3435,7 @@ packages:
         optional: true
     dependencies:
       chokidar: 3.5.3
-      vite: 2.9.1
+      vite: 2.9.5
       webpack-sources: 3.2.3
       webpack-virtual-modules: 0.4.3
     dev: true
@@ -3459,13 +3459,13 @@ packages:
     resolution: {integrity: sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==}
     dev: true
 
-  /vdirs/0.1.8_vue@3.2.32:
+  /vdirs/0.1.8_vue@3.2.33:
     resolution: {integrity: sha512-H9V1zGRLQZg9b+GdMk8MXDN2Lva0zx72MPahDKc30v+DtwKjfyOSXWRIX4t2mhDubM1H09gPhWeth/BJWPHGUw==}
     peerDependencies:
       vue: ^3.0.11
     dependencies:
       evtd: 0.2.3
-      vue: 3.2.32
+      vue: 3.2.33
     dev: false
 
   /verror/1.10.0:
@@ -3485,8 +3485,8 @@ packages:
     resolution: {integrity: sha512-QwKrmXlSfKg5x4y74F/jicpHIRqBMMfHXyboOxHDi5n4XAaejjpalphPq4/HW6venQAoMiD57HpVwBk0JvqpSA==}
     dev: false
 
-  /vite/2.9.1:
-    resolution: {integrity: sha512-vSlsSdOYGcYEJfkQ/NeLXgnRv5zZfpAsdztkIrs7AZHV8RCMZQkwjo4DS5BnrYTqoWqLoUe1Cah4aVO4oNNqCQ==}
+  /vite/2.9.5:
+    resolution: {integrity: sha512-dvMN64X2YEQgSXF1lYabKXw3BbN6e+BL67+P3Vy4MacnY+UzT1AfkHiioFSi9+uiDUiaDy7Ax/LQqivk6orilg==}
     engines: {node: '>=12.2.0'}
     hasBin: true
     peerDependencies:
@@ -3528,30 +3528,30 @@ packages:
       jsdom:
         optional: true
     dependencies:
-      '@types/chai': 4.3.0
+      '@types/chai': 4.3.1
       '@types/chai-subset': 1.3.3
       chai: 4.3.6
       happy-dom: 2.55.0
       local-pkg: 0.4.1
       tinypool: 0.1.2
       tinyspy: 0.3.2
-      vite: 2.9.1
+      vite: 2.9.5
     transitivePeerDependencies:
       - less
       - sass
       - stylus
     dev: true
 
-  /vooks/0.2.12_vue@3.2.32:
+  /vooks/0.2.12_vue@3.2.33:
     resolution: {integrity: sha512-iox0I3RZzxtKlcgYaStQYKEzWWGAduMmq+jS7OrNdQo1FgGfPMubGL3uGHOU9n97NIvfFDBGnpSvkWyb/NSn/Q==}
     peerDependencies:
       vue: ^3.0.0
     dependencies:
       evtd: 0.2.3
-      vue: 3.2.32
+      vue: 3.2.33
     dev: false
 
-  /vue-demi/0.12.5_vue@3.2.32:
+  /vue-demi/0.12.5_vue@3.2.33:
     resolution: {integrity: sha512-BREuTgTYlUr0zw0EZn3hnhC3I6gPWv+Kwh4MCih6QcAeaTlaIX0DwOVN0wHej7hSvDPecz4jygy/idsgKfW58Q==}
     engines: {node: '>=12'}
     hasBin: true
@@ -3563,7 +3563,7 @@ packages:
       '@vue/composition-api':
         optional: true
     dependencies:
-      vue: 3.2.32
+      vue: 3.2.33
     dev: false
 
   /vue-eslint-parser/8.3.0_eslint@8.13.0:
@@ -3584,13 +3584,13 @@ packages:
       - supports-color
     dev: true
 
-  /vue-router/4.0.14_vue@3.2.32:
+  /vue-router/4.0.14_vue@3.2.33:
     resolution: {integrity: sha512-wAO6zF9zxA3u+7AkMPqw9LjoUCjSxfFvINQj3E/DceTt6uEz1XZLraDhdg2EYmvVwTBSGlLYsUw8bDmx0754Mw==}
     peerDependencies:
       vue: ^3.2.0
     dependencies:
       '@vue/devtools-api': 6.1.4
-      vue: 3.2.32
+      vue: 3.2.33
     dev: false
 
   /vue-tsc/0.34.6_typescript@4.6.3:
@@ -3603,38 +3603,38 @@ packages:
       typescript: 4.6.3
     dev: true
 
-  /vue/3.2.32:
-    resolution: {integrity: sha512-6L3jKZApF042OgbCkh+HcFeAkiYi3Lovi8wNhWqIK98Pi5efAMLZzRHgi91v+60oIRxdJsGS9sTMsb+yDpY8Eg==}
+  /vue/3.2.33:
+    resolution: {integrity: sha512-si1ExAlDUrLSIg/V7D/GgA4twJwfsfgG+t9w10z38HhL/HA07132pUQ2KuwAo8qbCyMJ9e6OqrmWrOCr+jW7ZQ==}
     dependencies:
-      '@vue/compiler-dom': 3.2.32
-      '@vue/compiler-sfc': 3.2.32
-      '@vue/runtime-dom': 3.2.32
-      '@vue/server-renderer': 3.2.32_vue@3.2.32
-      '@vue/shared': 3.2.32
+      '@vue/compiler-dom': 3.2.33
+      '@vue/compiler-sfc': 3.2.33
+      '@vue/runtime-dom': 3.2.33
+      '@vue/server-renderer': 3.2.33_vue@3.2.33
+      '@vue/shared': 3.2.33
     dev: false
 
-  /vuedraggable/4.1.0_vue@3.2.32:
+  /vuedraggable/4.1.0_vue@3.2.33:
     resolution: {integrity: sha512-FU5HCWBmsf20GpP3eudURW3WdWTKIbEIQxh9/8GE806hydR9qZqRRxRE3RjqX7PkuLuMQG/A7n3cfj9rCEchww==}
     peerDependencies:
       vue: ^3.0.1
     dependencies:
       sortablejs: 1.14.0
-      vue: 3.2.32
+      vue: 3.2.33
     dev: false
 
-  /vueuc/0.4.28_vue@3.2.32:
+  /vueuc/0.4.28_vue@3.2.33:
     resolution: {integrity: sha512-Udr1ROwJocHIThA5G+H5qN1QEFI4pskDvl+w/2Ul2XIjaAeIuQ6ygEOKHOXRJqKX5PxcTi1QQUpb7yQWsDw7ww==}
     peerDependencies:
       vue: ^3.0.11
     dependencies:
-      '@css-render/vue3-ssr': 0.15.9_vue@3.2.32
+      '@css-render/vue3-ssr': 0.15.9_vue@3.2.33
       css-render: 0.15.9
       evtd: 0.2.3
       resize-observer-polyfill: 1.5.1
       seemly: 0.3.3
-      vdirs: 0.1.8_vue@3.2.32
-      vooks: 0.2.12_vue@3.2.32
-      vue: 3.2.32
+      vdirs: 0.1.8_vue@3.2.33
+      vooks: 0.2.12_vue@3.2.33
+      vue: 3.2.33
     dev: false
 
   /webidl-conversions/3.0.1:

+ 136 - 0
src/components/SplitPane.vue

@@ -0,0 +1,136 @@
+<script setup lang="ts">
+import { reactive } from "vue";
+
+const props = defineProps<{ layout?: string }>();
+const isVertical = $computed(() => props.layout === "vertical");
+const container: HTMLDivElement = $ref();
+const state = reactive({ dragging: false, split: 50 });
+const boundSplit = $computed(() => {
+  const { split } = state;
+  return split < 20 ? 20 : split > 80 ? 80 : split;
+});
+
+let startPosition = 0;
+let startSplit = 0;
+function dragStart(e: MouseEvent) {
+  state.dragging = true;
+  startPosition = isVertical ? e.pageY : e.pageX;
+  startSplit = boundSplit;
+}
+
+function dragMove(e: MouseEvent) {
+  if (state.dragging) {
+    const position = isVertical ? e.pageY : e.pageX;
+    const totalSize = isVertical
+      ? container.offsetHeight
+      : container.offsetWidth;
+    const dp = position - startPosition;
+    state.split = startSplit + ~~((dp / totalSize) * 100);
+  }
+}
+
+function dragEnd() {
+  state.dragging = false;
+}
+</script>
+
+<template>
+  <div
+    ref="container"
+    class="split-pane"
+    :class="{
+      dragging: state.dragging,
+      vertical: isVertical,
+    }"
+    @mousemove="dragMove"
+    @mouseup="dragEnd"
+    @mouseleave="dragEnd"
+  >
+    <div
+      class="left"
+      :style="{ [isVertical ? 'height' : 'width']: boundSplit + '%' }"
+    >
+      <slot name="left" />
+      <div class="dragger" @mousedown.prevent="dragStart" />
+    </div>
+    <div
+      class="right"
+      :style="{ [isVertical ? 'height' : 'width']: 100 - boundSplit + '%' }"
+    >
+      <slot name="right" />
+    </div>
+  </div>
+</template>
+
+<style scoped>
+.split-pane {
+  display: flex;
+  height: 100%;
+  position: relative;
+}
+.split-pane.dragging {
+  cursor: ew-resize;
+}
+.dragging .left,
+.dragging .right {
+  pointer-events: none;
+}
+.left,
+.right {
+  position: relative;
+  height: 100%;
+}
+/* .left { */
+/* border-right: 1px solid var(--border); */
+/* overflow: auto; */
+/* } */
+.dragger {
+  position: absolute;
+  z-index: 3;
+  top: 0;
+  bottom: 0;
+  right: -5px;
+  width: 10px;
+  cursor: ew-resize;
+  background-color: #e1e1e1;
+}
+.toggler {
+  display: none;
+  z-index: 3;
+  position: absolute;
+  left: 50%;
+  bottom: 20px;
+  padding: 8px 12px;
+  border-radius: 8px;
+  transform: translateX(-50%);
+  box-shadow: 0 3px 8px rgba(0, 0, 0, 0.25);
+}
+/* vertical */
+.split-pane.vertical {
+  display: block;
+}
+.split-pane.vertical.dragging {
+  cursor: ns-resize;
+}
+.vertical .dragger {
+  top: auto;
+  height: 10px;
+  width: 100%;
+  left: 0;
+  right: 0;
+  bottom: -5px;
+  cursor: ns-resize;
+}
+.vertical .left,
+.vertical .right {
+  width: 100%;
+}
+.vertical .left {
+  border-right: none;
+  /* border-bottom: 1px solid var(--border); */
+}
+/* .right {
+  overflow: scroll;
+  z-index: 1000;
+} */
+</style>

+ 2 - 0
src/features/OnlineExam/Examing/FillBlankQuestionView.vue

@@ -112,6 +112,8 @@ function inputAnswer(e: Event, index: number) {
 }
 .question-options {
   padding-right: 10px;
+  width: 30px;
+  text-align: left;
 }
 </style>
 

+ 35 - 50
src/features/OnlineExam/Examing/QuestionView.vue

@@ -1,15 +1,15 @@
 <script setup lang="ts">
 import QuestionIndex from "./QuestionIndex.vue";
-// import QuestionBody from "./QuestionBody";
+import QuestionBody from "./QuestionBody.vue";
 import QuestionViewSingle from "./QuestionViewSingle.vue";
 import { store } from "@/store/store";
 import { httpApp } from "@/plugins/axiosApp";
 import { watch } from "vue";
 import { ExamQuestion } from "@/types/student-client";
-// import splitPane from "vue-splitpane";
+import SplitPane from "@/components/SplitPane.vue";
 import { Star, StarOutline } from "@vicons/ionicons5";
 
-// let parentPaneHeight = $ref(50);
+let parentPaneHeight = $ref(50);
 
 watch(
   () => store.exam.currentQuestion?.order,
@@ -80,23 +80,6 @@ async function updateQuestion() {
     }
   });
 
-  // 对于某些图片套题,会导致高度计算错误,需多次nextTick
-  // this.$nextTick(() => {
-  //   this.$nextTick(() => {
-  //     // 从非套题进入套题时,会根据套题的内容动态调整套题的默认高度
-  //     const parentQuestion =
-  //       document.getElementsByClassName("parent-question")[0];
-  //     if (parentQuestion) {
-  //       this.parentPaneHeight =
-  //         5 +
-  //         (100 * parentQuestion.clientHeight) /
-  //           (document.body.clientHeight - 160);
-  //       if (this.parentPaneHeight > 60) {
-  //         this.parentPaneHeight = 60;
-  //       }
-  //     }
-  //   });
-  // });
   {
     // cache next question content
     if (order < store.exam.examQuestionList.length) {
@@ -109,6 +92,18 @@ async function updateQuestion() {
       );
     }
   }
+
+  // 对于某些图片套题,会导致高度计算错误,需多次nextTick
+  // 从非套题进入套题时,会根据套题的内容动态调整套题的默认高度
+  const parentQuestion = document.getElementsByClassName("parent-question")[0];
+  if (parentQuestion) {
+    parentPaneHeight =
+      5 +
+      (100 * parentQuestion.clientHeight) / (document.body.clientHeight - 160);
+    if (parentPaneHeight > 60) {
+      parentPaneHeight = 60;
+    }
+  }
 }
 
 function toggleSign() {
@@ -132,28 +127,25 @@ function toggleSign() {
       />
       <question-index />
     </div>
-    <!-- <split-pane
-      v-if="parentQuestionBody"
-      :minPercent="10"
-      :defaultPercent="parentPaneHeight"
-      split="horizontal"
+    <div
+      v-if="store.exam.currentQuestion.parentBody"
+      style="height: calc(100% - 45px)"
     >
-      <template #paneL>
-        <div v-if="parentQuestionBody" class="question-view parent-question">
-          <question-body
-            :key="examQuestion.questionId"
-            :questionBody="parentQuestionBody"
-            :examQuestion="examQuestion"
-            style="margin-bottom: 20px"
-          ></question-body>
-        </div>
-      </template>
-      <template #paneR>
-        <QuestionViewSingle :question="question" :examQuestion="examQuestion" />
-      </template>
-    </split-pane>
- -->
-    <QuestionViewSingle v-if="!store.exam.currentQuestion.parentBody" />
+      <SplitPane layout="vertical">
+        <template #left>
+          <div class="question-view parent-question tw-h-full">
+            <QuestionBody
+              :questionBody="store.exam.currentQuestion.parentBody"
+            />
+          </div>
+        </template>
+        <template #right>
+          <QuestionViewSingle class="tw-h-full" />
+        </template>
+      </SplitPane>
+    </div>
+
+    <QuestionViewSingle v-else />
   </div>
   <div v-else>试题获取中...</div>
 </template>
@@ -162,15 +154,7 @@ function toggleSign() {
 .question-container {
   overflow: auto;
 }
-.question-container >>> .splitter-pane {
-  overflow: auto;
-}
-.question-container >>> .vue-splitter-container {
-  height: calc(100% - 42px);
-}
-.question-container >>> .splitter-pane-resizer.horizontal {
-  height: 15px;
-}
+
 .question-view {
   padding: 20px 30px;
   font-size: 16px;
@@ -181,6 +165,7 @@ function toggleSign() {
 .question-header {
   display: flex;
   align-items: center;
+  height: 45px;
 }
 
 .star {