tplus-portaltouch 3.40.1 → 3.40.2
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.
|
@@ -112,6 +112,7 @@ var Content = _tplusComponentsTouch.Layout.Content,
|
|
|
112
112
|
|
|
113
113
|
var tplusWindow = null;
|
|
114
114
|
var HTTP_PROXY_URL = 'http://tfproxy.chanjet.com/?url=';
|
|
115
|
+
var CC_FRAME_CONF = { id: 'external-frame-cc', initConnect: 'initConnect', HsyLoadFinish: 'HsyLoadFinish', HsyRouterClean: 'HsyRouterClean', HsyRouterJump: 'HsyRouterJump' };
|
|
115
116
|
|
|
116
117
|
var _default = (0, _mobxReact.observer)(_class = (_temp = _class2 = function (_Component) {
|
|
117
118
|
(0, _inherits3.default)(_default, _Component);
|
|
@@ -284,19 +285,6 @@ var _default = (0, _mobxReact.observer)(_class = (_temp = _class2 = function (_C
|
|
|
284
285
|
}, _callee2, _this2, [[8, 13, 16, 19]]);
|
|
285
286
|
}));
|
|
286
287
|
|
|
287
|
-
_this.initHsyPage = function () {
|
|
288
|
-
var external_frame = document.getElementById('external-frame-cc');
|
|
289
|
-
var win = external_frame && external_frame.contentWindow;
|
|
290
|
-
var timer = setTimeout(function () {
|
|
291
|
-
_this.setState({ isHsyLoadFinish: true });
|
|
292
|
-
}, 15000);
|
|
293
|
-
if (!win) return;
|
|
294
|
-
win.HsyLoadFinish = function () {
|
|
295
|
-
clearTimeout(timer);
|
|
296
|
-
_this.setState({ isHsyLoadFinish: true });
|
|
297
|
-
};
|
|
298
|
-
};
|
|
299
|
-
|
|
300
288
|
_this.sunMiPresentationInit = function (result) {
|
|
301
289
|
//SunMi初始化参数设置。
|
|
302
290
|
//副屏幕交互。硬件改动20200428 需要在商米页面加载成功后才能发送 初始化命令
|
|
@@ -653,7 +641,7 @@ var _default = (0, _mobxReact.observer)(_class = (_temp = _class2 = function (_C
|
|
|
653
641
|
|
|
654
642
|
_this.toHsyPage = function () {
|
|
655
643
|
var _ref9 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee4(params) {
|
|
656
|
-
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, _ref10, _ref10$IdStore, IdStore, _ref10$PosId, PosId, _ref11, _ref11$storeName, storeName, commonArgs, actionUrl, cc_url, CC_WEB_URL
|
|
644
|
+
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, _ref10, _ref10$IdStore, IdStore, _ref10$PosId, PosId, _ref11, _ref11$storeName, storeName, commonArgs, actionUrl, cc_url, CC_WEB_URL;
|
|
657
645
|
|
|
658
646
|
return _regenerator2.default.wrap(function _callee4$(_context4) {
|
|
659
647
|
while (1) {
|
|
@@ -785,14 +773,12 @@ var _default = (0, _mobxReact.observer)(_class = (_temp = _class2 = function (_C
|
|
|
785
773
|
|
|
786
774
|
console.log('CC_WEB_URL:', CC_WEB_URL);
|
|
787
775
|
window.android_CommonFun.openWebUrlByOutBrowser(CC_WEB_URL);
|
|
788
|
-
_context4.next =
|
|
776
|
+
_context4.next = 39;
|
|
789
777
|
break;
|
|
790
778
|
|
|
791
779
|
case 36:
|
|
792
|
-
|
|
793
|
-
|
|
794
|
-
|
|
795
|
-
win && win.HsyRouterJump && win.HsyRouterJump(pageId, pageParams, { closeable: closeable, tabLabel: tabLabel });
|
|
780
|
+
// this.ccFrameWin && this.ccFrameWin.HsyRouterJump && this.ccFrameWin.HsyRouterJump(pageId, pageParams, { closeable, tabLabel });
|
|
781
|
+
_this.ccFrameStore && _this.ccFrameStore.sendMessage({ type: CC_FRAME_CONF.HsyRouterJump, pageId: pageId, pageParams: pageParams, extStateParams: { closeable: closeable, tabLabel: tabLabel }, fr: 'pos' });
|
|
796
782
|
if (_this.state.showMoreModal === true) {
|
|
797
783
|
_this.setState({ loadHsyPage: true, showMoreModal: false });
|
|
798
784
|
} else {
|
|
@@ -802,14 +788,13 @@ var _default = (0, _mobxReact.observer)(_class = (_temp = _class2 = function (_C
|
|
|
802
788
|
back: true, fn: function fn() {
|
|
803
789
|
_this.setState({ loadHsyPage: false });
|
|
804
790
|
rx$.changeHsy.next({ back: false });
|
|
805
|
-
//
|
|
806
|
-
|
|
807
|
-
|
|
808
|
-
wins && wins.HsyRouterClean && win.HsyRouterClean();
|
|
791
|
+
// 在打开页签之前,关闭之前的,返回键的回调函数
|
|
792
|
+
// this.ccFrameWin && this.ccFrameWin.HsyRouterClean && this.ccFrameWin.HsyRouterClean();
|
|
793
|
+
_this.ccFrameStore && _this.ccFrameStore.sendMessage({ type: CC_FRAME_CONF.HsyRouterClean, fr: 'pos' });
|
|
809
794
|
}
|
|
810
795
|
});
|
|
811
796
|
|
|
812
|
-
case
|
|
797
|
+
case 39:
|
|
813
798
|
case 'end':
|
|
814
799
|
return _context4.stop();
|
|
815
800
|
}
|
|
@@ -1217,13 +1202,14 @@ var _default = (0, _mobxReact.observer)(_class = (_temp = _class2 = function (_C
|
|
|
1217
1202
|
_this.FuPingIsLoaded = false;
|
|
1218
1203
|
_this.isNewRetailBCPosTC = !!isNewRetailBCPosTC;
|
|
1219
1204
|
_this.new_retail_app = _mutantsMicrofx.localStore && _mutantsMicrofx.localStore.get('newRetailAppType');
|
|
1220
|
-
|
|
1205
|
+
_this.hsy_domain = _tplusApi.User && _tplusApi.User.getWebEntry();
|
|
1206
|
+
// 是否嵌套好生意的iframe
|
|
1207
|
+
_this.isHsyIframeInclude = !_this.isVerticalTouch && !_this.isMobileEnvironment;
|
|
1221
1208
|
//首页布局
|
|
1222
1209
|
_this.leftMenu = _this.getMenuByPosition('left');
|
|
1223
1210
|
_this.centerLeftMenu = _this.getMenuByPosition('centerLeft');
|
|
1224
1211
|
_this.centerRightMenu = _this.getMenuByPosition('centerRight');
|
|
1225
1212
|
_this.rightMenu = _this.getMenuByPosition('right');
|
|
1226
|
-
_this.hsy_domain = _tplusApi.User && _tplusApi.User.getWebEntry();
|
|
1227
1213
|
_this.randomWord = _this.randomWord.bind(_this);
|
|
1228
1214
|
(0, _mobx.autorun)(function () {
|
|
1229
1215
|
_this.hsyBasicInfoInit();
|
|
@@ -1289,14 +1275,24 @@ var _default = (0, _mobxReact.observer)(_class = (_temp = _class2 = function (_C
|
|
|
1289
1275
|
key: 'componentDidMount',
|
|
1290
1276
|
value: function componentDidMount() {
|
|
1291
1277
|
this.initPageData();
|
|
1292
|
-
|
|
1293
|
-
this.initHsyPage();
|
|
1294
|
-
}
|
|
1278
|
+
this.isHsyIframeInclude && this.initCCFrameWin();
|
|
1295
1279
|
}
|
|
1280
|
+
// 初始化好生意iframe
|
|
1296
1281
|
|
|
1297
|
-
|
|
1298
|
-
|
|
1299
|
-
|
|
1282
|
+
}, {
|
|
1283
|
+
key: 'initCCFrameWin',
|
|
1284
|
+
value: function initCCFrameWin() {
|
|
1285
|
+
var that = this;
|
|
1286
|
+
this.ccFrameStore = new _mutantsMicrofx.stores.IframeStore(document.getElementById(CC_FRAME_CONF.id), this.hsy_domain, function (e, instance) {
|
|
1287
|
+
console.log(e, instance, 'cciframe 接收消息');
|
|
1288
|
+
if (e.data === CC_FRAME_CONF.HsyLoadFinish) {
|
|
1289
|
+
!that.state.isHsyLoadFinish && that.setState({ isHsyLoadFinish: true });
|
|
1290
|
+
}
|
|
1291
|
+
}, function (e, instance) {
|
|
1292
|
+
console.log("ccFrameWin 加载成功========>", e, instance);
|
|
1293
|
+
instance.sendMessage({ type: CC_FRAME_CONF.initConnect, fr: 'pos' });
|
|
1294
|
+
});
|
|
1295
|
+
}
|
|
1300
1296
|
// 初始化商米副屏
|
|
1301
1297
|
|
|
1302
1298
|
}, {
|
|
@@ -1335,6 +1331,7 @@ var _default = (0, _mobxReact.observer)(_class = (_temp = _class2 = function (_C
|
|
|
1335
1331
|
}, {
|
|
1336
1332
|
key: 'componentWillUnmount',
|
|
1337
1333
|
value: function componentWillUnmount() {
|
|
1334
|
+
this.ccFrameStore && this.ccFrameStore.destroy();
|
|
1338
1335
|
var _context$headHook = this.context.headHook;
|
|
1339
1336
|
_context$headHook = _context$headHook === undefined ? {} : _context$headHook;
|
|
1340
1337
|
var removeClass = _context$headHook.removeClass;
|
|
@@ -1415,7 +1412,7 @@ var _default = (0, _mobxReact.observer)(_class = (_temp = _class2 = function (_C
|
|
|
1415
1412
|
_react2.default.createElement(
|
|
1416
1413
|
'div',
|
|
1417
1414
|
{ className: loadHsyPage ? 'portal-hsy-tc-container' : 'portal-hsy-tc-container portal-hsy-tc-container-hide' },
|
|
1418
|
-
_react2.default.createElement('iframe', { src: loadHsyURL, width: '100%', height: '93%', frameborder: 'no', border: '0', marginwidth: '0', marginheight: '0', scrolling: 'yes', allowtransparency: 'true', id:
|
|
1415
|
+
_react2.default.createElement('iframe', { src: loadHsyURL, width: '100%', height: '93%', frameborder: 'no', border: '0', marginwidth: '0', marginheight: '0', scrolling: 'yes', allowtransparency: 'true', id: CC_FRAME_CONF.id })
|
|
1419
1416
|
),
|
|
1420
1417
|
_react2.default.createElement(
|
|
1421
1418
|
'div',
|
|
@@ -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","catchOfflineData","offlineSys","context","stores","isLoginAfter","localStore","get","downloadCatcherDay","currentDay","Math","ceil","Date","downProgress","params","Loading","transfer","show","text","delay","showProgress","downloadCatcherData","result","set","hide","console","log","getOperation","resolve","reject","homeOperation","Request","functionData","then","operations","setState","catch","err","data","initPageData","headHook","addClass","hasUseOffline","isVerticalTouch","isMobileEnvironment","state","id","setStore","initSetParams","getScreenType","isHorizontalSunMi","sunMiPresentationInit","ret","user","window","open","getTime","setTimeout","hsyBasicInfoInit","initHsyPage","external_frame","document","getElementById","win","contentWindow","timer","isHsyLoadFinish","HsyLoadFinish","clearTimeout","options","storeName","enumController","getEnumOj","RE_POSParamType","DUAL_SCREEN_SETTING","filterResult","filter","settingItem","ParamType","sunMi_PresentationManager","sharedPreferencesSet","sendMessageToSecondScreen","step","getTcBasicInfoInit","userStore","User","restore","sid","tplusUrl","msg","ModalWraper","warning","title","content","okText","okType","substring","length","ossjumpUrl","postMsgUrl","loginInfo","UserCode","AccountNum","posCode","TplusStoreId","uid","tplusEncode","pwd","accNum","code","store","postMessageUrl","flag","item","Name","shift","Value","saveLog","name","saveLogo","undefined","handelClick","values","type","key","isModal","iframe","app","style","search","tmenuCode","controllable","find","vv","Visibility","HoldFunctionAuth","Title","MenuCode","errorTip","shouldOpenHomeOperation","Message","warn","showMoreModal","onOk","logout","portalStore","modalRouter","url","width","toFramePage","checkDuty","onDutyMessage","Code","IdShiftVoucher","Shift","IdDailyVoucher","DailyCode","ShiftCode","history","push","onDuty","MiddleWare","execute","bPosDaily","onMakerDaily","sh","v","menu","toHsyPage","toTplusPage","getTplusUrlFromCloudServer","accessToken","orgId","encodeURIComponent","fetchHeader","headers","fetch","response","json","ex","dsearchPlanID","getSearchPlanId","location","origin","android_CommonFun","openWebUrlByOutBrowser","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","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","isNewRetailBCPosTC","menuNode","map","container","className","maybe","status","second","disabled","bind","label","icon","createCenterNode","menuLeftNode","centerLeftMenu","menuRightNode","centerRightMenu","createRightNode","node","rightMenu","createMoreNode","arrs","getMoreNodeInfo","items","sub_tc","sub_cc","now","loadHsyURL","modalURL","isHorizontalPad","FuPingIsLoaded","getMenuByPosition","getWebEntry","position","Menus","leftMenuTC","rightMenuTC","centerLeftMenuMobileCC","centerLeftMenuMobileTC","centerRightMenuMobileCC","centerRightMenuMobileTC","rightMenuMobileTC","rightMenuMobileCC","getMenuByEnvironment","ccMenu","tcMenu","tcMobilMenu","ccMobilMenu","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":["/*\r\n * @Description:\r\n * @Date: 2019-08-13 08:42:18\r\n * @LastEditTime: 2022-02-25 14:49:22\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\nimport { async } from 'rxjs';\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, 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.isNewRetailBCPosTC = !!isNewRetailBCPosTC;\r\n this.new_retail_app = localStore && localStore.get('newRetailAppType'); \r\n\r\n //首页布局\r\n this.leftMenu = this.getMenuByPosition('left');\r\n this.centerLeftMenu = this.getMenuByPosition('centerLeft');\r\n this.centerRightMenu = this.getMenuByPosition('centerRight');\r\n this.rightMenu = this.getMenuByPosition('right');\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 getMenuByPosition(position) {\r\n const { leftMenu, centerLeftMenu, centerRightMenu, rightMenu, leftMenuTC, rightMenuTC, centerLeftMenuMobileCC, centerLeftMenuMobileTC, centerRightMenuMobileCC, centerRightMenuMobileTC, rightMenuMobileTC, rightMenuMobileCC } = Menus;\r\n switch (position) {\r\n case \"left\":{\r\n return this.getMenuByEnvironment(leftMenu,leftMenuTC,[],[]);\r\n }\r\n case \"centerLeft\":{\r\n return this.getMenuByEnvironment(centerLeftMenu,centerLeftMenu, centerLeftMenuMobileTC,centerLeftMenuMobileCC)\r\n }\r\n case \"centerRight\":{\r\n return this.getMenuByEnvironment(centerRightMenu,centerRightMenu, centerRightMenuMobileTC,centerRightMenuMobileCC)\r\n }\r\n case \"right\":{\r\n return this.getMenuByEnvironment(rightMenu,rightMenuTC, rightMenuMobileTC,rightMenuMobileCC)\r\n }\r\n }\r\n }\r\n\r\n getMenuByEnvironment(ccMenu,tcMenu,tcMobilMenu,ccMobilMenu){\r\n if(this.isNewRetailBCPosTC){\r\n // if(this.isMobileEnvironment){\r\n // return tcMobilMenu;\r\n // }else{\r\n // return tcMenu;\r\n // }\r\n return tcMenu;\r\n }else{\r\n // if(this.isMobileEnvironment){\r\n // return ccMobilMenu;\r\n // }else{\r\n // return ccMenu;\r\n // }\r\n return ccMenu;\r\n }\r\n }\r\n\r\n\r\n catchOfflineData = async () => {\r\n const { offlineSys } = this.context.stores;\r\n const isLoginAfter = localStore.get(\"isLoginAfter\");\r\n const downloadCatcherDay = localStore.get(\"downloadCatcherDay\");\r\n const currentDay = Math.ceil(new Date() / 1000 / 60 / 60 / 24)\r\n if (isLoginAfter == 1) {\r\n // 增加每天第一次登陆下载数据\r\n if (!downloadCatcherDay || currentDay > downloadCatcherDay) {\r\n try {\r\n Loading.show({\r\n text: '离线数据下载中,请稍等...',\r\n delay: 0,\r\n showProgress: true\r\n });\r\n function downProgress(params) {\r\n Loading.transfer(params)\r\n }\r\n let result = await offlineSys.downloadCatcherData(downProgress);\r\n if (result) localStore.set(\"downloadCatcherDay\", currentDay);\r\n Loading.hide();\r\n } catch (ex) {\r\n console.log('downloadCatcherData下载离线数据', ex);\r\n Loading.hide();\r\n } finally {\r\n Loading.hide();\r\n }\r\n }\r\n localStore.set(\"isLoginAfter\", 0)\r\n }\r\n }\r\n\r\n getOperation = () => {\r\n return new Promise((resolve, reject) => {\r\n const { homeOperation, functionData } = Request;\r\n homeOperation().then(operations => {\r\n localStore.set('operationsAuth', JSON.stringify(operations));\r\n this.setState({ operations: operations || [] });\r\n resolve()\r\n }).catch((err) => {\r\n console.log('homeOperation.error======', err);\r\n Loading.hide();\r\n resolve()\r\n })\r\n functionData().then(data => {\r\n PosSetData(data);\r\n })\r\n })\r\n }\r\n\r\n initPageData = async () => {\r\n const { stores = {}, headHook: { addClass } = {} } = this.context;\r\n const hasUseOffline = (PosInitData('IsOfflineCash') === \"1\") && !(this.isVerticalTouch || this.isMobileEnvironment); //是否允许离线\r\n // const hasUseOffline = true;\r\n if (hasUseOffline == true) {\r\n await this.catchOfflineData(); //离线数据下发\r\n }\r\n Loading.show({\r\n text: '权限加载中,请稍等...',\r\n delay: 2500\r\n });\r\n //权限加载\r\n try {\r\n await this.getOperation()\r\n } catch (err) {\r\n Loading.hide()\r\n } finally {\r\n Loading.hide();\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 console.log('副屏页面打开之前,user信息', JSON.stringify(stores.user));\r\n window.open('vicescreen?ts=' + new Date().getTime(), 'screen');\r\n setTimeout(() => {\r\n console.log('副屏页面打开之后,user信息', JSON.stringify(stores.user))\r\n }, 3000);\r\n }\r\n })\r\n this.hsyBasicInfoInit();\r\n }\r\n\r\n componentDidMount() {\r\n this.initPageData();\r\n if (!this.isVerticalTouch && !this.isMobileEnvironment) {\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 console.log(result);\r\n const { storeName = '' } = stores.user.options.get('store') || {};\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\r\n if(!stores.offlineSys.shouldOpenHomeOperation(Name)) {\r\n Message.warn(\"离线模式下此操作不可用\")\r\n return;\r\n }\r\n \r\n if (type == 'more') {\r\n // if (this.isMobileEnvironment) { //暂时不支持android系统跳转\r\n // return Message.warn('新功能正在研发中,敬请期待。');\r\n // }\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\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 (this.isMobileEnvironment) { //暂时不支持android系统跳转\r\n // return Message.warn('新功能正在研发中,敬请期待。');\r\n // }\r\n if (!isHsyLoadFinish && !this.isMobileEnvironment) {\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 //目前T+页面有很多进一步操作的界面,无法得到解决,特针对跳转T+页面的,都使用默认浏览器打开。2021-10-27\r\n if (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 { IdStore = '', PosId = '' } = stores.user.options.get('loginInfo') || {};\r\n const { storeName = '' } = stores.user.options.get('store') || {};\r\n \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 if (this.state.showMoreModal === true) {\r\n this.setState({ loadHsyPage: true, showMoreModal: false });\r\n } else {\r\n this.setState({ loadHsyPage: true });\r\n }\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 var width = menu.length == 0 ? this.isMobileEnvironment & !this.isNewRetailBCPosTC ? 5 : 4 : 7;\r\n if(menu.length == 0) {\r\n return (<Col xl={width} md={width} className='portal-left-col' key='left'>\r\n <div className='portal-left-content'></div>\r\n </Col>);\r\n // return null;\r\n }\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 (<Col xl={7} md={7} className='portal-left-col' key='left'>\r\n <div className='portal-left-content'>{menuNode}</div>\r\n </Col>);\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 var width = this.leftMenu.length == 0 ? this.isMobileEnvironment & !this.isNewRetailBCPosTC ? 9 : 10 : 7;\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 <Col xl={width} md={width} className='portal-right-col' key='right'>\r\n <div className='portal-right-content'>{node}</div>\r\n </Col>\r\n }\r\n\r\n createMoreNode = () => {\r\n const arrs = this.getMoreNodeInfo();\r\n const items = this.isNewRetailBCPosTC ? arrs.sub_tc : arrs.sub_cc || [];\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 getMoreNodeInfo = () => {\r\n if (this.isNewRetailBCPosTC) {\r\n // if (this.isMobileEnvironment) {\r\n // return this.centerRightMenu.find(vv => vv.key == 'more') || {};\r\n // } else {\r\n return this.centerRightMenu.find(v => v.sub && v.sub.find(vv => vv.key == 'more')).sub[1] || {};\r\n // }\r\n } else {\r\n // if (this.isMobileEnvironment) {\r\n // return this.centerRightMenu.find(vv => vv.key == 'more') || {};\r\n // } else {\r\n return this.centerRightMenu.find(v => v.sub && v.sub.find(vv => vv.key == 'more')).sub[1] || {};\r\n // }\r\n }\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 }\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 portal-container-center'>\r\n <Row className=\"portal-content-row\">\r\n {this.createLeftNode()}\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 {this.createRightNode()}\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}"]}
|
|
1
|
+
{"version":3,"sources":["tplus-portaltouch/pages/Portalbc/index.js"],"names":["hasElectron","env","platform","constant","electron","Content","Layout","Footer","tplusWindow","HTTP_PROXY_URL","CC_FRAME_CONF","id","initConnect","HsyLoadFinish","HsyRouterClean","HsyRouterJump","observer","props","catchOfflineData","offlineSys","context","stores","isLoginAfter","localStore","get","downloadCatcherDay","currentDay","Math","ceil","Date","downProgress","params","Loading","transfer","show","text","delay","showProgress","downloadCatcherData","result","set","hide","console","log","getOperation","resolve","reject","homeOperation","Request","functionData","then","operations","setState","catch","err","data","initPageData","headHook","addClass","hasUseOffline","isVerticalTouch","isMobileEnvironment","state","setStore","initSetParams","getScreenType","isHorizontalSunMi","sunMiPresentationInit","ret","user","window","open","getTime","setTimeout","hsyBasicInfoInit","options","storeName","enumController","getEnumOj","RE_POSParamType","DUAL_SCREEN_SETTING","filterResult","filter","settingItem","ParamType","sunMi_PresentationManager","sharedPreferencesSet","sendMessageToSecondScreen","step","getTcBasicInfoInit","userStore","User","restore","sid","tplusUrl","msg","ModalWraper","warning","title","content","okText","okType","substring","length","ossjumpUrl","postMsgUrl","loginInfo","UserCode","AccountNum","posCode","TplusStoreId","uid","tplusEncode","pwd","accNum","code","store","postMessageUrl","flag","item","Name","shift","Value","saveLog","name","saveLogo","undefined","handelClick","values","type","key","isModal","iframe","app","style","search","tmenuCode","isHsyLoadFinish","controllable","find","vv","Visibility","HoldFunctionAuth","Title","MenuCode","errorTip","shouldOpenHomeOperation","Message","warn","showMoreModal","onOk","logout","portalStore","modalRouter","url","width","toFramePage","checkDuty","onDutyMessage","Code","IdShiftVoucher","Shift","IdDailyVoucher","DailyCode","ShiftCode","history","push","onDuty","MiddleWare","execute","bPosDaily","onMakerDaily","sh","v","menu","toHsyPage","toTplusPage","getTplusUrlFromCloudServer","accessToken","orgId","encodeURIComponent","fetchHeader","headers","fetch","response","json","ex","dsearchPlanID","getSearchPlanId","location","origin","android_CommonFun","openWebUrlByOutBrowser","new_retail_app","nativeMs","useDefaultBrowser","external_frame_tc","document","getElementById","win","contentWindow","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","ccFrameStore","sendMessage","extStateParams","fr","loadHsyPage","only","digits","str","number","letter","arr","i","pos","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","isNewRetailBCPosTC","menuNode","map","container","className","maybe","status","second","disabled","bind","label","icon","createCenterNode","menuLeftNode","centerLeftMenu","menuRightNode","centerRightMenu","createRightNode","node","rightMenu","createMoreNode","arrs","getMoreNodeInfo","items","sub_tc","sub_cc","now","loadHsyURL","modalURL","isHorizontalPad","FuPingIsLoaded","getWebEntry","isHsyIframeInclude","getMenuByPosition","position","Menus","leftMenuTC","rightMenuTC","centerLeftMenuMobileCC","centerLeftMenuMobileTC","centerRightMenuMobileCC","centerRightMenuMobileTC","rightMenuMobileTC","rightMenuMobileCC","getMenuByEnvironment","ccMenu","tcMenu","tcMobilMenu","ccMobilMenu","initCCFrameWin","that","IframeStore","e","instance","theme","themeStore","color","destroy","removeClass","setIpcRendererMethod","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":["/*\r\n * @Description:\r\n * @Date: 2019-08-13 08:42:18\r\n * @LastEditTime: 2022-02-25 14:49:22\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\nimport { async } from 'rxjs';\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\nconst CC_FRAME_CONF = { id: 'external-frame-cc', initConnect: 'initConnect', HsyLoadFinish: 'HsyLoadFinish', HsyRouterClean: 'HsyRouterClean', HsyRouterJump : 'HsyRouterJump' };\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 ccFrameStore\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, 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.isNewRetailBCPosTC = !!isNewRetailBCPosTC;\r\n this.new_retail_app = localStore && localStore.get('newRetailAppType');\r\n this.hsy_domain = User && User.getWebEntry();\r\n // 是否嵌套好生意的iframe\r\n this.isHsyIframeInclude = !this.isVerticalTouch && !this.isMobileEnvironment;\r\n //首页布局\r\n this.leftMenu = this.getMenuByPosition('left');\r\n this.centerLeftMenu = this.getMenuByPosition('centerLeft');\r\n this.centerRightMenu = this.getMenuByPosition('centerRight');\r\n this.rightMenu = this.getMenuByPosition('right');\r\n this.randomWord = this.randomWord.bind(this);\r\n autorun(() => {\r\n this.hsyBasicInfoInit();\r\n });\r\n }\r\n\r\n getMenuByPosition(position) {\r\n const { leftMenu, centerLeftMenu, centerRightMenu, rightMenu, leftMenuTC, rightMenuTC, centerLeftMenuMobileCC, centerLeftMenuMobileTC, centerRightMenuMobileCC, centerRightMenuMobileTC, rightMenuMobileTC, rightMenuMobileCC } = Menus;\r\n switch (position) {\r\n case \"left\":{\r\n return this.getMenuByEnvironment(leftMenu,leftMenuTC,[],[]);\r\n }\r\n case \"centerLeft\":{\r\n return this.getMenuByEnvironment(centerLeftMenu,centerLeftMenu, centerLeftMenuMobileTC,centerLeftMenuMobileCC)\r\n }\r\n case \"centerRight\":{\r\n return this.getMenuByEnvironment(centerRightMenu,centerRightMenu, centerRightMenuMobileTC,centerRightMenuMobileCC)\r\n }\r\n case \"right\":{\r\n return this.getMenuByEnvironment(rightMenu,rightMenuTC, rightMenuMobileTC,rightMenuMobileCC)\r\n }\r\n }\r\n }\r\n\r\n getMenuByEnvironment(ccMenu,tcMenu,tcMobilMenu,ccMobilMenu){\r\n if(this.isNewRetailBCPosTC){\r\n // if(this.isMobileEnvironment){\r\n // return tcMobilMenu;\r\n // }else{\r\n // return tcMenu;\r\n // }\r\n return tcMenu;\r\n }else{\r\n // if(this.isMobileEnvironment){\r\n // return ccMobilMenu;\r\n // }else{\r\n // return ccMenu;\r\n // }\r\n return ccMenu;\r\n }\r\n }\r\n\r\n\r\n catchOfflineData = async () => {\r\n const { offlineSys } = this.context.stores;\r\n const isLoginAfter = localStore.get(\"isLoginAfter\");\r\n const downloadCatcherDay = localStore.get(\"downloadCatcherDay\");\r\n const currentDay = Math.ceil(new Date() / 1000 / 60 / 60 / 24)\r\n if (isLoginAfter == 1) {\r\n // 增加每天第一次登陆下载数据\r\n if (!downloadCatcherDay || currentDay > downloadCatcherDay) {\r\n try {\r\n Loading.show({\r\n text: '离线数据下载中,请稍等...',\r\n delay: 0,\r\n showProgress: true\r\n });\r\n function downProgress(params) {\r\n Loading.transfer(params)\r\n }\r\n let result = await offlineSys.downloadCatcherData(downProgress);\r\n if (result) localStore.set(\"downloadCatcherDay\", currentDay);\r\n Loading.hide();\r\n } catch (ex) {\r\n console.log('downloadCatcherData下载离线数据', ex);\r\n Loading.hide();\r\n } finally {\r\n Loading.hide();\r\n }\r\n }\r\n localStore.set(\"isLoginAfter\", 0)\r\n }\r\n }\r\n\r\n getOperation = () => {\r\n return new Promise((resolve, reject) => {\r\n const { homeOperation, functionData } = Request;\r\n homeOperation().then(operations => {\r\n localStore.set('operationsAuth', JSON.stringify(operations));\r\n this.setState({ operations: operations || [] });\r\n resolve()\r\n }).catch((err) => {\r\n console.log('homeOperation.error======', err);\r\n Loading.hide();\r\n resolve()\r\n })\r\n functionData().then(data => {\r\n PosSetData(data);\r\n })\r\n })\r\n }\r\n\r\n initPageData = async () => {\r\n const { stores = {}, headHook: { addClass } = {} } = this.context;\r\n const hasUseOffline = (PosInitData('IsOfflineCash') === \"1\") && !(this.isVerticalTouch || this.isMobileEnvironment); //是否允许离线\r\n // const hasUseOffline = true;\r\n if (hasUseOffline == true) {\r\n await this.catchOfflineData(); //离线数据下发\r\n }\r\n Loading.show({\r\n text: '权限加载中,请稍等...',\r\n delay: 2500\r\n });\r\n //权限加载\r\n try {\r\n await this.getOperation()\r\n } catch (err) {\r\n Loading.hide()\r\n } finally {\r\n Loading.hide();\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 console.log('副屏页面打开之前,user信息', JSON.stringify(stores.user));\r\n window.open('vicescreen?ts=' + new Date().getTime(), 'screen');\r\n setTimeout(() => {\r\n console.log('副屏页面打开之后,user信息', JSON.stringify(stores.user))\r\n }, 3000);\r\n }\r\n })\r\n this.hsyBasicInfoInit();\r\n }\r\n\r\n componentDidMount() {\r\n this.initPageData();\r\n this.isHsyIframeInclude && this.initCCFrameWin();\r\n }\r\n // 初始化好生意iframe\r\n initCCFrameWin() {\r\n let that = this;\r\n this.ccFrameStore = new stores.IframeStore(document.getElementById(CC_FRAME_CONF.id), this.hsy_domain, function(e, instance) {\r\n console.log(e, instance, 'cciframe 接收消息');\r\n if (e.data === CC_FRAME_CONF.HsyLoadFinish) {\r\n !that.state.isHsyLoadFinish && that.setState({ isHsyLoadFinish: true });\r\n }\r\n }, function(e, instance) {\r\n console.log(\"ccFrameWin 加载成功========>\", e, instance);\r\n instance.sendMessage({ type: CC_FRAME_CONF.initConnect, fr: 'pos' });\r\n });\r\n }\r\n // 初始化商米副屏\r\n sunMiPresentationInit = (result) => {\r\n //SunMi初始化参数设置。\r\n //副屏幕交互。硬件改动20200428 需要在商米页面加载成功后才能发送 初始化命令\r\n // 进行主副屏数据交互 初始化\r\n console.log(result);\r\n const { storeName = '' } = stores.user.options.get('store') || {};\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 this.ccFrameStore && this.ccFrameStore.destroy();\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\r\n if(!stores.offlineSys.shouldOpenHomeOperation(Name)) {\r\n Message.warn(\"离线模式下此操作不可用\")\r\n return;\r\n }\r\n \r\n if (type == 'more') {\r\n // if (this.isMobileEnvironment) { //暂时不支持android系统跳转\r\n // return Message.warn('新功能正在研发中,敬请期待。');\r\n // }\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\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 (this.isMobileEnvironment) { //暂时不支持android系统跳转\r\n // return Message.warn('新功能正在研发中,敬请期待。');\r\n // }\r\n if (!isHsyLoadFinish && !this.isMobileEnvironment) {\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 //目前T+页面有很多进一步操作的界面,无法得到解决,特针对跳转T+页面的,都使用默认浏览器打开。2021-10-27\r\n if (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 { IdStore = '', PosId = '' } = stores.user.options.get('loginInfo') || {};\r\n const { storeName = '' } = stores.user.options.get('store') || {};\r\n \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 // this.ccFrameWin && this.ccFrameWin.HsyRouterJump && this.ccFrameWin.HsyRouterJump(pageId, pageParams, { closeable, tabLabel });\r\n this.ccFrameStore && this.ccFrameStore.sendMessage({type: CC_FRAME_CONF.HsyRouterJump, pageId, pageParams, extStateParams: { closeable, tabLabel }, fr: 'pos' })\r\n if (this.state.showMoreModal === true) {\r\n this.setState({ loadHsyPage: true, showMoreModal: false });\r\n } else {\r\n this.setState({ loadHsyPage: true });\r\n }\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 // this.ccFrameWin && this.ccFrameWin.HsyRouterClean && this.ccFrameWin.HsyRouterClean();\r\n this.ccFrameStore && this.ccFrameStore.sendMessage({ type: CC_FRAME_CONF.HsyRouterClean, fr: 'pos' });\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 var width = menu.length == 0 ? this.isMobileEnvironment & !this.isNewRetailBCPosTC ? 5 : 4 : 7;\r\n if(menu.length == 0) {\r\n return (<Col xl={width} md={width} className='portal-left-col' key='left'>\r\n <div className='portal-left-content'></div>\r\n </Col>);\r\n // return null;\r\n }\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 (<Col xl={7} md={7} className='portal-left-col' key='left'>\r\n <div className='portal-left-content'>{menuNode}</div>\r\n </Col>);\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 var width = this.leftMenu.length == 0 ? this.isMobileEnvironment & !this.isNewRetailBCPosTC ? 9 : 10 : 7;\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 <Col xl={width} md={width} className='portal-right-col' key='right'>\r\n <div className='portal-right-content'>{node}</div>\r\n </Col>\r\n }\r\n\r\n createMoreNode = () => {\r\n const arrs = this.getMoreNodeInfo();\r\n const items = this.isNewRetailBCPosTC ? arrs.sub_tc : arrs.sub_cc || [];\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 getMoreNodeInfo = () => {\r\n if (this.isNewRetailBCPosTC) {\r\n // if (this.isMobileEnvironment) {\r\n // return this.centerRightMenu.find(vv => vv.key == 'more') || {};\r\n // } else {\r\n return this.centerRightMenu.find(v => v.sub && v.sub.find(vv => vv.key == 'more')).sub[1] || {};\r\n // }\r\n } else {\r\n // if (this.isMobileEnvironment) {\r\n // return this.centerRightMenu.find(vv => vv.key == 'more') || {};\r\n // } else {\r\n return this.centerRightMenu.find(v => v.sub && v.sub.find(vv => vv.key == 'more')).sub[1] || {};\r\n // }\r\n }\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 }\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 portal-container-center'>\r\n <Row className=\"portal-content-row\">\r\n {this.createLeftNode()}\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 {this.createRightNode()}\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={CC_FRAME_CONF.id}></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}"]}
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = undefined;
|
|
7
|
+
|
|
8
|
+
var _ownKeys = require('babel-runtime/core-js/reflect/own-keys');
|
|
9
|
+
|
|
10
|
+
var _ownKeys2 = _interopRequireDefault(_ownKeys);
|
|
11
|
+
|
|
12
|
+
var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck');
|
|
13
|
+
|
|
14
|
+
var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
|
|
15
|
+
|
|
16
|
+
var _createClass2 = require('babel-runtime/helpers/createClass');
|
|
17
|
+
|
|
18
|
+
var _createClass3 = _interopRequireDefault(_createClass2);
|
|
19
|
+
|
|
20
|
+
var _symbol = require('babel-runtime/core-js/symbol');
|
|
21
|
+
|
|
22
|
+
var _symbol2 = _interopRequireDefault(_symbol);
|
|
23
|
+
|
|
24
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
25
|
+
|
|
26
|
+
/*
|
|
27
|
+
* @Date: 2022-03-14 09:32:19
|
|
28
|
+
* @Author: zhanghuix
|
|
29
|
+
* @LastEditTime: 2022-03-15 16:17:41
|
|
30
|
+
* @LastEditors: zhanghuix
|
|
31
|
+
*/
|
|
32
|
+
var initFrame = (0, _symbol2.default)('initFrame');
|
|
33
|
+
var initListener = (0, _symbol2.default)('initListener');
|
|
34
|
+
var initLoad = (0, _symbol2.default)('initLoad');
|
|
35
|
+
var msgListener = (0, _symbol2.default)('msgListener');
|
|
36
|
+
var ifrLoadListener = (0, _symbol2.default)('ifrLoadListener');
|
|
37
|
+
var forOrigin = (0, _symbol2.default)('forOrigin');
|
|
38
|
+
var onMsgCb = (0, _symbol2.default)('onMsgCb');
|
|
39
|
+
var onLoadCb = (0, _symbol2.default)('onLoadCb');
|
|
40
|
+
// 对外只暴露 sendMessage 和 destroy 两个方法;dom origin iframeWin 三个属性
|
|
41
|
+
|
|
42
|
+
var IframeStore = function () {
|
|
43
|
+
function IframeStore(dom, origin, onMessage, onFrameLoad) {
|
|
44
|
+
var _this = this;
|
|
45
|
+
|
|
46
|
+
(0, _classCallCheck3.default)(this, IframeStore);
|
|
47
|
+
|
|
48
|
+
this[msgListener] = function (e) {
|
|
49
|
+
if (_this[forOrigin] !== e.origin) {
|
|
50
|
+
return;
|
|
51
|
+
}
|
|
52
|
+
_this[onMsgCb](e, _this);
|
|
53
|
+
};
|
|
54
|
+
|
|
55
|
+
this[ifrLoadListener] = function (e) {
|
|
56
|
+
_this[onLoadCb](e, _this);
|
|
57
|
+
};
|
|
58
|
+
|
|
59
|
+
this.sendMessage = function (params) {
|
|
60
|
+
_this.iframeWin.postMessage(params, _this.origin);
|
|
61
|
+
};
|
|
62
|
+
|
|
63
|
+
this.destroy = function () {
|
|
64
|
+
window.removeEventListener('message', _this[msgListener]);
|
|
65
|
+
_this.dom.removeEventListener('load', _this[ifrLoadListener]);
|
|
66
|
+
(0, _ownKeys2.default)(_this.constructor.prototype).forEach(function (v) {
|
|
67
|
+
return _this[v] = null;
|
|
68
|
+
});
|
|
69
|
+
(0, _ownKeys2.default)(_this).forEach(function (v) {
|
|
70
|
+
return _this[v] = null;
|
|
71
|
+
});
|
|
72
|
+
};
|
|
73
|
+
|
|
74
|
+
this.dom = dom;
|
|
75
|
+
this.origin = origin || '*';
|
|
76
|
+
// 接收嵌套的iframe 的发消息的回调函数
|
|
77
|
+
this[onMsgCb] = onMessage;
|
|
78
|
+
// 接收 iframe load 方法的回调函数
|
|
79
|
+
this[onLoadCb] = onFrameLoad;
|
|
80
|
+
// 设置iframe 的 contentwindow
|
|
81
|
+
this[initFrame](dom);
|
|
82
|
+
// 初始化 iframe 发来的监听事件
|
|
83
|
+
this[initListener]();
|
|
84
|
+
// 初始化 iframe load 事件
|
|
85
|
+
this[initLoad]();
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
(0, _createClass3.default)(IframeStore, [{
|
|
89
|
+
key: initFrame,
|
|
90
|
+
value: function value(dom) {
|
|
91
|
+
if (dom && dom.contentWindow) {
|
|
92
|
+
this.iframeWin = dom.contentWindow;
|
|
93
|
+
} else {
|
|
94
|
+
console.error('dom 不合法');
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
}, {
|
|
98
|
+
key: initListener,
|
|
99
|
+
value: function value() {
|
|
100
|
+
if (typeof this[onMsgCb] !== 'function') {
|
|
101
|
+
return;
|
|
102
|
+
};
|
|
103
|
+
try {
|
|
104
|
+
this[forOrigin] = new URL(this.origin).origin;
|
|
105
|
+
} catch (e) {
|
|
106
|
+
console.error(e, 'origin 不合法');
|
|
107
|
+
return;
|
|
108
|
+
}
|
|
109
|
+
window.addEventListener('message', this[msgListener]);
|
|
110
|
+
}
|
|
111
|
+
}, {
|
|
112
|
+
key: initLoad,
|
|
113
|
+
value: function value() {
|
|
114
|
+
if (typeof this[onLoadCb] !== 'function' || !this.dom) {
|
|
115
|
+
return;
|
|
116
|
+
};
|
|
117
|
+
this.dom.addEventListener('load', this[ifrLoadListener]);
|
|
118
|
+
}
|
|
119
|
+
}]);
|
|
120
|
+
return IframeStore;
|
|
121
|
+
}();
|
|
122
|
+
|
|
123
|
+
exports.default = IframeStore;
|
|
124
|
+
//# sourceMappingURL=IframeStore.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["tplus-portaltouch/stores/IframeStore.js"],"names":["initFrame","initListener","initLoad","msgListener","ifrLoadListener","forOrigin","onMsgCb","onLoadCb","IframeStore","dom","origin","onMessage","onFrameLoad","e","sendMessage","params","iframeWin","postMessage","destroy","window","removeEventListener","constructor","prototype","forEach","v","contentWindow","console","error","URL","addEventListener"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;;;;;AAMA,IAAMA,YAAY,sBAAO,WAAP,CAAlB;AACA,IAAMC,eAAe,sBAAO,cAAP,CAArB;AACA,IAAMC,WAAW,sBAAO,UAAP,CAAjB;AACA,IAAMC,cAAc,sBAAO,aAAP,CAApB;AACA,IAAMC,kBAAkB,sBAAO,iBAAP,CAAxB;AACA,IAAMC,YAAY,sBAAO,WAAP,CAAlB;AACA,IAAMC,UAAU,sBAAO,SAAP,CAAhB;AACA,IAAMC,WAAW,sBAAO,UAAP,CAAjB;AACA;;IACqBC,W;AACjB,yBAAYC,GAAZ,EAAiBC,MAAjB,EAAyBC,SAAzB,EAAoCC,WAApC,EAAiD;AAAA;;AAAA;;AAAA,aA+BhDT,WA/BgD,IA+BjC,UAACU,CAAD,EAAO;AACnB,gBAAI,MAAKR,SAAL,MAAoBQ,EAAEH,MAA1B,EAAkC;AAAE;AAAS;AAC7C,kBAAKJ,OAAL,EAAcO,CAAd,EAAiB,KAAjB;AACH,SAlCgD;;AAAA,aAuChDT,eAvCgD,IAuC7B,aAAK;AACrB,kBAAKG,QAAL,EAAeM,CAAf,EAAkB,KAAlB;AACH,SAzCgD;;AAAA,aA0CjDC,WA1CiD,GA0CnC,UAACC,MAAD,EAAY;AACtB,kBAAKC,SAAL,CAAeC,WAAf,CAA2BF,MAA3B,EAAmC,MAAKL,MAAxC;AACH,SA5CgD;;AAAA,aA6CjDQ,OA7CiD,GA6CvC,YAAM;AACZC,mBAAOC,mBAAP,CAA2B,SAA3B,EAAsC,MAAKjB,WAAL,CAAtC;AACA,kBAAKM,GAAL,CAASW,mBAAT,CAA6B,MAA7B,EAAqC,MAAKhB,eAAL,CAArC;AACA,mCAAgB,MAAKiB,WAAL,CAAiBC,SAAjC,EAA4CC,OAA5C,CAAoD;AAAA,uBAAK,MAAKC,CAAL,IAAU,IAAf;AAAA,aAApD;AACA,mCAAgB,KAAhB,EAAsBD,OAAtB,CAA8B;AAAA,uBAAK,MAAKC,CAAL,IAAU,IAAf;AAAA,aAA9B;AACH,SAlDgD;;AAC7C,aAAKf,GAAL,GAAWA,GAAX;AACA,aAAKC,MAAL,GAAcA,UAAU,GAAxB;AACA;AACA,aAAKJ,OAAL,IAAgBK,SAAhB;AACA;AACA,aAAKJ,QAAL,IAAiBK,WAAjB;AACA;AACA,aAAKZ,SAAL,EAAgBS,GAAhB;AACA;AACA,aAAKR,YAAL;AACA;AACA,aAAKC,QAAL;AACH;;;aACAF,S;8BAAWS,G,EAAK;AACb,gBAAIA,OAAOA,IAAIgB,aAAf,EAA8B;AAC1B,qBAAKT,SAAL,GAAiBP,IAAIgB,aAArB;AACH,aAFD,MAEO;AACHC,wBAAQC,KAAR,CAAc,SAAd;AACH;AACJ;;aACA1B,Y;gCAAgB;AACb,gBAAI,OAAO,KAAKK,OAAL,CAAP,KAAyB,UAA7B,EAAyC;AAAE;AAAQ;AACnD,gBAAI;AACA,qBAAKD,SAAL,IAAmB,IAAIuB,GAAJ,CAAQ,KAAKlB,MAAb,CAAD,CAAuBA,MAAzC;AACH,aAFD,CAEE,OAAOG,CAAP,EAAU;AACRa,wBAAQC,KAAR,CAAcd,CAAd,EAAiB,YAAjB;AACA;AACH;AACDM,mBAAOU,gBAAP,CAAwB,SAAxB,EAAmC,KAAK1B,WAAL,CAAnC;AACH;;aAKAD,Q;gCAAY;AACT,gBAAI,OAAO,KAAKK,QAAL,CAAP,KAA0B,UAA1B,IAAwC,CAAC,KAAKE,GAAlD,EAAuD;AAAE;AAAQ;AACjE,iBAAKA,GAAL,CAASoB,gBAAT,CAA0B,MAA1B,EAAkC,KAAKzB,eAAL,CAAlC;AACH;;;;;kBAvCgBI,W","file":"IframeStore.js","sourcesContent":["/*\r\n * @Date: 2022-03-14 09:32:19\r\n * @Author: zhanghuix\r\n * @LastEditTime: 2022-03-15 16:17:41\r\n * @LastEditors: zhanghuix\r\n */\r\nconst initFrame = Symbol('initFrame');\r\nconst initListener = Symbol('initListener');\r\nconst initLoad = Symbol('initLoad');\r\nconst msgListener = Symbol('msgListener');\r\nconst ifrLoadListener = Symbol('ifrLoadListener');\r\nconst forOrigin = Symbol('forOrigin');\r\nconst onMsgCb = Symbol('onMsgCb');\r\nconst onLoadCb = Symbol('onLoadCb');\r\n// 对外只暴露 sendMessage 和 destroy 两个方法;dom origin iframeWin 三个属性\r\nexport default class IframeStore {\r\n constructor(dom, origin, onMessage, onFrameLoad) {\r\n this.dom = dom;\r\n this.origin = origin || '*';\r\n // 接收嵌套的iframe 的发消息的回调函数\r\n this[onMsgCb] = onMessage;\r\n // 接收 iframe load 方法的回调函数\r\n this[onLoadCb] = onFrameLoad;\r\n // 设置iframe 的 contentwindow\r\n this[initFrame](dom);\r\n // 初始化 iframe 发来的监听事件\r\n this[initListener]();\r\n // 初始化 iframe load 事件\r\n this[initLoad]();\r\n }\r\n [initFrame](dom) {\r\n if (dom && dom.contentWindow) {\r\n this.iframeWin = dom.contentWindow;\r\n } else {\r\n console.error('dom 不合法');\r\n }\r\n }\r\n [initListener]() {\r\n if (typeof this[onMsgCb] !== 'function') { return };\r\n try {\r\n this[forOrigin] = (new URL(this.origin)).origin;\r\n } catch (e) {\r\n console.error(e, 'origin 不合法');\r\n return;\r\n }\r\n window.addEventListener('message', this[msgListener]);\r\n }\r\n [msgListener] = (e) => {\r\n if (this[forOrigin] !== e.origin) { return; }\r\n this[onMsgCb](e, this);\r\n }\r\n [initLoad]() {\r\n if (typeof this[onLoadCb] !== 'function' || !this.dom) { return };\r\n this.dom.addEventListener('load', this[ifrLoadListener]);\r\n }\r\n [ifrLoadListener] = e => {\r\n this[onLoadCb](e, this);\r\n }\r\n sendMessage = (params) => {\r\n this.iframeWin.postMessage(params, this.origin);\r\n }\r\n destroy = () => {\r\n window.removeEventListener('message', this[msgListener]);\r\n this.dom.removeEventListener('load', this[ifrLoadListener]);\r\n Reflect.ownKeys(this.constructor.prototype).forEach(v => this[v] = null);\r\n Reflect.ownKeys(this).forEach(v => this[v] = null);\r\n }\r\n}"]}
|
package/dist/stores/index.js
CHANGED
|
@@ -24,6 +24,10 @@ var _PosLoginStore = require('./PosLoginStore');
|
|
|
24
24
|
|
|
25
25
|
var _PosLoginStore2 = _interopRequireDefault(_PosLoginStore);
|
|
26
26
|
|
|
27
|
+
var _IframeStore = require('./IframeStore');
|
|
28
|
+
|
|
29
|
+
var _IframeStore2 = _interopRequireDefault(_IframeStore);
|
|
30
|
+
|
|
27
31
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
28
32
|
|
|
29
33
|
exports.default = {
|
|
@@ -31,6 +35,7 @@ exports.default = {
|
|
|
31
35
|
modalRouter: new _ModalRouter2.default(),
|
|
32
36
|
dutySettleStore: new _dutySettleStore2.default(),
|
|
33
37
|
modifyPassStore: new _ModifyPassStore2.default(),
|
|
34
|
-
posLoginStore: new _PosLoginStore2.default()
|
|
38
|
+
posLoginStore: new _PosLoginStore2.default(),
|
|
39
|
+
IframeStore: _IframeStore2.default
|
|
35
40
|
};
|
|
36
41
|
//# sourceMappingURL=index.js.map
|
package/dist/stores/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["tplus-portaltouch/stores/index.js"],"names":["portalStore","PortalStore","modalRouter","ModalRouter","dutySettleStore","DutySettleStore","modifyPassStore","ModifyPassStore","posLoginStore","PosLoginStore"],"mappings":";;;;;;AAAA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;;;
|
|
1
|
+
{"version":3,"sources":["tplus-portaltouch/stores/index.js"],"names":["portalStore","PortalStore","modalRouter","ModalRouter","dutySettleStore","DutySettleStore","modifyPassStore","ModifyPassStore","posLoginStore","PosLoginStore","IframeStore"],"mappings":";;;;;;AAAA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;;;kBACe;AACbA,eAAa,IAAIC,qBAAJ,EADA;AAEbC,eAAa,IAAIC,qBAAJ,EAFA;AAGbC,mBAAiB,IAAIC,yBAAJ,EAHJ;AAIbC,mBAAiB,IAAIC,yBAAJ,EAJJ;AAKbC,iBAAe,IAAIC,uBAAJ,EALF;AAMbC,eAAaA;AANA,C","file":"index.js","sourcesContent":["import PortalStore from './PortalStore';\r\nimport ModalRouter from './ModalRouter';\r\nimport DutySettleStore from './dutySettleStore'\r\nimport ModifyPassStore from './ModifyPassStore'\r\nimport PosLoginStore from './PosLoginStore'\r\nimport IframeStore from './IframeStore';\r\nexport default {\r\n portalStore: new PortalStore(),\r\n modalRouter: new ModalRouter(),\r\n dutySettleStore: new DutySettleStore(),\r\n modifyPassStore: new ModifyPassStore(),\r\n posLoginStore: new PosLoginStore(),\r\n IframeStore: IframeStore\r\n};\r\n"]}
|