拖拽排序功能


最终功能演示如图:

我们有个功能是要求这些字段可以进行排序的,我们以前是给每行加个权重字段,通过编辑权重进行排序。泰康这边觉得直接拖拽更好点。

于是就找了 vue-slicksort 这个插件,感觉还不错。具体API可以看 文档 , 样式就自己按照设计图修改自己的就可以了

<template>
  <div>
    <SortableList v-model="items" lockAxis="y" @input="getArr">
      <SortableItem v-for="(item, index) in items" :index="index" :key="index" :item="item"></SortableItem>
    </SortableList>
  </div>
</template>

<script>
// 引入两个混入
import { ContainerMixin ,ElementMixin } from 'vue-slicksort' import delImg from 'assets/images/del.png' export default { name: "druggen",
// 定义两个子组件,最好可以单独写 components:{
"SortableList":{ mixins: [ContainerMixin], template:` <ul class="slicksortUl"> <li class="slickHead"> <div class="slickFir">字段序号</div> <div class="slickSec">字段名</div> <div class="slickThree">操作</div> </li> <slot /> </ul>` }, "SortableItem":{ mixins: [ElementMixin], props: ['item'], data(){ return { delImg:delImg } }, template:` <li class="slicksortItem"> <div class="slickFir">字段{{index+1}}</div> <div class="slickSec">{{item}}</div> <div class="slickThree"> <img class="delImg" :src="delImg"/> </div> </li> ` } }, data() { return { items: ['等级', '职位', '成本中心', '姓名', '部门'] }; }, methods: { getArr(list){ console.log('newList is ',list) }, } }; </script> <style> </style>

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM