Merge pull request #8245 from dataease/pr@dev-v2@fix_richtext-debug3

fix(仪表板): 修复因与xpack冲突导致富文本组件不可用问题
This commit is contained in:
王嘉豪 2024-02-29 16:02:51 +08:00 committed by GitHub
commit bbb01fc8b0
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -0,0 +1,105 @@
<template>
<div class="de-tinymce-container ed-textarea__inner">
<editor class="de-tinymce-content" v-model="myValue" :id="tinymceId" :init="init" />
</div>
</template>
<script lang="ts" setup>
import { ref, toRefs, watch } from 'vue'
import { formatDataEaseBi } from '@/utils/url'
import tinymce from 'tinymce/tinymce' // tinymcehidden
import Editor from '@tinymce/tinymce-vue' //
import 'tinymce/themes/silver/theme' //
import 'tinymce/icons/default' // icon
//
import 'tinymce/plugins/advlist' //
import 'tinymce/plugins/autolink' //
import 'tinymce/plugins/link' //
import 'tinymce/plugins/image' //
import 'tinymce/plugins/lists' //
import 'tinymce/plugins/charmap' //
import 'tinymce/plugins/media' //
import 'tinymce/plugins/wordcount' //
import 'tinymce/plugins/table' //
import 'tinymce/plugins/contextmenu' // contextmenu
import 'tinymce/plugins/directionality'
import 'tinymce/plugins/nonbreaking'
import 'tinymce/plugins/pagebreak'
const props = defineProps({
modelValue: String
})
const myValue = ref()
const { modelValue } = toRefs(props)
myValue.value = modelValue
watch(
() => props.modelValue,
newValue => {
myValue.value = newValue
}
)
const emits = defineEmits(['update:modelValue', 'change'])
watch(
() => myValue.value,
newValue => {
emits('update:modelValue', newValue)
emits('change', newValue)
}
)
const tinymceId = 'tinymce-view-pf'
const init = ref({
selector: '#' + tinymceId,
toolbar_items_size: 'small',
language_url: formatDataEaseBi('/tinymce-dataease-private/langs/zh_CN.js'), // publicstatic
language: 'zh_CN',
skin_url: formatDataEaseBi('/tinymce-dataease-private/skins/ui/oxide'), //
content_css: formatDataEaseBi('/tinymce-dataease-private/skins/content/default/content.css'),
plugins:
'advlist autolink link image lists charmap media wordcount table contextmenu directionality pagebreak', //
//
toolbar:
'undo redo |fontselect fontsizeselect |forecolor backcolor bold italic |underline strikethrough link| formatselect |' +
'alignleft aligncenter alignright | bullist numlist |' +
' blockquote subscript superscript removeformat | table image media | fullscreen ' +
'| bdmap indent2em lineheight formatpainter axupimgs',
toolbar_location: '/',
font_formats:
'阿里巴巴普惠体=阿里巴巴普惠体 3.0 55 Regular L3;微软雅黑=Microsoft YaHei;宋体=SimSun;黑体=SimHei;仿宋=FangSong;华文黑体=STHeiti;华文楷体=STKaiti;华文宋体=STSong;华文仿宋=STFangsong;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',
fontsize_formats: '12px 14px 16px 18px 20px 22px 24px 28px 32px 36px 48px 56px 72px', //
menubar: false,
placeholder: '',
outer_placeholder: '双击输入文字',
inline: true,
branding: false
})
tinymce.init({})
</script>
<style lang="less" scoped>
.de-tinymce-container {
--ed-input-text-color: var(--ed-text-color-regular);
--ed-input-border: var(--ed-border);
--ed-input-hover-border: var(--ed-border-color-hover);
--ed-input-focus-border: var(--ed-color-primary);
--ed-input-transparent-border: 0 0 0 1px transparent inset;
--ed-input-border-color: var(--ed-border-color);
--ed-input-border-radius: var(--ed-border-radius-base);
--ed-input-bg-color: var(--ed-fill-color-blank);
--ed-input-icon-color: var(--ed-text-color-placeholder);
--ed-input-placeholder-color: var(--ed-text-color-placeholder);
--ed-input-hover-border-color: var(--ed-border-color-hover);
--ed-input-clear-hover-color: var(--ed-text-color-secondary);
--ed-input-focus-border-color: var(--ed-color-primary);
--ed-input-width: 100%;
width: 100%;
height: 80px;
.de-tinymce-content {
width: 100%;
height: 100%;
overflow-y: auto;
outline: none !important;
border: none !important;
}
}
</style>