IMWeb训练营-ToDoList
来源:互联网 发布:上古卷轴5ece捏脸数据 编辑:程序博客网 时间:2024/05/22 11:45
功能说明:gitHub地址:https://github.com/xinzikang/Readily-practice
a.添加/删除任务;
b.筛选已完成/未完成任务,全选按钮;
c.若所有任务都被点选,则全选按钮自动被勾选.
效果截图:
没有内容时,任务列表项显示暂无内容
添加任务后,选中的任务表示已完成,颜色变灰,并且若所有任务都选中,则底部的全选按钮自动勾选。
提供筛选已完成/未完成的任务功能,并显示。提供删除功能。
核心代码:
<template> <div id="app"> <div class="warpper"> <div class="title">To-Do-List</div> <div class="content"> <div class="top"> <input type="text" placeholder="请输入内容" v-model="text"> <button @click="addList">确定</button> </div> <div class="text-list" v-if="listShow.length"> <ul> <li v-for="(item,index) in listShow" :class="{finshed:listShow[index].isFinshed}"> <input type="checkbox" @click="tabFinshed(index)" :checked="listShow[index].isFinshed"> {{item.text}} </li> </ul> </div> <div class="bottom" v-if="listAll.length"> <label class="btn" @click="allChecked"> 全选<input type="checkbox" :checked="All"> </label> <label class="btn" @click="finshedChecked"> 已完成<input type="checkbox" :checked="Finshed"> </label> <label class="btn" @click="unFinshedChecked"> 未完成<input type="checkbox" :checked="Unfinshed"> </label> <label class="btn"> <input type="button" value="删除" @click="remove"> </label> </div> <div class="no-list" v-if="!listShow.length"> <p>暂时没有内容</p> </div> </div> </div> </div></template>
<script>export default { data() { return { All: false, Finshed: false, Unfinshed: true, listAll: [], //所有的list内容 listShow: [], text:'' //input输入框中的内容 } }, methods: { addList() { if( this.text == ''){ return; } let newList = {}; newList.id = this.listAll.length; newList.text = this.text; newList.isFinshed = false; this.listAll.push(newList); if(this.Unfinshed) { this.listShow.push(newList); } if(this.All) { this.listShow.push(newList); this.All = false; } else{ if(!this.All && !this.Finshed && !this.Unfinshed){ //三种类型都咩有打勾,则默认全选 this.listShow.push(newList); } } this.text = ''; }, //每个list前面的选择框 tabFinshed(index) { this.listShow[index].isFinshed = !this.listShow[index].isFinshed; this.All = true; this.listShow.forEach((item) => { if(!item.isFinshed){ this.All = false; } }) if(this.All){ this.Finshed = false; this.Unfinshed = false; }// console.log(this.listShow[index].isFinshed); }, allChecked() { this.All = !this.All; this.Finshed = false; this.Unfinshed =false; this.listShow = []; this.listAll.forEach((item) => { this.listShow.push(item); }); if(this.All){ this.listShow.forEach((item) => { item.isFinshed = true; }) } else{ this.listShow.forEach((item) => { item.isFinshed = false; }) } }, finshedChecked() { this.listShow = []; this.Finshed = !this.Finshed; this.Unfinshed =false; this.All = false; this.listAll.forEach((item) => { if(item.isFinshed) { this.listShow.push(item); } }) }, unFinshedChecked() { this.listShow = []; this.Unfinshed = !this.Unfinshed; this.All = false; this.Finshed = false; this.listAll.forEach((item) => { if(!item.isFinshed) { this.listShow.push(item); } }) }, remove() { //删除的bug,因为listAll是会动态变化的,所以可以采取for循环的方式,i-- /*let a = []; this.listAll.forEach((item) => { a.push(item); }); a.forEach((item,index) => { if(item.isFinshed) { //完成前面有对勾 if(index == 0) { this.listAll.splice(index,1); } else{ index -=1; this.listAll.splice(index,1); } } });*/ let len = this.listAll.length; for(let i=0;i<this.listAll.length;i++){ if(this.listAll[i].isFinshed){ this.listAll.splice(i,1); i--; } } if(this.listAll.length === len) { //如果listAll的长度没哟变化,说明没有需要删除的项,直接推出 return; } console.log(this.listAll); this.listShow = []; if(this.All){ this.listAll.forEach((item) => { this.listShow.push(item); }) } if(this.Finshed) { this.listAll.forEach((item) =>{ if(item.isFinshed){ this.listShow.push(item); } }) } if(this.Unfinshed){ this.listAll.forEach((item) => { if(!item.isFinshed){ this.listShow.push(item); } }) } } }}</script>
0 0
- IMWeb训练营-ToDoList
- IMWeb训练营作业-toDoList
- 【IMWeb训练营作业】Todolist
- IMWEB训练营作业TODOLIST
- IMWeb训练营作业-todolist
- 【IMWeb训练营作业】 todoList
- 【IMWeb训练营作业】todolist
- 【IMWeb训练营作业】TodoList
- IMWeb训练营作业 todolist
- [IMWeb训练营作业]TodoList
- [IMWeb训练营作业]Todolist
- 【IMWeb训练营作业】ToDoList
- 【IMWeb训练营作业】Todolist
- 【IMWeb训练营作业】 todolist
- IMWeb训练营作业--todolist
- IMWeb训练营作业--todolist
- 【IMWeb训练营作业】todoList
- 【IMWeb训练营作业1】-TodoList
- Aizu2224 最大生成树??
- 初识 jquery(1)
- 介绍Scanner、Random类
- ios开发 使用系统相册和相机
- sdut2605——A^X mod P
- IMWeb训练营-ToDoList
- SQL缓存的命令 l或list,/或r,n,del n,a,c
- POJ 3669 Meteor Shower(bfs)
- Java集合框架
- PCB布线规则
- 【寒江雪】静态测试之代码分析
- C++抽象编程——递归策略(2)——子集和问题
- ReactNative实现emoji表情图文混排方案
- .....数组操作