相关文章推荐
阳刚的煎鸡蛋  ·  python ...·  2 年前    · 

官方文档
录屏软件 screenToGif (将视频转为Gif,我认为简单又好操作)

我深知,文字的感知不如图片,图片的感知不如视频,所以希望在每一次的记录中,都有种收货与喜悦,虽然以前用过这个插件,相当强大的插件,但第一次从0到1,所以记录美好时刻~

  • 1.多列之间想要互相拖动

要有相同的name ,如: name:'site'

  • 2.多列直接想要拷贝,不移除

设定pull属性 ,如 pull:'clone'

  • 3.要想在列中不添加参数

设定put属性,如: put:false ,我需要能够添加列信息,所以并没有使用此属性

  • 以上完整写法: :group="{name:'site',pull:'clone',put:'false'}"
  • 1.拖拽并不生效

以为是属性设定欠缺,但最后 F12 查看后发现, 我的div并没有撑满整个父div ,添加 height:100% 即可

  • 2.当我使用Dropdown组件时,并不显示下拉

解决方案:移除官网中的 < transition-group > ,具体原因不知道,但移除后确实显示了下拉信息

  • 3.当我想要列信息不要重复显示,使用new Set去重时

报错了: Computed property "setParamListC" was assigned to but it has no setter. setParamListC 是我第一个列所双向绑定的列
解决方案 :是因为使用了 v-model 进行了数据修改,所以需要添加set方法

  computed: {
	setParamListC: {
	 get () {
	    return [...new Set(this.setParamList)]
	  set () { }
 

本来是用监听setParamList来进行去重操作,但报错了,报错信息如下:
You may have an infinite update loop in watcher with expression "setParamLis
说是可能会陷入死循环,于是乎灵机一动,用了计算属性(Computed),具体为什么,不知道,有一种感觉可行,然后试了一下真的可以了。应该和新建一个参数重新赋值一样的吧。

数据源(左侧列)

<div class="field">
 <div class="field-drag" v-if="isShowParamList">
   <!-- ,put:false -->
   <draggable v-model="setParamListC" :group="{name:'site',pull:'clone'}" style="height:99%">
     <div class="field-item" v-for="(item) in setParamListC" :key="item">{{item}}</div>
   </draggable>
 </div>
 <div class="dot" @click="isShowParamList=!isShowParamList">
   <Icon type="md-arrow-dropleft" />
 </div>
 <!-- <draggable>
   <div class="field-item" :key="index">{{item}}</div>
 </draggable> -->
</div>
computed: {
    setParamListC: {
      get () {
        return [...new Set(this.setParamList)]
      set () { }

行,列代码相同,绑定参数不同

<FormItem label="行">
  <div class="row">
    <draggable group="site" v-model="rowParamList" class="site-flex" chosenClass="item">
      <Dropdown v-for="(item,index) in rowParamList" :key="`${item}${index}`" transfer trigger="click" @on-click="name=>dropDownClick(name,index,'row')">
        <div class="item">
          <Icon type="ios-arrow-down"></Icon>
          {{item}}
        </div>
        <DropdownMenu slot="list">
          <Dropdown placement="left-start" transfer>
            <DropdownItem>
              <Icon type="ios-arrow-forward"></Icon>
            </DropdownItem>
            <DropdownMenu slot="list">
              <DropdownItem :name="`${item}`">原值</DropdownItem>
              <DropdownItem :name="`Count(${item})`">计数</DropdownItem>
            </DropdownMenu>
          </Dropdown>
        </DropdownMenu>
      </Dropdown>
    </draggable>
  </div>
</FormItem>
                                    最近在学习一个可视化搭建的项目,里面用的拖拽就是draggable.js。看了几个中文的文档,有很多坑,可能是没有及时更新的原因。
建议去看vuedraggable的官方文档,只不过是英文的。官方文档:https://github.com/SortableJS/Vue.Draggable;
由于vue3已经是默认版本了,所以vuedraggable也对应vue2.0和3.0有各自的版本,直接使用基本命令安装:
npm install vuedraggable --save
会默认安装2.1左右的
在项目中总会遇见一些需要排序的数据 , 那我们可以通过vuedraggable 进行拖动排序 。
draggable为基于sortable.js的vue组件,用以实现拖拽功能。特性支持触摸设备支持拖拽和选择文本支持智能滚动,支持不同表之间的拖拽。
npm i -S vuedraggable
import draggable from "vuedraggable"
部分代码:
实际应用:(已应用到某大型活动中…)
# serve with hot reload at localhost:8080
npm run dev
# build for production with minification
npm run build
# build for production and view the bundle analyzer report
npm run build --report
 参见演示:  : 
 有关工作原理的详细说明,请查看的和。
                                    官网地址:https://www.npmjs.com/package/vuedraggable
Draggable为基于Sortable.js的vue组件,用以实现拖拽功能。
npm i -S vuedraggable
或者引入:
                                    vue.draggable的clone拷贝实现常用菜单功能vue.draggable的clone拷贝实现常用菜单功能,从一个拖拽拖动到另外一个组而原来的那种组的元素不移除。先看例子从左边的元素拖动到右边试试看,然后再从右边拖回到左边。例子相关属性属性说明clone:options="{group:{name: 'itxst',pull:'clone'},sort: true}"group属性的c...
                                    在功能中有一项是需要实现拖拽的。虽然最终项目没有采取这样的拖拽方式,但是,当初也是费了九牛二虎之力完成了这个功能。增加了对函数的更深理解。下面就再重现一下代码。
这是张鑫旭的关于drag与drop函数的介绍,很详细:http://www.zhangxinxu.com/wordpress/2011/02/html5-drag-drop-%E6%8B%96%E6%8B%BD%E4%B8%8E%E6%
                                    简单的拖动使用{{i.name}}import draggable from "vuedraggable"export default {components: {draggable},data () {return {list: [{ id: 1, name: 'aaa' },{ id: 2, name: 'bbb' },{ id: 3, name: 'ccc' }]}},methods: {s...