提交 3497d397 作者: 翁进城

filter组件优化,onChange增加返回接口适配对象

上级 0d742e47
...@@ -9,6 +9,15 @@ import ModelItem from "./compoents/modelItem"; ...@@ -9,6 +9,15 @@ import ModelItem from "./compoents/modelItem";
import PartItem from "./compoents/partItem"; import PartItem from "./compoents/partItem";
import QualityItem from "./compoents/qualityItem"; import QualityItem from "./compoents/qualityItem";
export type AdapterResult = {
brandId?: number;
districtId?: number;
modelId?: number;
partsId?: number;
productCategoryId?: number;
qualityId?: number;
};
export type FilterResult = { export type FilterResult = {
region?: RegionResp; region?: RegionResp;
brand?: FilterOptionResp; brand?: FilterOptionResp;
...@@ -23,7 +32,10 @@ type itemType = "类目" | "地域" | "品牌" | "部件" | "型号" | "成色"; ...@@ -23,7 +32,10 @@ type itemType = "类目" | "地域" | "品牌" | "部件" | "型号" | "成色";
type Props = { type Props = {
types: itemType[]; //需要包含的筛选条件项 types: itemType[]; //需要包含的筛选条件项
showResultItem: Boolean; //显示结果栏 showResultItem: Boolean; //显示结果栏
onChange: (filterResult: FilterResult) => void; //筛选条件更改事件 onChange: (
filterResult: FilterResult,
adapterFilterResult: AdapterResult, //适配器,直接用于接口请求
) => void; //筛选条件更改事件
}; };
export default function Filter(props: Props) { export default function Filter(props: Props) {
const [result, setResult] = useState<FilterResult>({}); const [result, setResult] = useState<FilterResult>({});
...@@ -34,8 +46,18 @@ export default function Filter(props: Props) { ...@@ -34,8 +46,18 @@ export default function Filter(props: Props) {
}; };
useEffect(() => { useEffect(() => {
props.onChange(result); props.onChange(
}, [result, props]); result,
{
brandId: result.brand?.id,
districtId: result.region?.id,
modelId: result.model?.id,
partsId: result.part?.id,
productCategoryId: result.category?.id,
qualityId: result.quality?.id,
}
);
}, [result]);
const onDel = (key: string) => { const onDel = (key: string) => {
//@ts-ignore //@ts-ignore
delete result[key]; delete result[key];
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论