vue中wangEditor的使用及回显数据获取焦点的方法

 更新时间:2021年09月17日 10:57:38   作者:Э时间行者于我  
最近在写vue的项目中,遇到一个需求,点击编辑,显示弹框,在弹框中的富文本编辑器中编辑自定义文本样式,可以上传图片并回显。接下来通过本文给大家介绍vue中wangEditor的使用及回显数据获取焦点的问题,一起看看吧

在做后台管理项目时常常会用到富文本编辑器,在这里推荐大家使用wangEditor,非常好用

asdfz34567

第一步安装

npm i wangeditor --save

第二步在项目中使用

html

页面中的编辑、添加布局在最下面

<div id="div1">
    <p>欢迎使用 <b>wangEditor</b> 富文本编辑器</p>
</div>

<el-button type="primary" @click="createData()">创建需求</el-button>
<el-button size="mini" @click="createData(index, row, true)">编辑</el-button>
import E from 'wangeditor'  // 引入插件
const editor = null
// 或者 const editor = new E( document.getElementById('div1') )
data() {
	return {
		dialogForm: {
	        id: null,
	        departmentId: '',
	        systemConfigId: '',
	        title: '',
	        description: '',
	        priorityLevel: '',
	        fileUrl: ''
	      },
      },
},
methods: {
    initEditor() {
      if (editor) return
      editor = new E('#div1')
      // 自定义菜单配置
      editor.config.menus = [
        'head', // 标题
        'bold', // 粗体
        'fontSize', // 字号
        'fontName', // 字体
        'italic', // 斜体
        'underline', // 下划线
        'strikeThrough', // 删除线
        'foreColor', // 文字颜色
        'backColor', // 背景颜色
        'link', // 插入链接
        'list', // 列表
        'justify', // 对齐方式
        'quote', // 引用
        'image', // 插入图片
        'table', // 表格
        'code', // 插入代码
        'undo', // 撤销
        'redo' // 重复
      ]
      editor.config.onchange = (html) => { // 编辑器里的内容
        console.log(html, '内容')
        this.dialogForm.description = html // 赋值给自己在data中定义的值
      }

      editor.config.customUploadImg = (files, insert) => { // 富文本里的上传图片
        const param = new FormData()
        param.append('file', files[0])
        requireManage.updateOther(param).then((res) => { // 上传图片接口
          if (res.data) {
            insert(res.data[0])
          }
        })
      }
      editor.create() // 创建使用富文本
    },
    createData( row, edit) { // 新建或者编辑回显
      this.dialogVisible = true
      this.$nextTick(() => { // 使用 this.$nextTick 获取焦点
        this.$refs['dialogForm'].resetFields()
        this.initEditor() // 调用上面写的方法
        editor.txt.html('') // 清空富文本的内容
        if (edit) { // 如果是编辑进行下一步
          this.dialogForm = JSON.parse(JSON.stringify(row)) // 回显的数据
          this.dialogForm.id = row.id
          editor.txt.html(this.dialogForm.description) // 向富文本中插入回显的数据
        }
      })
    },
 }

看下面的图片

本来是获取到焦点的,但是我在截图的时候焦点是不在的,你在图片中看不到焦点

dsfgcv12345

html

<el-row>
	<el-dialog top="50px" :title="titleType == 1 ? '添加问题' : '编辑问题'" :visible.sync="dialogVisible" width="50%" @close="closeDialog">
      <div>
        <el-form ref="dialogForm" :model="dialogForm" :rules="dialogRules" label-width="100px">
          <el-form-item label="部门" prop="departmentId">
            <el-select v-model="dialogForm.departmentId" placeholder="请选择部门">
              <el-option v-for="item in requriDepart" :key="item.id" :label="item.departmentName" :value="item.id" />
            </el-select>
          </el-form-item>
          <el-form-item label="选择系统" prop="systemConfigId">
            <el-select v-model="dialogForm.systemConfigId" placeholder="请选择系统">
              <el-option v-for="item in systemArr" :key="item.id" :label="item.name" :value="item.id" />
            </el-select>
          </el-form-item>
          <el-form-item label="标题" prop="title">
            <el-input v-model="dialogForm.title" />
          </el-form-item>
          <el-form-item label="描述" prop="description">
            <div id="description" style="width: 100%" />
          </el-form-item>
          <el-form-item label="优先级别" prop="priorityLevel">
            <el-select v-model="dialogForm.priorityLevel" placeholder="请选择优先级别">
              <el-option label="高" :value="3" />
              <el-option label="中" :value="2" />
              <el-option label="低" :value="1" />
            </el-select>
          </el-form-item>
          <el-form-item label="上传附件">
            <el-upload action="/fms/api/productDev/updateOther" >
              <el-button size="small" type="primary">点击上传</el-button>
            </el-upload>
          </el-form-item>
        </el-form>
      </div>
      <span slot="footer" class="dialog-footer">
        <el-button type="primary">提交</el-button>
      </span>
    </el-dialog>
 </el-row>

到此这篇关于vue中wangEditor的使用及回显数据获取焦点的文章就介绍到这了,更多相关vue wangEditor使用内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • vue3 使用socket的完整代码

    vue3 使用socket的完整代码

    这篇文章主要介绍了vue3 使用socket的完整代码,包括vue3客户端和服务端的实例讲解,本文给大家介绍的非常详细,感兴趣的朋友跟随小编一起看看吧
    2024-03-03
  • 在vue中:style 的使用方式汇总

    在vue中:style 的使用方式汇总

    在Vue开发中使用:style绑定样式是常见需求,应注意:class与:style的配合使用,错误的使用可能导致样式不生效,正确的方法是使用数组绑定多个样式,这些技巧有助于提高开发效率和保持代码整洁,感兴趣的朋友跟随小编一起看看吧
    2024-09-09
  • Vue.js 时间转换代码及时间戳转时间字符串

    Vue.js 时间转换代码及时间戳转时间字符串

    这篇文章主要介绍了Vue.js 时间转换代码及时间戳转时间字符串,需要的朋友可以参考下
    2018-10-10
  • vue的路由映射问题及解决方案

    vue的路由映射问题及解决方案

    这篇文章主要介绍了vue的路由映射问题及解决方案,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-10-10
  • 理理Vue细节(推荐)

    理理Vue细节(推荐)

    这篇文章主要介绍了Vue细节,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-04-04
  • 还在用vuex?来了解一下pinia

    还在用vuex?来了解一下pinia

    这篇文章主要为大家详细介绍了pinia,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助
    2022-02-02
  • Vue3配置vite.config.js解决跨域问题的方法

    Vue3配置vite.config.js解决跨域问题的方法

    跨域一般出现在开发阶段,由于线上环境前端代码被打包成了静态资源,因而不会出现跨域问题,这篇文章主要给大家介绍了关于Vue3配置vite.config.js解决跨域问题的相关资料,需要的朋友可以参考下
    2024-07-07
  • vue element ui表格相同数据合并单元格效果实例

    vue element ui表格相同数据合并单元格效果实例

    工作中遇到需要根据单元格某个属性合并,特此记录下,下面这篇文章主要给大家介绍了关于vue element ui表格相同数据合并单元格效果的相关资料,文中通过图文介绍的非常详细,需要的朋友可以参考下
    2023-11-11
  • 浅谈Vue入门需掌握的知识

    浅谈Vue入门需掌握的知识

    这篇文章主要介绍了浅谈Vue入门需掌握的知识,感兴趣的同学参考下
    2021-04-04
  • vue前后端分离如何解决每次请求session都会变的问题

    vue前后端分离如何解决每次请求session都会变的问题

    这篇文章主要介绍了vue前后端分离如何解决每次请求session都会变的问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-08-08

最新评论