微信小程序Todolist demo

Posted Frazier_梁超

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了微信小程序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
        })
      }
    })
  },
})

效果图

以上是关于微信小程序Todolist demo的主要内容,如果未能解决你的问题,请参考以下文章

微信小程序简版(todolist)实现

微信小程序简版(todolist)实现

微信小程序的简单应用-Todolist

初学微信小程序 TodoList

初学微信小程序 TodoList

微信小程序代码片段