tplus-portaltouch 3.22.14 → 3.22.15
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
| 
         @@ -69,8 +69,6 @@ var NETWORK_THEME_PATH = "/"; 
     | 
|
| 
       69 
69 
     | 
    
         
             
            var PLACE_ORDER_PATH = "/RE/RE01";
         
     | 
| 
       70 
70 
     | 
    
         
             
            var weakRemindNum = 0; // 弱网提示初始值
         
     | 
| 
       71 
71 
     | 
    
         
             
            var WEAK_STANDARD_NUM = 3; // 弱网提示的次数上限
         
     | 
| 
       72 
     | 
    
         
            -
            //自助大屏、PAD版本、商米暂不支持离线
         
     | 
| 
       73 
     | 
    
         
            -
            var otherOfflineStatus = _mutantsMicrofx.localStore.get('isVerticalTouch') == 'true' || _mutantsMicrofx.localStore.get('isHorizontalPad') == 'true' || _mutantsMicrofx.localStore.get('isHorizontalSunMi') == 'true';
         
     | 
| 
       74 
72 
     | 
    
         | 
| 
       75 
73 
     | 
    
         
             
            //头部时间
         
     | 
| 
       76 
74 
     | 
    
         
             
            function HeadTime(props) {
         
     | 
| 
         @@ -186,7 +184,7 @@ var OnLineStatusToggle = (0, _mobxReact.observer)(function (props) { 
     | 
|
| 
       186 
184 
     | 
    
         | 
| 
       187 
185 
     | 
    
         
             
              var networkState = networkCheckStore.networkState;
         
     | 
| 
       188 
186 
     | 
    
         
             
              var isOnLine = networkCheckStore.isOnLine;
         
     | 
| 
       189 
     | 
    
         
            -
              var hasUseOffline = isOfflineCash && !otherOfflineStatus; //是否允许离线
         
     | 
| 
      
 187 
     | 
    
         
            +
              var hasUseOffline = isOfflineCash && !_mutantsUtil.platform.otherOfflineStatus; //是否允许离线
         
     | 
| 
       190 
188 
     | 
    
         
             
              var iconName = 'WiFi';
         
     | 
| 
       191 
189 
     | 
    
         
             
              if (hasUseOffline) {
         
     | 
| 
       192 
190 
     | 
    
         
             
                var weakConfirm = function weakConfirm() {
         
     | 
| 
         @@ -645,7 +643,7 @@ function HeadContent(props, context) { 
     | 
|
| 
       645 
643 
     | 
    
         
             
                setIsShowUploadBtnsByRouter(route.pathname.indexOf(UPLOAD_BASE_PATH) < 0);
         
     | 
| 
       646 
644 
     | 
    
         
             
                setIsPlaceOrderPage(route.pathname.indexOf(PLACE_ORDER_PATH) > -1);
         
     | 
| 
       647 
645 
     | 
    
         
             
              });
         
     | 
| 
       648 
     | 
    
         
            -
              var hasUseOffline = (0, _tplusPoslogin.PosInitData)('IsOfflineCash') === "1" && !otherOfflineStatus; //是否允许离线
         
     | 
| 
      
 646 
     | 
    
         
            +
              var hasUseOffline = (0, _tplusPoslogin.PosInitData)('IsOfflineCash') === "1" && !_mutantsUtil.platform.otherOfflineStatus; //是否允许离线
         
     | 
| 
       649 
647 
     | 
    
         
             
              var menuProps = { onClick: onClick };
         
     | 
| 
       650 
648 
     | 
    
         
             
              var menus = _react2.default.createElement(
         
     | 
| 
       651 
649 
     | 
    
         
             
                _antd.Menu,
         
     | 
| 
         @@ -1 +1 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            {"version":3,"sources":["tplus-portaltouch/components/header/headContent.js"],"names":["HeadContent","Item","Menu","defaultFromat","t","i18n","getFixedT","UPLOAD_BASE_PATH","NETWORK_THEME_PATH","PLACE_ORDER_PATH","weakRemindNum","WEAK_STANDARD_NUM","otherOfflineStatus","localStore","get","HeadTime","props","time","dateFormat","unMount","timeStr","Date","now","currentTime","setCurrentTime","timeout","refreshDate","setTimeout","clearTimeout","split","date_YMD","date_HMS","platform","isVerticalTouch","OnLineStatus","networkStatus","networkCheckStore","stores","networkState","networkOn","iconName","switchNetwork","checked","event","switchOnLine","lineIcon","marginRight","getIsOffNetWork","OnLineStatusToggle","isShowUploadBtnsByRouter","isResetNetWorkTheme","isOfflineCash","isPlaceOrderPage","offlineSys","voucherStore","isOnLine","hasUseOffline","weakConfirm","getDataIsOffline","document","querySelector","ModalWraper","confirm","title","content","onOk","setOffLine","switchStatus","Message","tip","getVoucherDataStatus","data","getVoucherData","Idmember","RetailDetails","length","status","playStatus","setIsOffline","clearVoucherData","color","OFFLINE_POINT_DESC","RetailUpload","isModalVisible","setIsModalVisible","isUpLoading","setIsUpLoading","refModal","showModal","current","fetch","handleOk","isUpLoad","uploadRetail","error","handleCancel","UnLoadNum","retailNotUploadNumber","display","RetailDownload","isDownload","setIsDownload","downStr","setDownStr","handleDownLoad","downloadCatcherData","e","percent","result","success","DownloadBtn","releaseDate","releaseVersion","__RELEASESDATE__","__BUILDVERSION__","context","isElectron","env","businessName","storeName","posCode","logo","style","history","solt","isPortal","isLogin","menu","onClick","location","themeVisible","setThemeVisible","window","href","indexOf","setIsShowUploadBtnsByRouter","pathname","setIsResetNetWorkTheme","setIsPlaceOrderPage","listen","route","menuProps","menus","map","item","i","key","icon","controlConfig","type","beforeEvent","className","Loading","show","node","delay","actionHook","actionChange","User","logout","nativeMs","doWindow","clear","remove","splitUser","value","regEmail","RegExp","isEmail","test","setInventoryFocus","isHorizontalPad","doms","getElementsByClassName","input","getElementById","console","log","focus","clickTheme","isShow","userName","overlayClassName","moreInfoNode","headControlNode","v","width","height","replace","preventDefault","contextTypes","PropTypes","object"],"mappings":"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","file":"headContent.js","sourcesContent":["import React, { useState, useEffect, useRef } from 'react';\r\nimport { Ticon, ModalWraper, Loading, Spin, Message } from 'tplus-components-touch';\r\nimport { Tooltip, Menu, Dropdown, Switch, Popover } from 'antd';\r\nimport PropTypes from 'prop-types';\r\nimport { formatDate } from '../../utils';\r\nimport { env, nativeMs, localStore, i18n } from 'mutants-microfx';\r\nimport { PosInitData } from 'tplus-poslogin';\r\nimport { User } from 'tplus-api';\r\nimport { verticalHeadTime, verticalHeadContent } from './vertical-touch';\r\nimport { platform } from 'mutants-util';\r\nimport ThemeModal from \"./themeModal\";\r\nimport UploadOrder from \"./uploadList\";\r\nimport {stores} from 'mutants-microfx';\r\nimport {observer} from 'mobx-react';\r\nimport {OFFLINE_POINT_DESC} from './offlinePointDesc';\r\nconst { Item } = Menu;\r\nconst defaultFromat = 'yyyy-MM-dd hh:mm:ss';\r\nconst t = i18n.getFixedT(null, 'newretail');\r\nconst UPLOAD_BASE_PATH = '/login';\r\nconst NETWORK_THEME_PATH = \"/\";\r\nconst PLACE_ORDER_PATH = \"/RE/RE01\";\r\nlet weakRemindNum = 0;// 弱网提示初始值\r\nconst WEAK_STANDARD_NUM = 3; // 弱网提示的次数上限\r\n//自助大屏、PAD版本、商米暂不支持离线\r\nconst otherOfflineStatus = (localStore.get('isVerticalTouch') == 'true') || (localStore.get('isHorizontalPad') == 'true') || (localStore.get('isHorizontalSunMi') == 'true');\r\n\r\n//头部时间\r\nfunction HeadTime(props) {\r\n  const { time, dateFormat } = props;\r\n  let unMount = false;\r\n  const timeStr = typeof time === 'number' ? formatDate(time, dateFormat) : time;\r\n  const [currentTime, setCurrentTime] = useState(formatDate(Date.now(), dateFormat));\r\n  let timeout;\r\n  function refreshDate() {\r\n    if (time) return;\r\n    !unMount && setCurrentTime(formatDate(Date.now(), dateFormat));\r\n    timeout = setTimeout(refreshDate, 1000);\r\n  }\r\n  useEffect(() => {\r\n    refreshDate();\r\n    return () => {\r\n      unMount = true;\r\n      clearTimeout(timeout);\r\n    };\r\n  }, [currentTime]);\r\n  const [date_YMD, date_HMS] = currentTime.split(' ') || [];\r\n\r\n  if (platform.isVerticalTouch) return verticalHeadTime({ date_HMS });\r\n  return (\r\n    <div className='time'>\r\n      {timeStr ?\r\n        <div>{timeStr}</div> :\r\n        <div>\r\n          {date_YMD}\r\n          <span>{date_HMS}</span>\r\n        </div>\r\n      }\r\n    </div>\r\n  );\r\n}\r\n\r\n//头部联网状态\r\nconst OnLineStatus = observer((props)=>{\r\n  const { networkStatus } = props;\r\n  const { networkCheckStore } = stores;\r\n  const networkState = networkCheckStore.networkState;\r\n  let networkOn = true;\r\n  let iconName = 'WiFi';\r\n  switch (networkState) {\r\n    case '联网':\r\n      iconName = 'WiFi';\r\n      break;\r\n    case '弱网':\r\n      iconName = 'ruowifi';\r\n      break;\r\n    case '离线':\r\n      networkOn = false;\r\n      iconName = 'wuwangluo';\r\n      break;\r\n    default:\r\n      break;\r\n  }\r\n  const switchNetwork = (checked ,event)=>{\r\n    networkCheckStore.switchOnLine(checked);\r\n  }\r\n  const lineIcon = <Ticon\r\n    icon={iconName}\r\n    className=\"network-state-icon\"\r\n  />\r\n  return (\r\n    <div><span className='network-status' style={{marginRight:'10px'}}>{networkStatus || lineIcon}</span><span><Switch checkedChildren=\"开启\" unCheckedChildren=\"关闭\" defaultChecked checked={networkOn} onChange={switchNetwork}/></span></div>\r\n  );\r\n});\r\nfunction getIsOffNetWork() {\r\n  const { networkCheckStore } = stores;\r\n  return networkCheckStore.networkState === '离线';\r\n}\r\n//头部联网状态\r\nconst OnLineStatusToggle = observer(props => {\r\n  const { isShowUploadBtnsByRouter, isResetNetWorkTheme, isOfflineCash, isPlaceOrderPage } = props;\r\n  const { networkCheckStore, offlineSys, voucherStore } = stores;\r\n  const networkState = networkCheckStore.networkState;\r\n  let isOnLine = networkCheckStore.isOnLine;\r\n  const hasUseOffline = isOfflineCash && !otherOfflineStatus; //是否允许离线\r\n  let iconName = 'WiFi';\r\n  if (hasUseOffline) {\r\n    switch (networkState) {\r\n      case '联网':\r\n        iconName = 'WiFi';\r\n        break;\r\n      case '弱网':\r\n        iconName = 'ruowifi';\r\n        break;\r\n      case '离线':\r\n        iconName = 'wuwangluo';\r\n        break;\r\n      default:\r\n        break;\r\n    }\r\n    if (networkState === '离线' && isOnLine) {\r\n      ModalWraper.confirm({\r\n        title: t('提示'),\r\n        content: t('网络已断,是否切换到离线收银模式?'),\r\n        onOk: () => {\r\n          setOffLine(true);\r\n        }\r\n      });\r\n    }\r\n    function weakConfirm() {\r\n      if (!isOnLine) return;// 离线不提示\r\n      if (networkState !== '弱网') return; // 非弱网不提示\r\n      if (weakRemindNum >= WEAK_STANDARD_NUM) return; // 提示大于三次不再提示\r\n      if (!offlineSys.getDataIsOffline) return;// 数据未下载完不提示\r\n      if (document.querySelector('.isRetailUpLoading')) return;// 上传中不提示\r\n      if (document.querySelector('.isRetailDownLoading')) return;// 下载中不提示\r\n      if (document.querySelector('.tplus-loading')) return;// 全屏loading不提示\r\n      weakRemindNum ++;\r\n      ModalWraper.confirm({\r\n        title: t('提示'),\r\n        content: t('当前网络不好,是否切换到离线?'),\r\n        onOk: () => {\r\n          setOffLine(true);\r\n        }\r\n      });\r\n    }\r\n    weakConfirm();\r\n  }\r\n  function switchStatus() {\r\n    if (networkState === '离线' && !isOnLine) {\r\n      Message.tip('当前无网络,无法切换为在线状态');\r\n      return;\r\n    }\r\n    ModalWraper.confirm({\r\n        title: t('提示'),\r\n        content: t(`确定要切换为${isOnLine ? '离' : '在'}线环境吗?`),\r\n        onOk: () => {\r\n          setOffLine(isOnLine);\r\n        }\r\n    });\r\n  }\r\n\r\n  function getVoucherDataStatus() {\r\n    let data = voucherStore.getVoucherData();\r\n    const { Idmember, RetailDetails } = data || {};\r\n    if (!!Idmember || (RetailDetails && RetailDetails.length > 0)) {\r\n      return true;\r\n    }\r\n    return false;\r\n  }\r\n\r\n  function setOffLine(status) {\r\n    if (isPlaceOrderPage && getVoucherDataStatus()) {\r\n      ModalWraper.confirm({\r\n        title: t('提示'),\r\n        content: t(`当前为开单界面,切换到${status ? '离' : '在'}线会清除当前数据,确定要切换吗?`),\r\n        onOk: () => {\r\n          playStatus(status);\r\n        }\r\n      });\r\n    } else {\r\n      playStatus(status);\r\n    }\r\n  }\r\n\r\n  function playStatus(status) {\r\n    // status 为 true 是在线切离线\r\n    if (status) {\r\n      if (!offlineSys.getDataIsOffline() || document.querySelector('.isRetailDownLoading')) {\r\n        Message.tip('数据还未下载完,无法切换为离线');\r\n        return;\r\n      }\r\n    }\r\n    offlineSys.setIsOffline(status);\r\n    if (isPlaceOrderPage) {\r\n      voucherStore.clearVoucherData();\r\n    }\r\n  }\r\n  return (\r\n    <div className='on-off-wrap'>\r\n      <div className='status-square'>\r\n        <span className=\"status-tog-btn\" style={{color: `${isResetNetWorkTheme ? '#fff' : ''}`}}>{<Ticon icon={iconName}/>}</span>\r\n      </div>\r\n      {\r\n        hasUseOffline && isShowUploadBtnsByRouter && <div className={`status-square c-pointer online-status-bg ${isOnLine || isResetNetWorkTheme ? '' : 'off-line'}`}>\r\n          <span className=\"status-tog-btn\" onClick={switchStatus}>\r\n            <span>{isOnLine ? '在线' : '离线'}</span>\r\n            <span>{<Ticon icon=\"zaixianlixian\" className=\"ts-14\" />}</span>\r\n          </span>\r\n          <Popover placement=\"bottom\" overlayClassName={'offline-popver'} content={<pre>{OFFLINE_POINT_DESC}</pre>} trigger=\"hover\">\r\n            <span className=\"status-tog-btn\">{<Ticon icon=\"tanhao1\" />}</span>\r\n          </Popover>\r\n        </div>\r\n      }\r\n    </div>\r\n  );\r\n});\r\n\r\n//零售单上传\r\nfunction RetailUpload() {\r\n  const [isModalVisible, setIsModalVisible] = useState(false);\r\n  const [isUpLoading, setIsUpLoading] = useState(false);\r\n  const refModal = useRef(null);\r\n  const showModal = async () => {\r\n    refModal && refModal.current.fetch();\r\n    setIsModalVisible(true);\r\n  };\r\n\r\n  const handleOk = async (isUpLoad = false) => {\r\n    setIsModalVisible(false);\r\n    if (getIsOffNetWork()) {\r\n      Message.tip('已断网,不可以上传单据');\r\n      return;\r\n    }\r\n    if (!isUpLoad) {\r\n      Message.tip('暂无可以上传的单据');\r\n      return;\r\n    }\r\n    if (isUpLoading) {\r\n      Message.tip('零售单正在上传……');\r\n      return;\r\n    }\r\n    setIsUpLoading(true);\r\n    try {\r\n      await stores.offlineSys.uploadRetail();\r\n      // Message.success('零售单上传成功');\r\n    } catch (err) {\r\n      Message.error('上传失败');\r\n    }\r\n    setIsUpLoading(false);\r\n  };\r\n\r\n  const handleCancel = () => {\r\n    setIsModalVisible(false);\r\n  };\r\n  return (\r\n    <div className='upload-retail'>\r\n      <div className=\"status-square online-status-bg c-pointer\" onClick={showModal}>\r\n        <span className=\"status-tog-btn\">\r\n          <span className={`${isUpLoading ? 'isRetailUpLoading' : ''}`}>{<Ticon icon=\"shangchuan\"/>}</span>\r\n          <span className=\"fast-upload-btn\">上传零售单</span>\r\n        </span>\r\n      </div>\r\n      <UnLoadNum/>\r\n      <UploadOrder ref={refModal} visible={isModalVisible} handleOk={handleOk} handleCancel={handleCancel}/>\r\n    </div>\r\n  );\r\n}\r\n// 零售单未上传的数量\r\nconst UnLoadNum = observer(() => {\r\n  const {offlineSys: {retailNotUploadNumber} } = stores;\r\n  return <span style={{display: retailNotUploadNumber > 0 ? 'inherit' : 'none'}} className=\"up-count-btn\">{retailNotUploadNumber > 99 ? '99+' : retailNotUploadNumber}</span>\r\n});\r\n//零售单下载\r\nfunction RetailDownload() {\r\n  const {offlineSys} = stores;\r\n  const [isDownload, setIsDownload] = useState(false);\r\n  const [downStr, setDownStr] = useState('下载数据');\r\n  const handleDownLoad = async () => {\r\n    if (getIsOffNetWork()) {\r\n      Message.tip('已断网,不可以下载单据');\r\n      return;\r\n    }\r\n    if (isDownload) {\r\n      Message.tip('下载中');\r\n      return;\r\n    }\r\n    setDownStr('0 %');\r\n    setIsDownload(true);\r\n    Message.tip('下载中');\r\n    try {\r\n      let result = await offlineSys.downloadCatcherData(e => {\r\n        setDownStr(e.percent + ' %');\r\n      });\r\n      if (result) {\r\n        Message.success(`数据下载成功`);\r\n      } else {\r\n        Message.error(`数据下载失败`);\r\n      }\r\n    } catch(err){\r\n      Message.error('数据下载失败');\r\n    }\r\n    setDownStr('下载数据');\r\n    setIsDownload(false);\r\n  };\r\n  return (\r\n    <div className='download-retail'>\r\n      <DownloadBtn handleDownLoad={handleDownLoad} isDownload={isDownload} downStr={downStr}/>\r\n    </div>\r\n  );\r\n};\r\n// 下载按钮\r\nconst DownloadBtn = observer((props) => {\r\n  const { downStr, isDownload, handleDownLoad} = props;\r\n  return (\r\n    <div className={`status-square online-status-bg c-pointer ${getIsOffNetWork() ? 'is-grey' : ''}`} onClick={handleDownLoad}>\r\n        <span className=\"status-tog-btn\">\r\n          <span className={`${isDownload ? 'isRetailDownLoading' : ''}`}>{<Ticon icon=\"xiazaishuju\"/>}</span>\r\n          <span className=\"fast-upload-btn\">{downStr}</span>\r\n        </span>\r\n      </div>\r\n  )\r\n});\r\nlet releaseDate, releaseVersion;\r\ntry {\r\n  releaseDate = __RELEASESDATE__;\r\n  releaseVersion = __BUILDVERSION__;\r\n} catch (error) {\r\n  releaseDate = '';\r\n  releaseVersion = '';\r\n}\r\nexport default function HeadContent(props, context) {\r\n  const isElectron = (env || {}).platform === 'electron';\r\n  const {businessName = '', storeName = '', posCode, logo, networkStatus, style = {}, history,\r\n    dateFormat = defaultFromat, solt, time, isPortal, isLogin, menu = [], onClick, location} = props;\r\n  const [themeVisible, setThemeVisible] = useState(false);\r\n  const [isShowUploadBtnsByRouter, setIsShowUploadBtnsByRouter] = useState(window.location.href.indexOf(UPLOAD_BASE_PATH) < 0);\r\n  const [isResetNetWorkTheme, setIsResetNetWorkTheme] = useState(window.location.pathname === NETWORK_THEME_PATH);\r\n  const [isPlaceOrderPage, setIsPlaceOrderPage] = useState(window.location.href.indexOf(PLACE_ORDER_PATH) > 0);\r\n  props.history.listen(route => {\r\n    setIsResetNetWorkTheme(route.pathname === NETWORK_THEME_PATH);\r\n    setIsShowUploadBtnsByRouter(route.pathname.indexOf(UPLOAD_BASE_PATH) < 0);\r\n    setIsPlaceOrderPage(route.pathname.indexOf(PLACE_ORDER_PATH) > -1)\r\n  });\r\n  const hasUseOffline = (PosInitData('IsOfflineCash') === \"1\") && !otherOfflineStatus; //是否允许离线\r\n  const menuProps = {onClick};\r\n  const menus = (\r\n    <Menu {...menuProps}>\r\n      {menu.map((item, i) =>\r\n        <Item key={item.key || i}>\r\n          {item.icon && <Ticon icon={item.icon}/>}\r\n          <span>{item.title}</span>\r\n        </Item>)\r\n      }\r\n    </Menu>\r\n  );\r\n\r\n  const controlConfig = [\r\n    {type: 'suoxiao', event: 'min'},\r\n    {\r\n      type: 'guanbixiao',\r\n      event: 'close',\r\n      beforeEvent: (item) => {\r\n        return ModalWraper.confirm({\r\n          className: 'tplus-confirm-modal',\r\n          title: '关闭提示',\r\n          content: '您确定要关闭应用吗?',\r\n          async onOk() {\r\n            Loading.show({\r\n              className: 'close-app-loading',\r\n              node: <div className='close-app-spin'>\r\n                <Spin scale={1.2} type='shape' visible/>\r\n                <h1>应用关闭中...</h1>\r\n              </div>,\r\n              delay: false\r\n            });\r\n            context.actionHook.actionChange('close-app');\r\n            try {\r\n              await User.logout(() => {\r\n                setTimeout(() => {\r\n                  nativeMs.doWindow(item.event);\r\n                }, 500); // 需要为500ms 时间短可能会不能正常注销清理\r\n              });\r\n            } catch (err) {\r\n              User.clear();\r\n              localStore.remove('user');\r\n              setTimeout(() => {\r\n                nativeMs.doWindow(item.event);\r\n              }, 500);\r\n            }\r\n          }\r\n        });\r\n      }\r\n    },\r\n  ];\r\n\r\n  const splitUser = (value) => {\r\n    const regEmail = new RegExp('^[A-Za-zd0-9]+([-_.][A-Za-zd0-9]+)*@([A-Za-zd0-9]+[-.])+[A-Za-zd]{2,5}$');\r\n    const isEmail = regEmail.test(value);\r\n\r\n    if (isEmail) {\r\n      return value.split('@')[0];\r\n    }\r\n    return value;\r\n  }\r\n\r\n  const setInventoryFocus = () => {\r\n    const { isHorizontalPad } = platform || {};\r\n    if (!!isHorizontalPad) return;\r\n    let doms = document.getElementsByClassName('app hot-key-focus-container');\r\n    let input = document.getElementById('productPoint');\r\n    if (input) setTimeout(() => { if (doms && doms.length > 0) { console.log('headContent--商品焦点==Focus==');input.focus() } }, 300)\r\n  }\r\n\r\n  const clickTheme = (isShow) => {\r\n    setThemeVisible(isShow)\r\n  }\r\n\r\n  const userName = PosInitData('UserName');\r\n  const overlayClassName = `_portal-header-dropdown ${!isPortal ? 'inside-header' : ''}`;\r\n  const moreInfoNode = <div className='pos-more-info-container'>\r\n    <h1 className='business-name'>{businessName}</h1>\r\n    <h1 className='store-code'>{posCode}</h1>\r\n  </div>\r\n\r\n  const headControlNode = <div className=\"head-content-control\">\r\n    {controlConfig.map(v => <Ticon\r\n      type={v.type}\r\n      key={v.type}\r\n      onClick={() => {\r\n        if (nativeMs) {\r\n          const {beforeEvent} = v;\r\n          if (beforeEvent) {\r\n            return beforeEvent(v);\r\n          }\r\n          nativeMs.doWindow(v.event)\r\n          if (typeof setInventoryFocus == 'function') {\r\n            setInventoryFocus()\r\n          }\r\n        }\r\n      }}\r\n    />)}\r\n  </div>\r\n\r\n  if (platform.isVerticalTouch) return verticalHeadContent({ style, releaseVersion, releaseDate,\r\n    time, dateFormat, logo, HeadTime, headControlNode, location, history, clickTheme, themeVisible, isPortal, isLogin });\r\n\r\n  return (<div style={{display: 'inline-block', width: '100%', height: '100%', ...style}} className='head-content' data-release={`${releaseVersion} ${releaseDate}`}>\r\n    <div className=\"head-content-left\">\r\n      {!!logo && <div className='business-logo' onClick={()=>{history.replace('/')}}>{logo}</div>}\r\n      {!!storeName && <Tooltip trigger=\"click\" placement=\"bottomRight\" title={moreInfoNode} color={'#fff'} overlayClassName='head-business-tip'>\r\n        <div className='store-name'>{storeName}<i className='header-triangle-down' /></div>\r\n       </Tooltip>}\r\n      {/* <OnLineStatus networkStatus={networkStatus}/> */}\r\n      <OnLineStatusToggle isShowUploadBtnsByRouter={isShowUploadBtnsByRouter} isResetNetWorkTheme={isResetNetWorkTheme} isOfflineCash={hasUseOffline} isPlaceOrderPage={isPlaceOrderPage}/>\r\n      {hasUseOffline && isShowUploadBtnsByRouter && <RetailUpload />}\r\n      {hasUseOffline && isShowUploadBtnsByRouter && <RetailDownload />}\r\n    </div>\r\n    {isElectron && headControlNode}\r\n    <div className=\"head-content-right\">\r\n      {!isLogin && <Ticon icon=\"huanfu\" className={`theme-icon ${!isPortal ? 'pos-page' : ''}` } onClick={() => {clickTheme(true)}}/>}\r\n      {!isLogin && !!userName && <Dropdown\r\n        overlayClassName={overlayClassName}\r\n        trigger={['click']}\r\n        overlay={menus}\r\n        placement=\"bottomRight\"\r\n        arrow\r\n      >\r\n        <div className='header-info-render-content' onClick={e => e.preventDefault()}>\r\n          <div className='store-info-item'>\r\n            <p className='biller'>开单员:<span>{splitUser(userName)}</span></p>\r\n          </div>\r\n          <i className='header-triangle-down'/>\r\n        </div>\r\n      </Dropdown>}\r\n      {!isLogin && <div className='store-info-item'>{solt}</div>}\r\n      <HeadTime time={time} dateFormat={dateFormat}/>\r\n    </div>\r\n    <ThemeModal\r\n        visible={themeVisible}\r\n        isVertical={platform.isVerticalTouch}\r\n        isPortal={isPortal}\r\n        closeFn={(isShow) => clickTheme(isShow)}\r\n    />\r\n  </div>);\r\n}\r\n\r\nHeadContent.contextTypes = {\r\n  actionHook: PropTypes.object,\r\n}\r\n"]}
         
     | 
| 
      
 1 
     | 
    
         
            +
            {"version":3,"sources":["tplus-portaltouch/components/header/headContent.js"],"names":["HeadContent","Item","Menu","defaultFromat","t","i18n","getFixedT","UPLOAD_BASE_PATH","NETWORK_THEME_PATH","PLACE_ORDER_PATH","weakRemindNum","WEAK_STANDARD_NUM","HeadTime","props","time","dateFormat","unMount","timeStr","Date","now","currentTime","setCurrentTime","timeout","refreshDate","setTimeout","clearTimeout","split","date_YMD","date_HMS","platform","isVerticalTouch","OnLineStatus","networkStatus","networkCheckStore","stores","networkState","networkOn","iconName","switchNetwork","checked","event","switchOnLine","lineIcon","marginRight","getIsOffNetWork","OnLineStatusToggle","isShowUploadBtnsByRouter","isResetNetWorkTheme","isOfflineCash","isPlaceOrderPage","offlineSys","voucherStore","isOnLine","hasUseOffline","otherOfflineStatus","weakConfirm","getDataIsOffline","document","querySelector","ModalWraper","confirm","title","content","onOk","setOffLine","switchStatus","Message","tip","getVoucherDataStatus","data","getVoucherData","Idmember","RetailDetails","length","status","playStatus","setIsOffline","clearVoucherData","color","OFFLINE_POINT_DESC","RetailUpload","isModalVisible","setIsModalVisible","isUpLoading","setIsUpLoading","refModal","showModal","current","fetch","handleOk","isUpLoad","uploadRetail","error","handleCancel","UnLoadNum","retailNotUploadNumber","display","RetailDownload","isDownload","setIsDownload","downStr","setDownStr","handleDownLoad","downloadCatcherData","e","percent","result","success","DownloadBtn","releaseDate","releaseVersion","__RELEASESDATE__","__BUILDVERSION__","context","isElectron","env","businessName","storeName","posCode","logo","style","history","solt","isPortal","isLogin","menu","onClick","location","themeVisible","setThemeVisible","window","href","indexOf","setIsShowUploadBtnsByRouter","pathname","setIsResetNetWorkTheme","setIsPlaceOrderPage","listen","route","menuProps","menus","map","item","i","key","icon","controlConfig","type","beforeEvent","className","Loading","show","node","delay","actionHook","actionChange","User","logout","nativeMs","doWindow","clear","localStore","remove","splitUser","value","regEmail","RegExp","isEmail","test","setInventoryFocus","isHorizontalPad","doms","getElementsByClassName","input","getElementById","console","log","focus","clickTheme","isShow","userName","overlayClassName","moreInfoNode","headControlNode","v","width","height","replace","preventDefault","contextTypes","PropTypes","object"],"mappings":"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","file":"headContent.js","sourcesContent":["import React, { useState, useEffect, useRef } from 'react';\r\nimport { Ticon, ModalWraper, Loading, Spin, Message } from 'tplus-components-touch';\r\nimport { Tooltip, Menu, Dropdown, Switch, Popover } from 'antd';\r\nimport PropTypes from 'prop-types';\r\nimport { formatDate } from '../../utils';\r\nimport { env, nativeMs, localStore, i18n } from 'mutants-microfx';\r\nimport { PosInitData } from 'tplus-poslogin';\r\nimport { User } from 'tplus-api';\r\nimport { verticalHeadTime, verticalHeadContent } from './vertical-touch';\r\nimport { platform } from 'mutants-util';\r\nimport ThemeModal from \"./themeModal\";\r\nimport UploadOrder from \"./uploadList\";\r\nimport {stores} from 'mutants-microfx';\r\nimport {observer} from 'mobx-react';\r\nimport {OFFLINE_POINT_DESC} from './offlinePointDesc';\r\nconst { Item } = Menu;\r\nconst defaultFromat = 'yyyy-MM-dd hh:mm:ss';\r\nconst t = i18n.getFixedT(null, 'newretail');\r\nconst UPLOAD_BASE_PATH = '/login';\r\nconst NETWORK_THEME_PATH = \"/\";\r\nconst PLACE_ORDER_PATH = \"/RE/RE01\";\r\nlet weakRemindNum = 0;// 弱网提示初始值\r\nconst WEAK_STANDARD_NUM = 3; // 弱网提示的次数上限\r\n\r\n//头部时间\r\nfunction HeadTime(props) {\r\n  const { time, dateFormat } = props;\r\n  let unMount = false;\r\n  const timeStr = typeof time === 'number' ? formatDate(time, dateFormat) : time;\r\n  const [currentTime, setCurrentTime] = useState(formatDate(Date.now(), dateFormat));\r\n  let timeout;\r\n  function refreshDate() {\r\n    if (time) return;\r\n    !unMount && setCurrentTime(formatDate(Date.now(), dateFormat));\r\n    timeout = setTimeout(refreshDate, 1000);\r\n  }\r\n  useEffect(() => {\r\n    refreshDate();\r\n    return () => {\r\n      unMount = true;\r\n      clearTimeout(timeout);\r\n    };\r\n  }, [currentTime]);\r\n  const [date_YMD, date_HMS] = currentTime.split(' ') || [];\r\n\r\n  if (platform.isVerticalTouch) return verticalHeadTime({ date_HMS });\r\n  return (\r\n    <div className='time'>\r\n      {timeStr ?\r\n        <div>{timeStr}</div> :\r\n        <div>\r\n          {date_YMD}\r\n          <span>{date_HMS}</span>\r\n        </div>\r\n      }\r\n    </div>\r\n  );\r\n}\r\n\r\n//头部联网状态\r\nconst OnLineStatus = observer((props)=>{\r\n  const { networkStatus } = props;\r\n  const { networkCheckStore } = stores;\r\n  const networkState = networkCheckStore.networkState;\r\n  let networkOn = true;\r\n  let iconName = 'WiFi';\r\n  switch (networkState) {\r\n    case '联网':\r\n      iconName = 'WiFi';\r\n      break;\r\n    case '弱网':\r\n      iconName = 'ruowifi';\r\n      break;\r\n    case '离线':\r\n      networkOn = false;\r\n      iconName = 'wuwangluo';\r\n      break;\r\n    default:\r\n      break;\r\n  }\r\n  const switchNetwork = (checked ,event)=>{\r\n    networkCheckStore.switchOnLine(checked);\r\n  }\r\n  const lineIcon = <Ticon\r\n    icon={iconName}\r\n    className=\"network-state-icon\"\r\n  />\r\n  return (\r\n    <div><span className='network-status' style={{marginRight:'10px'}}>{networkStatus || lineIcon}</span><span><Switch checkedChildren=\"开启\" unCheckedChildren=\"关闭\" defaultChecked checked={networkOn} onChange={switchNetwork}/></span></div>\r\n  );\r\n});\r\nfunction getIsOffNetWork() {\r\n  const { networkCheckStore } = stores;\r\n  return networkCheckStore.networkState === '离线';\r\n}\r\n//头部联网状态\r\nconst OnLineStatusToggle = observer(props => {\r\n  const { isShowUploadBtnsByRouter, isResetNetWorkTheme, isOfflineCash, isPlaceOrderPage } = props;\r\n  const { networkCheckStore, offlineSys, voucherStore } = stores;\r\n  const networkState = networkCheckStore.networkState;\r\n  let isOnLine = networkCheckStore.isOnLine;\r\n  const hasUseOffline = isOfflineCash && !platform.otherOfflineStatus; //是否允许离线\r\n  let iconName = 'WiFi';\r\n  if (hasUseOffline) {\r\n    switch (networkState) {\r\n      case '联网':\r\n        iconName = 'WiFi';\r\n        break;\r\n      case '弱网':\r\n        iconName = 'ruowifi';\r\n        break;\r\n      case '离线':\r\n        iconName = 'wuwangluo';\r\n        break;\r\n      default:\r\n        break;\r\n    }\r\n    if (networkState === '离线' && isOnLine) {\r\n      ModalWraper.confirm({\r\n        title: t('提示'),\r\n        content: t('网络已断,是否切换到离线收银模式?'),\r\n        onOk: () => {\r\n          setOffLine(true);\r\n        }\r\n      });\r\n    }\r\n    function weakConfirm() {\r\n      if (!isOnLine) return;// 离线不提示\r\n      if (networkState !== '弱网') return; // 非弱网不提示\r\n      if (weakRemindNum >= WEAK_STANDARD_NUM) return; // 提示大于三次不再提示\r\n      if (!offlineSys.getDataIsOffline) return;// 数据未下载完不提示\r\n      if (document.querySelector('.isRetailUpLoading')) return;// 上传中不提示\r\n      if (document.querySelector('.isRetailDownLoading')) return;// 下载中不提示\r\n      if (document.querySelector('.tplus-loading')) return;// 全屏loading不提示\r\n      weakRemindNum ++;\r\n      ModalWraper.confirm({\r\n        title: t('提示'),\r\n        content: t('当前网络不好,是否切换到离线?'),\r\n        onOk: () => {\r\n          setOffLine(true);\r\n        }\r\n      });\r\n    }\r\n    weakConfirm();\r\n  }\r\n  function switchStatus() {\r\n    if (networkState === '离线' && !isOnLine) {\r\n      Message.tip('当前无网络,无法切换为在线状态');\r\n      return;\r\n    }\r\n    ModalWraper.confirm({\r\n        title: t('提示'),\r\n        content: t(`确定要切换为${isOnLine ? '离' : '在'}线环境吗?`),\r\n        onOk: () => {\r\n          setOffLine(isOnLine);\r\n        }\r\n    });\r\n  }\r\n\r\n  function getVoucherDataStatus() {\r\n    let data = voucherStore.getVoucherData();\r\n    const { Idmember, RetailDetails } = data || {};\r\n    if (!!Idmember || (RetailDetails && RetailDetails.length > 0)) {\r\n      return true;\r\n    }\r\n    return false;\r\n  }\r\n\r\n  function setOffLine(status) {\r\n    if (isPlaceOrderPage && getVoucherDataStatus()) {\r\n      ModalWraper.confirm({\r\n        title: t('提示'),\r\n        content: t(`当前为开单界面,切换到${status ? '离' : '在'}线会清除当前数据,确定要切换吗?`),\r\n        onOk: () => {\r\n          playStatus(status);\r\n        }\r\n      });\r\n    } else {\r\n      playStatus(status);\r\n    }\r\n  }\r\n\r\n  function playStatus(status) {\r\n    // status 为 true 是在线切离线\r\n    if (status) {\r\n      if (!offlineSys.getDataIsOffline() || document.querySelector('.isRetailDownLoading')) {\r\n        Message.tip('数据还未下载完,无法切换为离线');\r\n        return;\r\n      }\r\n    }\r\n    offlineSys.setIsOffline(status);\r\n    if (isPlaceOrderPage) {\r\n      voucherStore.clearVoucherData();\r\n    }\r\n  }\r\n  return (\r\n    <div className='on-off-wrap'>\r\n      <div className='status-square'>\r\n        <span className=\"status-tog-btn\" style={{color: `${isResetNetWorkTheme ? '#fff' : ''}`}}>{<Ticon icon={iconName}/>}</span>\r\n      </div>\r\n      {\r\n        hasUseOffline && isShowUploadBtnsByRouter && <div className={`status-square c-pointer online-status-bg ${isOnLine || isResetNetWorkTheme ? '' : 'off-line'}`}>\r\n          <span className=\"status-tog-btn\" onClick={switchStatus}>\r\n            <span>{isOnLine ? '在线' : '离线'}</span>\r\n            <span>{<Ticon icon=\"zaixianlixian\" className=\"ts-14\" />}</span>\r\n          </span>\r\n          <Popover placement=\"bottom\" overlayClassName={'offline-popver'} content={<pre>{OFFLINE_POINT_DESC}</pre>} trigger=\"hover\">\r\n            <span className=\"status-tog-btn\">{<Ticon icon=\"tanhao1\" />}</span>\r\n          </Popover>\r\n        </div>\r\n      }\r\n    </div>\r\n  );\r\n});\r\n\r\n//零售单上传\r\nfunction RetailUpload() {\r\n  const [isModalVisible, setIsModalVisible] = useState(false);\r\n  const [isUpLoading, setIsUpLoading] = useState(false);\r\n  const refModal = useRef(null);\r\n  const showModal = async () => {\r\n    refModal && refModal.current.fetch();\r\n    setIsModalVisible(true);\r\n  };\r\n\r\n  const handleOk = async (isUpLoad = false) => {\r\n    setIsModalVisible(false);\r\n    if (getIsOffNetWork()) {\r\n      Message.tip('已断网,不可以上传单据');\r\n      return;\r\n    }\r\n    if (!isUpLoad) {\r\n      Message.tip('暂无可以上传的单据');\r\n      return;\r\n    }\r\n    if (isUpLoading) {\r\n      Message.tip('零售单正在上传……');\r\n      return;\r\n    }\r\n    setIsUpLoading(true);\r\n    try {\r\n      await stores.offlineSys.uploadRetail();\r\n      // Message.success('零售单上传成功');\r\n    } catch (err) {\r\n      Message.error('上传失败');\r\n    }\r\n    setIsUpLoading(false);\r\n  };\r\n\r\n  const handleCancel = () => {\r\n    setIsModalVisible(false);\r\n  };\r\n  return (\r\n    <div className='upload-retail'>\r\n      <div className=\"status-square online-status-bg c-pointer\" onClick={showModal}>\r\n        <span className=\"status-tog-btn\">\r\n          <span className={`${isUpLoading ? 'isRetailUpLoading' : ''}`}>{<Ticon icon=\"shangchuan\"/>}</span>\r\n          <span className=\"fast-upload-btn\">上传零售单</span>\r\n        </span>\r\n      </div>\r\n      <UnLoadNum/>\r\n      <UploadOrder ref={refModal} visible={isModalVisible} handleOk={handleOk} handleCancel={handleCancel}/>\r\n    </div>\r\n  );\r\n}\r\n// 零售单未上传的数量\r\nconst UnLoadNum = observer(() => {\r\n  const {offlineSys: {retailNotUploadNumber} } = stores;\r\n  return <span style={{display: retailNotUploadNumber > 0 ? 'inherit' : 'none'}} className=\"up-count-btn\">{retailNotUploadNumber > 99 ? '99+' : retailNotUploadNumber}</span>\r\n});\r\n//零售单下载\r\nfunction RetailDownload() {\r\n  const {offlineSys} = stores;\r\n  const [isDownload, setIsDownload] = useState(false);\r\n  const [downStr, setDownStr] = useState('下载数据');\r\n  const handleDownLoad = async () => {\r\n    if (getIsOffNetWork()) {\r\n      Message.tip('已断网,不可以下载单据');\r\n      return;\r\n    }\r\n    if (isDownload) {\r\n      Message.tip('下载中');\r\n      return;\r\n    }\r\n    setDownStr('0 %');\r\n    setIsDownload(true);\r\n    Message.tip('下载中');\r\n    try {\r\n      let result = await offlineSys.downloadCatcherData(e => {\r\n        setDownStr(e.percent + ' %');\r\n      });\r\n      if (result) {\r\n        Message.success(`数据下载成功`);\r\n      } else {\r\n        Message.error(`数据下载失败`);\r\n      }\r\n    } catch(err){\r\n      Message.error('数据下载失败');\r\n    }\r\n    setDownStr('下载数据');\r\n    setIsDownload(false);\r\n  };\r\n  return (\r\n    <div className='download-retail'>\r\n      <DownloadBtn handleDownLoad={handleDownLoad} isDownload={isDownload} downStr={downStr}/>\r\n    </div>\r\n  );\r\n};\r\n// 下载按钮\r\nconst DownloadBtn = observer((props) => {\r\n  const { downStr, isDownload, handleDownLoad} = props;\r\n  return (\r\n    <div className={`status-square online-status-bg c-pointer ${getIsOffNetWork() ? 'is-grey' : ''}`} onClick={handleDownLoad}>\r\n        <span className=\"status-tog-btn\">\r\n          <span className={`${isDownload ? 'isRetailDownLoading' : ''}`}>{<Ticon icon=\"xiazaishuju\"/>}</span>\r\n          <span className=\"fast-upload-btn\">{downStr}</span>\r\n        </span>\r\n      </div>\r\n  )\r\n});\r\nlet releaseDate, releaseVersion;\r\ntry {\r\n  releaseDate = __RELEASESDATE__;\r\n  releaseVersion = __BUILDVERSION__;\r\n} catch (error) {\r\n  releaseDate = '';\r\n  releaseVersion = '';\r\n}\r\nexport default function HeadContent(props, context) {\r\n  const isElectron = (env || {}).platform === 'electron';\r\n  const {businessName = '', storeName = '', posCode, logo, networkStatus, style = {}, history,\r\n    dateFormat = defaultFromat, solt, time, isPortal, isLogin, menu = [], onClick, location} = props;\r\n  const [themeVisible, setThemeVisible] = useState(false);\r\n  const [isShowUploadBtnsByRouter, setIsShowUploadBtnsByRouter] = useState(window.location.href.indexOf(UPLOAD_BASE_PATH) < 0);\r\n  const [isResetNetWorkTheme, setIsResetNetWorkTheme] = useState(window.location.pathname === NETWORK_THEME_PATH);\r\n  const [isPlaceOrderPage, setIsPlaceOrderPage] = useState(window.location.href.indexOf(PLACE_ORDER_PATH) > 0);\r\n  props.history.listen(route => {\r\n    setIsResetNetWorkTheme(route.pathname === NETWORK_THEME_PATH);\r\n    setIsShowUploadBtnsByRouter(route.pathname.indexOf(UPLOAD_BASE_PATH) < 0);\r\n    setIsPlaceOrderPage(route.pathname.indexOf(PLACE_ORDER_PATH) > -1)\r\n  });\r\n  const hasUseOffline = (PosInitData('IsOfflineCash') === \"1\") && !platform.otherOfflineStatus; //是否允许离线\r\n  const menuProps = {onClick};\r\n  const menus = (\r\n    <Menu {...menuProps}>\r\n      {menu.map((item, i) =>\r\n        <Item key={item.key || i}>\r\n          {item.icon && <Ticon icon={item.icon}/>}\r\n          <span>{item.title}</span>\r\n        </Item>)\r\n      }\r\n    </Menu>\r\n  );\r\n\r\n  const controlConfig = [\r\n    {type: 'suoxiao', event: 'min'},\r\n    {\r\n      type: 'guanbixiao',\r\n      event: 'close',\r\n      beforeEvent: (item) => {\r\n        return ModalWraper.confirm({\r\n          className: 'tplus-confirm-modal',\r\n          title: '关闭提示',\r\n          content: '您确定要关闭应用吗?',\r\n          async onOk() {\r\n            Loading.show({\r\n              className: 'close-app-loading',\r\n              node: <div className='close-app-spin'>\r\n                <Spin scale={1.2} type='shape' visible/>\r\n                <h1>应用关闭中...</h1>\r\n              </div>,\r\n              delay: false\r\n            });\r\n            context.actionHook.actionChange('close-app');\r\n            try {\r\n              await User.logout(() => {\r\n                setTimeout(() => {\r\n                  nativeMs.doWindow(item.event);\r\n                }, 500); // 需要为500ms 时间短可能会不能正常注销清理\r\n              });\r\n            } catch (err) {\r\n              User.clear();\r\n              localStore.remove('user');\r\n              setTimeout(() => {\r\n                nativeMs.doWindow(item.event);\r\n              }, 500);\r\n            }\r\n          }\r\n        });\r\n      }\r\n    },\r\n  ];\r\n\r\n  const splitUser = (value) => {\r\n    const regEmail = new RegExp('^[A-Za-zd0-9]+([-_.][A-Za-zd0-9]+)*@([A-Za-zd0-9]+[-.])+[A-Za-zd]{2,5}$');\r\n    const isEmail = regEmail.test(value);\r\n\r\n    if (isEmail) {\r\n      return value.split('@')[0];\r\n    }\r\n    return value;\r\n  }\r\n\r\n  const setInventoryFocus = () => {\r\n    const { isHorizontalPad } = platform || {};\r\n    if (!!isHorizontalPad) return;\r\n    let doms = document.getElementsByClassName('app hot-key-focus-container');\r\n    let input = document.getElementById('productPoint');\r\n    if (input) setTimeout(() => { if (doms && doms.length > 0) { console.log('headContent--商品焦点==Focus==');input.focus() } }, 300)\r\n  }\r\n\r\n  const clickTheme = (isShow) => {\r\n    setThemeVisible(isShow)\r\n  }\r\n\r\n  const userName = PosInitData('UserName');\r\n  const overlayClassName = `_portal-header-dropdown ${!isPortal ? 'inside-header' : ''}`;\r\n  const moreInfoNode = <div className='pos-more-info-container'>\r\n    <h1 className='business-name'>{businessName}</h1>\r\n    <h1 className='store-code'>{posCode}</h1>\r\n  </div>\r\n\r\n  const headControlNode = <div className=\"head-content-control\">\r\n    {controlConfig.map(v => <Ticon\r\n      type={v.type}\r\n      key={v.type}\r\n      onClick={() => {\r\n        if (nativeMs) {\r\n          const {beforeEvent} = v;\r\n          if (beforeEvent) {\r\n            return beforeEvent(v);\r\n          }\r\n          nativeMs.doWindow(v.event)\r\n          if (typeof setInventoryFocus == 'function') {\r\n            setInventoryFocus()\r\n          }\r\n        }\r\n      }}\r\n    />)}\r\n  </div>\r\n\r\n  if (platform.isVerticalTouch) return verticalHeadContent({ style, releaseVersion, releaseDate,\r\n    time, dateFormat, logo, HeadTime, headControlNode, location, history, clickTheme, themeVisible, isPortal, isLogin });\r\n\r\n  return (<div style={{display: 'inline-block', width: '100%', height: '100%', ...style}} className='head-content' data-release={`${releaseVersion} ${releaseDate}`}>\r\n    <div className=\"head-content-left\">\r\n      {!!logo && <div className='business-logo' onClick={()=>{history.replace('/')}}>{logo}</div>}\r\n      {!!storeName && <Tooltip trigger=\"click\" placement=\"bottomRight\" title={moreInfoNode} color={'#fff'} overlayClassName='head-business-tip'>\r\n        <div className='store-name'>{storeName}<i className='header-triangle-down' /></div>\r\n       </Tooltip>}\r\n      {/* <OnLineStatus networkStatus={networkStatus}/> */}\r\n      <OnLineStatusToggle isShowUploadBtnsByRouter={isShowUploadBtnsByRouter} isResetNetWorkTheme={isResetNetWorkTheme} isOfflineCash={hasUseOffline} isPlaceOrderPage={isPlaceOrderPage}/>\r\n      {hasUseOffline && isShowUploadBtnsByRouter && <RetailUpload />}\r\n      {hasUseOffline && isShowUploadBtnsByRouter && <RetailDownload />}\r\n    </div>\r\n    {isElectron && headControlNode}\r\n    <div className=\"head-content-right\">\r\n      {!isLogin && <Ticon icon=\"huanfu\" className={`theme-icon ${!isPortal ? 'pos-page' : ''}` } onClick={() => {clickTheme(true)}}/>}\r\n      {!isLogin && !!userName && <Dropdown\r\n        overlayClassName={overlayClassName}\r\n        trigger={['click']}\r\n        overlay={menus}\r\n        placement=\"bottomRight\"\r\n        arrow\r\n      >\r\n        <div className='header-info-render-content' onClick={e => e.preventDefault()}>\r\n          <div className='store-info-item'>\r\n            <p className='biller'>开单员:<span>{splitUser(userName)}</span></p>\r\n          </div>\r\n          <i className='header-triangle-down'/>\r\n        </div>\r\n      </Dropdown>}\r\n      {!isLogin && <div className='store-info-item'>{solt}</div>}\r\n      <HeadTime time={time} dateFormat={dateFormat}/>\r\n    </div>\r\n    <ThemeModal\r\n        visible={themeVisible}\r\n        isVertical={platform.isVerticalTouch}\r\n        isPortal={isPortal}\r\n        closeFn={(isShow) => clickTheme(isShow)}\r\n    />\r\n  </div>);\r\n}\r\n\r\nHeadContent.contextTypes = {\r\n  actionHook: PropTypes.object,\r\n}\r\n"]}
         
     |