perf: 历史记录的每页加载, 5000

dev/chat
Lei OT 2 years ago
parent c5d2332a0e
commit 2530107a36

@ -29,8 +29,8 @@ function DebounceSelect({ fetchOptions, debounceTimeout = 800, ...props }) {
filterOption={false}
showSearch
allowClear
{...props}
maxTagCount={1}
{...props}
onSearch={debounceFetcher}
notFoundContent={fetching ? <Spin size='small' /> : null}
optionFilterProp='label'

@ -14,6 +14,8 @@ const { Sider, Content, Header, Footer } = Layout;
const { Search } = Input;
const { RangePicker } = DatePicker;
const BIG_PAGE_SIZE = MESSAGE_PAGE_SIZE * 100;
// https://media-xsp2-1.cdn.whatsapp.net/v/t61.24694-24/424735646_380563021285029_2962758854250800176_n.jpg?ccb=11-4&oh=01_AdTogiVdUE-ToI9uH-VQKTTLyDbP7bocXUQe1OETOeCgcg&oe=65F7C6AB&_nc_sid=e6ed6c&_nc_cat=104
// eslint-disable-next-line react/display-name
@ -40,10 +42,10 @@ const SearchForm = memo(function ({ initialValues, onSubmit }) {
onFinish={handleSubmit}
style={{}}>
<Form.Item label='顾问' name='agent' style={{ width: '200px' }} rules={[{required: true, message: '请选择顾问'}]}>
<SearchInput placeholder='搜索顾问' fetchOptions={fetchSalesAgent} mode={'tags'} />
<SearchInput placeholder='搜索顾问' fetchOptions={fetchSalesAgent} mode={'tags'} maxTagCount={0} />
</Form.Item>
<Form.Item label='客人' name='customer' style={{ width: '200px' }}>
<SearchInput placeholder='搜索客人' fetchOptions={fetchCustomerList} mode={'tags'} />
<SearchInput placeholder='搜索客人' fetchOptions={fetchCustomerList} mode={'tags'} maxTagCount={0} />
</Form.Item>
<Form.Item label='订单号' name='coli_id'>
<Input placeholder='订单号' allowClear />
@ -103,18 +105,18 @@ function ChatHistory() {
const getMessagesPre = async (chatItem) => {
setMessageListPreLoading(true);
const data = await fetchMessagesHistory({ ...chatItem, lasttime: chatItem.pretime, pagedir: 'pre', });
const data = await fetchMessagesHistory({ ...chatItem, lasttime: chatItem.pretime, pagedir: 'pre', pagesize: BIG_PAGE_SIZE });
setMessageListPreLoading(false);
setChatItemMessages(prevValue => data.concat(prevValue));
const loadPrePage = !(data.length === 0 || data.length < MESSAGE_PAGE_SIZE);
const loadPrePage = !(data.length === 0 || data.length < BIG_PAGE_SIZE);
setParamsForMsgList({ loadPrePage });
};
const getMessagesNext = async (chatItem) => {
setMessageListLoading(true);
const data = await fetchMessagesHistory({...chatItem, pagedir: 'next', });
const data = await fetchMessagesHistory({...chatItem, pagedir: 'next', pagesize: BIG_PAGE_SIZE });
setMessageListLoading(false);
setChatItemMessages(prevValue => prevValue.concat(data));
const loadNextPage = !(data.length === 0 || data.length < MESSAGE_PAGE_SIZE);
const loadNextPage = !(data.length === 0 || data.length < BIG_PAGE_SIZE);
setParamsForMsgList({loadNextPage});
};
@ -129,7 +131,7 @@ function ChatHistory() {
const findIndex = chatItemMessages.findIndex(item => item.id === selected.id);
if (findIndex === -1) {
setMessageListLoading(true);
await getMessagesPre({...paramsForMsgList, pagesize: 10000 });
await getMessagesPre({...paramsForMsgList });
setMessageListLoading(false);
}
setSelectedMatch(selected);

Loading…
Cancel
Save