vue.js添加待办事项清单表单代码,一款基于vue.js创建待办事项列表表单ui模板。
js代码
<script src=\"js/vue.min.js\"></script> <script> 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: \'#todolist\', data: { newitem:\'\', sortByStatus:false, todo: [ { label: \"Learn VueJs\", done: true }, { label: \"Code a todo list\", done: false }, { label: \"Learn something else\", done: false } ] }, methods: { addItem: function() { this.todo.push({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; } } }); </script>
暂无评论内容