From 089bf5d2378b3c4a61d795b2a92bede2c193b771 Mon Sep 17 00:00:00 2001
From: admin <344137771@qq.com>
Date: Tue, 06 Jan 2026 11:22:58 +0800
Subject: [PATCH] 1
---
src/components/file-upload/index.vue | 72 ++++++++++++++++++++++++++++++++++++
1 files changed, 72 insertions(+), 0 deletions(-)
diff --git a/src/components/file-upload/index.vue b/src/components/file-upload/index.vue
new file mode 100644
index 0000000..e499d01
--- /dev/null
+++ b/src/components/file-upload/index.vue
@@ -0,0 +1,72 @@
+<template>
+ <div>
+ <el-upload
+ :action="$http.adornUrl('/admin/file/upload/element')"
+ :headers="{Authorization: $cookie.get('Authorization')}"
+ :on-remove="handleRemove"
+ :on-success="handleUploadSuccess"
+ :before-remove="beforeRemove"
+ :file-list="fileList"
+ multiple>
+ <el-button size="small" type="primary">点击上传</el-button>
+ </el-upload>
+ </div>
+</template>
+
+<script>
+ export default {
+ data () {
+ return {
+ resourcesUrl: process.env.VUE_APP_RESOURCES_URL
+ }
+ },
+ props: {
+ value: {
+ default: '',
+ type: String
+ }
+ },
+ computed: {
+ fileList () {
+ let res = []
+ if (this.value) {
+ let fileArray = this.value.split(',')
+ for (let i = 0; i < fileArray.length; i++) {
+ res.push({name: fileArray[i], url: this.resourcesUrl + fileArray[i], response: fileArray[i]})
+ }
+ }
+ this.$emit('input', this.value)
+ return res
+ }
+ },
+ methods: {
+ // 图片上传
+ handleUploadSuccess (response, file, fileList) {
+ let files = fileList.map(file => {
+ return file.response
+ }).join(',')
+ this.$emit('change', files)
+ },
+ // 限制图片上传大小
+ beforeAvatarUpload (file) {
+ const isLt2M = file.size / 1024 / 1024 < 2
+ if (!isLt2M) {
+ this.$message.error('上传图片大小不能超过 2MB!')
+ }
+ return isLt2M
+ },
+ handleRemove (file, fileList) {
+ let files = fileList.map(file => {
+ return file.response
+ }).join(',')
+ this.$emit('change', files)
+ },
+ beforeRemove (file, fileList) {
+ return this.$confirm(`确定移除 ${file.name}?`)
+ }
+ }
+ }
+</script>
+
+<style lang="scss">
+</style>
--
Gitblit v1.9.3