diff --git a/README.md b/README.md new file mode 100644 index 0000000..571b02d --- /dev/null +++ b/README.md @@ -0,0 +1,17 @@ +# **常态化疫情下的大学生出入校管理系统** + +## **系统介绍** + +  在常态化疫情防控的背景下,由于大学校园人口密度较大,为防止疫情传入学校造成聚集性传播,学校需对进出校人员进行科学合理的管理。目前针对学生、教职工及校外人员存在的出入校的需求,主要通过申请人提交申请,再由人工对健康码、核酸报告、行程码等信息进行核查。由于学校人口基数大,人工审核可能存在处理不及时、检查不准确等问题,且在当前高中低风险区的划分政策下,风险地区变化较快,人工查阅不一定及时。因此,为降低疫情传播入校的风险,对出入校管理效率和能力的提升成为目前各大学亟待解决的难题,有现实迫切的需求。`
`  本软件专为提高疫情期间师生出入校申请、审批的效率而设计,它可以帮助用户(老师、学生)查看天津市本地的疫情状况,帮助用户提交出入校申请,帮助管理员进行自动审批申请表,并在发现异常时提交给管理员进行手动审批,还可以在用户进出学校的时候进行扫码操作变更自己的出入校状态,且能通过界面查看该状态。`
`  + +## **配置环境** + +前端界面:微信开发者平台 + wxml + wxss + JavaScript `
` +后端服务器:Python 3.10 + flask框架 + jpype `
` +OCR模块:Java 1.7以上 + maven + com.baidu.aip `
` +数据库:SQL server 2019 + +## **备注** + +前端使用微信小程序,该部分代码无法被质量分析软件识别。`
` +OCR部分封装成jar包后直接调用,jar包部分也无法被质量分析软件识别,已将源代码放入/src/client/OCR_baidu文件夹下。 diff --git a/doc/01_软件系统的需求构思及描述.docx b/doc/01_软件系统的需求构思及描述.docx new file mode 100644 index 0000000..c1843e8 Binary files /dev/null and b/doc/01_软件系统的需求构思及描述.docx differ diff --git a/doc/02_软件需求规格说明书.docx b/doc/02_软件需求规格说明书.docx new file mode 100644 index 0000000..cae9cb4 Binary files /dev/null and b/doc/02_软件需求规格说明书.docx differ diff --git a/doc/03_软件设计规格说明书.docx b/doc/03_软件设计规格说明书.docx new file mode 100644 index 0000000..264263a Binary files /dev/null and b/doc/03_软件设计规格说明书.docx differ diff --git a/other/04_软件工程课程设计汇报PPT.pptx b/other/04_软件工程课程设计汇报PPT.pptx new file mode 100644 index 0000000..72ba95e Binary files /dev/null and b/other/04_软件工程课程设计汇报PPT.pptx differ diff --git a/other/05_软件开发项目的个人自评报告.xlsx b/other/05_软件开发项目的个人自评报告.xlsx new file mode 100644 index 0000000..aa4e5a2 Binary files /dev/null and b/other/05_软件开发项目的个人自评报告.xlsx differ diff --git a/other/06_软件开发项目的团队自评报告.xlsx b/other/06_软件开发项目的团队自评报告.xlsx new file mode 100644 index 0000000..ff3aaaf Binary files /dev/null and b/other/06_软件开发项目的团队自评报告.xlsx differ diff --git a/other/07_200240078 常傲宇-实践总结报告.docx b/other/07_200240078 常傲宇-实践总结报告.docx new file mode 100644 index 0000000..e212793 Binary files /dev/null and b/other/07_200240078 常傲宇-实践总结报告.docx differ diff --git a/other/07_200340001 白雪健-实践总结报告.docx b/other/07_200340001 白雪健-实践总结报告.docx new file mode 100644 index 0000000..a47e4f5 Binary files /dev/null and b/other/07_200340001 白雪健-实践总结报告.docx differ diff --git a/other/07_200340005 冯健铠-实践总结报告.docx b/other/07_200340005 冯健铠-实践总结报告.docx new file mode 100644 index 0000000..6d02392 Binary files /dev/null and b/other/07_200340005 冯健铠-实践总结报告.docx differ diff --git a/other/07_200340007 付泽昊-实践总结报告.docx b/other/07_200340007 付泽昊-实践总结报告.docx new file mode 100644 index 0000000..331f91d Binary files /dev/null and b/other/07_200340007 付泽昊-实践总结报告.docx differ diff --git a/other/07_200370016 吕一航-实践总结报告.docx b/other/07_200370016 吕一航-实践总结报告.docx new file mode 100644 index 0000000..09c70be Binary files /dev/null and b/other/07_200370016 吕一航-实践总结报告.docx differ diff --git a/other/07_201540453-赵亚楼-实践总结报告.docx b/other/07_201540453-赵亚楼-实践总结报告.docx new file mode 100644 index 0000000..c3247cf Binary files /dev/null and b/other/07_201540453-赵亚楼-实践总结报告.docx differ diff --git a/other/08_演示运行视频.mkv b/other/08_演示运行视频.mkv new file mode 100644 index 0000000..48835f0 Binary files /dev/null and b/other/08_演示运行视频.mkv differ diff --git a/src/README.md b/src/README.md new file mode 100644 index 0000000..571b02d --- /dev/null +++ b/src/README.md @@ -0,0 +1,17 @@ +# **常态化疫情下的大学生出入校管理系统** + +## **系统介绍** + +  在常态化疫情防控的背景下,由于大学校园人口密度较大,为防止疫情传入学校造成聚集性传播,学校需对进出校人员进行科学合理的管理。目前针对学生、教职工及校外人员存在的出入校的需求,主要通过申请人提交申请,再由人工对健康码、核酸报告、行程码等信息进行核查。由于学校人口基数大,人工审核可能存在处理不及时、检查不准确等问题,且在当前高中低风险区的划分政策下,风险地区变化较快,人工查阅不一定及时。因此,为降低疫情传播入校的风险,对出入校管理效率和能力的提升成为目前各大学亟待解决的难题,有现实迫切的需求。`
`  本软件专为提高疫情期间师生出入校申请、审批的效率而设计,它可以帮助用户(老师、学生)查看天津市本地的疫情状况,帮助用户提交出入校申请,帮助管理员进行自动审批申请表,并在发现异常时提交给管理员进行手动审批,还可以在用户进出学校的时候进行扫码操作变更自己的出入校状态,且能通过界面查看该状态。`
`  + +## **配置环境** + +前端界面:微信开发者平台 + wxml + wxss + JavaScript `
` +后端服务器:Python 3.10 + flask框架 + jpype `
` +OCR模块:Java 1.7以上 + maven + com.baidu.aip `
` +数据库:SQL server 2019 + +## **备注** + +前端使用微信小程序,该部分代码无法被质量分析软件识别。`
` +OCR部分封装成jar包后直接调用,jar包部分也无法被质量分析软件识别,已将源代码放入/src/client/OCR_baidu文件夹下。 diff --git a/src/client/OCR_baidu/.idea/vcs.xml b/src/client/OCR_baidu/.idea/vcs.xml new file mode 100644 index 0000000..c2365ab --- /dev/null +++ b/src/client/OCR_baidu/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/src/client/OCR_baidu/.idea/workspace.xml b/src/client/OCR_baidu/.idea/workspace.xml new file mode 100644 index 0000000..2ef9baa --- /dev/null +++ b/src/client/OCR_baidu/.idea/workspace.xml @@ -0,0 +1,53 @@ + + + + + + + + + + + + + + + + + + + + + 1669571873455 + + + + + + + \ No newline at end of file diff --git a/src/database/software.sql b/src/database/software.sql new file mode 100644 index 0000000..4b71c51 Binary files /dev/null and b/src/database/software.sql differ diff --git a/src/database/software_project.mdf b/src/database/software_project.mdf new file mode 100644 index 0000000..5669fab Binary files /dev/null and b/src/database/software_project.mdf differ diff --git a/src/wechat_app/pages/v11_success/v11_success.js b/src/wechat_app/pages/v11_success/v11_success.js new file mode 100644 index 0000000..987eaa6 --- /dev/null +++ b/src/wechat_app/pages/v11_success/v11_success.js @@ -0,0 +1,71 @@ +// pages/v11_success/v11_success.js +Page({ + + /** + * 页面的初始数据 + */ + data: { + + }, + c1:function(){ + wx.switchTab({ + url: '/pages/home/home', + }) + }, + + /** + * 生命周期函数--监听页面加载 + */ + onLoad(options) { + + }, + + /** + * 生命周期函数--监听页面初次渲染完成 + */ + onReady() { + + }, + + /** + * 生命周期函数--监听页面显示 + */ + onShow() { + + }, + + /** + * 生命周期函数--监听页面隐藏 + */ + onHide() { + + }, + + /** + * 生命周期函数--监听页面卸载 + */ + onUnload() { + + }, + + /** + * 页面相关事件处理函数--监听用户下拉动作 + */ + onPullDownRefresh() { + + }, + + /** + * 页面上拉触底事件的处理函数 + */ + onReachBottom() { + + }, + + /** + * 用户点击右上角分享 + */ + onShareAppMessage() { + + } +}) \ No newline at end of file diff --git a/src/wechat_app/pages/v11_success/v11_success.json b/src/wechat_app/pages/v11_success/v11_success.json new file mode 100644 index 0000000..8835af0 --- /dev/null +++ b/src/wechat_app/pages/v11_success/v11_success.json @@ -0,0 +1,3 @@ +{ + "usingComponents": {} +} \ No newline at end of file diff --git a/src/wechat_app/pages/v11_success/v11_success.wxml b/src/wechat_app/pages/v11_success/v11_success.wxml new file mode 100644 index 0000000..05eaecb --- /dev/null +++ b/src/wechat_app/pages/v11_success/v11_success.wxml @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/src/wechat_app/pages/v11_success/v11_success.wxss b/src/wechat_app/pages/v11_success/v11_success.wxss new file mode 100644 index 0000000..ee02e0d --- /dev/null +++ b/src/wechat_app/pages/v11_success/v11_success.wxss @@ -0,0 +1 @@ +/* pages/v11_success/v11_success.wxss */ diff --git a/src/wechat_app/pages/v12_submit_info/v10_auto/v10_auto.js b/src/wechat_app/pages/v12_submit_info/v10_auto/v10_auto.js new file mode 100644 index 0000000..dce770b --- /dev/null +++ b/src/wechat_app/pages/v12_submit_info/v10_auto/v10_auto.js @@ -0,0 +1,66 @@ +// pages/v10_auto/v10_auto.js +Page({ + + /** + * 页面的初始数据 + */ + data: { + + }, + + /** + * 生命周期函数--监听页面加载 + */ + onLoad(options) { + + }, + + /** + * 生命周期函数--监听页面初次渲染完成 + */ + onReady() { + + }, + + /** + * 生命周期函数--监听页面显示 + */ + onShow() { + + }, + + /** + * 生命周期函数--监听页面隐藏 + */ + onHide() { + + }, + + /** + * 生命周期函数--监听页面卸载 + */ + onUnload() { + + }, + + /** + * 页面相关事件处理函数--监听用户下拉动作 + */ + onPullDownRefresh() { + + }, + + /** + * 页面上拉触底事件的处理函数 + */ + onReachBottom() { + + }, + + /** + * 用户点击右上角分享 + */ + onShareAppMessage() { + + } +}) \ No newline at end of file diff --git a/src/wechat_app/pages/v12_submit_info/v10_auto/v10_auto.json b/src/wechat_app/pages/v12_submit_info/v10_auto/v10_auto.json new file mode 100644 index 0000000..8835af0 --- /dev/null +++ b/src/wechat_app/pages/v12_submit_info/v10_auto/v10_auto.json @@ -0,0 +1,3 @@ +{ + "usingComponents": {} +} \ No newline at end of file diff --git a/src/wechat_app/pages/v12_submit_info/v10_auto/v10_auto.wxml b/src/wechat_app/pages/v12_submit_info/v10_auto/v10_auto.wxml new file mode 100644 index 0000000..e0e8e5b --- /dev/null +++ b/src/wechat_app/pages/v12_submit_info/v10_auto/v10_auto.wxml @@ -0,0 +1,2 @@ + +pages/v10_auto/v10_auto.wxml diff --git a/src/wechat_app/pages/v12_submit_info/v10_auto/v10_auto.wxss b/src/wechat_app/pages/v12_submit_info/v10_auto/v10_auto.wxss new file mode 100644 index 0000000..e53a93f --- /dev/null +++ b/src/wechat_app/pages/v12_submit_info/v10_auto/v10_auto.wxss @@ -0,0 +1 @@ +/* pages/v10_auto/v10_auto.wxss */ \ No newline at end of file diff --git a/src/wechat_app/pages/v12_submit_info/v12_submit_info.js b/src/wechat_app/pages/v12_submit_info/v12_submit_info.js new file mode 100644 index 0000000..9ea81d9 --- /dev/null +++ b/src/wechat_app/pages/v12_submit_info/v12_submit_info.js @@ -0,0 +1,66 @@ +// pages/v12_submit_info/v12_submit_info.js +Page({ + + /** + * 页面的初始数据 + */ + data: { + + }, + + /** + * 生命周期函数--监听页面加载 + */ + onLoad(options) { + + }, + + /** + * 生命周期函数--监听页面初次渲染完成 + */ + onReady() { + + }, + + /** + * 生命周期函数--监听页面显示 + */ + onShow() { + + }, + + /** + * 生命周期函数--监听页面隐藏 + */ + onHide() { + + }, + + /** + * 生命周期函数--监听页面卸载 + */ + onUnload() { + + }, + + /** + * 页面相关事件处理函数--监听用户下拉动作 + */ + onPullDownRefresh() { + + }, + + /** + * 页面上拉触底事件的处理函数 + */ + onReachBottom() { + + }, + + /** + * 用户点击右上角分享 + */ + onShareAppMessage() { + + } +}) \ No newline at end of file diff --git a/src/wechat_app/pages/v12_submit_info/v12_submit_info.wxml b/src/wechat_app/pages/v12_submit_info/v12_submit_info.wxml new file mode 100644 index 0000000..03bd12f --- /dev/null +++ b/src/wechat_app/pages/v12_submit_info/v12_submit_info.wxml @@ -0,0 +1,2 @@ + +pages/v12_submit_info/v12_submit_info.wxml diff --git a/src/wechat_app/pages/v7_out_school/v7_out_school.js b/src/wechat_app/pages/v7_out_school/v7_out_school.js new file mode 100644 index 0000000..2909d9b --- /dev/null +++ b/src/wechat_app/pages/v7_out_school/v7_out_school.js @@ -0,0 +1,265 @@ + + +Page({ + data: { + name: '', //姓名 + sno:" ",//学号 + + phone: '', //手机号 + time:"",//入校时间, + door:"",//校门 + city:"",//省市 + area:"",//区 + address:"",//详细地址 + images: [] ,//存放图片的数组 + + test:[], + }, + + // 个人简介 + bindTextAreaBlur(e) { + this.setData({ + describe: e.detail.value + }) + }, + //点击添加按钮上传图片 + chooseImage: function(e) { + var that = this + wx.chooseMedia({ + sizeType: ['original', 'compressed'], //可选择原图或压缩后的图片 + sourceType: ['album', 'camera'], //可选择性开放访问相册、相机 + success: res => { + // console.log(res) + var team_image = wx.getFileSystemManager().readFileSync(res.tempFiles[0].tempFilePath, "base64") //将图片进行base64编码。 + if (this.data.images.length <= 2) { + + const test = this.data.test.concat(team_image) + const images = this.data.images.concat(res.tempFiles[0].tempFilePath) + // 限制最多只能留下2张照片 + that.setData({ + test:test, + images: images + }) + } else { + wx.showToast({ + title: '最多只能选择三张照片', + icon: 'none', + duration: 2000, + mask: true + }) + } + } + }) + }, + + + + + + removeImage(e) { + const idx = e.target.dataset.idx; + console.log(e.target.dataset.idx); + this.data.images.splice(idx, 1); + var del_image = this.data.images; + this.setData({ + images: del_image + }) + }, + handleImagePreview(e) { + const idx = e.target.dataset.idx + const images = this.data.images + wx.previewImage({ + current: images[idx], //当前预览的图片 + urls: images, //所有要预览的图片 + }) + }, + + upload_info: function() { + var images_list = []; //设置了一个空数组进行储存服务器端图片路径 + var phone_reg = /^1([38][0-9]|4[579]|5[0-3,5-9]|6[6]|7[0135678]|9[89])\d{8}$/; //手机正则 + + var that = this; + //验证表单信息 + if (that.data.name == '') { + wx.showToast({ + title: '姓名不能为空', + icon: 'none', + duration: 2000, + mask: true + }) + } else if (that.data.phone == '' || phone_reg.test(that.data.phone) == false) { + wx.showToast({ + title: '请输入正确的手机号码', + icon: 'none', + duration: 2000, + mask: true + }) + } else { + // 进行request请求 + wx.request({ + url: 'http://127.0.0.1:2020/out_school', + data: {name:this.data.name, + sno:this.data.sno, + phone:this.data.phone, + time:this.data.time, + door:this.data.door, + city:this.data.city, + area:this.data.area, + address:this.data.address, + // images:this.data.images, + test:this.data.test, + type:'出校' + + + }, + + enableCache: true, + enableHttp2: true, + enableQuic: true, + method: 'POST', + timeout: 0, + success: (result) => { + console.log(result) + if(result.data=='1'){ + wx.navigateTo({ + url: '/pages/v11_success/v11_success', + }) + } + if(result.data=='2'){ + wx.showModal({ + cancelColor: 'cancelColor', + title: '您已经提交过申请,请在通过情况中查看', + success: function (res) { + if (res.confirm) { + console.log('用户点击确定') + } else { + console.log('用户点击取消') + } + } + }) + } + if(result.data=='3'){ + wx.showModal({ + cancelColor: 'cancelColor', + title: '您目前状态为出校,不能提交出校申请', + success: function (res) { + if (res.confirm) { + console.log('用户点击确定') + } else { + console.log('用户点击取消') + } + } + }) + } + }, + fail: (res) => { + + }, + }) + + + } + + }, + + // 姓名 + name: function(e) { + // console.log(e) + this.setData({ + name: e.detail.value + }) + }, + // 电话 + phone: function(e) { + this.setData({ + phone: e.detail.value + }) + }, +//学号 + sno: function(e) { + this.setData({ + sno: e.detail.value + }) + }, + + //时间 + time: function(e) { + this.setData({ + time: e.detail.value + }) + }, + // 校门 + door: function(e) { + this.setData({ + door: e.detail.value + }) +}, +//省市 +city: function(e) { + this.setData({ + city: e.detail.value + }) +}, + +//区 +area: function(e) { + this.setData({ + area: e.detail.value + }) +}, +//详细地址 +address: function(e) { + this.setData({ + address: e.detail.value + }) +}, + + /** + * 生命周期函数--监听页面初次渲染完成 + */ + onReady: function() { + + }, + + /** + * 生命周期函数--监听页面显示 + */ + onShow: function() { + + }, + + /** + * 生命周期函数--监听页面隐藏 + */ + onHide: function() { + + }, + + /** + * 生命周期函数--监听页面卸载 + */ + onUnload: function() { + + }, + + /** + * 页面相关事件处理函数--监听用户下拉动作 + */ + onPullDownRefresh: function() { + + }, + + /** + * 页面上拉触底事件的处理函数 + */ + onReachBottom: function() { + + }, + + /** + * 用户点击右上角分享 + */ + onShareAppMessage: function() { + + } +}) \ No newline at end of file diff --git a/src/wechat_app/pages/v7_out_school/v7_out_school.json b/src/wechat_app/pages/v7_out_school/v7_out_school.json new file mode 100644 index 0000000..8835af0 --- /dev/null +++ b/src/wechat_app/pages/v7_out_school/v7_out_school.json @@ -0,0 +1,3 @@ +{ + "usingComponents": {} +} \ No newline at end of file diff --git a/src/wechat_app/pages/v7_out_school/v7_out_school.wxml b/src/wechat_app/pages/v7_out_school/v7_out_school.wxml new file mode 100644 index 0000000..0f4e152 --- /dev/null +++ b/src/wechat_app/pages/v7_out_school/v7_out_school.wxml @@ -0,0 +1,62 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 核酸报告,健康码图片 + + + + + + + + + + + 删除 + + + + + + + + + + \ No newline at end of file diff --git a/src/wechat_app/pages/v7_out_school/v7_out_school.wxss b/src/wechat_app/pages/v7_out_school/v7_out_school.wxss new file mode 100644 index 0000000..d7505b8 --- /dev/null +++ b/src/wechat_app/pages/v7_out_school/v7_out_school.wxss @@ -0,0 +1,265 @@ +.box{ + background-color: #efeff4; + height: 100%; + width: 100%; +} +.input-placeholder{ + font-size: 16px; +} +.section{ + width: 100%; + height: 55px; + box-sizing: border-box; + padding-top: 15px; + font-size: 16px; + display: flex; +} +.section input{ + width: 90%; + margin: 0 auto; + border-radius: 6px; + background-color:#FFF; + height: 40px; + box-sizing: border-box; + padding-left: 45px; + background-repeat: no-repeat; + background-size: 26px 26px; + background-position: 10px 7px; +} +.sex_age_box{ + display: flex; + justify-content: space-between; + box-sizing: border-box; + padding: 0 5%; + +} +.section_sex{ + width: 47.5%; + margin-top:15px; + background-color: #FFF; + height: 40px; + border-radius: 6px; + font-size: 16px; + color: #777777; +} +.imgs_sex{ + width: 26px; + height: 26px; + display: inline-block; + margin: 7px 5% 0 4%; +} +.text_sex{ + position: relative; + top: -7px; +} +.section_age{ + width: 47.5%; + margin-top:15px; + font-size: 16px; +} +.section_age input{ + width: 100%; + margin: 0 auto; + border-radius: 6px; + background-color:#FFF; + height: 40px; + box-sizing: border-box; + padding-left: 45px; + background-repeat: no-repeat; + background-size: 26px 26px; + background-position: 10px 7px; +} +.texta{ + width: 90%; + margin: 0 auto; + border-radius: 6px; + background-color:#FFF; + height: 150px; + box-sizing: border-box; + padding-left: 20px; + padding-top: 10px; +} +.upload_img{ + width: 90%; + margin: 0 auto; + background-color: #FFF; + margin-top: 15px; + border-radius: 6px; +} +.upload_img_btn{ + width: 100%; + height: 60px; + line-height: 60px; + border-bottom:1px solid #dddddd; + display: flex; + justify-content: space-between; +} +.upload_img_btn text{ + font-size: 17px; + color: #777777; + margin-left: 10px; +} +.btn{ + height: 30px; + margin: 15px 15px 0 0; +} +.img_box{ + box-sizing: border-box; + padding: 10px; +} +.imgs{ + width: 47.5%; + height: 180px; +} +.imgs image{ + width: 100%; + height: 150px; +} +.delete{ + text-align: center; + font-size: 16px; + color: red; + height: 30px; + line-height: 30px; +} +.expert_choice{ + width: 90%; + margin: 15px auto; + border-radius: 6px; + background-color: #FFF; + box-sizing: border-box; + padding: 0 15px 15px 15px; + font-size: 17px; +} +.msg{ + color: #777777; +} +.choice_box{ + display: flex; + flex-direction: column; + margin-top: 10px; + width: 100%; + background: linear-gradient(to right, #A4DFA5 , #86D78A ,#A4DFA5); + box-sizing: border-box; + padding: 15px; + color: #FFF; + border-radius: 6px; + text-align: center; +} +.choice_msg{ + margin-top: 10px; + font-size: 13px; + color: #000; +} +.expert_checkbox{ + margin-top: 20px; + font-size: 12px; + color: #777777; +} +.checkbox{ + margin-bottom: 15px; +} +checkbox-group{ + display: flex; + flex-direction: column; +} +checkbox .wx-checkbox-input{ + border-radius: 50%; + height: 18px; + width: 18px; + margin-top: -4px; +} +/* 日期选择 */ +.picker_group { + height: 85rpx; + line-height: 85rpx; + justify-content: center; + display: flex; + align-items: center; + font-size: 30rpx; + color: #888; + border-bottom: 1rpx solid #efefef; + +} +.picker_group picker { + /* background-color: yellow; */ + color: #64bff1; + height: 55rpx; + line-height: 55rpx; + margin: 0 2%; + padding: 0 2%; + border: 1rpx solid #64bff1; + border-radius: 30rpx; +} +.me_interval{ + width: 90%; + margin: 0 auto; + background-color: #FFF; + border-radius: 6px; + box-sizing: border-box; +} +.me_interval text{ + font-size: 17px; + color: #777777; + margin-left: 15px; +} +.picker_group{ + margin-top: 10px; + padding-bottom: 10px; + border: none; +} +.picker_group picker{ + padding: 0 5%; +} +.hospitalize{ + width: 90%; + margin: 15px auto; + background-color: #FFF; + border-radius: 6px; + box-sizing: border-box; +} +.hospitalize text{ + font-size: 17px; + color: #777777; + margin-left: 15px; +} +.radio-group{ + margin-left: 15px; + font-size: 15px; + color: #777777; + display: flex; + flex-direction: column; + line-height: 35px; +} +.btn_box{ + box-sizing: border-box; + padding: 20px 5% 50px; +} +.name_box{ + display: flex; + justify-content: space-between; + margin-bottom: 20px; +} +.name_box input{ + width: 47.5%; + height: 30px; + border: 1px solid #DDD; + border-radius: 6px; + box-sizing: border-box; + padding-left: 15px; +} +.hedden{ + display: none; +} +.show{ + display: flex; +} +.title{ + display: flex; +} +.shu{ + width: 3px; + height: 26px; + background: #07afff; + margin: 17px 0 15px 17px; +} diff --git a/src/wechat_app/pages/v8_in_school/v8_in_school.js b/src/wechat_app/pages/v8_in_school/v8_in_school.js new file mode 100644 index 0000000..0c54108 --- /dev/null +++ b/src/wechat_app/pages/v8_in_school/v8_in_school.js @@ -0,0 +1,269 @@ + + +Page({ + data: { + name: '', //姓名 + sno:" ",//学号 + + phone: '', //手机号 + time:"",//入校时间, + door:"",//校门 + city:"",//省市 + area:"",//区 + address:"",//详细地址 + images: [] ,//存放图片的数组 + + test:[], + + xxx:"", + }, + + // 个人简介 + bindTextAreaBlur(e) { + this.setData({ + describe: e.detail.value + }) + }, + //点击添加按钮上传图片 + chooseImage: function(e) { + var that = this + wx.chooseMedia({ + sizeType: ['original', 'compressed'], //可选择原图或压缩后的图片 + sourceType: ['album', 'camera'], //可选择性开放访问相册、相机 + success: res => { + // console.log(res) + var team_image = wx.getFileSystemManager().readFileSync(res.tempFiles[0].tempFilePath, "base64") //将图片进行base64编码。 + console.log(team_image) + if (this.data.images.length <= 2) { + + const test = this.data.test.concat(team_image) + const images = this.data.images.concat(res.tempFiles[0].tempFilePath) + // 限制最多只能留下2张照片 + that.setData({ + test:test, + images: images + }) + } else { + wx.showToast({ + title: '最多只能选择三张照片', + icon: 'none', + duration: 2000, + mask: true + }) + } + } + }) + }, + + + + + + removeImage(e) { + const idx = e.target.dataset.idx; + console.log(e.target.dataset.idx); + this.data.images.splice(idx, 1); + var del_image = this.data.images; + this.setData({ + images: del_image + }) + }, + handleImagePreview(e) { + const idx = e.target.dataset.idx + const images = this.data.images + wx.previewImage({ + current: images[idx], //当前预览的图片 + urls: images, //所有要预览的图片 + }) + }, + + upload_info: function() { + var images_list = []; //设置了一个空数组进行储存服务器端图片路径 + var phone_reg = /^1([38][0-9]|4[579]|5[0-3,5-9]|6[6]|7[0135678]|9[89])\d{8}$/; //手机正则 + + var that = this; + //验证表单信息 + if (that.data.name == '') { + wx.showToast({ + title: '姓名不能为空', + icon: 'none', + duration: 2000, + mask: true + }) + } else if (that.data.phone == '' || phone_reg.test(that.data.phone) == false) { + wx.showToast({ + title: '请输入正确的手机号码', + icon: 'none', + duration: 2000, + mask: true + }) + } else { + // 进行request请求 + wx.request({ + url: 'http://127.0.0.1:2020/in_school', + data: {name:this.data.name, + sno:this.data.sno, + phone:this.data.phone, + time:this.data.time, + door:this.data.door, + city:this.data.city, + area:this.data.area, + address:this.data.address, + // images:this.data.images, + test:this.data.test, + type:'入校' + + + }, + + enableCache: true, + enableHttp2: true, + enableQuic: true, + method: 'POST', + timeout: 0, + success: (result) => { + console.log(result) + if(result.data=='1'){ + wx.navigateTo({ + url: '/pages/v11_success/v11_success', + }) + } + if(result.data=='2'){ + wx.showModal({ + cancelColor: 'cancelColor', + title: '您已经提交过申请,请在通过情况中查看', + success: function (res) { + if (res.confirm) { + console.log('用户点击确定') + } else { + console.log('用户点击取消') + } + } + }) + } + if(result.data=='3'){ + wx.showModal({ + cancelColor: 'cancelColor', + title: '您目前状态为入校,不能提交入校申请', + success: function (res) { + if (res.confirm) { + console.log('用户点击确定') + } else { + console.log('用户点击取消') + } + } + }) + } + }, + fail: (res) => { + + }, + }) + + + + } + + }, + + // 姓名 + name: function(e) { + // console.log(e) + this.setData({ + name: e.detail.value + }) + }, + // 电话 + phone: function(e) { + this.setData({ + phone: e.detail.value + }) + }, +//学号 + sno: function(e) { + this.setData({ + sno: e.detail.value + }) + }, + + //时间 + time: function(e) { + this.setData({ + time: e.detail.value + }) + }, + // 校门 + door: function(e) { + this.setData({ + door: e.detail.value + }) +}, +//省市 +city: function(e) { + this.setData({ + city: e.detail.value + }) +}, + +//区 +area: function(e) { + this.setData({ + area: e.detail.value + }) +}, +//详细地址 +address: function(e) { + this.setData({ + address: e.detail.value + }) +}, + + /** + * 生命周期函数--监听页面初次渲染完成 + */ + onReady: function() { + + }, + + /** + * 生命周期函数--监听页面显示 + */ + onShow: function() { + + }, + + /** + * 生命周期函数--监听页面隐藏 + */ + onHide: function() { + + }, + + /** + * 生命周期函数--监听页面卸载 + */ + onUnload: function() { + + }, + + /** + * 页面相关事件处理函数--监听用户下拉动作 + */ + onPullDownRefresh: function() { + + }, + + /** + * 页面上拉触底事件的处理函数 + */ + onReachBottom: function() { + + }, + + /** + * 用户点击右上角分享 + */ + onShareAppMessage: function() { + + } +}) \ No newline at end of file diff --git a/src/wechat_app/pages/v8_in_school/v8_in_school.json b/src/wechat_app/pages/v8_in_school/v8_in_school.json new file mode 100644 index 0000000..8835af0 --- /dev/null +++ b/src/wechat_app/pages/v8_in_school/v8_in_school.json @@ -0,0 +1,3 @@ +{ + "usingComponents": {} +} \ No newline at end of file diff --git a/src/wechat_app/pages/v8_in_school/v8_in_school.wxml b/src/wechat_app/pages/v8_in_school/v8_in_school.wxml new file mode 100644 index 0000000..de242f7 --- /dev/null +++ b/src/wechat_app/pages/v8_in_school/v8_in_school.wxml @@ -0,0 +1,67 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 核酸报告,健康码图片 + + + + + + + + + + + 删除 + + + + + + + + + + \ No newline at end of file diff --git a/src/wechat_app/pages/v8_in_school/v8_in_school.wxss b/src/wechat_app/pages/v8_in_school/v8_in_school.wxss new file mode 100644 index 0000000..d7505b8 --- /dev/null +++ b/src/wechat_app/pages/v8_in_school/v8_in_school.wxss @@ -0,0 +1,265 @@ +.box{ + background-color: #efeff4; + height: 100%; + width: 100%; +} +.input-placeholder{ + font-size: 16px; +} +.section{ + width: 100%; + height: 55px; + box-sizing: border-box; + padding-top: 15px; + font-size: 16px; + display: flex; +} +.section input{ + width: 90%; + margin: 0 auto; + border-radius: 6px; + background-color:#FFF; + height: 40px; + box-sizing: border-box; + padding-left: 45px; + background-repeat: no-repeat; + background-size: 26px 26px; + background-position: 10px 7px; +} +.sex_age_box{ + display: flex; + justify-content: space-between; + box-sizing: border-box; + padding: 0 5%; + +} +.section_sex{ + width: 47.5%; + margin-top:15px; + background-color: #FFF; + height: 40px; + border-radius: 6px; + font-size: 16px; + color: #777777; +} +.imgs_sex{ + width: 26px; + height: 26px; + display: inline-block; + margin: 7px 5% 0 4%; +} +.text_sex{ + position: relative; + top: -7px; +} +.section_age{ + width: 47.5%; + margin-top:15px; + font-size: 16px; +} +.section_age input{ + width: 100%; + margin: 0 auto; + border-radius: 6px; + background-color:#FFF; + height: 40px; + box-sizing: border-box; + padding-left: 45px; + background-repeat: no-repeat; + background-size: 26px 26px; + background-position: 10px 7px; +} +.texta{ + width: 90%; + margin: 0 auto; + border-radius: 6px; + background-color:#FFF; + height: 150px; + box-sizing: border-box; + padding-left: 20px; + padding-top: 10px; +} +.upload_img{ + width: 90%; + margin: 0 auto; + background-color: #FFF; + margin-top: 15px; + border-radius: 6px; +} +.upload_img_btn{ + width: 100%; + height: 60px; + line-height: 60px; + border-bottom:1px solid #dddddd; + display: flex; + justify-content: space-between; +} +.upload_img_btn text{ + font-size: 17px; + color: #777777; + margin-left: 10px; +} +.btn{ + height: 30px; + margin: 15px 15px 0 0; +} +.img_box{ + box-sizing: border-box; + padding: 10px; +} +.imgs{ + width: 47.5%; + height: 180px; +} +.imgs image{ + width: 100%; + height: 150px; +} +.delete{ + text-align: center; + font-size: 16px; + color: red; + height: 30px; + line-height: 30px; +} +.expert_choice{ + width: 90%; + margin: 15px auto; + border-radius: 6px; + background-color: #FFF; + box-sizing: border-box; + padding: 0 15px 15px 15px; + font-size: 17px; +} +.msg{ + color: #777777; +} +.choice_box{ + display: flex; + flex-direction: column; + margin-top: 10px; + width: 100%; + background: linear-gradient(to right, #A4DFA5 , #86D78A ,#A4DFA5); + box-sizing: border-box; + padding: 15px; + color: #FFF; + border-radius: 6px; + text-align: center; +} +.choice_msg{ + margin-top: 10px; + font-size: 13px; + color: #000; +} +.expert_checkbox{ + margin-top: 20px; + font-size: 12px; + color: #777777; +} +.checkbox{ + margin-bottom: 15px; +} +checkbox-group{ + display: flex; + flex-direction: column; +} +checkbox .wx-checkbox-input{ + border-radius: 50%; + height: 18px; + width: 18px; + margin-top: -4px; +} +/* 日期选择 */ +.picker_group { + height: 85rpx; + line-height: 85rpx; + justify-content: center; + display: flex; + align-items: center; + font-size: 30rpx; + color: #888; + border-bottom: 1rpx solid #efefef; + +} +.picker_group picker { + /* background-color: yellow; */ + color: #64bff1; + height: 55rpx; + line-height: 55rpx; + margin: 0 2%; + padding: 0 2%; + border: 1rpx solid #64bff1; + border-radius: 30rpx; +} +.me_interval{ + width: 90%; + margin: 0 auto; + background-color: #FFF; + border-radius: 6px; + box-sizing: border-box; +} +.me_interval text{ + font-size: 17px; + color: #777777; + margin-left: 15px; +} +.picker_group{ + margin-top: 10px; + padding-bottom: 10px; + border: none; +} +.picker_group picker{ + padding: 0 5%; +} +.hospitalize{ + width: 90%; + margin: 15px auto; + background-color: #FFF; + border-radius: 6px; + box-sizing: border-box; +} +.hospitalize text{ + font-size: 17px; + color: #777777; + margin-left: 15px; +} +.radio-group{ + margin-left: 15px; + font-size: 15px; + color: #777777; + display: flex; + flex-direction: column; + line-height: 35px; +} +.btn_box{ + box-sizing: border-box; + padding: 20px 5% 50px; +} +.name_box{ + display: flex; + justify-content: space-between; + margin-bottom: 20px; +} +.name_box input{ + width: 47.5%; + height: 30px; + border: 1px solid #DDD; + border-radius: 6px; + box-sizing: border-box; + padding-left: 15px; +} +.hedden{ + display: none; +} +.show{ + display: flex; +} +.title{ + display: flex; +} +.shu{ + width: 3px; + height: 26px; + background: #07afff; + margin: 17px 0 15px 17px; +} diff --git a/src/wechat_app/pages/v9_manual/v9_manual.js b/src/wechat_app/pages/v9_manual/v9_manual.js new file mode 100644 index 0000000..9556eca --- /dev/null +++ b/src/wechat_app/pages/v9_manual/v9_manual.js @@ -0,0 +1,133 @@ +// pages/v9_manual/v9_manual.js +var app = getApp(); +Page({ + + /** + * 页面的初始数据 + */ + data: { + list:[] + }, +toinfo:function(abc){ + // console.log(abc.currentTarget.dataset.abc) + console.log(abc) + app.globalData.no=abc.currentTarget.dataset.abc + // console.log(app.globalData.no) + wx.redirectTo({ + url: '/pages/info/info', + }) +}, + + +// pulldata:function(){ +// var that = this +// wx.request({ +// url: 'http://127.0.0.1:2020/shengpi', +// method: 'GET', +// timeout: 0, +// dataType:JSON, +// success: (result) => { +// console.log(result.data) +// // JSON.parse将JSON字符串转换成一个JS对象,然后利用python的调用语法对相关内容进行操作 +// var p=JSON.parse(result.data) +// that.setData({ +// list:p.test1 +// }) + +// // var p=JSON.parse(result.data) +// wx.setStorageSync('test', p.test1[0]) + + +// this.setData({ +// name:this.data.name.concat(p.test1[0]), +// test:this.data.test.concat(wx.getStorageSync('test')) +// }) + +// }, +// }) +// }, + + /** + * 生命周期函数--监听页面加载 + */ + onLoad(options) { + + }, + + /** + * 生命周期函数--监听页面初次渲染完成 + */ + onReady() { + + }, + + /** + * 生命周期函数--监听页面显示 + */ + onShow() { + var that = this + wx.request({ + url: 'http://127.0.0.1:2020/info', + method: 'GET', + timeout: 0, + dataType:JSON, + success: (result) => { + // console.log(result.data) + // console.log(result.data) +// JSON.parse将JSON字符串转换成一个JS对象,然后利用python的调用语法对相关内容进行操作 + var p=JSON.parse(result.data) + // console.log(p.test1) + // console.log(p.image) + // that.setData({ + // list:p.test1 + // }) + + // // var p=JSON.parse(result.data) + // wx.setStorageSync('test', p.test1[0]) + + + this.setData({ + list:p.test1, + // test:this.data.test.concat(wx.getStorageSync('test')) + }) + + }, + }) + + }, + + /** + * 生命周期函数--监听页面隐藏 + */ + onHide() { + + }, + + /** + * 生命周期函数--监听页面卸载 + */ + onUnload() { + + }, + + /** + * 页面相关事件处理函数--监听用户下拉动作 + */ + onPullDownRefresh() { + + }, + + /** + * 页面上拉触底事件的处理函数 + */ + onReachBottom() { + + }, + + /** + * 用户点击右上角分享 + */ + onShareAppMessage() { + + } +}) \ No newline at end of file diff --git a/src/wechat_app/pages/v9_manual/v9_manual.json b/src/wechat_app/pages/v9_manual/v9_manual.json new file mode 100644 index 0000000..8835af0 --- /dev/null +++ b/src/wechat_app/pages/v9_manual/v9_manual.json @@ -0,0 +1,3 @@ +{ + "usingComponents": {} +} \ No newline at end of file diff --git a/src/wechat_app/pages/v9_manual/v9_manual.wxml b/src/wechat_app/pages/v9_manual/v9_manual.wxml new file mode 100644 index 0000000..89419d9 --- /dev/null +++ b/src/wechat_app/pages/v9_manual/v9_manual.wxml @@ -0,0 +1,18 @@ + + +审批 + + + + + + + {{item[2]}} + + + + + + diff --git a/src/wechat_app/pages/v9_manual/v9_manual.wxss b/src/wechat_app/pages/v9_manual/v9_manual.wxss new file mode 100644 index 0000000..c33faea --- /dev/null +++ b/src/wechat_app/pages/v9_manual/v9_manual.wxss @@ -0,0 +1,13 @@ +/* pages/v9_manual/v9_manual.wxss */ +.item{ + padding: 40rpx; + display: flex; + flex-direction: row; + justify-content: space-between; +} +.image1{ + width: 50rpx; + height: 50rpx; + /* 如果要设置圆角的话 */ + border-radius: 25rpx; +} \ No newline at end of file