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

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>
http://www.xdnf.cn/news/1501.html

相关文章:

  • 楼宇自控系统如何打破传统桎梏,为建筑管理开创全新思路
  • 京东商品详情数据 API 接口讨论学习
  • Python内置函数---bytearray()
  • 八大排序算法
  • git pull的时候报错
  • 主流开源 LLM 应用开发平台详解
  • 记录下递归
  • 0.(新专栏目录)数据分类的艺术:从理论到实践的全面指南
  • 结构型模式:适配器模式
  • java后端开发day35--集合进阶(四)--双列集合:MapHashMapTreeMap
  • leetcode 二分查找应用
  • Linux/AndroidOS中进程间的通信线程间的同步 - IPC方式简介
  • Podman Desktop:现代轻量容器管理利器(Podman与Docker)
  • 基于stm32的智能门锁系统
  • ecovadis评估注意事项?ecovadis评估过程需要多长时间
  • gem5-gpu教程05 内存建模
  • 46. 全排列
  • Prisma JSON存储扩展性
  • 1.6软考系统架构设计师:架构师的角色与能力要求 - 练习题附答案及超详细解析
  • OpenCV图像轮廓示例
  • 如何创建GitLab 合并请求?
  • 【每日八股】复习 MySQL Day2:索引
  • 【Java面试笔记:基础】10.如何保证集合是线程安全的? ConcurrentHashMap如何实现高效地线程安全?
  • 前缀和相似题共赏
  • 文件自动备份
  • 共建安全可控大模型AI底座,助力国产化升级——麒麟信安与新智惠想达成战略合作
  • 2025.04.23华为机考第一题-100分
  • Redis高频核心面试题
  • go中redis使用的简单介绍
  • 利用HandlerMethodArgumentResolver和注解解析封装用户信息和Http参数