diff --git a/package-lock.json b/package-lock.json index 49f264f3..30b7ba36 100644 --- a/package-lock.json +++ b/package-lock.json @@ -2182,6 +2182,12 @@ "@types/range-parser": "*" } }, + "@types/file-saver": { + "version": "2.0.1", + "resolved": "https://registry.npm.taobao.org/@types/file-saver/download/@types/file-saver-2.0.1.tgz?cache=0&sync_timestamp=1613380173874&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Ffile-saver%2Fdownload%2F%40types%2Ffile-saver-2.0.1.tgz", + "integrity": "sha1-4Y64sGnkQve5VtMT9PrdPviHNU4=", + "dev": true + }, "@types/glob": { "version": "7.1.3", "resolved": "https://registry.npm.taobao.org/@types/glob/download/@types/glob-7.1.3.tgz", @@ -8072,6 +8078,11 @@ "schema-utils": "^2.5.0" } }, + "file-saver": { + "version": "2.0.5", + "resolved": "https://registry.npm.taobao.org/file-saver/download/file-saver-2.0.5.tgz", + "integrity": "sha1-1hz+LOBZ9BTYmendbUEH7iVnDDg=" + }, "file-uri-to-path": { "version": "1.0.0", "resolved": "https://registry.npm.taobao.org/file-uri-to-path/download/file-uri-to-path-1.0.0.tgz", @@ -9070,6 +9081,11 @@ "integrity": "sha1-e15vfmZen7QfMAB+2eDUHpf7IUA=", "dev": true }, + "html-to-image": { + "version": "1.3.25", + "resolved": "https://registry.npm.taobao.org/html-to-image/download/html-to-image-1.3.25.tgz", + "integrity": "sha1-vxF4jQPFrT4FuPpO0AuhFkhGtFs=" + }, "html-webpack-plugin": { "version": "3.2.0", "resolved": "https://registry.npm.taobao.org/html-webpack-plugin/download/html-webpack-plugin-3.2.0.tgz?cache=0&sync_timestamp=1615296080987&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fhtml-webpack-plugin%2Fdownload%2Fhtml-webpack-plugin-3.2.0.tgz", diff --git a/package.json b/package.json index f64963f0..9e3c600a 100644 --- a/package.json +++ b/package.json @@ -17,6 +17,8 @@ "core-js": "^3.6.5", "crypto-js": "^4.0.0", "dexie": "^3.0.3", + "file-saver": "^2.0.5", + "html-to-image": "^1.3.25", "lodash": "^4.17.20", "mitt": "^2.1.0", "prosemirror-commands": "^1.1.7", @@ -40,6 +42,7 @@ "@types/chartist": "^0.11.0", "@types/clipboard": "^2.0.1", "@types/crypto-js": "^4.0.1", + "@types/file-saver": "^2.0.1", "@types/jest": "^24.0.19", "@types/prosemirror-commands": "^1.0.3", "@types/prosemirror-dropcursor": "^1.0.0", diff --git a/src/main.ts b/src/main.ts index f0f10948..cdaee133 100644 --- a/src/main.ts +++ b/src/main.ts @@ -39,6 +39,7 @@ import { Menu, Checkbox, Drawer, + Spin, } from 'ant-design-vue' const app = createApp(App) @@ -75,6 +76,7 @@ app.component('Menu', Menu) app.component('MenuItem', Menu.Item) app.component('Checkbox', Checkbox) app.component('Drawer', Drawer) +app.component('Spin', Spin) app.use(store, key) app.mount('#app') diff --git a/src/views/Editor/EditorHeader/ExportDialog.vue b/src/views/Editor/EditorHeader/ExportDialog.vue new file mode 100644 index 00000000..daa1c750 --- /dev/null +++ b/src/views/Editor/EditorHeader/ExportDialog.vue @@ -0,0 +1,219 @@ + + + + {{tab.label}} + + + + + {{slides}} + + + 导出 JSON 文件 + 关闭 + + + + + + + + + + + 导出 PNG 图片 + 导出 JPEG 图片 + 关闭 + + + + 正在导出,请稍等... + + + + + + + + \ No newline at end of file diff --git a/src/views/Editor/EditorHeader/index.vue b/src/views/Editor/EditorHeader/index.vue index 62809de0..af0080a3 100644 --- a/src/views/Editor/EditorHeader/index.vue +++ b/src/views/Editor/EditorHeader/index.vue @@ -11,6 +11,7 @@ 删除页面 {{ showGridLines ? '关闭网格线' : '打开网格线' }} 重置幻灯片 + 导出为 @@ -53,11 +54,22 @@ > + + + +
{{slides}}