<div id="app">
    <h2>学生管理系统</h2>
    <form>
      <label>班级:</label>
      <input type="text" v-model="newStudent.grade">
      <label>姓名:</label>
      <input type="text" v-model="newStudent.name">
      <label>性别:</label>
      <input type="text" v-model="newStudent.gender">
      <label>年龄:</label>
      <input type="text" v-model="newStudent.age">
      <button type="button" @click.prevent="addStudent">添加学生</button>
      <button type="button" @click.prevent="updateStudent">确认修改</button>
      <button type="button" @click.prevent="reset">重置表单</button>
    </form>
    <hr>
    <form>
      <label>姓名:</label>
      <input type="text" v-model="filterKeyword">
      <button type="button" @click.prevent="searchStudent">查找学生</button>
      <button type="button" @click.prevent="resetFilter">重置查找</button>
    </form>
    <hr>
    <table border="1" width="50%" style="border-collapse: collapse;">
      <tr>
        <th>班级</th>
        <th>姓名</th>
        <th>性别</th>
        <th>年龄</th>
        <th>操作</th>
      </tr>
      <tr align="center" v-for="(student, index) in filteredStudents" :key="index">
        <td>{{ student.grade }}</td>
        <td>{{ student.name }}</td>
        <td>{{ student.gender }}</td>
        <td>{{ student.age }}</td>
        <td>
          <button type="button" @click.prevent="editStudent(index)">修改</button>
          <button type="button" @click.prevent="delStudent(index)">删除</button>
        </td>
      </tr>
    </table>
  </div>
<script>
  let vm = new Vue({
    el: '#app',
    data: {
      students: [],
      newStudent: {
        grade: '',
        name: '',
        gender: '',
        age: ''
      },
      selectedIndex: null,
      filterKeyword: ''
    },
    methods: {
      addStudent() {
        this.students.push(this.newStudent);
        this.reset();
      },
      editStudent(index) {
        this.newStudent = Object.assign({}, this.students[index]);
        this.selectedIndex = index;
      },
      updateStudent() {
        if (this.selectedIndex === null) {
          alert("请先选择要修改的学生!");
        } else {
          this.students.splice(this.selectedIndex, 1, this.newStudent);
          this.reset();
        }
      },
      delStudent(index) {
        const name = this.students[index].name;
        const confirmed = confirm(`是否删除学生 ${name} 的信息?`);
        if (confirmed) {
          this.students.splice(index, 1);
        }
      },
      searchStudent() {
        this.filterKeyword = this.filterKeyword.trim();
      },
      reset() {
        this.newStudent = {
          grade: '',
          name: '',
          gender: '',
          age: ''
        };
        this.selectedIndex = null;
      },
      resetFilter() {
        this.filterKeyword = '';
      }
    },
    computed: {
      filteredStudents() {
        if (this.filterKeyword.trim() === '') {
          return this.students;
        } else {
          const keyword = this.filterKeyword.trim();
          return this.students.filter(student => {
            return student.name.includes(keyword);
          });
        }
      }
    }
  });

</script>
学生管理系统 - 在线添加、修改、删除学生信息

原文地址: https://www.cveoy.top/t/topic/nQt3 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录