拖拽排序功能

最终功能演示如图:

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

于是就找了 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>

 

posted @ 2019-06-26 15:17  小小的忧愁  阅读(3846)  评论(0编辑  收藏  举报