tplus-portaltouch 3.19.2 → 3.22.3

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.
Files changed (69) hide show
  1. package/dist/api/ModifyPassApi.js.map +1 -1
  2. package/dist/components/dutyandsettle/dutysettlebill.js.map +1 -1
  3. package/dist/components/dutyandsettle/dutysettlehistory.js +7 -7
  4. package/dist/components/dutyandsettle/dutysettlehistory.js.map +1 -1
  5. package/dist/components/dutyandsettle/index.js.map +1 -1
  6. package/dist/components/dutyandsettle/tipContent.js.map +1 -1
  7. package/dist/components/header/customUse.js.map +1 -1
  8. package/dist/components/header/headContent.js.map +1 -1
  9. package/dist/components/header/index.js +13 -13
  10. package/dist/components/header/index.js.map +1 -1
  11. package/dist/components/header/style.less +351 -351
  12. package/dist/components/header/themeModal.js.map +1 -1
  13. package/dist/components/header/vertical-touch.js.map +1 -1
  14. package/dist/components/header/vertical-touch.less +228 -228
  15. package/dist/containers/Main/index.js.map +1 -1
  16. package/dist/dutyService/index.js.map +1 -1
  17. package/dist/index.js.map +1 -1
  18. package/dist/middleWare/index.js.map +1 -1
  19. package/dist/modalRouter/StaticRouter.js.map +1 -1
  20. package/dist/modalRouter/index.js +8 -8
  21. package/dist/modalRouter/index.js.map +1 -1
  22. package/dist/pages/Modal/index.js.map +1 -1
  23. package/dist/pages/Modal/style.less +5 -5
  24. package/dist/pages/Portal/data.js +7 -7
  25. package/dist/pages/Portal/data.js.map +1 -1
  26. package/dist/pages/Portal/horizontalPadPortal.js.map +1 -1
  27. package/dist/pages/Portal/horizontalSunMiPortal.js.map +1 -1
  28. package/dist/pages/Portal/index.js +6 -6
  29. package/dist/pages/Portal/index.js.map +1 -1
  30. package/dist/pages/Portal/index.less +612 -612
  31. package/dist/pages/Portal/verticalPortal.js.map +1 -1
  32. package/dist/pages/Portalbc/data.js +145 -28
  33. package/dist/pages/Portalbc/data.js.map +1 -1
  34. package/dist/pages/Portalbc/horizontalPadPortal.js.map +1 -1
  35. package/dist/pages/Portalbc/horizontalSunMiPortal.js.map +1 -1
  36. package/dist/pages/Portalbc/index.js +117 -22
  37. package/dist/pages/Portalbc/index.js.map +1 -1
  38. package/dist/pages/Portalbc/index.less +773 -727
  39. package/dist/pages/Portalbc/onframe.js.map +1 -1
  40. package/dist/pages/Portalbc/verticalPortal.js +3 -1
  41. package/dist/pages/Portalbc/verticalPortal.js.map +1 -1
  42. package/dist/pages/dutyandsettle/AuthProcess.js.map +1 -1
  43. package/dist/pages/dutyandsettle/index.js.map +1 -1
  44. package/dist/pages/dutyandsettle/index.less +529 -529
  45. package/dist/pages/dutyandsettle/offDuty.js +7 -7
  46. package/dist/pages/dutyandsettle/offDuty.js.map +1 -1
  47. package/dist/pages/dutyandsettle/onDialy.js.map +1 -1
  48. package/dist/pages/dutyandsettle/onDuty.js.map +1 -1
  49. package/dist/pages/dutyandsettle/onUnDaily.js.map +1 -1
  50. package/dist/pages/dutyandsettle/settleDialy.js.map +1 -1
  51. package/dist/pages/index.js.map +1 -1
  52. package/dist/pages/modifyPass/index.js.map +1 -1
  53. package/dist/pages/modifyPass/style.less +71 -71
  54. package/dist/pages/notFound/index.js.map +1 -1
  55. package/dist/pages/notFound/style.less +17 -17
  56. package/dist/stores/ModalRouter.js.map +1 -1
  57. package/dist/stores/ModifyPassStore.js.map +1 -1
  58. package/dist/stores/PortalStore.js +5 -5
  59. package/dist/stores/PortalStore.js.map +1 -1
  60. package/dist/stores/PosLoginStore.js.map +1 -1
  61. package/dist/stores/billHistoryStore.js.map +1 -1
  62. package/dist/stores/dutySettleStore.js.map +1 -1
  63. package/dist/stores/index.js.map +1 -1
  64. package/dist/utils/PrintProcess.js +10 -10
  65. package/dist/utils/PrintProcess.js.map +1 -1
  66. package/dist/utils/index.js.map +1 -1
  67. package/dist/utils/networkCheck.js.map +1 -1
  68. package/package.json +4 -4
  69. package/tsconfig.json +14 -14
@@ -49,12 +49,12 @@ var _inherits2 = require('babel-runtime/helpers/inherits');
49
49
 
50
50
  var _inherits3 = _interopRequireDefault(_inherits2);
51
51
 
52
- var _class, _class2, _temp; /*
53
- * @Description:
54
- * @Date: 2019-08-13 08:42:18
55
- * @LastEditTime: 2021-10-20 11:12:08
56
- * @LastEditors: chenlongad
57
- * @modify:修改跳转到T+的查询方案方式
52
+ var _class, _class2, _temp; /*
53
+ * @Description:
54
+ * @Date: 2019-08-13 08:42:18
55
+ * @LastEditTime: 2021-10-27 11:15:33
56
+ * @LastEditors: chenlongad
57
+ * @modify:修改跳转到T+的查询方案方式
58
58
  */
59
59
 
60
60
 
@@ -250,6 +250,9 @@ var _default = (0, _mobxReact.observer)(_class = (_temp = _class2 = function (_C
250
250
  MenuCode = _ref3.MenuCode;
251
251
 
252
252
  var errorTip = void 0;
253
+ if (type == 'more') {
254
+ return _this.setState({ showMoreModal: true });
255
+ }
253
256
  if (!Title) {
254
257
  return _tplusComponentsTouch.ModalWraper.warning({
255
258
  title: '提示',
@@ -435,7 +438,7 @@ var _default = (0, _mobxReact.observer)(_class = (_temp = _class2 = function (_C
435
438
  break;
436
439
 
437
440
  case 17:
438
- if (!(_this.hasElectron === true && (postMessageUrl + '').indexOf('https') == -1 && (_this.new_retail_app == 'tczsy' || _this.new_retail_app == 'tcyzj'))) {
441
+ if (!((postMessageUrl + '').indexOf('https') == -1 && (_this.new_retail_app == 'tc' || _this.new_retail_app == 'tczsy' || _this.new_retail_app == 'tcyzj'))) {
439
442
  _context.next = 20;
440
443
  break;
441
444
  }
@@ -477,7 +480,7 @@ var _default = (0, _mobxReact.observer)(_class = (_temp = _class2 = function (_C
477
480
 
478
481
  _this.toHsyPage = function () {
479
482
  var _ref7 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee2(params) {
480
- var content_only, bar_bg, bar_active_bg, menu, secondRouter, activePrompt, closePrompt, closeable, leavePrompt, lock, pageId, pageParams, path, tabId, tabLabel, pageType, _k, filter, IdWarehouse, WarehouseName, _ref8, _ref8$loginInfo, _ref8$loginInfo$IdSto, IdStore, _ref8$loginInfo$PosId, PosId, _ref8$store, _ref8$store$storeName, storeName, commonArgs, actionUrl, cc_url, CC_WEB_URL, external_frame, win;
483
+ var content_only, bar_bg, bar_active_bg, menu, secondRouter, activePrompt, closePrompt, closeable, leavePrompt, lock, pageId, pageParams, path, tabId, tabLabel, pageType, _k, filter, IdWarehouse, WarehouseName, IsPerformanceDistribution, _ref8, _ref8$loginInfo, _ref8$loginInfo$IdSto, IdStore, _ref8$loginInfo$PosId, PosId, _ref8$store, _ref8$store$storeName, storeName, commonArgs, actionUrl, cc_url, CC_WEB_URL, external_frame, win;
481
484
 
482
485
  return _regenerator2.default.wrap(function _callee2$(_context2) {
483
486
  while (1) {
@@ -489,14 +492,15 @@ var _default = (0, _mobxReact.observer)(_class = (_temp = _class2 = function (_C
489
492
 
490
493
  IdWarehouse = (0, _tplusPoslogin.PosInitData)('IdWarehouse') || '';
491
494
  WarehouseName = (0, _tplusPoslogin.PosInitData)('WarehouseName') || '';
495
+ IsPerformanceDistribution = (0, _tplusPoslogin.PosInitData)('PerformanceDistribution') === 'SHIPPER_STORE' || false;
492
496
  _ref8 = _mutantsMicrofx.localStore && _mutantsMicrofx.localStore.get('user') || {}, _ref8$loginInfo = _ref8.loginInfo, _ref8$loginInfo$IdSto = _ref8$loginInfo.IdStore, IdStore = _ref8$loginInfo$IdSto === undefined ? '' : _ref8$loginInfo$IdSto, _ref8$loginInfo$PosId = _ref8$loginInfo.PosId, PosId = _ref8$loginInfo$PosId === undefined ? '' : _ref8$loginInfo$PosId, _ref8$store = _ref8.store;
493
497
  _ref8$store = _ref8$store === undefined ? {} : _ref8$store;
494
498
  _ref8$store$storeName = _ref8$store.storeName, storeName = _ref8$store$storeName === undefined ? '' : _ref8$store$storeName;
495
499
  _context2.t0 = pageType;
496
- _context2.next = _context2.t0 === 'voucher' ? 10 : _context2.t0 === 'report' ? 13 : 15;
500
+ _context2.next = _context2.t0 === 'voucher' ? 11 : _context2.t0 === 'report' ? 14 : 18;
497
501
  break;
498
502
 
499
- case 10:
503
+ case 11:
500
504
  filter = {
501
505
  defaultValue: {
502
506
  storeId: {
@@ -523,9 +527,9 @@ var _default = (0, _mobxReact.observer)(_class = (_temp = _class2 = function (_C
523
527
  }
524
528
  };
525
529
  }
526
- return _context2.abrupt('break', 15);
530
+ return _context2.abrupt('break', 18);
527
531
 
528
- case 13:
532
+ case 14:
529
533
  filter = {
530
534
  filterValue: {
531
535
  storeId: {
@@ -541,10 +545,47 @@ var _default = (0, _mobxReact.observer)(_class = (_temp = _class2 = function (_C
541
545
  }]
542
546
  }
543
547
  }
544
- };
545
- return _context2.abrupt('break', 15);
548
+ // 收银统计表
549
+ };if (IsPerformanceDistribution && menu == 'retail-cash-report') {
550
+ filter = {
551
+ filterValue: {
552
+ deliveryStoreId: {
553
+ value: {
554
+ id: IdStore,
555
+ storeName: storeName
556
+ }
557
+ },
558
+ warehouseId: {
559
+ value: [{
560
+ id: IdWarehouse,
561
+ name: WarehouseName
562
+ }]
563
+ }
564
+ }
565
+ };
566
+ }
567
+ // 售后、配送
568
+ if (menu == 'return-order' || menu == 'order-manage') {
569
+ filter = {
570
+ filterValue: {
571
+ storeId: {
572
+ value: {
573
+ id: IdStore,
574
+ storeName: storeName
575
+ }
576
+ },
577
+ deliveryWarehouseId: {
578
+ value: [{
579
+ id: IdWarehouse,
580
+ name: WarehouseName
581
+ }]
582
+ }
583
+ }
584
+ };
585
+ }
586
+ return _context2.abrupt('break', 18);
546
587
 
547
- case 15:
588
+ case 18:
548
589
  bar_bg = encodeURIComponent(bar_bg);
549
590
  bar_active_bg = encodeURIComponent(bar_active_bg);
550
591
  menu = secondRouter ? menu + '/' + _this.randomWord(true, 13) : menu;
@@ -560,22 +601,22 @@ var _default = (0, _mobxReact.observer)(_class = (_temp = _class2 = function (_C
560
601
  console.log('web_hsy_url:', cc_url);
561
602
 
562
603
  if (!_this.isHorizontalSunMi) {
563
- _context2.next = 34;
604
+ _context2.next = 37;
564
605
  break;
565
606
  }
566
607
 
567
- _context2.next = 29;
608
+ _context2.next = 32;
568
609
  return _tplusApi.User.getLoginCCMidWebUrl(cc_url);
569
610
 
570
- case 29:
611
+ case 32:
571
612
  CC_WEB_URL = _context2.sent;
572
613
 
573
614
  console.log('CC_WEB_URL:', CC_WEB_URL);
574
615
  window.android_CommonFun.openWebUrlByOutBrowser(CC_WEB_URL);
575
- _context2.next = 39;
616
+ _context2.next = 42;
576
617
  break;
577
618
 
578
- case 34:
619
+ case 37:
579
620
  external_frame = document.getElementById('external-frame-cc');
580
621
  win = external_frame.contentWindow;
581
622
 
@@ -592,7 +633,7 @@ var _default = (0, _mobxReact.observer)(_class = (_temp = _class2 = function (_C
592
633
  }
593
634
  });
594
635
 
595
- case 39:
636
+ case 42:
596
637
  case 'end':
597
638
  return _context2.stop();
598
639
  }
@@ -621,6 +662,10 @@ var _default = (0, _mobxReact.observer)(_class = (_temp = _class2 = function (_C
621
662
  _this.setState({ showModal: false });
622
663
  };
623
664
 
665
+ _this.closeMoreModal = function () {
666
+ _this.setState({ showMoreModal: false });
667
+ };
668
+
624
669
  _this.tplusEncode = function (code) {
625
670
  var c = String.fromCharCode(code.charCodeAt(0) + code.length);
626
671
  for (var i = 1; i < code.length; i++) {
@@ -892,11 +937,43 @@ var _default = (0, _mobxReact.observer)(_class = (_temp = _class2 = function (_C
892
937
  return node;
893
938
  };
894
939
 
940
+ _this.createMoreNode = function () {
941
+ var arrs = _this.centerRightMenu.find(function (v) {
942
+ return v.sub && v.sub.find(function (vv) {
943
+ return vv.key == 'more';
944
+ });
945
+ }).sub[1];
946
+ var items = _this.new_retail_app == 'cc' ? arrs.sub_cc : _this.new_retail_app == 'tc' || _this.new_retail_app == 'tczsy' || _this.new_retail_app == 'tcyzj' ? arrs.sub_tc : [];
947
+ var node = items.length > 0 && items.map(function (v) {
948
+ return _react2.default.createElement(
949
+ 'div',
950
+ {
951
+ className: 'modal-quick ' + v.className,
952
+ style: v.style,
953
+ key: v.className,
954
+ onClick: _this.handelClick.bind(_this, v)
955
+ },
956
+ !!v.icon && _react2.default.createElement(
957
+ 'div',
958
+ { className: 'quick' },
959
+ _react2.default.createElement(_tplusComponentsTouch.Ticon, { icon: v.icon })
960
+ ),
961
+ !!v.title && _react2.default.createElement(
962
+ 'h1',
963
+ null,
964
+ v.title
965
+ )
966
+ );
967
+ });
968
+ return node;
969
+ };
970
+
895
971
  _this.hasElectron = hasElectron;
896
972
  _this.state = {
897
973
  id: Date.now(),
898
974
  operations: [],
899
975
  showModal: false,
976
+ showMoreModal: false,
900
977
  loadHsyPage: false,
901
978
  loadHsyURL: '',
902
979
  isHsyLoadFinish: false,
@@ -1074,6 +1151,7 @@ var _default = (0, _mobxReact.observer)(_class = (_temp = _class2 = function (_C
1074
1151
  value: function render() {
1075
1152
  var _state = this.state,
1076
1153
  showModal = _state.showModal,
1154
+ showMoreModal = _state.showMoreModal,
1077
1155
  modalURL = _state.modalURL,
1078
1156
  loadHsyPage = _state.loadHsyPage,
1079
1157
  loadHsyURL = _state.loadHsyURL,
@@ -1137,13 +1215,30 @@ var _default = (0, _mobxReact.observer)(_class = (_temp = _class2 = function (_C
1137
1215
  ),
1138
1216
  this.isMobileEnvironment && _react2.default.createElement(
1139
1217
  _antd.Modal,
1140
- { visible: showModal,
1218
+ {
1219
+ visible: showModal,
1141
1220
  onCancel: this.closeFrameModal,
1142
1221
  width: '99%',
1143
1222
  height: '99%',
1144
1223
  footer: null
1145
1224
  },
1146
1225
  _react2.default.createElement('iframe', { src: modalURL, width: '100%', height: screenHeight, frameborder: 'no', border: '0', marginwidth: '0', marginheight: '0', scrolling: 'yes', allowtransparency: 'true' })
1226
+ ),
1227
+ _react2.default.createElement(
1228
+ _antd.Modal,
1229
+ {
1230
+ title: '更多',
1231
+ className: 'portal-container-modal-more',
1232
+ visible: showMoreModal,
1233
+ onCancel: this.closeMoreModal,
1234
+ width: 800,
1235
+ height: 375,
1236
+ footer: null,
1237
+ centered: true,
1238
+ maskClosable: false,
1239
+ keyboard: false
1240
+ },
1241
+ this.createMoreNode()
1147
1242
  )
1148
1243
  );
1149
1244
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["tplus-portaltouch/pages/Portalbc/index.js"],"names":["hasElectron","env","platform","constant","electron","Content","Layout","Footer","tplusWindow","HTTP_PROXY_URL","observer","props","initHsyPage","external_frame","document","getElementById","win","contentWindow","timer","setTimeout","setState","isHsyLoadFinish","HsyLoadFinish","clearTimeout","sunMiPresentationInit","result","localStore","get","store","storeName","console","log","enumController","getEnumOj","RE_POSParamType","DUAL_SCREEN_SETTING","filterResult","filter","settingItem","ParamType","window","sunMi_PresentationManager","sharedPreferencesSet","then","sendMessageToSecondScreen","step","getTcBasicInfoInit","userStore","User","restore","sid","tplusUrl","msg","ModalWraper","warning","title","content","okText","okType","substring","length","ossjumpUrl","Date","getTime","postMsgUrl","user","context","stores","loginInfo","options","UserCode","AccountNum","posCode","TplusStoreId","uid","tplusEncode","pwd","accNum","code","postMessageUrl","getScreenType","flag","isHorizontalSunMi","data","item","Name","shift","Value","saveLog","name","saveLogo","Request","undefined","handelClick","values","type","key","isModal","iframe","app","style","search","tmenuCode","state","operations","controllable","find","vv","Visibility","HoldFunctionAuth","Title","MenuCode","errorTip","onOk","logout","portalStore","Message","warn","modalRouter","show","url","width","toFramePage","checkDuty","onDutyMessage","Code","IdShiftVoucher","Shift","IdDailyVoucher","DailyCode","ShiftCode","history","push","catch","onDuty","MiddleWare","execute","bPosDaily","onMakerDaily","params","sh","v","menu","toHsyPage","toTplusPage","getTplusUrlFromCloudServer","accessToken","orgId","encodeURIComponent","fetchHeader","headers","resolve","reject","fetch","response","json","ex","err","ret","dsearchPlanID","id","getSearchPlanId","location","origin","android_CommonFun","openWebUrlByOutBrowser","indexOf","new_retail_app","nativeMs","useDefaultBrowser","external_frame_tc","loadTcURL","postMessage","doType","loadTcPage","rx$","changeHsy","next","back","fn","content_only","bar_bg","bar_active_bg","secondRouter","activePrompt","closePrompt","closeable","leavePrompt","lock","pageId","pageParams","path","tabId","tabLabel","pageType","_k","IdWarehouse","WarehouseName","IdStore","PosId","defaultValue","storeId","warehouseId","requireWarehouseId","filterValue","value","randomWord","commonArgs","actionUrl","cc_url","hsy_domain","replace","getLoginCCMidWebUrl","CC_WEB_URL","HsyRouterJump","loadHsyPage","external_frame_a","wins","HsyRouterClean","only","digits","str","number","letter","arr","i","pos","Math","round","random","closeFrameModal","showModal","c","String","fromCharCode","charCodeAt","TplusBase64Encode","input","_keyStr","output","chr1","chr2","chr3","enc1","enc2","enc3","enc4","_utf8_encode","isNaN","charAt","string","utftext","n","operationControl","forEach","sub","createLeftNode","leftMenu","menuNode","map","container","className","maybe","status","second","disabled","bind","label","icon","createCenterNode","menuLeftNode","centerLeftMenu","menuRightNode","centerRightMenu","createRightNode","node","rightMenu","now","loadHsyURL","modalURL","isVerticalTouch","isHorizontalPad","isNewRetailBCPos","isNewRetailBCPosTC","isMobileEnvironment","FuPingIsLoaded","Menus","leftMenuTC","rightMenuTC","getWebEntry","hsyBasicInfoInit","headHook","addClass","homeOperation","functionData","Loading","text","delay","set","hide","setStore","initSetParams","open","theme","themeStore","color","removeClass","setIpcRendererMethod","e","screenHeight","screen","availHeight","htmlContent","height","paddingLeft","paddingRight","Component","propTypes","routes","PropTypes","array","contextTypes","object","infoRender","func"],"mappings":"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","file":"index.js","sourcesContent":["/*\n * @Description:\n * @Date: 2019-08-13 08:42:18\n * @LastEditTime: 2021-10-20 11:12:08\n * @LastEditors: chenlongad\n * @modify:修改跳转到T+的查询方案方式\n */\nimport React, { Component } from 'react';\nimport { observer } from 'mobx-react';\nimport { autorun} from 'mobx';\nimport { Row, Col, Modal } from 'antd';\nimport { history, stores, nativeMs, env, localStore } from 'mutants-microfx';\nimport { Ticon, Layout, ModalWraper, Loading, Message } from 'tplus-components-touch';\nimport { User } from 'tplus-api';\nimport { PosSetData, PosInitData } from 'tplus-poslogin';\nimport { platform, enumController } from 'mutants-util';\nimport PropTypes from 'prop-types';\nimport { Request } from '../../api/ModifyPassApi';\nimport Menus from './data';\nimport MiddleWare from '../../middleWare';\nimport VerticalPortal from './verticalPortal';\nimport HorizontalPadPortal from './horizontalPadPortal';\nimport './index.less';\n\nconst hasElectron = (env.platform === env.constant.platform.electron);\nconst { Content, Footer } = Layout;\nlet tplusWindow = null;\nconst HTTP_PROXY_URL = 'http://tfproxy.chanjet.com/?url=';\n\n@observer\nexport default class extends Component {\n static propTypes = {\n routes: PropTypes.array,\n };\n static contextTypes = {\n stores: PropTypes.object,\n infoRender: PropTypes.func,\n headHook: PropTypes.object\n };\n\n constructor(props) {\n super(props);\n this.hasElectron = hasElectron;\n this.state = {\n id: Date.now(),\n operations: [],\n showModal: false,\n loadHsyPage: false,\n loadHsyURL: '',\n isHsyLoadFinish: false,\n loadTcPage: false,\n loadTcURL: '',\n modalURL: '',\n }\n const { isVerticalTouch, isHorizontalPad, isHorizontalSunMi, isNewRetailBCPos, isNewRetailBCPosTC } = platform || {};\n this.isVerticalTouch = !!isVerticalTouch;\n this.isHorizontalPad = !!isHorizontalPad;\n this.isHorizontalSunMi = !!isHorizontalSunMi;\n this.isMobileEnvironment = !!isHorizontalPad || !!isHorizontalSunMi;\n this.FuPingIsLoaded = false;\n this.isNewRetailBCPos = !!isNewRetailBCPos;\n this.isNewRetailBCPosTC = !!isNewRetailBCPosTC;\n this.new_retail_app = localStore && localStore.get('newRetailAppType');\n\n //首页布局\n const { leftMenu, centerLeftMenu, centerRightMenu, rightMenu, leftMenuTC, rightMenuTC } = Menus;\n this.leftMenu = isNewRetailBCPosTC ? leftMenuTC : leftMenu;\n this.centerLeftMenu = centerLeftMenu;\n this.centerRightMenu = centerRightMenu;\n this.rightMenu = isNewRetailBCPosTC ? rightMenuTC : rightMenu;\n this.hsy_domain = User && User.getWebEntry();\n this.randomWord = this.randomWord.bind(this);\n autorun(() => {\n this.hsyBasicInfoInit();\n });\n }\n\n componentWillMount() {\n const { stores: { portalStore } = {}, headHook: { addClass } = {} } = this.context;\n const { homeOperation, functionData } = Request;\n Loading.show({\n text: '首页权限加载中...',\n delay: 2500\n });\n homeOperation().then(operations => {\n localStore.set('operationsAuth', operations ? JSON.stringify(operations) : []);\n this.setState({ operations: operations || [] });\n Loading.hide();\n }).catch((err) => {\n console.log('homeOperation.error======', err);\n Loading.hide();\n });\n functionData().then(data => {\n // 加载权限数据 DR-29735 by majian\n PosSetData(data);\n });\n addClass && addClass(this.state.id, 'portalHead');\n // 初始化参数设置。\n stores.setStore.initSetParams().then(ret => {\n // 在客户端中,如果开启了副屏设置,尝试这打开副屏。\n if (this.getScreenType() === true) {\n if (this.isHorizontalSunMi) {\n this.sunMiPresentationInit(ret);\n return;\n }\n window.open('vicescreen?ts=' + new Date().getTime(), 'screen');\n }\n })\n this.hsyBasicInfoInit();\n }\n\n componentDidMount() {\n if (this.isNewRetailBCPos && !this.isVerticalTouch && !this.isHorizontalPad) {\n this.initHsyPage();\n }\n }\n\n // 初始化好生意页面\n initHsyPage = () => {\n let external_frame = document.getElementById('external-frame-cc');\n let win = external_frame && external_frame.contentWindow;\n let timer = setTimeout(() => { this.setState({ isHsyLoadFinish: true }) }, 15000);\n if (!win) return;\n win.HsyLoadFinish = () => {\n clearTimeout(timer);\n this.setState({ isHsyLoadFinish: true });\n }\n }\n\n // 初始化商米副屏\n sunMiPresentationInit = (result) => {\n //SunMi初始化参数设置。\n //副屏幕交互。硬件改动20200428 需要在商米页面加载成功后才能发送 初始化命令\n // 进行主副屏数据交互 初始化\n const { store: { storeName = '' } = {} } = localStore.get('user') || {};\n console.log(result);\n const { RE_POSParamType } = enumController.getEnumOj();\n const { DUAL_SCREEN_SETTING } = RE_POSParamType;\n const filterResult = result && result.filter?result.filter((settingItem)=>{return settingItem.ParamType === DUAL_SCREEN_SETTING}):[];\n window.sunMi_PresentationManager && window.sunMi_PresentationManager.sharedPreferencesSet(\"setting_setData\",filterResult).then(()=>{\n console.log(\"缓存数据成功\")\n window.sunMi_PresentationManager && window.sunMi_PresentationManager.sendMessageToSecondScreen({ step: 0,storeName});\n });\n }\n\n // 初始化智+模块信息\n hsyBasicInfoInit() {\n const theme = stores.portalStore.themeStore;\n let color = '#FF8C25';\n switch (theme) {\n case 'orange':\n color = \"#FF8C25\";\n break;\n case 'blue':\n color = \"#3491FF\";\n break;\n case 'dark':\n color = \"#26A0DE\";\n break;\n case 'pink':\n color = \"#FF6B8C\";\n break;\n }\n const { PosId = '' } = localStore && localStore.get('StoreKey') || {};\n const cc_url = `${this.hsy_domain.replace('#/', '')}?fromApp=nretail&posid=${PosId}&content_only=true&bar_bg=${encodeURIComponent('#FFFFFF')}&bar_active_bg=${encodeURIComponent(color)}`;\n this.setState({ loadHsyURL: cc_url });\n }\n\n //初始化tc、tcyzj、tczsy信息\n getTcBasicInfoInit = () => {\n let userStore = User.restore();\n let sid = userStore.sid;\n let tplusUrl = PosInitData(\"TplusSite\") || PosInitData(\"tplusinnersite\");\n if (!tplusUrl) {\n let msg = \"请用admin登录,在服务器配置–地址配置处,设置“内部或外部网络访问T+服务器的地址”!\";\n ModalWraper.warning(\n {\n title: '温馨提示',\n content: msg,\n okText: '确定',\n okType: 'primary',\n }\n )\n return false;\n }\n if (tplusUrl.substring(tplusUrl.length - 1) !== '/') {\n tplusUrl += '/';\n }\n let ossjumpUrl = `${tplusUrl}view/portal/portal.html?t=${new Date().getTime()}`\n if (sid) {\n ossjumpUrl = `${tplusUrl}view/ossjump.html?t=${new Date().getTime()}&sid=${sid}`\n }\n let postMsgUrl = ossjumpUrl;\n let { user } = this.context.stores;\n let loginInfo = user.options.get('loginInfo');\n const { UserCode, AccountNum, posCode, TplusStoreId } = loginInfo || {};\n const uid = this.tplusEncode(UserCode);\n const pwd = this.tplusEncode(user.options.get(\"password\"));\n const accNum = this.tplusEncode(AccountNum)\n const code = this.tplusEncode(posCode);\n const store = this.tplusEncode(TplusStoreId + '');\n ossjumpUrl += `&fromApp=nretail&way=inframe&user=${uid}&pwd=${pwd}&accNum=${accNum}&posCode=${code}&storeID=${store}`;\n return { ossjumpUrl, postMessageUrl: postMsgUrl };\n }\n\n componentWillUnmount() {\n const { headHook: { removeClass } = {} } = this.context\n removeClass && removeClass(this.state.id, 'portalHead');\n }\n\n componentWillReceiveProps() {\n if (this.getScreenType() === true) {\n if (this.isHorizontalSunMi && this.FuPingIsLoaded) {\n window.sunMi_PresentationManager && window.sunMi_PresentationManager.sendMessageToSecondScreen({ step: 1 });\n } else {\n nativeMs && nativeMs.setIpcRendererMethod('ReplyScreen', { step: 1 })\n }\n }\n }\n\n // 获取副屏的状态\n getScreenType = () => {\n let flag = false;\n if (this.hasElectron === true || this.isHorizontalSunMi) {\n let data = localStore.get('setting_setData') || [];\n data = data.filter(item => item.Name === 'EnableDoubleScreen');\n data = data && data.length > 0 ? data.shift() : null;\n if (data && data.Value === '1') {\n flag = true;\n }\n }\n return flag;\n }\n\n menuClick(item, e) {\n history.push(item.path);\n }\n saveLog = (name) => {\n const { saveLogo } = Request;\n name = \"进入模块:\" + name;\n saveLogo('进入模块', undefined, name);\n }\n\n handelClick = (values = {}) => {\n const { key: type, isModal, iframe, app, title, Name, style, search, tmenuCode } = values;\n const { operations, isHsyLoadFinish } = this.state;\n const controllable = operations.find(vv => vv.Name === Name);\n const { Visibility, HoldFunctionAuth, Title, MenuCode } = controllable || {};\n let errorTip;\n if (!Title) {\n return ModalWraper.warning({\n title: '提示',\n content: '您的权限配置请求失败,请重新登录',\n onOk() {\n User.logout();\n },\n okType: 'primary',\n })\n }\n if (!Visibility) {\n errorTip = `您的 ${Title} 模块没有启用`;\n } else if (!HoldFunctionAuth) {\n errorTip = `您没有操作 ${Title} 的权限`;\n }\n const { portalStore } = this.context.stores;\n if (errorTip) {\n return Message.warn(errorTip);\n }\n if (isModal) {\n return stores.modalRouter.show({ url: `/${type}`, width: 800, title });\n }\n // 支持页面内打开,减少再次加载页面的时间。\n if (iframe === true) return this.toFramePage({ type, app, title, style, search, MenuCode, tmenuCode, isHsyLoadFinish });\n switch (type) {\n case 'cashier':\n portalStore.checkDuty().then((onDutyMessage) => {\n if (!!onDutyMessage) {\n const { Code, IdShiftVoucher, Shift, IdDailyVoucher, DailyCode } = onDutyMessage;\n PosSetData({ ShiftCode: Code, IdShiftVoucher, Shift, IdDailyVoucher, DailyCode });\n console.log('onDutyMessage======', onDutyMessage);\n this.saveLog(title);\n history.push('/RE/RE01');\n }\n }).catch((data) => {\n console.log(\"进入前台收银检查是否当班返回错误\", data);\n });\n break;\n case 'onDuty':\n portalStore.onDuty().then((onDutyMessage) => {\n if (onDutyMessage && onDutyMessage.shift) {\n MiddleWare.execute('onDuty')\n }\n });\n break;\n case 'offDuty':\n history.push('/offDuty?type=offDuty');\n break;\n case 'settleDialy':\n if (portalStore.bPosDaily()) {\n history.push('/offDuty?type=settleDaily');\n } else {\n portalStore.onMakerDaily();\n }\n break;\n default:\n history.push(`/${type}`);\n break;\n }\n };\n\n //跳转其他页面,以内嵌形式打开\n toFramePage = (params) => {\n const { app, title, style, search, tmenuCode, MenuCode, isHsyLoadFinish } = params || {}\n switch (app) {\n case 'cc':\n let sh = '';\n if (!isHsyLoadFinish && !this.isHorizontalSunMi) {\n return Message.warn('正在加载资源中,请稍后。');\n }\n if (!search) {\n return Message.warn('正在紧急研发中...');\n } else if (search && search.length > 0) {\n sh = (search.length > 1 && MenuCode) ? search.find(v => v.menu === MenuCode) : search[0];\n sh = sh || search[0];\n }\n if (!sh) {\n return Message.warn('传递参数有误,请查证。');\n }\n this.toHsyPage({ ...style, ...sh });\n break;\n case 'tc':\n if (tmenuCode || MenuCode) {\n this.saveLog(title);\n if (MenuCode) {\n this.toTplusPage(MenuCode, search);\n } else {\n this.toTplusPage(tmenuCode, search);\n }\n }\n break;\n }\n }\n\n getTplusUrlFromCloudServer = () => {//获取T+服务器配置地址。\n let userStore = User.restore();\n let data = 'accesstoken=' + `${userStore.accessToken}` + '&cloudOrgId=' + `${userStore.orgId}`;\n let url = `${HTTP_PROXY_URL}` + encodeURIComponent('http://mns.chanapp.chanjet.com/web/WebServer/get?' + `${data}`);\n console.log(url);\n let fetchHeader = {\n headers: {\n 'Content-Type': 'application/x-www-form-urlencoded'\n }\n };\n return new Promise((resolve, reject) => {\n fetch(url, fetchHeader)\n .then(function (response) {\n return response.json();\n }).then(json => {\n console.log(json);\n resolve(json);\n }).catch(ex => {\n console.log(ex);\n reject(err);\n })\n })\n }\n\n //跳转到T+\n toTplusPage = async (tmenuCode, search) => {\n let ret = this.getTcBasicInfoInit();\n if (ret === false) return;\n let { ossjumpUrl, postMessageUrl } = ret || {};\n let dsearchPlanID = '';\n if (search && search.id) {\n const { portalStore } = this.context.stores;\n dsearchPlanID = await portalStore.getSearchPlanId(search);\n }\n let menu = this.tplusEncode(tmenuCode);\n ossjumpUrl += `&menu=${menu}&fromUrl=${this.tplusEncode(location.origin)}`;\n if (dsearchPlanID) {\n ossjumpUrl += `&searchPlanID=${this.tplusEncode(dsearchPlanID)}`;\n }\n if(this.isHorizontalSunMi){\n window.android_CommonFun.openWebUrlByOutBrowser(ossjumpUrl);\n }else{\n //对于专属云、云主机,如果配置的http,存在跨域问题,暂时解决不了,只能通过打开默认浏览器打开。\n if (this.hasElectron === true && (postMessageUrl + '').indexOf('https') == -1 && (this.new_retail_app == 'tczsy' || this.new_retail_app == 'tcyzj')) {\n nativeMs.useDefaultBrowser(ossjumpUrl);\n return;\n }\n let external_frame_tc = document.getElementById('external-frame-tc');\n let win = external_frame_tc.contentWindow;\n const { loadTcURL } = this.state;\n if (loadTcURL) {\n win && win.postMessage({ doType: 'openMenuFromPos', tmenuCode, ossjumpUrl, dsearchPlanID }, postMessageUrl);\n this.setState({ loadTcPage: true });\n } else {\n this.setState({ loadTcURL: ossjumpUrl, loadTcPage: true });\n }\n rx$.changeHsy.next({\n back: true, fn: () => {\n win && win.postMessage({ doType: 'closeCurrentMenuFromPos' }, postMessageUrl);\n this.setState({ loadTcPage: false });\n rx$.changeHsy.next({ back: false });\n }\n })\n }\n }\n\n //跳转CC\n toHsyPage = async (params) => {\n let {\n content_only, //只加载内容区域\n bar_bg, //页签栏颜色\n bar_active_bg, //激活态的标签背景颜色\n menu,\n secondRouter,\n activePrompt,\n closePrompt,\n closeable,\n leavePrompt,\n lock,\n pageId,\n pageParams,\n path,\n tabId,\n tabLabel,\n pageType,\n _k\n } = params;\n\n let filter = {};\n //对仓库参数的处理\n const IdWarehouse = PosInitData('IdWarehouse') || '';\n const WarehouseName = PosInitData('WarehouseName') || '';\n const { loginInfo: { IdStore = '', PosId = '' }, store: { storeName = '' } = {} } = localStore && localStore.get('user') || {};\n switch (pageType) {\n case 'voucher':\n filter = {\n defaultValue: {\n storeId: {\n id: IdStore,\n storeName\n },\n warehouseId: {\n id: IdWarehouse,\n name: WarehouseName\n }\n }\n }\n //要货单特殊处理\n if (menu == 'require-goods-new') {\n filter = {\n defaultValue: {\n storeId: {\n id: IdStore,\n storeName\n },\n requireWarehouseId: {\n id: IdWarehouse,\n name: WarehouseName\n }\n }\n }\n }\n break;\n case 'report':\n filter = {\n filterValue: {\n storeId: {\n value: {\n id: IdStore,\n storeName\n }\n },\n warehouseId: {\n value: [{\n id: IdWarehouse,\n name: WarehouseName\n }]\n }\n }\n }\n break;\n }\n bar_bg = encodeURIComponent(bar_bg);\n bar_active_bg = encodeURIComponent(bar_active_bg);\n menu = secondRouter ? `${menu}/${this.randomWord(true, 13)}` : menu;\n pageId = menu;\n pageParams = Object.assign(pageParams, filter);\n path = encodeURIComponent(path);\n _k = this.randomWord(false, 6);\n\n const commonArgs = `?posid=${PosId}&content_only=${content_only}&bar_bg=${bar_bg}&bar_active_bg=${bar_active_bg}`;\n const actionUrl = `#/${menu}?activePrompt=${activePrompt}&closePrompt=${closePrompt}&closeable=${closeable}&leavePrompt=${leavePrompt}&lock=${lock}&pageId=${pageId}&pageParams=${encodeURIComponent(JSON.stringify(pageParams))}&path=${path}&tabId=${tabId}&tabLabel=${encodeURIComponent(tabLabel)}&_k=${_k}`;\n let cc_url = this.hsy_domain.replace('#/', '') + commonArgs + actionUrl;\n console.log('web_hsy_url:', cc_url);\n if(this.isHorizontalSunMi){\n const CC_WEB_URL = await User.getLoginCCMidWebUrl(cc_url)\n console.log('CC_WEB_URL:', CC_WEB_URL);\n window.android_CommonFun.openWebUrlByOutBrowser(CC_WEB_URL);\n }else{\n let external_frame = document.getElementById('external-frame-cc');\n let win = external_frame.contentWindow;\n win && win.HsyRouterJump && win.HsyRouterJump(pageId, pageParams, { closeable, tabLabel });\n this.setState({ loadHsyPage: true });\n rx$.changeHsy.next({\n back: true, fn: () => {\n this.setState({ loadHsyPage: false });\n rx$.changeHsy.next({ back: false });\n // 在打开页签之前,关闭之前的。\n let external_frame_a = document.getElementById('external-frame-cc');\n let wins = external_frame_a.contentWindow;\n wins && wins.HsyRouterClean && win.HsyRouterClean();\n }\n })\n }\n }\n\n randomWord = (only, digits) => {\n let str = \"\";\n const number = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9'];\n const letter = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z']\n let arr = only ? [...number] : [...number, ...letter];\n for (let i = 0; i < digits; i++) {\n let pos = Math.round(Math.random() * (arr.length - 1));\n str += arr[pos];\n }\n return str;\n }\n\n closeFrameModal = () => {\n this.setState({ showModal: false })\n }\n\n tplusEncode = (code) => {\n let c = String.fromCharCode(code.charCodeAt(0) + code.length);\n for (let i = 1; i < code.length; i++) {\n c += String.fromCharCode(code.charCodeAt(i) + code.charCodeAt(i - 1));\n }\n let ret = this.TplusBase64Encode(c);\n return ret;\n }\n\n TplusBase64Encode = (input) => {\n const _keyStr = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\";\n let output = \"\";\n let chr1, chr2, chr3, enc1, enc2, enc3, enc4;\n let i = 0;\n input = this._utf8_encode(input);\n while (i < input.length) {\n chr1 = input.charCodeAt(i++);\n chr2 = input.charCodeAt(i++);\n chr3 = input.charCodeAt(i++);\n enc1 = chr1 >> 2;\n enc2 = ((chr1 & 3) << 4) | (chr2 >> 4);\n enc3 = ((chr2 & 15) << 2) | (chr3 >> 6);\n enc4 = chr3 & 63;\n if (isNaN(chr2)) {\n enc3 = enc4 = 64;\n } else if (isNaN(chr3)) {\n enc4 = 64;\n }\n output = output +\n _keyStr.charAt(enc1) + _keyStr.charAt(enc2) +\n _keyStr.charAt(enc3) + _keyStr.charAt(enc4);\n }\n return output;\n }\n _utf8_encode = (string) => {\n string = string.replace(/\\r\\n/g, \"\\n\");\n let utftext = \"\";\n for (let n = 0; n < string.length; n++) {\n let c = string.charCodeAt(n);\n if (c < 128) {\n utftext += String.fromCharCode(c);\n } else if ((c > 127) && (c < 2048)) {\n utftext += String.fromCharCode((c >> 6) | 192);\n utftext += String.fromCharCode((c & 63) | 128);\n } else {\n utftext += String.fromCharCode((c >> 12) | 224);\n utftext += String.fromCharCode(((c >> 6) & 63) | 128);\n utftext += String.fromCharCode((c & 63) | 128);\n }\n }\n return utftext;\n }\n\n operationControl = (menu = []) => {\n const { operations } = this.state;\n menu.forEach(v => {\n if (v.sub) {\n return this.operationControl(v.sub);\n }\n const controllable = operations.find(vv => vv.Name === v.Name);\n const { Visibility, HoldFunctionAuth, Title } = controllable || {};\n let errorTip;\n if (!Visibility) {\n errorTip = `您的 ${Title} 模块没有启用`;\n } else if (!HoldFunctionAuth) {\n errorTip = `您没有操作 ${Title} 的权限`;\n }\n v.errorTip = errorTip;\n });\n return menu;\n }\n\n createLeftNode = () => {\n const menu = this.leftMenu;\n const menuNode = menu.map(v => {\n return (v.container ?\n <div style={v.container.style} className={v.container.className} key={v.container.className}>\n {\n v.sub.map(vv => {\n let item = vv;\n if (vv.maybe === true) {\n let status = !!PosInitData('ShowStorePrice');\n item = status ? vv : vv.second;\n }\n return (<div\n className={`member-item ${item.className} ${item.disabled ? 'menu-item-disabled' : ''}`}\n key={item.className}\n onClick={this.handelClick.bind(this, item)}\n >\n {!!item.title && <h1>{item.title}</h1>}\n {!!item.label && <p>{item.label}</p>}\n {!!item.icon && <Ticon icon={item.icon} />}\n </div>)\n })\n }\n </div>\n :\n <div\n className={`member-item ${v.className} ${v.disabled ? 'menu-item-disabled' : ''}`}\n key={v.className}\n onClick={this.handelClick.bind(this, v)}\n >\n {v.title && <h1>{v.title}</h1>}\n {v.label && <p>{v.label}</p>}\n {v.icon && <Ticon icon={v.icon} />}\n </div>)\n })\n return menuNode;\n }\n createCenterNode = () => {\n const menuLeftNode = this.centerLeftMenu.map(v => {\n return (<div\n className={`worktop-item ${v.className} ${v.disabled ? 'menu-item-disabled' : ''}`}\n style={v.style}\n key={v.className}\n onClick={this.handelClick.bind(this, v)}\n >\n {v.title && <h1>{v.title}</h1>}\n {v.label && <p>{v.label}</p>}\n {v.icon && <Ticon icon={v.icon} />}\n {v.disabled && <div className='item-disabled-placeholder' />}\n </div>)\n });\n const menuRightNode = this.centerRightMenu.map(v => {\n return (v.container ?\n <div style={v.container.style} className={v.container.className} key={v.container.className}>\n {\n v.sub.map(vv => {\n return (<div\n className={`worktop-item ${vv.className} ${vv.disabled ? 'menu-item-disabled' : ''}`}\n key={vv.className}\n onClick={this.handelClick.bind(this, vv)}\n >\n {vv.title && <h1>{vv.title}</h1>}\n {vv.label && <p>{vv.label}</p>}\n {vv.icon && <Ticon icon={vv.icon} />}\n </div>)\n })\n }\n </div>\n :\n <div\n className={`worktop-item ${v.className} ${v.disabled ? 'menu-item-disabled' : ''}`}\n key={v.className}\n onClick={this.handelClick.bind(this, v)}\n >\n {v.title && <h1>{v.title}</h1>}\n {v.label && <p>{v.label}</p>}\n {v.icon && <Ticon icon={v.icon} />}\n </div>)\n });\n return <div><div className='worktop-container-left'>{menuLeftNode}</div><div className='worktop-container-right'>{menuRightNode}</div></div>;\n }\n createRightNode = () => {\n const node = this.rightMenu.map(v => {\n return (v.container ?\n <div style={v.container.style} className={v.container.className} key={v.container.className}>\n {\n v.sub.map(vv => {\n return (<div\n className={`stock-item ${vv.className} ${vv.disabled ? 'menu-item-disabled' : ''}`}\n key={vv.className}\n onClick={this.handelClick.bind(this, vv)}\n >\n {vv.title && <h1>{vv.title}</h1>}\n {vv.label && <p>{vv.label}</p>}\n {vv.icon && <Ticon icon={vv.icon} />}\n </div>)\n })\n }\n </div>\n :\n <div\n className={`stock-item ${v.className} ${v.disabled ? 'menu-item-disabled' : ''}`}\n style={v.style}\n key={v.className}\n onClick={this.handelClick.bind(this, v)}\n >\n {!!v.title && <h1>{v.title}</h1>}\n {!!v.icon && <Ticon icon={v.icon} />}\n </div>)\n });\n return node;\n }\n\n render() {\n const { showModal, modalURL, loadHsyPage, loadHsyURL, loadTcPage, loadTcURL } = this.state;\n const screenHeight = window.screen.availHeight - 100;\n let htmlContent = null;\n if (this.isVerticalTouch) {\n htmlContent = <VerticalPortal handelClick={this.handelClick} />\n } else if (this.isHorizontalPad) {\n htmlContent = <HorizontalPadPortal handelClick={this.handelClick} />\n }\n else {\n htmlContent = (<Layout style={{ height: '100%' }} className='portal-content'>\n <Content style={{ paddingLeft: '50px', paddingRight: '50px' }} className='portal-container'>\n <Row>\n <Col xl={7} md={7} className='portal-left-col' key='left'>\n <div className='portal-left-content'>{this.createLeftNode()}</div>\n </Col>\n <Col xl={10} md={10} className='portal-center-col' key='center'>\n <div className='portal-center-content'>\n {this.createCenterNode()}\n </div>\n </Col>\n <Col xl={7} md={7} className='portal-right-col' key='right'>\n <div className='portal-right-content'>{this.createRightNode()}</div>\n </Col>\n </Row>\n </Content>\n {\n <div className={loadHsyPage ? 'portal-hsy-tc-container' : 'portal-hsy-tc-container portal-hsy-tc-container-hide'}>\n <iframe src={loadHsyURL} width='100%' height='93%' frameborder=\"no\" border=\"0\" marginwidth=\"0\" marginheight=\"0\" scrolling=\"yes\" allowtransparency=\"true\" id=\"external-frame-cc\"></iframe>\n </div>\n }\n {\n <div className={loadTcPage ? 'portal-hsy-tc-container' : 'portal-hsy-tc-container portal-hsy-tc-container-hide'}>\n <iframe src={loadTcURL} width='100%' height='93%' frameborder=\"no\" border=\"0\" marginwidth=\"0\" marginheight=\"0\" scrolling=\"yes\" allowtransparency=\"true\" id=\"external-frame-tc\"></iframe>\n </div>\n }\n {\n this.isMobileEnvironment &&\n <Modal visible={showModal}\n onCancel={this.closeFrameModal}\n width={'99%'}\n height={'99%'}\n footer={null}\n >\n <iframe src={modalURL} width='100%' height={screenHeight} frameborder=\"no\" border=\"0\" marginwidth=\"0\" marginheight=\"0\" scrolling=\"yes\" allowtransparency=\"true\"></iframe>\n </Modal>\n }\n </Layout>)\n }\n return htmlContent;\n }\n}"]}
1
+ {"version":3,"sources":["tplus-portaltouch/pages/Portalbc/index.js"],"names":["hasElectron","env","platform","constant","electron","Content","Layout","Footer","tplusWindow","HTTP_PROXY_URL","observer","props","initHsyPage","external_frame","document","getElementById","win","contentWindow","timer","setTimeout","setState","isHsyLoadFinish","HsyLoadFinish","clearTimeout","sunMiPresentationInit","result","localStore","get","store","storeName","console","log","enumController","getEnumOj","RE_POSParamType","DUAL_SCREEN_SETTING","filterResult","filter","settingItem","ParamType","window","sunMi_PresentationManager","sharedPreferencesSet","then","sendMessageToSecondScreen","step","getTcBasicInfoInit","userStore","User","restore","sid","tplusUrl","msg","ModalWraper","warning","title","content","okText","okType","substring","length","ossjumpUrl","Date","getTime","postMsgUrl","user","context","stores","loginInfo","options","UserCode","AccountNum","posCode","TplusStoreId","uid","tplusEncode","pwd","accNum","code","postMessageUrl","getScreenType","flag","isHorizontalSunMi","data","item","Name","shift","Value","saveLog","name","saveLogo","Request","undefined","handelClick","values","type","key","isModal","iframe","app","style","search","tmenuCode","state","operations","controllable","find","vv","Visibility","HoldFunctionAuth","Title","MenuCode","errorTip","showMoreModal","onOk","logout","portalStore","Message","warn","modalRouter","show","url","width","toFramePage","checkDuty","onDutyMessage","Code","IdShiftVoucher","Shift","IdDailyVoucher","DailyCode","ShiftCode","history","push","catch","onDuty","MiddleWare","execute","bPosDaily","onMakerDaily","params","sh","v","menu","toHsyPage","toTplusPage","getTplusUrlFromCloudServer","accessToken","orgId","encodeURIComponent","fetchHeader","headers","resolve","reject","fetch","response","json","ex","err","ret","dsearchPlanID","id","getSearchPlanId","location","origin","android_CommonFun","openWebUrlByOutBrowser","indexOf","new_retail_app","nativeMs","useDefaultBrowser","external_frame_tc","loadTcURL","postMessage","doType","loadTcPage","rx$","changeHsy","next","back","fn","content_only","bar_bg","bar_active_bg","secondRouter","activePrompt","closePrompt","closeable","leavePrompt","lock","pageId","pageParams","path","tabId","tabLabel","pageType","_k","IdWarehouse","WarehouseName","IsPerformanceDistribution","IdStore","PosId","defaultValue","storeId","warehouseId","requireWarehouseId","filterValue","value","deliveryStoreId","deliveryWarehouseId","randomWord","commonArgs","actionUrl","cc_url","hsy_domain","replace","getLoginCCMidWebUrl","CC_WEB_URL","HsyRouterJump","loadHsyPage","external_frame_a","wins","HsyRouterClean","only","digits","str","number","letter","arr","i","pos","Math","round","random","closeFrameModal","showModal","closeMoreModal","c","String","fromCharCode","charCodeAt","TplusBase64Encode","input","_keyStr","output","chr1","chr2","chr3","enc1","enc2","enc3","enc4","_utf8_encode","isNaN","charAt","string","utftext","n","operationControl","forEach","sub","createLeftNode","leftMenu","menuNode","map","container","className","maybe","status","second","disabled","bind","label","icon","createCenterNode","menuLeftNode","centerLeftMenu","menuRightNode","centerRightMenu","createRightNode","node","rightMenu","createMoreNode","arrs","items","sub_cc","sub_tc","now","loadHsyURL","modalURL","isVerticalTouch","isHorizontalPad","isNewRetailBCPos","isNewRetailBCPosTC","isMobileEnvironment","FuPingIsLoaded","Menus","leftMenuTC","rightMenuTC","getWebEntry","hsyBasicInfoInit","headHook","addClass","homeOperation","functionData","Loading","text","delay","set","hide","setStore","initSetParams","open","theme","themeStore","color","removeClass","setIpcRendererMethod","e","screenHeight","screen","availHeight","htmlContent","height","paddingLeft","paddingRight","Component","propTypes","routes","PropTypes","array","contextTypes","object","infoRender","func"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4BAAA;;;;;;;;;AAOA;;;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;AACA;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;AAEA,IAAMA,cAAeC,oBAAIC,QAAJ,KAAiBD,oBAAIE,QAAJ,CAAaD,QAAb,CAAsBE,QAA5D;IACQC,O,GAAoBC,4B,CAApBD,O;IAASE,M,GAAWD,4B,CAAXC,M;;AACjB,IAAIC,cAAc,IAAlB;AACA,IAAMC,iBAAiB,kCAAvB;;mBAECC,mB;;;AAWC,oBAAYC,KAAZ,EAAmB;AAAA;;AAAA;;AAAA,0IACXA,KADW;;AAAA,UA+EnBC,WA/EmB,GA+EL,YAAM;AAClB,UAAIC,iBAAiBC,SAASC,cAAT,CAAwB,mBAAxB,CAArB;AACA,UAAIC,MAAMH,kBAAkBA,eAAeI,aAA3C;AACA,UAAIC,QAAQC,WAAW,YAAM;AAAE,cAAKC,QAAL,CAAc,EAAEC,iBAAiB,IAAnB,EAAd;AAA0C,OAA7D,EAA+D,KAA/D,CAAZ;AACA,UAAI,CAACL,GAAL,EAAU;AACVA,UAAIM,aAAJ,GAAoB,YAAM;AACxBC,qBAAaL,KAAb;AACA,cAAKE,QAAL,CAAc,EAAEC,iBAAiB,IAAnB,EAAd;AACD,OAHD;AAID,KAxFkB;;AAAA,UA2FnBG,qBA3FmB,GA2FK,UAACC,MAAD,EAAY;AACjC;AACC;AACA;AAHgC,iBAIWC,2BAAWC,GAAX,CAAe,MAAf,KAA0B,EAJrC;AAAA,4BAIxBC,KAJwB;;AAAA,8CAII,EAJJ;AAAA,4CAIfC,SAJe;AAAA,UAIfA,SAJe,wCAIH,EAJG;;AAKhCC,cAAQC,GAAR,CAAYN,MAAZ;;AALgC,kCAMJO,4BAAeC,SAAf,EANI;AAAA,UAMxBC,eANwB,yBAMxBA,eANwB;;AAAA,UAOxBC,mBAPwB,GAOAD,eAPA,CAOxBC,mBAPwB;;AAQhC,UAAMC,eAAeX,UAAUA,OAAOY,MAAjB,GAAwBZ,OAAOY,MAAP,CAAc,UAACC,WAAD,EAAe;AAAC,eAAOA,YAAYC,SAAZ,KAA0BJ,mBAAjC;AAAqD,OAAnF,CAAxB,GAA6G,EAAlI;AACAK,aAAOC,yBAAP,IAAoCD,OAAOC,yBAAP,CAAiCC,oBAAjC,CAAsD,iBAAtD,EAAwEN,YAAxE,EAAsFO,IAAtF,CAA2F,YAAI;AACjIb,gBAAQC,GAAR,CAAY,QAAZ;AACAS,eAAOC,yBAAP,IAAoCD,OAAOC,yBAAP,CAAiCG,yBAAjC,CAA2D,EAAEC,MAAM,CAAR,EAAUhB,oBAAV,EAA3D,CAApC;AACD,OAHmC,CAApC;AAIH,KAxGkB;;AAAA,UAkInBiB,kBAlImB,GAkIE,YAAM;AACzB,UAAIC,YAAYC,eAAKC,OAAL,EAAhB;AACA,UAAIC,MAAMH,UAAUG,GAApB;AACA,UAAIC,WAAW,gCAAY,WAAZ,KAA4B,gCAAY,gBAAZ,CAA3C;AACA,UAAI,CAACA,QAAL,EAAe;AACb,YAAIC,MAAM,+CAAV;AACAC,0CAAYC,OAAZ,CACE;AACEC,iBAAO,MADT;AAEEC,mBAASJ,GAFX;AAGEK,kBAAQ,IAHV;AAIEC,kBAAQ;AAJV,SADF;AAQA,eAAO,KAAP;AACD;AACD,UAAIP,SAASQ,SAAT,CAAmBR,SAASS,MAAT,GAAkB,CAArC,MAA4C,GAAhD,EAAqD;AACnDT,oBAAY,GAAZ;AACD;AACD,UAAIU,aAAgBV,QAAhB,kCAAqD,IAAIW,IAAJ,GAAWC,OAAX,EAAzD;AACA,UAAIb,GAAJ,EAAS;AACPW,qBAAgBV,QAAhB,4BAA+C,IAAIW,IAAJ,GAAWC,OAAX,EAA/C,aAA2Eb,GAA3E;AACD;AACD,UAAIc,aAAaH,UAAjB;AAvByB,UAwBnBI,IAxBmB,GAwBV,MAAKC,OAAL,CAAaC,MAxBH,CAwBnBF,IAxBmB;;AAyBzB,UAAIG,YAAYH,KAAKI,OAAL,CAAa1C,GAAb,CAAiB,WAAjB,CAAhB;;AAzByB,kBA0B+ByC,aAAa,EA1B5C;AAAA,UA0BjBE,QA1BiB,SA0BjBA,QA1BiB;AAAA,UA0BPC,UA1BO,SA0BPA,UA1BO;AAAA,UA0BKC,OA1BL,SA0BKA,OA1BL;AAAA,UA0BcC,YA1Bd,SA0BcA,YA1Bd;;AA2BzB,UAAMC,MAAM,MAAKC,WAAL,CAAiBL,QAAjB,CAAZ;AACA,UAAMM,MAAM,MAAKD,WAAL,CAAiBV,KAAKI,OAAL,CAAa1C,GAAb,CAAiB,UAAjB,CAAjB,CAAZ;AACA,UAAMkD,SAAS,MAAKF,WAAL,CAAiBJ,UAAjB,CAAf;AACA,UAAMO,OAAO,MAAKH,WAAL,CAAiBH,OAAjB,CAAb;AACA,UAAM5C,QAAQ,MAAK+C,WAAL,CAAiBF,eAAe,EAAhC,CAAd;AACAZ,2DAAmDa,GAAnD,aAA8DE,GAA9D,gBAA4EC,MAA5E,iBAA8FC,IAA9F,iBAA8GlD,KAA9G;AACA,aAAO,EAAEiC,sBAAF,EAAckB,gBAAgBf,UAA9B,EAAP;AACD,KApKkB;;AAAA,UAsLnBgB,aAtLmB,GAsLH,YAAM;AACpB,UAAIC,OAAO,KAAX;AACA,UAAI,MAAKjF,WAAL,KAAqB,IAArB,IAA6B,MAAKkF,iBAAtC,EAAyD;AACvD,YAAIC,OAAOzD,2BAAWC,GAAX,CAAe,iBAAf,KAAqC,EAAhD;AACAwD,eAAOA,KAAK9C,MAAL,CAAY;AAAA,iBAAQ+C,KAAKC,IAAL,KAAc,oBAAtB;AAAA,SAAZ,CAAP;AACAF,eAAOA,QAAQA,KAAKvB,MAAL,GAAc,CAAtB,GAA0BuB,KAAKG,KAAL,EAA1B,GAAyC,IAAhD;AACA,YAAIH,QAAQA,KAAKI,KAAL,KAAe,GAA3B,EAAgC;AAC9BN,iBAAO,IAAP;AACD;AACF;AACD,aAAOA,IAAP;AACD,KAjMkB;;AAAA,UAsMnBO,OAtMmB,GAsMT,UAACC,IAAD,EAAU;AAAA,UACVC,QADU,GACGC,sBADH,CACVD,QADU;;AAElBD,aAAO,UAAUA,IAAjB;AACAC,eAAS,MAAT,EAAiBE,SAAjB,EAA4BH,IAA5B;AACD,KA1MkB;;AAAA,UA4MnBI,WA5MmB,GA4ML,YAAiB;AAAA,UAAhBC,MAAgB,uEAAP,EAAO;AAAA,UAChBC,IADgB,GACsDD,MADtD,CACrBE,GADqB;AAAA,UACVC,OADU,GACsDH,MADtD,CACVG,OADU;AAAA,UACDC,MADC,GACsDJ,MADtD,CACDI,MADC;AAAA,UACOC,GADP,GACsDL,MADtD,CACOK,GADP;AAAA,UACY5C,KADZ,GACsDuC,MADtD,CACYvC,KADZ;AAAA,UACmB8B,IADnB,GACsDS,MADtD,CACmBT,IADnB;AAAA,UACyBe,KADzB,GACsDN,MADtD,CACyBM,KADzB;AAAA,UACgCC,MADhC,GACsDP,MADtD,CACgCO,MADhC;AAAA,UACwCC,SADxC,GACsDR,MADtD,CACwCQ,SADxC;AAAA,wBAEW,MAAKC,KAFhB;AAAA,UAErBC,UAFqB,eAErBA,UAFqB;AAAA,UAETnF,eAFS,eAETA,eAFS;;AAG7B,UAAMoF,eAAeD,WAAWE,IAAX,CAAgB;AAAA,eAAMC,GAAGtB,IAAH,KAAYA,IAAlB;AAAA,OAAhB,CAArB;;AAH6B,kBAI6BoB,gBAAgB,EAJ7C;AAAA,UAIrBG,UAJqB,SAIrBA,UAJqB;AAAA,UAITC,gBAJS,SAITA,gBAJS;AAAA,UAISC,KAJT,SAISA,KAJT;AAAA,UAIgBC,QAJhB,SAIgBA,QAJhB;;AAK7B,UAAIC,iBAAJ;AACA,UAAIjB,QAAQ,MAAZ,EAAoB;AAClB,eAAO,MAAK3E,QAAL,CAAc,EAAE6F,eAAe,IAAjB,EAAd,CAAP;AACD;AACD,UAAI,CAACH,KAAL,EAAY;AACV,eAAOzD,kCAAYC,OAAZ,CAAoB;AACzBC,iBAAO,IADkB;AAEzBC,mBAAS,kBAFgB;AAGzB0D,cAHyB,kBAGlB;AACLlE,2BAAKmE,MAAL;AACD,WALwB;;AAMzBzD,kBAAQ;AANiB,SAApB,CAAP;AAQD;AACD,UAAI,CAACkD,UAAL,EAAiB;AACfI,qCAAiBF,KAAjB;AACD,OAFD,MAEO,IAAI,CAACD,gBAAL,EAAuB;AAC5BG,uDAAoBF,KAApB;AACD;AAvB4B,UAwBrBM,WAxBqB,GAwBL,MAAKlD,OAAL,CAAaC,MAxBR,CAwBrBiD,WAxBqB;;AAyB7B,UAAIJ,QAAJ,EAAc;AACZ,eAAOK,8BAAQC,IAAR,CAAaN,QAAb,CAAP;AACD;AACD,UAAIf,OAAJ,EAAa;AACX,eAAO9B,uBAAOoD,WAAP,CAAmBC,IAAnB,CAAwB,EAAEC,WAAS1B,IAAX,EAAmB2B,OAAO,GAA1B,EAA+BnE,YAA/B,EAAxB,CAAP;AACD;AACD;AACA,UAAI2C,WAAW,IAAf,EAAqB,OAAO,MAAKyB,WAAL,CAAiB,EAAE5B,UAAF,EAAQI,QAAR,EAAa5C,YAAb,EAAoB6C,YAApB,EAA2BC,cAA3B,EAAmCU,kBAAnC,EAA6CT,oBAA7C,EAAwDjF,gCAAxD,EAAjB,CAAP;AACrB,cAAQ0E,IAAR;AACE,aAAK,SAAL;AACEqB,sBAAYQ,SAAZ,GAAwBjF,IAAxB,CAA6B,UAACkF,aAAD,EAAmB;AAC9C,gBAAI,CAAC,CAACA,aAAN,EAAqB;AAAA,kBACXC,IADW,GACgDD,aADhD,CACXC,IADW;AAAA,kBACLC,cADK,GACgDF,aADhD,CACLE,cADK;AAAA,kBACWC,KADX,GACgDH,aADhD,CACWG,KADX;AAAA,kBACkBC,cADlB,GACgDJ,aADhD,CACkBI,cADlB;AAAA,kBACkCC,SADlC,GACgDL,aADhD,CACkCK,SADlC;;AAEnB,6CAAW,EAAEC,WAAWL,IAAb,EAAmBC,8BAAnB,EAAmCC,YAAnC,EAA0CC,8BAA1C,EAA0DC,oBAA1D,EAAX;AACApG,sBAAQC,GAAR,CAAY,qBAAZ,EAAmC8F,aAAnC;AACA,oBAAKrC,OAAL,CAAajC,KAAb;AACA6E,sCAAQC,IAAR,CAAa,UAAb;AACD;AACF,WARD,EAQGC,KARH,CAQS,UAACnD,IAAD,EAAU;AACjBrD,oBAAQC,GAAR,CAAY,kBAAZ,EAAgCoD,IAAhC;AACD,WAVD;AAWA;AACF,aAAK,QAAL;AACEiC,sBAAYmB,MAAZ,GAAqB5F,IAArB,CAA0B,UAACkF,aAAD,EAAmB;AAC3C,gBAAIA,iBAAiBA,cAAcvC,KAAnC,EAA0C;AACxCkD,mCAAWC,OAAX,CAAmB,QAAnB;AACD;AACF,WAJD;AAKA;AACF,aAAK,SAAL;AACEL,kCAAQC,IAAR,CAAa,uBAAb;AACA;AACF,aAAK,aAAL;AACE,cAAIjB,YAAYsB,SAAZ,EAAJ,EAA6B;AAC3BN,oCAAQC,IAAR,CAAa,2BAAb;AACD,WAFD,MAEO;AACLjB,wBAAYuB,YAAZ;AACD;AACD;AACF;AACEP,kCAAQC,IAAR,OAAiBtC,IAAjB;AACA;AAjCJ;AAmCD,KAhRkB;;AAAA,UAmRnB4B,WAnRmB,GAmRL,UAACiB,MAAD,EAAY;AAAA,kBACoDA,UAAU,EAD9D;AAAA,UAChBzC,GADgB,SAChBA,GADgB;AAAA,UACX5C,KADW,SACXA,KADW;AAAA,UACJ6C,KADI,SACJA,KADI;AAAA,UACGC,MADH,SACGA,MADH;AAAA,UACWC,SADX,SACWA,SADX;AAAA,UACsBS,QADtB,SACsBA,QADtB;AAAA,UACgC1F,eADhC,SACgCA,eADhC;;AAExB,cAAQ8E,GAAR;AACE,aAAK,IAAL;AACE,cAAI0C,KAAK,EAAT;AACA,cAAI,CAACxH,eAAD,IAAoB,CAAC,MAAK6D,iBAA9B,EAAiD;AAC/C,mBAAOmC,8BAAQC,IAAR,CAAa,cAAb,CAAP;AACD;AACD,cAAI,CAACjB,MAAL,EAAa;AACX,mBAAOgB,8BAAQC,IAAR,CAAa,YAAb,CAAP;AACD,WAFD,MAEO,IAAIjB,UAAUA,OAAOzC,MAAP,GAAgB,CAA9B,EAAiC;AACtCiF,iBAAMxC,OAAOzC,MAAP,GAAgB,CAAhB,IAAqBmD,QAAtB,GAAkCV,OAAOK,IAAP,CAAY;AAAA,qBAAKoC,EAAEC,IAAF,KAAWhC,QAAhB;AAAA,aAAZ,CAAlC,GAA0EV,OAAO,CAAP,CAA/E;AACAwC,iBAAKA,MAAMxC,OAAO,CAAP,CAAX;AACD;AACD,cAAI,CAACwC,EAAL,EAAS;AACP,mBAAOxB,8BAAQC,IAAR,CAAa,aAAb,CAAP;AACD;AACD,gBAAK0B,SAAL,4BAAoB5C,KAApB,EAA8ByC,EAA9B;AACA;AACF,aAAK,IAAL;AACE,cAAIvC,aAAaS,QAAjB,EAA2B;AACzB,kBAAKvB,OAAL,CAAajC,KAAb;AACA,gBAAIwD,QAAJ,EAAc;AACZ,oBAAKkC,WAAL,CAAiBlC,QAAjB,EAA2BV,MAA3B;AACD,aAFD,MAEO;AACL,oBAAK4C,WAAL,CAAiB3C,SAAjB,EAA4BD,MAA5B;AACD;AACF;AACD;AA1BJ;AA4BD,KAjTkB;;AAAA,UAmTnB6C,0BAnTmB,GAmTU,YAAM;AAAC;AAClC,UAAInG,YAAYC,eAAKC,OAAL,EAAhB;AACA,UAAIkC,OAAO,uBAAoBpC,UAAUoG,WAA9B,IAA8C,cAA9C,SAAkEpG,UAAUqG,KAA5E,CAAX;AACA,UAAI3B,MAAM,KAAGhH,cAAH,GAAsB4I,mBAAmB,4DAAyDlE,IAAzD,CAAnB,CAAhC;AACArD,cAAQC,GAAR,CAAY0F,GAAZ;AACA,UAAI6B,cAAc;AAChBC,iBAAS;AACP,0BAAgB;AADT;AADO,OAAlB;AAKA,aAAO,sBAAY,UAACC,OAAD,EAAUC,MAAV,EAAqB;AACtCC,cAAMjC,GAAN,EAAW6B,WAAX,EACG3G,IADH,CACQ,UAAUgH,QAAV,EAAoB;AACxB,iBAAOA,SAASC,IAAT,EAAP;AACD,SAHH,EAGKjH,IAHL,CAGU,gBAAQ;AACdb,kBAAQC,GAAR,CAAY6H,IAAZ;AACAJ,kBAAQI,IAAR;AACD,SANH,EAMKtB,KANL,CAMW,cAAM;AACbxG,kBAAQC,GAAR,CAAY8H,EAAZ;AACAJ,iBAAOK,GAAP;AACD,SATH;AAUD,OAXM,CAAP;AAYD,KAzUkB;;AAAA,UA4UnBb,WA5UmB;AAAA,2FA4UL,iBAAO3C,SAAP,EAAkBD,MAAlB;AAAA;;AAAA;AAAA;AAAA;AAAA;AACR0D,mBADQ,GACF,MAAKjH,kBAAL,EADE;;AAAA,sBAERiH,QAAQ,KAFA;AAAA;AAAA;AAAA;;AAAA;;AAAA;AAAA,wBAGyBA,OAAO,EAHhC,EAGNlG,UAHM,SAGNA,UAHM,EAGMkB,cAHN,SAGMA,cAHN;AAIRiF,6BAJQ,GAIQ,EAJR;;AAAA,sBAKR3D,UAAUA,OAAO4D,EALT;AAAA;AAAA;AAAA;;AAMF7C,2BANE,GAMc,MAAKlD,OAAL,CAAaC,MAN3B,CAMFiD,WANE;AAAA;AAAA,uBAOYA,YAAY8C,eAAZ,CAA4B7D,MAA5B,CAPZ;;AAAA;AAOV2D,6BAPU;;AAAA;AASRjB,oBATQ,GASD,MAAKpE,WAAL,CAAiB2B,SAAjB,CATC;;AAUZzC,yCAAuBkF,IAAvB,iBAAuC,MAAKpE,WAAL,CAAiBwF,SAASC,MAA1B,CAAvC;AACA,oBAAIJ,aAAJ,EAAmB;AACjBnG,mDAA+B,MAAKc,WAAL,CAAiBqF,aAAjB,CAA/B;AACD;;AAbW,qBAcR,MAAK9E,iBAdG;AAAA;AAAA;AAAA;;AAeV1C,uBAAO6H,iBAAP,CAAyBC,sBAAzB,CAAgDzG,UAAhD;AAfU;AAAA;;AAAA;AAAA,sBAkBN,CAACkB,iBAAiB,EAAlB,EAAsBwF,OAAtB,CAA8B,OAA9B,KAA0C,CAAC,CAA3C,KAAiD,MAAKC,cAAL,IAAuB,IAAvB,IAA+B,MAAKA,cAAL,IAAuB,OAAtD,IAAiE,MAAKA,cAAL,IAAuB,OAAzI,CAlBM;AAAA;AAAA;AAAA;;AAmBRC,yCAASC,iBAAT,CAA2B7G,UAA3B;AAnBQ;;AAAA;AAsBN8G,iCAtBM,GAsBc7J,SAASC,cAAT,CAAwB,mBAAxB,CAtBd;AAuBNC,mBAvBM,GAuBA2J,kBAAkB1J,aAvBlB;AAwBF2J,yBAxBE,GAwBY,MAAKrE,KAxBjB,CAwBFqE,SAxBE;;AAyBV,oBAAIA,SAAJ,EAAe;AACb5J,yBAAOA,IAAI6J,WAAJ,CAAgB,EAAEC,QAAQ,iBAAV,EAA6BxE,oBAA7B,EAAwCzC,sBAAxC,EAAoDmG,4BAApD,EAAhB,EAAqFjF,cAArF,CAAP;AACA,wBAAK3D,QAAL,CAAc,EAAE2J,YAAY,IAAd,EAAd;AACD,iBAHD,MAGO;AACL,wBAAK3J,QAAL,CAAc,EAAEwJ,WAAW/G,UAAb,EAAyBkH,YAAY,IAArC,EAAd;AACD;AACDC,oBAAIC,SAAJ,CAAcC,IAAd,CAAmB;AACjBC,wBAAM,IADW,EACLC,IAAI,cAAM;AACpBpK,2BAAOA,IAAI6J,WAAJ,CAAgB,EAAEC,QAAQ,yBAAV,EAAhB,EAAuD/F,cAAvD,CAAP;AACA,0BAAK3D,QAAL,CAAc,EAAE2J,YAAY,KAAd,EAAd;AACAC,wBAAIC,SAAJ,CAAcC,IAAd,CAAmB,EAAEC,MAAM,KAAR,EAAnB;AACD;AALgB,iBAAnB;;AA/BU;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,OA5UK;;AAAA;AAAA;AAAA;AAAA;;AAAA,UAsXnBnC,SAtXmB;AAAA,2FAsXP,kBAAOJ,MAAP;AAAA;;AAAA;AAAA;AAAA;AAAA;AAERyC,4BAFQ,GAmBNzC,MAnBM,CAERyC,YAFQ,EAGRC,MAHQ,GAmBN1C,MAnBM,CAGR0C,MAHQ,EAIRC,aAJQ,GAmBN3C,MAnBM,CAIR2C,aAJQ,EAKRxC,IALQ,GAmBNH,MAnBM,CAKRG,IALQ,EAMRyC,YANQ,GAmBN5C,MAnBM,CAMR4C,YANQ,EAORC,YAPQ,GAmBN7C,MAnBM,CAOR6C,YAPQ,EAQRC,WARQ,GAmBN9C,MAnBM,CAQR8C,WARQ,EASRC,SATQ,GAmBN/C,MAnBM,CASR+C,SATQ,EAURC,WAVQ,GAmBNhD,MAnBM,CAURgD,WAVQ,EAWRC,IAXQ,GAmBNjD,MAnBM,CAWRiD,IAXQ,EAYRC,MAZQ,GAmBNlD,MAnBM,CAYRkD,MAZQ,EAaRC,UAbQ,GAmBNnD,MAnBM,CAaRmD,UAbQ,EAcRC,IAdQ,GAmBNpD,MAnBM,CAcRoD,IAdQ,EAeRC,KAfQ,GAmBNrD,MAnBM,CAeRqD,KAfQ,EAgBRC,QAhBQ,GAmBNtD,MAnBM,CAgBRsD,QAhBQ,EAiBRC,QAjBQ,GAmBNvD,MAnBM,CAiBRuD,QAjBQ,EAkBRC,EAlBQ,GAmBNxD,MAnBM,CAkBRwD,EAlBQ;AAqBN/J,sBArBM,GAqBG,EArBH;AAsBV;;AACMgK,2BAvBI,GAuBU,gCAAY,aAAZ,KAA8B,EAvBxC;AAwBJC,6BAxBI,GAwBY,gCAAY,eAAZ,KAAgC,EAxB5C;AAyBJC,yCAzBI,GAyBwB,gCAAY,yBAAZ,MAA2C,eAA3C,IAA8D,KAzBtF;AAAA,wBA0B0E7K,8BAAcA,2BAAWC,GAAX,CAAe,MAAf,CAAd,IAAwC,EA1BlH,0BA0BFyC,SA1BE,0CA0BWoI,OA1BX,EA0BWA,OA1BX,yCA0BqB,EA1BrB,kEA0ByBC,KA1BzB,EA0ByBA,KA1BzB,yCA0BiC,EA1BjC,8CA0BuC7K,KA1BvC;AAAA,0DA0BmE,EA1BnE;AAAA,oDA0BgDC,SA1BhD,EA0BgDA,SA1BhD,yCA0B4D,EA1B5D;AAAA,+BA2BFsK,QA3BE;AAAA,kDA4BH,SA5BG,yBAyDH,QAzDG;AAAA;;AAAA;AA6BN9J,yBAAS;AACPqK,gCAAc;AACZC,6BAAS;AACP1C,0BAAIuC,OADG;AAEP3K;AAFO,qBADG;AAKZ+K,iCAAa;AACX3C,0BAAIoC,WADO;AAEX5G,4BAAM6G;AAFK;AALD;AAWhB;AAZS,iBAAT,CAaA,IAAIvD,QAAQ,mBAAZ,EAAiC;AAC/B1G,2BAAS;AACPqK,kCAAc;AACZC,+BAAS;AACP1C,4BAAIuC,OADG;AAEP3K;AAFO,uBADG;AAKZgL,0CAAoB;AAClB5C,4BAAIoC,WADc;AAElB5G,8BAAM6G;AAFY;AALR;AADP,mBAAT;AAYD;AAvDK;;AAAA;AA0DNjK,yBAAS;AACPyK,+BAAa;AACXH,6BAAS;AACPI,6BAAO;AACL9C,4BAAIuC,OADC;AAEL3K;AAFK;AADA,qBADE;AAOX+K,iCAAa;AACXG,6BAAO,CAAC;AACN9C,4BAAIoC,WADE;AAEN5G,8BAAM6G;AAFA,uBAAD;AADI;AAPF;AAef;AAhBS,iBAAT,CAiBA,IAAIC,6BAA6BxD,QAAQ,oBAAzC,EAA+D;AAC7D1G,2BAAS;AACPyK,iCAAa;AACXE,uCAAiB;AACfD,+BAAO;AACL9C,8BAAIuC,OADC;AAEL3K;AAFK;AADQ,uBADN;AAOX+K,mCAAa;AACXG,+BAAO,CAAC;AACN9C,8BAAIoC,WADE;AAEN5G,gCAAM6G;AAFA,yBAAD;AADI;AAPF;AADN,mBAAT;AAgBD;AACD;AACA,oBAAIvD,QAAQ,cAAR,IAA0BA,QAAQ,cAAtC,EAAsD;AACpD1G,2BAAS;AACPyK,iCAAa;AACXH,+BAAS;AACPI,+BAAO;AACL9C,8BAAIuC,OADC;AAEL3K;AAFK;AADA,uBADE;AAOXoL,2CAAqB;AACnBF,+BAAO,CAAC;AACN9C,8BAAIoC,WADE;AAEN5G,gCAAM6G;AAFA,yBAAD;AADY;AAPV;AADN,mBAAT;AAgBD;AA/GK;;AAAA;AAkHVhB,yBAASjC,mBAAmBiC,MAAnB,CAAT;AACAC,gCAAgBlC,mBAAmBkC,aAAnB,CAAhB;AACAxC,uBAAOyC,eAAkBzC,IAAlB,SAA0B,MAAKmE,UAAL,CAAgB,IAAhB,EAAsB,EAAtB,CAA1B,GAAwDnE,IAA/D;AACA+C,yBAAS/C,IAAT;AACAgD,6BAAa,sBAAcA,UAAd,EAA0B1J,MAA1B,CAAb;AACA2J,uBAAO3C,mBAAmB2C,IAAnB,CAAP;AACAI,qBAAK,MAAKc,UAAL,CAAgB,KAAhB,EAAuB,CAAvB,CAAL;;AAEMC,0BA1HI,eA0HmBV,KA1HnB,sBA0HyCpB,YA1HzC,gBA0HgEC,MA1HhE,uBA0HwFC,aA1HxF;AA2HJ6B,yBA3HI,UA2HarE,IA3Hb,sBA2HkC0C,YA3HlC,qBA2H8DC,WA3H9D,mBA2HuFC,SA3HvF,qBA2HgHC,WA3HhH,cA2HoIC,IA3HpI,gBA2HmJC,MA3HnJ,oBA2HwKzC,mBAAmB,yBAAe0C,UAAf,CAAnB,CA3HxK,cA2H+NC,IA3H/N,eA2H6OC,KA3H7O,kBA2H+P5C,mBAAmB6C,QAAnB,CA3H/P,YA2HkSE,EA3HlS;AA4HNiB,sBA5HM,GA4HG,MAAKC,UAAL,CAAgBC,OAAhB,CAAwB,IAAxB,EAA8B,EAA9B,IAAoCJ,UAApC,GAAiDC,SA5HpD;;AA6HVtL,wBAAQC,GAAR,CAAY,cAAZ,EAA4BsL,MAA5B;;AA7HU,qBA8HP,MAAKnI,iBA9HE;AAAA;AAAA;AAAA;;AAAA;AAAA,uBA+HiBlC,eAAKwK,mBAAL,CAAyBH,MAAzB,CA/HjB;;AAAA;AA+HFI,0BA/HE;;AAgIR3L,wBAAQC,GAAR,CAAY,aAAZ,EAA2B0L,UAA3B;AACAjL,uBAAO6H,iBAAP,CAAyBC,sBAAzB,CAAgDmD,UAAhD;AAjIQ;AAAA;;AAAA;AAmIJ5M,8BAnII,GAmIaC,SAASC,cAAT,CAAwB,mBAAxB,CAnIb;AAoIJC,mBApII,GAoIEH,eAAeI,aApIjB;;AAqIRD,uBAAOA,IAAI0M,aAAX,IAA4B1M,IAAI0M,aAAJ,CAAkB5B,MAAlB,EAA0BC,UAA1B,EAAsC,EAAEJ,oBAAF,EAAaO,kBAAb,EAAtC,CAA5B;AACA,sBAAK9K,QAAL,CAAc,EAAEuM,aAAa,IAAf,EAAd;AACA3C,oBAAIC,SAAJ,CAAcC,IAAd,CAAmB;AACjBC,wBAAM,IADW,EACLC,IAAI,cAAM;AACpB,0BAAKhK,QAAL,CAAc,EAAEuM,aAAa,KAAf,EAAd;AACA3C,wBAAIC,SAAJ,CAAcC,IAAd,CAAmB,EAAEC,MAAM,KAAR,EAAnB;AACA;AACA,wBAAIyC,mBAAmB9M,SAASC,cAAT,CAAwB,mBAAxB,CAAvB;AACA,wBAAI8M,OAAOD,iBAAiB3M,aAA5B;AACA4M,4BAAQA,KAAKC,cAAb,IAA+B9M,IAAI8M,cAAJ,EAA/B;AACD;AARgB,iBAAnB;;AAvIQ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,OAtXO;;AAAA;AAAA;AAAA;AAAA;;AAAA,UA0gBnBZ,UA1gBmB,GA0gBN,UAACa,IAAD,EAAOC,MAAP,EAAkB;AAC7B,UAAIC,MAAM,EAAV;AACA,UAAMC,SAAS,CAAC,GAAD,EAAM,GAAN,EAAW,GAAX,EAAgB,GAAhB,EAAqB,GAArB,EAA0B,GAA1B,EAA+B,GAA/B,EAAoC,GAApC,EAAyC,GAAzC,EAA8C,GAA9C,CAAf;AACA,UAAMC,SAAS,CAAC,GAAD,EAAM,GAAN,EAAW,GAAX,EAAgB,GAAhB,EAAqB,GAArB,EAA0B,GAA1B,EAA+B,GAA/B,EAAoC,GAApC,EAAyC,GAAzC,EAA8C,GAA9C,EAAmD,GAAnD,EAAwD,GAAxD,EAA6D,GAA7D,EAAkE,GAAlE,EAAuE,GAAvE,EAA4E,GAA5E,EAAiF,GAAjF,EAAsF,GAAtF,EAA2F,GAA3F,EAAgG,GAAhG,EAAqG,GAArG,EAA0G,GAA1G,EAA+G,GAA/G,EAAoH,GAApH,EAAyH,GAAzH,EAA8H,GAA9H,CAAf;AACA,UAAIC,MAAML,iBAAWG,MAAX,cAAyBA,MAAzB,EAAoCC,MAApC,CAAV;AACA,WAAK,IAAIE,IAAI,CAAb,EAAgBA,IAAIL,MAApB,EAA4BK,GAA5B,EAAiC;AAC/B,YAAIC,MAAMC,KAAKC,KAAL,CAAWD,KAAKE,MAAL,MAAiBL,IAAIxK,MAAJ,GAAa,CAA9B,CAAX,CAAV;AACAqK,eAAOG,IAAIE,GAAJ,CAAP;AACD;AACD,aAAOL,GAAP;AACD,KAphBkB;;AAAA,UAshBnBS,eAthBmB,GAshBD,YAAM;AACtB,YAAKtN,QAAL,CAAc,EAAEuN,WAAW,KAAb,EAAd;AACD,KAxhBkB;;AAAA,UA0hBnBC,cA1hBmB,GA0hBF,YAAM;AACrB,YAAKxN,QAAL,CAAc,EAAE6F,eAAe,KAAjB,EAAd;AACD,KA5hBkB;;AAAA,UA8hBnBtC,WA9hBmB,GA8hBL,UAACG,IAAD,EAAU;AACtB,UAAI+J,IAAIC,OAAOC,YAAP,CAAoBjK,KAAKkK,UAAL,CAAgB,CAAhB,IAAqBlK,KAAKlB,MAA9C,CAAR;AACA,WAAK,IAAIyK,IAAI,CAAb,EAAgBA,IAAIvJ,KAAKlB,MAAzB,EAAiCyK,GAAjC,EAAsC;AACpCQ,aAAKC,OAAOC,YAAP,CAAoBjK,KAAKkK,UAAL,CAAgBX,CAAhB,IAAqBvJ,KAAKkK,UAAL,CAAgBX,IAAI,CAApB,CAAzC,CAAL;AACD;AACD,UAAItE,MAAM,MAAKkF,iBAAL,CAAuBJ,CAAvB,CAAV;AACA,aAAO9E,GAAP;AACD,KAriBkB;;AAAA,UAuiBnBkF,iBAviBmB,GAuiBC,UAACC,KAAD,EAAW;AAC7B,UAAMC,UAAU,mEAAhB;AACA,UAAIC,SAAS,EAAb;AACA,UAAIC,aAAJ;AAAA,UAAUC,aAAV;AAAA,UAAgBC,aAAhB;AAAA,UAAsBC,aAAtB;AAAA,UAA4BC,aAA5B;AAAA,UAAkCC,aAAlC;AAAA,UAAwCC,aAAxC;AACA,UAAItB,IAAI,CAAR;AACAa,cAAQ,MAAKU,YAAL,CAAkBV,KAAlB,CAAR;AACA,aAAOb,IAAIa,MAAMtL,MAAjB,EAAyB;AACvByL,eAAOH,MAAMF,UAAN,CAAiBX,GAAjB,CAAP;AACAiB,eAAOJ,MAAMF,UAAN,CAAiBX,GAAjB,CAAP;AACAkB,eAAOL,MAAMF,UAAN,CAAiBX,GAAjB,CAAP;AACAmB,eAAOH,QAAQ,CAAf;AACAI,eAAQ,CAACJ,OAAO,CAAR,KAAc,CAAf,GAAqBC,QAAQ,CAApC;AACAI,eAAQ,CAACJ,OAAO,EAAR,KAAe,CAAhB,GAAsBC,QAAQ,CAArC;AACAI,eAAOJ,OAAO,EAAd;AACA,YAAIM,MAAMP,IAAN,CAAJ,EAAiB;AACfI,iBAAOC,OAAO,EAAd;AACD,SAFD,MAEO,IAAIE,MAAMN,IAAN,CAAJ,EAAiB;AACtBI,iBAAO,EAAP;AACD;AACDP,iBAASA,SACPD,QAAQW,MAAR,CAAeN,IAAf,CADO,GACgBL,QAAQW,MAAR,CAAeL,IAAf,CADhB,GAEPN,QAAQW,MAAR,CAAeJ,IAAf,CAFO,GAEgBP,QAAQW,MAAR,CAAeH,IAAf,CAFzB;AAGD;AACD,aAAOP,MAAP;AACD,KA/jBkB;;AAAA,UAgkBnBQ,YAhkBmB,GAgkBJ,UAACG,MAAD,EAAY;AACzBA,eAASA,OAAOxC,OAAP,CAAe,OAAf,EAAwB,IAAxB,CAAT;AACA,UAAIyC,UAAU,EAAd;AACA,WAAK,IAAIC,IAAI,CAAb,EAAgBA,IAAIF,OAAOnM,MAA3B,EAAmCqM,GAAnC,EAAwC;AACtC,YAAIpB,IAAIkB,OAAOf,UAAP,CAAkBiB,CAAlB,CAAR;AACA,YAAIpB,IAAI,GAAR,EAAa;AACXmB,qBAAWlB,OAAOC,YAAP,CAAoBF,CAApB,CAAX;AACD,SAFD,MAEO,IAAKA,IAAI,GAAL,IAAcA,IAAI,IAAtB,EAA6B;AAClCmB,qBAAWlB,OAAOC,YAAP,CAAqBF,KAAK,CAAN,GAAW,GAA/B,CAAX;AACAmB,qBAAWlB,OAAOC,YAAP,CAAqBF,IAAI,EAAL,GAAW,GAA/B,CAAX;AACD,SAHM,MAGA;AACLmB,qBAAWlB,OAAOC,YAAP,CAAqBF,KAAK,EAAN,GAAY,GAAhC,CAAX;AACAmB,qBAAWlB,OAAOC,YAAP,CAAsBF,KAAK,CAAN,GAAW,EAAZ,GAAkB,GAAtC,CAAX;AACAmB,qBAAWlB,OAAOC,YAAP,CAAqBF,IAAI,EAAL,GAAW,GAA/B,CAAX;AACD;AACF;AACD,aAAOmB,OAAP;AACD,KAjlBkB;;AAAA,UAmlBnBE,gBAnlBmB,GAmlBA,YAAe;AAAA,UAAdnH,IAAc,uEAAP,EAAO;AAAA,UACxBvC,UADwB,GACT,MAAKD,KADI,CACxBC,UADwB;;AAEhCuC,WAAKoH,OAAL,CAAa,aAAK;AAChB,YAAIrH,EAAEsH,GAAN,EAAW;AACT,iBAAO,MAAKF,gBAAL,CAAsBpH,EAAEsH,GAAxB,CAAP;AACD;AACD,YAAM3J,eAAeD,WAAWE,IAAX,CAAgB;AAAA,iBAAMC,GAAGtB,IAAH,KAAYyD,EAAEzD,IAApB;AAAA,SAAhB,CAArB;;AAJgB,oBAKgCoB,gBAAgB,EALhD;AAAA,YAKRG,UALQ,SAKRA,UALQ;AAAA,YAKIC,gBALJ,SAKIA,gBALJ;AAAA,YAKsBC,KALtB,SAKsBA,KALtB;;AAMhB,YAAIE,iBAAJ;AACA,YAAI,CAACJ,UAAL,EAAiB;AACfI,uCAAiBF,KAAjB;AACD,SAFD,MAEO,IAAI,CAACD,gBAAL,EAAuB;AAC5BG,yDAAoBF,KAApB;AACD;AACDgC,UAAE9B,QAAF,GAAaA,QAAb;AACD,OAbD;AAcA,aAAO+B,IAAP;AACD,KApmBkB;;AAAA,UAsmBnBsH,cAtmBmB,GAsmBF,YAAM;AACrB,UAAMtH,OAAO,MAAKuH,QAAlB;AACA,UAAMC,WAAWxH,KAAKyH,GAAL,CAAS,aAAK;AAC7B,eAAQ1H,EAAE2H,SAAF,GACN;AAAA;AAAA,YAAK,OAAO3H,EAAE2H,SAAF,CAAYrK,KAAxB,EAA+B,WAAW0C,EAAE2H,SAAF,CAAYC,SAAtD,EAAiE,KAAK5H,EAAE2H,SAAF,CAAYC,SAAlF;AAEI5H,YAAEsH,GAAF,CAAMI,GAAN,CAAU,cAAM;AACd,gBAAIpL,OAAOuB,EAAX;AACA,gBAAIA,GAAGgK,KAAH,KAAa,IAAjB,EAAuB;AACrB,kBAAIC,SAAS,CAAC,CAAC,gCAAY,gBAAZ,CAAf;AACAxL,qBAAOwL,SAASjK,EAAT,GAAcA,GAAGkK,MAAxB;AACD;AACD,mBAAQ;AAAA;AAAA;AACN,4CAA0BzL,KAAKsL,SAA/B,UAA4CtL,KAAK0L,QAAL,GAAgB,oBAAhB,GAAuC,EAAnF,CADM;AAEN,qBAAK1L,KAAKsL,SAFJ;AAGN,yBAAS,MAAK7K,WAAL,CAAiBkL,IAAjB,QAA4B3L,IAA5B;AAHH;AAKL,eAAC,CAACA,KAAK7B,KAAP,IAAgB;AAAA;AAAA;AAAK6B,qBAAK7B;AAAV,eALX;AAML,eAAC,CAAC6B,KAAK4L,KAAP,IAAgB;AAAA;AAAA;AAAI5L,qBAAK4L;AAAT,eANX;AAOL,eAAC,CAAC5L,KAAK6L,IAAP,IAAe,8BAAC,2BAAD,IAAO,MAAM7L,KAAK6L,IAAlB;AAPV,aAAR;AASD,WAfD;AAFJ,SADM,GAsBN;AAAA;AAAA;AACE,wCAA0BnI,EAAE4H,SAA5B,UAAyC5H,EAAEgI,QAAF,GAAa,oBAAb,GAAoC,EAA7E,CADF;AAEE,iBAAKhI,EAAE4H,SAFT;AAGE,qBAAS,MAAK7K,WAAL,CAAiBkL,IAAjB,QAA4BjI,CAA5B;AAHX;AAKGA,YAAEvF,KAAF,IAAW;AAAA;AAAA;AAAKuF,cAAEvF;AAAP,WALd;AAMGuF,YAAEkI,KAAF,IAAW;AAAA;AAAA;AAAIlI,cAAEkI;AAAN,WANd;AAOGlI,YAAEmI,IAAF,IAAU,8BAAC,2BAAD,IAAO,MAAMnI,EAAEmI,IAAf;AAPb,SAtBF;AA+BD,OAhCgB,CAAjB;AAiCA,aAAOV,QAAP;AACD,KA1oBkB;;AAAA,UA2oBnBW,gBA3oBmB,GA2oBA,YAAM;AACvB,UAAMC,eAAe,MAAKC,cAAL,CAAoBZ,GAApB,CAAwB,aAAK;AAChD,eAAQ;AAAA;AAAA;AACN,yCAA2B1H,EAAE4H,SAA7B,UAA0C5H,EAAEgI,QAAF,GAAa,oBAAb,GAAoC,EAA9E,CADM;AAEN,mBAAOhI,EAAE1C,KAFH;AAGN,iBAAK0C,EAAE4H,SAHD;AAIN,qBAAS,MAAK7K,WAAL,CAAiBkL,IAAjB,QAA4BjI,CAA5B;AAJH;AAMLA,YAAEvF,KAAF,IAAW;AAAA;AAAA;AAAKuF,cAAEvF;AAAP,WANN;AAOLuF,YAAEkI,KAAF,IAAW;AAAA;AAAA;AAAIlI,cAAEkI;AAAN,WAPN;AAQLlI,YAAEmI,IAAF,IAAU,8BAAC,2BAAD,IAAO,MAAMnI,EAAEmI,IAAf,GARL;AASLnI,YAAEgI,QAAF,IAAc,uCAAK,WAAU,2BAAf;AATT,SAAR;AAWD,OAZoB,CAArB;AAaA,UAAMO,gBAAgB,MAAKC,eAAL,CAAqBd,GAArB,CAAyB,aAAK;AAClD,eAAQ1H,EAAE2H,SAAF,GACN;AAAA;AAAA,YAAK,OAAO3H,EAAE2H,SAAF,CAAYrK,KAAxB,EAA+B,WAAW0C,EAAE2H,SAAF,CAAYC,SAAtD,EAAiE,KAAK5H,EAAE2H,SAAF,CAAYC,SAAlF;AAEI5H,YAAEsH,GAAF,CAAMI,GAAN,CAAU,cAAM;AACd,mBAAQ;AAAA;AAAA;AACN,6CAA2B7J,GAAG+J,SAA9B,UAA2C/J,GAAGmK,QAAH,GAAc,oBAAd,GAAqC,EAAhF,CADM;AAEN,qBAAKnK,GAAG+J,SAFF;AAGN,yBAAS,MAAK7K,WAAL,CAAiBkL,IAAjB,QAA4BpK,EAA5B;AAHH;AAKLA,iBAAGpD,KAAH,IAAY;AAAA;AAAA;AAAKoD,mBAAGpD;AAAR,eALP;AAMLoD,iBAAGqK,KAAH,IAAY;AAAA;AAAA;AAAIrK,mBAAGqK;AAAP,eANP;AAOLrK,iBAAGsK,IAAH,IAAW,8BAAC,2BAAD,IAAO,MAAMtK,GAAGsK,IAAhB;AAPN,aAAR;AASD,WAVD;AAFJ,SADM,GAiBN;AAAA;AAAA;AACE,yCAA2BnI,EAAE4H,SAA7B,UAA0C5H,EAAEgI,QAAF,GAAa,oBAAb,GAAoC,EAA9E,CADF;AAEE,iBAAKhI,EAAE4H,SAFT;AAGE,qBAAS,MAAK7K,WAAL,CAAiBkL,IAAjB,QAA4BjI,CAA5B;AAHX;AAKGA,YAAEvF,KAAF,IAAW;AAAA;AAAA;AAAKuF,cAAEvF;AAAP,WALd;AAMGuF,YAAEkI,KAAF,IAAW;AAAA;AAAA;AAAIlI,cAAEkI;AAAN,WANd;AAOGlI,YAAEmI,IAAF,IAAU,8BAAC,2BAAD,IAAO,MAAMnI,EAAEmI,IAAf;AAPb,SAjBF;AA0BD,OA3BqB,CAAtB;AA4BA,aAAO;AAAA;AAAA;AAAK;AAAA;AAAA,YAAK,WAAU,wBAAf;AAAyCE;AAAzC,SAAL;AAAiE;AAAA;AAAA,YAAK,WAAU,yBAAf;AAA0CE;AAA1C;AAAjE,OAAP;AACD,KAtrBkB;;AAAA,UAurBnBE,eAvrBmB,GAurBD,YAAM;AACtB,UAAMC,OAAO,MAAKC,SAAL,CAAejB,GAAf,CAAmB,aAAK;AACnC,eAAQ1H,EAAE2H,SAAF,GACN;AAAA;AAAA,YAAK,OAAO3H,EAAE2H,SAAF,CAAYrK,KAAxB,EAA+B,WAAW0C,EAAE2H,SAAF,CAAYC,SAAtD,EAAiE,KAAK5H,EAAE2H,SAAF,CAAYC,SAAlF;AAEI5H,YAAEsH,GAAF,CAAMI,GAAN,CAAU,cAAM;AACd,mBAAQ;AAAA;AAAA;AACN,2CAAyB7J,GAAG+J,SAA5B,UAAyC/J,GAAGmK,QAAH,GAAc,oBAAd,GAAqC,EAA9E,CADM;AAEN,qBAAKnK,GAAG+J,SAFF;AAGN,yBAAS,MAAK7K,WAAL,CAAiBkL,IAAjB,QAA4BpK,EAA5B;AAHH;AAKLA,iBAAGpD,KAAH,IAAY;AAAA;AAAA;AAAKoD,mBAAGpD;AAAR,eALP;AAMLoD,iBAAGqK,KAAH,IAAY;AAAA;AAAA;AAAIrK,mBAAGqK;AAAP,eANP;AAOLrK,iBAAGsK,IAAH,IAAW,8BAAC,2BAAD,IAAO,MAAMtK,GAAGsK,IAAhB;AAPN,aAAR;AASD,WAVD;AAFJ,SADM,GAiBN;AAAA;AAAA;AACE,uCAAyBnI,EAAE4H,SAA3B,UAAwC5H,EAAEgI,QAAF,GAAa,oBAAb,GAAoC,EAA5E,CADF;AAEE,mBAAOhI,EAAE1C,KAFX;AAGE,iBAAK0C,EAAE4H,SAHT;AAIE,qBAAS,MAAK7K,WAAL,CAAiBkL,IAAjB,QAA4BjI,CAA5B;AAJX;AAMG,WAAC,CAACA,EAAEvF,KAAJ,IAAa;AAAA;AAAA;AAAKuF,cAAEvF;AAAP,WANhB;AAOG,WAAC,CAACuF,EAAEmI,IAAJ,IAAY,8BAAC,2BAAD,IAAO,MAAMnI,EAAEmI,IAAf;AAPf,SAjBF;AA0BD,OA3BY,CAAb;AA4BA,aAAOO,IAAP;AACD,KArtBkB;;AAAA,UAutBnBE,cAvtBmB,GAutBF,YAAM;AACrB,UAAMC,OAAO,MAAKL,eAAL,CAAqB5K,IAArB,CAA0B;AAAA,eAAKoC,EAAEsH,GAAF,IAAStH,EAAEsH,GAAF,CAAM1J,IAAN,CAAW;AAAA,iBAAMC,GAAGX,GAAH,IAAU,MAAhB;AAAA,SAAX,CAAd;AAAA,OAA1B,EAA4EoK,GAA5E,CAAgF,CAAhF,CAAb;AACA,UAAMwB,QAAS,MAAKpH,cAAL,IAAuB,IAAxB,GAAgCmH,KAAKE,MAArC,GAA+C,MAAKrH,cAAL,IAAuB,IAAvB,IAA+B,MAAKA,cAAL,IAAuB,OAAtD,IAAiE,MAAKA,cAAL,IAAuB,OAAxF,GAAkGmH,KAAKG,MAAvG,GAAgH,EAA7K;AACA,UAAMN,OAAOI,MAAMhO,MAAN,GAAe,CAAf,IAAoBgO,MAAMpB,GAAN,CAAU,aAAK;AAC9C,eACE;AAAA;AAAA;AACE,wCAA0B1H,EAAE4H,SAD9B;AAEE,mBAAO5H,EAAE1C,KAFX;AAGE,iBAAK0C,EAAE4H,SAHT;AAIE,qBAAS,MAAK7K,WAAL,CAAiBkL,IAAjB,QAA4BjI,CAA5B;AAJX;AAMG,WAAC,CAACA,EAAEmI,IAAJ,IAAY;AAAA;AAAA,cAAK,WAAU,OAAf;AAAuB,0CAAC,2BAAD,IAAO,MAAMnI,EAAEmI,IAAf;AAAvB,WANf;AAOG,WAAC,CAACnI,EAAEvF,KAAJ,IAAa;AAAA;AAAA;AAAKuF,cAAEvF;AAAP;AAPhB,SADF;AAWD,OAZgC,CAAjC;AAaA,aAAOiO,IAAP;AACD,KAxuBkB;;AAEjB,UAAKxR,WAAL,GAAmBA,WAAnB;AACA,UAAKuG,KAAL,GAAa;AACX0D,UAAInG,KAAKiO,GAAL,EADO;AAEXvL,kBAAY,EAFD;AAGXmI,iBAAW,KAHA;AAIX1H,qBAAe,KAJJ;AAKX0G,mBAAa,KALF;AAMXqE,kBAAY,EAND;AAOX3Q,uBAAiB,KAPN;AAQX0J,kBAAY,KARD;AASXH,iBAAW,EATA;AAUXqH,gBAAU;AAVC,KAAb;;AAHiB,iBAeqF/R,yBAAY,EAfjG;AAAA,QAeTgS,eAfS,UAeTA,eAfS;AAAA,QAeQC,eAfR,UAeQA,eAfR;AAAA,QAeyBjN,iBAfzB,UAeyBA,iBAfzB;AAAA,QAe4CkN,gBAf5C,UAe4CA,gBAf5C;AAAA,QAe8DC,kBAf9D,UAe8DA,kBAf9D;;AAgBjB,UAAKH,eAAL,GAAuB,CAAC,CAACA,eAAzB;AACA,UAAKC,eAAL,GAAuB,CAAC,CAACA,eAAzB;AACA,UAAKjN,iBAAL,GAAyB,CAAC,CAACA,iBAA3B;AACA,UAAKoN,mBAAL,GAA2B,CAAC,CAACH,eAAF,IAAqB,CAAC,CAACjN,iBAAlD;AACA,UAAKqN,cAAL,GAAsB,KAAtB;AACA,UAAKH,gBAAL,GAAwB,CAAC,CAACA,gBAA1B;AACA,UAAKC,kBAAL,GAA0B,CAAC,CAACA,kBAA5B;AACA,UAAK7H,cAAL,GAAsB9I,8BAAcA,2BAAWC,GAAX,CAAe,kBAAf,CAApC;;AAEA;AAzBiB,QA0BT2O,QA1BS,GA0ByEkC,cA1BzE,CA0BTlC,QA1BS;AAAA,QA0BCc,cA1BD,GA0ByEoB,cA1BzE,CA0BCpB,cA1BD;AAAA,QA0BiBE,eA1BjB,GA0ByEkB,cA1BzE,CA0BiBlB,eA1BjB;AAAA,QA0BkCG,SA1BlC,GA0ByEe,cA1BzE,CA0BkCf,SA1BlC;AAAA,QA0B6CgB,UA1B7C,GA0ByED,cA1BzE,CA0B6CC,UA1B7C;AAAA,QA0ByDC,WA1BzD,GA0ByEF,cA1BzE,CA0ByDE,WA1BzD;;AA2BjB,UAAKpC,QAAL,GAAgB+B,qBAAqBI,UAArB,GAAkCnC,QAAlD;AACA,UAAKc,cAAL,GAAsBA,cAAtB;AACA,UAAKE,eAAL,GAAuBA,eAAvB;AACA,UAAKG,SAAL,GAAiBY,qBAAqBK,WAArB,GAAmCjB,SAApD;AACA,UAAKnE,UAAL,GAAkBtK,kBAAQA,eAAK2P,WAAL,EAA1B;AACA,UAAKzF,UAAL,GAAkB,MAAKA,UAAL,CAAgB6D,IAAhB,OAAlB;AACA,uBAAQ,YAAM;AACZ,YAAK6B,gBAAL;AACD,KAFD;AAjCiB;AAoClB;;;;yCAEoB;AAAA;;AAAA,sBACmD,KAAK1O,OADxD;AAAA,uCACXC,MADW;AAAA,0DACe,EADf;AAAA,UACDiD,WADC,oBACDA,WADC;AAAA,yCACmByL,QADnB;AAAA,8DAC4C,EAD5C;AAAA,UAC+BC,QAD/B,sBAC+BA,QAD/B;AAAA,UAEXC,aAFW,GAEqBpN,sBAFrB,CAEXoN,aAFW;AAAA,UAEIC,YAFJ,GAEqBrN,sBAFrB,CAEIqN,YAFJ;;AAGnBC,oCAAQzL,IAAR,CAAa;AACX0L,cAAM,YADK;AAEXC,eAAO;AAFI,OAAb;AAIAJ,sBAAgBpQ,IAAhB,CAAqB,sBAAc;AACjCjB,mCAAW0R,GAAX,CAAe,gBAAf,EAAiC5M,aAAa,yBAAeA,UAAf,CAAb,GAA0C,EAA3E;AACA,eAAKpF,QAAL,CAAc,EAAEoF,YAAYA,cAAc,EAA5B,EAAd;AACAyM,sCAAQI,IAAR;AACD,OAJD,EAIG/K,KAJH,CAIS,UAACwB,GAAD,EAAS;AAChBhI,gBAAQC,GAAR,CAAY,2BAAZ,EAAyC+H,GAAzC;AACAmJ,sCAAQI,IAAR;AACD,OAPD;AAQAL,qBAAerQ,IAAf,CAAoB,gBAAQ;AAC1B;AACA,uCAAWwC,IAAX;AACD,OAHD;AAIA2N,kBAAYA,SAAS,KAAKvM,KAAL,CAAW0D,EAApB,EAAwB,YAAxB,CAAZ;AACA;AACA9F,6BAAOmP,QAAP,CAAgBC,aAAhB,GAAgC5Q,IAAhC,CAAqC,eAAO;AAC1C;AACA,YAAI,OAAKqC,aAAL,OAAyB,IAA7B,EAAmC;AACjC,cAAI,OAAKE,iBAAT,EAA4B;AAC1B,mBAAK1D,qBAAL,CAA2BuI,GAA3B;AACA;AACD;AACDvH,iBAAOgR,IAAP,CAAY,mBAAmB,IAAI1P,IAAJ,GAAWC,OAAX,EAA/B,EAAqD,QAArD;AACD;AACF,OATD;AAUA,WAAK6O,gBAAL;AACD;;;wCAEmB;AAClB,UAAI,KAAKR,gBAAL,IAAyB,CAAC,KAAKF,eAA/B,IAAkD,CAAC,KAAKC,eAA5D,EAA6E;AAC3E,aAAKvR,WAAL;AACD;AACF;;AAED;;;AAYA;;;;;;AAgBA;uCACmB;AACjB,UAAM6S,QAAQtP,uBAAOiD,WAAP,CAAmBsM,UAAjC;AACA,UAAIC,QAAQ,SAAZ;AACA,cAAQF,KAAR;AACE,aAAK,QAAL;AACEE,kBAAQ,SAAR;AACA;AACF,aAAK,MAAL;AACEA,kBAAQ,SAAR;AACA;AACF,aAAK,MAAL;AACEA,kBAAQ,SAAR;AACA;AACF,aAAK,MAAL;AACEA,kBAAQ,SAAR;AACA;AAZJ;;AAHiB,mBAiBMjS,8BAAcA,2BAAWC,GAAX,CAAe,UAAf,CAAd,IAA4C,EAjBlD;AAAA,gCAiBT8K,KAjBS;AAAA,UAiBTA,KAjBS,gCAiBD,EAjBC;;AAkBjB,UAAMY,SAAY,KAAKC,UAAL,CAAgBC,OAAhB,CAAwB,IAAxB,EAA8B,EAA9B,CAAZ,+BAAuEd,KAAvE,kCAAyGpD,mBAAmB,SAAnB,CAAzG,uBAAwJA,mBAAmBsK,KAAnB,CAA9J;AACA,WAAKvS,QAAL,CAAc,EAAE4Q,YAAY3E,MAAd,EAAd;AACD;;AAED;;;;2CAqCuB;AAAA,8BACsB,KAAKnJ,OAD3B,CACb2O,QADa;AAAA,4DACe,EADf;AAAA,UACDe,WADC,qBACDA,WADC;;AAErBA,qBAAeA,YAAY,KAAKrN,KAAL,CAAW0D,EAAvB,EAA2B,YAA3B,CAAf;AACD;;;gDAE2B;AAC1B,UAAI,KAAKjF,aAAL,OAAyB,IAA7B,EAAmC;AACjC,YAAI,KAAKE,iBAAL,IAA0B,KAAKqN,cAAnC,EAAmD;AACjD/P,iBAAOC,yBAAP,IAAoCD,OAAOC,yBAAP,CAAiCG,yBAAjC,CAA2D,EAAEC,MAAM,CAAR,EAA3D,CAApC;AACD,SAFD,MAEO;AACL4H,sCAAYA,yBAASoJ,oBAAT,CAA8B,aAA9B,EAA6C,EAAEhR,MAAM,CAAR,EAA7C,CAAZ;AACD;AACF;AACF;;AAED;;;;8BAcUuC,I,EAAM0O,C,EAAG;AACjB1L,8BAAQC,IAAR,CAAajD,KAAK4G,IAAlB;AACD;;AA6ED;;;AAyDA;;;AA0CA;;;;6BAqXS;AAAA,mBACuF,KAAKzF,KAD5F;AAAA,UACCoI,SADD,UACCA,SADD;AAAA,UACW1H,aADX,UACWA,aADX;AAAA,UAC0BgL,QAD1B,UAC0BA,QAD1B;AAAA,UACoCtE,WADpC,UACoCA,WADpC;AAAA,UACiDqE,UADjD,UACiDA,UADjD;AAAA,UAC6DjH,UAD7D,UAC6DA,UAD7D;AAAA,UACyEH,SADzE,UACyEA,SADzE;;AAEP,UAAMmJ,eAAevR,OAAOwR,MAAP,CAAcC,WAAd,GAA4B,GAAjD;AACA,UAAIC,cAAc,IAAlB;AACA,UAAI,KAAKhC,eAAT,EAA0B;AACxBgC,sBAAc,8BAAC,wBAAD,IAAgB,aAAa,KAAKrO,WAAlC,GAAd;AACD,OAFD,MAEO,IAAI,KAAKsM,eAAT,EAA0B;AAC/B+B,sBAAc,8BAAC,6BAAD,IAAqB,aAAa,KAAKrO,WAAvC,GAAd;AACD,OAFM,MAGF;AACHqO,sBAAe;AAAC,sCAAD;AAAA,YAAQ,OAAO,EAAEC,QAAQ,MAAV,EAAf,EAAmC,WAAU,gBAA7C;AACb;AAAC,mBAAD;AAAA,cAAS,OAAO,EAAEC,aAAa,MAAf,EAAuBC,cAAc,MAArC,EAAhB,EAA+D,WAAU,kBAAzE;AACE;AAAC,uBAAD;AAAA;AACE;AAAC,yBAAD;AAAA,kBAAK,IAAI,CAAT,EAAY,IAAI,CAAhB,EAAmB,WAAU,iBAA7B,EAA+C,KAAI,MAAnD;AACE;AAAA;AAAA,oBAAK,WAAU,qBAAf;AAAsC,uBAAKhE,cAAL;AAAtC;AADF,eADF;AAIE;AAAC,yBAAD;AAAA,kBAAK,IAAI,EAAT,EAAa,IAAI,EAAjB,EAAqB,WAAU,mBAA/B,EAAmD,KAAI,QAAvD;AACE;AAAA;AAAA,oBAAK,WAAU,uBAAf;AACG,uBAAKa,gBAAL;AADH;AADF,eAJF;AASE;AAAC,yBAAD;AAAA,kBAAK,IAAI,CAAT,EAAY,IAAI,CAAhB,EAAmB,WAAU,kBAA7B,EAAgD,KAAI,OAApD;AACE;AAAA;AAAA,oBAAK,WAAU,sBAAf;AAAuC,uBAAKK,eAAL;AAAvC;AADF;AATF;AADF,WADa;AAiBX;AAAA;AAAA,cAAK,WAAW5D,cAAc,yBAAd,GAA0C,sDAA1D;AACE,sDAAQ,KAAKqE,UAAb,EAAyB,OAAM,MAA/B,EAAsC,QAAO,KAA7C,EAAmD,aAAY,IAA/D,EAAoE,QAAO,GAA3E,EAA+E,aAAY,GAA3F,EAA+F,cAAa,GAA5G,EAAgH,WAAU,KAA1H,EAAgI,mBAAkB,MAAlJ,EAAyJ,IAAG,mBAA5J;AADF,WAjBW;AAsBX;AAAA;AAAA,cAAK,WAAWjH,aAAa,yBAAb,GAAyC,sDAAzD;AACE,sDAAQ,KAAKH,SAAb,EAAwB,OAAM,MAA9B,EAAqC,QAAO,KAA5C,EAAkD,aAAY,IAA9D,EAAmE,QAAO,GAA1E,EAA8E,aAAY,GAA1F,EAA8F,cAAa,GAA3G,EAA+G,WAAU,KAAzH,EAA+H,mBAAkB,MAAjJ,EAAwJ,IAAG,mBAA3J;AADF,WAtBW;AA2BX,eAAK0H,mBAAL,IACA;AAAC,uBAAD;AAAA;AACE,uBAAS3D,SADX;AAEE,wBAAU,KAAKD,eAFjB;AAGE,qBAAO,KAHT;AAIE,sBAAQ,KAJV;AAKE,sBAAQ;AALV;AAOI,sDAAQ,KAAKuD,QAAb,EAAuB,OAAM,MAA7B,EAAoC,QAAQ8B,YAA5C,EAA0D,aAAY,IAAtE,EAA2E,QAAO,GAAlF,EAAsF,aAAY,GAAlG,EAAsG,cAAa,GAAnH,EAAuH,WAAU,KAAjI,EAAuI,mBAAkB,MAAzJ;AAPJ,WA5BW;AAuCX;AAAC,uBAAD;AAAA;AACE,qBAAO,IADT;AAEE,yBAAW,6BAFb;AAGE,uBAAS9M,aAHX;AAIE,wBAAU,KAAK2H,cAJjB;AAKE,qBAAO,GALT;AAME,sBAAQ,GANV;AAOE,sBAAQ,IAPV;AAQE,4BARF;AASE,4BAAc,KAThB;AAUE,wBAAU;AAVZ;AAaI,iBAAK8C,cAAL;AAbJ;AAvCW,SAAf;AAyDD;AACD,aAAOwC,WAAP;AACD;;;EAzzB0BI,gB,WACpBC,S,GAAY;AACjBC,UAAQC,oBAAUC;AADD,C,UAGZC,Y,GAAe;AACpBxQ,UAAQsQ,oBAAUG,MADE;AAEpBC,cAAYJ,oBAAUK,IAFF;AAGpBjC,YAAU4B,oBAAUG;AAHA,C","file":"index.js","sourcesContent":["/*\r\n * @Description:\r\n * @Date: 2019-08-13 08:42:18\r\n * @LastEditTime: 2021-10-27 11:15:33\r\n * @LastEditors: chenlongad\r\n * @modify:修改跳转到T+的查询方案方式\r\n */\r\nimport React, { Component } from 'react';\r\nimport { observer } from 'mobx-react';\r\nimport { autorun} from 'mobx';\r\nimport { Row, Col, Modal } from 'antd';\r\nimport { history, stores, nativeMs, env, localStore } from 'mutants-microfx';\r\nimport { Ticon, Layout, ModalWraper, Loading, Message } from 'tplus-components-touch';\r\nimport { User } from 'tplus-api';\r\nimport { PosSetData, PosInitData } from 'tplus-poslogin';\r\nimport { platform, enumController } from 'mutants-util';\r\nimport PropTypes from 'prop-types';\r\nimport { Request } from '../../api/ModifyPassApi';\r\nimport Menus from './data';\r\nimport MiddleWare from '../../middleWare';\r\nimport VerticalPortal from './verticalPortal';\r\nimport HorizontalPadPortal from './horizontalPadPortal';\r\nimport './index.less';\r\n\r\nconst hasElectron = (env.platform === env.constant.platform.electron);\r\nconst { Content, Footer } = Layout;\r\nlet tplusWindow = null;\r\nconst HTTP_PROXY_URL = 'http://tfproxy.chanjet.com/?url=';\r\n\r\n@observer\r\nexport default class extends Component {\r\n static propTypes = {\r\n routes: PropTypes.array,\r\n };\r\n static contextTypes = {\r\n stores: PropTypes.object,\r\n infoRender: PropTypes.func,\r\n headHook: PropTypes.object\r\n };\r\n\r\n constructor(props) {\r\n super(props);\r\n this.hasElectron = hasElectron;\r\n this.state = {\r\n id: Date.now(),\r\n operations: [],\r\n showModal: false,\r\n showMoreModal: false,\r\n loadHsyPage: false,\r\n loadHsyURL: '',\r\n isHsyLoadFinish: false,\r\n loadTcPage: false,\r\n loadTcURL: '',\r\n modalURL: '',\r\n }\r\n const { isVerticalTouch, isHorizontalPad, isHorizontalSunMi, isNewRetailBCPos, isNewRetailBCPosTC } = platform || {};\r\n this.isVerticalTouch = !!isVerticalTouch;\r\n this.isHorizontalPad = !!isHorizontalPad;\r\n this.isHorizontalSunMi = !!isHorizontalSunMi;\r\n this.isMobileEnvironment = !!isHorizontalPad || !!isHorizontalSunMi;\r\n this.FuPingIsLoaded = false;\r\n this.isNewRetailBCPos = !!isNewRetailBCPos;\r\n this.isNewRetailBCPosTC = !!isNewRetailBCPosTC;\r\n this.new_retail_app = localStore && localStore.get('newRetailAppType');\r\n\r\n //首页布局\r\n const { leftMenu, centerLeftMenu, centerRightMenu, rightMenu, leftMenuTC, rightMenuTC } = Menus;\r\n this.leftMenu = isNewRetailBCPosTC ? leftMenuTC : leftMenu;\r\n this.centerLeftMenu = centerLeftMenu;\r\n this.centerRightMenu = centerRightMenu;\r\n this.rightMenu = isNewRetailBCPosTC ? rightMenuTC : rightMenu;\r\n this.hsy_domain = User && User.getWebEntry();\r\n this.randomWord = this.randomWord.bind(this);\r\n autorun(() => {\r\n this.hsyBasicInfoInit();\r\n });\r\n }\r\n\r\n componentWillMount() {\r\n const { stores: { portalStore } = {}, headHook: { addClass } = {} } = this.context;\r\n const { homeOperation, functionData } = Request;\r\n Loading.show({\r\n text: '首页权限加载中...',\r\n delay: 2500\r\n });\r\n homeOperation().then(operations => {\r\n localStore.set('operationsAuth', operations ? JSON.stringify(operations) : []);\r\n this.setState({ operations: operations || [] });\r\n Loading.hide();\r\n }).catch((err) => {\r\n console.log('homeOperation.error======', err);\r\n Loading.hide();\r\n });\r\n functionData().then(data => {\r\n // 加载权限数据 DR-29735 by majian\r\n PosSetData(data);\r\n });\r\n addClass && addClass(this.state.id, 'portalHead');\r\n // 初始化参数设置。\r\n stores.setStore.initSetParams().then(ret => {\r\n // 在客户端中,如果开启了副屏设置,尝试这打开副屏。\r\n if (this.getScreenType() === true) {\r\n if (this.isHorizontalSunMi) {\r\n this.sunMiPresentationInit(ret);\r\n return;\r\n }\r\n window.open('vicescreen?ts=' + new Date().getTime(), 'screen');\r\n }\r\n })\r\n this.hsyBasicInfoInit();\r\n }\r\n\r\n componentDidMount() {\r\n if (this.isNewRetailBCPos && !this.isVerticalTouch && !this.isHorizontalPad) {\r\n this.initHsyPage();\r\n }\r\n }\r\n\r\n // 初始化好生意页面\r\n initHsyPage = () => {\r\n let external_frame = document.getElementById('external-frame-cc');\r\n let win = external_frame && external_frame.contentWindow;\r\n let timer = setTimeout(() => { this.setState({ isHsyLoadFinish: true }) }, 15000);\r\n if (!win) return;\r\n win.HsyLoadFinish = () => {\r\n clearTimeout(timer);\r\n this.setState({ isHsyLoadFinish: true });\r\n }\r\n }\r\n\r\n // 初始化商米副屏\r\n sunMiPresentationInit = (result) => {\r\n //SunMi初始化参数设置。\r\n //副屏幕交互。硬件改动20200428 需要在商米页面加载成功后才能发送 初始化命令\r\n // 进行主副屏数据交互 初始化\r\n const { store: { storeName = '' } = {} } = localStore.get('user') || {};\r\n console.log(result);\r\n const { RE_POSParamType } = enumController.getEnumOj();\r\n const { DUAL_SCREEN_SETTING } = RE_POSParamType;\r\n const filterResult = result && result.filter?result.filter((settingItem)=>{return settingItem.ParamType === DUAL_SCREEN_SETTING}):[];\r\n window.sunMi_PresentationManager && window.sunMi_PresentationManager.sharedPreferencesSet(\"setting_setData\",filterResult).then(()=>{\r\n console.log(\"缓存数据成功\")\r\n window.sunMi_PresentationManager && window.sunMi_PresentationManager.sendMessageToSecondScreen({ step: 0,storeName});\r\n });\r\n }\r\n\r\n // 初始化智+模块信息\r\n hsyBasicInfoInit() {\r\n const theme = stores.portalStore.themeStore;\r\n let color = '#FF8C25';\r\n switch (theme) {\r\n case 'orange':\r\n color = \"#FF8C25\";\r\n break;\r\n case 'blue':\r\n color = \"#3491FF\";\r\n break;\r\n case 'dark':\r\n color = \"#26A0DE\";\r\n break;\r\n case 'pink':\r\n color = \"#FF6B8C\";\r\n break;\r\n }\r\n const { PosId = '' } = localStore && localStore.get('StoreKey') || {};\r\n const cc_url = `${this.hsy_domain.replace('#/', '')}?fromApp=nretail&posid=${PosId}&content_only=true&bar_bg=${encodeURIComponent('#FFFFFF')}&bar_active_bg=${encodeURIComponent(color)}`;\r\n this.setState({ loadHsyURL: cc_url });\r\n }\r\n\r\n //初始化tc、tcyzj、tczsy信息\r\n getTcBasicInfoInit = () => {\r\n let userStore = User.restore();\r\n let sid = userStore.sid;\r\n let tplusUrl = PosInitData(\"TplusSite\") || PosInitData(\"tplusinnersite\");\r\n if (!tplusUrl) {\r\n let msg = \"请用admin登录,在服务器配置–地址配置处,设置“内部或外部网络访问T+服务器的地址”!\";\r\n ModalWraper.warning(\r\n {\r\n title: '温馨提示',\r\n content: msg,\r\n okText: '确定',\r\n okType: 'primary',\r\n }\r\n )\r\n return false;\r\n }\r\n if (tplusUrl.substring(tplusUrl.length - 1) !== '/') {\r\n tplusUrl += '/';\r\n }\r\n let ossjumpUrl = `${tplusUrl}view/portal/portal.html?t=${new Date().getTime()}`\r\n if (sid) {\r\n ossjumpUrl = `${tplusUrl}view/ossjump.html?t=${new Date().getTime()}&sid=${sid}`\r\n }\r\n let postMsgUrl = ossjumpUrl;\r\n let { user } = this.context.stores;\r\n let loginInfo = user.options.get('loginInfo');\r\n const { UserCode, AccountNum, posCode, TplusStoreId } = loginInfo || {};\r\n const uid = this.tplusEncode(UserCode);\r\n const pwd = this.tplusEncode(user.options.get(\"password\"));\r\n const accNum = this.tplusEncode(AccountNum)\r\n const code = this.tplusEncode(posCode);\r\n const store = this.tplusEncode(TplusStoreId + '');\r\n ossjumpUrl += `&fromApp=nretail&way=inframe&user=${uid}&pwd=${pwd}&accNum=${accNum}&posCode=${code}&storeID=${store}`;\r\n return { ossjumpUrl, postMessageUrl: postMsgUrl };\r\n }\r\n\r\n componentWillUnmount() {\r\n const { headHook: { removeClass } = {} } = this.context\r\n removeClass && removeClass(this.state.id, 'portalHead');\r\n }\r\n\r\n componentWillReceiveProps() {\r\n if (this.getScreenType() === true) {\r\n if (this.isHorizontalSunMi && this.FuPingIsLoaded) {\r\n window.sunMi_PresentationManager && window.sunMi_PresentationManager.sendMessageToSecondScreen({ step: 1 });\r\n } else {\r\n nativeMs && nativeMs.setIpcRendererMethod('ReplyScreen', { step: 1 })\r\n }\r\n }\r\n }\r\n\r\n // 获取副屏的状态\r\n getScreenType = () => {\r\n let flag = false;\r\n if (this.hasElectron === true || this.isHorizontalSunMi) {\r\n let data = localStore.get('setting_setData') || [];\r\n data = data.filter(item => item.Name === 'EnableDoubleScreen');\r\n data = data && data.length > 0 ? data.shift() : null;\r\n if (data && data.Value === '1') {\r\n flag = true;\r\n }\r\n }\r\n return flag;\r\n }\r\n\r\n menuClick(item, e) {\r\n history.push(item.path);\r\n }\r\n saveLog = (name) => {\r\n const { saveLogo } = Request;\r\n name = \"进入模块:\" + name;\r\n saveLogo('进入模块', undefined, name);\r\n }\r\n\r\n handelClick = (values = {}) => {\r\n const { key: type, isModal, iframe, app, title, Name, style, search, tmenuCode } = values;\r\n const { operations, isHsyLoadFinish } = this.state;\r\n const controllable = operations.find(vv => vv.Name === Name);\r\n const { Visibility, HoldFunctionAuth, Title, MenuCode } = controllable || {};\r\n let errorTip;\r\n if (type == 'more') {\r\n return this.setState({ showMoreModal: true })\r\n }\r\n if (!Title) {\r\n return ModalWraper.warning({\r\n title: '提示',\r\n content: '您的权限配置请求失败,请重新登录',\r\n onOk() {\r\n User.logout();\r\n },\r\n okType: 'primary',\r\n })\r\n }\r\n if (!Visibility) {\r\n errorTip = `您的 ${Title} 模块没有启用`;\r\n } else if (!HoldFunctionAuth) {\r\n errorTip = `您没有操作 ${Title} 的权限`;\r\n }\r\n const { portalStore } = this.context.stores;\r\n if (errorTip) {\r\n return Message.warn(errorTip);\r\n }\r\n if (isModal) {\r\n return stores.modalRouter.show({ url: `/${type}`, width: 800, title });\r\n }\r\n // 支持页面内打开,减少再次加载页面的时间。\r\n if (iframe === true) return this.toFramePage({ type, app, title, style, search, MenuCode, tmenuCode, isHsyLoadFinish });\r\n switch (type) {\r\n case 'cashier':\r\n portalStore.checkDuty().then((onDutyMessage) => {\r\n if (!!onDutyMessage) {\r\n const { Code, IdShiftVoucher, Shift, IdDailyVoucher, DailyCode } = onDutyMessage;\r\n PosSetData({ ShiftCode: Code, IdShiftVoucher, Shift, IdDailyVoucher, DailyCode });\r\n console.log('onDutyMessage======', onDutyMessage);\r\n this.saveLog(title);\r\n history.push('/RE/RE01');\r\n }\r\n }).catch((data) => {\r\n console.log(\"进入前台收银检查是否当班返回错误\", data);\r\n });\r\n break;\r\n case 'onDuty':\r\n portalStore.onDuty().then((onDutyMessage) => {\r\n if (onDutyMessage && onDutyMessage.shift) {\r\n MiddleWare.execute('onDuty')\r\n }\r\n });\r\n break;\r\n case 'offDuty':\r\n history.push('/offDuty?type=offDuty');\r\n break;\r\n case 'settleDialy':\r\n if (portalStore.bPosDaily()) {\r\n history.push('/offDuty?type=settleDaily');\r\n } else {\r\n portalStore.onMakerDaily();\r\n }\r\n break;\r\n default:\r\n history.push(`/${type}`);\r\n break;\r\n }\r\n };\r\n\r\n //跳转其他页面,以内嵌形式打开\r\n toFramePage = (params) => {\r\n const { app, title, style, search, tmenuCode, MenuCode, isHsyLoadFinish } = params || {}\r\n switch (app) {\r\n case 'cc':\r\n let sh = '';\r\n if (!isHsyLoadFinish && !this.isHorizontalSunMi) {\r\n return Message.warn('正在加载资源中,请稍后。');\r\n }\r\n if (!search) {\r\n return Message.warn('正在紧急研发中...');\r\n } else if (search && search.length > 0) {\r\n sh = (search.length > 1 && MenuCode) ? search.find(v => v.menu === MenuCode) : search[0];\r\n sh = sh || search[0];\r\n }\r\n if (!sh) {\r\n return Message.warn('传递参数有误,请查证。');\r\n }\r\n this.toHsyPage({ ...style, ...sh });\r\n break;\r\n case 'tc':\r\n if (tmenuCode || MenuCode) {\r\n this.saveLog(title);\r\n if (MenuCode) {\r\n this.toTplusPage(MenuCode, search);\r\n } else {\r\n this.toTplusPage(tmenuCode, search);\r\n }\r\n }\r\n break;\r\n }\r\n }\r\n\r\n getTplusUrlFromCloudServer = () => {//获取T+服务器配置地址。\r\n let userStore = User.restore();\r\n let data = 'accesstoken=' + `${userStore.accessToken}` + '&cloudOrgId=' + `${userStore.orgId}`;\r\n let url = `${HTTP_PROXY_URL}` + encodeURIComponent('http://mns.chanapp.chanjet.com/web/WebServer/get?' + `${data}`);\r\n console.log(url);\r\n let fetchHeader = {\r\n headers: {\r\n 'Content-Type': 'application/x-www-form-urlencoded'\r\n }\r\n };\r\n return new Promise((resolve, reject) => {\r\n fetch(url, fetchHeader)\r\n .then(function (response) {\r\n return response.json();\r\n }).then(json => {\r\n console.log(json);\r\n resolve(json);\r\n }).catch(ex => {\r\n console.log(ex);\r\n reject(err);\r\n })\r\n })\r\n }\r\n\r\n //跳转到T+\r\n toTplusPage = async (tmenuCode, search) => {\r\n let ret = this.getTcBasicInfoInit();\r\n if (ret === false) return;\r\n let { ossjumpUrl, postMessageUrl } = ret || {};\r\n let dsearchPlanID = '';\r\n if (search && search.id) {\r\n const { portalStore } = this.context.stores;\r\n dsearchPlanID = await portalStore.getSearchPlanId(search);\r\n }\r\n let menu = this.tplusEncode(tmenuCode);\r\n ossjumpUrl += `&menu=${menu}&fromUrl=${this.tplusEncode(location.origin)}`;\r\n if (dsearchPlanID) {\r\n ossjumpUrl += `&searchPlanID=${this.tplusEncode(dsearchPlanID)}`;\r\n }\r\n if (this.isHorizontalSunMi) {\r\n window.android_CommonFun.openWebUrlByOutBrowser(ossjumpUrl);\r\n } else {\r\n //对于专属云、云主机,如果配置的http,存在跨域问题,暂时解决不了,只能通过打开默认浏览器打开。\r\n if ((postMessageUrl + '').indexOf('https') == -1 && (this.new_retail_app == 'tc' || this.new_retail_app == 'tczsy' || this.new_retail_app == 'tcyzj')) {\r\n nativeMs.useDefaultBrowser(ossjumpUrl);\r\n return;\r\n }\r\n let external_frame_tc = document.getElementById('external-frame-tc');\r\n let win = external_frame_tc.contentWindow;\r\n const { loadTcURL } = this.state;\r\n if (loadTcURL) {\r\n win && win.postMessage({ doType: 'openMenuFromPos', tmenuCode, ossjumpUrl, dsearchPlanID }, postMessageUrl);\r\n this.setState({ loadTcPage: true });\r\n } else {\r\n this.setState({ loadTcURL: ossjumpUrl, loadTcPage: true });\r\n }\r\n rx$.changeHsy.next({\r\n back: true, fn: () => {\r\n win && win.postMessage({ doType: 'closeCurrentMenuFromPos' }, postMessageUrl);\r\n this.setState({ loadTcPage: false });\r\n rx$.changeHsy.next({ back: false });\r\n }\r\n })\r\n }\r\n }\r\n\r\n //跳转CC\r\n toHsyPage = async (params) => {\r\n let {\r\n content_only, //只加载内容区域\r\n bar_bg, //页签栏颜色\r\n bar_active_bg, //激活态的标签背景颜色\r\n menu,\r\n secondRouter,\r\n activePrompt,\r\n closePrompt,\r\n closeable,\r\n leavePrompt,\r\n lock,\r\n pageId,\r\n pageParams,\r\n path,\r\n tabId,\r\n tabLabel,\r\n pageType,\r\n _k\r\n } = params;\r\n\r\n let filter = {};\r\n //对仓库参数的处理\r\n const IdWarehouse = PosInitData('IdWarehouse') || '';\r\n const WarehouseName = PosInitData('WarehouseName') || '';\r\n const IsPerformanceDistribution = PosInitData('PerformanceDistribution') === 'SHIPPER_STORE' || false;\r\n const { loginInfo: { IdStore = '', PosId = '' }, store: { storeName = '' } = {} } = localStore && localStore.get('user') || {};\r\n switch (pageType) {\r\n case 'voucher':\r\n filter = {\r\n defaultValue: {\r\n storeId: {\r\n id: IdStore,\r\n storeName\r\n },\r\n warehouseId: {\r\n id: IdWarehouse,\r\n name: WarehouseName\r\n }\r\n }\r\n }\r\n //要货单特殊处理\r\n if (menu == 'require-goods-new') {\r\n filter = {\r\n defaultValue: {\r\n storeId: {\r\n id: IdStore,\r\n storeName\r\n },\r\n requireWarehouseId: {\r\n id: IdWarehouse,\r\n name: WarehouseName\r\n }\r\n }\r\n }\r\n }\r\n break;\r\n case 'report':\r\n filter = {\r\n filterValue: {\r\n storeId: {\r\n value: {\r\n id: IdStore,\r\n storeName\r\n }\r\n },\r\n warehouseId: {\r\n value: [{\r\n id: IdWarehouse,\r\n name: WarehouseName\r\n }]\r\n }\r\n }\r\n }\r\n // 收银统计表\r\n if (IsPerformanceDistribution && menu == 'retail-cash-report') {\r\n filter = {\r\n filterValue: {\r\n deliveryStoreId: {\r\n value: {\r\n id: IdStore,\r\n storeName\r\n }\r\n },\r\n warehouseId: {\r\n value: [{\r\n id: IdWarehouse,\r\n name: WarehouseName\r\n }]\r\n }\r\n }\r\n }\r\n }\r\n // 售后、配送\r\n if (menu == 'return-order' || menu == 'order-manage') {\r\n filter = {\r\n filterValue: {\r\n storeId: {\r\n value: {\r\n id: IdStore,\r\n storeName\r\n }\r\n },\r\n deliveryWarehouseId: {\r\n value: [{\r\n id: IdWarehouse,\r\n name: WarehouseName\r\n }]\r\n }\r\n }\r\n }\r\n }\r\n break;\r\n }\r\n bar_bg = encodeURIComponent(bar_bg);\r\n bar_active_bg = encodeURIComponent(bar_active_bg);\r\n menu = secondRouter ? `${menu}/${this.randomWord(true, 13)}` : menu;\r\n pageId = menu;\r\n pageParams = Object.assign(pageParams, filter);\r\n path = encodeURIComponent(path);\r\n _k = this.randomWord(false, 6);\r\n\r\n const commonArgs = `?posid=${PosId}&content_only=${content_only}&bar_bg=${bar_bg}&bar_active_bg=${bar_active_bg}`;\r\n const actionUrl = `#/${menu}?activePrompt=${activePrompt}&closePrompt=${closePrompt}&closeable=${closeable}&leavePrompt=${leavePrompt}&lock=${lock}&pageId=${pageId}&pageParams=${encodeURIComponent(JSON.stringify(pageParams))}&path=${path}&tabId=${tabId}&tabLabel=${encodeURIComponent(tabLabel)}&_k=${_k}`;\r\n let cc_url = this.hsy_domain.replace('#/', '') + commonArgs + actionUrl;\r\n console.log('web_hsy_url:', cc_url);\r\n if(this.isHorizontalSunMi){\r\n const CC_WEB_URL = await User.getLoginCCMidWebUrl(cc_url)\r\n console.log('CC_WEB_URL:', CC_WEB_URL);\r\n window.android_CommonFun.openWebUrlByOutBrowser(CC_WEB_URL);\r\n }else{\r\n let external_frame = document.getElementById('external-frame-cc');\r\n let win = external_frame.contentWindow;\r\n win && win.HsyRouterJump && win.HsyRouterJump(pageId, pageParams, { closeable, tabLabel });\r\n this.setState({ loadHsyPage: true });\r\n rx$.changeHsy.next({\r\n back: true, fn: () => {\r\n this.setState({ loadHsyPage: false });\r\n rx$.changeHsy.next({ back: false });\r\n // 在打开页签之前,关闭之前的。\r\n let external_frame_a = document.getElementById('external-frame-cc');\r\n let wins = external_frame_a.contentWindow;\r\n wins && wins.HsyRouterClean && win.HsyRouterClean();\r\n }\r\n })\r\n }\r\n }\r\n\r\n randomWord = (only, digits) => {\r\n let str = \"\";\r\n const number = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9'];\r\n const letter = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z']\r\n let arr = only ? [...number] : [...number, ...letter];\r\n for (let i = 0; i < digits; i++) {\r\n let pos = Math.round(Math.random() * (arr.length - 1));\r\n str += arr[pos];\r\n }\r\n return str;\r\n }\r\n\r\n closeFrameModal = () => {\r\n this.setState({ showModal: false })\r\n }\r\n\r\n closeMoreModal = () => {\r\n this.setState({ showMoreModal: false })\r\n }\r\n\r\n tplusEncode = (code) => {\r\n let c = String.fromCharCode(code.charCodeAt(0) + code.length);\r\n for (let i = 1; i < code.length; i++) {\r\n c += String.fromCharCode(code.charCodeAt(i) + code.charCodeAt(i - 1));\r\n }\r\n let ret = this.TplusBase64Encode(c);\r\n return ret;\r\n }\r\n\r\n TplusBase64Encode = (input) => {\r\n const _keyStr = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\";\r\n let output = \"\";\r\n let chr1, chr2, chr3, enc1, enc2, enc3, enc4;\r\n let i = 0;\r\n input = this._utf8_encode(input);\r\n while (i < input.length) {\r\n chr1 = input.charCodeAt(i++);\r\n chr2 = input.charCodeAt(i++);\r\n chr3 = input.charCodeAt(i++);\r\n enc1 = chr1 >> 2;\r\n enc2 = ((chr1 & 3) << 4) | (chr2 >> 4);\r\n enc3 = ((chr2 & 15) << 2) | (chr3 >> 6);\r\n enc4 = chr3 & 63;\r\n if (isNaN(chr2)) {\r\n enc3 = enc4 = 64;\r\n } else if (isNaN(chr3)) {\r\n enc4 = 64;\r\n }\r\n output = output +\r\n _keyStr.charAt(enc1) + _keyStr.charAt(enc2) +\r\n _keyStr.charAt(enc3) + _keyStr.charAt(enc4);\r\n }\r\n return output;\r\n }\r\n _utf8_encode = (string) => {\r\n string = string.replace(/\\r\\n/g, \"\\n\");\r\n let utftext = \"\";\r\n for (let n = 0; n < string.length; n++) {\r\n let c = string.charCodeAt(n);\r\n if (c < 128) {\r\n utftext += String.fromCharCode(c);\r\n } else if ((c > 127) && (c < 2048)) {\r\n utftext += String.fromCharCode((c >> 6) | 192);\r\n utftext += String.fromCharCode((c & 63) | 128);\r\n } else {\r\n utftext += String.fromCharCode((c >> 12) | 224);\r\n utftext += String.fromCharCode(((c >> 6) & 63) | 128);\r\n utftext += String.fromCharCode((c & 63) | 128);\r\n }\r\n }\r\n return utftext;\r\n }\r\n\r\n operationControl = (menu = []) => {\r\n const { operations } = this.state;\r\n menu.forEach(v => {\r\n if (v.sub) {\r\n return this.operationControl(v.sub);\r\n }\r\n const controllable = operations.find(vv => vv.Name === v.Name);\r\n const { Visibility, HoldFunctionAuth, Title } = controllable || {};\r\n let errorTip;\r\n if (!Visibility) {\r\n errorTip = `您的 ${Title} 模块没有启用`;\r\n } else if (!HoldFunctionAuth) {\r\n errorTip = `您没有操作 ${Title} 的权限`;\r\n }\r\n v.errorTip = errorTip;\r\n });\r\n return menu;\r\n }\r\n\r\n createLeftNode = () => {\r\n const menu = this.leftMenu;\r\n const menuNode = menu.map(v => {\r\n return (v.container ?\r\n <div style={v.container.style} className={v.container.className} key={v.container.className}>\r\n {\r\n v.sub.map(vv => {\r\n let item = vv;\r\n if (vv.maybe === true) {\r\n let status = !!PosInitData('ShowStorePrice');\r\n item = status ? vv : vv.second;\r\n }\r\n return (<div\r\n className={`member-item ${item.className} ${item.disabled ? 'menu-item-disabled' : ''}`}\r\n key={item.className}\r\n onClick={this.handelClick.bind(this, item)}\r\n >\r\n {!!item.title && <h1>{item.title}</h1>}\r\n {!!item.label && <p>{item.label}</p>}\r\n {!!item.icon && <Ticon icon={item.icon} />}\r\n </div>)\r\n })\r\n }\r\n </div>\r\n :\r\n <div\r\n className={`member-item ${v.className} ${v.disabled ? 'menu-item-disabled' : ''}`}\r\n key={v.className}\r\n onClick={this.handelClick.bind(this, v)}\r\n >\r\n {v.title && <h1>{v.title}</h1>}\r\n {v.label && <p>{v.label}</p>}\r\n {v.icon && <Ticon icon={v.icon} />}\r\n </div>)\r\n })\r\n return menuNode;\r\n }\r\n createCenterNode = () => {\r\n const menuLeftNode = this.centerLeftMenu.map(v => {\r\n return (<div\r\n className={`worktop-item ${v.className} ${v.disabled ? 'menu-item-disabled' : ''}`}\r\n style={v.style}\r\n key={v.className}\r\n onClick={this.handelClick.bind(this, v)}\r\n >\r\n {v.title && <h1>{v.title}</h1>}\r\n {v.label && <p>{v.label}</p>}\r\n {v.icon && <Ticon icon={v.icon} />}\r\n {v.disabled && <div className='item-disabled-placeholder' />}\r\n </div>)\r\n });\r\n const menuRightNode = this.centerRightMenu.map(v => {\r\n return (v.container ?\r\n <div style={v.container.style} className={v.container.className} key={v.container.className}>\r\n {\r\n v.sub.map(vv => {\r\n return (<div\r\n className={`worktop-item ${vv.className} ${vv.disabled ? 'menu-item-disabled' : ''}`}\r\n key={vv.className}\r\n onClick={this.handelClick.bind(this, vv)}\r\n >\r\n {vv.title && <h1>{vv.title}</h1>}\r\n {vv.label && <p>{vv.label}</p>}\r\n {vv.icon && <Ticon icon={vv.icon} />}\r\n </div>)\r\n })\r\n }\r\n </div>\r\n :\r\n <div\r\n className={`worktop-item ${v.className} ${v.disabled ? 'menu-item-disabled' : ''}`}\r\n key={v.className}\r\n onClick={this.handelClick.bind(this, v)}\r\n >\r\n {v.title && <h1>{v.title}</h1>}\r\n {v.label && <p>{v.label}</p>}\r\n {v.icon && <Ticon icon={v.icon} />}\r\n </div>)\r\n });\r\n return <div><div className='worktop-container-left'>{menuLeftNode}</div><div className='worktop-container-right'>{menuRightNode}</div></div>;\r\n }\r\n createRightNode = () => {\r\n const node = this.rightMenu.map(v => {\r\n return (v.container ?\r\n <div style={v.container.style} className={v.container.className} key={v.container.className}>\r\n {\r\n v.sub.map(vv => {\r\n return (<div\r\n className={`stock-item ${vv.className} ${vv.disabled ? 'menu-item-disabled' : ''}`}\r\n key={vv.className}\r\n onClick={this.handelClick.bind(this, vv)}\r\n >\r\n {vv.title && <h1>{vv.title}</h1>}\r\n {vv.label && <p>{vv.label}</p>}\r\n {vv.icon && <Ticon icon={vv.icon} />}\r\n </div>)\r\n })\r\n }\r\n </div>\r\n :\r\n <div\r\n className={`stock-item ${v.className} ${v.disabled ? 'menu-item-disabled' : ''}`}\r\n style={v.style}\r\n key={v.className}\r\n onClick={this.handelClick.bind(this, v)}\r\n >\r\n {!!v.title && <h1>{v.title}</h1>}\r\n {!!v.icon && <Ticon icon={v.icon} />}\r\n </div>)\r\n });\r\n return node;\r\n }\r\n\r\n createMoreNode = () => {\r\n const arrs = this.centerRightMenu.find(v => v.sub && v.sub.find(vv => vv.key == 'more')).sub[1];\r\n const items = (this.new_retail_app == 'cc') ? arrs.sub_cc : (this.new_retail_app == 'tc' || this.new_retail_app == 'tczsy' || this.new_retail_app == 'tcyzj' ? arrs.sub_tc : []);\r\n const node = items.length > 0 && items.map(v => {\r\n return (\r\n <div\r\n className={`modal-quick ${v.className}`}\r\n style={v.style}\r\n key={v.className}\r\n onClick={this.handelClick.bind(this, v)}\r\n >\r\n {!!v.icon && <div className='quick'><Ticon icon={v.icon} /></div>}\r\n {!!v.title && <h1>{v.title}</h1>}\r\n </div>\r\n )\r\n })\r\n return node;\r\n }\r\n\r\n render() {\r\n const { showModal,showMoreModal, modalURL, loadHsyPage, loadHsyURL, loadTcPage, loadTcURL } = this.state;\r\n const screenHeight = window.screen.availHeight - 100;\r\n let htmlContent = null;\r\n if (this.isVerticalTouch) {\r\n htmlContent = <VerticalPortal handelClick={this.handelClick} />\r\n } else if (this.isHorizontalPad) {\r\n htmlContent = <HorizontalPadPortal handelClick={this.handelClick} />\r\n }\r\n else {\r\n htmlContent = (<Layout style={{ height: '100%' }} className='portal-content'>\r\n <Content style={{ paddingLeft: '50px', paddingRight: '50px' }} className='portal-container'>\r\n <Row>\r\n <Col xl={7} md={7} className='portal-left-col' key='left'>\r\n <div className='portal-left-content'>{this.createLeftNode()}</div>\r\n </Col>\r\n <Col xl={10} md={10} className='portal-center-col' key='center'>\r\n <div className='portal-center-content'>\r\n {this.createCenterNode()}\r\n </div>\r\n </Col>\r\n <Col xl={7} md={7} className='portal-right-col' key='right'>\r\n <div className='portal-right-content'>{this.createRightNode()}</div>\r\n </Col>\r\n </Row>\r\n </Content>\r\n {\r\n <div className={loadHsyPage ? 'portal-hsy-tc-container' : 'portal-hsy-tc-container portal-hsy-tc-container-hide'}>\r\n <iframe src={loadHsyURL} width='100%' height='93%' frameborder=\"no\" border=\"0\" marginwidth=\"0\" marginheight=\"0\" scrolling=\"yes\" allowtransparency=\"true\" id=\"external-frame-cc\"></iframe>\r\n </div>\r\n }\r\n {\r\n <div className={loadTcPage ? 'portal-hsy-tc-container' : 'portal-hsy-tc-container portal-hsy-tc-container-hide'}>\r\n <iframe src={loadTcURL} width='100%' height='93%' frameborder=\"no\" border=\"0\" marginwidth=\"0\" marginheight=\"0\" scrolling=\"yes\" allowtransparency=\"true\" id=\"external-frame-tc\"></iframe>\r\n </div>\r\n }\r\n {\r\n this.isMobileEnvironment &&\r\n <Modal \r\n visible={showModal}\r\n onCancel={this.closeFrameModal}\r\n width={'99%'}\r\n height={'99%'}\r\n footer={null}\r\n >\r\n <iframe src={modalURL} width='100%' height={screenHeight} frameborder=\"no\" border=\"0\" marginwidth=\"0\" marginheight=\"0\" scrolling=\"yes\" allowtransparency=\"true\"></iframe>\r\n </Modal>\r\n }\r\n {\r\n <Modal\r\n title={'更多'}\r\n className={'portal-container-modal-more'}\r\n visible={showMoreModal}\r\n onCancel={this.closeMoreModal}\r\n width={800}\r\n height={375}\r\n footer={null}\r\n centered\r\n maskClosable={false}\r\n keyboard={false}\r\n >\r\n {\r\n this.createMoreNode()\r\n }\r\n </Modal>\r\n }\r\n </Layout>)\r\n }\r\n return htmlContent;\r\n }\r\n}"]}