import React, { useState, useEffect, useRef, Component } from 'react'
import { connect } from 'dva'
import storage from '../utils/storage'
import { initFilter, addRuleAndGroups, guid, extendInclude, extendRule, extend } from "../utils/common"
import './home.less'
// 组件库
import { Table, Modal, Row, Col, Icon, Button, Input, DatePicker, Form, Select, notification, Divider, Space, Descriptions,message } from 'antd';
import { Chart, Geom, Axis, Tooltip, Legend } from "bizcharts";
import FormPage from '../components/FormPage'
import backlog from '../assets/home/backlog.png';
import backlog_i from '../assets/home/backlog_icon.png';
import styles from './dashboard.css';
import Slider from "react-slick";
import 'slick-carousel/slick/slick.css';
import 'slick-carousel/slick/slick-theme.css';
import moment from 'moment';
import flow from '../assets/home/flow.png';
import flow_i from '../assets/home/flow_icon.png';
import finished from '../assets/home/finished.png';
import finished_i from '../assets/home/finished_icon.png';
import remind from '../assets/home/remind.png';
import remind_i from '../assets/home/remind_icon.png';
import noticeImg from '../assets/home/noticeImg.jpg';
import scoreImg from '../assets/home/score.jpg';
import echarts from 'echarts';
import config from '../config'
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 openNotificationMobile = placement => {
  notification.info({
    duration: 20,
    message: `友情提示:`,
    description:
      '您当前用的是手机在访问,为有更好体验,建议使用电脑访问!',
    placement,
  });
};
class Home extends React.Component {
  constructor(props) {
    super(props);
    this.state = {
      isNaN: false,
      scoreVisible: false,
      scoreTotalVisible: false,
      scoreNaVisible: false,
      standardScore: [],
      standardScoreTemp: [],
      standardScoreNaN: [],
      visible: false,
      xlkDisplay: 'none',
      lyxtDisplay: 'none',
      dcjdDisplay: 'none',
      noticeTitle: '',
      tmpData: {},
      tableKey: "1",
      pagination: {},
      retData: [],
      chartData: [],
      displayStr: null,
      displayNum: 24,
      columnData: [],
      columnFields: [],
      delayData: [],
      Workbench: {
        StockDetail: [],
        ApprovalCount: 0,
        InComingCount: 0,
        OutingCount: 0,
        ProductingCount: 0
      },//工作台模型
      showLoading: false,        //待办事项数据刷新提示
      searchVisible: false, //弹窗显示
      searchTodayVisible: false, //弹窗显示
      columns: [
      ],
      searchColumns: [
      ],
      scoreColumns: [],
      scoreTotalColumns:[],
      tableData: [{//工作台四个展示模块
        key: '1',
        bgImg: backlog,
        title: window.navigator.userAgent.indexOf("Windows") < 1 ? '待办' : '待办事项',
        total: '0',
        iconImg: backlog_i,
        iconDisplay: 'block',
      },
      {
        key: '4',
        bgImg: remind,
        title: window.navigator.userAgent.indexOf("Windows") < 1 ? '超时' : '待办超时',
        total: '0',
        iconImg: remind_i,
        iconDisplay: 'none',
      },
      {
        key: '2',
        bgImg: flow,
        title: window.navigator.userAgent.indexOf("Windows") < 1 ? '已办' : '已办事项',
        total: '0',
        iconImg: flow_i,
        iconDisplay: 'none',
      },
      {
        key: '3',
        bgImg: finished,
        title: '今日提醒',
        total: '0',
        iconImg: finished_i,
        iconDisplay: 'none',
      }
      ],
      visibleTitle: '',//点击title
      isSearch: false, // 是否搜索
      querySearch: {},//搜索集合
      visibleStartTime: [],
      visibleEndTime: [],
      currentpageIndex: "1",
      departmentName: "",
      isModalVisible: false,
      isModalVisible2: false,
      isModalVisible3: false,
      isModalVisible4: false,
      isModalVisible5: false,
      isModalVisible6: false,
      isModalVisibleRisk: false,
      stardardScoreQty: "0",
    };
    // this.enums = [];
    this.reportType = "";
    this.hiddenTop = 10;
    this.jobTop = 10;
    this.teamTop = 8;
    this.tempTime = moment(new Date()).add(-3, "month").format('YYYY-MM-DD');
  };
  componentDidMount() {
    if (window.navigator.userAgent.indexOf("Windows") < 1) {
      openNotificationMobile('bottomRight');
      this.state.displayStr = 'none';
      this.state.displayNum = 24;
      //alert('手机');
    } else {
      this.state.displayStr = '';
      this.state.displayNum = 16;
      //alert('PC');
    }
    this.state.columns = [
      {
        width: "450px",
        title: '任务名称',
        dataIndex: 'NOTICE_TITLE',
        key: 'NOTICE_TITLE',
        render: (text, record) => (
          
             this.showEditModal(record.SOURCE_DATA_ID, record.SOURCE_FORMCODE, record.ID, record.NOTICE_TITLE)}>{record.NOTICE_TITLE}
          
        ),
      },
      {
        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.getTeam();
    // this.getEnums();
    // this.targetCheck();//班组作业情况(统计图)
    // this.jobType();//岗位风险类别(统计图)
    // this.mainJobPie();//主要工作分布(饼图)
    // this.delayJobBar();// 超期事务(柱状图图) 
    //定时器功能,暂时不开启
    this.timerID = setInterval(() => this.getBaseInfoData(1, this.state.tableKey, 5), 120000);
    this.showModalSign();
    this.getBaseInfoData(1, 1, 5);
    this.setMessageData();
    this.state.scoreNoneColumns = [
      {
        width: "50px",
        title: '生产单元',
        dataIndex: 'Nav_ProductionUnit.NAME',
        key: 'Nav_ProductionUnit.NAME',
      },
      {
        width: "50px",
        title: '一级要素',
        dataIndex: 'Nav_Primary.NAME',
        key: 'Nav_Primary.NAME'
      },
      {
        width: "50px",
        title: '二级要素',
        dataIndex: 'Nav_Second.NAME',
        key: 'Nav_Second.NAME'
      },
      {
        width: "50px",
        title: '考评项目',
        dataIndex: 'EVALUATION_ITEM',
        key: 'EVALUATION_ITEM',
        render: (text, record) => (
          
            {this.props.app.enums?.PEEvaluationItemEnum.enums[record.EVALUATION_ITEM]}
          
        ),
      }, {
        // width: "450px",
        title: '考评内容',
        dataIndex: 'CONTENTS',
        key: 'CONTENTS',
      },
      // {
      //   with: '100px',
      //   title: '评分办法',
      //   dataIndex: 'DESCRIPTION',
      //   key: 'DESCRIPTION',
      // },
       {
        width: "50px",
        title: '扣分分值',
        dataIndex: 'NON_STANDARDIZED_SCORE',
        key: 'NON_STANDARDIZED_SCORE',
      },
      // {
      //   with: '50px',
      //   title: '标准分',
      //   dataIndex: 'STANDARDIZED_SCORE',
      //   key: 'STANDARDIZED_SCORE',
      // },
      // {
      //   with: '50px',
      //   title: '实得分',
      //   dataIndex: 'RESULT_SCORE',
      //   key: 'RESULT_SCORE',
      // },
       {
        width: "400px",
        title: '不符合说明',
        dataIndex: 'NON_CONFORMANCE',
        key: 'NON_CONFORMANCE',
      },
      // {
      //   with: '50px',
      //   title: '评价结论',
      //   dataIndex: 'EVALUATION_RESULT',
      //   key: 'EVALUATION_RESULT',
      //   render: (text, record) => (
      //     
      //       {this.props.app.enums?.PEEvaluationResultEnum.enums[record.EVALUATION_RESULT]}
      //     
      //   ),
      // },
      {
        width: "100px",
        title: '评价方法',
        dataIndex: 'Nav_EvaluationMethod',
        key: 'Nav_EvaluationMethod',
        render: (text, record) => (
          {
            record.Nav_EvaluationMethod && record.Nav_EvaluationMethod?.map((item, i) => {
              return 
            })
          }
        )
      },
    ]
    this.state.scoreColumns = [
      {
        width: "50px",
        title: '生产单元',
        dataIndex: 'Nav_ProductionUnit.NAME',
        key: 'Nav_ProductionUnit.NAME',
      },
      {
        width: "50px",
        title: '一级要素',
        dataIndex: 'Nav_Primary.NAME',
        key: 'Nav_Primary.NAME'
      },
      {
        width: "50px",
        title: '二级要素',
        dataIndex: 'Nav_Second.NAME',
        key: 'Nav_Second.NAME'
      },
      {
        width: "50px",
        title: '三级要素',
        dataIndex: 'Nav_Three.NAME',
        key: 'Nav_Three.NAME',
      }, {
        width: "50px",
        title: '考评项目',
        dataIndex: 'EVALUATION_ITEM',
        key: 'EVALUATION_ITEM',
        render: (text, record) => (
          
            {this.props.app.enums?.PEEvaluationItemEnum.enums[record.EVALUATION_ITEM]}
          
        ),
      }, {
        // width: "500px",
        title: '考评内容',
        dataIndex: 'CONTENTS',
        key: 'CONTENTS',
      },
      {
        width: "100px",
        title: '评分办法',
        dataIndex: 'DESCRIPTION',
        key: 'DESCRIPTION',
      }, {
        width: "50px",
        title: '标准分',
        dataIndex: 'STANDARDIZED_SCORE',
        key: 'STANDARDIZED_SCORE',
      },
      {
        width: "50px",
        title: '实得分',
        dataIndex: 'RESULT_SCORE',
        key: 'RESULT_SCORE',
      }, 
      {
        width: "200px",
        title: '不符合说明',
        dataIndex: 'NON_CONFORMANCE',
        key: 'NON_CONFORMANCE',
      },
      , {
        width: "50px",
        title: '评价结论',
        dataIndex: 'EVALUATION_RESULT',
        key: 'EVALUATION_RESULT',
        render: (text, record) => (
          
            {this.props.app.enums?.PEEvaluationResultEnum.enums[record.EVALUATION_RESULT]}
          
        ),
      },
      {
        width: "100px",
        title: '评价方法',
        dataIndex: 'Nav_EvaluationMethod',
        key: 'Nav_EvaluationMethod',
        render: (text, record) => (
          {
            record.Nav_EvaluationMethod && record.Nav_EvaluationMethod?.map((item, i) => {
              return  
            })
          }
        )
      },
    ],
    this.state.scoreTotalColumns = [
      {
        title: '生产单元',
        dataIndex: 'Nav_ProductionUnit.NAME',
        key: 'Nav_ProductionUnit.NAME',
      },
      {
        title: '标准化得分',
        dataIndex: 'NON_STANDARDIZED_SCORE',
        key: 'NON_STANDARDIZED_SCORE',
      },
      // {
      //   with: '100px',
      //   title: '一级要素',
      //   dataIndex: 'Nav_Primary.NAME',
      //   key: 'Nav_Primary.NAME'
      // },
      // {
      //   with: '50px',
      //   title: '标准分',
      //   dataIndex: 'STANDARDIZED_SCORE',
      //   key: 'STANDARDIZED_SCORE',
      // },
      // {
      //   with: '50px',
      //   title: '实得分',
      //   dataIndex: 'RESULT_SCORE',
      //   key: 'RESULT_SCORE',
      // },
       {
        title: '操作',
        dataIndex: '',
        key: '',
        render: (text, record) => (
          {
               
             
          }
        )
      }
    ]
  };
  componentWillUnmount() {
    this.timerID && clearTimeout(this.timerID);
  }
  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');
        }
      }
    });
  };
  getTeam = () => {
    var userId = storage('lacal').getItem('userid')?.val;   //登录后有存储登录信息
    var orgId = storage('lacal').getItem('webOrgId')?.val;  //登录后有存储登录信息   
    if (orgId == '8f1cf418-8bf3-ea3f-7a6d-fc5d61247008') {
      this.setState({
        lyxtDisplay: 'block',
        xlkDisplay: 'none',
        dcjdDisplay: 'none'
      });
    }
    else if (orgId == '8b3c41aa-51b1-7ce9-1879-248a038c1b5c') {
      this.setState({
        lyxtDisplay: 'none',
        xlkDisplay: 'none',
        dcjdDisplay: 'block'
      });
    }
    else {
      this.setState({
        lyxtDisplay: 'none',
        xlkDisplay: 'block',
        dcjdDisplay: 'none'
      });
    }
    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 && ret.Nav_Department) {
          this.setState({
            departmentName: ret.Nav_Department.NAME
          });
          // this.hiddenDanger();
          this.targetCheck();//班组作业情况(统计图)
          this.departmentCompletion();//班组作业完成率前八(统计图)
          this.workTicket();//工作票完成率前十(统计图)
          this.hiddenDangerDeal();//隐患整改完成率前十(统计图)
          this.riskType();//岗位风险类别(统计图)
          this.riskLevel();//岗位风险等级(饼图)
          this.getStandardScore(ret.MineType);//获取标准化评分
        }
      }
    });
  };
  
  // hiddenDanger wyw
  hiddenDanger = () => {
    const userInfo = storage("lacal").getItem("webUserInfo").val;
    let json = initFilter(this.props.login.OrgId, "", "NUM");
    this.props.dispatch({
      type: "app/getDataByPost",
      url: "BI/BIHome/GetHomeInfo",
      // payload: json,
      onlyData: false,
      onComplete: (data) => {
        
        if (data && data.IsSuccessful) {
          this.hiddenTop = data.Data.length;
          this.setState({
            dangerList: data.Data,
          });
          this.hiddenDangerDeal();
          // this.hiddenDangerTotal();
          //图标2
        }
      },
    });
  };
  getStandardScore = (MineType) => {
    //标准化得分
    var orgId = storage('lacal').getItem('webOrgId')?.val;  //登录后有存储登录信息   
    let json = initFilter(orgId, MineType)
    this.props.dispatch({
      type: 'app/getDataByPost',
      payload: json,
      url: 'PE/PESafetyEvaluationRecord/HomeGet',
      onComplete: (ret) => {
        if (ret && ret.Nav_Details) {
          this.setState({
            standardScore: ret,
            stardardScoreQty: ret.STANDARDIZED_RESULT//(ret.RESULT_TOTAL / ret.STAND_TOTAL * 100).toFixed(2)
          });
        }
        else
        {
          this.setState({
            standardScore: [],
            stardardScoreQty: 0
          });
        }
      }
    });
  }
  totalTime = () => {
    var orgId = storage('lacal').getItem('webOrgId')?.val;  //登录后有存储登录信息   
    let json = initFilter(orgId)
    extendRule(json, 'SET_TYPE', 1, 85)
    this.props.dispatch({
      type: 'app/getDataByPost',
      payload: json,
      url: 'PT/TimeSet/Get',
      onComplete: (ret) => {
        if (ret) {
          this.tempTime = moment(ret.RUNSETTIME).format('YYYY-MM-DD');
          this.setState({
            isModalVisible2: true
          });
        }
      }
    });
  }
  getEnums = () => {
    this.props.dispatch({
      type: 'app/getDataByGet',
      url: 'PF/Extend/GetAllEnum',
      onComplete: (ret) => {
        if (ret) {
          this.enums = ret;
        }
      }
    });
  };
  //班组作业完成情况统计图
  targetCheck = () => {
    const { departmentName } = this.state;
    const userInfo = storage('lacal').getItem('webUserInfo').val;
    let json = initFilter(this.props.login.OrgId, departmentName, "WAITTING_COUNT", "desc");
    this.props.dispatch({
      type: 'app/getDataByPost',
      url: "BI/BIStatiscialAnalysisController/GetClassCompletionSort",
      payload: json,
      onlyData: false,
      onComplete: (data) => {
        if (data && data.IsSuccessful) {
          // let enumsTemp = this.enums;
          // let formTypeEnums = enumsTemp ?enumsTemp.find(item => item.EnumName === "BIFormType"):[];
          let formName = [];
          let wattingQty = [];
          let finishQty = [];
          let totalQty = [];
          let WattingRate = [];
          let finishRate = [];
          // let result = data.Data.filter(t => t.TEAM_NAME == departmentName);
          if (data.Data) {
            data.Data.forEach(item => {
              // let enums = formTypeEnums && formTypeEnums.options?formTypeEnums.options.find(t => t.value === item.FORM_TYPE):[];
              // formName.push(enums?enums.label:item.FORM_TYPE);
              formName.push(item.FORM_NAME);
              wattingQty.push(item.WAITTING_COUNT);
              finishQty.push(item.FINISH_COUNT);
              totalQty.push(item.TOTAL_COUNT);
              let finishRateTemp = (item.FINISH_COUNT / item.TOTAL_COUNT * 100).toFixed(2);
              let WattingRateTemp = (item.WAITTING_COUNT / item.TOTAL_COUNT * 100).toFixed(2);
              finishRate.push(finishRateTemp);
              WattingRate.push(WattingRateTemp);
            })
            var teamPre = data.Data.filter(t => t.FORM_NAME == "班前会议");
            if (teamPre.length === 0) {
              formName.push("班前会议");
              finishRate.push(0);
              WattingRate.push(100);
            }
            var teamCur = data.Data.filter(t => t.FORM_NAME == "岗位当班");
            if (teamCur.length === 0) {
              formName.push("岗位当班");
              finishRate.push(0);
              WattingRate.push(100);
            }
            var teamAft = data.Data.filter(t => t.FORM_NAME == "岗位交接班");
            if (teamAft.length === 0) {
              formName.push("岗位交接班");
              finishRate.push(0);
              WattingRate.push(100);
            }
            var teamAct = data.Data.filter(t => t.FORM_NAME == "班组安全活动记录");
            if (teamAct.length === 0) {
              formName.push("班组安全活动记录");
              finishRate.push(0);
              WattingRate.push(100);
            }
          }
          let targetChecks = document.getElementById('targetCheck');
          if (targetChecks) {
            let myChart = echarts.init(targetChecks);
            myChart.setOption({
              tooltip: {
                trigger: 'axis',
                axisPointer: {            // 坐标轴指示器,坐标轴触发有效
                  type: 'shadow'        // 默认为直线,可选为:'line' | 'shadow'
                },
                // formatter:function (params) {
                //   console.log(params); // 当我们想要自定义提示框内容时,可以先将鼠标悬浮的数据打印出来,然后根据需求提取出来即可
                //   let firstParams = params[0];
                //   let sndParams = params[1];
                //   let endParams = params[2];
                //   return firstParams.seriesName +'  ' + firstParams.value +'
' +sndParams.seriesName +'  ' + sndParams.value +'
' + endParams.seriesName +'  ' + endParams.value;
                // }        
              },
              grid: {
                left: '3%',
                right: '4%',
                top: '3%',
                containLabel: true
              },
              xAxis: {
                type: 'value',
                splitLine: {
                  show: false,
                  lineStyle: {
                    color: '#172749'
                  }
                },
                axisLine: {
                  show: false
                },
                axisTick: {
                  show: false
                },
                axisLabel: {
                  show: true,
                  interval: 0,
                  formatter: '{value} %',  // 给每个数值添加%
                  // fontSize: '22'
                },
              },
              legend: {
                data: ['完成率', '未完成'],
                bottom: '35px'
              },
              yAxis: {
                type: 'category',
                axisTick: {
                  show: false
                },
                axisLine: {
                  show: false
                },
                splitLine: {
                  show: false,
                  lineStyle: {
                    color: '#172749'
                  }
                },
                data: formName,
              },
              series: [
                // {
                //   name: '总数',
                //   type: 'bar',
                //   stack: '',
                //   label: {
                //     show: true,
                //     position: 'right',
                //     color: '#000',
                //   },
                //   data: totalQty,
                //   barGap: '-100%',   
                //   z:-1,
                //   itemStyle: {
                //     normal: {
                //         color: 'rgba(128, 128, 128, 0.3)'   
                //     }
                // },
                // },
                // {
                //   name: '已办',
                //   type: 'bar',
                //   stack: '',
                //   label: {
                //     show: true,
                //     position: 'right',
                //     color: '#000',
                //   },
                //   data: finishQty,
                //   barGap: '-100%',   
                //   z:-1,
                //   itemStyle: {
                //     normal: {
                //       color: '#5B9BD5',  
                //     }
                // },
                // },
                // {
                //   name: '待办',
                //   type: 'bar',
                //   stack: '',
                //   label: {
                //     show: true,
                //     position: 'right',
                //     color: '#000',
                //   },
                //   data: wattingQty,
                //   barGap: '-100%',   
                //   z:-1,
                //   itemStyle: {
                //     normal: {
                //       color: 'rgba(192, 192, 192)',  
                //     }
                // },
                // },
                {
                  name: '完成率',
                  type: 'bar',
                  stack: '总量',
                  // color: '#ED7D31',//#ED7D31、008000、ED7D31
                  data: finishRate.map(item => {
                    return {
                      value: item,
                      label: {
                        show: item > 0 ? true : false,
                        position: 'inside',
                        color: '#fff',
                        formatter: '{c}%',
                        fontSize: '16'
                      },
                      // 每一个条目的样式配置
                      itemStyle: {
                        // barBorderRadius: [0, 34, 34, 0], // 圆角
                        // 渐变色  1、指明颜色渐变的方向  2、指明不同百分比之下颜色的值
                        color: new echarts.graphic.LinearGradient(0, 0, 1, 0, [
                          { offset: 0, color: "#9999FF" },//rgba(187,162,227,0.6)
                          { offset: 1, color: "#3366CC" },//rgba(102,140,218,0.6)
                        ]),
                      },
                    }
                  }),//finishRate
                  show: false,
                  // 每一个条目的样式配置
                  itemStyle: {
                    // barBorderRadius: [0, 34, 34, 0], // 圆角
                    // 渐变色  1、指明颜色渐变的方向  2、指明不同百分比之下颜色的值
                    color: new echarts.graphic.LinearGradient(0, 0, 1, 0, [
                      { offset: 0, color: "#9999FF" },//rgba(187,162,227,0.6)
                      { offset: 1, color: "#3366CC" },//rgba(102,140,218,0.6)
                    ]),
                  },
                },
                {
                  name: '未完成',
                  type: 'bar',
                  stack: '总量',
                  // label: {
                  //   show: true,
                  //   position: 'inside',
                  //   color: '#000',
                  //   formatter:'{c}%',
                  //   fontSize: '16'
                  // },
                  color: '#CCCCCC',//#5B9BD5、808080  rgba(192, 192, 192)
                  data: WattingRate
                },
              ],
            });
          }
        }
      }
    });
    //   let data = { "IsSuccessful": true, "Data": 
    //   [{ "FORM_NAME": "班前会议作业情况", "WATTING_COUNT": 0, "FINISH_COUNT": 20, "TOTAL_COUNT": 20}, 
    //   { "FORM_NAME": "岗位当班作业情况", "WATTING_COUNT": 3, "FINISH_COUNT": 10, "TOTAL_COUNT": 0}, 
    //   {"FORM_NAME": "岗位交接班作业情况", "WATTING_COUNT": 5, "FINISH_COUNT": 8, "TOTAL_COUNT": 0},
    //   {"FORM_NAME": "岗位交接2班作业情况", "WATTING_COUNT": 5, "FINISH_COUNT": 10, "TOTAL_COUNT": 0}
    // ], "TotalCount": 0, "ErrorMessage": null }
  }
  //班组作业完成率前八
  departmentCompletion = () => {
    const userInfo = storage('lacal').getItem('webUserInfo').val;
    let json = initFilter(this.props.login.OrgId, "", "NUM", "desc");
    this.props.dispatch({
      type: 'app/getDataByPost',
      url: "FM/DepartmentCompletionSort/OrderPaged",
      payload: json,
      onlyData: false,
      onComplete: (data) => {
        if (data && data.IsSuccessful) {
          this.teamTop = data.Data.length;
          // let enumsTemp = this.enums;
          // let formTypeEnums = enumsTemp ?enumsTemp.find(item => item.EnumName === "BIFormType"):[];
          let teamName = [];
          let finishQty = [];
          let wattingQty = [];
          let totalQty = [];
          let finishRate = [];
          let WattingRate = [];
          data.Data.forEach(item => {
            // let enums = formTypeEnums && formTypeEnums.options?formTypeEnums.options.find(t => t.value === item.FORM_TYPE):[];
            // formName.push(enums?enums.label:item.FORM_TYPE);
            teamName.push(item.TEAM_NAME);
            let totalTemp = item.TEAM_TOTAL_COUNT + item.POST_TOTAL_COUNT + item.HANDOVER_TOTAL_COUNT;
            let finishTemp = item.TEAM_FINISH_COUNT + item.POST_FINISH_COUNT + item.HANDOVER_FINISH_COUNT;
            let waittingTemp = totalTemp - finishTemp;
            finishQty.push(finishTemp);
            totalQty.push(totalTemp);
            wattingQty.push(waittingTemp);
            let finishRateTemp = (finishTemp / totalTemp * 100).toFixed(2);
            let WattingRateTemp = (waittingTemp / totalTemp * 100).toFixed(2);
            finishRate.push(finishRateTemp);
            WattingRate.push(WattingRateTemp);
          })
          let departmentCompletions = document.getElementById('departmentCompletion');
          if (departmentCompletions) {
            let myChart = echarts.init(departmentCompletions);
            myChart.setOption({
              tooltip: {
                trigger: 'axis',
                axisPointer: {            // 坐标轴指示器,坐标轴触发有效
                  type: 'shadow'        // 默认为直线,可选为:'line' | 'shadow'
                },
                // formatter:function (params) {
                //   console.log(params); // 当我们想要自定义提示框内容时,可以先将鼠标悬浮的数据打印出来,然后根据需求提取出来即可
                //   let firstParams = params[0];
                //   let sndParams = params[1];
                //   let endParams = params[2];
                //   return firstParams.seriesName +'  ' + firstParams.value +'
' +sndParams.seriesName +'  ' + sndParams.value +'
' + endParams.seriesName +'  ' + endParams.value;
                // }        
              },
              grid: {
                left: '3%',
                right: '4%',
                top: '10%',
                bottom: '10%',
                containLabel: true
              },
              xAxis: {
                type: 'value',
                splitLine: {
                  show: false,
                  lineStyle: {
                    color: '#172749'
                  }
                },
                axisLine: {
                  show: false
                },
                axisTick: {
                  show: false
                },
                axisLabel: {
                  show: true,
                  interval: 0,
                  formatter: '{value} %',  // 给每个数值添加%
                  // fontSize: '22'
                },
              },
              legend: {
                data: ['完成率', '未完成'],
                bottom: '00px'
              },
              yAxis: {
                type: 'category',
                axisTick: {
                  show: false
                },
                axisLine: {
                  show: false
                },
                splitLine: {
                  show: false,
                  lineStyle: {
                    color: '#172749'
                  }
                },
                data: teamName,
              },
              series: [
                // {
                //   name: '总数',
                //   type: 'bar',
                //   stack: '',
                //   label: {
                //     show: true,
                //     position: 'right',
                //     color: '#000',
                //   },
                //   data: totalQty,
                //   barGap: '-100%',   
                //   z:-1,
                //   itemStyle: {
                //     normal: {
                //         color: 'rgba(128, 128, 128, 0.3)'   
                //     }
                // },
                // },
                // {
                //   name: '已办',
                //   type: 'bar',
                //   stack: '',
                //   label: {
                //     show: true,
                //     position: 'right',
                //     color: '#000',
                //   },
                //   data: finishQty,
                //   barGap: '-100%',   
                //   z:-1,
                //   itemStyle: {
                //     normal: {
                //       color: '#5B9BD5',  
                //     }
                // },
                // },
                // {
                //   name: '待办',
                //   type: 'bar',
                //   stack: '',
                //   label: {
                //     show: true,
                //     position: 'right',
                //     color: '#000',
                //   },
                //   data: wattingQty,
                //   barGap: '-100%',   
                //   z:-1,
                //   itemStyle: {
                //     normal: {
                //       color: 'rgba(192, 192, 192)',  
                //     }
                // },
                // },
                {
                  name: '完成率',
                  type: 'bar',
                  stack: '总量',
                  label: {
                    show: true,
                    position: 'inside',
                    color: '#fff',
                    formatter: '{c}%',
                    fontSize: '12'
                  },
                  // 每一个条目的样式配置
                  itemStyle: {
                    // barBorderRadius: [0, 34, 34, 0], // 圆角
                    // 渐变色  1、指明颜色渐变的方向  2、指明不同百分比之下颜色的值
                    color: new echarts.graphic.LinearGradient(0, 0, 1, 0, [
                      { offset: 0, color: "#01AEF6" },
                      { offset: 1, color: "#9999FF" },//rgba(16,36,95,0.6)
                    ]),
                  },
                  // color: '#5B9BD5',//#ED7D31、008000、ED7D31
                  data: finishRate,
                  show: false
                },
                {
                  name: '未完成',
                  type: 'bar',
                  stack: '总量',
                  // label: {
                  //   show: true,
                  //   position: 'inside',
                  //   color: '#000',
                  //   formatter:'{c}%',
                  //   fontSize: '16'
                  // },
                  color: '#CCCCCC',//#5B9BD5、808080  rgba(192, 192, 192)
                  data: WattingRate
                },
              ],
            });
          }
        }
      }
    });
    //   let data = { "IsSuccessful": true, "Data": 
    //   [{ "FORM_NAME": "班前会议作业情况", "WATTING_COUNT": 0, "FINISH_COUNT": 20, "TOTAL_COUNT": 20}, 
    //   { "FORM_NAME": "岗位当班作业情况", "WATTING_COUNT": 3, "FINISH_COUNT": 10, "TOTAL_COUNT": 0}, 
    //   {"FORM_NAME": "岗位交接班作业情况", "WATTING_COUNT": 5, "FINISH_COUNT": 8, "TOTAL_COUNT": 0},
    //   {"FORM_NAME": "岗位交接2班作业情况", "WATTING_COUNT": 5, "FINISH_COUNT": 10, "TOTAL_COUNT": 0}
    // ], "TotalCount": 0, "ErrorMessage": null }
  }
  //工作票完成情况统计图
  workTicket = () => {
    const userInfo = storage('lacal').getItem('webUserInfo').val;
    let json = initFilter(this.props.login.OrgId, "", "NUM");
    this.props.dispatch({
      type: 'app/getDataByPost',
      url: "FM/WorkTicketCompletion/OrderPaged",
      payload: json,
      onlyData: false,
      onComplete: (data) => {
        if (data && data.IsSuccessful) {
          this.jobTop = data.Data.length;
          let teamName = [];
          let wattingQty = [];
          let finishQty = [];
          let overFinishQty = [];
          let totalQty = [];
          data.Data.forEach(item => {
            teamName.push(item.TEAM_NAME);
            wattingQty.push(item.WAITTING_COUNT);
            finishQty.push(item.FINISH_COUNT);
            overFinishQty.push(item.OVER_FINISH_COUNT);
            totalQty.push(item.TOTAL_COUNT);
          })
          //图标2
          let workTickets = document.getElementById('workTicket');
          if (workTickets) {
            let myChart = echarts.init(workTickets);
            myChart.setOption({
              tooltip: {
                trigger: 'axis',
                axisPointer: {            // 坐标轴指示器,坐标轴触发有效
                  type: 'shadow'        // 默认为直线,可选为:'line' | 'shadow'
                },
              },
              grid: {
                left: '3%',
                right: '4%',
                top: '10%',
                bottom: '10%',
                containLabel: true
              },
              xAxis: {
                type: 'category',
                data: teamName,
                axisLine: {
                  show: false,
                  // lineStyle: {
                  //   color: 'rgba(192, 192, 102)'
                  // }
                },
                axisTick: {
                  show: false
                },
                axisLabel: {
                  color: '#000',
                  rotate: 40,
                  formatter: function (value) { // 自定义文字超出部分 ...
                    if (value.length > 5) {
                      return `${value.slice(0, 5)}...`;
                    }
                    return value;
                  }
                }
              },
              legend: {
                data: ['正常已办', '超时已办'],
                bottom: '0px'
              },
              yAxis: {
                type: 'value',
                splitLine: {
                  show: false,
                  lineStyle: {
                    color: '#172749'
                  }
                },
                axisLine: {
                  show: false,
                  // lineStyle: {
                  //   color: 'rgba(192, 192, 102)'
                  // }
                },
                axisTick: {
                  show: false
                },
              },
              series: [
                {
                  name: '总数',
                  type: 'bar',
                  stack: '',
                  label: {
                    show: true,
                    position: 'top',
                    color: '#000',
                  },
                  data: totalQty,
                  barGap: '-100%',
                  z: -1,
                  itemStyle: {
                    normal: {
                      color: '#CCCCCC'//rgba(128, 128, 128, 0.3)
                    }
                  },
                },
                {
                  name: '正常已办',
                  type: 'bar',
                  stack: '总量',
                  label: {
                    show: true,
                    position: 'inside',
                    color: '#000',
                  },
                  emphasis: {//折线图的高亮状态。
                    focus: "series",//聚焦当前高亮的数据所在的系列的所有图形。
                  },
                  data: finishQty,
                  barGap: '-100%',
                  z: -1,
                  itemStyle: {
                    // 渐变色  1、指明颜色渐变的方向  2、指明不同百分比之下颜色的值
                    color: new echarts.graphic.LinearGradient(0, 0, 1, 0, [
                      { offset: 0, color: "#01AEF6" },
                      { offset: 1, color: "rgba(16,36,95,0.6)" },//rgba(16,36,95,0.6) #9999FF
                    ]),
                    // normal: {
                    //   color: '#5B9BD5',
                    // }
                  },
                },
                {
                  name: '超时已办',
                  type: 'bar',
                  stack: '总量',
                  label: {
                    show: true,
                    position: 'inside',
                    color: '#000',
                  },
                  emphasis: {//折线图的高亮状态。
                    focus: "series",//聚焦当前高亮的数据所在的系列的所有图形。
                  },
                  data: overFinishQty,
                  barGap: '-100%',
                  z: -1,
                  itemStyle: {
                    // 渐变色  1、指明颜色渐变的方向  2、指明不同百分比之下颜色的值
                    color: new echarts.graphic.LinearGradient(0, 0, 1, 0, [
                      { offset: 0, color: "#ED7D31" },
                      { offset: 1, color: "#FFFF33" },//rgba(255,255,0,0.6)
                    ]),
                    // normal: {
                    //   color: '#ED7D31',
                    // }
                  },
                },
              ],
            });
          }
        }
      }
    });
  }
  // //工作票完成情况统计图
  // workTicket = () => {
  //   const userInfo = storage('lacal').getItem('webUserInfo').val;
  //   let json = initFilter(this.props.login.OrgId, "", "NUM");
  //   this.props.dispatch({
  //     type: 'app/getDataByPost',
  //     url: "FM/WorkTicketCompletion/OrderPaged",
  //     payload: json,
  //     onlyData: false,
  //     onComplete: (data) => {
  //       if (data && data.IsSuccessful) {
  //         let teamName = [];
  //         let wattingQty = [];
  //         let finishQty = [];
  //         let overFinishQty = [];
  //         let totalQty = [];
  //         data.Data.forEach(item => {
  //           teamName.push(item.TEAM_NAME);
  //           wattingQty.push(item.WAITTING_COUNT);
  //           finishQty.push(item.FINISH_COUNT);
  //           overFinishQty.push(item.OVER_FINISH_COUNT);
  //           totalQty.push(item.TOTAL_COUNT);
  //         })
  //         //图标2
  //         let myChart = echarts.init(document.getElementById('workTicket'));
  //         // x y 用来设置柱状的大小
  // const offsetX = 12;
  // const offsetY = 6;
  // // 绘制左侧面
  // const CubeLeft = echarts.graphic.extendShape({
  //   shape: {
  //     x: 0,
  //     y: 0
  //   },
  //   buildPath: function (ctx, shape) {
  //     // 会canvas的应该都能看得懂,shape是从custom传入的
  //     const xAxisPoint = shape.xAxisPoint;
  //     // console.log(shape);
  //     const c0 = [shape.x, shape.y];
  //     const c1 = [shape.x - offsetX, shape.y - offsetY];
  //     const c2 = [xAxisPoint[0] - offsetX, xAxisPoint[1] - offsetY];
  //     const c3 = [xAxisPoint[0], xAxisPoint[1]];
  //     ctx.moveTo(c0[0], c0[1]).lineTo(c1[0], c1[1]).lineTo(c2[0], c2[1]).lineTo(c3[0], c3[1]).closePath();
  //   }
  // });
  // // 绘制右侧面
  // const CubeRight = echarts.graphic.extendShape({
  //   shape: {
  //     x: 0,
  //     y: 0
  //   },
  //   buildPath: function (ctx, shape) {
  //     const xAxisPoint = shape.xAxisPoint;
  //     const c1 = [shape.x, shape.y];
  //     const c2 = [xAxisPoint[0], xAxisPoint[1]];
  //     const c3 = [xAxisPoint[0] + offsetX, xAxisPoint[1] - offsetY];
  //     const c4 = [shape.x + offsetX, shape.y - offsetY];
  //     ctx.moveTo(c1[0], c1[1]).lineTo(c2[0], c2[1]).lineTo(c3[0], c3[1]).lineTo(c4[0], c4[1]).closePath();
  //   }
  // });
  // // 绘制顶面
  // const CubeTop = echarts.graphic.extendShape({
  //   shape: {
  //     x: 0,
  //     y: 0
  //   },
  //   buildPath: function (ctx, shape) {
  //     const c1 = [shape.x, shape.y];
  //     const c2 = [shape.x + offsetX, shape.y - offsetY]; // 右点
  //     const c3 = [shape.x, shape.y - offsetX];
  //     const c4 = [shape.x - offsetX, shape.y - offsetY];
  //     ctx.moveTo(c1[0], c1[1]).lineTo(c2[0], c2[1]).lineTo(c3[0], c3[1]).lineTo(c4[0], c4[1]).closePath();
  //   }
  // });
  // // 注册三个面图形
  // echarts.graphic.registerShape('CubeLeft', CubeLeft);
  // echarts.graphic.registerShape('CubeRight', CubeRight);
  // echarts.graphic.registerShape('CubeTop', CubeTop);
  // myChart.setOption({
  //   tooltip: {
  //     show: true,
  //     trigger: 'axis',
  //     axisPointer: {
  //       type: 'shadow'
  //     },
  //     formatter: function (params, ticket, callback) {
  //       const item = params[1];
  //       return item.name + ' : ' + item.value;
  //     }
  //   },
  //   grid: {
  //     top: '12%',
  //     left: '3%',
  //     right: '5%',
  //     bottom: '10%',
  //     containLabel: true
  //   },
  //   xAxis: {
  //     type: 'category',
  //     data: teamName,
  //     axisLine: {
  //       show: false,
  //       lineStyle: {
  //         width: 1,
  //         color: '#344761'
  //       }
  //     },
  //     axisTick: {
  //       show: false
  //     },
  //     axisLabel: {
  //       color: '#000',
  //       rotate: 40,
  //       formatter: function (value) { // 自定义文字超出部分 ...
  //         if (value.length > 5) {
  //           return `${value.slice(0, 5)}...`;
  //         }
  //         return value;
  //       }
  //     }
  //   },
  //   legend: {
  //                 data: ['正常已办', '超时已办'],
  //                 bottom: '0px'
  //            },
  //   yAxis: {
  //     type: 'value',
  //     name: '',
  //     nameTextStyle: {
  //       color: '#fff'
  //     },
  //     axisLine: {
  //       show: false,
  //       lineStyle: {
  //         width: 1,
  //         color: '#344761'
  //       }
  //     },
  //     splitLine: {
  //       show: false,
  //       lineStyle: {
  //         color: '#172749'
  //       }
  //     },
  //     axisTick: {
  //       show: false
  //     },
  //     axisLabel: {
  //       color: '#000'
  //     }
  //   },
  //   series: [
  //     {
  //       type: 'custom',
  //       renderItem: (params, api) => {
  //         const location = api.coord([api.value(0), api.value(1)]);
  //         return {
  //           type: 'group',
  //           children: [
  //             {
  //               type: 'CubeLeft',
  //               barWidth: 20,
  //               shape: {
  //                 api,
  //                 xValue: api.value(0),
  //                 yValue: api.value(1),
  //                 x: location[0],
  //                 y: location[1],
  //                 xAxisPoint: api.coord([api.value(0), 0])
  //               },
  //               style: {
  //                 fill: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
  //                   {
  //                     offset: 0,
  //                     color: '#01f0ff'
  //                   },
  //                   {
  //                     offset: 1,
  //                     color: '#005559'
  //                   }
  //                 ])
  //               }
  //             },
  //             {
  //               type: 'CubeRight',
  //               shape: {
  //                 api,
  //                 xValue: api.value(0),
  //                 yValue: api.value(1),
  //                 x: location[0],
  //                 y: location[1],
  //                 xAxisPoint: api.coord([api.value(0), 0])
  //               },
  //               style: {
  //                 fill: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
  //                   {
  //                     offset: 0,
  //                     color: '#01f0ff'
  //                   },
  //                   {
  //                     offset: 1,
  //                     color: '#005559'
  //                   }
  //                 ])
  //               }
  //             },
  //             {
  //               type: 'CubeTop',
  //               shape: {
  //                 api,
  //                 xValue: api.value(0),
  //                 yValue: api.value(1),
  //                 x: location[0],
  //                 y: location[1],
  //                 xAxisPoint: api.coord([api.value(0), 0])
  //               },
  //               style: {
  //                 fill: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
  //                   {
  //                     offset: 0,
  //                     color: '#01f0ff'
  //                   },
  //                   {
  //                     offset: 1,
  //                     color: '#005559'
  //                   }
  //                 ])
  //               }
  //             }
  //           ]
  //         };
  //       },
  //       data: totalQty
  //     },
  //     {
  //       type: 'bar',
  //       label: {
  //         normal: {
  //           show: true,
  //           position: 'top',
  //           fontSize: 16,
  //           color: '#000',
  //           offset: [0, -5]
  //         }
  //       },
  //       itemStyle: {
  //         color: 'transparent'
  //       },
  //       tooltip: {},
  //       data: totalQty
  //     }
  //   ]
  // });
  //       }
  //     }
  //   });
  // }
  //隐患整改完成情况统计图
  hiddenDangerDeal = () => {
    const userInfo = storage('lacal').getItem('webUserInfo').val;
    let json = initFilter(this.props.login.OrgId, "", "NUM");
    this.props.dispatch({
      type: 'app/getDataByPost',
      url: "FM/HiddenDangerRectification/OrderPaged",
      payload: json,
      onlyData: false,
      onComplete: (data) => {
        if (data && data.IsSuccessful) {
          this.hiddenTop = data.Data.length;
          let teamName = [];
          let wattingQty = [];
          let finishQty = [];
          let overFinishQty = [];
          let totalQty = [];
          let dataList = [];
          data.Data.forEach(item => {
            teamName.push(item.TEAM_NAME);
            wattingQty.push(item.WAITTING_COUNT);
            finishQty.push(item.FINISH_COUNT);
            overFinishQty.push(item.OVER_FINISH_COUNT);
            totalQty.push(item.TOTAL_COUNT);
            dataList.push({ value: item.FINISH_COUNT, name: item.TEAM_NAME })
          })
          //图标2
          let hiddenDangerDeals = document.getElementById('hiddenDangerDeal');
          if (hiddenDangerDeals) {
            let myChart = echarts.init(hiddenDangerDeals);
            myChart.setOption({
              tooltip: {
                trigger: 'axis',
                axisPointer: {            // 坐标轴指示器,坐标轴触发有效
                  type: 'shadow'        // 默认为直线,可选为:'line' | 'shadow'
                },
              },
              grid: {
                left: '3%',
                right: '4%',
                top: '10%',
                bottom: '10%',
                containLabel: true
              },
              xAxis: {
                type: 'category',
                data: teamName,
                axisLine: {
                  show: false,
                  // lineStyle: {
                  //   color: 'rgba(192, 192, 102)'
                  // }
                },
                axisTick: {
                  show: false
                },
                axisLabel: {
                  color: '#000',
                  rotate: 40,
                  formatter: function (value) { // 自定义文字超出部分 ...
                    if (value.length > 5) {
                      return `${value.slice(0, 5)}...`;
                    }
                    return value;
                  }
                }
              },
              legend: {
                data: ['按时完成', '超时完成'],
                bottom: '0px'
              },
              yAxis: {
                type: 'value',
                splitLine: {
                  show: false,
                  lineStyle: {
                    color: '#172749'
                  }
                },
                axisLine: {
                  show: false,
                  // lineStyle: {
                  //   color: 'rgba(192, 192, 102)'
                  // }
                },
                axisTick: {
                  show: false
                },
              },
              series: [
                {
                  name: '隐患总数',
                  type: 'bar',
                  stack: '',
                  label: {
                    show: true,
                    position: 'top',
                    color: '#000',
                  },
                  data: totalQty,
                  barGap: '-100%',
                  z: -1,
                  itemStyle: {
                    normal: {
                      color: '#CCCCCC'//rgba(128, 128, 128, 0.3)
                    }
                  },
                },
                {
                  name: '按时完成',
                  type: 'bar',
                  stack: '总量',
                  label: {
                    show: true,
                    position: 'inside',
                    color: '#000',
                  },
                  emphasis: {//折线图的高亮状态。
                    focus: "series",//聚焦当前高亮的数据所在的系列的所有图形。
                  },
                  data: finishQty,
                  barGap: '-100%',
                  z: -1,
                  itemStyle: {
                    // 渐变色  1、指明颜色渐变的方向  2、指明不同百分比之下颜色的值
                    color: new echarts.graphic.LinearGradient(0, 0, 1, 0, [
                      { offset: 0, color: "#99FF99" },//rgba(128,255,128)
                      { offset: 1, color: "#333366" },//rgba(16,36,95,0.6)
                    ]),
                    // normal: {
                    //   color: '#ED7D31',
                    // }
                  },
                },
                {
                  name: '超时完成',
                  type: 'bar',
                  stack: '总量',
                  label: {
                    show: true,
                    position: 'inside',
                    color: '#000',
                  },
                  emphasis: {//折线图的高亮状态。
                    focus: "series",//聚焦当前高亮的数据所在的系列的所有图形。
                  },
                  data: overFinishQty,
                  barGap: '-100%',
                  z: -1,
                  itemStyle: {
                    // 渐变色  1、指明颜色渐变的方向  2、指明不同百分比之下颜色的值
                    color: new echarts.graphic.LinearGradient(0, 0, 1, 0, [
                      { offset: 0, color: "#ED7D31" },
                      { offset: 1, color: "#FFFF33" },//rgba(255,255,0,0.6)
                    ]),
                    // normal: {
                    //   color: '#ED7D31',
                    // }
                  },
                },
              ],
            });
          }
        }
      }
    });
  }
  // //隐患整改完成情况统计图
  // hiddenDangerDeal = () => {
  //   const userInfo = storage('lacal').getItem('webUserInfo').val;
  //   let json = initFilter(this.props.login.OrgId, "", "NUM");
  //   this.props.dispatch({
  //     type: 'app/getDataByPost',
  //     url: "FM/HiddenDangerRectification/OrderPaged",
  //     payload: json,
  //     onlyData: false,
  //     onComplete: (data) => {
  //       if (data && data.IsSuccessful) {
  //         let teamName = [];
  //         let wattingQty = [];
  //         let finishQty = [];
  //         let overFinishQty = [];
  //         let totalQty = [];
  //         let dataList = [];
  //         let bdata = [];
  //         data.Data.forEach(item => {
  //           teamName.push(item.TEAM_NAME);
  //           wattingQty.push(item.WAITTING_COUNT);
  //           finishQty.push(item.FINISH_COUNT);
  //           overFinishQty.push(item.OVER_FINISH_COUNT);
  //           totalQty.push(item.TOTAL_COUNT);
  //           dataList.push({ value: item.TOTAL_COUNT, name: item.TEAM_NAME})
  //           bdata.push(1)
  //         })
  //         //图标2
  //         let myChart = echarts.init(document.getElementById('hiddenDangerDeal'));
  //         myChart.setOption({
  //         });
  //       }
  //     }
  //   });
  // }
  // //隐患整改情况
  // defectTreatment = () => {
  //   const userInfo = storage('lacal').getItem('webUserInfo').val;
  //   let json = initFilter(this.props.login.OrgId);
  //   // this.props.dispatch({
  //   //   type: 'app/getDataByPost',
  //   //   url: "FM/MainRpt/GetRNQCount",
  //   //   payload: json,
  //   //   onlyData: false,
  //   //   onComplete: (data) => {
  //   let data = {
  //     "IsSuccessful": true, "Data": [{ "USER_ID": "37c527b6-86cf-4549-8b2d-8528af5600d1", "DEPARTMENT_ID": "e3061909-1a7e-b60c-bc71-1845b79c4a11", "MONTH": "2021-08-01 00:00:00", "MONTHStr": "八月", "C_COUNT": 1, "D_COUNT": 2, "W_COUNT": 3, "T_COUNT": 4, "P_COUNT": 5, "C_F_COUNT": 6, "D_F_COUNT": 7, "W_F_COUNT": 5, "T_F_COUNT": 2, "P_F_COUNT": 1 },
  //     { "USER_ID": "37c527b6-86cf-4549-8b2d-8528af5600d1", "DEPARTMENT_ID": "e3061909-1a7e-b60c-bc71-1845b79c4a11", "MONTH": "2021-09-01 00:00:00", "MONTHStr": "九月", "C_COUNT": 4, "D_COUNT": 5, "W_COUNT": 1, "T_COUNT": 3, "P_COUNT": 1, "C_F_COUNT": 4, "D_F_COUNT": 6, "W_F_COUNT": 3, "T_F_COUNT": 3, "P_F_COUNT": 1 },
  //     { "USER_ID": "37c527b6-86cf-4549-8b2d-8528af5600d1", "DEPARTMENT_ID": "e3061909-1a7e-b60c-bc71-1845b79c4a11", "MONTH": "2021-10-01 00:00:00", "MONTHStr": "十月", "C_COUNT": 3, "D_COUNT": 5, "W_COUNT": 2, "T_COUNT": 4, "P_COUNT": 6, "C_F_COUNT": 3, "D_F_COUNT": 1, "W_F_COUNT": 2, "T_F_COUNT": 5, "P_F_COUNT": 2 },
  //     { "USER_ID": "37c527b6-86cf-4549-8b2d-8528af5600d1", "DEPARTMENT_ID": "e3061909-1a7e-b60c-bc71-1845b79c4a11", "MONTH": "2021-11-01 00:00:00", "MONTHStr": "十一月", "C_COUNT": 2, "D_COUNT": 6, "W_COUNT": 3, "T_COUNT": 4, "P_COUNT": 1, "C_F_COUNT": 5, "D_F_COUNT": 3, "W_F_COUNT": 1, "T_F_COUNT": 5, "P_F_COUNT": 3 },
  //     { "USER_ID": "37c527b6-86cf-4549-8b2d-8528af5600d1", "DEPARTMENT_ID": "e3061909-1a7e-b60c-bc71-1845b79c4a11", "MONTH": "2021-12-01 00:00:00", "MONTHStr": "十二月", "C_COUNT": 1, "D_COUNT": 4, "W_COUNT": 5, "T_COUNT": 3, "P_COUNT": 2, "C_F_COUNT": 1, "D_F_COUNT": 3, "W_F_COUNT": 6, "T_F_COUNT": 4, "P_F_COUNT": 4 },
  //     { "USER_ID": "37c527b6-86cf-4549-8b2d-8528af5600d1", "DEPARTMENT_ID": "e3061909-1a7e-b60c-bc71-1845b79c4a11", "MONTH": "2022-01-01 00:00:00", "MONTHStr": "一月", "C_COUNT": 5, "D_COUNT": 6, "W_COUNT": 2, "T_COUNT": 1, "P_COUNT": 2, "C_F_COUNT": 4, "D_F_COUNT": 5, "W_F_COUNT": 2, "T_F_COUNT": 6, "P_F_COUNT": 5 }], "TotalCount": 0, "ErrorMessage": null
  //   }
  //   if (data && data.IsSuccessful) {
  //     let month = [];
  //     let company = [];
  //     let department = [];
  //     let workshop = [];
  //     let team = [];
  //     let personal = [];
  //     data.Data.forEach(item => {
  //       month.push(item.MONTHStr);
  //       company.push(item.C_COUNT);
  //       department.push(item.D_COUNT);
  //       workshop.push(item.W_COUNT);
  //       team.push(item.T_COUNT);
  //       personal.push(item.P_COUNT);
  //     })
  //     let myChart = echarts.init(document.getElementById('defectTreatment'));
  //     myChart.setOption({
  //       // title: {
  //       //   text: '折线图堆叠'
  //       // },
  //       tooltip: {
  //         trigger: 'axis'
  //       },
  //       legend: {
  //         // data: ['部门'],
  //         data: ['公司', '部门', '车间', '班组', '个人'],
  //         bottom: '10px'
  //       },
  //       grid: {
  //         left: '3%',
  //         right: '4%',
  //         top: '3%',
  //         containLabel: true
  //       },
  //       toolbox: {
  //         feature: {
  //           // saveAsImage: {}
  //         }
  //       },
  //       xAxis: {
  //         type: 'category',
  //         boundaryGap: false,
  //         data: month
  //       },
  //       yAxis: {
  //         type: 'value',
  //       },
  //       series: [
  //         {
  //           name: '公司',
  //           type: 'line',
  //           color: '#4b9bf3',
  //           data: company
  //         },
  //         {
  //           name: '部门',
  //           type: 'line',
  //           color: '#d61c7e',
  //           data: department
  //         },
  //         {
  //           name: '车间',
  //           type: 'line',
  //           color: '#6052ea',
  //           data: workshop
  //         }
  //         ,
  //         {
  //           name: '班组',
  //           type: 'line',
  //           color: '#8cc539',
  //           data: team
  //         }
  //         ,
  //         {
  //           name: '个人',
  //           type: 'line',
  //           color: '#FCD149',
  //           data: personal
  //         }
  //       ]
  //     })
  //   }
  //   //   }
  //   // });
  // }
  //岗位风险类别
  jobType = () => {
    let jobTypes = document.getElementById('jobType');
    if (jobType) {
      let myChart = echarts.init(jobTypes);
      myChart.setOption({
        tooltip: {
          trigger: 'item',
          formatter: '{b}:({d}%)'
        },
        legend: {
          bottom: '0px',
          // left: 'center',
          data: ['高空坠落', '火药爆炸', '机械伤害', '物体打击']
        },
        series: [
          {
            name: '访问来源',
            type: 'pie',
            radius: ['40%', '55%'],
            center: ['50%', '42%'],
            label: {
              formatter: '{b}:({d}%)',
              rich: {
                a: {
                  color: '#999',
                  lineHeight: 22,
                  align: 'center'
                },
                hr: {
                  borderColor: '#aaa',
                  width: '100%',
                  borderWidth: 0.5,
                  height: 0
                },
                b: {
                  fontSize: 16,
                  lineHeight: 33
                },
                per: {
                  color: '#eee',
                  backgroundColor: '#334455',
                  padding: [2, 4],
                  borderRadius: 2
                }
              }
            },
            color: ['#CD0505', '#F6861B', '#FCD149', '#60A9F8'],
            data: [
              { value: 335, name: '高空坠落' },
              { value: 310, name: '火药爆炸' },
              { value: 234, name: '机械伤害' },
              { value: 135, name: '物体打击' },
            ]
          }
        ]
      })
    }
  }
  //风险类别占比
  riskType = () => {
    let json = initFilter(this.props.login.OrgId);
    this.props.dispatch({
      type: 'app/getDataByPost',
      url: "FM/RiskTypeProportion/OrderPaged",
      payload: json,
      onlyData: false,
      onComplete: (data) => {
        if (data && data.IsSuccessful) {
          let riskType = []
          let color = []
          let showData = []
          data.Data.forEach(item => {
            riskType.push(item.RISK_TYPE)
            color.push(item.COLOR)
            showData.push({ value: item.COUNT, name: item.RISK_TYPE })
          })
          let riskTypes = document.getElementById('riskType');
          if (riskTypes) {
            let myChart = echarts.init(riskTypes);
            myChart.setOption({
              tooltip: {
                trigger: 'item',
                formatter: '{b}:({d}%)'
              },
              legend: {
                bottom: '0px',
                // left: 'center',
                data: riskType
              },
              series: [
                {
                  name: '访问来源',
                  type: 'pie',
                  radius: ['30%', '45%'],
                  center: ['45%', '37%'],
                  label: {
                    formatter: '{b}:({d}%)',
                    rich: {
                      a: {
                        color: '#999',
                        lineHeight: 22,
                        align: 'center'
                      },
                      hr: {
                        borderColor: '#aaa',
                        width: '100%',
                        borderWidth: 0.5,
                        height: 0
                      },
                      b: {
                        fontSize: 16,
                        lineHeight: 33
                      },
                      per: {
                        color: '#eee',
                        backgroundColor: '#334455',
                        padding: [2, 4],
                        borderRadius: 2
                      }
                    }
                  },
                  color: color,
                  data: showData,
                }
              ]
            })
          }
        }
      }
    });
  }
  //风险等级占比
  riskLevel = () => {
    const userInfo = storage('lacal').getItem('webUserInfo').val;
    let json = initFilter(this.props.login.OrgId);
    this.props.dispatch({
      type: 'app/getDataByPost',
      url: "FM/RiskLevelProportion/OrderPaged",
      payload: json,
      onlyData: false,
      onComplete: (data) => {
        if (data && data.IsSuccessful) {
          let riskLevel = []
          let showData = []
          let color = []
          data.Data.forEach(item => {
            riskLevel.push(item.RISK_LEVEL)
            color.push(item.COLOR)
            showData.push({ value: item.COUNT, name: item.RISK_LEVEL })
          })
          let riskLevels = document.getElementById('riskLevel');
          if (riskLevels) {
            let myChart = echarts.init(riskLevels);
            myChart.setOption({
              tooltip: {
                trigger: 'item',
                //formatter: '{a} 
{b} : {c} ({d}%)'
                formatter: '{b} : {c} ({d}%)'
              },
              legend: {
                bottom: '0px',
                data: riskLevel
              },
              series: [
                {
                  name: '主要工作分布',
                  type: 'pie',
                  radius: '55%',
                  center: ['50%', '42%'],
                  label: {
                    formatter: '{b}:({d}%)',
                  },
                  data: showData,
                  color: color,
                  emphasis: {
                    itemStyle: {
                      shadowBlur: 10,
                      shadowOffsetX: 0,
                      //shadowColor: 'rgba(0, 0, 0, 0.5)'
                    }
                  }
                }
              ]
            });
          }
        }
      }
    });
  }
  //主要工作分布图(饼图)
  mainJobPie = () => {
    const userInfo = storage('lacal').getItem('webUserInfo').val;
    let json = initFilter(this.props.login.OrgId);
    // this.props.dispatch({
    //   type: 'app/getDataByPost',
    //   url: "FM/MainRpt/GetPersonalWorkCount",
    //   payload: json,
    //   onlyData: false,
    //   onComplete: (data) => {
    let data = { "IsSuccessful": true, "Data": [{ "USER_ID": "37c527b6-86cf-4549-8b2d-8528af5600d1", "DEPARTMENT_ID": "e3061909-1a7e-b60c-bc71-1845b79c4a11", "MODULE": "安全检查", "COUNT": 3, "COLOR": "#CD0505" }, { "USER_ID": "37c527b6-86cf-4549-8b2d-8528af5600d1", "DEPARTMENT_ID": "e3061909-1a7e-b60c-bc71-1845b79c4a11", "MODULE": "作业现场", "COUNT": 2, "COLOR": "#FCD149" }, { "USER_ID": "37c527b6-86cf-4549-8b2d-8528af5600d1", "DEPARTMENT_ID": "e3061909-1a7e-b60c-bc71-1845b79c4a11", "MODULE": "应急管理", "COUNT": 1, "COLOR": "#60A9F8" }], "TotalCount": 0, "ErrorMessage": null }
    if (data && data.IsSuccessful) {
      let moduleData = []
      let showData = []
      let dataColor = []
      data.Data.forEach(item => {
        moduleData.push(item.MODULE)
        showData.push({ value: item.COUNT, name: item.MODULE })
        dataColor.push(item.COLOR)
      })
      let myChart = echarts.init(document.getElementById('mainJobPie'));
      myChart.setOption({
        tooltip: {
          trigger: 'item',
          //formatter: '{a} 
{b} : {c} ({d}%)'
          formatter: '{b} : {c} ({d}%)'
        },
        legend: {
          bottom: '10px',
          data: moduleData
        },
        series: [
          {
            name: '主要工作分布',
            type: 'pie',
            radius: '55%',
            center: ['50%', '42%'],
            label: {
              formatter: '{b}:({d}%)',
            },
            data: showData,
            color: dataColor,
            emphasis: {
              itemStyle: {
                shadowBlur: 10,
                shadowOffsetX: 0,
                //shadowColor: 'rgba(0, 0, 0, 0.5)'
              }
            }
          }
        ]
      });
    }
    // }
    // });
  }
  //主要工作分布图(柱状图)
  delayJobBar = () => {
    const userInfo = storage('lacal').getItem('webUserInfo').val;
    let json = initFilter(this.props.login.OrgId);
    // this.props.dispatch({
    //   type: 'app/getDataByPost',
    //   url: "FM/MainRpt/GetPersonalDelayCount",
    //   payload: json,
    //   onlyData: false,
    //   onComplete: (data) => {
    let data = { "IsSuccessful": true, "Data": [{ "USER_ID": "37c527b6-86cf-4549-8b2d-8528af5600d1", "DEPARTMENT_ID": null, "MONTH": "2021-08-01 00:00:00", "MONTHStr": "八月", "COUNT": 1 }, { "USER_ID": "37c527b6-86cf-4549-8b2d-8528af5600d1", "DEPARTMENT_ID": null, "MONTH": "2021-09-01 00:00:00", "MONTHStr": "九月", "COUNT": 2 }, { "USER_ID": "37c527b6-86cf-4549-8b2d-8528af5600d1", "DEPARTMENT_ID": null, "MONTH": "2021-10-01 00:00:00", "MONTHStr": "十月", "COUNT": 3 }, { "USER_ID": "37c527b6-86cf-4549-8b2d-8528af5600d1", "DEPARTMENT_ID": null, "MONTH": "2021-11-01 00:00:00", "MONTHStr": "十一月", "COUNT": 4 }, { "USER_ID": "37c527b6-86cf-4549-8b2d-8528af5600d1", "DEPARTMENT_ID": null, "MONTH": "2021-12-01 00:00:00", "MONTHStr": "十二月", "COUNT": 5 }, { "USER_ID": "37c527b6-86cf-4549-8b2d-8528af5600d1", "DEPARTMENT_ID": null, "MONTH": "2022-01-01 00:00:00", "MONTHStr": "一月", "COUNT": 6 }], "TotalCount": 21, "ErrorMessage": null }
    if (data && data.IsSuccessful) {
      let monthList = []
      let countList = []
      let dataList = []
      data.Data.forEach(item => {
        monthList.push(item.MONTHStr)
        dataList.push({ value: item.COUNT, name: item.MONTHStr })
        countList.push(item.COUNT)
      })
      this.setState({ delayData: dataList });
    }
  }
  //   });
  // }
  loadWorkBench = () => {
    const userInfo = storage('lacal').getItem('webUserInfo').val || {};
    if (!userInfo) {
      this.props.dispatch(routerRedux.push('/login'));
      return;
    }
    let json = initQueryFilter(userInfo.ORG_ID, 1, 12, "CREATE_TIME", 1);
    this.props.dispatch({
      type: 'app/getDataByPost',
      url: "BR/PanelInfos/Workbench",
      payload: json,
      onlyData: false,
      onComplete: (data) => {
        if (data && data.IsSuccessful) {
          var tmpCharData = [];
          var tmpColumnData = [];
          var tmpColumnFields = [];
          if (data.Data && data.Data.OrderOnTimes) {
            data.Data.OrderOnTimes.forEach((n) => {
              let dayJson = {
                day: n.Time,
                '交付率': n.Rate,
                '标准': 0.8
              };
              tmpCharData.push(dayJson);
            });
          }
          if (data.Data && data.Data.OrderTotals) {
            data.Data.OrderTotals.forEach((n) => {
              let dayJson = {
                name: n.Name
              }
              if (n.DayCounts) {
                n.DayCounts.forEach((m) => {
                  let day = m.Day.substring(0, 10).replace('-', '').replace('-', '');
                  dayJson[day] = m.Count;
                  if (tmpColumnFields.indexOf(day) < 0) {
                    tmpColumnFields.push(day);
                  }
                });
              }
              tmpColumnData.push(dayJson);
            });
          }
          this.setState({
            Workbench: data.Data ? data.Data : {},
            chartData: tmpCharData,
            columnData: tmpColumnData,
            columnFields: tmpColumnFields
          });
        }
      }
    });
  }
  //获取数据
  getBaseInfoData = (pagination, key, limit) => {
    const current = pagination ? pagination.current : 1
    const json = initFilter(this.props.login.OrgId, "", "", 1, current)
    //extendRule(json, "NOTICE_STATUS", 1, 0);
    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])
      }
    }
    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: (re) => {
        if (re && re.IsSuccessful && re.Data.newData) {
          this.state.tableData[0].total = re.Data.todoCount;
          this.state.tableData[1].total = re.Data.timeOverCount;
          this.state.tableData[2].total = re.Data.doneCount;
          this.state.tableData[3].total = re.Data.todayNewCount;
          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,
            })
          }
        }
      }
    })
  };
  clearData = () => {
    let newtmpData = { ...this.state.tmpData }
    newtmpData["data"].id = '';
    newtmpData["data"].homeReload = false;
    newtmpData.formCode = '';
    this.setState({
      visible: false,
      tmpData: [],//newtmpData
    })
  }
  clearScoreData = () => {
    this.setState({
      scoreVisible: false,
      // standardScore: [],//newtmpData
    })
  }
  clearScoreTotalData = () => {
    this.setState({
      scoreTotalVisible:false
      // standardScore: [],//newtmpData
    })
  }
  clearScoreNaData = () => {
    this.setState({
      scoreNaVisible:false
      // standardScore: [],//newtmpData
    })
  }
  handleCancel = () => { // 退出弹窗
    this.getBaseInfoData(1, this.state.tableKey, 5);
    this.clearData();
  }
  closeModal = () => { // 退出弹窗
    this.clearData();
  }
  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.tableKey,
        homeReload: true
      },
      formCode: formCode,
    }
    this.setState({
      noticeTitle: title,
      taskCode: taskCode,
      tmpData: newtmpData,
      currActivatedMenu: ''
    }, () => this.setState({
      visible: true
    }));
  }
  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({
      visible: true
    }));
  }
  setMessageData = (dataSource) => {
    const data = dataSource ? dataSource : this.props.taskData;
  }
  //点击切换四个统计模块更改列表数据
  totalModuleClick = (item) => {
    const { tableData } = this.state;
    tableData.map((_item, i) => {
      if (_item.key == item.key) {
        if (item.key == '2') {
          this.state.columns = [
            {
              width: "450px",
              title: '任务名称',
              dataIndex: 'NOTICE_TITLE',
              key: 'NOTICE_TITLE',
              render: (text, record) => (
                
                   this.showEditModal(record.SOURCE_DATA_ID, record.SOURCE_FORMCODE, record.ID, record.NOTICE_TITLE, record.CODE)}>{record.NOTICE_TITLE}
                
              ),
            },
            {
              title: '开始时间',
              dataIndex: 'TASK_STARTDT',
              key: 'TASK_STARTDT'
            },
            {
              title: '结束时间',
              dataIndex: 'TASK_ENDDT',
              key: 'TASK_ENDDT'
            },
            {
              title: '办结时间',
              dataIndex: 'TASK_DT',
              key: 'TASK_DT',
            },]
        } else if (item.key == '3') {
          this.state.columns = [
            {
              title: '提醒内容',
              dataIndex: 'NOTICE_TITLE',
              key: 'NOTICE_TITLE',
              render: (text, record) => (
                
                   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}
                
              ),
            },
            {
              width: "150px",
              title: '提醒时间',
              dataIndex: 'TASK_STARTDT',
              key: 'TASK_STARTDT'
            },
            {
              width: "150px",
              title: '状态',
              dataIndex: 'NOTICE_STATUS',
              key: 'NOTICE_STATUS',
              render: (text, record) => this.ShowStatus(record)
            },]
        } else {
          this.state.columns = [
            {
              width: "450px",
              title: '任务名称',
              dataIndex: 'NOTICE_TITLE',
              key: 'NOTICE_TITLE',
              render: (text, record) => (
                
                   this.showEditModal(record.SOURCE_DATA_ID, record.SOURCE_FORMCODE, record.ID, record.NOTICE_TITLE, record.CODE)}>{record.NOTICE_TITLE}
                
              ),
            },
            {
              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)
            },]
        }
        _item.iconDisplay = 'block';
        this.setState({
          tableKey: item.key
        })
        if (window.navigator.userAgent.indexOf("Windows") < 1) {
          this.getBaseInfoData(1, item.key, 10);
        } else {
          this.getBaseInfoData(1, item.key, 5);
        }
      } else {
        _item.iconDisplay = 'none';
      }
    });
  };
  // 双击切换四个统计模块获取全部信息
  totalMoonDoubleClick = (item) => {
    const { tableData } = this.state;
    tableData.map((_item) => {
      if (_item.key == item.key) {
        if (item.key == '2') {
          this.state.searchColumns = [
            {
              width: "450px",
              title: '任务名称',
              dataIndex: 'NOTICE_TITLE',
              key: 'NOTICE_TITLE',
              render: (text, record) => (
                
                   this.showEditModal(record.SOURCE_DATA_ID, record.SOURCE_FORMCODE, record.ID, record.NOTICE_TITLE, record.CODE)}>{record.NOTICE_TITLE}
                
              ),
            },
            {
              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 (item.key === '3') {
          this.state.searchColumns = [
            {
              title: '提醒内容',
              dataIndex: 'NOTICE_TITLE',
              key: 'NOTICE_TITLE',
              render: (text, record) => (
                
                   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}
                
              ),
            },
            {
              width: "200px",
              title: '提醒时间',
              dataIndex: 'TASK_STARTDT',
              key: 'TASK_STARTDT'
            },
            {
              width: "150px",
              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) => (
                
                   this.showEditModal(record.SOURCE_DATA_ID, record.SOURCE_FORMCODE, record.ID, record.NOTICE_TITLE, record.CODE)}>{record.NOTICE_TITLE}
                
              ),
            },
            {
              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: item.key
    }, () => {
      this.getBaseInfoData(1, item.key);
    })
  }
  // 开始时间
  selectChange = (value) => {
    const { querySearch } = this.state
    querySearch.searchStatus = value;
    this.setState({
      querySearch
    }, () => {
    })
  }
  // 开始时间
  startChange = (dates, dateStr) => {
    const { querySearch } = this.state
    if (dates.length != 2) {
      // querySearch['startTime1'] = ''
      // querySearch['startTime2'] = ''
      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
      // visibleStartTime: dates
    }, () => {
    })
  }
  // 结束时间
  endChange = (dates, dateStr) => {
    const { querySearch } = this.state
    if (dates.length != 2) {
      // querySearch['endTime1'] = ''
      // querySearch['endTime2'] = ''
      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 })
  }
  // 搜索
  handleSearch = (item) => {
    this.getBaseInfoData(1, item, null);
  }
  // input输入
  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: {} })
    }
  }
  closeModal = () => {
    this.setState({
      searchVisible: false,
      searchTodayVisible: false,
    })
  }
  ShowState(obj) {
    var thisResult = (Date.parse(obj.TASK_ENDDT) - Date.parse(Date())) / 3600 / 1000;
    if (thisResult > 0) {
      return ('正常');
    } else {
      return (超期);
    }
  }
  ShowStatus(obj) {
    if (obj.NOTICE_STATUS === 0) {
      return (未读);
    } else if(obj.NOTICE_STATUS === 3){
      return ('已读');
    }
    else
    {
      return ('已办');
    }
  }
  handleSelect = (e) => {
    const { querySearch } = this.state
    if (e != undefined) {
      querySearch.status = e
    } else {
      querySearch.status = ''
    }
    this.setState({ querySearch })
  }
  showDescriptionModal = (value) => {
    if (value === "1") {
      this.setState({
        isModalVisible: true
      });
    }
    else if (value === "2") {
      this.totalTime();
    }
    else if (value === "3") {
      this.setState({
        isModalVisible3: true
      });
    }
    else if (value === "4") {
      this.setState({
        isModalVisible4: true
      });
    }
    else if (value === "5") {
      this.setState({
        isModalVisible5: true
      });
    }
    else if (value === "6") {
      this.setState({
        isModalVisible6: true
      });
    }
    else if (value === "risk") {
      this.setState({
        isModalVisibleRisk: true
      });
    }
  };
  closeDescriptionModal = () => {
    this.setState({
      isModalVisible: false,
      isModalVisible2: false,
      isModalVisible3: false,
      isModalVisible4: false,
      isModalVisible5: false,
      isModalVisible6: false,
      isModalVisibleRisk: false,
    });
  };
  showStandardScoreTotalModal = () => {
    // const newtmpData = {
    //   data: {
    //     tempData:this.state.standardScore , onCancel: this.handleCancel,  noticeTitle: "标准化得分明细", 
    //     homeReload: true
    //   },
    //   formCode: 'PF136',
    // }
    this.setState({
      scoreTotalVisible: true
    });
  }
  showStandardScoreModal = (item) => {
    // const newtmpData = {
    //   data: {
    //     tempData:this.state.standardScore , onCancel: this.handleCancel,  noticeTitle: "标准化得分明细", 
    //     homeReload: true
    //   },
    //   formCode: 'PF136',
    // }
    let temp = false;
    if (this.state.standardScore && this.state.standardScore.Nav_Details) {
      this.state.standardScore.Nav_Details.forEach(t => {
        if (t.THREE_ELEMENTS_ID) {
          temp = true;
        }
      });
    }
    if(item)
    {
      let dataTemp=this.state.standardScore.Nav_Details.filter(t=>t.NON_CONFORMANCE !=null && t.NON_CONFORMANCE !="")
      let tmpData = dataTemp.map((item, i) => {
        item['ROW_NO'] = i + 1;
        return item;
      });
      let aa={"CONTENTS":"合计扣分:","NON_STANDARDIZED_SCORE":this.state.standardScore.NON_STANDARDIZED_SCORE}
      tmpData.push(aa)
      this.setState({
        isNaN: temp,
        standardScoreNaN:tmpData,
        scoreNaVisible: true
      });
    }
    else
    {
      let dataTemp=this.state.standardScore.Nav_Details;
      let tmpData = dataTemp.map((item, i) => {
        item['ROW_NO'] = i + 1;
        return item;
      });
      let aa={"DESCRIPTION":"合计:","STANDARDIZED_SCORE":this.state.standardScore.STAND_TOTAL,"RESULT_SCORE":this.state.standardScore.RESULT_TOTAL,"NON_CONFORMANCE":"标准化得分:"+this.state.standardScore.STANDARDIZED_RESULT}
      tmpData.push(aa)
      this.setState({
        isNaN: temp,
        standardScoreTemp:tmpData,
        scoreVisible: true
      });
    }
  }
  render() {
    const { tableData } = this.state;
    const thingsData = this.state.delayData;
    const settings = {
      dots: true,
      autoplay: false,
      infinite: true,
      speed: 500,
      slidesToShow: 1,
      slidesToScroll: 1,
      className: styles.slideHeight,
      fade: true,
    };
    const empty = (
      
计算规则:完成率 = 已办数 / 总数 * 100%
计算规则:完成率 = (班前会议已办数 + 岗位当班已办数 + 岗位交接已办数) / (班前会议总数 + 岗位当班总数 + 岗位交接总数) * 100%
统计时间:{this.tempTime} ~ 至今
计算规则:待办 = 总数 - 正常已办 - 超时已办
公司、部门、车间、班组、个人,每个月的隐患整改数量
计算规则:占比率= 当前风险类别数量 / 风险类别总数 * 100%
计算规则:占比率 = 当前风险等级数量 / 风险等级总数 * 100%
计算规则:待办 = 隐患总数 - 按时完成 - 超时完成
安全第一、综合治理、控制风险、科学发展。
以人为本、关注健康、依法治企、安全发展。
安全第一,预防为主,科学管理,持续改进。