parent
a538461a9b
commit
a004bceaf9
@ -0,0 +1,76 @@ |
|||||||
|
import {FC, useEffect, useState} from "react"; |
||||||
|
import {Category} from "@/api"; |
||||||
|
import Taro from "@tarojs/taro"; |
||||||
|
import Empty from "@/components/empty/empty"; |
||||||
|
import {ScrollView, View} from "@tarojs/components"; |
||||||
|
import styles from "../sort.module.scss"; |
||||||
|
import Spin from "@/components/spinner"; |
||||||
|
|
||||||
|
|
||||||
|
interface Props { |
||||||
|
category: Category |
||||||
|
loading: boolean |
||||||
|
onChange: (id?: number) => void |
||||||
|
illness: Map<number, any[]> |
||||||
|
} |
||||||
|
|
||||||
|
const prefix = 'SORT' |
||||||
|
const SecondLevel: FC<Props> = ({category, loading, onChange, illness}) => { |
||||||
|
const globalData = Taro.getApp().globalData |
||||||
|
const [secondId, setSecondId] = useState<undefined | number>(undefined) |
||||||
|
|
||||||
|
useEffect(() => { |
||||||
|
if (!secondId) { |
||||||
|
setSecondId(category.resource_category?.[0]?.id) |
||||||
|
} |
||||||
|
onChange(secondId || category.resource_category?.[0]?.id) |
||||||
|
}, [secondId]) |
||||||
|
|
||||||
|
function jump(id: number) { |
||||||
|
Taro.navigateTo({url: '/pages/preview/illness/list/list?id=' + id}) |
||||||
|
} |
||||||
|
|
||||||
|
if (!category.resource_category?.length) { |
||||||
|
return (<Empty name='暂无二级分类'/>) |
||||||
|
} else { |
||||||
|
return ( |
||||||
|
<View className='flex' style={{height: `${globalData.pageHeight}px`}}> |
||||||
|
<ScrollView scrollY className={styles.firstOrder} enhanced showScrollbar={false}> |
||||||
|
{ |
||||||
|
category.resource_category?.map(d => <View |
||||||
|
id={`${prefix}-${d.id}`} |
||||||
|
key={d.id} |
||||||
|
onClick={() => setSecondId(d.id)} |
||||||
|
className={secondId === d.id && styles.select}> |
||||||
|
{d.name} |
||||||
|
</View>) |
||||||
|
} |
||||||
|
</ScrollView> |
||||||
|
<ScrollView |
||||||
|
enhanced |
||||||
|
showScrollbar={false} |
||||||
|
scrollY |
||||||
|
className={styles.tree} |
||||||
|
scrollWithAnimation> |
||||||
|
<Spin enable={loading} block/> |
||||||
|
{ |
||||||
|
(secondId && illness.get(secondId)?.length) ? |
||||||
|
<> |
||||||
|
{ |
||||||
|
illness.get(secondId)?.map(d => <View |
||||||
|
className={styles.list} |
||||||
|
onClick={() => jump(d.id)}> |
||||||
|
{d.name} |
||||||
|
</View>) |
||||||
|
} |
||||||
|
<View className='text-center font-24 text-dark mt-3'>暂无更多</View> |
||||||
|
</> |
||||||
|
: <Empty name='暂无数据'/> |
||||||
|
} |
||||||
|
</ScrollView> |
||||||
|
</View> |
||||||
|
) |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
export default SecondLevel |
Loading…
Reference in new issue