Compare commits

...

7 Commits

Author SHA1 Message Date
4ec94196c7 modified: README.md 2025-06-20 22:12:04 +08:00
7748015e5a 添加图片 2025-06-20 22:10:56 +08:00
522592be25 modify README.md 2025-06-20 22:10:13 +08:00
3064d32692 modify README.md 2025-06-20 21:59:25 +08:00
3ad10a960d modify README.md 2025-06-20 21:53:09 +08:00
e64718a811 Changes to be committed:
modified:   app_sb/src/main/resources/application.yml
	new file:   app_vue/.env.development
	modified:   app_vue/src/components/GetToken_1.vue
	modified:   app_vue/vue.config.js
2025-06-20 21:49:37 +08:00
0245ac40fa 完善README 2025-06-20 21:49:12 +08:00
24 changed files with 469 additions and 20 deletions

163
README.md Normal file
View File

@ -0,0 +1,163 @@
# 详细配置指南
### ✔️如何下载本工程:
#### 方法1
进入[gitea.monjack.cn/monjack/20250612](https://gitea.monjack.cn/monjack/20250612)
点击代码按钮选择下载ZIP并解压到对应文件夹
![网页下载工程](./doc/images/网页下载工程.png)
#### 方法2推荐
如系统存在git环境直接运行
`git clone https://gitea.monjack.cn/monjack/20250612.git`
**使用本工程前请务必配置好相应开发环境本指南不包含不限于JDK、Springboot等及其开发工具的配置与安装**
另见:[README_opreate](README_operate.md) 网页链接:[125.64.9.222:8022](http://125.64.9.222:8022/stuff/exam_operate/exam_operate_1.html)
### 1⃣vue工程
❗在 .env.development 文件中配置好相应变量:
![](./doc/images/vue工程配置.png )
终端定位到工程根目录下(一般是:`C:\exam_app\app_vue` )
`cd C:\exam_app\app_vue`
运行命令 `npm install`安装必要库
运行命令`npm run serve`
运行成功如下:
```shell
(base) PS C:\Users\yourUserName> cd C:\exam_app\app_vue
(base) PS C:\exam_app\app_vue> npm install
npm warn deprecated inflight@1.0.6: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.
npm warn deprecated @babel/plugin-proposal-class-properties@7.18.6: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-class-properties instead.
npm warn deprecated @humanwhocodes/config-array@0.5.0: Use @eslint/config-array instead
npm warn deprecated stable@0.1.8: Modern JS already guarantees Array#sort() is a stable sort, so this library is deprecated. See the compatibility table on MDN: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort#browser_compatibility
npm warn deprecated consolidate@0.15.1: Please upgrade to consolidate v1.0.0+ as it has been modernized with several long-awaited fixes implemented. Maintenance is supported by Forward Email at https://forwardemail.net ; follow/watch https://github.com/ladjs/consolidate for updates and release changelog
npm warn deprecated rimraf@3.0.2: Rimraf versions prior to v4 are no longer supported
npm warn deprecated glob@7.2.3: Glob versions prior to v9 are no longer supported
npm warn deprecated @humanwhocodes/object-schema@1.2.1: Use @eslint/object-schema instead
npm warn deprecated webpack-chain@6.5.1: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.
npm warn deprecated eslint@7.32.0: This version is no longer supported. Please see https://eslint.org/version-support for other options.
added 925 packages, and audited 926 packages in 9s
119 packages are looking for funding
run `npm fund` for details
12 vulnerabilities (8 moderate, 4 high)
To address issues that do not require attention, run:
npm audit fix
To address all issues (including breaking changes), run:
npm audit fix --force
Run `npm audit` for details.
(base) PS C:\exam_app\app_vue> npm run serve
> app_vue@0.1.0 serve
> vue-cli-service serve
INFO Starting development server...
DONE Compiled successfully in 3161ms 21:55:22
App running at:
- Local: http://localhost:58627/
- Network: http://172.18.0.1:58627/
Note that the development build is not optimized.
To create a production build, run npm run build.
```
### 2⃣数据库配置:
❗仅适用于本工程不同题目应配置不同的Table请注意识别
安装 wampserver 或其他 MAMP本地开发环境软件 ,本地数据库亦可
执行下列sql语句仅适用本项目
*exam_xxxxxx_xxxxx* 替换为 *VPS database name*
```sql
create database exam_xxxxxx_xxxxx;
use exam_xxxxxx_xxxxx;
create table user_70(name char(50),address char(50),password char(50))ENGINE=MyISAM DEFAULT CHARSET=utf8;
insert into user_70(name,address,password)values('mike','shanghai','c4ca4238a0b923820dcc509a6f75849b');
insert into user_70(name,address,password)values('rose','beijing','c4ca4238a0b923820dcc509a6f75849b');
create table person_805(id varchar(50),sfz_id varchar(20),name varchar(20),gender varchar(1),password varchar(20), hometown varchar(20),chronic_disease varchar(100),birthday int,emr text,create_time int,update_time int)ENGINE=MyISAM DEFAULT CHARSET=utf8;
create index `sfz_id` on `person_805` (sfz_id);
insert into person_805(id,sfz_id,name,gender,password,hometown,chronic_disease,birthday,emr,create_time,update_time)values ('001','510103198208210452','罗维','1','123','510101','hypertension','398748962','三年前确诊,病情控制良好','1636424977','1636424977');
create table person_health_805(id varchar(50),sfz_id varchar(20),weight int,height int,heart_rate int,sbp int ,dbp int,blood_sugar DECIMAL(5,1),create_time int,update_time int)ENGINE=MyISAM DEFAULT CHARSET=utf8;
create index `sfz_id` on `person_health_805` (sfz_id);
insert into person_health_805(id,sfz_id,height,weight,heart_rate,sbp,dbp,blood_sugar,create_time,update_time)values('001','510103198208210452','176','71','78','120','75','4.1','1636424977','1636424977');
insert into person_health_805(id,sfz_id,height,weight,heart_rate,sbp,dbp,blood_sugar,create_time,update_time)values('002','510103198208210452','176','72','73','126','80','6.8','1636511377','1636511377');
create table person_base_info_881_1(id varchar(18),name varchar(20),sbp int,dbp int)ENGINE=MyISAM DEFAULT CHARSET=utf8;
insert into person_base_info_881_1(id,name,sbp,dbp)values('510103234','罗维','114','70');
insert into person_base_info_881_1(id,name,sbp,dbp)values('510103239','洪七公','134','89');
```
### 3⃣Springboot配置
配置 **application.yml**
```yml
server:
port: <你的springboot端口(VPS spring boot port)> # 替换<>内容
spring:
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
username: root
password: #默认密码为空
url: jdbc:mysql://localhost:3306/<VPS database name>?characterEncoding=utf-8&serverTimezone=UTC&useSSL=false # 替换<>内容
mybatis:
mapper-locations: classpath:mapper/*Mapper.xml
type-aliases-package: com.luowei.exam
configuration:
#log-impl: org.apache.ibatis.logging.nologging.NoLoggingImpl
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
```
配置完成后
使用 IDEA 打开app_sb下项目后直接运行
![运行springboot](./doc/images/运行Springboot.png)
点击 public class AppSbApplication 或 public static void main...左侧绿色三角
----
至此配置完成

293
README_operate.md Normal file
View File

@ -0,0 +1,293 @@
# vue工程项目初始化操作指南
<ol>
<li>强烈推荐在VM中完成如下实验推荐使用virtualbox
<li>如果是机房的电脑上实验先关闭ReportServer服务,如下:
![机房要处理的操作]( ./doc/images/机房要处理的操作_1.jpg "机房要处理的操作" )
<li>
<li>配置调试用chrome浏览器
<li>在c盘建一个名为chrome的文件夹
<li>右键点桌面chrome图标打开属性在对话框的"目标(T)"处,复制如下命令替换原有参数后点确定。
![chrome_nosafe]( ./doc/images/chrome_nosafe.png "chrome_nosafe")
~~~
"C:\Program Files\Google\Chrome\Application\chrome.exe" --disable-site-isolation-trials --disable-web-security --user-data-dir=c:\chrome
~~~
<li>操作完后关闭浏览器,在重新打开
<li>安装wampserver。
<li>安装idea。
<li>安装node.js。
<li>进入命令行。
<li>进入c盘根目录 cd/
<li>在c盘根目录创建项目文件夹md exam_app
<li>进入项目文件夹cd exam_app
<li>配置镜像地址npm config set registry https://registry.npmmirror.com
<li>安装vue-clinpm install -g @vue/cli
<li>创建vue项目脚手架vue create app_vue
<li>进入vue项目文件夹cd app_vue
<li>安装router包npm install vue-router@next
<li>安装axios包npm install axios
<li>启动vue项目npm run serve
<li>启动idea打开刚才创建的app_vue项目
<li>安装vue的插件
![plugins_vue]( ./doc/images/plugins_vue.png "plugins_vue")
<li>配置vue
~~~json
const { defineConfig } = require('@vue/cli-service')
module.exports = defineConfig({
transpileDependencies: true
})
module.exports={
devServer:{
port:586xx,
allowedHosts:"all",
proxy: {
'/examServer': {
target: "http://10.128.128.xx:8022",
secure: false,
changeOrigin: true,
pathRewrite: {
'^/examServer': ''
}
},
'/springbootServer': {
target: "http://localhost:583xx",
secure: false,
changeOrigin: true,
pathRewrite: {
'^/springbootServer': ''
}
},
}
}
}
~~~
<li>每次修改了vue配置文件后要重启vue
<li>准备好老师发送的考试服务器客户端文件名为e_yyyymmdd.jar 复制到c盘根下
<li>进入命令行
<li>进入c盘根目录: `cd /`
<li>运行考试服务器:`java -jar e_yyyymmdd.jar`(原则上此文件的名称与考次号一致)
<li>考试服务器窗口在运行过程中如果出现问题请用ctrl+c中止程序。vue-cli窗口也是类似不要直接关窗口。
<li>如果出现
![java端口冲突]( ./doc/images/java端口冲突.png "java端口冲突")
,请用`neststat -ano`找到8099端口对应的PID后杀掉此进程解决。
<li>配置router/index.js
</ol>
# springboot工程项目初始化操作指南
<ol>
<li>新建工程项目
![springboot1]( ./doc/images/springboot_1.png )
<br><br>
<li>设置项目参数
![springboot2](.\doc\images\springboot_2.png)
<br><br>
<li>设置项目参数
![springboot3](./doc/images/springboot_3.png)
<br><br>
<li>设置项目参数
![](./doc/images/springboot_4.png)
<br><br>
<li>设置编译参数
![springboot5](./doc/images/springboot_5.png)
<br><br>
<li>设置项目参数
![](./doc/images/springboot_7.png)
<br><br>
<li>设置项目参数
![springboot8](./doc/images/springboot_8.png)
<br><br>
<li>设置pom参数
![springboot6](./doc/images/springboot_6.png)
~~~xml
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.6.3</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.luowei</groupId>
<artifactId>app_sb</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>app_sb</name>
<description>Demo project for Spring Boot</description>
<url/>
<licenses>
<license/>
</licenses>
<developers>
<developer/>
</developers>
<scm>
<connection/>
<developerConnection/>
<tag/>
<url/>
</scm>
<properties>
<java.version>8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.3.1</version>
</dependency>
<dependency>
<groupId>com.mysql</groupId>
<artifactId>mysql-connector-j</artifactId>
<version>8.0.31</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
~~~
<li>设置项目参数
![]( ./doc/images/springboot_9.png )
<li>maven配置
~~~xml
<?xml version="1.0" encoding="UTF-8"?>
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
<mirrors>
<mirror>
<id>alimaven</id>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
<mirrorOf>central</mirrorOf>
</mirror>
<mirror>
<id>uk</id>
<mirrorOf>central</mirrorOf>
<name>Human Readable Name for this Mirror.</name>
<url>http://uk.maven.org/maven2/</url>
</mirror>
<mirror>
<id>CN</id>
<name>OSChina Central</name>
<url>http://maven.oschina.net/content/groups/public/</url>
<mirrorOf>central</mirrorOf>
</mirror>
<mirror>
<id>nexus</id>
<name>internal nexus repository</name>
<url>http://repo.maven.apache.org/maven2</url>
<mirrorOf>central</mirrorOf>
</mirror>
</mirrors>
</settings>
~~~
<li style="color: red">配置完后刷新maven
<li>配置application.yml
~~~yml
server:
port: 583xx
spring:
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
username: root
password:
url: jdbc:mysql://localhost:3306/exam_xxx?characterEncoding=utf-8&serverTimezone=UTC&useSSL=false
mybatis:
mapper-locations: classpath:mapper/*Mapper.xml
type-aliases-package: com.luowei.exam
configuration:
#log-impl: org.apache.ibatis.logging.nologging.NoLoggingImpl
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
~~~
<li>配置数据库与数据表(部分)
~~~sql
drop database exam_xxx;
create database exam_xxx;
use exam_xxx;
drop table person_base_info_881;
create table person_base_info_881(id varchar(18),name varchar(20),gender varchar(2),chronic_disease varchar(20),password varchar(20),address varchar(40),photo varchar(40),create_time int,update_time int)ENGINE=MyISAM DEFAULT CHARSET=utf8;
insert into person_base_info_881(id,name,gender,password,chronic_disease,address,photo,create_time,update_time)values('admin','罗维','01','123','c01,c02','510100','admin','-967796571','-967796571');
insert into person_base_info_881(id,name,gender,password,chronic_disease,address,photo,create_time,update_time)values('510103194610220234','洪七公','01','123','c01,c02','510100','510103194610220234','-967796571','-967796571');
insert into person_base_info_881(id,name,gender,password,chronic_disease,address,photo,create_time,update_time)values('510103194805030875','郭靖','02','123','c01,c03','500000','510103194610220234','-927796571','-927796571');
drop table person_health_info_881;
create table person_health_info_881(uuid varchar(50),id varchar(18),sbp int,dbp int,create_time int,update_time int)ENGINE=MyISAM DEFAULT CHARSET=utf8;
insert into person_health_info_881(uuid,id,sbp,dbp,create_time,update_time)values('1234567890','510103194610220234','110','80','1758399909','1758399909');
insert into person_health_info_881(uuid,id,sbp,dbp,create_time,update_time)values('1234567891','510103194610220234','120','85','1758399909','1758399909');
drop table person_base_info_881_1;
create table person_base_info_881_1(id varchar(18),name varchar(20),sbp int,dbp int)ENGINE=MyISAM DEFAULT CHARSET=utf8;
insert into person_base_info_881_1(id,name,sbp,dbp)values('510103234','罗维','114','70');
insert into person_base_info_881_1(id,name,sbp,dbp)values('510103239','洪七公','134','89');
~~~
<li>mapper.xml
~~~xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<!--实际开发时namespace要按实际的包名修改-->
<mapper namespace="com.luowei.app_sb.mapper.PersonBaseInfoMapper">
</mapper>
~~~
<li>如果调试时出现报错“java.lang.IllegalArgumentException: Source must not be null”是你的代码有问题插入了null导致的删除数据后可解决。
![]( http://125.64.9.222:8022/stuff/image/%E6%95%B0%E6%8D%AE%E8%A1%A8%E5%AD%97%E6%AE%B5%E5%80%BC%E4%B8%BA%E7%A9%BA%E7%9A%84%E5%A4%84%E7%90%86_1.png)
</ol>

View File

@ -5,7 +5,7 @@ spring:
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
username: root
password: 123456
password:
url: jdbc:mysql://localhost:3306/exam_20250612_58009?characterEncoding=utf-8&serverTimezone=UTC&useSSL=false
mybatis:
@ -14,18 +14,3 @@ mybatis:
configuration:
#log-impl: org.apache.ibatis.logging.nologging.NoLoggingImpl
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
# create database exam_20250612_58056;
# use exam_20250612_58056;
# drop table user_70;
# create table user_70(name char(50),address char(50),password char(50))ENGINE=MyISAM DEFAULT CHARSET=utf8;
# insert into user_70(name,address,password)values('mike','shanghai','c4ca4238a0b923820dcc509a6f75849b');
# insert into user_70(name,address,password)values('rose','beijing','c4ca4238a0b923820dcc509a6f75849b');
# create database exam_20250612_58056;
# use exam_20250612_58056;
# drop table person_base_info_881_1;
# create table person_base_info_881_1(id varchar(18),name varchar(20),sbp int,dbp int)ENGINE=MyISAM DEFAULT CHARSET=utf8;
# insert into person_base_info_881_1(id,name,sbp,dbp)values('510103234','罗维','114','70');
# insert into person_base_info_881_1(id,name,sbp,dbp)values('510103239','洪七公','134','89');

8
app_vue/.env.development Normal file
View File

@ -0,0 +1,8 @@
# 下面填写 VPS spring vue port 替换53600
VUE_APP_PORT = 53600
# 下面填写 浏览器URL栏中 http://[考试服务器地址]:[端口号] 例如 http://10.128.192.1:8022替换http://10.128.128.249:8022
SERVER_URL = http://10.128.128.249:8022
# 下面填写 你的学号替换202241401022
VUE_APP_STUDENT_ID = 202241401022
# 下面填写 VPS spring boot port替换53300
SPRINGBOOT_PORT= 53300

View File

@ -11,7 +11,7 @@
proxy:"/examServer",
url:"/public_api/v1/api_for_vue_exam_1?student_id=",
token:"no token",
student_id: "202241401015"
student_id: process.env.VUE_APP_STUDENT_ID
}
},
methods:{

View File

@ -4,11 +4,11 @@ module.exports = defineConfig({
})
module.exports={
devServer:{
port:58610,
port: process.env.VUE_APP_PORT,
allowedHosts:"all",
proxy: {
'/examServer': {
target: "http://10.128.128.249:8022",
target: process.env.SERVER_URL,
secure: false,
changeOrigin: true,
pathRewrite: {
@ -16,7 +16,7 @@ module.exports={
}
},
'/springbootServer': {
target: "http://localhost:58310",
target: `http://localhost:${process.env.SPRINGBOOT_PORT}`,
secure: false,
changeOrigin: true,
pathRewrite: {

Binary file not shown.

After

Width:  |  Height:  |  Size: 46 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 54 KiB

BIN
doc/images/plugins_vue.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 223 KiB

BIN
doc/images/springboot_1.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 70 KiB

BIN
doc/images/springboot_2.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 75 KiB

BIN
doc/images/springboot_3.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 39 KiB

BIN
doc/images/springboot_4.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.4 KiB

BIN
doc/images/springboot_5.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 120 KiB

BIN
doc/images/springboot_6.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 131 KiB

BIN
doc/images/springboot_7.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 111 KiB

BIN
doc/images/springboot_8.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 72 KiB

BIN
doc/images/springboot_9.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 89 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 43 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 56 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 157 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 634 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 326 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 107 KiB