import React, { useState, useEffect, useRef, Component } from 'react'
import { connect } from 'dva'
import FormPage from '../../FormPage'
import { initFilter, addRuleAndGroups, guid, extendInclude, extendRule, extend } from "../../../utils/common"
import { Table, Card,Modal,List,Avatar, Row, Col, Icon, Button, Input, DatePicker, Form, Select, notification, Divider,Tabs,Tag   } from 'antd';
// import './home.less'
import config from '../config';
const { TabPane } = Tabs;
class ApproveMobile extends React.Component {
  constructor(props) {
    super(props);
    this.state = {
        visible: false,
        noticeTitle: '',
      retData: [],
      pagination: {},
      tmpData: {},
      type:"1",
    //   querySearch: {},//搜索集合
    //   tableData: [{//工作台四个展示模块
    //     key: '1',
    //     // bgImg: backlog,
    //     title: '待办事项',
    //     total: '0',
    //     // iconImg: backlog_i,
    //     iconDisplay: 'block',
    //   }, {
    //     key: '2',
    //     // bgImg: flow,
    //     title: '已办事项',
    //     total: '0',
    //     // iconImg: flow_i,
    //     iconDisplay: 'none',
    //   },
    //   //  {
    //   //   key: '3',
    //   //   bgImg: finished,
    //   //   title: '今日新增',
    //   //   total: '0',
    //   //   iconImg: finished_i,
    //   //   iconDisplay: 'none',
    //   // }
    //   //   ,
    //   {
    //     key: '4',
    //     // bgImg: remind,
    //     title: '待办超时',
    //     total: '0',
    //     // iconImg: remind_i,
    //     iconDisplay: 'none',
    //   }
    //   ],
    };
  };

  componentDidMount() {
    this.getBaseInfoData(1, "1", 500);
  };
  componentDidUpdate(preProps ){
    // if(preProps.type!==this.props.type){
    //    //放置刷新函数
    // }
 }
   //获取数据
   getBaseInfoData = (pagination, key, limit) => {
    const current = pagination ? pagination.current : 1
    const json = initFilter(this.props.login.OrgId, "", "CODE", 1, current)
    extendRule(json, 'SOURCE_FORMCODE', 9, "FO008")
    // const querySearch = this.state.querySearch;
    // for (var item in querySearch) {
    //   if (item == 'searchName') {
    //     extendRule(json, 'NOTICE_TITLE', 9, querySearch[item])
    //   }
    //   if (item == 'searchCode') {
    //     extendRule(json, 'CODE', 9, querySearch[item])
    //   }
    //   if (item == 'startTime1') {
    //     extendRule(json, 'TASK_STARTDT', 6, querySearch[item])
    //   }
    //   if (item == 'startTime2') {
    //     extendRule(json, 'TASK_STARTDT', 4, querySearch[item])
    //   }
    //   if (item == 'endTime1') {
    //     extendRule(json, 'TASK_ENDDT', 6, querySearch[item])
    //   }
    //   if (item == 'endTime2') {
    //     extendRule(json, 'TASK_ENDDT', 4, querySearch[item])
    //   }
    // }
    json.Limit = limit;
    json.Parameter1 = key;//1待办事项2已办事项3今日新增4待办超时
    this.props.dispatch({
      type: 'app/getDataByPost',
      url: 'FM/FMNotificationTask/OrderPaged',
      payload: json,
      onlyData: false,
      onComplete: (re) => {
        if (re && re.IsSuccessful && re.Data.newData) {
        //   this.state.tableData[0].total = re.Data.todoCount;
        //   this.state.tableData[1].total = re.Data.doneCount;
        //   this.state.tableData[2].total = re.Data.todayNewCount;
        //   this.state.tableData[2].total = re.Data.timeOverCount;
          // if (limit != null || limit != undefined) 
          // {
            this.setState({
              retData: re.Data.newData,
            })
          // } 
          // else {
          //   var pageInfo = {}
          //   pageInfo.current = current;
          //   pageInfo.total = Math.ceil(re.Data.TotalCount, 10);
          //   this.setState({
          //     retDataAll: re.Data.newData,
          //     pagination: pageInfo,
          //   })
          // }
        }
      }
    })
  };
  ShowState(obj,key) {
    if(key!="2")
    {
      var thisResult = (Date.parse(obj.TASK_ENDDT) - Date.parse(Date())) / 3600 / 1000;
      if (thisResult > 0) {
        return (<Tag  color="#2db7f5" style={{float:"center",padding:'0 10px' }}>正常</Tag >);
      } else {
        return (<Tag  color="#f50" style={{float:"center",padding:'0 10px' }}>超期</Tag >);
      }
    }
  }
  showEditModal = (dataId, formCode, TaskID, title, taskCode) => {
    const newtmpData = {
      data: { id: dataId, TaskID: TaskID, onCancel: this.handleCancel, taskCode: taskCode, homeReload: true },
      formCode: formCode,
    }
    this.setState({
      noticeTitle: title,
      taskCode: taskCode,
      tmpData: newtmpData
    }, () => this.setState({
      visible: true
    }));
  }
  
  handleCancel = () => { // 退出弹窗
    // this.getBaseInfoData(1, "1", 500);
    this.clearData();
  }
  closeModal = () => { // 退出弹窗
    this.clearData();
  }
  clearData = () => {
    let newtmpData = { ...this.state.tmpData }
    newtmpData["data"].id = '';
    newtmpData["data"].homeReload = false;
    this.setState({
      visible: false,
      tmpData: newtmpData,
    })
  }
  onTabChange = (tabKey) => {
    this.getBaseInfoData(1, tabKey, 500);
    this.setState({
      type:tabKey
    })
  }
  handleActiveMenu = () => {
    window.location.replace(config.guideH5Host)
    // let host= window.location.origin
    // window.location.replace(host+'/#/HomeMobileNew')
  }
  handleActiveCreate = (menu) => {
    this.props.history.push({ pathname: `/main/${menu.ID}` })
  }
  render() {
   
    return (
      <>
       <div style={{ backgroundColor: '#fff', padding: '20px 10px'}}>
       <div style={{ display: 'inline-block' }}>
          <Modal
            visible={this.state.visible}
            title={this.state.noticeTitle + "(" + this.state.taskCode + ")"}
            maskClosable={false}
            onCancel={this.handleCancel}
            footer={null}
            style={{
              maxWidth: "100vw",
              top: -10,
              paddingBottom: 0
            }}
            bodyStyle={{
              maxHeight:"100vh",
              height: "calc(100vh - 55px )", //-53
              overflowY: "auto"
            }}
            width="100vw"
            // className='antd-modal-fullscreen2'
            closeModal={this.closeModal}
          // forceRender={true}
          >
            <FormPage {...this.state.tmpData} />
          </Modal>
        </div>
       <br></br>
       <Row>
       <Button style={{float: "left"}} type="link" onClick={()=>this.handleActiveMenu()}>返回首页</Button>
       <Button style={{float: "right"}} type="link" onClick={()=>this.handleActiveMenu()}>新增</Button>
       </Row>
       <Row justify='center' style={{marginTop: "14px", height: 'calc((100% - 250px) / 2)', minHeight: '120px' }}>
       <Col style={{ height: '100%', whiteSpace: 'pre-wrap' }}>
    <Tabs defaultActiveKey={this.state.type}  style={{backgroundColor:'#fff'}} onChange={this.onTabChange}>
      <TabPane tab="待办事项" key="1">
      <List 
             pagination={{
              onChange: page => {
                console.log(page);
              },
              pageSize: 10,
            }}
    itemLayout="horizontal"
    dataSource={this.state.retData}
    renderItem={record => (
      <List.Item
      extra={
         this.ShowState(record,"1")
      }
      >
        <List.Item.Meta
          avatar={<Avatar src="https://joeschmoe.io/api/v1/jon" />}
          title={<span> <a onClick={() => this.showEditModal(record.SOURCE_DATA_ID, record.SOURCE_FORMCODE, record.ID, record.NOTICE_TITLE, record.CODE)}>{record.NOTICE_TITLE}</a></span>}
          description={"开始时间:"+record.TASK_STARTDT+'\n'+"结束时间:"+record.TASK_ENDDT}
        />
      </List.Item>
    )}
  />
      </TabPane>
      <TabPane tab="已办事项" key="2">
      <List 
             pagination={{
              onChange: page => {
                console.log(page);
              },
              pageSize: 10,
            }}
    itemLayout="horizontal"
    dataSource={this.state.retData}
    renderItem={record => (
      <List.Item
      extra={
         this.ShowState(record,"2")
      }
      >
        <List.Item.Meta
          avatar={<Avatar src="https://joeschmoe.io/api/v1/jon" />}
          title={<span> <a onClick={() => this.showEditModal(record.SOURCE_DATA_ID, record.SOURCE_FORMCODE, record.ID, record.NOTICE_TITLE, record.CODE)}>{record.NOTICE_TITLE}</a></span>}
          description={"开始时间:"+record.TASK_STARTDT+'\n'+"结束时间:"+record.TASK_ENDDT}
        />
      </List.Item>
    )}
  />
      </TabPane>
    </Tabs>
    </Col>
    </Row>
    </div>
      </>
    )
  }
}
export default connect(({ login }) => ({ login }))(ApproveMobile)
