# 旅游宣传管理系统 基于 SpringBoot + Vue3 的全栈旅游宣传管理平台,包含服务端、管理后台和用户前端三个子系统。 ## 项目结构 ``` ├── tourism-server/ # 服务端 (SpringBoot 3.4 + JDK 21) │ ├── src/main/java/com/tourism/ │ │ ├── common/ # 公共模块 (配置/异常/工具/枚举) │ │ ├── user/ # 用户模块 │ │ ├── attraction/ # 景点模块 │ │ ├── product/ # 商品模块 │ │ ├── order/ # 订单模块 │ │ ├── travel/ # 游记模块 │ │ ├── admin/ # 管理端模块 │ │ ├── payment/ # 支付模块 │ │ └── file/ # 文件模块 │ └── pom.xml ├── tourism-admin/ # 管理后台 (Vue3 + TypeScript + Element Plus) │ └── src/ │ ├── views/ # 页面 (系统管理/用户/景点/商品/订单/游记/内容/统计) │ ├── api/ # 接口封装 │ ├── router/ # 路由 │ └── stores/ # 状态管理 ├── tourism-web/ # 用户端 (Vue3 + TypeScript + Element Plus) │ └── src/ │ ├── views/ # 页面 (首页/景点/商城/游记/订单/用户中心) │ ├── api/ # 接口封装 │ ├── router/ # 路由 │ └── stores/ # 状态管理 ├── tourism_platform.sql # 数据库建表脚本 └── design-system/ # 设计系统文档 ``` ## 技术栈 ### 后端 - **框架**: SpringBoot 3.4.x - **语言**: Java 21 - **ORM**: MyBatis-Plus 3.5.x - **安全**: Sa-Token 1.39 - **数据库**: MySQL 8.0 - **文件存储**: RustFS - **支付**: 支付宝沙箱 ### 前端 - **框架**: Vue 3.5 + TypeScript 5.7 - **构建**: Vite 6 - **UI**: Element Plus 2.9 - **状态管理**: Pinia - **路由**: Vue Router 4 ## 快速开始 ### 1. 数据库 ```bash # 执行建表脚本 mysql -u root -p < tourism_platform.sql ``` ### 2. 启动服务端 ```bash cd tourism-server mvn install -DskipTests mvn spring-boot:run ``` 服务地址:http://localhost:8080 ### 3. 启动管理后台 ```bash cd tourism-admin npm install npm run dev ``` 访问地址:http://localhost:3000 ### 4. 启动用户端 ```bash cd tourism-web npm install npm run dev ``` 访问地址:http://localhost:3001 ## 功能模块 | 模块 | 用户端 | 管理端 | |------|--------|--------| | 景点展示 | 浏览/搜索/详情/预订 | CRUD/分类/门票设置 | | 纪念品商城 | 浏览/搜索/购物车/下单 | CRUD/分类/库存管理 | | 游记分享 | 发布/浏览/评论/点赞 | 审核/管理 | | 订单管理 | 景点订单/商品订单 | 订单处理/退款审核 | | 用户中心 | 登录注册/资料/地址 | 用户管理 | | 数据统计 | - | 销售报表/用户分析 | | 内容管理 | - | 轮播图/公告/操作日志 | ## 设计系统 - **管理后台**: 数据密集仪表盘风格,紫色主题 (#7C3AED),Fira Code/Sans 字体 - **用户端**: 动画驱动风格,天蓝主题 (#0EA5E9),Noto Sans SC 字体 ## License MIT