【原创唯一】基于SpringBoot+Vue+AI大模型的实验室预约系统
摘要:本项目设计并实现了高校实验室预约与设备管理系统。系统面向管理员与学生两类角色,覆盖实验室与分类管理、设备与维护管理、预约规则与预约审核、签到签退与使用记录、设备借用审批、违规与信用分、公告消息以及智能实验室与设备推荐等业务模块。技术上采用 Spring Boot、MyBatis-Plus、JWT、MySQL、Vue 3、Element Plus、ECharts、Vite 与 uni-app 小程序实现前后端分离与移动端访问。系统通过预约时段冲突检测保障实验室有序使用,通过预约流程表完整记录提交、审批、签到、签退与爽约节点,通过信用分与封禁阈值约束爽约和违规行为,并通过大模型接口根据实验需求推荐本院实验室与设备。全文从研究背景与意义、相关技术、需求分析、总体与数据库设计、接口设计、创新点实现及系统测试等方面进行阐述,形成可运行、可演示的毕设级业务闭环。在实现上,管理端侧重资源与审核配置,学生端侧重办理与查询;小程序复用同一套后端接口,便于移动场景下的预约与借用。通过对关键页面删除、流程中文化与借用实验室字段补全等细节完善,提高了系统可用性与文档描述的一致性。
技术栈: Spring Boot 3 + MyBatis-Plus + MySQL + Vue 3 + Element Plus + ECharts
数据库表:15张
创新点:预约时段冲突自动检测与流程追溯、AI大模型智能实验室与设备推荐、学生信用分与低分封号联动
演示视频
基于SpringBoot+Vue+AI大模型的实验室预约系统
🍅文末获取联系🍅
🍅文末获取联系🍅
作者介绍:专注计算机编程,个人开发,坚持原创,非工作室,源码全网唯一。
✅ 技术主流:SpringBoot + Vue 前后端分离,MySQL,Echarts数据统计,可本地运行
✅ 配套资料:源码 + 数据库 + 实验报告/论文 + 答辩 PPT+部署演示+远程调试+问题解答
技术范围:SpringBoot、Vue、数据可视化、小程序、HLMT、Nodejs、uni-app、MySQL数据库、ElementUi等设计与开发。
适用范围:软件工程、软件技术、计算机科学与技术、大数据、云计算、JavaWeb开发、JavaEE、Java、Web应用开发、动态网页设计、小程序的毕设、计算机毕业设计参考
开发文档:创新点说明、功能需求分析、数据库表结构设计、后端接口设计、创新点代码分析




功能展示
用户端功能
|
序号 |
菜单名称 |
功能描述 |
|
1 |
首页 |
浏览系统入口、公告摘要与快捷服务。 |
|
2 |
实验室 |
浏览开放实验室并进入详情发起预约。 |
|
3 |
智能推荐 |
输入实验需求,获取智能实验室与设备推荐。 |
|
4 |
公告通知 |
查看已发布的公告通知。 |
|
5 |
预约申请 |
选择实验室与时段提交预约申请。 |
|
6 |
我的预约 |
查看个人预约、取消或删除终态记录并追溯流程。 |
|
7 |
签到签退 |
对已通过预约进行签到签退。 |
|
8 |
设备借用 |
查看个人设备借用记录并归还设备。 |
|
9 |
申请借用 |
以卡片方式选择可借设备并提交借用申请。 |
|
10 |
个人使用记录 |
查看个人实验室使用时长记录。 |
|
11 |
违规记录 |
查看个人违规与信用扣分明细。 |
|
12 |
系统消息 |
接收预约、借用、封禁等系统消息。 |






管理员端功能
|
序号 |
菜单名称 |
功能描述 |
|
1 |
数据统计 |
汇总实验室、预约、借用、违规等核心指标,支撑管理决策。 |
|
2 |
实验室分类 |
维护实验室分类名称、排序与启用状态。 |
|
3 |
实验室管理 |
管理实验室基本信息、开放时段、容量与启用状态。 |
|
4 |
设备管理 |
维护设备所属实验室、型号编号与运行状态。 |
|
5 |
设备维护 |
登记设备维护计划或故障报修并跟踪完成情况。 |
|
6 |
耗材库存 |
管理实验耗材库存数量与预警阈值。 |
|
7 |
预约规则 |
配置单日预约上限、提前天数、爽约扣分与信用分封禁阈值。 |
|
8 |
预约管理 |
审核学生实验室预约,查看流程追溯并处理相关记录。 |
|
9 |
借用管理 |
审批设备借用申请、确认归还并维护借用台账。 |
|
10 |
使用记录 |
查询学生签到签退与实际使用时长记录。 |
|
11 |
违规管理 |
登记违规类型与信用扣分,联动学生信用分。 |
|
12 |
公告管理 |
发布与管理面向学生的公告通知。 |
|
13 |
学生管理 |
维护学生账号、信用分,支持封号与解封。 |
|
14 |
管理员账号 |
维护后台管理员账号与启用状态。 |







数据库及架构
系统数据库设计为:


数据库设计:
/*
Navicat Premium Data Transfer
Source Server : 1
Source Server Type : MySQL
Source Server Version : 50722
Source Host : localhost:3306
Source Schema : 1vuez_lab_system
Target Server Type : MySQL
Target Server Version : 50722
File Encoding : 65001
Date: 15/08/2026 23:22:54
*/
SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;
-- ----------------------------
-- Table structure for admins
-- ----------------------------
DROP TABLE IF EXISTS `admins`;
CREATE TABLE `admins` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
`username` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '账号',
`password` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '密码',
`name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '姓名',
`phone` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '手机号',
`enabled` tinyint(4) NULL DEFAULT 1 COMMENT '是否启用',
PRIMARY KEY (`id`) USING BTREE,
UNIQUE INDEX `username`(`username`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 3 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '管理员' ROW_FORMAT = DYNAMIC;
-- ----------------------------
-- Table structure for borrows
-- ----------------------------
DROP TABLE IF EXISTS `borrows`;
CREATE TABLE `borrows` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
`device_id` bigint(20) NOT NULL COMMENT '设备',
`student_id` bigint(20) NOT NULL COMMENT '借用人',
`apply_reason` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '申请原因',
`borrow_date` date NULL DEFAULT NULL COMMENT '借用日期',
`expect_return_date` date NULL DEFAULT NULL COMMENT '预计归还',
`actual_return_date` date NULL DEFAULT NULL COMMENT '实际归还',
`status` tinyint(4) NULL DEFAULT 0 COMMENT '状态【0待审核,1驳回,2借用中,3已归还】',
`reject_reason` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '驳回原因',
`created_at` datetime NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 4 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '设备借用' ROW_FORMAT = DYNAMIC;
-- ----------------------------
-- Table structure for device_maintains
-- ----------------------------
DROP TABLE IF EXISTS `device_maintains`;
CREATE TABLE `device_maintains` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
`device_id` bigint(20) NOT NULL COMMENT '设备',
`maintain_type` tinyint(4) NULL DEFAULT 1 COMMENT '维护类型【1例行保养,2故障维修】',
`plan_date` date NULL DEFAULT NULL COMMENT '计划日期',
`content` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '维护内容',
`status` tinyint(4) NULL DEFAULT 0 COMMENT '状态【0待执行,1已完成】',
`finished_at` datetime NULL DEFAULT NULL COMMENT '完成时间',
`remark` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '备注',
`created_at` datetime NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 3 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '设备维护' ROW_FORMAT = DYNAMIC;
-- ----------------------------
-- Table structure for devices
-- ----------------------------
DROP TABLE IF EXISTS `devices`;
CREATE TABLE `devices` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
`lab_id` bigint(20) NOT NULL COMMENT '所属实验室',
`name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '设备名称',
`model` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '型号',
`serial_no` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '编号',
`status` tinyint(4) NULL DEFAULT 1 COMMENT '状态【1正常,2维修中,3报废】',
`enabled` tinyint(4) NULL DEFAULT 1 COMMENT '是否启用',
`created_at` datetime NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 4 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '设备' ROW_FORMAT = DYNAMIC;
-- ----------------------------
-- Table structure for lab_categories
-- ----------------------------
DROP TABLE IF EXISTS `lab_categories`;
CREATE TABLE `lab_categories` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
`name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '分类名称',
`sort_order` int(11) NULL DEFAULT 0 COMMENT '排序',
`enabled` tinyint(4) NULL DEFAULT 1 COMMENT '是否启用',
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 4 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '实验室分类' ROW_FORMAT = DYNAMIC;
-- ----------------------------
-- Table structure for labs
-- ----------------------------
DROP TABLE IF EXISTS `labs`;
CREATE TABLE `labs` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
`name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '实验室名称',
`location` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '位置',
`capacity` int(11) NULL DEFAULT 30 COMMENT '容量',
`category_id` bigint(20) NULL DEFAULT NULL COMMENT '所属分类',
`open_time` time NULL DEFAULT NULL COMMENT '开放开始',
`close_time` time NULL DEFAULT NULL COMMENT '开放结束',
`description` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '说明',
`status` tinyint(4) NULL DEFAULT 1 COMMENT '状态【1正常开放,2暂停使用】',
`enabled` tinyint(4) NULL DEFAULT 1 COMMENT '是否启用',
`created_at` datetime NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 4 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '实验室' ROW_FORMAT = DYNAMIC;
-- ----------------------------
-- Table structure for messages
-- ----------------------------
DROP TABLE IF EXISTS `messages`;
CREATE TABLE `messages` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
`user_id` bigint(20) NOT NULL COMMENT '接收用户',
`user_role` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '接收角色【STUDENT学生,ADMIN管理员】',
`title` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '标题',
`content` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '内容',
`is_read` tinyint(4) NULL DEFAULT 0 COMMENT '是否已读【0未读,1已读】',
`created_at` datetime NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 13 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '系统消息' ROW_FORMAT = DYNAMIC;
-- ----------------------------
-- Table structure for notices
-- ----------------------------
DROP TABLE IF EXISTS `notices`;
CREATE TABLE `notices` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
`title` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '标题',
`content` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '内容',
`publisher_id` bigint(20) NULL DEFAULT NULL COMMENT '发布人',
`publisher_role` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '发布角色',
`created_at` datetime NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 3 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '公告' ROW_FORMAT = DYNAMIC;
-- ----------------------------
-- Table structure for reservation_process
-- ----------------------------
DROP TABLE IF EXISTS `reservation_process`;
CREATE TABLE `reservation_process` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
`reservation_id` bigint(20) NOT NULL COMMENT '预约',
`step` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '流程步骤【SUBMIT提交,APPROVE通过,REJECT驳回,CHECKIN签到,CHECKOUT签退】',
`operator_id` bigint(20) NULL DEFAULT NULL COMMENT '操作人',
`operator_role` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '操作角色',
`remark` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '备注',
`created_at` datetime NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 12 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '预约流程' ROW_FORMAT = DYNAMIC;
-- ----------------------------
-- Table structure for reservations
-- ----------------------------
DROP TABLE IF EXISTS `reservations`;
CREATE TABLE `reservations` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
`lab_id` bigint(20) NOT NULL COMMENT '实验室',
`student_id` bigint(20) NULL DEFAULT NULL COMMENT '预约学生',
`reserve_date` date NOT NULL COMMENT '预约日期',
`start_time` time NOT NULL COMMENT '开始时间',
`end_time` time NOT NULL COMMENT '结束时间',
`purpose` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '用途说明',
`status` tinyint(4) NULL DEFAULT 0 COMMENT '状态【0待审核,1驳回,2待签到,3使用中,4已完成】',
`reject_reason` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '驳回原因',
`created_at` datetime NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 6 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '实验室预约' ROW_FORMAT = DYNAMIC;
-- ----------------------------
-- Table structure for reserve_rules
-- ----------------------------
DROP TABLE IF EXISTS `reserve_rules`;
CREATE TABLE `reserve_rules` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
`name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '规则名称',
`max_hours_per_day` int(11) NULL DEFAULT 4 COMMENT '每日上限小时',
`advance_days` int(11) NULL DEFAULT 7 COMMENT '可提前预约天数',
`no_show_penalty` int(11) NULL DEFAULT 1 COMMENT '爽约扣分',
`credit_ban_threshold` int(11) NULL DEFAULT 60 COMMENT '信用分封禁阈值',
`enabled` tinyint(4) NULL DEFAULT 1 COMMENT '是否启用',
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 2 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '预约规则' ROW_FORMAT = DYNAMIC;
-- ----------------------------
-- Table structure for stocks
-- ----------------------------
DROP TABLE IF EXISTS `stocks`;
CREATE TABLE `stocks` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
`lab_id` bigint(20) NOT NULL COMMENT '实验室',
`name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '耗材名称',
`unit` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '单位',
`quantity` int(11) NULL DEFAULT 0 COMMENT '库存数量',
`warn_quantity` int(11) NULL DEFAULT 10 COMMENT '预警数量',
`enabled` tinyint(4) NULL DEFAULT 1 COMMENT '是否启用',
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 4 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '耗材库存' ROW_FORMAT = DYNAMIC;
-- ----------------------------
-- Table structure for students
-- ----------------------------
DROP TABLE IF EXISTS `students`;
CREATE TABLE `students` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
`username` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '账号',
`password` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '密码',
`name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '姓名',
`student_no` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '学号',
`phone` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '手机号',
`avatar` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '头像',
`credit_score` int(11) NULL DEFAULT 100 COMMENT '信用分(满分100)',
`enabled` tinyint(4) NULL DEFAULT 1 COMMENT '是否启用',
PRIMARY KEY (`id`) USING BTREE,
UNIQUE INDEX `username`(`username`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 4 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '学生' ROW_FORMAT = DYNAMIC;
-- ----------------------------
-- Table structure for usage_records
-- ----------------------------
DROP TABLE IF EXISTS `usage_records`;
CREATE TABLE `usage_records` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
`reservation_id` bigint(20) NULL DEFAULT NULL COMMENT '关联预约',
`student_id` bigint(20) NOT NULL COMMENT '学生',
`lab_id` bigint(20) NOT NULL COMMENT '实验室',
`check_in_at` datetime NULL DEFAULT NULL COMMENT '签到时间',
`check_out_at` datetime NULL DEFAULT NULL COMMENT '签退时间',
`duration_minutes` int(11) NULL DEFAULT 0 COMMENT '使用分钟',
`created_at` datetime NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 2 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '使用记录' ROW_FORMAT = DYNAMIC;
-- ----------------------------
-- Table structure for violations
-- ----------------------------
DROP TABLE IF EXISTS `violations`;
CREATE TABLE `violations` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
`student_id` bigint(20) NOT NULL COMMENT '学生',
`violation_type` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '违规类型',
`description` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '说明',
`penalty` int(11) NULL DEFAULT 0 COMMENT '扣分',
`status` tinyint(4) NULL DEFAULT 1 COMMENT '状态【1有效,0撤销】',
`created_at` datetime NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 4 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '违规记录' ROW_FORMAT = DYNAMIC;
SET FOREIGN_KEY_CHECKS = 1;
擅长:功能设计、开题报告、任务书、中期检查PPT、系统功能实现、代码编写、论文编写和辅导、论文降重、长期答辩答疑辅导、腾讯会议一对一专业讲解辅导答辩、模拟答辩演练、和理解代码逻辑思路等。
获取联系
项目功能完整,可在本地运行,并可远程调试,确保运行顺利!
👇🏻👇🏻获取联系方式👇🏻👇🏻
毕业设计获取
https://blog.csdn.net/qq_59059632/article/details/163759879?spm=1011.2415.3001.5331
更多推荐

所有评论(0)