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

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

第一步安装

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) // 向富文本中插入回显的数据
        }
      })
    },
 }

看下面的图片

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

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使用内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • 轻量级富文本编辑器wangEditor结合vue使用方法示例

    1.安装 使用npm下载: `npm install wangeditor` 2. 创建实例 (1)基本用法: <template> <div> <div id="editor" class="editor"></div> </div> </template> <script> import E from 'wangeditor' export default { name: 'ed

  • Vue 中使用富文本编译器wangEditor3的方法

    富文本编译器在vue中的使用 在开发的过程中由于某些特殊需求,被我们使用,今天我就简单讲一讲如何在vue中使用wangEditor3 首先讲一下简单的使用. 1.使用npm安装 npm install wangeditor --save 2.vue页面代码如下 <template> <section> <div id="div5"></div> <div id="div6"></div> <

  • 在vue中获取wangeditor的html和text的操作

    目的:vue 中获取 wangeditor 的 html 和 text. 补充知识:vue-cli webpack 引入 wangeditor(轻量级富文本框) 1:使用npm下载: //(注意 wangeditor 全部是小写字母) npm install wangeditor 2: 直接在项目模板中引用 import E from 'wangeditor' 3:HTML <div id="editorElem" style="text-align:left"

  • Vue中使用wangeditor富文本编辑的问题

    wangEditor是基于javascript和css开发的 Web富文本编辑器, 轻量.简洁.易用.开源免费. 在我们实际项目上还是比较频繁应用到的,下面出个案例供大家参考学习- wangEditor文档:https://www.wangeditor.com/ 富文本编辑器截图: <!--富文本编辑器.http://www.wangeditor.com/ 使用示例: <AppEditor v-model="content"></AppEditor> --

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

    在做后台管理项目时常常会用到富文本编辑器,在这里推荐大家使用wangEditor,非常好用 第一步安装 npm i wangeditor --save 第二步在项目中使用 html 页面中的编辑.添加布局在最下面 <div id="div1"> <p>欢迎使用 <b>wangEditor</b> 富文本编辑器</p> </div> <el-button type="primary" @cl

  • element tree树形组件回显数据问题解决

    目录 1.当el-tree 从后台拿到数据动态回显展示出来时,只要有一个父节点,则下面的所有子节点全部被勾选了 2.解决方法代码如下 总结 解决vue+element tree组件 回显数据时有一个父节点数据下面子节点就都会被选中 1.当el-tree 从后台拿到数据动态回显展示出来时,只要有一个父节点,则下面的所有子节点全部被勾选了 如图所示: 后台返回的回显数据只有33(父节点组织管理)45(子节点个人管理),但是组织管理下的所有子节点都被回显选中. 2.解决方法代码如下 先在组件上绑定ch

  • vue中使用iview自定义验证关键词输入框问题及解决方法

    一.验证需求 对应配置的关键词输入框,验证要求如下: 1.总字数不能超过7000个: 2.去除配置的关键词特殊符号,得到的关键词组数不能超过300:(如:aaa&(bbb|ccc)|(!ddd|eee)),去掉特殊符号,有5组) 3.单个关键词长度不能超过20:(如:aaaaa&(bbb|ccc)),如果aaaaa长度超过20则提示) 二.解决方法 在关键词输入对应的FormItem中加入一个prop属性,作为验证字段使用:注意该FormItem是包含于Form的: form表单中添加ru

  • vue中promise的使用及异步请求数据的方法

    下面给大家介绍vue中promise的使用 promise是处理异步的利器,在之前的文章<ES6之promise>中,我详细介绍了promise的使用, 在文章<js动画实现&&回调地狱&&promise>中也提到了promise的then的链式调用, 这篇文章主要是介绍在实际项目中关于异步我遇到的一些问题以及解决方法,由此来加深对promise的进一步理解. 背景 进入商品页,商品页的左侧是分类,右侧是具体的商品,一旦进入商品页,就把所有分类的商品

  • vue中如何让子组件修改父组件数据

    一.关于vue中watch的认识 我们要监听一个属性的的变化就使用watch一般是父组件传递给子组件的时候 •1.常见的使用场景 ... watch:{ value(val) { console.log(val); this.visible = val; } } ... •2.如果要一开始就执行 ... watch: { firstName: { handler(newName, oldName) { this.fullName = newName + '-' + this.lastName;

  • vue中利用Promise封装jsonp并调取数据

    Promise就是一个给一步操作提供的容器,在这个容器里,有两个阶段无法改变的阶段,第一个阶段就是Pending(进行),第二个阶段就是结果阶段,包含Fulfilled(成功).Rejected(失败)两个结果. 这两个结果不会改变.然后结果结束后就会用then来执行相应的结果. new Promise((resolve,reject)=>{ 相应操作 if(异步操作成功){ resolve(value) }else{ reject(error) } }).then(value=>{ // 成

  • 关于layui时间回显问题的解决方法

    当我们请求接口时 将得到的数据 进行回显 layui一直是获取了当前的系统时间 进行回显 解决办法 layui.config({ base: './Public/layuiadmin/' //静态资源所在路径 }).extend({ index: 'lib/index' //主入口模块 }).use('index'); layui.use(['laydate','form','table'], function(){ var laydate = layui.laydate; var table

  • Vue中mintui的field实现blur和focus事件的方法

    首先上代码说总结: <mt-field label="卡号" v-model="card.cardNo" @blur.native.capture="checkCard"></mt-field> methods: { checkCard() { console.log('1111'); } } 使用@blur.native.capture=""即可实现. 另一种方法: 使用vue-directive指令

  • 在vue中获取token,并将token写进header的方法

    需要准备的东西:Vue+axios+Vuex+Vue-router 1.在login.vue中通过发送http请求获取token //根据api接口获取token var url = this.HOST + "/session"; this.$axios.post(url, { username: this.loginForm.username, password: this.loginForm.pass }).then(res => { // console.log(res.d

  • vue 中 elment-ui table合并上下两行相同数据单元格

    html : <el-table :header-cell-style="{background:'#6d7f93',color:'white'}" :data="ptableDate" align="center" border v-loading="loading" :height="tableHeight" :span-method="objectOneMethod" >

随机推荐