【Codex】搭建Tauri工具数据工作台统一管理桌面端能力

教育管理系统Tauri数据工作台模块用Codex生成项目代码

Tauri数据工作台不是业务指标页,而是教育管理系统中 Tauri 工具模块的入口聚合页。它根据菜单权限,把数据信息、配置信息、统计可视化、应用信息和系统使用等分区整理成可点击卡片。

本文基于 WorkbenchesViewSet、菜单权限查询、CommonWorkbenchesEachModuleWorkWorkbenche,说明如何把菜单树、权限过滤、分区卡片和路由跳转,转换成 Codex 可执行的项目代码生成任务。

文章目录

设计与需求

Tauri数据工作台不能按普通 CRUD 页面理解。它没有独立业务模型,后端使用 DummyModel.objects.none() 作为占位查询对象,真正的数据来自 MenuRoleMenuPermissionserver_backend/dvadmin/utils/workbenches.py 中的 WorkbenchesViewSet.web_router 会根据请求路径推导模块前缀,再按 DataSettingStatisticsApplicationSystem 后缀读取菜单分组。Tauri 模块在 server_backend/modules/Tauri/urls.py 中注册 WorkbenchesViewSet,前端入口为 server_vue3/src/views/modules/Tauri/Workbenches/index.vue

交给 Codex 的任务需要把"菜单入口聚合"拆成后端菜单查询、权限过滤、分组返回、前端卡片渲染和路由跳转。这里的 Statistics 是工作台分区名称,不代表该模块存在统计计算接口;文章和代码生成都应围绕菜单分组和权限可见性展开。
验收阶段
生成阶段
设计阶段
输入阶段
模块路径
菜单权限
源码上下文
菜单分组
权限过滤
卡片布局
路由跳转
读取源码
生成后端
生成前端
入口检查
PDD验收

需求层描述 设计层转换 Codex 代码生成方向
Tauri 模块需要统一入口 server_vue3/src/views/modules/Tauri/Workbenches/index.vue 传入 /api/Tauri/Workbenches/web_router/ 生成工作台入口页面和通用组件调用。
后端需要按模块返回菜单分区 web_router 根据请求路径组合 /TauriWorkbenchesData 等目标菜单路径。 生成路径解析、菜单查询、空结果处理和返回结构。
权限需要影响卡片可见性 非超级管理员按 RoleMenuPermission 过滤可见菜单。 生成角色菜单权限过滤和越权测试。
菜单需要分组展示 _menu_block_serializer 将第一层目录作为分组,收集其下叶子菜单。 生成 labelvaluechildren 分组数据。
前端需要卡片化导航 EachModuleWorkWorkbenche.vue 用 tabs、分组标题和卡片渲染菜单。 生成卡片布局、图片回退、图标回退和路由跳转。
页面需要稳定回显 ORDER 固定分区顺序,TITLE_MAP 映射中文标题。 生成分区排序、空状态和默认激活 tab。

可以直接使用下面的Prompt进行模块功能的设计

text 复制代码
请 Codex 基于教育管理系统真实源码设计"Tauri数据工作台"模块。

模块定位:
Tauri数据工作台用于聚合 Tauri 工具模块的菜单入口。后端按当前用户菜单权限返回分区数据,前端用通用工作台组件渲染卡片并跳转到具体功能页面。

源码范围:
server_backend/dvadmin/utils/workbenches.py
server_backend/modules/Tauri/urls.py
server_backend/dvadmin/system/models.py
server_vue3/src/views/modules/Tauri/Workbenches/index.vue
server_vue3/src/components/commonWorkbenches/api.ts
server_vue3/src/components/commonWorkbenches/index.vue
server_vue3/src/views/system/Workbenches/components/EachModuleWorkWorkbenche.vue

接口范围:
GET /api/Tauri/Workbenches/web_router/

返回结构:
System、Data、Setting、Statistics、Application
每个分区包含 label、value、children
children 使用 WebRouterSerializer 返回菜单路由字段

设计要求:
1. 输出页面结构、后端菜单查询、权限规则、前端卡片渲染和验收标准。
2. 说明 WorkbenchesViewSet 如何根据请求路径推导模块菜单后缀。
3. 说明 RoleMenuPermission 如何限制非超级管理员可见菜单。
4. 说明 CommonWorkbenches 与 EachModuleWorkWorkbenche 的组件职责。
5. 只允许设计源码中存在的菜单分组、权限过滤和卡片导航能力。

后端设计

后端设计重点不是搭建新的数据模型,而是把系统菜单树整理成工作台可用的数据结构。server_backend/dvadmin/utils/workbenches.py 中的 WorkbenchesViewSet 使用 DummyModelDummySerializer 占位,web_router action 返回当前模块的菜单分区。Tauri 模块通过 server_backend/modules/Tauri/urls.py 注册 router.register('Workbenches', WorkbenchesViewSet, 'Workbenches'),因此前端可以请求 /api/Tauri/Workbenches/web_router/

核心逻辑在 _menu_block_serializer。它从 request.path 中解析模块名和路由名,例如 /api/Tauri/Workbenches/web_router/ 会推导出模块 Tauri、路由 Workbenches,再组合 /TauriWorkbenchesData/TauriWorkbenchesSetting 等目标菜单路径。命中父菜单后,后端会根据 Menu.status 和角色权限构造可见菜单全集,把第一层菜单作为目录组,再收集其下所有叶子菜单并用 WebRouterSerializer 输出给前端。

后端设计项 设计重点 Codex 生成方向
视图入口 WorkbenchesViewSet.web_router 返回工作台菜单数据。 保持 GET /api/Tauri/Workbenches/web_router/ 接口结构。
路径解析 根据 request.path 解析 webrouter,拼接目标菜单路径。 生成路径边界校验和空结果返回。
菜单查询 通过 Menu.web_path 命中父菜单,再读取子菜单。 生成菜单层级查询、排序和叶子节点收集。
权限过滤 超级管理员看全部,普通用户按 RoleMenuPermission 限制。 生成角色权限过滤和越权菜单不可见测试。
返回结构 返回 SystemDataSettingStatisticsApplication 五组数据。 保持 labelvaluechildren 结构稳定。
空状态 找不到父菜单、无权限或无叶子菜单时返回空数组。 生成空工作台和前端空状态验收。

可以直接使用下面的Prompt进行后端代码的设计

text 复制代码
请 Codex 按"Tauri数据工作台"业务从零设计或补齐后端代码。

后端源码范围:
server_backend/dvadmin/utils/workbenches.py
server_backend/modules/Tauri/urls.py
server_backend/dvadmin/system/models.py

必须遵守的现有结构:
1. WorkbenchesViewSet 使用 DummyModel.objects.none() 和 DummySerializer。
2. Tauri 路由注册 WorkbenchesViewSet,接口为 /api/Tauri/Workbenches/web_router/。
3. 菜单数据来自 Menu 和 RoleMenuPermission。
4. 叶子菜单序列化使用 WebRouterSerializer。

需要实现或校准:
1. 根据 request.path 解析模块和路由,组合 Data、Setting、Statistics、Application、System 的菜单父路径。
2. 找到父菜单后,读取第一层目录组。
3. 收集目录下所有叶子菜单,并保留 sort、id 排序。
4. 普通用户只能看到角色授权菜单,超级管理员可见全部启用菜单。
5. 返回结构必须包含 System、Data、Setting、Statistics、Application。
6. 没有菜单或没有权限时返回空数组,不报 500。

输出涉及文件、接口返回结构、权限规则、空状态处理和测试建议。

前端设计

前端设计重点是让用户能快速进入 Tauri 工具下的各类功能页面。server_vue3/src/views/modules/Tauri/Workbenches/index.vue 只负责声明 apiUrl = '/api/Tauri/Workbenches/web_router/' 并把它传给 CommonWorkbenchesserver_vue3/src/components/commonWorkbenches/index.vue 是轻包装组件,实际渲染逻辑在 server_vue3/src/views/system/Workbenches/components/EachModuleWorkWorkbenche.vue

EachModuleWorkWorkbenche.vue 请求 GetList(props.apiUrl) 后,按固定顺序 DataSystemSettingStatisticsApplication 生成 tabs,并用 TITLE_MAP 转成中文标题。每个分区下先展示目录标题,再展示卡片;卡片使用菜单的 pathnameimagedesc,点击后通过 router.push({ path }) 进入对应功能页。图片缺失时根据菜单名称和路径选择回退图标。

前端设计项 设计重点 Codex 生成方向
模块入口 Tauri/Workbenches/index.vue 传入 Tauri 工作台 API 地址。 保持模块入口轻量,避免重复实现通用工作台。
接口封装 commonWorkbenches/api.tsGetList(url) 按传入 URL 请求。 生成通用请求方法和错误处理。
分区渲染 EachModuleWorkWorkbenche.vue 使用 ORDERTITLE_MAP 排序展示。 生成 tabs、默认激活项和空状态。
卡片展示 卡片展示图片、名称、描述和右侧箭头。 生成图片加载、回退图标和响应式布局。
路由跳转 handleToSubMenu(path) 使用 Vue Router 跳转。 生成点击、Enter、Space 键盘可访问交互。
权限回显 前端只展示后端返回的授权菜单。 避免前端硬编码不可见菜单。

可以直接使用下面的Prompt进行前端代码的设计

text 复制代码
请 Codex 按"Tauri数据工作台"业务生成或补齐前端页面代码。

前端源码范围:
server_vue3/src/views/modules/Tauri/Workbenches/index.vue
server_vue3/src/components/commonWorkbenches/api.ts
server_vue3/src/components/commonWorkbenches/index.vue
server_vue3/src/views/system/Workbenches/components/EachModuleWorkWorkbenche.vue

页面现状:
1. Tauri/Workbenches/index.vue 传入 apiUrl:/api/Tauri/Workbenches/web_router/。
2. CommonWorkbenches 负责转发 apiUrl 和 limit。
3. EachModuleWorkWorkbenche 请求后端分区数据并渲染 tabs。
4. 分区顺序为 Data、System、Setting、Statistics、Application。
5. 卡片使用菜单 path、name、image、desc。
6. 点击卡片通过 router.push 进入具体页面。

需要生成或修正:
1. 保持通用工作台组件,不在 Tauri 页面重复写卡片逻辑。
2. 对空分区、空 children、图片加载失败进行处理。
3. 保持键盘 Enter 和 Space 跳转。
4. 保持后端返回什么就展示什么,不硬编码未授权菜单。
5. Statistics 只作为菜单分区,不要生成统计图表或指标接口。

输出页面结构、接口调用、分区渲染、卡片交互、权限回显和验收步骤。

扩展功能

Tauri数据工作台的扩展能力主要是数据联动。它超出普通静态入口页的地方,是菜单卡片由后端菜单树和当前用户权限动态生成,前端分区、卡片、图片、路由跳转都依赖同一份 web_router 返回数据。

扩展功能 主要用途 落地重点
数据联动 将请求路径、菜单树、角色权限、分区 tabs 和卡片跳转串成稳定数据流。 后端返回结构与前端分区渲染必须一致,不能前端硬编码权限菜单。

数据联动

数据联动从请求路径开始。后端根据 /api/Tauri/Workbenches/web_router/ 推导目标菜单路径,再查找对应父菜单和子菜单;权限过滤决定哪些菜单能返回;前端根据 SystemDataSettingStatisticsApplication 生成 tabs,并把每个叶子菜单渲染成卡片。这个过程把后端菜单配置、角色权限和前端导航连成一条链路。
结果阶段
处理阶段
输入阶段
请求路径
角色权限
菜单配置
解析模块
过滤菜单
收集叶子
分区Tabs
入口卡片
路由跳转

交给 Codex 生成时,边界要限定在菜单和权限联动上。不要因为返回结构里有 Statistics 分区就生成图表接口;不要绕过后端权限在前端写死菜单;不要把 DummyModel 当成真实业务表扩展字段。工作台的真实价值是让菜单配置变成按权限可见的导航入口。

可以直接使用下面的Prompt进行数据联动设计

text 复制代码
请 Codex 基于真实源码补齐"Tauri数据工作台"的数据联动设计。

源码范围:
server_backend/dvadmin/utils/workbenches.py
server_backend/modules/Tauri/urls.py
server_vue3/src/views/modules/Tauri/Workbenches/index.vue
server_vue3/src/components/commonWorkbenches/api.ts
server_vue3/src/components/commonWorkbenches/index.vue
server_vue3/src/views/system/Workbenches/components/EachModuleWorkWorkbenche.vue

联动对象:
request.path、Menu.web_path、RoleMenuPermission、System、Data、Setting、Statistics、Application、path、name、image、desc

联动要求:
1. 后端根据请求路径推导当前模块工作台菜单。
2. 普通用户只能看到角色授权菜单,超级管理员可见全部启用菜单。
3. 后端返回 label、value、children 分组结构。
4. 前端按固定顺序渲染 tabs,空分区不展示。
5. 卡片点击和键盘操作都能跳转到菜单 path。
6. Statistics 只作为菜单分区,不生成统计接口。

输出接口设计、前端交互、权限约束、空状态处理和验收清单。

Codex开发标准

使用 Codex 开发 Tauri数据工作台时,不能让它随意生成一个静态卡片页。工作台入口必须由后端菜单权限驱动,PDD、SOP、接口权限规则和验收标准要约束菜单查询、角色过滤、前端分区和路由跳转。
验收交付
Codex开发
模块设计
输入约束
需求边界
PDD设计
SOP目录
接口权限
后端设计
前端设计
联动检查
读取上下文
生成后端
生成前端
功能补齐
功能自检
PDD验收
问题修复
模块交付

SOP 标准

SOP 用于约束代码目录、文件职责和开发顺序。Tauri数据工作台模块的代码分散在通用工作台后端、通用前端组件和 Tauri 模块入口中,Codex 需要先识别这些职责,再决定修改范围。

text 复制代码
docs/modules/Tauri数据工作台/
├── pdd.md
├── api.md
├── test-cases.md
└── codex-sop.md

server_backend/dvadmin/utils/
└── workbenches.py

server_backend/modules/Tauri/
└── urls.py

server_vue3/src/views/modules/Tauri/Workbenches/
└── index.vue

server_vue3/src/components/commonWorkbenches/
├── api.ts
└── index.vue

server_vue3/src/views/system/Workbenches/components/
└── EachModuleWorkWorkbenche.vue

_sop_workflow/project_pr/Tauri工具/数据工作台/
└── 教育管理系统Tauri数据工作台用Codex自动生成项目代码.md
开发阶段 Codex 执行目标 输出结果
模块设计 读取 WorkbenchesViewSet、Tauri 路由、通用工作台组件和 Tauri 入口。 输出接口、菜单结构、权限和前端职责。
文档规划 建立 PDD、API、测试和 SOP 文档。 形成 pdd.mdapi.mdtest-cases.mdcodex-sop.md
后端实现 校准菜单路径解析、权限过滤、分组返回和空状态。 工作台接口返回授权菜单分区。
前端实现 校准 Tauri 入口、通用组件、tabs、卡片、图片回退和跳转。 页面能展示入口卡片并跳转。
数据联动 打通请求路径、菜单权限、分区 tabs 和卡片路由。 后端返回与前端展示一致。
验收修复 按 PDD 检查权限、空状态、路由跳转和响应式展示。 输出验收结果与需修复文件位置。

可以直接使用下面的Prompt进行SOP撰写

text 复制代码
请 Codex 按教育管理系统模块开发 SOP,从零实现或补齐"Tauri数据工作台"模块。

执行要求:
1. 先输出目录结构,不要直接写代码。
2. 先生成 docs/modules/Tauri数据工作台/pdd.md、api.md、test-cases.md 和 codex-sop.md。
3. 文档确认模块边界后,再根据文档生成或修正项目代码。
4. 后端范围限定在 dvadmin/utils/workbenches.py 和 modules/Tauri/urls.py。
5. 前端范围限定在 Tauri/Workbenches/index.vue、commonWorkbenches、EachModuleWorkWorkbenche.vue。
6. 后端需要覆盖菜单路径解析、RoleMenuPermission 权限过滤、叶子菜单收集和分区返回。
7. 前端需要覆盖 apiUrl 传入、tabs 渲染、卡片展示、图片回退、空状态和路由跳转。
8. Statistics 只是菜单分区,不生成统计接口或图表能力。
9. 不生成源码中不存在的扩展能力。

输出目录结构、开发阶段表、后端任务清单、前端任务清单、数据联动清单和验收修复清单。

PDD 标准

PDD 是模块设计与验收文档,用来约束 Codex 输出是否符合真实业务。Tauri数据工作台模块的 PDD 要把菜单来源、权限过滤、返回结构、卡片渲染和路由跳转写成可验证条目。

验收维度 验收标准 需要检查的文件
业务目标 模块能按权限聚合 Tauri 工具菜单入口,并展示为工作台卡片。 pdd.mdworkbenches.pyEachModuleWorkWorkbenche.vue
页面结构 页面包含分区 tabs、目录标题、入口卡片、图片或回退图标、空状态。 Tauri/Workbenches/index.vueEachModuleWorkWorkbenche.vue
数据模型 不新增业务模型,使用 DummyModel 占位,菜单数据来自 Menu workbenches.py
接口规则 /api/Tauri/Workbenches/web_router/ 返回五类分区和菜单 children。 workbenches.pyapi.md
权限控制 普通用户只看到角色授权菜单,超级管理员看到全部启用菜单。 workbenches.pytest-cases.md
数据联动 请求路径、菜单父路径、分区数据、卡片 path 和前端跳转保持一致。 workbenches.pyEachModuleWorkWorkbenche.vue
测试用例 覆盖超级管理员、普通角色、无权限、无菜单、图片缺失和路由跳转。 test-cases.md

可以直接使用下面的Prompt进行PDD 验收

text 复制代码
请 Codex 根据 docs/modules/Tauri数据工作台/pdd.md 对"Tauri数据工作台"模块进行验收。

验收范围:
server_backend/dvadmin/utils/workbenches.py
server_backend/modules/Tauri/urls.py
server_vue3/src/views/modules/Tauri/Workbenches/index.vue
server_vue3/src/components/commonWorkbenches/api.ts
server_vue3/src/components/commonWorkbenches/index.vue
server_vue3/src/views/system/Workbenches/components/EachModuleWorkWorkbenche.vue
docs/modules/Tauri数据工作台/api.md
docs/modules/Tauri数据工作台/test-cases.md

验收维度:
1. 业务目标:是否能聚合 Tauri 模块菜单入口。
2. 页面结构:是否包含 tabs、分组、卡片、图片回退和空状态。
3. 数据模型:是否未误建业务模型。
4. 接口规则:web_router 返回结构是否包含五类分区。
5. 权限控制:不同角色是否只看到授权菜单。
6. 数据联动:request.path、Menu.web_path、children.path 和 router.push 是否一致。
7. 测试用例:是否覆盖权限、空菜单、图片失败和跳转。

输出验收结果表,标记通过、未通过和需要修复的文件位置。不要只给结论,需要指出具体问题、影响范围和修复建议。

总结

Tauri数据工作台不是统计看板,也不是静态导航页,而是教育管理系统中由菜单权限驱动的模块入口闭环。它把后端菜单树、角色权限、分区数据和前端卡片跳转连接起来,让用户只看到自己可访问的 Tauri 功能。

用 Codex 开发该模块时,PDD 负责定义菜单来源和验收标准,SOP 负责约束通用工作台与模块入口的职责边界,Prompt 负责把后端权限查询、前端分区渲染和路由跳转拆成分阶段任务。这样生成的代码不会偏离真实工作台结构。

相关推荐
Mr数据杨3 小时前
【Codex】用教学动画模块生成可管理的课堂演示资源
django·codex·项目开发
johnny2335 小时前
Django生态下CMS平台:wagtail、Django-CMS
django
YJlio5 小时前
OpenClaw v2026.4.10 更新解析:Active Memory、Codex Provider、本地 MLX 语音与升级验证指南
memory·codex·版本更新·ai agent·active·openclaw·本地语音 自动化运维
kybs199121 小时前
springboot租车系统--附源码68701
java·hadoop·spring boot·python·django·asp.net·php
wxin_VXbishe21 小时前
springboot新能源车充电站管理系统小程序-计算机毕业设计源码29213
java·c++·spring boot·python·spring·django·php
万事大吉CC1 天前
【1】Django 基础:MTV 架构与核心组件
数据库·架构·django
万事大吉CC1 天前
【3】深入剖析 Django 之 MTV:路径引用与资源加载机制
数据库·django·sqlite
程序员鱼皮1 天前
试了下 Codex 新出的宠物功能,吊打 Claude Code,给我玩上头了。。
ai·程序员·编程·ai编程·codex
YJlio1 天前
2026年5月5日60秒读懂世界:五一档票房、油价调整、汤姆斯杯夺冠与全球风险观察
数据分析·django·飞书·仪表盘·多维表格·图表联动