<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>ToDoList</title>
</head>
<style>
body{
background-color: #DDDDDD;
}
header{
background-color:black;
}
main{
width: 620px;
margin: 0 auto;
padding: 0;
}
header main{
display: flex;
justify-content: space-between;
}
header main p{
color: #DDDDDD;
}
header main input{
width: 364px;
height: 30px;
margin-top: 8px;
}
.top main .conduct{
display: flex;
justify-content: space-between;
}
ol{
list-style:none;
display: flex;
justify-content: space-between;
}
.bottom main .finish{
display: flex;
justify-content: space-between;
}
footer main{
display: flex;
justify-content: center;
}
footer main em{
color:#CDCDCD;
}
</style>
<body>
<div id="app">
<!-- 头部 -->
<header >
<main>
<p>ToDoList</p>
<input
type="text"
placeholder="添加ToDoList"
v-model.trim='task'
@keyup.enter='keyHandle'>
</main>
</header>
<!-- 列表 -->
<!-- 正在进行 -->
<div class="top">
<main>
<div class="conduct">
<h2>正在进行</h2>
<h2 v-text='list1.length'></h2>
</div>
<ol v-for='(item,index) in list1' >
<li>
<input type="checkbox" @click.prevent='transform(index, true)'/>
</li>
<li>
<input v-model.trim='item.task'>
</li>
<li>
<button @click='remove(index, true)'>-</button>
</li>
</ol>
</main>
</div>
<!-- 已完成 -->
<div class="bottom">
<main>
<div class="finish">
<h2>已经完成</h2>
<h2 v-text='list2.length'></h2>
</div>
<ol v-for='(item,index) in list2'>
<li>
<input checked type="checkbox" @click.prevent='transform(index)'/>
</li>
<li>
<input v-model.trim='item.task' />
</li>
<li>
<button @click='remove(index)'>-</button>
</li>
</ol>
</main>
</div>
<footer>
<main>
<span>Copyright © 2014 todolist.cn</span>
<em @click.prevent='clear'>清空</em>
</main>
</footer>
</div>
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
<script src=""></script>
<script>
var app = new Vue({
el: '#app',
data: {
task: '',
list1: [],
list2: []
},
methods: {
keyHandle() {
console.log('task', this.task)
if(this.task) {
this.list1.push({id: Date.now(), task: this.task})
}
this.task = ''
},
transform(index, flag) {
if(flag) {
this.list2 = this.list2.concat(this.list1.splice(index, 1))
}else{
this.list1 = this.list1.concat(this.list2.splice(index, 1))
}
},
remove(index, flag) {
if(flag) {
this.list1.splice(index, 1)
} else {
this.list2.splice(index, 1)
}
},
clear() {
this.list1 = []
this.list2 = []
}
}
})
</script>
</body>
</html>
用Vue仿做ToDoList
最新推荐文章于 2024-04-08 15:45:39 发布