vue做一个上移和下移,删除的li 功能

效果图:

思路就是冒泡原理,把数据放到一个空数组,对其进行排序, 单选框用到的是iview 。

具体实现代码:

 <div v-for="item in singledLists" :key="item.index" >   // 数组singledLists
            <Checkbox @on-change="checkSingle" :disabled="isDisabled" v-model="item.isRight" class="mb10" >
                <Input  :value="item.content" v-model="item.content" style="width: 300px;marginLeft:.4rem;" />   // item.content 动态设置input
            </Checkbox>
            <span style="cursor:pointer;" @click="moveUp(item)">上移</span>
            <span style="cursor:pointer;" @click="moveDown(item)">下移</span>
            <span style="cursor:pointer;" @click="singleAnswerDelete(item)">删除</span>
</div>
<div class="ml30"><Button class='newColor' @click="addSingleAnswer" :class="{'hideButton':isShow}" type="primary">添加选项</Button></div>  // hideButton{dispaly:none} 控制显示和隐藏 ,isShow:false ;

 // 添加

// 添加答案选项
        addSingleAnswer() {
          let _this = this;
          _this.singledLists.push({});   // 置空
          if (_this.questionStyle === "single") {
            if (_this.singledLists.length >= 4) {
              _this.isShow = true; //隐藏按钮添加选项  
              _this.$Message.info("单选题最多添加四个选项!");
            }
          } else if (_this.questionStyle === "multi") {
            if (_this.singledLists.length >= 6) {
              _this.isShow = true; //隐藏按钮添加选项
              _this.$Message.info("多选题最多添加六个选项!");
            }
          }
        },

 

 

// 以B为基点上移 (根据index值)
moveUp(item) { console.log(item) console.log(
this.singledLists) let index = this.singledLists.indexOf(item); // 获取的index。或者通过v-for 遍历传过的index,可以简化此步骤。 if (this.singledLists.length > 1 && index !== 0) { var temp = this.singledLists[index - 1].content; // 这三行的含义可见上面示意图 this.singledLists[index - 1].content = this.singledLists[index].content; this.singledLists[index].content = temp; } },

      
// 下移
        moveDown(item) {
          let index = this.singledLists.indexOf(item);
          if( this.singledLists.length > 1 && index != this.singledLists.length - 1 ) {
            var temp = this.singledLists[index + 1].content;     // 以c为基点
            this.singledLists[index + 1].content = this.singledLists[index].content;
            this.singledLists[index].content = temp;
          }
        },
        // 删除
        singleAnswerDelete(item) {
          this.isShow = false;
          let index = this.singledLists.indexOf(item);
          if (index > -1) {
            this.singledLists.splice(index, 1);
          }
        },

 

转载于:https://www.cnblogs.com/panax/p/10970020.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值