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
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>
|