feat:backup

This commit is contained in:
1708-huayu 2025-01-14 19:47:19 +08:00
parent 791e0c2ef6
commit 9c81ff199c
12 changed files with 147 additions and 90 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.9 KiB

View File

@ -29,6 +29,8 @@ export default () => {
// 获取form引用
const [form] = Form.useForm();
useEffect(() => {
if (location.pathname.endsWith("addTask")) {
setTitle("添加任务");
setCurrentPath("addTask");
@ -186,7 +188,7 @@ export default () => {
showCount
/>
</Form.Item>
<Form.Item name='state' label='任务状态' required disabled={updateFiledDisabled}>
<Form.Item name='state' label='任务状态' required={true} disabled={updateFiledDisabled}>
<Radio.Group>
<Space direction='vertical'>
<Radio value='8'><Tag color='primary'>未开始</Tag></Radio>
@ -196,7 +198,7 @@ export default () => {
</Space>
</Radio.Group>
</Form.Item>
<Form.Item name='priority' label='任务优先级' disabled={updateFiledDisabled}>
<Form.Item name='priority' label='任务优先级' required={true} disabled={updateFiledDisabled}>
<Radio.Group>
<Space direction='vertical'>
<Radio value='3'><Tag color='danger'>紧急重要</Tag></Radio>

View File

@ -18,7 +18,7 @@ const DetailSearchBar = (props) => {
(search.data.andList?.length > 0 || search.data.orList?.length > 0)
useEffect(() => {
initSearch();
}, []);
}, [search]);
const initSearch = async () => {
if (search && search.data) {

View File

@ -3,7 +3,7 @@ import {TabBar, FloatingBubble, Toast} from 'antd-mobile'
import WidthUseNavigate from './../WidthUseNavigate/index'
import {
AppOutline,
MessageOutline,
CalendarOutline,
UnorderedListOutline,
UserOutline,
AddOutline,
@ -15,25 +15,25 @@ const tabs = [
key: '/mobile/treeTask',
title: '主子任务',
icon: <AppOutline/>,
badge: '1',
// badge: '1',
},
{
key: '/mobile/listTask',
title: '列表任务',
icon: <UnorderedListOutline/>,
badge: '2',
// badge: '2',
},
{
key: '/mobile/calTask',
title: '日历任务',
icon: <MessageOutline/>,
badge: '3',
icon: <CalendarOutline />,
// badge: '3',
},
{
key: '/mobile/me',
title: '我的',
icon: <UserOutline/>,
badge: '4',
// badge: '4',
},
]
class BottomInner extends React.Component {

View File

@ -32,8 +32,9 @@ const DetailSearchContext = () => {
if (!search) {
return
}
if (search.data && search.data.orSearchModel && search.data.orSearchModel.andList) {
let searchMap = new Map(
search.data?.orSearchModel?.andList.map(searchObj => [searchObj.name, searchObj]));
search.data.orSearchModel.andList.map(searchObj => [searchObj.name, searchObj]));
if (searchMap.has("pid")) {
// form.setFieldValue(task.name);
@ -44,21 +45,23 @@ const DetailSearchContext = () => {
if (searchMap.has("priority")) {
form.setFieldValue("priority", searchMap.get("priority").value.split(','))
}
if (searchMap.has("name")) {
form.setFieldValue("name", searchMap.get("name").value)
}
}
// 结束时间大于todo日开始时间小于结束日
search.data.orSearchModel?.andSearchModel?.andList?.forEach((searchObj) => {
search.data?.orSearchModel?.andSearchModel?.andList?.forEach((searchObj) => {
if (searchObj.name === "expectedEndTime") {
form.setFieldValue("todoDay", dayjs(searchObj.value).toDate())
}
})
if (searchMap.has("name")) {
form.setFieldValue("name", searchMap.get("name").value)
}
if (search.data && search.data.andList) {
let orMap = new Map(search.data.andList.map(searchObj => [searchObj.name, searchObj]));
if (orMap.has("state") && orMap.get("state").value === "10") {
form.setFieldValue("allOverdueTasks", 'checked')
}
}
}
return (
<Form

View File

@ -1,9 +1,10 @@
import React, {Fragment} from 'react'
import React, {Fragment, useEffect} from 'react'
import Bottom from './../Bottom/index'
import './index.css'
import {Outlet, useLocation} from 'react-router-dom'
import DetailSearchBar from "../../components/DetailSearchBar";
import dayjs from "dayjs";
import {dayStartUtcFormat, nextDayStartUtcFormat} from "../../utils/timeFormatUtil";
const Home = () => {
@ -12,7 +13,12 @@ const Home = () => {
console.log("Home", location);
const searchUrl = location?.state?.search;
const [pName, setName] = React.useState("");
const [search, setSearch] = React.useState(searchUrl ? searchUrl : {
const [search, setSearch] = React.useState()
const updateSearch = (values) => {
setSearch(values);
};
useEffect(() => {
setSearch(searchUrl ? searchUrl : {
"pageSize": 20,
"pageNumber": 1,
"data": {
@ -24,12 +30,12 @@ const Home = () => {
"andList": [
{
"name": "expectedStartTime",
"value": dayjs().add(1, "d").set('h', 0).set('m', 0).set('s', 0).set('ms', 0).format(),
"value": nextDayStartUtcFormat(dayjs()),
"operateType": "<"
},
{
"name": "expectedEndTime",
"value": dayjs().set('h', 0).set('m', 0).set('s', 0).set('ms', 0).format(),
"value": dayStartUtcFormat(dayjs()),
"operateType": ">"
}
],
@ -37,17 +43,17 @@ const Home = () => {
"andList": [
{
"name": "expectedStartTime",
"value": dayjs().add(1, "d").set('h', 0).set('m', 0).set('s', 0).set('ms', 0).format(),
"value": nextDayStartUtcFormat(dayjs()),
"operateType": "<"
},
{
"name": "expectedStartTime",
"value": dayjs().set('h', 0).set('m', 0).set('s', 0).set('ms', 0).format(),
"value": dayStartUtcFormat(dayjs()),
"operateType": ">"
},
{
"name": "expectedEndTime",
"value": dayjs().set('h', 0).set('m', 0).set('s', 0).set('ms', 0).format(),
"value": dayStartUtcFormat(dayjs()),
"operateType": "NULL"
}
],
@ -55,17 +61,17 @@ const Home = () => {
"andList": [
{
"name": "expectedEndTime",
"value": dayjs().add(1, "d").set('h', 0).set('m', 0).set('s', 0).set('ms', 0).format(),
"value": nextDayStartUtcFormat(dayjs()),
"operateType": "<"
},
{
"name": "expectedEndTime",
"value": dayjs().set('h', 0).set('m', 0).set('s', 0).set('ms', 0).format(),
"value": dayStartUtcFormat(dayjs()),
"operateType": ">"
},
{
"name": "expectedStartTime",
"value": dayjs().set('h', 0).set('m', 0).set('s', 0).set('ms', 0).format(),
"value": dayStartUtcFormat(dayjs()),
"operateType": "NULL"
}
],
@ -78,9 +84,7 @@ const Home = () => {
]
}
})
const updateSearch = (values) => {
setSearch(values);
};
},[searchUrl])
return (
<div className='body'>

View File

@ -4,7 +4,7 @@ import {deleteTaskById, getTaskList, updateTaskStateById} from "../../utils";
import "./index.css"
import {useLocation, useNavigate, useOutletContext} from "react-router-dom";
import dayjs from "dayjs";
import {DATE_TIME_FORMAT} from "../../utils/timeFormatUtil";
import {DATE_TIME_FORMAT, DATE_TIME_FORMAT_SIMPLE} from "../../utils/timeFormatUtil";
import {getDictionary} from "../../utils/dictUtil";
const reorder = (
@ -26,23 +26,27 @@ const ToDoList = () => {
const [priorityMap, setPriorityMap] = useState([]);
const [stateMap, setStateMap] = useState([])
const navigate = useNavigate();
let loading = false;
let loading = true;
const location = useLocation();
const {search: outletSearch} = useOutletContext()
const search = location.state ? location.state.search : outletSearch;
console.log("ToDoList.search", location, outletSearch)
console.log("ToDoList测试下从添加任务过来条件都没有了",search,outletSearch)
const loadMore = async () => {
if (loading) {
return
}
loading = true;
console.log("loadMore", loading)
await getTaskList({...search, "pageNumber": pageNumber + 1}).then(result => {
setTaskList(val => [...val, ...result.content])
setHasMore(result.page.number < result.page.totalPages)
})
const taskRes = await getTaskList({...search, "pageNumber": pageNumber + 1});
setTaskList(val => [...val, ...taskRes.connect])
if (taskRes.page.number < taskRes.page.totalPages){
setHasMore(true)
setPageNumber(pageNumber + 1)
}else {
setHasMore(false)
setPageNumber(1)
}
loading = false;
}
/**
@ -61,11 +65,17 @@ const ToDoList = () => {
})
getTaskList({...search, "pageNumber": pageNumber}).then(result => {
setTaskList(result.content)
setHasMore(result.page.number < result.page.totalPages)
if (result.page.number < result.page.totalPages){
setHasMore(true)
setPageNumber(pageNumber + 1)
}else {
setHasMore(false)
setPageNumber(1)
}
loading = false;
})
}, [])
}, [useOutletContext()])
const ref = useRef(null)
return (
<Fragment>
@ -75,8 +85,13 @@ const ToDoList = () => {
console.log("refresh")
getTaskList({...search, "pageNumber": 1}).then(result => {
setTaskList(result.content)
if (result.page.number < result.page.totalPages){
setHasMore(true)
setPageNumber(pageNumber + 1)
}else {
setHasMore(false)
setPageNumber(1)
setHasMore(result.page.number < result.page.totalPages)
}
})
}}
>
@ -187,9 +202,9 @@ const ToDoList = () => {
{item.expectedEndTime && (stateMap.get(item.state)?.jsonValue?.color ?
(<span style={{color: stateMap.get(item.state)?.jsonValue?.color}}>
结束时间:{dayjs(item.expectedEndTime).format(DATE_TIME_FORMAT)}</span>) :
{dayjs(item.expectedEndTime).format(DATE_TIME_FORMAT_SIMPLE)}</span>) :
(
<span>结束时间:{dayjs(item.expectedEndTime).format(DATE_TIME_FORMAT)}</span>))
<span>{dayjs(item.expectedEndTime).format(DATE_TIME_FORMAT_SIMPLE)}</span>))
}
</div>}
description={item.description}

View File

@ -1,5 +1,6 @@
import axios from "axios";
import Cookies from "js-cookie";
import {Toast} from "antd-mobile";
export const requestUtil = axios.create({
baseURL: 'http://www.huaruyu.com/',
@ -24,11 +25,25 @@ requestUtil.interceptors.response.use(function (response) {
// 对响应数据做点什么
console.log("response",response);
if (response.data.status.code !== 200){
Toast.show({
content: 'response.data.status.message',
afterClose: () => {
console.log('after')
},
})
}
return response.data.data;
}, function (error) {
// 超出 2xx 范围的状态码都会触发该函数。
// 对响应错误做点什么
Toast.show({
content: error.toString(),
afterClose: () => {
console.log('after')
},
})
if (error.response.status >= 400 && error.response.status <= 500) {
window.location.href = '/login';
}
return Promise.reject(error);
});

View File

@ -1,5 +1,23 @@
import dayjs from "dayjs";
const DATE_FORMAT = "YYYY-MM-DD"
// 到秒没啥意义
const DATE_TIME_FORMAT = "YYYY-MM-DD HH:mm"
export {DATE_TIME_FORMAT,DATE_FORMAT}
const DATE_TIME_FORMAT_SIMPLE = "MM-DD HH:mm"
function dayStartUtcFormat(dayjs) {
if (dayjs) {
return dayjs.set('h', 0).set('m', 0).set('s', 0).set('ms', 0).format()
}
return null;
}
function nextDayStartUtcFormat(dayjs) {
if (dayjs) {
return dayjs.add(1, "d").set('h', 0).set('m', 0).set('s', 0).set('ms', 0).format()
}
return null
}
export {DATE_TIME_FORMAT, DATE_FORMAT,DATE_TIME_FORMAT_SIMPLE,dayStartUtcFormat,nextDayStartUtcFormat}