tplus-portaltouch 3.17.25 → 3.17.29
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.
| 
         @@ -66,6 +66,7 @@ var defaultFromat = 'yyyy-MM-dd hh:mm:ss'; 
     | 
|
| 
       66 
66 
     | 
    
         
             
            var t = _mutantsMicrofx.i18n.getFixedT(null, 'newretail');
         
     | 
| 
       67 
67 
     | 
    
         
             
            var UPLOAD_BASE_PATH = '/login';
         
     | 
| 
       68 
68 
     | 
    
         
             
            var NETWORK_THEME_PATH = "/";
         
     | 
| 
      
 69 
     | 
    
         
            +
            var PLACE_ORDER_PATH = "/RE/RE01";
         
     | 
| 
       69 
70 
     | 
    
         
             
            var weakRemindNum = 0; // 弱网提示初始值
         
     | 
| 
       70 
71 
     | 
    
         
             
            var WEAK_STANDARD_NUM = 3; // 弱网提示的次数上限
         
     | 
| 
       71 
72 
     | 
    
         
             
            var isRetailDownloading = false; // 零售单是否正在下载
         
     | 
| 
         @@ -175,9 +176,11 @@ function getIsOffNetWork() { 
     | 
|
| 
       175 
176 
     | 
    
         
             
            var OnLineStatusToggle = (0, _mobxReact.observer)(function (props) {
         
     | 
| 
       176 
177 
     | 
    
         
             
              var isShowUploadBtnsByRouter = props.isShowUploadBtnsByRouter,
         
     | 
| 
       177 
178 
     | 
    
         
             
                  isResetNetWorkTheme = props.isResetNetWorkTheme,
         
     | 
| 
       178 
     | 
    
         
            -
                  isOfflineCash = props.isOfflineCash 
     | 
| 
      
 179 
     | 
    
         
            +
                  isOfflineCash = props.isOfflineCash,
         
     | 
| 
      
 180 
     | 
    
         
            +
                  isPlaceOrderPage = props.isPlaceOrderPage;
         
     | 
| 
       179 
181 
     | 
    
         
             
              var networkCheckStore = _mutantsMicrofx.stores.networkCheckStore,
         
     | 
| 
       180 
     | 
    
         
            -
                  offlineSys = _mutantsMicrofx.stores.offlineSys 
     | 
| 
      
 182 
     | 
    
         
            +
                  offlineSys = _mutantsMicrofx.stores.offlineSys,
         
     | 
| 
      
 183 
     | 
    
         
            +
                  voucherStore = _mutantsMicrofx.stores.voucherStore;
         
     | 
| 
       181 
184 
     | 
    
         | 
| 
       182 
185 
     | 
    
         
             
              var networkState = networkCheckStore.networkState;
         
     | 
| 
       183 
186 
     | 
    
         
             
              var isOnLine = networkCheckStore.isOnLine;
         
     | 
| 
         @@ -201,7 +204,7 @@ var OnLineStatusToggle = (0, _mobxReact.observer)(function (props) { 
     | 
|
| 
       201 
204 
     | 
    
         
             
                    title: t('提示'),
         
     | 
| 
       202 
205 
     | 
    
         
             
                    content: t('网络已断,是否切换到离线收银模式?'),
         
     | 
| 
       203 
206 
     | 
    
         
             
                    onOk: function onOk() {
         
     | 
| 
       204 
     | 
    
         
            -
                       
     | 
| 
      
 207 
     | 
    
         
            +
                      setOffLine(true);
         
     | 
| 
       205 
208 
     | 
    
         
             
                    }
         
     | 
| 
       206 
209 
     | 
    
         
             
                  });
         
     | 
| 
       207 
210 
     | 
    
         
             
                }
         
     | 
| 
         @@ -211,7 +214,7 @@ var OnLineStatusToggle = (0, _mobxReact.observer)(function (props) { 
     | 
|
| 
       211 
214 
     | 
    
         
             
                    title: t('提示'),
         
     | 
| 
       212 
215 
     | 
    
         
             
                    content: t('当前网络不好,是否切换到离线?'),
         
     | 
| 
       213 
216 
     | 
    
         
             
                    onOk: function onOk() {
         
     | 
| 
       214 
     | 
    
         
            -
                      setOffLine();
         
     | 
| 
      
 217 
     | 
    
         
            +
                      setOffLine(true);
         
     | 
| 
       215 
218 
     | 
    
         
             
                    }
         
     | 
| 
       216 
219 
     | 
    
         
             
                  });
         
     | 
| 
       217 
220 
     | 
    
         
             
                }
         
     | 
| 
         @@ -226,19 +229,34 @@ var OnLineStatusToggle = (0, _mobxReact.observer)(function (props) { 
     | 
|
| 
       226 
229 
     | 
    
         
             
                  title: t('提示'),
         
     | 
| 
       227 
230 
     | 
    
         
             
                  content: t('\u786E\u5B9A\u8981\u5207\u6362\u4E3A' + (isOnLine ? '离' : '在') + '\u7EBF\u73AF\u5883\u5417\uFF1F'),
         
     | 
| 
       228 
231 
     | 
    
         
             
                  onOk: function onOk() {
         
     | 
| 
       229 
     | 
    
         
            -
                     
     | 
| 
       230 
     | 
    
         
            -
                      setOffLine();
         
     | 
| 
       231 
     | 
    
         
            -
                      return;
         
     | 
| 
       232 
     | 
    
         
            -
                    }
         
     | 
| 
       233 
     | 
    
         
            -
                    offlineSys.setIsOffline(isOnLine);
         
     | 
| 
      
 232 
     | 
    
         
            +
                    setOffLine(isOnLine);
         
     | 
| 
       234 
233 
     | 
    
         
             
                  }
         
     | 
| 
       235 
234 
     | 
    
         
             
                });
         
     | 
| 
       236 
235 
     | 
    
         
             
              }
         
     | 
| 
       237 
     | 
    
         
            -
              function setOffLine() {
         
     | 
| 
       238 
     | 
    
         
            -
                if ( 
     | 
| 
       239 
     | 
    
         
            -
                   
     | 
| 
      
 236 
     | 
    
         
            +
              function setOffLine(status) {
         
     | 
| 
      
 237 
     | 
    
         
            +
                if (isPlaceOrderPage) {
         
     | 
| 
      
 238 
     | 
    
         
            +
                  _tplusComponentsTouch.ModalWraper.confirm({
         
     | 
| 
      
 239 
     | 
    
         
            +
                    title: t('提示'),
         
     | 
| 
      
 240 
     | 
    
         
            +
                    content: t('\u5F53\u524D\u4E3A\u5F00\u5355\u754C\u9762\uFF0C\u5207\u6362\u5230' + (status ? '离' : '在') + '\u7EBF\u4F1A\u6E05\u9664\u5F53\u524D\u6570\u636E\uFF0C\u786E\u5B9A\u8981\u5207\u6362\u5417\uFF1F'),
         
     | 
| 
      
 241 
     | 
    
         
            +
                    onOk: function onOk() {
         
     | 
| 
      
 242 
     | 
    
         
            +
                      playStatus(status);
         
     | 
| 
      
 243 
     | 
    
         
            +
                    }
         
     | 
| 
      
 244 
     | 
    
         
            +
                  });
         
     | 
| 
       240 
245 
     | 
    
         
             
                } else {
         
     | 
| 
       241 
     | 
    
         
            -
                   
     | 
| 
      
 246 
     | 
    
         
            +
                  playStatus(status);
         
     | 
| 
      
 247 
     | 
    
         
            +
                }
         
     | 
| 
      
 248 
     | 
    
         
            +
              }
         
     | 
| 
      
 249 
     | 
    
         
            +
              function playStatus(status) {
         
     | 
| 
      
 250 
     | 
    
         
            +
                // status 为 true 是在线切离线
         
     | 
| 
      
 251 
     | 
    
         
            +
                if (status) {
         
     | 
| 
      
 252 
     | 
    
         
            +
                  if (!offlineSys.getDataIsOffline() || isRetailDownloading) {
         
     | 
| 
      
 253 
     | 
    
         
            +
                    _tplusComponentsTouch.Message.tip('数据还未下载完,无法切换为离线');
         
     | 
| 
      
 254 
     | 
    
         
            +
                    return;
         
     | 
| 
      
 255 
     | 
    
         
            +
                  }
         
     | 
| 
      
 256 
     | 
    
         
            +
                }
         
     | 
| 
      
 257 
     | 
    
         
            +
                offlineSys.setIsOffline(status);
         
     | 
| 
      
 258 
     | 
    
         
            +
                if (isPlaceOrderPage) {
         
     | 
| 
      
 259 
     | 
    
         
            +
                  voucherStore.clearVoucherData();
         
     | 
| 
       242 
260 
     | 
    
         
             
                }
         
     | 
| 
       243 
261 
     | 
    
         
             
              }
         
     | 
| 
       244 
262 
     | 
    
         
             
              return _react2.default.createElement(
         
     | 
| 
         @@ -592,9 +610,15 @@ function HeadContent(props, context) { 
     | 
|
| 
       592 
610 
     | 
    
         
             
                  isResetNetWorkTheme = _useState16[0],
         
     | 
| 
       593 
611 
     | 
    
         
             
                  setIsResetNetWorkTheme = _useState16[1];
         
     | 
| 
       594 
612 
     | 
    
         | 
| 
      
 613 
     | 
    
         
            +
              var _useState17 = (0, _react.useState)(window.location.href.indexOf(PLACE_ORDER_PATH) > 0),
         
     | 
| 
      
 614 
     | 
    
         
            +
                  _useState18 = (0, _slicedToArray3.default)(_useState17, 2),
         
     | 
| 
      
 615 
     | 
    
         
            +
                  isPlaceOrderPage = _useState18[0],
         
     | 
| 
      
 616 
     | 
    
         
            +
                  setIsPlaceOrderPage = _useState18[1];
         
     | 
| 
      
 617 
     | 
    
         
            +
             
     | 
| 
       595 
618 
     | 
    
         
             
              props.history.listen(function (route) {
         
     | 
| 
       596 
619 
     | 
    
         
             
                setIsResetNetWorkTheme(route.pathname === NETWORK_THEME_PATH);
         
     | 
| 
       597 
620 
     | 
    
         
             
                setIsShowUploadBtnsByRouter(route.pathname.indexOf(UPLOAD_BASE_PATH) < 0);
         
     | 
| 
      
 621 
     | 
    
         
            +
                setIsPlaceOrderPage(route.pathname.indexOf(PLACE_ORDER_PATH) > -1);
         
     | 
| 
       598 
622 
     | 
    
         
             
              });
         
     | 
| 
       599 
623 
     | 
    
         
             
              var isOfflineCash = (0, _tplusPoslogin.PosInitData)('IsOfflineCash') === "1";
         
     | 
| 
       600 
624 
     | 
    
         
             
              var menuProps = { onClick: onClick };
         
     | 
| 
         @@ -775,7 +799,7 @@ function HeadContent(props, context) { 
     | 
|
| 
       775 
799 
     | 
    
         
             
                      _react2.default.createElement('i', { className: 'header-triangle-down' })
         
     | 
| 
       776 
800 
     | 
    
         
             
                    )
         
     | 
| 
       777 
801 
     | 
    
         
             
                  ),
         
     | 
| 
       778 
     | 
    
         
            -
                  _react2.default.createElement(OnLineStatusToggle, { isShowUploadBtnsByRouter: isShowUploadBtnsByRouter, isResetNetWorkTheme: isResetNetWorkTheme, isOfflineCash: isOfflineCash }),
         
     | 
| 
      
 802 
     | 
    
         
            +
                  _react2.default.createElement(OnLineStatusToggle, { isShowUploadBtnsByRouter: isShowUploadBtnsByRouter, isResetNetWorkTheme: isResetNetWorkTheme, isOfflineCash: isOfflineCash, isPlaceOrderPage: isPlaceOrderPage }),
         
     | 
| 
       779 
803 
     | 
    
         
             
                  isOfflineCash && isShowUploadBtnsByRouter && _react2.default.createElement(RetailUpload, null),
         
     | 
| 
       780 
804 
     | 
    
         
             
                  isOfflineCash && isShowUploadBtnsByRouter && _react2.default.createElement(RetailDownload, null)
         
     | 
| 
       781 
805 
     | 
    
         
             
                ),
         
     | 
| 
         @@ -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","weakRemindNum","WEAK_STANDARD_NUM","isRetailDownloading","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","offlineSys","isOnLine","ModalWraper","confirm","title","content","onOk","setIsOffline","getDataIsOffline","setOffLine","switchStatus","Message","tip","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","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","document","getElementsByClassName","input","getElementById","length","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\nlet weakRemindNum = 0;// 弱网提示初始值\r\nconst WEAK_STANDARD_NUM = 3; // 弱网提示的次数上限\r\nlet isRetailDownloading = false; // 零售单是否正在下载\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 } = props;\r\n  const { networkCheckStore , offlineSys } = stores;\r\n  const networkState = networkCheckStore.networkState;\r\n  let isOnLine = networkCheckStore.isOnLine;\r\n  let iconName = 'WiFi';\r\n  if (isOfflineCash) {\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          offlineSys.setIsOffline(true);\r\n        }\r\n      });\r\n    }\r\n    if (isOnLine && networkState === '弱网' && weakRemindNum <= WEAK_STANDARD_NUM && offlineSys.getDataIsOffline()) {\r\n      weakRemindNum ++;\r\n      ModalWraper.confirm({\r\n        title: t('提示'),\r\n        content: t('当前网络不好,是否切换到离线?'),\r\n        onOk: () => {\r\n          setOffLine();\r\n        }\r\n      });\r\n    }\r\n  }\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          if (isOnLine) {\r\n            setOffLine();\r\n            return;\r\n          }\r\n          offlineSys.setIsOffline(isOnLine);\r\n        }\r\n    });\r\n  }\r\n  function setOffLine() {\r\n    if (offlineSys.getDataIsOffline() && !isRetailDownloading) {\r\n      offlineSys.setIsOffline(true);\r\n    } else {\r\n      Message.tip('数据还未下载完,无法切换为离线');\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      { isOfflineCash && 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    </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    isRetailDownloading = 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    isRetailDownloading = 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  props.history.listen(route => {\r\n    setIsResetNetWorkTheme(route.pathname === NETWORK_THEME_PATH);\r\n    setIsShowUploadBtnsByRouter(route.pathname.indexOf(UPLOAD_BASE_PATH) < 0);\r\n  });\r\n  const isOfflineCash = PosInitData('IsOfflineCash') === \"1\";\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={isOfflineCash}/>\r\n      {isOfflineCash && isShowUploadBtnsByRouter && <RetailUpload/>}\r\n      {isOfflineCash && 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","isRetailDownloading","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","ModalWraper","confirm","title","content","onOk","setOffLine","getDataIsOffline","switchStatus","Message","tip","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","document","getElementsByClassName","input","getElementById","length","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\nlet isRetailDownloading = false; // 零售单是否正在下载\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  let iconName = 'WiFi';\r\n  if (isOfflineCash) {\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    if (isOnLine && networkState === '弱网' && weakRemindNum <= WEAK_STANDARD_NUM && offlineSys.getDataIsOffline()) {\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  }\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  function setOffLine(status) {\r\n    if (isPlaceOrderPage) {\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  function playStatus(status) {\r\n    // status 为 true 是在线切离线\r\n    if (status) {\r\n      if (!offlineSys.getDataIsOffline() || 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      { isOfflineCash && 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    </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    isRetailDownloading = 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    isRetailDownloading = 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 isOfflineCash = PosInitData('IsOfflineCash') === \"1\";\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={isOfflineCash} isPlaceOrderPage={isPlaceOrderPage}/>\r\n      {isOfflineCash && isShowUploadBtnsByRouter && <RetailUpload/>}\r\n      {isOfflineCash && 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"]}
         
     | 
| 
         @@ -209,7 +209,7 @@ var MainContainer = (0, _mobxReact.observer)(_class = (_temp = _class2 = functio 
     | 
|
| 
       209 
209 
     | 
    
         | 
| 
       210 
210 
     | 
    
         
             
                  var bcParams = isNewRetailBCPos ? '-bc' : '';
         
     | 
| 
       211 
211 
     | 
    
         
             
                  var theme = _mutantsMicrofx.stores.portalStore.themeStore;
         
     | 
| 
       212 
     | 
    
         
            -
                  var defualtImage = isVerticalTouch === true ? 'https://newretail.static.chanjet.com/tinified/logo' + bcParams + '.png' : 'https://newretail.static.chanjet.com/' + (!hsy_s && isPortal || theme === 'dark' && !isLogin ? 'protal-chanjet' : 'chanjet') + '-logo' + bcParams + '.png';
         
     | 
| 
      
 212 
     | 
    
         
            +
                  var defualtImage = isVerticalTouch === true ? 'https://newretail.static.chanjet.com/tinified/logo' + bcParams + '.png' : 'https://newretail.static.chanjet.com/' + (!hsy_s && isPortal || theme === 'dark' && !isLogin ? 'protal-chanjet' : 'chanjet') + '-logo' + bcParams + '.png?v=1';
         
     | 
| 
       213 
213 
     | 
    
         
             
                  if (hsy_s === true) {
         
     | 
| 
       214 
214 
     | 
    
         
             
                    return _react2.default.createElement(
         
     | 
| 
       215 
215 
     | 
    
         
             
                      'div',
         
     | 
| 
         @@ -610,6 +610,10 @@ var MainContainer = (0, _mobxReact.observer)(_class = (_temp = _class2 = functio 
     | 
|
| 
       610 
610 
     | 
    
         
             
                  if (!_mutantsMicrofx.stores.posLoginStore.posIsLogin && !~pathname.indexOf('login')) {
         
     | 
| 
       611 
611 
     | 
    
         
             
                    _mutantsMicrofx.stores.modalRouter.hideAll && _mutantsMicrofx.stores.modalRouter.hideAll();
         
     | 
| 
       612 
612 
     | 
    
         
             
                    return _react2.default.createElement(_reactRouter.Redirect, { to: '/login' });
         
     | 
| 
      
 613 
     | 
    
         
            +
                  } else {
         
     | 
| 
      
 614 
     | 
    
         
            +
             
     | 
| 
      
 615 
     | 
    
         
            +
                    // 如果刷新页面进来已经是登录状态 则直接初始化本地数据库及离线相关
         
     | 
| 
      
 616 
     | 
    
         
            +
                    _mutantsMicrofx.stores.offlineSys.initOfflineLocal(true);
         
     | 
| 
       613 
617 
     | 
    
         
             
                  }
         
     | 
| 
       614 
618 
     | 
    
         
             
                  var classNames = ['isPortal-layout', 'isRetailOrder-layout'];
         
     | 
| 
       615 
619 
     | 
    
         
             
                  var layoutClassName = [isPortal, isRetailOrder].map(function (v, i) {
         
     | 
| 
         @@ -1 +1 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            {"version":3,"sources":["tplus-portaltouch/containers/Main/index.js"],"names":["Main","hasElectron","env","platform","constant","electron","window","rx$","MainContainer","observer","props","currentFocus","initWebFrameZoom","webFrame","value","localStore","get","setZoomFactor","parseFloat","doDeeplinkingUrl","ipcRenderer","on","event","ret","params","console","log","orgId","userId","param","split","reduce","accumulator","current","key","cloudUserId","User","logout","changeLogoSubject","subject","Subject","changeLogo","subscribe","next","v","setLogo","changeHsySubject","changeHsy","setHsy","addHotKeyChangeLister","document","addEventListener","registerHotKey","removeHotKeyChangeLister","removeEventListener","back","fn","setState","hsy_s","hsy_f","store","logoUrl","logo","logoNode","url","isPortal","isLogin","state","isVerticalTouch","isNewRetailBCPos","bcParams","theme","stores","portalStore","themeStore","defualtImage","hotKeyInjectOrEject","type","hotKeyAction","registerKeys","allKeys","hotKey","hotKeyConfig","forEach","keyboard","index","nativeMs","onIpcRendererGlobalShortcut","hotKeyActionHandle","blurButton","target","nodeName","blur","isSetHotKey","hotKeyCreate","observerCallback","observerDom","pressed","clickBefore","activeElement","filter","srcElement","tagName","className","indexOf","undefined","attributes","childList","subtree","attributeFilter","register","operationKeys","esc","enter","visibleModal","modals","querySelectorAll","modal","display","style","visibleDrawer","drawers","drawer","$","clearFocus","setFocus","getFocusId","querySelector","find","handle","toggleKeyCode","message","bind","keys","i","unbind","Message","info","action","handleInfoRender","solt","onCollapse","collapsed","menuOnClick","selectedKeys","handleClose","Keyboard","close","handleOk","count","modifyPassStore","modifyPassWord","headMenuSelect","footer","text","closable","length","map","btn","loading","modalRouter","hide","offlineSys","shouldInOffline","show","title","width","modalType","onHide","destroyOnClose","history","push","portalStores","posLoginStore","savePosCode","isAutoTest","location","search","isShowFourTab","screen","isHorizontalPad","storeUtil","isHorizontalSunMi","isHorizontalSunMi_FuPing","isMobileEnvironment","infoRender","headHook","addClass","id","removeClass","currentId","actionHook","actionFrom","actionChange","body","classList","add","ModalWraper","confirm","content","cancelable","onOk","onCancel","unsubscribe","portalHead","loginHead","retailOrder","pathname","storeInfo","user","options","isRetailOrder","headProps","businessName","storeName","dateFormat","menu","icon","onClick","orgName","posCode","posIsLogin","hideAll","classNames","layoutClassName","join","height","match","isExact","routes","Component","childContextTypes","PropTypes","func","object","React","cloneElement"],"mappings":"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","file":"index.js","sourcesContent":["import React, { Component } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { observer } from 'mobx-react';\r\nimport { Button } from 'antd';\r\nimport { history, Switch, stores, env, nativeMs, localStore } from 'mutants-microfx';\r\nimport { Ticon, Layout, Keyboard, ModalWraper, Message, hotKey } from 'tplus-components-touch';\r\nimport { platform, localStore as storeUtil } from 'mutants-util';\r\nimport { User } from 'tplus-api';\r\nimport { Subject } from 'rxjs';\r\nimport { Redirect } from 'react-router';\r\nimport Header from '../../components/header';\r\nimport PortalPage from '../../pages/Portal';\r\nimport PortalPageBC from '../../pages/Portalbc';\r\nimport portalStores from '../../stores';\r\nimport { closeWebPage, getQueryString, operationKeys } from '../../utils/index';\r\n\r\nconst hasElectron = (env.platform === env.constant.platform.electron);\r\nwindow.rx$ = {};\r\n\r\n@observer\r\nclass MainContainer extends Component {\r\n  currentFocus = null;\r\n  constructor(props) {\r\n    super(props);\r\n    this.hasElectron = hasElectron;\r\n    this.state = {\r\n      hsy_s: false,\r\n      hsy_f: null\r\n    };\r\n    portalStores.posLoginStore.savePosCode();\r\n    this.electron = nativeMs && nativeMs.get('electron');\r\n    this.isAutoTest = getQueryString(location.search, 'at');\r\n    this.isShowFourTab = this.hasElectron && window.screen.width < 1024 ? true : false;\r\n    //针对800*600分辨率下,页面显示不全的做一下处理。\r\n    if (this.isShowFourTab == true) this.initWebFrameZoom();\r\n\r\n    const isHorizontalPad =  storeUtil.get('isHorizontalPad')// 是否在PAD\r\n    const isHorizontalSunMi = storeUtil.get('isHorizontalSunMi'); //是否在商米(SunMi)\r\n    const isHorizontalSunMi_FuPing = storeUtil.get('isHorizontalSunMi_FuPing'); //是否在商米(SunMi)\r\n\r\n    this.isHorizontalSunMi_FuPing = !!isHorizontalSunMi_FuPing;\r\n    this.isMobileEnvironment = !!isHorizontalPad || !!isHorizontalSunMi || !!isHorizontalSunMi_FuPing;\r\n  }\r\n  static childContextTypes = {\r\n    infoRender: PropTypes.func,\r\n    headHook: PropTypes.object,\r\n    actionHook: PropTypes.object,\r\n  }\r\n\r\n  initWebFrameZoom = () => {\r\n    let webFrame = this.electron ? this.electron.webFrame : null;\r\n    let value = localStore.get('webFrameZoomValue') || '0.7';\r\n    if (webFrame) webFrame.setZoomFactor(parseFloat(value));\r\n  }\r\n  getChildContext() {\r\n    return {\r\n      infoRender: this.handleInfoRender,\r\n      headHook: {\r\n        addClass: (id, key) => {\r\n          this.setState(state => ({\r\n            [key]: [...(state[key] || []), id],\r\n          }));\r\n        },\r\n        removeClass: (id, key) => {\r\n          this.setState(state => ({\r\n            [key]: state[key].filter(currentId => currentId !== id),\r\n          }));\r\n        }\r\n      },\r\n      actionHook: {\r\n        actionFrom: this.actionFrom,\r\n        actionChange: (value) => {\r\n          this.actionFrom = value;\r\n        }\r\n      },\r\n    };\r\n  }\r\n\r\n  // 内置默认\r\n  // keys = ['esc', 'enter', 'ctrl+f1', ...Object.keys(hotKey.hotKeyConfig)];\r\n\r\n  // 解决从url地址唤醒exe,不同账号的处理问题。\r\n  doDeeplinkingUrl = () => {\r\n    if (this.hasElectron === false) return;\r\n    let { ipcRenderer } = this.electron || {ipcRenderer:null};\r\n    ipcRenderer && ipcRenderer.on(\"asynchronous-deeplinkingUrl\", (event, ret, params) => {\r\n      if (ret) {\r\n        console.log('deeplinkingUrl:' + ret)\r\n        const {orgId, userId} = localStore.get('user') || {};\r\n        if (!orgId || !userId) return;\r\n        const param = ret.split('&').reduce((accumulator, current) => {\r\n          if (!current) return accumulator;\r\n          const [key, value] = current.split('=') || [];\r\n          accumulator[key] = value;\r\n          return accumulator;\r\n        }, {});\r\n        console.log(orgId, userId, param)\r\n        if (param.orgId !== orgId || param.cloudUserId !== userId) {\r\n          User.logout();\r\n        }\r\n      }\r\n    })\r\n  }\r\n\r\n  componentWillMount() {\r\n    this.changeLogoSubject();\r\n    this.changeHsySubject();\r\n    const { isVerticalTouch } = platform || {};\r\n    if (isVerticalTouch === true) {\r\n      document.body.classList.add('vertical-touch-platform');\r\n    }\r\n  }\r\n\r\n  changeLogoSubject = () => {\r\n    const subject = new Subject();\r\n    rx$.changeLogo = subject;\r\n\r\n    subject\r\n      .subscribe({\r\n        next: (v) => this.setLogo(v)\r\n      });\r\n  }\r\n\r\n  changeHsySubject = () => {\r\n    const subject = new Subject();\r\n    rx$.changeHsy = subject;\r\n\r\n    subject\r\n      .subscribe({\r\n        next: (v) => this.setHsy(v)\r\n      });\r\n  }\r\n\r\n  componentDidMount() {\r\n    this.registerHotKey();\r\n    this.addHotKeyChangeLister();\r\n    rx$.changeLogo.next();\r\n    document.body.addEventListener('focus', this.blurButton, true)\r\n    this.doDeeplinkingUrl();\r\n\r\n    if (this.hasElectron === true) {\r\n      document.body.classList.add('electron-env');\r\n    } else {\r\n      if (this.isAutoTest || this.isMobileEnvironment) return; //自动化测试不弹窗\r\n      ModalWraper.confirm({\r\n        className: 'tplus-confirm-modal',\r\n        title: \"温馨提示\",\r\n        content: 'T+新零售POS端不允许浏览器直接访问,请从T+产品中下载安装客户端程序使用!',\r\n        cancelable:false,\r\n        onOk() {\r\n          closeWebPage();\r\n        },\r\n        onCancel(){\r\n          closeWebPage();\r\n        }\r\n      });\r\n    }\r\n  }\r\n  addHotKeyChangeLister = () => {\r\n    document.addEventListener(\"RESET_USER_STORE\",this.registerHotKey);\r\n  }\r\n  removeHotKeyChangeLister = () => {\r\n    document.removeEventListener(\"RESET_USER_STORE\",this.registerHotKey);\r\n  }\r\n\r\n  componentWillUnmount() {\r\n    rx$.changeLogo.unsubscribe();\r\n    rx$.changeHsy.unsubscribe();\r\n    document.body.removeEventListener('focus', this.blurButton, true)\r\n    // clearInterval(this.addObserverDomTimer);\r\n  }\r\n\r\n  setHsy = (v) => {\r\n    const { back, fn } = v || {};\r\n    if (back === true) {\r\n      this.setState({ hsy_s: true, hsy_f: fn })\r\n    } else {\r\n      this.setState({ hsy_s: false, hsy_f: null })\r\n    }\r\n  }\r\n\r\n  setLogo = (v) => {\r\n    const store = localStore.get('StoreKey') || {};\r\n    const { logo: logoUrl } = store;\r\n    logoUrl && this.setState({ logoUrl });\r\n  }\r\n\r\n  logoNode = (url, isPortal, isLogin) => {\r\n    const { hsy_s, hsy_f } = this.state;\r\n    const { isVerticalTouch, isNewRetailBCPos } = platform || {};\r\n    const bcParams = isNewRetailBCPos ? '-bc' : '';\r\n    const theme = stores.portalStore.themeStore;\r\n    const defualtImage = (isVerticalTouch === true) ? `https://newretail.static.chanjet.com/tinified/logo${bcParams}.png` : `https://newretail.static.chanjet.com/${((!hsy_s && isPortal) || (theme === 'dark' && !isLogin)) ? 'protal-chanjet' : 'chanjet'}-logo${bcParams}.png`;\r\n    if (hsy_s === true) {\r\n      return (<div className='business-logo-container'>\r\n        <Ticon type='zhiPOS-fanhuishouye2' className='back_i' onClick={() => { hsy_f && hsy_f() }} />\r\n        <img src={url || defualtImage} className=\"example-logo\" />\r\n      </div>);\r\n    }\r\n    return <img src={url || defualtImage} className=\"example-logo\" />\r\n  }\r\n\r\n  //未使用?\r\n  hotKeyInjectOrEject = (type, hotKeyAction) => {\r\n    const registerKeys = ['esc', 'enter'];\r\n    const allKeys = [...registerKeys, ...Object.keys(hotKey.hotKeyConfig)];\r\n    allKeys.forEach((keyboard, index) => {\r\n      nativeMs.onIpcRendererGlobalShortcut({ type, keyboard }, hotKeyActionHandle);\r\n    });\r\n  }\r\n\r\n  blurButton = ({ target }) => { //  焦点为 button 时 移除焦点,防止触发 bee 组件enter快捷键\r\n    if (target && target.nodeName === 'BUTTON') {\r\n      target.blur();\r\n    }\r\n  }\r\n\r\n  registerHotKey = () => {\r\n    this.isSetHotKey = true;\r\n\r\n    this.hotKeyCreate = hotKey({\r\n      observerCallback: this.observerDom,\r\n      log: true,\r\n      pressed: this.hotKeyAction,\r\n      clickBefore: () => {\r\n        const { activeElement } = document;\r\n        activeElement && activeElement.blur();\r\n      },\r\n      filter: event => {\r\n        const { tagName, className } = event.target || event.srcElement || {};\r\n\r\n        return !(event.key === 'Enter' && tagName === 'INPUT' && !~className.indexOf('hot-key-not-filter'));\r\n      }\r\n    });\r\n\r\n    this.hotKeyCreate.observer(undefined, { attributes: true, childList: true, subtree: true ,attributeFilter: ['class', 'style'], });\r\n    this.hotKeyCreate.register('esc')('.hot-key-focus-container')(operationKeys.esc);\r\n    this.hotKeyCreate.register('enter')('.hot-key-focus-container')(operationKeys.enter);\r\n  }\r\n\r\n  observerDom = () => {\r\n      let visibleModal;\r\n      const modals = document.querySelectorAll('.ant-modal-wrap'); //ant-module\r\n      for(let modal of modals) {\r\n        const display = modal.style.display;\r\n        if(display != \"none\"){\r\n          visibleModal = modal\r\n        }\r\n      }\r\n\r\n      let visibleDrawer;\r\n      const drawers = document.querySelectorAll('.ant-drawer-open'); //ant-drawer\r\n      for(let drawer of drawers) {\r\n          visibleDrawer = drawer;\r\n          break;\r\n      }\r\n\r\n      if (visibleModal) {\r\n        if(this.currentFocus !== visibleModal){\r\n          $.clearFocus();\r\n          this.currentFocus = visibleModal\r\n          return $.setFocus(visibleModal);\r\n        }\r\n        return;\r\n      }\r\n\r\n      if (visibleDrawer) {\r\n        if(this.currentFocus !== visibleDrawer){\r\n          $.clearFocus();\r\n          this.currentFocus = visibleDrawer;\r\n          return $.setFocus(visibleDrawer);\r\n        }\r\n        return;\r\n      }\r\n\r\n\r\n      if ($.getFocusId() !== '1') {\r\n        if(this.currentFocus !== 'App' || !document.querySelector(\".hot-key-focus-container\")){\r\n          $.clearFocus();\r\n          this.currentFocus = 'App';\r\n          $.find('.app', true).setFocus();\r\n        }\r\n        return;\r\n      }\r\n  }\r\n\r\n  hotKeyAction = (event, handle) => {\r\n    const { key } = handle || {};\r\n    const toggleKeyCode = 'ctrl+f1';\r\n    if (key === toggleKeyCode) {\r\n      const isSetHotKey = this.isSetHotKey = !this.isSetHotKey;\r\n      const message = isSetHotKey ? '设置' : '取消';\r\n      if (isSetHotKey) {\r\n        $.bind(this.keys.filter(i => i !== toggleKeyCode), this.hotKeyAction);\r\n      } else {\r\n        $.unbind(this.keys.filter(i => i !== toggleKeyCode));\r\n      }\r\n      return Message.info(`已${message}快捷键`);\r\n    }\r\n\r\n    $.action(key);\r\n  }\r\n\r\n  handleInfoRender = (solt) => {\r\n    this.setState({solt})\r\n  }\r\n  onCollapse = () => {\r\n    const {collapsed} = this.state;\r\n    this.setState({collapsed: !collapsed});\r\n  }\r\n  menuOnClick = ({key}) => {\r\n    console.log(key)\r\n    this.setState({selectedKeys: key});\r\n  }\r\n\r\n  handleClose = () => {\r\n    Keyboard.close();\r\n  }\r\n\r\n  handleOk = (type, count) => {\r\n    stores.modifyPassStore.modifyPassWord();\r\n  }\r\n\r\n  headMenuSelect = ({key}) => {\r\n    var footer = [\r\n      {text: '取消', className: 'modifypass-cancal-button', closable: true, action: this.handleClose},\r\n      {text: '确定', className: 'modifypass-ok-button', action: this.handleOk, type: 'primary'}\r\n    ];\r\n    footer = !!footer.length && <div>\r\n      {footer.map((btn, i) =>\r\n        <Button\r\n          className={btn.className || ''}\r\n          key={i}\r\n          type={btn.type}\r\n          loading={btn.loading}\r\n          onClick={() => {\r\n            const {action} = btn || {};\r\n            if (typeof action === 'function') action();\r\n            if (btn.closable) {\r\n              stores.modalRouter.hide('/modifypass');\r\n            }\r\n          }}\r\n        >\r\n          {btn.text}\r\n        </Button>)}\r\n    </div>\r\n    switch (key) {\r\n      case 'logout':\r\n        User.logout();\r\n        break;\r\n      case 'modifypass':\r\n        {\r\n          if(!stores.offlineSys.shouldInOffline())  return;\r\n          stores.modalRouter.show({\r\n            url: '/modifypass',\r\n            title: '修改密码',\r\n            className: 'modify-password',\r\n            width: 402,\r\n            footer,modalType:'mid',\r\n            onHide: () => stores.modalRouter.hide('/modifypass'),\r\n            destroyOnClose: true,\r\n          });\r\n        }\r\n        break;\r\n      default:\r\n        history.push(`/${key}`);\r\n        break;\r\n    }\r\n  }\r\n  render() {\r\n    const { collapsed, selectedKeys, solt, portalHead = [], loginHead = [], retailOrder = [], logoUrl, hsy_s } = this.state;\r\n    const pathname = history.location.pathname;\r\n    const storeInfo = stores.user.options.get('store');\r\n    const isPortal = !!portalHead.length;\r\n    const isLogin = !!loginHead.length;\r\n    const isRetailOrder = !!retailOrder.length;\r\n    const { isNewRetailBCPos } = platform || {};\r\n\r\n    const headProps = {\r\n      logo: this.logoNode(logoUrl, isPortal, isLogin),\r\n      businessName: '',\r\n      storeName: '',\r\n      dateFormat: 'yyyy年MM月dd日 hh:mm:ss',\r\n      menu: [\r\n        { title: '注销', key: 'logout', icon: 'zhuxiao' },\r\n        { title: '修改密码', key: 'modifypass', icon: 'suoping' }\r\n      ],\r\n      onClick: this.headMenuSelect\r\n    };\r\n    if (storeInfo) {\r\n      headProps.businessName = storeInfo.orgName;\r\n      headProps.storeName = storeInfo.storeName;\r\n      headProps.posCode = storeInfo.posCode;\r\n    }\r\n\r\n    // 如果存在商米副屏则优先加载商米副屏\r\n    if (this.isHorizontalSunMi_FuPing) {\r\n      return <Redirect to={'/vicescreen'} />\r\n    }\r\n    console.log('!stores.posLoginStore.posIsLogin=============', !stores.posLoginStore.posIsLogin);\r\n    if (!stores.posLoginStore.posIsLogin && !~pathname.indexOf('login')) {\r\n      stores.modalRouter.hideAll && stores.modalRouter.hideAll();\r\n      return <Redirect to={'/login'} />\r\n    }\r\n    const classNames = ['isPortal-layout', 'isRetailOrder-layout'];\r\n    const layoutClassName = [isPortal, isRetailOrder].map((v, i) => (v ? classNames[i] : '')).join(' ');\r\n    return (\r\n      <Layout\r\n        style={{ height: '100%' }}\r\n        className={layoutClassName}\r\n      >\r\n        <Layout>\r\n          <Header\r\n            {...headProps}\r\n            solt={solt}\r\n            isPortal={isPortal}\r\n            className={`${(!hsy_s && isPortal) ? 'isPortal-head' : ''} ${isLogin ? 'isLogin-head' : ''}`}\r\n            isLogin={isLogin}\r\n            location={this.props.location}\r\n            history={this.props.history}\r\n          />\r\n          <Layout.Content>\r\n            {this.props.match.isExact ? (isNewRetailBCPos ? <PortalPageBC /> : <PortalPage />) : <Switch>{this.props.routes}</Switch>}\r\n          </Layout.Content>\r\n        </Layout>\r\n      </Layout>\r\n    )\r\n  }\r\n}\r\n\r\nexport default function Main(props) {\r\n  const { routes, modalRouter } = props;\r\n\r\n  if (modalRouter) {\r\n    return <Switch>{routes}</Switch>;\r\n  }\r\n\r\n  return React.cloneElement(<MainContainer />, props);\r\n}\r\n"]}
         
     | 
| 
      
 1 
     | 
    
         
            +
            {"version":3,"sources":["tplus-portaltouch/containers/Main/index.js"],"names":["Main","hasElectron","env","platform","constant","electron","window","rx$","MainContainer","observer","props","currentFocus","initWebFrameZoom","webFrame","value","localStore","get","setZoomFactor","parseFloat","doDeeplinkingUrl","ipcRenderer","on","event","ret","params","console","log","orgId","userId","param","split","reduce","accumulator","current","key","cloudUserId","User","logout","changeLogoSubject","subject","Subject","changeLogo","subscribe","next","v","setLogo","changeHsySubject","changeHsy","setHsy","addHotKeyChangeLister","document","addEventListener","registerHotKey","removeHotKeyChangeLister","removeEventListener","back","fn","setState","hsy_s","hsy_f","store","logoUrl","logo","logoNode","url","isPortal","isLogin","state","isVerticalTouch","isNewRetailBCPos","bcParams","theme","stores","portalStore","themeStore","defualtImage","hotKeyInjectOrEject","type","hotKeyAction","registerKeys","allKeys","hotKey","hotKeyConfig","forEach","keyboard","index","nativeMs","onIpcRendererGlobalShortcut","hotKeyActionHandle","blurButton","target","nodeName","blur","isSetHotKey","hotKeyCreate","observerCallback","observerDom","pressed","clickBefore","activeElement","filter","srcElement","tagName","className","indexOf","undefined","attributes","childList","subtree","attributeFilter","register","operationKeys","esc","enter","visibleModal","modals","querySelectorAll","modal","display","style","visibleDrawer","drawers","drawer","$","clearFocus","setFocus","getFocusId","querySelector","find","handle","toggleKeyCode","message","bind","keys","i","unbind","Message","info","action","handleInfoRender","solt","onCollapse","collapsed","menuOnClick","selectedKeys","handleClose","Keyboard","close","handleOk","count","modifyPassStore","modifyPassWord","headMenuSelect","footer","text","closable","length","map","btn","loading","modalRouter","hide","offlineSys","shouldInOffline","show","title","width","modalType","onHide","destroyOnClose","history","push","portalStores","posLoginStore","savePosCode","isAutoTest","location","search","isShowFourTab","screen","isHorizontalPad","storeUtil","isHorizontalSunMi","isHorizontalSunMi_FuPing","isMobileEnvironment","infoRender","headHook","addClass","id","removeClass","currentId","actionHook","actionFrom","actionChange","body","classList","add","ModalWraper","confirm","content","cancelable","onOk","onCancel","unsubscribe","portalHead","loginHead","retailOrder","pathname","storeInfo","user","options","isRetailOrder","headProps","businessName","storeName","dateFormat","menu","icon","onClick","orgName","posCode","posIsLogin","hideAll","initOfflineLocal","classNames","layoutClassName","join","height","match","isExact","routes","Component","childContextTypes","PropTypes","func","object","React","cloneElement"],"mappings":"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","file":"index.js","sourcesContent":["import React, { Component } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { observer } from 'mobx-react';\r\nimport { Button } from 'antd';\r\nimport { history, Switch, stores, env, nativeMs, localStore } from 'mutants-microfx';\r\nimport { Ticon, Layout, Keyboard, ModalWraper, Message, hotKey } from 'tplus-components-touch';\r\nimport { platform, localStore as storeUtil } from 'mutants-util';\r\nimport { User } from 'tplus-api';\r\nimport { Subject } from 'rxjs';\r\nimport { Redirect } from 'react-router';\r\nimport Header from '../../components/header';\r\nimport PortalPage from '../../pages/Portal';\r\nimport PortalPageBC from '../../pages/Portalbc';\r\nimport portalStores from '../../stores';\r\nimport { closeWebPage, getQueryString, operationKeys } from '../../utils/index';\r\n\r\nconst hasElectron = (env.platform === env.constant.platform.electron);\r\nwindow.rx$ = {};\r\n\r\n@observer\r\nclass MainContainer extends Component {\r\n  currentFocus = null;\r\n  constructor(props) {\r\n    super(props);\r\n    this.hasElectron = hasElectron;\r\n    this.state = {\r\n      hsy_s: false,\r\n      hsy_f: null\r\n    };\r\n    portalStores.posLoginStore.savePosCode();\r\n    this.electron = nativeMs && nativeMs.get('electron');\r\n    this.isAutoTest = getQueryString(location.search, 'at');\r\n    this.isShowFourTab = this.hasElectron && window.screen.width < 1024 ? true : false;\r\n    //针对800*600分辨率下,页面显示不全的做一下处理。\r\n    if (this.isShowFourTab == true) this.initWebFrameZoom();\r\n\r\n    const isHorizontalPad =  storeUtil.get('isHorizontalPad')// 是否在PAD\r\n    const isHorizontalSunMi = storeUtil.get('isHorizontalSunMi'); //是否在商米(SunMi)\r\n    const isHorizontalSunMi_FuPing = storeUtil.get('isHorizontalSunMi_FuPing'); //是否在商米(SunMi)\r\n\r\n    this.isHorizontalSunMi_FuPing = !!isHorizontalSunMi_FuPing;\r\n    this.isMobileEnvironment = !!isHorizontalPad || !!isHorizontalSunMi || !!isHorizontalSunMi_FuPing;\r\n  }\r\n  static childContextTypes = {\r\n    infoRender: PropTypes.func,\r\n    headHook: PropTypes.object,\r\n    actionHook: PropTypes.object,\r\n  }\r\n\r\n  initWebFrameZoom = () => {\r\n    let webFrame = this.electron ? this.electron.webFrame : null;\r\n    let value = localStore.get('webFrameZoomValue') || '0.7';\r\n    if (webFrame) webFrame.setZoomFactor(parseFloat(value));\r\n  }\r\n  getChildContext() {\r\n    return {\r\n      infoRender: this.handleInfoRender,\r\n      headHook: {\r\n        addClass: (id, key) => {\r\n          this.setState(state => ({\r\n            [key]: [...(state[key] || []), id],\r\n          }));\r\n        },\r\n        removeClass: (id, key) => {\r\n          this.setState(state => ({\r\n            [key]: state[key].filter(currentId => currentId !== id),\r\n          }));\r\n        }\r\n      },\r\n      actionHook: {\r\n        actionFrom: this.actionFrom,\r\n        actionChange: (value) => {\r\n          this.actionFrom = value;\r\n        }\r\n      },\r\n    };\r\n  }\r\n\r\n  // 内置默认\r\n  // keys = ['esc', 'enter', 'ctrl+f1', ...Object.keys(hotKey.hotKeyConfig)];\r\n\r\n  // 解决从url地址唤醒exe,不同账号的处理问题。\r\n  doDeeplinkingUrl = () => {\r\n    if (this.hasElectron === false) return;\r\n    let { ipcRenderer } = this.electron || {ipcRenderer:null};\r\n    ipcRenderer && ipcRenderer.on(\"asynchronous-deeplinkingUrl\", (event, ret, params) => {\r\n      if (ret) {\r\n        console.log('deeplinkingUrl:' + ret)\r\n        const {orgId, userId} = localStore.get('user') || {};\r\n        if (!orgId || !userId) return;\r\n        const param = ret.split('&').reduce((accumulator, current) => {\r\n          if (!current) return accumulator;\r\n          const [key, value] = current.split('=') || [];\r\n          accumulator[key] = value;\r\n          return accumulator;\r\n        }, {});\r\n        console.log(orgId, userId, param)\r\n        if (param.orgId !== orgId || param.cloudUserId !== userId) {\r\n          User.logout();\r\n        }\r\n      }\r\n    })\r\n  }\r\n\r\n  componentWillMount() {\r\n    this.changeLogoSubject();\r\n    this.changeHsySubject();\r\n    const { isVerticalTouch } = platform || {};\r\n    if (isVerticalTouch === true) {\r\n      document.body.classList.add('vertical-touch-platform');\r\n    }\r\n  }\r\n\r\n  changeLogoSubject = () => {\r\n    const subject = new Subject();\r\n    rx$.changeLogo = subject;\r\n\r\n    subject\r\n      .subscribe({\r\n        next: (v) => this.setLogo(v)\r\n      });\r\n  }\r\n\r\n  changeHsySubject = () => {\r\n    const subject = new Subject();\r\n    rx$.changeHsy = subject;\r\n\r\n    subject\r\n      .subscribe({\r\n        next: (v) => this.setHsy(v)\r\n      });\r\n  }\r\n\r\n  componentDidMount() {\r\n    this.registerHotKey();\r\n    this.addHotKeyChangeLister();\r\n    rx$.changeLogo.next();\r\n    document.body.addEventListener('focus', this.blurButton, true)\r\n    this.doDeeplinkingUrl();\r\n\r\n    if (this.hasElectron === true) {\r\n      document.body.classList.add('electron-env');\r\n    } else {\r\n      if (this.isAutoTest || this.isMobileEnvironment) return; //自动化测试不弹窗\r\n      ModalWraper.confirm({\r\n        className: 'tplus-confirm-modal',\r\n        title: \"温馨提示\",\r\n        content: 'T+新零售POS端不允许浏览器直接访问,请从T+产品中下载安装客户端程序使用!',\r\n        cancelable:false,\r\n        onOk() {\r\n          closeWebPage();\r\n        },\r\n        onCancel(){\r\n          closeWebPage();\r\n        }\r\n      });\r\n    }\r\n  }\r\n  addHotKeyChangeLister = () => {\r\n    document.addEventListener(\"RESET_USER_STORE\",this.registerHotKey);\r\n  }\r\n  removeHotKeyChangeLister = () => {\r\n    document.removeEventListener(\"RESET_USER_STORE\",this.registerHotKey);\r\n  }\r\n\r\n  componentWillUnmount() {\r\n    rx$.changeLogo.unsubscribe();\r\n    rx$.changeHsy.unsubscribe();\r\n    document.body.removeEventListener('focus', this.blurButton, true)\r\n    // clearInterval(this.addObserverDomTimer);\r\n  }\r\n\r\n  setHsy = (v) => {\r\n    const { back, fn } = v || {};\r\n    if (back === true) {\r\n      this.setState({ hsy_s: true, hsy_f: fn })\r\n    } else {\r\n      this.setState({ hsy_s: false, hsy_f: null })\r\n    }\r\n  }\r\n\r\n  setLogo = (v) => {\r\n    const store = localStore.get('StoreKey') || {};\r\n    const { logo: logoUrl } = store;\r\n    logoUrl && this.setState({ logoUrl });\r\n  }\r\n\r\n  logoNode = (url, isPortal, isLogin) => {\r\n    const { hsy_s, hsy_f } = this.state;\r\n    const { isVerticalTouch, isNewRetailBCPos } = platform || {};\r\n    const bcParams = isNewRetailBCPos ? '-bc' : '';\r\n    const theme = stores.portalStore.themeStore;\r\n    const defualtImage = (isVerticalTouch === true) ? `https://newretail.static.chanjet.com/tinified/logo${bcParams}.png` : `https://newretail.static.chanjet.com/${((!hsy_s && isPortal) || (theme === 'dark' && !isLogin)) ? 'protal-chanjet' : 'chanjet'}-logo${bcParams}.png?v=1`;\r\n    if (hsy_s === true) {\r\n      return (<div className='business-logo-container'>\r\n        <Ticon type='zhiPOS-fanhuishouye2' className='back_i' onClick={() => { hsy_f && hsy_f() }} />\r\n        <img src={url || defualtImage} className=\"example-logo\" />\r\n      </div>);\r\n    }\r\n    return <img src={url || defualtImage} className=\"example-logo\" />\r\n  }\r\n\r\n  //未使用?\r\n  hotKeyInjectOrEject = (type, hotKeyAction) => {\r\n    const registerKeys = ['esc', 'enter'];\r\n    const allKeys = [...registerKeys, ...Object.keys(hotKey.hotKeyConfig)];\r\n    allKeys.forEach((keyboard, index) => {\r\n      nativeMs.onIpcRendererGlobalShortcut({ type, keyboard }, hotKeyActionHandle);\r\n    });\r\n  }\r\n\r\n  blurButton = ({ target }) => { //  焦点为 button 时 移除焦点,防止触发 bee 组件enter快捷键\r\n    if (target && target.nodeName === 'BUTTON') {\r\n      target.blur();\r\n    }\r\n  }\r\n\r\n  registerHotKey = () => {\r\n    this.isSetHotKey = true;\r\n\r\n    this.hotKeyCreate = hotKey({\r\n      observerCallback: this.observerDom,\r\n      log: true,\r\n      pressed: this.hotKeyAction,\r\n      clickBefore: () => {\r\n        const { activeElement } = document;\r\n        activeElement && activeElement.blur();\r\n      },\r\n      filter: event => {\r\n        const { tagName, className } = event.target || event.srcElement || {};\r\n\r\n        return !(event.key === 'Enter' && tagName === 'INPUT' && !~className.indexOf('hot-key-not-filter'));\r\n      }\r\n    });\r\n\r\n    this.hotKeyCreate.observer(undefined, { attributes: true, childList: true, subtree: true ,attributeFilter: ['class', 'style'], });\r\n    this.hotKeyCreate.register('esc')('.hot-key-focus-container')(operationKeys.esc);\r\n    this.hotKeyCreate.register('enter')('.hot-key-focus-container')(operationKeys.enter);\r\n  }\r\n\r\n  observerDom = () => {\r\n      let visibleModal;\r\n      const modals = document.querySelectorAll('.ant-modal-wrap'); //ant-module\r\n      for(let modal of modals) {\r\n        const display = modal.style.display;\r\n        if(display != \"none\"){\r\n          visibleModal = modal\r\n        }\r\n      }\r\n\r\n      let visibleDrawer;\r\n      const drawers = document.querySelectorAll('.ant-drawer-open'); //ant-drawer\r\n      for(let drawer of drawers) {\r\n          visibleDrawer = drawer;\r\n          break;\r\n      }\r\n\r\n      if (visibleModal) {\r\n        if(this.currentFocus !== visibleModal){\r\n          $.clearFocus();\r\n          this.currentFocus = visibleModal\r\n          return $.setFocus(visibleModal);\r\n        }\r\n        return;\r\n      }\r\n\r\n      if (visibleDrawer) {\r\n        if(this.currentFocus !== visibleDrawer){\r\n          $.clearFocus();\r\n          this.currentFocus = visibleDrawer;\r\n          return $.setFocus(visibleDrawer);\r\n        }\r\n        return;\r\n      }\r\n\r\n\r\n      if ($.getFocusId() !== '1') {\r\n        if(this.currentFocus !== 'App' || !document.querySelector(\".hot-key-focus-container\")){\r\n          $.clearFocus();\r\n          this.currentFocus = 'App';\r\n          $.find('.app', true).setFocus();\r\n        }\r\n        return;\r\n      }\r\n  }\r\n\r\n  hotKeyAction = (event, handle) => {\r\n    const { key } = handle || {};\r\n    const toggleKeyCode = 'ctrl+f1';\r\n    if (key === toggleKeyCode) {\r\n      const isSetHotKey = this.isSetHotKey = !this.isSetHotKey;\r\n      const message = isSetHotKey ? '设置' : '取消';\r\n      if (isSetHotKey) {\r\n        $.bind(this.keys.filter(i => i !== toggleKeyCode), this.hotKeyAction);\r\n      } else {\r\n        $.unbind(this.keys.filter(i => i !== toggleKeyCode));\r\n      }\r\n      return Message.info(`已${message}快捷键`);\r\n    }\r\n\r\n    $.action(key);\r\n  }\r\n\r\n  handleInfoRender = (solt) => {\r\n    this.setState({solt})\r\n  }\r\n  onCollapse = () => {\r\n    const {collapsed} = this.state;\r\n    this.setState({collapsed: !collapsed});\r\n  }\r\n  menuOnClick = ({key}) => {\r\n    console.log(key)\r\n    this.setState({selectedKeys: key});\r\n  }\r\n\r\n  handleClose = () => {\r\n    Keyboard.close();\r\n  }\r\n\r\n  handleOk = (type, count) => {\r\n    stores.modifyPassStore.modifyPassWord();\r\n  }\r\n\r\n  headMenuSelect = ({key}) => {\r\n    var footer = [\r\n      {text: '取消', className: 'modifypass-cancal-button', closable: true, action: this.handleClose},\r\n      {text: '确定', className: 'modifypass-ok-button', action: this.handleOk, type: 'primary'}\r\n    ];\r\n    footer = !!footer.length && <div>\r\n      {footer.map((btn, i) =>\r\n        <Button\r\n          className={btn.className || ''}\r\n          key={i}\r\n          type={btn.type}\r\n          loading={btn.loading}\r\n          onClick={() => {\r\n            const {action} = btn || {};\r\n            if (typeof action === 'function') action();\r\n            if (btn.closable) {\r\n              stores.modalRouter.hide('/modifypass');\r\n            }\r\n          }}\r\n        >\r\n          {btn.text}\r\n        </Button>)}\r\n    </div>\r\n    switch (key) {\r\n      case 'logout':\r\n        User.logout();\r\n        break;\r\n      case 'modifypass':\r\n        {\r\n          if(!stores.offlineSys.shouldInOffline())  return;\r\n          stores.modalRouter.show({\r\n            url: '/modifypass',\r\n            title: '修改密码',\r\n            className: 'modify-password',\r\n            width: 402,\r\n            footer,modalType:'mid',\r\n            onHide: () => stores.modalRouter.hide('/modifypass'),\r\n            destroyOnClose: true,\r\n          });\r\n        }\r\n        break;\r\n      default:\r\n        history.push(`/${key}`);\r\n        break;\r\n    }\r\n  }\r\n  render() {\r\n    const { collapsed, selectedKeys, solt, portalHead = [], loginHead = [], retailOrder = [], logoUrl, hsy_s } = this.state;\r\n    const pathname = history.location.pathname;\r\n    const storeInfo = stores.user.options.get('store');\r\n    const isPortal = !!portalHead.length;\r\n    const isLogin = !!loginHead.length;\r\n    const isRetailOrder = !!retailOrder.length;\r\n    const { isNewRetailBCPos } = platform || {};\r\n\r\n    const headProps = {\r\n      logo: this.logoNode(logoUrl, isPortal, isLogin),\r\n      businessName: '',\r\n      storeName: '',\r\n      dateFormat: 'yyyy年MM月dd日 hh:mm:ss',\r\n      menu: [\r\n        { title: '注销', key: 'logout', icon: 'zhuxiao' },\r\n        { title: '修改密码', key: 'modifypass', icon: 'suoping' }\r\n      ],\r\n      onClick: this.headMenuSelect\r\n    };\r\n    if (storeInfo) {\r\n      headProps.businessName = storeInfo.orgName;\r\n      headProps.storeName = storeInfo.storeName;\r\n      headProps.posCode = storeInfo.posCode;\r\n    }\r\n\r\n    // 如果存在商米副屏则优先加载商米副屏\r\n    if (this.isHorizontalSunMi_FuPing) {\r\n      return <Redirect to={'/vicescreen'} />\r\n    }\r\n    console.log('!stores.posLoginStore.posIsLogin=============', !stores.posLoginStore.posIsLogin);\r\n    if (!stores.posLoginStore.posIsLogin && !~pathname.indexOf('login')) {\r\n      stores.modalRouter.hideAll && stores.modalRouter.hideAll();\r\n      return <Redirect to={'/login'} />\r\n    }else{\r\n\r\n      // 如果刷新页面进来已经是登录状态 则直接初始化本地数据库及离线相关\r\n      stores.offlineSys.initOfflineLocal(true);\r\n    }\r\n    const classNames = ['isPortal-layout', 'isRetailOrder-layout'];\r\n    const layoutClassName = [isPortal, isRetailOrder].map((v, i) => (v ? classNames[i] : '')).join(' ');\r\n    return (\r\n      <Layout\r\n        style={{ height: '100%' }}\r\n        className={layoutClassName}\r\n      >\r\n        <Layout>\r\n          <Header\r\n            {...headProps}\r\n            solt={solt}\r\n            isPortal={isPortal}\r\n            className={`${(!hsy_s && isPortal) ? 'isPortal-head' : ''} ${isLogin ? 'isLogin-head' : ''}`}\r\n            isLogin={isLogin}\r\n            location={this.props.location}\r\n            history={this.props.history}\r\n          />\r\n          <Layout.Content>\r\n            {this.props.match.isExact ? (isNewRetailBCPos ? <PortalPageBC /> : <PortalPage />) : <Switch>{this.props.routes}</Switch>}\r\n          </Layout.Content>\r\n        </Layout>\r\n      </Layout>\r\n    )\r\n  }\r\n}\r\n\r\nexport default function Main(props) {\r\n  const { routes, modalRouter } = props;\r\n\r\n  if (modalRouter) {\r\n    return <Switch>{routes}</Switch>;\r\n  }\r\n\r\n  return React.cloneElement(<MainContainer />, props);\r\n}\r\n"]}
         
     |