开发指南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,依次类推。

相关推荐
大猩猩X2 小时前
vxe-gantt 甘特图使用右键菜单
vue.js·vxe-table·vxe-ui·vxe-gantt
Aerelin2 小时前
爬虫playwright入门讲解
前端·javascript·html·playwright
笙年2 小时前
JavaScript Promise,包括构造函数、对象方法和类方法
开发语言·javascript·ecmascript
桜吹雪2 小时前
LangChain.js/DeepAgents可观测性
javascript·人工智能
灵魂学者3 小时前
Vue3.x —— 父子通信
前端·javascript·vue.js·github
芳草萋萋鹦鹉洲哦4 小时前
【vue/js】文字超长悬停显示的几种方式
前端·javascript·vue.js
开发者小天5 小时前
React中的 闭包陷阱
前端·javascript·react.js
涔溪5 小时前
Vue3 的核心语法
前端·vue.js·typescript
国服第二切图仔5 小时前
Electron for 鸿蒙pc项目实战之tab标签页组件
javascript·electron·harmonyos·鸿蒙pc
Neptune16 小时前
深入浅出:理解js的‘万物皆对象’与原型链
前端·javascript