美文网首页Vue
Vue<表格拖拉拽>

Vue<表格拖拉拽>

作者: 誰在花里胡哨 | 来源:发表于2019-05-15 18:10 被阅读322次

在网上找了很多资源和介绍,最后发现一个插件(vue-slicksort)挺好用的,所以就拿来练练,出个效果
具体参考地址: https://github.com/Jexordexan/vue-slicksort
< 此文章简单的学习了基础用法,下个文章会有对此插件更深的应用 >

效果图

tuozhuai.gif

参数图:

drag.jpg

首先:

npm install --s vue-slicksort

代码如下

<已经写好的demo,可以直接拿来用,我就不那么多废话了>

<template>
  <div class="overall">
    <!-- 拖拽 -->
    <SlickList
      :lockToContainerEdges="true"
      axis="x"
      lockAxis="x"
      v-model="items"
      class="SortableList"
      @input="getChangeLists"
    >
      <SlickItem v-for="(item, index) in items" class="SortableItem" :index="index" :key="index">
         <div class="title">{{ item.name }}</div>
          <SlickList :lockToContainerEdges="true" class="list" lockAxis="y" v-model="item.itemArr" @input="getChangeList">
            <SlickItem
              class="list-item"
              v-for="(item, index) in item.itemArr"
              :index="index"
              :key="index"
            >{{ item }}</SlickItem>
          </SlickList>
      </SlickItem>
    </SlickList>
  </div>
</template>
 
<script>
// 安装 npm install --save vue-slicksort
import { SlickList, SlickItem } from "vue-slicksort";
export default {
  components: {
    SlickItem,
    SlickList
  },
  data() {
    return {
      flag: true,
      items: [
        {
          name: "Tab-1",
          itemArr: ["1-1", "1-2", "1-3"]
        },
        {
          name: "Tab-2",
          itemArr: ["2-1", "2-2", "2-3"]
        },
        {
          name: "Tab-3",
          itemArr: ["3-1", "3-2", "3-3"]
        }
      ]
    };
  },
  methods: {
    getChangeList(val) {
      console.log(val, "二级");
    },
    getChangeLists(vals) {
    //  拖拽完成后返回被打乱后的顺序
      console.log(vals, "一级");
    }
  }
};
</script>
<style  lang="scss" scoped>
.list {
    width: 100%;
  max-height: 80vh;
  margin: 0 auto;
  padding: 0;
  overflow: auto;
  background-color: #f3f3f3;
}
.list-item {
  width: 100%;
//   padding: 20px;
  background-color: #fff;
  box-sizing: border-box;
  color: #333;
  font-weight: 400;
  text-align: center;
  padding: 20px;
  box-shadow: 0 1px 2px #ccc;
}
.SortableList {
  display: flex;
  width: 600px;
  max-height: 90vh;
  margin: 0 auto;
  background-color: #dfdbdb;
  
}
.SortableItem {
    text-align: center;
  width: 100%;
  background-color: #fff;
  box-sizing: border-box;
  user-select: none; //不允许用户选中文字
  color: #333;
  font-weight: 400;
  position: relative;
  box-shadow: 0 1px 2px #ccc;
  .title{
      height: 50px;
      width: 100%;
     background: rgba(11, 145, 71, 0.658);
     color: white;
     font-weight: bold;
     line-height: 50px;
  }
}
</style>

喜欢的给个赞啊 !

相关文章

  • Vue<表格拖拉拽>

    在网上找了很多资源和介绍,最后发现一个插件(vue-slicksort)挺好用的,所以就拿来练练,出个效果具体参考...

  • Vue<表格拖拉拽(编辑,删除)>

    此文章是对之前表格拖拉拽的深入了解,增加了编辑和删除功能,感觉以后能用到,喜欢的可以小伙伴可以看下 效果图 代码如...

  • RecyclerView拖拉拽

    RecyclerView拖拉拽,主要是使用RecyclerView结合ItemTouchHelper来实现的。 首...

  • 拖拉拽例子

    例子 相关知识 draggable="true", 配置属性可以拖拉拽 在拖动目标上触发事件ondragstart...

  • iOS Swift 跳转传值

    建立项目,拖拉拽如下:

  • Xib的拖拉拽

    我很久没用Xib了,都是用纯代码。但是最近看了本《精通iOS开发的书籍》,里面说了些Xib思想,看后很想自己尝试着...

  • Vue<滑动标尺>

    找了很多资料,发现这类的很少,而且很多的兼容性不好。这个可以在PC端以及移动端使用,但是用起来需要引用外部js。(...

  • Vue<分享功能>

    首先我们公司的项目用的是H5,今天有说让实现微信,朋友圈,QQ,空间等分享功能,于是在网上找了很多资料,一开始发现...

  • Vue<滑块拖动>

    效果图: 代码如下:

  • Vue<数字加载动画>

    效果图: 首先 npm install --s gsap 下载插件 代码如下:

网友评论

    本文标题:Vue<表格拖拉拽>

    本文链接:https://www.haomeiwen.com/subject/odemaqtx.html