import React, {useEffect} from 'react' import { Form, Input, Button, Dialog, TextArea, Space, Tag, Radio } from 'antd-mobile' import ParentTask from "../ParentTask"; import DatePickerItem from "../DataPickerItem" import "./index.css" import {addTask, getPTask, getTaskById, updateTask} from "../../utils"; import {useLocation, useNavigate, useOutletContext, useSearchParams} from "react-router-dom"; import dayjs from "dayjs"; export default () => { // 进入此页面的操作:添加,修改,详情(按钮为添加任务日志) const location = useLocation(); let [params] = useSearchParams(); // 设置标题栏 const {setTitle} = useOutletContext(); const [currentPath, setCurrentPath] = React.useState(""); const [updateFiledDisabled, setUpdateFiledDisabled] = React.useState(true); const [pName, setPName] = React.useState(); const [pidArray, setPidArray] = React.useState([]); // 路由 const navigate = useNavigate(); // 获取form引用 const [form] = Form.useForm(); useEffect(() => { if (location.pathname.endsWith("addTask")) { setTitle("添加任务"); setCurrentPath("addTask"); setUpdateFiledDisabled(false); } else if (location.pathname.endsWith("updateTask")) { setTitle("修改任务"); setCurrentPath("updateTask"); initData(params.get('id')); setUpdateFiledDisabled(false); } else if (location.pathname.endsWith("selectTask")) { setTitle("任务详情"); setCurrentPath("selectTask"); initData(params.get('id')); setUpdateFiledDisabled(true); } else { // todo 异常处理 } }, []) function editParentTask(id) { if (id === '0') { return; } // 获取父任务信息 getPTask(id).then(res => { let parentMessageVOList = res[0].parentMessageVOList; console.log({res, parentMessageVOList}); setPName(parentMessageVOList[parentMessageVOList.length - 1].name); setPidArray(parentMessageVOList.map(parent => parent.id)) }) } const initData = (id) => { if (id) { getTaskById(id).then((res) => { let contentElement = res.content[0]; if (contentElement) { console.log(contentElement.expectedStartTime, contentElement.expectedEndTime, dayjs(contentElement.expectedStartTime).format(), dayjs(contentElement.expectedStartTime).toDate()) contentElement.expectedStartTime && (contentElement.expectedStartTime = dayjs(contentElement.expectedStartTime).toDate()) contentElement.expectedEndTime && (contentElement.expectedEndTime = dayjs(contentElement.expectedEndTime).toDate()) contentElement.actualStartTime && (contentElement.actualStartTime = dayjs(contentElement.actualStartTime).toDate()) contentElement.actualEndTime && (contentElement.actualEndTime = dayjs(contentElement.actualEndTime).toDate()) form.setFieldsValue(contentElement) editParentTask(contentElement.pid) } }) } } const onFinish = (values) => { if (currentPath === "selectTask") { // 进入添加日志页面 navigate("/detail/logTask") return; } console.log("提交:", values) if (values.pidArray?.length > 0) { values.pid = values.pidArray[values.pidArray.length - 1]; } else if (!values.pid) { values.pid = '0' } if (currentPath === "addTask") { addTask(values).then(values => { Dialog.show({ content: `添加任务${values}成功`, closeOnAction: true, actions: [ [ { key: 'back', text: '回到列表', onClick: () => { navigate("/home/listTask") } }, { key: 'create', text: '创建下一条', onClick: () => { // 清空值 form.resetFields(); form.setFieldValue("pidArray", values.pidArray); } }, ], ], }) }) return; } if (currentPath === "updateTask") { updateTask(values).then(values => { Dialog.show({ content: `修改任务${values}成功`, closeOnAction: true, actions: [ [ { key: 'back', text: '回到列表', onClick: () => { navigate("/home/listTask") } } ], ], }) }) } } return ( <>