帮我写一个vue学生成绩表管理版块 (新增 列表搜索 数据删除 数据修改 )
时间: 2024-02-12 07:08:41 浏览: 85
好的,我可以帮你写一个简单的Vue学生成绩表管理版块,包括新增、列表搜索、数据删除和数据修改功能。
首先,你需要创建一个Vue组件,用于显示学生成绩表和处理用户操作。以下是一个简单的示例组件:
```html
<template>
<div>
<h2>学生成绩表管理</h2>
<form @submit.prevent="addStudent">
<label>姓名:</label>
<input type="text" v-model="newStudent.name" required>
<label>成绩:</label>
<input type="number" v-model.number="newStudent.score" required>
<button type="submit">添加</button>
</form>
<hr>
<label>搜索:</label>
<input type="text" v-model="searchQuery">
<ul>
<li v-for="(student, index) in filteredStudents" :key="index">
<span>{{ student.name }}:</span>
<span>{{ student.score }}</span>
<button @click="editStudent(student)">修改</button>
<button @click="deleteStudent(index)">删除</button>
</li>
</ul>
<div v-if="!filteredStudents.length">
<p>暂无符合条件的学生成绩记录</p>
</div>
</div>
</template>
<script>
export default {
data() {
return {
students: [
{ name: '小明', score: 90 },
{ name: '小红', score: 85 },
{ name: '小李', score: 95 },
],
newStudent: {
name: '',
score: '',
},
searchQuery: '',
}
},
computed: {
filteredStudents() {
return this.students.filter(student =>
student.name.toLowerCase().includes(this.searchQuery.toLowerCase())
)
},
},
methods: {
addStudent() {
if (!this.newStudent.name || !this.newStudent.score) return
this.students.push({ ...this.newStudent })
this.newStudent.name = ''
this.newStudent.score = ''
},
editStudent(student) {
const newName = prompt('请输入学生姓名', student.name)
const newScore = prompt('请输入学生成绩', student.score)
if (!newName || !newScore) return
student.name = newName
student.score = Number(newScore)
},
deleteStudent(index) {
if (confirm('确定要删除该学生成绩记录吗?')) {
this.students.splice(index, 1)
}
},
},
}
</script>
```
以上代码实现了以下功能:
- 显示一个标题和一个表单,用于添加新的学生成绩记录;
- 显示一个输入框和一个学生成绩列表,用于搜索和显示符合条件的记录;
- 在学生成绩列表中,每行显示学生姓名和成绩,并提供修改和删除按钮;
- 当用户点击修改按钮时,弹出对话框,允许用户修改学生姓名和成绩;
- 当用户点击删除按钮时,弹出确认框,确认后删除对应的学生成绩记录。
你可以根据自己的需求进行修改和扩展。该组件只是一个基础示例,如果需要更复杂的功能,可以考虑使用第三方组件或自己编写更高级的代码。
阅读全文