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

Posted Lumbago~

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了微信小程序简版(todolist)实现相关的知识,希望对你有一定的参考价值。

简版todolist图片

demo.wxml文件

<!--pages/demo02/demo02.wxml-->
<view class="inp1">
  <!-- 添加数据 -->
  <input type="text" value="input" bindconfirm="pushinp" placeholder="Anything here..." />
  <view style="margin-top: 20px;">
      <!-- 数据循环渲染 -->
      <view wx:for="todos" class="tab">
        <!-- 切换图标 -->
        <icon  hidden="item.completed" bindtap="booleans" data-indexs="index" class="icon-small icons" type="circle" size="23"></icon>
        <icon  hidden="!item.completed"  bindtap="booleans" data-indexs="index" class="icons" type="success" size="23"></icon>
        <!-- 数据 -->
        <view hidden="item.showinp" style="item.completed==true?'text-decoration:line-through':''"
        bindtap="inputs" data-indexs="index" >item.name</view>
        <!-- 修改数据 -->
        <input hidden="!item.showinp" bindblur="hideinp" data-indexs="index" type="text" style="height:25px; width:160px;" value="item.name" />
        <!-- 点击删除 -->
        <icon bindtap="dels" data-dels="index" class="icon-small icons" type="cancel" size="23"></icon>
      </view>
  </view>
  <!-- 显示已完成条数 -->
  <view style="margin-top: 20px; font-size:14px;">Toggle allnum items leftClear completed</view>
</view>

demo.js文件

// pages/demo02/demo02.js
Page(
  /**
   * 页面的初始数据
   */
  data: 
    input:'',
    todos:[
      name:'Learing WEAPP',completed:false,showinp:false,
      name:'Learing javascript',completed:true,showinp:false,
      name:'Learing html',completed:false,showinp:false
    ],
    num:2,
  ,
  // 添加
  pushinp(e)
    // 获取值
      let val = e.detail.value;
      let obj=
          name:val,
          completed:false,
          showinp:false
      
      if(val=='')
        console.log('值为空!请输入数据')
        return 
      
       // push添加数据
      this.data.todos.push(obj);
      // 条数+1
      this.data.num++
      this.setData(
        todos:this.data.todos,
        input: this.data.input,
        num:this.data.num
      )
  ,
  // 删除
  dels(q)
    // 获取下标
      let indexs=q.currentTarget.dataset.dels
      // 如果是不选中的情况下条数才-1
      if(!this.data.todos[indexs].completed)
        this.data.num--;
      
      // 截取删除当前数据
      this.data.todos.splice(indexs,1);
      this.setData(
        todos:this.data.todos,
        num:this.data.num
      )
  ,
  // 判断复选框
  booleans(val)
    // 获取下标
        let indexs=val.currentTarget.dataset.indexs
        // 反向赋值
        this.data.todos[indexs].completed=!this.data.todos[indexs].completed;
        // 判断条数增减
        if(this.data.todos[indexs].completed)
          this.data.todos[indexs].showinp=false
          this.data.num--;
        else
          this.data.num++;
        
        this.setData(
          todos:this.data.todos,
          num:this.data.num
        )
  ,
  // 显示修改框
  inputs(val)
    // 获取下标
    let indexs=val.currentTarget.dataset.indexs
    // 判断是否修改
    if(this.data.todos[indexs].completed==true)
      console.log('不能修改')
      return 
  
  // 反向赋值
    this.data.todos[indexs].showinp=!this.data.todos[indexs].showinp
    this.setData(
      todos:this.data.todos
    )
  ,
  // 失去焦点
  hideinp(val)
    // 获取当前下标
    let indexs=val.currentTarget.dataset.indexs;
    // 获取当前name值
    let vals=val.detail.value
    // 赋值
    this.data.todos[indexs].name=vals
    // 将input框换成文本
    this.data.todos[indexs].showinp=!this.data.todos[indexs].showinp
    this.setData(
      todos:this.data.todos
    )
  
)

demo.wxss文件

input
  border: 1px solid rgb(199, 185, 185);
  width: 260px;
  /* width: calc(); */
  height: 40px;

.inp1
  width: 100%;
  display: flex;
  justify-content: center;
  margin-top: 50px;
  flex-wrap: wrap;
  align-items: center;
  flex-direction: column;

.tab
  width: 220px;
  height:40px;
  border: 1px solid #000;
  line-height: 30px;
  font-size: 13px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-top: -1px;

.icons
  line-height: 30px;
  margin-top: 20px;
  margin-left: 10px;
  margin-right: 10px;

以上是关于微信小程序简版(todolist)实现的主要内容,如果未能解决你的问题,请参考以下文章

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

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

初学微信小程序 TodoList

初学微信小程序 TodoList

微信小程序Todolist demo

微信小程序实战之百思不得姐精简版