From a52f8c508d08014d1a153cfc02e12b5fc185a3a4 Mon Sep 17 00:00:00 2001
From: k94314517 <8417338+k94314517@user.noreply.gitee.com>
Date: 星期四, 11 七月 2024 15:28:59 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 admin/src/components/common/upload.vue |  133 ++++++++++++++++++++++---------------------
 1 files changed, 68 insertions(+), 65 deletions(-)

diff --git a/admin/src/components/common/upload.vue b/admin/src/components/common/upload.vue
index 22d22f9..62a855f 100644
--- a/admin/src/components/common/upload.vue
+++ b/admin/src/components/common/upload.vue
@@ -5,79 +5,82 @@
                 <div class="dele" @click="deleItem(index)">
                     <i class="el-icon-close"></i>
                 </div>
-                <img :src="item.url" v-if="fileType(item.url) === 'img'" />
-                <video controls autoplay :src="item.url" v-else></video>
+                <img :src="item.fileurlFull" v-if="fileType(item.fileurlFull) === 'img'" />
+                <video controls autoplay :src="item.fileurlFull" v-else></video>
             </div>
-            <div class="file_list_item" :style="{width: width, height: height, cursor: 'pointer'}" @click="$refs.file.click()">
+            <div v-if="list ==null || list.length == 0 || list.length < maxLength" class="file_list_item" :style="{width: width, height: height, cursor: 'pointer'}" @click="$refs.file.click()">
                 <i class="el-icon-plus"></i>
             </div>
         </div>
-        <input type="file" ref="file" :accept="accept" @change="getFile" />
+        <input   type="file" ref="file" :accept="accept" @change="getFile" />
     </div>
 </template>
 
 <script>
-    import axios from 'axios';
-    export default {
-        props: {
-            width: {
-                type: String,
-                default: '90px'
-            },
-            height: {
-                type: String,
-                default: '90px'
-            },
-            list: {
-                type: Array,
-                default: []
-            },
-            accept: {
-                type: String,
-                default: ''
-            },
-            folder: {
-                type: String,
-                default: ''
-            }
-        },
-        data() {
-            return {
-                uploadImgUrl: process.env.VUE_APP_API_PREFIX + '/public/upload'
-            }
-        },
-
-        methods: {
-            fileType(url) {
-                if (url.indexOf('.mp4') !== -1) {
-                    return 'video'
-                } else {
-                    return 'img'
-                }
-            },
-            getFile(e) {
-                if (e.target && e.target.files.length > 0) {
-                    this.$emit('loading')
-                    const formdate = new FormData()
-                    formdate.append('file', e.target.files[0])
-                    formdate.append('folder', this.folder)
-                    axios.post(this.uploadImgUrl, formdate)
-                        .then(res => {
-                            this.$emit('success', res.data.data)
-                        })
-                        .catch(e => {
-                            this.$message.error(e)
-                        })
-                        .finally(() => {
-                            this.$refs.file.value = null
-                        })
-                }
-            },
-            deleItem(index) {
-                this.$emit('dele', index)
-            }
-        }
+import axios from 'axios'
+export default {
+  props: {
+    width: {
+      type: String,
+      default: '90px'
+    },
+    height: {
+      type: String,
+      default: '90px'
+    },
+    list: {
+      type: Array,
+      default: []
+    },
+    accept: {
+      type: String,
+      default: ''
+    },
+    folder: {
+      type: String,
+      default: ''
+    },
+    maxLength: {
+      type: Number,
+      default: 9999
     }
+  },
+  data () {
+    return {
+      uploadImgUrl: process.env.VUE_APP_API_PREFIX + '/public/upload'
+    }
+  },
+  methods: {
+    fileType (url) {
+      if (url && url.indexOf('.mp4') !== -1) {
+        return 'video'
+      } else {
+        return 'img'
+      }
+    },
+    getFile (e) {
+      if (e.target && e.target.files.length > 0) {
+        this.$emit('loading')
+        const formdate = new FormData()
+        formdate.append('file', e.target.files[0])
+        formdate.append('folder', this.folder)
+        axios.post(this.uploadImgUrl, formdate)
+          .then(res => {
+            this.$emit('success', res.data.data)
+          })
+          .catch(e => {
+            this.$message.error(e)
+          })
+          .finally(() => {
+            this.$refs.file.value = null
+          })
+      }
+    },
+    deleItem (index) {
+      this.$emit('dele', index)
+    }
+  }
+}
 </script>
 
 <style lang="scss" scoped>
@@ -108,6 +111,7 @@
                     margin: 0 !important;
                 }
                 .dele {
+                  z-index: 10000;
                     position: absolute;
                     right: 0;
                     top: 0;
@@ -138,4 +142,3 @@
         }
     }
 </style>
-

--
Gitblit v1.9.3