From 865ff8c9ccf1593787ab137fdd1ecf844c77acf3 Mon Sep 17 00:00:00 2001 From: Jimmy Liow Date: Wed, 24 Jan 2024 13:51:08 +0800 Subject: [PATCH] =?UTF-8?q?=E8=A7=A3=E5=86=B3=E5=AD=90=E7=BB=84=E4=BB=B6?= =?UTF-8?q?=E4=B8=8D=E5=88=B7=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/OrderFollow.jsx | 20 ++-- src/views/SalesManagement.jsx | 212 ++++++++++++++++++++++++---------- 2 files changed, 157 insertions(+), 75 deletions(-) diff --git a/src/views/OrderFollow.jsx b/src/views/OrderFollow.jsx index 624cf9d..ea81d4b 100644 --- a/src/views/OrderFollow.jsx +++ b/src/views/OrderFollow.jsx @@ -181,11 +181,10 @@ const columns = [ }, ] -const AdvanceSearchForm = memo(function AdvanceSearch({ onSubmit }) { +const AdvanceSearchForm = memo(function ({ onSubmit }) { const [form] = Form.useForm() - console.info('AdvanceSearch: ') function handleSubmit(values) { - onSubmit(values); + onSubmit(values) } return (
, [searchCriteria]) const handleSubmit = useCallback((criteria) => { - console.info('onSubmit.searchCriteria: ') - console.info(criteria) setSearchCriteria({ ...criteria, type: 'advance' @@ -292,7 +289,7 @@ function OrderFollow() { return ( <> - + - {orderListMemo} + {/* {orderListMemo} */} + ) function OrderList({ searchCriteria }) { - - const countryList = useGetJson(`https://p9axztuwd7x8a7.mycht.cn/service-InfoSys/InfoSys/GetCountryList`) - console.info(countryList) - console.info('OrderList.searchCriteria: ') console.info(searchCriteria) + const countryList = useGetJson(`https://p9axztuwd7x8a7.mycht.cn/service-InfoSys/InfoSys/GetCountryList`) + return ( - +
) } } diff --git a/src/views/SalesManagement.jsx b/src/views/SalesManagement.jsx index 430e50a..2847c4e 100644 --- a/src/views/SalesManagement.jsx +++ b/src/views/SalesManagement.jsx @@ -1,17 +1,16 @@ import { useNavigate } from 'react-router-dom' -import { useRef, useEffect, useState } from 'react' -import { Row, Col, Divider, Table , Card, Button, Input, - Space, Empty, Radio, Select, DatePicker, Spin, List, Avatar +import { memo, useMemo, useCallback, useEffect, useState } from 'react' +import { + Row, Col, Divider, Table, Card, Button, Input, + Space, Segmented, Radio, Select, Flex, Spin, Form, Switch, DatePicker, List, Avatar } from 'antd' import { StarFilled, ZoomInOutlined, StarOutlined, SearchOutlined, ImportOutlined } from '@ant-design/icons' -import {useFormInput} from '@/hooks/useFormInput' import {useGetJson} from '@/hooks/userFetch' -const { Search } = Input; -const { RangePicker } = DatePicker; +const { RangePicker } = DatePicker const dataSource = [ { @@ -72,70 +71,157 @@ const dataSource = [ }, ]; -const columns = [ - { - title: '顾问', - dataIndex: 'travelAdvisor', - key: 'travelAdvisor', - }, - { - title: '客人名单', - dataIndex: 'contactList', - key: 'contactList', - }, - { - title: '重点订单', - dataIndex: 'important', - key: 'important', - }, - { - title: '潜力客户', - dataIndex: 'star', - key: 'star', - }, - { - title: '成型', - dataIndex: 'ing', - key: 'ing', - }, -]; +const AdvanceSearchForm = memo(function ({ onSubmit }) { + console.info('AdvanceSearchForm') + const [form] = Form.useForm() + function handleSubmit(values) { + if (onSubmit) onSubmit(values) + } + return ( + + + + + + + + + + + + + + + ) +}) + +const SalesTable = function({formValues}) { + console.info('SalesTable') + console.info(formValues) + + const [salesData, setSalesData] = useState([]) + + useEffect(() => { + console.info('SalesTable.useEffect') + // setSalesData([]) // 可改为设置加载状态 + fetch('https://p9axztuwd7x8a7.mycht.cn/service-InfoSys/InfoSys/GetCountryList') + .then(response => response.json()) + .then(json => { + if (salesData.length > 0) { + const timeString = new Date().toISOString() + salesData[0].travelAdvisor = timeString; + setSalesData(salesData) + } else { + setSalesData([...dataSource]) + } + }) + }, [formValues]) + + const columns = [ + { + title: '顾问', + dataIndex: 'travelAdvisor', + key: 'travelAdvisor', + }, + { + title: '客人名单', + dataIndex: 'contactList', + key: 'contactList', + }, + { + title: '重点订单', + dataIndex: 'important', + key: 'important', + }, + { + title: '潜力客户', + dataIndex: 'star', + key: 'star', + }, + { + title: '成型', + dataIndex: 'ing', + key: 'ing', + }, + ] + return ( +
+ ) +} function SalesManagement() { - const keywordProps = useFormInput('') - const countryList = useGetJson(`https://p9axztuwd7x8a7.mycht.cn/service-InfoSys/InfoSys/GetCountryList`) - console.info(countryList) + const [formValues, setFormValues] = useState({}) - useEffect(() => { + const handleSubmit = useCallback((values) => { + setFormValues({...values}) }, []) - + return ( - - - - - - - - - - - - - - - + <> + - -
- - + + ) }