You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

51 lines
2.0 KiB

<!-- To-do list 实现增删改查功能,前端界面设计 -->
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>To-do List</title>
<link rel="stylesheet" href="demo.css">
</head>
<body>
<div id="app">
<h1>To-do List</h1>
<!-- 添加新任务 -->
<p>What needs to be done?</p>
<input type="text" v-model="newTask" placeholder="Enter new task">
<button class="add" @click="addTask">Add</button>
<!-- 任务完成统计 -->
<p>{{ completedCount }} out of {{ tasks.length }} items completed</p>
<!-- 编辑和保存任务 -->
<ul class="tasks">
<li v-for="(task, index) in tasks" :key="index">
<!-- edit时样式 -->
<template v-if="editingIndex === index">
<p>Edit Name for "{{ task.name }}"</p>
<input type="text" v-model="editingTask">
<div class="edit-actions">
<button @click="cancelEdit">Cancel</button>
<button @click="saveEdit(index)">Save</button>
</div>
</template>
<!-- 否则 -->
<template v-else>
<input type="checkbox" v-model="task.completed">
<span :class="{ completed: task.completed }">{{ task.name }}</span>
<div class="task-actions">
<button @click="editTask(index)">Edit</button>
<button @click="deleteTask(index)" class="delete">Delete</button>
<button v-if="!task.completed" @click="completeTask(index)">Complete task</button>
</div>
</template>
</li>
</ul>
</div>
<script src="https://unpkg.com/vue@3/dist/vue.global.js"></script>
<script src="demo.js"></script>
</body>
</html>