上传组件新增拖动排序属性

This commit is contained in:
RuoYi 2025-04-30 10:31:03 +08:00
parent 57fe1c663e
commit 98738f23ad
2 changed files with 49 additions and 4 deletions

View File

@ -43,6 +43,7 @@
<script>
import { getToken } from "@/utils/auth"
import Sortable from 'sortablejs'
export default {
name: "FileUpload",
@ -82,6 +83,11 @@ export default {
disabled: {
type: Boolean,
default: false
},
//
drag: {
type: Boolean,
default: true
}
},
data() {
@ -92,7 +98,22 @@ export default {
headers: {
Authorization: "Bearer " + getToken(),
},
fileList: [],
fileList: []
}
},
mounted() {
if (this.drag) {
this.$nextTick(() => {
const element = document.querySelector('.upload-file-list')
Sortable.create(element, {
ghostClass: 'file-upload-darg',
onEnd: (evt) => {
const movedItem = this.fileList.splice(evt.oldIndex, 1)[0]
this.fileList.splice(evt.newIndex, 0, movedItem)
this.$emit("input", this.listToString(this.fileList))
}
})
})
}
},
watch: {
@ -215,6 +236,10 @@ export default {
</script>
<style scoped lang="scss">
.file-upload-darg {
opacity: 0.5;
background: #c8ebfb;
}
.upload-file-uploader {
margin-bottom: 5px;
}

View File

@ -45,6 +45,7 @@
<script>
import { getToken } from "@/utils/auth"
import Sortable from 'sortablejs'
export default {
props: {
@ -61,22 +62,27 @@ export default {
//
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
}
},
data() {
@ -93,6 +99,20 @@ export default {
fileList: []
}
},
mounted() {
if (this.drag) {
this.$nextTick(() => {
const element = document.querySelector('.el-upload-list')
Sortable.create(element, {
onEnd: (evt) => {
const movedItem = this.fileList.splice(evt.oldIndex, 1)[0]
this.fileList.splice(evt.newIndex, 0, movedItem)
this.$emit("input", this.listToString(this.fileList))
}
})
})
}
},
watch: {
value: {
handler(val) {