refactor(project): 重构项目执行模块组件结构和数据管理

- 移除 execution-list-panel.vue 组件并将功能整合到执行区域
- 新增 execution-section.vue 组件替代原有的列表面板
- 将 task-workspace.vue 重命名为 task-workspace-comp.vue 并更新引用
- 引入 useTaskViewContext 组合式 API 进行任务视图上下文管理
- 添加跨执行任务状态统计接口调用和数据处理逻辑
- 重构执行状态筛选和任务创建权限判断逻辑
- 更新执行选择、搜索和重置功能的事件处理方式
- 调整页面布局结构,优化左右分栏的内容组织方式
- 完善执行详情获取和状态操作的业务流程
- 优化执行分配和状态变更的异步处理机制
This commit is contained in:
2026-05-23 14:22:58 +08:00
parent 13b74cfe97
commit e9214137c1
40 changed files with 4432 additions and 1419 deletions

View File

@@ -14,32 +14,62 @@ import WorkbenchBanner from './modules/workbench-banner.vue';
import WorkbenchColumn from './modules/workbench-column.vue';
import WorkbenchEditOverlay from './modules/workbench-edit-overlay.vue';
import WorkbenchModuleLibrary from './modules/workbench-module-library.vue';
import WorkbenchKpi from './modules/workbench-kpi.vue';
// 保留 6 个 + 重构 2 个key 沿用)
import WorkbenchTodoPanel from './modules/workbench-todo-panel.vue';
import WorkbenchActivityPanel from './modules/workbench-activity-panel.vue';
import WorkbenchProjectGrid from './modules/workbench-project-grid.vue';
import WorkbenchMyTask from './modules/workbench-my-task.vue';
import WorkbenchMyRequirement from './modules/workbench-my-requirement.vue';
import WorkbenchTeamTodo from './modules/workbench-team-todo.vue';
import WorkbenchProjectHealth from './modules/workbench-project-health.vue';
import WorkbenchProgressChart from './modules/workbench-progress-chart.vue';
import WorkbenchFavorite from './modules/workbench-favorite.vue';
import WorkbenchProjectGrid from './modules/workbench-project-grid.vue';
import WorkbenchShortcut from './modules/workbench-shortcut.vue';
import WorkbenchProjectHealth from './modules/workbench-project-health.vue';
import WorkbenchTeamTodo from './modules/workbench-team-todo.vue';
import WorkbenchFavorite from './modules/workbench-favorite.vue';
// 新增 16 个(蓝图 2026-05-22
import WorkbenchMyTicket from './modules/workbench-my-ticket.vue';
import WorkbenchMentions from './modules/workbench-mentions.vue';
import WorkbenchApproval from './modules/workbench-approval.vue';
import WorkbenchWorklogReminder from './modules/workbench-worklog-reminder.vue';
import WorkbenchMyExecution from './modules/workbench-my-execution.vue';
import WorkbenchPersonalItem from './modules/workbench-personal-item.vue';
import WorkbenchProjectSnapshot from './modules/workbench-project-snapshot.vue';
import WorkbenchProductSnapshot from './modules/workbench-product-snapshot.vue';
import WorkbenchTeamWorklog from './modules/workbench-team-worklog.vue';
import WorkbenchTeamLoad from './modules/workbench-team-load.vue';
import WorkbenchRiskAlert from './modules/workbench-risk-alert.vue';
import WorkbenchMyWeekWorklog from './modules/workbench-my-week-worklog.vue';
import WorkbenchMyCompletionRate from './modules/workbench-my-completion-rate.vue';
import WorkbenchTicketSla from './modules/workbench-ticket-sla.vue';
import WorkbenchRecentVisit from './modules/workbench-recent-visit.vue';
import WorkbenchNoticeNotification from './modules/workbench-notice-notification.vue';
defineOptions({ name: 'Workbench' });
const { registerModuleComponent } = useWorkbenchModules();
registerModuleComponent('kpi', WorkbenchKpi);
// 保留 6 个 + 重构 2 个
registerModuleComponent('myTodo', WorkbenchTodoPanel);
registerModuleComponent('myProject', WorkbenchProjectGrid);
registerModuleComponent('activity', WorkbenchActivityPanel);
registerModuleComponent('myTask', WorkbenchMyTask);
registerModuleComponent('myRequirement', WorkbenchMyRequirement);
registerModuleComponent('teamTodo', WorkbenchTeamTodo);
registerModuleComponent('projectHealth', WorkbenchProjectHealth);
registerModuleComponent('progressChart', WorkbenchProgressChart);
registerModuleComponent('favorite', WorkbenchFavorite);
registerModuleComponent('myProject', WorkbenchProjectGrid);
registerModuleComponent('shortcut', WorkbenchShortcut);
registerModuleComponent('projectHealth', WorkbenchProjectHealth);
registerModuleComponent('teamTodo', WorkbenchTeamTodo);
registerModuleComponent('favorite', WorkbenchFavorite);
// 新增 16 个
registerModuleComponent('myTicket', WorkbenchMyTicket);
registerModuleComponent('mentions', WorkbenchMentions);
registerModuleComponent('approval', WorkbenchApproval);
registerModuleComponent('worklogReminder', WorkbenchWorklogReminder);
registerModuleComponent('myExecution', WorkbenchMyExecution);
registerModuleComponent('personalItem', WorkbenchPersonalItem);
registerModuleComponent('projectSnapshot', WorkbenchProjectSnapshot);
registerModuleComponent('productSnapshot', WorkbenchProductSnapshot);
registerModuleComponent('teamWorklog', WorkbenchTeamWorklog);
registerModuleComponent('teamLoad', WorkbenchTeamLoad);
registerModuleComponent('riskAlert', WorkbenchRiskAlert);
registerModuleComponent('myWeekWorklog', WorkbenchMyWeekWorklog);
registerModuleComponent('myCompletionRate', WorkbenchMyCompletionRate);
registerModuleComponent('ticketSla', WorkbenchTicketSla);
registerModuleComponent('recentVisit', WorkbenchRecentVisit);
registerModuleComponent('noticeNotification', WorkbenchNoticeNotification);
const workbench = useWorkbenchStore();
const libraryOpen = ref(false);