From 89e540640b87f4be8656a5bc78f4a5dbcdf1c21f Mon Sep 17 00:00:00 2001
From: jiangping <jp@doumee.com>
Date: 星期二, 01 七月 2025 15:53:41 +0800
Subject: [PATCH] ss

---
 admin/src/components/common/RichEditor.vue |  189 +++++++++++++++++++++++++----------------------
 1 files changed, 101 insertions(+), 88 deletions(-)

diff --git a/admin/src/components/common/RichEditor.vue b/admin/src/components/common/RichEditor.vue
index 7bf2a32..33b44f0 100644
--- a/admin/src/components/common/RichEditor.vue
+++ b/admin/src/components/common/RichEditor.vue
@@ -1,7 +1,7 @@
 <template>
   <div :style="styleEditor">
     <Toolbar style="border-bottom: 1px solid #ccc" :editor="editor" :defaultConfig="toolbarConfig" :mode="mode" />
-    <Editor :style="style" class="declass"  v-model="html" :defaultConfig="editorConfig" :mode="mode"
+    <Editor style="min-height: 80px; overflow-y: hidden;" v-model="html" :defaultConfig="editorConfig" :mode="mode"
             @onCreated="onCreated" @onChange="onChange" />
   </div>
 </template>
@@ -9,7 +9,7 @@
 <script>
 import Vue from 'vue'
 import { Editor, Toolbar } from '@wangeditor/editor-for-vue'
-import { Loading } from 'element-ui'
+import { Loading } from 'element-ui';
 let loadingInstance = null
 export default Vue.extend({
   props: {
@@ -18,54 +18,53 @@
       default: ''
     },
     styleEditor: '',
-    style:'',
-    readonly: false // 鏄惁鍙互杈撳叆
+    readonly: false, // 鏄惁鍙互杈撳叆
   },
-  name: 'RichEditor',
+  name:'RichEditor',
   components: { Editor, Toolbar },
-  data () {
+  data() {
     return {
       editor: null,
       html: '',
       toolbarConfig: { // 宸ュ叿鏍忛厤缃�
-        toolbarKeys: this.readonly ? ['fullScreen'] : [ // 鏄剧ず鎸囧畾鐨勮彍鍗曢」
-          'bold', // 绮椾綋
-          'underline', // 涓嬪垝绾�
-          'italic', // 鏂滀綋
-          'through', // 鍒犻櫎绾�
-          'code', // 琛屽唴浠g爜
-          'sub', // 涓嬫爣
-          'sup', // 涓婃爣
-          'clearStyle', // 娓呴櫎鏍煎紡
-          'color', // 瀛椾綋棰滆壊
-          'bgColor', // 鑳屾櫙鑹�
-          'fontSize', // 瀛楀彿
-          'fontFamily', // 瀛椾綋
-          'indent', // 澧炲姞缂╄繘
-          'delIndent', // 鍑忓皯缂╄繘
-          'justifyLeft', // 宸﹀榻�
-          'justifyRight', // 鍙冲榻�
-          'justifyCenter', // 灞呬腑瀵归綈
-          'justifyJustify', // 涓ょ瀵归綈
-          'lineHeight', // 琛岄珮
+        toolbarKeys: this.readonly ? ["fullScreen"]: [ // 鏄剧ず鎸囧畾鐨勮彍鍗曢」
+          "bold", // 绮椾綋
+          "underline", // 涓嬪垝绾�
+          "italic", // 鏂滀綋
+          "through", // 鍒犻櫎绾�
+          "code", // 琛屽唴浠g爜
+          "sub", // 涓嬫爣
+          "sup", // 涓婃爣
+          "clearStyle", // 娓呴櫎鏍煎紡
+          "color", // 瀛椾綋棰滆壊
+          "bgColor", // 鑳屾櫙鑹�
+          "fontSize", // 瀛楀彿
+          "fontFamily", // 瀛椾綋
+          "indent", // 澧炲姞缂╄繘
+          "delIndent", // 鍑忓皯缂╄繘
+          "justifyLeft", // 宸﹀榻�
+          "justifyRight", // 鍙冲榻�
+          "justifyCenter", // 灞呬腑瀵归綈
+          "justifyJustify", // 涓ょ瀵归綈
+          "lineHeight", // 琛岄珮
           // "viewImageLink", // 鏌ョ湅閾炬帴
-          'divider', // 鍒嗗壊绾�
-          'emotion', // 琛ㄦ儏
-          'insertLink', // 鎻掑叆閾炬帴
+          "divider", // 鍒嗗壊绾�
+          "emotion", // 琛ㄦ儏
+          "insertLink", // 鎻掑叆閾炬帴
           // "editLink", // 淇敼閾炬帴
           // "unLink", // 鍙栨秷閾炬帴
           // "viewLink", // 鏌ョ湅閾炬帴
-          'codeBlock', // 浠g爜鍧�
-          'blockquote', // 寮曠敤
-          'headerSelect', // 鏍囬
+          "codeBlock", // 浠g爜鍧�
+          "blockquote", // 寮曠敤
+          "headerSelect", // 鏍囬
           // "header1", // 鏍囬1
           // "header2", // 鏍囬2
           // "header3", // 鏍囬3
           // "header4", // 鏍囬4
           // "header5", // 鏍囬5
           // "todo", // 寰呭姙
-          'redo', // 閲嶅仛
-          'undo', // 鎾ら攢
+          "redo", // 閲嶅仛
+          "undo", // 鎾ら攢
           // "enter", // 鍥炶溅
           // "bulletedList", // 鏃犲簭鍒楄〃
           // "numberedList", // 鏈夊簭鍒楄〃
@@ -85,20 +84,20 @@
                "tableHeader", // 琛ㄥご
                "tableFullWidth", // 瀹藉害鑷�傚簲
              ] // 涓嬬骇鑿滃崟 key 锛屽繀濉�
-           }, */
+           },*/
           // 涓婁紶鍥剧墖鍒嗙粍
           {
             key: 'img-style', // 蹇呭~锛岃浠� group 寮�澶�
             title: '鍥剧墖', // 蹇呭~
             // iconSvg: '<svg>....</svg>', // 鍙��
             menuKeys: [
-              'uploadImage', // 涓婁紶鍥剧墖
-              'insertImage', // 缃戠粶鍥剧墖
-              'deleteImage', // 鍒犻櫎鍥剧墖
-              'editImage', // 缂栬緫鍥剧墖
-              'imageWidth30', // 鍥剧墖瀹藉害鐩稿浜庣紪杈戝櫒瀹藉害鐨勭櫨鍒嗘瘮30
-              'imageWidth50', // 鍥剧墖瀹藉害鐩稿浜庣紪杈戝櫒瀹藉害鐨勭櫨鍒嗘瘮50
-              'imageWidth100' // 鍥剧墖瀹藉害鐩稿浜庣紪杈戝櫒瀹藉害鐨勭櫨鍒嗘瘮100
+              "uploadImage", // 涓婁紶鍥剧墖
+              "insertImage", // 缃戠粶鍥剧墖
+              "deleteImage", // 鍒犻櫎鍥剧墖
+              "editImage", // 缂栬緫鍥剧墖
+              "imageWidth30", // 鍥剧墖瀹藉害鐩稿浜庣紪杈戝櫒瀹藉害鐨勭櫨鍒嗘瘮30
+              "imageWidth50", // 鍥剧墖瀹藉害鐩稿浜庣紪杈戝櫒瀹藉害鐨勭櫨鍒嗘瘮50
+              "imageWidth100", // 鍥剧墖瀹藉害鐩稿浜庣紪杈戝櫒瀹藉害鐨勭櫨鍒嗘瘮100
             ] // 涓嬬骇鑿滃崟 key 锛屽繀濉�
           },
           // 瑙嗛鍒嗙粍
@@ -107,18 +106,18 @@
             title: '瑙嗛', // 蹇呭~
             // iconSvg: '<svg>....</svg>', // 鍙��
             menuKeys: [
-              'insertVideo', // 鎻掑叆缃戠粶瑙嗛
-              'uploadVideo', // 涓婁紶瑙嗛
-              'editVideoSize' // 淇敼瑙嗛灏哄
+              "insertVideo", // 鎻掑叆缃戠粶瑙嗛
+              "uploadVideo", // 涓婁紶瑙嗛
+              "editVideoSize", // 淇敼瑙嗛灏哄
             ] // 涓嬬骇鑿滃崟 key 锛屽繀濉�
           },
-          'fullScreen' // 鍏ㄥ睆
+          "fullScreen", // 鍏ㄥ睆
         ],
         excludeKeys: [ // 闅愯棌鎸囧畾鐨勮彍鍗曢」
           // 'headerSelect',
           // 'video-style'
           // 鎺掗櫎鑿滃崟缁勶紝鍐欒彍鍗曠粍 key 鐨勫�煎嵆鍙�
-        ]
+        ],
 
       },
       editorConfig: { // 缂栬緫鍣ㄩ厤缃�
@@ -130,10 +129,10 @@
         MENU_CONF: {
           // 鍥剧墖涓婁紶
           uploadImage: {
-            server: process.env.VUE_APP_API_PREFIX + '/web/public/uploadLocal?folder=',
+            server: process.env.VUE_APP_API_PREFIX + '/public/uploadLocal?folder=',
             fieldName: 'file',
             // 鍗曚釜鏂囦欢鐨勬渶澶т綋绉檺鍒讹紝榛樿涓� 2M
-            maxFileSize: 20 * 1024 * 1024, // 10M
+            maxFileSize: 10 * 1024 * 1024, // 10M
             // 鏈�澶氬彲涓婁紶鍑犱釜鏂囦欢锛岄粯璁や负 100
             maxNumberOfFiles: 10,
             // 閫夋嫨鏂囦欢鏃剁殑绫诲瀷闄愬埗锛岄粯璁や负 ['image/*'] 銆傚涓嶆兂闄愬埗锛屽垯璁剧疆涓� []
@@ -148,20 +147,20 @@
             // 璺ㄥ煙鏄惁浼犻�� cookie 锛岄粯璁や负 false
             withCredentials: true,
             // 瓒呮椂鏃堕棿锛岄粯璁や负 10 绉�
-            timeout: 10 * 1000, // 10 绉�
+            timeout: 10 * 1000, //10 绉�
             // 涓婁紶鍓�
-            onBeforeUpload (files) {
+            onBeforeUpload(files) {
               loadingInstance = Loading.service({
                 lock: true,
                 text: '涓婁紶涓�...',
                 spinner: 'el-icon-loading',
                 background: 'rgba(0, 0, 0, 0.7)'
-              })
-              return files
+              });
+              return files;
             },
             // 鑷畾涔夋彃鍏ュ浘鐗�
-            customInsert (res, insertFn) {
-              console.log(res)
+            customInsert(res, insertFn) {
+              console.log(res);
               // 鍥犱负鑷畾涔夋彃鍏ュ鑷磑nSuccess涓巓nFailed鍥炶皟鍑芥暟涓嶈捣浣滅敤,鑷繁鎵嬪姩澶勭悊
               // 鍏堝叧闂瓑寰呯殑Message
               loadingInstance = Loading.service({
@@ -169,7 +168,7 @@
                 text: '涓婁紶涓�...',
                 spinner: 'el-icon-loading',
                 background: 'rgba(0, 0, 0, 0.7)'
-              }).close()
+              }).close();
               if (res.code === 200) {
                 // Message.success({
                 //     message: `${res.data.originalName} 涓婁紶鎴愬姛`
@@ -179,27 +178,27 @@
                 //     message: `${res.data.originalName} 涓婁紶澶辫触锛岃閲嶆柊灏濊瘯`
                 // });
               }
-              insertFn(res.data.url, res.data.originname, res.data.imgname)
+              insertFn(res.data.url, res.data.originname, res.data.imgname);
             },
 
             // 鍗曚釜鏂囦欢涓婁紶鎴愬姛涔嬪悗
-            onSuccess (file, res) {
-              console.log(`${file.originalFilename} 涓婁紶鎴愬姛`, res)
+            onSuccess(file, res) {
+              console.log(`${file.originalFilename} 涓婁紶鎴愬姛`, res);
             },
             // 鍗曚釜鏂囦欢涓婁紶澶辫触
-            onFailed (file, res) {
-              console.log(`${file.originalFilename} 涓婁紶澶辫触`, res)
-              loadingInstance.close()
+            onFailed(file, res) {
+              console.log(`${file.originalFilename} 涓婁紶澶辫触`, res);
+              loadingInstance.close();
             },
             // 涓婁紶杩涘害鐨勫洖璋冨嚱鏁�
-            onProgress (progress) {
-              console.log('progress', progress)
+            onProgress(progress) {
+              console.log('progress', progress);
               // progress 鏄� 0-100 鐨勬暟瀛�
             },
             // 涓婁紶閿欒锛屾垨鑰呰Е鍙� timeout 瓒呮椂
-            onError (file, err, res) {
-              loadingInstance.close()
-              console.log(`${file.originalFilename} 涓婁紶鍑洪敊`, err, res)
+            onError(file, err, res) {
+              loadingInstance.close();
+              console.log(`${file.originalFilename} 涓婁紶鍑洪敊`, err, res);
             }
           },
           // 瑙嗛涓婁紶
@@ -230,11 +229,11 @@
             // 瓒呮椂鏃堕棿锛岄粯璁や负 30 绉�
             timeout: 1000 * 1000, // 1000 绉�,
             // 涓婁紶涔嬪墠瑙﹀彂
-            onBeforeUpload (file) {
-              return file
+            onBeforeUpload(file) {
+              return file;
             },
             // 鑷畾涔夋彃鍏ヨ棰�
-            customInsert (res, insertFn) {
+            customInsert(res, insertFn) {
               // 鍥犱负鑷畾涔夋彃鍏ュ鑷磑nSuccess涓巓nFailed鍥炶皟鍑芥暟涓嶈捣浣滅敤,鑷繁鎵嬪姩澶勭悊
               // 鍏堝叧闂瓑寰呯殑Message
               // Message.closeAll();
@@ -247,11 +246,11 @@
                 //     message: `${res.data.originalName} 涓婁紶澶辫触锛岃閲嶆柊灏濊瘯`
                 // });
               }
-              insertFn(res.data.url, res.data.url)
+              insertFn(res.data.url, res.data.url);
             },
             // 涓婁紶杩涘害鐨勫洖璋冨嚱鏁�
-            onProgress (progress) {
-              console.log(progress)
+            onProgress(progress) {
+              console.log(progress);
               // onProgress(progress) {       // JS 璇硶
               // progress 鏄� 0-100 鐨勬暟瀛�
             },
@@ -266,8 +265,8 @@
             //   this.errorMsg(file);
             // },
             // 涓婁紶閿欒锛屾垨鑰呰Е鍙� timeout 瓒呮椂
-            onError (file, err, res) {
-              console.log(`${file.name} 涓婁紶鍑洪敊`, err, res)
+            onError(file, err, res) {
+              console.log(`${file.name} 涓婁紶鍑洪敊`, err, res);
               // Notification.error({
               //     title: '閿欒',
               //     message: `${file.name} 涓婁紶澶辫触锛岃閲嶆柊灏濊瘯`
@@ -276,38 +275,47 @@
           }
         }
       },
-      mode: 'default' // or 'simple'
+      mode: 'default', // or 'simple'
     }
   },
   watch: {
     richData: function (value) {
       this.html = value
+      console.log("onChange123", value); // onChange 鏃惰幏鍙栫紪杈戝櫒鏈�鏂板唴瀹�
+      this.$nextTick(()=>{
+        this.html = value
+      })
     },
     readonly: function (value) {
       this.readonly = value
     },
     styleEditor: function (value) {
       this.styleEditor = value
-    }
+    },
   },
-  mounted () {
+  mounted() {
     // 闇�瑕佸湪缂栬緫鍣ㄥ垱寤哄畬姣曞悗鍦ㄨ祴鍊�
-    this.$nextTick(() => {
+    this.$nextTick(()=>{
       this.html = this.richData
     })
   },
   methods: {
     // 缂栬緫鍣ㄥ垱寤哄畬姣曟椂鐨勫洖璋冨嚱鏁�
-    onCreated (editor) {
+    onCreated(editor) {
+      var that =this
       this.editor = Object.seal(editor) // 涓�瀹氳鐢� Object.seal() 锛屽惁鍒欎細鎶ラ敊
+      setTimeout(function (){
+        that.html = that.richData
+        // alert(that.html)
+      },15000)
     },
     // 缂栬緫鍣ㄥ唴瀹广�侀�夊尯鍙樺寲鏃剁殑鍥炶皟鍑芥暟
-    onChange (editor) {
+    onChange(editor) {
       this.$emit('getWangedditor', editor.getHtml())
-      console.log('onChange', editor.getHtml()) // onChange 鏃惰幏鍙栫紪杈戝櫒鏈�鏂板唴瀹�
-    }
+      console.log("onChange", editor.getHtml()); // onChange 鏃惰幏鍙栫紪杈戝櫒鏈�鏂板唴瀹�
+    },
   },
-  beforeDestroy () {
+  beforeDestroy() {
     // 缂栬緫鍣ㄩ攢姣佹椂鐨勫洖璋冨嚱鏁般�傝皟鐢� editor.destroy() 鍗冲彲閿�姣佺紪杈戝櫒
     const editor = this.editor
     if (editor == null) return
@@ -315,8 +323,13 @@
   }
 })
 </script>
-<style lang="scss">
-.declass{
-  min-height: 80px; overflow-y: hidden;
+<style>
+::v-deep .w-e-text-container {
+  height: 420px !important;
 }
-</style>>
+.w-e-text-container .w-e-scroll {
+  height: 500px !important;
+  -webkit-overflow-scrolling: touch;
+}
+</style>
+

--
Gitblit v1.9.3