初级
1.自定义toolBar
modules:{
toolbar:[
['bold', 'italic', 'underline', 'strike'], //加粗,斜体,下划线,删除线
['blockquote', 'code-block'], //引用,代码块
[{ 'header': 1 }, { 'header': 2 }], // 标题,键值对的形式;1、2表示字体大小
[{ 'list': 'ordered'}, { 'list': 'bullet' }], //列表
[{ 'script': 'sub'}, { 'script': 'super' }], // 上下标
[{ 'indent': '-1'}, { 'indent': '+1' }], // 缩进
[{ 'direction': 'rtl' }], // 文本方向
[{ 'size': ['small', false, 'large', 'huge'] }], // 字体大小
[{ 'header': [1, 2, 3, 4, 5, 6, false] }], //几级标题
[{ 'color': [] }, { 'background': [] }], // 字体颜色,字体背景颜色
[{ 'font': [] }], //字体
[{ 'align': [] }], //对齐方式
['clean'], //清除字体样式
['image','video'] //上传图片、上传视频
]
},
theme:'snow'
}
}
根据自己所需,修改toolbar属性值就OK;
例如:
//vue组建
import { Quill } from 'vue-quill-editor'
import quillConfig from '@/assets/js/quill-config'
export default{
name:"contract",
data(){
return{
content:"",
editorOption: quillConfig,
}
},
mounted() {
quillConfig.register(Quill);
}
}
//quillConfig
const toolOptions = [
['bold', 'italic', 'underline', 'strike'],
['blockquote', 'code-block'],
]
export default {
placeholder: '',
theme: 'snow', // 主题
modules: {
toolbar: {
container: toolOptions, // 工具栏选项
handlers: handlers // 事件重写
}
}
}
进阶-自定义toolbar 插件
1.在toolbar 栏增加三个按钮,作用是:点击按钮,在编辑器里面插入对应文本内容(接着上面的例子)
//quillConfig
const toolOptions = [
['bold', 'italic', 'underline', 'strike'],
['blockquote', 'code-block'],
['sourceEditor', 'jiaNameEdiror','jiaPhoneEdiror'] //新添加的工具
]
const handlers = {//点击新工具时,执行的操作代码
sourceEditor: function() {
//this.quill获取当前编辑器
//getSelection()检索用户的选择范围,返回index(光标现在所在位置), length(代表你选中语句的长度)
const index = this.quill.getSelection().index;
//insertText()向编辑器插入文本内容
this.quill.insertText(index, '${甲方姓名}', true);
},
jiaNameEdiror:function(){
const index = this.quill.getSelection().index;
this.quill.insertText(index, '${甲方负责人姓名}', true);
},
jiaPhoneEdiror:function(){
const index = this.quill.getSelection().index;
this.quill.insertText(index, '${甲方负责人身份证号}', true);
},
}
export default {
placeholder: '',
theme: 'snow', // 主题
modules: {
toolbar: {
container: toolOptions, // 工具栏选项
handlers: handlers // 事件重写
}
},
initButton: function() { //在使用的页面中初始化按钮样式
//凡是在toolbar中添加的工具,quill都会自动给它加上一个class类,类名为 “ql-” 加“工具名”
const sourceEditorButton = document.querySelector('.ql-sourceEditor');
sourceEditorButton.style.cssText = "width:80px; border:1px solid #ccc; border-radius:5px;margin-right:10px;margin-top:6px;";
sourceEditorButton.innerText = "甲方姓名";
const jiaNameEdirorButton = document.querySelector('.ql-jiaNameEdiror');
jiaNameEdirorButton.style.cssText = "width:80px; border:1px solid #ccc; border-radius:5px;margin-right:10px;margin-top:6px;";
jiaNameEdirorButton.innerText = "甲方姓名";
const jiaPhoneEdirorButton = document.querySelector('.ql-jiaPhoneEdiror');
jiaPhoneEdirorButton.style.cssText = "width:140px; border:1px solid #ccc; border-radius:5px;margin-top:6px;";
jiaPhoneEdirorButton.innerText = "甲方负责人身份证号";
},
}
//vue组建
...
//在mounted下面初始化新加的那几个按钮
mounted() {
quillConfig.register(Quill);
quillConfig.initButton();
},
...
想更深入了解quill,参考文档
https://quilljs.com/docs/api/
https://quilljs.com/guides/cloning-medium-with-parchment/
网友评论