<template> <a-card> <draggable @end="end" :options="{animation: 300}" v-model="dataSource" style="display: inline-block"> <template v-for="(data,index) in dataSource"> <div style="float: left;width:150px;height:150px;margin-right: 10px;margin: 0 8px 8px 0;" :key="index"> <div style="width: 100%;height: 100%;position: relative;padding: 8px;border: 1px solid #d9d9d9;border-radius: 4px;"> <img style="width: 100%;" :src="data.filePath" preview="index"> </div> </div> </template> <a-button @click="sureChange" type="primary" style="margin-top: 115px">确定</a-button> </draggable> <br/> <a-row> <a-col :span="12"> <p>拖拽前json数据:</p> <textarea rows="25" style="width: 780px">{{ oldDateSource }}</textarea> </a-col> <a-col :span="12"> <p>拖拽后json数据:</p> <textarea rows="25" style="width: 780px">{{ newDateSource }}</textarea> </a-col> </a-row> </a-card> </template> <script> import draggable from 'vuedraggable' import ARow from 'ant-design-vue/es/grid/Row' import ACol from 'ant-design-vue/es/grid/Col' export default { name: 'ImgDragSort', components:{ ACol, ARow, draggable }, data() { return { description: '图片拖拽排序', spinning: false, //数据集 dataSource: [ {id:'000',sort: 0,filePath: 'https://ss1.bdstatic.com/70cFvXSh_Q1YnxGkpoWK1HF6hhy/it/u=2735633715,2749454924&fm=27&gp=0.jpg'}, {id:'111',sort: 1,filePath: 'https://ss0.bdstatic.com/70cFvHSh_Q1YnxGkpoWK1HF6hhy/it/u=3967239004,1951414302&fm=27&gp=0.jpg'}, {id:'222',sort: 2,filePath: 'https://ss0.bdstatic.com/6Ox1bjeh1BF3odCf/it/u=3660968530,985748925&fm=191&app=48&size=h300&n=0&g=4n&f=JPEG?sec=1853310920&t=5e64af964be378c6c2a3b0acc65dfe24'}, {id:'333',sort: 3,filePath: 'https://ss0.bdstatic.com/70cFvHSh_Q1YnxGkpoWK1HF6hhy/it/u=889120611,3801177793&fm=27&gp=0.jpg'}, {id:'444',sort: 4,filePath: 'https://ss0.bdstatic.com/70cFvHSh_Q1YnxGkpoWK1HF6hhy/it/u=2445468140,2491956848&fm=27&gp=0.jpg'} ], oldDateSource:[], newDateSource:[], } }, created(){ this.oldDateSource = this.dataSource; }, methods:{ end: function (evt) { console.log("拖动前的位置"+evt.oldIndex); console.log("拖动后的位置"+evt.newIndex); }, sureChange(){ for(var i=0;i<this.dataSource.length;i++){ this.dataSource[i].sort = i; } this.newDateSource = this.dataSource; } } } </script> <style scoped> </style>