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
+
+
+ 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