infoList.js 2.14 KB
import React, { Component } from 'react';
import { connect } from 'dva';
import { Toast } from 'antd-mobile';
import moment from 'moment';
import shareHide from "../../utils/shareHide";



import css from './css.less';

class InfoList extends Component{
  constructor(props) {
    super(props);
    this.state = {
      userId: '',
      isloading: true,
      infolist: []
    }
  }

  componentDidMount() {
    document.title = '信息中心';
    const _this = this;
    shareHide();
    Toast.loading('loading...', 1000);
    const userId = localStorage.id;
    const roleId = localStorage.roleId;
    this.setState({
      userId
    })
    const { search } = this.props.location;
    let subData = { roleId };
    if (search) {
      const sign = search.substr(6);
      if (roleId === '3') {
        if (sign === '1') {
          subData.supervisionId = userId;
          subData.requestType = 'system';
        }
        if (sign === '2') {
          subData.supervisionId = userId;
          subData.requestType = 'customer';
        }
      }
    }
    this.props.dispatch({
      type: 'infoCenter/GetSubInfoList',
      payload: {
        ...subData,
        orgId:localStorage.getItem('orgId')
      },
      callback(res) {
        _this.setState({
          infolist: res,
          isloading: false
        }, () => {
            Toast.hide();
        })
      },
      error(err) {
        Toast.error(err.message)
      }
    })
  }

  render() {
    const { infolist,isloading } = this.state;
    return <div className={css.wrap+' '+(infolist.length===0 && !isloading?css.noInfo:'')}>
      {
        infolist.length>0 && infolist.map((itm,index) => {
          return <div key={index} className={css.listItm}>
            <div className={css.infoTime}>{moment(itm.updateTime).format('YYYY-MM-DD HH:mm:ss')}</div>
            <div className={css.infoContent}>
              <div className={css.tit}>{itm.messageHeader}</div>
              <dl>
                <dt className={css[itm.infoType]}></dt>
                <dd>{itm.notification}</dd>
              </dl>
            </div>
          </div>
        })
      }
    </div>
  }
}

export default connect()(InfoList);