当前位置:网站首页>Wangeditor rich text component - copy available
Wangeditor rich text component - copy available
2022-07-06 11:33:00 【iatkotworld】
wangeditor Rich text component
Function is introduced :
This article records wangeditor The most basic usage , For more usage, please go to the official website .
The whole idea :
Typescript Developed Web Rich text editor , Light weight 、 concise 、 Easy to use 、 Free open source ( From website ).
Concrete realization :
One 、 install :
npm i wangeditor --save
Two 、 Introduce and use :
<template>
<div>
<div ref="richText" style="height: 100%;"></div>
</div>
</template>
<script>
// Import rich text editor
import wangeditor from 'wangeditor';
export default {
name: "richtext",
data() {
return {
richTextEditor: {
},
};
},
mounted() {
// call
this.initRichText();
},
methods: {
// Rich text box initialization
initRichText() {
this.richTextEditor = new WangEditor(self.$refs.richText);
// Configuration menu bar , Cut the menu , Adjust the order
this.richTextEditor.config.menus = [
'head', // title
'bold', // In bold
'fontSize', // Font size
'fontName', // typeface
'italic', // Italics
'underline', // Underline
'strikeThrough', // Delete line
'indent', // Indent
'lineHeight', // Row height
'foreColor', // Text color
'backColor', // Background color
'link', // link
'list', // Sequence
'todo', // To do list
'justify', // alignment
'quote', // quote
// 'emoticon',
// 'image', // picture
// 'video',
'table', // form
// 'code', // Code
'splitLine', // Split line
'undo', // revoke
'redo', // recovery
];
// Use base64 Save the picture
this.richTextEditor.config.uploadImgShowBase64 = true;
// Hide web pictures
this.richTextEditor.config.showLinkImg = false;
// Configure the full screen function button not to display
// this.richTextEditor.config.showFullScreen = true;
// Set the height of the editor content area
this.richTextEditor.config.height = 150;
// Set the of rich text z-index
this.richTextEditor.config.zIndex = 105;
// Disable automatic selection
this.richTextEditor.config.focus = false;
// modify placeholder The prompt text of
this.richTextEditor.config.placeholder = '';
// The menu bar prompt is subscript
// this.richTextEditor.config.menuTooltipPosition = 'bottom';
// Remove the default style of copied text
this.richTextEditor.config.pasteFilterStyle = true;
this.richTextEditor.create();
this.richTextEditor.config.onchange = this.richTextChange;
// assignment
const myHtml = '<p>123</p>';
this.richTextEditor.txt.html(myHtml);
},
// The content of the rich text box changes , Value
richTextChange(newHtml) {
console.log(newHtml);
// obtain html
console.log(this.richTextEditor.txt.html());
// obtain text Text
console.log(this.richTextEditor.txt.text());
},
}
};
</script>
3、 ... and 、 Use ( Form validation , combination element-ui Use ):
Non empty verification , Set a hidden input Components , Be responsible for using the verification prompt .
<template>
<el-form ref="form" :model="form" :rules="rules" size="small" label-position="top" >
<el-form-item label=" Content " prop="noticeContent" >
<el-input v-if="false" v-model="form.content" readonly />
<div ref="richText" class="richText" style="height: 100%;"/>
</el-form-item>
</el-form>
</template>
<script>
export default {
data() {
// Custom validation
const contentLength = (rule, value, callback) => {
if (value === '') {
callback(new Error(' The content cannot be empty ');
} else {
if (this.richTxt.length > 100) {
callback(new Error(' The number of words cannot exceed 100 word ');
}
callback();
}
};
return {
form: {
content: ''
},
// Form validation
rules: {
// Announcement content
content: [
{
validator: contentLength, trigger: 'change' }
]
},
richTxt: '',
// Rich text editing component
richTextEditor: {
},
};
},
watch: {
// Announcement content verification monitoring
'form.content': {
handler() {
// Call form validation
this.$refs.form.validateField('content');
}
}
},
mounted() {
this.initRichText();
},
methods: {
// Rich text box initialization
initRichText() {
// Omit the initialization code above
// binding change event
this.richTextEditor.config.onchange = this.richTextChange;
},
// Copy the contents of the rich text box
richTextChange(newHtml) {
this.richTxt = this.richTextEditor.txt.text();
this.form.content= newHtml;
}
}
};
</script>
边栏推荐
- QT creator shape
- 4、安装部署Spark(Spark on Yarn模式)
- 搞笑漫画:程序员的逻辑
- vs2019 第一个MFC应用程序
- About string immutability
- Did you forget to register or load this tag
- Error connecting to MySQL database: 2059 - authentication plugin 'caching_ sha2_ The solution of 'password'
- [MRCTF2020]套娃
- [蓝桥杯2020初赛] 平面切分
- 01 project demand analysis (ordering system)
猜你喜欢
vs2019 桌面程序快速入门
Cookie setting three-day secret free login (run tutorial)
Face recognition_ recognition
QT creator shape
QT creator specifies dependencies
Install mongdb tutorial and redis tutorial under Windows
Basic use of redis
QT creator specify editor settings
Learning question 1:127.0.0.1 refused our visit
Kept VRRP script, preemptive delay, VIP unicast details
随机推荐
AI benchmark V5 ranking
解决安装Failed building wheel for pillow
数据库高级学习笔记--SQL语句
误删Path变量解决
Double to int precision loss
[Blue Bridge Cup 2017 preliminary] buns make up
How to set up voice recognition on the computer with shortcut keys
【yarn】CDP集群 Yarn配置capacity调度器批量分配
Vs2019 use wizard to generate an MFC Application
AcWing 1294. Cherry Blossom explanation
Image recognition - pyteseract TesseractNotFoundError: tesseract is not installed or it‘s not in your path
Solution to the practice set of ladder race LV1 (all)
Case analysis of data inconsistency caused by Pt OSC table change
MTCNN人脸检测
4、安装部署Spark(Spark on Yarn模式)
[Bluebridge cup 2021 preliminary] weight weighing
L2-007 家庭房产 (25 分)
AcWing 1294.樱花 题解
小L的试卷
Heating data in data lake?