From 8030ede9310821c0f7c098ec5d67c6eb85f7e17f Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E5=A7=8B=E4=BA=8E=E5=88=9D=E8=A7=81?= <752204717@qq.com>
Date: Fri, 24 Jan 2025 15:13:29 +0800
Subject: [PATCH] =?UTF-8?q?=E6=8F=90=E4=BA=A4?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
src/common/js/commonJS.js | 5 +++++
.../page/components/Tinymce/index.vue | 21 ++++++++++---------
src/components/page/components/table/word.vue | 8 +++----
3 files changed, 20 insertions(+), 14 deletions(-)
diff --git a/src/common/js/commonJS.js b/src/common/js/commonJS.js
index bf218d5..78e978b 100644
--- a/src/common/js/commonJS.js
+++ b/src/common/js/commonJS.js
@@ -18,6 +18,11 @@ const capitalizeFirstLetter = function (text) {
});
};
export default {
+ decodeHtml(html) {
+ var txt = document.createElement('textarea');
+ txt.innerHTML = html;
+ return txt.value;
+ },
//去掉最外层自定义的span标签
extractContentWithoutOuterSpan(cell) {
var str = ''
diff --git a/src/components/page/components/Tinymce/index.vue b/src/components/page/components/Tinymce/index.vue
index 725eb64..b820fcf 100644
--- a/src/components/page/components/Tinymce/index.vue
+++ b/src/components/page/components/Tinymce/index.vue
@@ -1,6 +1,5 @@
-
@@ -138,9 +137,7 @@ export default {
},
isEdit: {},
toolbar: {
-
- required: false,
-
+ required: false
},
menubar: {
default: 'file edit insert view format table '
@@ -269,10 +266,11 @@ export default {
this.$forceUpdate();
},
+
initTinymce() {
var _this = this;
window.tinymce.init({
- inline: false, // 使用 iframe 模式
+ inline: false, // 使用 iframe 模式
selector: `#${this.tinymceId}`,
content_css: false, // 禁用默认样式
table_resize_bars: true, // 启用拖动调整功能
@@ -357,7 +355,8 @@ export default {
statusbar: false, // 关闭底部状态栏
custom_colors: false,
color_map: ['0082AA', 'TMR Blue'],
- plugins: 'forecolor code paste table image mathType searchreplace', // 启用 forecolor 和 code 插件
+
+ // plugins: 'forecolor code paste table image mathType searchreplace raw', // 启用 forecolor 和 code 插件
end_container_on_empty_block: true,
content_css: 'default', // 加载 TinyMCE 默认样式表
mathjax: {
@@ -411,18 +410,18 @@ export default {
// callback(menuItems);
// }
// });
-
+
ed.on('init', function () {
_this.$commonJS.inTinymceButtonClass();
const editorBody = ed.getBody();
// 创建 MutationObserver 监听内容变化
const observer = new MutationObserver(() => {
const currentContent = ed.getContent();
-
if (_this.isAutomaticUpdate) {
- _this.$emit('updateChange', ed.getContent());
+
+ _this.$emit('updateChange', _this.$commonJS.decodeHtml(currentContent));
}
});
@@ -509,8 +508,10 @@ export default {
window.tinymce.get(this.tinymceId).setContent(value);
},
//获取内容
- getContent(type) {
+ async getContent(type) {
var content = window.tinymce.get(this.tinymceId).getContent();
+ content= await this.$commonJS.decodeHtml(content)
+ console.log('content at line 513:', content)
content = content.replace(//g, '').replace(/<\/strong>/g, '');
content = content.replace(//g, '').replace(/<\/em>/g, '');
content = content.replace(/ /g, ' '); // 将所有 替换为空格
diff --git a/src/components/page/components/table/word.vue b/src/components/page/components/table/word.vue
index a939247..9017334 100644
--- a/src/components/page/components/table/word.vue
+++ b/src/components/page/components/table/word.vue
@@ -723,7 +723,7 @@ export default {
table_resize_bars: true,
image_advtab: false, // 禁用图片高级选项卡(防止自动调整大小)
valid_elements: '*[*]',
-
+ entity_encoding: 'raw', // 不编码 > 等字符
plugins: 'forecolor code paste table image resize dragdrop',
menubar: false,
@@ -782,7 +782,7 @@ export default {
table_resize_bars: true,
image_advtab: false, // 禁用图片高级选项卡(防止自动调整大小)
valid_elements: '*[*]',
-
+
plugins: 'forecolor code paste table image resize ',
content_style: `${tableStyle + this.wordStyle}
@@ -870,8 +870,8 @@ export default {
image_advtab: false, // 禁用图片高级选项卡(防止自动调整大小)
plugins: 'forecolor code paste table image resize ',
content_style: `${tableStyle + this.wordStyle}
-
- `,
+
+ `,entity_encoding: 'raw', // 不编码 > 等字符
menubar: false,
toolbar: _this.isEditComment ? ['commentAdd |delete| addRow|Edit'] : ['delete| addRow|Edit'],
end_container_on_empty_block: true,