123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172 |
- import { useState, useEffect } from 'react'
- import Taro from '@tarojs/taro'
- import { ScrollView, Image } from '@tarojs/components'
- import { useSelector } from 'react-redux'
- import { fetch } from '@/utils/request'
- import { getImgURL } from '@/utils/image'
- import { API_LIVE_LIST } from '@/constants/api'
- import '@/assets/css/iconfont.css'
- import './index.scss'
-
- export default function LiveSale (props) {
-
- const { change = () => {} } = props
- const city = useSelector(state => state.city)
- const [MenuList] = useState([{ name: '全部', id: 1 }, { name: '预告', id: 2 }, { name: '直播中', id: 3 }, { name: '新房推荐', id: 4 }])
- const [CurrentId, setCurrentId] = useState(1)
- const [PageList, setPageList] = useState([])
-
- useEffect(() => {
- if(city.curCity.name) {
- GetLiveList()
- }
- }, [city])
-
- const GetLiveList = () => {
- fetch({url: API_LIVE_LIST, method: 'get', payload: {cityId: city.curCity.id, pageNum: 1, pageSize: 20}}).then((res) => {
- setPageList(res.records || [])
- change(!!(res.records || []).length)
- })
- }
-
- const CutMenu = (id) => {
- return () => {
- setCurrentId(id)
- }
- }
-
- const toDetail = (item) => {
- return () => {
- if(item.type === 'live') {
- Taro.navigateTo({ url: `/pages/video/liveDetail/index?id=${item.id}&type=${item.type}` })
- } else {
- Taro.navigateTo({ url: `/pages/video/videoDetail/index?id=${item.id}` })
- }
- }
- }
-
- return (
- <view className='components LiveSale'>
- <view>
- <view className='Menu'>
- {
- MenuList.map((item, index) => (
- <view onClick={CutMenu(item.id)} className={CurrentId === item.id ? 'active' : ''} key={`Menu-${index}`}>{item.name}</view>
- ))
- }
- </view>
- <view className='Content'>
- <ScrollView scroll-x show-scrollbar={false}>
- {
- PageList.map((item, index) => (
- <view className='ListItem' key={`List-${index}`} style={{display: CurrentId === 1 || (CurrentId === 2 && item.kind === 'notice') || (CurrentId === 3 && item.kind === 'live') || (CurrentId === 4 && item.kind !== 'notice') ? 'inline-block' : 'none'}}>
- <Image mode='aspectFill' className='centerLabel' onClick={toDetail(item)} src={`${getImgURL(item.images)}`} />
- </view>
- ))
- }
- </ScrollView>
- </view>
- </view>
- </view>
- )
- }
|