import React from 'react'
import { Grid, Badge, ListView } from 'antd-mobile';
import 'antd-mobile/dist/antd-mobile.css';
import { browserHistory } from 'react-router';
import { Http } from '../../Utils/help';
import { max } from 'moment';

export class MMaincard extends React.Component {
  constructor(props) {
    super(props);
    // this.NUM_SECTIONS = 1;
    // this.NUM_ROWS_PER_SECTION = 50;
    // const getSectionData = (dataBlob, sectionID) => dataBlob[sectionID];
    // const getRowData = (dataBlob, sectionID, rowID) => dataBlob[rowID];

    // const dataSource = new ListView.DataSource({
    //   getRowData,
    //   getSectionHeaderData: getSectionData,
    //   rowHasChanged: (row1, row2) => row1 !== row2,
    //   sectionHeaderHasChanged: (s1, s2) => s1 !== s2,
    // });

    this.menuClick = this.menuClick.bind(this);
    const { onClick } = this.props;
    this.onClick = onClick;
    this.makeData = this.makeData.bind(this);
    let menu = localStorage['menu'] ? JSON.parse(localStorage['menu']) : undefined;
    this.state = {
      // dataSource: dataSource,
      // newdata: [],
      func: [],
      menu: menu,

    }
    this.FuncMap = new Map();
  }

  menuClick = (el, index, mod) => {
    this.onClick(el, index, el.menu)
  }

  componentWillMount() {
    if (!this.state.menu)
      this.dataAjax = Http.getJSON("menu", { Client: "mobile" });
  }

  componentDidMount() {

    if (!this.state.menu) {
      this.dataAjax.done((result) => {
        localStorage['menu'] = JSON.stringify(result);
        this.makeData(result);
      });
    } else {
      this.makeData(this.state.menu);
    }
  }
  makeData = (funcs) => {
    if (!funcs || !Array.isArray(funcs)) {
      return;
    }
    let func = [];
    funcs.map((data, index) => {
      if (!data.mpid) {
        func.push(
          {
            id: data.id,
            name: data.name,
            menus: []
          }
        );
      }
    });

    /*
    console.log("componentDidMount")
    this.dataAjax = Http.getJSON2("ds/data/alert/list", { "userid": localStorage['loginid'] })
      .done((newdata) => {
        try {
          var datalength = newdata ? newdata.length ? newdata.length : 0 : 0
          localStorage.setItem("datalength", datalength)
          this.setState({
            datalength:datalength
          });
        } catch (err) {
          console.error(err.message);
          console.error(err.stack);
        }
      });*/

    funcs.map((data, index) => {
      if (data.bpid) {
        let nd = {};
        //var alertData = localStorage.getItem("newData")
        //var userId = localStorage.getItem('loginid')
        //lertData = alertData == undefined ? [] : alertData
        //var localdata = alertData.length == 0 ? alertData : JSON.parse(alertData)
        //获取初始化进来的缓存用户与登录用户相比，只要相等就跳出循环
        /*for (var a = 0; a < localdata.length; a++) {
          if (localdata[a].userid == userId) {
            var Arr = localdata[a].subArr
            continue
          }
        }*/
        //var array = Arr
        //var readlength = array ? array.length ? array.length : 0 : 0
        //var datalength = localStorage.getItem("datalength")
        //var arraylegth = datalength - readlength
        if (data.icon)
          // data.menuid?data.menuid==="1000113"?nd["icon"]=<div style={{width:"auto",height:"auto"}}><div style={{marginRight:"-30",marginBottom:"-15"}}><Badge text={arraylegth} overflowCount={99} /></div><img style={{width:"50%",height:"50%"}} src={require('../../images/'+data.icon)}/></div>
          //data.menuid ? data.menuid === "1000113" ? nd["icon"] = <div style={{ width: "auto", height: "auto" }}><div style={{ marginRight:-30, marginBottom: -15 }}><Badge text={arraylegth} overflowCount={99} /> </div><img style={{ width: "50%", height: "50%" }} src={require('../../images/' + data.icon)} /></div>
           // : nd["icon"] = <div><img style={{ width: "50%", height: "50%" }} src={require('../../images/' + data.icon)} /></div> : nd["icon"] = <div><img style={{ width: "50%", height: "50%" }} src={require('../../images/' + data.icon)} /></div>;
          nd["icon"]=require('../../images/'+data.icon);
        nd["text"] = data.name
        nd["menu"] = data
        let f = func.filter((menu) => {
          return menu.id === data.bpid;
        })
        if (f && f.length > 0) {
          f[0].menus.push(nd);
        }
      }
    } );
    this.setState({
      func: func,
    });
  }
  page() {
    let stk, wf, db;
    return (<div>{
      this.state.func.map((data, ind) => {
        return (
          <div key={ind}>
            <div className="sub-title" style={{ padding: 10, textAlign: 'center' }}>{data.name}</div>
            <div>
              <Grid data={data.menus} onClick={(el, index) => { this.menuClick(el, index, data.menus) }} />
            </div>
          </div>)
      })
    }</div>);
  }
  render() {
    return (
      <div>{
        this.page()
      }
      </div>
    );
  }
}