优化和复用代码

This commit is contained in:
Frankie Huang 2025-04-26 22:43:36 +08:00
parent 700f6980b9
commit e6c008f388
2 changed files with 14 additions and 8 deletions

View File

@ -22,7 +22,7 @@
<script setup> <script setup>
import LeftSidebar from './components/LeftSidebar.vue' import LeftSidebar from './components/LeftSidebar.vue'
import MainEditor from './components/MainEditor.vue' import MainEditor from './components/MainEditor.vue'
import { ref, watch, useTemplateRef, onMounted, onUnmounted } from "vue"; import { ref, watch, useTemplateRef, nextTick, onMounted, onUnmounted } from "vue";
import { invoke } from "@tauri-apps/api/core"; import { invoke } from "@tauri-apps/api/core";
import { readTextFile, writeTextFile, exists } from '@tauri-apps/plugin-fs'; import { readTextFile, writeTextFile, exists } from '@tauri-apps/plugin-fs';
import { Message } from 'view-ui-plus' import { Message } from 'view-ui-plus'
@ -79,7 +79,12 @@ watch(markdownCode, (newMarkdownCode) => {
}) })
async function readFileContent(filePath) { async function readFileContent(filePath) {
try { try {
mainEditor.value.setMarkdownCode(await readTextFile(filePath)); const fileContent = await readTextFile(filePath);
if (mainEditor.value.isEditorLoadingCompleted()) {
mainEditor.value.setMarkdownCode(fileContent);
} else {
markdownCode.value = fileContent;
}
currentFilePath.value = filePath; currentFilePath.value = filePath;
Message.success('已读取文件内容,并加载到编辑器中:' + filePath); Message.success('已读取文件内容,并加载到编辑器中:' + filePath);
} catch (err) { } catch (err) {
@ -104,18 +109,15 @@ async function writeFileContent(markdownCode) {
} }
} }
onMounted(async () => { onMounted(async () => {
// 使 nextTick
await nextTick();
// splitRight splitTrigger // splitRight splitTrigger
splitRightWidth.value = window.innerWidth * (1 - split.value) - splitTrigger.value.offsetWidth; splitRightWidth.value = window.innerWidth * (1 - split.value) - splitTrigger.value.offsetWidth;
// markdown // markdown
window.addEventListener('resize', mainEditor.value.resizeEditorWindow); window.addEventListener('resize', mainEditor.value.resizeEditorWindow);
// //
if (currentFilePath.value.length > 0) { if (currentFilePath.value.length > 0) {
try { await readFileContent(currentFilePath.value);
markdownCode.value = await readTextFile(currentFilePath.value);
Message.success('已读取文件内容,并加载到编辑器中:' + currentFilePath.value);
} catch (err) {
Message.error('文件读取失败:' + err);
}
} }
mainEditor.value.initMarkdownEditor(); mainEditor.value.initMarkdownEditor();
}); });

View File

@ -65,6 +65,9 @@ const markdownRef = ref(null);
const initMarkdownEditor = () => { const initMarkdownEditor = () => {
markdownRef.value.initEditor(); markdownRef.value.initEditor();
} }
const isEditorLoadingCompleted = () => {
markdownRef.value.isEditorLoadingCompleted();
}
const getMarkdownCode = () => { const getMarkdownCode = () => {
return markdownRef.value.getMarkdownCode(); return markdownRef.value.getMarkdownCode();
} }
@ -158,6 +161,7 @@ const resizeEditorWindow = () => {
// //
defineExpose({ defineExpose({
initMarkdownEditor, initMarkdownEditor,
isEditorLoadingCompleted,
getMarkdownCode, getMarkdownCode,
setMarkdownCode, setMarkdownCode,
resizeEditorWindow, resizeEditorWindow,