微信小程序Todolist demo

页面

<view class="topbox">
  <image src="../../img/home.png" bindtap="addlist"/>
  <input type="text" placeholder="这里是输入框" bindinput='getlist' bindconfirm='addlist' value="{{searchinput}}"/>
</view>
<view class="bodys" wx:for="{{list}}" wx:key='index'>
  <radio checked="{{item.eflag}}" bindtap='changeflag' data-inde='{{index}}'></radio>
  <text class="{{item.eflag == true ? 'lines' : ''}}">{{item.name}}</text>
  <text class="dev" bindtap='remove' data-index='{{index}}'>X</text>
</view>
<view class="footer">
  Toggle all<text>{{num}}</text> items <text bindtap="allremove">clear</text> completed
</view>

样式

view{
  margin: auto;
}
input{
  width: 400rpx;
}
image{
  width: 50rpx;
  height: 50rpx;
  margin-right: 10px;
}
.topbox{
  display: flex;
  padding: 5px 10px;
}
.bodys{
  text-align: center;
}
.footer{
  text-align: center;
  color: #c5c5c5;
}
.lines{
  text-decoration-line: line-through;
}
.dev{
  background-color: slategrey;
  border-radius: 50%;
}

js代码

// pages/TodoList/TodoList.js
Page({
  // 页面的初始数据

  data: {
    list: [{
        name: '不是我',
        eflag: false
      },
      {
        name: '就是你',
        eflag: true
      },
      {
        name: '真是他',
        eflag: false
      }
    ],
    lcdata: '',
    num: 0,
    searchinput:''

  },
  //获取input数据
  getlist(e) {
    console.log(e);
    this.setData({
      lcdata: e.detail.value
    })
    // console.log(this.data.lcdata);
  },
  //添加数据
  addlist(e) {
    console.log(e);
    let arr = {
      name: this.data.lcdata,
      eflag: false
    }
    // console.log(arr);
    this.data.list.push(arr);
    this.setData({
      list: this.data.list,
    });

    //置空
    this.setData({
      searchinput: '',
    })


    //数量变化
    this.setData({
      num: this.data.num + 1
    })

  },
  //删除数据
  remove(e) {
    console.log(e);
    let arr = e.currentTarget.dataset.index
    
    //数量变化
    if (this.data.list[arr].eflag == false) {
      this.data.num = this.data.num-1
      this.setData({
        num: this.data.num
      })
      console.log('减一');
    }else{
      this.setData({
        num: this.data.num 
      })
      console.log('不减');
    }

    this.data.list.splice(arr, 1);
    this.setData({
      list: this.data.list,
    });


  },
  //状态切换
  changeflag(e) {
    console.log(e);
    let ind = e.currentTarget.dataset.inde
    this.data.list[ind].eflag = !this.data.list[ind].eflag
    this.setData({
      list: this.data.list,
    })
    //数量变化
    if (this.data.list[ind].eflag == false) {
      this.setData({
        num: this.data.num + 1
      })
    } else {
      this.setData({
        num: this.data.num - 1
      })
    }

  },
  //全部清空
  allremove(){
    this.setData({
      list: [],
      num:0
    })
  },

  //初始渲染数据
  onReady: function () {
    //数量统计
    this.data.list.forEach(item => {
      if (item.eflag == false) {
        this.setData({
          num: this.data.num + 1
        })
      }
    })
  },
})

效果图

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

温柔于心动

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值