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