feat(task): task detail

This commit is contained in:
2026-02-09 18:20:33 +08:00
parent f0298b91e3
commit 3f284d057c
19 changed files with 435 additions and 279 deletions

View File

@@ -5,7 +5,7 @@ import { ProjectDetail } from "@/components/label/api/project/typing"
import { useAllUserStore } from "@/components/label/store/auth"
import { Button, Group, Paper, Stack, Switch, Text } from "@mantine/core"
import { notifications } from "@mantine/notifications"
import { useMemo, useState } from "react"
import { JSX, useMemo, useState } from "react"
import AdminUserModal from "./components/AdminUserModal"
import LabelSchemeContainer from "./components/LabelSchemeContainer"
import NoteRulesTable from "./components/NoteRulesTable"
@@ -14,15 +14,16 @@ import TaskStageTabsContainer from "./components/TaskStageTabsContainer"
export default function InfoSettingContainer(props: {
info: ProjectDetail.DataProps | undefined
menuAction?: () => JSX.Element
userEnums: {
allEnum: Map<any, any>
labelEnum: Map<any, any>
review1Enum: Map<any, any>
review2Enum: Map<any, any>
}
update: () => void
updateAction: () => void
}) {
const { info, userEnums, update } = props
const { info, menuAction, userEnums, updateAction } = props
const projectId = info?.id ?? -1
const { userOpts } = useAllUserStore()
@@ -58,7 +59,7 @@ export default function InfoSettingContainer(props: {
title: "操作成功",
message: "已保存配置",
})
update()
updateAction()
} catch (e) {
notifications.show({
color: "red",
@@ -79,9 +80,10 @@ export default function InfoSettingContainer(props: {
radius="md"
style={{ borderColor: "rgba(0,0,0,0.06)" }}>
<Stack gap="sm">
{menuAction ? <div>{menuAction()}</div> : null}
<Group justify="space-between" wrap="wrap">
<Text fw={700}></Text>
<Button size="xs" variant="default" onClick={update}>
<Button size="xs" variant="default" onClick={updateAction}>
</Button>
</Group>
@@ -130,13 +132,13 @@ export default function InfoSettingContainer(props: {
info={info}
userOptions={userOptions}
userEnums={userEnums}
onUpdated={update}
onUpdatedAction={updateAction}
/>
<SamplingPlanContainer
projectId={projectId}
info={info}
onUpdated={update}
onUpdated={updateAction}
/>
<LabelSchemeContainer info={info} />
@@ -148,7 +150,7 @@ export default function InfoSettingContainer(props: {
opened={adminModalOpen}
value={info?.admin_user ?? []}
options={userOptions}
onClose={async (next) => {
onCloseAction={async (next) => {
setAdminModalOpen(false)
if (!next || projectId === -1) return
try {
@@ -158,7 +160,7 @@ export default function InfoSettingContainer(props: {
title: "操作成功",
message: "已保存项目管理员",
})
update()
updateAction()
} catch (e) {
notifications.show({
color: "red",