From a563ea879ef5fb6897e76d2df661e465dce2ab9b Mon Sep 17 00:00:00 2001
From: huminmin <mac@MacBook-Pro.local>
Date: 星期一, 01 六月 2026 15:02:27 +0800
Subject: [PATCH] Merge branch 'dev_新疆_大罗素马铃薯new' of http://114.132.189.42:9002/r/product-inventory-management into dev_新疆_大罗素马铃薯new
---
src/components/Upload/FileUpload.vue | 100 ++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 100 insertions(+), 0 deletions(-)
diff --git a/src/components/Upload/FileUpload.vue b/src/components/Upload/FileUpload.vue
new file mode 100644
index 0000000..8658621
--- /dev/null
+++ b/src/components/Upload/FileUpload.vue
@@ -0,0 +1,100 @@
+<script setup>
+import { ref } from "vue";
+
+defineOptions({
+ name: "鏂囦欢涓婁紶缁勪欢",
+});
+
+const props = defineProps({
+ downloadTemplate: Function,
+ showTips: Boolean,
+ accept: {
+ type: String,
+ default: ".xls, .xlsx",
+ },
+ headers: Object,
+ action: String,
+ disabled: {
+ type: Boolean,
+ default: false,
+ },
+ showTip: {
+ type: Boolean,
+ default: true,
+ },
+ autoUpload: {
+ type: Boolean,
+ default: false,
+ },
+ limit: {
+ type: Number,
+ default: 1,
+ },
+});
+const emits = defineEmits(["success", "remove"]);
+
+const uploadRef = ref();
+const fileList = ref([]);
+
+const uploadApi = () => {
+ uploadRef.value.submit();
+};
+
+const handleFileSuccess = (response, file, fileList) => {
+ // uploadRef.value.handleRemove(file);
+ emits("success", response, file, fileList);
+};
+
+const handleRemove = (file) => {
+ emits("remove", file);
+};
+
+const clearFiles = () => {
+ fileList.value = [];
+};
+
+defineExpose({
+ fileList,
+ uploadApi,
+ clearFiles,
+});
+</script>
+
+<template>
+ <el-upload
+ ref="uploadRef"
+ v-model:file-list="fileList"
+ drag
+ multiple
+ :action="action"
+ :accept="accept"
+ :headers="headers"
+ :disabled="disabled"
+ :auto-upload="autoUpload"
+ :limit="limit"
+ :drag="true"
+ :on-success="handleFileSuccess"
+ :on-remove="handleRemove"
+ >
+ <div class="el-upload__text">
+ <el-icon class="el-icon--upload"><upload-filled /></el-icon>
+ <div class="el-upload__text">
+ 灏嗘枃浠舵嫋鍒版澶勶紝鎴�
+ <em>鐐瑰嚮涓婁紶闄勪欢</em>
+ </div>
+ </div>
+ <template #tip>
+ <div v-if="showTip" class="el-upload__tip text-center">
+ 鍙兘涓婁紶xlsx/xls鏂囦欢锛屼笖涓嶈秴杩�10M
+ <el-button
+ type="primary"
+ link
+ class="reset-margin"
+ @click="props.downloadTemplate()"
+ >
+ <span style="font-size: 12px; font-weight: normal">涓嬭浇妯℃澘</span>
+ </el-button>
+ </div>
+ </template>
+ </el-upload>
+</template>
--
Gitblit v1.9.3