diff --git a/package-lock.json b/package-lock.json index c04c507..43f1f9c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -12,8 +12,10 @@ "@codemirror/lang-python": "^6.1.3", "@vueuse/core": "^10.7.2", "axios": "^1.6.5", + "client-zip": "^2.4.4", "codemirror": "^6.0.1", "copy-text-to-clipboard": "^3.2.0", + "file-saver": "^2.0.5", "naive-ui": "^2.37.3", "normalize.css": "^8.0.1", "query-string": "^8.1.0", @@ -21,6 +23,7 @@ "vue-codemirror": "^6.1.1" }, "devDependencies": { + "@types/file-saver": "^2.0.7", "@vitejs/plugin-legacy": "^5.2.0", "@vitejs/plugin-vue": "^5.0.3", "prettier": "^3.2.4", @@ -2513,6 +2516,12 @@ "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==", "dev": true }, + "node_modules/@types/file-saver": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/@types/file-saver/-/file-saver-2.0.7.tgz", + "integrity": "sha512-dNKVfHd/jk0SkR/exKGj2ggkB45MAkzvWCaqLUUgkyjITkGNzH8H+yUwr+BLJUBjZOe9w8X3wgmXhZDRg1ED6A==", + "dev": true + }, "node_modules/@types/katex": { "version": "0.16.7", "resolved": "https://registry.npmmirror.com/@types/katex/-/katex-0.16.7.tgz", @@ -2949,6 +2958,11 @@ "node": ">=4" } }, + "node_modules/client-zip": { + "version": "2.4.4", + "resolved": "https://registry.npmjs.org/client-zip/-/client-zip-2.4.4.tgz", + "integrity": "sha512-Ixk40BUI7VvNDxW7SCze20GbCuC+gjP4tGkXUpo6/W96bOf96HSed6cOQVeUOIe74SJAG/dIrBr7AtR4xBVnsA==" + }, "node_modules/codemirror": { "version": "6.0.1", "resolved": "https://registry.npmmirror.com/codemirror/-/codemirror-6.0.1.tgz", @@ -3202,6 +3216,11 @@ "resolved": "https://registry.npmmirror.com/evtd/-/evtd-0.2.4.tgz", "integrity": "sha512-qaeGN5bx63s/AXgQo8gj6fBkxge+OoLddLniox5qtLAEY5HSnuSlISXVPxnSae1dWblvTh4/HoMIB+mbMsvZzw==" }, + "node_modules/file-saver": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/file-saver/-/file-saver-2.0.5.tgz", + "integrity": "sha512-P9bmyZ3h/PRG+Nzga+rbdI4OEpNDzAVyy74uVO9ATgzLK6VtAsYybF/+TOCvrc0MO793d6+42lLyZTw7/ArVzA==" + }, "node_modules/filter-obj": { "version": "5.1.0", "resolved": "https://registry.npmmirror.com/filter-obj/-/filter-obj-5.1.0.tgz", @@ -5673,6 +5692,12 @@ "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==", "dev": true }, + "@types/file-saver": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/@types/file-saver/-/file-saver-2.0.7.tgz", + "integrity": "sha512-dNKVfHd/jk0SkR/exKGj2ggkB45MAkzvWCaqLUUgkyjITkGNzH8H+yUwr+BLJUBjZOe9w8X3wgmXhZDRg1ED6A==", + "dev": true + }, "@types/katex": { "version": "0.16.7", "resolved": "https://registry.npmmirror.com/@types/katex/-/katex-0.16.7.tgz", @@ -6028,6 +6053,11 @@ "supports-color": "^5.3.0" } }, + "client-zip": { + "version": "2.4.4", + "resolved": "https://registry.npmjs.org/client-zip/-/client-zip-2.4.4.tgz", + "integrity": "sha512-Ixk40BUI7VvNDxW7SCze20GbCuC+gjP4tGkXUpo6/W96bOf96HSed6cOQVeUOIe74SJAG/dIrBr7AtR4xBVnsA==" + }, "codemirror": { "version": "6.0.1", "resolved": "https://registry.npmmirror.com/codemirror/-/codemirror-6.0.1.tgz", @@ -6238,6 +6268,11 @@ "resolved": "https://registry.npmmirror.com/evtd/-/evtd-0.2.4.tgz", "integrity": "sha512-qaeGN5bx63s/AXgQo8gj6fBkxge+OoLddLniox5qtLAEY5HSnuSlISXVPxnSae1dWblvTh4/HoMIB+mbMsvZzw==" }, + "file-saver": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/file-saver/-/file-saver-2.0.5.tgz", + "integrity": "sha512-P9bmyZ3h/PRG+Nzga+rbdI4OEpNDzAVyy74uVO9ATgzLK6VtAsYybF/+TOCvrc0MO793d6+42lLyZTw7/ArVzA==" + }, "filter-obj": { "version": "5.1.0", "resolved": "https://registry.npmmirror.com/filter-obj/-/filter-obj-5.1.0.tgz", diff --git a/package.json b/package.json index 6d6e9cb..0b82218 100644 --- a/package.json +++ b/package.json @@ -13,8 +13,10 @@ "@codemirror/lang-python": "^6.1.3", "@vueuse/core": "^10.7.2", "axios": "^1.6.5", + "client-zip": "^2.4.4", "codemirror": "^6.0.1", "copy-text-to-clipboard": "^3.2.0", + "file-saver": "^2.0.5", "naive-ui": "^2.37.3", "normalize.css": "^8.0.1", "query-string": "^8.1.0", @@ -22,6 +24,7 @@ "vue-codemirror": "^6.1.1" }, "devDependencies": { + "@types/file-saver": "^2.0.7", "@vitejs/plugin-legacy": "^5.2.0", "@vitejs/plugin-vue": "^5.0.3", "prettier": "^3.2.4", diff --git a/src/desktop/TestPanel.vue b/src/desktop/TestPanel.vue index 10b88fc..314728a 100644 --- a/src/desktop/TestPanel.vue +++ b/src/desktop/TestPanel.vue @@ -1,24 +1,121 @@ diff --git a/src/desktop/index.vue b/src/desktop/index.vue index 8c4c33d..5704226 100644 --- a/src/desktop/index.vue +++ b/src/desktop/index.vue @@ -8,7 +8,7 @@ :mask-closable="false" title="测试用例文件生成器" > - +