diff --git a/src/assets/images/nav-1.png b/src/assets/images/nav-1.png deleted file mode 100644 index 74b7ecf..0000000 Binary files a/src/assets/images/nav-1.png and /dev/null differ diff --git a/src/assets/images/nav-2.png b/src/assets/images/nav-2.png deleted file mode 100644 index 8a55ce7..0000000 Binary files a/src/assets/images/nav-2.png and /dev/null differ diff --git a/src/assets/images/nav-3.png b/src/assets/images/nav-3.png deleted file mode 100644 index 5926c6d..0000000 Binary files a/src/assets/images/nav-3.png and /dev/null differ diff --git a/src/assets/images/nav-4.png b/src/assets/images/nav-4.png deleted file mode 100644 index b778759..0000000 Binary files a/src/assets/images/nav-4.png and /dev/null differ diff --git a/src/components/DetailForm/index.js b/src/components/DetailForm/index.js index 03c343d..dd67b1e 100644 --- a/src/components/DetailForm/index.js +++ b/src/components/DetailForm/index.js @@ -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 /> - + 未开始 @@ -196,7 +198,7 @@ export default () => { - + 紧急重要 diff --git a/src/components/DetailSearchBar/index.js b/src/components/DetailSearchBar/index.js index d22af3c..74d4448 100644 --- a/src/components/DetailSearchBar/index.js +++ b/src/components/DetailSearchBar/index.js @@ -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) { diff --git a/src/pages/Bottom/index.js b/src/pages/Bottom/index.js index 39e5c36..191029b 100644 --- a/src/pages/Bottom/index.js +++ b/src/pages/Bottom/index.js @@ -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: , - badge: '1', + // badge: '1', }, { key: '/mobile/listTask', title: '列表任务', icon: , - badge: '2', + // badge: '2', }, { key: '/mobile/calTask', title: '日历任务', - icon: , - badge: '3', + icon: , + // badge: '3', }, { key: '/mobile/me', title: '我的', icon: , - badge: '4', + // badge: '4', }, ] class BottomInner extends React.Component { diff --git a/src/pages/DetailSearchContext/index.js b/src/pages/DetailSearchContext/index.js index 5f22e9f..ff3afbb 100644 --- a/src/pages/DetailSearchContext/index.js +++ b/src/pages/DetailSearchContext/index.js @@ -32,31 +32,34 @@ const DetailSearchContext = () => { if (!search) { return } - let searchMap = new Map( - search.data?.orSearchModel?.andList.map(searchObj => [searchObj.name, searchObj])); - if (searchMap.has("pid")) { + if (search.data && search.data.orSearchModel && search.data.orSearchModel.andList) { + let searchMap = new Map( + search.data.orSearchModel.andList.map(searchObj => [searchObj.name, searchObj])); + if (searchMap.has("pid")) { - // form.setFieldValue(task.name); - } - if (searchMap.has("state")) { - form.setFieldValue("state", searchMap.get("state").value.split(',')) - } - if (searchMap.has("priority")) { - form.setFieldValue("priority", searchMap.get("priority").value.split(',')) + // form.setFieldValue(task.name); + } + if (searchMap.has("state")) { + form.setFieldValue("state", searchMap.get("state").value.split(',')) + } + 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) - } - 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') + 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') + } } } @@ -67,9 +70,9 @@ const DetailSearchContext = () => { onFinish={(values) => { console.log("Form", values) let andList = [] - let searchCondition =[] + let searchCondition = [] let andSearchModel = {} - let orSearchModel = {"andList":searchCondition,andSearchModel} + let orSearchModel = {"andList": searchCondition, andSearchModel} const {pidArray, name, priority, state, todoDay, allOverdueTasks} = values; if (pidArray && pidArray.length !== 0) { diff --git a/src/pages/Home/index.js b/src/pages/Home/index.js index afcf227..31d3c6b 100644 --- a/src/pages/Home/index.js +++ b/src/pages/Home/index.js @@ -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,75 +13,78 @@ const Home = () => { console.log("Home", location); const searchUrl = location?.state?.search; const [pName, setName] = React.useState(""); - const [search, setSearch] = React.useState(searchUrl ? searchUrl : { - "pageSize": 20, - "pageNumber": 1, - "data": { - "orSearchModel": { - "andList": [ - {"name": "state", "value": "8,9", "operateType": "IN"}, - ], - "andSearchModel": { + const [search, setSearch] = React.useState() + const updateSearch = (values) => { + setSearch(values); + }; + useEffect(() => { + setSearch(searchUrl ? searchUrl : { + "pageSize": 20, + "pageNumber": 1, + "data": { + "orSearchModel": { "andList": [ - { - "name": "expectedStartTime", - "value": dayjs().add(1, "d").set('h', 0).set('m', 0).set('s', 0).set('ms', 0).format(), - "operateType": "<" - }, - { - "name": "expectedEndTime", - "value": dayjs().set('h', 0).set('m', 0).set('s', 0).set('ms', 0).format(), - "operateType": ">" - } + {"name": "state", "value": "8,9", "operateType": "IN"}, ], - "orSearchModel": { + "andSearchModel": { "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(), - "operateType": ">" - }, { "name": "expectedEndTime", - "value": dayjs().set('h', 0).set('m', 0).set('s', 0).set('ms', 0).format(), - "operateType": "NULL" + "value": dayStartUtcFormat(dayjs()), + "operateType": ">" } ], "orSearchModel": { "andList": [ { - "name": "expectedEndTime", - "value": dayjs().add(1, "d").set('h', 0).set('m', 0).set('s', 0).set('ms', 0).format(), + "name": "expectedStartTime", + "value": nextDayStartUtcFormat(dayjs()), "operateType": "<" }, { - "name": "expectedEndTime", - "value": dayjs().set('h', 0).set('m', 0).set('s', 0).set('ms', 0).format(), + "name": "expectedStartTime", + "value": dayStartUtcFormat(dayjs()), "operateType": ">" }, { - "name": "expectedStartTime", - "value": dayjs().set('h', 0).set('m', 0).set('s', 0).set('ms', 0).format(), + "name": "expectedEndTime", + "value": dayStartUtcFormat(dayjs()), "operateType": "NULL" } ], + "orSearchModel": { + "andList": [ + { + "name": "expectedEndTime", + "value": nextDayStartUtcFormat(dayjs()), + "operateType": "<" + }, + { + "name": "expectedEndTime", + "value": dayStartUtcFormat(dayjs()), + "operateType": ">" + }, + { + "name": "expectedStartTime", + "value": dayStartUtcFormat(dayjs()), + "operateType": "NULL" + } + ], + } } - } + }, }, - }, - "andList": [ - {"name": "state", "value": "10", "operateType": "="} - ] - } - }) - const updateSearch = (values) => { - setSearch(values); - }; + "andList": [ + {"name": "state", "value": "10", "operateType": "="} + ] + } + }) + },[searchUrl]) return (
diff --git a/src/pages/ToDoList/index.js b/src/pages/ToDoList/index.js index 344434c..13b2058 100644 --- a/src/pages/ToDoList/index.js +++ b/src/pages/ToDoList/index.js @@ -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) - }) - setPageNumber(pageNumber + 1) + 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 ( @@ -75,8 +85,13 @@ const ToDoList = () => { console.log("refresh") getTaskList({...search, "pageNumber": 1}).then(result => { setTaskList(result.content) - setPageNumber(1) - setHasMore(result.page.number < result.page.totalPages) + if (result.page.number < result.page.totalPages){ + setHasMore(true) + setPageNumber(pageNumber + 1) + }else { + setHasMore(false) + setPageNumber(1) + } }) }} > @@ -187,9 +202,9 @@ const ToDoList = () => { {item.expectedEndTime && (stateMap.get(item.state)?.jsonValue?.color ? ( - 结束时间:{dayjs(item.expectedEndTime).format(DATE_TIME_FORMAT)}) : + {dayjs(item.expectedEndTime).format(DATE_TIME_FORMAT_SIMPLE)}) : ( - 结束时间:{dayjs(item.expectedEndTime).format(DATE_TIME_FORMAT)})) + {dayjs(item.expectedEndTime).format(DATE_TIME_FORMAT_SIMPLE)})) }
} description={item.description} diff --git a/src/utils/requestUtil.js b/src/utils/requestUtil.js index a13fdd8..91c8c0e 100644 --- a/src/utils/requestUtil.js +++ b/src/utils/requestUtil.js @@ -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); }); \ No newline at end of file diff --git a/src/utils/timeFormatUtil.js b/src/utils/timeFormatUtil.js index c4e8427..b6f9ae2 100644 --- a/src/utils/timeFormatUtil.js +++ b/src/utils/timeFormatUtil.js @@ -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} \ No newline at end of file +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} \ No newline at end of file