chore:修改保存操作时的逻辑
This commit is contained in:
parent
41c04ba5aa
commit
ef15e51666
@ -104,7 +104,6 @@
|
|||||||
<textarea
|
<textarea
|
||||||
v-model="value"
|
v-model="value"
|
||||||
@keydown.tab="tab"
|
@keydown.tab="tab"
|
||||||
@keydown.meta.83="save"
|
|
||||||
@keyup.enter="enter"
|
@keyup.enter="enter"
|
||||||
@keyup.delete="onDelete"
|
@keyup.delete="onDelete"
|
||||||
ref="textarea"
|
ref="textarea"
|
||||||
|
@ -25,9 +25,9 @@ export default {
|
|||||||
type : String,
|
type : String,
|
||||||
default : ''
|
default : ''
|
||||||
},
|
},
|
||||||
titleStyle:{
|
titleStyle : {
|
||||||
type:Object,
|
type : Object,
|
||||||
default(){
|
default() {
|
||||||
return {}
|
return {}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -36,8 +36,8 @@ export default {
|
|||||||
default : 'Light'
|
default : 'Light'
|
||||||
},
|
},
|
||||||
width : {// 宽度
|
width : {// 宽度
|
||||||
type:[Number,String],
|
type : [Number, String],
|
||||||
default:'auto'
|
default : 'auto'
|
||||||
},
|
},
|
||||||
height : { // 高度
|
height : { // 高度
|
||||||
type : Number,
|
type : Number,
|
||||||
@ -57,9 +57,9 @@ export default {
|
|||||||
type : Number,
|
type : Number,
|
||||||
default : 10000
|
default : 10000
|
||||||
},
|
},
|
||||||
initialValue:{ // 初始化值
|
initialValue : { // 初始化值
|
||||||
type:String,
|
type : String,
|
||||||
default:''
|
default : ''
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
data() {
|
data() {
|
||||||
@ -96,7 +96,7 @@ export default {
|
|||||||
shift : true,
|
shift : true,
|
||||||
fullscreen : true,
|
fullscreen : true,
|
||||||
print : true,
|
print : true,
|
||||||
theme:true
|
theme : true
|
||||||
},
|
},
|
||||||
slideDown : false,
|
slideDown : false,
|
||||||
themeName : 'Light',// 主题名称
|
themeName : 'Light',// 主题名称
|
||||||
@ -114,31 +114,28 @@ export default {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
tools() {
|
tools() {
|
||||||
const {allTools,toolbars} = this ;
|
const {allTools, toolbars} = this;
|
||||||
return Object.assign(allTools,toolbars)
|
return Object.assign(allTools, toolbars)
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
mounted() {
|
mounted() {
|
||||||
this.$nextTick(()=>{
|
this.$nextTick(() => {
|
||||||
this.$refs.textarea.focus();
|
this.$refs.textarea.focus();
|
||||||
})
|
})
|
||||||
this.init();
|
this.init();
|
||||||
|
this.addListener();
|
||||||
},
|
},
|
||||||
methods : {
|
methods : {
|
||||||
init() {
|
init() {
|
||||||
this.themeName = this.theme;
|
this.themeName = this.theme;
|
||||||
const {autoSave, interval,theme,initialValue} = this;
|
const {autoSave, interval, theme, initialValue} = this;
|
||||||
this.value = initialValue ;
|
this.value = initialValue;
|
||||||
this.previewMarkdown = marked(initialValue, {
|
this.previewMarkdown = marked(initialValue, {
|
||||||
sanitize : true
|
sanitize : true
|
||||||
});
|
});
|
||||||
if (autoSave) {
|
if (autoSave) {
|
||||||
this.timerId = setInterval(() => {
|
this.timerId = setInterval(() => {
|
||||||
this.$emit('on-save', {
|
this.handleSave();
|
||||||
markdownValue : this.value,
|
|
||||||
htmlValue : this.previewMarkdown,
|
|
||||||
theme
|
|
||||||
});
|
|
||||||
}, interval)
|
}, interval)
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -167,9 +164,9 @@ export default {
|
|||||||
this.scroll = side;
|
this.scroll = side;
|
||||||
},
|
},
|
||||||
insertContent(str) { // 插入文本
|
insertContent(str) { // 插入文本
|
||||||
const {preview} = this ;
|
const {preview} = this;
|
||||||
if(preview===2){
|
if (preview === 2) {
|
||||||
return ;
|
return;
|
||||||
}
|
}
|
||||||
this.lastInsert = str;
|
this.lastInsert = str;
|
||||||
const textareaDom = this.$refs.textarea;
|
const textareaDom = this.$refs.textarea;
|
||||||
@ -333,10 +330,13 @@ export default {
|
|||||||
},
|
},
|
||||||
save(e) { // 保存
|
save(e) { // 保存
|
||||||
e.preventDefault();
|
e.preventDefault();
|
||||||
|
this.handleSave();
|
||||||
|
},
|
||||||
|
handleSave() {
|
||||||
this.$emit('on-save', {
|
this.$emit('on-save', {
|
||||||
markdownValue : this.value,
|
markdownValue : this.value,
|
||||||
htmlValue : this.previewMarkdown,
|
htmlValue : this.previewMarkdown,
|
||||||
theme:this.theme
|
theme : this.theme
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
insertLine() { // 插入分割线
|
insertLine() { // 插入分割线
|
||||||
@ -365,14 +365,24 @@ export default {
|
|||||||
print() { // 打印文件
|
print() { // 打印文件
|
||||||
const dom = this.$refs.preview;
|
const dom = this.$refs.preview;
|
||||||
Print(dom);
|
Print(dom);
|
||||||
|
},
|
||||||
|
addListener() { // 事件监听,阻止保存
|
||||||
|
document.addEventListener('keydown', e => {
|
||||||
|
if (e.keyCode === 83 && e.metaKey) {
|
||||||
|
e.preventDefault();
|
||||||
|
this.handleSave();
|
||||||
|
}
|
||||||
|
})
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
watch : {
|
watch : {
|
||||||
value() {
|
value() {
|
||||||
clearTimeout(this.timeoutId);
|
clearTimeout(this.timeoutId);
|
||||||
|
this.timeoutId = setTimeout(() => {
|
||||||
this.previewMarkdown = marked(this.value, {
|
this.previewMarkdown = marked(this.value, {
|
||||||
sanitize : true
|
sanitize : true
|
||||||
});
|
});
|
||||||
|
}, 30)
|
||||||
this.indexLenth = this.value.split('\n').length;
|
this.indexLenth = this.value.split('\n').length;
|
||||||
const height_1 = this.indexLenth * 22;
|
const height_1 = this.indexLenth * 22;
|
||||||
const height_2 = this.$refs.textarea.scrollHeight;
|
const height_2 = this.$refs.textarea.scrollHeight;
|
||||||
|
Loading…
Reference in New Issue
Block a user