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>
相关推荐
用户313050086271 分钟前
JavaScript中的迭代器和生成器
javascript
小七不懂前端2 分钟前
我用 NestJS + Vue3 + Prisma + PostgreSQL 打造了一个企业级 sass 多租户平台
前端·vue.js·后端
晚星star6 分钟前
2.2 Node的模块实现
前端·node.js
zYear7 分钟前
Three.js 入门指南:揭开 3D 网页的魔法面纱
前端
Crystal3288 分钟前
图片懒加载
前端·javascript·代码规范
Revol_C24 分钟前
开箱即用!轻量级轮询方案,支持同步获取轮询结果!
前端·javascript·设计模式
38242782737 分钟前
python:正则表达式
前端·python·正则表达式
用户479492835691544 分钟前
我是怎么把模型回复用tts播放的更自然的
前端
JS_GGbond1 小时前
前端崩溃监控:给网页戴上“生命体征监测仪”
前端
俊劫1 小时前
AI 编码技巧篇(内部分享)
前端·javascript·ai编程