From 4aa0b23932bb7920d33b61d363f437bac703cf12 Mon Sep 17 00:00:00 2001 From: Jimmy Liow Date: Fri, 19 Jan 2024 15:17:52 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=20postForm=E3=80=81=E5=88=86?= =?UTF-8?q?=E7=A6=BB=E8=AE=A2=E5=8D=95=E5=88=97=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/hooks/userFetch.js | 33 +++++- src/main.jsx | 2 +- src/views/App.jsx | 18 ++-- src/views/OrderFollow.jsx | 184 ++++++++++++++++++---------------- src/views/SalesManagement.jsx | 4 +- 5 files changed, 139 insertions(+), 102 deletions(-) diff --git a/src/hooks/userFetch.js b/src/hooks/userFetch.js index d1a195d..c58ae03 100644 --- a/src/hooks/userFetch.js +++ b/src/hooks/userFetch.js @@ -13,7 +13,7 @@ function checkStatus(response) { } } -export function useJson(url) { +export function useGetJson(url) { const [data, setData] = useState(null) useEffect(() => { if (url) { @@ -26,9 +26,34 @@ export function useJson(url) { setData(json) } }) - return () => { - ignore = true - } + + return () => { ignore = true } + } + }, [url]) + + return data +} + +export function usePostForm(url, formData) { + const [data, setData] = useState(null) + useEffect(() => { + if (url) { + let ignore = false + fetch(url, { + method: 'POST', + body: formData + }).then(checkStatus) + .then(response => response.json()) + .then(json => { + if (!ignore) { + setData(json) + } + }) + .catch(error => { + throw error + }) + + return () => { ignore = true } } }, [url]) diff --git a/src/main.jsx b/src/main.jsx index d2d77af..24e43f8 100644 --- a/src/main.jsx +++ b/src/main.jsx @@ -60,7 +60,7 @@ ReactDOM.createRoot(document.getElementById('root')).render( // - +
Loading...
} diff --git a/src/views/App.jsx b/src/views/App.jsx index 1888cf9..827d5cc 100644 --- a/src/views/App.jsx +++ b/src/views/App.jsx @@ -1,7 +1,7 @@ import { Outlet, Link, useHref, NavLink } from 'react-router-dom' import { useRef, useEffect, useState } from 'react' import { Layout, Menu, ConfigProvider, theme, Empty, Row, Col, Dropdown, Space, Typography, Result, Select, App as AntApp } from 'antd' -import { DownOutlined } from "@ant-design/icons"; +import { DownOutlined } from '@ant-design/icons'; import ErrorBoundary from '@/components/ErrorBoundary'; import zhLocale from 'antd/locale/zh_CN'; import { useThemeContext } from '@/stores/ThemeContext' @@ -50,7 +50,7 @@ function App() {
- + App logo @@ -70,26 +70,26 @@ function App() { ]} /> - + 个人资料, - key: "1", + label: 个人资料, + key: '1', }, { - type: "divider", + type: 'divider', }, { - label: 退出, - key: "3", + label: 退出, + key: '3', }, ] }} trigger={['click']} > - e.preventDefault()}> + e.preventDefault()} style={{color: colorPrimary}}> 廖一军 diff --git a/src/views/OrderFollow.jsx b/src/views/OrderFollow.jsx index 5794dac..152ac03 100644 --- a/src/views/OrderFollow.jsx +++ b/src/views/OrderFollow.jsx @@ -1,9 +1,8 @@ import { useNavigate } from 'react-router-dom' import { useRef, useEffect, useState } from 'react' -import { observer } from 'mobx-react' import { Row, Col, Divider, Table, Card, Button, Input, - Space, Segmented, Radio, Select, AutoComplete, Spin, Typography, Flex, DatePicker, List, Avatar + Space, Segmented, Radio, Select, AutoComplete, Spin, Typography, Switch, DatePicker, List, Avatar } from 'antd' import { StarFilled, ZoomInOutlined, StarOutlined, BarsOutlined, AppstoreOutlined, SearchOutlined @@ -184,93 +183,16 @@ const columns = [ function OrderFollow() { const [taskCategory, setTaskCategory] = useState('today') + const [advanceChecked, toggleAdvance] = useState(false) useEffect(() => { }, []) - function AdvanceCriteria() { - return ( - - - - - - - - - - - - - - - - - - - ) - } - return ( - + { @@ -289,8 +210,13 @@ function OrderFollow() { buttonStyle='solid' /> + + {toggleAdvance(!advanceChecked)}} /> + - } /> + } /> - + ) + + function OrderList({ taskCategory }) { + console.info('taskCategory: ' + taskCategory) + return ( + <> +
+ + ) + } + + function AdvanceCriteria() { + return ( + + + + + + + + + + + + + + + + + + ) + } } -export default observer(OrderFollow) +export default OrderFollow diff --git a/src/views/SalesManagement.jsx b/src/views/SalesManagement.jsx index 5f8d186..28f585e 100644 --- a/src/views/SalesManagement.jsx +++ b/src/views/SalesManagement.jsx @@ -9,7 +9,7 @@ import { } from '@ant-design/icons' import {useFormInput} from '@/hooks/useFormInput' -import {useJson} from '@/hooks/userFetch' +import {useGetJson} from '@/hooks/userFetch' const { Search } = Input; const { RangePicker } = DatePicker; @@ -104,7 +104,7 @@ const columns = [ function SalesManagement() { const keywordProps = useFormInput('') - const countryList = useJson(`https://p9axztuwd7x8a7.mycht.cn/service-InfoSys/InfoSys/GetCountryList`) + const countryList = useGetJson(`https://p9axztuwd7x8a7.mycht.cn/service-InfoSys/InfoSys/GetCountryList`) console.info(countryList) useEffect(() => {