---
name: 调整组件结构计划
overview: 将 SinglePageContainer 从 App.vue 迁移到 pages/index/index.vue,并清理重复的商圈卡片内容
todos:
- id: backup-files
content: 备份 App.vue 和 pages/index/index.vue 文件
status: completed
- id: modify-index-page
content: 在 pages/index/index.vue 中引入并使用 SinglePageContainer 组件
status: completed
dependencies:
- backup-files
- id: clean-index-content
content: 清理 pages/index/index.vue 中的商圈卡片和功能入口等重复内容
status: completed
dependencies:
- modify-index-page
- id: modify-app-vue
content: 移除 App.vue 中的 SinglePageContainer 组件和相关导入
status: completed
dependencies:
- clean-index-content
- id: test-functionality
content: 测试滑动容器功能和商圈场景切换是否正常
status: completed
dependencies:
- modify-app-vue
- id: verify-global-style
content: 验证横屏提示等全局功能是否仍然有效
status: completed
dependencies:
- test-functionality
---
## 产品概述
调整 uniapp vue3 项目的组件结构,优化页面层级关系,消除重复内容。
## 核心功能
- 将 SinglePageContainer 组件从 App.vue 迁移到 pages/index/index.vue
- 清理 pages/index/index.vue 中重复的商圈卡片内容
- 确保应用整体结构和滑动体验保持一致
## 技术栈
- 框架:uniapp + Vue 3
- 构建工具:Vite
- 状态管理:Pinia
- 路由:uniapp 内置路由
## 架构设计
### 当前问题分析
1. **组件层级不合理**:SinglePageContainer 在 App.vue 中,导致所有页面都包含滑动容器
2. **内容重复**:pages/index/index.vue 包含商圈卡片,而 SinglePageContainer 内部也有商圈场景
3. **职责不清晰**:首页应该负责展示入口,而不是同时包含滑动逻辑
### 调整方案
将 SinglePageContainer 下放到 pages/index/index.vue,使组件层级更加合理:
- App.vue:应用根组件,只保留全局样式和横屏提示
- pages/index/index.vue:首页,使用 SinglePageContainer 提供滑动体验
- SinglePageContainer:保持完整的商圈场景滑动逻辑
### 数据流
```mermaid
graph TD
App.vue -->|引入| pages/index/index.vue
pages/index/index.vue -->|引入| SinglePageContainer.vue
SinglePageContainer.vue -->|使用| 各商圈场景组件
SinglePageContainer.vue -->|调用| Store(状态管理)
```
## 实现细节
### 核心目录结构
```
project-root/
├── App.vue # 移除 SinglePageContainer,保留全局配置
└── pages/
└── index/
└── index.vue # 使用 SinglePageContainer,移除商圈卡片
```
### 关键修改点
**App.vue 修改**:
- 移除 `import SinglePageContainer`
- 移除模板中的 ``
- 保留横屏提示和全局样式
**pages/index/index.vue 修改**:
- 导入 `SinglePageContainer` 组件
- 在模板中使用 ``
- 移除原有的商圈卡片列表、功能入口等重复内容
- 保留必要的样式和逻辑
### 技术实现步骤
1. 备份现有文件,确保可以回滚
2. 修改 pages/index/index.vue,替换内容为 SinglePageContainer
3. 修改 App.vue,移除 SinglePageContainer 引用
4. 验证滑动功能和商圈场景是否正常
5. 测试横屏提示是否仍然有效