vue3:使用draggable拖拽组件

直接复制了之前vue2的代码过来,发现一直报错,一查资料,才知道变化很大。

安装:

npm i -S vuedraggable@next

一定记得要加@next

引入:

import draggable from "vuedraggable";

使用:

用list属性,不用v-model了。

item-key必须要填。

item的slot里必须是写element,我试过写item,会报错,可以带上index,也可以不带。

<draggable :list="selectedComponents" item-key="id">
            <template #item="{ element,index }">
              <div class="selectedItem" :class="currentCptIndex === index ? 'selectedItem-active' : ''"
                @mousedown="showConfigBar(element, index)" @contextmenu.prevent="showContextMenu" @dblclick="onDblclick">
                <span v-if="!isEditMode">{{ element.cptTitle }}</span>
                <t-input v-model="element.cptTitle" v-else @blur="onBlur" @enter="onEnter" />
                <div v-if="element.cptOption.cptDataForm"
                  style="position: absolute;height: 100%;right: 0;width: 24px;top:0;">
                  <div style="width: 24px;height: 24px;margin-top: 8px;background-size: 100% 100%"
                    :style="{ backgroundImage: 'url(' + require('@/assets/icon/dataset/' + datasetIcons[element.cptOption.cptDataForm.dataSource] + '.png') + ')' }" />
                </div>
              </div>
            </template>
          </draggable>

参考:

http://t.csdnimg.cn/SDWxK

vue.draggable.next 中文文档 - itxst.com

  • 4
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值