Vue待办事项的实现

<!DOCTYPE html>

<html>

<head>

<meta charset="utf-8">

<title></title>

</head>

<body>

<style>

* {

padding: 0;

margin: 0;

}

ul,

ol {

list-style: none;

}

a {

text-decoration: none;

}

body {

background-color: darkgray;

}

header {

width: 100%;

min-width: 1434px;

height: 50px;

background-color: rgba(47, 47, 47, 0.98);

}

header section {

width: 600px;

height: 50px;

margin: 0px auto;

}

header section label {

width: 100px;

color: rgb(221, 221, 221);

line-height: 50px;

font-size: 24px;

float: left;

}

header section input {

width: 360px;

height: 24px;

margin-top: 12px;

float: right;

padding-left: 20px;

padding-top: 1px;

padding-right: 2px;

padding-bottom: 1px;

border-radius: 5px 5px 5px 5px;

border: none;

outline: none;

}

section h2 {

width: 600px;

height: 32px;

margin: 0px auto;

margin-top: 20px;

margin-bottom: 20px;

}

section span {

float: right;

background-color: rgb(230, 230, 250);

width: 9px;

height: 20px;

padding-left: 5px;

padding-right: 5px;

border-radius: 50px;

font-size: 14px;

line-height: 20px;

}

section {

width: 600px;

margin: 0px auto;

}

footer {

width: 600px;

margin: 0px auto;

text-align: center;

color: rgb(102, 102, 102);

font-size: 14px;

}

footer a {

color: rgb(153, 153, 153);

}

ol li{

width: 600px;

height: 32px;

position: relative;

margin-bottom: 10px;

}

ol li input{

width: 22px;

height: 22px;

margin-top: 2px;

top: 2px;

left: 10px;

margin-left: 4px;

position: absolute;

}

ol li p{

width: 506px;

height: 32px;

float: left;

padding-left: 45px;

padding-right: 45px;

background-color: rgb(255, 255, 255);

border-left: 5px solid rgb(98, 154, 156);

line-height: 32px;

}

ol li a{

width: 14px;

height: 12px;

right: 5px;

top: 5px;

position: absolute;

border: 6px solid rgb(255, 255, 255);

background-color: rgb(204, 204, 204);

margin-left: 2px;

font-size: 14px;

padding-left: 6px;

border-radius: 14px 14px 14px 14px;

color: rgb(255, 255, 255);

}

ul li{

width: 600px;

height: 32px;

position: relative;

margin-bottom: 10px;

}

ul li input{

width: 22px;

height: 22px;

margin-top: 2px;

top: 2px;

left: 10px;

margin-left: 4px;

position: absolute;

}

ul li p{

width: 506px;

height: 32px;

float: left;

padding-left: 45px;

padding-right: 45px;

background-color: rgb(255, 255, 255);

border-left: 5px solid rgb(98, 154, 156);

line-height: 32px;

}

ul li a{

width: 14px;

height: 12px;

right: 5px;

top: 5px;

position: absolute;

border: 6px solid rgb(255, 255, 255);

background-color: rgb(204, 204, 204);

margin-left: 2px;

font-size: 14px;

padding-left: 6px;

border-radius: 14px 14px 14px 14px;

color: rgb(255, 255, 255);

}

</style>

<div id="app">

<header>

<section>

<form action="javascript:postaction()" id="form">

<label for="title">ToDoList</label>

<input type="text" id="title" name="title" placeholder="添加ToDo" required="required"

autocomplete="off" v-model="message" @keydown="down($event)">

</form>

</section>

</header>

<section>

<!-- οnclick="save()" -->

<h2>正在进行 <span id="todocount">{{arr.length}}

</span></h2>

<ol id="todolist" class="demo-box">

<li draggable="true"><input type="checkbox" @change="update(index)" v-for="(item,index) in arr" :key="item">

<p id="p-0" οnclick="edit(0)">{{item}}</p><a href="javascript:remove(0)" @click="removed(index)">-</a>

</li>

</ol>

<h2>已经完成 <span id="donecount">{{Arrays.length}}</span></h2>

<ul id="donelist" >

<li draggable="true"><input type="checkbox" @change="date(index)" v-for="(item,index) in Arrays" :key="item" checked >

<p id="p-0" οnclick="edit(0)">{{item}}</p><a href="javascript:remove(0)" @click="remove(index)">-</a>

</li>

</ul>

</section>

<footer>

Copyright © 2024 todolist.cn <a href="javascript:clear();" @click="clear()">clear</a>

</footer>

</div>

<script src='lib/vue.global.js'></script>

<script>

const {

createApp

} = Vue

const app = createApp({

data() {

return {

message: '',

arr: \[\],

Arrays:\[\]

}

},

methods: {

down(e) {

if (e.keyCode === 13&&this.message.trim()!='') {

this.arr.push(this.message)

this.message=' '

}

},

update(i){

this.Arrays.push(this.arri)

this.arr=this.arr.filter((item,index)=>{

return i!=index

})

},

date(i){

this.arr.push(this.Arraysi)

this.Arrays=this.Arrays.filter((item,index)=>{

return i!=index

})

},

remove(i){

this.Arrays=this.Arrays.filter((item,index)=>{

return i!=index

})

},

removed(i){

this.arr=this.arr.filter((item,index)=>{

return i!=index

})

},

clear(){

this.Arrays=\[\]

this.arr=\[\]

}

}

})

app.mount('#app')

</script>

</body>

</html>

相关推荐
子兮曰2 天前
jev-ultrafast 深度解析:7 秒订机票的浏览器 Agent 是如何炼成的
前端·后端·agent
子兮曰2 天前
Jev 爆发一周:7 秒 Agent 背后的 System One 生态与三场争议
前端·后端·ai编程
前端小万2 天前
写公众号赚了 3000 块后,我做了一款叫 "一键成稿" 的软件
前端·微信小程序
爱勇宝2 天前
ZCode 开源 24 小时:一份没有历史的账本,回答不了"有没有偷代码"
前端·后端·chatglm (智谱)
A黄俊辉A2 天前
uniapp webview中实现 app和内嵌的H5双向通信
vue.js·json
三十而立洋2 天前
Cookie 详解:从产生到安全,一次讲透
前端·javascript
卡布鲁2 天前
把一个 Vite + Vue3 应用塞进 qiankun (React + Umi3) 主站:十个坑的复盘
前端·javascript·react.js
李少兄2 天前
JavaScript 隐式全局变量解析
javascript
honkun62 天前
vue 表格组件 vxe-table 配置 ajax 请求自动加载数据与表单查询
vue.js·vxe-table
kybs19912 天前
全球灾害数据分析可视化 毕业设计-附源码66794
vue.js·spring boot·mysql·安全·django·c#·asp.net