Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Vue SPA 入门案例 单表 班级管理

Vue SPA 入门案例 单表 班级管理

作者头像
陶然同学
发布于 2023-02-27 01:55:42
发布于 2023-02-27 01:55:42
43000
代码可运行
举报
文章被收录于专栏:陶然同学博客陶然同学博客
运行总次数:0
代码可运行

班级查询

需求:

        绘制表单,数据绑定

        页面加载成功发送请求查询所有班级

        将班级数据赋值给classesList

前端:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<template>
    <div>
        <table border="1">
            <tr>
                <td>编号</td>
                <td>班级名称</td>
                <td>班级描述</td>
                <td>操作</td>
            </tr>
            <tr v-for = "(classes, index) in classesList" :key = "index">
                <td>{{ classes.cid }}</td>
                <td>{{ classes.cname }}</td>
                <td>{{ classes.desc }}</td>
                <td>
                    修改 删除
                </td>
            </tr>
        </table>
    </div>
</template>

<script>
import axios from 'axios'

export default {
    data() {
        return {
            classesList:[]
        }
    },
    methods: {
        async selectAllClasses(){
            var url = "http://localhost:8888/classes";
            let { data: baseResult } = await axios.get(url);
            this.classesList = baseResult.data;
        },

    },
    mounted() { 
        // 1.1 页面加载成功
        // 1.2 查询所有班级
        this.selectAllClasses()
    },
}
</script>

<style>

</style>

添加班级

需求:

        绘制表单,数据绑定

        点击添加,发送ajax完成添加

        成功,跳转到列表页面。失败,给出提示

前端:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<template>
    <div>
        <table border="1">
            <tr>
                <td>编号</td>
                <td>
                    <input type="text" v-model = "classes.cid">
                </td>
            </tr>
            <tr>
                <td>班级名称</td>
                <td>
                    <input type="text" v-model = "classes.cname">
                </td>
            </tr>
            <tr>
                <td>班级描述</td>
                <td>
                    <textarea name="" id="" cols="30" rows="10" v-model = "classes.desc"></textarea>
                </td>
            </tr>
            <tr>
                <td colspan="2">
                    <input type="button" value="添加班级" @click = "addClasses()">
                </td>
                <td></td>
            </tr>
        </table>
    </div>
</template>

<script>
import axios from 'axios'

export default {
    data() {
        return {
            classes:{}
        }
    },
    methods:{
        async addClasses(){
            var url = "http://localhost:8888/classes";
            let { data: baseResult } = await axios.post(url,this.classes);
            if(baseResult.code == 20000){
                this.$router.push('/classesList')
            }else{
                alert(baseResult.message)
            }
        }
    },
}
</script>

<style>

</style>

修改班级

需求:

        列表页面点击“修改”,切换到修改页面 classesEdit?cid=c001

        页面加载成功时,通过id查询详情

        回显:将查询结果绑定表单(添加已经完成,采用复制)

        点击确定进行更新

前端:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<template>
    <div>
        <table border = "1">
            <tr>
                <td>编号</td>
                <td>
                    {{ classes.cid }}
                </td>
            </tr>
            <tr>
                <td>班级名称</td>
                <td>
                    <input type="text" v-model = "classes.cname">
                </td>
            </tr>
            <tr>
                <td>班级描述</td>
                <td>
                    <textarea name="" id="" cols="30" rows="10" v-model = "classes.desc"></textarea>
                </td>
            </tr>
            <tr>
                <td colspan="2">
                    <input type="text" value = "修改" @click = "editClasses()">
                </td>
            </tr>
        </table>
    </div>
</template>

<script>
import axios from 'axios';
export default {
    data() {
        return {
            classes:{},
            cid:'',
        };
    },
    methods:{
        async selectClassesById(){
            let url = `http://localhost:8888/classes/${this.cid}`;
            let { data: baseResult } = await axios.get(url);
            this.classes = baseResult.data
        },

        async editClasses(){
            var url = `http://localhost:8888/classes`;
            let { data: baseResult } = await axios.put(url,this.classes);
            if(baseResult.code == 20000){
                this.$router.push("/classesList");
            }else{
                alert(baseResult.message);
            }
        }
    },
    mounted(){
        //获得cid
        this.cid = this.$route.params.cid;
        //根据id查询班级信息
        this.selectClassesById();
    }
}
</script>

<style>

</style>

删除班级

需求:

        确定访问路径:delete /classes/c001

        点击发送ajax进行删除(成功:刷新页面;失败:提示)

        编写controller获得id

        编写service通过id删除

前端:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<template>
    <div>
        <table border="1">
            <tr>
                <td>编号</td>
                <td>班级名称</td>
                <td>班级描述</td>
                <td>操作</td>
            </tr>
            <tr v-for = "(classes, index) in classesList" :key = "index">
                <td>{{ classes.cid }}</td>
                <td>{{ classes.cname }}</td>
                <td>{{ classes.desc }}</td>
                <td>
                    <router-link :to="'/classesEdit/' + classes.cid">修改</router-link>
                    <a href="" @click.prevent = "deleteClasses(classes.cid)">删除</a>
                </td>
            </tr>
        </table>
    </div>
</template>

<script>
import axios from 'axios'

export default {
    data() {
        return {
            classesList:[]
        }
    },
    methods: {
        async selectAllClasses(){
            var url = "http://localhost:8888/classes";
            let { data: baseResult } = await axios.get(url);
            this.classesList = baseResult.data;
        },
        async deleteClasses(cid){
            if(!confirm('您确定要删除么?')){
                return
            }
            var url = `http://localhost:8888/classes/${cid}`
            let { data: baseResult } = await axios.delete(url)
            alert(baseResult.code)
            if(baseResult.code == 20000){
                this.selectAllClasses();
            }else{
                alert(baseResult.message)
            }
        }
    },
    mounted() { 
        // 1.1 页面加载成功
        // 1.2 查询所有班级
        this.selectAllClasses()
    },
}
</script>

<style>

</style>

后端

        链接:https://pan.baidu.com/s/1032Wkr58iZfPJ7baJSsqiw          提取码:2002

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-06-14,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Vue项目:学生管理系统
链接:https://pan.baidu.com/s/1032Wkr58iZfPJ7baJSsqiw 
陶然同学
2023/02/24
9410
Vue项目:学生管理系统
IDEA+SSM+SpringBoot+Vue+Element UI实现班级管理增删改查
环境搭建 SQL CREATE TABLE `tb_class` ( `c_id` varchar(32) NOT NULL COMMENT '班级ID', `c_name` varchar(50) DEFAULT NULL COMMENT '班级名称', `desc` varchar(200) DEFAULT NULL COMMENT '班级描述', PRIMARY KEY (`c_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*Data for
陶然同学
2023/02/27
1.3K0
IDEA+SSM+SpringBoot+Vue+Element UI实现班级管理增删改查
学生管理系统Element UI版
链接:https://pan.baidu.com/s/1FAb2WUSUwpRuwIB9Spy3oQ  提取码:1234
陶然同学
2023/02/24
1.5K0
学生管理系统Element UI版
Vue入门项目:学生管理系统之班级管理 【含源码】
目录 1.概述 2.表结构 3.搭建环境         3.1后端环境                 3.1.1项目名:student                 3.1.2坐标                 3.1.3核心配置文件                 3.1.4启动类                 3.1.5封装类                 3.1.6配置类(可选)         3.2前端环境                 3.2.1拷贝静态资源            
陶然同学
2023/02/27
1.6K0
Vue入门项目:学生管理系统之班级管理 【含源码】
【学生管理系统】班级管理
<template>  <el-card class="classes-add-card">    <el-form ref="form" :model="classes" label-width="100px">      <el-form-item label="班级ID">        <el-input v-model="classes.cid"></el-input>      </el-form-item>      <el-form-item label="班级名称">        <el-input v-model="classes.cname"></el-input>      </el-form-item>      <el-form-item label="选择老师">        <el-select v-model="classes.teacherIds" multiple placeholder="请选择老师" style="width: 100%">          <el-option v-for="(teacher,index) in teacherList" :key="index" :label="teacher.tname" :value="teacher.tid"></el-option>        </el-select>      </el-form-item>      <el-form-item label="授课老师">      </el-form-item>      <el-form-item label="助理老师">      </el-form-item>      <el-form-item label="辅导员老师">      </el-form-item>      <el-form-item>        <el-button type="primary">添加</el-button>        <el-button>重置</el-button>      </el-form-item>    </el-form>    {{classes}}  </el-card> </template> ​ <script> export default {  data() {    return {      classes: {        teacherIds: []      //选择的所有老师     },      teacherList: [],      //老师列表   } },  methods: {    async findAllTeacher() {      let { data:baseResult } = await this.$axios.get('/classes-service/teacher')      // 获得结果      this.teacherList = baseResult.data   } },  mounted() {    //查询所有的老师    this.findAllTeacher() }, } </script> ​ <style>  .classes-add-card {    width: 500px; } </style>
陶然同学
2023/02/24
3K0
【学生管理系统】班级管理
完整的SpringBoot+Vue增删改查(学生管理)
md文档可在点击下方小卡片获取! 1.搭建环境 1.1 创建项目 创建项目:exam-student-vue 1.2 添加坐标 <parent> <groupId>org.springframework.bootgroupId> <artifactId>spring-boot-starter-parentartifactId> <version>2.1.6.RELEASEversion> <relativePath/>
Maynor
2021/12/06
7.5K1
完整的SpringBoot+Vue增删改查(学生管理)
vue脚手架搭建2022年6月版本(保姆级-直接到路由使用)
可以在C盘下【C:\Program Files\nodejs】找到【node.exe】文件
红目香薰
2022/11/30
6660
vue脚手架搭建2022年6月版本(保姆级-直接到路由使用)
Spring+Vue增删改查实例
前端地址:https://github.com/Snowstorm0/SpringAndVue-vue
代码的路
2022/08/23
3620
Spring+Vue增删改查实例
【学生管理系统】权限管理之用户管理
package com.czxy.classes.mapper; ​ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.czxy.domain.TbUser; import org.apache.ibatis.annotations.*; ​ import java.util.List; ​ /** * @author 桐叔 * @email liangtong@itcast.cn * @description */ @Mapper public interface TbUserMapper extends BaseMapper<TbUser> { ​    @Select("SELECT * FROM tb_user")    @Results({            @Result(property = "uid", column = "u_id"),            @Result(property = "userName", column = "user_name"),            @Result(property = "password", column = "password"),            @Result(property = "gender", column = "gender"),            @Result(property = "image", column = "image"),            @Result(property = "roleList", many = @Many(select = "com.czxy.classes.mapper.SysRoleMapper.findAllByUid") , column = "u_id")   })    public List<TbUser> findAll(); } ​
陶然同学
2023/02/24
1.3K0
【学生管理系统】权限管理之用户管理
【腾讯云Cloud Studio实战训练营】如何轻松实现一个Springboot+Vue学生管理系统及我的使用感受
在这个博客中,我将介绍如何使用Cloud Studio打造一个基于Spring Boot和Vue的学生管理系统。该系统旨在提供一个简单而功能丰富的平台,用于管理学生的信息和课程,并提供一系列功能来增强教育管理的效率和便捷性。
Maynor
2023/07/24
7250
【腾讯云Cloud Studio实战训练营】如何轻松实现一个Springboot+Vue学生管理系统及我的使用感受
django+pymysql搭建一个管理系统(一)
django+pymysql搭建一个管理系统(一) 后续进行代码更新,优化 一.程序架构 二.mysql表单创建 zouye库:存信息相关的 #班级表 create table classes( ci
小小咸鱼YwY
2019/09/11
1.7K0
django+pymysql搭建一个管理系统(一)
【学生管理系统】权限管理之角色管理
   @PostMapping("/addPerm")    public BaseResult addPermWithRoleId(@RequestBody SysRole sysRole) {        try {            // 添加权限            sysRolePermissionService.addPermWithRoleId(sysRole); ​            // 提示            return BaseResult.ok("授权成功");       } catch (Exception e) {            return BaseResult.error("授权失败");       } ​   }
陶然同学
2023/02/24
2K0
【学生管理系统】权限管理之角色管理
Vue网络请求
定位到D:\dev\project\webpack目录,打开控制台输入创建项目的命令:vue create 项名称
代码天才TTT
2023/08/01
9120
Vue网络请求
ASP.NET Core微服务(五)——【vue脚手架解析接口】
引入后【Ctrl+s】保存,可以看到服务的控制台提示没有【axios】,需要添加。
红目香薰
2022/11/28
5460
【Vue】day02-Vue基础入门
所谓指令修饰符就是通过“.”指明一些指令后缀 不同的后缀封装了不同的处理操作 —> 简化代码
陶然同学
2023/10/14
2800
【Vue】day02-Vue基础入门
【学生管理系统】用户管理之用户登录
<template>  <nuxt/> </template> ​ <script> export default { ​ } </script> ​ <style> ​ </style>
陶然同学
2023/02/24
1.8K0
【学生管理系统】用户管理之用户登录
Vue核心与实践(五)
title: Vue核心与实践(五) series: Vue核心与实践 abbrlink: cb55f74c date: 2024-04-28 12:39:31
程序员朱永胜
2024/04/30
1430
Vue核心与实践(五)
java从入门到精通二十五(vue和element 对项目的改进)
我们之前获取前端表单数据的时候,我们需要进行大量的操作。当前我只是进行了浅显的一些认识。
兰舟千帆
2022/07/16
9190
java从入门到精通二十五(vue和element 对项目的改进)
vue+axios实现评论留言板
这里的评论数据以及添加数据都是用的FastAPI,然后再用axios发送请求,获取评论以及添加评论。
SingYi
2022/07/14
1.1K0
vue+axios实现评论留言板
③Vue3---快速入门
v-show:(控制元素展示还是隐藏) 不满足条件,span标签还是会被渲染。只是通过CSS的display属性设置为none。代表隐藏。
用户11288958
2025/01/17
1420
③Vue3---快速入门
推荐阅读
相关推荐
Vue项目:学生管理系统
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验