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