vue-draggable部分保留原位 部分可拖拽 不可改变不可拖拽元素位置

vue-draggable部分保留原位 部分可拖拽 不可改变不可拖拽元素位置

   <draggable class="list" :options="{group:'people',animation:150,ghostClass:'sortable-ghost',chosenClass:'chosenClass',scroll:false,scrollSensitivity:200}" v-model="storeList" @end="end" handle=".mover" filter=".forbid" :move="onMove">
            <div class="route-item " v-for="item,index in listRouteToady.storeList" :key="index">
              <div><span>{{item.slot}}.</span>{{item.storeName}}</div>
              <div :class="item.slot==1||item.slot==3?'mover forbid':'mover'"><span>本月还没有完成</span><img v-if="!(item.slot==1||item.slot==3)" :src="dragIcon" alt=""></div>
            </div>
          </draggable>
  onMove (e) {
      console.log(e);
      //不允许停靠
      if (e.relatedContext.element.slot == 3 || e.relatedContext.element.slot == 1) return false;
      //false表示阻止拖拽
      return true;
    },
    end () {
      let slotData = []
      let storeList = []
      //筛选出修改位置的数组 再将保留原位置插入回原位
      storeList = this.storeList.filter(item => {
        return !(item.slot == 1 || item.slot == 3)
      })
      this.storeList.forEach((item, index) => {
        if (item.slot == 1 || item.slot == 3) {
          storeList.splice(item.slot - 1, 0, item)
        }
      })
      console.log(storeList)
      storeList.forEach((item, index) => {
        slotData.push({
          id: item.id,
          sort: index + 1
        })
      })
      this.storeList = storeList
    },
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值