From 920e079727285c5b7ce67641adcee1b2545b9ccc Mon Sep 17 00:00:00 2001
From: 疯狂的狮子Li <15040126243@163.com>
Date: 星期一, 09 十月 2023 12:00:15 +0800
Subject: [PATCH] update 优化 富文本Editor组件检验图片格式

---
 src/components/Editor/index.vue |   40 ++++++++++++++++------------------------
 1 files changed, 16 insertions(+), 24 deletions(-)

diff --git a/src/components/Editor/index.vue b/src/components/Editor/index.vue
index 6aef16b..b5299b4 100644
--- a/src/components/Editor/index.vue
+++ b/src/components/Editor/index.vue
@@ -9,13 +9,13 @@
       name="file"
       :show-file-list="false"
       :headers="upload.headers"
-      style="display: none"
+      ref="uploadRef"
       v-if="type === 'url'"
     >
     </el-upload>
     <div class="editor">
       <quill-editor
-        ref="myQuillEditor"
+        ref="quillEditorRef"
         v-model:content="content"
         contentType="html"
         @textChange="(e: any) => $emit('update:modelValue', content)"
@@ -53,7 +53,7 @@
   headers: globalHeaders(),
   url: import.meta.env.VITE_APP_BASE_API + '/resource/oss/upload'
 })
-const myQuillEditor = ref();
+const quillEditorRef = ref();
 
 const options = ref({
   theme: "snow",
@@ -86,7 +86,7 @@
       },
     }
   },
-  placeholder: '璇疯緭鍏ュ唴瀹�',
+  placeholder: "璇疯緭鍏ュ唴瀹�",
   readOnly: props.readOnly,
 });
 
@@ -110,10 +110,10 @@
 
 // 鍥剧墖涓婁紶鎴愬姛杩斿洖鍥剧墖鍦板潃
 const handleUploadSuccess = (res: any) => {
-  // 鑾峰彇瀵屾枃鏈疄渚�
-  let quill = toRaw(myQuillEditor.value).getQuill();
   // 濡傛灉涓婁紶鎴愬姛
   if (res.code === 200) {
+    // 鑾峰彇瀵屾枃鏈疄渚�
+    let quill = toRaw(quillEditorRef.value).getQuill();
     // 鑾峰彇鍏夋爣浣嶇疆
     let length = quill.selection.savedRange.index;
     // 鎻掑叆鍥剧墖锛宺es涓烘湇鍔″櫒杩斿洖鐨勫浘鐗囬摼鎺ュ湴鍧�
@@ -129,6 +129,13 @@
 
 // 鍥剧墖涓婁紶鍓嶆嫤鎴�
 const handleBeforeUpload = (file: any) => {
+  const type = ["image/jpeg", "image/jpg", "image/png", "image/svg"];
+  const isJPG = type.includes(file.type);
+  //妫�楠屾枃浠舵牸寮�
+  if (!isJPG) {
+    proxy?.$modal.msgError(`鍥剧墖鏍煎紡閿欒!`);
+    return false;
+  }
   // 鏍℃鏂囦欢澶у皬
   if (props.fileSize) {
     const isLt = file.size / 1024 / 1024 < props.fileSize;
@@ -149,95 +156,80 @@
 </script>
 
 <style>
+.editor-img-uploader {
+  display: none;
+}
 .editor,
 .ql-toolbar {
   white-space: pre-wrap !important;
   line-height: normal !important;
 }
-
 .quill-img {
   display: none;
 }
-
 .ql-snow .ql-tooltip[data-mode="link"]::before {
   content: "璇疯緭鍏ラ摼鎺ュ湴鍧�:";
 }
-
 .ql-snow .ql-tooltip.ql-editing a.ql-action::after {
   border-right: 0;
   content: "淇濆瓨";
   padding-right: 0;
 }
-
 .ql-snow .ql-tooltip[data-mode="video"]::before {
   content: "璇疯緭鍏ヨ棰戝湴鍧�:";
 }
-
 .ql-snow .ql-picker.ql-size .ql-picker-label::before,
 .ql-snow .ql-picker.ql-size .ql-picker-item::before {
   content: "14px";
 }
-
 .ql-snow .ql-picker.ql-size .ql-picker-label[data-value="small"]::before,
 .ql-snow .ql-picker.ql-size .ql-picker-item[data-value="small"]::before {
   content: "10px";
 }
-
 .ql-snow .ql-picker.ql-size .ql-picker-label[data-value="large"]::before,
 .ql-snow .ql-picker.ql-size .ql-picker-item[data-value="large"]::before {
   content: "18px";
 }
-
 .ql-snow .ql-picker.ql-size .ql-picker-label[data-value="huge"]::before,
 .ql-snow .ql-picker.ql-size .ql-picker-item[data-value="huge"]::before {
   content: "32px";
 }
-
 .ql-snow .ql-picker.ql-header .ql-picker-label::before,
 .ql-snow .ql-picker.ql-header .ql-picker-item::before {
   content: "鏂囨湰";
 }
-
 .ql-snow .ql-picker.ql-header .ql-picker-label[data-value="1"]::before,
 .ql-snow .ql-picker.ql-header .ql-picker-item[data-value="1"]::before {
   content: "鏍囬1";
 }
-
 .ql-snow .ql-picker.ql-header .ql-picker-label[data-value="2"]::before,
 .ql-snow .ql-picker.ql-header .ql-picker-item[data-value="2"]::before {
   content: "鏍囬2";
 }
-
 .ql-snow .ql-picker.ql-header .ql-picker-label[data-value="3"]::before,
 .ql-snow .ql-picker.ql-header .ql-picker-item[data-value="3"]::before {
   content: "鏍囬3";
 }
-
 .ql-snow .ql-picker.ql-header .ql-picker-label[data-value="4"]::before,
 .ql-snow .ql-picker.ql-header .ql-picker-item[data-value="4"]::before {
   content: "鏍囬4";
 }
-
 .ql-snow .ql-picker.ql-header .ql-picker-label[data-value="5"]::before,
 .ql-snow .ql-picker.ql-header .ql-picker-item[data-value="5"]::before {
   content: "鏍囬5";
 }
-
 .ql-snow .ql-picker.ql-header .ql-picker-label[data-value="6"]::before,
 .ql-snow .ql-picker.ql-header .ql-picker-item[data-value="6"]::before {
   content: "鏍囬6";
 }
-
 .ql-snow .ql-picker.ql-font .ql-picker-label::before,
 .ql-snow .ql-picker.ql-font .ql-picker-item::before {
   content: "鏍囧噯瀛椾綋";
 }
-
 .ql-snow .ql-picker.ql-font .ql-picker-label[data-value="serif"]::before,
 .ql-snow .ql-picker.ql-font .ql-picker-item[data-value="serif"]::before {
   content: "琛嚎瀛椾綋";
 }
-
 .ql-snow .ql-picker.ql-font .ql-picker-label[data-value="monospace"]::before,
 .ql-snow .ql-picker.ql-font .ql-picker-item[data-value="monospace"]::before {
   content: "绛夊瀛椾綋";

--
Gitblit v1.9.3