This commit is contained in:
王鹏
2025-08-14 14:46:45 +08:00
commit 5597ca12de
21 changed files with 1451 additions and 0 deletions

21
README.md Normal file
View File

@@ -0,0 +1,21 @@
#### 工作室介绍
南音工作室提供Java、Python、PHP、Android、Node、微信小程序等项目的定制开发服务。
如果你有需要可以联系我们
- 微信forfeastcoding
<img src="http://img.yidaima.cn/1-da208d4052164b0cb98c4078a9adfd1e" width="160" height="160">
- 闲鱼:程序员南音
- 淘宝店:[FeastCoding](https://shop107223231.taobao.com/) 或 [FeastCode](https://shop109307014.taobao.com/)
- 微信公众号:南音源码
<img src="http://img.yidaima.cn/4-6e421dcef5ea4e64b33dd19b9b083837" width="160" height="160">
- 微信小程序:南音源码库,免费获取海量源码资源
<img src="http://img.yidaima.cn/2-da2c3f2a82434f0086d9fcc120e36a01" width="160" height="160">
- 微信小程序:南音资源库,免费获取海量福利资源
<img src="http://img.yidaima.cn/3-f398df8893b34ff18f455ace55401e86" width="160" height="160">
- 博客网站:[http://www.yidaima.cn/](http://www.yidaima.cn/)

7
_coverpage.md Normal file
View File

@@ -0,0 +1,7 @@
<img width="180px" style="border-radius: 50%" bor src="https://img.yidaima.cn/qrcode.jpg">
# 项目运行教程
- 本文档是南音工作室整理的J2EE项目的部署运行文档旨在为大家提供一个较详细的学习教程如果本文能为您得到帮助请给予支持
[开始阅读](README.md)

5
_sidebar.md Normal file
View File

@@ -0,0 +1,5 @@
* 简介
* [关于我们](README.md)
* 运行教程
* [项目部署文档](env.md)

39
data.md Normal file
View File

@@ -0,0 +1,39 @@
如果已经安装mysql请忽略此步骤
#### 下载mysql
- 开发环境 → 百度云盘
- [官网下载](https://dev.mysql.com/doc/relnotes/mysql/5.7/en/)
#### 安装步骤
参考百度经验,详细到每一步的图文教程。
[百度经验](https://jingyan.baidu.com/article/76a7e409180390fc3b6e15af.html)
安装完一定记住密码,很重要。
#### 忘记密码
1. 新建my.ini文件或修改my-default.ini文件
2. `skip-grant-tables` 跳过密码验证登录,安装路径需要更改
```
[mysqld]
basedir=D:\Program Files\mysql-5.7\
datadir=D:\Program Files\mysql-5.7\data\
port=3306
skip-grant-tables
```
3. 启动管理员模式下的cmd
4. 启动mysql,利用命令 `mysql -uroot -p`登录,不需要密码即可登录
5. 登录成功后更改root密码
6. `use mysql`切换到mysql数据库
7. `update user set password = password('123456') where user='root' and host='localhost';`修改root密码
8. `flush privileges`刷新权限
9. 修改my.ini 文件删除 `skip-grant-tables`
10. 重启mysql即可正常使用 `net stop mysql and net start mysql`

1
docsify@4.js Normal file

File diff suppressed because one or more lines are too long

28
eclipse.md Normal file
View File

@@ -0,0 +1,28 @@
#### eclipse导入Maven项目
1. 右键 -> import -> Maven -> Existing Maven Projects
2. 选择项路径,导入成功
#### 配置JDK以jdk1.8为例)
1. 右键项目 -> Propertis -> Java Build Path
2. Libraries 中是项目所有的依赖显示红叉的remove掉。
3. JRE System Library 和 Server Library 都remove掉
4. Add Library -> JRE System Library -> Alternate JRE 选择jdk1.8。如果没有,选择 Installed JRES...选择本机jdk1.8的安装路径需要先安装jdk1.8
5. 选完finish就ok了
#### 配置Java Compiler
1. 右键项目 -> Propertis -> Java Compiler
2. Compiler compliance level -> 1.8
#### 配置Tomcat
1. Window -> Preference -> Runtime Environments -> Add
2. 选择 Apache -> Apache Tomcat v8.0
3. 选择tomcat安装路径JRE选择1.8
4. eclipse配置tomcat就ok了还需要配置到项目中
5. 右键项目 -> Propertis -> Java Build Path -> Libraries
6. Add Library -> Server Runtime -> 选择刚才配置好的tomcat就ok了
#### 运行项目
1. 导入好数据库脚本
2. 修改项目中数据库连接的用户名和密码
3. 右键项目 -> Run As -> Run on Server 选择Tomcat8运行
4. 访问 `http://localhost:8080/项目名/`

17
env.md Normal file
View File

@@ -0,0 +1,17 @@
`1、相关软件工具`
夸克网盘https://pan.quark.cn/s/ee733133b465
百度网盘https://pan.baidu.com/s/1MLDuliyIAMtoADXVNe04HA?pwd=7nez 提取码: 7nez
`2、环境配置教程`
夸克网盘https://pan.quark.cn/s/e25fa708e1bd
百度网盘https://pan.baidu.com/s/1KNBnHzcBvvHZEaUqF-NyLg?pwd=qifh 提取码: qifh
`3、项目部署教程包含前后端框架代码讲解`
夸克网盘https://pan.quark.cn/s/03d23d059e12
百度网盘https://pan.baidu.com/s/10qlVEUXwcrI0SJsqINsM8Q?pwd=xfnn 提取码: xfnn

63
front/vue.md Normal file
View File

@@ -0,0 +1,63 @@
要在VSCode中打开并启动现有的Vue项目你需要确保已经安装了Node.js和Vue CLI并且你的项目已经包含了必要的依赖项。以下是详细的步骤
**一、安装Node.js和Vue CLI**
1. 确保你的系统上已经安装了Node.js。可以通过运行`node -v``npm -v`来检查Node.js和npm是否安装成功并查看它们的版本号。
2. 安装Vue CLI。在命令行中运行以下命令来全局安装Vue CLI
```bash
npm install -g @vue/cli
```
安装完成后,你可以通过运行`vue --version`来检查Vue CLI是否安装成功。
**二、打开VSCode并导入Vue项目**
1. 打开VSCode。
2. 在VSCode中选择“文件”菜单中的“打开文件夹”或者使用快捷键`Ctrl+K Ctrl+O`在Mac上是`Cmd+K Cmd+O`)。
3. 在弹出的文件选择器中导航到你的Vue项目的根目录并选择它。点击“打开”按钮VSCode将加载你的项目。
**三、安装项目依赖**
如果项目的依赖项还没有安装,或者`node_modules`文件夹缺失你需要在VSCode的集成终端中运行以下命令来安装它们
```bash
npm install
```
或者如果你的项目使用的是yarn作为包管理器则运行
```bash
yarn install
```
**四、启动Vue项目**
安装完依赖后你可以在终端中运行以下命令来启动你的Vue项目
```bash
npm run serve
```
或者如果使用yarn
```bash
yarn serve
```
Vue CLI将启动一个开发服务器并在终端中显示本地开发服务器的地址。通常它会在`http://localhost:8080/`上运行。
**五、在浏览器中查看Vue应用**
打开你的浏览器并输入终端中提供的本地开发服务器地址。你应该能看到你的Vue应用正在运行。
**注意事项**
- 确保你的Vue项目中的`package.json`文件包含了正确的脚本命令,特别是`serve`脚本,它用于启动开发服务器。
- 如果你的Vue项目使用了特定的编辑器配置或插件你可能还需要在VSCode中安装这些插件或导入配置。
- 如果你的Vue项目依赖于全局安装的Vue CLI插件或其他工具确保这些工具已经在你的系统中安装并可用。
遵循以上步骤你应该能够在VSCode中成功打开并启动现有的Vue项目。

21
idea.md Normal file
View File

@@ -0,0 +1,21 @@
Maven项目导入IntelliJ IDEA并进行配置主要需要关注以下几个步骤
1. **导入Maven项目**
* 在IntelliJ IDEA的欢迎页面左侧选择“Open or Import”或者在IDEA工作区上方的菜单栏中选择“File”在下拉菜单中选择“Open”。
* 找到并选择需要导入的Maven项目的根目录包含pom.xml文件的目录然后点击“OK”或“Import”。
* 如果是第一次在IDEA中打开该项目IDEA会对其进行分析。如果检测到多个配置如Eclipse和Maven则会提示用户选择需要使用的配置。
2. **配置Maven**
* 在IDEA中可以通过“File” -> “Settings” -> “Build, Execution, Deployment” -> “Build Tools” -> “Maven”来查看和修改Maven的配置。
* 在这里你可以设置Maven的home directoryMaven安装目录、User settings file用户设置文件通常是settings.xml、以及Repositories仓库地址等。
* 如果需要提高依赖包的下载速度,可以考虑修改默认的远程仓库地址为阿里云的镜像或其他较快的镜像地址。
3. **配置JDKSDK**
* 对于Maven项目需要确保已经正确配置了JDK。在IDEA中可以通过“File” -> “Project Structure” -> “Project”来设置Project SDK。
* 选择已安装的JDK版本作为项目的SDK。
4. **配置Project Structure**
* 在“File” -> “Project Structure”中可以进一步配置项目的各个方面包括Modules、Paths、Dependencies等。
* 在Modules设置中可以设置项目的名称、主类、输出目录等。
* 在Dependencies中可以管理项目的依赖关系包括添加、删除或更新依赖。
5. **启动和运行Maven项目**
* 配置完成后可以通过IDEA的Maven工具窗口来管理Maven的生命周期阶段如clean、compile、package等。
* 选择需要执行的生命周期阶段,点击运行按钮即可。
* 如果需要运行项目的main函数可以在IDEA中找到main函数右键选择“Run”来运行。

33
index.html Normal file
View File

@@ -0,0 +1,33 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Feast</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<link rel="stylesheet" href="./vue.css" />
</head>
<body>
<div id="app"></div>
<script>
window.$docsify = {
name: '运行教程',
auto2top: true, //当路线改变时,滚动到屏幕的顶部。
coverpage: true, //激活封面功能。如果为true则会从中加载_coverpage.md。
executeScript: true, //执行页面上的脚本。只解析第一个脚本标记演示。如果存在Vue则默认开启。
loadSidebar: true, //_sidebar.md如果为真则从_sidebar.md文件加载边栏否则从指定的路径加载。
loadNavbar: false, //_navbar.md如果为真则从_navbar.md文件加载navbar ,否则从指定的路径加载。
mergeNavbar: true, //Navbar将在小屏幕上与侧边栏合并。
maxLevel: 4, //最大的内容表级别。
subMaxLevel: 3, //在自定义边栏中添加目录TOC
search: {
maxAge: 86400000, // 过期时间,单位毫秒,默认一天
noData: '找不到结果',
paths: 'auto',
placeholder: '搜索',
},
};
</script>
<script src="./docsify@4.js"></script>
</body>
</html>

20
jdk.md Normal file
View File

@@ -0,0 +1,20 @@
如果已经安装jdk配置好了环境变量请忽略此步骤
#### 下载JDK
- 开发环境 → 百度云盘
- [官网下载](https://www.oracle.com/technetwork/java/javase/downloads/index.html)
#### 安装步骤
1. 安装JDK 选择安装目录 安装过程中会出现两次 安装提示 。第一次是安装 jdk ,第二次是安装 jre
2. 安装到默认位置即可,也可以自定义安装路径。(记住安装路径,配置环境变量需要用)
3. 安装完JDK后配置环境变量 计算机→属性→高级系统设置→高级→环境变量
4. 系统变量→新建 `JAVA_HOME` 变量 。变量值填写jdk的安装路径
5. 系统变量→寻找 `Path` 变量→编辑,在变量值最后输入 `%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;`
6. 系统变量→新建 `CLASSPATH` 变量,变量值填写 `.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar`
7. 检验是否配置成功 运行cmd 输入 `java -version`

20
maven.md Normal file
View File

@@ -0,0 +1,20 @@
如果已经安装maven请忽略此步骤
#### 下载maven
- 开发环境 → 百度云盘
- [官网下载](https://maven.apache.org/)
#### 安装步骤
1.maven 是免安装软件,解压到指定文件夹就可以
![](https://img.yidaima.cn/0f4a0f7d7b1343559ab0821c59fa1939?imageView2/0/q/75|watermark/2/text/ZmVhc3Rjb2RpbmcuY24=/font/5a6L5L2T/fontsize/1600/fill/IzBERDBGNQ==/dissolve/100/gravity/Center/dx/10/dy/10)
2.配置环境变量首先配置MAVEN_HOME然后配置Path `%MAVEN_HOME%\bin\`
![](https://img.yidaima.cn/6c9f5dead8d349da8b30318ec125dd2d?imageView2/0/q/75|watermark/2/text/ZmVhc3Rjb2RpbmcuY24=/font/5a6L5L2T/fontsize/1600/fill/IzBERDBGNQ==/dissolve/100/gravity/Center/dx/10/dy/10)
![](https://img.yidaima.cn/c92bc7dcb44348a7a6f7aa9fc4007f04?imageView2/0/q/75|watermark/2/text/ZmVhc3Rjb2RpbmcuY24=/font/5a6L5L2T/fontsize/1600/fill/IzBERDBGNQ==/dissolve/100/gravity/Center/dx/10/dy/10)
3.检查是否配置成功mvn -v
![](https://img.yidaima.cn/fe116b8ac3994b56905f5476a00a41af?imageView2/0/q/75|watermark/2/text/ZmVhc3Rjb2RpbmcuY24=/font/5a6L5L2T/fontsize/1600/fill/IzBERDBGNQ==/dissolve/100/gravity/Center/dx/10/dy/10)

28
maven/eclipse.md Normal file
View File

@@ -0,0 +1,28 @@
#### eclipse导入Maven项目
1. 右键 -> import -> Maven -> Existing Maven Projects
2. 选择项路径,导入成功
#### 配置JDK以jdk1.8为例)
1. 右键项目 -> Propertis -> Java Build Path
2. Libraries 中是项目所有的依赖显示红叉的remove掉。
3. JRE System Library 和 Server Library 都remove掉
4. Add Library -> JRE System Library -> Alternate JRE 选择jdk1.8。如果没有,选择 Installed JRES...选择本机jdk1.8的安装路径需要先安装jdk1.8
5. 选完finish就ok了
#### 配置Java Compiler
1. 右键项目 -> Propertis -> Java Compiler
2. Compiler compliance level -> 1.8
#### 配置Tomcat
1. Window -> Preference -> Runtime Environments -> Add
2. 选择 Apache -> Apache Tomcat v8.0
3. 选择tomcat安装路径JRE选择1.8
4. eclipse配置tomcat就ok了还需要配置到项目中
5. 右键项目 -> Propertis -> Java Build Path -> Libraries
6. Add Library -> Server Runtime -> 选择刚才配置好的tomcat就ok了
#### 运行项目
1. 导入好数据库脚本
2. 修改项目中数据库连接的用户名和密码
3. 右键项目 -> Run As -> Run on Server 选择Tomcat8运行
4. 访问 `http://localhost:8080/项目名/`

21
maven/idea.md Normal file
View File

@@ -0,0 +1,21 @@
Maven项目导入IntelliJ IDEA并进行配置主要需要关注以下几个步骤
1. **导入Maven项目**
* 在IntelliJ IDEA的欢迎页面左侧选择“Open or Import”或者在IDEA工作区上方的菜单栏中选择“File”在下拉菜单中选择“Open”。
* 找到并选择需要导入的Maven项目的根目录包含pom.xml文件的目录然后点击“OK”或“Import”。
* 如果是第一次在IDEA中打开该项目IDEA会对其进行分析。如果检测到多个配置如Eclipse和Maven则会提示用户选择需要使用的配置。
2. **配置Maven**
* 在IDEA中可以通过“File” -> “Settings” -> “Build, Execution, Deployment” -> “Build Tools” -> “Maven”来查看和修改Maven的配置。
* 在这里你可以设置Maven的home directoryMaven安装目录、User settings file用户设置文件通常是settings.xml、以及Repositories仓库地址等。
* 如果需要提高依赖包的下载速度,可以考虑修改默认的远程仓库地址为阿里云的镜像或其他较快的镜像地址。
3. **配置JDKSDK**
* 对于Maven项目需要确保已经正确配置了JDK。在IDEA中可以通过“File” -> “Project Structure” -> “Project”来设置Project SDK。
* 选择已安装的JDK版本作为项目的SDK。
4. **配置Project Structure**
* 在“File” -> “Project Structure”中可以进一步配置项目的各个方面包括Modules、Paths、Dependencies等。
* 在Modules设置中可以设置项目的名称、主类、输出目录等。
* 在Dependencies中可以管理项目的依赖关系包括添加、删除或更新依赖。
5. **启动和运行Maven项目**
* 配置完成后可以通过IDEA的Maven工具窗口来管理Maven的生命周期阶段如clean、compile、package等。
* 选择需要执行的生命周期阶段,点击运行按钮即可。
* 如果需要运行项目的main函数可以在IDEA中找到main函数右键选择“Run”来运行。

18
mysql.md Normal file
View File

@@ -0,0 +1,18 @@
#### mysql 5.X 版本
驱动mysql-connector-java-5.1.37-bin.jar
```
#jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/数据库名?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai&useSSL=false&autoReconnect=true
jdbc.username=root
jdbc.password=123456
```
#### mysql 8.X 版本
驱动mysql-connector-java-8.0.11.jar
```
#jdbc.driver=com.mysql.cj.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/数据库名?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai&useSSL=false&autoReconnect=true
jdbc.username=root
jdbc.password=123456
```

22
navicat.md Normal file
View File

@@ -0,0 +1,22 @@
本教程以Navicat为例其他软件同理
#### 导入步骤
1. 打开Navicat新建连接输入本地mysql的用户名和密码
![](https://img.yidaima.cn/b1f2cd6706eb4175b7ed28c9025f35aa?imageView2/0/q/75|watermark/2/text/ZmVhc3Rjb2RpbmcuY24=/font/5a6L5L2T/fontsize/1600/fill/IzBERDBGNQ==/dissolve/100/gravity/Center/dx/10/dy/10)
2. 选择建立的连接,右键 -》新建数据库。数据库名是sql文件的名字字符集选utf8mb4
![](https://img.yidaima.cn/10586004b3b646f0a3a24973d0b5aec4?imageView2/0/q/75|watermark/2/text/ZmVhc3Rjb2RpbmcuY24=/font/5a6L5L2T/fontsize/1600/fill/IzBERDBGNQ==/dissolve/100/gravity/Center/dx/10/dy/10)
![](https://img.yidaima.cn/90fed170dae74d00bc6e002486ce8158?imageView2/0/q/75|watermark/2/text/ZmVhc3Rjb2RpbmcuY24=/font/5a6L5L2T/fontsize/1600/fill/IzBERDBGNQ==/dissolve/100/gravity/Center/dx/10/dy/10)
3. 打开数据库,右键 -》 运行SQL文件
![](https://img.yidaima.cn/30dcabfbd90b4a18bf9a417f5ac03a36?imageView2/0/q/75|watermark/2/text/ZmVhc3Rjb2RpbmcuY24=/font/5a6L5L2T/fontsize/1600/fill/IzBERDBGNQ==/dissolve/100/gravity/Center/dx/10/dy/10)
![](https://img.yidaima.cn/e0a5c6f7f6984310a98ca9b4ebf03020?imageView2/0/q/75|watermark/2/text/ZmVhc3Rjb2RpbmcuY24=/font/5a6L5L2T/fontsize/1600/fill/IzBERDBGNQ==/dissolve/100/gravity/Center/dx/10/dy/10)
4. 导入完成在左边空白处刷新就ok了
![](https://img.yidaima.cn/88e40580964f4b8f86ec40eec6393344?imageView2/0/q/75|watermark/2/text/ZmVhc3Rjb2RpbmcuY24=/font/5a6L5L2T/fontsize/1600/fill/IzBERDBGNQ==/dissolve/100/gravity/Center/dx/10/dy/10)

19
tomcat.md Normal file
View File

@@ -0,0 +1,19 @@
如果已经安装tomcat请忽略此步骤
#### 下载tomcat
下载免安装版本的zip格式
- 开发环境 → 百度云盘
- [官网下载](https://tomcat.apache.org/)
#### 安装步骤
1. 压缩包解压到一个非中文目录下即可完成安装
2. 进入到tomcat安装目录的bin目录下双击`startup.bat`即可启动tomcat
3. 启动好tomcat后在浏览器地址栏输入`http://localhost:8080/`显示如下表示toamcat启动成功。
![](https://img.yidaima.cn/692b940db08a4f3bb31529cd15be133f?imageView2/0/q/75|watermark/2/text/ZmVhc3Rjb2RpbmcuY24=/font/5a6L5L2T/fontsize/1600/fill/IzBERDBGNQ==/dissolve/100/gravity/Center/dx/10/dy/10)
4. 测试完记得关闭tomcat,否则会端口占用。
5. 进入到tomcat安装目录的bin目录下双击`shutdown.bat`即可关闭tomcat

868
vue.css Normal file
View File

@@ -0,0 +1,868 @@
@import url("https://fonts.googleapis.com/css?family=Roboto+Mono|Source+Sans+Pro:300,400,600");
* {
-webkit-font-smoothing: antialiased;
-webkit-overflow-scrolling: touch;
-webkit-tap-highlight-color: rgba(0,0,0,0);
-webkit-text-size-adjust: none;
-webkit-touch-callout: none;
box-sizing: border-box;
}
body:not(.ready) {
overflow: hidden;
}
body:not(.ready) [data-cloak],
body:not(.ready) .app-nav,
body:not(.ready) > nav {
display: none;
}
div#app {
font-size: 30px;
font-weight: lighter;
margin: 40vh auto;
text-align: center;
}
div#app:empty::before {
content: 'Loading...';
}
img.emoji {
height: 1.2em;
vertical-align: middle;
}
span.emoji {
font-family: "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
font-size: 1.2em;
vertical-align: middle;
}
.progress {
background-color: #42b983;
background-color: var(--theme-color, #42b983);
height: 2px;
left: 0px;
position: fixed;
right: 0px;
top: 0px;
transition: width 0.2s, opacity 0.4s;
width: 0%;
z-index: 999999;
}
.search a:hover {
color: #42b983;
color: var(--theme-color, #42b983);
}
.search .search-keyword {
color: #42b983;
color: var(--theme-color, #42b983);
font-style: normal;
font-weight: bold;
}
html,
body {
height: 100%;
}
body {
-moz-osx-font-smoothing: grayscale;
-webkit-font-smoothing: antialiased;
color: #34495e;
font-family: 'Source Sans Pro', 'Helvetica Neue', Arial, sans-serif;
font-size: 15px;
letter-spacing: 0;
margin: 0;
overflow-x: hidden;
}
img {
max-width: 100%;
}
a[disabled] {
cursor: not-allowed;
opacity: 0.6;
}
kbd {
border: solid 1px #ccc;
border-radius: 3px;
display: inline-block;
font-size: 12px !important;
line-height: 12px;
margin-bottom: 3px;
padding: 3px 5px;
vertical-align: middle;
}
li input[type='checkbox'] {
margin: 0 0.2em 0.25em 0;
vertical-align: middle;
}
.app-nav {
margin: 25px 60px 0 0;
position: absolute;
right: 0;
text-align: right;
z-index: 10;
/* navbar dropdown */
}
.app-nav.no-badge {
margin-right: 25px;
}
.app-nav p {
margin: 0;
}
.app-nav > a {
margin: 0 1rem;
padding: 5px 0;
}
.app-nav ul,
.app-nav li {
display: inline-block;
list-style: none;
margin: 0;
}
.app-nav a {
color: inherit;
font-size: 16px;
text-decoration: none;
transition: color 0.3s;
}
.app-nav a:hover {
color: #42b983;
color: var(--theme-color, #42b983);
}
.app-nav a.active {
border-bottom: 2px solid #42b983;
border-bottom: 2px solid var(--theme-color, #42b983);
color: #42b983;
color: var(--theme-color, #42b983);
}
.app-nav li {
display: inline-block;
margin: 0 1rem;
padding: 5px 0;
position: relative;
cursor: pointer;
}
.app-nav li ul {
background-color: #fff;
border: 1px solid #ddd;
border-bottom-color: #ccc;
border-radius: 4px;
box-sizing: border-box;
display: none;
max-height: calc(100vh - 61px);
overflow-y: auto;
padding: 10px 0;
position: absolute;
right: -15px;
text-align: left;
top: 100%;
white-space: nowrap;
}
.app-nav li ul li {
display: block;
font-size: 14px;
line-height: 1rem;
margin: 0;
margin: 8px 14px;
white-space: nowrap;
}
.app-nav li ul a {
display: block;
font-size: inherit;
margin: 0;
padding: 0;
}
.app-nav li ul a.active {
border-bottom: 0;
}
.app-nav li:hover ul {
display: block;
}
.github-corner {
border-bottom: 0;
position: fixed;
right: 0;
text-decoration: none;
top: 0;
z-index: 1;
}
.github-corner:hover .octo-arm {
animation: octocat-wave 560ms ease-in-out;
}
.github-corner svg {
color: #fff;
fill: #42b983;
fill: var(--theme-color, #42b983);
height: 80px;
width: 80px;
}
main {
display: block;
position: relative;
width: 100vw;
height: 100%;
z-index: 0;
}
main.hidden {
display: none;
}
.anchor {
display: inline-block;
text-decoration: none;
transition: all 0.3s;
}
.anchor span {
color: #34495e;
}
.anchor:hover {
text-decoration: underline;
}
.sidebar {
border-right: 1px solid rgba(0,0,0,0.07);
overflow-y: auto;
padding: 40px 0 0;
position: absolute;
top: 0;
bottom: 0;
left: 0;
transition: transform 250ms ease-out;
width: 300px;
z-index: 20;
}
.sidebar > h1 {
margin: 0 auto 1rem;
font-size: 1.5rem;
font-weight: 300;
text-align: center;
}
.sidebar > h1 a {
color: inherit;
text-decoration: none;
}
.sidebar > h1 .app-nav {
display: block;
position: static;
}
.sidebar .sidebar-nav {
line-height: 2em;
padding-bottom: 40px;
}
.sidebar li.collapse .app-sub-sidebar {
display: none;
}
.sidebar ul {
margin: 0 0 0 15px;
padding: 0;
}
.sidebar li > p {
font-weight: 700;
margin: 0;
}
.sidebar ul,
.sidebar ul li {
list-style: none;
}
.sidebar ul li a {
border-bottom: none;
display: block;
}
.sidebar ul li ul {
padding-left: 20px;
}
.sidebar::-webkit-scrollbar {
width: 4px;
}
.sidebar::-webkit-scrollbar-thumb {
background: transparent;
border-radius: 4px;
}
.sidebar:hover::-webkit-scrollbar-thumb {
background: rgba(136,136,136,0.4);
}
.sidebar:hover::-webkit-scrollbar-track {
background: rgba(136,136,136,0.1);
}
.sidebar-toggle {
background-color: transparent;
background-color: rgba(255,255,255,0.8);
border: 0;
outline: none;
padding: 10px;
position: absolute;
bottom: 0;
left: 0;
text-align: center;
transition: opacity 0.3s;
width: 284px;
z-index: 30;
cursor: pointer;
}
.sidebar-toggle:hover .sidebar-toggle-button {
opacity: 0.4;
}
.sidebar-toggle span {
background-color: #42b983;
background-color: var(--theme-color, #42b983);
display: block;
margin-bottom: 4px;
width: 16px;
height: 2px;
}
body.sticky .sidebar,
body.sticky .sidebar-toggle {
position: fixed;
}
.content {
padding-top: 60px;
position: absolute;
top: 0;
right: 0;
bottom: 0;
left: 300px;
transition: left 250ms ease;
}
.markdown-section {
margin: 0 auto;
max-width: 80%;
padding: 30px 15px 40px 15px;
position: relative;
}
.markdown-section > * {
box-sizing: border-box;
font-size: inherit;
}
.markdown-section > :first-child {
margin-top: 0 !important;
}
.markdown-section hr {
border: none;
border-bottom: 1px solid #eee;
margin: 2em 0;
}
.markdown-section iframe {
border: 1px solid #eee;
/* fix horizontal overflow on iOS Safari */
width: 1px;
min-width: 100%;
}
.markdown-section table {
border-collapse: collapse;
border-spacing: 0;
display: block;
margin-bottom: 1rem;
overflow: auto;
width: 100%;
}
.markdown-section th {
border: 1px solid #ddd;
font-weight: bold;
padding: 6px 13px;
}
.markdown-section td {
border: 1px solid #ddd;
padding: 6px 13px;
}
.markdown-section tr {
border-top: 1px solid #ccc;
}
.markdown-section tr:nth-child(2n) {
background-color: #f8f8f8;
}
.markdown-section p.tip {
background-color: #f8f8f8;
border-bottom-right-radius: 2px;
border-left: 4px solid #f66;
border-top-right-radius: 2px;
margin: 2em 0;
padding: 12px 24px 12px 30px;
position: relative;
}
.markdown-section p.tip:before {
background-color: #f66;
border-radius: 100%;
color: #fff;
content: '!';
font-family: 'Dosis', 'Source Sans Pro', 'Helvetica Neue', Arial, sans-serif;
font-size: 14px;
font-weight: bold;
left: -12px;
line-height: 20px;
position: absolute;
height: 20px;
width: 20px;
text-align: center;
top: 14px;
}
.markdown-section p.tip code {
background-color: #efefef;
}
.markdown-section p.tip em {
color: #34495e;
}
.markdown-section p.warn {
background: rgba(66,185,131,0.1);
border-radius: 2px;
padding: 1rem;
}
.markdown-section ul.task-list > li {
list-style-type: none;
}
body.close .sidebar {
transform: translateX(-300px);
}
body.close .sidebar-toggle {
width: auto;
}
body.close .content {
left: 0;
}
@media print {
.github-corner,
.sidebar-toggle,
.sidebar,
.app-nav {
display: none;
}
}
@media screen and (max-width: 768px) {
.github-corner,
.sidebar-toggle,
.sidebar {
position: fixed;
}
.app-nav {
margin-top: 16px;
}
.app-nav li ul {
top: 30px;
}
main {
height: auto;
min-height: 100vh;
overflow-x: hidden;
}
.sidebar {
left: -300px;
transition: transform 250ms ease-out;
}
.content {
left: 0;
max-width: 100vw;
position: static;
padding-top: 20px;
transition: transform 250ms ease;
}
.app-nav,
.github-corner {
transition: transform 250ms ease-out;
}
.sidebar-toggle {
background-color: transparent;
width: auto;
padding: 30px 30px 10px 10px;
}
body.close .sidebar {
transform: translateX(300px);
}
body.close .sidebar-toggle {
background-color: rgba(255,255,255,0.8);
transition: 1s background-color;
width: 284px;
padding: 10px;
}
body.close .content {
transform: translateX(300px);
}
body.close .app-nav,
body.close .github-corner {
display: none;
}
.github-corner:hover .octo-arm {
animation: none;
}
.github-corner .octo-arm {
animation: octocat-wave 560ms ease-in-out;
}
}
@keyframes octocat-wave {
0%, 100% {
transform: rotate(0);
}
20%, 60% {
transform: rotate(-25deg);
}
40%, 80% {
transform: rotate(10deg);
}
}
section.cover {
position: relative;
align-items: center;
background-position: center center;
background-repeat: no-repeat;
background-size: cover;
min-height: 100vh;
width: 100%;
display: none;
}
section.cover.show {
display: flex;
}
section.cover.has-mask .mask {
background-color: #fff;
opacity: 0.8;
position: absolute;
top: 0;
bottom: 0;
width: 100%;
}
section.cover .cover-main {
flex: 1;
margin: 0 16px;
text-align: center;
position: relative;
}
section.cover a {
color: inherit;
text-decoration: none;
}
section.cover a:hover {
text-decoration: none;
}
section.cover p {
line-height: 1.5rem;
margin: 1em 0;
}
section.cover h1 {
color: inherit;
font-size: 2.5rem;
font-weight: 300;
margin: 0.625rem 0 2.5rem;
position: relative;
text-align: center;
}
section.cover h1 a {
display: block;
}
section.cover h1 small {
bottom: -0.4375rem;
font-size: 1rem;
position: absolute;
}
section.cover blockquote {
font-size: 1.5rem;
text-align: center;
}
section.cover ul {
line-height: 1.8;
list-style-type: none;
margin: 1em auto;
max-width: 500px;
padding: 0;
}
section.cover .cover-main > p:last-child a {
border-color: #42b983;
border-color: var(--theme-color, #42b983);
border-radius: 2rem;
border-style: solid;
border-width: 1px;
box-sizing: border-box;
color: #42b983;
color: var(--theme-color, #42b983);
display: inline-block;
font-size: 1.05rem;
letter-spacing: 0.1rem;
margin: 0.5rem 1rem;
padding: 0.75em 2rem;
text-decoration: none;
transition: all 0.15s ease;
}
section.cover .cover-main > p:last-child a:last-child {
background-color: #42b983;
background-color: var(--theme-color, #42b983);
color: #fff;
}
section.cover .cover-main > p:last-child a:last-child:hover {
color: inherit;
opacity: 0.8;
}
section.cover .cover-main > p:last-child a:hover {
color: inherit;
}
section.cover blockquote > p > a {
border-bottom: 2px solid #42b983;
border-bottom: 2px solid var(--theme-color, #42b983);
transition: color 0.3s;
}
section.cover blockquote > p > a:hover {
color: #42b983;
color: var(--theme-color, #42b983);
}
body {
background-color: #fff;
}
/* sidebar */
.sidebar {
background-color: #fff;
color: #364149;
}
.sidebar li {
margin: 6px 0 6px 0;
}
.sidebar ul li a {
color: #505d6b;
font-size: 14px;
font-weight: normal;
overflow: hidden;
text-decoration: none;
text-overflow: ellipsis;
white-space: nowrap;
}
.sidebar ul li a:hover {
text-decoration: underline;
}
.sidebar ul li ul {
padding: 0;
}
.sidebar ul li.active > a {
border-right: 2px solid;
color: #42b983;
color: var(--theme-color, #42b983);
font-weight: 600;
}
.app-sub-sidebar li::before {
content: '-';
padding-right: 4px;
float: left;
}
/* markdown content found on pages */
.markdown-section h1,
.markdown-section h2,
.markdown-section h3,
.markdown-section h4,
.markdown-section strong {
color: #2c3e50;
font-weight: 600;
}
.markdown-section a {
color: #42b983;
color: var(--theme-color, #42b983);
font-weight: 600;
}
.markdown-section h1 {
font-size: 2rem;
margin: 0 0 1rem;
}
.markdown-section h2 {
font-size: 1.75rem;
margin: 45px 0 0.8rem;
}
.markdown-section h3 {
font-size: 1.5rem;
margin: 40px 0 0.6rem;
}
.markdown-section h4 {
font-size: 1.25rem;
}
.markdown-section h5 {
font-size: 1rem;
}
.markdown-section h6 {
color: #777;
font-size: 1rem;
}
.markdown-section figure,
.markdown-section p {
margin: 1.2em 0;
}
.markdown-section p,
.markdown-section ul,
.markdown-section ol {
line-height: 1.6rem;
word-spacing: 0.05rem;
}
.markdown-section ul,
.markdown-section ol {
padding-left: 1.5rem;
}
.markdown-section blockquote {
border-left: 4px solid #42b983;
border-left: 4px solid var(--theme-color, #42b983);
color: #858585;
margin: 2em 0;
padding-left: 20px;
}
.markdown-section blockquote p {
font-weight: 600;
margin-left: 0;
}
.markdown-section iframe {
margin: 1em 0;
}
.markdown-section em {
color: #7f8c8d;
}
.markdown-section code,
.markdown-section pre,
.markdown-section output::after {
font-family: 'Roboto Mono', Monaco, courier, monospace;
}
.markdown-section code,
.markdown-section pre {
background-color: #f8f8f8;
}
.markdown-section pre,
.markdown-section output {
margin: 1.2em 0;
position: relative;
}
.markdown-section pre > code,
.markdown-section output {
border-radius: 2px;
display: block;
}
.markdown-section pre > code,
.markdown-section output::after {
-moz-osx-font-smoothing: initial;
-webkit-font-smoothing: initial;
}
.markdown-section code {
border-radius: 2px;
color: #e96900;
margin: 0 2px;
padding: 3px 5px;
white-space: pre-wrap;
}
.markdown-section > :not(h1):not(h2):not(h3):not(h4):not(h5):not(h6) code {
font-size: 0.8rem;
}
.markdown-section pre {
padding: 0 1.4rem;
line-height: 1.5rem;
overflow: auto;
word-wrap: normal;
}
.markdown-section pre > code {
color: #525252;
font-size: 0.8rem;
padding: 2.2em 5px;
line-height: inherit;
margin: 0 2px;
max-width: inherit;
overflow: inherit;
white-space: inherit;
}
.markdown-section output {
padding: 1.7rem 1.4rem;
border: 1px dotted #ccc;
}
.markdown-section output > :first-child {
margin-top: 0;
}
.markdown-section output > :last-child {
margin-bottom: 0;
}
.markdown-section code::after,
.markdown-section code::before,
.markdown-section output::after,
.markdown-section output::before {
letter-spacing: 0.05rem;
}
.markdown-section pre::after,
.markdown-section output::after {
color: #ccc;
font-size: 0.6rem;
font-weight: 600;
height: 15px;
line-height: 15px;
padding: 5px 10px 0;
position: absolute;
right: 0;
text-align: right;
top: 0;
}
.markdown-section pre::after,
.markdown-section output::after {
content: attr(data-lang);
}
/* code highlight */
.token.comment,
.token.prolog,
.token.doctype,
.token.cdata {
color: #8e908c;
}
.token.namespace {
opacity: 0.7;
}
.token.boolean,
.token.number {
color: #c76b29;
}
.token.punctuation {
color: #525252;
}
.token.property {
color: #c08b30;
}
.token.tag {
color: #2973b7;
}
.token.string {
color: #42b983;
color: var(--theme-color, #42b983);
}
.token.selector {
color: #6679cc;
}
.token.attr-name {
color: #2973b7;
}
.token.entity,
.token.url,
.language-css .token.string,
.style .token.string {
color: #22a2c9;
}
.token.attr-value,
.token.control,
.token.directive,
.token.unit {
color: #42b983;
color: var(--theme-color, #42b983);
}
.token.keyword,
.token.function {
color: #e96900;
}
.token.statement,
.token.regex,
.token.atrule {
color: #22a2c9;
}
.token.placeholder,
.token.variable {
color: #3d8fd1;
}
.token.deleted {
text-decoration: line-through;
}
.token.inserted {
border-bottom: 1px dotted #202746;
text-decoration: none;
}
.token.italic {
font-style: italic;
}
.token.important,
.token.bold {
font-weight: bold;
}
.token.important {
color: #c94922;
}
.token.entity {
cursor: help;
}
code .token {
-moz-osx-font-smoothing: initial;
-webkit-font-smoothing: initial;
min-height: 1.5rem;
position: relative;
left: auto;
}

63
vue.md Normal file
View File

@@ -0,0 +1,63 @@
要在VSCode中打开并启动现有的Vue项目你需要确保已经安装了Node.js和Vue CLI并且你的项目已经包含了必要的依赖项。以下是详细的步骤
**一、安装Node.js和Vue CLI**
1. 确保你的系统上已经安装了Node.js。可以通过运行`node -v``npm -v`来检查Node.js和npm是否安装成功并查看它们的版本号。
2. 安装Vue CLI。在命令行中运行以下命令来全局安装Vue CLI
```bash
npm install -g @vue/cli
```
安装完成后,你可以通过运行`vue --version`来检查Vue CLI是否安装成功。
**二、打开VSCode并导入Vue项目**
1. 打开VSCode。
2. 在VSCode中选择“文件”菜单中的“打开文件夹”或者使用快捷键`Ctrl+K Ctrl+O`在Mac上是`Cmd+K Cmd+O`)。
3. 在弹出的文件选择器中导航到你的Vue项目的根目录并选择它。点击“打开”按钮VSCode将加载你的项目。
**三、安装项目依赖**
如果项目的依赖项还没有安装,或者`node_modules`文件夹缺失你需要在VSCode的集成终端中运行以下命令来安装它们
```bash
npm install
```
或者如果你的项目使用的是yarn作为包管理器则运行
```bash
yarn install
```
**四、启动Vue项目**
安装完依赖后你可以在终端中运行以下命令来启动你的Vue项目
```bash
npm run serve
```
或者如果使用yarn
```bash
yarn serve
```
Vue CLI将启动一个开发服务器并在终端中显示本地开发服务器的地址。通常它会在`http://localhost:8080/`上运行。
**五、在浏览器中查看Vue应用**
打开你的浏览器并输入终端中提供的本地开发服务器地址。你应该能看到你的Vue应用正在运行。
**注意事项**
- 确保你的Vue项目中的`package.json`文件包含了正确的脚本命令,特别是`serve`脚本,它用于启动开发服务器。
- 如果你的Vue项目使用了特定的编辑器配置或插件你可能还需要在VSCode中安装这些插件或导入配置。
- 如果你的Vue项目依赖于全局安装的Vue CLI插件或其他工具确保这些工具已经在你的系统中安装并可用。
遵循以上步骤你应该能够在VSCode中成功打开并启动现有的Vue项目。

28
web/eclipse.md Normal file
View File

@@ -0,0 +1,28 @@
#### eclipse导入Web项目
1. 右键 -> import -> General -> Existing Projects inot Workspace
2. 选择项路径,导入成功
#### 配置JDK以jdk1.8为例)
1. 右键项目 -> Propertis -> Java Build Path
2. Libraries 中是项目所有的依赖显示红叉的remove掉。
3. JRE System Library 和 Server Library 都remove掉
4. Add Library -> JRE System Library -> Alternate JRE 选择jdk1.8。如果没有,选择 Installed JRES...选择本机jdk1.8的安装路径需要先安装jdk1.8
5. 选完finish就ok了
#### 配置Java Compiler
1. 右键项目 -> Propertis -> Java Compiler
2. Compiler compliance level -> 1.8
#### 配置Tomcat
1. Window -> Preference -> Runtime Environments -> Add
2. 选择 Apache -> Apache Tomcat v8.0
3. 选择tomcat安装路径JRE选择1.8
4. eclipse配置tomcat就ok了还需要配置到项目中
5. 右键项目 -> Propertis -> Java Build Path -> Libraries
6. Add Library -> Server Runtime -> 选择刚才配置好的tomcat就ok了
#### 运行项目
1. 导入好数据库脚本
2. 修改项目中数据库连接的用户名和密码
3. 右键项目 -> Run As -> Run on Server 选择Tomcat8运行
4. 访问 `http://localhost:8080/项目名/`

109
web/idea.md Normal file
View File

@@ -0,0 +1,109 @@
#### 导入项目
点击左上角的File→New→Project from Existing Sources
![](https://img.yidaima.cn/199e19356dcb4c7dbe606efa697a2b82)
打开项目解压后的文件夹路径并点击“OK”。
![](https://img.yidaima.cn/55cb22ae4450497ba6aae1ea1c6e6fa1)
先勾选Import project from external model后选择Eclipse后点击Next。
![](https://img.yidaima.cn/013a18f6fa99475db625da90be8129a4)
无需设置直接点击Next。
![](https://img.yidaima.cn/d5796d0916b544be9ac247174f47fdb9)
继续点击Next。
![](https://img.yidaima.cn/214c51b6f19d426a9b984c04fa809404)
继续点击Next。
![](https://img.yidaima.cn/2b2c1af2aa90470d9aa7437ad47123bf)
先暂时选择JDK 1.8版本并在JDK home path处找到你存放JDK的路径位置一般此处默认配置好了无需操作之后点击Finish。可能有些导入的Eclipse项目所用Java版本不一之后设置会解决此问题。
![](https://img.yidaima.cn/972eb92c18ca4827ac65b0957731bf87)
遇到上述所说问题本Eclipse项目所用Java版本为1.6而之前配置的是1.8版本所以提示找不到对应的jdks先点击ok进入等待项目导入。
![](https://img.yidaima.cn/607c5f5538214b36b886661ef9187867)
现在我们来设置JDK版本点击左上角的File→Project Structure。
![](https://img.yidaima.cn/ea853dd39fae49c4b7bd0b4de401630b)
在左侧栏选择Project后在右侧的Project SDK选择Java版本此处我使用1.8兼容1.6下方的Project language level对应选择8之后点击ok。
![](https://img.yidaima.cn/58f86e5817a2429aa026300d54685fbc)
接着点击左上角File→Settings。
![](https://img.yidaima.cn/ce5325eff90a443f916363ee97a0f6bb)
在左上方搜索框内输入“compiler”也可在左侧栏中直接找到Java compiler选中Java compiler点击Target bytecode version右侧的“+”号之后选中tmanager你的项目名后点击“ok”。
![](https://img.yidaima.cn/2995d7bb62fc4f8a81e4665515075430)
之后在Target bytecode version下拉菜单中选择版本“8”至此项目基本导入完毕并与IDEA编译版本一致接下来导入依赖。
![](https://img.yidaima.cn/c274aeddde0a41b0a55e963dfc44d45b)
#### 导入依赖
点击左上角File→Project Structure。
![](https://img.yidaima.cn/981546322555421c8f2cf7ef7afd3b36)
选中左侧栏Modules选中tmanager你的项目名在Module SDK处选择1.8版本并把右侧红名的依赖全部右键→remove。
![](https://img.yidaima.cn/70412e11f9554771b9871c3cf97103a4)
然后点击如图所示的“+”号点击JARs or directories。
![](https://img.yidaima.cn/d8bac869db224b4f840f74770c7ceec0)
找到你的lib包所在位置并选择它然后点击ok。如果是Maven管理的项目此步骤可跳过
![](https://img.yidaima.cn/a26c6a7def314f0696026bdb39893ff5)
如果你的项目是web项目则还需要手动定位web.xml。同样的窗口在左侧栏选择Facets→“+”→Web。
![](https://img.yidaima.cn/59e710685ec940e1891479ada6c59c1f)
选中tmanager你的项目名后点击ok。
![](https://img.yidaima.cn/09f780cba8f740e0a3c12c9beee5d074)
之后选中如图所示的路径点击右侧图书按钮在中间框中点击“…”来编辑web.xml的路径。
![](https://img.yidaima.cn/5be86f63907243fc9745211e04705020)
因为IDEA的规范与Eclipse不一web.xml的存放位置不一所以此处需要手动找到导入的Eclipse项目的web.xml否则IDEA识别不到。之后点击ok保存。接着点击右下角的“Create Artifact”。
![](https://img.yidaima.cn/d3511e57ef35449286de365d1bc38f23)
此时界面自动跳转到Artifacts点击右下角的Fix。
![](https://img.yidaima.cn/1483c3194afa42179707127f719cd4b9)
选择Add all missing dependencies of tmanager' to the artifact。之后点击ok保存当前设置。
![](https://img.yidaima.cn/6878ddc25b0349efa40d9b55a1c4a02a)
#### 配置服务器
点击左上角的File→Settings。
![](https://img.yidaima.cn/c7abcd6c3a1b4e0daa9a857f4ed0c865)
在左侧搜索框中输入“Servers”找到Application servers后点击右侧如图所示的“+”号点击Tomcat server。
![](https://img.yidaima.cn/ce438c0e00b14e769b7343bcc9bd9e8a)
之后依次点击如图所示按钮选择你tomcat的存放路径后点击两次ok。
![](https://img.yidaima.cn/1616e664b9ea48f291ccf6e765610bdb)
接着点击右上角的“Add configuration”。
![](https://img.yidaima.cn/aa9daf7d1e2f486baf121d0af0eb5015)
点击左上角“+”选择Tomcat Server→Local右侧Name处可任意命名。
![](https://img.yidaima.cn/1b6b1dfbb9c945abbdfb29626d49d102)
之后点击右下角Fix。
![](https://img.yidaima.cn/2abc87cf1c234b2c9bf0fccce0cc5f26)
点击ok保存设置。
![](https://img.yidaima.cn/ecdde86bd00d40a0a99d26e8afb6c493)
然后打开左上角File→Project Structure。
![](https://img.yidaima.cn/04665a3873d7491a897f122e2296f744)
如图所示选择Modules→tmanager你的项目名→“+”。
![](https://img.yidaima.cn/748d4bf30ec545fba1ad20121f5a5b0e)
点击Library。
![](https://img.yidaima.cn/01a323d7d45b443bad81117dc42c874f)
选择之前配置好的tomcat版本然后点击Add selected点击ok保存。
![](https://img.yidaima.cn/6d704d3953a74513a8d91b5b4f267ddc)
#### 运行
运行成功
![](https://img.yidaima.cn/9cf7523841ea437e8581e7f3175bfa51)