zoukankan      html  css  js  c++  java
  • 二十一、todolist案例开发

    todolist案例开发要实现的效果图如下:

    todolist案例开发代码实现

    <!DOCTYPE html>
    <html>
    <head>
        <meta charset="utf-8">
        <title>todolist案例开发</title>
        <style>
            table{
                border: 1px solid black;
                text-align: center;
            }
            th{
                border: 1px solid black;
                background-color:royalblue;
                color: white;
                width: 200px;
            }
            td{
                border: 1px solid black;
            }
        </style>
    </head>
    <body>
        <script src="https://cdn.jsdelivr.net/npm/vue@2.6.14/dist/vue.min.js"></script>
        <div id='app'>
            <input type="text" v-model.trim='title'> <button type="button" @click='addItem()'>添加</button>
            <table>
                <thead>
                    <tr>
                        <th><label><input type="checkbox" @click='checkedAllItems()' v-model='checkedAll' >全选</label></th>
                        <th>标题</th>
                        <th>管理</th>
                    </tr>
                </thead>
                <tbody>
                    <tr v-for="(item,index) in newItems" :key="index">
                        <td><input type="checkbox" @click='checkedItem(index)' v-model='item.checked'></td>
                        <td>{{item.title}}</td>
                        <td @click='deleteItem(index)'>删除</td>
                    </tr>
                    <tr>
                        <td colspan="3" align="left">
                            <button type="button" @click='deleteAll'>批量删除</button> 
                            <button type="button" @click='submitItems()'>提交</button> 
                        </td>
                    </tr>
                </tbody>
            </table>
            <span>提交后的数据:{{itemsSubmit.length>0?itemsSubmit:""}}</span>
        </div>
        <script>
            let data={
                items:[],//对象数组
                itemObj:{},//临时数据的对象
                title:'',//临时数据的对象属性
                checkedAll:false,//全选项的复选框状态值
                itemsSubmit:[]//临时存储被提交的数据
            }
            new Vue({
                el:'#app',
                data(){
                    return data;
                },
                methods:{
                    addItem(){//1、添加数据
                        if(this.title!=""){
                            this.itemObj.title=this.title;
                            this.itemObj.checked=false;//默认复选框为false
                            this.items.push(this.itemObj);
                            //console.log(this.itemObj,this.items);
                            this.title="";
                            this.itemObj={};
                            this.isCheckedAll();
                        }
                    },
                    checkedItem(val){//3、当前操作的item的复选框
                        this.items[val].checked=!this.items[val].checked;
                        this.$set(this.items,val,this.items[val]);
                        //console.log(val);
                        //console.log(this.items[val].checked);
                        this.isCheckedAll();
                    },
                    isCheckedAll(){//4、根据所有的item判断是否要改变全选项的复选框状态
                        if(this.items.length>0){
                            this.checkedAll=true;
                            for(let i=0;i<this.items.length;i++)
                            {
                                if(!this.items[i].checked){
                                    this.checkedAll=false;
                                    break;
                                }
                            }
                        }else{
                            this.checkedAll=false;
                        }
                    },
                    checkedAllItems(){//5、当前操作的全选的复选框。根据全选项的复选框状态改变所有的item的复选框状态
                        this.checkedAll=!this.checkedAll;
                        if(this.items.length>0){
                            for(let i=0;i<this.items.length;i++)
                            {
                                this.items[i].checked=this.checkedAll;
                                this.$set(this.items,i,this.items[i]);
                            }
                        }           
                    },
                    deleteItem(val){//6、删除item
                      this.items.splice(val,1); 
                      this.isCheckedAll(); 
                    },
                    deleteAll(){//7、批量删除item
                        if(this.items.length>0){
                            for(let i=0;i<this.items.length;i++){
                                if(this.items[i].checked){
                                    this.items.splice(i--,1);//注意在for循环中使用splice方法时候,必须i--。
                                }
                            }
                        }
                        this.isCheckedAll();
                    },
                    submitItems(){//8、提交数据
                        this.itemsSubmit=[];
                        if(this.items.length>0){
                            for(let i=0;i<this.items.length;i++){
                                if(this.items[i].checked){
                                    this.itemsSubmit.push(this.items[i]);
                                }
                            }
                            this.itemsSubmit=JSON.stringify(this.itemsSubmit);
                        }
                        
                    }
                },
                computed:{
                    newItems(){//2、返回符合条件的新数组
                        if(this.items.length>0){
                            let newItems=[...this.items];
                            return newItems;
                        }
                    }
                }
            });
        </script>
    </body>
    </html>
  • 相关阅读:
    Windows上安装配置SSH教程(3)——在Windows系统上安装与配置WinSCP
    Windows上安装配置SSH教程(2)——在Windows XP和Windows 10上安装并配置OpenSSH for Windows
    Windows上安装配置SSH教程(1)——知识点汇总
    Windows上安装配置SSH教程(5)——win10下使用Cygwin+Expect自动登陆ssh
    Win10安装cygwin并添加apt-cyg
    Windows上安装配置SSH教程(4)——WinSCP+OpenSSH 使用公钥自动登陆
    地线干扰与抑制(转)
    AMBA总线协议AHB、APB
    springcloud(六):配置中心git示例
    springcloud(四):熔断器Hystrix
  • 原文地址:https://www.cnblogs.com/Strugglinggirl/p/15240810.html
Copyright © 2011-2022 走看看