From 4345926d07729480b0c42ea2a420a29200a1f339 Mon Sep 17 00:00:00 2001 From: lion <120344285@qq.com> Date: Fri, 29 Nov 2024 15:43:41 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/XyTinymce/index.vue | 16 +- src/components/wangEditor/index.vue | 30 +- src/components/wangEditor/register.js | 129 +++++---- src/mixin/product.js | 4 +- src/styles/iconfont.css | 124 ++++---- src/styles/iconfont.ttf | Bin 8592 -> 10712 bytes src/styles/iconfont.woff | Bin 4732 -> 6724 bytes src/styles/iconfont.woff2 | Bin 3932 -> 5620 bytes src/utils/common.js | 13 + src/views/application/components/addNotes.vue | 11 +- .../product/components/addApplication.vue | 3 +- src/views/product/components/addCategory.vue | 46 ++- src/views/product/components/addPhase.vue | 264 ++++++++++-------- src/views/product/components/addProduct.vue | 76 +++-- src/views/product/index.vue | 100 ++++--- src/views/resource/components/addFaq.vue | 4 +- src/views/resource/components/addFiles.vue | 3 +- src/views/resource/components/addWebinar.vue | 4 +- vue.config.js | 2 +- 19 files changed, 502 insertions(+), 327 deletions(-) diff --git a/src/components/XyTinymce/index.vue b/src/components/XyTinymce/index.vue index eb2dda5..1d4c894 100644 --- a/src/components/XyTinymce/index.vue +++ b/src/components/XyTinymce/index.vue @@ -49,12 +49,14 @@ default: false, }, plugins: { - type: [String, Array], - default: "code image axupimgs paste preview searchreplace autolink directionality visualblocks visualchars fullscreen template codesample table charmap hr pagebreak nonbreaking anchor insertdatetime advlist lists wordcount imagetools textpattern help emoticons autosave ", + type: [String, Array], + // axupimgs 多图上传 + default: "code image paste preview searchreplace autolink directionality visualblocks visualchars fullscreen template codesample table charmap hr pagebreak nonbreaking anchor insertdatetime advlist lists wordcount imagetools textpattern help emoticons autosave ", }, toolbar: { - type: [String, Array], - default: ` undo redo restoredraft | code | image | axupimgs | imagetools | assignment | cut copy paste pastetext | forecolor backcolor bold italic underline strikethrough anchor | alignleft aligncenter alignright alignjustify outdent indent | + type: [String, Array], + // axupimgs 多图上传 + default: ` undo redo restoredraft | code | image | imagetools | assignment | cut copy paste pastetext | forecolor backcolor bold italic underline strikethrough anchor | alignleft aligncenter alignright alignjustify outdent indent | styleselect formatselect fontselect fontsizeselect | table charmap emoticons hr pagebreak | bullist numlist | blockquote subscript superscript removeformat | insertdatetime print preview | fullscreen | bdmap indent2em lineheight formatpainter`, }, @@ -69,8 +71,8 @@ showImg: false, imgUploadUrl: `${process.env.VUE_APP_UPLOAD_API}`, init: { - language_url: "/public/tinymce/langs/zh_CN.js", // 这里需要单独处理 - language: "zh_CN", + // language_url: "/public/tinymce/langs/zh_CN.js", // 这里需要单独处理 + // language: "zh_CN", height: this.height, plugins: this.plugins, fontsize_formats: "8px 10px 12px 14px 16px 18px 24px 28px 36px", @@ -92,7 +94,7 @@ let file = blobInfo.blob(); const isLt2M = file.size / 1024 < 2048; if (!isLt2M) { - failure("上传失败,图片不可超过2M!"); + failure("Upload failed, the image cannot exceed 2M"); return false; } let formdate = new FormData(); diff --git a/src/components/wangEditor/index.vue b/src/components/wangEditor/index.vue index 30d80f4..bed889a 100644 --- a/src/components/wangEditor/index.vue +++ b/src/components/wangEditor/index.vue @@ -108,17 +108,27 @@ methods: { // 源码模式点击事件 clickSource(active, editor) { - let value = editor.getHtml(); + let value = this.editor.getHtml(); + console.log("getHtml",value) // 先将编辑器内容清空 this.editor.clear(); if (active) { - // 将html代码转换为html代码块 dangerouslyInsertHtml是插入html不是重置html - this.editor.dangerouslyInsertHtml(parseEditorCode(value)); + // 将html代码转换为html代码块 dangerouslyInsertHtml是插入html不是重置html + + value = parseEditorCode(value) + console.log("active",value) + this.editor.dangerouslyInsertHtml(value); + this.html = value + } else { - // 将html代码块转换为editor的html - this.editor.dangerouslyInsertHtml(parseCodeEditor(value)); - // console.log("parseCodeEditor(value)", parseCodeEditor(value)) - value = parseCodeEditor(value); + // 将html代码块转换为editor的html + + value = parseCodeEditor(value) + console.log("else", value) + this.editor.dangerouslyInsertHtml(value); + // value = parseCodeEditor(value); + console.log("nowHtml",parseCodeEditor(this.editor.getHtml())) + this.html = value } }, onCreated(editor) { @@ -133,8 +143,10 @@ onChange() { const text = this.editor.getText(); // 计算当前输入了多少文字 - this.useLen = (text || '').length; - // 每次富文本内容改变,触发change事件 + this.useLen = (text || '').length; + let value = this.editor.getHtml(); + // 每次富文本内容改变,触发change事件 + console.log("this.html",value) this.$emit('change', this.html); }, diff --git a/src/components/wangEditor/register.js b/src/components/wangEditor/register.js index 87ffa9c..1035533 100644 --- a/src/components/wangEditor/register.js +++ b/src/components/wangEditor/register.js @@ -1,65 +1,72 @@ -import SourceMenu from "./sourceMenu.js"; -import prettier from 'prettier/standalone'; -import parserHtml from 'prettier/parser-html'; - -/** - * 在编辑器中得到的html源码是没有格式的html字符串 - * 所以需要格式化展示代码 - * 格式化html代码 - */ -export const parserHtmlCode = (code) => { - try { - return prettier.format(code, { - parser: 'html', - plugins: [parserHtml], - // 格式化的标签不换行 例如span标签等>格式化后会换行 - htmlWhitespaceSensitivity: 'ignore' - }); - } catch (e) { - console.error('格式化代码错误', e); - return code; - } -} - -/** - * 将编辑器html转换为代码块内容 - */ -export const parseEditorCode = (html) => { - const code = html - .replace(/ /g, '') - .replace(new RegExp('
${textCode}`;
-}
-/**
- * 将代码块转换为编辑器html
- */
-export const parseCodeEditor = (preCode) => {
- // 转码
- let data = encodeURI(preCode);
- // 将 转换为空格
- data = data.replace(/%C2%A0/g, '%20');
- // 解码
- data = decodeURI(data);
- const htmlStr = data
- .replace('', '')
- .replace('', '')
- .replace(/</ig, "<")
+ console.log("textcode",textCode)
+ return `${textCode}`;
+ // return `${textCode}`;
+}
+
+/**
+ * 将代码块转换为编辑器html
+ */
+export const parseCodeEditor = (preCode) => {
+ // 转码
+ let data = encodeURI(preCode);
+ // 将 转换为空格
+ data = data.replace(/%C2%A0/g, '%20');
+ // 解码
+ data = decodeURI(data);
+ const htmlStr = data
+ .replace('', '')
+ .replace('', '')
+ .replace(/</ig, "<")
.replace(/>/ig, ">");
- return htmlStr
- .replace(new RegExp('\\n', 'g'), '')
- .replace(new RegExp('BV==pXfCGS l+x6eiym8(TWR!dA|o#mCxzKljw!PS`Q`
z%-mBuKM=nRe?RTU)h-e1xR*W2ZYMhN$q4y4`CUSw8uFYMRcAY`Mm-Yk1PF Zf+fus=SMPYd-;ft#nI#
zU*jhfUPGdOo~ZAipJ&aSToyo|t8C)yjAK_E{>alNH>`O4^N)xJtiLNgTL1l7x%tDoyAyLB305P(Ykma0Kk{_BpMQ)~|s1RcZmFZVgp_1$_*H({H&8}2zFJ=7M~c1Vir^&m@keBw-{RB0Zy={>{$9-H{u
z(4`+=Hm+xFqn)-a0N6*ngD8`kAz2eAD)u*LksY+7xQfGKWI1gJH0M8(>J^GuRXk(P
z%IHLExR;S~Y{$%^?S{gNx#*SxtLHsHpLN6HCEf
zb_^$*^BbpJv6vgxvvl7v@oY}dh3$Solk^IEBs5mJN7yTgIKxlE63IXhyNta+CYlEV
zg7+*};Ds+0Blycg{2Rn_^@0U4DPGt-`40Rjb_6?$D;$p*C;mAOPLP&CWrz!@<8zm9
zLq@ixTu37c8L4X@caVShu3sH_pXJpyEYE$HTgM%jb-+F0v)-2|J?rA3$Wh)=1Vyi*
zL_SaW0FCpt6z98s=a7X
zC=yGgGPy#jQfst2y}@WQTdX#_!|8H+yuM&u`x#l%r`;9Ig>A(7jhe(d0UNpl=L|`R
zWO?hrLy57ColBVmJL1M*>J6pWkia2Na|Ntx