import React, { useState, useEffect, useRef, Component } from "react";
import { connect } from "dva";
import storage from "../utils/storage";
import IconFont from "../utils/iconFont";
import {
  initFilter,
  addRuleAndGroups,
  guid,
  extendInclude,
  extendRule,
  extend,
  extendOrder,
  getSixMonth,
} from "../utils/common";
import "./home.less";
// 组件库
import {
  Row,
  Col,
  Icon,
  Progress,
  Tabs,
  message,
  Dropdown,
  Menu,
  Empty,
  Modal,
  Divider,
  Form,
  Input,
  Table,
  Button,
  DatePicker,
  Select,
  notification
} from "antd";
import styles from "./dashboard.css";
import "slick-carousel/slick/slick.css";
import "slick-carousel/slick/slick-theme.css";
import echarts from "echarts";
import config from "../config";
import ModifyPassword from "../components/MainPage/ModifyPassword";
import FoUserInfoShow from "../components/MainPage/FoUserInfoShow";
import FormPage from "../components/FormPage";
const { TabPane } = Tabs;
const Option = Select.Option;
const RangePicker = DatePicker.RangePicker;
const formItemLayout = {
  labelCol: { span: 6 },
  wrapperCol: { span: 14 },
};

const openNotification = (placement) => {
  notification.info({
    duration: null,
    top: 43,
    message: `签名照上传提示：`,
    description: "您还没上传自己的签名照片，请在我的资料中尽快上传您的签名照！",
    placement,
  });
};

const AllTech = (props) => {
  return (
    <Col
      span={6}
      className="home-tech-col"
      onClick={() => {
        props.techClick();
      }}
    >
      <div className="home-tech-back">
        <IconFont type={props.icon} className="home-tech-icon"></IconFont>
      </div>
      <span className="home-tech-name">{props.title}</span>
    </Col>
  );
};
const WorkBench = (props) => {
  return (
    <div>
      {props.data.map((item, index) => {
        const result =
          (Date.parse(item.TASK_ENDDT) - Date.parse(Date())) / 3600 / 1000;
        const prepare = result > 0 ? "正常" : "超期";
        const warning =
          item.NOTICE_STATUS == 0
            ? "未读"
            : item.NOTICE_STATUS == 3
            ? "已读"
            : "已办";
        const type = props.index == 1 || props.index == 2 ? prepare : warning;

        return (
          <div
            style={{
              display: "flex",
              flexDirection: "row",
              padding: "10px",
              alignItems: "center",
              justifyContent: "space-between",
              borderBottom:
                index !== props.data.length - 1 ? "1px solid #e7e6e4" : "",
            }}
            className="home-work-back"
            onClick={() => {
              props.benchCLick(item);
            }}
          >
            <div
              className={
                type == "超期"
                  ? "home-work-type-red"
                  : type == "未办" || type == "未读"
                  ? "home-work-type-yellow"
                  : type == "已办"
                  ? "home-work-type-green"
                  : "home-work-type-black"
              }
              style={{
                marginLeft: "20px",
                marginRight: "20px",
                whiteSpace: "nowrap",
              }}
            >
              {type}
            </div>

            <div className="home-work-title">{item.NOTICE_TITLE}</div>
            <div
              className="home-work-date"
              style={{
                // width: "200px",
                whiteSpace: "nowrap",
                marginRight: "20px",
              }}
            >
              开始时间：{item.TASK_STARTDT}
            </div>
            <div
              className="home-work-date"
              style={{
                // width: "200px",
                whiteSpace: "nowrap",
                marginRight: "10px",
              }}
            >
              结束时间：{item.TASK_ENDDT}
            </div>
            {/* <div className="home-work-person" style={{ width: "140px" }}>
              发起人：{item.person}
            </div> */}
          </div>
        );
      })}
    </div>
  );
};
const UserInfo = (props) => {
  return (
    <div
      className="home-userInfo"
      onClick={() => {
        props.showAll();
      }}
    >
      <div className="home-userInfo-pad">
        <Icon
          type="schedule"
          className="home-userInfo-Icon"
          style={{ color: props.color }}
        ></Icon>
        <div className="home-userInfo-title">{props.title}</div>
      </div>
      <div className="home-userInfo-content" style={{ color: props.color }}>
        {props.data}
      </div>
    </div>
  );
};

class Home extends React.Component {
  constructor(props) {
    super(props);
    this.state = {
      visible: false,
      overDataKey: "1",
      userInfo: "",
      timeNow: "上午好",
      workData: [],
      workTotal: "",
      workTotalData: [],
      tableKey: "1",
      formVisible: false,
      noticeTitle: "",
      searchVisible: false,
      visibleTitle: "",
      searchTodayVisible: false,
      taskSelects: [],
      tmpData: {},
      lmVisible: true,
      lmdisplay: 24,
      querySearch: {},
      currentpageIndex: "1",
      visibleStartTime: [],
      visibleEndTime: [],
      detailForm: {
        isShow: false,
        formCode: "",
        title: "",
      },
      completeName: [
        {
          name: "运输二班",
          value: 100,
        },
        {
          name: "综合班组",
          value: 99,
        },
        {
          name: "生产班",
          value: 97,
        },
        {
          name: "维修班组",
          value: 95,
        },
        {
          name: "民爆储存库班组",
          value: 93,
        },
        {
          name: "爆破班组",
          value: 90,
        },
        {
          name: "运输一班",
          value: 67,
        },
        {
          name: "金宇现场",
          value: 43,
        },
      ],
    };
    this.resizeRef = React.createRef();
  }

  componentDidMount() {
    if (window.navigator.userAgent.indexOf("Windows") < 1) {
      window.location.replace(config.guideH5Host);
      //alert('手机');
    }
    if (
      storage("lacal").getItem("webOrgId")?.val ==
      "11111111-1111-1111-1111-111111111111"
    ) {
      this.setState(
        {
          lmVisible: false,
          lmdisplay: 24,
        },
        () => {
          this.willDo()
        }
      );
    } else {
      this.setState(
        {
          lmVisible: true,
          lmdisplay: 17,
        },
        () => {
         this.willDo()
        }
      );
    }
  }
  willDo = ()=>{
    this.getBaseData(1, "1", 5);
    this.getBaseData(1, "1");
    this.timeJudg();
    this.riskLevel();
    // this.homeRound();
    this.completeRate();
    this.timelyRate();
    this.safeCheck();
    this.dangerChange();
    this.getUser();
    //定时器功能，暂时不开启
    this.timerID = setInterval(
      () =>{this.getBaseData(1, this.state.tableKey, 5),this.getBaseData(1, this.state.overDataKey)} ,
      120000 
    );
    this.showModalSign();
  }
  componentWillUnmount() {
    this.timerID && clearTimeout(this.timerID);
  }
  useEffect = () => {
    // 监听的函数
    const resize = new ResizeObserver((e) => {
      if (!Array.isArray(e) || !e.length) return;
      for (const ent of e) {
        resizeChange(ent);
      }
    });
    // 传入监听对象
    resize.observe(resizeRef.current);
    // 及时销毁监听函数（重要!!!）
    return () => {
      resize.unobserve(resizeRef?.current);
    };
  };
  showModalSign = () => {
    var userId = storage("lacal").getItem("userid")?.val; //登录后有存储登录信息
    var orgId = storage("lacal").getItem("webOrgId")?.val; //登录后有存储登录信息

    let json = initFilter(orgId);
    this.props.dispatch({
      type: "app/getDataByPost",
      payload: json,
      url: "FM/User/UserSign", //验证是否有签名照
      onComplete: (ret) => {
        //返回查询结果ret
        if (ret) {
          //判断是否有记录
          openNotification("topRight");
        }
      },
    });
  };
  showTodayModal = (
    dataId,
    formCode,
    TaskID,
    title,
    taskCode,
    taskStartdt,
    taskStatus
  ) => {
    const newtmpData = {
      data: {
        id: dataId,
        TaskID: TaskID,
        onCancel: this.handleCancel,
        taskCode: taskCode,
        tableKey: this.state.tableKey,
        noticeTitle: title,
        taskStartdt: taskStartdt,
        taskStatus: taskStatus,
        homeReload: true,
      },
      formCode: "PF135",
    };
    this.setState(
      {
        noticeTitle: "今日提醒",
        taskCode: taskCode,
        tmpData: newtmpData,
        currActivatedMenu: "",
      },
      () =>
        this.setState({
          formVisible: true,
        })
    );
  };

  showAll = (key) => {
    const { tableData } = this.state;
    this.setState({
      overDataKey: key,
    });

    if (key == "2") {
      this.state.searchColumns = [
        {
          width: "450px",
          title: "任务名称",
          dataIndex: "NOTICE_TITLE",
          key: "NOTICE_TITLE",
          render: (text, record) => (
            <span>
              <a
                onClick={() =>
                  this.showEditModal(
                    record.SOURCE_DATA_ID,
                    record.SOURCE_FORMCODE,
                    record.ID,
                    record.NOTICE_TITLE,
                    record.CODE
                  )
                }
              >
                {record.NOTICE_TITLE}
              </a>
            </span>
          ),
        },
        {
          title: "开始时间",
          dataIndex: "TASK_STARTDT",
          key: "TASK_STARTDT",
        },
        {
          title: "结束时间",
          dataIndex: "TASK_ENDDT",
          key: "TASK_ENDDT",
        },
        {
          title: "办结时间",
          dataIndex: "TASK_DT",
          key: "TASK_DT",
        },
      ];
      this.setState({
        searchVisible: true,
        searchTodayVisible: false,
        querySearch: {},
      });
    } else if (key === "3") {
      this.state.searchColumns = [
        {
          width: "450px",
          title: "提醒内容",
          dataIndex: "NOTICE_TITLE",
          key: "NOTICE_TITLE",
          render: (text, record) => (
            <span>
              <a
                onClick={() =>
                  this.showTodayModal(
                    record.SOURCE_DATA_ID,
                    record.SOURCE_FORMCODE,
                    record.ID,
                    record.NOTICE_TITLE,
                    record.CODE,
                    record.TASK_STARTDT,
                    record.NOTICE_STATUS
                  )
                }
              >
                {record.NOTICE_TITLE}
              </a>
            </span>
          ),
        },
        {
          title: "提醒时间",
          dataIndex: "TASK_STARTDT",
          key: "TASK_STARTDT",
        },
        {
          title: "状态",
          dataIndex: "NOTICE_STATUS",
          key: "NOTICE_STATUS",
          render: (text, record) => this.ShowStatus(record),
        },
      ];
      this.setState({
        searchVisible: false,
        searchTodayVisible: true,
        querySearch: {},
      });
    } else {
      this.state.searchColumns = [
        {
          width: "450px",
          title: "任务名称",
          dataIndex: "NOTICE_TITLE",
          key: "NOTICE_TITLE",
          render: (text, record) => (
            <span>
              <a
                onClick={() =>
                  this.showEditModal(
                    record.SOURCE_DATA_ID,
                    record.SOURCE_FORMCODE,
                    record.ID,
                    record.NOTICE_TITLE,
                    record.CODE
                  )
                }
              >
                {record.NOTICE_TITLE}
              </a>
            </span>
          ),
        },
        {
          title: "开始时间",
          dataIndex: "TASK_STARTDT",
          key: "TASK_STARTDT",
        },
        {
          title: "结束时间",
          dataIndex: "TASK_ENDDT",
          key: "TASK_ENDDT",
        },
        {
          title: "预警状态",
          dataIndex: "NOTICE_TYPE",
          key: "NOTICE_TYPE",
          render: (text, record) => this.ShowState(record),
        },
      ];
      this.setState({
        searchVisible: true,
        searchTodayVisible: false,
        querySearch: {},
      });
    }
    this.setState(
      {
        tableData,
        currentpageIndex: key,
      },
      () => {
        this.getBaseData(1, key);
      }
    );
  };
  tabsCallback = (key) => {
    if (key == 1) {
      this.getBaseData(1, "1", 5);
      this.setState({
        tableKey: "1",
      });
    } else if (key == 2) {
      this.getBaseData(1, "4", 5);
      this.setState({
        tableKey: "4",
      });
    } else if (key == 3) {
      this.getBaseData(1, "2", 5);
      this.setState({
        tableKey: "2",
      });
    } else {
      this.getBaseData(1, "3", 5);
      this.setState({
        tableKey: "3",
      });
    }
  };
  workClick = (e) => {
    this.showTableEditModal(
      e.SOURCE_DATA_ID,
      e.SOURCE_FORMCODE,
      e.ID,
      e.NOTICE_TITLE,
      e.CODE
    );
  };
  ShowState(obj) {
    var thisResult =
      (Date.parse(obj.TASK_ENDDT) - Date.parse(Date())) / 3600 / 1000;
    if (thisResult > 0) {
      return "正常";
    } else {
      return <span style={{ color: "red" }}>超期</span>;
    }
  }
  ShowStatus(obj) {
    if (obj.NOTICE_STATUS === 0) {
      return <span style={{ color: "red" }}>未读</span>;
    } else if (obj.NOTICE_STATUS === 3) {
      return "已读";
    } else {
      return "已办";
    }
  }
  showTableEditModal = (dataId, formCode, TaskID, title, taskCode) => {
    // this.props.dispatch({
    //   type: "app/getDataByPost",
    //   url: "BI/BIController/getVersion",
    //   onComplete: (ret) => {
    //     if (ret > config.version) {
    //       window.localStorage.clear();
    //       message.success("清除成功，即将重新加载页面", 2, () => {
    //         setTimeout(() => window.location.reload(true), 500);
    //       });
    //     }
    //   },
    // });
    const newtmpData = {
      data: {
        id: dataId,
        TaskID: TaskID,
        onCancel: this.handleTableCancel,
        taskCode: taskCode,
        tableKey: this.state.tableKey,
        homeReload: true,
      },
      formCode: formCode,
    };
    this.setState(
      {
        noticeTitle: title,
        taskCode: taskCode,
        tmpData: newtmpData,
        currActivatedMenu: "",
      },
      () => {
        this.setState({
          formVisible: true,
        });
      }
    );
  };
  showEditModal = (dataId, formCode, TaskID, title, taskCode) => {
    // this.props.dispatch({
    //   type: "app/getDataByPost",
    //   url: "BI/BIController/getVersion",
    //   onComplete: (ret) => {
    //     if (ret > config.version) {
    //       window.localStorage.clear();
    //       message.success("清除成功，即将重新加载页面", 2, () => {
    //         setTimeout(() => window.location.reload(true), 500);
    //       });
    //     }
    //   },
    // });
    const newtmpData = {
      data: {
        id: dataId,
        TaskID: TaskID,
        onCancel: this.handleCancel,
        taskCode: taskCode,
        tableKey: this.state.overDataKey,
        homeReload: true,
      },
      formCode: formCode,
    };
    this.setState(
      {
        noticeTitle: title,
        taskCode: taskCode,
        tmpData: newtmpData,
        currActivatedMenu: "",
      },
      () => {
        this.setState({
          formVisible: true,
        });
      }
    );
  };
  clearData = () => {
    let newtmpData = { ...this.state.tmpData };
    newtmpData["data"].id = "";
    newtmpData["data"].homeReload = false;
    newtmpData.formCode = "";
    this.setState({
      formVisible: false,
      tmpData: [], //newtmpData
    });
  };
  handleCancel = () => {
    // 退出弹窗
    this.getBaseData(1, this.state.overDataKey);
    this.clearData();
  };
  handleTableCancel = () => {
    // 退出弹窗
    this.getBaseData(1, this.state.tableKey, 5);
    this.clearData();
  };
  closeModal = () => {
    this.setState({
      formVisible: false,
    });
  };
  getBaseData = (pagination, key, limit) => {
    const current = pagination ? pagination.current : 1;
    const json = initFilter(this.props.login.OrgId, "", "CODE", 1, current);
    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]);
      }
      if (item == "searchStatus") {
        extendRule(json, "NOTICE_STATUS", 1, querySearch[item]);
      }
    }
    //extendRule(json, "NOTICE_STATUS", 1, 0);
    json.Limit = limit;
    //json.Limit = 10;
    json.Parameter1 = key; //1待办事项2已办事项3今日新增4待办超时

    this.props.dispatch({
      type: "app/getDataByPost",
      url: "FM/FMNotificationTask/HomeOrderPaged",
      payload: json,
      onlyData: false,
      onComplete: (ret) => {
        if (ret && ret.IsSuccessful && ret.Data.newData) {
          if (limit == 5) {
            this.setState({
              workData: ret.Data.newData,
              workTotal: ret.Data,
            });
          } else {
            this.setState({
              // workData: ret.Data.newData,
              workTotal: ret.Data,
              workTotalData: ret.Data.newData,
            });
          }
          // this.setState({
          //   workData: ret.Data.newData,
          //   workTotal: ret.Data,
          // });
        }
      },
    });
  };
  timeJudg = () => {
    let time = new Date();
    let hour = time.getHours();
    if (hour >= 6 && hour <= 11) {
      this.setState({
        timeNow: "上午好",
      });
    } else if (hour > 11 && hour <= 13) {
      this.setState({
        timeNow: "中午好",
      });
    } else if (hour > 13 && hour <= 18) {
      this.setState({
        timeNow: "下午好",
      });
    } else {
      this.setState({
        timeNow: "晚上好",
      });
    }
  };
  getUser = () => {
    var userId = storage("lacal").getItem("userid")?.val; //登录后有存储登录信息
    var orgId = storage("lacal").getItem("webOrgId")?.val; //登录后有存储登录信息
    let json = initFilter(orgId);
    extendRule(json, "ID", 1, userId);
    extendInclude(json, "Nav_Department");
    this.props.dispatch({
      type: "app/getDataByPost",
      payload: json,
      url: "FM/User/Get",
      onComplete: (ret) => {
        if (ret) {
          this.setState({
            userInfo: ret,
          });
        }
      },
    });
  };
  safeCheck = () => {
    let series = [];
    let seriesName = ["巡回检查", "例行检查", "专业检查", "综合检查"];
    let data3 = [
      [17, 20, 16, 20, 16, 16, 20, 16, 16, 20, 16, 4],
      [43, 41, 43, 32, 47, 33, 57, 38, 46, 42, 49, 39],
      [23, 21, 43, 12, 15, 13, 15, 16, 17, 14, 19, 24],
      [17, 20, 23, 42, 12, 17, 13, 15, 12, 17, 19, 34],
    ];
    let xData = [];
    for (let i = 0; i < 12; i++) {
      xData.unshift(getSixMonth(-i, "年", "月"));
    }
    for (let i = 0; i < data3.length; i++) {
      series.push({
        name: seriesName[i],
        type: "bar",
        stack: "总量",
        data: data3[i],
        barWidth: "20%",
        // itemStyle:{
        //   borderWidth:2,
        //   borderColor:'#fff',
        //   barBorderRadius:5,
        // }
      });
    }
    let safeChecks = document.getElementById("safeCheck");
    if (safeChecks) {
      let myChart = echarts.init(safeChecks);
      myChart.setOption({
        color: ["#4285F4", "#72b85b", "#c92a2a", "#ffa94d"],

        tooltip: {
          trigger: "axis",
          axisPointer: {
            // 坐标轴指示器，坐标轴触发有效
            type: "shadow", // 默认为直线，可选为：'line' | 'shadow'
          },
          transitionDuration: 0,
        },
        grid: {
          left: "5%",
          right: "5%",
          bottom: "15%",
          top: "10%",
          containLabel: true,
          z: 22,
        },
        xAxis: {
          type: "category",
          data: xData,
          axisLine: {
            lineStyle: {
              color: "#0c3b71",
            },
          },
          axisLabel: {
            show: true,
            color: "rgb(170,170,170)",
            interval: 0,
            textStyle: {
              lineHeight: 14,
            },
            formatter: function (param) {
              return param.split("年")[1];
            },
          },
        },
        legend: {
          data: ["巡回检查", "例行检查", "专业检查", "综合检查"],
          left: "center",
          align: "left",
          bottom: "2%",
          textStyle: {
            color: "#000",
          },
          itemWidth: 10,
          itemHeight: 10,
          // itemGap: 15,
        },
        yAxis: {
          type: "value",
          splitLine: {
            show: true,
            lineStyle: {
              color: ["#f2f2f2"],
            },
          },
          axisLine: {
            lineStyle: {
              color: "#0c3b71",
            },
          },
          axisLabel: {
            color: "rgb(170,170,170)",
            formatter: "{value} ",
          },
        },
        series: series,
      });
    }
  };
  dangerChange = () => {
    let sourceName = [
      "按时整改隐患",
      "超期整改隐患",
      "未整改隐患",
      "隐患整改率",
    ];
    let ydata = [
      ["2", "5", "6", "8", "10", "9"],
      ["1", "7", "1", "2", "5", "4"],
      ["0", "1", "0", "3", "0", "1"],
      ["100.00", "92.31", "100.00", "76.92", "100.00", "92.86"],
    ];
    let date = new Date();
    let year = date.getFullYear();
    let month = date.getMonth() + 1;
    let xData = [];
    for (let i = 0; i < 6; i++) {
      xData.unshift(getSixMonth(-i, "-", ""));
    }
    let dangerChanges = document.getElementById("dangerChange");
    if (dangerChanges) {
      let myChart = echarts.init(dangerChanges);
      myChart.setOption({
        color: ["#72b85b", "#f6841a", "#cc0404", "#4285F4"],
        tooltip: {
          trigger: "axis",
          axisPointer: {
            // 坐标轴指示器，坐标轴触发有效
            type: "shadow", // 默认为直线，可选为：'line' | 'shadow'
          },
          transitionDuration: 0,
          formatter: function (params) {
            return (
              params[0].name +
              "</br>" +
              params[0].marker +
              params[0].seriesName +
              " : " +
              params[0].value +
              "</br>" +
              params[1].marker +
              params[1].seriesName +
              " : " +
              params[1].value +
              "</br>" +
              params[2].marker +
              params[2].seriesName +
              " : " +
              params[2].value +
              "</br>" +
              params[3].marker +
              params[3].seriesName +
              " : " +
              params[3].value +
              "%"
            );
          },
        },
        grid: {
          left: "5%",
          right: "5%",
          bottom: "15%",
          top: "10%",
          containLabel: true,
          z: 22,
        },
        xAxis: {
          type: "category",
          data: xData,
          axisLine: {
            lineStyle: {
              color: "#0c3b71",
            },
          },
          axisLabel: {
            show: true,
            color: "rgb(170,170,170)",
            interval: 0,
            textStyle: {
              lineHeight: 14,
            },
          },
        },
        legend: {
          data: sourceName,
          left: "center",
          align: "left",
          bottom: "2%",
          textStyle: {
            color: "#000",
          },
          itemWidth: 10,
          itemHeight: 10,
          // itemGap: 35,
        },
        yAxis: [
          {
            type: "value",
            position: "left",
            splitLine: {
              show: true,
              lineStyle: {
                color: ["#f2f2f2"],
                // opacity:0.2
                // zlevel: -1,
              },
            },
            axisLine: {
              lineStyle: {
                color: "#0c3b71",
              },
            },
            axisLabel: {
              color: "rgb(170,170,170)",
              formatter: "{value} ",
            },
          },
          {
            type: "value",
            position: "right",
            splitLine: {
              show: false,
              lineStyle: {
                color: ["#f2f2f2"],
              },
            },
            axisLine: {
              lineStyle: {
                color: "#f2f2f2",
              },
            },
            axisLabel: {
              color: "rgb(170,170,170)",
              formatter: "{value} %",
            },
          },
        ],
        series: [
          {
            name: sourceName[0],
            type: "bar",
            data: ydata[0],
            barWidth: "10%",
            barGap: "10%",
            stack: null,
          },
          {
            name: sourceName[1],
            type: "bar",
            data: ydata[1],
            barWidth: "10%",
            barGap: "10%",
            stack: null,
          },
          {
            name: sourceName[2],
            type: "bar",
            data: ydata[2],
            barWidth: "10%",
            barGap: "10%",
            stack: null,
            // zlevel: 99,
          },
          {
            name: sourceName[3],
            type: "line",
            smooth: false,
            data: ydata[3],
            yAxisIndex: 1,
            itemStyle: {
              normal: {
                lineStyle: {
                  type: "dotted",
                },
              },
            },
            // zlevel:100,
          },
        ],
      });
    }
  };
  timelyRate = () => {
    let timelyRates = document.getElementById("timelyRate");
    if (timelyRates) {
      let myChart = echarts.init(timelyRates);
      myChart.setOption(
        {
          title: [
            {
              text: "83%",
              x: "center",
              top: "40%",
              textStyle: {
                fontWeight: "normal",
                color: "#ffa94d",
                fontSize: "26",
              },
            },
            {
              text: "及时完成率",
              x: "center",
              top: "55%",
              textStyle: {
                fontWeight: "normal",

                fontSize: "14",
              },
            },
          ],
          color: "#ffd6b5",
          legend: {
            show: false,
            itemGap: 12,
            data: ["01", "02"],
          },

          series: [
            {
              name: "Line 1",
              type: "pie",
              clockWise: true,
              radius: ["60%", "76%"],
              itemStyle: {
                normal: {
                  label: {
                    show: false,
                  },
                  labelLine: {
                    show: false,
                  },
                },
              },
              hoverAnimation: false,
              data: [
                {
                  value: 83,
                  name: "01",
                  itemStyle: {
                    normal: {
                      color: {
                        // 完成的圆环的颜色
                        colorStops: [
                          {
                            offset: 0,
                            color: "#ffa94d", // 0% 处的颜色
                          },
                          {
                            offset: 1,
                            color: "#f76707", // 100% 处的颜色
                          },
                        ],
                      },
                      label: {
                        show: false,
                      },
                      labelLine: {
                        show: false,
                      },
                    },
                  },
                },
                {
                  name: "02",
                  value: 17,
                },
              ],
            },
          ],
        },
        true
      );
    }
  };

  completeRate = () => {
    let completeRates = document.getElementById("completeRate");
    if (completeRates) {
      let myChart = echarts.init(completeRates);
      myChart.setOption({
        title: [
          {
            text: "99%",
            x: "center",
            top: "40%",
            textStyle: {
              fontWeight: "normal",
              color: "#0580f2",
              fontSize: "26",
            },
          },
          {
            text: "个人完成率",
            x: "center",
            top: "55%",
            textStyle: {
              fontWeight: "normal",

              fontSize: "14",
            },
          },
        ],
        color: ["rgba(176, 212, 251, 1)"],
        legend: {
          show: false,
          itemGap: 12,
          data: ["01", "02"],
        },

        series: [
          {
            name: "Line 1",
            type: "pie",
            clockWise: true,
            radius: ["60%", "76%"],
            itemStyle: {
              normal: {
                label: {
                  show: false,
                },
                labelLine: {
                  show: false,
                },
              },
            },
            hoverAnimation: false,
            data: [
              {
                value: 99,
                name: "01",
                itemStyle: {
                  normal: {
                    color: {
                      // 完成的圆环的颜色
                      colorStops: [
                        {
                          offset: 0,
                          color: "#00cefc", // 0% 处的颜色
                        },
                        {
                          offset: 1,
                          color: "#367bec", // 100% 处的颜色
                        },
                      ],
                    },
                    label: {
                      show: false,
                    },
                    labelLine: {
                      show: false,
                    },
                  },
                },
              },
              {
                name: "02",
                value: 1,
              },
            ],
          },
        ],
      });
    }
  };

  riskLevel = () => {
    let riskLevel = [];
    let showData = [
      { value: 2, name: "一级" },
      { value: 5, name: "二级" },
      { value: 15, name: "三级" },
      { value: 30, name: "四级" },
    ];

    let riskLevels = document.getElementById("riskLevel");
    if (riskLevels) {
      let myChart = echarts.init(riskLevels);
      myChart.setOption({
        color: ["#c92a2a", "#ffa94d", "#ffe066", "#4285F4", "#fa8a89"],
        title: [
          {
            text: "52",
            x: "26%",
            y: "40%",
            textStyle: {
              fontSize: 26,
              fontWeight: "normal",
              color: ["#333"],
            },
          },
          {
            text: "风险总数",
            x: "24%",
            y: "55%",
            textStyle: {
              color: "#666",
              fontSize: 12,
            },
          },
        ],
        tooltip: {
          trigger: "item",
          formatter: "{b}:({d}%)",
        },
        legend: {
          icon: "pin",
          orient: "vartical",
          // x: "right",
          top: "18%",
          right: "15%",
          bottom: "20%",
          data: showData,
          // itemWidth: 20,
          // itemHeight: 14,
          itemGap: 25,
          formatter: function (name) {
            //通过name获取到数组对象中的单个对象
            let singleData = showData.filter(function (item) {
              return item.name == name;
            });
            let countAll = 0;
            showData.map((item) => {
              countAll = countAll + item.value;
            });

            return (
              name +
              "  |  " +
              // singleData[0].value +
              // "   |   " +
              Number((singleData[0].value / countAll) * 100).toFixed(2) +
              "%"
            );
          },
        },
        grid: {
          left: 30,
          containLabel: true,
          bottom: 10,
          top: 10,
          right: 30,
        },
        series: [
          {
            name: "访问来源",
            type: "pie",
            clockwise: false,
            // minAngle: 20,
            avoidLabelOverlap: false,
            radius: ["50%", "65%"],
            center: ["30%", "50%"],
            itemStyle: {
              //图形样式
              normal: {
                borderColor: "#ffffff",
                borderWidth: 4,
                padding: "0 20px",
                borderRadius: 50,
              },
            },
            label: {
              show: false,
            },
            // color: color,
            data: showData,
          },
        ],
      });
    }
  };
  navToMenu = (ID) => {
    this.props.history.push({ pathname: `/main/${ID}` });
  };
  /**
   * 注销登录
   */
  handleLogout = () => {
    const { OrgId, userId } = this.props.login;
    const logJson = initFilter(OrgId, userId, "", 0, 1, 0);
    this.props.dispatch({
      type: "app/addLoginOut",
      payload: logJson,
    });
    localStorage.removeItem("accessToken");
    this.props.history.push({ pathname: "/login" });
  };

  handleUserMenuClick = (evt) => {
    switch (evt.key) {
      case "user-menu-logout":
        this.handleLogout();
        break;
      case "user-menu-cacheclean":
        window.localStorage.clear();
        message.success("清除成功，即将重新加载页面", 2, () => {
          setTimeout(() => window.location.reload(true), 500);
        });
        break;
      default:
        break;
    }
    this.setState({
      visible: false,
    });
  };
  ExpandCancel = () => {};
  showDetailModal = (formCode) => {
    var titleTemp = "";

    if (formCode == "BI054_HOMEDETAIL") {
      titleTemp += "安全检查次数统计（近12月）";
    } else if (formCode == "BI055_HOMEDETAIL") {
      titleTemp += "月度隐患整改情况（近12月）";
    } else if (formCode == "BI001_HOMEDETAIL") {
      titleTemp += "班组活动任务完成详情（近12月）";
    } else if (formCode == "BI002_HOMEDETAIL") {
      titleTemp += "工作票完成详情（近12月）";
    } else if (formCode == "BI013_RISKANALYSISMODEL") {
      titleTemp += "风险管理统计分析";
    }

    const newtmpData = {
      data: {
        id: guid(),
        onCancel: this.ExpandCancel,
        homeReload: true,
      },
      formCode: formCode,
    };
    this.setState({ tmpData: newtmpData }, () => {
      var detailForm = {
        isShow: true,
        formCode: formCode,
        title: titleTemp,
      };
      this.setState({
        detailForm: detailForm,
      });
    });
  };
  doubleClear = () => {
    if (this.state.searchVisible === true) {
      this.setState({ searchVisible: false });
    } else if (this.state.searchTodayVisible === true) {
      this.setState({ searchTodayVisible: false });
    }

    this.getBaseData(1, this.state.tableKey, 5);
  };
  vauleChange = (e) => {
    const { querySearch } = this.state;
    if (e.target.value) {
      switch (e.target.name) {
        case "searchName":
          querySearch[e.target.name] = e.target.value;
          this.setState({ querySearch });
          break;
        case "searchCode":
          querySearch[e.target.name] = e.target.value;
          this.setState({ querySearch });
          break;
        case "searchType":
          querySearch[e.target.name] = e.target.value;
          this.setState({ querySearch });
          break;
        case "searchContent":
          querySearch[e.target.name] = e.target.value;
          this.setState({ querySearch });
          break;
      }
    } else {
      this.setState({ querySearch: {} });
    }
  };
  handleSearch = (item) => {
    this.getBaseData(1, item, null);
  };
  selectChange = (value) => {
    const { querySearch } = this.state;
    querySearch.searchStatus = value;
    this.setState(
      {
        querySearch,
      },
      () => {}
    );
  };
  // 开始时间
  startChange = (dates, dateStr) => {
    const { querySearch } = this.state;
    if (dates.length != 2) {
      this.setState({
        visibleStartTime: [],
        querySearch: {},
      });
      return;
    }
    this.state.visibleStartTime = dates;
    querySearch.startTime1 = this.state.visibleStartTime[0].format(
      "YYYY-MM-DD HH:mm:ss"
    );
    querySearch.startTime2 = this.state.visibleStartTime[1].format(
      "YYYY-MM-DD HH:mm:ss"
    );
    this.setState(
      {
        querySearch,
      },
      () => {}
    );
  };
  // 结束时间
  endChange = (dates, dateStr) => {
    const { querySearch } = this.state;
    if (dates.length != 2) {
      this.setState({
        visibleEndTime: [],
        querySearch: {},
      });
      return;
    }
    this.state.visibleEndTime = dates;
    querySearch.endTime1 = this.state.visibleEndTime[0].format(
      "YYYY-MM-DD HH:mm:ss"
    );
    querySearch.endTime2 = this.state.visibleEndTime[1].format(
      "YYYY-MM-DD HH:mm:ss"
    );
    this.setState({ querySearch });
  };
  detailFormClose = () => {
    var detailForm = {
      isShow: false,
      formCode: "",
      title: "",
    };
    this.setState({
      detailForm: detailForm,
    });
  };

  render() {
    const rowSelection = {
      onChange: (selectedRowKeys, selectedRows) => {
        this.state.taskSelects = selectedRows;
      },
    };
    return (
      <div
        className="route-home"
        style={{
          padding: "0 10px",
          minHeight: "735px",
          height: "100%",
          width: "100%",
        }}
        ref={this.resizeRef}
      >
        <Modal
          visible={this.state.formVisible}
          title={this.state.noticeTitle}
          maskClosable={false}
          onCancel={this.handleCancel}
          footer={null}
          className="antd-modal-fullscreen"
          closeModal={this.closeModal}
          // forceRender={true}
        >
          <FormPage {...this.state.tmpData} />
        </Modal>
        <Modal
          visible={this.state.detailForm.isShow}
          title={this.state.detailForm.title}
          maskClosable={false}
          closeModal={this.detailFormClose}
          onCancel={this.detailFormClose}
          footer={null}
          width="1300px"
        >
          <FormPage {...this.state.tmpData} />
        </Modal>
        <Modal
          visible={this.state.searchVisible}
          zIndex={999}
          title={this.state.visibleTitle}
          maskClosable={false}
          onCancel={this.doubleClear}
          footer={false}
          className="antd-modal-homescreen"
        >
          <div>
            <Form>
              <Row style={{margin:'50px 50px 0px 50px'}}>
                <Col span={5}>
                  <Form.Item label={"名称"} {...formItemLayout}>
                    <Input
                      value={this.state.querySearch.searchName}
                      placeholder={"请输入任务名称"}
                      name="searchName"
                      onChange={this.vauleChange}
                    />
                  </Form.Item>
                </Col>
                <Col span={6}>
                  <Form.Item label={"开始时间"} {...formItemLayout}>
                    <RangePicker
                      value={this.state.visibleStartTime}
                      onChange={this.startChange}
                    />
                  </Form.Item>
                </Col>
                <Col span={6}>
                  <Form.Item label={"结束时间"} {...formItemLayout}>
                    <RangePicker
                      value={this.state.visibleEndTime}
                      onChange={this.endChange}
                    />
                  </Form.Item>
                </Col>
                <Col span={2}>
                  <Button
                    type={"primary"}
                    icon={"search"}
                    onClick={() =>
                      this.handleSearch(this.state.currentpageIndex)
                    }
                  >
                    搜索
                  </Button>
                </Col>
              </Row>
            </Form>
            <Table
              // rowSelection={rowSelection}
              dataSource={this.state.workTotalData}
              columns={this.state.searchColumns}
              onChange={(num) =>
                this.getBaseInfoData(num, this.state.currentpageIndex, null)
              }
              loading={this.state.showLoading}
              size="small"
              style={{ padding: "0px 20px" }}
            />
          </div>
        </Modal>
        <Modal
          visible={this.state.searchTodayVisible}
          title={this.state.visibleTitle}
          maskClosable={false}
          zIndex={999}
          onCancel={this.doubleClear}
          footer={false}
          className="antd-modal-homescreen"
        >
          <div>
            <Form>
              <Row style={{margin:'50px 50px 0px 50px'}}>
                <Col span={5}>
                  <Form.Item label={"提醒内容"} {...formItemLayout}>
                    <Input
                      value={this.state.querySearch.searchName}
                      placeholder={"请输入提醒内容"}
                      name="searchName"
                      onChange={this.vauleChange}
                    />
                  </Form.Item>
                </Col>
                <Col span={6}>
                  <Form.Item label={"开始时间"} {...formItemLayout}>
                    <RangePicker
                      value={this.state.visibleStartTime}
                      // defaultValue={[moment(moment(this.state.querySearch.startTime1), "YYYY-MM-DD"), moment(moment(this.state.querySearch.startTime2), "YYYY-MM-DD")]}
                      onChange={this.startChange}
                    />
                  </Form.Item>
                </Col>
                <Col span={6}>
                  <Form.Item label={"结束时间"} {...formItemLayout}>
                    <RangePicker
                      value={this.state.visibleEndTime}
                      // defaultValue={[moment(moment(this.state.querySearch.startTime1), "YYYY-MM-DD"), moment(moment(this.state.querySearch.startTime2), "YYYY-MM-DD")]}
                      onChange={this.endChange}
                    />
                  </Form.Item>
                </Col>
                <Col span={3}>
                  <Form.Item label={"状态"} {...formItemLayout}>
                    <Select
                      value={this.state.querySearch.searchStatus}
                      // defaultValue={[moment(moment(this.state.querySearch.startTime1), "YYYY-MM-DD"), moment(moment(this.state.querySearch.startTime2), "YYYY-MM-DD")]}
                      onChange={this.selectChange}
                    >
                      <Option value="0">未读</Option>
                      <Option value="3">已读</Option>
                      <Option value="1">已办</Option>
                    </Select>
                  </Form.Item>
                </Col>
                <Col span={2}>
                  <Button
                    type={"primary"}
                    icon={"search"}
                    onClick={() =>
                      this.handleSearch(this.state.currentpageIndex)
                    }
                  >
                    搜索
                  </Button>
                </Col>
              </Row>
            </Form>
            <Table
              dataSource={this.state.workTotalData}
              columns={this.state.searchColumns}
              onChange={(num) =>
                this.getBaseInfoData(num, this.state.currentpageIndex, null)
              }
              loading={this.state.showLoading}
              size="small"
              style={{ padding: "0px 20px" }}
            />
          </div>
        </Modal>

        <Col span={24} style={{ width: "100%", height: "100%" }}>
          {this.state.lmVisible ? (
            <Row
              gutter={12}
              style={{
                width: "100%",
                height: "25%",
                display: "flex",
                // padding: "0px 20px",
                margin: "0px",
                minHeight: "242px",
                minWidth: "1136px",
                // justifyContent: "space-between",
                // backgroundColor: "#fff",
              }}
            >
              <Col
                span={10}
                style={{
                  backgroundColor: "#fff",
                  height: "100%",
                  display: "flex",
                  flexDirection: "column",
                  padding: "0px 20px",
                  borderRadius: "5px 0px 0px 5px",
                  minWidth: "453px",
                }}
              >
                <div
                  style={{
                    height: "50%",
                    width: "100%",
                    display: "flex",
                    flexDirection: "row",
                    alignItems: "center",
                    borderBottom: "2px solid #f6f6f6",
                  }}
                >
                  <div
                    style={{
                      width: "80px",
                      height: "80px",
                      borderRadius: "40px",
                      backgroundColor: "#fafafa",
                      fontSize: "18px",
                      display: "flex",
                      alignItems: "center",
                      justifyContent: "center",
                      marginRight: "10px",
                    }}
                  >
                    {this.state.userInfo.SEX == 1 ? (
                      <img
                        src={require("../assets/home/avaB.png")}
                        style={{
                          height: "60px",
                          width: "60px",
                          alignItems: "center",
                          objectFit: "contain",
                        }}
                        alt="homeuser"
                      />
                    ) : (
                      <img
                        src={require("../assets/home/avaG.png")}
                        style={{
                          height: "60px",
                          width: "auto",
                          alignItems: "center",
                          objectFit: "contain",
                        }}
                        alt="homeuser"
                      />
                    )}
                  </div>
                  <div
                    style={{
                      display: "flex",
                      flexDirection: "column",
                      height: "60px",
                      justifyContent: "space-between",
                      flex: 1,
                    }}
                  >
                    <div
                      style={{
                        display: "flex",
                        flexDirection: "row",
                        justifyContent: "space-between",
                        alignItems: "center",
                      }}
                    >
                      <div
                        style={{
                          color: "#303133",
                          fontSize: "16px",
                          marginLeft: "5px",
                          fontWeight: "bold",
                        }}
                      >
                        {this.state.userInfo.NAME}，{this.state.timeNow}
                      </div>
                      <div>
                        <Dropdown
                          visible={this.state.visible}
                          onVisibleChange={() => {
                            this.setState({ visible: !this.state.visible });
                          }}
                          overlay={
                            <Menu onClick={this.handleUserMenuClick}>
                              <Menu.Item
                                key="user-menu-UserInfoShow"
                                className="home-setting"
                              >
                                <Icon
                                  type="pushpin"
                                  style={{ fontSize: "14px", color: "" }}
                                ></Icon>
                                <FoUserInfoShow>我的资料</FoUserInfoShow>
                              </Menu.Item>
                              <Menu.Item
                                key="user-menu-updatepwd"
                                className="home-setting"
                              >
                                <Icon
                                  type="edit"
                                  style={{ fontSize: "14px" }}
                                ></Icon>
                                <ModifyPassword>修改密码</ModifyPassword>
                              </Menu.Item>
                              <Menu.Item
                                key="user-menu-cacheclean"
                                className="home-setting"
                              >
                                <Icon
                                  type="tool"
                                  style={{ fontSize: "14px" }}
                                ></Icon>
                                清除缓存
                              </Menu.Item>
                              {/* <Menu.Item>版本号:{config.version}</Menu.Item> */}
                              <Menu.Item
                                key="user-menu-logout"
                                className="home-setting"
                              >
                                <Icon
                                  type="poweroff"
                                  style={{ fontSize: "14px" }}
                                ></Icon>
                                退出登录
                              </Menu.Item>
                            </Menu>
                          }
                          placement="topLeft"
                          trigger={["click"]}
                        >
                          <Icon
                            type="setting"
                            className="home-setting-icon"
                          ></Icon>
                        </Dropdown>
                      </div>
                    </div>

                    <div style={{ display: "flex", flexDirection: "row" }}>
                      {/* <div
                      className="home-userInfo-tabs"
                      style={{
                        marginRight: "10px",
                      }}
                    >
                      工号：{this.state.userInfo.CODE}
                    </div> */}
                      <div
                        className="home-userInfo-tabs"
                        style={{
                          marginRight: "10px",
                        }}
                      >
                        手机号：{this.state.userInfo.PHONE}
                      </div>
                      {this.state.userInfo.Nav_Department ? (
                        <div className="home-userInfo-tabs">
                          部门：{this.state.userInfo.Nav_Department.NAME}
                        </div>
                      ) : (
                        ""
                      )}
                    </div>
                  </div>
                </div>
                <div className="home-userInfo-card">
                  <Col span={6}>
                    <UserInfo
                      data={this.state.workTotal.todoCount}
                      title="待办事项"
                      color="#2177d5"
                      showAll={() => {
                        this.showAll("1");
                      }}
                    />
                  </Col>
                  <Col span={6}>
                    <UserInfo
                      data={this.state.workTotal.timeOverCount}
                      title="待办超时"
                      color="#f76707"
                      showAll={() => {
                        this.showAll("4");
                      }}
                    />
                  </Col>
                  <Col span={6}>
                    <UserInfo
                      data={this.state.workTotal.doneCount}
                      title="已办事项"
                      color="#48a447"
                      showAll={() => {
                        this.showAll("2");
                      }}
                    />
                  </Col>
                  <Col span={6}>
                    <UserInfo
                      data={this.state.workTotal.todayNewCount}
                      title="今日提醒"
                      color="#fcc419"
                      showAll={() => {
                        this.showAll("3");
                      }}
                    />
                  </Col>
                </div>
              </Col>
              <Col
                span={7}
                style={{
                  backgroundColor: "#fff",
                  height: "100%",
                  borderRadius: "0px 5px 5px 0px",
                  padding: "0px",
                  display: "flex",
                  flexDirection: "row",
                  flex: 1,
                  alignItems: " center",
                  justifyContent: "center",
                }}
              >
                <Divider
                  type="vertical"
                  dashed={true}
                  style={{ height: "80%", backgroundColor: "#fff" }}
                />
                <div className="home-rate">
                  {/* <div className="home-always-title">
                  <div className="home-always-left">
                    <div className="home-always-badge"></div>
                    <div className="home-always-name">完成率</div>
                  </div>
                </div> */}
                  <div style={{ flex: 1, height: "100%", padding: "0px" }}>
                    <div
                      id="completeRate"
                      style={{
                        width: "100%",
                        height: "100%",
                        // minHeight: "180px",
                      }}
                    ></div>
                  </div>
                </div>
                <Divider
                  type="vertical"
                  dashed={true}
                  className="home-rate-divider"
                />
                {/* <div
                style={{
                  width: "20px",
                  height: "100%",
                  backgroundColor: "#f4f7ff",
                  minWidth: "20px",
                }}
              ></div> */}
                <div className="home-rate">
                  {/* <div className="home-always-title">
                  <div className="home-always-left">
                    <div className="home-always-badge"></div>
                    <div className="home-always-name">及时完成率</div>
                  </div>
                </div> */}
                  <div style={{ flex: 1, height: "100%", padding: "0px" }}>
                    <div
                      id="timelyRate"
                      style={{
                        width: "100%",
                        height: "100%",
                        // minHeight: "180px",
                      }}
                    ></div>
                  </div>
                </div>
              </Col>

              <div style={{ width: "30px", minWidth: "30px" }}></div>

              <Col
                span={6}
                style={{
                  backgroundColor: "#fff",
                  height: "100%",
                  padding: "0px",
                  borderRadius: "5px",
                  display: "flex",
                  flexDirection: "column",
                  minWidth: "344px",
                }}
              >
                <div className="home-always-title">
                  <div className="home-always-left">
                    <div className="home-always-badge"></div>
                    <div className="home-always-name">我的常用功能</div>
                  </div>

                  {/* <Icon type="edit" className="home-always-icon"></Icon> */}
                </div>
                <div style={{ flex: 1, height: "100%", padding: "10px 20px" }}>
                  <Row style={{ height: "50%" }}>
                    <AllTech
                      icon={"icon-a-zu291"}
                      title={"排班明细"}
                      techClick={() => {
                        this.navToMenu("6dc35aee-dd5e-4b31-b7ca-5f62d337d0c1");
                      }}
                    />
                    <AllTech
                      icon={"icon-a-zu196"}
                      title={"作业票"}
                      techClick={() => {
                        this.navToMenu("b3767117-f0aa-4122-97c1-2fc58fbaf934");
                      }}
                    />
                    <AllTech
                      icon={"icon-a-zu185"}
                      title={"外包作业票"}
                      techClick={() => {
                        this.navToMenu("7a9b51b1-3d56-4199-b450-f9f5f9cc3235");
                      }}
                    />
                    <AllTech
                      icon={"icon-a-zu65"}
                      title={"作业任务识别"}
                      techClick={() => {
                        this.navToMenu("2beef9b3-e4b9-4b0b-9e82-238c4bf3be5d");
                      }}
                    />
                  </Row>
                  <Row style={{ height: "50%" }}>
                    <AllTech
                      icon={"icon-a-zu203"}
                      title={"检查任务制定"}
                      techClick={() => {
                        this.navToMenu("21b685c9-d298-4a14-9700-c9ab1bb8a918");
                      }}
                    />
                    <AllTech
                      icon={"icon-a-zu181"}
                      title={"手动隐患上报"}
                      techClick={() => {
                        this.navToMenu("2e7835ef-0e5a-41b5-8bb7-ad9c64a6b2f4");
                      }}
                    />
                    <AllTech
                      icon={"icon-a-zu198"}
                      title={"培训通知发起"}
                      techClick={() => {
                        this.navToMenu("818ab476-b29f-4db5-9393-fd13e1d2a565");
                      }}
                    />
                    <AllTech
                      icon={"icon-a-zu196"}
                      title={"普通会议通知"}
                      techClick={() => {
                        this.navToMenu("800abe55-a2cf-4e23-a2b6-1caf2dca816c");
                      }}
                    />
                  </Row>
                </div>
              </Col>
            </Row>
          ) : (
            <Row
              gutter={12}
              style={{
                width: "100%",
                height: "25%",
                display: "flex",
                // padding: "0px 20px",
                margin: "0px",
                minHeight: "242px",
                minWidth: "1136px",
                // justifyContent: "space-between",
                // backgroundColor: "#fff",
              }}
            >
              <Col
                span={13}
                style={{
                  backgroundColor: "#fff",
                  height: "100%",
                  display: "flex",
                  flexDirection: "column",
                  padding: "0px 20px",
                  borderRadius: "5px 5px 5px 5px",
                  minWidth: "453px",
                  flex: 1,
                }}
              >
                <div
                  style={{
                    height: "50%",
                    width: "100%",
                    display: "flex",
                    flexDirection: "row",
                    alignItems: "center",
                    borderBottom: "2px solid #f6f6f6",
                  }}
                >
                  <div
                    style={{
                      width: "80px",
                      height: "80px",
                      borderRadius: "40px",
                      backgroundColor: "#fafafa",
                      fontSize: "18px",
                      display: "flex",
                      alignItems: "center",
                      justifyContent: "center",
                      marginRight: "10px",
                    }}
                  >
                    {this.state.userInfo.SEX == 1 ? (
                      <img
                        src={require("../assets/home/avaB.png")}
                        style={{
                          height: "60px",
                          width: "60px",
                          alignItems: "center",
                          objectFit: "contain",
                        }}
                        alt="homeuser"
                      />
                    ) : (
                      <img
                        src={require("../assets/home/avaG.png")}
                        style={{
                          height: "60px",
                          width: "auto",
                          alignItems: "center",
                          objectFit: "contain",
                        }}
                        alt="homeuser"
                      />
                    )}
                  </div>
                  <div
                    style={{
                      display: "flex",
                      flexDirection: "column",
                      height: "60px",
                      justifyContent: "space-between",
                      flex: 1,
                    }}
                  >
                    <div
                      style={{
                        display: "flex",
                        flexDirection: "row",
                        justifyContent: "space-between",
                        alignItems: "center",
                      }}
                    >
                      <div
                        style={{
                          color: "#303133",
                          fontSize: "16px",
                          marginLeft: "5px",
                          fontWeight: "bold",
                        }}
                      >
                        {this.state.userInfo.NAME}，{this.state.timeNow}
                      </div>
                      <div>
                        <Dropdown
                          visible={this.state.visible}
                          onVisibleChange={() => {
                            this.setState({ visible: !this.state.visible });
                          }}
                          overlay={
                            <Menu onClick={this.handleUserMenuClick}>
                              <Menu.Item
                                key="user-menu-UserInfoShow"
                                className="home-setting"
                              >
                                <Icon
                                  type="pushpin"
                                  style={{ fontSize: "14px", color: "" }}
                                ></Icon>
                                <FoUserInfoShow>我的资料</FoUserInfoShow>
                              </Menu.Item>
                              <Menu.Item
                                key="user-menu-updatepwd"
                                className="home-setting"
                              >
                                <Icon
                                  type="edit"
                                  style={{ fontSize: "14px" }}
                                ></Icon>
                                <ModifyPassword>修改密码</ModifyPassword>
                              </Menu.Item>
                              <Menu.Item
                                key="user-menu-cacheclean"
                                className="home-setting"
                              >
                                <Icon
                                  type="tool"
                                  style={{ fontSize: "14px" }}
                                ></Icon>
                                清除缓存
                              </Menu.Item>
                              {/* <Menu.Item>版本号:{config.version}</Menu.Item> */}
                              <Menu.Item
                                key="user-menu-logout"
                                className="home-setting"
                              >
                                <Icon
                                  type="poweroff"
                                  style={{ fontSize: "14px" }}
                                ></Icon>
                                退出登录
                              </Menu.Item>
                            </Menu>
                          }
                          placement="topLeft"
                          trigger={["click"]}
                        >
                          <Icon
                            type="setting"
                            className="home-setting-icon"
                          ></Icon>
                        </Dropdown>
                      </div>
                    </div>

                    <div style={{ display: "flex", flexDirection: "row" }}>
                      {/* <div
                      className="home-userInfo-tabs"
                      style={{
                        marginRight: "10px",
                      }}
                    >
                      工号：{this.state.userInfo.CODE}
                    </div> */}
                      <div
                        className="home-userInfo-tabs"
                        style={{
                          marginRight: "10px",
                        }}
                      >
                        手机号：{this.state.userInfo.PHONE}
                      </div>
                      {this.state.userInfo.Nav_Department ? (
                        <div className="home-userInfo-tabs">
                          部门：{this.state.userInfo.Nav_Department.NAME}
                        </div>
                      ) : (
                        ""
                      )}
                    </div>
                  </div>
                </div>
                <div className="home-userInfo-card">
                  <Col span={6}>
                    <UserInfo
                      data={this.state.workTotal.todoCount}
                      title="待办事项"
                      color="#2177d5"
                      showAll={() => {
                        this.showAll("1");
                      }}
                    />
                  </Col>
                  <Col span={6}>
                    <UserInfo
                      data={this.state.workTotal.timeOverCount}
                      title="待办超时"
                      color="#f76707"
                      showAll={() => {
                        this.showAll("4");
                      }}
                    />
                  </Col>
                  <Col span={6}>
                    <UserInfo
                      data={this.state.workTotal.doneCount}
                      title="已办事项"
                      color="#48a447"
                      showAll={() => {
                        this.showAll("2");
                      }}
                    />
                  </Col>
                  <Col span={6}>
                    <UserInfo
                      data={this.state.workTotal.todayNewCount}
                      title="今日提醒"
                      color="#fcc419"
                      showAll={() => {
                        this.showAll("3");
                      }}
                    />
                  </Col>
                </div>
              </Col>
              <div style={{ width: "20px", minWidth: "20px" }}></div>
              <Col
                span={10}
                style={{
                  backgroundColor: "#fff",
                  height: "100%",
                  padding: "0px",
                  borderRadius: "5px",
                  display: "flex",
                  flexDirection: "column",
                  minWidth: "344px",
                }}
              >
                <div className="home-always-title">
                  <div className="home-always-left">
                    <div className="home-always-badge"></div>
                    <div className="home-always-name">风险等级占比</div>
                  </div>
                  <div
                    onClick={() =>
                      this.showDetailModal("BI013_RISKANALYSISMODEL")
                    }
                  >
                    <IconFont
                      type="icon-24gl-expand2"
                      // style={{
                      //   fontSize: "18px",
                      //   color: "#333333",
                      //   cursor: "pointer",
                      // }}
                      className="home-always-icon"
                    ></IconFont>
                  </div>
                </div>
                <div style={{ flex: 1, height: "100%", padding: "0px" }}>
                  <div
                    id="riskLevel"
                    style={{
                      width: "100%",
                      height: "100%",
                      // minHeight: "180px",
                    }}
                  ></div>
                </div>
              </Col>
            </Row>
          )}

          <Row
            gutter={12}
            style={{
              width: "100%",
              height: "40%",
              display: "flex",
              // padding: "0px 20px",
              margin: "30px 0px",
              // justifyContent: "space-between",
              alignItems: "center",
              minHeight: "388px",
              overflow: "hidden",
              // minWidth: "1204px",
              minWidth: "1136px",
              // backgroundColor: "#fff",
            }}
          >
            <Col
              span={17}
              style={{
                backgroundColor: "#fff",
                height: "100%",
                display: "flex",
                flexDirection: "column",
                padding: "0px",
                borderRadius: "5px",
                overflow: "hidden",
                flex: 1,
                // minWidth: "768px",
              }}
            >
              <div className="home-always-title">
                <div className="home-always-left">
                  <div className="home-always-badge"></div>
                  <div className="home-always-name">我的工作</div>
                </div>

                {/* <Icon type="edit" className="home-always-icon"></Icon> */}
              </div>
              <div style={{ flex: 1, height: "100%", padding: "5px 0px" }}>
                <Tabs defaultActiveKey="1" onChange={this.tabsCallback}>
                  <TabPane
                    tab={
                      <span className="home-job-title">
                        <Icon
                          type="schedule"
                          className="home-userInfo-Icon"
                          style={{ color: "#2177d5" }}
                        ></Icon>
                        待办事项{" "}
                      </span>
                    }
                    key="1"
                  >
                    <div
                      style={{
                        display: "flex",
                        flexDirection: "column",
                        justifyContent: "space-between",
                      }}
                    >
                      {this.state.workData.length > 0 ? (
                        <WorkBench
                          data={this.state.workData}
                          index={1}
                          benchCLick={this.workClick}
                        />
                      ) : (
                        <Empty image={Empty.PRESENTED_IMAGE_SIMPLE} />
                      )}
                    </div>
                  </TabPane>
                  <TabPane
                    tab={
                      <span className="home-job-title">
                        <Icon
                          type="hourglass"
                          className="home-userInfo-Icon"
                          style={{ color: "#f76707" }}
                        ></Icon>
                        待办超时
                      </span>
                    }
                    key="2"
                  >
                    <div
                      style={{
                        display: "flex",
                        flexDirection: "column",
                        justifyContent: "space-between",
                      }}
                    >
                      {this.state.workData.length > 0 ? (
                        <WorkBench
                          data={this.state.workData}
                          index={2}
                          benchCLick={this.workClick}
                        />
                      ) : (
                        <Empty image={Empty.PRESENTED_IMAGE_SIMPLE} />
                      )}
                    </div>
                  </TabPane>
                  <TabPane
                    tab={
                      <span className="home-job-title">
                        <Icon
                          type="check-circle"
                          className="home-userInfo-Icon"
                          style={{ color: "#48a447" }}
                        ></Icon>
                        已办事项
                      </span>
                    }
                    key="3"
                  >
                    <div
                      style={{
                        display: "flex",
                        flexDirection: "column",
                        justifyContent: "space-between",
                      }}
                    >
                      {this.state.workData.length > 0 ? (
                        <WorkBench
                          data={this.state.workData}
                          index={3}
                          benchCLick={this.workClick}
                        />
                      ) : (
                        <Empty image={Empty.PRESENTED_IMAGE_SIMPLE} />
                      )}
                    </div>
                  </TabPane>
                  <TabPane
                    tab={
                      <span className="home-job-title">
                        <Icon
                          type="bulb"
                          className="home-userInfo-Icon"
                          style={{ color: "#fcc419" }}
                        ></Icon>
                        今日提醒
                      </span>
                    }
                    key="4"
                  >
                    <div
                      style={{
                        display: "flex",
                        flexDirection: "column",
                        justifyContent: "space-between",
                      }}
                    >
                      {this.state.workData.length > 0 ? (
                        <WorkBench
                          data={this.state.workData}
                          index={4}
                          benchCLick={this.workClick}
                        />
                      ) : (
                        <Empty image={Empty.PRESENTED_IMAGE_SIMPLE} />
                      )}
                    </div>
                  </TabPane>
                </Tabs>
              </div>
            </Col>
            {this.state.lmVisible ? (
              <div style={{ width: "30px", minWidth: "30px" }}></div>
            ) : null}
            {this.state.lmVisible ? (
              <Col
                span={6}
                style={{
                  backgroundColor: "#fff",
                  height: "100%",
                  padding: "0px",
                  borderRadius: "5px",
                  display: "flex",
                  flexDirection: "column",
                  minWidth: "344px",
                }}
              >
                <div className="home-always-title">
                  <div className="home-always-left">
                    <div className="home-always-badge"></div>
                    <div className="home-always-name">完成率排名</div>
                  </div>

                  {/* <Icon type="edit" className="home-always-icon"></Icon> */}
                  <div onClick={() => this.showDetailModal("BI001_HOMEDETAIL")}>
                    <IconFont
                      type="icon-24gl-expand2"
                      // style={{
                      //   fontSize: "18px",
                      //   color: "#333333",
                      //   cursor: "pointer",
                      // }}
                      className="home-always-icon"
                    ></IconFont>
                  </div>
                </div>
                <div
                  style={{
                    flex: 1,
                    height: "100%",
                    padding: "15px 40px 15px 40px",
                  }}
                >
                  {this.state.completeName.map((item, index) => {
                    return (
                      <div className="home-rank">
                        <div className="home-ranks">
                          {index == 0 ? (
                            <img
                              src={require("./../assets/home/4-1.png")}
                              className="home-img"
                              alt="4-1"
                            />
                          ) : index == 1 ? (
                            <img
                              src={require("./../assets/home/4-2.png")}
                              className="home-img"
                              alt="4-2"
                            />
                          ) : index == 2 ? (
                            <img
                              src={require("./../assets/home/4-3.png")}
                              className="home-img"
                              alt="4-3"
                            />
                          ) : (
                            <div className="home-rank-index">{index + 1}</div>
                          )}

                          <div className="home-rank-name">{item.name}</div>
                        </div>

                        <Progress
                          percent={item.value}
                          status="active"
                          style={{ width: "48%" }}
                        ></Progress>
                      </div>
                    );
                  })}
                </div>
              </Col>
            ) : null}
          </Row>
          <Row
            gutter={12}
            className="home-row"
            style={{
              margin: "0px 0px 10px 0px",
              minHeight: "275px",
              // minWidth: "1204px",
              minWidth: "1136px",
            }}
          >
            <Col
              span={this.state.lmdisplay}
              style={{
                height: "100%",
                display: "flex",
                flexDirection: "row",
                padding: "0px",
                borderRadius: "5px",
                flex: 1,
              }}
            >
              <div className="home-chart">
                <div className="home-always-title">
                  <div className="home-always-left">
                    <div className="home-always-badge"></div>
                    <div className="home-always-name">安全检查次数统计</div>
                  </div>
                  <div onClick={() => this.showDetailModal("BI054_HOMEDETAIL")}>
                    <IconFont
                      type="icon-24gl-expand2"
                      // style={{
                      //   fontSize: "18px",
                      //   color: "#333333",
                      //   cursor: "pointer",
                      // }}
                      className="home-always-icon"
                    ></IconFont>
                  </div>
                </div>
                <div style={{ flex: 1, height: "100%", padding: "0px" }}>
                  <div
                    id="safeCheck"
                    style={{
                      width: "100%",
                      height: "100%",
                      // minHeight: "180px",
                    }}
                  ></div>
                </div>
              </div>
              <div style={{ width: "20px", minWidth: "20px" }}></div>
              <div className="home-chart">
                <div className="home-always-title">
                  <div className="home-always-left">
                    <div className="home-always-badge"></div>
                    <div className="home-always-name">月度隐患整改情况</div>
                  </div>
                  <div onClick={() => this.showDetailModal("BI055_HOMEDETAIL")}>
                    <IconFont
                      type="icon-24gl-expand2"
                      // style={{
                      //   fontSize: "18px",
                      //   color: "#333333",
                      //   cursor: "pointer",
                      // }}
                      className="home-always-icon"
                    ></IconFont>
                  </div>
                </div>
                <div style={{ flex: 1, height: "100%", padding: "0px" }}>
                  <div
                    id="dangerChange"
                    style={{
                      width: "100%",
                      height: "100%",
                      // minHeight: "180px",
                    }}
                  ></div>
                </div>
              </div>
            </Col>
            {this.state.lmVisible ? (
              <div style={{ width: "30px", minWidth: "30px" }}></div>
            ) : null}

            {this.state.lmVisible ? (
              <Col
                span={6}
                style={{
                  backgroundColor: "#fff",
                  height: "100%",
                  padding: "0px",
                  borderRadius: "5px",
                  display: "flex",
                  flexDirection: "column",
                  minWidth: "344px",
                }}
              >
                <div className="home-always-title">
                  <div className="home-always-left">
                    <div className="home-always-badge"></div>
                    <div className="home-always-name">风险等级占比</div>
                  </div>
                  <div
                    onClick={() =>
                      this.showDetailModal("BI013_RISKANALYSISMODEL")
                    }
                  >
                    <IconFont
                      type="icon-24gl-expand2"
                      // style={{
                      //   fontSize: "18px",
                      //   color: "#333333",
                      //   cursor: "pointer",
                      // }}
                      className="home-always-icon"
                    ></IconFont>
                  </div>
                </div>
                <div style={{ flex: 1, height: "100%", padding: "0px" }}>
                  <div
                    id="riskLevel"
                    style={{
                      width: "100%",
                      height: "100%",
                      // minHeight: "180px",
                    }}
                  ></div>
                </div>
              </Col>
            ) : null}
          </Row>
        </Col>
      </div>
    );
  }
}
export default connect(({ login, app }) => ({ login, app }))(Home);
