"use client" import { dispatchOpts } from "@/app/management/person/collection/config" import { taskDispatch } from "@/components/label/api/task" import { Task } from "@/components/label/api/task/typing" import { usePermissionStore } from "@/components/label/store/auth" import { Button, Group, Modal, Select, Stack, Switch, Text, } from "@mantine/core" import { useForm } from "@mantine/form" import { notifications } from "@mantine/notifications" export default function DispatchModal(props: { opened: boolean record: Task.DataProps | null userOptions: Array<{ label: string; value: string }> onCloseAction: (refresh?: boolean) => void }) { const { opened, record, userOptions, onCloseAction } = props const operation_uid = usePermissionStore((s) => s.user_id) const form = useForm({ initialValues: { reject: false, task_status_dst: "", uid_dst: "", }, }) const taskStatusSrc = record?.label_status ?? 0 const dstOptions = dispatchOpts[taskStatusSrc]?.opts?.map((o) => ({ label: o.label, value: String(o.value), })) ?? [] return ( onCloseAction()} title="调度任务" centered size={520}>
{ const opUid = typeof operation_uid === "number" ? operation_uid : Number(operation_uid ?? 0) if (!record?.id || !opUid) { notifications.show({ color: "red", title: "操作失败", message: "缺少必要参数", }) return } const taskStatusDst = Number(values.task_status_dst) if (!Number.isFinite(taskStatusDst)) { notifications.show({ color: "red", title: "校验失败", message: "请选择目标状态", }) return } const uidDst = values.uid_dst ? Number(values.uid_dst) : null if (values.uid_dst && !Number.isFinite(uidDst)) { notifications.show({ color: "red", title: "校验失败", message: "请选择目标人员", }) return } try { await taskDispatch({ operation_uid: opUid, reject: values.reject, task_ids: [record.id], task_status_src: taskStatusSrc, task_status_dst: taskStatusDst, uid_src: record.current_uid ?? null, uid_dst: uidDst, }) notifications.show({ color: "green", title: "操作成功", message: "已调度任务", }) onCloseAction(true) } catch (e) { notifications.show({ color: "red", title: "操作失败", message: e instanceof Error ? e.message : "请求失败", }) } })}> 当前任务:{record?.id ?? "-"}(源状态:{taskStatusSrc}) form.setFieldValue("uid_dst", v ?? "")} /> form.setFieldValue("reject", e.currentTarget.checked) } />
) }