Vue3使用wangEditor

这篇具有很好参考价值的文章主要介绍了Vue3使用wangEditor。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

那么这一节我们在编辑公司信息的弹窗中使用富文本插件wangEditor官网

案例内效果:
Vue3使用wangEditor,从0到1:通用后台管理系统,前端,vue3,前端小王hs,vue,javascript

安装wangEditor

npm install @wangeditor/editor --save
npm install @wangeditor/editor-for-vue@next --save

Vue3使用wangEditor,从0到1:通用后台管理系统,前端,vue3,前端小王hs,vue,javascript

在弹窗中引入wangEditor结构

文档部分:
Vue3使用wangEditor,从0到1:通用后台管理系统,前端,vue3,前端小王hs,vue,javascript

代码部分:

<template>
	<el-dialog v-model="state.dialogFormVisible" :title="title" width="600px" destroy-on-close>
		<div style="border: 1px solid #ccc">
		<!-- wangEditor结构 --> 
			<Toolbar style="border-bottom: 1px solid #ccc" :editor="editorRef" :defaultConfig="toolbarConfig"
				:mode="mode" />
			<Editor style="height: 500px; overflow-y: hidden;" v-model="valueHtml" :defaultConfig="editorConfig"
				:mode="mode" @onCreated="handleCreated" />
		</div>
		<template #footer>
			<span class="dialog-footer">
				<el-button @click="cancel">取消</el-button>
				<el-button type="primary" @click="yes">
					确认
				</el-button>
			</span>
		</template>
	</el-dialog>
</template>

api接口部分

后端
需要注意的是,在35集《完成轮播图以及公司介绍接口》中
我们的参数是set_value,类型是varchar,但文案我们应该使用text类型
所以我们新建一个字段set_text,用来存放我们的公司介绍等信息
同时,我们新增了一个接口,通过mysql like语法获取所有的信息

// 编辑公司介绍的接口 参数 set_text set_name
exports.changeCompanyIntroduce = (req, res) => {
	const sql = 'update setting set set_text = ? where set_name = ? '
	db.query(sql, [req.body.set_text, req.body.set_name], (err, result) => {
		if (err) return res.cc(err)
		res.send({
			status: 0,
			message: '修改公司介绍成功'
		})
	})
}

// 获取公司介绍 参数 set_name
exports.getCompanyIntroduce = (req, res) => {
	const sql = 'select * from setting where set_name = ?'
	db.query(sql, req.body.set_name,(err, result) => {
		if (err) return res.cc(err)
		res.send(result[0].set_value)
	})
}

// 新增接口 获取所有的公司介绍 用于首页
exports.getAllCompanyIntroduce = (req, res) => {
	// res.send(req.body.set_name)
	const sql = "select * from setting where set_name like '公司%' "
	db.query(sql, (err, result) => {
		if (err) return res.cc(err)
		res.send(result)
	})
}

前端\

// 修改公司介绍
export const changeCompanyIntroduce= (set_text,set_name) => {
	return instance({
		url: '/set/changeCompanyIntroduce',
		method: 'POST',
		data:{
			set_text,
			set_name
		}
	})
}

// 获取公司介绍/组织结构/公司战略/高层信息
export const getCompanyIntroduce= set_name => {
	return instance({
		url: '/set/getCompanyIntroduce',
		method: 'POST',
		data:{
			set_name
		}
	})
}

// 获取所有介绍信息
export const getAllCompanyIntroduce = () => {
	return instance({
		url: '/set/getAllCompanyIntroduce ',
		method: 'POST',
	})
}

editor组件script部分

<script lang="ts" setup>
	import '@wangeditor/editor/dist/css/style.css' // 引入 css
	import {
		onBeforeUnmount, ref, shallowRef,
		reactive
	} from 'vue'
	import { Editor, Toolbar } from '@wangeditor/editor-for-vue'
	import { bus } from "@/utils/mitt.js"
	import {
		ElMessage
	} from "element-plus"
	// changecompanyintro
	import { changeCompanyIntroduce, getCompanyIntroduce} from '@/api/set'
	const title = ref()
	bus.on("editorTitle", async (id : number) => {
		if (id == 1) {
			title.value = '编辑公司介绍'
			valueHtml.value = await getCompanyIntroduce('公司介绍')
		}
		if (id == 2) {
			title.value = '编辑公司架构'
			valueHtml.value = await getCompanyIntroduce('公司架构')
		}
		if (id == 3) {
			title.value = '编辑公司战略'
			valueHtml.value = await getCompanyIntroduce('公司战略')
		}
		if (id == 4) {
			title.value = '编辑高层介绍'
			valueHtml.value = await getCompanyIntroduce('高层介绍')
		}
	})
	// 编辑器实例,必须用 shallowRef
	const editorRef = shallowRef()
	// mode
	const mode = ref('default')
	// 内容 HTML
	const valueHtml = ref()
	const toolbarConfig = {
		excludeKeys: []
	}
	const editorConfig = {
		placeholder: '请输入内容...',
		MENU_CONF: {
			uploadImage: {
				//上传图片配置
				server: 'http://127.0.0.1:3007/set/uploadCompanyPicture', //上传接口地址
				fieldName: 'file', //上传文件名
				methods: 'post',
				metaWithUrl: true, // 参数拼接到 url 上
				// 单个文件上传成功之后
				// onSuccess(file, res) {
				// },
				// 自定义插入图片
				customInsert(res, insertFn) {
					insertFn(res.url)
				},
			},
		}
	}
	// 上传图片,修改 uploadImage 菜单配置
	// 需要注意的是,如何去修改参数?
	toolbarConfig.excludeKeys = [
		'blockquote',
		'bgColor',
		'color',
		'group-more-style',
		'fontFamily',
		'bulletedList',
		'numberedList',
		'lineHeight',
		'todo',
		'emotion',
		'insertLink',
		'group-video',
		'insertTable',
		'codeBlock',
		'divider',
		'fullScreen',
		// 'group-image',

		// 排除菜单组,写菜单组 key 的值即可
	]
	// 点击确认 修改文案
	const yes = async () => {
		// 去除 编辑两个字
		console.log(title.value.slice(-4))
		// 两个参数 set_text set_name
		const res = await changeCompanyIntroduce(valueHtml.value,title.value.slice(-4))
		console.log(res)
		if (res.status == 0) {
			ElMessage({
				message: '修改公司介绍成功!',
				type: 'success',
			})
			state.dialogFormVisible = false
		} else {
			state.dialogFormVisible = false
			ElMessage.error('修改公司介绍失败,请检查网络是否通畅!')
		}
	}


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

	const handleCreated = (editor : any) => {
		editorRef.value = editor // 记录 editor 实例,重要!
	}
	const state = reactive({
		dialogFormVisible: false,
	});

	// 取消删除
	const cancel = () => {
		ElMessage.error("取消赋权!");
		state.dialogFormVisible = false;
	};

	// 暴露open方法
	const open = () => {
		state.dialogFormVisible = true;
	};
	defineExpose({
		open,
	});

	// 取消订阅/监听
	onBeforeUnmount(() => {
		bus.all.clear()
	})

怎么去修改富文本的编辑器?

①找到对应的data-menu-key
Vue3使用wangEditor,从0到1:通用后台管理系统,前端,vue3,前端小王hs,vue,javascript
②放入toolbarConfig.excludeKeys
Vue3使用wangEditor,从0到1:通用后台管理系统,前端,vue3,前端小王hs,vue,javascript文章来源地址https://www.toymoban.com/news/detail-640018.html

到了这里,关于Vue3使用wangEditor的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Vue3 代码块高亮显示并可使用富文本编辑器编辑(highlight.js + wangEditor)

    在Vue项目中实现以下功能:   功能1. 在页面中显示代码,并将其中的高亮显示。   功能2. 允许对代码块进行编辑,编辑时代码也高亮显示。   功能3. 可在编辑器中添加多个代码块,动态渲染代码高亮。   Step1: 安装所需插件(本文使用npm安装,若需

    2023年04月21日
    浏览(48)
  • Vue组件封装:基于Vue3+wangeditor富文本组件二次封装

    1.简介         开源 Web 富文本编辑器,开箱即用,配置简单。一个产品的价值,就在于解决用户的问题,提高效率、降低成本、增加稳定性和扩展性。wangEditor 不是为了做而做,也不是单纯的模仿谁,而是经过上述问题分析之后,给出一个系统的解决方案。旨在真正去解决用

    2024年04月08日
    浏览(47)
  • vue3+wangEditor5/vue-quill自定义上传音频+视频

    这是另一个常用的富文本编辑器,它提供了许多可定制的功能和事件,并且也有一2个官方的 Vue 3 组件 wangEditor5用在Vue3中自定义扩展音频、视频、图片菜单;并扩展音频元素节点,保证音频节点的插入、读取、回写功能正常;支持动态修改尺寸 UEditor是由百度web前端研发部开

    2024年02月12日
    浏览(49)
  • wangEditor5在Vue3中的自定义图片+视频+音频菜单

    本文适用于wangEditor5用在Vue3中自定义扩展音频、视频、图片菜单;并扩展音频元素节点,保证音频节点的插入、读取、回写功能正常;支持动态修改尺寸。适用于初学者。 ButtonMenu:自定义扩展新功能 | wangEditor ModalMenu:自定义扩展新功能 | wangEditor 注册菜单到wangEditor:定义新

    2024年02月06日
    浏览(46)
  • uniapp富文本编辑-editor-vue2-vue3-wangeditor

    不管vue2还是vue3,都推荐官方的editor组件, 官方手册 https://uniapp.dcloud.net.cn/component/editor.html 除了“ 微信小程序 ”,其他小程序想要使用editor组件实现富文本编辑,很难 ​​​​​​​ 第三方组件wangeditor在vue2,vue3在H5表现都很好,但是app环境下直接报错 reportJSException excep

    2024年03月10日
    浏览(54)
  • Vue3 如何优雅的使用 createApp 自定义通用Dialog

    最近在做一个项目的技术栈升级,从Vue2升级至Vue3,Vue2中有一个通用的全局 Dialog 方法,是通过 Vue.extend 来实现的,具体请看下方的 Vue2 代码: 一、main.js 中定义通用方法 二、定义通用 DialogLayout.vue 三、 定义需要通过 Dialog 打开的具体页面 四、具体使用 五、如何用 Vue3 的语

    2024年01月18日
    浏览(39)
  • [Vue3] Wangeditor富文本实现将粘贴中包含的图片自动上传后台,并替换src

    前言 吐槽: 还以为他们富文本把文字写好, 在一个个上传图片, 组成一片文章. 那就没有办法了, 只能修改下代码增加下自动上传图片功能. 后来写到一半才发现html 有个属性好像可以让跨域的图片 显示出来. meta name=\\\"referrer\\\" content=\\\"no-referrer\\\" / 以为这样就可以不用写了, 但是老大

    2024年02月04日
    浏览(49)
  • vue使用wangEditor

    导入组件 引用 npm run dev时发现报了如下错误 原因是css语言没有安装依赖 我用的是sass( 重新启动,再次报错 Node Sass 7.0.1 版与 ^4.0.0 不兼容; 解决方案: 1、npm uninstall node-sass; 2、npm i -D sass; 3、npm run dev; 项目正常启动。 补充如果Vue wangEditor报错 Cannot set property ‘uploadImgSho

    2024年02月16日
    浏览(32)
  • 【mars3d】基于vue3的marsgis通用UI库 mars-ui 的使用

    一名脑残程序员的mars-ui心酸使用记录。 通过mars3d的官网我们可以看到,有配套的UI库使用,那么我们如何使用到自己的项目中呢,跟着文章一步一步来吧! 1、引入UI库 ① 安装 ant-design-vue ② 下载基于vue开发的mars3d的源码,直通车: git clone https://gitee.com/marsgis/mars3d-vue-project.gi

    2024年02月09日
    浏览(98)
  • vue--使用wangEditor富文本

    wangEditor是一个基于jQuery的简单、开源的富文本编辑器,而Vue.js则是一种流行的JavaScript框架。将wangEditor与Vue.js结合使用,可以方便地在Vue应用中实现富文本编辑功能。本文将介绍如何在Vue中使用wangEditor,包括安装和配置wangEditor、在Vue组件中使用wangEditor以及相关的代码说明。

    2024年02月13日
    浏览(32)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包