首页 前端知识 Vue如何实现可视化拖拽表单(一)

Vue如何实现可视化拖拽表单(一)

2024-08-18 22:08:19 前端知识 前端哥 977 850 我要收藏

Vue如何实现可视化拖拽表单(一)

在我们平时做需求中,往往会遇到拖拽模块的需求。刚开始没有接触过拖拽的时候,会对拖拽有陌生感,会比较担心实现起来会比较的复杂,可能自己很难搞定,低代码平台基本都会涵盖拖拽功能,今天来看一下到底是怎么实现的。

以云程低代码平台做下效果演示
在这里插入图片描述
使用vuedraggable组件

Vuedraggable 是标准的组件式封装,并且将可拖动元素放进了transition-group上面,过渡动画都比较好

安装命令

npm i vuedraggable
yarn add vuedraggable

引入并注册

 import draggable from 'vuedraggable'
  export default {
        components: {
            draggable,
        },
项目Value
drag可拖动的项目被拖动
dragstart拖动结束(例如放开鼠标)
dragend用户完成元素拖动后触发
dragenter拖动的项目进入可放置元素
dragleave可拖动的项目离开可放置元素
dragover可拖动项目在可放置元素上移动(每一百毫秒左右调用一次)
drop可拖动项目被放置在可放置元素上

dragenter和dragover事件的默认行为是拒绝接受任何被拖放的元素。因此,我们必须阻止浏览器这种默认行为。e.preventDefault();

组在使用的时候,可以通过v-model来双向绑定本地data,如果需要更新或者是触发父组件监听的事件,可以在updated()中去emit

基础用法–拖拽排序

 <draggable v-model="selectItem.customize.linkList" group="someGroup" animation="1000" item-key="id">
          <template v-for="(item, index) in selectItem.customize.linkList">
            <div class="right-card" style="margin-top: 10px">
              <a-form-item label="链接地址">
                <a-select size="small" v-model="item.url">
                  <a-select-option v-for="(site,index) in searchMenuOptions" :key="index" :value="site.path">
                    {{ site.meta.title }}
                  </a-select-option>
                </a-select>
              </a-form-item>
              <a-form-item label="打开方式">
                <a-select v-model="item.openType" size="small">
                  <a-select-option value="_self">当前窗口</a-select-option>
                  <a-select-option value="_blank">新窗口</a-select-option>
                </a-select>
              </a-form-item>
              <a-form-item label="图标选择">
                <ych-icon-select v-model="item.icon" write :iconfont="true" :size="'small'"></ych-icon-select>
              </a-form-item>
            </div>
          </template>
        </draggable>

效果展示
在这里插入图片描述

转载请注明出处或者链接地址:https://www.qianduange.cn//article/16144.html
标签
评论
发布的文章

无涯教程-HTML5 - MathML

2024-08-25 23:08:46

大家推荐的文章
会员中心 联系我 留言建议 回顶部
复制成功!