SSM实现疫情打卡小程序
个人网站:http://xiaocaoshare.com/
2.需求分析
小程序:
学生和疫情防护人员
管理后台
分为管理员、疫情防护人员、学生
主要功能为:
学生管理、疫情防护人员管理、院系信息管理、疫情地区等级管理、系统管理等
3.技术架构
SSM+原生微信小程序+Vue
开发工具:
IDEA或eclipse
4.前端部分页面代码展示
登录页面
<view class="content data-v-4ff48042">
<view class="logo data-v-4ff48042">
<image
style="{{'box-shadow:'+('0 0 8rpx #ffaa33')+';'+('border-color:'+('#ccc')+';')+('border-radius:'+('20rpx')+';')+('border-width:'+('0px')+';')+('width:'+('160rpx')+';')+('border-style:'+('solid')+';')+('url:'+('http://codegen.caihongy.cn/20210327/7498aa8e3dbe4329b7b7a8caeae478cf.png')+';')+('is-show:'+(true)+';')+('height:'+('160rpx')+';')}}"
src="http://codegen.caihongy.cn/20210327/7498aa8e3dbe4329b7b7a8caeae478cf.png" mode="aspectFill"
class="data-v-4ff48042"></image>
</view>
<view class="uni-form-item uni-column data-v-4ff48042"><input class="uni-input data-v-4ff48042"
style="{{'border-color:'+('rgba(255, 170, 51, 1)')+';'+('background-color:'+('#fff')+';')+('border-radius:'+('8rpx')+';')+('color:'+('rgba(0, 0, 0, 1)')+';')+('text-align:'+('left')+';')+('border-width:'+('2rpx')+';')+('font-size:'+('28rpx')+';')+('border-style:'+('solid')+';')+('height:'+('80rpx')+';')}}"
type="text" name placeholder="请输入账号"
data-event-opts="{{[['input',[['__set_model',['','username','$event',[]]]]]]}}" value="{{username}}"
bindinput="__e" /></view>
<view class="uni-form-item uni-column data-v-4ff48042"><input class="uni-input data-v-4ff48042"
style="{{'border-color:'+('rgba(255, 170, 51, 1)')+';'+('background-color:'+('#fff')+';')+('border-radius:'+('8rpx')+';')+('color:'+('rgba(0, 0, 0, 1)')+';')+('text-align:'+('left')+';')+('border-width:'+('2rpx')+';')+('font-size:'+('28rpx')+';')+('border-style:'+('solid')+';')+('height:'+('80rpx')+';')}}"
type="password" name placeholder="请输入密码"
data-event-opts="{{[['input',[['__set_model',['','password','$event',[]]]]]]}}" value="{{password}}"
bindinput="__e" /></view>
<view class="uni-form-item uni-column data-v-4ff48042">
<picker value="{{index}}" range="{{options}}" data-event-opts="{{[['change',[['optionsChange',['$event']]]]]}}"
bindchange="__e" class="data-v-4ff48042">
<view class="uni-picker-type data-v-4ff48042"
style="{{'line-height:'+('80rpx')+';'+('font-size:'+('28rpx')+';')+('color:'+('rgba(255, 107, 19, 1)')+';')+('text-align:'+('left')+';')}}">
{{options[index]}}</view>
</picker>
</view>
<view class="data-v-4ff48042"><button
style="{{'border-color:'+('#ccc')+';'+('background-color:'+('rgba(255, 107, 19, 1)')+';')+('border-radius:'+('20rpx')+';')+('color:'+('rgba(255, 255, 255, 1)')+';')+('border-width:'+('0px')+';')+('font-size:'+('32rpx')+';')+('border-style:'+('solid')+';')+('height:'+('88rpx')+';')}}"
type="primary" data-event-opts="{{[['tap',[['onLoginTap',['$event']]]]]}}" bindtap="__e"
class="data-v-4ff48042">登录</button></view>
<view class="links data-v-4ff48042">
<view data-event-opts="{{[['tap',[['onRegisterTap',['xuesheng']]]]]}}" class="link-highlight data-v-4ff48042"
style="{{'color:'+('rgba(255, 107, 19, 1)')+';'+('font-size:'+('24rpx')+';')}}" bindtap="__e">注册学生</view>
<view class="data-v-4ff48042">|</view>
<view data-event-opts="{{[['tap',[['onRegisterTap',['yiqingfangkongrenyuan']]]]]}}"
class="link-highlight data-v-4ff48042"
style="{{'color:'+('rgba(255, 107, 19, 1)')+';'+('font-size:'+('24rpx')+';')}}" bindtap="__e">注册疫情防控人员</view>
<view class="data-v-4ff48042">|</view>
<view data-event-opts="{{[['tap',[['onForgetTap',['$event']]]]]}}"
style="{{'color:'+('rgba(255, 170, 51, 1)')+';'+('font-size:'+('24rpx')+';')}}" bindtap="__e"
class="data-v-4ff48042">忘记密码?</view>
</view>
</view>
注册页面
<view class="content data-v-7316b56a">
<block wx:if="{{false}}">
<view class="logo data-v-7316b56a">
<image
style="{{'box-shadow:'+('0 0 8rpx #ffaa33')+';'+('border-color:'+('#ccc')+';')+('border-radius:'+('40rpx')+';')+('border-width:'+('0px')+';')+('width:'+('160rpx')+';')+('border-style:'+('solid')+';')+('url:'+('http://codegen.caihongy.cn/20210327/a116aa442827428698066a8d90b2e692.png')+';')+('is-show:'+(false)+';')+('height:'+('160rpx')+';')}}"
src="http://codegen.caihongy.cn/20210327/a116aa442827428698066a8d90b2e692.png" mode="aspectFill"
class="data-v-7316b56a"></image>
</view>
</block>
<block wx:if="{{tableName=='xuesheng'}}">
<view class="uni-form-item uni-column data-v-7316b56a"><input class="uni-input data-v-7316b56a"
style="{{'border-color:'+('rgba(255, 170, 51, 1)')+';'+('background-color:'+('#fff')+';')+('border-radius:'+('8rpx')+';')+('color:'+('rgba(0, 0, 0, 1)')+';')+('text-align:'+('left')+';')+('border-width:'+('2rpx')+';')+('font-size:'+('28rpx')+';')+('border-style:'+('solid')+';')+('height:'+('80rpx')+';')}}"
type="text" name placeholder="学号"
data-event-opts="{{[['input',[['__set_model',['$0','xuehao','$event',[]],['ruleForm']]]]]}}"
value="{{ruleForm.xuehao}}" bindinput="__e" /></view>
</block>
<block wx:if="{{tableName=='xuesheng'}}">
<view class="uni-form-item uni-column data-v-7316b56a"><input class="uni-input data-v-7316b56a"
style="{{'border-color:'+('rgba(255, 170, 51, 1)')+';'+('background-color:'+('#fff')+';')+('border-radius:'+('8rpx')+';')+('color:'+('rgba(0, 0, 0, 1)')+';')+('text-align:'+('left')+';')+('border-width:'+('2rpx')+';')+('font-size:'+('28rpx')+';')+('border-style:'+('solid')+';')+('height:'+('80rpx')+';')}}"
type="text" name placeholder="密码"
data-event-opts="{{[['input',[['__set_model',['$0','mima','$event',[]],['ruleForm']]]]]}}"
value="{{ruleForm.mima}}" bindinput="__e" /></view>
</block>
<block wx:if="{{tableName=='xuesheng'}}">
<view class="uni-form-item uni-column data-v-7316b56a"><input class="uni-input data-v-7316b56a"
style="{{'border-color:'+('rgba(255, 170, 51, 1)')+';'+('background-color:'+('#fff')+';')+('border-radius:'+('8rpx')+';')+('color:'+('rgba(0, 0, 0, 1)')+';')+('text-align:'+('left')+';')+('border-width:'+('2rpx')+';')+('font-size:'+('28rpx')+';')+('border-style:'+('solid')+';')+('height:'+('80rpx')+';')}}"
type="text" name placeholder="姓名"
data-event-opts="{{[['input',[['__set_model',['$0','xingming','$event',[]],['ruleForm']]]]]}}"
value="{{ruleForm.xingming}}" bindinput="__e" /></view>
</block>
<block wx:if="{{tableName=='xuesheng'}}">
<view class="uni-form-item uni-column data-v-7316b56a">
<picker value="{{xueshengxingbieIndex}}" range="{{xueshengxingbieOptions}}"
data-event-opts="{{[['change',[['xueshengxingbieChange',['$event']]]]]}}" bindchange="__e"
class="data-v-7316b56a">
<view class="uni-input data-v-7316b56a"
style="{{'border-color:'+('rgba(255, 170, 51, 1)')+';'+('background-color:'+('#fff')+';')+('border-radius:'+('8rpx')+';')+('color:'+('rgba(0, 0, 0, 1)')+';')+('text-align:'+('left')+';')+('border-width:'+('2rpx')+';')+('font-size:'+('28rpx')+';')+('border-style:'+('solid')+';')+('height:'+('80rpx')+';')}}">
{{ruleForm.xingbie?ruleForm.xingbie:"请选择性别"}}</view>
</picker>
</view>
</block>
<block wx:if="{{tableName=='xuesheng'}}">
<view class="uni-form-item uni-column data-v-7316b56a"><input class="uni-input data-v-7316b56a"
style="{{'border-color:'+('rgba(255, 170, 51, 1)')+';'+('background-color:'+('#fff')+';')+('border-radius:'+('8rpx')+';')+('color:'+('rgba(0, 0, 0, 1)')+';')+('text-align:'+('left')+';')+('border-width:'+('2rpx')+';')+('font-size:'+('28rpx')+';')+('border-style:'+('solid')+';')+('height:'+('80rpx')+';')}}"
type="text" name placeholder="年龄"
data-event-opts="{{[['input',[['__set_model',['$0','nianling','$event',[]],['ruleForm']]]]]}}"
value="{{ruleForm.nianling}}" bindinput="__e" /></view>
</block>
<block wx:if="{{tableName=='xuesheng'}}">
<view class="uni-form-item uni-column data-v-7316b56a">
<picker value="{{xueshengsuozaiyuanxiIndex}}" range="{{xueshengsuozaiyuanxiOptions}}"
data-event-opts="{{[['change',[['xueshengsuozaiyuanxiChange',['$event']]]]]}}" bindchange="__e"
class="data-v-7316b56a">
<view class="uni-input data-v-7316b56a"
style="{{'border-color:'+('rgba(255, 170, 51, 1)')+';'+('background-color:'+('#fff')+';')+('border-radius:'+('8rpx')+';')+('color:'+('rgba(0, 0, 0, 1)')+';')+('text-align:'+('left')+';')+('border-width:'+('2rpx')+';')+('font-size:'+('28rpx')+';')+('border-style:'+('solid')+';')+('height:'+('80rpx')+';')}}">
{{ruleForm.suozaiyuanxi?ruleForm.suozaiyuanxi:"请选择所在院系"}}</view>
</picker>
</view>
</block>
<block wx:if="{{tableName=='xuesheng'}}">
<view class="uni-form-item uni-column data-v-7316b56a"><input class="uni-input data-v-7316b56a"
style="{{'border-color:'+('rgba(255, 170, 51, 1)')+';'+('background-color:'+('#fff')+';')+('border-radius:'+('8rpx')+';')+('color:'+('rgba(0, 0, 0, 1)')+';')+('text-align:'+('left')+';')+('border-width:'+('2rpx')+';')+('font-size:'+('28rpx')+';')+('border-style:'+('solid')+';')+('height:'+('80rpx')+';')}}"
type="text" name placeholder="电话"
data-event-opts="{{[['input',[['__set_model',['$0','dianhua','$event',[]],['ruleForm']]]]]}}"
value="{{ruleForm.dianhua}}" bindinput="__e" /></view>
</block>
<block wx:if="{{tableName=='xuesheng'}}">
<view class="uni-form-item uni-column data-v-7316b56a"><input class="uni-input data-v-7316b56a"
style="{{'border-color:'+('rgba(255, 170, 51, 1)')+';'+('background-color:'+('#fff')+';')+('border-radius:'+('8rpx')+';')+('color:'+('rgba(0, 0, 0, 1)')+';')+('text-align:'+('left')+';')+('border-width:'+('2rpx')+';')+('font-size:'+('28rpx')+';')+('border-style:'+('solid')+';')+('height:'+('80rpx')+';')}}"
type="text" name placeholder="邮箱"
data-event-opts="{{[['input',[['__set_model',['$0','youxiang','$event',[]],['ruleForm']]]]]}}"
value="{{ruleForm.youxiang}}" bindinput="__e" /></view>
</block>
<block wx:if="{{tableName=='xuesheng'}}">
<view class="uni-form-item uni-column data-v-7316b56a"><input class="uni-input data-v-7316b56a"
style="{{'border-color:'+('rgba(255, 170, 51, 1)')+';'+('background-color:'+('#fff')+';')+('border-radius:'+('8rpx')+';')+('color:'+('rgba(0, 0, 0, 1)')+';')+('text-align:'+('left')+';')+('border-width:'+('2rpx')+';')+('font-size:'+('28rpx')+';')+('border-style:'+('solid')+';')+('height:'+('80rpx')+';')}}"
type="text" name placeholder="身份证"
data-event-opts="{{[['input',[['__set_model',['$0','shenfenzheng','$event',[]],['ruleForm']]]]]}}"
value="{{ruleForm.shenfenzheng}}" bindinput="__e" /></view>
</block>
<block wx:if="{{tableName=='yiqingfangkongrenyuan'}}">
<view class="uni-form-item uni-column data-v-7316b56a"><input class="uni-input data-v-7316b56a"
style="{{'border-color:'+('rgba(255, 170, 51, 1)')+';'+('background-color:'+('#fff')+';')+('border-radius:'+('8rpx')+';')+('color:'+('rgba(0, 0, 0, 1)')+';')+('text-align:'+('left')+';')+('border-width:'+('2rpx')+';')+('font-size:'+('28rpx')+';')+('border-style:'+('solid')+';')+('height:'+('80rpx')+';')}}"
type="text" name placeholder="员工编号"
data-event-opts="{{[['input',[['__set_model',['$0','yuangongbianhao','$event',[]],['ruleForm']]]]]}}"
value="{{ruleForm.yuangongbianhao}}" bindinput="__e" /></view>
</block>
<block wx:if="{{tableName=='yiqingfangkongrenyuan'}}">
<view class="uni-form-item uni-column data-v-7316b56a"><input class="uni-input data-v-7316b56a"
style="{{'border-color:'+('rgba(255, 170, 51, 1)')+';'+('background-color:'+('#fff')+';')+('border-radius:'+('8rpx')+';')+('color:'+('rgba(0, 0, 0, 1)')+';')+('text-align:'+('left')+';')+('border-width:'+('2rpx')+';')+('font-size:'+('28rpx')+';')+('border-style:'+('solid')+';')+('height:'+('80rpx')+';')}}"
type="text" name placeholder="密码"
data-event-opts="{{[['input',[['__set_model',['$0','mima','$event',[]],['ruleForm']]]]]}}"
value="{{ruleForm.mima}}" bindinput="__e" /></view>
</block>
<block wx:if="{{tableName=='yiqingfangkongrenyuan'}}">
<view class="uni-form-item uni-column data-v-7316b56a"><input class="uni-input data-v-7316b56a"
style="{{'border-color:'+('rgba(255, 170, 51, 1)')+';'+('background-color:'+('#fff')+';')+('border-radius:'+('8rpx')+';')+('color:'+('rgba(0, 0, 0, 1)')+';')+('text-align:'+('left')+';')+('border-width:'+('2rpx')+';')+('font-size:'+('28rpx')+';')+('border-style:'+('solid')+';')+('height:'+('80rpx')+';')}}"
type="text" name placeholder="防控人员姓名"
data-event-opts="{{[['input',[['__set_model',['$0','fangkongrenyuanxingming','$event',[]],['ruleForm']]]]]}}"
value="{{ruleForm.fangkongrenyuanxingming}}" bindinput="__e" /></view>
</block>
<block wx:if="{{tableName=='yiqingfangkongrenyuan'}}">
<view class="uni-form-item uni-column data-v-7316b56a">
<picker value="{{yiqingfangkongrenyuanxingbieIndex}}" range="{{yiqingfangkongrenyuanxingbieOptions}}"
data-event-opts="{{[['change',[['yiqingfangkongrenyuanxingbieChange',['$event']]]]]}}" bindchange="__e"
class="data-v-7316b56a">
<view class="uni-input data-v-7316b56a"
style="{{'border-color:'+('rgba(255, 170, 51, 1)')+';'+('background-color:'+('#fff')+';')+('border-radius:'+('8rpx')+';')+('color:'+('rgba(0, 0, 0, 1)')+';')+('text-align:'+('left')+';')+('border-width:'+('2rpx')+';')+('font-size:'+('28rpx')+';')+('border-style:'+('solid')+';')+('height:'+('80rpx')+';')}}">
{{ruleForm.xingbie?ruleForm.xingbie:"请选择性别"}}</view>
</picker>
</view>
</block>
<block wx:if="{{tableName=='yiqingfangkongrenyuan'}}">
<view class="uni-form-item uni-column data-v-7316b56a"><input class="uni-input data-v-7316b56a"
style="{{'border-color:'+('rgba(255, 170, 51, 1)')+';'+('background-color:'+('#fff')+';')+('border-radius:'+('8rpx')+';')+('color:'+('rgba(0, 0, 0, 1)')+';')+('text-align:'+('left')+';')+('border-width:'+('2rpx')+';')+('font-size:'+('28rpx')+';')+('border-style:'+('solid')+';')+('height:'+('80rpx')+';')}}"
type="text" name placeholder="年龄"
data-event-opts="{{[['input',[['__set_model',['$0','nianling','$event',[]],['ruleForm']]]]]}}"
value="{{ruleForm.nianling}}" bindinput="__e" /></view>
</block>
<block wx:if="{{tableName=='yiqingfangkongrenyuan'}}">
<view class="uni-form-item uni-column data-v-7316b56a">
<picker value="{{yiqingfangkongrenyuansuozaiyuanxiIndex}}" range="{{yiqingfangkongrenyuansuozaiyuanxiOptions}}"
data-event-opts="{{[['change',[['yiqingfangkongrenyuansuozaiyuanxiChange',['$event']]]]]}}" bindchange="__e"
class="data-v-7316b56a">
<view class="uni-input data-v-7316b56a"
style="{{'border-color:'+('rgba(255, 170, 51, 1)')+';'+('background-color:'+('#fff')+';')+('border-radius:'+('8rpx')+';')+('color:'+('rgba(0, 0, 0, 1)')+';')+('text-align:'+('left')+';')+('border-width:'+('2rpx')+';')+('font-size:'+('28rpx')+';')+('border-style:'+('solid')+';')+('height:'+('80rpx')+';')}}">
{{ruleForm.suozaiyuanxi?ruleForm.suozaiyuanxi:"请选择所在院系"}}</view>
</picker>
</view>
</block>
<block wx:if="{{tableName=='yiqingfangkongrenyuan'}}">
<view class="uni-form-item uni-column data-v-7316b56a"><input class="uni-input data-v-7316b56a"
style="{{'border-color:'+('rgba(255, 170, 51, 1)')+';'+('background-color:'+('#fff')+';')+('border-radius:'+('8rpx')+';')+('color:'+('rgba(0, 0, 0, 1)')+';')+('text-align:'+('left')+';')+('border-width:'+('2rpx')+';')+('font-size:'+('28rpx')+';')+('border-style:'+('solid')+';')+('height:'+('80rpx')+';')}}"
type="text" name placeholder="联系电话"
data-event-opts="{{[['input',[['__set_model',['$0','lianxidianhua','$event',[]],['ruleForm']]]]]}}"
value="{{ruleForm.lianxidianhua}}" bindinput="__e" /></view>
</block>
<view class="data-v-7316b56a"><button
style="{{'border-color:'+('#ccc')+';'+('background-color:'+('rgba(255, 107, 19, 1)')+';')+('border-radius:'+('20rpx')+';')+('color:'+('rgba(255, 255, 255, 1)')+';')+('border-width:'+('0px')+';')+('font-size:'+('32rpx')+';')+('border-style:'+('solid')+';')+('height:'+('88rpx')+';')}}"
type="primary" data-event-opts="{{[['tap',[['register',['$event']]]]]}}" bindtap="__e"
class="data-v-7316b56a">注册</button></view>
</view>
系统演示地址:
链接:链接:https://pan.baidu.com/s/1_bcsLAqK9i78IqSjdRwd_Q
提取码:4t2t
需要源码的可以直接加QQ: 3083155908,本人专业代做毕业设计,论文,需要的私聊
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY