vue实现的代办事项功能

代码语言:html

所属分类:表单美化

下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开

<!DOCTYPE html>
<html>
<head>
   
<meta charset="UTF-8">
   
<title>BFW NEW PAGE</title>
   
<script id="bfwone" data="dep=vue&err=0" type="text/javascript" src="http://repo.bfw.wiki/bfwrepo/js/bfwone.js"></script>
   
<script type="text/javascript">
        bready(function() {
            Vue.component('togglebutton', {
                props: ['label', 'name'],
                template: `
<div class="togglebutton-wrapper" v-bind:class="isactive ? 'togglebutton-checked' : ''">
               
<label v-bind:for="name">
               
<span class="togglebutton-label">{{ label }}</span>
               
<span class="tooglebutton-box"></span>
               
</label>
               
<input v-bind:id="name" type="checkbox" v-bind:name="name" v-model="isactive" v-on:change="onToogle">
               
</div>`,
                model: {
                    prop: 'checked',
                    event: 'change'
                },
                data: function () {
                    return {
                        isactive: false
                    }
                },
                methods: {
                    onToogle: function () {
                        this.$emit('clicked', this.isactive)
                    }
                }
            });

            var todolist = new Vue({
                el: '.bfw',
                data: {
                    newitem: '',
                    sortByStatus: false,
                    todo: [{
                        id: 1, label: "学习 VueJs", done: true
                    },
                        {
                            id: 2, label: "跑步 10 公里", done: false
                        },
                        {
                            id: 3, label: "访问bfw.wiki", done: false
                        }]
                },
                methods: {
                    addItem: function () {
                        this.todo.push({
                            id: Math.floor(Math.random() * 9999) + 10, label: this.newitem, done: false
                        });
                        this.newitem = '';
                    },
                    markAsDoneOrUndone: function (item) {
                        item.done = !item.done;
                    },
                    deleteItemFromList: function (item) {
                        let index = this.todo.indexOf(item)
                        this.todo.splice(index, 1);
                    },
                    clickontoogle: function (active) {
                        this.sortByStatus = active;
                    }
                },
                computed: {
                    todoByStatus: function () {

                        if (!this.sortByStatus) {
                            return this.todo;
                        }

                        var sortedArray = []
                        var doneArray = this.todo.filter(function (item) {
                            return item.done;
                        });
                        var notDoneArray = this.todo.filter(function (item) {
                            return !item.done;
                        });

                        sortedArray = [...notDoneArray,
                            ...doneArray];
                        return sortedArray;
                    }
                }
            });
        });
.........完整代码请登录后点击上方下载按钮下载查看

网友评论0