Based on Java SpringBoot and UniAPP campus integrated educational administration management applet

        With the deepening and extensive application of information technology in management, the implementation technology of management information system is becoming more and more mature. , To organize internal activities efficiently, it is necessary to establish a system when managing information according to its own characteristics. It is an integral part of educational institutions, and its content is crucial to school decision makers and managers. It can provide users with sufficient information and fast query methods, effectively help schools and teachers understand the situation of students, and serve students To provide query of grades and teaching, there are many shortcomings in the use of artificial life information management in the traditional mode.

        For example, low efficiency, poor security, and long time will generate a large number of files and data, which are difficult to discover, update, and maintain. This situation makes it difficult for school administrators to manage student information and seriously affects the work efficiency of educators. With the continuous advancement of science and technology, computer science is becoming more and more mature, and increasingly mature computer technology has replaced the traditional manual mode. Realized the modern management of student information. Its powerful functions have been highly recognized by people. It has entered various fields of human society and is playing an increasingly important role. As a part of computer applications, using computers to manage student information has incomparable advantages in manual management. Search Speed, search convenience, easy modification, reliability, storage capacity, data processing speed, confidentiality, long life, low cost, and ease of printing. It is also an important condition for the school's scientific and standardized management to be in line with the world. The computer-made student information management system can communicate the latest achievements of students to parents through a powerful network, which is conducive to the information interaction between the school and parents and the teaching of the school. Play a certain role in promoting a better grasp of the six policies! Therefore it is necessary to develop such management software.

 

 

Implemented functions:

Divided into two roles: student user and administrator;

Campus services (lost and found, recruitment information, online learning);

Academic affairs query (query your own grades);

personal center;

Among them, online learning is some pictures and texts about the learning content released by the administrator. Job postings are also admin-posted content. Lost and Found Both students and administrators can post. The grades are recorded by the administrator.

 

Technologies used:

The backend uses SpringBoot framework of JAVA language, MySQL database, Maven dependency management and other technologies;

The front end uses the uniapp framework of Vue.js syntax, which can be published as a WeChat applet.

 

Part of the code shows:

<template>
	<view>
		<u-navbar :is-back="false" title=" " :border-bottom="false">
			<view class="u-flex u-row-right" style="width: 100%;">
				<view class="camera u-flex u-row-center">

				</view>
			</view>
		</u-navbar>
		<view class="u-flex user-box u-p-l-30 u-p-r-20 u-p-b-30">
			<view class="u-m-r-10">
				<u-avatar :src="pic" size="140"></u-avatar>
			</view>
			<view class="u-flex-1">
				<view class="u-font-18 u-p-b-20">{
   
   {nick}}</view>
				<view class="u-font-14 u-tips-color">学号:{
   
   {userNo}}</view>
				<view class="u-font-14 u-tips-color">身份:{
   
   {admin ? '管理员':(userInfo.token ? '学生':'游客,请完成学生认证明')}}</view>
			</view>
			<!-- <view class="u-m-l-10 u-p-10">
				<u-icon name="scan" color="#969799" size="28"></u-icon>
			</view> -->
			<!-- <view class="u-m-l-10 u-p-10">
				<u-icon name="arrow-right" color="#969799" size="28"></u-icon>
			</view> -->
		</view>

		<view class="u-m-t-20">
			<u-cell-group>
				</u-cell-item>
				<u-cell-item v-if="admin" :iconStyle="{color:'#3f80de'}" @click="setScore" icon="tags-fill" title="成绩录入">
				</u-cell-item>
				<u-cell-item :iconStyle="{color:'#3f80de'}" @click="showInfo" icon="lock-fill" title="授权登录">
				</u-cell-item>
				<u-cell-item :iconStyle="{color:'#3f80de'}" @click="checkStudent" icon="man-add-fill" title="学生认证"></u-cell-item>
				
				<u-cell-item :iconStyle="{color:'#3f80de'}" @click="clear" icon="trash-fill" title="清除缓存"></u-cell-item>
				<u-cell-item :iconStyle="{color:'#3f80de'}" @click="showAppInfo" icon="question-circle-fill" title="关于小程序"></u-cell-item>
			</u-cell-group>
		</view>

		<!-- <view class="u-m-t-20">
			<u-cell-group>
				<u-cell-item :iconStyle="{color:'#3f80de'}" icon="setting" title="设置"></u-cell-item>
			</u-cell-group>
		</view> -->

		<u-popup v-model="showModel" mode="center" border-radius="14" width="600">
			<view class="c-model-view u-p-25">

				<u-field v-model="student.name" label="姓名" placeholder="请填写姓名"></u-field>
				<u-field v-model="student.userNo" label="学号" type="number" placeholder="请填写学号"></u-field>
				<u-field v-model="student.project" label="专业" placeholder="请填写专业"></u-field>
				<u-field v-model="student.phone" type="number" label="手机号" placeholder="请选择手机号"></u-field>
				
				<text class="u-p-10 u-tips-color">认证后请返回首屏重新授权,学号以年份开头,长度10位</text>
				
				<u-button type="primary" class="u-m-t-50" @click="submitCheck"  :ripple="true">认证
					  </u-button>
			</view>
		</u-popup>
		
		<u-select @confirm="selConfirm" v-model="show" :list="deptList"></u-select>
		
	</view>
</template>

<script>
	import appRequest from "@/common/appRequestUrl.js"
	export default {
		data() {
			return {
				pic: 'https://uviewui.com/common/logo.png',
				show: false,
				nick: "未登录",
				userNo: "未绑定",
				deptName: "未绑定",
				userInfo: "",
				admin: "",
				showModel: "",
				c:[],
				selObj:{},
				student:{
					name:"",
					userNo:"",
					deptFk:"",
					project:"",
					phone:"",
					deptNo:""
				},deptList:[]
			}
		},
		onShow() {
			this.checkUser();

		},
		methods: {
			setScore:function(){
				uni.navigateTo({
					url:"/pages/common/addScore"
				})
			},
			showAppInfo:function(){
				uni.showModal({
					title:"关于",
					content:"校园信息应用,版本号0.012",
					showCancel:false
				})
			},
			clear:function(){
				uni.clearStorageSync();
				uni.showToast({
					title:"已清除",
					icon:"none"
				})
			},
			checkUser:function(){
				this.userInfo = appRequest.getUserInfo();
				if (this.userInfo) {
					this.admin = this.userInfo.userInfo.type == 0;
					this.nick = this.userInfo.userInfo.nick;
					this.userNo = this.userInfo.userInfo.userNo;
				}
			},
			selConfirm(e) {
				this.selObj = e[0];
				for(let i=0;i<this.deptList.length;i++){
					if(this.deptList[i].value == this.selObj.value){
						this.selObj['no'] = this.deptList[i].no;
						break;
					}
				}
		
			},
			getDeptInfo: function(level) {
				let _this = this;
				appRequest.request({
					method: "GET",
					url: appRequest.getDeptData,
					success: function(res) {
						_this.deptList = [];
						res.data.data.map(function(item, index, arr) {
							if(level == item.level){
								_this.deptList.push({
									value: item.id,
									label: item.name,
									no:item.deptNo
								})
							}
						});
					},
					fail: function(res) {
			
					}
				})
			},
			submitCheck(){
				let _this = this;
				_this.student.deptFk = _this.selObj.value;
				_this.student.deptNo = _this.selObj.no;
				console.log(JSON.stringify(_this.student))
				if(!_this.student.name || !_this.student.userNo  || !_this.student.project ){
					uni.showToast({
						title:"请填写完整",
						icon:"none"
					})
					return;
				}
				
				try{
					let year = Number((new Date().getFullYear() + "").slice(2,4));
					let usrYear = Number((_this.student.userNo+"").slice(0,2));
					let dept = (_this.student.userNo+"").slice(2,4);
					if(year - usrYear > 4 ||  year - usrYear < 0 || (_this.student.userNo+"").length!=10){
						uni.showToast({
							title:"学号错误",
							icon:"error"
						})
						return;
					}
				}catch(e){
					//TODO handle the exception
					uni.showToast({
						title:"验证错误",
						icon:"error"
					})
					return;
				}
				
				wx.login({
					success(res) {
						if (res.code) {
							let code = res.code;
							
							appRequest.request({
								method: "GET",
								data: {
									code: code,
									data: JSON.stringify(_this.student)
								},
								url: appRequest.checkStudent,
								success: function(res) {
									if (res.data.code == 200) {
										_this.showModel = false;
										_this.getUserInfo(code);
										uni.clearStorage();
										uni.showToast({
											icon:"none",
											title:"认证成功"
										})
									}else{
										uni.showToast({
											title:res.data.msg,
											icon:"none"
										})
									}
								},
								fail: function(res) {
								}
							})
							
						} else {
							console.log('登录失败!' + res.errMsg)
						}
					}
				})
				
			},
			checkStudent() {
				let _this = this;
				// if (this.userInfo.token) {
				// 	uni.showToast({
				// 		title: '已完成学生认证,无需重复认证',
				// 		icon: "none"
				// 	})
				// 	return;
				// }
				_this.showModel = true;
				_this.getDeptInfo(1);
			},
			showInfo: function() {
				let _this = this;
				if (this.userInfo.token) {
					uni.showToast({
						title: '已完成授权,无需重复认证',
						icon: "none"
					})
					return;
				}
				wx.login({
					success(res) {
						if (res.code) {
							let code = res.code;
							uni.showModal({
								title: "登录",
								content: "请授权获取微信信息用于登录",
								success: function(res) {
									if (res.confirm) {
										_this.getUserInfo(code);
									}
								}
							})


						} else {
							console.log('登录失败!' + res.errMsg)
						}
					}
				})
			},
			getUserInfo(code) {
				console.log(code);
				let _this = this;
				wx.getUserProfile({
					desc: '用于学生身份认证', // 声明获取用户个人信息后的用途,后续会展示在弹窗中,请谨慎填写
					success: (res) => {
						console.log(3);
						console.log(JSON.stringify(res));
						_this.nick = res.userInfo.nickName;
						_this.pic = res.userInfo.avatarUrl;
						appRequest.request({
							method: "GET",
							data: {
								code: code,
								enData: res.encryptedData,
								iv: res.iv,
								userInfo: res.userInfo
							},
							url: appRequest.loginCheck,
							success: function(res) {
								if (res.data.code == 200) {
									try {
										uni.setStorageSync('userInfo', res.data.data);
										_this.checkUser();
									} catch (e) {
										uni.clearStorage();
									}
								}
							},
							fail: function(res) {
							}
						})
					}
				})
			}
		}
	}
</script>

<style lang="scss">
	page {
		min-height: 100vh;
		background-color: rgba(144, 215, 236, 0.05);

	}

	.camera {
		width: 54px;
		height: 44px;

		&:active {
			background-color: #ededed;
		}
	}

	.user-box {
		background-color: #fff;
	}
</style>

Based on Java and UniAPP campus integrated educational administration management applet

Guess you like

Origin blog.csdn.net/qq_28245905/article/details/131120411