From 072e818279de56d7819386d00abaa283db22b9ce Mon Sep 17 00:00:00 2001 From: li tong bao <2903733959@qq.com> Date: Wed, 18 May 2022 18:18:24 +0800 Subject: [PATCH] =?UTF-8?q?--=E5=9C=B0=E5=9D=80=E5=88=97=E8=A1=A8=E7=BB=84?= =?UTF-8?q?=E4=BB=B6=E5=A2=9E=E5=8A=A0=E7=84=A6=E7=82=B9=E9=80=89=E6=8B=A9?= =?UTF-8?q?=E3=80=81=E6=98=AF=E5=90=A6=E6=98=BE=E7=A4=BA=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?=E6=8C=89=E9=92=AE=E3=80=81=E9=BB=98=E8=AE=A4=E9=80=89=E6=8B=A9?= =?UTF-8?q?=E5=80=BC=E5=8F=82=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/AddressList/index.tsx | 35 +++++++++++++++++++++++----- 1 file changed, 29 insertions(+), 6 deletions(-) diff --git a/src/components/AddressList/index.tsx b/src/components/AddressList/index.tsx index e60a20f..8d30912 100644 --- a/src/components/AddressList/index.tsx +++ b/src/components/AddressList/index.tsx @@ -7,15 +7,29 @@ import {addressListApi} from "@/api/addressManager" interface Params{ refresherEnabled?: boolean,//是否开启刷新 onSelect?: (item:any,index:number)=>void,//列表选择 - + addButtonEnabled?: boolean, //是否显示添加按钮 + focusBorderEnabled?: boolean, //焦点显示蓝色边框 + id?: number, //默认选择值 } // 地址列表 const AddressList = memo((props:Params)=>{ + const {addButtonEnabled=true,focusBorderEnabled=false} = props; const {fetchData, state} = addressListApi() // 获取数据 - const getData = ()=>{ - fetchData(); + const getData = async ()=>{ + const result = await fetchData(); + if(props.id){ + setFocusId(props.id as any); + }else{ + result.data.list?.every(item=>{ + if(item.is_default){ + setFocusId(item.id); + return false; + } + return true; + }) + } } useEffect(()=>{ getData(); @@ -25,10 +39,19 @@ const AddressList = memo((props:Params)=>{ const [refreshState, setRefreshState] = useState(false); const handleRefresh = async ()=>{ setRefreshState(true); - await fetchData(); + await getData(); setRefreshState(false); } const data = Array.from({length:15}); + // 焦点 + const [focusId, setFocusId] = useState(); + // 列表选择 + const handleSelect = (item: any, index: number)=>{ + props.onSelect&&props.onSelect(item,index); + if(focusBorderEnabled){ + setFocusId(item?.id); + } + } return ( @@ -39,7 +62,7 @@ const AddressList = memo((props:Params)=>{ // data.length>0? // data.map((item,index)=>{ return( - props.onSelect&&props.onSelect(item,index)} className={`address-list ${item.is_default&&'address-active'}`}> + handleSelect(item,index)} className={`address-list ${focusId==item.id&&'address-active'}`}> {item.name} { @@ -62,7 +85,7 @@ const AddressList = memo((props:Params)=>{ ); }): - 暂未添加地址 + addButtonEnabled&&暂未添加地址 } 添加收货地址