tplus-portaltouch 3.17.29 → 3.17.30

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,7 +69,9 @@ 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
- var isRetailDownloading = false; // 零售单是否正在下载
72
+ //自助大屏、PAD版本、商米暂不支持离线
73
+ var otherOfflineStatus = _mutantsMicrofx.localStore.get('isVerticalTouch') == 'true' || _mutantsMicrofx.localStore.get('isHorizontalPad') == 'true' || _mutantsMicrofx.localStore.get('isHorizontalSunMi') == 'true';
74
+
73
75
  //头部时间
74
76
  function HeadTime(props) {
75
77
  var time = props.time,
@@ -184,8 +186,27 @@ var OnLineStatusToggle = (0, _mobxReact.observer)(function (props) {
184
186
 
185
187
  var networkState = networkCheckStore.networkState;
186
188
  var isOnLine = networkCheckStore.isOnLine;
189
+ var hasUseOffline = isOfflineCash && !otherOfflineStatus; //是否允许离线
187
190
  var iconName = 'WiFi';
188
- if (isOfflineCash) {
191
+ if (hasUseOffline) {
192
+ var weakConfirm = function weakConfirm() {
193
+ if (!isOnLine) return; // 离线不提示
194
+ if (networkState !== '弱网') return; // 非弱网不提示
195
+ if (weakRemindNum >= WEAK_STANDARD_NUM) return; // 提示大于三次不再提示
196
+ if (!offlineSys.getDataIsOffline) return; // 数据未下载完不提示
197
+ if (document.querySelector('.isRetailUpLoading')) return; // 上传中不提示
198
+ if (document.querySelector('.isRetailDownLoading')) return; // 下载中不提示
199
+ if (document.querySelector('.tplus-loading')) return; // 全屏loading不提示
200
+ weakRemindNum++;
201
+ _tplusComponentsTouch.ModalWraper.confirm({
202
+ title: t('提示'),
203
+ content: t('当前网络不好,是否切换到离线?'),
204
+ onOk: function onOk() {
205
+ setOffLine(true);
206
+ }
207
+ });
208
+ };
209
+
189
210
  switch (networkState) {
190
211
  case '联网':
191
212
  iconName = 'WiFi';
@@ -208,18 +229,9 @@ var OnLineStatusToggle = (0, _mobxReact.observer)(function (props) {
208
229
  }
209
230
  });
210
231
  }
211
- if (isOnLine && networkState === '弱网' && weakRemindNum <= WEAK_STANDARD_NUM && offlineSys.getDataIsOffline()) {
212
- weakRemindNum++;
213
- _tplusComponentsTouch.ModalWraper.confirm({
214
- title: t('提示'),
215
- content: t('当前网络不好,是否切换到离线?'),
216
- onOk: function onOk() {
217
- setOffLine(true);
218
- }
219
- });
220
- }
221
- }
222
232
 
233
+ weakConfirm();
234
+ }
223
235
  function switchStatus() {
224
236
  if (networkState === '离线' && !isOnLine) {
225
237
  _tplusComponentsTouch.Message.tip('当前无网络,无法切换为在线状态');
@@ -249,7 +261,7 @@ var OnLineStatusToggle = (0, _mobxReact.observer)(function (props) {
249
261
  function playStatus(status) {
250
262
  // status 为 true 是在线切离线
251
263
  if (status) {
252
- if (!offlineSys.getDataIsOffline() || isRetailDownloading) {
264
+ if (!offlineSys.getDataIsOffline() || document.querySelector('.isRetailDownLoading')) {
253
265
  _tplusComponentsTouch.Message.tip('数据还未下载完,无法切换为离线');
254
266
  return;
255
267
  }
@@ -271,7 +283,7 @@ var OnLineStatusToggle = (0, _mobxReact.observer)(function (props) {
271
283
  _react2.default.createElement(_tplusComponentsTouch.Ticon, { icon: iconName })
272
284
  )
273
285
  ),
274
- isOfflineCash && isShowUploadBtnsByRouter && _react2.default.createElement(
286
+ hasUseOffline && isShowUploadBtnsByRouter && _react2.default.createElement(
275
287
  'div',
276
288
  { className: 'status-square c-pointer online-status-bg ' + (isOnLine || isResetNetWorkTheme ? '' : 'off-line') },
277
289
  _react2.default.createElement(
@@ -490,15 +502,14 @@ function RetailDownload() {
490
502
  case 6:
491
503
  setDownStr('0 %');
492
504
  setIsDownload(true);
493
- isRetailDownloading = true;
494
505
  _tplusComponentsTouch.Message.tip('下载中');
495
- _context3.prev = 10;
496
- _context3.next = 13;
506
+ _context3.prev = 9;
507
+ _context3.next = 12;
497
508
  return offlineSys.downloadCatcherData(function (e) {
498
509
  setDownStr(e.percent + ' %');
499
510
  });
500
511
 
501
- case 13:
512
+ case 12:
502
513
  result = _context3.sent;
503
514
 
504
515
  if (result) {
@@ -506,26 +517,25 @@ function RetailDownload() {
506
517
  } else {
507
518
  _tplusComponentsTouch.Message.error('\u6570\u636E\u4E0B\u8F7D\u5931\u8D25');
508
519
  }
509
- _context3.next = 20;
520
+ _context3.next = 19;
510
521
  break;
511
522
 
512
- case 17:
513
- _context3.prev = 17;
514
- _context3.t0 = _context3['catch'](10);
523
+ case 16:
524
+ _context3.prev = 16;
525
+ _context3.t0 = _context3['catch'](9);
515
526
 
516
527
  _tplusComponentsTouch.Message.error('数据下载失败');
517
528
 
518
- case 20:
529
+ case 19:
519
530
  setDownStr('下载数据');
520
531
  setIsDownload(false);
521
- isRetailDownloading = false;
522
532
 
523
- case 23:
533
+ case 21:
524
534
  case 'end':
525
535
  return _context3.stop();
526
536
  }
527
537
  }
528
- }, _callee3, _this2, [[10, 17]]);
538
+ }, _callee3, _this2, [[9, 16]]);
529
539
  }));
530
540
 
531
541
  return function handleDownLoad() {
@@ -620,7 +630,7 @@ function HeadContent(props, context) {
620
630
  setIsShowUploadBtnsByRouter(route.pathname.indexOf(UPLOAD_BASE_PATH) < 0);
621
631
  setIsPlaceOrderPage(route.pathname.indexOf(PLACE_ORDER_PATH) > -1);
622
632
  });
623
- var isOfflineCash = (0, _tplusPoslogin.PosInitData)('IsOfflineCash') === "1";
633
+ var hasUseOffline = (0, _tplusPoslogin.PosInitData)('IsOfflineCash') === "1" && !otherOfflineStatus; //是否允许离线
624
634
  var menuProps = { onClick: onClick };
625
635
  var menus = _react2.default.createElement(
626
636
  _antd.Menu,
@@ -799,9 +809,9 @@ function HeadContent(props, context) {
799
809
  _react2.default.createElement('i', { className: 'header-triangle-down' })
800
810
  )
801
811
  ),
802
- _react2.default.createElement(OnLineStatusToggle, { isShowUploadBtnsByRouter: isShowUploadBtnsByRouter, isResetNetWorkTheme: isResetNetWorkTheme, isOfflineCash: isOfflineCash, isPlaceOrderPage: isPlaceOrderPage }),
803
- isOfflineCash && isShowUploadBtnsByRouter && _react2.default.createElement(RetailUpload, null),
804
- isOfflineCash && isShowUploadBtnsByRouter && _react2.default.createElement(RetailDownload, null)
812
+ _react2.default.createElement(OnLineStatusToggle, { isShowUploadBtnsByRouter: isShowUploadBtnsByRouter, isResetNetWorkTheme: isResetNetWorkTheme, isOfflineCash: hasUseOffline, isPlaceOrderPage: isPlaceOrderPage }),
813
+ hasUseOffline && isShowUploadBtnsByRouter && _react2.default.createElement(RetailUpload, null),
814
+ hasUseOffline && isShowUploadBtnsByRouter && _react2.default.createElement(RetailDownload, null)
805
815
  ),
806
816
  isElectron && headControlNode,
807
817
  _react2.default.createElement(
@@ -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","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"]}
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","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","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\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 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() || 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"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "tplus-portaltouch",
3
- "version": "3.17.29",
3
+ "version": "3.17.30",
4
4
  "description": "touch protal",
5
5
  "main": "dist/index.js",
6
6
  "scripts": {