assistant-todo-mobile/src/pages/DetailSearchContext/index.js

110 lines
4.6 KiB
JavaScript
Raw Normal View History

2024-12-30 06:24:34 -05:00
import {Button, Checkbox, DatePicker, Form, Input, Space, Switch, Tag} from "antd-mobile";
import ParentTask from "../../components/ParentTask";
import React from "react";
import dayjs from "dayjs";
import {CloseCircleFill} from "antd-mobile-icons";
import {useLocation, useNavigate, useOutletContext} from "react-router-dom";
const now = new Date()
const DetailSearchContext = () => {
const {setTitle} = useOutletContext();
setTitle("搜索查询")
const navigate = useNavigate();
const [form] = Form.useForm();
const [visible, setVisible] = React.useState(false);
const location = useLocation();
const search = location.state?.search;
console.log("DetailSearchContext.search",search)
return (
<Form
form={form}
layout='horizontal'
onFinish={(values)=>{
navigate("/home/todo", { state: { search: values } })
}}
footer={
<Button block type='submit' color='primary' size='large'>
搜索
</Button>
}
>
<ParentTask form={form}/>
<Form.Item
name='name'
label='任务信息'
>
<Input onChange={console.log} placeholder='任务信息'/>
</Form.Item>
<Form.Item name='state' label='任务状态' required>
<Checkbox.Group>
<Space direction='vertical'>
<Checkbox value='8'><Tag color='danger'>未开始</Tag></Checkbox>
<Checkbox value='9'><Tag color='warning'>进行中</Tag></Checkbox>
<Checkbox value='7'><Tag color='success'>已完成</Tag></Checkbox>
<Checkbox value='10'><Tag color='success'>未完成</Tag></Checkbox>
<Checkbox value='6'><Tag>已关闭</Tag></Checkbox>
</Space>
</Checkbox.Group>
</Form.Item>
<Form.Item name='priority' label='任务优先级'>
<Checkbox.Group>
<Space direction='vertical'>
<Checkbox value='3'><Tag color='danger'>紧急重要</Tag></Checkbox>
<Checkbox value='2'><Tag color='warning'>不紧急重要</Tag></Checkbox>
<Checkbox value='1'><Tag>紧急不重要</Tag></Checkbox>
<Checkbox value='0'><Tag color='success'>不紧急不重要</Tag></Checkbox>
</Space>
</Checkbox.Group>
</Form.Item>
<Form.Item noStyle
shouldUpdate={(prevValues, curValues) =>
prevValues.todoDay !== curValues.todoDay
}
>
{({ getFieldValue, setFieldsValue }) => (
<Form.Item
name='todoDay'
trigger='onConfirm'
label='TODO日'
help='期望开始时间和期望结束时间包含当日时间段'
arrow={
getFieldValue('todoDay') ? (
<CloseCircleFill
style={{
color: 'var(--adm-color-light)',
fontSize: 14,
}}
onClick={e => {
e.stopPropagation()
setFieldsValue({ todoDay: null })
}}
/>) : true
}
onClick={() => {
setVisible(true)
}}
>
<DatePicker
visible={visible}
onClose={() => {
setVisible(false)
}}
>
{value =>
value ? dayjs(value).format('YYYY-MM-DD') : '请选择日期'
}
</DatePicker>
</Form.Item>
)}
</Form.Item>
<Form.Item
name='delivery'
label='延期任务'
childElementPosition='right'
>
<Switch defaultChecked={true}/>
</Form.Item>
</Form>)
}
export default DetailSearchContext;