From 9ff9962d8d2d4cb1cd5d6abcb902e916c44cda03 Mon Sep 17 00:00:00 2001
From: gaoluyang <2820782392@qq.com>
Date: 星期四, 08 五月 2025 14:28:29 +0800
Subject: [PATCH] 客户档案页面开发

---
 src/components/ImageUpload/index.vue |   28 +++++++++++++++++++++++++---
 1 files changed, 25 insertions(+), 3 deletions(-)

diff --git a/src/components/ImageUpload/index.vue b/src/components/ImageUpload/index.vue
index 04e3f43..89cc790 100644
--- a/src/components/ImageUpload/index.vue
+++ b/src/components/ImageUpload/index.vue
@@ -49,6 +49,7 @@
 <script setup>
 import { getToken } from "@/utils/auth"
 import { isExternal } from "@/utils/validate"
+import Sortable from 'sortablejs'
 
 const props = defineProps({
   modelValue: [String, Object, Array],
@@ -64,23 +65,28 @@
   // 鍥剧墖鏁伴噺闄愬埗
   limit: {
     type: Number,
-    default: 5,
+    default: 5
   },
   // 澶у皬闄愬埗(MB)
   fileSize: {
     type: Number,
-    default: 5,
+    default: 5
   },
   // 鏂囦欢绫诲瀷, 渚嬪['png', 'jpg', 'jpeg']
   fileType: {
     type: Array,
-    default: () => ["png", "jpg", "jpeg"],
+    default: () => ["png", "jpg", "jpeg"]
   },
   // 鏄惁鏄剧ず鎻愮ず
   isShowTip: {
     type: Boolean,
     default: true
   },
+  // 鎷栧姩鎺掑簭
+  drag: {
+    type: Boolean,
+    default: true
+  }
 })
 
 const { proxy } = getCurrentInstance()
@@ -216,6 +222,22 @@
   }
   return strs != "" ? strs.substr(0, strs.length - 1) : ""
 }
+
+// 鍒濆鍖栨嫋鎷芥帓搴�
+onMounted(() => {
+  if (props.drag) {
+    nextTick(() => {
+      const element = document.querySelector('.el-upload-list')
+      Sortable.create(element, {
+        onEnd: (evt) => {
+          const movedItem = fileList.value.splice(evt.oldIndex, 1)[0]
+          fileList.value.splice(evt.newIndex, 0, movedItem)
+          emit('update:modelValue', listToString(fileList.value))
+        }
+      })
+    })
+  }
+})
 </script>
 
 <style scoped lang="scss">

--
Gitblit v1.9.3