1- <script setup lang='ts'>
2- import autotoast from ' autotoast.js'
3- import useContent from ' @/renderer/hooks/useContent'
4- import usefile from ' @/renderer/hooks/useFile'
5- import useWorkSpace from ' @/renderer/hooks/useWorkSpace'
6- import { exportElementAsPDF , exportMarkdownAsWord , exportElementWithStylesAndImages , exportAsText } from ' @/renderer/utils/exports'
1+ <script setup lang="ts">
2+ import autotoast from " autotoast.js" ;
3+ import useContent from " @/renderer/hooks/useContent" ;
4+ import usefile from " @/renderer/hooks/useFile" ;
5+ import useWorkSpace from " @/renderer/hooks/useWorkSpace" ;
6+ import {
7+ exportElementAsPDF ,
8+ exportMarkdownAsWord ,
9+ exportElementWithStylesAndImages ,
10+ exportAsText ,
11+ getActiveEditorElement ,
12+ getActiveEditorSelector ,
13+ } from " @/renderer/utils/exports" ;
714
8- const { onOpen, onSave, onSaveAs, currentTab } = usefile ()
9- const { setWorkSpace } = useWorkSpace ()
10- const { isModified, markdown } = useContent ()
15+ const { onOpen, onSave, onSaveAs, currentTab } = usefile ();
16+ const { setWorkSpace } = useWorkSpace ();
17+ const { isModified, markdown } = useContent ();
1118
1219function onOpenFolder() {
13- setWorkSpace ().then (() => {
14- const escEvent = new KeyboardEvent (' keydown' , { key: ' Escape' })
15- document .dispatchEvent (escEvent )
16- }).catch (() => {
17- autotoast .show (' 取消选择' )
18- })
20+ setWorkSpace ()
21+ .then (() => {
22+ const escEvent = new KeyboardEvent (" keydown" , { key: " Escape" });
23+ document .dispatchEvent (escEvent );
24+ })
25+ .catch (() => {
26+ autotoast .show (" 取消选择" );
27+ });
1928 // 发射 Escape 按键事件 关闭菜单
2029}
2130function exportAsPDF() {
22- exportElementAsPDF (' .milkup-container' , ` ${currentTab .value ?.name .slice (0 , - 3 )}.pdf ` || ' 导出的文件' , {
23- pageSize: ' A4' ,
24- scale: 1 ,
25- }).then (() => {
26- autotoast .show (' 导出成功' , ' success' )
27- }).catch ((err ) => {
28- autotoast .show (` 导出失败: ${err .message } ` , ' error' )
29- })
31+ exportElementAsPDF (
32+ getActiveEditorSelector (),
33+ ` ${currentTab .value ?.name .slice (0 , - 3 )}.pdf ` || " 导出的文件" ,
34+ {
35+ pageSize: " A4" ,
36+ scale: 1 ,
37+ }
38+ )
39+ .then (() => {
40+ autotoast .show (" 导出成功" , " success" );
41+ })
42+ .catch ((err ) => {
43+ autotoast .show (` 导出失败: ${err .message } ` , " error" );
44+ });
3045}
3146function exportAsHTML() {
32- exportElementWithStylesAndImages (document .querySelector (' .milkup-container' )! , ` ${currentTab .value ?.name .slice (0 , - 3 )}.html ` || ' 导出的文件' )
47+ exportElementWithStylesAndImages (
48+ getActiveEditorElement (),
49+ ` ${currentTab .value ?.name .slice (0 , - 3 )}.html ` || " 导出的文件"
50+ );
3351}
3452function exportAsDocx() {
35- exportMarkdownAsWord (markdown .value , ` ${currentTab .value ?.name .slice (0 , - 3 )}.docx ` || ' 导出的文件' ).then (() => {
36- autotoast .show (' 导出成功' , ' success' )
37- }).catch ((err ) => {
38- autotoast .show (` 导出失败: ${err .message } ` , ' error' )
39- })
53+ exportMarkdownAsWord (
54+ markdown .value ,
55+ ` ${currentTab .value ?.name .slice (0 , - 3 )}.docx ` || " 导出的文件"
56+ )
57+ .then (() => {
58+ autotoast .show (" 导出成功" , " success" );
59+ })
60+ .catch ((err ) => {
61+ autotoast .show (` 导出失败: ${err .message } ` , " error" );
62+ });
4063}
4164function exportAsTxt() {
42- exportAsText (markdown .value , ` ${currentTab .value ?.name .slice (0 , - 3 )}.txt ` || ' 导出的文件' )
65+ exportAsText (markdown .value , ` ${currentTab .value ?.name .slice (0 , - 3 )}.txt ` || " 导出的文件" );
4366}
4467 </script >
4568
@@ -59,7 +82,7 @@ function exportAsTxt() {
5982 <button @click =" onSave" >
6083 <span v-if =" !isModified" class =" iconfont icon-circle-check" ></span >
6184 <span v-else class =" iconfont icon-warning-outline" ></span >
62- <span >{{ isModified ? '保存' : ' 已保存' }}</span >
85+ <span >{{ isModified ? "保存" : " 已保存" }}</span >
6386 </button >
6487 <button @click =" onSaveAs" >
6588 <span class =" iconfont icon-document-copy" ></span >
@@ -91,7 +114,7 @@ function exportAsTxt() {
91114 </div >
92115</template >
93116
94- <style lang=' less' scoped>
117+ <style lang=" less" scoped>
95118.FileOptionsBox {
96119 width : 100% ;
97120 height : 100% ;
0 commit comments