vue:使用【3.0】:拖拽数据

1、参考链接:vue.draggable中文文档 - itxst.com

2、想要实现的效果图:红框内容可以拖拽

3、安装

复制代码
yarn add vuedraggable@next
npm i -S vuedraggable@next

4、代码

javascript 复制代码
<template>
    <draggable
      :list="columns"
      ghost-class="ghost"
      chosen-class="chosenClass"
      animation="300"
      class="chooseMain"
    >
      <template #item="{ element, index }">
        <div class="card mr-10px">
          <div class="box mb-10px">
            <div class="left mr-10px">
              <div class="border"></div>
              <div class="txt">{{ element.label }}</div>
            </div>
            <div class="right">
              <Icon
                color="#409eff"
                class="mr-5px"
                icon="ep:delete"
                @click="handleRemove(element, index)"
              />
            </div>
          </div>
        </div>
      </template>
    </draggable>
</template>

<script lang="ts" setup>
import draggable from 'vuedraggable'
const list = [
  {label: '1', value: '测试数据1'},
  {label: '2', value: '测试数据2'}
  {label: '3', value: '测试数据3'}
  {label: '4', value: '测试数据4'}
]
</script>

<style lang="scss" scoped>
  .chooseMain {
    display: flex;
    flex-wrap: wrap;
    .card {
      display: flex;
      flex-basis: 19%;
      box-sizing: border-box;
    }
    .box {
      width: 100%;
      border: 1px solid #ccc;
      border-radius: 5px;
      display: flex;
      align-items: center;
      justify-content: space-around;
      padding: 0 5px;
      box-sizing: border-box;
      .left {
        display: flex;
        align-items: center;
        .border {
          height: 18px;
          width: 2px;
          border-left: 1px dotted #ccc;
          border-right: 1px dotted #ccc;
          display: flex;
          margin-right: 5px;
        }
        .txt {
          width: 130px;
          overflow: hidden;
          white-space: nowrap;
          text-overflow: ellipsis;
          line-height: 28px;
        }
      }
      .right {
        width: 30px;
        display: flex;
        align-items: center;
      }
    }
  }
</style>
相关推荐
mCell34 分钟前
用 Knip 清理 AI Coding 留下的冗余代码
前端·ai编程·前端工程化
dy17171 小时前
vue2树节点刷新后定位到上一节点展开
vue.js
笃行3501 小时前
使用Rokid AIUI做了一个童年推箱子游戏
前端
excel2 小时前
前端加密的作用与使用场景
前端
计算机魔术师3 小时前
纽约时报版权诉讼披露:微软高管内部称训练 AI 是人类历史上最大规模劳动窃取
前端
去伪存真4 小时前
大模型的参数量为什么那么大?
前端·人工智能
IT_陈寒4 小时前
Java空指针这次真把我坑惨了
前端·人工智能·后端
高级程序源5 小时前
django大学生创新创业项目管理系统94923-计算机课程设计、毕业设计
javascript·vue.js·spring boot·后端·python·django·课程设计
八荒启·交互动画5 小时前
# Web特效020—让 Web 特效真正动起来:时间循环应该怎么接
前端·webgl·网页特效·八荒启-交互动画·八荒启
动恰客流统计5 小时前
线下零售数字化浪潮下,客流统计的3个核心发展趋势
大数据·前端·人工智能