随着信息技术在管理中的应用日益深入和广泛,管理信息系统的实施技术也越来越成熟,管理信息系统是一门不断发展的新学科,任何一个机构要想生存和发展,要想有机、高效地组织内部活动,就必须根据自身的特点进行管理信息时,要建立体系。它是教育机构不可或缺的一部分,其内容对学校决策者和管理者至关重要,它可以为用户提供充分的信息和快速的查询手段,有效地帮助学校和教师了解学生的情况,为学生提供成绩和教学的查询,在传统模式下,人工学生命信息管理的使用存在很多缺点。
例如,效率低、安全性差、时间长会产生大量文件和数据,不易发现、更新、维护等。这种情况使学校管理人员难以管理学生的信息,严重影响了教育工作者的工作效率,随着科学技术的不断进步,计算机科学越来越成熟,日益成熟的计算机技术取代了传统的手工模式,实现了学生信息的现代化管理。其强大的功能已经得到人们的高度认可,它已经进入人类社会的各个领域,发挥着越来越重要的作用,作为计算机应用的一部分,使用计算机管理学生信息具有人工管理无可比拟的优势,搜索速度、搜索便利性、易于修改、可靠性、存储容量、数据处理速度、保密性、长寿命、低成本、具有打印易用性等优点。也是学校科学规范管理与世界接轨的重要条件。计算机制作的学生信息管理系统通过强大的网络,可以及时将学生的最新成果传达给家长,有利于学校和家长之间的信息互动,有利于学校的教学。对更好地把握六政策起到一定的促进作用!因此有必要开发这种管理软件。
实现的功能:
分为学生用户和管理员两种角色;
校园服务(失物招领、招聘信息、在线学习);
教务查询(查询自己的成绩);
个人中心;
其中在线学习就是管理员发布的一些关于学习内容的图文。招聘信息也是管理员发布的内容。失物招领学生和管理员都可以发布。成绩是管理员录进去的。
使用的技术:
后端使用JAVA语言的SpringBoot框架,MySQL数据库,Maven依赖管理等技术;
前端使用Vue.js语法的uniapp框架,可以发布成微信小程序。
部分代码展示:
<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>获取源码请关注后私信“20230609”