导入vue3-引入富文本框编辑器-@wangeditor/editor库

news2024/11/25 16:47:00

效果图
在这里插入图片描述

  1. 下载依赖包
@pureadmin/utils": "2.4.7
@wangeditor/editor": "^5.1.23
@wangeditor/editor-for-vue": "5.1.12
  1. 定义公共组件
    在src目录下定义 components/ReEditor/index.vue
    在这里插入图片描述
    index.ts
import editor from "./src/Editor.vue";
import { withInstall } from "@pureadmin/utils";

/** 编辑器组件 */
export const RwEditor = withInstall(editor);

export default RwEditor;

Editor.vue

<script setup>
import { onBeforeUnmount, onMounted, ref, shallowRef, watchEffect } from "vue";

import "@wangeditor/editor/dist/css/style.css"; // 引入 css
import { Editor, Toolbar } from "@wangeditor/editor-for-vue";
defineOptions({
  name: "Editor"
});

const props = defineProps({
  mode: {
    type: String,
    requred: true
  },
  toolbarConfig: {
    type: Object,
    default: () => {
      return {
        excludeKeys: ["fullScreen", "emotion", "group-image", "group-video"]
      };
    }
  },
  editorConfig: {
    type: Object,
    default: () => {
      return { placeholder: "请输入内容..." };
    }
  },
  initValue: {
    type: String,
    default: ""
  },
  height: {
    type: String,
    default: "500px"
  }
});
const emit = defineEmits(["changeVal"]);

// 编辑器实例,必须用 shallowRef
const editorRef = shallowRef();

// 内容 HTML
const valueHtml = ref("");
watchEffect(() => {
  valueHtml.value = props.initValue;
});

onMounted(() => {});

// 组件销毁时,也及时销毁编辑器
onBeforeUnmount(() => {
  const editor = editorRef.value;
  if (editor != null) {
    editor.clear();
  } else {
    return;
  }
  editor.destroy();
});

const handleCreated = editor => {
  editorRef.value = editor; // 记录 editor 实例,重要!
  // console.log(editor.getHtml());
};

const handleChange = editor => {
  emit("changeVal", editor.getHtml());
};
</script>

<template>
  <div class="wangeditor">
    <Toolbar
      style="border-bottom: 1px solid #ccc"
      :editor="editorRef"
      :defaultConfig="props.toolbarConfig"
      :mode="props.mode"
    />
    <Editor
      :style="{ height: props.height, overflowY: 'hidden' }"
      v-model="valueHtml"
      :defaultConfig="props.editorConfig"
      :mode="props.mode"
      @onCreated="handleCreated"
      @onChange="handleChange"
    />
  </div>
</template>

<style lang="scss" scoped></style>

  1. 引用
    在使用.vue页面
<script setup lang="ts">
import { RwEditor } from "@/components/RwEditor";
 const importExcel = (res:any) => {
    return Base64.encode(res);
  };
 const content = ref("");
 const changeVal = v => {
        content.value = v;
    };
 const submit = () => {
      content.value = importExcel(content.value)
      接口url(入参).then(res => {
        ElMessage.success("导入成功");
        content.value = "";
      });
    };
</script>

<template>
  <el-dialog
    v-model="dialogVisible"
    title="导入数据"
    width="60%"
  >
    <RwEditor @changeVal="changeVal" :init-value="content" :height="'300px'"/>
    <template #footer>
      <el-button type="primary" @click="submit" :loading="loading">确定</el-button>
    </template>
  </el-dialog>
</template>
    

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1952799.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

BFS实现迷宫最短路径

结合队列的知识利用 广度优先遍历&#xff0c;通过对能走的路径的记录以及对走过路径的标记&#xff0c;进行多条路搜查 一、理论基础 如下图的迷宫&#xff1a; 选取所走方向&#xff08;针对某一个位置&#xff09;下&#xff0c;右&#xff0c;上&#xff0c;左&#xff0…

客户在哪儿AI——做真正管用的大客户获客方案

我们的目标是要打造一个真正“管用”的ToB大客户获客方案。以下是两个100%真实的案例&#xff0c;所有数据均为真实经营数据。一个是证明客户在哪儿AI对市场工作的颠覆性提升&#xff0c;另一个是证明客户在哪儿AI对决策层和销售工作的颠覆性提升。 客户在哪儿AI生产的是企业全…

C++模板——泛型编程

目录 1. 什么是泛型编程 2. 函数模板 2.1 定义格式 2.2 实例化及原理 2.3 参数匹配原则 3. 类模板 3.1 定义格式 3.2 实例化 4. 非类型模板参数 5. 模板的特化 5.1 概念 5.2 函数模板和类模板特化 6. 模板的分离编译 1. 什么是泛型编程 如何实现一个通用的加…

Windows下Pytorch入门深度学习环境安装与配置(CPU版本)

Windows下Pytorch入门深度学习环境安装与配置&#xff08;CPU版本&#xff09; 一、安装过程中各个软件的作用&#xff08;一&#xff09;Python&#xff08;二&#xff09;库 / 包 / package / library&#xff08;三&#xff09;PyTorch / Tensorflow&#xff08;四&#xff…

详解yolov5和yolov8以及目标检测相关面试

一、与yoloV4相比&#xff0c;yoloV5的改进 输入端&#xff1a;在模型训练阶段&#xff0c;使用了Mosaic数据增强、自适应锚框计算、自适应图片缩放基准网络&#xff1a;使用了FOCUS结构和CSP结构Neck网络&#xff1a;在Backbone和最后的Head输出层之间插入FPN_PAN结构Head输出…

计算机二级题--文件 章节

之前写的有文件全部的知识点&#xff0c;这一篇主要针对计算机二级真题的整理。 需要备考计算机二级的小伙伴们先收藏起来吧。整理不易&#xff0c;不过有帮助记得点赞哦 1.相关概念考点&#xff1a; 1.文件指针指向的是文件缓冲区的位置&#xff0c;不是文件在读位置。 2.…

儿童洗衣机哪个牌子好?五大爆款机型倾情分享

在当今繁忙的生活中&#xff0c;儿童洗衣机已成为我们日常生活中不可或缺的家电。但是&#xff0c;面对市场上众多品牌的儿童洗衣机&#xff0c;那么&#xff0c;到底儿童洗衣机哪个牌子好&#xff1f;本次我将在这篇文章中探讨儿童洗衣机的选购策略&#xff0c;以帮助大家找到…

记录unraid docker更新的域名

背景&#xff1a;级联 一、安装内容 unraid更新docker&#xff0c;之前一直失败&#xff0c;修改网络后可以进行安装。 二、查看域名 查看域名&#xff0c;发现是走github的&#xff0c;怪不得有一些docker无法正常更新 三、解决方法 更改代理&#xff0c;这里为unraid的…

智慧教育解决方案

1. 智慧教育解决方案概述 智慧教育解决方案旨在通过教育改革实现四个转变&#xff1a;从以教为主到以学为主&#xff0c;从专业教育到通识与专业教育结合&#xff0c;从课堂教育到课内外结合&#xff0c;以及从结果评价到过程与结果评价结合。 2. 教育三维目标 教育三维目标…

避免工件精度受损:精准调整滚珠丝杆状态!

滚珠丝杆作为一种常用的传动装置&#xff0c;经过长期使用或者维护不当的情况下有时会发生弯曲或变形。弯曲不仅会对滚珠丝杆的精度和寿命造成影响&#xff0c;而且还会对整个机器系统的工作效率和安全性产生影响。那么&#xff0c;应该如何要避免滚珠丝杆弯曲对工件的影响呢&a…

Java数据结构与算法--链表(Linked List)

博客主页&#xff1a;誓则盟约系列专栏&#xff1a;Java SE关注博主&#xff0c;后期持续更新系列文章如果有错误感谢请大家批评指出&#xff0c;及时修改感谢大家点赞&#x1f44d;收藏⭐评论✍ 深入了解链表&#xff1a; 链表是一种常见的数据结构&#xff0c;它由一系列节点…

【SOC 芯片设计 DFT 学习专栏 -- DFT DRC规则检查】

请阅读【嵌入式及芯片开发学必备专栏】 请阅读【芯片设计 DFT 学习系列 】 如有侵权&#xff0c;请联系删除 转自&#xff1a; 芯爵ChipLord 2024年07月10日 12:00 浙江 文章目录 概述DRC的概念Tessent DRC检查的概述时钟相关检查扫描相关检查BIST规则检查预DFT时钟规则检查 …

zh echarts样式

记录一下&#xff1a; 一个图的配置 在echarts官网demo界面 option {title: {text: },legend: {data: [xxx前, xxx后]},radar: {// shape: circle,name: {// 雷达图各类别名称文本颜色textStyle: {color: #000,fontSize: 16}},indicator: [{ name: 完整性, max: 1 },{ name:…

ByteBuffer调试工具类

一个可以形象展示ByteBuffer内容的方法&#xff0c;便于调试 package com.example.netty;import java.nio.ByteBuffer;public class ByteBufferUtil {/*** 打印ByteBuffer的内容&#xff0c;以十六进制和ASCII字符的形式展示。** param buffer 要展示的ByteBuffer*/public sta…

Java全栈课程之Linux——用户组管理

每个用户都有一个用户组&#xff0c;系统可以对一个用户组中的所有用户进行集中管理。不同Linux 系统对用户组的规定有所不同&#xff0c;如Linux下的用户属于与它同名的用户组&#xff0c;这个用户组在创建用户时同时创建。 用户组的管理涉及用户组的添加、删除和修改。组的增…

Jenkins持续集成软件

1.什么是jenkins? jenkins是一个开源软件项目&#xff0c;是基于Java开发的一种持续集成工具&#xff0c;用于监控持续重复的工作&#xff0c;提供一个开放易用的软件平台&#xff0c;时软件项目可以进行持续集成。 通俗来说&#xff1a;Jenkins软件就是自动拉取git远程仓库所…

03--KVM虚拟化

前言&#xff1a;这里开始涉及到云计算内容&#xff0c;虚拟化使云计算发展&#xff0c;云计算推动虚拟化进步&#xff0c;两者相辅相成&#xff0c;这一章总结一下kvm虚拟化的解决方案。 1、基础概念 1.1、云计算 以前要完成信息处理, 是需要在一个客观存在的计算机上完成的…

永劫无间游戏辅助攻略:2024阵容搭配攻略大全!云手机辅助!

《永劫无间》是一款备受玩家喜爱的动作类游戏&#xff0c;其丰富的角色选择和多样的技能搭配让玩家在战斗中体验到了极大的乐趣。然而&#xff0c;要在竞争激烈的战场上脱颖而出&#xff0c;仅仅依靠基础的游戏理解是远远不够的。为了帮助广大玩家提升战斗力&#xff0c;本文将…

安防巡检机器人:守护安全的智能卫士

安防巡检机器人&#xff0c;作为机器人技术在安防领域的杰出应用&#xff0c;是一种集自主导航、智能巡检、环境监测、远程监控等多功能于一体的智能装备。这些机器人通过集成先进的传感器、高清摄像头、智能算法和导航系统等模块&#xff0c;实现了全天候、全方位、自主化的安…