基于Java+Vue+uniapp微信小程序选课系统设计和实现

这篇具有很好参考价值的文章主要介绍了基于Java+Vue+uniapp微信小程序选课系统设计和实现。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

博主介绍全网粉丝30W+,csdn特邀作者、博客专家、CSDN新星计划导师、Java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和学生毕业项目实战,高校老师/讲师/同行交流合作

主要内容:SpringBoot、Vue、SSM、HLMT、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、小程序、安卓app、大数据、物联网、机器学习等设计与开发。

🍅文末获取源码联系🍅

👇🏻 精彩专栏推荐订阅👇🏻 不然下次找不到哟

2022-2024年最全的计算机软件毕业设计选题大全:1000个热门选题推荐✅

Java项目精品实战案例《100套》

Java微信小程序项目实战《100套》

Python项目实战《100套》

感兴趣的可以先收藏起来,还有大家在毕设选题,项目以及论文编写等相关问题都可以给我留言咨询,希望帮助更多的人

基于Java+Vue+uniapp微信小程序选课系统设计和实现,Java毕业设计实战案例,微信小程序项目实战案例,java,vue.js,uni-app,微信小程序,选课系统

系统介绍:

随着课程的增多,学生的选择性越来越大。现在大多数学校选课的方式采用学生上报给老师,老师负责整理。这种方式效率低、灵活性低,每门课程的选报人数有限就给老师的统计整理工作造成困难。目前,网络发展成熟,各类管理系统层出不穷,如果可以有专业的管理系统提供网上选课,则可以帮助老师和学生。

本基于SpringBoot+Vue选课系统采用小程序技术进行设计,语言采用JAVA,数据库为MySQL。在技术中加入Vue,使界面更加丰富、友好。本系统针对学生选择课程而开发,使用角色为管理员和学生、老师。学生可以通过登录在界面里浏览课程进行选择和退课、查询教学视频、帖子等。管理员可以管理学生信息、课程信息、教师信息、论坛交流信息、学生选课信息、退课信息等。教师可以管理教学视频、课程信息和管理学生的选课、退课、留言咨询等。在本系统中,学生可以详细了解课程的内容、负责老师,灵活性强,对学生的选课帮助非常大。

 本系统的功能界面设计为三个,学生中心界面和管理员中心界面、教师中心界面。根据不同用户的不同需求分开设计功能。本系统的功能结构图如下图4.1所示:

基于Java+Vue+uniapp微信小程序选课系统设计和实现,Java毕业设计实战案例,微信小程序项目实战案例,java,vue.js,uni-app,微信小程序,选课系统

程序上交给用户进行使用时,需要提供程序的操作流程图,这样便于用户容易理解程序的具体工作步骤,现如今程序的操作流程都有一个大致的标准,即先通过登录页面提交登录数据,通过程序验证正确之后,用户才能在程序功能操作区页面操作对应的功能。

基于Java+Vue+uniapp微信小程序选课系统设计和实现,Java毕业设计实战案例,微信小程序项目实战案例,java,vue.js,uni-app,微信小程序,选课系统

​程序操作流程图

相关技术框架

Vue框架

Vue是最近几年最火的前端应用,在H5以及APP和小程序上面,有着很大的市场份额。作为一个不断的向前发展的生态系统,Vue不仅仅只是作为了网页的开发,Vue的概念主要是让以前静态写的DOM,变成了动态生成,超快运行虚拟DOM,DOM就是HTML里面W3C设置的标准,是文档对象模型。使用Vue,让文档对象生成变得更加智能化,在使用过程中对该机构进行访问,就能改变文档的结构、样式以及内容。让用户能体现到极简界面,急速打开,从上往下的打开层次感,使用的更加舒适。 

微信小程序

小程序是一种新的开放能力,开发者可以快速地开发一个小程序。小程序可以在微信内被便捷地获取和传播,同时具有出色的使用体验。尤其拥抱微信生态圈,让微信小程序更加的如虎添翼,发展迅猛。

uni-app

uni-app 是一个使用 Vue.js 开发所有前端应用的框架,开发者编写一套代码,可发布到iOS、Android、Web(响应式)、以及各种小程序(微信/支付宝/百度/头条/QQ/钉钉/淘宝)、快应用等多个平台。

DCloud公司拥有800万开发者、数百万应用、12亿手机端月活用户、数千款uni-app插件。

uni-app在手,做啥都不愁。即使不跨端,uni-app也是更好的小程序开发框架更好的App跨平台框架、更方便的H5开发框架。不管领导安排什么样的项目,你都可以快速交付,不需要转换开发思维、不需要更改开发习惯。

功能截图:

5.1管理员功能界面的实现

管理员是系统里的最高权限,负责系统里的所有信息的管理、审核。包括学生信息、课程信息、选课信息等。

5.1.1用户登录界面的实现

   本功能设计的目的是帮助系统检验身份,保证系统的安全。在用户登录功能界面里的元素包括按钮、列表框、文字、图片等。用户输入框、密码输入框、权限列表框都居左展示。用户登录界面的实现界面如下图5.1所示:

基于Java+Vue+uniapp微信小程序选课系统设计和实现,Java毕业设计实战案例,微信小程序项目实战案例,java,vue.js,uni-app,微信小程序,选课系统

图5.1用户登录界面的实现效果

5.1.2个人中心管理

在个人中心管理功能里,管理员可以修改个人资料和修改当前登录的登录密码。修改个人信息如下图5.2所示:

基于Java+Vue+uniapp微信小程序选课系统设计和实现,Java毕业设计实战案例,微信小程序项目实战案例,java,vue.js,uni-app,微信小程序,选课系统

图5.2修改个人信息

修改密码的实现界面如下图5.3所示:

基于Java+Vue+uniapp微信小程序选课系统设计和实现,Java毕业设计实战案例,微信小程序项目实战案例,java,vue.js,uni-app,微信小程序,选课系统

图5.3修改密码的实现界面

5.1.3课程信息管理

管理员登录后在课程信息管理功能里可以发布新的课程和删除不使用的课程以及修改错误的课程,管理员添加课程信息的实现界面如下图5.4所示:

基于Java+Vue+uniapp微信小程序选课系统设计和实现,Java毕业设计实战案例,微信小程序项目实战案例,java,vue.js,uni-app,微信小程序,选课系统

图5.4管理员添加课程信息的功能实现界面

5.1.4教师信息管理

管理员在本功能里可以添加教师资料,可以为教师分配账号和密码,帮助教师使用本系统,当教师辞职后管理员可以及时的删除教师信息防止系统内容的外泄。管理员查询教师信息如下图5.5所示:

基于Java+Vue+uniapp微信小程序选课系统设计和实现,Java毕业设计实战案例,微信小程序项目实战案例,java,vue.js,uni-app,微信小程序,选课系统

图5.5管理员查询教师信息

5.1.5科目名称管理

科目名称管理功能里可以看到科目的编号和标题,点击添加科目名称信息可以进入添加界面里实现科目名称的更新。管理员查询科目名称信息如下图5.6所示:

基于Java+Vue+uniapp微信小程序选课系统设计和实现,Java毕业设计实战案例,微信小程序项目实战案例,java,vue.js,uni-app,微信小程序,选课系统

图5.6管理员查询科目名称信息

5.1.6学生信息管理

管理员可以添加学生信息和查询学生信息,学生信息添加后,学生可以自己修改自己的资料。管理员查询学生信息如下图5.7所示:

基于Java+Vue+uniapp微信小程序选课系统设计和实现,Java毕业设计实战案例,微信小程序项目实战案例,java,vue.js,uni-app,微信小程序,选课系统

图5.7管理员查询学生信息

5.1.7论坛交流管理

管理员也可以对论坛交流进行修改和删除以此来审核学生的帖子。管理员查询论坛交流信息如下图5.8所示:

基于Java+Vue+uniapp微信小程序选课系统设计和实现,Java毕业设计实战案例,微信小程序项目实战案例,java,vue.js,uni-app,微信小程序,选课系统

图5.8管理员查询论坛交流信息

5.1.8教学视频管理

    管理员可以查询教师设置的教学视频,并可以进行修改和添加、删除。管理员查询教学视频如下图5.9所示:

基于Java+Vue+uniapp微信小程序选课系统设计和实现,Java毕业设计实战案例,微信小程序项目实战案例,java,vue.js,uni-app,微信小程序,选课系统

图5.9管理员查询教学视频信息的实现界面

5.1.9学生选课管理

    管理员也可以查询学生的选课详情并进行修改和删除、查询。学生选课如下图5.10所示:

基于Java+Vue+uniapp微信小程序选课系统设计和实现,Java毕业设计实战案例,微信小程序项目实战案例,java,vue.js,uni-app,微信小程序,选课系统

图5.10管理员查询学生选课信息的实现界面

5.1.10学生退课管理

本功能属于选课管理的一部分,管理员可以查询学生的退课信息并进行分析。学生退课管理如下图5.11所示:

基于Java+Vue+uniapp微信小程序选课系统设计和实现,Java毕业设计实战案例,微信小程序项目实战案例,java,vue.js,uni-app,微信小程序,选课系统

图5.11管理员查询退课信息的实现界面

5.1.11留言咨询管理

    本功能实现学生问题的解答。管理员可以审核学生的留言咨询。实现界面如下图5.12所示:

基于Java+Vue+uniapp微信小程序选课系统设计和实现,Java毕业设计实战案例,微信小程序项目实战案例,java,vue.js,uni-app,微信小程序,选课系统

图5.12留言咨询信息的实现界面

5.1.12系统管理功能的实现

    系统管理包括设置公告和轮播图。系统管理的实现界面如下图5.13所示:

基于Java+Vue+uniapp微信小程序选课系统设计和实现,Java毕业设计实战案例,微信小程序项目实战案例,java,vue.js,uni-app,微信小程序,选课系统

图5.13系统管理功能的实现

5.2学生功能的界面详细实现

5.2.1个人资料管理

学生可以修改自己的个人资料使其保证正确性。学生修改个人资料管理如下图5.14所示:

基于Java+Vue+uniapp微信小程序选课系统设计和实现,Java毕业设计实战案例,微信小程序项目实战案例,java,vue.js,uni-app,微信小程序,选课系统

图5.14学生修改个人资料管理

5.2.2在线选课

在本功能里,学生可以查询课程信息,可以看到课程的所负责老师和学分等信息,然后可以进行选择。选课管理如下图5.15所示:

基于Java+Vue+uniapp微信小程序选课系统设计和实现,Java毕业设计实战案例,微信小程序项目实战案例,java,vue.js,uni-app,微信小程序,选课系统

图5.15选课管理

5.2.3留言咨询

学生可以向教师咨询问题。留言咨询如下图5.16所示:

基于Java+Vue+uniapp微信小程序选课系统设计和实现,Java毕业设计实战案例,微信小程序项目实战案例,java,vue.js,uni-app,微信小程序,选课系统

图5.16留言咨询的功能实现界面

5.2.4论坛交流管理

    学生可以发布帖子和管理自己发布的帖子。实现界面如下图5.17所示:

基于Java+Vue+uniapp微信小程序选课系统设计和实现,Java毕业设计实战案例,微信小程序项目实战案例,java,vue.js,uni-app,微信小程序,选课系统

图5.17发布帖子

5.2.5教学视频管理

    学生可以查看视频信息并进行收藏、评论、咨询。实现界面如下图5.18所示:

基于Java+Vue+uniapp微信小程序选课系统设计和实现,Java毕业设计实战案例,微信小程序项目实战案例,java,vue.js,uni-app,微信小程序,选课系统

图5.18教学视频浏览

5.2.6学生退课功能的实现

发现选择的课程不适合时也可以退课。在线退课如下图5.19所示:

基于Java+Vue+uniapp微信小程序选课系统设计和实现,Java毕业设计实战案例,微信小程序项目实战案例,java,vue.js,uni-app,微信小程序,选课系统

图5.19学生退课功能的实现

5.3教师功能的详细实现界面

教师的主要功能为审核学生的选课、退课以及发布教学视频等。教师如下图5.20所示:

基于Java+Vue+uniapp微信小程序选课系统设计和实现,Java毕业设计实战案例,微信小程序项目实战案例,java,vue.js,uni-app,微信小程序,选课系统

图5.20教师角色

代码实现:

package com.controller;

import java.util.Arrays;
import java.util.Calendar;
import java.util.Date;
import java.util.Map;

import javax.servlet.http.HttpServletRequest;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;

import com.annotation.IgnoreAuth;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.entity.TokenEntity;
import com.entity.UserEntity;
import com.service.TokenService;
import com.service.UserService;
import com.utils.CommonUtil;
import com.utils.MD5Util;
import com.utils.MPUtil;
import com.utils.PageUtils;
import com.utils.R;
import com.utils.ValidatorUtils;

/**
 * 登录相关
 */
@RequestMapping("users")
@RestController
public class UserController{
	
	@Autowired
	private UserService userService;
	
	@Autowired
	private TokenService tokenService;

	/**
	 * 登录
	 */
	@IgnoreAuth
	@PostMapping(value = "/login")
	public R login(String username, String password, String captcha, HttpServletRequest request) {
		UserEntity user = userService.selectOne(new EntityWrapper<UserEntity>().eq("username", username));
		if(user==null || !user.getPassword().equals(password)) {
			return R.error("账号或密码不正确");
		}
		String token = tokenService.generateToken(user.getId(),username, "users", user.getRole());
		return R.ok().put("token", token);
	}
	
	/**
	 * 注册
	 */
	@IgnoreAuth
	@PostMapping(value = "/register")
	public R register(@RequestBody UserEntity user){
//    	ValidatorUtils.validateEntity(user);
    	if(userService.selectOne(new EntityWrapper<UserEntity>().eq("username", user.getUsername())) !=null) {
    		return R.error("用户已存在");
    	}
        userService.insert(user);
        return R.ok();
    }

	/**
	 * 退出
	 */
	@GetMapping(value = "logout")
	public R logout(HttpServletRequest request) {
		request.getSession().invalidate();
		return R.ok("退出成功");
	}
	
	/**
     * 密码重置
     */
    @IgnoreAuth
	@RequestMapping(value = "/resetPass")
    public R resetPass(String username, HttpServletRequest request){
    	UserEntity user = userService.selectOne(new EntityWrapper<UserEntity>().eq("username", username));
    	if(user==null) {
    		return R.error("账号不存在");
    	}
    	user.setPassword("123456");
        userService.update(user,null);
        return R.ok("密码已重置为:123456");
    }
	
	/**
     * 列表
     */
    @RequestMapping("/page")
    public R page(@RequestParam Map<String, Object> params,UserEntity user){
        EntityWrapper<UserEntity> ew = new EntityWrapper<UserEntity>();
    	PageUtils page = userService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.allLike(ew, user), params), params));
        return R.ok().put("data", page);
    }

	/**
     * 列表
     */
    @RequestMapping("/list")
    public R list( UserEntity user){
       	EntityWrapper<UserEntity> ew = new EntityWrapper<UserEntity>();
      	ew.allEq(MPUtil.allEQMapPre( user, "user")); 
        return R.ok().put("data", userService.selectListView(ew));
    }

    /**
     * 信息
     */
    @RequestMapping("/info/{id}")
    public R info(@PathVariable("id") String id){
        UserEntity user = userService.selectById(id);
        return R.ok().put("data", user);
    }
    
    /**
     * 获取用户的session用户信息
     */
    @RequestMapping("/session")
    public R getCurrUser(HttpServletRequest request){
    	Long id = (Long)request.getSession().getAttribute("userId");
        UserEntity user = userService.selectById(id);
        return R.ok().put("data", user);
    }

    /**
     * 保存
     */
    @PostMapping("/save")
    public R save(@RequestBody UserEntity user){
//    	ValidatorUtils.validateEntity(user);
    	if(userService.selectOne(new EntityWrapper<UserEntity>().eq("username", user.getUsername())) !=null) {
    		return R.error("用户已存在");
    	}
        userService.insert(user);
        return R.ok();
    }

    /**
     * 修改
     */
    @RequestMapping("/update")
    public R update(@RequestBody UserEntity user){
//        ValidatorUtils.validateEntity(user);
    	UserEntity u = userService.selectOne(new EntityWrapper<UserEntity>().eq("username", user.getUsername()));
    	if(u!=null && u.getId()!=user.getId() && u.getUsername().equals(user.getUsername())) {
    		return R.error("用户名已存在。");
    	}
        userService.updateById(user);//全部更新
        return R.ok();
    }

    /**
     * 删除
     */
    @RequestMapping("/delete")
    public R delete(@RequestBody Long[] ids){
        userService.deleteBatchIds(Arrays.asList(ids));
        return R.ok();
    }
}

论文参考:

基于Java+Vue+uniapp微信小程序选课系统设计和实现,Java毕业设计实战案例,微信小程序项目实战案例,java,vue.js,uni-app,微信小程序,选课系统

基于Java+Vue+uniapp微信小程序选课系统设计和实现,Java毕业设计实战案例,微信小程序项目实战案例,java,vue.js,uni-app,微信小程序,选课系统

推荐项目:

基于微信小程序+Springboot线上租房平台设计和实现-三端

2022-2024年最全的计算机软件毕业设计选题大全

基于Java+SpringBoot+Vue前后端分离手机销售商城系统设计和实现

基于Java+SpringBoot+Vue前后端分离仓库管理系统设计实现

基于SpringBoot+uniapp微信小程序校园点餐平台详细设计和实现

基于Java+SpringBoot+Vue+echarts健身房管理系统设计和实现

基于JavaSpringBoot+Vue+uniapp微信小程序实现鲜花商城购物系统

基于Java+SpringBoot+Vue前后端分离摄影分享网站平台系统 

基于Java+SpringBoot+Vue前后端分离餐厅点餐管理系统设计和实现

基于Python热门旅游景点数据分析系统设计与实现

源码获取:

大家点赞、收藏、关注、评论啦 、查看👇🏻获取微信联系方式👇🏻

 精彩专栏推荐订阅下方专栏👇🏻

Java项目精品实战案例《100套》

Java微信小程序项目实战《100套》

Python项目实战《100套》文章来源地址https://www.toymoban.com/news/detail-785604.html

到了这里,关于基于Java+Vue+uniapp微信小程序选课系统设计和实现的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 基于Java+Vue+uniapp微信小程序疫苗预约系统设计和实现

    博主介绍 : ✌ 全网粉丝30W+,csdn特邀作者、博客专家、CSDN新星计划导师、Java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战 ✌ 🍅 文末获取源码联系 🍅 👇🏻 精彩专栏 推荐订阅 👇🏻 不然下次找不到哟 2022-2024年

    2024年02月20日
    浏览(101)
  • 基于Java+Vue+uniapp微信小程序小说阅读系统设计和实现

    博主介绍 : ✌ 全网粉丝30W+,csdn特邀作者、博客专家、CSDN新星计划导师、Java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和学生毕业项目实战,高校老师/讲师/同行交流合作 ✌ 主要内容: SpringBoot、Vue、SSM、HLMT、Jsp、PHP、Nodejs、P

    2024年01月19日
    浏览(63)
  • 基于Java+Vue+uniapp微信小程序高校订餐系统设计和实现

    博主介绍 : ✌ 全网粉丝30W+,csdn特邀作者、博客专家、CSDN新星计划导师、Java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战 ✌ 🍅 文末获取源码联系 🍅 👇🏻 精彩专栏 推荐订阅 👇🏻 不然下次找不到哟 2022-2024年

    2024年02月04日
    浏览(71)
  • 基于Java+Vue+uniapp微信小程序车视界系统设计和实现

    博主介绍 : ✌ 全网粉丝30W+,csdn特邀作者、博客专家、CSDN新星计划导师、Java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和学生毕业项目实战,高校老师/讲师/同行交流合作 ✌ 主要内容: SpringBoot、Vue、SSM、HLMT、Jsp、PHP、Nodejs、P

    2024年02月03日
    浏览(56)
  • 基于Java+Vue+uniapp微信小程序医院挂号系统设计和实现

    博主介绍 : ✌ 全网粉丝30W+,csdn特邀作者、博客专家、CSDN新星计划导师、Java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和学生毕业项目实战,高校老师/讲师/同行交流合作 ✌ 主要内容: SpringBoot、Vue、SSM、HLMT、Jsp、PHP、Nodejs、P

    2024年02月03日
    浏览(47)
  • 基于Java+Vue+uniapp微信小程序婚庆摄影系统设计和实现

    博主介绍 : ✌ 全网粉丝30W+,csdn特邀作者、博客专家、CSDN新星计划导师、Java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战 ✌ 🍅 文末获取源码联系 🍅 👇🏻 精彩专栏 推荐订阅 👇🏻 不然下次找不到哟 2022-2024年

    2024年02月04日
    浏览(91)
  • 基于Java+Vue+uniapp微信小程序场地预约系统设计和实现

    博主介绍 : ✌ 全网粉丝30W+,csdn特邀作者、博客专家、CSDN新星计划导师、Java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和学生毕业项目实战,高校老师/讲师/同行交流合作 ✌ 主要内容: SpringBoot、Vue、SSM、HLMT、Jsp、PHP、Nodejs、P

    2024年02月04日
    浏览(80)
  • 基于Java+Vue+uniapp微信小程序校园订餐系统设计和实现

    博主介绍 : ✌ 全网粉丝30W+,csdn特邀作者、博客专家、CSDN新星计划导师、Java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和学生毕业项目实战,高校老师/讲师/同行交流合作 ✌ 主要内容: SpringBoot、Vue、SSM、HLMT、Jsp、PHP、Nodejs、P

    2024年02月03日
    浏览(77)
  • 基于Java+Vue+uniapp微信小程序新生报到系统设计和实现

    博主介绍 : ✌ 全网粉丝30W+,csdn特邀作者、博客专家、CSDN新星计划导师、Java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战 ✌ 🍅 文末获取源码联系 🍅 👇🏻 精彩专栏 推荐订阅 👇🏻 不然下次找不到哟 2022-2024年

    2024年02月03日
    浏览(54)
  • 基于Java+Vue+uniapp微信小程序智慧消防系统设计和实现

    博主介绍 : ✌ 全网粉丝30W+,csdn特邀作者、博客专家、CSDN新星计划导师、Java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战 ✌ 🍅 文末获取源码联系 🍅 👇🏻 精彩专栏 推荐订阅 👇🏻 不然下次找不到哟 2022-2024年

    2024年02月05日
    浏览(65)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包