提交 ae13cac9 作者: 龚洪江 提交者: ZhangLingKun

修复:服务上传提示,商品返回当前页

上级 48806035
...@@ -50,7 +50,9 @@ export const Uploader: React.FC<PropsType> = (props) => { ...@@ -50,7 +50,9 @@ export const Uploader: React.FC<PropsType> = (props) => {
const isType = fileType?.includes(res.type); const isType = fileType?.includes(res.type);
const isSize = res.size / 1024 / 1024 < (fileSize || 2); const isSize = res.size / 1024 / 1024 < (fileSize || 2);
if (!isType) { if (!isType) {
message.error(`请上传${fileType.join('、')}格式的文件!`).then(); message
.error(`请上传${fileType.join('、').replace(/image\/|video\//g, '')}格式的文件!`)
.then();
return isType; return isType;
} }
if (!isSize) { if (!isSize) {
......
import SearchBox, { searchColumns } from '~/components/search-box'; import SearchBox, { searchColumns } from '~/components/search-box';
import React, { useEffect, useState } from 'react'; import React, { useEffect, useRef, useState } from 'react';
import { useNavigate } from 'react-router-dom'; import { useNavigate, useSearchParams } from 'react-router-dom';
import { Button, Card, Image, message, Modal, Table } from 'antd'; import { Button, Card, Image, message, Modal, Table } from 'antd';
import { import {
ArrowDownOutlined, ArrowDownOutlined,
...@@ -14,6 +14,7 @@ import { InterDataType, InterReqType, PaginationProps } from '~/api/interface'; ...@@ -14,6 +14,7 @@ import { InterDataType, InterReqType, PaginationProps } from '~/api/interface';
import { listGoodsType } from '~/api/interface/goodsType'; import { listGoodsType } from '~/api/interface/goodsType';
import { CategoryManageAPI } from '~/api'; import { CategoryManageAPI } from '~/api';
import { filterObjAttr } from '~/utils'; import { filterObjAttr } from '~/utils';
import qs from 'query-string';
//商品返回类型 //商品返回类型
type goodsType = InterDataType<listGoodsType>['list']; type goodsType = InterDataType<listGoodsType>['list'];
...@@ -21,7 +22,10 @@ type goodsType = InterDataType<listGoodsType>['list']; ...@@ -21,7 +22,10 @@ type goodsType = InterDataType<listGoodsType>['list'];
type goodsSearchParameters = Omit<InterReqType<listGoodsType>, 'pageNo' | 'pageSize' | 'goodsType'>; type goodsSearchParameters = Omit<InterReqType<listGoodsType>, 'pageNo' | 'pageSize' | 'goodsType'>;
const GoodsList = () => { const GoodsList = () => {
//筛选ref
const searchRef = useRef();
const navigate = useNavigate(); const navigate = useNavigate();
const [searchParams, setSearchParams] = useSearchParams();
const tabList = [ const tabList = [
{ {
key: '1', key: '1',
...@@ -111,21 +115,47 @@ const GoodsList = () => { ...@@ -111,21 +115,47 @@ const GoodsList = () => {
const onTabChange = (key: string) => { const onTabChange = (key: string) => {
pagination.pageNo = 1; pagination.pageNo = 1;
pagination.pageSize = 10;
query.status = key === '1' ? undefined : key === '2' ? 1 : 0; query.status = key === '1' ? undefined : key === '2' ? 1 : 0;
setSearchParams(
qs.stringify({
pageNo: 1,
pageSize: 10,
...query,
status: query.status === undefined ? 'all' : query.status,
}),
);
getGoodsList(query); getGoodsList(query);
setQuery(query); setQuery(query);
setActiveTabKey(key); setActiveTabKey(key);
}; };
const paginationChange = (pageNo: number, pageSize: number) => { const paginationChange = (pageNo: number, pageSize: number) => {
pagination.pageSize = pageSize;
pagination.pageNo = pageNo; pagination.pageNo = pageNo;
pagination.pageSize = pageSize;
setSearchParams(
qs.stringify({
pageNo: pageNo,
pageSize: pageSize,
...query,
status: query.status === undefined ? 'all' : query.status,
}),
);
getGoodsList(query); getGoodsList(query);
}; };
//筛选 //筛选
const searchSuccess = (data: any) => { const searchSuccess = (data: any) => {
pagination.pageNo = 1; pagination.pageNo = 1;
setQuery(filterObjAttr(data, ['time'])); pagination.pageSize = 10;
getGoodsList(filterObjAttr(data, ['time'])); setQuery({ ...filterObjAttr(data, ['time']), status: query.status });
getGoodsList({ ...filterObjAttr(data, ['time']), status: query.status });
setSearchParams(
qs.stringify({
pageNo: 1,
pageSize: 10,
...filterObjAttr(data, ['time']),
status: query.status === undefined ? 'all' : query.status,
}),
);
}; };
//商品列表 //商品列表
const getGoodsList = (query?: goodsSearchParameters) => { const getGoodsList = (query?: goodsSearchParameters) => {
...@@ -184,6 +214,7 @@ const GoodsList = () => { ...@@ -184,6 +214,7 @@ const GoodsList = () => {
if (code === '200') { if (code === '200') {
message.success(status ? '上架成功' : '下架成功'); message.success(status ? '上架成功' : '下架成功');
getGoodsList(query); getGoodsList(query);
setSelectedRowKeys([]);
} }
}, },
); );
...@@ -204,14 +235,44 @@ const GoodsList = () => { ...@@ -204,14 +235,44 @@ const GoodsList = () => {
} }
message.success('删除成功'); message.success('删除成功');
getGoodsList(query); getGoodsList(query);
setSelectedRowKeys([]);
} }
}); });
}, },
}); });
}; };
useEffect(() => { useEffect(() => {
getGoodsList();
getDirectoryList(); getDirectoryList();
pagination.pageNo = Number(searchParams.get('pageNo') || 1);
pagination.pageSize = Number(searchParams.get('pageSize') || 10);
getGoodsList({
goodsName: searchParams.get('goodsName') || undefined,
directoryId: searchParams.get('directoryId')
? Number(searchParams.get('directoryId'))
: undefined,
startTime: searchParams.get('startTime') || undefined,
endTime: searchParams.get('endTime') || undefined,
status:
searchParams.get('status') === 'all' || searchParams.get('status') === null
? undefined
: Number(searchParams.get('status')),
});
setActiveTabKey(
searchParams.get('status') === 'all' || searchParams.get('status') === null
? '1'
: Number(searchParams.get('status')) === 1
? '2'
: '3',
);
(searchRef.current as any).getForm().setFieldsValue({
goodsName: searchParams.get('goodsName') || undefined,
directoryId: searchParams.get('directoryId')
? Number(searchParams.get('directoryId'))
: undefined,
time: searchParams.get('startTime')
? [searchParams.get('startTime'), searchParams.get('endTime')]
: undefined,
});
}, []); }, []);
return ( return (
<div className='goods-list'> <div className='goods-list'>
...@@ -223,6 +284,7 @@ const GoodsList = () => { ...@@ -223,6 +284,7 @@ const GoodsList = () => {
</Button> </Button>
} }
searchData={searchSuccess} searchData={searchSuccess}
baseRef={searchRef}
/> />
<Card tabList={tabList} activeTabKey={activeTabKey} onTabChange={onTabChange}> <Card tabList={tabList} activeTabKey={activeTabKey} onTabChange={onTabChange}>
<div className='header-operate' style={{ marginBottom: '10px' }}> <div className='header-operate' style={{ marginBottom: '10px' }}>
......
import SearchBox, { searchColumns } from '~/components/search-box'; import SearchBox, { searchColumns } from '~/components/search-box';
import React, { useEffect, useState } from 'react'; import React, { useEffect, useRef, useState } from 'react';
import { useNavigate } from 'react-router-dom'; import { useNavigate, useSearchParams } from 'react-router-dom';
import { Button, Card, Image, message, Modal, Table } from 'antd'; import { Button, Card, Image, message, Modal, Table } from 'antd';
import { import {
ArrowDownOutlined, ArrowDownOutlined,
...@@ -14,13 +14,17 @@ import { InterDataType, InterReqType, PaginationProps } from '~/api/interface'; ...@@ -14,13 +14,17 @@ import { InterDataType, InterReqType, PaginationProps } from '~/api/interface';
import { listGoodsType } from '~/api/interface/goodsType'; import { listGoodsType } from '~/api/interface/goodsType';
import { CategoryManageAPI } from '~/api'; import { CategoryManageAPI } from '~/api';
import { filterObjAttr } from '~/utils'; import { filterObjAttr } from '~/utils';
import qs from 'query-string';
//商品返回类型 //商品返回类型
type goodsType = InterDataType<listGoodsType>['list']; type goodsType = InterDataType<listGoodsType>['list'];
//商品列表筛选类型 //商品列表筛选类型
type goodsSearchParameters = Omit<InterReqType<listGoodsType>, 'pageNo' | 'pageSize' | 'goodsType'>; type goodsSearchParameters = Omit<InterReqType<listGoodsType>, 'pageNo' | 'pageSize' | 'goodsType'>;
const RentList = () => { const RentList = () => {
//筛选ref
const searchRef = useRef();
const navigate = useNavigate(); const navigate = useNavigate();
const [searchParams, setSearchParams] = useSearchParams();
const tabList = [ const tabList = [
{ {
key: '1', key: '1',
...@@ -110,7 +114,16 @@ const RentList = () => { ...@@ -110,7 +114,16 @@ const RentList = () => {
const onTabChange = (key: string) => { const onTabChange = (key: string) => {
pagination.pageNo = 1; pagination.pageNo = 1;
pagination.pageSize = 10;
query.status = key === '1' ? undefined : key === '2' ? 1 : 0; query.status = key === '1' ? undefined : key === '2' ? 1 : 0;
setSearchParams(
qs.stringify({
pageNo: 1,
pageSize: 10,
...query,
status: query.status === undefined ? 'all' : query.status,
}),
);
getGoodsList(query); getGoodsList(query);
setQuery(query); setQuery(query);
setActiveTabKey(key); setActiveTabKey(key);
...@@ -118,13 +131,30 @@ const RentList = () => { ...@@ -118,13 +131,30 @@ const RentList = () => {
const paginationChange = (pageNo: number, pageSize: number) => { const paginationChange = (pageNo: number, pageSize: number) => {
pagination.pageSize = pageSize; pagination.pageSize = pageSize;
pagination.pageNo = pageNo; pagination.pageNo = pageNo;
setSearchParams(
qs.stringify({
pageNo: pageNo,
pageSize: pageSize,
...query,
status: query.status === undefined ? 'all' : query.status,
}),
);
getGoodsList(query); getGoodsList(query);
}; };
//筛选 //筛选
const searchSuccess = (data: any) => { const searchSuccess = (data: any) => {
pagination.pageNo = 1; pagination.pageNo = 1;
setQuery(filterObjAttr(data, ['time'])); pagination.pageSize = 10;
getGoodsList(filterObjAttr(data, ['time'])); setQuery({ ...filterObjAttr(data, ['time']), status: query.status });
getGoodsList({ ...filterObjAttr(data, ['time']), status: query.status });
setSearchParams(
qs.stringify({
pageNo: 1,
pageSize: 10,
...filterObjAttr(data, ['time']),
status: query.status === undefined ? 'all' : query.status,
}),
);
}; };
//商品列表 //商品列表
const getGoodsList = (query?: goodsSearchParameters) => { const getGoodsList = (query?: goodsSearchParameters) => {
...@@ -209,8 +239,37 @@ const RentList = () => { ...@@ -209,8 +239,37 @@ const RentList = () => {
}); });
}; };
useEffect(() => { useEffect(() => {
getGoodsList();
getDirectoryList(); getDirectoryList();
pagination.pageNo = Number(searchParams.get('pageNo') || 1);
pagination.pageSize = Number(searchParams.get('pageSize') || 10);
getGoodsList({
goodsName: searchParams.get('goodsName') || undefined,
directoryId: searchParams.get('directoryId')
? Number(searchParams.get('directoryId'))
: undefined,
startTime: searchParams.get('startTime') || undefined,
endTime: searchParams.get('endTime') || undefined,
status:
searchParams.get('status') === 'all' || searchParams.get('status') === null
? undefined
: Number(searchParams.get('status')),
});
setActiveTabKey(
searchParams.get('status') === 'all' || searchParams.get('status') === null
? '1'
: Number(searchParams.get('status')) === 1
? '2'
: '3',
);
(searchRef.current as any).getForm().setFieldsValue({
goodsName: searchParams.get('goodsName') || undefined,
directoryId: searchParams.get('directoryId')
? Number(searchParams.get('directoryId'))
: undefined,
time: searchParams.get('startTime')
? [searchParams.get('startTime'), searchParams.get('endTime')]
: undefined,
});
}, []); }, []);
return ( return (
<div className='goods-list'> <div className='goods-list'>
...@@ -222,6 +281,7 @@ const RentList = () => { ...@@ -222,6 +281,7 @@ const RentList = () => {
</Button> </Button>
} }
searchData={searchSuccess} searchData={searchSuccess}
baseRef={searchRef}
/> />
<Card tabList={tabList} activeTabKey={activeTabKey} onTabChange={onTabChange}> <Card tabList={tabList} activeTabKey={activeTabKey} onTabChange={onTabChange}>
<div className='header-operate' style={{ marginBottom: '10px' }}> <div className='header-operate' style={{ marginBottom: '10px' }}>
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论