初始提交: WeCom Middleware项目基础结构

包含以下内容:
1. Spring Boot后端项目结构
2. Vue.js前端项目结构
3. Docker Compose部署配置
4. MySQL数据库初始化脚本
5. Redis缓存配置
6. Nginx反向代理配置
7. 完整的项目文档

技术栈:
- 后端: Spring Boot 2.7.18 + Java 11 + MyBatis Plus
- 前端: Vue.js 3 + TypeScript + Element Plus
- 数据库: MySQL 8.0 + Redis 7
- 部署: Docker Compose + Nginx

已部署服务:
- 后端API: http://localhost:18080
- 前端界面: http://localhost:13000
- 数据库管理: http://localhost:18081
- MySQL: localhost:13306
- Redis: localhost:16379
This commit is contained in:
2026-03-09 12:39:09 +08:00
commit 034d425b21
52 changed files with 14816 additions and 0 deletions

13
frontend/index.html Normal file
View File

@@ -0,0 +1,13 @@
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8" />
<link rel="icon" type="image/svg+xml" href="/vite.svg" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>WeCom Middleware - 企业微信与OpenClaw双向通信中间件</title>
</head>
<body>
<div id="app"></div>
<script type="module" src="/src/main.ts"></script>
</body>
</html>

3900
frontend/package-lock.json generated Normal file

File diff suppressed because it is too large Load Diff

32
frontend/package.json Normal file
View File

@@ -0,0 +1,32 @@
{
"name": "wecom-middleware-frontend",
"version": "1.0.0",
"description": "WeCom Middleware 前端管理界面",
"type": "module",
"scripts": {
"dev": "vite",
"build": "vue-tsc && vite build",
"preview": "vite preview",
"lint": "eslint . --ext .vue,.js,.jsx,.cjs,.mjs,.ts,.tsx,.cts,.mts --fix --ignore-path .gitignore"
},
"dependencies": {
"vue": "^3.4.21",
"vue-router": "^4.3.0",
"pinia": "^2.1.7",
"axios": "^1.6.7",
"element-plus": "^2.5.4",
"@element-plus/icons-vue": "^2.3.1"
},
"devDependencies": {
"@vitejs/plugin-vue": "^5.0.4",
"@vue/eslint-config-prettier": "^9.0.0",
"@vue/eslint-config-typescript": "^12.0.0",
"@vue/tsconfig": "^0.5.0",
"eslint": "^8.56.0",
"eslint-plugin-vue": "^9.19.2",
"prettier": "^3.1.1",
"typescript": "~5.3.3",
"vite": "^5.0.12",
"vue-tsc": "^1.8.27"
}
}

37
frontend/src/App.vue Normal file
View File

@@ -0,0 +1,37 @@
<template>
<div class="app">
<h1>WeCom Middleware 管理界面</h1>
<p>企业微信与OpenClaw双向通信中间件</p>
<div class="status">
<p>后端状态: <span class="status-up">运行中</span></p>
<p>数据库: <span class="status-up">已连接</span></p>
<p>Redis: <span class="status-up">已连接</span></p>
</div>
</div>
</template>
<script setup lang="ts">
// 简单的Vue组件
</script>
<style>
.app {
font-family: Arial, sans-serif;
max-width: 800px;
margin: 0 auto;
padding: 20px;
}
h1 {
color: #333;
}
.status {
margin-top: 20px;
padding: 15px;
background: #f5f5f5;
border-radius: 5px;
}
.status-up {
color: green;
font-weight: bold;
}
</style>

4
frontend/src/main.ts Normal file
View File

@@ -0,0 +1,4 @@
import { createApp } from 'vue'
import App from './App.vue'
createApp(App).mount('#app')

9
frontend/vite.config.ts Normal file
View File

@@ -0,0 +1,9 @@
import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
export default defineConfig({
plugins: [vue()],
build: {
outDir: 'dist'
}
})