安装

npm install @packy-tang/vue-tinymce

下载tinymce源代码,我这里用的是7.7的已经将中文翻译放进去了,我试过8以后要提供key
资源下载地址 https://download.csdn.net/download/frankcheng5143/91941499

tinymce各个版本的下载地址
https://github.com/tinymce/tinymce-dist/tags
tinymce语言包下载地址
https://www.tiny.cloud/get-tiny/language-packages/

将下载的源代码解压到public目录下
在这里插入图片描述
main.js引入tinymce

// 引入富文本编辑器tinymce
import VueTinymce from "@packy-tang/vue-tinymce";
Vue.use(VueTinymce);

接下来配置tinymce富文本组件
定义组件TinymceEditor
在这里插入图片描述

<template><div class="TinymceEditor" :style="{ 'width': `${width}` }"><vue-tinymce v-model="currentValue" :setting="mini ? miniSetting : setting" /></div>
</template><script>
import { upload } from "@/utils/s3upload";export default {name: 'TinymceEditor',props: {content: {type: String,require: true},inline: {type: Boolean,default: false},mini: {type: Boolean,default: false},width: {type: String,default: 'auto'},placeholder: {type: String,default: '请输入内容'}},data() {return {miniSetting: {menubar: false,height: 100,statusbar: false,autoresize_bottom_margin: 1,placeholder: this.placeholder,paste_data_images: false,toolbar: ['fontsizeinput bold italic forecolor backcolor | numlist bullist  alignleft aligncenter alignright '],plugins: 'lists autoresize',language: 'zh_CN'},setting: {placeholder: this.placeholder,height: 300,menubar: false,inline: this.inline,paste_data_images: true,resize: true,elementpath: false,highlight_on_focus: true,content_style: 'img {max-width:100%;height:auto}',promotion: false, // 更新按钮toolbar: ['undo redo removeformat | bold italic underline strikethrough superscript subscript backcolor forecolor | numlist bullist | blocks | searchreplace fullscreen','fontfamily fontsize fontsizeselect fontsizeinput | alignleft aligncenter alignright alignjustify lineheight outdent indent | link unlink image table | preview print code'],plugins: 'lists link anchor code wordcount image table visualchars visualblocks searchreplace preview pagebreak nonbreaking media insertdatetime fullscreen directionality autosave autolink advlist',font_size_formats: '10px 12px 14px 16px 18px 20px 22px 24px 26px 28px 36px 42px 48px 72px',// 配置工具栏时添加的 fontsizeinput 工具可以展示一个可输入字号的组件,默认单位是pt,现改为pxfont_size_input_default_unit: 'px',font_family_formats: "微软雅黑='微软雅黑';宋体='宋体';黑体='黑体';仿宋='仿宋';楷体='楷体';隶书='隶书';幼圆='幼圆';Andale Mono=andale mono,times;Arial=arial,helvetica,sans-serif;Arial Black=arial black,avant garde;Book Antiqua=book antiqua,palatino;Comic Sans MS=comic sans ms,sans-serif;Courier New=courier new,courier;Georgia=georgia,palatino;Helvetica=helvetica;Impact=impact,chicago;Symbol=symbol;Tahoma=tahoma,arial,helvetica,sans-serif;Terminal=terminal,monaco;Times New Roman=times new roman,times;Trebuchet MS=trebuchet ms,geneva;Verdana=verdana,geneva;Webdings=webdings;Wingdings=wingdings",images_upload_handler: (blobInfo, progress) => new Promise((resolve, reject) => {upload(blobInfo.blob(), ({ loaded, total }) => {console.log('上传回调,', loaded, total)}).then(result => {console.log('上传结果', result)resolve(result.url)})}),language: 'zh_CN' // 本地化设置},currentValue: ''}},watch: {content: {handler(val) {if (val !== this.currentValue) {this.currentValue = val === null ? '' : val}},immediate: true},currentValue(value) {this.$emit('change', value)}}
}
</script><style>
.tox-statusbar__branding {display: none;
}.tox-tinymce-aux {z-index: 2100 !important;
}
</style>
<style lang="scss" scoped></style>

其中import { upload } from "@/utils/s3upload";是我的图片上传

这里面定义了两种模式,精简模式和全部模式

精简模式

在这里插入图片描述
全部模式
在这里插入图片描述
其它页面引用

<template><div><TinymceEditor :content="ruleForm.description" placeholder="请输入填写说明" @change="handleEditorChange"></TinymceEditor></div>
</template>
<script>
import TinymceEditor from '@/components/TinymceEditor/index.vue'
components: {TinymceEditor
}, 
methods: {handleEditorChange(value) {console.log(value)},
}
</script>

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

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

反函数求导:原理、公式与应用详解

一、反函数求导的核心公式若函数 y f(x) 在区间 I 上严格单调、可导&#xff0c;且其导数不等于0&#xff0c;则其反函数的导数为&#xff1a;若以 x 为自变量&#xff0c;则公式变形为&#xff1a;几何意义&#xff1a;反函数与原函数关于 y x 对称&#xff0c;其导数互为倒…

详解 OpenCV 形态学操作:从基础到实战(腐蚀、膨胀、开运算、闭运算、梯度、顶帽与黑帽)

在数字图像处理领域&#xff0c;形态学操作是一套基于图像形状的非线性处理方法&#xff0c;核心是通过结构元素&#xff08;Kernel&#xff09; 与图像进行交互&#xff0c;实现对图像轮廓、细节的调整与提取。OpenCV 作为主流的计算机视觉库&#xff0c;提供了丰富的形态学操…

css的基本知识

一.CSS 选择器1. 属性选择器属性选择器允许根据元素的属性及属性值来选择元素&#xff1a;2. 伪类选择器进阶除了常见的:hover、:active&#xff0c;这些伪类也非常实用&#xff1a;3. 伪元素的妙用伪元素用于创建不在 DOM 中的虚拟元素&#xff0c;常用的有&#xff1a;二.盒模…

概率论第六讲—数理统计

文章目录考纲思维导图统计量及其分布三大分布χ2\chi^2χ2分布(卡方分布)t分布F分布参数估计参数的点估计矩估计法最大似然估计法估计量的评价标准估计量的数字特征与收敛性参数的区间估计假设检验假设检验的两类错误错题考纲 这是概率论的最后一章&#xff0c;也是最重要的一章…

vLLM - EngineCoreClient

EngineCoreClient是与EngineCore进行交互的基类&#xff1a; API定义了同步和异步两个版本。 class EngineCoreClient(ABC):abstractmethoddef shutdown(self):...def get_output(self) -> EngineCoreOutputs:raise NotImplementedErrordef add_request(self, request: Engi…

几种排序算法(2)

几种排序算法&#xff08;2&#xff09;1冒泡排序2.快速排序2.1hoare版本找基准值2.2lomuto前后指针3.非递归版本快速排序4.递归排序5.排序算法复杂度及稳定性分析我们已经详解了插入排序和选择排序&#xff0c;不了解的可以翻看我上一篇博客。1冒泡排序 void BubbleSort(int*…

Excel甘特图

1. 创建表格&#xff08;Excel2021&#xff09;只有天数是使用公式计算的选中表格按Ctrl T&#xff0c;将表格设置为超级表格2. 创建堆积条形图3. 添加设置图例项3.1 添加开始时间3.2 修改图例项顺序 3.3 编辑轴标签3.4 Y轴逆序类别 3.5 添加开始时间数据标签选择 所用橘色图&…

基于OpenCV的答题卡自动识别与评分系统

引言 在教育考试场景中&#xff0c;手动批改答题卡效率低下且容易出错。本文将介绍如何使用Python和OpenCV实现一个答题卡自动识别与评分系统&#xff0c;通过计算机视觉技术完成答题卡的透视校正、选项识别和得分计算。该系统可广泛应用于学校考试、培训测评等场景&#xff0c…

LLaMA-MoE v2:基于后训练混合专家模型的稀疏性探索与技术突破

重新定义大型语言模型的效率边界在人工智能飞速发展的今天&#xff0c;大型语言模型&#xff08;LLMs&#xff09;已成为推动技术进步的核心力量。然而&#xff0c;模型规模的不断扩大带来了惊人的计算成本和高昂的部署门槛&#xff0c;使得众多研究机构和中小型企业难以承担。…

R geo 然后读取数据的时候 make.names(vnames, unique = TRUE): invalid multibyte string 9

setwd("K:/download/geo") # 替换为实际工作目录 # 修改get_geo_data_local函数中的读取部分 #file_path <- "K:/download/geo/raw_data/GEO/GSE32967_series_matrix_fixed.txt" file_path <- "K:/download/geo/data/GSE32967_series_matrix.t…

深入理解 Spring @Async 注解:原理、实现与实践

在现代 Java 应用开发中&#xff0c;异步编程是提升系统吞吐量和响应速度的关键技术之一。Spring 框架提供的Async注解极大简化了异步方法的实现&#xff0c;让开发者无需手动管理线程即可轻松实现异步操作。本文将从底层原理到实际应用&#xff0c;全面解析Async注解的工作机制…

linux C 语言开发 (七) 文件 IO 和标准 IO

文章的目的为了记录使用C语言进行linux 开发学习的经历。开发流程和要点有些记忆模糊&#xff0c;赶紧记录&#xff0c;防止忘记。 相关链接&#xff1a; linux C 语言开发 (一) Window下用gcc编译和gdb调试 linux C 语言开发 (二) VsCode远程开发 linux linux C 语言开发 (…

maven , mvn 运行 项目

提示&#xff1a;环境搭建 文章目录前言一、使用步骤1. 以构建含有 pom.xml 的项目2.mvn 运行具体项目3.mvn 指定模块>运行具体项目前言 提示&#xff1a;版本 spirngboot 3.2 jdk 21 mvn 3.9 提示&#xff1a;以下是本篇文章正文内容&#xff0c;下面案例可供参考 一、使…

JVM垃圾回收的时机是什么时候(深入理解 JVM 垃圾回收时机:什么时候会触发 GC?)

深入理解 JVM 垃圾回收时机&#xff1a;什么时候会触发 GC&#xff1f;在 Java 开发中&#xff0c;我们常听说 “JVM 会自动进行垃圾回收”&#xff0c;但很少有人能说清&#xff1a;GC 究竟在什么情况下会被触发&#xff1f;是到固定时间就执行&#xff1f;还是内存满了才会启…

在Vue项目中Axios发起请求时的小知识

在Vue项目中Axios发起请求时的小知识 在Vue项目开发中&#xff0c;Axios作为基于Promise的HTTP客户端&#xff0c;凭借其简洁的API设计和强大的功能&#xff08;如请求/响应拦截、自动JSON转换、取消请求等&#xff09;&#xff0c;已成为前端与后端通信的主流选择。本文将深入…

GeoHash分级索引技术

GeoHash分级索引技术是一种将二维地理坐标转换为一维字符串的空间索引方法,其核心是通过分级网格划分和前缀编码实现高效的空间数据检索。以下从技术原理、实现细节到工程优化展开详细解析: 一、编码原理与分级结构 1. 经纬度二进制化 GeoHash通过递归二分地球表面生成网格…

HTML HTML基础(4)

1.列表 (1).有序列表 概念&#xff1a;有顺序或侧重顺序的列表。 <h2>要把大象放冰箱总共分几步</h2> <ol> <li>把冰箱门打开</li> <li>把大象放进去</li> <li>把冰箱门关上</li> </ol> (2).无序列表 概念&a…

MySQL中的回表操作

在数据库查询&#xff08;尤其是基于 B树索引 的关系型数据库&#xff0c;如MySQL、PostgreSQL&#xff09;中&#xff0c;“回表”是一个核心且高频出现的概念&#xff0c;直接影响查询性能。要理解回表&#xff0c;需先理清索引结构与数据存储的关联&#xff0c;再拆解其发生…

QT子线程与GUI线程安全交互

在Qt应用程序开发中&#xff0c;涉及到多线程处理时&#xff0c;如何安全地从子线程更新UI界面是一个常见的问题。Qt的UI界面并不是线程安全的&#xff0c;意味着你不能直接在子线程中操作UI组件&#xff08;比如按钮、标签等&#xff09;。如果不遵循线程安全的规则&#xff0…

RL【10-2】:Actor - Critic

系列文章目录 Fundamental Tools RL【1】&#xff1a;Basic Concepts RL【2】&#xff1a;Bellman Equation RL【3】&#xff1a;Bellman Optimality Equation Algorithm RL【4】&#xff1a;Value Iteration and Policy Iteration RL【5】&#xff1a;Monte Carlo Learnin…