RuoYi前后端分离框架集成UEditorPlus富文本编辑器

news2025/6/4 0:44:05

一、背景

采用若依框架搭建了一个小型的电子书项目,项目前端、后端、移动端就一人,电子书的章节内容是以富文本内容进行呈现的,产品设计人员直接给了一个第三方收费的富文本编辑器截图放到开发文档中,提了一沓需求点,概况下来就是要做成下图中的样子。作为一个后端开发人员为了尽量满足产品对富文本编辑器上丰富的功能按钮的执念,对着搜索引擎与AI一顿疯狂的输入,大致得出UEditorPlus富文本编辑器可行,在与产品设计沟通后确认采用它来实现。

二、UEditorPlus

UEditorPlus是基于 UEditor 二次开发的富文本编辑器,界面功能比较丰富和现代,相关介绍可以查看官方网站,https://open-doc.modstart.com/ueditor-plus/,此处提供一张demo截图:

三、与若依框架集成

UEditorPlus与若依框架集成过程,大体上分为前端和后端两部分。前端主要是安装富文本插件,配置插件,后端主要是为了支持富文本编辑器的内容上传(比如,图片上传、视频上传等)。

1.前端集成

项目采用的若依前后端分离框架,前端vue的版本为vue2,因此前端集成UEditorPlus主要参照官方文档中关于vue2的集成方式,主要分为一下几部:

1.1.安装插件
npm i --save vue-ueditor-wrap@2.x
# 或
yarn add --save vue-ueditor-wrap@2.x
     1.2.解压 UEditorPlus 到静态资源目录

    复制 dist-min 到项目 public/static/UEditorPlus/ 目录。到官方仓库去下载对应资源,将对应目录中的资源拷贝到指定目录下。此处应注意,应该是将dist-min目录中的内容拷贝到public/static/UEditorPlus/ 下。本人在集成的时候后,将dist-min本级目录一并放到该目录下,导致运行的时候一致报资源找不到,浪费不少时间。如下图:

    1.3.插件配置

    在main.js中挂载插件,方便全局引用,如下图

    页面中引用组件并进行配置如下图:

    本人采用的配置方式并不是从后端接口读取,而是直接在前端页面配置,启用前端配置需要设置

    loadConfigFromServer=true。提供一份本人亲测可用的前端配置:

    editorConfig: {
    	 // 后端服务地址,后端处理参考
    	// https://open-doc.modstart.com/ueditor-plus/backend.html
    	serverUrl: process.env.VUE_APP_BASE_API + '/editor/upload',
    	// ...
    	serverHeaders: {
    	  'Authorization': 'Bearer ' + getToken()
    	},
    	loadConfigFromServer: false,
    	UEDITOR_HOME_URL: '/static/UEditorPlus/',
    	UEDITOR_CORS_URL: '/static/UEditorPlus/',
    	autoHeightEnabled: false,
    	initialFrameHeight: 500,
    	//阻止div标签自动转换为p标签
    	allowDivTransToP: false,
    	toolbars: [
    	 

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

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

    相关文章

    IPD流程落地:项目任务书Charter开发

    目录 简介 第一个方面,回答的是Why的问题。 第二点,要回答做什么的问题,也就是产品定义What的问题。 第三点就是要回答执行策略与计划的问题,也就是How、When、Who的问题。 第四点是对上述这些分析的总结分析,要为…

    Vue 2 混入 (Mixins) 的详细使用指南

    1.基本概念 混入 (Mixins) 是 Vue 2 中用于组件代码复用的重要特性,它允许你将可复用的功能分发到多个组件中。 混入是一种灵活的代码复用方式,可以包含任意组件选项(data、methods、生命周期钩子等)。当组件使用混入时&#xff…

    FreeRTOS 在物联网传感器节点的应用:低功耗实时数据采集与传输方案

    FreeRTOS 在物联网传感器节点的应用:低功耗实时数据采集与传输方案 二、FreeRTOS 任务划分与优先级设计 任务名称优先级执行周期功能描述Sensor_Collect3100ms多传感器数据采集与预处理Data_Process2事件驱动数据滤波/压缩/异常检测LoRa_Transmit41s低功耗长距离数…

    Linux环境下基于Docker安装 PostgreSQL数据库并配置 pgvector

    文章目录 1 docker-compose 安装 PostgreSQL 容器内安装 pgvector1.1 基于 docker-compose 安装 PostgreSQL 数据库1.2 容器内配置 pgvector 2. docker-compose Dockerfile 形式直接配置PostgreSQL数据库及 pgvector参考资料 PostgreSQL是一种功能强大的开源关系数据库管理系…

    (9)-java+ selenium->元素定位之By name

    1.简介 上一篇已经介绍了通过id来定位元素,继续介绍其他剩下的七种定位方法中的通过name来定位元素。本文来介绍Webdriver中元素定位方法之By name,顾名思义,就是我们想要定位的目标元素节点上,有一个name ="value"的属性,这样我们就可以通过name的value直接去…

    深浅拷贝?

    一、定义: 浅拷贝:只复制对象的第一层属性,若第一层属性是引用类型(如对象、数组),则复制其内存地址,修改拷贝后的嵌套对象会影响原对象。 深拷贝:递归复制对象的所有层级&#xf…

    Beckhoff PLC 功能块 FB_CTRL_ACTUAL_VALUE_FILTER (模拟量滤波)

    1. 功能块概览 名称:FB_CTRL_ACTUAL_VALUE_FILTER(实际值滤波控制功能块)。作用:对测量输入值进行合理性检查( plausibility check )和滤波处理,防止异常跳变(如传感器信号突变&…

    【C++指南】string(四):编码

    💓 博客主页:倔强的石头的CSDN主页 📝Gitee主页:倔强的石头的gitee主页 ⏩ 文章专栏:《C指南》 期待您的关注 引言 在 C 编程中,处理字符串是一项极为常见的任务。而理解字符串在底层是如何编码存储的&…

    深度学习之序列建模的核心技术:LSTM架构深度解析与优化策略

    LSTM深度解析 一、引言 在深度学习领域,循环神经网络(RNN)在处理序列数据方面具有独特的优势,例如语音识别、自然语言处理等任务。然而,传统的 RNN 在处理长序列数据时面临着严重的梯度消失问题,这使得网…

    AI量化交易是什么?它是如何重塑金融世界的?

    第一章:证券交易的进化之路 1.1 从喊价到代码:交易方式的革命性转变 在电子交易普及之前,证券交易依赖于交易所内的公开喊价系统。交易员通过手势、喊话甚至身体语言传递买卖信息,这种模式虽然直观,但效率低下且容易…

    分布式事务处理方案

    1. 使用Seata框架解决 1.1 XA 事务 1.1.1 XA整体流程 第一阶段 RM1开启XA事务-> 执行业务SQL -> 上报TC执行结果RM2开启XA事务-> 执行业务SQL -> 上报TC执行结果 第二阶段 TC根据 RM上报结果通知RM一起提交/回滚XA事务 1.1.2 XA特点 XA 模式必须要有数据库的支…

    CVE-2024-36467 Zabbix权限提升

    漏洞描述 在Zabbix中,具有API访问权限的已认证用户(例如具有默认用户角色的用户)可以通过调用user.update API接口,将自己添加到任何用户组(如Zabbix管理员组)。然而,用户无法添加到已被禁用或…

    Dify中的自定义模型插件开发例子:以xinference为例

    本文使用Dify v1.0.0-beta.1版本。模型插件结构基本是模型供应商(模型公司,比如siliconflow、xinference)- 模型分类(模型类型,比如llm、rerank、speech2text、text_embedding、tts)- 具体模型(…

    尚硅谷redis7 33-36 redis持久化之RDB优缺点及数据丢失案例

    官网说明优点: RDB是Redis数据的一个非常紧凑的单文件时间点表示,RDB文件非常适合备份。例如,您可能希望在最近的24小时内每小时旧档一次RDB文件,并在30天内每天保存一个RDB快照,这使您可以在发生来难时轻松恢复不同版本的数据集。RDB非常适合灾难恢复,它是一个可以…

    计算机网络-WebSocket/DNS/Cookie/Session/Token/Jwt/Nginx

    文章目录 WebSocketDNS什么是dns域名解析底层协议 cookie/sessionToken/JWTNginx WebSocket 一种网络通信协议,允许在单个 TCP(半双工) 连接上进行全双工通信(客户端和服务器可同时双向传输数据)。 HTTP是基于请求-响…

    将网页带格式转化为PDF

    # 一、安装插件 SingleFile | 将完整的页面保存到一个 HTML 文件中 – 下载 🦊 Firefox 扩展(zh-CN) 打开火狐浏览器,安装上面的插件 # 二、下载html单文件 打开对应的网页,点击插件下载对应的html文件 # 三、打开…

    【ArcGIS】ArcGIS AI 助手----复现

    github地址 korporalK/Archer-GIS-AI-Assitant:Archer 在 ArcGIS Pro 中将自然语言命令转换为自动化 GIS 工作流。它使用代理框架(计划-验证-执行)构建并由 LLM 提供支持,可简化空间分析、减少手动工作并使 GIS 更易于访问。Arch…

    充电枪IEC62196/EN 62196测试内容

    充电枪IEC62196/EN 62196测试内容 一、机械性能测试 插拔力测试 交流充电接口的插入/拔出力需≤100N,直流接口≤140N。若使用助力装置,操作力仍需满足上述要求。 测试方法:通过弹簧秤或专用试验机(如Sun-CB设备)测…

    SAP ERP 系统拆分的七大挑战

    在企业变革或管理运营风险时,剥离IT系统能带来显著效益,但SAP ERP系统的复杂性使得这项工作充满挑战。如果管理不当,可能会导致数据不一致、运营中断、合规风险和意外成本。由于SAP ERP系统深度集成于企业核心业务流程中,其拆分工…

    AcrelEMS 3.0智慧能源管理平台:构建企业微电网数智化中枢

    安科瑞电气顾强 在"双碳"目标驱动下,企业能源管理正从粗放式运营向精细化、智能化转型。AcrelEMS 3.0智慧能源管理平台以微电网为核心载体,通过"感知-分析-决策-控制"的全链路数字化能力,助力工商企业、医疗机构、教育机…