refactor: 清理废弃模块并重构管理端与全端代码

- 移除所有废弃的旧首页配置模块,包括destinationHero、demand相关、HomeExperience、vehicleService等表结构与代码,新增数据库迁移删除遗留表
- 重构管理端后台布局为标准RuoYi风格,新增Sidebar、Navbar、SettingsDrawer等组件,替换旧的过渡菜单实现
- 调整移动端响应断点为768px,更新布局相关测试用例,新增布局组件测试
- 删除OperationsTools发布/重置页面,移除/tools菜单入口,清理对应的API调用与测试代码
- 重构玩法模块编辑器:替换旧的图片手动输入框为图片上传组件,移除冗余的取消按钮
- 新增线索查询offset参数支持,完善查询参数处理逻辑
- 优化rbac菜单构建逻辑,新增可见性控制参数
- 修正管家编辑器提示文案,优化系统资源编辑器表单初始化逻辑
- 清理小程序端废弃的体验推荐组件与相关测试代码
- 更新文档与种子脚本,匹配新的API契约与使用说明
This commit is contained in:
duanshuwen committed 2026-08-26 23:24:28 +08:00
1 parent f6c5ad589f
commit fbf2c772a8
63 files changed
+2272 -1991

No files matched your search

+30 -25
View File
@@ -23,7 +23,7 @@
WonderQ 是三端分离的旅行产品项目集合,当前由三个独立子项目组成:
- `WonderQ-MiniAPP`:万趣旅行移动端前台,面向 H5 与微信小程序,技术栈为 uni-app、Vue 3、TypeScript、TailwindCSS。
- `WonderQ-Admin-UI`:后台管理前端,用于维护首页结构、目的地、线路商品、页面模块和客户需求线索,技术栈为 Vite、React、TypeScript、Tailwind CSS 4、shadcn/ui 风格组件。
- `WonderQ-Admin-UI-Vue`:正式后台管理前端,用于维护首页工作台、玩法、详情、管家、需求线索和 RBAC,技术栈为 Vue 3、TypeScript、Vite、Element Plus、Pinia、Vue Router 4;采用 RuoYi-Vue3 风格壳层,但不复制其 Java 后端。
- `WonderQ-Admin`:后端 API 服务,为 MiniAPP 提供 Public API,为后台管理端提供 Admin API,技术栈为 Python、FastAPI、SQLAlchemy 2、Alembic、PostgreSQL、JWT、Pydantic。
核心开发原则是页面驱动开发:业务围绕 MiniAPP/H5 前台页面和运营配置场景展开;后台负责配置页面数据;后端负责业务逻辑、鉴权、数据持久化和接口;MiniAPP 负责展示与交互。
@@ -45,7 +45,7 @@ WonderQ-Project/
│ ├─ module-config-api.md
│ └─ public-api.md
├─ WonderQ-MiniAPP/
├─ WonderQ-Admin-UI/
├─ WonderQ-Admin-UI-Vue/
└─ WonderQ-Admin/
```
@@ -113,20 +113,24 @@ WonderQ-MiniAPP/
- `src/content.ts`:前台静态兜底内容。
- `public/assets/`:前台图片资源。
### WonderQ-Admin-UI
### WonderQ-Admin-UI-Vue
```text
WonderQ-Admin-UI/
WonderQ-Admin-UI-Vue/
├─ README.md
├─ components.json
├─ public/assets/
├─ public/
├─ src/
│ ├─ App.tsx
│ ├─ api.ts
│ ├─ components/ui/
│ ├─ App.vue
│ ├─ api/client.ts
│ ├─ components/layout/
│ ├─ components/home/
│ ├─ components/system/
│ ├─ components/wanfa/
│ ├─ directives/permission.ts
│ ├─ lib/
│ ├─ pages/
│ ├─ main.tsx
│ ├─ router/
│ ├─ stores/
│ ├─ styles.css
│ └─ vite-env.d.ts
├─ index.html
@@ -136,12 +140,13 @@ WonderQ-Admin-UI/
└─ yarn.lock
```
- `src/App.tsx`:后台应用壳、登录态、侧边导航和全局布局。
- `src/api.ts`:Admin API 类型、Token 管理、鉴权头和请求封装。
- `src/pages/structure/StructurePage.tsx`:首页、目的地页、需求页等页面模块配置主界面。
- `src/pages/leads/LeadsPage.tsx`:需求线索查询、筛选和状态流转。
- `src/components/ui/`:Button、Card、Input、Textarea、Badge、Alert、Switch、NativeSelect、Separator 等基础组件。
- `src/styles.css`:Tailwind 入口、设计变量、后台工作台、表格/表单和移动端适配。
- `src/layouts/AdminLayout.vue` 与 `src/components/layout/`:RuoYi 风格侧栏、Navbar、TagsView、设置抽屉和响应式布局。
- `src/api/client.ts`:Admin API 类型、Token 管理、鉴权头和请求封装。
- `src/pages/HomePage.vue`:顶部轮播、玩法推荐、万趣用车、团队共创和极境视界统一工作台。
- `src/pages/LeadsPage.vue`:需求线索筛选、分页、状态写入和详情弹窗。
- `src/pages/SystemResourcePage.vue`:用户、角色、菜单、部门管理;菜单使用服务端父子树。
- `src/components/wanfa/`、`src/components/concierge/`、`src/components/media/`:领域编辑器和 URL/OSS 媒体上传组件。
- `src/styles.css`:RuoYi/Element Plus 主题变量、布局、表格/表单和响应式样式。
### WonderQ-Admin
@@ -204,10 +209,10 @@ python -m pip install -r requirements.txt
健康检查:http://localhost:4000/health。
### 管理前端 `WonderQ-Admin-UI`
### 管理前端 `WonderQ-Admin-UI-Vue`
```powershell
Set-Location .\WonderQ-Admin-UI
Set-Location .\WonderQ-Admin-UI-Vue
yarn install
yarn dev
```
@@ -231,14 +236,14 @@ yarn dev:mp-weixin
## 8. 测试与验证
- `WonderQ-Admin`:修改 Python 代码后运行 `python -m pytest`;涉及迁移时运行 `python -m alembic upgrade head`;空库或 seed 相关变更才考虑 `python -m app.seed`,且执行前必须确认风险。
- `WonderQ-Admin-UI`:当前未配置独立测试脚本,提交前至少运行 `yarn build`;涉及 UI、交互或接口行为时,本地启动页面并手动验证关键流程。
- `WonderQ-Admin-UI-Vue`:变更后运行 `yarn test` 和 `yarn build`;涉及 UI、交互或接口行为时,本地启动页面并手动验证关键流程。
- `WonderQ-MiniAPP`:前台变更后至少运行 `yarn build:h5`、`yarn build:mp-weixin`、`yarn test`;UI 变更还应浏览器验证移动端和桌面宽度,涉及小程序兼容时用微信开发者工具验证 `dist/build/mp-weixin`。
- 纯文档变更可不跑构建,但必须检查文档链接、命令、路径和敏感信息。
## 9. 部署规范
- `WonderQ-MiniAPP`:H5 生产构建使用 `yarn build:h5`,产物在 `dist/build/h5`;微信小程序构建使用 `yarn build:mp-weixin`,产物在 `dist/build/mp-weixin`。
- `WonderQ-Admin-UI`:生产发布使用 `yarn build` 生成 `dist/`,可交给 Nginx、CDN 或静态托管服务部署。
- `WonderQ-Admin-UI-Vue`:生产发布使用 `yarn build` 生成 `dist/`,可交给 Nginx、CDN 或静态托管服务部署。
- `WonderQ-Admin`:使用 Dockerfile 与 `docker-compose.yml` 部署 API、PostgreSQL 和 Redis。
- 生产 API 地址、客服链接、企业 ID、JWT secret、OSS 密钥、数据库连接只允许通过部署环境变量注入,不硬编码到源码、测试或文档。
- 不提交 `dist/`、`node_modules/`、`.venv/`、`.env`、`.env.local`、日志、coverage、数据库备份或临时规划文件。
@@ -260,15 +265,15 @@ yarn dev:mp-weixin
- 新业务表按实际需要考虑 `id`、`created_at`、`updated_at`、`deleted_at`、`status`、`sort` 等字段,不机械添加无意义字段。
- 时间字段后端统一使用明确时区语义;对外返回 ISO 8601 字符串。
- 查询应合理建立索引,避免 N+1 查询和无界列表。
- Admin 变更类接口应继续写入审计日志,尤其是发布、重置、删除、状态流转和页面配置变更。
- Admin 变更类接口应继续写入审计日志,尤其是删除、状态流转和页面配置变更。
- 复杂新业务优先按 Router、Service、Repository 分层拆分;现有简单接口可沿用当前结构,但不要把大量业务逻辑继续堆进单个路由函数。
## 12. 前端实现原则
- TypeScript 项目使用 strict 模式,新增代码应有明确类型,避免 `any`。
- `WonderQ-MiniAPP` 使用 Vue 3 SFC、`<script setup lang="ts">` 和 uni-app 组件,不引入 React。
- `WonderQ-Admin-UI` 使用 React 函数组件和 Hooks,不引入 class component。
- `WonderQ-Admin-UI` 优先使用 TailwindCSS 工具类完成布局、间距、颜色、字体、边框、响应式和交互状态;重复样式优先使用 `@apply` 或可复用基础组件封装。`src/styles.css` 作为 Tailwind 入口和全局样式层,仅保留设计变量、基础重置、复杂选择器、伪元素以及 Tailwind 无法清晰表达的兼容规则;新增自定义 CSS 前应先确认 Tailwind 无法合理表达,并在代码附近说明原因。
- `WonderQ-Admin-UI-Vue` 使用 Vue 3 SFC、`<script setup lang="ts">`、Element Plus 和 Pinia;不恢复旧 React 管理端。
- `WonderQ-Admin-UI-Vue` 优先复用 Element Plus 和布局组件;重复样式集中在 `src/styles.css` 的主题/布局层,业务页面只保留必要的局部规则。
- `WonderQ-MiniAPP` 页面和组件默认只能使用 TailwindCSS 工具类完成布局、间距、颜色、字体、边框、响应式及交互状态;禁止新增自定义 `<style>` 或 `<style scoped>`。仅在 uni-app 平台兼容性、伪元素或 Tailwind 无法表达的特殊规则下允许例外,并在代码附近说明原因。
- `WonderQ-MiniAPP` 的响应式样式优先使用 TailwindCSS 断点和任意值变体,避免在单文件组件中新增独立媒体查询;重复的视觉规则应提取为全局工具类或可复用组件。
- `WonderQ-MiniAPP` 移动端采用简约、内容优先的视觉风格:以白色和低饱和中性色为基础,使用绿色作为主操作色,避免大面积渐变、金色渐变按钮、装饰性光晕和重阴影。
@@ -308,7 +313,7 @@ yarn dev:mp-weixin
- `vite.config.ts`、`manifest.json` 的 `/api` 代理只服务本地开发,不作为生产后端配置。
- 不要随意改动 `public/assets/source/` 中的采集内容,除非任务专门针对这些资源。
### `WonderQ-Admin-UI`
### `WonderQ-Admin-UI-Vue`
未经用户明确授权,不得改动:
@@ -316,7 +321,7 @@ yarn dev:mp-weixin
- `vite.config.ts` 中的代理、端口和构建配置。
- `tsconfig.json` 的严格类型配置。
- `package.json`、`yarn.lock` 的依赖与脚本。
- `src/api.ts` 的接口路径、Token 存储键、鉴权头和类型契约。
- `src/api/client.ts` 的接口路径、Token 存储键、鉴权头和类型契约。
- `public/assets/` 下已被页面引用的图片资源和 `manifest.json`。
- `docs/admin-api-requirements.md` 与 `docs/module-config-api.md` 中的接口契约,除非任务就是同步契约变更。