import React, { Component } from 'react' import { WingBlank } from 'antd-mobile' import './index.scss' import { getParam, http } from "src/utils" // 课程页面滚动广告 class Barrage extends Component { timer barageTimer constructor(props) { super(props) this.state = { list: [], isShowBarrage: false } } setupBarrage = () => { const periods = [ {start: 0, end: 7, interval: 60000}, {start: 7, end: 8, interval: 30000}, {start: 8, end: 23, interval: 15000}, {start: 23, end: 24, interval: 30000}, ] const now = new Date(Date.now()).getHours() for (let period of periods) { if (now >= period.start && now <= period.end) { this.timer = setTimeout(() => { this.getList() }, period.interval) break } } } componentDidUpdate(prevProps) { const {isShow} = this.props const {isShow: prevIsShow} = prevProps if (prevIsShow !== isShow && isShow !== undefined) { if (isShow) { setTimeout(() => { this.getList() }, 5000) } this.componentDidUpdate = null } } componentWillUnmount() { this.timer && clearTimeout(this.timer); this.barageTimer && clearTimeout(this.barageTimer) } // 获取课程接口 getList = () => { let data = { course_id: getParam('id') } http.post(`${API.home}/m/course/barrages`, data).then((res) => { if (res.data.code === 200) { this.setState({ list: res.data.data, isShowBarrage: true }, () => { this.barageTimer = setTimeout(() => { this.setState({isShowBarrage: !this.state.isShowBarrage}) this.setupBarrage() }, 5000) }); } }) } render() { return ( <WingBlank> <div className="my-carousel" style={{opacity: this.state.isShowBarrage ? 1 : 0}}> { this.state.list && <div className="v-item text-overflow-one"> <img src={this.state.list.avatar} alt=""/> {this.state.list.user_name} {this.state.list.live_msg} </div> } </div> {/* <Carousel className="my-carousel" vertical dots={false} autoplay infinite > { this.state.list && <div className="v-item text-overflow-one"> <img src={this.state.list.avatar} alt=""/> {this.state.list.user_name} {this.state.list.live_msg} </div> } </Carousel> */} </WingBlank> ) } } export default Barrage