开发指南101-拖动排序

平台上实现拖动排序的标准方案如下:

依托组件:

SortableJS

界面元素:

<el-table :data="sortlist" ref="sortTable">

<el-table-column

label="名称"

header-align="center"

align="center"

prop="itemTitleEx"

width="200"

></el-table-column>

--其他列

<el-table-column align="center" label="排序" width="80">

<template slot-scope="scope">

<svg-icon class="drag-handler" icon-class="drag" />

</template>

</el-table-column>

</el-table>

用el-table展示数据,最后一列显示拖动图标。其实拖动图标只是起个提示作用。点击行内即可拖动。

核心处理:

this.oldsortData = this.sortlist.map(v => v.itemID);

this.newsortData = this.oldsortData.slice();

this.sortable = Sortable.create(el, {

animation: 300,

ghostClass: "sortable-ghost",

setData: function(dataTransfer) {

dataTransfer.setData("Text", "");

},

onEnd: evt => {

const tempIndex = this.newsortData.splice(evt.oldIndex, 1)[0];

this.newsortData.splice(evt.newIndex, 0, tempIndex);

this.newsortDataString = this.newsortData.join();

}

});

newsortDataString为拖动后id的序列串,将这个串返回后台接口调整顺序即可

后台接口一般处理方案,就是生成一段批处理sql,就是按newsortDataString的id顺序进行赋值操作,例如第一个赋值001,依次类推。

相关推荐
Ama_tor29 分钟前
网页制作05-html,css,javascript初认识のhtml表格的创建
javascript·css·html
白嫖不白嫖34 分钟前
网页版的俄罗斯方块
前端·javascript·css
饼干饿死了36 分钟前
实现动态翻转时钟效果的 HTML、CSS 和 JavaScript,附源码
javascript·css·html
林的快手38 分钟前
CSS文本属性
前端·javascript·css·chrome·node.js·css3·html5
大胖丫2 小时前
vue 学习-vite api.js
开发语言·前端·javascript
孙桂月2 小时前
ES6相关操作(2)
前端·javascript·es6
遇见很ok2 小时前
js中 ES6 新特性详解
开发语言·javascript·es6
我这一生如履薄冰~2 小时前
简单封装一个websocket构造函数
前端·javascript·websocket
fangcaojushi2 小时前
解决webpack5.54打包图片及图标的问题
前端·vue.js
前端菜鸟日常2 小时前
vue2和vue3的按需引入的详细对比通俗易懂
javascript·vue.js·ecmascript