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

vue项目中使用tinymce富文本编辑器

vue使用tinymce


文章目录

  • vue使用tinymce
  • tinymce富文本编辑器
    • 在这里插入图片描述
  • 一、本文要实现
  • 二、使用步骤
    • 1.安装tinymce
    • 2.tinymce组件新建
    • 3. 在store添加商品详情的状态管理
    • 4. tinymce组件的引入


tinymce富文本编辑器

在这里插入图片描述

提示:以下是本篇文章正文内容,下面案例可供参考

一、本文要实现

在‘商品详情’tab页实现富文本编辑器的使用。
前提,tab页可以正常实现功能切换。
在这里插入图片描述

二、使用步骤

1.安装tinymce

根据自己的项目安装适合自己项目的tinymce版本。
版本有冲突安装不上的可以请教d老师应当安装什么版本。

npm install tinymce -S
  1. 在node_modules中找到skins放入public文件夹当中
  2. 下载tinymce汉化包并页放入该文件中。汉化包下载链接:汉化包下载链接
    在这里插入图片描述

2.tinymce组件新建

本文新建的tiny组件目录如下:
在这里插入图片描述

文件代码如下:

<template><div class="tinymce-editor"><editorv-model="myValue":init="init":disabled="disabled":api-key="apiKey"@onClick="onClick"@onBlur="onBlur"@onFocus="onFocus"/></div>
</template><script>
import Editor from '@tinymce/tinymce-vue'
import tinymceConfig from '@/config/tinymce'
import axios from 'axios';  export default {name: 'TinymceEditor',components: {Editor},props: {disabled: {type: Boolean,default: false},value: {type: String,default: ''}},data() {return {apiKey: '此处替换为你在tinymce中获取的秘钥',init: {language_url:'./tinymce/langs/zh.CN.js',language:'zh_CN',skin_url:'./tinymce/skins/ui/oxide',...tinymceConfig.defaultConfig,images_upload_handler: function (blobInfo, success, failure) {let formData = new FormData();formData.append('file', blobInfo.blob(), blobInfo.filename());// 使用 axios 或其他 HTTP 客户端上传图片axios.post('/api/upload', formData).then(res => {success(res.data.url);}).catch(err => {failure('图片上传失败:' + err.message);});}}}},computed: {myValue: {get() {return this.value},set(value) {this.$emit('input', value)}}},methods: {onClick(e) {this.$emit('onClick', e, this.myValue)},onBlur(e) {this.$emit('onBlur', e, this.myValue)},onFocus(e) {this.$emit('onFocus', e, this.myValue)}}
}
</script><style scoped>
.tinymce-editor {width: 100%;position: relative;z-index: 1;
}
</style> 

3. 在store添加商品详情的状态管理

export default {namespaced: true,  // 必须添加这行来启用命名空间state: {content: '', // 商品详情富文本内容},mutations: {// 修改商品详情富文本内容updateContent(state, content) {state.content = content}}

4. tinymce组件的引入

在你想要展示富文本编辑器的地方引入该组件,下面是一个引入的例子

import TinymceEditor from '@/components/common/tinymce-editor.vue'export default {name: "createGoods",components: { TinymceEditor },}

在页面中调用

 <el-tab-pane label="商品详情"><div class="p-3"><tinymce-editorv-model="content"@input="updateContent"></tinymce-editor></div></el-tab-pane>

相关文章:

  • CSS3 基础(边框效果)
  • 【Unity笔记】Unity 编辑器扩展:一键查找场景中组件引用关系(含完整源码)(组件引用查找工具实现笔记)
  • Prompt 结构化提示工程
  • React组件测试完全指南:从入门到实践
  • vue3+dhtmlx 甘特图真是案例
  • 数据一致性问题剖析与实践(二)——单机事务的一致性问题
  • 数据为基:机器学习中数值与分类数据的处理艺术及泛化实践
  • MacOS中安装Python(homebrew,pyenv)
  • Stable Baselines3 结合 gym 训练 CartPole 倒立摆
  • 【教学类-102-17】蝴蝶三色图(用最大长宽作图,填入横板和竖版共16个WORD单元格模版大小,制作大小图)
  • Java 环境配置详解(Windows、macOS、Linux)
  • 【Leetcode 每日一题】1399. 统计最大组的数目
  • 第52讲:农业AI + 区块链——迈向可信、智能、透明的未来农业
  • 大模型框架技术演进与全栈实践指南
  • 1.5软考系统架构设计师:架构师的角色与能力要求 - 超简记忆要点、知识体系全解、考点深度解析、真题训练附答案及解析
  • Elasticsearch 报错 Limit of total fields [1000] has been exceeded
  • Postman忘记密码访问官网总是无响应
  • SpringCloud 微服务复习笔记
  • 第七篇:linux之基本权限、进程管理、系统服务
  • Linux[指令与权限]
  • 上海充电桩调研:须全盘考量、分步实现车网互动规模化
  • 暴雨及强对流天气黄色预警已发布!南方进入本轮降雨最强时段
  • 中方对原产印度进口氯氰菊酯实施反倾销措施,商务部回应
  • 象屿集团:对去化压力大、市场有效需求不足区域坚决暂停投资,打造多元上市路径
  • 云南昆磨高速发生交通事故致3辆车起火,昆明消防:幸无人员伤亡
  • 世界哮喘日|专家:哮喘无法根治,“临床治愈”已成治疗新目标