1
This commit is contained in:
78
Yes.Blog/wwwroot/admin/js/article/add.js
Normal file
78
Yes.Blog/wwwroot/admin/js/article/add.js
Normal file
@@ -0,0 +1,78 @@
|
||||
document.addEventListener('alpine:init', function () {
|
||||
Alpine.data('data', function () {
|
||||
const editor = new toastui.Editor({
|
||||
el: document.querySelector('#editor'),
|
||||
language: 'zh-CN',
|
||||
previewStyle: 'vertical',
|
||||
height: '660px',
|
||||
initialEditType: 'wysiwyg',
|
||||
initialValue: ""
|
||||
});
|
||||
|
||||
|
||||
return {
|
||||
pageTitle: "撰写新文章 - " + window.config.name + "",
|
||||
article: {
|
||||
title: "",
|
||||
slug: "",
|
||||
content: "",
|
||||
coverUrl: "",
|
||||
tags: [],
|
||||
categoryId: 0,
|
||||
summary: ""
|
||||
},
|
||||
tempfile :null,
|
||||
categories: [],
|
||||
isSubmitting: false,
|
||||
tagInputText:"",
|
||||
loadCategories() {
|
||||
if (this.loading) {
|
||||
return;
|
||||
}
|
||||
this.loading = true;
|
||||
axios.get('categories')
|
||||
.then(data => {
|
||||
this.categories = data;
|
||||
});
|
||||
},
|
||||
saveTags() {
|
||||
this.tagInputText = document.getElementById('tag-input').innerText;
|
||||
if (this.tagInputText) {
|
||||
this.tagInputText.replace(/,/g, ",").replace(/ /g, ",").split(',').forEach(x => this.article.tags.push(x));
|
||||
document.getElementById('tag-input').innerText = '';
|
||||
}
|
||||
},
|
||||
createArticle() {
|
||||
this.saveTags();
|
||||
if(this.isSubmitting){
|
||||
return;
|
||||
}
|
||||
this.isSubmitting = true;
|
||||
axios.post('articles', this.article)
|
||||
.then(data => {
|
||||
location.href = "/admin/article";
|
||||
})
|
||||
.finally(() => {
|
||||
this.isSubmitting = false;
|
||||
});
|
||||
},
|
||||
addIcon() {
|
||||
const fileinput = document.getElementById('img-file-input');
|
||||
if (fileinput) {
|
||||
fileinput.click();
|
||||
}
|
||||
},
|
||||
init() {
|
||||
editor.on('change', () => {
|
||||
this.article.content = editor.getMarkdown();
|
||||
});
|
||||
|
||||
this.loadCategories();
|
||||
|
||||
window.addEventListener('load', () => {
|
||||
document.title = this.pageTitle;
|
||||
});
|
||||
}
|
||||
};
|
||||
})
|
||||
});
|
||||
Reference in New Issue
Block a user