wang-editor.vue 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. <template>
  2. <div ref="editor" style="text-align:left"></div>
  3. </template>
  4. <script>
  5. import E from 'wangeditor';
  6. const menus = [
  7. 'head', // 标题
  8. 'bold', // 粗体
  9. 'fontSize', // 字号
  10. 'fontName', // 字体
  11. 'italic', // 斜体
  12. 'underline', // 下划线
  13. 'strikeThrough', // 删除线
  14. 'foreColor', // 文字颜色
  15. 'backColor', // 背景颜色
  16. 'link', // 插入链接
  17. 'list', // 列表
  18. 'justify', // 对齐方式
  19. 'quote', // 引用
  20. // 'emoticon', // 表情
  21. 'image', // 插入图片
  22. 'table', // 表格
  23. // 'video', // 插入视频
  24. // 'code', // 插入代码
  25. 'undo', // 撤销
  26. 'redo', // 重复
  27. ];
  28. export default {
  29. name: 'wang-editor',
  30. model: {
  31. prop: 'value',
  32. event: 'change', // 默认为input时间,此处改为change
  33. },
  34. props: {
  35. value: { type: String, required: false, default: '' },
  36. uploadImgServer: { type: String, required: false, default: '/files/editor/images/upload' },
  37. },
  38. data() {
  39. return {
  40. editorContent: this.value,
  41. };
  42. },
  43. mounted() {
  44. var editor = new E(this.$refs.editor);
  45. editor.customConfig.onchange = html => {
  46. this.editorContent = html;
  47. this.$emit('change', html);
  48. };
  49. // 自定义菜单配置
  50. editor.customConfig.menus = menus;
  51. editor.customConfig.zIndex = 0;
  52. editor.customConfig.uploadImgServer = this.uploadImgServer;
  53. editor.customConfig.uploadImgMaxLength = 1;
  54. editor.customConfig.uploadImgHooks = {
  55. // 如果服务器端返回的不是 {errno:0, data: [...]} 这种格式,可使用该配置
  56. // (但是,服务器端返回的必须是一个 JSON 格式字符串!!!否则会报错)
  57. customInsert: function(insertImg, result, editor) {
  58. // 图片上传并返回结果,自定义插入图片的事件(而不是编辑器自动插入图片!!!)
  59. // insertImg 是插入图片的函数,editor 是编辑器对象,result 是服务器端返回的结果
  60. // 举例:假如上传图片成功后,服务器端返回的是 {url:'....'} 这种格式,即可这样插入图片:
  61. var url = result.uri;
  62. insertImg(url);
  63. // result 必须是一个 JSON 格式字符串!!!否则报错
  64. },
  65. };
  66. editor.create();
  67. editor.txt.html(this.value);
  68. },
  69. methods: {
  70. getContent: function() {
  71. return this.editorContent;
  72. },
  73. },
  74. };
  75. </script>