Merge branch 'master' of https://bdgit.educoder.net/puf7keiya/aaaa into 冯健铠

# Conflicts:
#	README.md
pull/15/head
233 2 years ago
commit 90be77bb76

Binary file not shown.

@ -0,0 +1,3 @@
# 默认忽略的文件
/shelf/
/workspace.xml

@ -0,0 +1,12 @@
<component name="ArtifactManager">
<artifact type="jar" name="OCR_baidu:jar">
<output-path>$PROJECT_DIR$/out/artifacts/OCR_baidu_jar</output-path>
<root id="archive" name="OCR_baidu.jar">
<element id="module-output" name="OCR_baidu" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/json-20160810.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/slf4j-simple-1.7.25.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/aip-java-sdk-4.16.11.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/lib/slf4j-api-1.7.25.jar" path-in-jar="/" />
</root>
</artifact>
</component>

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="CompilerConfiguration">
<annotationProcessing>
<profile default="true" name="Default" enabled="true" />
</annotationProcessing>
</component>
</project>

@ -0,0 +1,9 @@
<component name="libraryTable">
<library name="aip-java-sdk-4.16.11">
<CLASSES>
<root url="jar://$PROJECT_DIR$/lib/aip-java-sdk-4.16.11.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES />
</library>
</component>

@ -0,0 +1,11 @@
<component name="libraryTable">
<library name="json-20160810">
<CLASSES>
<root url="jar://$PROJECT_DIR$/lib/json-20160810.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES>
<root url="jar://$PROJECT_DIR$/lib/json-20160810.jar!/" />
</SOURCES>
</library>
</component>

@ -0,0 +1,9 @@
<component name="libraryTable">
<library name="slf4j-api-1.7.25">
<CLASSES>
<root url="jar://$PROJECT_DIR$/lib/slf4j-api-1.7.25.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES />
</library>
</component>

@ -0,0 +1,9 @@
<component name="libraryTable">
<library name="slf4j-simple-1.7.25">
<CLASSES>
<root url="jar://$PROJECT_DIR$/lib/slf4j-simple-1.7.25.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES />
</library>
</component>

@ -0,0 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="CodeInsightWorkspaceSettings">
<option name="optimizeImportsOnTheFly" value="true" />
</component>
<component name="ProjectRootManager" version="2" languageLevel="JDK_11" default="true" project-jdk-name="11" project-jdk-type="JavaSDK">
<output url="file://$PROJECT_DIR$/out" />
</component>
</project>

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectModuleManager">
<modules>
<module fileurl="file://$PROJECT_DIR$/OCR_baidu.iml" filepath="$PROJECT_DIR$/OCR_baidu.iml" />
</modules>
</component>
</project>

@ -0,0 +1,124 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="Palette2">
<group name="Swing">
<item class="com.intellij.uiDesigner.HSpacer" tooltip-text="Horizontal Spacer" icon="/com/intellij/uiDesigner/icons/hspacer.png" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="1" hsize-policy="6" anchor="0" fill="1" />
</item>
<item class="com.intellij.uiDesigner.VSpacer" tooltip-text="Vertical Spacer" icon="/com/intellij/uiDesigner/icons/vspacer.png" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="6" hsize-policy="1" anchor="0" fill="2" />
</item>
<item class="javax.swing.JPanel" icon="/com/intellij/uiDesigner/icons/panel.png" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="3" hsize-policy="3" anchor="0" fill="3" />
</item>
<item class="javax.swing.JScrollPane" icon="/com/intellij/uiDesigner/icons/scrollPane.png" removable="false" auto-create-binding="false" can-attach-label="true">
<default-constraints vsize-policy="7" hsize-policy="7" anchor="0" fill="3" />
</item>
<item class="javax.swing.JButton" icon="/com/intellij/uiDesigner/icons/button.png" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="3" anchor="0" fill="1" />
<initial-values>
<property name="text" value="Button" />
</initial-values>
</item>
<item class="javax.swing.JRadioButton" icon="/com/intellij/uiDesigner/icons/radioButton.png" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="3" anchor="8" fill="0" />
<initial-values>
<property name="text" value="RadioButton" />
</initial-values>
</item>
<item class="javax.swing.JCheckBox" icon="/com/intellij/uiDesigner/icons/checkBox.png" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="3" anchor="8" fill="0" />
<initial-values>
<property name="text" value="CheckBox" />
</initial-values>
</item>
<item class="javax.swing.JLabel" icon="/com/intellij/uiDesigner/icons/label.png" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="0" anchor="8" fill="0" />
<initial-values>
<property name="text" value="Label" />
</initial-values>
</item>
<item class="javax.swing.JTextField" icon="/com/intellij/uiDesigner/icons/textField.png" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1">
<preferred-size width="150" height="-1" />
</default-constraints>
</item>
<item class="javax.swing.JPasswordField" icon="/com/intellij/uiDesigner/icons/passwordField.png" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1">
<preferred-size width="150" height="-1" />
</default-constraints>
</item>
<item class="javax.swing.JFormattedTextField" icon="/com/intellij/uiDesigner/icons/formattedTextField.png" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1">
<preferred-size width="150" height="-1" />
</default-constraints>
</item>
<item class="javax.swing.JTextArea" icon="/com/intellij/uiDesigner/icons/textArea.png" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
<preferred-size width="150" height="50" />
</default-constraints>
</item>
<item class="javax.swing.JTextPane" icon="/com/intellij/uiDesigner/icons/textPane.png" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
<preferred-size width="150" height="50" />
</default-constraints>
</item>
<item class="javax.swing.JEditorPane" icon="/com/intellij/uiDesigner/icons/editorPane.png" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
<preferred-size width="150" height="50" />
</default-constraints>
</item>
<item class="javax.swing.JComboBox" icon="/com/intellij/uiDesigner/icons/comboBox.png" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="0" hsize-policy="2" anchor="8" fill="1" />
</item>
<item class="javax.swing.JTable" icon="/com/intellij/uiDesigner/icons/table.png" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
<preferred-size width="150" height="50" />
</default-constraints>
</item>
<item class="javax.swing.JList" icon="/com/intellij/uiDesigner/icons/list.png" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="6" hsize-policy="2" anchor="0" fill="3">
<preferred-size width="150" height="50" />
</default-constraints>
</item>
<item class="javax.swing.JTree" icon="/com/intellij/uiDesigner/icons/tree.png" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
<preferred-size width="150" height="50" />
</default-constraints>
</item>
<item class="javax.swing.JTabbedPane" icon="/com/intellij/uiDesigner/icons/tabbedPane.png" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="3" hsize-policy="3" anchor="0" fill="3">
<preferred-size width="200" height="200" />
</default-constraints>
</item>
<item class="javax.swing.JSplitPane" icon="/com/intellij/uiDesigner/icons/splitPane.png" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="3" hsize-policy="3" anchor="0" fill="3">
<preferred-size width="200" height="200" />
</default-constraints>
</item>
<item class="javax.swing.JSpinner" icon="/com/intellij/uiDesigner/icons/spinner.png" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1" />
</item>
<item class="javax.swing.JSlider" icon="/com/intellij/uiDesigner/icons/slider.png" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1" />
</item>
<item class="javax.swing.JSeparator" icon="/com/intellij/uiDesigner/icons/separator.png" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3" />
</item>
<item class="javax.swing.JProgressBar" icon="/com/intellij/uiDesigner/icons/progressbar.png" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="6" anchor="0" fill="1" />
</item>
<item class="javax.swing.JToolBar" icon="/com/intellij/uiDesigner/icons/toolbar.png" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="6" anchor="0" fill="1">
<preferred-size width="-1" height="20" />
</default-constraints>
</item>
<item class="javax.swing.JToolBar$Separator" icon="/com/intellij/uiDesigner/icons/toolbarSeparator.png" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="0" anchor="0" fill="1" />
</item>
<item class="javax.swing.JScrollBar" icon="/com/intellij/uiDesigner/icons/scrollbar.png" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="6" hsize-policy="0" anchor="0" fill="2" />
</item>
</group>
</component>
</project>

@ -0,0 +1,3 @@
Manifest-Version: 1.0
Main-Class: OCR

@ -0,0 +1,15 @@
<?xml version="1.0" encoding="UTF-8"?>
<module type="JAVA_MODULE" version="4">
<component name="NewModuleRootManager" inherit-compiler-output="true">
<exclude-output />
<content url="file://$MODULE_DIR$">
<sourceFolder url="file://$MODULE_DIR$/src" isTestSource="false" />
</content>
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
<orderEntry type="library" name="aip-java-sdk-4.16.11" level="project" />
<orderEntry type="library" name="json-20160810" level="project" />
<orderEntry type="library" name="slf4j-api-1.7.25" level="project" />
<orderEntry type="library" name="slf4j-simple-1.7.25" level="project" />
</component>
</module>

@ -0,0 +1,3 @@
Manifest-Version: 1.0
Main-Class: HealthCode

@ -0,0 +1,3 @@
Manifest-Version: 1.0
Main-Class: HealthCode

File diff suppressed because it is too large Load Diff

@ -0,0 +1,138 @@
import com.baidu.aip.ocr.AipOcr;
import org.json.JSONObject;
import java.util.HashMap;
public class CovidTestRep {
private String Name;
private String Time;
private String Status;
public CovidTestRep() {
Name = "";
Time = "";
Status = "";
}
public String getName() {
return Name;
}
public String getData() {
return Time;
}
public String getStatus() {
return Status;
}
public void setStatus(String status) {
Status = status;
}
public void setName(String name) {
Name = name;
}
public void setData(String data) {
Time = data;
}
public void Print() {
System.out.println("Name:" + this.Name);
System.out.println("Data:" + this.Time);
System.out.println("Status:" + this.Status);
}
public static void main(String[] args) {
String path = "C:/Users//16491/eclipse-workspace/OCR_baidu/src/3.jpg";// 初始化一个AipOcr
ocr3(path);
}
public static String Judge(String path) {
CovidTestRep Ctr=new CovidTestRep();
Ctr=ocr3(path);
String StatusNameTime=Ctr.Status+","+Ctr.Name+","+Ctr.Time;
return StatusNameTime;
}
public static CovidTestRep ocr3(String path) {
final String APP_ID = "28049220";
final String API_KEY = "qyKlUy6xSapA89DTPomExteq";
final String SECRET_KEY = "q5EYpXULVh5gC3firLU1nGaymwIwOMBd";
AipOcr client = new AipOcr(APP_ID, API_KEY, SECRET_KEY);
// 可选:设置网络连接参数
client.setConnectionTimeoutInMillis(2000);
client.setSocketTimeoutInMillis(10000);
// 可选:设置代理服务器地址, http和socket二选一或者均不设置
// client.setHttpProxy("proxy_host", proxy_port); // 设置http代理
// client.setSocketProxy("proxy_host", proxy_port); // 设置socket代理
// 可选设置log4j日志输出格式若不设置则使用默认配置
// 也可以直接通过jvm启动参数设置此环境变量
System.setProperty("aip.log4j.conf", "path/to/your/log4j.properties");
// 调用接口
JSONObject res = client.basicGeneral(path, new HashMap<String, String>());
/*Map<String,Object> m=res.toMap();
Set s=m.entrySet();*//*
for (Object str : s) {
System.out.println(str);
}
//System.out.println(s);*/
String str= res.toString(0);
/*for(int i=0;i<str.length();i++)
{char c=str.charAt(i);
System.out.println(i);
System.out.println(c);
}*/
//System.out.println(str);
String s="";
for(int i=0;i<str.length();i++){
char c=str.charAt(i);
if((c>='a'&&c<='z')||(c>='A'&&c<='Z')||c=='{'||c=='"'||c==':'||c=='}'||c==''||c=='_'){
continue;
}
else
s+=c;
if(c==']')break;
}
//System.out.println(s);
CovidTestRep CTR=new CovidTestRep();
for(int i=0;i<s.length();i++)
{
if(s.charAt(i)=='姓'&&s.charAt(i+1)=='名')
{
String Na= CTR.getName();
i=i+3;
for(;s.charAt(i)!=',';i++)
{
Na+=s.charAt(i);
}
CTR.setName(Na);
}
if(s.charAt(i)=='采'&&s.charAt(i+1)=='样'&&s.charAt(i+2)=='时'&&s.charAt(i+3)=='间')
{
String Da= CTR.getData();
i=i+5;
for(;s.charAt(i)!=',';i++)
{
Da+=s.charAt(i);
}
CTR.setData(Da);
}
if(s.charAt(i)=='检'&&s.charAt(i+1)=='测'&&s.charAt(i+2)=='结'&&s.charAt(i+3)=='果')
{
String St= CTR.getStatus();
i=i+5;
for(;s.charAt(i)!=']';i++)
{
St+=s.charAt(i);
}
CTR.setStatus(St);
}
}
return CTR;
}
}

@ -0,0 +1,129 @@
import com.baidu.aip.ocr.AipOcr;
import org.json.JSONObject;
import java.util.HashMap;
public class HealthCode {
private String Name;
private String Data;
private String Status;
public HealthCode() {
Name = "";
Data = "";
Status = "";
}
public String getName() {
return Name;
}
public String getData() {
return Data;
}
public String getStatus() {
return Status;
}
public void setStatus(String status) {
Status = status;
}
public void setName(String name) {
Name = name;
}
public void setData(String data) {
Data = data;
}
public void Print() {
System.out.println("Name:" + this.Name);
System.out.println("Data:" + this.Data);
System.out.println("Status:" + this.Status);
}
public static void main(String[] args) {
String path = "C:/Users//16491/eclipse-workspace/OCR_baidu/src/1.jpg";
System.out.println(Judge(path));
}
public static String Judge(String path) {
HealthCode H = new HealthCode();
H = ocr1(path);
String StatusNameData = "S"+H.Status + "," + H.Name + "," + H.Data+"E";
return StatusNameData;
}
/*class OCR {
//设置APPID/AK/SK
public OCR(){
}*/
public static HealthCode ocr1(String path) {
final String APP_ID = "28049220";
final String API_KEY = "qyKlUy6xSapA89DTPomExteq";
final String SECRET_KEY = "q5EYpXULVh5gC3firLU1nGaymwIwOMBd";
// 初始化一个AipOcr
AipOcr client = new AipOcr(APP_ID, API_KEY, SECRET_KEY);
// 可选:设置网络连接参数
client.setConnectionTimeoutInMillis(2000);
client.setSocketTimeoutInMillis(60000);
// 可选:设置代理服务器地址, http和socket二选一或者均不设置
// client.setHttpProxy("proxy_host", proxy_port); // 设置http代理
// client.setSocketProxy("proxy_host", proxy_port); // 设置socket代理
// 可选设置log4j日志输出格式若不设置则使用默认配置
// 也可以直接通过jvm启动参数设置此环境变量
System.setProperty("aip.log4j.conf", "path/to/your/log4j.properties");
// 调用接口
JSONObject res = client.basicGeneral(path, new HashMap<String, String>());
String str= res.toString(0);
int flag = 0;
int flag1 = 0;
int flag2 = 0;
HealthCode HC = new HealthCode();
for (int i = 16; i < str.length(); i++) {
char c = str.charAt(i);
if (c == '[' && flag == 0) {
flag = 1;
} else if (flag == 1 && c == ']') {
break;
} else {
if (i == 27) {
String N = HC.getName();
for (; str.charAt(i) != '\"'; i++) {
N = N + str.charAt(i);
}
HC.setName(N);
}
if (str.charAt(i) == '-' && flag1 == 0) {
flag1 = 1;
String D = HC.getData();
for (i = i - 4; str.charAt(i) != '\"'; i++) {
D = D + str.charAt(i);
}
HC.setData(D);
}
if (str.charAt(i) == '码' && flag2 == 0) {
flag2 = 1;
String S = HC.getStatus();
S = S + str.charAt(i - 1);
HC.setStatus(S);
}
}
}
return HC;
}
}

@ -0,0 +1,3 @@
Manifest-Version: 1.0
Main-Class: HealthCode

@ -0,0 +1,146 @@
import com.baidu.aip.ocr.AipOcr;
import org.json.JSONObject;
import java.util.HashMap;
public class TripCode {
private String Status;
private String Telephone;
private String Time;
private String District;
public TripCode() {
Status = "";
Telephone = "";
Time = "";
District = "";
}
public void setStatus(String status) {
Status = status;
}
public void setTelephone(String telephone) {
Telephone = telephone;
}
public void setTime(String time) {
Time = time;
}
public void setDistrict(String district) {
District = district;
}
public String getTelephone() {
return Telephone;
}
public String getStatus() {
return Status;
}
public String getDistrict() {
return District;
}
public String getTime() {
return Time;
}
public void Print() {
System.out.println("Status:" + this.Status);
System.out.println("Telephone:" + this.Telephone);
System.out.println("Time:" + this.Time);
System.out.println("District:" + this.District);
}
public static void main(String[] args) {
String path = "C:\\Users\\16491\\Desktop\\1.jpg";
System.out.println(Judge(path));
}
/*};
class OCR2 {
//设置APPID/AK/SK*/
public static String Judge(String path) {
TripCode T = new TripCode();
T = ocr2(path);
String InfM = T.Status + "," + T.Telephone + "," + T.Time + "," + T.District;
return InfM;
}
public static TripCode ocr2(String path) {
final String APP_ID = "28049220";
final String API_KEY = "qyKlUy6xSapA89DTPomExteq";
final String SECRET_KEY = "q5EYpXULVh5gC3firLU1nGaymwIwOMBd";
// 初始化一个AipOcr
AipOcr client = new AipOcr(APP_ID, API_KEY, SECRET_KEY);
// 可选:设置网络连接参数
client.setConnectionTimeoutInMillis(2000);
client.setSocketTimeoutInMillis(10000);
// 可选:设置代理服务器地址, http和socket二选一或者均不设置
// client.setHttpProxy("proxy_host", proxy_port); // 设置http代理
// client.setSocketProxy("proxy_host", proxy_port); // 设置socket代理
// 可选设置log4j日志输出格式若不设置则使用默认配置
// 也可以直接通过jvm启动参数设置此环境变量
System.setProperty("aip.log4j.conf", "path/to/your/log4j.properties");
// 调用接口
JSONObject res = client.basicGeneral(path, new HashMap<String, String>());
//System.out.println(res);
String str = res.toString(0);
//System.out.println(str);
String s = "";
for (int i = 0; i < str.length(); i++) {
char c = str.charAt(i);
if ((c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z') || c == '{' || c == '"' || c == ':' || c == '}' || c == '' || c == '_') {
continue;
} else
s += c;
if (c == ']') break;
}
//System.out.println(s);
TripCode TC = new TripCode();
for (int i = 0; i < s.length(); i++) {
if (s.charAt(i) == '的' && s.charAt(i + 1) == '动' && s.charAt(i + 2) == '态' && s.charAt(i + 3) == '行' && s.charAt(i + 4) == '程' && s.charAt(i + 5) == '卡') {
String tel = TC.getTelephone();
for(;s.charAt(i)!=',';i--);
i++;
for (; s.charAt(i) != ','; i++) {
tel += s.charAt(i);
}
TC.setTelephone(tel);
}
if (s.charAt(i) == '请' && s.charAt(i + 1) == '收' && s.charAt(i + 2) == '下') {
String St = TC.getStatus();
i = i + 3;
for (; s.charAt(i) != ','; i++) {
St += s.charAt(i);
}
TC.setStatus(St);
}
if (s.charAt(i) == '更' && s.charAt(i + 1) == '新' && s.charAt(i + 2) == '于') {
String Data = TC.getTime();
i = i + 3;
for (; s.charAt(i) != ','; i++) {
Data += s.charAt(i);
}
TC.setTime(Data);
}
if (s.charAt(i) == '到' && s.charAt(i + 1) == '达' && s.charAt(i + 2) == '或' && s.charAt(i + 3) == '途' && s.charAt(i + 4) == '经') {
String Dis = TC.getDistrict();
i = i + 5;
for (; s.charAt(i) != ']'; i++) {
Dis += s.charAt(i);
}
TC.setDistrict(Dis);
}
}
return TC;
}
}

@ -0,0 +1,53 @@
from codecs import ignore_errors
from pickle import TRUE
import turtle
from xmlrpc.client import boolean
import numpy as np
from asyncore import write
import xlrd
import pandas as pd
import openpyxl
from xlrd import Book
import datetime
import time
import time
from flask import Flask,request
from encodings import utf_8
import pymssql
import json
import base64
import jpype
class admin_log():
def admin_log1(c,a):
b={
'test1':[],
'text':'2'
}
# 把数据装载成json格式并回传
#a='{"a":{"test":1},"b":2,"c":3,"d":4,"e":5}'
conn =pymssql.connect(
server="LAPTOP-FLH9FTB4",#本地服务器
user="sa",password="as2799094948",
database="software_project",
charset="utf8"
)
if conn:
print('连接数据库成功!')#测试是否连接上
cursor =conn.cursor() #使用cursor()方法获取操作游标
a= request.json
username=a['username']
passwd=a['password']
sql_select="SELECT [password] FROM admin where username = '{}'".format(username) #数据库查询语句
cursor.execute(sql_select) #执行语句
results =cursor.fetchall() #获取所有记录列表
if len(results)==0:
b['text']=1
elif results[0][0]==passwd:
b['text']=2
else: b['text']=3
conn.commit()
cursor.close()
conn.close()
# 把数据装载成json格式并回传
a1=json.dumps(b,ensure_ascii=False)
return a1

@ -0,0 +1,16 @@
'''b={
'test1':[],
'text':'2',
'image':[]
}
b['test1'].append(['学号200340001','姓名:白雪健','电话13080337680','时间2020','校门:南','市:天津','区:东丽区','详细地址:中国民航大学'])
print(b)'''
b={
'test1':[],
'text':'2',
'image':[]
}
b['test1'].append([])
b['test1'][0].append('申请表类型')
b['test1'][0].append('申请表类型')
print(b)

@ -0,0 +1,88 @@
import time
import requests
import pymssql
import re
from bs4 import BeautifulSoup
cookies = {
'security_session_verify': '2b416949a891a8c262d984ce4252acc6',
'__yjs_duid': '1_0b113b04c0c0e5c875c1b9485d5285781666539190108',
'Hm_lvt_133c8ee1fed22328c57193e7ed6ce0c5': '1666539138,1666540035',
'Hm_lpvt_133c8ee1fed22328c57193e7ed6ce0c5': '1666540145',
}
headers = {
'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9',
'Accept-Language': 'zh-CN,zh;q=0.9',
'Cache-Control': 'max-age=0',
'Connection': 'keep-alive',
# Requests sorts cookies= alphabetically
# 'Cookie': 'security_session_verify=2b416949a891a8c262d984ce4252acc6; __yjs_duid=1_0b113b04c0c0e5c875c1b9485d5285781666539190108; Hm_lvt_133c8ee1fed22328c57193e7ed6ce0c5=1666539138,1666540035; Hm_lpvt_133c8ee1fed22328c57193e7ed6ce0c5=1666540145',
'Referer': 'http://tj.bendibao.com/news/gelizhengce/fengxianmingdan.php?isqg=0',
'Upgrade-Insecure-Requests': '1',
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36',
}
params = {
'isqg': '1',
'qu': '全部',
}
t=0
while True:
conn =pymssql.connect(
server="LAPTOP-FLH9FTB4",#本地服务器
user="sa",password="as2799094948",
database="software_project",
charset="utf8"
#这里设置全局的GBK如果设置的是UTF—8需要将数据库默认的GBK转化成UTF-8
)
if conn:
print('连接数据库成功!')#测试是否连接上
res = requests.get('http://tj.bendibao.com/news/gelizhengce/fengxianmingdan.php', params=params, cookies=cookies, headers=headers)
res.encoding='utf-8'
soup = BeautifulSoup(res.text, 'html.parser')
# 使用cursor()方法获取操作游标
cursor =conn.cursor()
# 高风险地区信息
# 清除原有数据
cursor.execute("truncate table height")
conn.commit()
# 存入新数据
content='#info > div.height.info-item > div > div > div > div'
a=soup.select(content)
for i in range(1,len(a)):
a[i] = a[i].text.strip().replace("\n", "")
if len(a[i])!=0:
area=re.search(r'.*?区',a[i]).group()
cursor.execute("insert into height values('{0}','{1}')".format(area,a[i]))
conn.commit()
# 中风险地区信息
# 清除原有数据
cursor.execute("truncate table middle")
conn.commit()
# 存入新数据
content='#info > div.middle.info-item > div > div > div > div'
a=soup.select(content)
for i in range(1,len(a)):
a[i] = a[i].text.strip().replace("\n", "")
if len(a[i])!=0:
area=re.search(r'.*?区',a[i]).group()
cursor.execute("insert into middle values('{0}','{1}')".format(area,a[i]))
conn.commit()
# 低风险地区信息
# 清除原有数据
cursor.execute("truncate table low")
conn.commit()
# 存入新数据
content='#info > div.low.info-item > div > div > div > div'
a=soup.select(content)
for i in range(1,len(a)):
a[i] = a[i].text.strip().replace("\n", "")
if len(a[i])!=0:
area=re.search(r'.*?区',a[i]).group()
cursor.execute("insert into low values('{0}','{1}')".format(area,a[i]))
conn.commit()
cursor.close()
# 断开数据库连接
conn.close()
# 设置休眠时间,定时执行
time.sleep(43200) #12小时

@ -0,0 +1,190 @@
# from crypt import methods
# 将对应图片的base64编码解析为图片
from audioop import add
import base64
import os
from unicodedata import name
import time
from flask import Flask,request
from codecs import ignore_errors
from pickle import TRUE
import turtle
from xmlrpc.client import boolean
import numpy as np
from asyncore import write
import xlrd
import pandas as pd
import openpyxl
from xlrd import Book
import datetime
import time
import time
from flask import Flask,request
from encodings import utf_8
import pymssql
import json
import base64
import jpype
# 出校申请请求的类def decode_base64(base64_data,i):
# print(type(base64_data))
#print(base64_data)
# 如果想要在浏览器上访问base64格式图片需要在前面加上data:image/jpeg;base64,
class in_school:
def __init__(self,type='',sno='',name='',phone='',time='',door='',city='',area='',address='',health_code='',Tour_code='',NAT='',Pass=''):
self.type=''
self.sno=''
self.name=''
self.phone=''
self.time=''
self.door=''
self.city=''
self.area=''
self.address=''
self.health_code=''
self.Tour_code=''
self.NAT=''
self.Pass=''
def in_school1(p,json_data):
Conn = pymssql.connect('LAPTOP-FLH9FTB4',"sa","as2799094948","software_project",charset='utf8')
cur = Conn.cursor()
sql = "Select [sno] from Form where sno= '{}'".format(json_data['sno'])
cur.execute(sql)
requests = cur.fetchall()
if(len (requests)!=0):
return '2'
sql = "Select state from [user] where username= '{}'".format(json_data['sno'])
cur.execute(sql)
requests = cur.fetchall()
for row in requests:
if(row[0]==json_data['type']):
return '3'
cur.close()
Conn.close()
#将请求得到的数据转换为json格式
l1 = len(json_data['test'])
'''for i in range(l1):
decode_base64(json_data['test'][i],i) #调用base64编码转换图片的函数得到相应图片并存到目录中'''
#查找user表如果state是在校 就return 2
a = in_school()
a.type='入校'
a.sno=json_data['sno']
a.name = json_data['name']
a.phone = json_data['phone']
a.time = json_data['time']
a.door = json_data['door']
a.city =json_data['city']
a.area =json_data['area']
a.address = json_data['address']
a.health_code = json_data['test'][0]
a.Tour_code = json_data['test'][1]
a.NAT = json_data['test'][2]
f=a.shengpi1(json_data['area'],json_data['time'],json_data['test'][2],json_data['test'][1],json_data['test'][0])
a.Pass = str(f)
return a
def shengpi1(p,a,b,c,d,e):#a:xx区 b时间 c健康码 d行程码 e核酸
year,month,day=b.split('-',2)
Conn = pymssql.connect('LAPTOP-FLH9FTB4',"sa","as2799094948","software_project",charset='utf8')#xxx是防疫表现在先不填
cur = Conn.cursor()
sql = "Select [area] from height"
cur.execute(sql)
now=str(time.strftime("%d"))#调用本地时间
x=0
if '' not in a:
a=a+''
# wb1=openpyxl.load_workbook('D:\\fanyi.xlsx')
#ws1=wb1['Sheet1']
#num_rows1 = ws1.max_row # 总行数
#num_cols1 = ws1.max_column
row = cur.fetchone()
while row:
if(a==row[0]):
return 3 # ---调用防疫区数据库将a和防疫区数据库的值进行一一比较如果找到返回不通过
row = cur.fetchone()
#-----
a2=1
if(day!=now):
return 3 #2----将本地时间和b进行比较如果异常将数据库中对应用户的通过情况改成不通过。
#2----
#jarpath =r"D:\tupian\OCR_baidu.jar" # jar包地址
#jvmPath = jpype.getDefaultJVMPath()
#jpype.startJVM(jvmPath, "-ea", "-Djava.class.path=%s" % (jarpath))
java1 = jpype.JClass("HealthCode")
java2 = jpype.JClass("TripCode")
java3 = jpype.JClass("CovidTestRep")
j1 = java1()
j2 = java2()
j3 = java3()
a2=1
path="D:/tupian//12.jpg"
with open(path,'wb') as file:
img = base64.b64decode(c)
file.write(img)
str1 = str(j1.Judge(r"D:\tupian\12.jpg")) #Hst, Hname, Hdata 对应健康码颜色姓名日期3---- 将c传给ocr让ocr把颜色传回来对应给参数进行比较如果异常将数据库中对应用户的通过情况改成不通过。
Hst, Hname, Hdata = str1.split(',')
year1,month1,day1=Hdata.split('-')
#if(year1!=year or month!= month1 or day!=day1):
#return 3
print(Hst)
#if(Hst!='S绿'):
#return 3
path="D:/tupian//13.jpg"
with open(path,'wb') as file:
img = base64.b64decode(d)
file.write(img)
str2 = str(j2.Judge(r"D:\tupian\13.jpg"))
Tst, Ttel, Tdata, Tdis = str2.split(',')#Tst, Ttel, Tdata, Tdis 对应行程码颜色电话日期去过的地方4--- 将d传给ocr让ocr把地点颜色传回来 查看行程码是否是正常,如果异常,将数据库中对应用户的通过情况改成不通过。
year2,month2,day2=Tdata.split('.')
#if(year2!=year or month!= month2 or day!=day2):
#return 3
if(Tdis!='天津市'):
return 3
#4---
path="D://tupian/11.jpg"
with open(path,'wb') as file:
img = base64.b64decode(e)
file.write(img)
str3 = str(j3.Judge(r"D:\tupian\11.jpg"))
Cst, Cname, Cdata = str3.split(',')#Cst, Cname, Cdata 对应 核酸结果 姓名 核酸日期5--- 将e传给ocr让ocr把状态传回来 查看核酸是否是正常,如果异常,将数据库中对应用户的通过情况改成不通过。
year3,month3,day3=Cdata.split('-')
#if(year3!=year or month!= month3 or day-day3<=14):
#return 3
if(Cst!='阴性'):
return 3
return 2
# 路由交换数据
# def change(self):
# app= Flask(__name__)
# @app.route('/',methods=['GET','POST'])#开启app.route进到根目录里面
# def hello_world():
# json_data = request.json #将请求得到的数据转换为json格式
# l1 = len(json_data['test'])
# for i in range(l1):
# decode_base64(json_data['test'][i],i) #调用base64编码转换图片的函数得到相应图片并存到目录中
# self.name = json_data['name']
# self.sno = json_data['sno']
# self.phone = json_data['phone']
# self.time = json_data['time']
# self.door = json_data['door']
# self.city =json_data['city']
# self.area =json_data['area']
# self.address = json_data['address']
# return '1' #如果一切正常则返回1
# app.run(host='127.0.0.1',port=2022)
# if __name__=='__main__':
# a = in_school1()
# a.change()
# print(a.name)
# print(a.sno)
# print(a.)

@ -0,0 +1,172 @@
from audioop import add
import base64
import os
import json
from unicodedata import name
from codecs import ignore_errors
from pickle import TRUE
import turtle
from xmlrpc.client import boolean
import numpy as np
from asyncore import write
import xlrd
import pandas as pd
import openpyxl
from xlrd import Book
import datetime
import time
from flask import Flask,request
from encodings import utf_8
import pymssql
import json
import base64
from out_school import out_school
from in_school import in_school
import time
from flask import Flask,request
from shengpi import approval
from admin_log import admin_log
from user_log import user_log
from view import view
from scan_the_code import scan_the_code
import jpype
app= Flask(__name__)
@app.route('/',methods=['GET','POST'])
def hello():
return '2'
@app.route('/uesr',methods=['GET','POST'])
def log():
a= request.json
user=user_log()
a1=user.user_log1(a)
return a1
@app.route('/admin',methods=['GET','POST'])
def log1():
a= request.json
admin=admin_log()
a1=admin.admin_log1(a)
#a='{"a":{"test":1},"b":2,"c":3,"d":4,"e":5}'
return a1
@app.route('/in_school',methods=['GET','POST'])#开启app.route进到根目录里面
def in_school1():
json_data = request.json
a=in_school()
b=a.in_school1(json_data)
if(b=='2' or b == '3'):
print(b)
return b
to_mssql(b)
# print(a.sno)
return '1'
@app.route('/out_school',methods=['GET','POST'])#开启app.route进到根目录里面
def out_school1():
json_data = request.json #将请求得到的数据转换为json格式
a=out_school()
b=a.out_school1(json_data)
if(b=='2' or b == '3'):
return b
to_mssql(b)
return '1'
def a():
password = request.values.get("password")
print(password)
@app.route('/shengpi',methods=['GET','POST'])
def Userdisplay(): #收到request返回所有没有通过申请的用户名字的列表
a=approval()
data=a.list()
data=json.dumps(data,ensure_ascii=False)
return data
@app.route('/info',methods=['GET','POST'])
def Userdisplay1(): #收到学号返回该用户信息
a=approval()
b=a.list2()
a=json.dumps(b,ensure_ascii=False)
data=json.loads(a)
# print(data)
return data
def to_mssql(a):
Conn = pymssql.connect('LAPTOP-FLH9FTB4',"sa","as2799094948","software_project",charset='utf8')
if Conn:
print ("连接成功")
else:
print("失败")
# print(a.type,a.sno,a.name,a.phone,a.time,a.door,a.city,a.area,a.address,a.health_code,a.Tour_code,a.NAT,a.Pass)
# print(type(a.NAT))
cur = Conn.cursor()
print(a.Pass)
insert = "insert into Form([type] ,[sno] ,[name] ,[phone] ,[time] ,[door] ,[city] ,[area] ,[address] ,[health_code] ,[Tour_code] ,[NAT] ,[Pass]) values ('%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s') ; COMMIT"%(
a.type,a.sno,a.name,a.phone,a.time,a.door,a.city,a.area,a.address,a.health_code,a.Tour_code,a.NAT,a.Pass
)
cur.execute(insert)
print("qqqqq")
cur.close()
Conn.close()
@app.route('/access',methods=['GET','POST'])#开启app.route进到根目录里面
def access():
# return '1'
a= request.json
a1=approval()
a1.shengpi2(a)
return '1'
@app.route('/state',methods=['GET','POST'])
def State():
a = request.json
num = a['sno']
print(num)
Conn = pymssql.connect(server="LAPTOP-FLH9FTB4",#本地服务器
user="sa",password="as2799094948",
database="software_project",
charset="utf8")
cur = Conn.cursor()
Query = 'Select [Pass] from Form where [sno] = %s'%num
cur.execute(Query)
p = cur.fetchall()
if(len(p)==0):
print('您还没有提交表单或您的申请已被管理员驳回')
return '您还没有提交表单或您的申请已被管理员驳回'
if p[0][0] == '1':
print('您的申请表待审核')
return '您的申请表待审核'
elif p[0][0] == '2':
print('您的申请表已通过审核')
return '您的申请表已通过审核'
elif p[0][0] == '3':
print('您的申请表自动审批未通过,等待管理员审批')
return '您的申请表自动审批未通过,等待管理员审批'
else:
print('error')
return 'error'
# 查看疫情信息
@app.route('/look_info',methods=['GET','POST'])
def look():
json_data = request.json
a=view()
b=a.view1(json_data)
return b
@app.route('/scan_the_code',methods=['GET','POST'])#开启app.route进到根目录里面
def scan():
data = request.json
a=scan_the_code()
b=a.scan_the_code1(data)
return b
if __name__ == "__main__":
jarpath =r"D:\tupian\OCR_baidu.jar"
jvmPath = jpype.getDefaultJVMPath()
jpype.startJVM(jvmPath, "-ea", "-Djava.class.path=%s" % (jarpath))
app.run(host='127.0.0.1',port=2020)
jpype.shutdownJVM ()

@ -0,0 +1,41 @@
import os
import jpype
jarpath = r"D:\tupian\OCR_baidu.jar" # jar包地址
jvmPath = jpype.getDefaultJVMPath()
jpype.startJVM(jvmPath, "-ea", "-Djava.class.path=%s" % (jarpath))
java1 = jpype.JClass("HealthCode")
java2 = jpype.JClass("TripCode")
java3 = jpype.JClass("CovidTestRep")
j1 = java1()
j2 = java2()
j3 = java3()
str1 = str(j1.Judge(r"D:\tupian\12.jpg")) # 健康码地址,不要包含中文 下同
str2 = str(j2.Judge(r"D:\tupian\13.jpg")) # 行程码地址
str3 = str(j3.Judge(r"D:\tupian\11.jpg")) # 核酸结果地址
# if str2==",," or str3==',,':图片有误
'''
Hst, Hname, Hdata 对应健康码颜色姓名日期
Tst, Ttel, Tdata, Tdis 对应行程码颜色电话日期去过的地方
Cst, Cname, Cdata 对应 核酸结果 姓名 核酸日期
'''
# 为方便分割Hst前加了一个大写字符S判断时应注意如绿码 Hst为S绿
Hst, Hname, Hdata = str1.split(',')
Tst, Ttel, Tdata, Tdis = str2.split(',')
Cst, Cname, Cdata = str3.split(',')
Hdata = Hdata[0:10] # 只要求精确到日,不考虑小时。
Tdata = Tdata[0:10]
Cdata = Cdata[0:10]
print(Hst)
print(Hname)
print(Hdata)
print(Tst)
print(Ttel)
print(Tdis)
print(Tdata)
print(Cst)
print(Cname)
print(Cdata)
jpype.shutdownJVM()

@ -0,0 +1,149 @@
from codecs import ignore_errors
from pickle import TRUE
import turtle
from xmlrpc.client import boolean
import numpy as np
from asyncore import write
import xlrd
import pandas as pd
import openpyxl
from xlrd import Book
import datetime
import time
import time
from flask import Flask,request
from encodings import utf_8
import pymssql
import json
import base64
import jpype
class out_school:
def __init__(self,type='',sno='',name='',phone='',time='',door='',city='',area='',address='',health_code='',Tour_code='',NAT='',Pass=''):
self.type=''
self.sno=''
self.name=''
self.phone=''
self.time=''
self.door=''
self.city=''
self.area=''
self.address=''
self.health_code=''
self.Tour_code=''
self.NAT=''
self.Pass=''
def out_school1(p,json_data):
l1 = len(json_data['test'])
Conn = pymssql.connect('LAPTOP-FLH9FTB4',"sa","as2799094948","software_project",charset='utf8')
cur = Conn.cursor()
sql = "Select [sno] from Form where sno= '{}'".format(json_data['sno'])
cur.execute(sql)
requests = cur.fetchall()
if(len (requests)!=0):
return '2'
sql = "Select state from [user] where username= '{}'".format(json_data['sno'])
cur.execute(sql)
requests = cur.fetchall()
for row in requests:
print(type(json_data['type']))
if(row[0]==json_data['type']):
return '3'
cur.close()
Conn.close()
'''for i in range(l1):
decode_base64(json_data['test'][i],i+3) #调用base64编码转换图片的函数得到相应图片并存到目录中'''
#查找user表如果state是出校 就return 2
a = out_school()
a.type = '出校'
a.sno = json_data['sno']
a.name = json_data['name']
a.phone = json_data['phone']
a.time = json_data['time']
a.door = json_data['door']
a.city =json_data['city']
a.area =json_data['area']
a.address = json_data['address']
a.health_code = json_data['test'][0]
a.Tour_code = json_data['test'][1]
a.NAT = json_data['test'][2]
f=a.shengpi1(json_data['area'],json_data['time'],json_data['test'][1],json_data['test'][2],json_data['test'][0])
a.Pass=f
return a
def shengpi1(p,a,b,c,d,e):#a:xx区 b时间 c健康码 d行程码 e核酸
year,month,day=b.split('-',2)
Conn = pymssql.connect('LAPTOP-FLH9FTB4',"sa","as2799094948","software_project",charset='utf8')#xxx是防疫表现在先不填
cur = Conn.cursor()
sql = "Select [area] from height"
cur.execute(sql)
now=str(time.strftime("%d"))#调用本地时间
x=0
if '' not in a:
a=a+''
row = cur.fetchone()
while row:
if(a==row[0]):
return 3 # ---调用防疫区数据库将a和防疫区数据库的值进行一一比较如果找到返回不通过
row = cur.fetchone()
#-----
sql = "Select [area] from middle"
cur.execute(sql)
row = cur.fetchone()
while row:
if(a==row[0]):
return 3 # ---调用防疫区数据库将a和防疫区数据库的值进行一一比较如果找到返回不通过
row = cur.fetchone()
a2=1
if(day!=now):
return 3 #2----将本地时间和b进行比较如果异常将数据库中对应用户的通过情况改成不通过。
#2----
#jarpath =r"D:\tupian\OCR_baidu.jar" # jar包地址
#jvmPath = jpype.getDefaultJVMPath()
#jpype.startJVM(jvmPath, "-ea", "-Djava.class.path=%s" % (jarpath))
java1 = jpype.JClass("HealthCode")
java2 = jpype.JClass("TripCode")
java3 = jpype.JClass("CovidTestRep")
j1 = java1()
j2 = java2()
j3 = java3()
a2=1
path="D:/tupian//12.jpg"
with open(path,'wb') as file:
img = base64.b64decode(c)
file.write(img)
str1 = str(j1.Judge(r"D:\tupian\12.jpg")) #Hst, Hname, Hdata 对应健康码颜色姓名日期3---- 将c传给ocr让ocr把颜色传回来对应给参数进行比较如果异常将数据库中对应用户的通过情况改成不通过。
Hst, Hname, Hdata = str1.split(',')
year1,month1,day1=Hdata.split('-')
#if(year1!=year or month!= month1 or day!=day1):
#return 3
if(Hst!='S绿'):
return 3
path="D:/tupian//13.jpg"
with open(path,'wb') as file:
img = base64.b64decode(d)
file.write(img)
str2 = str(j2.Judge(r"D:\tupian\13.jpg"))
Tst, Ttel, Tdata, Tdis = str2.split(',')#Tst, Ttel, Tdata, Tdis 对应行程码颜色电话日期去过的地方4--- 将d传给ocr让ocr把地点颜色传回来 查看行程码是否是正常,如果异常,将数据库中对应用户的通过情况改成不通过。
year2,month2,day2=Tdata.split('.')
#if(year2!=year or month!= month2 or day!=day2):
#return 3
if(Tdis!='天津市'):
return 3
#4---
path="D://tupian/11.jpg"
with open(path,'wb') as file:
img = base64.b64decode(e)
file.write(img)
str3 = str(j3.Judge(r"D:\tupian\11.jpg"))
Cst, Cname, Cdata = str3.split(',')#Cst, Cname, Cdata 对应 核酸结果 姓名 核酸日期5--- 将e传给ocr让ocr把状态传回来 查看核酸是否是正常,如果异常,将数据库中对应用户的通过情况改成不通过。
year3,month3,day3=Cdata.split('-')
#if(year3!=year or month!= month3 or day-day3<=14):
#return 3
if(Cst!='阴性'):
return 3
return 2

@ -0,0 +1,70 @@
from audioop import add
import base64
import os
import json
from unicodedata import name
from codecs import ignore_errors
from pickle import TRUE
import turtle
from xmlrpc.client import boolean
import numpy as np
from asyncore import write
import xlrd
import pandas as pd
import openpyxl
from xlrd import Book
import datetime
import time
from flask import Flask,request
from encodings import utf_8
import pymssql
import json
import base64
from out_school import out_school
from in_school import in_school
import time
class scan_the_code:
def scan_the_code1(p,data):
sno=data['sno']
res={
'result':[]
}
Conn = pymssql.connect(server="LAPTOP-FLH9FTB4",#本地服务器
user="sa",password="as2799094948",
database="software_project",
charset="utf8")
if Conn:
print ("连接成功")
cur = Conn.cursor()
#cur.execute("delete student where state='出' and pass='2' ")
#1在校2审批通过
if data['shuju']=='5YWl5qCh5LqM57u056CB':
cur.execute("select * from Form , [user] where state='出校' and pass='2' and sno='{}' and username=sno".format(sno))
results=cur.fetchall()
if(len(results)==0):
res['result'].append('您没有入校资格')
else:
cur.execute("update [user] set state='入校' where username='{}' ".format(sno))
cur.execute("delete from Form where sno='{}'".format(sno))
res['result'].append('入校成功')
elif data['shuju']=='5Ye65qCh5LqM57u056CB':
cur.execute("select * from Form , [user] where state='入校' and pass='2'and sno='{}' and username=sno".format(sno))
results=cur.fetchall()
if(len(results)==0):
print('无出校资格')
res['result'].append('您没有出校资格')
else:
# 测试时不更改数据
cur.execute("update [user] set state='出校' where username='{}' ".format(sno))
cur.execute("delete from Form where sno='{}'".format(sno))
print('出校成功')
res['result'].append('出校成功')
else:
print('二维码无效')
res['result'].append('二维码无效')
print ("成功")
Conn.commit()
cur.close()
Conn.close()
b=json.dumps(res,ensure_ascii=False)
return b

@ -0,0 +1,113 @@
from codecs import ignore_errors
from pickle import TRUE
import turtle
from xmlrpc.client import boolean
import numpy as np
from asyncore import write
import xlrd
import pandas as pd
import openpyxl
from xlrd import Book
import datetime
import time
import time
from flask import Flask,request
from encodings import utf_8
import pymssql
import json
import base64
import jpype
class approval:
def shengpi2(p,a):#a:xx区 b时间 c健康码 d行程码 e核酸
Conn = pymssql.connect('LAPTOP-FLH9FTB4',"sa","as2799094948","software_project",charset='utf8')
cur = Conn.cursor()
sql = "Select [type] ,[sno] ,[name] ,[phone] ,[time] ,[door] ,[city] ,[area] ,[address] ,[health_code] ,[Tour_code] ,[NAT] ,[Pass] from Form"
cur.execute(sql)
row = cur.fetchone()
sno=a['data']
sno1,sno=sno.split('')
print(sno)
print(a['condition'])
while row:
if(row[1]==sno):
if(a['condition'] == '通过'):
change = "update Form set [Pass] = '2' where [sno] = '%s';COMMIT"%row[1]
elif a['condition'] == '不通过':
change = "delete From Form where [sno] = '%s';COMMIT"%row[1]
cur.execute(change)
break
#把row找到的这个值的通过情况改为xxx
row = cur.fetchone()
cur.close()
Conn.close()
def list(p):
Conn = pymssql.connect('LAPTOP-FLH9FTB4',"sa","as2799094948","software_project",charset='utf8')
cur = Conn.cursor()
sql = "Select [type] ,[sno] ,[name] ,[phone] ,[time] ,[door] ,[city] ,[area] ,[address] ,[health_code] ,[Tour_code] ,[NAT] ,[Pass] from Form"
cur.execute(sql)
row = cur.fetchone()
data={
'test1':[],
}
while row:
# #row[1].encode('big5hkscs')
# print(row[1].encode('latin1').decode('gbk'))
if(row[12]=='3'):
data['test1'].append(row[2])#将每一行的名字进行对code的编码和在code的基础上进行gbk解码
row = cur.fetchone()
cur.close()
Conn.close()
return data
def list2(p):
Conn = pymssql.connect('LAPTOP-FLH9FTB4',"sa","as2799094948","software_project",charset='utf8')
cur = Conn.cursor()
sql = "Select [type] ,[sno] ,[name] ,[phone] ,[time] ,[door] ,[city] ,[area] ,[address] ,[health_code] ,[Tour_code] ,[NAT] ,[Pass] from Form"
cur.execute(sql)
row = cur.fetchone()
b={
'test1':[],
'text':'2',
'image':[]
}
number=0
while row:
if(row[12]=='3'):
b['image'].append([])
b['image'][number].append(row[9])
b['image'][number].append(row[10])
b['image'][number].append(row[11])
b['test1'].append([])
b['test1'][number].append('申请表类型:{}'.format(row[0]))
b['test1'][number].append('姓名:{}'.format(row[2]))
b['test1'][number].append('学号:{}'.format(row[1]))
b['test1'][number].append('联系电话:{}'.format(row[3]))
b['test1'][number].append('时间:{}'.format(row[4]))
b['test1'][number].append('校门:{}'.format(row[5]))
b['test1'][number].append('省市:{}'.format(row[6]))
b['test1'][number].append('区:{}'.format(row[7]))
b['test1'][number].append('详细地址:{}'.format(row[8]))
# b['test1'][number].append('健康码:{}'.format(row[9]))
# b['test1'][number].append('行程码:{}'.format(row[10]))
# b['test1'][number].append('核酸:{}'.format(row[11]))
b['test1'][number].append('通过情况:不通过')
number=number+1
row = cur.fetchone()
cur.close()
Conn.close()
return b
'''a1=shengpi()
path="D://tupian/11.jpg"
with open(path,'rb') as file:
a=file.read()
img = base64.b64encode(a)
path="D://tupian/12.jpg"
with open(path,'rb') as file:
a=file.read()
img1 = base64.b64encode(a)
path="D://tupian/13.jpg"
with open(path,'rb') as file:
a=file.read()
img2 = base64.b64encode(a)
print(a1.shengpi1(str('爱华'),'2022-11-12',img1,img2,img))'''

@ -0,0 +1,54 @@
from codecs import ignore_errors
from pickle import TRUE
import turtle
from xmlrpc.client import boolean
import numpy as np
from asyncore import write
import xlrd
import pandas as pd
import openpyxl
from xlrd import Book
import datetime
import time
import time
from flask import Flask,request
from encodings import utf_8
import pymssql
import json
import base64
import jpype
class user_log():
def user_log1(p,a):
b={
'test1':[],
'text':'2'
}
# 把数据装载成json格式并回传
#a='{"a":{"test":1},"b":2,"c":3,"d":4,"e":5}'
conn =pymssql.connect(
server="LAPTOP-FLH9FTB4",#本地服务器
user="sa",password="as2799094948",
database="software_project",
charset="utf8"
)
if conn:
print('连接数据库成功!')#测试是否连接上
cursor =conn.cursor() #使用cursor()方法获取操作游标
a= request.json
username=a['username']
passwd=a['password']
sql_select="SELECT password FROM [user] where username = '{}'".format(username) #数据库查询语句
cursor.execute(sql_select) #执行语句
results =cursor.fetchall() #获取所有记录列表
if len(results)==0:
b['text']=1
elif results[0][0]==passwd:
b['text']=2
else: b['text']=3
conn.commit()
cursor.close()
conn.close()
# 把数据装载成json格式并回传
a1=json.dumps(b,ensure_ascii=False)
#a='{"a":{"test":1},"b":2,"c":3,"d":4,"e":5}'
return a1

@ -0,0 +1,96 @@
from audioop import add
import base64
import os
import json
from unicodedata import name
from codecs import ignore_errors
from pickle import TRUE
import turtle
from xmlrpc.client import boolean
import numpy as np
from asyncore import write
import xlrd
import pandas as pd
import openpyxl
from xlrd import Book
import datetime
import time
from flask import Flask,request
from encodings import utf_8
import pymssql
import json
import base64
from out_school import out_school
from in_school import in_school
import time
class view():
def view1(p,json_data):
print(type(json_data['name']))
area=json_data['name']
data={
'height':[],
'middle':[],
'low':[]
}
conn =pymssql.connect(
server="LAPTOP-FLH9FTB4",#本地服务器
user="sa",password="as2799094948",
database="software_project",
charset="utf8"
#这里设置全局的GBK如果设置的是UTF—8需要将数据库默认的GBK转化成UTF-8
)
if conn:
print('连接数据库成功!')#测试是否连接上
#高风险地区
cursor =conn.cursor() #使用cursor()方法获取操作游标
if area=='全部':sql_select="SELECT location FROM height order by location"
else:sql_select="SELECT location FROM height where area ='{}' order by location".format(area)
# sql_select="SELECT location FROM height where location like '{}%'".format(area) #数据库查询语句
cursor.execute(sql_select) #执行语句
results =cursor.fetchall() #获取所有记录列表
if len(results)==0:
print('该地区暂无高风险区域')
data['height'].append('该地区暂无高风险区域')
else:
print('共查询到{}条信息'.format(len(results)))
data['height'].append('共查询到{}条信息'.format(len(results)))
for result in results:
print(result[0])
data['height'].append(result[0])
#中风险地区
cursor =conn.cursor() #使用cursor()方法获取操作游标
if area=='全部':sql_select="SELECT location FROM middle order by location"
else:sql_select="SELECT location FROM middle where area ='{}' order by location".format(area)
cursor.execute(sql_select) #执行语句
results =cursor.fetchall() #获取所有记录列表
if len(results)==0:
print('该地区暂无中风险区域')
data['middle'].append('该地区暂无中风险区域')
else:
print('共查询到{}条信息'.format(len(results)))
data['middle'].append('共查询到{}条信息'.format(len(results)))
for result in results:
print(result[0])
data['middle'].append(result[0])
#低风险地区
cursor =conn.cursor() #使用cursor()方法获取操作游标
if area=='全部':sql_select="SELECT location FROM low order by location"
else:sql_select="SELECT location FROM low where area ='{}' order by location".format(area)
cursor.execute(sql_select) #执行语句
results =cursor.fetchall() #获取所有记录列表
if len(results)==0:
print('该地区暂无低风险区域')
data['low'].append('该地区暂无低风险区域')
else:
print('共查询到{}条信息'.format(len(results)))
data['low'].append('共查询到{}条信息'.format(len(results)))
for result in results:
print(result[0])
data['low'].append(result[0])
conn.commit()
cursor.close()
conn.close()
b=json.dumps(data,ensure_ascii=False)
return b

@ -0,0 +1,38 @@
//app.js
App({
globalData:{
phone:null,
no:'',
globalsno:''
},
/**
* 当小程序初始化完成时会触发 onLaunch全局只触发一次
*/
onLaunch: function () {
},
/**
* 当小程序启动或从后台进入前台显示会触发 onShow
*/
onShow: function (options) {
},
/**
* 当小程序从前台进入后台会触发 onHide
*/
onHide: function () {
},
/**
* 当小程序发生脚本错误或者 api 调用失败时会触发 onError 并带上错误信息
*/
onError: function (msg) {
}
})

@ -0,0 +1,44 @@
{
"pages": [
"pages/home/home",
"pages/administrator_log/administrator_log",
"pages/user_log/user_log",
"pages/set/set",
"pages/user/user",
"pages/v6_administrator/v6_administrator",
"pages/v7_out_school/v7_out_school",
"pages/v8_in_school/v8_in_school",
"pages/v9_manual/v9_manual",
"pages/v10_auto/v10_auto",
"pages/v11_success/v11_success",
"pages/v12_submit_info/v12_submit_info",
"pages/v13_look_info/v13_look_info",
"pages/v15_scan_the_code/v15_scan_the_code",
"pages/info/info",
"pages/v19_test/v19_test",
"pages/v16_user_state/v16_user_state"
],
"window": {
"navigationBarBackgroundColor": "#00F5FF",
"navigationBarTextStyle": "white",
"navigationBarTitleText": "学生出入校管理",
"backgroundColor": "#000000",
"backgroundTextStyle": "dark"
},
"tabBar": {
"list": [
{
"pagePath": "pages/home/home",
"text": "首页",
"iconPath": "/static/image/home.png",
"selectedIconPath": "static/image/home-o.png"
},
{
"pagePath": "pages/set/set",
"text": "简介",
"iconPath": "/static/image/my.png",
"selectedIconPath": "static/image/my-o.png"
}
]
}
}

@ -0,0 +1,152 @@
//index.js
//获取应用实例
// const app = getApp()
var i = 0;
Page({
// 在js文件中设置相关的数据data
data: {
username: '',
password: '',
snows: [],
animation: [],
dateTime: "",
},
onUnload: function () {
clearTimeout(this.data.dateTime)
this.setData({
snows: [],
animation: []
})
},
onShow: function () {
this.initSnow();
this.data.snows = [];
this.data.animation = [];
let j = 50
while (j--)
this.data.snows.push(Math.floor(Math.random() * 700))
this.setData({
snows: this.data.snows
})
},
onHide: function () {
clearTimeout(this.data.dateTime)
this.setData({
snows: [],
animation: []
})
},
initSnow: function () {
setTimeout(function () {
let animation = wx.createAnimation({})
animation.translateY(804).opacity(1).step({
duration: 4000
})
animation.translateY(0).opacity(1).step({
duration: 0
})
this.setData({
['snows[' + i + ']']: Math.floor(Math.random() * 700),
['animation[' + i + ']']: animation.export()
})
i++;
if (i == 50)
i = 0
}.bind(this), 500)
var dateTime = setTimeout(function () {
this.initSnow()
}.bind(this), 100)
this.setData({
dateTime,
})
},
// 1、将获取的账号存到数据username里面
usernameInput: function (e) {
this.setData({
username: e.detail.value
})
},
// 2、将获取的密码存到password里面
passwordInput: function (e) {
this.setData({
password: e.detail.value
})
},
//3、、点击登录进行页面跳转
bindViewTap: function() {
wx.request({
url: 'http://127.0.0.1:2020/admin',
data: {username:this.data.username,password:this.data.password},
dataType: JSON,
enableCache: true,
enableHttp2: true,
enableQuic: true,
method: 'POST',
timeout: 0,
success: (result) => {
// console.log(result)
console.log(result.data)
// JSON.parse将JSON字符串转换成一个JS对象然后利用python的调用语法对相关内容进行操作
var p=JSON.parse(result.data)
console.log(p.test1)
if(p.text=='2'){
console.log("登录成功")
wx.navigateTo({
url: '/pages/v6_administrator/v6_administrator'
})
}
if(p.text=='1'){
wx.showModal({
cancelColor: 'cancelColor',
title: '用户名不存在',
success: function (res) {
if (res.confirm) {
console.log('用户点击确定')
} else {
console.log('用户点击取消')
}
}
})
}
if(p.text=='3'){
wx.showModal({
cancelColor: 'cancelColor',
title: '密码错误',
success: function (res) {
if (res.confirm) {
console.log('用户点击确定')
} else {
console.log('用户点击取消')
}
}
})
}
},
fail:(res)=>{
console.log("发生错误")
}
})},
// 管理员登录
to1:function(){
wx.navigateTo({
url: "/pages/v16_registered/v16_registered",
})
},
to2:function(){
wx.navigateTo({
url: '/pages/v17_forget_mima/v17_forget_mima',
})
}
})

@ -0,0 +1,45 @@
<!-- 雪花效果 -->
<scroll-view scroll-y="true">
<!-- 页面内容 -->
<!-- 主页面 -->
<view class="container">
<text style="height: 40rpx;"></text>
<view class="login-icon">
<image class="login-img" src="/static/image/CAUC.png"></image>
</view>
<view class="login-from">
<!--账号-->
<view class="inputView">
<image class="nameImage" src="/static/image/CAUC.png"></image>
<label class="loginLab">账号</label>
<input class="inputText" placeholder="请输入管理员账号" bindinput="usernameInput" />
</view>
<view class="line"></view>
<!--密码-->
<view class="inputView">
<image class="keyImage" src="/static/image/CAUC.png"></image>
<label class="loginLab">密码</label>
<input class="inputText" password="true" placeholder="请输入密码" bindinput="passwordInput" />
</view>
<view style="height: 20rpx;"></view>
<!-- <view class="s_view">
<button class="saveBtn" bindtap="to1" >注册</button>
<button class="submitBtn" bindtap="to2" >忘记密码</button>
</view> -->
<!--按钮-->
<view class="loginBtnView">
<button class="loginBtn" type="primary" bindtap="bindViewTap">登录</button>
</view>
</view>
</view>
</scroll-view>
<view>
<image wx:for="{{snows}}" wx:key="index" src="/static/image/CAUC.png" style="left:{{snows[index]}}rpx" animation="{{animation[index]}}" class='snow' data-index='{{index}}' />
</view>

@ -0,0 +1,138 @@
page{
height: 100%;
}
/* 1、表格的整体样式 */
.container {
height: 100%;
display: flex;
flex-direction: column;
padding: 0;
box-sizing: border-box;
/* background-color: rgb(156, 23, 78) */
}
/*2、登录的图片样式*/
.login-icon{
display: flex;
justify-content: center;
align-items: center;
}
/* 3、用来设置登录图片的宽度 */
.login-img{
width: 500rpx;
height: 500rpx;
}
/*4、表单内容*/
.login-from {
/* 设置表格上方的高度 */
margin-top: 20px;
flex: auto;
height:100%;
}
/* 5、设置输入的框 */
.inputView {
/* background-color: #fff; */
line-height: 50px;
border-radius:40px;
border:1px solid #161515;
}
/*6、设置输入框旁边的图片*/
.nameImage, .keyImage {
margin-left: 22px;
width: 18px;
height: 16px
}
/* 7、设置账号、密码字体的颜色 */
.loginLab {
margin: 15px 15px 15px 10px;
color:blue;
font-size: 14px
}
/* 8、进行提示输入的框是灰色的 */
.inputText {
flex: block;
float: right;
text-align: right;
margin-right: 22px;
margin-top: 11px;
color: gray;
font-size: 14px
}
/* 9、 内部框图进行相应的分割*/
.line {
margin-top: 10px;
}
/* .line {
width: 100%;
height: 1px;
background-color: #cccccc;
margin-top: 1px;
} */
/*10、设置按钮*/
.loginBtnView {
width: 100%;
height: auto;
/* background-color:#DCDCDC; */
margin-top: 0px;
margin-bottom: 0px;
padding-bottom: 0px;
}
.loginBtn {
width: 90%;
margin-top: 40px;
border-radius:10px;
}
/* 设置字体颜色 */
.bxj{
color: red;
}
/* 用来设置注册和忘记密码 */
.saveBtn {
width: 50% !important;
float:left;
font-weight: 100;
font-size: 10px;
}
.submitBtn {
width: 50% !important;
float:right;
font-size: 10px
}
.s_view{
position: fixed;
width: 100%;
}
/* 雪花效果特效 */
page {
background: linear-gradient(180deg, #6699CC 0%, #B8DBF0 100%);
background-attachment: fixed;
background-size: cover;
background-position: center top;
height: 100%;
}
.snow {
width: fit-content;
position: absolute;
top: -100rpx;
width: 30rpx;
height: 27rpx;
z-index: 11;
}
.snow:nth-child(2n+2) {
width: 35rpx;
height: 33rpx;
}

@ -0,0 +1,113 @@
// pages/index/index.js
Page({
/**
* 页面的初始数据
*/
data: {
message:"你好nihao",
datalist:['黑夜','白天','中午'],
userinfo:{
name:"白雪健",
age:20
},
Image1:["/static/image/apic2098.jpg","/static/image/apic2098.jpg"]
},
uploadimage:function(){
var that = this;
wx.chooseMedia({
mediaType: ['image','video'],
sourceType: ['album', 'camera'],
maxDuration: 30,
camera: 'back',
success(res) {
console.log(res),
console.log(res.tempFiles[0].tempFilePath),
that.setData({
Image1:that.data.Image1.concat(res.tempFiles[0].tempFilePath)
})
}
})
},
// clearimage:function(){
// this.setData({
// Image1:''
// })
// },
// 输入用户名所采取的行动
fakeCallback:function(e){
console.log(1)
},
/**
* 生命周期函数--监听页面加载
*/
onLoad(options) {
},
/**
* 生命周期函数--监听页面初次渲染完成
*/
onReady() {
},
/**
* 生命周期函数--监听页面显示
*/
onShow() {
},
/**
* 生命周期函数--监听页面隐藏
*/
onHide() {
},
/**
* 生命周期函数--监听页面卸载
*/
onUnload() {
},
/**
* 页面相关事件处理函数--监听用户下拉动作
*/
onPullDownRefresh() {
},
/**
* 页面上拉触底事件的处理函数
*/
onReachBottom() {
},
/**
* 用户点击右上角分享
*/
onShareAppMessage() {
},
clickme:function(){
wx.navigateTo({
url: '/pages/administrator_log/administrator_log',
})
},
clickme1:function(){
wx.navigateTo({
url: '/pages/user_log/user_log',
})
}
})

@ -0,0 +1,3 @@
{
"usingComponents": {}
}

@ -0,0 +1,61 @@
<!--pages/index/index.wxml-->
<!-- span标签 -->
<view class="banner">
<swiper indicator-dots indicator-color="rgba(255,255,255,0.5)"
indicator-active-color="#fff" circular autoplay interval="4000">
<swiper-item><image src="/static/image/1.jpg"></image></swiper-item>
<swiper-item><image src="/static/image/2.jpg"></image></swiper-item>
<swiper-item><image src="/static/image/3.jpg"></image></swiper-item>
</swiper>
</view>
<view class="header">
<!-- 代码 -->
<image class="bg_ware" src="https://codermoyv.gitee.io/coder-moyv/assets/images/wechat/bg_wave.gif"></image>
<view class="content">
<view class="menu">
<view class="item">
<image src="/static/image/CAUC.png" bindtap="clickme1" class="image1"></image>
<text style="color: bisque;">用户</text>
</view>
<view class="item">
<image src="/static/image/CAUC.png" bindtap="clickme" class="image1"></image>
<text style="color: bisque;">管理员</text>
</view>
</view>
</view>
</view>
<!-- </view>
<view wx:for="{{datalist}}">{{index}}-{{item}}</view>
<view wx:for="{{userinfo}}">{{index}}-{{item}}</view> -->
<!-- 上传图片 -->
<!-- <view>请上传图片</view>
<view >
<image wx:for="{{Image1}}" src="{{item}}"></image>
</view>
<view bindtap="uploadimage"> <button>请上传图片</button></view> -->
<!-- 输入用户名 -->
<!-- <view>您输入了{{message}}</view>
<view>
<input model:value="{{message}}" bindinput="fakeCallback"/>
</view> -->

@ -0,0 +1,64 @@
/* pages/index/index.wxss */
.c1{
color: red;
}
.image1{
width: 200rpx;
height: 200rpx;
/* 如果要设置圆角的话 */
border-radius: 100rpx;
}
.menu{
display: flex;
/* 规定主轴的方向 */
flex-direction: row;
/* 元素在主轴方向的排列方式 我用的是平均排列*/
justify-content: space-around;
/* 元素在负轴方向如何展示 */
/* align-items: center; */
}
/* 缺个空格差点g。 */
.menu .item{
display: flex;
flex-direction: column;
/* 元素在负轴方向如何展示 */
align-items: center;
}
/* 设置背景图片 */
.banner{
width: 100%;
height: 550rpx;
}
.banner swiper{
height: 100%;
width: 100%;
}
.banner image{
width: 100%;
height: 550rpx;
}
.header {
position: relative;
height:300rpx;
background: linear-gradient(to bottom, #56ccf2, #2f80ed);
}
.bg_ware {
position: absolute;
left: 0;
bottom: -2rpx;
width: 100%;
mix-blend-mode: screen;
height: 120rpx;
}

@ -0,0 +1,139 @@
// pages/info/info.js
var app = getApp();
Page({
/**
* 页面的初始数据
*/
data: {
list:[],
image:[]
},
/**
* 生命周期函数--监听页面加载
*/
onLoad(options) {
},
/**
* 生命周期函数--监听页面初次渲染完成
*/
onReady() {
},
// 返回通过的信息
backR:function(){
// console.log(abc)
// console.log(abc.currentTarget.dataset.abc)
wx.request({
url: 'http://127.0.0.1:2020/access',
data: {
data:this.data.list[2],
condition:'通过'
},
dataType: JSON,
enableCache: true,
enableHttp2: true,
enableQuic: true,
method: 'POST',
timeout: 0,
success: (result) => {
console.log(this.data.list[2])
wx.redirectTo({
url: '/pages/v9_manual/v9_manual',
})
// console.log(result.data)
},
})
},
//返回不通过的信息
backE:function(){
// console.log(abc)
wx.request({
url: 'http://127.0.0.1:2020/access',
dataType: JSON,
enableCache: true,
enableHttp2: true,
enableQuic: true,
method: 'POST',
timeout: 0,
data:{
data:this.data.list[2],
condition:'不通过'
},
success: (result) => {
wx.redirectTo({
url: '/pages/v9_manual/v9_manual',
})
// console.log(2)
},
})
},
/**
* 生命周期函数--监听页面显示
*/
onShow() {
console.log(app.globalData.no)
var that = this;
wx.request({
url: 'http://127.0.0.1:2020/info',
dataType: JSON,
method: 'GET',
timeout: 0,
success: (res) => {
// console.log(res.data)
var p = JSON.parse(res.data)
// console.log(app.globalData.no)
// console.log(p.test1[app.globalData.no])
// console.log(p.image)
// console.log(p)
// console.log(p.test1[app.globalData.no])
that.setData({
list:p.test1[app.globalData.no],
image:p.image[app.globalData.no]
})
// console.log(this.data.list[2])
// console.log(that.data.image)
},
})
},
/**
* 生命周期函数--监听页面隐藏
*/
onHide() {
},
/**
* 生命周期函数--监听页面卸载
*/
onUnload() {
},
/**
* 页面相关事件处理函数--监听用户下拉动作
*/
onPullDownRefresh() {
},
/**
* 页面上拉触底事件的处理函数
*/
onReachBottom() {
},
/**
* 用户点击右上角分享
*/
onShareAppMessage() {
}
})

@ -0,0 +1,3 @@
{
"usingComponents": {}
}

@ -0,0 +1,32 @@
<!--pages/info/info.wxml-->
<!-- 循环遍历人员详细信息的列表 -->
<view wx:for="{{list}}">
<view>{{item}}</view>
</view>
<!-- <view>{{index}}</view> -->
<!-- 对base64编码进行解码成图片 -->
<view>
<view wx:for="{{image}}">
<!-- 设置图片的样式,两张图片并排 -->
<view class="school-list">
<view class="school-list-info" >
<image class="school-list-photo" src="data:image/png;base64,{{item}}"></image>
<!-- <text class="school-list-desc">{{item.content}}</text> -->
</view>
</view>
<!-- 设置是否给通过 -->
</view>
<button bindtap="backR" >通过</button>
<view style="height: 50rpx;"></view>
<button bindtap="backE" >不通过</button>
<!-- 设置一些间距 -->
<view style="height: 100rpx;"></view>
</view>
<!-- <view>{{image}}</view> -->

@ -0,0 +1,14 @@
/* pages/info/info.wxss */
.schoollist{
margin-top: 20rpx;
}
.school-list-info{
float: left;
margin-left: 20rpx;
margin-top: 20rpx;
position: relative;
}
.school-list-photo{
width: 350rpx;
height: 700rpx;
}

@ -0,0 +1,66 @@
// pages/set/set.js
Page({
/**
* 页面的初始数据
*/
data: {
},
/**
* 生命周期函数--监听页面加载
*/
onLoad(options) {
},
/**
* 生命周期函数--监听页面初次渲染完成
*/
onReady() {
},
/**
* 生命周期函数--监听页面显示
*/
onShow() {
},
/**
* 生命周期函数--监听页面隐藏
*/
onHide() {
},
/**
* 生命周期函数--监听页面卸载
*/
onUnload() {
},
/**
* 页面相关事件处理函数--监听用户下拉动作
*/
onPullDownRefresh() {
},
/**
* 页面上拉触底事件的处理函数
*/
onReachBottom() {
},
/**
* 用户点击右上角分享
*/
onShareAppMessage() {
}
})

@ -0,0 +1,3 @@
{
"usingComponents": {}
}

@ -0,0 +1,6 @@
<!--pages/set/set.wxml-->
<view class="header">
<!-- 代码 -->
<image class="bg_ware" src="https://codermoyv.gitee.io/coder-moyv/assets/images/wechat/bg_wave.gif"></image>
</view>

@ -0,0 +1,31 @@
.banner{
width: 100%;
height: 550rpx;
}
.banner swiper{
height: 100%;
width: 100%;
}
.banner image{
width: 100%;
height: 550rpx;
}
.header {
position: relative;
height:300rpx;
background: linear-gradient(to bottom, #56ccf2, #2f80ed);
}
.bg_ware {
position: absolute;
left: 0;
bottom: -2rpx;
width: 100%;
mix-blend-mode: screen;
height: 120rpx;
}

@ -0,0 +1,160 @@
// pages/user/user.js
var app = getApp()
Page({
/**
* 页面的初始数据
*/
data: {
cc:"sdasdasd",
swiperList: [
{
type: 'video',
url: 'https://static.51dh.com.cn/dbp/12/98/4494bd8a6e0fcd4a992f25a42bea28f8d1fb.mp4'
}, {
type: 'image',
url: 'https://bj.bcebos.com/shitu-query-bj/2022-11-25/12/65c8785efdf614c0?authorization=bce-auth-v1%2F7e22d8caf5af46cc9310f1e3021709f3%2F2022-11-25T04%3A21%3A48Z%2F300%2F%2Fcba06b77ff3338331ba50868a058fa1e01045adb673ced5692d04f84009ca4aa'
}, {
type: 'image',
url: 'https://bj.bcebos.com/shitu-query-bj/2022-11-25/12/a12f2c0208db3f56?authorization=bce-auth-v1%2F7e22d8caf5af46cc9310f1e3021709f3%2F2022-11-25T04%3A20%3A16Z%2F300%2F%2F2d395d19e9b327015c749f3e9edfa863b1d73c8da8d935a87f8f00d34b482ba4',
}, {
type: 'image',
url: 'https://i.postimg.cc/pXDp6RXq/susu3.jpg'
}, {
type: 'image',
url: 'https://i.postimg.cc/XJmpTvCD/susu2.jpg'
}, {
type: 'image',
url: 'https://i.postimg.cc/76br1jzJ/susu1.jpg'
}, {
type: 'image',
url: 'https://i.postimg.cc/pXDp6RXq/susu3.jpg'
},
{
type: 'image',
url: 'https://i.postimg.cc/XJmpTvCD/susu2.jpg'
},
],
},
/**
* 生命周期函数--监听页面加载
*/
onLoad: function (options) {
this.tauchSwiper('swiperList');
},
// 初始化tauchSwiper
tauchSwiper(name) {
let list = this.data[name];
for (let i = 0; i < list.length; i++) {
// Math.abs(x) 函数返回指定数字 “x“ 的绝对值
list[i].zIndex = parseInt(list.length / 2) + 1 - Math.abs(i - parseInt(list.length / 2))
list[i].mLeft = i - parseInt(list.length / 2)
}
this.setData({
swiperList: list
})
},
// tauchSwiper触摸开始
tauchStart(e) {
this.setData({
tauchStart: e.touches[0].pageX
})
},
// tauchSwiper计算方向
tauchMove(e) {
this.setData({
direction: e.touches[0].pageX - this.data.tauchStart > 0 ? 'right' : 'left'
})
},
// tauchSwiper计算滚动
tauchEnd(e) {
let direction = this.data.direction;
let list = this.data.swiperList;
if (direction == 'right') {
let mLeft = list[0].mLeft;
let zIndex = list[0].zIndex;
for (let i = 1; i < list.length; i++) {
list[i - 1].mLeft = list[i].mLeft
list[i - 1].zIndex = list[i].zIndex
}
list[list.length - 1].mLeft = mLeft;
list[list.length - 1].zIndex = zIndex;
this.setData({
swiperList: list
})
} else {
let mLeft = list[list.length - 1].mLeft;
let zIndex = list[list.length - 1].zIndex;
for (let i = list.length - 1; i > 0; i--) {
list[i].mLeft = list[i - 1].mLeft
list[i].zIndex = list[i - 1].zIndex
}
list[0].mLeft = mLeft;
list[0].zIndex = zIndex;
this.setData({
swiperList: list
})
}
},
/**
* 生命周期函数--监听页面初次渲染完成
*/
onReady() {
},
/**
* 生命周期函数--监听页面显示
*/
onShow() {
// 修改全局变量值的时候再用 =其他时候用setData
this.setData({
cc:app.globalData.globalsno
})
console.log(app.globalData.globalsno)
},
/**
* 生命周期函数--监听页面隐藏
*/
onHide() {
},
/**
* 生命周期函数--监听页面卸载
*/
onUnload() {
},
/**
* 页面相关事件处理函数--监听用户下拉动作
*/
onPullDownRefresh() {
},
/**
* 页面上拉触底事件的处理函数
*/
onReachBottom() {
},
/**
* 用户点击右上角分享
*/
onShareAppMessage() {
}
})

@ -0,0 +1,3 @@
{
"usingComponents": {}
}

@ -0,0 +1,56 @@
<!--pages/index/index.wxml-->
<!-- span标签 -->
<view class="header">
<!-- 代码 -->
<image class="bg_ware" src="https://codermoyv.gitee.io/coder-moyv/assets/images/wechat/bg_wave.gif"></image>
<!-- 主要功能 -->
<view class="menu">
<view class="item">
<navigator url="/pages/v7_out_school/v7_out_school"><image src="/static/image/CAUC.png" class="image1"></image></navigator>
<text style="color: bisque;">出校</text>
</view>
<view class="item">
<navigator url="/pages/v8_in_school/v8_in_school"><image src="/static/image/CAUC.png" class="image1"></image></navigator>
<text style="color: bisque;">入校</text>
</view>
<view class="item">
<navigator url="/pages/v13_look_info/v13_look_info"><image src="/static/image/CAUC.png" class="image1"></image></navigator>
<text style="color: bisque;">疫情信息</text>
</view>
</view>
<view class="menu1">
<view class="item">
<navigator url="/pages/v16_user_state/v16_user_state"><image src="/static/image/CAUC.png" class="image1"></image></navigator>
<text style="color: bisque;">申请状态</text>
</view>
<view class="item">
<navigator url="/pages/v15_scan_the_code/v15_scan_the_code">
<image src="/static/image/CAUC.png" class="image1"></image></navigator>
<text style="color: bisque;">扫码</text>
</view>
</view>
</view>
<view class="swiper-box" bindtouchmove="tauchMove" bindtouchstart="tauchStart" bindtouchend="tauchEnd">
<view class="item-box {{item.zIndex==1?'none':''}}" wx:for="{{swiperList}}" wx:key="index" style="--index:{{item.zIndex}};--left:{{item.mLeft}}">
<view class="swiper-item">
<image src="{{item.url}}" mode="aspectFill" wx:if="{{item.type=='image'}}"></image>
<video src="{{item.url}}" autoplay loop muted show-play-btn="{{false}}" controls="{{false}}" objectFit="cover" wx:if="{{item.type=='video'}}"></video>
</view>
</view>
</view>

@ -0,0 +1,122 @@
/* pages/index/index.wxss */
.c1{
color: red;
}
.image1{
width: 200rpx;
height: 200rpx;
/* 如果要设置圆角的话 */
border-radius: 100rpx;
}
.menu{
display: flex;
/* 规定主轴的方向 */
flex-direction: row;
/* 元素在主轴方向的排列方式 我用的是平均排列*/
justify-content: space-between;
/* 元素在负轴方向如何展示 */
/* align-items: center; */
}
.menu1{
display: flex;
/* 规定主轴的方向 */
flex-direction: row;
/* 元素在主轴方向的排列方式 我用的是平均排列*/
justify-content: space-around;
/* 元素在负轴方向如何展示 */
/* align-items: center; */
}
/* 缺个空格差点g。 */
.menu .item{
display: flex;
flex-direction: column;
/* 元素在负轴方向如何展示 */
align-items: center;
}
.menu1 .item{
display: flex;
flex-direction: column;
/* 元素在负轴方向如何展示 */
align-items: center;
}
/* 做波浪 */
.header {
position: relative;
height:600rpx;
background: linear-gradient(to bottom, #56ccf2, #2f80ed);
}
.bg_ware {
position: absolute;
left: 0;
bottom: -2rpx;
width: 100%;
mix-blend-mode: screen;
height: 120rpx;
}
/* 轮播图 */
.swiper-item image,
.swiper-item video {
width: 100%;
display: block;
height: 100%;
margin: 0;
pointer-events: none;
}
image {
max-width: 100%;
display: inline-block;
position: relative;
z-index: 0;
}
.swiper-box {
height: 420rpx;
position: relative;
max-width: 750rpx;
overflow: hidden;
box-sizing: border-box;
margin-top: 90rpx;
}
.swiper-box .item-box {
position: absolute;
width: 300rpx;
height: 380rpx;
top: 0;
bottom: 0;
left: 50%;
margin: auto;
transition: all 0.2s ease-in 0s;
opacity: 1;
box-shadow: 0px 13rpx 12rpx rgba(0, 0, 0, .5);
border-radius: 15rpx;
overflow: hidden;
}
.swiper-box .item-box.none {
opacity: 0;
}
.swiper-box .item-box .swiper-item {
width: 100%;
height: 100%;
border-radius: 6rpx;
overflow: hidden;
}
.swiper-box .item-box {
transform: scale(calc(0.5 + var(--index) / 10));
margin-left: calc(var(--left) * 100rpx - 150rpx);
z-index: var(--index);
}

@ -0,0 +1,150 @@
//index.js
//获取应用实例
// const app = getApp()
var app = getApp();
var i = 0;
Page({
// 在js文件中设置相关的数据data
data: {
username: '',
password: '',
snows: [],
animation: [],
dateTime: "",
},
onUnload: function () {
clearTimeout(this.data.dateTime)
this.setData({
snows: [],
animation: []
})
},
onShow: function () {
this.initSnow();
this.data.snows = [];
this.data.animation = [];
let j = 50
while (j--)
this.data.snows.push(Math.floor(Math.random() * 700))
this.setData({
snows: this.data.snows
})
},
onHide: function () {
clearTimeout(this.data.dateTime)
this.setData({
snows: [],
animation: []
})
},
initSnow: function () {
setTimeout(function () {
let animation = wx.createAnimation({})
animation.translateY(804).opacity(1).step({
duration: 4000
})
animation.translateY(0).opacity(1).step({
duration: 0
})
this.setData({
['snows[' + i + ']']: Math.floor(Math.random() * 700),
['animation[' + i + ']']: animation.export()
})
i++;
if (i == 50)
i = 0
}.bind(this), 500)
var dateTime = setTimeout(function () {
this.initSnow()
}.bind(this), 100)
this.setData({
dateTime,
})
},
// 1、将获取的账号存到数据username里面
usernameInput: function (e) {
this.setData({
username: e.detail.value
})
},
// 2、将获取的密码存到password里面
passwordInput: function (e) {
this.setData({
password: e.detail.value
})
},
//3、、点击登录进行页面跳转
bindViewTap: function() {
var that = this
wx.request({
url: 'http://127.0.0.1:2020/uesr',
data: {username:this.data.username,password:this.data.password},
dataType: JSON,
enableCache: true,
enableHttp2: true,
enableQuic: true,
method: 'POST',
timeout: 0,
success: (result) => {
// console.log(result)
console.log(result.data)
// JSON.parse将JSON字符串转换成一个JS对象然后利用python的调用语法对相关内容进行操作
var p=JSON.parse(result.data)
console.log(p.test1)
if(p.text=='2'){
console.log("登录成功")
app.globalData.globalsno = that.data.username
console.log(app.globalData.globalsno)
wx.navigateTo({
url: '/pages/user/user'
})
}
if(p.text=='1'){
wx.showModal({
cancelColor: 'cancelColor',
title: '用户名不存在',
success: function (res) {
if (res.confirm) {
console.log('用户点击确定')
} else {
console.log('用户点击取消')
}
}
})
}
if(p.text=='3'){
wx.showModal({
cancelColor: 'cancelColor',
title: '密码错误',
success: function (res) {
if (res.confirm) {
console.log('用户点击确定')
} else {
console.log('用户点击取消')
}
}
})
}
},
fail:(res)=>{
console.log("发生错误")
}
})},
to1:function(){
wx.navigateTo({
url: "/pages/v16_registered/v16_registered",
})
},
to2:function(){
wx.navigateTo({
url: '/pages/v17_forget_mima/v17_forget_mima',
})
}
})

@ -0,0 +1,3 @@
{
"usingComponents": {}
}

@ -0,0 +1,45 @@
<!-- 雪花效果 -->
<scroll-view scroll-y="true">
<!-- 页面内容 -->
<!-- 主页面 -->
<view class="container">
<text style="height: 40rpx;"></text>
<view class="login-icon">
<image class="login-img" src="/static/image/CAUC.png"></image>
</view>
<view class="login-from">
<!--账号-->
<view class="inputView">
<image class="nameImage" src="/static/image/CAUC.png"></image>
<label class="loginLab">账号</label>
<input class="inputText" placeholder="请输入用户账号" bindinput="usernameInput" />
</view>
<view class="line"></view>
<!--密码-->
<view class="inputView">
<image class="keyImage" src="/static/image/CAUC.png"></image>
<label class="loginLab">密码</label>
<input class="inputText" password="true" placeholder="请输入密码" bindinput="passwordInput" />
</view>
<view style="height: 20rpx;"></view>
<!-- <view class="s_view">
<button class="saveBtn" bindtap="to1" >注册</button>
<button class="submitBtn" bindtap="to2" >忘记密码</button>
</view> -->
<!--按钮-->
<view class="loginBtnView">
<button class="loginBtn" type="primary" bindtap="bindViewTap">登录</button>
</view>
</view>
</view>
</scroll-view>
<view>
<image wx:for="{{snows}}" wx:key="index" src="/static/image/CAUC.png" style="left:{{snows[index]}}rpx" animation="{{animation[index]}}" class='snow' data-index='{{index}}' />
</view>

@ -0,0 +1,138 @@
page{
height: 100%;
}
/* 1、表格的整体样式 */
.container {
height: 100%;
display: flex;
flex-direction: column;
padding: 0;
box-sizing: border-box;
/* background-color: rgb(156, 23, 78) */
}
/*2、登录的图片样式*/
.login-icon{
display: flex;
justify-content: center;
align-items: center;
}
/* 3、用来设置登录图片的宽度 */
.login-img{
width: 500rpx;
height: 500rpx;
}
/*4、表单内容*/
.login-from {
/* 设置表格上方的高度 */
margin-top: 20px;
flex: auto;
height:100%;
}
/* 5、设置输入的框 */
.inputView {
/* background-color: #fff; */
line-height: 50px;
border-radius:40px;
border:1px solid #161515;
}
/*6、设置输入框旁边的图片*/
.nameImage, .keyImage {
margin-left: 22px;
width: 18px;
height: 16px
}
/* 7、设置账号、密码字体的颜色 */
.loginLab {
margin: 15px 15px 15px 10px;
color:blue;
font-size: 14px
}
/* 8、进行提示输入的框是灰色的 */
.inputText {
flex: block;
float: right;
text-align: right;
margin-right: 22px;
margin-top: 11px;
color: gray;
font-size: 14px
}
/* 9、 内部框图进行相应的分割*/
.line {
margin-top: 10px;
}
/* .line {
width: 100%;
height: 1px;
background-color: #cccccc;
margin-top: 1px;
} */
/*10、设置按钮*/
.loginBtnView {
width: 100%;
height: auto;
/* background-color:#DCDCDC; */
margin-top: 0px;
margin-bottom: 0px;
padding-bottom: 0px;
}
.loginBtn {
width: 90%;
margin-top: 40px;
border-radius:10px;
}
/* 设置字体颜色 */
.bxj{
color: red;
}
/* 用来设置注册和忘记密码 */
.saveBtn {
width: 50% !important;
float:left;
font-weight: 100;
font-size: 10px;
}
.submitBtn {
width: 50% !important;
float:right;
font-size: 10px
}
.s_view{
position: fixed;
width: 100%;
}
/* 雪花效果特效 */
page {
background: linear-gradient(180deg, #6699CC 0%, #B8DBF0 100%);
background-attachment: fixed;
background-size: cover;
background-position: center top;
height: 100%;
}
.snow {
width: fit-content;
position: absolute;
top: -100rpx;
width: 30rpx;
height: 27rpx;
z-index: 11;
}
.snow:nth-child(2n+2) {
width: 35rpx;
height: 33rpx;
}

@ -0,0 +1,93 @@
Page({
/**
* 页面的初始数据
*/
data: {
select: false,
area: "全部",
tempgao:'',
tempzhong:'',
tempdi:'',
gao:'',
zhong:'',
di:'',
},
/**
* 生命周期函数--监听页面加载
*/
onLoad: function (options) {
},
bindShowMsg() {
// console.log(!this.data.select)
this.setData({
select:!this.data.select
// 选中为true
})
},
mySelect:function(e) {
var name = e.currentTarget.dataset.name
this.setData({
area: name,
select: false,
gao:'',
zhong:'',
di:''
})
var that =this
wx.request({
url: 'http://127.0.0.1:2020/look_info',
data: {name:this.data.area
},
dataType:JSON ,
method: 'POST',
timeout: 0,
success: (result) => {
var p =JSON.parse(result.data)
that.setData({
tempgao:p.height,
tempzhong:p.middle,
tempdi:p.low
})
// console.log(that.data.tempgao)
},
})
},
// 高风险区触发函数
gao_info:function(){
this.setData({
gao:this.data.tempgao,
zhong:'',
di:''
})
},
//中风险区触发函数
zhong_info:function(){
this.setData({
gao:'',
zhong:this.data.tempzhong,
di:''
})
},
//低风险区触发函数
di_info:function(){
this.setData({
gao:'',
zhong:'',
di:this.data.tempdi
})
},
/**
* 用户点击右上角分享
*/
onShareAppMessage: function () {
}
})

@ -0,0 +1,55 @@
<view class='list-msg'>
<view class='list-msg1'>
<text>区域选择</text>
</view>
<!--下拉框 -->
<view class='list-msg2' bindtap='bindShowMsg'>
<text>{{area}}</text>
<image style='height:60rpx;width:60rpx;' src='/static/image/CAUC.png'></image>
</view>
<view style="height: 70rpx;"></view>
<view class='list-msg1'>
<button bindtap="gao_info" type="warn">高风险</button>
<button bindtap="zhong_info" type="warn">中风险</button>
<button bindtap="di_info" type="warn">低风险</button>
</view>
<!-- 下拉需要显示的列表 -->
<view class="select_box" wx:if="{{select}}">
<view class="select_one" bindtap="mySelect" data-name="全部" >全部</view>
<view class="select_one" bindtap="mySelect" data-name="和平区" >和平区</view>
<view class="select_one" bindtap="mySelect" data-name="河东区" >河东区</view>
<view class="select_one" bindtap="mySelect" data-name="河西区" >河西区</view>
<view class="select_one" bindtap="mySelect" data-name="南开区" >南开区</view>
<view class="select_one" bindtap="mySelect" data-name="河北区" >河北区</view>
<view class="select_one" bindtap="mySelect" data-name="红桥区" >红桥区</view>
<view class="select_one" bindtap="mySelect" data-name="塘沽区" >塘沽区</view>
<view class="select_one" bindtap="mySelect" data-name="汉沽区" >汉沽区</view>
<view class="select_one" bindtap="mySelect" data-name="大港区" >大港区</view>
<view class="select_one" bindtap="mySelect" data-name="东丽区" >东丽区</view>
<view class="select_one" bindtap="mySelect" data-name="西青区" >西青区</view>
<view class="select_one" bindtap="mySelect" data-name="津南区" >津南区</view>
<view class="select_one" bindtap="mySelect" data-name="北辰区" >北辰区</view>
<view class="select_one" bindtap="mySelect" data-name="武清区" >武清区</view>
<view class="select_one" bindtap="mySelect" data-name="宝坻区" >宝坻区</view>
<view class="select_one" bindtap="mySelect" data-name="宁河区" >宁河区</view>
<view class="select_one" bindtap="mySelect" data-name="静海区" >静海区</view>
<view class="select_one" bindtap="mySelect" data-name="蓟州区" >蓟州区</view>
<view class="select_one" bindtap="mySelect" data-name="滨海新区" >滨海新区</view>
</view>
</view>
<view style="height: 50rpx;"></view>
<view wx:for="{{gao}}">
<view>{{item}}</view>
<view>----------------------------------------------</view>
</view>
<view wx:for="{{zhong}}">
<view>{{item}}</view>
<view>----------------------------------------------</view>
</view>
<view wx:for="{{di}}">
<view>{{item}}</view>
<view>----------------------------------------------</view>
</view>

@ -0,0 +1,48 @@
.list-msg {
padding: 0 20rpx;
background-color: #fff;
position: relative;
}
.list-msg1 {
height: 60rpx;
display: flex;
align-items: center;
justify-content: space-between;
}
.list-msg .list-msg2 {
height: 60rpx;
display: flex;
align-items: center;
justify-content: space-between;
border: 1px solid #ccc;
padding: 0 10rpx;
}
.select_box {
background-color: #eee;
padding: 0 10rpx;
width: 93%;
position: absolute;
top: 130rpx;
z-index: 1;
overflow: hidden;
animation: myfirst 0.5s;
}
@keyframes myfirst {
from {
height: 0rpx;
}
to {
height: 210rpx;
}
}
.select_one {
height: 60rpx;
line-height: 60rpx;
border-bottom: 1px solid #ccc;
}

@ -0,0 +1,74 @@
// pages/v15_scan_the_code/v15_scan_the_code.js
const app = getApp()
Page({
data: {
scan: '',
sno:''
},
getScancode: function() {
// var _this = this;
// 允许从相机和相册扫码
wx.scanCode({
success: (res) => {
var jieguo = res.result;
console.log(jieguo)
this.setData({
scan: jieguo,
sno:app.globalData.globalsno
})
// console.log(result)
// console.log(this.data.result)
wx.request({
url: 'http://127.0.0.1:2020/scan_the_code',
data: {shuju:this.data.scan,
sno:this.data.sno
},
method:"POST",
dataType: JSON,
enableCache: true,
enableHttp2: true,
enableQuic: true,
timeout: 0,
success: (result) => {
var p =JSON.parse(result.data)
wx.showModal({
showCancel:false,
title: p.result[0],
success: function (res) {
if (res.confirm) {
console.log('用户点击确定')
wx.navigateBack({
delta: 0,
})
}
}
})
console.log(p.result[0])
// if(result.data=='1'){
// console.log("成功")
// }
},
fail: (result) => {
console.log("失败")
},
})
}
})
},
onLoad: function() {
this.getScancode();
},
onShow() {
},
})

@ -0,0 +1,7 @@
<!--pages/v15_scan_the_code/v15_scan_the_code.wxml-->
<view class="container">
<button bindtap='getScancode'>请扫描二维码</button>
<!-- <view wx:if="{{result !=''}}">
<view>扫码的内容:{}</view>
</view> -->
</view>

@ -0,0 +1,5 @@
/* pages/v15_scan_the_code/v15_scan_the_code.wxss */
.intro{
margin:30px;
text-align:center;
}

@ -0,0 +1,92 @@
// pages/v16_user_state/v16_user_state.js
var app = getApp()
Page({
/**
* 页面的初始数据
*/
data: {
sno:''
},
/**
* 生命周期函数--监听页面加载
*/
onLoad(options) {
},
/**
* 生命周期函数--监听页面初次渲染完成
*/
onReady() {
},
/**
* 生命周期函数--监听页面显示
*/
onShow(){
this.setData({
sno:app.globalData.globalsno
})
wx.request({
url: 'http://127.0.0.1:2020/state',
data: {sno:this.data.sno
},
dataType:JSON ,
method: 'POST',
timeout: 0,
success: (result) => {
wx.showModal({
showCancel:false,
title: result.data,
success: function (res) {
if (res.confirm) {
console.log('用户点击确定')
wx.navigateBack({
delta: 0,
})
}
}
})
},
})
} ,
/**
* 生命周期函数--监听页面隐藏
*/
onHide() {
},
/**
* 生命周期函数--监听页面卸载
*/
onUnload() {
},
/**
* 页面相关事件处理函数--监听用户下拉动作
*/
onPullDownRefresh() {
},
/**
* 页面上拉触底事件的处理函数
*/
onReachBottom() {
},
/**
* 用户点击右上角分享
*/
onShareAppMessage() {
}
})

@ -0,0 +1,2 @@
<!--pages/v16_user_state/v16_user_state.wxml-->

@ -0,0 +1 @@
/* pages/v16_user_state/v16_user_state.wxss */

@ -0,0 +1,22 @@
// pages/fengguang/fengguang.js
Page({
data:{
"items": [1,2,3,4],
number:[1,2,3,4,5,6]
},
onReady:function(){
// 页面渲染完成
},
onShow:function(){
// 页面显示
},
onHide:function(){
// 页面隐藏
},
onUnload:function(){
// 页面关闭
}
})

@ -0,0 +1,3 @@
{
"usingComponents": {}
}

@ -0,0 +1,4 @@
<view class="header">
<!-- 代码 -->
<image class="bg_ware" src="https://codermoyv.gitee.io/coder-moyv/assets/images/wechat/bg_wave.gif"></image>
</view>

@ -0,0 +1,15 @@
.header {
position: relative;
height:300rpx;
background: linear-gradient(to bottom, #56ccf2, #2f80ed);
}
.bg_ware {
position: absolute;
left: 0;
bottom: -2rpx;
width: 100%;
mix-blend-mode: screen;
height: 120rpx;
}

@ -0,0 +1,156 @@
// pages/v6_administrator/v6_administrator.js
Page({
/**
* 页面的初始数据
*/
data: {
swiperList: [
{
type: 'video',
url: 'https://static.51dh.com.cn/dbp/12/98/4494bd8a6e0fcd4a992f25a42bea28f8d1fb.mp4'
}, {
type: 'image',
url: 'https://i.postimg.cc/mgsKJGLw/susu1.jpg'
}, {
type: 'image',
url: 'https://i.postimg.cc/qRRLS16Q/susu0.jpg',
}, {
type: 'image',
url: 'https://i.postimg.cc/pXDp6RXq/susu3.jpg'
}, {
type: 'image',
url: 'https://i.postimg.cc/XJmpTvCD/susu2.jpg'
}, {
type: 'image',
url: 'https://i.postimg.cc/76br1jzJ/susu1.jpg'
}, {
type: 'image',
url: 'https://i.postimg.cc/pXDp6RXq/susu3.jpg'
},
{
type: 'image',
url: 'https://i.postimg.cc/XJmpTvCD/susu2.jpg'
},
],
},
/**
* 生命周期函数--监听页面加载
*/
onLoad: function (options) {
this.tauchSwiper('swiperList');
},
// 初始化tauchSwiper
tauchSwiper(name) {
let list = this.data[name];
for (let i = 0; i < list.length; i++) {
// Math.abs(x) 函数返回指定数字 “x“ 的绝对值
list[i].zIndex = parseInt(list.length / 2) + 1 - Math.abs(i - parseInt(list.length / 2))
list[i].mLeft = i - parseInt(list.length / 2)
}
this.setData({
swiperList: list
})
},
// tauchSwiper触摸开始
tauchStart(e) {
this.setData({
tauchStart: e.touches[0].pageX
})
},
// tauchSwiper计算方向
tauchMove(e) {
this.setData({
direction: e.touches[0].pageX - this.data.tauchStart > 0 ? 'right' : 'left'
})
},
// tauchSwiper计算滚动
tauchEnd(e) {
let direction = this.data.direction;
let list = this.data.swiperList;
if (direction == 'right') {
let mLeft = list[0].mLeft;
let zIndex = list[0].zIndex;
for (let i = 1; i < list.length; i++) {
list[i - 1].mLeft = list[i].mLeft
list[i - 1].zIndex = list[i].zIndex
}
list[list.length - 1].mLeft = mLeft;
list[list.length - 1].zIndex = zIndex;
this.setData({
swiperList: list
})
} else {
let mLeft = list[list.length - 1].mLeft;
let zIndex = list[list.length - 1].zIndex;
for (let i = list.length - 1; i > 0; i--) {
list[i].mLeft = list[i - 1].mLeft
list[i].zIndex = list[i - 1].zIndex
}
list[0].mLeft = mLeft;
list[0].zIndex = zIndex;
this.setData({
swiperList: list
})
}
},
/**
* 生命周期函数--监听页面初次渲染完成
*/
onReady() {
},
/**
* 生命周期函数--监听页面显示
*/
onShow() {
},
/**
* 生命周期函数--监听页面隐藏
*/
onHide() {
},
/**
* 生命周期函数--监听页面卸载
*/
onUnload() {
},
/**
* 页面相关事件处理函数--监听用户下拉动作
*/
onPullDownRefresh() {
},
/**
* 页面上拉触底事件的处理函数
*/
onReachBottom() {
},
/**
* 用户点击右上角分享
*/
onShareAppMessage() {
}
})

@ -0,0 +1,32 @@
<!--pages/v6_administrator/v6_administrator.wxml-->
<view class="header">
<!-- 代码 -->
<image class="bg_ware" src="https://codermoyv.gitee.io/coder-moyv/assets/images/wechat/bg_wave.gif"></image>
<!-- 进入到主页面 -->
<view class="menu">
<view class="item">
<navigator url="/pages/v13_look_info/v13_look_info"><image class="image1" src="/static/image/CAUC.png" ></image></navigator>
<text style="color: bisque;">查看疫情信息</text>
</view>
<view class="item">
<navigator url="/pages/v9_manual/v9_manual"><image class="image1" src="/static/image/CAUC.png" ></image></navigator>
<text style="color: bisque;">审批</text>
</view>
</view>
</view>
<!-- 轮播图 -->
<view class="swiper-box" bindtouchmove="tauchMove" bindtouchstart="tauchStart" bindtouchend="tauchEnd">
<view class="item-box {{item.zIndex==1?'none':''}}" wx:for="{{swiperList}}" wx:key="index" style="--index:{{item.zIndex}};--left:{{item.mLeft}}">
<view class="swiper-item">
<image src="{{item.url}}" mode="aspectFill" wx:if="{{item.type=='image'}}"></image>
<video src="{{item.url}}" autoplay loop muted show-play-btn="{{false}}" controls="{{false}}" objectFit="cover" wx:if="{{item.type=='video'}}"></video>
</view>
</view>
</view>

@ -0,0 +1,104 @@
/* pages/index/index.wxss */
.c1{
color: red;
}
.image1{
width: 200rpx;
height: 200rpx;
/* 如果要设置圆角的话 */
border-radius: 100rpx;
}
.menu{
display: flex;
/* 规定主轴的方向 */
flex-direction: row;
/* 元素在主轴方向的排列方式 我用的是平均排列*/
justify-content: space-around;
/* 元素在负轴方向如何展示 */
/* align-items: center; */
}
/* 缺个空格差点g。 */
.menu .item{
display: flex;
flex-direction: column;
/* 元素在负轴方向如何展示 */
align-items: center;
}
/* 波浪的渲染 */
.header {
position: relative;
height:450rpx;
background: linear-gradient(to bottom, #56ccf2, #2f80ed);
}
.bg_ware {
position: absolute;
left: 0;
bottom: -2rpx;
width: 100%;
mix-blend-mode: screen;
height: 120rpx;
}
/* 轮播图 */
.swiper-item image,
.swiper-item video {
width: 100%;
display: block;
height: 100%;
margin: 0;
pointer-events: none;
}
image {
max-width: 100%;
display: inline-block;
position: relative;
z-index: 0;
}
.swiper-box {
height: 420rpx;
position: relative;
max-width: 750rpx;
overflow: hidden;
box-sizing: border-box;
margin-top: 90rpx;
}
.swiper-box .item-box {
position: absolute;
width: 300rpx;
height: 380rpx;
top: 0;
bottom: 0;
left: 50%;
margin: auto;
transition: all 0.2s ease-in 0s;
opacity: 1;
box-shadow: 0px 13rpx 12rpx rgba(0, 0, 0, .5);
border-radius: 15rpx;
overflow: hidden;
}
.swiper-box .item-box.none {
opacity: 0;
}
.swiper-box .item-box .swiper-item {
width: 100%;
height: 100%;
border-radius: 6rpx;
overflow: hidden;
}
.swiper-box .item-box {
transform: scale(calc(0.5 + var(--index) / 10));
margin-left: calc(var(--left) * 100rpx - 150rpx);
z-index: var(--index);
}

@ -0,0 +1,29 @@
{
"appid": "wx1be3d41368551c6d",
"projectname": "%E8%BD%AF%E4%BB%B6%E5%B7%A5%E7%A8%8B%E5%BC%80%E5%8F%91%E9%A1%B9%E7%9B%AE",
"compileType": "miniprogram",
"libVersion": "2.19.4",
"packOptions": {
"ignore": [],
"include": []
},
"setting": {
"coverView": true,
"es6": true,
"postcss": true,
"minified": true,
"enhance": true,
"showShadowRootInWxmlPanel": true,
"packNpmRelationList": [],
"compileHotReLoad": true,
"babelSetting": {
"ignore": [],
"disablePlugins": [],
"outputPath": ""
}
},
"editorSetting": {
"tabIndent": "insertSpaces",
"tabSize": 2
}
}

@ -0,0 +1,89 @@
{
"description": "项目私有配置文件。此文件中的内容将覆盖 project.config.json 中的相同字段。项目的改动优先同步到此文件中。详见文档https://developers.weixin.qq.com/miniprogram/dev/devtools/projectconfig.html",
"condition": {
"miniprogram": {
"list": [
{
"name": "",
"pathName": "pages/v8_in_school/v8_in_school",
"query": "",
"launchMode": "default",
"scene": null
},
{
"name": "",
"pathName": "pages/v11_success/v11_success",
"query": "",
"launchMode": "default",
"scene": null
},
{
"name": "",
"pathName": "pages/v9_manual/v9_manual",
"query": "",
"launchMode": "default",
"scene": null
},
{
"name": "",
"pathName": "pages/info/info",
"query": "",
"launchMode": "default",
"scene": null
},
{
"name": "",
"pathName": "pages/v19_test/v19_test",
"query": "",
"launchMode": "default",
"scene": null
},
{
"name": "",
"pathName": "pages/v13_look_info/v13_look_info",
"query": "",
"launchMode": "default",
"scene": null
},
{
"name": "",
"pathName": "pages/v15_scan_the_code/v15_scan_the_code",
"query": "",
"launchMode": "default",
"scene": null
},
{
"name": "",
"pathName": "pages/v16_user_state/v16_user_state",
"query": "",
"launchMode": "default",
"scene": null
},
{
"name": "",
"pathName": "pages/user/user",
"query": "",
"launchMode": "default",
"scene": null
},
{
"name": "",
"pathName": "pages/v6_administrator/v6_administrator",
"query": "",
"launchMode": "default",
"scene": null
},
{
"name": "",
"pathName": "pages/v7_out_school/v7_out_school",
"query": "",
"launchMode": "default",
"scene": null
}
]
}
},
"setting": {
"urlCheck": false
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 377 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 292 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 427 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 133 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 262 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 301 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 96 KiB

Some files were not shown because too many files have changed in this diff Show More

Loading…
Cancel
Save