当前位置: 首页 > news >正文

【Vue】集成富文本编辑器

这文章使用的是wangeditor插件,官网地址:wangEditor,这个比较简单

安装

npm i wangeditor --save

使用 

<div id="editor"></div>import E from "wangeditor"const editor = new E("#editor")
editor.create()//或者
export default {
data() {return {editor: null}
}
this.editor = new E(`#editor`)//设置参数
this.editor.create() //创建

报错:

原因是在打开表单的时候元素还没创建好,所以找不到

解决方法:

使用NextTick:在下次 DOM 更新循环结束之后执行延迟回调。在修改数据之后立即使用这个方法,获取更新后的 DOM。

this.$nextTick(() => {this.editor = new E(`#editor`)//设置参数this.editor.create() //创建})

 

销毁编辑器

关闭时销毁,不然下次打开内容还在编辑器中

//在dialog销毁时调用
beforeDestroy() {
this.editor.destroy ()
this.editor = null
}
// 获取编辑器内容
this.editor.txt.html()

配置图片上传

 配置图片上传接口

 @PostMapping("/editor/upload")public Dict editorUpload(MultipartFile file) throws IOException {String originaFilename = file.getOriginalFilename();//文件原始名 a.jpgString mainname = FileUtil.mainName(originaFilename);//aString extname = FileUtil.extName(originaFilename);//jpgFile parentFile = new File(ROOT_PATH);if (!FileUtil.exist(ROOT_PATH)) {//若当前父级目录不存在就创建一个FileUtil.mkdir(ROOT_PATH);}if (FileUtil.exist(ROOT_PATH + File.separator + originaFilename)) {//若当前上传的文件名已存在,则重命名originaFilename = System.currentTimeMillis() + "_" + mainname + "." + extname;//124234_a.jpg}File saveFile = new File(ROOT_PATH + File.separator + originaFilename);file.transferTo(saveFile);//存储到本地String url = "http://localhost:8080/file/download/" + originaFilename;Dict dict=Dict.create().set("errno",0).set("data", CollUtil.newArrayList(Dict.create().set("url",url)));//返回return dict;}

前端使用接口:

this.editor.config.uploadImgServer = this.$baseUrl + '/file/editor/upload'
this.editor.config.uploadFileName = 'file'
this.editor.config.uploadImgHeaders = {token: this.user.token
}


server 接口返回格式,重要!!!

{
"errno": 0,
"data":[{url:"图片地址"}]
}

视频上传

this.editor.config.uploadVideoServer = this.$baseUrl + '/file/editor/upload'this.editor.config.uploadVideoName = 'file'this.editor.config.uploadVideoHeaders = {token: this.user.token}

写到这里报错了,最后发现视频的格式和图片格式要求不一样,视频格式:

 所以需要改一下后端接口,判断是视频还是图片,最后完整代码:

接口:

@PostMapping("/editor/upload")public Dict editorUpload(@RequestParam MultipartFile file, @RequestParam String type) throws IOException {String originaFilename = file.getOriginalFilename();String mainname = FileUtil.mainName(originaFilename);String extname = FileUtil.extName(originaFilename);if (!FileUtil.exist(ROOT_PATH)) {FileUtil.mkdir(ROOT_PATH);}if (FileUtil.exist(ROOT_PATH + File.separator + originaFilename)) {//若当前上传的文件名已存在,则重命名originaFilename = System.currentTimeMillis() + "_" + mainname + "." + extname;//124234_a.jpg}File saveFile = new File(ROOT_PATH + File.separator + originaFilename);file.transferTo(saveFile);//存储到本地String url = "http://localhost:8080/file/download/" + originaFilename;Dict dict = Dict.create().set("errno", 0);if ("img".equals(type)) {dict = Dict.create().set("errno", 0).set("data", CollUtil.newArrayList(Dict.create().set("url", url)));} else if ("video".equals(type)) {dict = Dict.create().set("errno", 0).set("data", Dict.create().set("url", url));}//返回return dict;}

前端:

//编辑显示
this.$nextTick(() => {this.editor = new E(`#editor`)//设置参数this.editor.config.uploadImgServer = this.$baseUrl + '/file/editor/upload'this.editor.config.uploadFileName = 'file'this.editor.config.uploadImgHeaders = {token: this.user.token}this.editor.config.uploadImgParams = {type: 'img'}this.editor.config.uploadVideoServer = this.$baseUrl + '/file/editor/upload'this.editor.config.uploadVideoName = 'file'this.editor.config.uploadVideoHeaders = {token: this.user.token}this.editor.config.uploadVideoParams = {type: 'video'}this.editor.create() //创建this.editor.txt.html(row.content)})

相关文章:

【Vue】集成富文本编辑器

这文章使用的是wangeditor插件&#xff0c;官网地址&#xff1a;wangEditor&#xff0c;这个比较简单 安装 npm i wangeditor --save 使用 <div id"editor"></div>import E from "wangeditor"const editor new E("#editor") e…...

【论文阅读】--Popup-Plots: Warping Temporal Data Visualization

弹出图&#xff1a;扭曲时态数据可视化 摘要1 引言2 相关工作3 弹出图3.1 椭球模型3.1.1 水平轨迹3.1.2 垂直轨迹3.1.3 组合轨迹 3.2 视觉映射与交互 4 实施5 结果6 评估7 讨论8 结论和未来工作致谢参考文献 期刊: IEEE Trans. Vis. Comput. Graph.&#xff08;发表日期: 2019&…...

重建大师引擎数0,本地引擎设置改不了,空三在跑,这样是正常的吗?

答&#xff1a;任务目录和引擎监控目录并没有按照网络集群设置&#xff0c;需要调整为网络路径。 重建大师是一款专为超大规模实景三维数据生产而设计的集群并行处理软件&#xff0c;输入倾斜照片&#xff0c;激光点云&#xff0c;POS信息及像控点&#xff0c;输出高精度彩色网…...

APM教程-SkyWalking安装和配置

SkyWalking简介 APM (Application Performance Management) 即应用性能管理&#xff0c;属于IT运维管理&#xff08;ITOM)范畴。主要是针对企业 关键业务的IT应用性能和用户体验的监测、优化&#xff0c;提高企业IT应用的可靠性和质量&#xff0c;保证用户得到良好的服务&#…...

斯坦福大学 AI 研究部门推出的“7 周人工智能学习计划”

①AI Python 基础&#xff0c;包括计算机原理、语法、判断语句等&#xff1b; ②AI Python 进阶&#xff0c;涉及 Linux 命令、多任务编程等&#xff1b; ③机器学习&#xff0c;涵盖算法、数据结构等&#xff1b; ④计算机视觉与图像处理&#xff0c;包含图像分类、目标检测…...

World of Warcraft [CLASSIC] plugin lua

World of Warcraft [CLASSIC] plugin lua 魔兽世界lua脚本插件 World of Warcraft API - Wowpedia - Your wiki guide to the World of Warcraft D:\World of Warcraft\_classic_\Interface\AddOns zwf.lua function CountdownFunc()CountdownFrame CreateFrame("Fram…...

背靠广汽、小马智行,如祺出行打得过滴滴和百度吗?

©自象限原创 作者丨艾AA 编辑丨薛黎 北京时间6月14日凌晨&#xff0c;在特斯拉股东大会上&#xff0c;马斯克阐述了对Robotaxi&#xff08;自动驾驶出租车&#xff09;商业模式的构想——特斯拉不仅会运营自己的无人驾驶出租车车队&#xff0c;还可以让特斯拉车主们的爱…...

CCSP自考攻略+经验总结

备考攻略 备考攻略准备阶段通读阶段精度阶段总复习阶段刷题阶段命运审判 写到最后 备考攻略 趁着对ssp知识点的理解还在&#xff0c;开始ccsp的考证之路&#xff0c;文章结构还是按照cissp备考篇的结构梳理。本次备考和cissp的离职在家备考不同&#xff0c;ccsp是在职利用非工…...

面试突击:ArrayList源码详解

本文已收录于&#xff1a;https://github.com/danmuking/all-in-one&#xff08;持续更新&#xff09; 前言 哈喽&#xff0c;大家好&#xff0c;我是 DanMu。ArrayList 是我们日常开发中不可避免要使用到的一个类&#xff0c;并且在面试过程中也是一个非常高频的知识点&#…...

力扣每日一题:2734. 执行子串操作后的字典序最小字符串

题目链接 脑子比较笨&#xff0c;分三种情况考虑&#xff1a; 以a开头。xxa&#xff0c;a在中间。 对于情况2还有两种可能&#xff1a; 1. 全是a&#xff0c;最后一个元素需要替换成z&#xff0c;因为必须执行一次操作。 2. aaaxxa&#xff0c;中间有一段非a&#xff0c;将这…...

C++11中std::thread的使用

C11 引入了 std::thread&#xff0c;它是用于创建和管理线程的标准库类。以下是详细的讲解&#xff0c;包括如何使用 std::thread 进行线程创建、管理和参数传递等操作。 1. 包含必要的头文件 在使用 std::thread 前&#xff0c;需要包含 <thread> 头文件&#xff1a; …...

酷瓜云课堂(内网版)v1.1.5 发布,局域网在线学习+考试系统

更新内容 更新layui-v2.9.10更新docker国内镜像地址增加导入镜像构建容器的方式教师不批阅非首次考试试卷轮播图增加专栏类型目标链接增加课程能否发布检查去除初始化kindeditor语言文件去除选择题EF选项优化富文本内容显示样式优化内容图片点击放大监听优化试题题干答案等图片…...

大数据之Hadoop部署

文章目录 服务器规划服务器环境准备1. 网络测试2. 安装额外软件包3. 安装基础工具4. 关闭防火墙5. 创建用户并配置权限6. 创建目录并设置权限7. 卸载JDK8. 修改主机名9. 配置hosts文件10. 重启服务器 配置免密登录安装Java安装Hadoop1. Hadoop部署2. 配置Hadoop3. 格式化Hadoop…...

Java异常处理中的“throw”与“throws”的区别

在Java中&#xff0c;throw 和 throws 是两个用于处理异常的关键词&#xff0c;它们的使用场景和目的有所不同 1. throw throw 关键字用于在Java程序中显式地抛出一个异常。当你检测到某些条件&#xff08;通常是错误条件&#xff09;时&#xff0c;你可以使用 throw 来抛出一…...

英语智汇学习系统

目 录 1 软件概述 1.1 项目研究背景及意义 2 系统相关技术 2.1 HTML、WXSS、JAVASCRIPT技术 2.2 Vanilla框架 2.3 uni-app框架 2.4 MYSQL数据库 3 需求分析 3.1 可行性分析 3.2 功能需求分析 3.3 系统用户及用例分析 3.4 非功能需求分析 3.5 数据流图…...

ExtractAItoTEXT 提取Adobe illustrator AI文件中的文字到文本文件翻译并写回到Adobe illustrator AI文件

Extract Text from Adobe illustrator to text for translate and write back to Adobe illustrator after translate in text file. Originally script from marceloliaohotmail.com during his work in SDL. Updated by me. 从Adobe illustrator中提取文本以进行翻译&#x…...

ms17-010 ms12-020 ms-08-067

MS17-010是一个由微软发布的安全公告编号&#xff0c;它指代了一个严重级别的安全漏洞&#xff0c;该漏洞存在于Microsoft Windows的Server Message Block 1.0 (SMBv1)协议处理中。这个漏洞被命名为“永恒之蓝”&#xff08;EternalBlue&#xff09;&#xff0c;因为它最初是由…...

【海思Hi3403V100】多目拼接相机套板硬件规划方案

海思Hi3403V100 是专业超高清智能网络摄像头 SoC。该芯片最高支持四路 sensor 输入&#xff0c;支持最高 4K60fps 的 ISP 图像处理能力&#xff0c;支持 3F 、WDR、多级降噪、六轴防抖、硬件拼接、多光谱融合等多种传统图像增强和处理算法&#xff0c;支持通过AI 算法对输入图像…...

AI的赚钱风向,彻底变了!

从2023年3月起&#xff0c;生成式AI技术的浪潮席卷全球&#xff0c;让不少人开始焦虑中国AI技术与美国的差距。然而&#xff0c;最近的趋势显示&#xff0c;AI创业的盈利模式已经发生了根本性的变化。今年&#xff0c;我们见证了AIGC&#xff08;人工智能生成内容&#xff09;企…...

服务器重启后jenkins任务内容不见了,并且新建任务也不见了

服务器centos7.4 背景&#xff1a;服务器异常重启后&#xff0c;jenkins上面的任务只剩下一些前端项目&#xff0c;后端的任务都不展示了&#xff0c;jenkins版本是Jenkins 2.346.3 解决方案&#xff1a;根据显示&#xff0c;jenkins很多的插件引用失败&#xff0c;显示需要升…...

如何选择合适的WordPress主机?

选择合适的WordPress主机需要考虑多个因素&#xff0c;包括性能、速度、存储空间、带宽、硬件配置、操作系统、支持的软件版本以及安全性等。以下是一些详细的建议&#xff1a; 性能和速度&#xff1a;选择一个能够提供快速加载速度和稳定性能的主机至关重要。快速加载的网站不…...

面试突击:Java 集合知识体系梳理

本文已收录于&#xff1a;https://github.com/danmuking/all-in-one&#xff08;持续更新&#xff09; 前言 哈喽&#xff0c;大家好&#xff0c;我是 DanMu。在 Java 开发中&#xff0c;集合类对象绝对是被使用最频繁的对象之一。因此&#xff0c;深入了解集合类对象的底层数…...

AI智能管理系统设计文档

AI智能管理系统设计文档 1. 引言 本设计文档旨在开发一套全面的AI智能管理系统&#xff0c;以优化生产运营效率和决策质量。该系统将利用先进的AI技术和数据分析能力&#xff0c;提供自动化流程控制、预测性维护、智能决策支持等功能。 2. 需求分析与目标设定 2.1 业务需求…...

干涉阵型成图参数记录【robust】

robust 这个玩意经常忘记&#xff0c;就是取2的时候是更加显示大尺度的结构&#xff0c;取-2更加显示小尺度结果&#xff0c;一般取0就是正常就好了...

React Native工程运行时下载gradle超时问题

React Native工程在运行Android的时候会下载gradle&#xff0c;但是由于众所周知的问题&#xff0c;总是下载失败&#xff0c;这时可以通过修改 <APP_ROOT>/android/wrapper/gradle-wrapper.properties 文件中 distributionUrl 参数使用国内 gradle 镜像来提高下载速度。…...

本地离线模型搭建指南-LLaMA-Factory训练框架及工具

搭建一个本地中文大语言模型&#xff08;LLM&#xff09;涉及多个关键步骤&#xff0c;从选择模型底座&#xff0c;到运行机器和框架&#xff0c;再到具体的架构实现和训练方式。以下是一个详细的指南&#xff0c;帮助你从零开始构建和运行一个中文大语言模型。 本地离线模型搭…...

数智化金融采购系统特点

数智化金融采购系统是郑州信源公司结合众多金融行业采购特点&#xff0c;采用流程优化再造的理念&#xff0c;为银行、保险、证券、交易所等金额机构打造的细分行业产品&#xff0c;助力金融行业采购合规管理、风险防范、成本管理和效率提升。 系统特点 1、全业务覆盖&#x…...

使用 SwiftUI 为 macOS 创建类似于 App Store Connect 的选择器

文章目录 前言创建选择器组件使用选择器组件总结前言 最近,我一直在为我的应用开发一个全新的界面,它可以让你查看 TestFlight 上所有可用的构建,并允许你将它们添加到测试群组中。 作为这项工作的一部分,我需要创建一个组件,允许用户从特定构建中添加和删除测试群组。我…...

Python26 Lambda表达式

1.什么是lambda表达式 lambda 是 Python 中的一个关键字&#xff0c;用于定义简单的匿名函数。与 def 关键字定义的标准函数不同&#xff0c;lambda 函数主要用于需要一个函数对象作为参数的简短操作。lambda 函数的设计哲学是简洁&#xff0c;因此它只能包含一条表达式&#…...

2024年数据、自动化与智能计算国际学术会议(ICDAIC 2024)

全称&#xff1a;2024年数据、自动化与智能计算国际学术会议&#xff08;ICDAIC 2024&#xff09; 会议网址:http://www.icdaic.com 会议地点: 厦门 投稿邮箱&#xff1a;icdaicsub-conf.com投稿标题&#xff1a;ArticleTEL。投稿时请在邮件正文备注&#xff1a;学生投稿&#…...

查看wordpress版本/百度竞价开户

能坚持别人不能坚持的&#xff0c;才能拥有别人未曾拥有的。 关注编程大道公众号&#xff0c;让我们一同坚持心中所想&#xff0c;一起成长&#xff01;&#xff01; 《【面试突击】— Redis篇》-- Redis的线程模型了解吗&#xff1f;为啥单线程效率还这么高&#xff1f; 原文…...

西安有哪些做网站建设的公司好/网络推广员好做吗

在接口测试学习过程中&#xff0c;遇到了利用requests库进行文件下载和上传的问题。同样&#xff0c;在真正的测试过程中&#xff0c;我们不可避免的会遇到上传和下载的测试。文件上传&#xff1a;url ztx.hostupload/uploadFile?CSRFTokenself.getCSRFToken()#上传文件的接口…...

佛山外贸网站建设行情/南宁排名seo公司

今天给大家推荐李宏毅老师的一天搞懂深度学习ppt。李老师从以下四个方面进行介绍&#xff1a;第一部分&#xff1a;介绍深度学习第二部分&#xff1a;深度神经网络的建议第三部分&#xff1a;神经网络的多样性第四部分&#xff1a;未来趋势下面对四个部分做简单介绍&#xff01…...

微信小程序前端开发框架/百度自动优化

一、豆瓣API简介及快速入门&#xff1a; 例如想获取ID为1220562的图书相关信息&#xff0c;则请求如下&#xff1a; http://api.douban.com/v2/book/1220562&#xff0c;返回的为json&#xff0c;其中的信息包括&#xff1a; id;alt/rating(评分)/author/image/title/summar…...

上海免费注册公司官网/搜索引擎网站排名优化方案

尽管广泛阅读了JDK源代码并检查了内在例程,但我还是不能一概而论.我正在测试清除使用ByteBuffer.putLong(int index,long value)用allocateDirect分配的ByteBuffer.基于JDK代码,如果缓冲区为“本机字节顺序”,则将导致单个8字节的写操作&#xff1b;如果不按字节交换,则将导致相…...

怎么查网站做百度竞价信息/app开发公司排行榜

一、准备工作 1、Lumen环境搭建 可参考上篇文章《Lumen安装配置使用入门》一文。 2、数据库信息 数据库地址&#xff1a;localhost 数据库名称&#xff1a;lumenauth 数据库用户&#xff1a;root 数据库密码&#xff1a;****** 二、初始化Lumen lumen new LumenAuth 三…...