├── src ├── services │ ├── README.md │ └── demo │ │ ├── index.ts │ │ ├── typings.d.ts │ │ └── UserController.ts ├── pages │ ├── 404.tsx │ ├── ProjectDetail │ │ ├── components │ │ │ ├── Content │ │ │ │ ├── Test │ │ │ │ │ ├── useService.ts │ │ │ │ │ └── components │ │ │ │ │ │ ├── Filters.tsx │ │ │ │ │ │ └── CaseEditor.tsx │ │ │ │ ├── Task │ │ │ │ │ ├── components │ │ │ │ │ │ ├── Table │ │ │ │ │ │ │ ├── table.less │ │ │ │ │ │ │ └── useService.ts │ │ │ │ │ │ ├── Gantt │ │ │ │ │ │ │ └── useService.ts │ │ │ │ │ │ └── Card │ │ │ │ │ │ │ ├── useService.ts │ │ │ │ │ │ │ └── components │ │ │ │ │ │ │ ├── TaskGroup.tsx │ │ │ │ │ │ │ └── CardItem.tsx │ │ │ │ │ ├── Filter │ │ │ │ │ │ ├── components │ │ │ │ │ │ │ ├── FilterPanel.tsx │ │ │ │ │ │ │ ├── NewTask.tsx │ │ │ │ │ │ │ ├── SearchInput.tsx │ │ │ │ │ │ │ ├── TaskGroup.tsx │ │ │ │ │ │ │ ├── CardType.tsx │ │ │ │ │ │ │ ├── TaskType.tsx │ │ │ │ │ │ │ ├── ViewType.tsx │ │ │ │ │ │ │ └── TaskBelong.tsx │ │ │ │ │ │ └── index.tsx │ │ │ │ │ └── index.tsx │ │ │ │ ├── Statistics │ │ │ │ │ └── components │ │ │ │ │ │ ├── TaskGroup.tsx │ │ │ │ │ │ ├── UserTaskCount.tsx │ │ │ │ │ │ ├── UserTaskLaborHour.tsx │ │ │ │ │ │ ├── UserTaskStatusTrend.tsx │ │ │ │ │ │ ├── UserTaskTypeTrend.tsx │ │ │ │ │ │ ├── TaskTypePie.tsx │ │ │ │ │ │ ├── Header.tsx │ │ │ │ │ │ └── TaskStatusPie.tsx │ │ │ │ ├── index.tsx │ │ │ │ └── Setting │ │ │ │ │ ├── components │ │ │ │ │ ├── UserList │ │ │ │ │ │ └── columns.tsx │ │ │ │ │ ├── TaskType │ │ │ │ │ │ ├── useService.ts │ │ │ │ │ │ └── index.tsx │ │ │ │ │ └── TaskStatus │ │ │ │ │ │ └── useService.ts │ │ │ │ │ └── index.tsx │ │ │ └── Header │ │ │ │ ├── ContentTypeTab.tsx │ │ │ │ └── index.tsx │ │ ├── index.tsx │ │ └── types.ts │ ├── Auth │ │ └── index.tsx │ ├── Settings │ │ ├── components │ │ │ ├── Content │ │ │ │ ├── System │ │ │ │ │ └── index.tsx │ │ │ │ ├── Tenant │ │ │ │ │ └── index.tsx │ │ │ │ ├── index.tsx │ │ │ │ ├── User │ │ │ │ │ ├── columns.tsx │ │ │ │ │ └── useService.ts │ │ │ │ ├── TaskPriority │ │ │ │ │ └── useService.ts │ │ │ │ └── ProjectGroup │ │ │ │ │ └── useService.ts │ │ │ └── Menu │ │ │ │ ├── index.less │ │ │ │ └── index.tsx │ │ ├── index.tsx │ │ └── model.ts │ ├── components │ │ ├── EmptyData │ │ │ └── index.tsx │ │ ├── HeaderImgUpload │ │ │ └── upload.less │ │ ├── NewTaskModal │ │ │ └── comppnents │ │ │ │ ├── LaborHour.tsx │ │ │ │ ├── Title.tsx │ │ │ │ ├── TaskType.tsx │ │ │ │ ├── TaskStatus.tsx │ │ │ │ ├── TimeSelect.tsx │ │ │ │ ├── TaskPriority.tsx │ │ │ │ ├── UserSelect.tsx │ │ │ │ └── TaskGroup.tsx │ │ ├── TaskPrioritySelect │ │ │ ├── useService.ts │ │ │ └── index.tsx │ │ ├── TaskStatusSelect │ │ │ ├── useService.ts │ │ │ └── index.tsx │ │ ├── TaskTypeSelect │ │ │ └── userService.ts │ │ ├── TaskDetailModal │ │ │ └── components │ │ │ │ ├── TaskStatus.tsx │ │ │ │ ├── TaskPriority.tsx │ │ │ │ ├── Comment │ │ │ │ └── comment.less │ │ │ │ ├── TaskLogs │ │ │ │ └── components │ │ │ │ │ ├── CommentLog.tsx │ │ │ │ │ └── TextLog.tsx │ │ │ │ ├── TaskTimeLine.tsx │ │ │ │ ├── LaborHourCpt │ │ │ │ └── index.tsx │ │ │ │ ├── TaskGroup.tsx │ │ │ │ ├── UserSelect.tsx │ │ │ │ ├── TaskDescription.tsx │ │ │ │ ├── TaskTitle.tsx │ │ │ │ └── TaskActor.tsx │ │ ├── TaskUploadFile │ │ │ └── index.tsx │ │ ├── ProjectSelect │ │ │ └── useService.ts │ │ ├── TaskSelect │ │ │ └── useService.ts │ │ └── TaskGroupSelect │ │ │ └── useService.ts │ ├── Home │ │ ├── index.tsx │ │ └── components │ │ │ └── Introduce.tsx │ ├── Project │ │ ├── components │ │ │ ├── Container │ │ │ │ ├── index.tsx │ │ │ │ └── components │ │ │ │ │ ├── ProjectList.tsx │ │ │ │ │ ├── ProjectItem.tsx │ │ │ │ │ └── GroupSelect │ │ │ │ │ └── useService.ts │ │ │ ├── Menu │ │ │ │ ├── index.less │ │ │ │ └── index.tsx │ │ │ └── NewProjectModal │ │ │ │ └── useService.ts │ │ └── index.tsx │ ├── Message │ │ ├── index.tsx │ │ ├── components │ │ │ ├── MsgMenuItem.tsx │ │ │ └── MsgContent.tsx │ │ └── model.ts │ └── LaborHour │ │ ├── index.tsx │ │ └── components │ │ ├── LaborHourList.tsx │ │ ├── Header.tsx │ │ ├── DateHeader.tsx │ │ ├── LaborHourItem.tsx │ │ ├── ContentCard.tsx │ │ ├── TimeLine.tsx │ │ └── UserHeader.tsx ├── utils │ ├── event-bus.ts │ ├── format.ts │ └── url-utils.ts ├── assets │ └── images │ │ ├── logo.png │ │ ├── home │ │ ├── lie-wait.png │ │ └── tips-view.png │ │ └── default │ │ ├── list-empty.png │ │ ├── injoin-project.png │ │ └── project-avatar.jpeg ├── components │ ├── EmptyLoading.tsx │ ├── AuthAccess.tsx │ ├── MindMap │ │ └── index.tsx │ └── RickEditor.tsx ├── wrappers │ └── auth.tsx ├── access.ts ├── loading.tsx ├── layouts │ ├── LeftMenu │ │ ├── components │ │ │ ├── BottomMenu.tsx │ │ │ ├── Message │ │ │ │ ├── MsgItem.tsx │ │ │ │ ├── index.tsx │ │ │ │ └── MsgContent.tsx │ │ │ ├── TopMenu.tsx │ │ │ └── UserInfo │ │ │ │ └── index.tsx │ │ └── index.tsx │ └── index.tsx ├── api │ └── modules │ │ ├── Test.ts │ │ ├── Auth.ts │ │ ├── Login.ts │ │ ├── Upload.ts │ │ ├── index.ts │ │ ├── TaskActor.ts │ │ ├── TaskAttachment.ts │ │ ├── TaskOperationLog.ts │ │ ├── TaskLaborHour.ts │ │ ├── TaskType.ts │ │ ├── TaskGroup.ts │ │ ├── TaskPriority.ts │ │ ├── ProjectGroup.ts │ │ └── ProjectUser.ts ├── hooks │ ├── useScrollMove.ts │ └── useQueryParams.ts ├── models │ ├── global.ts │ └── message.ts ├── app.ts └── global.less ├── .eslintignore ├── .stylelintignore ├── .npmrc ├── .prettierignore ├── tsconfig.json ├── typings.d.ts ├── .eslintrc.js ├── .stylelintrc.js ├── .husky ├── pre-commit └── commit-msg ├── .vscode ├── settings.json └── launch.json ├── .gitignore ├── .prettierrc ├── .lintstagedrc ├── mock └── userAPI.ts ├── openapi.config.ts ├── README.md ├── config ├── config.ts └── routes.ts ├── tailwind.config.js └── package.json /src/services/README.md: -------------------------------------------------------------------------------- 1 | # mock 样例 -------------------------------------------------------------------------------- /.eslintignore: -------------------------------------------------------------------------------- 1 | src/api/modules/*/** 2 | -------------------------------------------------------------------------------- /.stylelintignore: -------------------------------------------------------------------------------- 1 | tailwind.css 2 | src/.umi -------------------------------------------------------------------------------- /.npmrc: -------------------------------------------------------------------------------- 1 | registry=https://registry.npmmirror.com/ 2 | 3 | -------------------------------------------------------------------------------- /src/pages/404.tsx: -------------------------------------------------------------------------------- 1 | export default () =>
30 | 全面的项目管理工具,集任务、项目、工时、办公、文档等功能于一体。高效管理任务进度,协调团队合作,记录工时消耗,提供办公工具支持,便捷管理文档。完美解决项目管理需求。 31 |
32 |{item.desc}
38 |工作内容:{item.description}
37 |40 | 实际工时 41 | {item.hour}h 42 |
43 | 49 |
41 |
{userInfo.username}
48 |合计:{totalHour}h
49 |