页面效果展示
![在这里插入图片描述](https://img-blog.csdnimg.cn/2021030517450388.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NTg0OTExMg==,size_16,color_FFFFFF,t_70)
页面组件应用
<Tinymce
ref="editor"
v-model="goodsForm.goods.description"
:height="300"
/>
组件结构
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210305174549435.png)
index.vue文件
<template>
<div :class="{fullscreen:fullscreen}" :style="{width:containerWidth}" class="tinymce-container">
<textarea :id="tinymceId" class="tinymce-textarea" />
</div>
</template>
<script>
import plugins from './plugins';
import toolbar from './toolbar';
import load from './dynamicLoadScript';
import {
uploadFile } from '@/api/goodsManage';
const tinymceCDN = 'https://cdn.jsdelivr.net/npm/tinymce-all-in-one@4.9.3/tinymce.min.js';
const imgSrc = '/community/manage/cms/dowloadImage?filePath=';
export default {
name: 'Tinymce',
components: {
},
props: {
id: {
type: String,
default: function() {
return 'vue-tinymce-' + +new Date() + ((Math.random() * 1000).toFixed(0) + '');
}
},
value: {
type: String,
default: ''
},
toolbar: {
type: Array,
required: false,
default() {
return [];
}
},
menubar: {
type: String,
default: 'file edit insert view format table'
},
height: {
type: [Number, String],
required: false,
default: 360
},
width: {
type: [Number, String],
required: false,
default: 'auto'
}
},
data() {
return {
hasChange: false,
hasInit: false,
tinymceId: this.id,
fullscreen: false,
languageTypeList: {
'en': 'en',
'zh': 'zh_CN',
'es': 'es_MX',