From 966571bdcb11c2729ab9ce212bd3e195f7bf3a59 Mon Sep 17 00:00:00 2001
From: liuzhidong <51448229+liuzhidong0918@users.noreply.github.com>
Date: 星期一, 07 六月 2021 12:23:34 +0800
Subject: [PATCH] fix(Tinymce):  Read only status upload button can also be used (#718)

---
 src/components/Tinymce/src/ImgUpload.vue |   18 +++++++++++++++---
 src/components/Tinymce/src/Editor.vue    |    8 ++++++++
 2 files changed, 23 insertions(+), 3 deletions(-)

diff --git a/src/components/Tinymce/src/Editor.vue b/src/components/Tinymce/src/Editor.vue
index 72223f7..de94197 100644
--- a/src/components/Tinymce/src/Editor.vue
+++ b/src/components/Tinymce/src/Editor.vue
@@ -6,6 +6,7 @@
       @done="handleDone"
       v-if="showImageUpload"
       v-show="editorRef"
+      :disabled="disabled"
     />
     <textarea :id="tinymceId" ref="elRef" :style="{ visibility: 'hidden' }"></textarea>
   </div>
@@ -170,6 +171,12 @@
         };
       });
 
+      const disabled = computed(() => {
+        const { options } = props;
+        const getdDisabled = options && Reflect.get(options, 'readonly');
+        return getdDisabled ?? false;
+      });
+
       watch(
         () => attrs.disabled,
         () => {
@@ -301,6 +308,7 @@
         handleDone,
         editorRef,
         fullscreen,
+        disabled,
       };
     },
   });
diff --git a/src/components/Tinymce/src/ImgUpload.vue b/src/components/Tinymce/src/ImgUpload.vue
index 41c8ce6..2963a50 100644
--- a/src/components/Tinymce/src/ImgUpload.vue
+++ b/src/components/Tinymce/src/ImgUpload.vue
@@ -8,14 +8,14 @@
       :showUploadList="false"
       accept=".jpg,.jpeg,.gif,.png,.webp"
     >
-      <a-button type="primary">
+      <a-button type="primary" v-bind="{ ...getButtonProps }">
         {{ t('component.upload.imgUpload') }}
       </a-button>
     </Upload>
   </div>
 </template>
 <script lang="ts">
-  import { defineComponent } from 'vue';
+  import { defineComponent, computed } from 'vue';
 
   import { Upload } from 'ant-design-vue';
   import { useDesign } from '/@/hooks/web/useDesign';
@@ -29,14 +29,25 @@
       fullscreen: {
         type: Boolean,
       },
+      disabled: {
+        type: Boolean,
+        default: false,
+      },
     },
     emits: ['uploading', 'done', 'error'],
-    setup(_, { emit }) {
+    setup(props, { emit }) {
       let uploading = false;
 
       const { uploadUrl } = useGlobSetting();
       const { t } = useI18n();
       const { prefixCls } = useDesign('tinymce-img-upload');
+
+      const getButtonProps = computed(() => {
+        const { disabled } = props;
+        return {
+          disabled,
+        };
+      });
 
       function handleChange(info: Recordable) {
         const file = info.file;
@@ -63,6 +74,7 @@
         handleChange,
         uploadUrl,
         t,
+        getButtonProps,
       };
     },
   });

--
Gitblit v1.8.0