diff --git a/src/App.js b/src/App.js index 43d4b10..31e7478 100644 --- a/src/App.js +++ b/src/App.js @@ -33,6 +33,8 @@ function App() { }> }> }> + }> + }> {/* }> diff --git a/src/components/DataPickerItem/index.jsx b/src/components/DataPickerItem/index.jsx index 4c920e3..990673c 100644 --- a/src/components/DataPickerItem/index.jsx +++ b/src/components/DataPickerItem/index.jsx @@ -8,7 +8,7 @@ import {CloseCircleFill} from 'antd-mobile-icons' const DatePickerItem = (props) => { const [pickerVisible, setPickerVisible] = useState(false) - const {fieldName, labelName} = props + const {fieldName, labelName,disabled} = props const labelRenderer = useCallback((type, data) => { switch (type) { case 'year': @@ -30,14 +30,17 @@ const DatePickerItem = (props) => { return ( - prevValues.fieldName !== curValues.fieldName + shouldUpdate={(prevValues, curValues) =>{ + return prevValues.fieldName !== curValues.fieldName + } + } > {({getFieldValue, setFieldsValue}) => ( { fontSize: 14, }} onClick={e => { + // 计算属性名:允许你在对象字面量中使用表达式来动态确定属性名。 + setFieldsValue({[fieldName]: null}) e.stopPropagation() - setFieldsValue({fieldName: null}) }}/>) : true } onClick={() => { diff --git a/src/components/DetailForm/index.js b/src/components/DetailForm/index.js index cd54d05..783852f 100644 --- a/src/components/DetailForm/index.js +++ b/src/components/DetailForm/index.js @@ -1,60 +1,145 @@ -import React from 'react' +import React, {useEffect} from 'react' import { Form, Input, Button, Dialog, TextArea, - Space, - Checkbox, Selector, Tag, Radio + Space, Tag, Radio } from 'antd-mobile' import ParentTask from "../ParentTask"; import DatePickerItem from "../DataPickerItem" import "./index.css" -import {addTask} from "../../utils"; -import {useNavigate, useOutletContext} from "react-router-dom"; +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(); - setTitle("添加任务") + 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(); - const onFinish = (values) => { - console.log("提交:",values) - if (values.pidArray===undefined){ - values.pid='0' - }else { - values.pid=values.pidArray[values.pidArray.length-1]; + 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 异常处理 } - addTask(values).then(values=>{ - Dialog.show({ - content: `添加任务${values.name}成功`, - closeOnAction:true, - actions: [ - [ - { - key: 'back', - text: '回到列表', - onClick:()=>{ - navigate("/home/listTask") - } - }, - { - key: 'create', - text: '创建下一条', - onClick:()=>{ - // 清空值 - form.resetFields(); - form.setFieldValue("pidArray",values.pidArray); - } - }, - ], - ], - }) + + }, []) + + 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("/home/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 ( <>
{ onFinish={onFinish} footer={ } > - + + + + - +