|
|
|
@ -24,9 +24,10 @@
|
|
|
|
|
</template>
|
|
|
|
|
|
|
|
|
|
<script lang="ts" setup>
|
|
|
|
|
import { ref, computed, onMounted } from 'vue';
|
|
|
|
|
import { ref, computed, onMounted,nextTick } from 'vue';
|
|
|
|
|
import { marked } from 'marked';
|
|
|
|
|
import axios from 'axios';
|
|
|
|
|
import { useRoute } from 'vue-router';
|
|
|
|
|
import { useLoginStore } from '@/stores/Login';
|
|
|
|
|
//引入吐司
|
|
|
|
|
import { useToast } from 'vue-toastification'
|
|
|
|
@ -34,7 +35,9 @@ import { useToast } from 'vue-toastification'
|
|
|
|
|
const markdownContent = ref('');
|
|
|
|
|
const title = ref('');
|
|
|
|
|
const loginStore = useLoginStore();
|
|
|
|
|
const toast = useToast()
|
|
|
|
|
const toast = useToast();
|
|
|
|
|
const route = useRoute();
|
|
|
|
|
const post_id = route.params.id;
|
|
|
|
|
// 使用 marked 库将 Markdown 内容转换为 HTML
|
|
|
|
|
const compiledMarkdown = computed(() => {
|
|
|
|
|
return marked.parse(markdownContent.value, { breaks: true });
|
|
|
|
@ -42,10 +45,13 @@ const compiledMarkdown = computed(() => {
|
|
|
|
|
|
|
|
|
|
// 在组件挂载后获取 DOM 元素
|
|
|
|
|
onMounted(() => {
|
|
|
|
|
isChange();
|
|
|
|
|
const editor = document.getElementById('markdown-editor');
|
|
|
|
|
if (editor) {
|
|
|
|
|
// 初始化时调整高度
|
|
|
|
|
resizeTextarea();
|
|
|
|
|
nextTick(() => {
|
|
|
|
|
resizeTextarea();
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
@ -58,9 +64,27 @@ const resizeTextarea = () => {
|
|
|
|
|
}
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
function isChange(){
|
|
|
|
|
//在这里判断,是否是修改
|
|
|
|
|
//如果是修改,则get文章内容
|
|
|
|
|
if(post_id !== '0'){
|
|
|
|
|
axios.get('http://localhost:8080/post/essay',{ params: {post_id:post_id}})
|
|
|
|
|
.then(res => {
|
|
|
|
|
// console.log("获取文章详情数据成功", res.data.data);
|
|
|
|
|
// console.log("传入对象");
|
|
|
|
|
markdownContent.value = res.data.data.content
|
|
|
|
|
title.value = res.data.data.title
|
|
|
|
|
resizeTextarea();
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
const scrollToTop = () => {
|
|
|
|
|
//保存发布按钮按下后的逻辑
|
|
|
|
|
console.log("正在发布中")
|
|
|
|
|
if(post_id === '0'){
|
|
|
|
|
//保存发布按钮按下后的逻辑
|
|
|
|
|
console.log("正在发布中",post_id)
|
|
|
|
|
//
|
|
|
|
|
console.log(title.value,'id',loginStore.userInfo.id)
|
|
|
|
|
axios.post('http://localhost:8080/post/new', {
|
|
|
|
@ -72,12 +96,28 @@ const scrollToTop = () => {
|
|
|
|
|
// 处理成功响应
|
|
|
|
|
console.log(response.data);
|
|
|
|
|
toast.success("发布成功");
|
|
|
|
|
// 跳转回主页
|
|
|
|
|
|
|
|
|
|
})
|
|
|
|
|
.catch(error => {
|
|
|
|
|
// 处理错误
|
|
|
|
|
console.error(error);
|
|
|
|
|
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
else{
|
|
|
|
|
//保存修改按钮按下后的逻辑
|
|
|
|
|
console.log("正在修改中",post_id)
|
|
|
|
|
//
|
|
|
|
|
console.log(title.value,'id',post_id)
|
|
|
|
|
axios.post('http://localhost:8080/post/update', {
|
|
|
|
|
token: loginStore.userInfo.token,
|
|
|
|
|
title: title.value,
|
|
|
|
|
content: markdownContent.value,
|
|
|
|
|
post_id:post_id
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
};
|
|
|
|
|
</script>
|
|
|
|
|
|
|
|
|
|