基于微信小程序的研究生假期留校、离校系统可以分为以下几个模块来实现:
1. 用户登录模块:用户需要通过微信小程序进行登录,可以使用微信授权登录或者手动输入用户名和密码进行登录。
2. 信息填写模块:用户登录后,需要填写个人信息,包括学号、姓名、性别、学院、专业、年级、所在宿舍、联系电话等信息。
3. 假期留校、离校申请模块:用户可以在小程序中选择留校、离校:假期类型(如暑假、寒假、各种法定节假日等),填写申请理由和预计离校、返校时间等信息,并提交申请。
4. 审核模块:学校管理人员可以在后台对用户提交的申请进行审核,审核通过后,用户可以收到微信消息通知。
5. 离校、返校登记模块:用户在离校、返校时,可以在小程序中进行登记,填写实际离校、返校时间等信息。
6. 数据统计模块(图表形式):学校管理人员可以在后台对留学生的假期申请、离校、返校情况进行统计,以便更好地管理留学生假期事务。
系统功能设计
角色:学生(研究生)、审批人员、管理员
一、学生:
首页---浏览假期公告、假期申请(留校、离校);
个人登记页---假期注意事项、离校登记、返校登记;
我的---帮助文档、个人信息管理。
二、审批人员:
首页---浏览假期公告、假期审批(留校、离校);
概览页---假期申请(留校、离校)占比图、离校登记实况图、返校登记实况图;
我的---帮助文档、个人信息管理。
三、管理员:1.假期公告(添加、删除、修改);
2.注意事项(添加、删除、修改);
3.帮助文档(添加、删除、修改);
4.假期留、离校申请(查看留、离校申请饼图;查看留、离校申请列表;记录留、离校情况,取消/删除留、离校申请);
5.假期离、返校登记(查看离、返校登记饼图;查看离、返校登记列表;记录离、返校情况,取消/删除离、返校登记);
6.用户管理:学生、审批人员、管理员(用户信息管理、审批权限管理等);
7.假期未申请学生统计;
8.登录管理。
基于微信小程序的研究生假期留校、离校系统的数据库设计可以分为以下几个表:
- 学生信息表:用于存储用户的基本信息,包括学号、姓名、性别、学院、专业、年级、所在宿舍、联系电话等。
- 工作人员表:用于存储工作人员(管理员、审核人员)的基本信息,包括工号、姓名、工作类型(管理员、审核人员)、联系方式等。
- 假期申请表:存储学生提交的假期申请信息,包括申请ID、用户姓名、假期类型、申请类型(1留校或2离校)、申请理由、预计离校时间、预计返校时间等信息。
- 离校登记表:存储用户的离校登记信息,包括登记ID、用户姓名、实际离校时间等信息。
- 返校登记表(:存储用户的返校登记信息,包括登记ID、用户姓名、实际返校时间等信息。
6. 审批记录表:用于存储学生的申请审批记录,包括审核ID、申请用户姓名、申请类型(留校或离校)、申请状态(待审批、已通过、已拒绝)、审批人、审核意见、审批时间等。
!!!!在数据库设计中,需要注意以下几点:
1. 用户表中的用户ID应该作为主键,保证唯一性。
2. 假期申请表中的申请ID应该作为主键,保证唯一性。同时,应该添加一个外键,关联到用户表中的用户ID,保证每个假期申请都属于一个用户。
3. 假期申请审核表中的审核ID应该作为主键,保证唯一性。同时,应该添加一个外键,关联到假期申请表中的申请ID,保证每个审核都对应一个假期申请。
4. 离校登记表和返校登记表中的登记ID应该作为主键,保证唯一性。同时,应该添加一个外键,关联到用户表中的用户ID,保证每个登记都属于一个用户。
5. 在数据库中,应该添加相应的索引,提高查询效率。
create table `approval-record`
(
`ar-id` varchar(64) not null comment '审批id'
primary key,
`ar-name` varchar(64) not null comment '学生姓名',
`ar-type` tinyint not null comment '申请类型:1留校,2离校',
`ar-status` tinyint not null comment '申请状态:0待审批,1已通过,2未通过',
`ar-worker` varchar(64) not null comment '审批人',
`ar-opinion` varchar(128) null comment '审批意见',
`ar-time` datetime not null comment '审批时间'
)
comment '审批记录表';
create table `holiday-application`
(
`ha-id` varchar(64) not null comment '申请id'
primary key,
`ha-name` varchar(64) not null comment '用户姓名',
`holiday-name` varchar(64) not null comment '假期类型',
`ha-type` tinyint not null comment '申请类型:1留校,2离校',
`la-reason` varchar(64) not null comment '申请理由',
`leave-time` date null comment '预计离校时间',
`return-time` date null comment '预计返校时间'
)
comment '假期申请表';
create table `leave-register`
(
`lr-id` varchar(64) not null comment '离校登记id'
primary key,
`lr-name` varchar(64) not null comment '用户姓名',
`lr-time` datetime not null comment '实际离校时间'
)
comment '离校登记表';
create table `return-register`
(
`rr-id` varchar(64) not null comment '返校登记id'
primary key,
`rr-name` int not null comment '用户姓名',
`rr-time` datetime not null comment '实际返校时间'
)
comment '返校登记表';
create table student
(
`stu-id` varchar(64) not null comment '学号'
primary key,
`stu-name` varchar(64) not null comment '姓名',
`stu-gender` tinyint not null comment '性别:1男,2女',
`stu-academy` varchar(64) not null comment '学院',
`stu-profession` varchar(64) not null comment '专业',
`stu-grade` varchar(64) not null comment '年级',
`stu-dormitory` varchar(64) not null comment '所在宿舍',
`stu-phone` varchar(64) null comment '联系电话'
)
comment '学生用户表';
create table worker
(
`wok-id` varchar(64) not null comment '工号'
primary key,
`wok-name` varchar(64) not null comment '姓名',
`wok-type` tinyint not null comment '工作类型:1管理员,2审核人员',
`wok-phone` varchar(64) null comment '联系电话'
)
comment '工作人员表';