tplus-portaltouch 3.17.6 → 3.17.10
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.
- package/dist/components/header/headContent.js +188 -38
 - package/dist/components/header/headContent.js.map +1 -1
 - package/dist/components/header/style.less +53 -11
 - package/dist/components/header/uploadList.js +85 -41
 - package/dist/components/header/uploadList.js.map +1 -1
 - package/dist/pages/Portalbc/index.js +11 -7
 - package/dist/pages/Portalbc/index.js.map +1 -1
 - package/package.json +1 -1
 
| 
         @@ -65,6 +65,7 @@ var Item = _antd.Menu.Item; 
     | 
|
| 
       65 
65 
     | 
    
         
             
            var defaultFromat = 'yyyy-MM-dd hh:mm:ss';
         
     | 
| 
       66 
66 
     | 
    
         
             
            var t = _mutantsMicrofx.i18n.getFixedT(null, 'newretail');
         
     | 
| 
       67 
67 
     | 
    
         
             
            var UPLOAD_BASE_PATH = '/login';
         
     | 
| 
      
 68 
     | 
    
         
            +
            var NETWORK_THEME_PATH = "/";
         
     | 
| 
       68 
69 
     | 
    
         
             
            var weakRemindNum = 0; // 弱网提示初始值
         
     | 
| 
       69 
70 
     | 
    
         
             
            //头部时间
         
     | 
| 
       70 
71 
     | 
    
         
             
            function HeadTime(props) {
         
     | 
| 
         @@ -166,12 +167,14 @@ var OnLineStatus = (0, _mobxReact.observer)(function (props) { 
     | 
|
| 
       166 
167 
     | 
    
         | 
| 
       167 
168 
     | 
    
         
             
            //头部联网状态
         
     | 
| 
       168 
169 
     | 
    
         
             
            var OnLineStatusToggle = (0, _mobxReact.observer)(function (props) {
         
     | 
| 
       169 
     | 
    
         
            -
              var  
     | 
| 
      
 170 
     | 
    
         
            +
              var isShowUploadBtnsByRouter = props.isShowUploadBtnsByRouter,
         
     | 
| 
      
 171 
     | 
    
         
            +
                  isResetNetWorkTheme = props.isResetNetWorkTheme;
         
     | 
| 
       170 
172 
     | 
    
         
             
              var networkCheckStore = _mutantsMicrofx.stores.networkCheckStore,
         
     | 
| 
       171 
173 
     | 
    
         
             
                  offlineSys = _mutantsMicrofx.stores.offlineSys;
         
     | 
| 
       172 
174 
     | 
    
         | 
| 
       173 
175 
     | 
    
         
             
              var networkState = networkCheckStore.networkState;
         
     | 
| 
       174 
     | 
    
         
            -
               
     | 
| 
      
 176 
     | 
    
         
            +
              // let isOnLine = !offlineSys.isOffline
         
     | 
| 
      
 177 
     | 
    
         
            +
              var isOnLine = networkState !== '离线';
         
     | 
| 
       175 
178 
     | 
    
         
             
              var iconName = 'WiFi';
         
     | 
| 
       176 
179 
     | 
    
         
             
              switch (networkState) {
         
     | 
| 
       177 
180 
     | 
    
         
             
                case '联网':
         
     | 
| 
         @@ -219,11 +222,11 @@ var OnLineStatusToggle = (0, _mobxReact.observer)(function (props) { 
     | 
|
| 
       219 
222 
     | 
    
         
             
                  { className: 'status-square' },
         
     | 
| 
       220 
223 
     | 
    
         
             
                  _react2.default.createElement(
         
     | 
| 
       221 
224 
     | 
    
         
             
                    'span',
         
     | 
| 
       222 
     | 
    
         
            -
                    { className: 'status-tog-btn' },
         
     | 
| 
      
 225 
     | 
    
         
            +
                    { className: 'status-tog-btn', style: { color: '' + (isResetNetWorkTheme ? '#fff' : '') } },
         
     | 
| 
       223 
226 
     | 
    
         
             
                    _react2.default.createElement(_tplusComponentsTouch.Ticon, { icon: iconName })
         
     | 
| 
       224 
227 
     | 
    
         
             
                  )
         
     | 
| 
       225 
228 
     | 
    
         
             
                ),
         
     | 
| 
       226 
     | 
    
         
            -
                 
     | 
| 
      
 229 
     | 
    
         
            +
                isShowUploadBtnsByRouter && (0, _tplusPoslogin.PosInitData)('IsOfflineCash') === "1" && _react2.default.createElement(
         
     | 
| 
       227 
230 
     | 
    
         
             
                  'div',
         
     | 
| 
       228 
231 
     | 
    
         
             
                  { className: 'status-square c-pointer online-status-bg ' + (isOnLine ? '' : 'off-line') },
         
     | 
| 
       229 
232 
     | 
    
         
             
                  _react2.default.createElement(
         
     | 
| 
         @@ -266,6 +269,11 @@ function RetailUpload() { 
     | 
|
| 
       266 
269 
     | 
    
         
             
                  isModalVisible = _useState4[0],
         
     | 
| 
       267 
270 
     | 
    
         
             
                  setIsModalVisible = _useState4[1];
         
     | 
| 
       268 
271 
     | 
    
         | 
| 
      
 272 
     | 
    
         
            +
              var _useState5 = (0, _react.useState)(false),
         
     | 
| 
      
 273 
     | 
    
         
            +
                  _useState6 = (0, _slicedToArray3.default)(_useState5, 2),
         
     | 
| 
      
 274 
     | 
    
         
            +
                  isUpLoading = _useState6[0],
         
     | 
| 
      
 275 
     | 
    
         
            +
                  setIsUpLoading = _useState6[1];
         
     | 
| 
      
 276 
     | 
    
         
            +
             
     | 
| 
       269 
277 
     | 
    
         
             
              var refModal = (0, _react.useRef)(null);
         
     | 
| 
       270 
278 
     | 
    
         
             
              var showModal = function () {
         
     | 
| 
       271 
279 
     | 
    
         
             
                var _ref3 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee() {
         
     | 
| 
         @@ -289,12 +297,63 @@ function RetailUpload() { 
     | 
|
| 
       289 
297 
     | 
    
         
             
                };
         
     | 
| 
       290 
298 
     | 
    
         
             
              }();
         
     | 
| 
       291 
299 
     | 
    
         | 
| 
       292 
     | 
    
         
            -
              var handleOk = function  
     | 
| 
       293 
     | 
    
         
            -
                var  
     | 
| 
      
 300 
     | 
    
         
            +
              var handleOk = function () {
         
     | 
| 
      
 301 
     | 
    
         
            +
                var _ref4 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee2() {
         
     | 
| 
      
 302 
     | 
    
         
            +
                  var isUpLoad = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
         
     | 
| 
      
 303 
     | 
    
         
            +
                  return _regenerator2.default.wrap(function _callee2$(_context2) {
         
     | 
| 
      
 304 
     | 
    
         
            +
                    while (1) {
         
     | 
| 
      
 305 
     | 
    
         
            +
                      switch (_context2.prev = _context2.next) {
         
     | 
| 
      
 306 
     | 
    
         
            +
                        case 0:
         
     | 
| 
      
 307 
     | 
    
         
            +
                          setIsModalVisible(false);
         
     | 
| 
      
 308 
     | 
    
         
            +
             
     | 
| 
      
 309 
     | 
    
         
            +
                          if (isUpLoad) {
         
     | 
| 
      
 310 
     | 
    
         
            +
                            _context2.next = 4;
         
     | 
| 
      
 311 
     | 
    
         
            +
                            break;
         
     | 
| 
      
 312 
     | 
    
         
            +
                          }
         
     | 
| 
       294 
313 
     | 
    
         | 
| 
       295 
     | 
    
         
            -
             
     | 
| 
       296 
     | 
    
         
            -
             
     | 
| 
       297 
     | 
    
         
            -
             
     | 
| 
      
 314 
     | 
    
         
            +
                          _tplusComponentsTouch.Message.tip('暂无可以上传的单据');
         
     | 
| 
      
 315 
     | 
    
         
            +
                          return _context2.abrupt('return');
         
     | 
| 
      
 316 
     | 
    
         
            +
             
     | 
| 
      
 317 
     | 
    
         
            +
                        case 4:
         
     | 
| 
      
 318 
     | 
    
         
            +
                          if (!isUpLoading) {
         
     | 
| 
      
 319 
     | 
    
         
            +
                            _context2.next = 7;
         
     | 
| 
      
 320 
     | 
    
         
            +
                            break;
         
     | 
| 
      
 321 
     | 
    
         
            +
                          }
         
     | 
| 
      
 322 
     | 
    
         
            +
             
     | 
| 
      
 323 
     | 
    
         
            +
                          _tplusComponentsTouch.Message.tip('上传中……');
         
     | 
| 
      
 324 
     | 
    
         
            +
                          return _context2.abrupt('return');
         
     | 
| 
      
 325 
     | 
    
         
            +
             
     | 
| 
      
 326 
     | 
    
         
            +
                        case 7:
         
     | 
| 
      
 327 
     | 
    
         
            +
                          setIsUpLoading(true);
         
     | 
| 
      
 328 
     | 
    
         
            +
                          _context2.prev = 8;
         
     | 
| 
      
 329 
     | 
    
         
            +
                          _context2.next = 11;
         
     | 
| 
      
 330 
     | 
    
         
            +
                          return _mutantsMicrofx.stores.offlineSys.uploadRetail();
         
     | 
| 
      
 331 
     | 
    
         
            +
             
     | 
| 
      
 332 
     | 
    
         
            +
                        case 11:
         
     | 
| 
      
 333 
     | 
    
         
            +
                          _context2.next = 16;
         
     | 
| 
      
 334 
     | 
    
         
            +
                          break;
         
     | 
| 
      
 335 
     | 
    
         
            +
             
     | 
| 
      
 336 
     | 
    
         
            +
                        case 13:
         
     | 
| 
      
 337 
     | 
    
         
            +
                          _context2.prev = 13;
         
     | 
| 
      
 338 
     | 
    
         
            +
                          _context2.t0 = _context2['catch'](8);
         
     | 
| 
      
 339 
     | 
    
         
            +
             
     | 
| 
      
 340 
     | 
    
         
            +
                          _tplusComponentsTouch.Message.error('上传失败');
         
     | 
| 
      
 341 
     | 
    
         
            +
             
     | 
| 
      
 342 
     | 
    
         
            +
                        case 16:
         
     | 
| 
      
 343 
     | 
    
         
            +
                          setIsUpLoading(false);
         
     | 
| 
      
 344 
     | 
    
         
            +
             
     | 
| 
      
 345 
     | 
    
         
            +
                        case 17:
         
     | 
| 
      
 346 
     | 
    
         
            +
                        case 'end':
         
     | 
| 
      
 347 
     | 
    
         
            +
                          return _context2.stop();
         
     | 
| 
      
 348 
     | 
    
         
            +
                      }
         
     | 
| 
      
 349 
     | 
    
         
            +
                    }
         
     | 
| 
      
 350 
     | 
    
         
            +
                  }, _callee2, _this, [[8, 13]]);
         
     | 
| 
      
 351 
     | 
    
         
            +
                }));
         
     | 
| 
      
 352 
     | 
    
         
            +
             
     | 
| 
      
 353 
     | 
    
         
            +
                return function handleOk() {
         
     | 
| 
      
 354 
     | 
    
         
            +
                  return _ref4.apply(this, arguments);
         
     | 
| 
      
 355 
     | 
    
         
            +
                };
         
     | 
| 
      
 356 
     | 
    
         
            +
              }();
         
     | 
| 
       298 
357 
     | 
    
         | 
| 
       299 
358 
     | 
    
         
             
              var handleCancel = function handleCancel() {
         
     | 
| 
       300 
359 
     | 
    
         
             
                setIsModalVisible(false);
         
     | 
| 
         @@ -310,17 +369,17 @@ function RetailUpload() { 
     | 
|
| 
       310 
369 
     | 
    
         
             
                    { className: 'status-tog-btn' },
         
     | 
| 
       311 
370 
     | 
    
         
             
                    _react2.default.createElement(
         
     | 
| 
       312 
371 
     | 
    
         
             
                      'span',
         
     | 
| 
       313 
     | 
    
         
            -
                       
     | 
| 
      
 372 
     | 
    
         
            +
                      { className: '' + (isUpLoading ? 'isRetailUpLoading' : '') },
         
     | 
| 
       314 
373 
     | 
    
         
             
                      _react2.default.createElement(_tplusComponentsTouch.Ticon, { icon: 'shangchuan' })
         
     | 
| 
       315 
374 
     | 
    
         
             
                    ),
         
     | 
| 
       316 
375 
     | 
    
         
             
                    _react2.default.createElement(
         
     | 
| 
       317 
376 
     | 
    
         
             
                      'span',
         
     | 
| 
       318 
377 
     | 
    
         
             
                      { className: 'fast-upload-btn' },
         
     | 
| 
       319 
     | 
    
         
            -
                      '\u4E0A\u4F20\u96F6\u552E\u5355'
         
     | 
| 
       320 
     | 
    
         
            -
                    ) 
     | 
| 
       321 
     | 
    
         
            -
                    _react2.default.createElement(UnLoadNum, null)
         
     | 
| 
      
 378 
     | 
    
         
            +
                      ' \u4E0A\u4F20\u96F6\u552E\u5355'
         
     | 
| 
      
 379 
     | 
    
         
            +
                    )
         
     | 
| 
       322 
380 
     | 
    
         
             
                  )
         
     | 
| 
       323 
381 
     | 
    
         
             
                ),
         
     | 
| 
      
 382 
     | 
    
         
            +
                _react2.default.createElement(UnLoadNum, null),
         
     | 
| 
       324 
383 
     | 
    
         
             
                _react2.default.createElement(_uploadList2.default, { ref: refModal, visible: isModalVisible, handleOk: handleOk, handleCancel: handleCancel })
         
     | 
| 
       325 
384 
     | 
    
         
             
              );
         
     | 
| 
       326 
385 
     | 
    
         
             
            }
         
     | 
| 
         @@ -330,10 +389,94 @@ var UnLoadNum = (0, _mobxReact.observer)(function () { 
     | 
|
| 
       330 
389 
     | 
    
         | 
| 
       331 
390 
     | 
    
         
             
              return _react2.default.createElement(
         
     | 
| 
       332 
391 
     | 
    
         
             
                'span',
         
     | 
| 
       333 
     | 
    
         
            -
                { className: 'up-count-btn' },
         
     | 
| 
      
 392 
     | 
    
         
            +
                { style: { display: retailNotUploadNumber > 0 ? 'inherit' : 'none' }, className: 'up-count-btn' },
         
     | 
| 
       334 
393 
     | 
    
         
             
                retailNotUploadNumber > 99 ? '99+' : retailNotUploadNumber
         
     | 
| 
       335 
394 
     | 
    
         
             
              );
         
     | 
| 
       336 
395 
     | 
    
         
             
            });
         
     | 
| 
      
 396 
     | 
    
         
            +
            //零售单下载
         
     | 
| 
      
 397 
     | 
    
         
            +
            function RetailDownload() {
         
     | 
| 
      
 398 
     | 
    
         
            +
              var _this2 = this;
         
     | 
| 
      
 399 
     | 
    
         
            +
             
     | 
| 
      
 400 
     | 
    
         
            +
              var offlineSys = _mutantsMicrofx.stores.offlineSys;
         
     | 
| 
      
 401 
     | 
    
         
            +
             
     | 
| 
      
 402 
     | 
    
         
            +
              var _useState7 = (0, _react.useState)(false),
         
     | 
| 
      
 403 
     | 
    
         
            +
                  _useState8 = (0, _slicedToArray3.default)(_useState7, 2),
         
     | 
| 
      
 404 
     | 
    
         
            +
                  isDownload = _useState8[0],
         
     | 
| 
      
 405 
     | 
    
         
            +
                  setIsDownload = _useState8[1];
         
     | 
| 
      
 406 
     | 
    
         
            +
             
     | 
| 
      
 407 
     | 
    
         
            +
              var handleDownLoad = function () {
         
     | 
| 
      
 408 
     | 
    
         
            +
                var _ref5 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee3() {
         
     | 
| 
      
 409 
     | 
    
         
            +
                  var result;
         
     | 
| 
      
 410 
     | 
    
         
            +
                  return _regenerator2.default.wrap(function _callee3$(_context3) {
         
     | 
| 
      
 411 
     | 
    
         
            +
                    while (1) {
         
     | 
| 
      
 412 
     | 
    
         
            +
                      switch (_context3.prev = _context3.next) {
         
     | 
| 
      
 413 
     | 
    
         
            +
                        case 0:
         
     | 
| 
      
 414 
     | 
    
         
            +
                          if (!isDownload) {
         
     | 
| 
      
 415 
     | 
    
         
            +
                            _context3.next = 3;
         
     | 
| 
      
 416 
     | 
    
         
            +
                            break;
         
     | 
| 
      
 417 
     | 
    
         
            +
                          }
         
     | 
| 
      
 418 
     | 
    
         
            +
             
     | 
| 
      
 419 
     | 
    
         
            +
                          _tplusComponentsTouch.Message.tip('下载中……');
         
     | 
| 
      
 420 
     | 
    
         
            +
                          return _context3.abrupt('return');
         
     | 
| 
      
 421 
     | 
    
         
            +
             
     | 
| 
      
 422 
     | 
    
         
            +
                        case 3:
         
     | 
| 
      
 423 
     | 
    
         
            +
                          setIsDownload(true);
         
     | 
| 
      
 424 
     | 
    
         
            +
                          _tplusComponentsTouch.Message.tip('下载中……');
         
     | 
| 
      
 425 
     | 
    
         
            +
                          _context3.prev = 5;
         
     | 
| 
      
 426 
     | 
    
         
            +
                          _context3.next = 8;
         
     | 
| 
      
 427 
     | 
    
         
            +
                          return offlineSys.downloadCatcherData();
         
     | 
| 
      
 428 
     | 
    
         
            +
             
     | 
| 
      
 429 
     | 
    
         
            +
                        case 8:
         
     | 
| 
      
 430 
     | 
    
         
            +
                          result = _context3.sent;
         
     | 
| 
      
 431 
     | 
    
         
            +
             
     | 
| 
      
 432 
     | 
    
         
            +
                          _tplusComponentsTouch.Message.success('\u6570\u636E\u4E0B\u8F7D' + (result ? "成功" : "失败"));
         
     | 
| 
      
 433 
     | 
    
         
            +
                          _context3.next = 15;
         
     | 
| 
      
 434 
     | 
    
         
            +
                          break;
         
     | 
| 
      
 435 
     | 
    
         
            +
             
     | 
| 
      
 436 
     | 
    
         
            +
                        case 12:
         
     | 
| 
      
 437 
     | 
    
         
            +
                          _context3.prev = 12;
         
     | 
| 
      
 438 
     | 
    
         
            +
                          _context3.t0 = _context3['catch'](5);
         
     | 
| 
      
 439 
     | 
    
         
            +
             
     | 
| 
      
 440 
     | 
    
         
            +
                          _tplusComponentsTouch.Message.error('数据下载失败');
         
     | 
| 
      
 441 
     | 
    
         
            +
             
     | 
| 
      
 442 
     | 
    
         
            +
                        case 15:
         
     | 
| 
      
 443 
     | 
    
         
            +
                          setIsDownload(false);
         
     | 
| 
      
 444 
     | 
    
         
            +
             
     | 
| 
      
 445 
     | 
    
         
            +
                        case 16:
         
     | 
| 
      
 446 
     | 
    
         
            +
                        case 'end':
         
     | 
| 
      
 447 
     | 
    
         
            +
                          return _context3.stop();
         
     | 
| 
      
 448 
     | 
    
         
            +
                      }
         
     | 
| 
      
 449 
     | 
    
         
            +
                    }
         
     | 
| 
      
 450 
     | 
    
         
            +
                  }, _callee3, _this2, [[5, 12]]);
         
     | 
| 
      
 451 
     | 
    
         
            +
                }));
         
     | 
| 
      
 452 
     | 
    
         
            +
             
     | 
| 
      
 453 
     | 
    
         
            +
                return function handleDownLoad() {
         
     | 
| 
      
 454 
     | 
    
         
            +
                  return _ref5.apply(this, arguments);
         
     | 
| 
      
 455 
     | 
    
         
            +
                };
         
     | 
| 
      
 456 
     | 
    
         
            +
              }();
         
     | 
| 
      
 457 
     | 
    
         
            +
              return _react2.default.createElement(
         
     | 
| 
      
 458 
     | 
    
         
            +
                'div',
         
     | 
| 
      
 459 
     | 
    
         
            +
                { className: 'download-retail' },
         
     | 
| 
      
 460 
     | 
    
         
            +
                _react2.default.createElement(
         
     | 
| 
      
 461 
     | 
    
         
            +
                  'div',
         
     | 
| 
      
 462 
     | 
    
         
            +
                  { className: 'status-square online-status-bg c-pointer', onClick: handleDownLoad },
         
     | 
| 
      
 463 
     | 
    
         
            +
                  _react2.default.createElement(
         
     | 
| 
      
 464 
     | 
    
         
            +
                    'span',
         
     | 
| 
      
 465 
     | 
    
         
            +
                    { className: 'status-tog-btn' },
         
     | 
| 
      
 466 
     | 
    
         
            +
                    _react2.default.createElement(
         
     | 
| 
      
 467 
     | 
    
         
            +
                      'span',
         
     | 
| 
      
 468 
     | 
    
         
            +
                      { className: '' + (isDownload ? 'isRetailDownLoading' : '') },
         
     | 
| 
      
 469 
     | 
    
         
            +
                      _react2.default.createElement(_tplusComponentsTouch.Ticon, { icon: 'xiazaishuju' })
         
     | 
| 
      
 470 
     | 
    
         
            +
                    ),
         
     | 
| 
      
 471 
     | 
    
         
            +
                    _react2.default.createElement(
         
     | 
| 
      
 472 
     | 
    
         
            +
                      'span',
         
     | 
| 
      
 473 
     | 
    
         
            +
                      { className: 'fast-upload-btn' },
         
     | 
| 
      
 474 
     | 
    
         
            +
                      ' \u4E0B\u8F7D\u6570\u636E'
         
     | 
| 
      
 475 
     | 
    
         
            +
                    )
         
     | 
| 
      
 476 
     | 
    
         
            +
                  )
         
     | 
| 
      
 477 
     | 
    
         
            +
                )
         
     | 
| 
      
 478 
     | 
    
         
            +
              );
         
     | 
| 
      
 479 
     | 
    
         
            +
            }
         
     | 
| 
       337 
480 
     | 
    
         
             
            var releaseDate = void 0,
         
     | 
| 
       338 
481 
     | 
    
         
             
                releaseVersion = void 0;
         
     | 
| 
       339 
482 
     | 
    
         
             
            try {
         
     | 
| 
         @@ -366,18 +509,24 @@ function HeadContent(props, context) { 
     | 
|
| 
       366 
509 
     | 
    
         
             
                  onClick = props.onClick,
         
     | 
| 
       367 
510 
     | 
    
         
             
                  location = props.location;
         
     | 
| 
       368 
511 
     | 
    
         | 
| 
       369 
     | 
    
         
            -
              var  
     | 
| 
       370 
     | 
    
         
            -
                   
     | 
| 
       371 
     | 
    
         
            -
                  themeVisible =  
     | 
| 
       372 
     | 
    
         
            -
                  setThemeVisible =  
     | 
| 
      
 512 
     | 
    
         
            +
              var _useState9 = (0, _react.useState)(false),
         
     | 
| 
      
 513 
     | 
    
         
            +
                  _useState10 = (0, _slicedToArray3.default)(_useState9, 2),
         
     | 
| 
      
 514 
     | 
    
         
            +
                  themeVisible = _useState10[0],
         
     | 
| 
      
 515 
     | 
    
         
            +
                  setThemeVisible = _useState10[1];
         
     | 
| 
       373 
516 
     | 
    
         | 
| 
       374 
     | 
    
         
            -
              var  
     | 
| 
       375 
     | 
    
         
            -
                   
     | 
| 
       376 
     | 
    
         
            -
                   
     | 
| 
       377 
     | 
    
         
            -
                   
     | 
| 
      
 517 
     | 
    
         
            +
              var _useState11 = (0, _react.useState)(window.location.href.indexOf(UPLOAD_BASE_PATH) < 0),
         
     | 
| 
      
 518 
     | 
    
         
            +
                  _useState12 = (0, _slicedToArray3.default)(_useState11, 2),
         
     | 
| 
      
 519 
     | 
    
         
            +
                  isShowUploadBtnsByRouter = _useState12[0],
         
     | 
| 
      
 520 
     | 
    
         
            +
                  setIsShowUploadBtnsByRouter = _useState12[1];
         
     | 
| 
      
 521 
     | 
    
         
            +
             
     | 
| 
      
 522 
     | 
    
         
            +
              var _useState13 = (0, _react.useState)(window.location.pathname === NETWORK_THEME_PATH),
         
     | 
| 
      
 523 
     | 
    
         
            +
                  _useState14 = (0, _slicedToArray3.default)(_useState13, 2),
         
     | 
| 
      
 524 
     | 
    
         
            +
                  isResetNetWorkTheme = _useState14[0],
         
     | 
| 
      
 525 
     | 
    
         
            +
                  setIsResetNetWorkTheme = _useState14[1];
         
     | 
| 
       378 
526 
     | 
    
         | 
| 
       379 
527 
     | 
    
         
             
              props.history.listen(function (route) {
         
     | 
| 
       380 
     | 
    
         
            -
                 
     | 
| 
      
 528 
     | 
    
         
            +
                setIsResetNetWorkTheme(route.pathname === NETWORK_THEME_PATH);
         
     | 
| 
      
 529 
     | 
    
         
            +
                setIsShowUploadBtnsByRouter(route.pathname.indexOf(UPLOAD_BASE_PATH) < 0);
         
     | 
| 
       381 
530 
     | 
    
         
             
              });
         
     | 
| 
       382 
531 
     | 
    
         
             
              var menuProps = { onClick: onClick };
         
     | 
| 
       383 
532 
     | 
    
         
             
              var menus = _react2.default.createElement(
         
     | 
| 
         @@ -406,12 +555,12 @@ function HeadContent(props, context) { 
     | 
|
| 
       406 
555 
     | 
    
         
             
                    title: '关闭提示',
         
     | 
| 
       407 
556 
     | 
    
         
             
                    content: '您确定要关闭应用吗?',
         
     | 
| 
       408 
557 
     | 
    
         
             
                    onOk: function onOk() {
         
     | 
| 
       409 
     | 
    
         
            -
                      var  
     | 
| 
      
 558 
     | 
    
         
            +
                      var _this3 = this;
         
     | 
| 
       410 
559 
     | 
    
         | 
| 
       411 
     | 
    
         
            -
                      return (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function  
     | 
| 
       412 
     | 
    
         
            -
                        return _regenerator2.default.wrap(function  
     | 
| 
      
 560 
     | 
    
         
            +
                      return (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee4() {
         
     | 
| 
      
 561 
     | 
    
         
            +
                        return _regenerator2.default.wrap(function _callee4$(_context4) {
         
     | 
| 
       413 
562 
     | 
    
         
             
                          while (1) {
         
     | 
| 
       414 
     | 
    
         
            -
                            switch ( 
     | 
| 
      
 563 
     | 
    
         
            +
                            switch (_context4.prev = _context4.next) {
         
     | 
| 
       415 
564 
     | 
    
         
             
                              case 0:
         
     | 
| 
       416 
565 
     | 
    
         
             
                                _tplusComponentsTouch.Loading.show({
         
     | 
| 
       417 
566 
     | 
    
         
             
                                  className: 'close-app-loading',
         
     | 
| 
         @@ -428,8 +577,8 @@ function HeadContent(props, context) { 
     | 
|
| 
       428 
577 
     | 
    
         
             
                                  delay: false
         
     | 
| 
       429 
578 
     | 
    
         
             
                                });
         
     | 
| 
       430 
579 
     | 
    
         
             
                                context.actionHook.actionChange('close-app');
         
     | 
| 
       431 
     | 
    
         
            -
                                 
     | 
| 
       432 
     | 
    
         
            -
                                 
     | 
| 
      
 580 
     | 
    
         
            +
                                _context4.prev = 2;
         
     | 
| 
      
 581 
     | 
    
         
            +
                                _context4.next = 5;
         
     | 
| 
       433 
582 
     | 
    
         
             
                                return _tplusApi.User.logout(function () {
         
     | 
| 
       434 
583 
     | 
    
         
             
                                  setTimeout(function () {
         
     | 
| 
       435 
584 
     | 
    
         
             
                                    _mutantsMicrofx.nativeMs.doWindow(item.event);
         
     | 
| 
         @@ -437,12 +586,12 @@ function HeadContent(props, context) { 
     | 
|
| 
       437 
586 
     | 
    
         
             
                                });
         
     | 
| 
       438 
587 
     | 
    
         | 
| 
       439 
588 
     | 
    
         
             
                              case 5:
         
     | 
| 
       440 
     | 
    
         
            -
                                 
     | 
| 
      
 589 
     | 
    
         
            +
                                _context4.next = 12;
         
     | 
| 
       441 
590 
     | 
    
         
             
                                break;
         
     | 
| 
       442 
591 
     | 
    
         | 
| 
       443 
592 
     | 
    
         
             
                              case 7:
         
     | 
| 
       444 
     | 
    
         
            -
                                 
     | 
| 
       445 
     | 
    
         
            -
                                 
     | 
| 
      
 593 
     | 
    
         
            +
                                _context4.prev = 7;
         
     | 
| 
      
 594 
     | 
    
         
            +
                                _context4.t0 = _context4['catch'](2);
         
     | 
| 
       446 
595 
     | 
    
         | 
| 
       447 
596 
     | 
    
         
             
                                _tplusApi.User.clear();
         
     | 
| 
       448 
597 
     | 
    
         
             
                                _mutantsMicrofx.localStore.remove('user');
         
     | 
| 
         @@ -452,10 +601,10 @@ function HeadContent(props, context) { 
     | 
|
| 
       452 
601 
     | 
    
         | 
| 
       453 
602 
     | 
    
         
             
                              case 12:
         
     | 
| 
       454 
603 
     | 
    
         
             
                              case 'end':
         
     | 
| 
       455 
     | 
    
         
            -
                                return  
     | 
| 
      
 604 
     | 
    
         
            +
                                return _context4.stop();
         
     | 
| 
       456 
605 
     | 
    
         
             
                            }
         
     | 
| 
       457 
606 
     | 
    
         
             
                          }
         
     | 
| 
       458 
     | 
    
         
            -
                        },  
     | 
| 
      
 607 
     | 
    
         
            +
                        }, _callee4, _this3, [[2, 7]]);
         
     | 
| 
       459 
608 
     | 
    
         
             
                      }))();
         
     | 
| 
       460 
609 
     | 
    
         
             
                    }
         
     | 
| 
       461 
610 
     | 
    
         
             
                  });
         
     | 
| 
         @@ -473,8 +622,8 @@ function HeadContent(props, context) { 
     | 
|
| 
       473 
622 
     | 
    
         
             
              };
         
     | 
| 
       474 
623 
     | 
    
         | 
| 
       475 
624 
     | 
    
         
             
              var setInventoryFocus = function setInventoryFocus() {
         
     | 
| 
       476 
     | 
    
         
            -
                var  
     | 
| 
       477 
     | 
    
         
            -
                    isHorizontalPad =  
     | 
| 
      
 625 
     | 
    
         
            +
                var _ref6 = _mutantsUtil.platform || {},
         
     | 
| 
      
 626 
     | 
    
         
            +
                    isHorizontalPad = _ref6.isHorizontalPad;
         
     | 
| 
       478 
627 
     | 
    
         | 
| 
       479 
628 
     | 
    
         
             
                if (!!isHorizontalPad) return;
         
     | 
| 
       480 
629 
     | 
    
         
             
                var doms = document.getElementsByClassName('app hot-key-focus-container');
         
     | 
| 
         @@ -557,8 +706,9 @@ function HeadContent(props, context) { 
     | 
|
| 
       557 
706 
     | 
    
         
             
                      _react2.default.createElement('i', { className: 'header-triangle-down' })
         
     | 
| 
       558 
707 
     | 
    
         
             
                    )
         
     | 
| 
       559 
708 
     | 
    
         
             
                  ),
         
     | 
| 
       560 
     | 
    
         
            -
                  _react2.default.createElement(OnLineStatusToggle, {  
     | 
| 
       561 
     | 
    
         
            -
                   
     | 
| 
      
 709 
     | 
    
         
            +
                  _react2.default.createElement(OnLineStatusToggle, { isShowUploadBtnsByRouter: isShowUploadBtnsByRouter, isResetNetWorkTheme: isResetNetWorkTheme }),
         
     | 
| 
      
 710 
     | 
    
         
            +
                  isShowUploadBtnsByRouter && _react2.default.createElement(RetailUpload, null),
         
     | 
| 
      
 711 
     | 
    
         
            +
                  isShowUploadBtnsByRouter && _react2.default.createElement(RetailDownload, null)
         
     | 
| 
       562 
712 
     | 
    
         
             
                ),
         
     | 
| 
       563 
713 
     | 
    
         
             
                isElectron && headControlNode,
         
     | 
| 
       564 
714 
     | 
    
         
             
                _react2.default.createElement(
         
     | 
| 
         @@ -1 +1 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            {"version":3,"sources":["tplus-portaltouch/components/header/headContent.js"],"names":["HeadContent","Item","Menu","defaultFromat","t","i18n","getFixedT","UPLOAD_BASE_PATH","weakRemindNum","HeadTime","props","time","dateFormat","unMount","timeStr","Date","now","currentTime","setCurrentTime","timeout","refreshDate","setTimeout","clearTimeout","split","date_YMD","date_HMS","platform","isVerticalTouch","OnLineStatus","networkStatus","networkCheckStore","stores","networkState","networkOn","iconName","switchNetwork","checked","event","switchOnLine","lineIcon","marginRight","OnLineStatusToggle","isShowUploadBtns","offlineSys","isOnLine","isOffline","setIsOffline","ModalWraper","confirm","title","content","onOk","_setIsOnLine","OFFLINE_POINT_DESC","RetailUpload","isModalVisible","setIsModalVisible","refModal","showModal","current","fetch","handleOk","isUpLoad","Message","warn","handleCancel","UnLoadNum","retailNotUploadNumber","releaseDate","releaseVersion","__RELEASESDATE__","__BUILDVERSION__","error","context","isElectron","env","businessName","storeName","posCode","logo","style","history","solt","isPortal","isLogin","menu","onClick","location","themeVisible","setThemeVisible","window","href","indexOf","setIsShowUploadBtns","listen","route","pathname","menuProps","menus","map","item","i","key","icon","controlConfig","type","beforeEvent","className","Loading","show","node","delay","actionHook","actionChange","User","logout","nativeMs","doWindow","clear","localStore","remove","splitUser","value","regEmail","RegExp","isEmail","test","setInventoryFocus","isHorizontalPad","doms","document","getElementsByClassName","input","getElementById","length","console","log","focus","clickTheme","isShow","userName","overlayClassName","moreInfoNode","headControlNode","v","display","width","height","replace","e","preventDefault","contextTypes","PropTypes","object"],"mappings":"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","file":"headContent.js","sourcesContent":["import React, { useState, useEffect, useRef } from 'react';\r\nimport { Ticon, ModalWraper, Loading, Spin, Message } from 'tplus-components-touch';\r\nimport { Tooltip, Menu, Dropdown, Switch, Popover } from 'antd';\r\nimport PropTypes from 'prop-types';\r\nimport { formatDate } from '../../utils';\r\nimport { env, nativeMs, localStore, i18n } from 'mutants-microfx';\r\nimport { PosInitData } from 'tplus-poslogin';\r\nimport { User } from 'tplus-api';\r\nimport { verticalHeadTime, verticalHeadContent } from './vertical-touch';\r\nimport { platform } from 'mutants-util';\r\nimport ThemeModal from \"./themeModal\";\r\nimport UploadOrder from \"./uploadList\";\r\nimport {stores} from 'mutants-microfx';\r\nimport {observer} from 'mobx-react';\r\nimport {OFFLINE_POINT_DESC} from './offlinePointDesc';\r\nconst { Item } = Menu;\r\nconst defaultFromat = 'yyyy-MM-dd hh:mm:ss';\r\nconst t = i18n.getFixedT(null, 'newretail');\r\nconst UPLOAD_BASE_PATH = '/login';\r\nlet weakRemindNum = 0;// 弱网提示初始值\r\n//头部时间\r\nfunction HeadTime(props) {\r\n  const { time, dateFormat } = props;\r\n  let unMount = false;\r\n  const timeStr = typeof time === 'number' ? formatDate(time, dateFormat) : time;\r\n  const [currentTime, setCurrentTime] = useState(formatDate(Date.now(), dateFormat));\r\n  let timeout;\r\n  function refreshDate() {\r\n    if (time) return;\r\n    !unMount && setCurrentTime(formatDate(Date.now(), dateFormat));\r\n    timeout = setTimeout(refreshDate, 1000);\r\n  }\r\n  useEffect(() => {\r\n    refreshDate();\r\n    return () => {\r\n      unMount = true;\r\n      clearTimeout(timeout);\r\n    };\r\n  }, [currentTime]);\r\n  const [date_YMD, date_HMS] = currentTime.split(' ') || [];\r\n\r\n  if (platform.isVerticalTouch) return verticalHeadTime({ date_HMS });\r\n  return (\r\n    <div className='time'>\r\n      {timeStr ?\r\n        <div>{timeStr}</div> :\r\n        <div>\r\n          {date_YMD}\r\n          <span>{date_HMS}</span>\r\n        </div>\r\n      }\r\n    </div>\r\n  );\r\n}\r\n\r\n//头部联网状态\r\nconst OnLineStatus = observer((props)=>{\r\n  const { networkStatus } = props;\r\n  const { networkCheckStore } = stores;\r\n  const networkState = networkCheckStore.networkState;\r\n  let networkOn = true;\r\n  let iconName = 'WiFi';\r\n  switch (networkState) {\r\n    case '联网':\r\n      iconName = 'WiFi';\r\n      break;\r\n    case '弱网':\r\n      iconName = 'ruowifi';\r\n      break;\r\n    case '离线':\r\n      networkOn = false;\r\n      iconName = 'wuwangluo';\r\n      break;\r\n    default:\r\n      break;\r\n  }\r\n  const switchNetwork = (checked ,event)=>{\r\n    networkCheckStore.switchOnLine(checked);\r\n  }\r\n  const lineIcon = <Ticon\r\n    icon={iconName}\r\n    className=\"network-state-icon\"\r\n  />\r\n  return (\r\n    <div><span className='network-status' style={{marginRight:'10px'}}>{networkStatus || lineIcon}</span><span><Switch checkedChildren=\"开启\" unCheckedChildren=\"关闭\" defaultChecked checked={networkOn} onChange={switchNetwork}/></span></div>\r\n  );\r\n});\r\n\r\n//头部联网状态\r\nconst OnLineStatusToggle = observer(props => {\r\n  const { isShowUploadBtns } = props;\r\n  const { networkCheckStore , offlineSys } = stores;\r\n  const networkState = networkCheckStore.networkState;\r\n  let isOnLine = !offlineSys.isOffline\r\n  let iconName = 'WiFi';\r\n  switch (networkState) {\r\n    case '联网':\r\n      iconName = 'WiFi';\r\n      break;\r\n    case '弱网':\r\n      iconName = 'ruowifi';\r\n      break;\r\n    case '离线':\r\n      isOnLine = false;\r\n      offlineSys.setIsOffline(!isOnLine);\r\n      iconName = 'wuwangluo';\r\n      break;\r\n    default:\r\n      break;\r\n  }\r\n  if (networkState === '弱网' && weakRemindNum <= 3) {\r\n    weakRemindNum ++;\r\n    ModalWraper.confirm({\r\n      title: t('提示'),\r\n      content: t('当前网络不好,是否切换到离线?'),\r\n      onOk: () => {\r\n        networkCheckStore.switchOnLine(false);\r\n        offlineSys.setIsOffline(true);\r\n        isOnLine = !isOnLine;\r\n      }\r\n    });\r\n  }\r\n  function _setIsOnLine() {\r\n    ModalWraper.confirm({\r\n        title: t('提示'),\r\n        content: t(`确定要切换为${isOnLine ? '离' : '在'}线环境吗?`),\r\n        onOk: () => {\r\n          networkCheckStore.switchOnLine(!isOnLine);\r\n          offlineSys.setIsOffline(isOnLine);\r\n          isOnLine = !isOnLine;\r\n        }\r\n    });\r\n  }\r\n  return (\r\n    <div className='on-off-wrap'>\r\n      <div className='status-square'>\r\n        <span className=\"status-tog-btn\">{<Ticon icon={iconName}/>}</span>\r\n      </div>\r\n      { isShowUploadBtns && <div className={`status-square c-pointer online-status-bg ${isOnLine ? '' : 'off-line'}`}>\r\n        <span className=\"status-tog-btn\" onClick={_setIsOnLine}>\r\n          <span>{isOnLine ? '在线' : '离线'}</span>\r\n          <span>{<Ticon icon=\"zaixianlixian\" className=\"ts-14\"/>}</span>\r\n          {/* <span className=\"status-space\">|</span> */}\r\n        </span>\r\n        <Popover placement=\"bottom\" overlayClassName={'offline-popver'} content={<span>{OFFLINE_POINT_DESC}</span>} trigger=\"hover\">\r\n          <span className=\"status-tog-btn\">{<Ticon icon=\"tanhao1\"/>}</span>\r\n        </Popover>\r\n      </div>}\r\n    </div>\r\n  );\r\n});\r\n\r\n//零售单上传\r\nfunction RetailUpload() {\r\n  const [isModalVisible, setIsModalVisible] = useState(false);\r\n  const refModal = useRef(null);\r\n  const showModal = async () => {\r\n    refModal && refModal.current.fetch();\r\n    setIsModalVisible(true);\r\n  };\r\n\r\n  const handleOk = (isUpLoad = false) => {\r\n    setIsModalVisible(false);\r\n    Message.warn(isUpLoad ? '上传中……' : '暂无可以上传的单据')\r\n  };\r\n\r\n  const handleCancel = () => {\r\n    setIsModalVisible(false);\r\n  };\r\n  return (\r\n    <div className='upload-retail'>\r\n      <div className=\"status-square online-status-bg c-pointer\" onClick={showModal}>\r\n        <span className=\"status-tog-btn\">\r\n          <span>{<Ticon icon=\"shangchuan\"/>}</span>\r\n          <span className=\"fast-upload-btn\">上传零售单</span>\r\n          <UnLoadNum/>\r\n        </span>\r\n      </div>\r\n      <UploadOrder ref={refModal} visible={isModalVisible} handleOk={handleOk} handleCancel={handleCancel}/>\r\n    </div>\r\n  );\r\n}\r\n// 零售单未上传的数量\r\nconst UnLoadNum = observer(() => {\r\n  const {offlineSys: {retailNotUploadNumber} } = stores;\r\n  return <span className=\"up-count-btn\">{retailNotUploadNumber > 99 ? '99+' : retailNotUploadNumber}</span>\r\n});\r\nlet releaseDate, releaseVersion;\r\ntry {\r\n  releaseDate = __RELEASESDATE__;\r\n  releaseVersion = __BUILDVERSION__;\r\n} catch (error) {\r\n  releaseDate = '';\r\n  releaseVersion = '';\r\n}\r\nexport default function HeadContent(props, context) {\r\n  const isElectron = (env || {}).platform === 'electron';\r\n  const {businessName = '', storeName = '', posCode, logo, networkStatus, style = {}, history,\r\n    dateFormat = defaultFromat, solt, time, isPortal, isLogin, menu = [], onClick, location} = props;\r\n  const [themeVisible, setThemeVisible] = useState(false);\r\n  const [isShowUploadBtns, setIsShowUploadBtns] = useState(window.location.href.indexOf(UPLOAD_BASE_PATH) < 0);\r\n  props.history.listen(route => {\r\n    setIsShowUploadBtns(route.pathname.indexOf(UPLOAD_BASE_PATH) < 0);\r\n  });\r\n  const menuProps = {onClick};\r\n  const menus = (\r\n    <Menu {...menuProps}>\r\n      {menu.map((item, i) =>\r\n        <Item key={item.key || i}>\r\n          {item.icon && <Ticon icon={item.icon}/>}\r\n          <span>{item.title}</span>\r\n        </Item>)\r\n      }\r\n    </Menu>\r\n  );\r\n\r\n  const controlConfig = [\r\n    {type: 'suoxiao', event: 'min'},\r\n    {\r\n      type: 'guanbixiao',\r\n      event: 'close',\r\n      beforeEvent: (item) => {\r\n        return ModalWraper.confirm({\r\n          className: 'tplus-confirm-modal',\r\n          title: '关闭提示',\r\n          content: '您确定要关闭应用吗?',\r\n          async onOk() {\r\n            Loading.show({\r\n              className: 'close-app-loading',\r\n              node: <div className='close-app-spin'>\r\n                <Spin scale={1.2} type='shape' visible/>\r\n                <h1>应用关闭中...</h1>\r\n              </div>,\r\n              delay: false\r\n            });\r\n            context.actionHook.actionChange('close-app');\r\n            try {\r\n              await User.logout(() => {\r\n                setTimeout(() => {\r\n                  nativeMs.doWindow(item.event);\r\n                }, 500); // 需要为500ms 时间短可能会不能正常注销清理\r\n              });\r\n            } catch (err) {\r\n              User.clear();\r\n              localStore.remove('user');\r\n              setTimeout(() => {\r\n                nativeMs.doWindow(item.event);\r\n              }, 500);\r\n            }\r\n          }\r\n        });\r\n      }\r\n    },\r\n  ];\r\n\r\n  const splitUser = (value) => {\r\n    const regEmail = new RegExp('^[A-Za-zd0-9]+([-_.][A-Za-zd0-9]+)*@([A-Za-zd0-9]+[-.])+[A-Za-zd]{2,5}$');\r\n    const isEmail = regEmail.test(value);\r\n\r\n    if (isEmail) {\r\n      return value.split('@')[0];\r\n    }\r\n    return value;\r\n  }\r\n\r\n  const setInventoryFocus = () => {\r\n    const { isHorizontalPad } = platform || {};\r\n    if (!!isHorizontalPad) return;\r\n    let doms = document.getElementsByClassName('app hot-key-focus-container');\r\n    let input = document.getElementById('productPoint');\r\n    if (input) setTimeout(() => { if (doms && doms.length > 0) { console.log('headContent--商品焦点==Focus==');input.focus() } }, 300)\r\n  }\r\n\r\n  const clickTheme = (isShow) => {\r\n    setThemeVisible(isShow)\r\n  }\r\n\r\n  const userName = PosInitData('UserName');\r\n  const overlayClassName = `_portal-header-dropdown ${!isPortal ? 'inside-header' : ''}`;\r\n  const moreInfoNode = <div className='pos-more-info-container'>\r\n    <h1 className='business-name'>{businessName}</h1>\r\n    <h1 className='store-code'>{posCode}</h1>\r\n  </div>\r\n\r\n  const headControlNode = <div className=\"head-content-control\">\r\n    {controlConfig.map(v => <Ticon\r\n      type={v.type}\r\n      key={v.type}\r\n      onClick={() => {\r\n        if (nativeMs) {\r\n          const {beforeEvent} = v;\r\n          if (beforeEvent) {\r\n            return beforeEvent(v);\r\n          }\r\n          nativeMs.doWindow(v.event)\r\n          if (typeof setInventoryFocus == 'function') {\r\n            setInventoryFocus()\r\n          }\r\n        }\r\n      }}\r\n    />)}\r\n  </div>\r\n\r\n  if (platform.isVerticalTouch) return verticalHeadContent({ style, releaseVersion, releaseDate,\r\n    time, dateFormat, logo, HeadTime, headControlNode, location, history, clickTheme, themeVisible, isPortal, isLogin });\r\n\r\n  return (<div style={{display: 'inline-block', width: '100%', height: '100%', ...style}} className='head-content' data-release={`${releaseVersion} ${releaseDate}`}>\r\n    <div className=\"head-content-left\">\r\n      {!!logo && <div className='business-logo' onClick={()=>{history.replace('/')}}>{logo}</div>}\r\n      {!!storeName && <Tooltip trigger=\"click\" placement=\"bottomRight\" title={moreInfoNode} color={'#fff'} overlayClassName='head-business-tip'>\r\n        <div className='store-name'>{storeName}<i className='header-triangle-down' /></div>\r\n       </Tooltip>}\r\n      {/* <OnLineStatus networkStatus={networkStatus}/> */}\r\n      <OnLineStatusToggle isShowUploadBtns={isShowUploadBtns}/>\r\n      {isShowUploadBtns && <RetailUpload/>}\r\n    </div>\r\n    {isElectron && headControlNode}\r\n    <div className=\"head-content-right\">\r\n      {!isLogin && <Ticon icon=\"huanfu\" className={`theme-icon ${!isPortal ? 'pos-page' : ''}` } onClick={() => {clickTheme(true)}}/>}\r\n      {!isLogin && !!userName && <Dropdown\r\n        overlayClassName={overlayClassName}\r\n        trigger={['click']}\r\n        overlay={menus}\r\n        placement=\"bottomRight\"\r\n        arrow\r\n      >\r\n        <div className='header-info-render-content' onClick={e => e.preventDefault()}>\r\n          <div className='store-info-item'>\r\n            <p className='biller'>开单员:<span>{splitUser(userName)}</span></p>\r\n          </div>\r\n          <i className='header-triangle-down'/>\r\n        </div>\r\n      </Dropdown>}\r\n      {!isLogin && <div className='store-info-item'>{solt}</div>}\r\n      <HeadTime time={time} dateFormat={dateFormat}/>\r\n    </div>\r\n    <ThemeModal\r\n        visible={themeVisible}\r\n        isVertical={platform.isVerticalTouch}\r\n        isPortal={isPortal}\r\n        closeFn={(isShow) => clickTheme(isShow)}\r\n    />\r\n  </div>);\r\n}\r\n\r\nHeadContent.contextTypes = {\r\n  actionHook: PropTypes.object,\r\n}\r\n"]}
         
     | 
| 
      
 1 
     | 
    
         
            +
            {"version":3,"sources":["tplus-portaltouch/components/header/headContent.js"],"names":["HeadContent","Item","Menu","defaultFromat","t","i18n","getFixedT","UPLOAD_BASE_PATH","NETWORK_THEME_PATH","weakRemindNum","HeadTime","props","time","dateFormat","unMount","timeStr","Date","now","currentTime","setCurrentTime","timeout","refreshDate","setTimeout","clearTimeout","split","date_YMD","date_HMS","platform","isVerticalTouch","OnLineStatus","networkStatus","networkCheckStore","stores","networkState","networkOn","iconName","switchNetwork","checked","event","switchOnLine","lineIcon","marginRight","OnLineStatusToggle","isShowUploadBtnsByRouter","isResetNetWorkTheme","offlineSys","isOnLine","setIsOffline","ModalWraper","confirm","title","content","onOk","_setIsOnLine","color","OFFLINE_POINT_DESC","RetailUpload","isModalVisible","setIsModalVisible","isUpLoading","setIsUpLoading","refModal","showModal","current","fetch","handleOk","isUpLoad","Message","tip","uploadRetail","error","handleCancel","UnLoadNum","retailNotUploadNumber","display","RetailDownload","isDownload","setIsDownload","handleDownLoad","downloadCatcherData","result","success","releaseDate","releaseVersion","__RELEASESDATE__","__BUILDVERSION__","context","isElectron","env","businessName","storeName","posCode","logo","style","history","solt","isPortal","isLogin","menu","onClick","location","themeVisible","setThemeVisible","window","href","indexOf","setIsShowUploadBtnsByRouter","pathname","setIsResetNetWorkTheme","listen","route","menuProps","menus","map","item","i","key","icon","controlConfig","type","beforeEvent","className","Loading","show","node","delay","actionHook","actionChange","User","logout","nativeMs","doWindow","clear","localStore","remove","splitUser","value","regEmail","RegExp","isEmail","test","setInventoryFocus","isHorizontalPad","doms","document","getElementsByClassName","input","getElementById","length","console","log","focus","clickTheme","isShow","userName","overlayClassName","moreInfoNode","headControlNode","v","width","height","replace","e","preventDefault","contextTypes","PropTypes","object"],"mappings":"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","file":"headContent.js","sourcesContent":["import React, { useState, useEffect, useRef } from 'react';\r\nimport { Ticon, ModalWraper, Loading, Spin, Message } from 'tplus-components-touch';\r\nimport { Tooltip, Menu, Dropdown, Switch, Popover } from 'antd';\r\nimport PropTypes from 'prop-types';\r\nimport { formatDate } from '../../utils';\r\nimport { env, nativeMs, localStore, i18n } from 'mutants-microfx';\r\nimport { PosInitData } from 'tplus-poslogin';\r\nimport { User } from 'tplus-api';\r\nimport { verticalHeadTime, verticalHeadContent } from './vertical-touch';\r\nimport { platform } from 'mutants-util';\r\nimport ThemeModal from \"./themeModal\";\r\nimport UploadOrder from \"./uploadList\";\r\nimport {stores} from 'mutants-microfx';\r\nimport {observer} from 'mobx-react';\r\nimport {OFFLINE_POINT_DESC} from './offlinePointDesc';\r\nconst { Item } = Menu;\r\nconst defaultFromat = 'yyyy-MM-dd hh:mm:ss';\r\nconst t = i18n.getFixedT(null, 'newretail');\r\nconst UPLOAD_BASE_PATH = '/login';\r\nconst NETWORK_THEME_PATH = \"/\";\r\nlet weakRemindNum = 0;// 弱网提示初始值\r\n//头部时间\r\nfunction HeadTime(props) {\r\n  const { time, dateFormat } = props;\r\n  let unMount = false;\r\n  const timeStr = typeof time === 'number' ? formatDate(time, dateFormat) : time;\r\n  const [currentTime, setCurrentTime] = useState(formatDate(Date.now(), dateFormat));\r\n  let timeout;\r\n  function refreshDate() {\r\n    if (time) return;\r\n    !unMount && setCurrentTime(formatDate(Date.now(), dateFormat));\r\n    timeout = setTimeout(refreshDate, 1000);\r\n  }\r\n  useEffect(() => {\r\n    refreshDate();\r\n    return () => {\r\n      unMount = true;\r\n      clearTimeout(timeout);\r\n    };\r\n  }, [currentTime]);\r\n  const [date_YMD, date_HMS] = currentTime.split(' ') || [];\r\n\r\n  if (platform.isVerticalTouch) return verticalHeadTime({ date_HMS });\r\n  return (\r\n    <div className='time'>\r\n      {timeStr ?\r\n        <div>{timeStr}</div> :\r\n        <div>\r\n          {date_YMD}\r\n          <span>{date_HMS}</span>\r\n        </div>\r\n      }\r\n    </div>\r\n  );\r\n}\r\n\r\n//头部联网状态\r\nconst OnLineStatus = observer((props)=>{\r\n  const { networkStatus } = props;\r\n  const { networkCheckStore } = stores;\r\n  const networkState = networkCheckStore.networkState;\r\n  let networkOn = true;\r\n  let iconName = 'WiFi';\r\n  switch (networkState) {\r\n    case '联网':\r\n      iconName = 'WiFi';\r\n      break;\r\n    case '弱网':\r\n      iconName = 'ruowifi';\r\n      break;\r\n    case '离线':\r\n      networkOn = false;\r\n      iconName = 'wuwangluo';\r\n      break;\r\n    default:\r\n      break;\r\n  }\r\n  const switchNetwork = (checked ,event)=>{\r\n    networkCheckStore.switchOnLine(checked);\r\n  }\r\n  const lineIcon = <Ticon\r\n    icon={iconName}\r\n    className=\"network-state-icon\"\r\n  />\r\n  return (\r\n    <div><span className='network-status' style={{marginRight:'10px'}}>{networkStatus || lineIcon}</span><span><Switch checkedChildren=\"开启\" unCheckedChildren=\"关闭\" defaultChecked checked={networkOn} onChange={switchNetwork}/></span></div>\r\n  );\r\n});\r\n\r\n//头部联网状态\r\nconst OnLineStatusToggle = observer(props => {\r\n  const { isShowUploadBtnsByRouter, isResetNetWorkTheme } = props;\r\n  const { networkCheckStore , offlineSys } = stores;\r\n  const networkState = networkCheckStore.networkState;\r\n  // let isOnLine = !offlineSys.isOffline\r\n  let isOnLine = networkState !== '离线';\r\n  let iconName = 'WiFi';\r\n  switch (networkState) {\r\n    case '联网':\r\n      iconName = 'WiFi';\r\n      break;\r\n    case '弱网':\r\n      iconName = 'ruowifi';\r\n      break;\r\n    case '离线':\r\n      isOnLine = false;\r\n      offlineSys.setIsOffline(!isOnLine);\r\n      iconName = 'wuwangluo';\r\n      break;\r\n    default:\r\n      break;\r\n  }\r\n  if (networkState === '弱网' && weakRemindNum <= 3) {\r\n    weakRemindNum ++;\r\n    ModalWraper.confirm({\r\n      title: t('提示'),\r\n      content: t('当前网络不好,是否切换到离线?'),\r\n      onOk: () => {\r\n        networkCheckStore.switchOnLine(false);\r\n        offlineSys.setIsOffline(true);\r\n        isOnLine = !isOnLine;\r\n      }\r\n    });\r\n  }\r\n  function _setIsOnLine() {\r\n    ModalWraper.confirm({\r\n        title: t('提示'),\r\n        content: t(`确定要切换为${isOnLine ? '离' : '在'}线环境吗?`),\r\n        onOk: () => {\r\n          networkCheckStore.switchOnLine(!isOnLine);\r\n          offlineSys.setIsOffline(isOnLine);\r\n          isOnLine = !isOnLine;\r\n        }\r\n    });\r\n  }\r\n  return (\r\n    <div className='on-off-wrap'>\r\n      <div className='status-square'>\r\n        <span className=\"status-tog-btn\" style={{color: `${isResetNetWorkTheme ? '#fff' : ''}`}}>{<Ticon icon={iconName}/>}</span>\r\n      </div>\r\n      { isShowUploadBtnsByRouter && PosInitData('IsOfflineCash') === \"1\" && <div className={`status-square c-pointer online-status-bg ${isOnLine ? '' : 'off-line'}`}>\r\n        <span className=\"status-tog-btn\" onClick={_setIsOnLine}>\r\n          <span>{isOnLine ? '在线' : '离线'}</span>\r\n          <span>{<Ticon icon=\"zaixianlixian\" className=\"ts-14\"/>}</span>\r\n          {/* <span className=\"status-space\">|</span> */}\r\n        </span>\r\n        <Popover placement=\"bottom\" overlayClassName={'offline-popver'} content={<span>{OFFLINE_POINT_DESC}</span>} trigger=\"hover\">\r\n          <span className=\"status-tog-btn\">{<Ticon icon=\"tanhao1\"/>}</span>\r\n        </Popover>\r\n      </div>}\r\n    </div>\r\n  );\r\n});\r\n\r\n//零售单上传\r\nfunction RetailUpload() {\r\n  const [isModalVisible, setIsModalVisible] = useState(false);\r\n  const [isUpLoading, setIsUpLoading] = useState(false);\r\n  const refModal = useRef(null);\r\n  const showModal = async () => {\r\n    refModal && refModal.current.fetch();\r\n    setIsModalVisible(true);\r\n  };\r\n\r\n  const handleOk = async (isUpLoad = false) => {\r\n    setIsModalVisible(false);\r\n    if (!isUpLoad) {\r\n      Message.tip('暂无可以上传的单据');\r\n      return;\r\n    }\r\n    if (isUpLoading) {\r\n      Message.tip('上传中……');\r\n      return;\r\n    }\r\n    setIsUpLoading(true);\r\n    try {\r\n      await stores.offlineSys.uploadRetail();\r\n    } catch (err) {\r\n      Message.error('上传失败');\r\n    }\r\n    setIsUpLoading(false);\r\n  };\r\n\r\n  const handleCancel = () => {\r\n    setIsModalVisible(false);\r\n  };\r\n  return (\r\n    <div className='upload-retail'>\r\n      <div className=\"status-square online-status-bg c-pointer\" onClick={showModal}>\r\n        <span className=\"status-tog-btn\">\r\n          <span className={`${isUpLoading ? 'isRetailUpLoading' : ''}`}>{<Ticon icon=\"shangchuan\"/>}</span>\r\n          <span className=\"fast-upload-btn\"> 上传零售单</span>\r\n        </span>\r\n      </div>\r\n      <UnLoadNum/>\r\n      <UploadOrder ref={refModal} visible={isModalVisible} handleOk={handleOk} handleCancel={handleCancel}/>\r\n    </div>\r\n  );\r\n}\r\n// 零售单未上传的数量\r\nconst UnLoadNum = observer(() => {\r\n  const {offlineSys: {retailNotUploadNumber} } = stores;\r\n  return <span style={{display: retailNotUploadNumber > 0 ? 'inherit' : 'none'}} className=\"up-count-btn\">{retailNotUploadNumber > 99 ? '99+' : retailNotUploadNumber}</span>\r\n});\r\n//零售单下载\r\nfunction RetailDownload() {\r\n  const {offlineSys} = stores;\r\n  const [isDownload, setIsDownload] = useState(false);\r\n  const handleDownLoad = async () => {\r\n    if (isDownload) {\r\n      Message.tip('下载中……');\r\n      return;\r\n    }\r\n    setIsDownload(true);\r\n    Message.tip('下载中……');\r\n    try {\r\n      let result = await offlineSys.downloadCatcherData();\r\n      Message.success(`数据下载${result?\"成功\":\"失败\"}`);\r\n    } catch(err){\r\n      Message.error('数据下载失败');\r\n    }\r\n    setIsDownload(false);\r\n  };\r\n  return (\r\n    <div className='download-retail'>\r\n      <div className=\"status-square online-status-bg c-pointer\" onClick={handleDownLoad}>\r\n        <span className=\"status-tog-btn\">\r\n          <span className={`${isDownload ? 'isRetailDownLoading' : ''}`}>{<Ticon icon=\"xiazaishuju\"/>}</span>\r\n          <span className=\"fast-upload-btn\"> 下载数据</span>\r\n        </span>\r\n      </div>\r\n    </div>\r\n  );\r\n}\r\nlet releaseDate, releaseVersion;\r\ntry {\r\n  releaseDate = __RELEASESDATE__;\r\n  releaseVersion = __BUILDVERSION__;\r\n} catch (error) {\r\n  releaseDate = '';\r\n  releaseVersion = '';\r\n}\r\nexport default function HeadContent(props, context) {\r\n  const isElectron = (env || {}).platform === 'electron';\r\n  const {businessName = '', storeName = '', posCode, logo, networkStatus, style = {}, history,\r\n    dateFormat = defaultFromat, solt, time, isPortal, isLogin, menu = [], onClick, location} = props;\r\n  const [themeVisible, setThemeVisible] = useState(false);\r\n  const [isShowUploadBtnsByRouter, setIsShowUploadBtnsByRouter] = useState(window.location.href.indexOf(UPLOAD_BASE_PATH) < 0);\r\n  const [isResetNetWorkTheme, setIsResetNetWorkTheme] = useState(window.location.pathname === NETWORK_THEME_PATH);\r\n  props.history.listen(route => {\r\n    setIsResetNetWorkTheme(route.pathname === NETWORK_THEME_PATH);\r\n    setIsShowUploadBtnsByRouter(route.pathname.indexOf(UPLOAD_BASE_PATH) < 0);\r\n  });\r\n  const menuProps = {onClick};\r\n  const menus = (\r\n    <Menu {...menuProps}>\r\n      {menu.map((item, i) =>\r\n        <Item key={item.key || i}>\r\n          {item.icon && <Ticon icon={item.icon}/>}\r\n          <span>{item.title}</span>\r\n        </Item>)\r\n      }\r\n    </Menu>\r\n  );\r\n\r\n  const controlConfig = [\r\n    {type: 'suoxiao', event: 'min'},\r\n    {\r\n      type: 'guanbixiao',\r\n      event: 'close',\r\n      beforeEvent: (item) => {\r\n        return ModalWraper.confirm({\r\n          className: 'tplus-confirm-modal',\r\n          title: '关闭提示',\r\n          content: '您确定要关闭应用吗?',\r\n          async onOk() {\r\n            Loading.show({\r\n              className: 'close-app-loading',\r\n              node: <div className='close-app-spin'>\r\n                <Spin scale={1.2} type='shape' visible/>\r\n                <h1>应用关闭中...</h1>\r\n              </div>,\r\n              delay: false\r\n            });\r\n            context.actionHook.actionChange('close-app');\r\n            try {\r\n              await User.logout(() => {\r\n                setTimeout(() => {\r\n                  nativeMs.doWindow(item.event);\r\n                }, 500); // 需要为500ms 时间短可能会不能正常注销清理\r\n              });\r\n            } catch (err) {\r\n              User.clear();\r\n              localStore.remove('user');\r\n              setTimeout(() => {\r\n                nativeMs.doWindow(item.event);\r\n              }, 500);\r\n            }\r\n          }\r\n        });\r\n      }\r\n    },\r\n  ];\r\n\r\n  const splitUser = (value) => {\r\n    const regEmail = new RegExp('^[A-Za-zd0-9]+([-_.][A-Za-zd0-9]+)*@([A-Za-zd0-9]+[-.])+[A-Za-zd]{2,5}$');\r\n    const isEmail = regEmail.test(value);\r\n\r\n    if (isEmail) {\r\n      return value.split('@')[0];\r\n    }\r\n    return value;\r\n  }\r\n\r\n  const setInventoryFocus = () => {\r\n    const { isHorizontalPad } = platform || {};\r\n    if (!!isHorizontalPad) return;\r\n    let doms = document.getElementsByClassName('app hot-key-focus-container');\r\n    let input = document.getElementById('productPoint');\r\n    if (input) setTimeout(() => { if (doms && doms.length > 0) { console.log('headContent--商品焦点==Focus==');input.focus() } }, 300)\r\n  }\r\n\r\n  const clickTheme = (isShow) => {\r\n    setThemeVisible(isShow)\r\n  }\r\n\r\n  const userName = PosInitData('UserName');\r\n  const overlayClassName = `_portal-header-dropdown ${!isPortal ? 'inside-header' : ''}`;\r\n  const moreInfoNode = <div className='pos-more-info-container'>\r\n    <h1 className='business-name'>{businessName}</h1>\r\n    <h1 className='store-code'>{posCode}</h1>\r\n  </div>\r\n\r\n  const headControlNode = <div className=\"head-content-control\">\r\n    {controlConfig.map(v => <Ticon\r\n      type={v.type}\r\n      key={v.type}\r\n      onClick={() => {\r\n        if (nativeMs) {\r\n          const {beforeEvent} = v;\r\n          if (beforeEvent) {\r\n            return beforeEvent(v);\r\n          }\r\n          nativeMs.doWindow(v.event)\r\n          if (typeof setInventoryFocus == 'function') {\r\n            setInventoryFocus()\r\n          }\r\n        }\r\n      }}\r\n    />)}\r\n  </div>\r\n\r\n  if (platform.isVerticalTouch) return verticalHeadContent({ style, releaseVersion, releaseDate,\r\n    time, dateFormat, logo, HeadTime, headControlNode, location, history, clickTheme, themeVisible, isPortal, isLogin });\r\n\r\n  return (<div style={{display: 'inline-block', width: '100%', height: '100%', ...style}} className='head-content' data-release={`${releaseVersion} ${releaseDate}`}>\r\n    <div className=\"head-content-left\">\r\n      {!!logo && <div className='business-logo' onClick={()=>{history.replace('/')}}>{logo}</div>}\r\n      {!!storeName && <Tooltip trigger=\"click\" placement=\"bottomRight\" title={moreInfoNode} color={'#fff'} overlayClassName='head-business-tip'>\r\n        <div className='store-name'>{storeName}<i className='header-triangle-down' /></div>\r\n       </Tooltip>}\r\n      {/* <OnLineStatus networkStatus={networkStatus}/> */}\r\n      <OnLineStatusToggle isShowUploadBtnsByRouter={isShowUploadBtnsByRouter} isResetNetWorkTheme={isResetNetWorkTheme}/>\r\n      {isShowUploadBtnsByRouter && <RetailUpload/>}\r\n      {isShowUploadBtnsByRouter && <RetailDownload/>}\r\n    </div>\r\n    {isElectron && headControlNode}\r\n    <div className=\"head-content-right\">\r\n      {!isLogin && <Ticon icon=\"huanfu\" className={`theme-icon ${!isPortal ? 'pos-page' : ''}` } onClick={() => {clickTheme(true)}}/>}\r\n      {!isLogin && !!userName && <Dropdown\r\n        overlayClassName={overlayClassName}\r\n        trigger={['click']}\r\n        overlay={menus}\r\n        placement=\"bottomRight\"\r\n        arrow\r\n      >\r\n        <div className='header-info-render-content' onClick={e => e.preventDefault()}>\r\n          <div className='store-info-item'>\r\n            <p className='biller'>开单员:<span>{splitUser(userName)}</span></p>\r\n          </div>\r\n          <i className='header-triangle-down'/>\r\n        </div>\r\n      </Dropdown>}\r\n      {!isLogin && <div className='store-info-item'>{solt}</div>}\r\n      <HeadTime time={time} dateFormat={dateFormat}/>\r\n    </div>\r\n    <ThemeModal\r\n        visible={themeVisible}\r\n        isVertical={platform.isVerticalTouch}\r\n        isPortal={isPortal}\r\n        closeFn={(isShow) => clickTheme(isShow)}\r\n    />\r\n  </div>);\r\n}\r\n\r\nHeadContent.contextTypes = {\r\n  actionHook: PropTypes.object,\r\n}\r\n"]}
         
     | 
| 
         @@ -118,13 +118,45 @@ 
     | 
|
| 
       118 
118 
     | 
    
         
             
                  padding-right: 24px;
         
     | 
| 
       119 
119 
     | 
    
         
             
                  cursor: pointer;
         
     | 
| 
       120 
120 
     | 
    
         
             
                }
         
     | 
| 
       121 
     | 
    
         
            -
                .on-off-wrap, .upload-retail{
         
     | 
| 
      
 121 
     | 
    
         
            +
                .on-off-wrap, .upload-retail, .download-retail{
         
     | 
| 
       122 
122 
     | 
    
         
             
                  margin-left: 10px;
         
     | 
| 
      
 123 
     | 
    
         
            +
                  position: relative;
         
     | 
| 
      
 124 
     | 
    
         
            +
                  display: flex;
         
     | 
| 
      
 125 
     | 
    
         
            +
                  align-items: center;
         
     | 
| 
      
 126 
     | 
    
         
            +
                  height: 60px;
         
     | 
| 
       123 
127 
     | 
    
         
             
                  &.c-pointer, .c-pointer{
         
     | 
| 
       124 
128 
     | 
    
         
             
                    cursor: pointer;
         
     | 
| 
       125 
129 
     | 
    
         
             
                  }
         
     | 
| 
      
 130 
     | 
    
         
            +
                  .up-count-btn {
         
     | 
| 
      
 131 
     | 
    
         
            +
                    line-height: normal;
         
     | 
| 
      
 132 
     | 
    
         
            +
                    background-color: #F83A41;
         
     | 
| 
      
 133 
     | 
    
         
            +
                    color: #fff;
         
     | 
| 
      
 134 
     | 
    
         
            +
                    transform: scale(.7);
         
     | 
| 
      
 135 
     | 
    
         
            +
                    padding: 1px 6px;
         
     | 
| 
      
 136 
     | 
    
         
            +
                    border-radius: 10px;
         
     | 
| 
      
 137 
     | 
    
         
            +
                    position: absolute;
         
     | 
| 
      
 138 
     | 
    
         
            +
                    top: 6px;
         
     | 
| 
      
 139 
     | 
    
         
            +
                    right: -10px;
         
     | 
| 
      
 140 
     | 
    
         
            +
                  }
         
     | 
| 
      
 141 
     | 
    
         
            +
                  .isRetailDownLoading{
         
     | 
| 
      
 142 
     | 
    
         
            +
                    position: relative;
         
     | 
| 
      
 143 
     | 
    
         
            +
                    animation: retailDown 1.2s ease 0.5s infinite;
         
     | 
| 
      
 144 
     | 
    
         
            +
                  }
         
     | 
| 
      
 145 
     | 
    
         
            +
                  @keyframes retailDown {
         
     | 
| 
      
 146 
     | 
    
         
            +
                    from {top: -18px;}
         
     | 
| 
      
 147 
     | 
    
         
            +
                    to {top: 18px;}
         
     | 
| 
      
 148 
     | 
    
         
            +
                  }
         
     | 
| 
      
 149 
     | 
    
         
            +
                  .isRetailUpLoading{
         
     | 
| 
      
 150 
     | 
    
         
            +
                    position: relative;
         
     | 
| 
      
 151 
     | 
    
         
            +
                    animation: retailUp 1.2s ease 0.5s infinite;
         
     | 
| 
      
 152 
     | 
    
         
            +
                  }
         
     | 
| 
      
 153 
     | 
    
         
            +
                  @keyframes retailUp {
         
     | 
| 
      
 154 
     | 
    
         
            +
                    from {top: 18px;}
         
     | 
| 
      
 155 
     | 
    
         
            +
                    to {top: -18px;}
         
     | 
| 
      
 156 
     | 
    
         
            +
                  }    
         
     | 
| 
       126 
157 
     | 
    
         
             
                }
         
     | 
| 
       127 
158 
     | 
    
         
             
                .status-square{
         
     | 
| 
      
 159 
     | 
    
         
            +
                  overflow: hidden;
         
     | 
| 
       128 
160 
     | 
    
         
             
                  display: inline-block;
         
     | 
| 
       129 
161 
     | 
    
         
             
                  line-height: 20px;
         
     | 
| 
       130 
162 
     | 
    
         
             
                  border-radius: 2px;
         
     | 
| 
         @@ -149,16 +181,6 @@ 
     | 
|
| 
       149 
181 
     | 
    
         
             
                    .status-space {
         
     | 
| 
       150 
182 
     | 
    
         
             
                      margin-right: 4px;
         
     | 
| 
       151 
183 
     | 
    
         
             
                    }
         
     | 
| 
       152 
     | 
    
         
            -
                    .up-count-btn {
         
     | 
| 
       153 
     | 
    
         
            -
                      background-color: #F83A41;
         
     | 
| 
       154 
     | 
    
         
            -
                      color: #fff;
         
     | 
| 
       155 
     | 
    
         
            -
                      transform: scale(.7);
         
     | 
| 
       156 
     | 
    
         
            -
                      padding: 1px 6px;
         
     | 
| 
       157 
     | 
    
         
            -
                      border-radius: 10px;
         
     | 
| 
       158 
     | 
    
         
            -
                      position: absolute;
         
     | 
| 
       159 
     | 
    
         
            -
                      top: -16px;
         
     | 
| 
       160 
     | 
    
         
            -
                      right: -15px;
         
     | 
| 
       161 
     | 
    
         
            -
                    }
         
     | 
| 
       162 
184 
     | 
    
         
             
                  }
         
     | 
| 
       163 
185 
     | 
    
         
             
                }
         
     | 
| 
       164 
186 
     | 
    
         
             
              }
         
     | 
| 
         @@ -396,4 +418,24 @@ 
     | 
|
| 
       396 
418 
     | 
    
         
             
            // 鼠标悬浮离线感叹号popver的样式
         
     | 
| 
       397 
419 
     | 
    
         
             
            .offline-popver {
         
     | 
| 
       398 
420 
     | 
    
         
             
              width: 30%;
         
     | 
| 
      
 421 
     | 
    
         
            +
            }
         
     | 
| 
      
 422 
     | 
    
         
            +
            .retail-upload-mask-wrap {
         
     | 
| 
      
 423 
     | 
    
         
            +
              .ant-modal-header, th, td, .ant-modal-footer {
         
     | 
| 
      
 424 
     | 
    
         
            +
                padding-left: 20px !important;
         
     | 
| 
      
 425 
     | 
    
         
            +
                padding-right: 20px;
         
     | 
| 
      
 426 
     | 
    
         
            +
              }
         
     | 
| 
      
 427 
     | 
    
         
            +
              .ant-modal-body {
         
     | 
| 
      
 428 
     | 
    
         
            +
                height: 356px;
         
     | 
| 
      
 429 
     | 
    
         
            +
              }
         
     | 
| 
      
 430 
     | 
    
         
            +
              .ant-modal-body {
         
     | 
| 
      
 431 
     | 
    
         
            +
                padding: 0;
         
     | 
| 
      
 432 
     | 
    
         
            +
              }
         
     | 
| 
      
 433 
     | 
    
         
            +
              &.isReNoNull .ant-modal-footer {
         
     | 
| 
      
 434 
     | 
    
         
            +
                display: flex;
         
     | 
| 
      
 435 
     | 
    
         
            +
                align-items: center;
         
     | 
| 
      
 436 
     | 
    
         
            +
                justify-content: space-between;
         
     | 
| 
      
 437 
     | 
    
         
            +
              }
         
     | 
| 
      
 438 
     | 
    
         
            +
              .ant-table-pagination.ant-pagination {
         
     | 
| 
      
 439 
     | 
    
         
            +
                display: none;
         
     | 
| 
      
 440 
     | 
    
         
            +
              }
         
     | 
| 
       399 
441 
     | 
    
         
             
            }
         
     | 
| 
         @@ -41,8 +41,8 @@ var _COLUMNS; /* 
     | 
|
| 
       41 
41 
     | 
    
         
             
                           * @Descripttion: 零售单未上传和上传失败操作
         
     | 
| 
       42 
42 
     | 
    
         
             
                           * @version: 
         
     | 
| 
       43 
43 
     | 
    
         
             
                           * @Author: zhanghuix
         
     | 
| 
       44 
     | 
    
         
            -
                           * @LastEditors:  
     | 
| 
       45 
     | 
    
         
            -
                           * @LastEditTime: 2021-09- 
     | 
| 
      
 44 
     | 
    
         
            +
                           * @LastEditors: zhanghuix
         
     | 
| 
      
 45 
     | 
    
         
            +
                           * @LastEditTime: 2021-09-28 16:10:32
         
     | 
| 
       46 
46 
     | 
    
         
             
                           */
         
     | 
| 
       47 
47 
     | 
    
         | 
| 
       48 
48 
     | 
    
         
             
            var _react = require('react');
         
     | 
| 
         @@ -53,6 +53,8 @@ var _antd = require('antd'); 
     | 
|
| 
       53 
53 
     | 
    
         | 
| 
       54 
54 
     | 
    
         
             
            var _mutantsMicrofx = require('mutants-microfx');
         
     | 
| 
       55 
55 
     | 
    
         | 
| 
      
 56 
     | 
    
         
            +
            var _tplusComponentsTouch = require('tplus-components-touch');
         
     | 
| 
      
 57 
     | 
    
         
            +
             
     | 
| 
       56 
58 
     | 
    
         
             
            function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
         
     | 
| 
       57 
59 
     | 
    
         | 
| 
       58 
60 
     | 
    
         
             
            var TabPane = _antd.Tabs.TabPane;
         
     | 
| 
         @@ -64,10 +66,7 @@ var TAB_KEYS = { 
     | 
|
| 
       64 
66 
     | 
    
         
             
            };
         
     | 
| 
       65 
67 
     | 
    
         
             
            var DEFAULT_COLUMNS = [{
         
     | 
| 
       66 
68 
     | 
    
         
             
              title: '单据日期',
         
     | 
| 
       67 
     | 
    
         
            -
              dataIndex: 'VoucherDate' 
     | 
| 
       68 
     | 
    
         
            -
              render: function render(time) {
         
     | 
| 
       69 
     | 
    
         
            -
                return (time.split('+')[0] || '').replace(/T/, " ");
         
     | 
| 
       70 
     | 
    
         
            -
              }
         
     | 
| 
      
 69 
     | 
    
         
            +
              dataIndex: 'VoucherDate'
         
     | 
| 
       71 
70 
     | 
    
         
             
            }, {
         
     | 
| 
       72 
71 
     | 
    
         
             
              title: '单据号',
         
     | 
| 
       73 
72 
     | 
    
         
             
              dataIndex: 'Code'
         
     | 
| 
         @@ -77,16 +76,13 @@ var DEFAULT_COLUMNS = [{ 
     | 
|
| 
       77 
76 
     | 
    
         
             
              render: function render(val) {
         
     | 
| 
       78 
77 
     | 
    
         
             
                var str = (val || 0).toFixed(2) + '';
         
     | 
| 
       79 
78 
     | 
    
         
             
                var intSum = str.substring(0, str.indexOf(".")).replace(/\B(?=(?:\d{3})+$)/g, ','); //整数部分
         
     | 
| 
       80 
     | 
    
         
            -
                var dot = str.substring(str.length, str.indexOf("."));  
     | 
| 
      
 79 
     | 
    
         
            +
                var dot = str.substring(str.length, str.indexOf(".")); //小数部分
         
     | 
| 
       81 
80 
     | 
    
         
             
                return intSum + dot;
         
     | 
| 
       82 
81 
     | 
    
         
             
              }
         
     | 
| 
       83 
82 
     | 
    
         
             
            }];
         
     | 
| 
       84 
83 
     | 
    
         
             
            var ERR_COLUMN = [{
         
     | 
| 
       85 
84 
     | 
    
         
             
              title: '原因',
         
     | 
| 
       86 
     | 
    
         
            -
              dataIndex: 'errMsg' 
     | 
| 
       87 
     | 
    
         
            -
              render: function render(desc) {
         
     | 
| 
       88 
     | 
    
         
            -
                return desc || '未知';
         
     | 
| 
       89 
     | 
    
         
            -
              }
         
     | 
| 
      
 85 
     | 
    
         
            +
              dataIndex: 'errMsg'
         
     | 
| 
       90 
86 
     | 
    
         
             
            }];
         
     | 
| 
       91 
87 
     | 
    
         
             
            // 上传失败要显示失败原因所以多一列
         
     | 
| 
       92 
88 
     | 
    
         
             
            var COLUMNS = (_COLUMNS = {}, (0, _defineProperty3.default)(_COLUMNS, TAB_KEYS.NOT, DEFAULT_COLUMNS), (0, _defineProperty3.default)(_COLUMNS, TAB_KEYS.ERR, DEFAULT_COLUMNS.concat(ERR_COLUMN)), _COLUMNS);
         
     | 
| 
         @@ -95,6 +91,8 @@ var Aset = function (_React$Component) { 
     | 
|
| 
       95 
91 
     | 
    
         
             
              (0, _inherits3.default)(Aset, _React$Component);
         
     | 
| 
       96 
92 
     | 
    
         | 
| 
       97 
93 
     | 
    
         
             
              function Aset(props, context) {
         
     | 
| 
      
 94 
     | 
    
         
            +
                var _this2 = this;
         
     | 
| 
      
 95 
     | 
    
         
            +
             
     | 
| 
       98 
96 
     | 
    
         
             
                (0, _classCallCheck3.default)(this, Aset);
         
     | 
| 
       99 
97 
     | 
    
         | 
| 
       100 
98 
     | 
    
         
             
                var _this = (0, _possibleConstructorReturn3.default)(this, (Aset.__proto__ || (0, _getPrototypeOf2.default)(Aset)).call(this, props, context));
         
     | 
| 
         @@ -102,20 +100,44 @@ var Aset = function (_React$Component) { 
     | 
|
| 
       102 
100 
     | 
    
         
             
                _this.columns = COLUMNS[TAB_KEYS.NOT];
         
     | 
| 
       103 
101 
     | 
    
         
             
                _this.currentKey = TAB_KEYS.NOT;
         
     | 
| 
       104 
102 
     | 
    
         
             
                _this.response = {};
         
     | 
| 
      
 103 
     | 
    
         
            +
                _this.pageSize = 5;
         
     | 
| 
       105 
104 
     | 
    
         
             
                _this.state = {
         
     | 
| 
       106 
     | 
    
         
            -
                  data: []
         
     | 
| 
      
 105 
     | 
    
         
            +
                  data: [],
         
     | 
| 
      
 106 
     | 
    
         
            +
                  currentIndex: 1
         
     | 
| 
       107 
107 
     | 
    
         
             
                };
         
     | 
| 
      
 108 
     | 
    
         
            +
                _this.upLoad = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee() {
         
     | 
| 
      
 109 
     | 
    
         
            +
                  return _regenerator2.default.wrap(function _callee$(_context) {
         
     | 
| 
      
 110 
     | 
    
         
            +
                    while (1) {
         
     | 
| 
      
 111 
     | 
    
         
            +
                      switch (_context.prev = _context.next) {
         
     | 
| 
      
 112 
     | 
    
         
            +
                        case 0:
         
     | 
| 
      
 113 
     | 
    
         
            +
                          _this.props.handleOk(_this.state.data.length > 0);
         
     | 
| 
      
 114 
     | 
    
         
            +
             
     | 
| 
      
 115 
     | 
    
         
            +
                        case 1:
         
     | 
| 
      
 116 
     | 
    
         
            +
                        case 'end':
         
     | 
| 
      
 117 
     | 
    
         
            +
                          return _context.stop();
         
     | 
| 
      
 118 
     | 
    
         
            +
                      }
         
     | 
| 
      
 119 
     | 
    
         
            +
                    }
         
     | 
| 
      
 120 
     | 
    
         
            +
                  }, _callee, _this2);
         
     | 
| 
      
 121 
     | 
    
         
            +
                }));
         
     | 
| 
       108 
122 
     | 
    
         | 
| 
       109 
     | 
    
         
            -
                _this. 
     | 
| 
       110 
     | 
    
         
            -
                   
     | 
| 
       111 
     | 
    
         
            -
             
     | 
| 
      
 123 
     | 
    
         
            +
                _this.previous = function () {
         
     | 
| 
      
 124 
     | 
    
         
            +
                  _this.setState({
         
     | 
| 
      
 125 
     | 
    
         
            +
                    currentIndex: _this.state.currentIndex - 1
         
     | 
| 
      
 126 
     | 
    
         
            +
                  });
         
     | 
| 
      
 127 
     | 
    
         
            +
                };
         
     | 
| 
      
 128 
     | 
    
         
            +
             
     | 
| 
      
 129 
     | 
    
         
            +
                _this.next = function () {
         
     | 
| 
      
 130 
     | 
    
         
            +
                  _this.setState({
         
     | 
| 
      
 131 
     | 
    
         
            +
                    currentIndex: _this.state.currentIndex + 1
         
     | 
| 
      
 132 
     | 
    
         
            +
                  });
         
     | 
| 
       112 
133 
     | 
    
         
             
                };
         
     | 
| 
       113 
134 
     | 
    
         | 
| 
       114 
135 
     | 
    
         
             
                _this.change = function (key) {
         
     | 
| 
       115 
136 
     | 
    
         
             
                  _this.currentKey = key;
         
     | 
| 
       116 
137 
     | 
    
         
             
                  _this.columns = COLUMNS[key];
         
     | 
| 
       117 
138 
     | 
    
         
             
                  _this.setState({
         
     | 
| 
       118 
     | 
    
         
            -
                    data: _this.response[key + 'Upload'] || []
         
     | 
| 
      
 139 
     | 
    
         
            +
                    data: _this.response[key + 'Upload'] || [],
         
     | 
| 
      
 140 
     | 
    
         
            +
                    currentIndex: 1
         
     | 
| 
       119 
141 
     | 
    
         
             
                  });
         
     | 
| 
       120 
142 
     | 
    
         
             
                };
         
     | 
| 
       121 
143 
     | 
    
         | 
| 
         @@ -125,25 +147,25 @@ var Aset = function (_React$Component) { 
     | 
|
| 
       125 
147 
     | 
    
         
             
              (0, _createClass3.default)(Aset, [{
         
     | 
| 
       126 
148 
     | 
    
         
             
                key: 'fetch',
         
     | 
| 
       127 
149 
     | 
    
         
             
                value: function () {
         
     | 
| 
       128 
     | 
    
         
            -
                  var  
     | 
| 
       129 
     | 
    
         
            -
                    return _regenerator2.default.wrap(function  
     | 
| 
      
 150 
     | 
    
         
            +
                  var _ref2 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee2() {
         
     | 
| 
      
 151 
     | 
    
         
            +
                    return _regenerator2.default.wrap(function _callee2$(_context2) {
         
     | 
| 
       130 
152 
     | 
    
         
             
                      while (1) {
         
     | 
| 
       131 
     | 
    
         
            -
                        switch ( 
     | 
| 
      
 153 
     | 
    
         
            +
                        switch (_context2.prev = _context2.next) {
         
     | 
| 
       132 
154 
     | 
    
         
             
                          case 0:
         
     | 
| 
       133 
     | 
    
         
            -
                             
     | 
| 
       134 
     | 
    
         
            -
                             
     | 
| 
      
 155 
     | 
    
         
            +
                            _context2.prev = 0;
         
     | 
| 
      
 156 
     | 
    
         
            +
                            _context2.next = 3;
         
     | 
| 
       135 
157 
     | 
    
         
             
                            return _mutantsMicrofx.stores.offlineSys.getRetailNotUpload();
         
     | 
| 
       136 
158 
     | 
    
         | 
| 
       137 
159 
     | 
    
         
             
                          case 3:
         
     | 
| 
       138 
     | 
    
         
            -
                            this.response =  
     | 
| 
       139 
     | 
    
         
            -
                             
     | 
| 
      
 160 
     | 
    
         
            +
                            this.response = _context2.sent;
         
     | 
| 
      
 161 
     | 
    
         
            +
                            _context2.next = 9;
         
     | 
| 
       140 
162 
     | 
    
         
             
                            break;
         
     | 
| 
       141 
163 
     | 
    
         | 
| 
       142 
164 
     | 
    
         
             
                          case 6:
         
     | 
| 
       143 
     | 
    
         
            -
                             
     | 
| 
       144 
     | 
    
         
            -
                             
     | 
| 
      
 165 
     | 
    
         
            +
                            _context2.prev = 6;
         
     | 
| 
      
 166 
     | 
    
         
            +
                            _context2.t0 = _context2['catch'](0);
         
     | 
| 
       145 
167 
     | 
    
         | 
| 
       146 
     | 
    
         
            -
                            console.warn( 
     | 
| 
      
 168 
     | 
    
         
            +
                            console.warn(_context2.t0);
         
     | 
| 
       147 
169 
     | 
    
         | 
| 
       148 
170 
     | 
    
         
             
                          case 9:
         
     | 
| 
       149 
171 
     | 
    
         
             
                            this.setState({
         
     | 
| 
         @@ -152,14 +174,14 @@ var Aset = function (_React$Component) { 
     | 
|
| 
       152 
174 
     | 
    
         | 
| 
       153 
175 
     | 
    
         
             
                          case 10:
         
     | 
| 
       154 
176 
     | 
    
         
             
                          case 'end':
         
     | 
| 
       155 
     | 
    
         
            -
                            return  
     | 
| 
      
 177 
     | 
    
         
            +
                            return _context2.stop();
         
     | 
| 
       156 
178 
     | 
    
         
             
                        }
         
     | 
| 
       157 
179 
     | 
    
         
             
                      }
         
     | 
| 
       158 
     | 
    
         
            -
                    },  
     | 
| 
      
 180 
     | 
    
         
            +
                    }, _callee2, this, [[0, 6]]);
         
     | 
| 
       159 
181 
     | 
    
         
             
                  }));
         
     | 
| 
       160 
182 
     | 
    
         | 
| 
       161 
183 
     | 
    
         
             
                  function fetch() {
         
     | 
| 
       162 
     | 
    
         
            -
                    return  
     | 
| 
      
 184 
     | 
    
         
            +
                    return _ref2.apply(this, arguments);
         
     | 
| 
       163 
185 
     | 
    
         
             
                  }
         
     | 
| 
       164 
186 
     | 
    
         | 
| 
       165 
187 
     | 
    
         
             
                  return fetch;
         
     | 
| 
         @@ -173,28 +195,50 @@ var Aset = function (_React$Component) { 
     | 
|
| 
       173 
195 
     | 
    
         
             
                  var _response = this.response,
         
     | 
| 
       174 
196 
     | 
    
         
             
                      notUpload = _response.notUpload,
         
     | 
| 
       175 
197 
     | 
    
         
             
                      errUpload = _response.errUpload;
         
     | 
| 
       176 
     | 
    
         
            -
                  var  
     | 
| 
      
 198 
     | 
    
         
            +
                  var _state = this.state,
         
     | 
| 
      
 199 
     | 
    
         
            +
                      data = _state.data,
         
     | 
| 
      
 200 
     | 
    
         
            +
                      currentIndex = _state.currentIndex;
         
     | 
| 
       177 
201 
     | 
    
         | 
| 
       178 
     | 
    
         
            -
                  var  
     | 
| 
      
 202 
     | 
    
         
            +
                  var pageSize = this.pageSize;
         
     | 
| 
      
 203 
     | 
    
         
            +
                  var dataSource = data.slice((currentIndex - 1) * pageSize, currentIndex * pageSize);
         
     | 
| 
      
 204 
     | 
    
         
            +
                  var totalPage = Math.ceil(data.length / pageSize);
         
     | 
| 
       179 
205 
     | 
    
         
             
                  return _react2.default.createElement(
         
     | 
| 
       180 
206 
     | 
    
         
             
                    _antd.Modal,
         
     | 
| 
       181 
207 
     | 
    
         
             
                    { title: '\u5355\u636E\u4E0A\u4F20',
         
     | 
| 
       182 
     | 
    
         
            -
                       
     | 
| 
       183 
     | 
    
         
            -
                       
     | 
| 
       184 
     | 
    
         
            -
                       
     | 
| 
       185 
     | 
    
         
            -
                       
     | 
| 
      
 208 
     | 
    
         
            +
                      centered: true,
         
     | 
| 
      
 209 
     | 
    
         
            +
                      maskClosable: false,
         
     | 
| 
      
 210 
     | 
    
         
            +
                      closable: false,
         
     | 
| 
      
 211 
     | 
    
         
            +
                      wrapClassName: 'retail-upload-mask-wrap ' + (totalPage > 1 ? 'isReNoNull' : ''),
         
     | 
| 
      
 212 
     | 
    
         
            +
                      visible: visible, width: 800, height: 468,
         
     | 
| 
      
 213 
     | 
    
         
            +
                      footer: [_react2.default.createElement(_tplusComponentsTouch.Page, {
         
     | 
| 
      
 214 
     | 
    
         
            +
                        total: totalPage,
         
     | 
| 
      
 215 
     | 
    
         
            +
                        currentIndex: currentIndex,
         
     | 
| 
      
 216 
     | 
    
         
            +
                        previous: this.previous,
         
     | 
| 
      
 217 
     | 
    
         
            +
                        next: this.next,
         
     | 
| 
      
 218 
     | 
    
         
            +
                        className: 'retail-upload-page'
         
     | 
| 
      
 219 
     | 
    
         
            +
                      }), _react2.default.createElement(
         
     | 
| 
      
 220 
     | 
    
         
            +
                        'div',
         
     | 
| 
      
 221 
     | 
    
         
            +
                        null,
         
     | 
| 
      
 222 
     | 
    
         
            +
                        _react2.default.createElement(
         
     | 
| 
      
 223 
     | 
    
         
            +
                          _antd.Button,
         
     | 
| 
      
 224 
     | 
    
         
            +
                          {
         
     | 
| 
      
 225 
     | 
    
         
            +
                            onClick: handleCancel
         
     | 
| 
      
 226 
     | 
    
         
            +
                          },
         
     | 
| 
      
 227 
     | 
    
         
            +
                          '\u5173\u95ED'
         
     | 
| 
      
 228 
     | 
    
         
            +
                        ),
         
     | 
| 
      
 229 
     | 
    
         
            +
                        _react2.default.createElement(
         
     | 
| 
      
 230 
     | 
    
         
            +
                          _antd.Button,
         
     | 
| 
      
 231 
     | 
    
         
            +
                          { type: 'primary', onClick: this.upLoad },
         
     | 
| 
      
 232 
     | 
    
         
            +
                          '\u4E0A\u4F20'
         
     | 
| 
      
 233 
     | 
    
         
            +
                        )
         
     | 
| 
      
 234 
     | 
    
         
            +
                      )] },
         
     | 
| 
       186 
235 
     | 
    
         
             
                    _react2.default.createElement(
         
     | 
| 
       187 
236 
     | 
    
         
             
                      _antd.Tabs,
         
     | 
| 
       188 
237 
     | 
    
         
             
                      { defaultActiveKey: '1', onChange: this.change },
         
     | 
| 
       189 
238 
     | 
    
         
             
                      _react2.default.createElement(TabPane, { tab: '\u5F85\u4E0A\u4F20\uFF08' + (notUpload && notUpload.length) + '\uFF09', key: TAB_KEYS.NOT }),
         
     | 
| 
       190 
239 
     | 
    
         
             
                      _react2.default.createElement(TabPane, { tab: '\u4E0A\u4F20\u5931\u8D25\uFF08' + (errUpload && errUpload.length) + '\uFF09', key: TAB_KEYS.ERR })
         
     | 
| 
       191 
240 
     | 
    
         
             
                    ),
         
     | 
| 
       192 
     | 
    
         
            -
                    _react2.default.createElement(_antd.Table, {  
     | 
| 
       193 
     | 
    
         
            -
                        position: ['bottomLeft'],
         
     | 
| 
       194 
     | 
    
         
            -
                        pageSize: 6,
         
     | 
| 
       195 
     | 
    
         
            -
                        hideOnSinglePage: true,
         
     | 
| 
       196 
     | 
    
         
            -
                        showSizeChanger: false
         
     | 
| 
       197 
     | 
    
         
            -
                      }, rowKey: 'Code', columns: this.columns, dataSource: data })
         
     | 
| 
      
 241 
     | 
    
         
            +
                    _react2.default.createElement(_antd.Table, { rowKey: 'Code', columns: this.columns, dataSource: dataSource })
         
     | 
| 
       198 
242 
     | 
    
         
             
                  );
         
     | 
| 
       199 
243 
     | 
    
         
             
                }
         
     | 
| 
       200 
244 
     | 
    
         
             
              }]);
         
     | 
| 
         @@ -1 +1 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            {"version":3,"sources":["tplus-portaltouch/components/header/uploadList.js"],"names":["TabPane","Tabs","TAB_KEYS","NOT","ERR","DEFAULT_COLUMNS","title","dataIndex","render"," 
     | 
| 
      
 1 
     | 
    
         
            +
            {"version":3,"sources":["tplus-portaltouch/components/header/uploadList.js"],"names":["TabPane","Tabs","TAB_KEYS","NOT","ERR","DEFAULT_COLUMNS","title","dataIndex","render","val","str","toFixed","intSum","substring","indexOf","replace","dot","length","ERR_COLUMN","COLUMNS","concat","Aset","props","context","columns","currentKey","response","pageSize","state","data","currentIndex","upLoad","handleOk","previous","setState","next","change","key","stores","offlineSys","getRetailNotUpload","console","warn","visible","handleCancel","notUpload","errUpload","dataSource","slice","totalPage","Math","ceil","React","Component"],"mappings":"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","file":"uploadList.js","sourcesContent":["/*\r\n * @Descripttion: 零售单未上传和上传失败操作\r\n * @version: \r\n * @Author: zhanghuix\r\n * @LastEditors: zhanghuix\r\n * @LastEditTime: 2021-09-28 16:10:32\r\n */\r\n\r\nimport React from 'react';\r\nimport { Table, Tabs, Modal, Button } from 'antd';\r\nimport { stores } from 'mutants-microfx';\r\nimport { Page } from 'tplus-components-touch';\r\nconst { TabPane } = Tabs;\r\n// 待上传和上传失败tab\r\nconst TAB_KEYS = {\r\n  NOT: 'not',\r\n  ERR: 'err'\r\n};\r\nconst DEFAULT_COLUMNS = [\r\n  {\r\n    title: '单据日期',\r\n    dataIndex: 'VoucherDate'\r\n  },\r\n  {\r\n    title: '单据号',\r\n    dataIndex: 'Code',\r\n  },\r\n  {\r\n    title: '金额',\r\n    dataIndex: 'TotalRetailAmount',\r\n    render: function (val) {\r\n      let str = (val || 0).toFixed(2) + '';\r\n      let intSum = str.substring(0, str.indexOf(\".\")).replace(/\\B(?=(?:\\d{3})+$)/g, ',');//整数部分\r\n      let dot = str.substring(str.length, str.indexOf(\".\"))//小数部分\r\n      return intSum + dot;\r\n    }\r\n  }\r\n];\r\nconst ERR_COLUMN = [{\r\n  title: '原因',\r\n  dataIndex: 'errMsg'\r\n}];\r\n// 上传失败要显示失败原因所以多一列\r\nconst COLUMNS = {\r\n  [TAB_KEYS.NOT]: DEFAULT_COLUMNS,\r\n  [TAB_KEYS.ERR]: DEFAULT_COLUMNS.concat(ERR_COLUMN)\r\n};\r\nexport default class Aset extends React.Component {\r\n  constructor(props, context) {\r\n    super(props, context)\r\n  }\r\n  columns = COLUMNS[TAB_KEYS.NOT]\r\n  currentKey = TAB_KEYS.NOT\r\n  response = {}\r\n  pageSize = 5\r\n  state = {\r\n    data: [],\r\n    currentIndex: 1\r\n  }\r\n  async fetch() {\r\n    try {\r\n      this.response = await stores.offlineSys.getRetailNotUpload();\r\n    } catch (e) {\r\n      console.warn(e);\r\n    }\r\n    this.setState({\r\n      data: this.response[`${this.currentKey}Upload`] || []\r\n    });\r\n  }\r\n  upLoad = async () => {\r\n    this.props.handleOk(this.state.data.length > 0);\r\n  }\r\n  previous = () => {\r\n    this.setState({\r\n      currentIndex: this.state.currentIndex - 1\r\n    })\r\n  }\r\n  next = () => {\r\n    this.setState({\r\n      currentIndex: this.state.currentIndex + 1\r\n    })\r\n  }\r\n  change = (key) => {\r\n    this.currentKey = key;\r\n    this.columns = COLUMNS[key];\r\n    this.setState({\r\n      data: this.response[`${key}Upload`] || [],\r\n      currentIndex: 1\r\n    });\r\n  };\r\n  render() {\r\n    const { visible, handleCancel } = this.props;\r\n    const { notUpload, errUpload } = this.response;\r\n    const { data, currentIndex } = this.state;\r\n    const pageSize = this.pageSize;\r\n    const dataSource = data.slice((currentIndex - 1) * pageSize, currentIndex * pageSize);\r\n    const totalPage = Math.ceil(data.length / pageSize);\r\n    return <Modal title=\"单据上传\"\r\n      centered={true}\r\n      maskClosable={false}\r\n      closable={false}\r\n      wrapClassName={`retail-upload-mask-wrap ${totalPage > 1 ? 'isReNoNull' : ''}`}\r\n      visible={visible} width={800} height={468}\r\n      footer={[\r\n        <Page\r\n          total={totalPage}\r\n          currentIndex={currentIndex}\r\n          previous={this.previous}\r\n          next={this.next}\r\n          className='retail-upload-page'\r\n        />,\r\n        <div>\r\n          <Button\r\n            onClick={handleCancel}\r\n          >\r\n            关闭\r\n          </Button>\r\n          <Button type=\"primary\" onClick={this.upLoad}>\r\n            上传\r\n          </Button>\r\n        </div>\r\n      ]}>\r\n      <Tabs defaultActiveKey=\"1\" onChange={this.change}>\r\n        <TabPane tab={`待上传(${notUpload && notUpload.length})`} key={TAB_KEYS.NOT}>\r\n        </TabPane>\r\n        <TabPane tab={`上传失败(${errUpload && errUpload.length})`} key={TAB_KEYS.ERR}>\r\n        </TabPane>\r\n      </Tabs>\r\n      <Table rowKey=\"Code\" columns={this.columns} dataSource={dataSource} />\r\n    </Modal>\r\n  }\r\n}"]}
         
     | 
| 
         @@ -52,7 +52,7 @@ var _inherits3 = _interopRequireDefault(_inherits2); 
     | 
|
| 
       52 
52 
     | 
    
         
             
            var _class, _class2, _temp; /*
         
     | 
| 
       53 
53 
     | 
    
         
             
                                         * @Description:
         
     | 
| 
       54 
54 
     | 
    
         
             
                                         * @Date: 2019-08-13 08:42:18
         
     | 
| 
       55 
     | 
    
         
            -
                                         * @LastEditTime: 2021-09- 
     | 
| 
      
 55 
     | 
    
         
            +
                                         * @LastEditTime: 2021-09-27 19:05:04
         
     | 
| 
       56 
56 
     | 
    
         
             
                                         * @LastEditors: chenlongad
         
     | 
| 
       57 
57 
     | 
    
         
             
                                         * @modify:修改跳转到T+的查询方案方式
         
     | 
| 
       58 
58 
     | 
    
         
             
                                         */
         
     | 
| 
         @@ -122,7 +122,7 @@ var _default = (0, _mobxReact.observer)(_class = (_temp = _class2 = function (_C 
     | 
|
| 
       122 
122 
     | 
    
         
             
                var _this = (0, _possibleConstructorReturn3.default)(this, (_default.__proto__ || (0, _getPrototypeOf2.default)(_default)).call(this, props));
         
     | 
| 
       123 
123 
     | 
    
         | 
| 
       124 
124 
     | 
    
         
             
                _this.catchOfflineData = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee() {
         
     | 
| 
       125 
     | 
    
         
            -
                  var offlineSys, isLoginAfter, downloadCatcherDay, currentDay, downProgress;
         
     | 
| 
      
 125 
     | 
    
         
            +
                  var offlineSys, isLoginAfter, downloadCatcherDay, currentDay, downProgress, result;
         
     | 
| 
       126 
126 
     | 
    
         
             
                  return _regenerator2.default.wrap(function _callee$(_context) {
         
     | 
| 
       127 
127 
     | 
    
         
             
                    while (1) {
         
     | 
| 
       128 
128 
     | 
    
         
             
                      switch (_context.prev = _context.next) {
         
     | 
| 
         @@ -133,12 +133,12 @@ var _default = (0, _mobxReact.observer)(_class = (_temp = _class2 = function (_C 
     | 
|
| 
       133 
133 
     | 
    
         
             
                          currentDay = Math.ceil(new Date() / 1000 / 60 / 60 / 24);
         
     | 
| 
       134 
134 
     | 
    
         | 
| 
       135 
135 
     | 
    
         
             
                          if (!(isLoginAfter == 1)) {
         
     | 
| 
       136 
     | 
    
         
            -
                            _context.next =  
     | 
| 
      
 136 
     | 
    
         
            +
                            _context.next = 14;
         
     | 
| 
       137 
137 
     | 
    
         
             
                            break;
         
     | 
| 
       138 
138 
     | 
    
         
             
                          }
         
     | 
| 
       139 
139 
     | 
    
         | 
| 
       140 
140 
     | 
    
         
             
                          if (!(!downloadCatcherDay || currentDay > downloadCatcherDay)) {
         
     | 
| 
       141 
     | 
    
         
            -
                            _context.next =  
     | 
| 
      
 141 
     | 
    
         
            +
                            _context.next = 13;
         
     | 
| 
       142 
142 
     | 
    
         
             
                            break;
         
     | 
| 
       143 
143 
     | 
    
         
             
                          }
         
     | 
| 
       144 
144 
     | 
    
         | 
| 
         @@ -155,13 +155,17 @@ var _default = (0, _mobxReact.observer)(_class = (_temp = _class2 = function (_C 
     | 
|
| 
       155 
155 
     | 
    
         
             
                          return offlineSys.downloadCatcherData(downProgress);
         
     | 
| 
       156 
156 
     | 
    
         | 
| 
       157 
157 
     | 
    
         
             
                        case 10:
         
     | 
| 
      
 158 
     | 
    
         
            +
                          result = _context.sent;
         
     | 
| 
      
 159 
     | 
    
         
            +
             
     | 
| 
       158 
160 
     | 
    
         
             
                          _tplusComponentsTouch.Loading.hide();
         
     | 
| 
       159 
     | 
    
         
            -
                           
     | 
| 
      
 161 
     | 
    
         
            +
                          if (result) {
         
     | 
| 
      
 162 
     | 
    
         
            +
                            _mutantsMicrofx.localStore.set("downloadCatcherDay", currentDay);
         
     | 
| 
      
 163 
     | 
    
         
            +
                          }
         
     | 
| 
       160 
164 
     | 
    
         | 
| 
       161 
     | 
    
         
            -
                        case  
     | 
| 
      
 165 
     | 
    
         
            +
                        case 13:
         
     | 
| 
       162 
166 
     | 
    
         
             
                          _mutantsMicrofx.localStore.set("isLoginAfter", 0);
         
     | 
| 
       163 
167 
     | 
    
         | 
| 
       164 
     | 
    
         
            -
                        case  
     | 
| 
      
 168 
     | 
    
         
            +
                        case 14:
         
     | 
| 
       165 
169 
     | 
    
         
             
                        case 'end':
         
     | 
| 
       166 
170 
     | 
    
         
             
                          return _context.stop();
         
     | 
| 
       167 
171 
     | 
    
         
             
                      }
         
     | 
| 
         @@ -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","hide","set","getOperation","resolve","reject","portalStore","headHook","addClass","homeOperation","Request","functionData","then","operations","setState","catch","err","console","log","data","state","id","setStore","initSetParams","getScreenType","isHorizontalSunMi","sunMiPresentationInit","ret","window","open","getTime","hsyBasicInfoInit","initHsyPage","external_frame","document","getElementById","win","contentWindow","timer","setTimeout","isHsyLoadFinish","HsyLoadFinish","clearTimeout","result","SunMi_fuping_url","sessionStorage","getItem","url","location","origin","pathname","sunMi_PresentationManager","secondScreenLoadUrl","FuPingIsLoaded","setItem","store","storeName","enumController","getEnumOj","RE_POSParamType","DUAL_SCREEN_SETTING","filterResult","filter","settingItem","ParamType","Id","sharedPreferencesSet","sendMessageToSecondScreen","step","getTcBasicInfoInit","userStore","User","restore","sid","tplusUrl","msg","ModalWraper","warning","title","content","okText","okType","substring","length","ossjumpUrl","postMsgUrl","user","loginInfo","options","UserCode","AccountNum","posCode","TplusStoreId","uid","tplusEncode","pwd","accNum","code","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","onOk","logout","shouldOpenHomeOperation","Message","warn","modalRouter","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","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","HsyRouterJump","loadHsyPage","external_frame_a","wins","HsyRouterClean","only","digits","str","number","letter","arr","i","pos","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","Menus","leftMenuTC","rightMenuTC","getWebEntry","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: 2021-09-15 20:31:04\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      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  async componentWillMount() {\r\n    await this.catchOfflineData();\r\n    await this.getOperation();\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        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        await offlineSys.downloadCatcherData(downProgress);\r\n        Loading.hide();\r\n        localStore.set(\"downloadCatcherDay\",currentDay);\r\n      }\r\n      localStore.set(\"isLoginAfter\", 0)\r\n    }\r\n  }\r\n\r\n\r\n  getOperation = () => {\r\n    return new Promise((resolve, reject) => {\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', JSON.stringify(operations));\r\n        this.setState({ operations: operations || [] });\r\n        Loading.hide();\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        // 加载权限数据  DR-29735 by majian\r\n        PosSetData(data);\r\n      });\r\n      // portalStore && portalStore.getPortalMenu();\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\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    // 获取是否缓存副屏地址 只在app打开的生命周期缓存 读取 关闭重新缓存\r\n    const SunMi_fuping_url = sessionStorage.getItem(\"SunMi_fuping_url\");\r\n    // 如果存在缓存地址 使用缓存地址  否则使用新hash地址\r\n    if (!SunMi_fuping_url) {\r\n      let url = location.origin + location.pathname + '?ts=' + new Date().getTime() + '&vt=3&fuping=3';\r\n      window.sunMi_PresentationManager && window.sunMi_PresentationManager.secondScreenLoadUrl(url).then(() => {\r\n        this.FuPingIsLoaded = true;\r\n        // 加载副屏页面成功 缓存地址\r\n        sessionStorage.setItem(\"SunMi_fuping_url\", url);\r\n        setTimeout(() => {\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 && (settingItem.ParamType.Id === DUAL_SCREEN_SETTING || 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        }, 2000);\r\n      });\r\n    } else {\r\n      // 表示已经加载过页面只需要重置状态即可\r\n      const { store: { storeName = '' } = {} } = localStore.get('user') || {};\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 (!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    if(!stores.offlineSys.shouldOpenHomeOperation(Name)) {\r\n      Message.warn(\"离线模式下此操作不可用\")\r\n      return;\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) {\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    //对于专属云、云主机,如果配置的http,存在跨域问题,暂时解决不了,只能通过打开默认浏览器打开。\r\n    if (this.hasElectron === true && (postMessageUrl + '').indexOf('https') == -1 && (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  //跳转CC\r\n  toHsyPage = (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 { 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        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    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  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  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  render() {\r\n    const { showModal, 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 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      </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","observer","props","catchOfflineData","offlineSys","context","stores","isLoginAfter","localStore","get","downloadCatcherDay","currentDay","Math","ceil","Date","downProgress","params","Loading","transfer","show","text","delay","showProgress","downloadCatcherData","result","hide","set","getOperation","resolve","reject","portalStore","headHook","addClass","homeOperation","Request","functionData","then","operations","setState","catch","err","console","log","data","state","id","setStore","initSetParams","getScreenType","isHorizontalSunMi","sunMiPresentationInit","ret","window","open","getTime","hsyBasicInfoInit","initHsyPage","external_frame","document","getElementById","win","contentWindow","timer","setTimeout","isHsyLoadFinish","HsyLoadFinish","clearTimeout","SunMi_fuping_url","sessionStorage","getItem","url","location","origin","pathname","sunMi_PresentationManager","secondScreenLoadUrl","FuPingIsLoaded","setItem","store","storeName","enumController","getEnumOj","RE_POSParamType","DUAL_SCREEN_SETTING","filterResult","filter","settingItem","ParamType","Id","sharedPreferencesSet","sendMessageToSecondScreen","step","getTcBasicInfoInit","userStore","User","restore","sid","tplusUrl","msg","ModalWraper","warning","title","content","okText","okType","substring","length","ossjumpUrl","postMsgUrl","user","loginInfo","options","UserCode","AccountNum","posCode","TplusStoreId","uid","tplusEncode","pwd","accNum","code","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","onOk","logout","shouldOpenHomeOperation","Message","warn","modalRouter","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","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","HsyRouterJump","loadHsyPage","external_frame_a","wins","HsyRouterClean","only","digits","str","number","letter","arr","i","pos","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","Menus","leftMenuTC","rightMenuTC","getWebEntry","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: 2021-09-27 19:05:04\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      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  async componentWillMount() {\r\n    await this.catchOfflineData();\r\n    await this.getOperation();\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        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        Loading.hide();\r\n        if(result){\r\n          localStore.set(\"downloadCatcherDay\",currentDay);\r\n        }\r\n      }\r\n      localStore.set(\"isLoginAfter\", 0)\r\n    }\r\n  }\r\n\r\n\r\n  getOperation = () => {\r\n    return new Promise((resolve, reject) => {\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', JSON.stringify(operations));\r\n        this.setState({ operations: operations || [] });\r\n        Loading.hide();\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        // 加载权限数据  DR-29735 by majian\r\n        PosSetData(data);\r\n      });\r\n      // portalStore && portalStore.getPortalMenu();\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\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    // 获取是否缓存副屏地址 只在app打开的生命周期缓存 读取 关闭重新缓存\r\n    const SunMi_fuping_url = sessionStorage.getItem(\"SunMi_fuping_url\");\r\n    // 如果存在缓存地址 使用缓存地址  否则使用新hash地址\r\n    if (!SunMi_fuping_url) {\r\n      let url = location.origin + location.pathname + '?ts=' + new Date().getTime() + '&vt=3&fuping=3';\r\n      window.sunMi_PresentationManager && window.sunMi_PresentationManager.secondScreenLoadUrl(url).then(() => {\r\n        this.FuPingIsLoaded = true;\r\n        // 加载副屏页面成功 缓存地址\r\n        sessionStorage.setItem(\"SunMi_fuping_url\", url);\r\n        setTimeout(() => {\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 && (settingItem.ParamType.Id === DUAL_SCREEN_SETTING || 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        }, 2000);\r\n      });\r\n    } else {\r\n      // 表示已经加载过页面只需要重置状态即可\r\n      const { store: { storeName = '' } = {} } = localStore.get('user') || {};\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 (!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    if(!stores.offlineSys.shouldOpenHomeOperation(Name)) {\r\n      Message.warn(\"离线模式下此操作不可用\")\r\n      return;\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) {\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    //对于专属云、云主机,如果配置的http,存在跨域问题,暂时解决不了,只能通过打开默认浏览器打开。\r\n    if (this.hasElectron === true && (postMessageUrl + '').indexOf('https') == -1 && (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  //跳转CC\r\n  toHsyPage = (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 { 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        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    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  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  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  render() {\r\n    const { showModal, 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 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      </Layout>)\r\n    }\r\n    return htmlContent;\r\n  }\r\n}"]}
         
     |