576 lines
		
	
	
		
			17 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			576 lines
		
	
	
		
			17 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
import React, { useState, useMemo, useEffect } from "react";
 | 
						||
import { connect } from "dva";
 | 
						||
import { withRouter } from "dva/router";
 | 
						||
import { Dropdown, Icon, Menu, message, Button, Modal } from "antd";
 | 
						||
import { HeaderSearch as OPTSearch, PictureThumb } from "@woowalker/feui";
 | 
						||
import ModifyPassword from "../components/MainPage/ModifyPassword";
 | 
						||
import FoUserInfoShow from "../components/MainPage/FoUserInfoShow";
 | 
						||
import FeedbackQuestion from "../components/MainPage/FeedbackQuestion";
 | 
						||
import GuideCanvas from "../components/MainPage/GuideCanvas";
 | 
						||
import IconFont from "../utils/iconFont";
 | 
						||
import {
 | 
						||
  initFilter,
 | 
						||
  requestFullScreenMethod,
 | 
						||
  exitFullScreen,
 | 
						||
  isFullscreenElement,
 | 
						||
} from "../utils/common";
 | 
						||
import config from "../config";
 | 
						||
import "./header.less";
 | 
						||
import Option from "./Option";
 | 
						||
import FullScreenPage from "./FullScreen";
 | 
						||
 | 
						||
// 投屏
 | 
						||
const DataV = (props) => {
 | 
						||
  const navTo = () => {
 | 
						||
    const { OrgId, Tenant, baseConfig } = props.login;
 | 
						||
    const preUrl = baseConfig.SCREEN_URL || config.dataVUrl;
 | 
						||
    const queryStr = `OrgId=${OrgId}&Tenant=${Tenant}`;
 | 
						||
    const url = `${
 | 
						||
      preUrl.indexOf("?") !== -1 ? preUrl : preUrl + "?"
 | 
						||
    }${queryStr}`;
 | 
						||
    window.open(url, "_blank");
 | 
						||
  };
 | 
						||
  return (
 | 
						||
    <span title="投屏" onClick={navTo} className="header__right-datav">
 | 
						||
      {/* <EnergyIcon type='icon-touping' className='header__right-icon' /> */}
 | 
						||
    </span>
 | 
						||
  );
 | 
						||
};
 | 
						||
const HeaderDataV = connect(({ login }) => ({ login }))(DataV);
 | 
						||
 | 
						||
// 搜索
 | 
						||
const Search = (props) => {
 | 
						||
  const [autoCompleteData, setAutoCompleteData] = useState([]);
 | 
						||
 | 
						||
  const leafMenus = useMemo(() => {
 | 
						||
    const menuForms = [];
 | 
						||
    const menuDatas = [];
 | 
						||
    function traverseChild(item) {
 | 
						||
      if (!item.Menu.Nav_MenuForm || item.ChildMenus?.length) {
 | 
						||
        item.ChildMenus.forEach((x) => {
 | 
						||
          traverseChild(x);
 | 
						||
        });
 | 
						||
      } else if (item.Menu.Nav_MenuForm) {
 | 
						||
        menuForms.push({
 | 
						||
          MenuName: item.Menu.NAME,
 | 
						||
          ...item.Menu.Nav_MenuForm,
 | 
						||
        });
 | 
						||
        menuDatas.push(item);
 | 
						||
      }
 | 
						||
    }
 | 
						||
 | 
						||
    const menus = props.login.loginInfo.Menus || [];
 | 
						||
    menus.forEach((item) => {
 | 
						||
      traverseChild(item);
 | 
						||
    });
 | 
						||
 | 
						||
    return { menuForms, menuDatas };
 | 
						||
  }, [props.login.loginInfo?.Menus]);
 | 
						||
 | 
						||
  /**
 | 
						||
   * 搜索菜单
 | 
						||
   * @param {*} e
 | 
						||
   */
 | 
						||
  const handleSearchMenu = (e) => {
 | 
						||
    if (!e || e === "") {
 | 
						||
      setAutoCompleteData([]);
 | 
						||
      return;
 | 
						||
    }
 | 
						||
    const validResult = [];
 | 
						||
    leafMenus.menuForms.forEach((item) => {
 | 
						||
      if (
 | 
						||
        item.CODE.toLowerCase().indexOf(e.toLowerCase()) >= 0 ||
 | 
						||
        item.NAME.toLowerCase().indexOf(e.toLowerCase()) >= 0 ||
 | 
						||
        item.MenuName.toLowerCase().indexOf(e.toLowerCase()) >= 0
 | 
						||
      ) {
 | 
						||
        validResult.push(item);
 | 
						||
      }
 | 
						||
    });
 | 
						||
    setAutoCompleteData(validResult);
 | 
						||
  };
 | 
						||
 | 
						||
  /**
 | 
						||
   * 选中菜单
 | 
						||
   * @param {*} e
 | 
						||
   */
 | 
						||
  const handleSelectMenu = (e) => {
 | 
						||
    const menu = leafMenus.menuDatas.find(
 | 
						||
      (item) => item.Menu.Nav_MenuForm.ID === e
 | 
						||
    );
 | 
						||
    props.dispatch({
 | 
						||
      type: "app/updateActivatedMenu",
 | 
						||
      payload: {
 | 
						||
        currActivatedTab: menu.Node.ID,
 | 
						||
        currActivatedMenu: menu.Node,
 | 
						||
      },
 | 
						||
    });
 | 
						||
    props.history.push({ pathname: `/main/${menu.Node.ID}` });
 | 
						||
  };
 | 
						||
 | 
						||
  if (window.navigator.userAgent.indexOf("Windows") < 1) {
 | 
						||
    return <span></span>;
 | 
						||
  } else {
 | 
						||
    return (
 | 
						||
      <OPTSearch
 | 
						||
        dataSource={autoCompleteData}
 | 
						||
        onChange={handleSearchMenu}
 | 
						||
        onSelect={handleSelectMenu}
 | 
						||
      />
 | 
						||
    );
 | 
						||
  }
 | 
						||
  //return (
 | 
						||
  //
 | 
						||
  // <OPTSearch
 | 
						||
  //   dataSource={autoCompleteData}
 | 
						||
  //   onChange={handleSearchMenu}
 | 
						||
  //   onSelect={handleSelectMenu}
 | 
						||
  // />
 | 
						||
  //)
 | 
						||
};
 | 
						||
const HeaderSearch = withRouter(connect(({ login }) => ({ login }))(Search));
 | 
						||
 | 
						||
// 个人中心
 | 
						||
const User = (props) => {
 | 
						||
  const [visible, setVisible] = useState(false);
 | 
						||
 | 
						||
  /**
 | 
						||
   * 注销登录
 | 
						||
   */
 | 
						||
  const handleLogout = () => {
 | 
						||
    const { OrgId, userId } = props.login;
 | 
						||
    const logJson = initFilter(OrgId, userId, "", 0, 1, 0);
 | 
						||
    props.dispatch({
 | 
						||
      type: "app/addLoginOut",
 | 
						||
      payload: logJson,
 | 
						||
    });
 | 
						||
    localStorage.removeItem("accessToken");
 | 
						||
    localStorage.removeItem("currentMineTypeName");
 | 
						||
    props.history.push({ pathname: "/login" });
 | 
						||
  };
 | 
						||
 | 
						||
  /**
 | 
						||
   * 锁屏
 | 
						||
   */
 | 
						||
  const handleLockScreen = () => {
 | 
						||
    localStorage.removeItem("accessToken");
 | 
						||
    props.dispatch({
 | 
						||
      type: "login/save",
 | 
						||
      payload: {
 | 
						||
        screenLocked: true,
 | 
						||
      },
 | 
						||
    });
 | 
						||
  };
 | 
						||
 | 
						||
  /**
 | 
						||
   * 菜单选中
 | 
						||
   * @param {*} evt
 | 
						||
   */
 | 
						||
  const handleUserMenuClick = (evt) => {
 | 
						||
    switch (evt.key) {
 | 
						||
      case "user-menu-logout":
 | 
						||
        handleLogout();
 | 
						||
        break;
 | 
						||
      case "user-menu-lockscreen":
 | 
						||
        handleLockScreen();
 | 
						||
        break;
 | 
						||
      case "user-menu-cacheclean":
 | 
						||
        window.localStorage.clear();
 | 
						||
        message.success("清除成功,即将重新加载页面", 2, () => {
 | 
						||
          setTimeout(() => window.location.reload(true), 500);
 | 
						||
        });
 | 
						||
        break;
 | 
						||
      default:
 | 
						||
        break;
 | 
						||
    }
 | 
						||
    setVisible(false);
 | 
						||
  };
 | 
						||
 | 
						||
  const { loginInfo = {} } = props.login;
 | 
						||
  return (
 | 
						||
    <Dropdown
 | 
						||
      visible={visible}
 | 
						||
      onVisibleChange={setVisible}
 | 
						||
      overlay={
 | 
						||
        <Menu onClick={handleUserMenuClick}>
 | 
						||
          <Menu.Item key="user-menu-userinfo">
 | 
						||
            当前登录:{loginInfo.User?.NAME}
 | 
						||
          </Menu.Item>
 | 
						||
          <Menu.Item key="user-menu-UserInfoShow">
 | 
						||
            <FoUserInfoShow>我的资料</FoUserInfoShow>
 | 
						||
          </Menu.Item>
 | 
						||
          <Menu.Item key="user-menu-updatepwd">
 | 
						||
            <ModifyPassword>修改密码</ModifyPassword>
 | 
						||
          </Menu.Item>
 | 
						||
          {/* <Menu.Item key='user-menu-feedbackqtn'><FeedbackQuestion>问题反馈</FeedbackQuestion></Menu.Item> */}
 | 
						||
          {/* <Menu.Item key='user-menu-lockscreen'>屏幕锁定</Menu.Item> */}
 | 
						||
          <Menu.Item key="user-menu-cacheclean">清除缓存</Menu.Item>
 | 
						||
          <Menu.Item>版本号:{config.version}</Menu.Item>
 | 
						||
          <Menu.Item key="user-menu-logout">退出登录</Menu.Item>
 | 
						||
        </Menu>
 | 
						||
      }
 | 
						||
    >
 | 
						||
      <span className="header__right-user">
 | 
						||
        <Icon type="user" className="header__right-icon" />
 | 
						||
      </span>
 | 
						||
    </Dropdown>
 | 
						||
  );
 | 
						||
};
 | 
						||
const HeaderUser = withRouter(connect(({ login }) => ({ login }))(User));
 | 
						||
// 2023-10-08 生产单元
 | 
						||
const MineType = (props) => {
 | 
						||
  const [visible, setVisible] = useState(false);
 | 
						||
  let currUserMineType = localStorage.getItem("MineType");
 | 
						||
  if (currUserMineType == null || currUserMineType == undefined) {
 | 
						||
    localStorage.setItem("MineType", "30");
 | 
						||
    localStorage.setItem("currentMineTypeName", "露天矿");
 | 
						||
  } else {
 | 
						||
    if (localStorage.getItem("currentMineTypeName") == null) {
 | 
						||
      if (currUserMineType.indexOf(30) > -1) {
 | 
						||
        localStorage.setItem("currentMineType", 30);
 | 
						||
        localStorage.setItem("currentMineTypeName", "露天矿");
 | 
						||
      } else if (currUserMineType.indexOf(20) > -1) {
 | 
						||
        localStorage.setItem("currentMineType", 20);
 | 
						||
        localStorage.setItem("currentMineTypeName", "尾矿库");
 | 
						||
      } else if (currUserMineType.indexOf(10) > -1) {
 | 
						||
        localStorage.setItem("currentMineType", 10);
 | 
						||
        localStorage.setItem("currentMineTypeName", "选矿厂");
 | 
						||
      } else if (currUserMineType.indexOf(40) > -1) {
 | 
						||
        localStorage.setItem("currentMineType", 40);
 | 
						||
        localStorage.setItem("currentMineTypeName", "地下矿");
 | 
						||
      }
 | 
						||
      else if (currUserMineType.indexOf(31) > -1) {
 | 
						||
        localStorage.setItem("currentMineType", 31);
 | 
						||
        localStorage.setItem("currentMineTypeName", "职能口");
 | 
						||
      }
 | 
						||
      else if (currUserMineType.indexOf(32) > -1) {
 | 
						||
        localStorage.setItem("currentMineType", 32);
 | 
						||
        localStorage.setItem("currentMineTypeName", "非金属");
 | 
						||
      }
 | 
						||
    } else {
 | 
						||
      let currentMineType = localStorage.getItem("currentMineType");
 | 
						||
      if (currUserMineType.indexOf(currentMineType) > -1) {
 | 
						||
        if (currentMineType == 30) {
 | 
						||
          localStorage.setItem("currentMineTypeName", "露天矿");
 | 
						||
        } else if (currUserMineType == 20) {
 | 
						||
          localStorage.setItem("currentMineTypeName", "尾矿库");
 | 
						||
        } else if (currUserMineType == 10) {
 | 
						||
          localStorage.setItem("currentMineTypeName", "选矿厂");
 | 
						||
        } else if (currUserMineType == 40) {
 | 
						||
          localStorage.setItem("currentMineTypeName", "地下矿");
 | 
						||
        }else if (currUserMineType == 31) {
 | 
						||
          localStorage.setItem("currentMineTypeName", "职能口");
 | 
						||
        }else if (currUserMineType == 32) {
 | 
						||
          localStorage.setItem("currentMineTypeName", "非金属");
 | 
						||
        }
 | 
						||
      } else {
 | 
						||
        if (currUserMineType.indexOf(30) > -1) {
 | 
						||
          localStorage.setItem("currentMineTypeName", "露天矿");
 | 
						||
        } else if (currUserMineType.indexOf(20) > -1) {
 | 
						||
          localStorage.setItem("currentMineTypeName", "尾矿库");
 | 
						||
        } else if (currUserMineType.indexOf(10) > -1) {
 | 
						||
          localStorage.setItem("currentMineTypeName", "选矿厂");
 | 
						||
        } else if (currUserMineType.indexOf(40) > -1) {
 | 
						||
          localStorage.setItem("currentMineTypeName", "地下矿");
 | 
						||
        }
 | 
						||
        else if (currUserMineType.indexOf(31) > -1) {
 | 
						||
          localStorage.setItem("currentMineTypeName", "职能口");
 | 
						||
        }
 | 
						||
        else if (currUserMineType.indexOf(32) > -1) {
 | 
						||
          localStorage.setItem("currentMineTypeName", "非金属");
 | 
						||
        }
 | 
						||
      }
 | 
						||
    }
 | 
						||
  }
 | 
						||
 | 
						||
  let currUserMineTypeArray = [];
 | 
						||
  if (currUserMineType.indexOf("30") > -1) {
 | 
						||
    currUserMineTypeArray.push({ key: "30", label: "露天矿" });
 | 
						||
  }
 | 
						||
  if (currUserMineType.indexOf("10") > -1) {
 | 
						||
    currUserMineTypeArray.push({ key: "10", label: "选矿厂" });
 | 
						||
  }
 | 
						||
  if (currUserMineType.indexOf("20") > -1) {
 | 
						||
    currUserMineTypeArray.push({ key: "20", label: "尾矿库" });
 | 
						||
  }
 | 
						||
  if (currUserMineType.indexOf("40") > -1) {
 | 
						||
    currUserMineTypeArray.push({ key: "40", label: "地下矿" });
 | 
						||
  }
 | 
						||
  if (currUserMineType.indexOf("31") > -1) {
 | 
						||
    currUserMineTypeArray.push({ key: "31", label: "职能口" });
 | 
						||
  }
 | 
						||
  if (currUserMineType.indexOf("32") > -1) {
 | 
						||
    currUserMineTypeArray.push({ key: "32", label: "非金属" });
 | 
						||
  }
 | 
						||
  const MineTypeMenu = () => {
 | 
						||
    return (
 | 
						||
      <Menu onClick={handleMineTypeClick}>
 | 
						||
        {currUserMineTypeArray.map((item) => (
 | 
						||
          <Menu.Item key={item.key}>{item.label}</Menu.Item>
 | 
						||
        ))}
 | 
						||
      </Menu>
 | 
						||
    );
 | 
						||
  };
 | 
						||
  /**
 | 
						||
   * 生产单元切换
 | 
						||
   * @param {*} evt
 | 
						||
   */
 | 
						||
  const handleMineTypeClick = (evt) => {
 | 
						||
    localStorage.setItem("currentMineType", evt.key);
 | 
						||
    localStorage.setItem("currentMineTypeName", evt.item.props.children);
 | 
						||
    setVisible(false);
 | 
						||
    window.location.reload();
 | 
						||
  };
 | 
						||
  if (window.navigator.userAgent.indexOf("Windows") < 1) {
 | 
						||
    return <div></div>;
 | 
						||
  } else {
 | 
						||
    return (
 | 
						||
      <Dropdown
 | 
						||
        visible={visible}
 | 
						||
        onVisibleChange={setVisible}
 | 
						||
        overlay={MineTypeMenu}
 | 
						||
      >
 | 
						||
        <a style={{ color: "#000000A6", marginLeft: "20px" }}>
 | 
						||
          <b>生产单元:{localStorage.getItem("currentMineTypeName")}</b>
 | 
						||
        </a>
 | 
						||
      </Dropdown>
 | 
						||
    );
 | 
						||
  }
 | 
						||
};
 | 
						||
const HeaderMineType = withRouter(
 | 
						||
  connect(({ login }) => ({ login }))(MineType)
 | 
						||
);
 | 
						||
const GuideCodePage = (props) => {
 | 
						||
  const [showCanvas, setshowCanvas] = useState(false);
 | 
						||
  const currVans = (val) => {
 | 
						||
    setshowCanvas(true);
 | 
						||
  };
 | 
						||
  /**
 | 
						||
   * 生产单元切换
 | 
						||
   * @param {*} evt
 | 
						||
   */
 | 
						||
 | 
						||
  if (window.navigator.userAgent.indexOf("Windows") < 1) {
 | 
						||
    return <div></div>;
 | 
						||
  } else {
 | 
						||
    return (
 | 
						||
      <div>
 | 
						||
        <div
 | 
						||
          onClick={() => {
 | 
						||
            currVans();
 | 
						||
          }}
 | 
						||
          style={{ margin: "0px 36px", display: "flex", alignItems: "center" }}
 | 
						||
        >
 | 
						||
          <Icon type="qrcode" className="header__right-icon" />
 | 
						||
        </div>
 | 
						||
        <Modal
 | 
						||
          title=""
 | 
						||
          visible={showCanvas}
 | 
						||
          width="750px"
 | 
						||
          centered={true}
 | 
						||
          onOk={() => {
 | 
						||
            setshowCanvas(false);
 | 
						||
          }}
 | 
						||
          onCancel={() => {
 | 
						||
            setshowCanvas(false);
 | 
						||
          }}
 | 
						||
          footer={null}
 | 
						||
        >
 | 
						||
          <GuideCanvas />
 | 
						||
        </Modal>
 | 
						||
      </div>
 | 
						||
    );
 | 
						||
  }
 | 
						||
};
 | 
						||
const GuideCode = withRouter(
 | 
						||
  connect(({ login }) => ({ login }))(GuideCodePage)
 | 
						||
);
 | 
						||
const NavOpton = (props) => {
 | 
						||
  const [showModal, setshowModal] = useState(false);
 | 
						||
  const getChildCount = (val) => {
 | 
						||
    setshowModal(val);
 | 
						||
  };
 | 
						||
  if (window.navigator.userAgent.indexOf("Windows") < 1) {
 | 
						||
    return <div></div>;
 | 
						||
  } else {
 | 
						||
    return (
 | 
						||
      <div>
 | 
						||
        <div
 | 
						||
          type="primary"
 | 
						||
          onClick={() => {
 | 
						||
            setshowModal(true);
 | 
						||
          }}
 | 
						||
        >
 | 
						||
          {/* <Icon type='bars' className='header__right-icon'></Icon> */}
 | 
						||
          <IconFont
 | 
						||
            type="icon-line-108"
 | 
						||
            style={{ fontSize: "22px", color: "#333333", cursor: "pointer" }}
 | 
						||
          ></IconFont>
 | 
						||
        </div>
 | 
						||
        <Modal
 | 
						||
          title="功能导航"
 | 
						||
          visible={showModal}
 | 
						||
          width="96%"
 | 
						||
          centered={true}
 | 
						||
          onOk={() => {
 | 
						||
            setshowModal(false);
 | 
						||
          }}
 | 
						||
          onCancel={() => {
 | 
						||
            setshowModal(false);
 | 
						||
          }}
 | 
						||
          className="headerModal"
 | 
						||
        >
 | 
						||
          <Option getCount={getChildCount}></Option>
 | 
						||
        </Modal>
 | 
						||
      </div>
 | 
						||
    );
 | 
						||
  }
 | 
						||
};
 | 
						||
const FullScreenOpton = (props) => {
 | 
						||
  const [showModal, setshowModal] = useState(false);
 | 
						||
  const getChildCount = (val) => {
 | 
						||
    setshowModal(val);
 | 
						||
  };
 | 
						||
  const [fullScreen, setFullScreen] = useState(false);
 | 
						||
  const [originResizeFunc, setOriginResizeFunc] = useState();
 | 
						||
  const escFunction = () => {
 | 
						||
    let isFull = !!(
 | 
						||
      document.fullscreen ||
 | 
						||
      document.mozFullScreen ||
 | 
						||
      document.webkitIsFullScreen ||
 | 
						||
      document.webkitFullScreen ||
 | 
						||
      document.msFullScreen
 | 
						||
    );
 | 
						||
    if (isFull) {
 | 
						||
    // /
 | 
						||
    }else{
 | 
						||
      // requestFullScreenMethod(document.body);
 | 
						||
      setshowModal(false);
 | 
						||
    }
 | 
						||
  };
 | 
						||
  useEffect(() => {
 | 
						||
    // 监听退出全屏事件 --- chrome 用 esc 退出全屏并不会触发 keyup 事件
 | 
						||
    document.addEventListener(
 | 
						||
      "webkitfullscreenchange",
 | 
						||
      escFunction
 | 
						||
    ); /* Chrome, Safari and Opera */
 | 
						||
    document.addEventListener("mozfullscreenchange", escFunction); /* Firefox */
 | 
						||
    document.addEventListener(
 | 
						||
      "fullscreenchange",
 | 
						||
      escFunction
 | 
						||
    ); /* Standard syntax */
 | 
						||
    document.addEventListener(
 | 
						||
      "msfullscreenchange",
 | 
						||
      escFunction
 | 
						||
    ); /* IE / Edge */
 | 
						||
    return () => {
 | 
						||
      //销毁时清除监听
 | 
						||
      document.removeEventListener("webkitfullscreenchange", escFunction);
 | 
						||
      document.removeEventListener("mozfullscreenchange", escFunction);
 | 
						||
      document.removeEventListener("fullscreenchange", escFunction);
 | 
						||
      document.removeEventListener("MSFullscreenChange", escFunction);
 | 
						||
    };
 | 
						||
  }, []);
 | 
						||
 | 
						||
  if (window.navigator.userAgent.indexOf("Windows") < 1) {
 | 
						||
    return <div></div>;
 | 
						||
  } else {
 | 
						||
    return (
 | 
						||
      <div>
 | 
						||
        <div
 | 
						||
          type="primary"
 | 
						||
          onClick={() => {
 | 
						||
            setshowModal(true);
 | 
						||
            requestFullScreenMethod(document.body);     // 进入全屏
 | 
						||
          }}
 | 
						||
        >
 | 
						||
          <Icon type='alert' className='header__right-icon'></Icon>
 | 
						||
          {/* <IconFont
 | 
						||
            type="icon-line-108"
 | 
						||
            style={{ fontSize: "22px", color: "#333333", cursor: "pointer" }}
 | 
						||
          ></IconFont> */}
 | 
						||
        </div>
 | 
						||
        <Modal
 | 
						||
          title="功能导航"
 | 
						||
          visible={showModal}
 | 
						||
          width="100%"
 | 
						||
          centered={true}
 | 
						||
          onOk={() => {
 | 
						||
            setshowModal(false);
 | 
						||
          }}
 | 
						||
          onCancel={() => {
 | 
						||
            setshowModal(false);
 | 
						||
          }}
 | 
						||
          className="fullScreen"
 | 
						||
        >
 | 
						||
          <FullScreenPage />
 | 
						||
        </Modal>
 | 
						||
      </div>
 | 
						||
    );
 | 
						||
  }
 | 
						||
};
 | 
						||
 | 
						||
const FullScreen = withRouter(
 | 
						||
  connect(({ login }) => ({ login }))(FullScreenOpton)
 | 
						||
);
 | 
						||
 | 
						||
const HeaderNav = withRouter(connect(({ login }) => ({ login }))(NavOpton));
 | 
						||
 | 
						||
function Header(props) {
 | 
						||
  const { baseConfig = {} } = props.login;
 | 
						||
  const thumbCode = baseConfig.Nav_PictureLogo
 | 
						||
    ? baseConfig.Nav_PictureLogo.CODE
 | 
						||
    : "";
 | 
						||
  let isMobile = false;
 | 
						||
 | 
						||
  if (window.navigator.userAgent.indexOf("Windows") < 1) {
 | 
						||
    isMobile = true;
 | 
						||
  }
 | 
						||
 | 
						||
  return (
 | 
						||
    <div className={`header ${props.matchLogin ? "login" : ""}`}>
 | 
						||
      <div className="header__left">
 | 
						||
        <PictureThumb
 | 
						||
          thumbCodes={thumbCode ? [thumbCode] : []}
 | 
						||
          thumbConfigs={[{ target: thumbCode }]}
 | 
						||
          defaultThumb={require("../assets/layout/headerno-logo-new.png")}
 | 
						||
          className="header__left-logo"
 | 
						||
        />
 | 
						||
        {isMobile ? (
 | 
						||
          <span className="header__left-slogan-mobile"> </span>
 | 
						||
        ) : (
 | 
						||
          <span
 | 
						||
            className={`${
 | 
						||
              props.matchLogin
 | 
						||
                ? "header__left-sloganLogin"
 | 
						||
                : "header__left-slogan"
 | 
						||
            }`}
 | 
						||
          >
 | 
						||
            矿山安全生产标准化系统
 | 
						||
            <span style={{ color: "#c99d03" }}>(SPS)</span>
 | 
						||
            {baseConfig.SYS_NAME}{" "}
 | 
						||
          </span>
 | 
						||
        )}
 | 
						||
      </div>
 | 
						||
      {!props.matchLogin ? (
 | 
						||
        <div className="header__right">
 | 
						||
          {/* <RiskFourColor/> */}
 | 
						||
          {/* <FullScreen /> */}
 | 
						||
          {window.location.host == "121.41.2.71:8001" ? <FullScreen /> : ""} 
 | 
						||
          <GuideCode />
 | 
						||
          <HeaderNav />
 | 
						||
          <HeaderDataV />
 | 
						||
          <HeaderSearch />
 | 
						||
          {/* style={{"color":"#f3eded"}} */}
 | 
						||
          <HeaderMineType />
 | 
						||
          <HeaderUser />
 | 
						||
          <b>
 | 
						||
            {props.login.user.NAME}({props.login.user.CODE})
 | 
						||
          </b>
 | 
						||
        </div>
 | 
						||
      ) : null}
 | 
						||
    </div>
 | 
						||
  );
 | 
						||
}
 | 
						||
 | 
						||
export default connect(({ login }) => ({ login }))(Header);
 |