tplus-member 3.28.7 → 3.28.8

Sign up to get free protection for your applications and to get access to all the features.
@@ -109,11 +109,11 @@ var MemberTag = (0, _mobxReact.observer)(_class = (_temp = _class2 = function (_
109
109
  function MemberTag(props) {
110
110
  (0, _classCallCheck3.default)(this, MemberTag);
111
111
 
112
- var _this2 = (0, _possibleConstructorReturn3.default)(this, (MemberTag.__proto__ || (0, _getPrototypeOf2.default)(MemberTag)).call(this, props));
112
+ var _this = (0, _possibleConstructorReturn3.default)(this, (MemberTag.__proto__ || (0, _getPrototypeOf2.default)(MemberTag)).call(this, props));
113
113
 
114
- _initialiseProps.call(_this2);
114
+ _initialiseProps.call(_this);
115
115
 
116
- _this2.hasElectron = hasElectron;
116
+ _this.hasElectron = hasElectron;
117
117
 
118
118
  var _ref = _mutantsMicrofx.stores.user.options.get('loginInfo') || {},
119
119
  isMemberInputType = _ref.isMemberInputType,
@@ -122,41 +122,44 @@ var MemberTag = (0, _mobxReact.observer)(_class = (_temp = _class2 = function (_
122
122
  ICCardServer = _ref.ICCardServer,
123
123
  ICCardPassword = _ref.ICCardPassword;
124
124
 
125
- _this2.isMemberInputType = parseInt(isMemberInputType); // '0'为不禁用 '1'为禁用
126
- _this2.isStorageCardInputType = MemberMeStorageCardInputByKeyBoard; // 仅储值卡是否禁用键盘输入,'0'为不禁用 '1'为禁用
127
- _this2.openFaceRecognition = parseInt(OpenFaceRecognition); // 启用人脸识别:0禁用 1为启用
128
- _this2.iCCardServer = parseInt(ICCardServer); // 启用IC卡:0为禁用 1为启用
129
- _this2.iCCardPassword = ICCardPassword; //IC卡密码
130
- _this2.ms = _api2.default;
125
+ _this.isMemberInputType = parseInt(isMemberInputType); // '0'为不禁用 '1'为禁用
126
+ _this.isStorageCardInputType = MemberMeStorageCardInputByKeyBoard; // 仅储值卡是否禁用键盘输入,'0'为不禁用 '1'为禁用
127
+ _this.openFaceRecognition = parseInt(OpenFaceRecognition); // 启用人脸识别:0禁用 1为启用
128
+ _this.iCCardServer = parseInt(ICCardServer); // 启用IC卡:0为禁用 1为启用
129
+ _this.iCCardPassword = ICCardPassword; //IC卡密码
130
+ _this.ms = _api2.default;
131
131
  //移动端环境下,没有读取IC卡的方式。
132
132
 
133
133
  var _ref2 = _mutantsUtil.platform || {},
134
134
  isHorizontalPad = _ref2.isHorizontalPad,
135
135
  isHorizontalSunMi = _ref2.isHorizontalSunMi;
136
136
 
137
- _this2.isHorizontalPad = !!isHorizontalPad;
138
- _this2.isHorizontalSunMi = !!isHorizontalSunMi;
139
- _this2.isMobileEnvironment = !!isHorizontalPad || !!isHorizontalSunMi;
140
- _this2.handleReadICard = _this2.handleReadICard.bind(_this2);
137
+ _this.isHorizontalPad = !!isHorizontalPad;
138
+ _this.isHorizontalSunMi = !!isHorizontalSunMi;
139
+ _this.isMobileEnvironment = !!isHorizontalPad || !!isHorizontalSunMi;
140
+ _this.handleReadICard = _this.handleReadICard.bind(_this);
141
141
 
142
142
  //记录键盘录入信息的开始时间
143
- _this2.keypressStime = null;
144
- _this2.iseyboardKEnter = false; //是否为键盘输入
143
+ _this.keypressStime = null;
144
+ _this.iseyboardKEnter = false; //是否为键盘输入
145
145
 
146
146
  var _ref3 = _mutantsUtil.platform || {},
147
147
  isNewRetailBCPos = _ref3.isNewRetailBCPos;
148
148
 
149
- _this2.state = {
149
+ _this.state = {
150
150
  isCC: !!isNewRetailBCPos,
151
151
  isShowBirthdayTip: false
152
152
  };
153
- return _this2;
153
+
154
+ //是否单据模式
155
+ _this.isVoucherMode = _mutantsMicrofx.localStore && _mutantsMicrofx.localStore.get('voucherDefaultPosMode') == 'voucher';
156
+ return _this;
154
157
  }
155
158
 
156
159
  (0, _createClass3.default)(MemberTag, [{
157
160
  key: 'componentWillReact',
158
161
  value: function componentWillReact() {
159
- var _this3 = this;
162
+ var _this2 = this;
160
163
 
161
164
  var _ref4 = this.context.viewModel || {},
162
165
  _ref4$data = _ref4.data;
@@ -173,8 +176,8 @@ var MemberTag = (0, _mobxReact.observer)(_class = (_temp = _class2 = function (_
173
176
  var memberChangeData = (0, _keys2.default)(selectMemberInfo).length ? selectMemberInfo : undefined;
174
177
 
175
178
  var memberChange = function memberChange(data) {
176
- _this3.setState({ newAvatar: '' });
177
- _this3.props.memberChange(data);
179
+ _this2.setState({ newAvatar: '' });
180
+ _this2.props.memberChange(data);
178
181
  };
179
182
  if ((typeof memberChangeData === 'undefined' ? 'undefined' : (0, _typeof3.default)(memberChangeData)) === 'object') {
180
183
  var deepCloneMember = JSON.parse((0, _stringify2.default)(memberChangeData));
@@ -224,7 +227,7 @@ var MemberTag = (0, _mobxReact.observer)(_class = (_temp = _class2 = function (_
224
227
 
225
228
  //IC卡连接
226
229
  value: function connectRfCard() {
227
- var _this4 = this;
230
+ var _this3 = this;
228
231
 
229
232
  //客户端环境下,并开启了启用IC卡。
230
233
  if (this.hasElectron === true && this.iCCardServer === 1) {
@@ -235,7 +238,7 @@ var MemberTag = (0, _mobxReact.observer)(_class = (_temp = _class2 = function (_
235
238
  } else {
236
239
  result = { connectCardStatus: true, connectCardError: '' };
237
240
  }
238
- _this4.setState(result);
241
+ _this3.setState(result);
239
242
  });
240
243
  }
241
244
  }
@@ -245,7 +248,7 @@ var MemberTag = (0, _mobxReact.observer)(_class = (_temp = _class2 = function (_
245
248
  }, {
246
249
  key: 'readRfCard',
247
250
  value: function readRfCard() {
248
- var _this5 = this;
251
+ var _this4 = this;
249
252
 
250
253
  //客户端环境下,并开启了启用IC卡。
251
254
  if (this.hasElectron === true && this.iCCardServer === 1) {
@@ -262,10 +265,10 @@ var MemberTag = (0, _mobxReact.observer)(_class = (_temp = _class2 = function (_
262
265
  _mutantsMicrofx.nativeMs.setIpcRendererMethod('ReadRfCard', (0, _extends3.default)({}, params), function (ret) {
263
266
  if (ret.status === 0) {
264
267
  _tplusComponentsTouch.Message.error(ret.value);
265
- _this5.connectRfCard(); //读取失败后,重新连接一下。
268
+ _this4.connectRfCard(); //读取失败后,重新连接一下。
266
269
  return;
267
270
  } else if (ret.status === 1) {
268
- _this5.searchMember(ret.value);
271
+ _this4.searchMember(ret.value);
269
272
  }
270
273
  });
271
274
  }
@@ -295,7 +298,7 @@ var MemberTag = (0, _mobxReact.observer)(_class = (_temp = _class2 = function (_
295
298
  }, {
296
299
  key: 'render',
297
300
  value: function render() {
298
- var _this6 = this;
301
+ var _this5 = this;
299
302
 
300
303
  var _state2 = this.state,
301
304
  memberPhoto = _state2.memberPhoto,
@@ -369,10 +372,10 @@ var MemberTag = (0, _mobxReact.observer)(_class = (_temp = _class2 = function (_
369
372
  placeholder: '\u626B\u63CF/\u8F93\u5165\u4F1A\u5458\u53F7',
370
373
  value: searchValue,
371
374
  ref: function ref(el) {
372
- return _this6.inputSearch = el && el.input;
375
+ return _this5.inputSearch = el && el.input;
373
376
  },
374
377
  onChange: function onChange(e) {
375
- return _this6.handleSearch(e.target.value);
378
+ return _this5.handleSearch(e.target.value);
376
379
  },
377
380
  onFocus: this.handleFocus,
378
381
  onBlur: this.handleBlur,
@@ -393,7 +396,7 @@ var MemberTag = (0, _mobxReact.observer)(_class = (_temp = _class2 = function (_
393
396
  'div',
394
397
  { className: 'openFaceRecognition-box' },
395
398
  _react2.default.createElement(_tplusComponentsTouch.Ticon, { className: 'icon', onClick: function onClick() {
396
- return _this6.loadFaceRecognition(2);
399
+ return _this5.loadFaceRecognition(2);
397
400
  }, type: 'renlianshibie' }),
398
401
  _react2.default.createElement(_tplusComponentsTouch.Spin, {
399
402
  className: 'face-spin',
@@ -405,7 +408,7 @@ var MemberTag = (0, _mobxReact.observer)(_class = (_temp = _class2 = function (_
405
408
 
406
409
  /* 扫描组件 */
407
410
  this.isHorizontalPad && _react2.default.createElement(_tplusComponentsTouch.Scan, { ref: function ref(scan) {
408
- return _this6.scanObj = scan;
411
+ return _this5.scanObj = scan;
409
412
  }, onChange: this.onScanResult })
410
413
  )
411
414
  ),
@@ -434,13 +437,13 @@ var MemberTag = (0, _mobxReact.observer)(_class = (_temp = _class2 = function (_
434
437
  _react2.default.createElement(_tplusComponentsTouch.Ticon, { type: 'cuowuda', className: 'cuowudaIcon' })
435
438
  ),
436
439
  memberCareInfo && memberCareInfo.isTicket && _react2.default.createElement(_tplusComponentsTouch.Ticon, { type: 'cuowuda', onClick: function onClick() {
437
- _this6.setIsShowBirthdayTip();
440
+ _this5.setIsShowBirthdayTip();
438
441
  }, className: 'cuowudaIcon' })
439
442
  ),
440
443
  _react2.default.createElement(
441
444
  'div',
442
445
  { className: 'second member-hotkey-info', onClick: function onClick() {
443
- return _this6.openShowModal(0);
446
+ return _this5.openShowModal(0);
444
447
  } },
445
448
  _react2.default.createElement(
446
449
  'div',
@@ -512,7 +515,7 @@ var MemberTag = (0, _mobxReact.observer)(_class = (_temp = _class2 = function (_
512
515
  _react2.default.createElement(
513
516
  _button2.default,
514
517
  { type: 'primary', onClick: function onClick() {
515
- return _this6.loadFaceRecognition(1);
518
+ return _this5.loadFaceRecognition(1);
516
519
  }, className: 'btn', disabled: inShopLoading },
517
520
  !inShopLoading && '到店会员',
518
521
  _react2.default.createElement(_tplusComponentsTouch.Spin, {
@@ -667,7 +670,7 @@ var MemberTag = (0, _mobxReact.observer)(_class = (_temp = _class2 = function (_
667
670
  }, _class2.defaultProps = {
668
671
  memberChange: function memberChange() {}
669
672
  }, _initialiseProps = function _initialiseProps() {
670
- var _this7 = this;
673
+ var _this6 = this;
671
674
 
672
675
  this.state = {
673
676
  searchValue: '',
@@ -685,15 +688,15 @@ var MemberTag = (0, _mobxReact.observer)(_class = (_temp = _class2 = function (_
685
688
  };
686
689
 
687
690
  this.controllerEvent = function (methodName, methodArgs) {
688
- _this7.context.onEvent({ 'controllerEvent': _mutantsAppfx.Action.fromJS(_this7.context.viewModel, methodName) }, 'controllerEvent', methodArgs);
691
+ _this6.context.onEvent({ 'controllerEvent': _mutantsAppfx.Action.fromJS(_this6.context.viewModel, methodName) }, 'controllerEvent', methodArgs);
689
692
  };
690
693
 
691
694
  this.resetInShopMemberTimer = function (count) {
692
- _this7.timer && clearTimeout(_this7.timer);
695
+ _this6.timer && clearTimeout(_this6.timer);
693
696
  if (!count) return;
694
697
  var time = 5 * 60 * 1000;
695
- _this7.timer = setTimeout(function () {
696
- _this7.getInStoreMemberCount();
698
+ _this6.timer = setTimeout(function () {
699
+ _this6.getInStoreMemberCount();
697
700
  }, time);
698
701
  };
699
702
 
@@ -702,11 +705,11 @@ var MemberTag = (0, _mobxReact.observer)(_class = (_temp = _class2 = function (_
702
705
  isNewRetailBCPos = _ref7.isNewRetailBCPos;
703
706
 
704
707
  if (!isNewRetailBCPos) {
705
- if (!_this7.openFaceRecognition) {
708
+ if (!_this6.openFaceRecognition) {
706
709
  _tplusComponentsTouch.Message.warn('未启用人脸识别,需要先开启人脸识别功能');
707
710
  return;
708
711
  }
709
- _this7.setState({
712
+ _this6.setState({
710
713
  memberPhoto: true,
711
714
  titleModal: '选择头像'
712
715
  });
@@ -716,31 +719,31 @@ var MemberTag = (0, _mobxReact.observer)(_class = (_temp = _class2 = function (_
716
719
  this.openShowModal = function (status, res) {
717
720
  var title = '';
718
721
 
719
- var _ref8 = _this7.context.viewModel || {},
722
+ var _ref8 = _this6.context.viewModel || {},
720
723
  _ref8$data = _ref8.data;
721
724
 
722
725
  _ref8$data = _ref8$data === undefined ? {} : _ref8$data;
723
726
  var _ref8$data$Member = _ref8$data.Member,
724
727
  Member = _ref8$data$Member === undefined ? {} : _ref8$data$Member;
725
- var newAvatar = _this7.state.newAvatar;
728
+ var newAvatar = _this6.state.newAvatar;
726
729
 
727
730
  var jsMember = (0, _mobx.toJS)(Member);
728
731
  var updateMember = newAvatar ? (0, _extends3.default)({}, jsMember, { ImageFile: newAvatar }) : jsMember;
729
732
  switch (status) {
730
733
  case 0:
731
734
  title = '会员详情';
732
- _this7.setState({ viewMemberInfo: updateMember });
735
+ _this6.setState({ viewMemberInfo: updateMember });
733
736
  break;
734
737
  case 1:
735
738
  title = '到店会员';
736
- _this7.setState({ viewMemberInfo: res });
739
+ _this6.setState({ viewMemberInfo: res });
737
740
  break;
738
741
  case 2:
739
742
  title = '人脸识别';
740
- _this7.setState({ viewMemberInfo: res });
743
+ _this6.setState({ viewMemberInfo: res });
741
744
  break;
742
745
  }
743
- _this7.setState({
746
+ _this6.setState({
744
747
  status: status,
745
748
  memberShow: true,
746
749
  titleModal: title
@@ -748,9 +751,9 @@ var MemberTag = (0, _mobxReact.observer)(_class = (_temp = _class2 = function (_
748
751
  };
749
752
 
750
753
  this.openCloseModal = function () {
751
- var setMemberFocus = _this7.props.setMemberFocus;
754
+ var setMemberFocus = _this6.props.setMemberFocus;
752
755
 
753
- var memberStore = _this7.context.viewModel && _this7.context.viewModel.items.find(function (el) {
756
+ var memberStore = _this6.context.viewModel && _this6.context.viewModel.items.find(function (el) {
754
757
  return el.name == 'MemberStore';
755
758
  });
756
759
  var uiState = memberStore.uiState;
@@ -764,7 +767,7 @@ var MemberTag = (0, _mobxReact.observer)(_class = (_temp = _class2 = function (_
764
767
  title: '关闭会员',
765
768
  content: '' + (IsIntegralExchange ? "关闭会员将会清空商品信息!" : "确定要关闭该会员吗?"),
766
769
  onOk: function onOk() {
767
- _this7.ms.clearSeletMember();
770
+ _this6.ms.clearSeletMember();
768
771
  _mutantsMicrofx.stores.selectMemberStore.clearMemberCare();
769
772
  typeof setMemberFocus == 'function' && setMemberFocus();
770
773
  }
@@ -772,87 +775,98 @@ var MemberTag = (0, _mobxReact.observer)(_class = (_temp = _class2 = function (_
772
775
  };
773
776
 
774
777
  this.handleCloseBirthdayModal = function () {
775
- _this7.ms.changeBirthdayShow(false);
778
+ _this6.ms.changeBirthdayShow(false);
776
779
  };
777
780
 
778
781
  this.handleMemberCareModal = function () {
779
- _this7.setState({ isMemberCareModal: true });
782
+ _this6.setState({ isMemberCareModal: true });
780
783
  };
781
784
 
782
785
  this.handleMemberCareModalCancel = function () {
783
- _this7.setState({ isMemberCareModal: false });
786
+ _this6.setState({ isMemberCareModal: false });
784
787
  };
785
788
 
786
789
  this.handleSearch = function (val) {
787
- _this7.setState({ searchValue: val });
790
+ _this6.setState({ searchValue: val });
788
791
  };
789
792
 
790
793
  this.handleFocus = function (el) {
791
- if (_this7.isMemberInputType) return;
792
- var _this = _this7;
793
- function cb() {
794
- _this.searchMember(undefined, 'ok');
794
+ if (_this6.isMemberInputType) return;
795
+ if (_this6.isVoucherMode) {
796
+ _tplusComponentsTouch.Keyboard.open(function (v) {
797
+ var value = _tplusComponentsTouch.Keyboard.getNewValue(_this6.inputSearch, _this6.inputSearch.value, v);
798
+ _this6.handleSearch(value);
799
+ }, function () {
800
+ _this6.searchMember(undefined, 'ok');
801
+ }, _this6.keyboardClose, 'ByMember', _mutantsMicrofx.localStore.get('ByMember'))();
802
+ } else {
803
+ _tplusComponentsTouch.Keyboard.open2(function (v) {
804
+ var value = _tplusComponentsTouch.Keyboard.getNewValue(_this6.inputSearch, _this6.inputSearch.value, v);
805
+ _this6.handleSearch(value);
806
+ }, function () {
807
+ _this6.searchMember(undefined, 'ok');
808
+ }, _this6.keyboardClose, 'ByMember', _mutantsMicrofx.localStore.get('ByMember'));
795
809
  }
796
- _tplusComponentsTouch.Keyboard.open2(function (v) {
797
- var value = _tplusComponentsTouch.Keyboard.getNewValue(_this7.inputSearch, _this7.inputSearch.value, v);
798
- _this7.handleSearch(value);
799
- }, cb, _this7.keyboardClose, 'ByMember', _mutantsMicrofx.localStore.get('ByMember'));
800
810
  };
801
811
 
802
812
  this.keyboardClose = function () {
803
- _this7.inputSearch.blur();
813
+ _this6.inputSearch.blur();
804
814
  };
805
815
 
806
816
  this.handleBlur = function () {
807
- _tplusComponentsTouch.Keyboard.close2();
817
+ if (_this6.isVoucherMode) {
818
+ _tplusComponentsTouch.Keyboard.close();
819
+ } else {
820
+ _tplusComponentsTouch.Keyboard.close2();
821
+ }
808
822
  };
809
823
 
810
824
  this.handleReadICard = function () {
811
- _this7.readRfCard();
825
+ _this6.readRfCard();
812
826
  };
813
827
 
814
828
  this.handleShowModal = function (type, params) {
815
829
  if (params) {
816
- _this7.setState({ dtMember: params, memberShow: type });
830
+ _this6.setState({ dtMember: params, memberShow: type });
817
831
  } else {
818
- _this7.setState({ memberShow: type });
832
+ _this6.setState({ memberShow: type });
819
833
  }
820
834
  };
821
835
 
822
836
  this.handlePhotoModal = function (type, newAvatar) {
823
837
  if (newAvatar) {
824
- _this7.setState({
838
+ _this6.setState({
825
839
  newAvatar: newAvatar,
826
840
  memberPhoto: type
827
841
  });
828
842
  } else {
829
- _this7.setState({ memberPhoto: type });
843
+ _this6.setState({ memberPhoto: type });
830
844
  }
831
845
  };
832
846
 
833
847
  this.searchMember = function (val, type) {
834
848
  if (!_mutantsMicrofx.stores.offlineSys.shouldInOffline()) return;
835
- if (!_this7.ms || _this7.searchLoading) return;
836
- var searchValue = _this7.state.searchValue;
849
+ if (!_this6.ms || _this6.searchLoading) return;
850
+ var searchValue = _this6.state.searchValue;
837
851
 
838
852
  val = val || (searchValue || '').trim();
839
853
  if (!val) return;
840
- var _props2 = _this7.props,
854
+ var _props2 = _this6.props,
841
855
  memberSearched = _props2.memberSearched,
842
856
  selectMemberSuccess = _props2.selectMemberSuccess,
843
857
  setMemberFocus = _props2.setMemberFocus,
844
858
  getMemberBirthday = _props2.getMemberBirthday,
845
859
  getMeStorageCard = _props2.getMeStorageCard;
846
860
 
847
- _this7.searchLoading = true;
848
- _this7.setState({ searchVisible: true });
849
- _this7.ms.getSearchMember({
861
+ _this6.searchLoading = true;
862
+ _this6.setState({ searchVisible: true });
863
+ _this6.ms.getSearchMember({
850
864
  currentPage: 1,
851
865
  pageSize: 10,
852
866
  key: val,
853
867
  isSingleMember: false
854
868
  }).then(function (ret) {
855
- _this7.searchLoading = false;
869
+ _this6.searchLoading = false;
856
870
 
857
871
  var _ref9 = ret || {},
858
872
  columnInfo = _ref9.ColumnInfo,
@@ -860,11 +874,11 @@ var MemberTag = (0, _mobxReact.observer)(_class = (_temp = _class2 = function (_
860
874
 
861
875
  var data = JSON.parse(Data) || [];
862
876
  var info = data[0];
863
- _this7.setState({ searchVisible: false, columnInfo: columnInfo });
864
- if (info && info.MemberType.IsStorage && _this7.isStorageCardInputType && _this7.iseyboardKEnter) {
877
+ _this6.setState({ searchVisible: false, columnInfo: columnInfo });
878
+ if (info && info.MemberType.IsStorage && _this6.isStorageCardInputType && _this6.iseyboardKEnter) {
865
879
  getMeStorageCard && getMeStorageCard(true);
866
- _this7.handleSearch('');
867
- _this7.keypressStime = null;
880
+ _this6.handleSearch('');
881
+ _this6.keypressStime = null;
868
882
  } else {
869
883
  getMeStorageCard && getMeStorageCard(false);
870
884
  }
@@ -877,18 +891,18 @@ var MemberTag = (0, _mobxReact.observer)(_class = (_temp = _class2 = function (_
877
891
  onHide: function onHide() {},
878
892
  listArr: data
879
893
  });
880
- _this7.setState({
894
+ _this6.setState({
881
895
  searchValue: null
882
896
  });
883
897
  } else {
884
898
  memberSearched && memberSearched(info, 'searched');
885
899
  (0, _utils.userInfoFormat)(info);
886
900
  if ((0, _utils.errMessageTip)(info)) return;
887
- _this7.ms.seletMember(info, true);
901
+ _this6.ms.seletMember(info, true);
888
902
  setTimeout(function () {
889
- return _this7.setState({ searchValue: '' });
903
+ return _this6.setState({ searchValue: '' });
890
904
  }, 0);
891
- _this7.handleBlur();
905
+ _this6.handleBlur();
892
906
  selectMemberSuccess && selectMemberSuccess();
893
907
  getMemberBirthday && getMemberBirthday(info.ID, function (result) {
894
908
  _mutantsMicrofx.stores.selectMemberStore.changeMemberCare(result);
@@ -897,58 +911,58 @@ var MemberTag = (0, _mobxReact.observer)(_class = (_temp = _class2 = function (_
897
911
  } else {
898
912
  if (type === 'ok') {
899
913
  _tplusComponentsTouch.Message.warn('会员不存在');
900
- if (_this7.isMobileEnvironment) {
914
+ if (_this6.isMobileEnvironment) {
901
915
  setTimeout(function () {
902
- return _this7.setState({ searchValue: '' });
916
+ return _this6.setState({ searchValue: '' });
903
917
  }, 0);
904
918
  }
905
919
  typeof setMemberFocus == 'function' && setMemberFocus();
906
920
  }
907
921
  }
908
922
  }).catch(function (err) {
909
- _this7.setState({ searchVisible: false });
910
- _this7.searchLoading = false;
923
+ _this6.setState({ searchVisible: false });
924
+ _this6.searchLoading = false;
911
925
  memberSearched && memberSearched(undefined, 'err');
912
926
  });
913
927
  };
914
928
 
915
929
  this.getInStoreMemberCount = function () {
916
- if (!_this7.ms) return;
917
- _this7.ms.getInStoreMemberCount().then(function (res) {
930
+ if (!_this6.ms) return;
931
+ _this6.ms.getInStoreMemberCount().then(function (res) {
918
932
  var _ref10 = res || {},
919
933
  _ref10$data = _ref10.data;
920
934
 
921
935
  _ref10$data = _ref10$data === undefined ? {} : _ref10$data;
922
936
  var shopPerson = _ref10$data.data;
923
937
 
924
- _this7.setState({ shopPerson: shopPerson });
925
- _this7.resetInShopMemberTimer(shopPerson);
938
+ _this6.setState({ shopPerson: shopPerson });
939
+ _this6.resetInShopMemberTimer(shopPerson);
926
940
  });
927
941
  };
928
942
 
929
943
  this.onKeyPressed = function (e) {
930
944
  var keyCode = e && e.keyCode;
931
945
  if (keyCode === 13) {
932
- if (_this7.isMemberInputType) {
933
- var stime = _this7.keypressStime;
946
+ if (_this6.isMemberInputType) {
947
+ var stime = _this6.keypressStime;
934
948
  var etime = Date.parse(new Date());
935
949
  if (etime - stime > 300) {
936
- _this7.handleSearch('');
937
- _this7.keypressStime = null;
950
+ _this6.handleSearch('');
951
+ _this6.keypressStime = null;
938
952
  return _tplusComponentsTouch.Message.warn('未启用键盘录入功能');
939
953
  }
940
- _this7.keypressStime = null;
954
+ _this6.keypressStime = null;
941
955
  }
942
- _this7.iseyboardKEnter = Date.parse(new Date()) - _this7.keypressStime > 300;
943
- if (_this7.isStorageCardInputType) {
944
- _this7.keypressStime = null;
956
+ _this6.iseyboardKEnter = Date.parse(new Date()) - _this6.keypressStime > 300;
957
+ if (_this6.isStorageCardInputType) {
958
+ _this6.keypressStime = null;
945
959
  }
946
- if (_this7.searchLoading) return;
947
- _this7.searchMember(undefined, 'ok');
948
- } else if (_this7.isMemberInputType && !_this7.keypressStime && !(keyCode == 8)) {
949
- _this7.keypressStime = Date.parse(new Date());
950
- } else if (_this7.isStorageCardInputType && !_this7.keypressStime && !(keyCode == 8) && !_this7.isMemberInputType) {
951
- _this7.keypressStime = Date.parse(new Date());
960
+ if (_this6.searchLoading) return;
961
+ _this6.searchMember(undefined, 'ok');
962
+ } else if (_this6.isMemberInputType && !_this6.keypressStime && !(keyCode == 8)) {
963
+ _this6.keypressStime = Date.parse(new Date());
964
+ } else if (_this6.isStorageCardInputType && !_this6.keypressStime && !(keyCode == 8) && !_this6.isMemberInputType) {
965
+ _this6.keypressStime = Date.parse(new Date());
952
966
  }
953
967
  };
954
968
 
@@ -976,35 +990,35 @@ var MemberTag = (0, _mobxReact.observer)(_class = (_temp = _class2 = function (_
976
990
 
977
991
  this.loadFaceRecognition = function (type) {
978
992
  // type = 1:到店会员 type = 2:POS机人脸识别
979
- _this7.setState({ faceLoading: type === 2, inShopLoading: type === 1 });
980
- _this7.ms.loadInStoreMember(String(type)).then(function (res) {
981
- _this7.setState({ faceLoading: false, inShopLoading: false });
993
+ _this6.setState({ faceLoading: type === 2, inShopLoading: type === 1 });
994
+ _this6.ms.loadInStoreMember(String(type)).then(function (res) {
995
+ _this6.setState({ faceLoading: false, inShopLoading: false });
982
996
 
983
997
  var _ref12 = res || {},
984
998
  Data = _ref12.Data;
985
999
 
986
1000
  if (!JSON.parse(Data).length) {
987
1001
  var tipMessage = ['当前没有到店会员', '未识别到人脸信息'];
988
- type === 1 && _this7.setState({ shopPerson: 0 });
1002
+ type === 1 && _this6.setState({ shopPerson: 0 });
989
1003
  return _tplusComponentsTouch.Message.info(tipMessage[type - 1]);
990
1004
  }
991
- type === 1 && _this7.getInStoreMemberCount();
992
- _this7.openShowModal(type, res);
1005
+ type === 1 && _this6.getInStoreMemberCount();
1006
+ _this6.openShowModal(type, res);
993
1007
  }).catch(function (err) {
994
- _this7.setState({ faceLoading: false, inShopLoading: false });
1008
+ _this6.setState({ faceLoading: false, inShopLoading: false });
995
1009
  console.log(err);
996
1010
  });
997
1011
  };
998
1012
 
999
1013
  this.changeScanProduct = function () {
1000
- if (_this7.scanObj) _this7.scanObj.startScan();
1014
+ if (_this6.scanObj) _this6.scanObj.startScan();
1001
1015
  };
1002
1016
 
1003
1017
  this.onScanResult = function (res) {
1004
- _this7.setState({
1018
+ _this6.setState({
1005
1019
  searchValue: res
1006
1020
  }, function () {
1007
- _this7.onKeyPressed({ keyCode: 13 });
1021
+ _this6.onKeyPressed({ keyCode: 13 });
1008
1022
  });
1009
1023
  };
1010
1024
 
@@ -1 +1 @@
1
- {"version":3,"sources":["tplus-member/member/index.js"],"names":["hasElectron","env","platform","constant","electron","emptyMemberImage","memberBirthday","currentMember","MemberTag","observer","props","stores","user","options","get","isMemberInputType","MemberMeStorageCardInputByKeyBoard","OpenFaceRecognition","ICCardServer","ICCardPassword","parseInt","isStorageCardInputType","openFaceRecognition","iCCardServer","iCCardPassword","ms","memberStore","isHorizontalPad","isHorizontalSunMi","isMobileEnvironment","handleReadICard","bind","keypressStime","iseyboardKEnter","isNewRetailBCPos","state","isCC","isShowBirthdayTip","context","viewModel","data","Member","dtMember","selectMemberInfo","isClear","memberChangeData","length","undefined","memberChange","setState","newAvatar","deepCloneMember","JSON","parse","ID","clearSeletMember","seletMember","selectMemberStore","clearMemberCare","connectRfCard","window","removeEventListener","windowOnresize","closeRfCard","nextProps","isSendMessage","getInStoreMemberCount","nativeMs","setIpcRendererMethod","result","ret","status","connectCardStatus","connectCardError","value","Message","error","params","cardPsw","cardSec","cardKm","searchMember","memberPhoto","titleModal","memberShow","inShopLoading","faceLoading","shopPerson","searchValue","viewMemberInfo","searchVisible","columnInfo","isMemberCare","isMemberCareModal","mode","authProcess","selectMemberSuccess","precisionInfo","items","viewVoucher","find","v","type","isTakeTheir","getIsTakeTheir","isSelectedMember","enumController","getEnumOj","Differentiate","memberCareInfo","inputSearch","el","input","e","handleSearch","target","handleFocus","handleBlur","onKeyPressed","changeScanProduct","loadFaceRecognition","scanObj","scan","onScanResult","openPhotoModal","ImageFile","handlePhotoModal","isTicket","daysToBirthday","handleMemberCareModal","setIsShowBirthdayTip","openShowModal","Name","CardCode","BalanceStorage","computedCoupon","COUPON","BalanceIntegral","openCloseModal","handleShowModal","handleMemberCareModalCancel","MemberType","memberCareDTO","memberRightRuleList","integralMultiple","integralGive","couponIdMapList","map","index","count","name","birthdayShow","handleCloseBirthdayModal","Component","propTypes","PropTypes","func","memberSearched","contextTypes","onEvent","object","defaultProps","controllerEvent","methodName","methodArgs","Action","fromJS","resetInShopMemberTimer","timer","clearTimeout","time","setTimeout","warn","res","title","jsMember","updateMember","setMemberFocus","uiState","IsIntegralExchange","store","tip","info","ModalWraper","confirm","className","content","onOk","changeBirthdayShow","val","_this","cb","Keyboard","open2","getNewValue","keyboardClose","localStore","blur","close2","readRfCard","offlineSys","shouldInOffline","searchLoading","trim","getMemberBirthday","getMeStorageCard","getSearchMember","currentPage","pageSize","key","isSingleMember","then","ColumnInfo","Data","IsStorage","drawerStore","init","onHide","listArr","changeMemberCare","catch","keyCode","stime","etime","Date","member","MemberCouponCount","couponKey","DynamicPropertyKeys","DynamicPropertyValues","couponIndex","findIndex","loadInStoreMember","String","tipMessage","console","log","err","startScan","getMemberBirthdayInfo"],"mappings":"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","file":"index.js","sourcesContent":["/**\r\n * @memberChange member 状态发生变化时的回调\r\n * @memberSearched 录入框会员状态发生变化时的回调 memberSearched(value, type) // type: searched 触发搜索 | err 搜索接口错误 | close 关闭会员\r\n *\r\n */\r\nimport React, { Component, Fragment } from 'react';\r\nimport { Button, Input } from 'antd';\r\nimport { observer } from 'mobx-react';\r\nimport { toJS } from 'mobx';\r\nimport PropTypes from 'prop-types'\r\nimport { Ticon, Message, ModalWraper, Spin, Keyboard,Scan } from 'tplus-components-touch';\r\nimport { env, nativeMs, localStore , stores} from 'mutants-microfx';\r\nimport { Action } from 'mutants-appfx'\r\nimport { platform, enumController } from 'mutants-util';\r\nimport MemberModal from './MemberShow';\r\nimport MemberPhoto from './MemberPhoto';\r\nimport memberStore from './api';\r\nimport { formatPrecision, userInfoFormat, errMessageTip } from '../utils';\r\nimport './index.less';\r\n\r\n\r\n\r\nconst hasElectron = (env.platform === env.constant.platform.electron);\r\n//定义默认头像值。\r\nconst emptyMemberImage = 'https://newretail.static.chanjet.com/default_avatar.png';\r\nconst memberBirthday = 'https://newretail.static.chanjet.com/pictures/member_birthday.png';\r\nlet currentMember;\r\n\r\n@observer\r\nclass MemberTag extends Component {\r\n\r\n state = {\r\n searchValue: '',\r\n titleModal: '',\r\n memberShow: false,\r\n memberPhoto: false,\r\n searchVisible: false,\r\n shopPerson: 0,\r\n status: 2, // 0会员详情、1到店会员、2人脸识别\r\n dtMember: {}, // 会员信息\r\n connectCardStatus: false, //连接IC卡状态\r\n connectCardError: '', //连接IC卡错误后记录错误信息\r\n isMemberCare: false,\r\n isMemberCareModal: false\r\n };\r\n\r\n static propTypes = {\r\n memberChange: PropTypes.func,\r\n memberSearched: PropTypes.func,\r\n }\r\n\r\n static contextTypes = {\r\n onEvent:PropTypes.func,\r\n viewModel: PropTypes.object,\r\n }\r\n\r\n static defaultProps = {\r\n memberChange: () => { },\r\n }\r\n\r\n constructor(props) {\r\n super(props);\r\n this.hasElectron = hasElectron;\r\n const { isMemberInputType, MemberMeStorageCardInputByKeyBoard, OpenFaceRecognition, ICCardServer, ICCardPassword } = stores.user.options.get('loginInfo') || {};\r\n this.isMemberInputType = parseInt(isMemberInputType); // '0'为不禁用 '1'为禁用\r\n this.isStorageCardInputType = MemberMeStorageCardInputByKeyBoard; // 仅储值卡是否禁用键盘输入,'0'为不禁用 '1'为禁用\r\n this.openFaceRecognition = parseInt(OpenFaceRecognition); // 启用人脸识别:0禁用 1为启用\r\n this.iCCardServer = parseInt(ICCardServer); // 启用IC卡:0为禁用 1为启用\r\n this.iCCardPassword = ICCardPassword; //IC卡密码\r\n this.ms = memberStore;\r\n //移动端环境下,没有读取IC卡的方式。\r\n const { isHorizontalPad, isHorizontalSunMi } = platform || {};\r\n this.isHorizontalPad = !!isHorizontalPad;\r\n this.isHorizontalSunMi = !!isHorizontalSunMi;\r\n this.isMobileEnvironment = !!isHorizontalPad || !!isHorizontalSunMi;\r\n this.handleReadICard = this.handleReadICard.bind(this);\r\n\r\n //记录键盘录入信息的开始时间\r\n this.keypressStime = null;\r\n this.iseyboardKEnter = false; //是否为键盘输入\r\n let { isNewRetailBCPos } = platform || {};\r\n this.state = {\r\n isCC: !!isNewRetailBCPos,\r\n isShowBirthdayTip: false,\r\n };\r\n }\r\n\r\n componentWillReact() {\r\n const { data: { Member: dtMember = {} } = {} } = this.context.viewModel || {};\r\n const { selectMemberInfo = {}, isClear = false } = this.ms;\r\n const memberChangeData = Object.keys(selectMemberInfo).length ? selectMemberInfo : undefined;\r\n\r\n const memberChange = (data) => {\r\n this.setState({newAvatar: ''});\r\n this.props.memberChange(data);\r\n }\r\n if (typeof memberChangeData === 'object') {\r\n const deepCloneMember = JSON.parse(JSON.stringify(memberChangeData));\r\n if (!currentMember) {\r\n currentMember = deepCloneMember;\r\n memberChange(memberChangeData);\r\n } else if (currentMember.ID !== memberChangeData.ID) {\r\n memberChange(memberChangeData);\r\n currentMember = deepCloneMember;\r\n } else if (!dtMember.ID && (currentMember || {}).ID) { // DataModel 中清掉member,手动同步 member\r\n currentMember = undefined;\r\n this.ms.clearSeletMember();\r\n }\r\n } else if (currentMember && !memberChangeData) {\r\n memberChange(memberChangeData);\r\n currentMember = undefined;\r\n } else if (dtMember.ID && !(currentMember || {}).ID) { // DataModel 中存在member,手动同步 member\r\n const deepCloneMember = JSON.parse(JSON.stringify(dtMember));\r\n currentMember = deepCloneMember;\r\n this.ms.seletMember(dtMember);\r\n }\r\n }\r\n\r\n componentDidMount() {\r\n stores.selectMemberStore && stores.selectMemberStore.clearMemberCare()\r\n this.connectRfCard();\r\n }\r\n\r\n componentWillUnmount() {\r\n window.removeEventListener('resize', this.windowOnresize);\r\n this.closeRfCard();\r\n }\r\n\r\n componentWillReceiveProps(nextProps) {\r\n //接受socket传递过来的信息\r\n let { isSendMessage } = nextProps;\r\n if (isSendMessage === true) this.getInStoreMemberCount()\r\n }\r\n\r\n controllerEvent = (methodName, methodArgs) => {\r\n this.context.onEvent({ 'controllerEvent': Action.fromJS(this.context.viewModel, methodName) }, 'controllerEvent', methodArgs);\r\n }\r\n\r\n resetInShopMemberTimer = (count) => {\r\n this.timer && clearTimeout(this.timer);\r\n if (!count) return;\r\n const time = 5 * 60 * 1000;\r\n this.timer = setTimeout(() => {\r\n this.getInStoreMemberCount();\r\n }, time);\r\n }\r\n //IC卡连接\r\n connectRfCard() {\r\n //客户端环境下,并开启了启用IC卡。\r\n if (this.hasElectron === true && this.iCCardServer === 1) {\r\n nativeMs.setIpcRendererMethod('ConnectRfCard', null, ret => {\r\n let result = {}\r\n if (ret.status === 0) {\r\n result = { connectCardStatus: false, connectCardError: ret.value }\r\n } else {\r\n result = { connectCardStatus: true, connectCardError: '' };\r\n }\r\n this.setState(result)\r\n })\r\n }\r\n }\r\n\r\n //IC卡读取\r\n readRfCard() {\r\n //客户端环境下,并开启了启用IC卡。\r\n if (this.hasElectron === true && this.iCCardServer === 1) {\r\n const { connectCardStatus, connectCardError } = this.state;\r\n if (connectCardStatus === false) {\r\n Message.error(connectCardError ? connectCardError : '读取IC卡失败');\r\n this.connectRfCard(); //读取失败后,重新连接一下。\r\n return;\r\n }\r\n let params = { cardPsw: this.iCCardPassword, cardSec: 13, cardKm: 0 }\r\n nativeMs.setIpcRendererMethod('ReadRfCard', { ...params }, ret => {\r\n if (ret.status === 0) {\r\n Message.error(ret.value);\r\n this.connectRfCard(); //读取失败后,重新连接一下。\r\n return;\r\n } else if (ret.status === 1) {\r\n this.searchMember(ret.value);\r\n }\r\n })\r\n }\r\n }\r\n\r\n //IC卡关闭\r\n closeRfCard(){\r\n if (this.hasElectron === true && this.iCCardServer === 1) {\r\n nativeMs.setIpcRendererMethod('CloseRfCard')\r\n }\r\n }\r\n\r\n openPhotoModal = () => {\r\n let { isNewRetailBCPos } = platform || {};\r\n if (!isNewRetailBCPos) {\r\n if (!this.openFaceRecognition) {\r\n Message.warn('未启用人脸识别,需要先开启人脸识别功能');\r\n return;\r\n }\r\n this.setState({\r\n memberPhoto: true,\r\n titleModal: '选择头像'\r\n })\r\n }\r\n }\r\n\r\n openShowModal = (status, res) => {\r\n let title = '';\r\n const { data: { Member = {} } = {} } = this.context.viewModel || {};\r\n const {newAvatar} = this.state;\r\n const jsMember = toJS(Member);\r\n const updateMember = newAvatar ? {...jsMember, ImageFile: newAvatar} : jsMember;\r\n switch (status) {\r\n case 0:\r\n title = '会员详情';\r\n this.setState({ viewMemberInfo: updateMember })\r\n break;\r\n case 1:\r\n title = '到店会员';\r\n this.setState({ viewMemberInfo: res })\r\n break;\r\n case 2:\r\n title = '人脸识别';\r\n this.setState({ viewMemberInfo: res })\r\n break;\r\n }\r\n this.setState({\r\n status: status,\r\n memberShow: true,\r\n titleModal: title\r\n })\r\n }\r\n\r\n openCloseModal = () => {\r\n const { setMemberFocus } = this.props;\r\n const memberStore = this.context.viewModel && this.context.viewModel.items.find(el => el.name == 'MemberStore');\r\n const uiState = memberStore.uiState;\r\n const IsIntegralExchange = memberStore.store && memberStore.store.data && memberStore.store.data.IsIntegralExchange\r\n if (!!uiState.tip) {\r\n Message.info(uiState.tip)\r\n return;\r\n }\r\n ModalWraper.confirm({\r\n className: 'tplus-confirm-modal',\r\n title: '关闭会员',\r\n content: `${IsIntegralExchange ? \"关闭会员将会清空商品信息!\" : \"确定要关闭该会员吗?\"}`,\r\n onOk: () => {\r\n this.ms.clearSeletMember();\r\n stores.selectMemberStore.clearMemberCare();\r\n typeof setMemberFocus == 'function' && setMemberFocus();\r\n }\r\n })\r\n }\r\n\r\n //关闭生日提醒\r\n handleCloseBirthdayModal = () => {\r\n this.ms.changeBirthdayShow(false);\r\n }\r\n\r\n //会员关怀-送礼\r\n handleMemberCareModal = () => {\r\n this.setState({ isMemberCareModal: true })\r\n }\r\n handleMemberCareModalCancel = () => {\r\n this.setState({ isMemberCareModal: false })\r\n }\r\n\r\n handleSearch = (val) => {\r\n this.setState({ searchValue: val })\r\n }\r\n\r\n handleFocus = (el) => {\r\n if (this.isMemberInputType) return;\r\n const _this = this;\r\n function cb() {\r\n _this.searchMember(undefined, 'ok');\r\n }\r\n Keyboard.open2((v) => {\r\n const value = Keyboard.getNewValue(this.inputSearch, this.inputSearch.value, v);\r\n this.handleSearch(value);\r\n }, cb, this.keyboardClose , 'ByMember', localStore.get('ByMember'))\r\n }\r\n\r\n keyboardClose = () => {\r\n this.inputSearch.blur();\r\n }\r\n handleBlur = () => {\r\n Keyboard.close2();\r\n }\r\n\r\n handleReadICard = () => {\r\n this.readRfCard();\r\n }\r\n\r\n handleShowModal = (type, params) => {\r\n if (params) {\r\n this.setState({ dtMember: params, memberShow: type })\r\n } else {\r\n this.setState({ memberShow: type })\r\n }\r\n }\r\n\r\n handlePhotoModal = (type, newAvatar) => {\r\n if (newAvatar) {\r\n this.setState({\r\n newAvatar,\r\n memberPhoto: type\r\n })\r\n } else {\r\n this.setState({ memberPhoto: type })\r\n }\r\n } \r\n\r\n searchMember = (val, type) => {\r\n if(!stores.offlineSys.shouldInOffline()) return;\r\n if (!this.ms || this.searchLoading) return;\r\n const {searchValue} = this.state;\r\n val = val || (searchValue || '').trim();\r\n if (!val) return;\r\n const { memberSearched, selectMemberSuccess,setMemberFocus,getMemberBirthday, getMeStorageCard } = this.props;\r\n this.searchLoading = true;\r\n this.setState({searchVisible: true});\r\n this.ms.getSearchMember({\r\n currentPage: 1,\r\n pageSize: 10,\r\n key: val,\r\n isSingleMember: false\r\n }).then(ret => {\r\n this.searchLoading = false;\r\n const {ColumnInfo: columnInfo, Data} = ret || {};\r\n const data = JSON.parse(Data) || [];\r\n const info = data[0];\r\n this.setState({searchVisible: false, columnInfo});\r\n if (info && info.MemberType.IsStorage && this.isStorageCardInputType && this.iseyboardKEnter){\r\n getMeStorageCard && getMeStorageCard(true);\r\n this.handleSearch('');\r\n this.keypressStime = null;\r\n } else {\r\n getMeStorageCard && getMeStorageCard(false);\r\n }\r\n memberSearched && memberSearched(info, 'searched');\r\n if (info) {\r\n if (data.length > 1) {\r\n stores.drawerStore.init({\r\n title: '会员管理',\r\n key: 'member',\r\n onHide:()=>{\r\n },\r\n listArr: data,\r\n });\r\n this.setState({\r\n searchValue: null\r\n })\r\n } else {\r\n memberSearched && memberSearched(info, 'searched');\r\n userInfoFormat(info);\r\n if (errMessageTip(info)) return;\r\n this.ms.seletMember(info, true);\r\n setTimeout(() => this.setState({ searchValue: '' }), 0);\r\n this.handleBlur();\r\n selectMemberSuccess && selectMemberSuccess();\r\n getMemberBirthday && getMemberBirthday(info.ID, (result) => {\r\n stores.selectMemberStore.changeMemberCare(result);\r\n });\r\n }\r\n } else {\r\n if (type === 'ok'){\r\n Message.warn('会员不存在');\r\n if (this.isMobileEnvironment) {\r\n setTimeout(() => this.setState({ searchValue: '' }), 0);\r\n }\r\n typeof setMemberFocus == 'function' && setMemberFocus();\r\n }\r\n }\r\n }).catch(err => {\r\n this.setState({searchVisible: false});\r\n this.searchLoading = false;\r\n memberSearched && memberSearched(undefined, 'err');\r\n })\r\n }\r\n\r\n //获取当前到店会员数量\r\n getInStoreMemberCount = () => {\r\n if (!this.ms) return;\r\n this.ms.getInStoreMemberCount().then(res => {\r\n const {data: {data: shopPerson} = {}} = res || {};\r\n this.setState({shopPerson});\r\n this.resetInShopMemberTimer(shopPerson);\r\n });\r\n }\r\n\r\n onKeyPressed = (e) => {\r\n const keyCode = e && e.keyCode\r\n if (keyCode === 13) {\r\n if (this.isMemberInputType) {\r\n let stime = this.keypressStime;\r\n let etime = Date.parse(new Date());\r\n if (etime - stime > 300) {\r\n this.handleSearch('')\r\n this.keypressStime = null;\r\n return Message.warn('未启用键盘录入功能');\r\n }\r\n this.keypressStime = null;\r\n }\r\n this.iseyboardKEnter = Date.parse(new Date()) - this.keypressStime > 300;\r\n if (this.isStorageCardInputType) {\r\n this.keypressStime = null;\r\n }\r\n if (this.searchLoading) return;\r\n this.searchMember(undefined, 'ok');\r\n }\r\n else if (this.isMemberInputType && !this.keypressStime && !(keyCode == 8)) {\r\n this.keypressStime = Date.parse(new Date())\r\n } else if (this.isStorageCardInputType && !this.keypressStime && !(keyCode == 8) && !this.isMemberInputType) {\r\n this.keypressStime = Date.parse(new Date())\r\n }\r\n }\r\n\r\n computedCoupon = (member = {}) => {\r\n let { isNewRetailBCPos } = platform || {};\r\n if (!!isNewRetailBCPos) {\r\n return member.MemberCouponCount? member.MemberCouponCount : '0';\r\n } else {\r\n const couponKey = 'membercouponcount';\r\n const {DynamicPropertyKeys = [], DynamicPropertyValues = []} = member;\r\n const couponIndex = DynamicPropertyKeys.findIndex(v => v === couponKey);\r\n return ~couponIndex ? DynamicPropertyValues[couponIndex] : '0';\r\n }\r\n }\r\n\r\n loadFaceRecognition = (type) => {\r\n // type = 1:到店会员 type = 2:POS机人脸识别\r\n this.setState({faceLoading: type === 2, inShopLoading: type === 1});\r\n this.ms.loadInStoreMember(String(type))\r\n .then(res => {\r\n this.setState({faceLoading: false, inShopLoading: false});\r\n const {Data} = res || {};\r\n if (!JSON.parse(Data).length) {\r\n const tipMessage = ['当前没有到店会员', '未识别到人脸信息'];\r\n type === 1 && this.setState({shopPerson: 0});\r\n return Message.info(tipMessage[type - 1]);\r\n }\r\n type === 1 && this.getInStoreMemberCount();\r\n this.openShowModal(type, res);\r\n })\r\n .catch(err => {\r\n this.setState({faceLoading: false, inShopLoading: false});\r\n console.log(err)\r\n });\r\n }\r\n\r\n //移动端:扫描商品\r\n changeScanProduct = () => {\r\n if (this.scanObj) this.scanObj.startScan()\r\n }\r\n onScanResult = (res) => {\r\n this.setState({\r\n searchValue: res\r\n }, () => {\r\n this.onKeyPressed({ keyCode: 13 })\r\n })\r\n }\r\n\r\n setIsShowBirthdayTip = () => {\r\n stores.selectMemberStore.clearMemberCare()\r\n }\r\n\r\n getMemberBirthdayInfo = (result) => {\r\n stores.selectMemberStore.changeMemberCare(result);\r\n }\r\n\r\n render() {\r\n const {\r\n memberPhoto, titleModal, memberShow, inShopLoading = false, faceLoading = false,\r\n status, shopPerson, searchValue, viewMemberInfo, newAvatar, searchVisible = false, columnInfo, isCC,\r\n isMemberCare, isMemberCareModal, isShowBirthdayTip\r\n } = this.state;\r\n const { mode = 'formal', authProcess, selectMemberSuccess } = this.props;\r\n const { selectMemberInfo, precisionInfo = {} } = this.ms; //selectMemberInfo 用作触发mobox render\r\n const { data: { Member: dtMember = {} } = {}, items = [] } = this.context.viewModel || {};\r\n const viewVoucher = items.find(v => v.type === 'Voucher') || {};\r\n const isTakeTheir = viewVoucher.getIsTakeTheir && viewVoucher.getIsTakeTheir();\r\n const isSelectedMember = !!dtMember.ID;\r\n const { Differentiate } = enumController.getEnumOj();\r\n const { memberCareInfo } = stores.selectMemberStore;\r\n let { isNewRetailBCPos } = platform || {};\r\n\r\n\r\n return (\r\n <div className='MemberContainer'>\r\n <div className='left'>\r\n {!isSelectedMember &&\r\n <div className='search'>\r\n <div className='b1'>\r\n <Input\r\n type='text'\r\n className=\"input\"\r\n id='memberPoint'\r\n placeholder='扫描/输入会员号'\r\n value={searchValue}\r\n ref={el => this.inputSearch = el && el.input}\r\n onChange={(e) => this.handleSearch(e.target.value)}\r\n onFocus={this.handleFocus}\r\n onBlur={this.handleBlur}\r\n onKeyDown={this.onKeyPressed}\r\n />\r\n <Spin\r\n className='search-spin'\r\n scale={0.8}\r\n type='circle-side'\r\n visible={searchVisible}\r\n />\r\n </div>\r\n <div className='b2'>\r\n {\r\n this.hasElectron === true && this.iCCardServer === 1 &&\r\n <Ticon className='icon' onClick={this.handleReadICard} type=\"ICka\" />\r\n }\r\n {\r\n this.isHorizontalPad ?\r\n <Ticon type='saomiao1' className='icon' onClick={this.changeScanProduct} />\r\n :\r\n (\r\n false && this.openFaceRecognition === 1 && !faceLoading &&\r\n <div className='openFaceRecognition-box'>\r\n <Ticon className='icon' onClick={() => this.loadFaceRecognition(2)} type=\"renlianshibie\" />\r\n <Spin\r\n className='face-spin'\r\n scale={0.8}\r\n type='circle'\r\n visible={faceLoading}\r\n />\r\n </div>\r\n )\r\n }\r\n {\r\n /* 扫描组件 */\r\n this.isHorizontalPad &&\r\n <Scan ref={scan => this.scanObj = scan} onChange={this.onScanResult} />\r\n }\r\n </div>\r\n </div>\r\n }\r\n {isSelectedMember &&\r\n <div className={`info ${this.openFaceRecognition ? '' : 'member-btn-hidden-flex'}`}>\r\n <div className='first'>\r\n <img onClick={this.openPhotoModal} src={newAvatar || dtMember.ImageFile || emptyMemberImage} />\r\n {memberPhoto && <MemberPhoto dtMember={dtMember} showModal={memberPhoto} titleModal={titleModal} handleModal={this.handlePhotoModal} />}\r\n {\r\n memberCareInfo && memberCareInfo.isTicket && <Ticon type=\"shengri\" className='shengriIcon'></Ticon>\r\n }\r\n {\r\n memberCareInfo && memberCareInfo.isTicket && <div className='birthdayContent'>\r\n <div className='birthdayWarn'>{memberCareInfo.daysToBirthday === 0 ? '今天生日' : memberCareInfo.daysToBirthday + '天后生日'}</div>\r\n <Button colors=\"warn\" onClick={this.handleMemberCareModal} className='check bg-theme'>查看</Button>\r\n <Ticon type=\"cuowuda\" className='cuowudaIcon'></Ticon>\r\n </div>\r\n }\r\n {\r\n memberCareInfo && memberCareInfo.isTicket && <Ticon type=\"cuowuda\" onClick={() => { this.setIsShowBirthdayTip()}} className='cuowudaIcon'></Ticon>\r\n }\r\n </div>\r\n <div className='second member-hotkey-info' onClick={() => this.openShowModal(0)}>\r\n <div className='one'>\r\n {dtMember.Name && <div className='a'>{dtMember.Name}</div>}\r\n <div className='b'>{dtMember.CardCode}</div>\r\n </div>\r\n <div className='two'>\r\n <div className='a'>{formatPrecision(dtMember.BalanceStorage, precisionInfo.BalanceStorage)}</div>\r\n <div className='b'>余额</div>\r\n </div>\r\n <div className='two'>\r\n <div className='a'>{this.computedCoupon(dtMember)}</div>\r\n <div className='b'>{Differentiate.COUPON}</div>\r\n </div>\r\n <div className='two'>\r\n <div className='a'>{formatPrecision(dtMember.BalanceIntegral, precisionInfo.BalanceIntegral) || 0}</div>\r\n <div className='b'>积分</div>\r\n </div>\r\n </div>\r\n <div className='close'>\r\n {!isTakeTheir && <Ticon type=\"guanbi-yuan\" onClick={this.openCloseModal} />}\r\n </div>\r\n </div>\r\n }\r\n </div>\r\n {/* {\r\n memberCareInfo && memberCareInfo.isTicket ? <div className='float'>\r\n <div className='txt'>{memberCareInfo.daysToBirthday === 0 ? '今天生日' : memberCareInfo.daysToBirthday + '天后生日'}</div>\r\n <div className='btn' onClick={this.handleMemberCareModal}>查看</div>\r\n <div className='cancel'>\r\n <Ticon type='guanbixiao' onClick={() => {\r\n this.setIsShowBirthdayTip()\r\n }}/>\r\n </div>\r\n </div> : null\r\n } */}\r\n {!!this.openFaceRecognition && <div className='right'>\r\n <Button type=\"primary\" onClick={() => this.loadFaceRecognition(1)} className='btn' disabled={inShopLoading}>\r\n {!inShopLoading && '到店会员'}\r\n <Spin\r\n className='inshop-member-spin'\r\n scale={0.8}\r\n type='circle'\r\n visible={inShopLoading}\r\n />\r\n {!!shopPerson && <div className='badge'>{shopPerson}</div>}\r\n </Button>\r\n </div>}\r\n <MemberModal\r\n mode={mode}\r\n authProcess={authProcess}\r\n viewMemberInfo={viewMemberInfo}\r\n columnInfo={columnInfo}\r\n status={status}\r\n showModal={memberShow}\r\n titleModal={titleModal}\r\n selectMemberSuccess={selectMemberSuccess}\r\n handleModal={this.handleShowModal}\r\n />\r\n <ModalWraper\r\n show={isMemberCareModal}\r\n className='member-care-modal'\r\n width='688'\r\n centered={true}\r\n memberClass='memberCareWidth'\r\n cancel={this.handleMemberCareModalCancel}\r\n >\r\n <div className='first'>会员生日关怀</div>\r\n <div className='second'>\r\n <div className='secondContent'>\r\n <Ticon type='dengpao'/>\r\n <span>口头关怀客户,提示引导客户去线上商城领取权益。</span>\r\n </div>\r\n </div>\r\n <div className='third'>\r\n <div className='one'>\r\n <img src={emptyMemberImage} />\r\n <Ticon type='shengri' />\r\n </div>\r\n <div className='two'>\r\n {\r\n memberCareInfo && memberCareInfo.daysToBirthday === 0 ? <span>\r\n 今天是{dtMember.Name}的生日,该会员是{dtMember.MemberType.Name},可享受以下权益\r\n </span> : <span>\r\n {dtMember.Name}会员还有{memberCareInfo && memberCareInfo.daysToBirthday}天生日,该会员是{dtMember.MemberType.Name},可享受以下权益\r\n </span>\r\n }\r\n </div>\r\n </div>\r\n {\r\n memberCareInfo && <div className='fourth'>\r\n {memberCareInfo && memberCareInfo.memberCareDTO && memberCareInfo.memberCareDTO.memberRightRuleList && memberCareInfo.memberCareDTO.memberRightRuleList[0].integralMultiple && <div className='item'>1.{ memberCareInfo.memberCareDTO.memberRightRuleList[0].integralMultiple}</div>}\r\n {memberCareInfo && memberCareInfo.memberCareDTO && memberCareInfo.memberCareDTO.memberRightRuleList && memberCareInfo.memberCareDTO.memberRightRuleList[0].integralGive && <div className='item'>2.{ memberCareInfo.memberCareDTO.memberRightRuleList[0].integralGive}</div>}\r\n {\r\n memberCareInfo && memberCareInfo.memberCareDTO && memberCareInfo.memberCareDTO.memberRightRuleList && memberCareInfo.memberCareDTO.memberRightRuleList[0].couponIdMapList.map((value, index) => {\r\n let count = 0;\r\n if (memberCareInfo.memberCareDTO.memberRightRuleList[0].integralMultiple) {\r\n count += 1;\r\n }\r\n if (memberCareInfo.memberCareDTO.memberRightRuleList[0].integralGive) {\r\n count += 1;\r\n }\r\n return (<div className='item'>{count + 1 + index}.{value.name}</div>)\r\n })\r\n }\r\n </div>\r\n }\r\n </ModalWraper>\r\n {\r\n !isNewRetailBCPos && <ModalWraper show={this.ms.birthdayShow} centered={true} className='member-birthday'>\r\n <div className='picture'>\r\n <img width='350' height='308' src={memberBirthday} />\r\n <Ticon type=\"guanbi-yuan\" onClick={this.handleCloseBirthdayModal} />\r\n </div>\r\n <div className='remark'>今天是会员<span>{dtMember.Name || dtMember.CardCode}</span>的生日</div>\r\n </ModalWraper>\r\n }\r\n </div>\r\n );\r\n }\r\n}\r\nexport default MemberTag\r\n"]}
1
+ {"version":3,"sources":["tplus-member/member/index.js"],"names":["hasElectron","env","platform","constant","electron","emptyMemberImage","memberBirthday","currentMember","MemberTag","observer","props","stores","user","options","get","isMemberInputType","MemberMeStorageCardInputByKeyBoard","OpenFaceRecognition","ICCardServer","ICCardPassword","parseInt","isStorageCardInputType","openFaceRecognition","iCCardServer","iCCardPassword","ms","memberStore","isHorizontalPad","isHorizontalSunMi","isMobileEnvironment","handleReadICard","bind","keypressStime","iseyboardKEnter","isNewRetailBCPos","state","isCC","isShowBirthdayTip","isVoucherMode","localStore","context","viewModel","data","Member","dtMember","selectMemberInfo","isClear","memberChangeData","length","undefined","memberChange","setState","newAvatar","deepCloneMember","JSON","parse","ID","clearSeletMember","seletMember","selectMemberStore","clearMemberCare","connectRfCard","window","removeEventListener","windowOnresize","closeRfCard","nextProps","isSendMessage","getInStoreMemberCount","nativeMs","setIpcRendererMethod","result","ret","status","connectCardStatus","connectCardError","value","Message","error","params","cardPsw","cardSec","cardKm","searchMember","memberPhoto","titleModal","memberShow","inShopLoading","faceLoading","shopPerson","searchValue","viewMemberInfo","searchVisible","columnInfo","isMemberCare","isMemberCareModal","mode","authProcess","selectMemberSuccess","precisionInfo","items","viewVoucher","find","v","type","isTakeTheir","getIsTakeTheir","isSelectedMember","enumController","getEnumOj","Differentiate","memberCareInfo","inputSearch","el","input","e","handleSearch","target","handleFocus","handleBlur","onKeyPressed","changeScanProduct","loadFaceRecognition","scanObj","scan","onScanResult","openPhotoModal","ImageFile","handlePhotoModal","isTicket","daysToBirthday","handleMemberCareModal","setIsShowBirthdayTip","openShowModal","Name","CardCode","BalanceStorage","computedCoupon","COUPON","BalanceIntegral","openCloseModal","handleShowModal","handleMemberCareModalCancel","MemberType","memberCareDTO","memberRightRuleList","integralMultiple","integralGive","couponIdMapList","map","index","count","name","birthdayShow","handleCloseBirthdayModal","Component","propTypes","PropTypes","func","memberSearched","contextTypes","onEvent","object","defaultProps","controllerEvent","methodName","methodArgs","Action","fromJS","resetInShopMemberTimer","timer","clearTimeout","time","setTimeout","warn","res","title","jsMember","updateMember","setMemberFocus","uiState","IsIntegralExchange","store","tip","info","ModalWraper","confirm","className","content","onOk","changeBirthdayShow","val","Keyboard","open","getNewValue","keyboardClose","open2","blur","close","close2","readRfCard","offlineSys","shouldInOffline","searchLoading","trim","getMemberBirthday","getMeStorageCard","getSearchMember","currentPage","pageSize","key","isSingleMember","then","ColumnInfo","Data","IsStorage","drawerStore","init","onHide","listArr","changeMemberCare","catch","keyCode","stime","etime","Date","member","MemberCouponCount","couponKey","DynamicPropertyKeys","DynamicPropertyValues","couponIndex","findIndex","loadInStoreMember","String","tipMessage","console","log","err","startScan","getMemberBirthdayInfo"],"mappings":"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","file":"index.js","sourcesContent":["/**\r\n * @memberChange member 状态发生变化时的回调\r\n * @memberSearched 录入框会员状态发生变化时的回调 memberSearched(value, type) // type: searched 触发搜索 | err 搜索接口错误 | close 关闭会员\r\n *\r\n */\r\nimport React, { Component, Fragment } from 'react';\r\nimport { Button, Input } from 'antd';\r\nimport { observer } from 'mobx-react';\r\nimport { toJS } from 'mobx';\r\nimport PropTypes from 'prop-types'\r\nimport { Ticon, Message, ModalWraper, Spin, Keyboard,Scan } from 'tplus-components-touch';\r\nimport { env, nativeMs, localStore , stores} from 'mutants-microfx';\r\nimport { Action } from 'mutants-appfx'\r\nimport { platform, enumController } from 'mutants-util';\r\nimport MemberModal from './MemberShow';\r\nimport MemberPhoto from './MemberPhoto';\r\nimport memberStore from './api';\r\nimport { formatPrecision, userInfoFormat, errMessageTip } from '../utils';\r\nimport './index.less';\r\n\r\n\r\n\r\nconst hasElectron = (env.platform === env.constant.platform.electron);\r\n//定义默认头像值。\r\nconst emptyMemberImage = 'https://newretail.static.chanjet.com/default_avatar.png';\r\nconst memberBirthday = 'https://newretail.static.chanjet.com/pictures/member_birthday.png';\r\nlet currentMember;\r\n\r\n@observer\r\nclass MemberTag extends Component {\r\n\r\n state = {\r\n searchValue: '',\r\n titleModal: '',\r\n memberShow: false,\r\n memberPhoto: false,\r\n searchVisible: false,\r\n shopPerson: 0,\r\n status: 2, // 0会员详情、1到店会员、2人脸识别\r\n dtMember: {}, // 会员信息\r\n connectCardStatus: false, //连接IC卡状态\r\n connectCardError: '', //连接IC卡错误后记录错误信息\r\n isMemberCare: false,\r\n isMemberCareModal: false\r\n };\r\n\r\n static propTypes = {\r\n memberChange: PropTypes.func,\r\n memberSearched: PropTypes.func,\r\n }\r\n\r\n static contextTypes = {\r\n onEvent:PropTypes.func,\r\n viewModel: PropTypes.object,\r\n }\r\n\r\n static defaultProps = {\r\n memberChange: () => { },\r\n }\r\n\r\n constructor(props) {\r\n super(props);\r\n this.hasElectron = hasElectron;\r\n const { isMemberInputType, MemberMeStorageCardInputByKeyBoard, OpenFaceRecognition, ICCardServer, ICCardPassword } = stores.user.options.get('loginInfo') || {};\r\n this.isMemberInputType = parseInt(isMemberInputType); // '0'为不禁用 '1'为禁用\r\n this.isStorageCardInputType = MemberMeStorageCardInputByKeyBoard; // 仅储值卡是否禁用键盘输入,'0'为不禁用 '1'为禁用\r\n this.openFaceRecognition = parseInt(OpenFaceRecognition); // 启用人脸识别:0禁用 1为启用\r\n this.iCCardServer = parseInt(ICCardServer); // 启用IC卡:0为禁用 1为启用\r\n this.iCCardPassword = ICCardPassword; //IC卡密码\r\n this.ms = memberStore;\r\n //移动端环境下,没有读取IC卡的方式。\r\n const { isHorizontalPad, isHorizontalSunMi } = platform || {};\r\n this.isHorizontalPad = !!isHorizontalPad;\r\n this.isHorizontalSunMi = !!isHorizontalSunMi;\r\n this.isMobileEnvironment = !!isHorizontalPad || !!isHorizontalSunMi;\r\n this.handleReadICard = this.handleReadICard.bind(this);\r\n\r\n //记录键盘录入信息的开始时间\r\n this.keypressStime = null;\r\n this.iseyboardKEnter = false; //是否为键盘输入\r\n let { isNewRetailBCPos } = platform || {};\r\n this.state = {\r\n isCC: !!isNewRetailBCPos,\r\n isShowBirthdayTip: false,\r\n };\r\n\r\n //是否单据模式\r\n this.isVoucherMode = localStore && localStore.get('voucherDefaultPosMode') == 'voucher';\r\n }\r\n\r\n componentWillReact() {\r\n const { data: { Member: dtMember = {} } = {} } = this.context.viewModel || {};\r\n const { selectMemberInfo = {}, isClear = false } = this.ms;\r\n const memberChangeData = Object.keys(selectMemberInfo).length ? selectMemberInfo : undefined;\r\n\r\n const memberChange = (data) => {\r\n this.setState({newAvatar: ''});\r\n this.props.memberChange(data);\r\n }\r\n if (typeof memberChangeData === 'object') {\r\n const deepCloneMember = JSON.parse(JSON.stringify(memberChangeData));\r\n if (!currentMember) {\r\n currentMember = deepCloneMember;\r\n memberChange(memberChangeData);\r\n } else if (currentMember.ID !== memberChangeData.ID) {\r\n memberChange(memberChangeData);\r\n currentMember = deepCloneMember;\r\n } else if (!dtMember.ID && (currentMember || {}).ID) { // DataModel 中清掉member,手动同步 member\r\n currentMember = undefined;\r\n this.ms.clearSeletMember();\r\n }\r\n } else if (currentMember && !memberChangeData) {\r\n memberChange(memberChangeData);\r\n currentMember = undefined;\r\n } else if (dtMember.ID && !(currentMember || {}).ID) { // DataModel 中存在member,手动同步 member\r\n const deepCloneMember = JSON.parse(JSON.stringify(dtMember));\r\n currentMember = deepCloneMember;\r\n this.ms.seletMember(dtMember);\r\n }\r\n }\r\n\r\n componentDidMount() {\r\n stores.selectMemberStore && stores.selectMemberStore.clearMemberCare()\r\n this.connectRfCard();\r\n }\r\n\r\n componentWillUnmount() {\r\n window.removeEventListener('resize', this.windowOnresize);\r\n this.closeRfCard();\r\n }\r\n\r\n componentWillReceiveProps(nextProps) {\r\n //接受socket传递过来的信息\r\n let { isSendMessage } = nextProps;\r\n if (isSendMessage === true) this.getInStoreMemberCount()\r\n }\r\n\r\n controllerEvent = (methodName, methodArgs) => {\r\n this.context.onEvent({ 'controllerEvent': Action.fromJS(this.context.viewModel, methodName) }, 'controllerEvent', methodArgs);\r\n }\r\n\r\n resetInShopMemberTimer = (count) => {\r\n this.timer && clearTimeout(this.timer);\r\n if (!count) return;\r\n const time = 5 * 60 * 1000;\r\n this.timer = setTimeout(() => {\r\n this.getInStoreMemberCount();\r\n }, time);\r\n }\r\n //IC卡连接\r\n connectRfCard() {\r\n //客户端环境下,并开启了启用IC卡。\r\n if (this.hasElectron === true && this.iCCardServer === 1) {\r\n nativeMs.setIpcRendererMethod('ConnectRfCard', null, ret => {\r\n let result = {}\r\n if (ret.status === 0) {\r\n result = { connectCardStatus: false, connectCardError: ret.value }\r\n } else {\r\n result = { connectCardStatus: true, connectCardError: '' };\r\n }\r\n this.setState(result)\r\n })\r\n }\r\n }\r\n\r\n //IC卡读取\r\n readRfCard() {\r\n //客户端环境下,并开启了启用IC卡。\r\n if (this.hasElectron === true && this.iCCardServer === 1) {\r\n const { connectCardStatus, connectCardError } = this.state;\r\n if (connectCardStatus === false) {\r\n Message.error(connectCardError ? connectCardError : '读取IC卡失败');\r\n this.connectRfCard(); //读取失败后,重新连接一下。\r\n return;\r\n }\r\n let params = { cardPsw: this.iCCardPassword, cardSec: 13, cardKm: 0 }\r\n nativeMs.setIpcRendererMethod('ReadRfCard', { ...params }, ret => {\r\n if (ret.status === 0) {\r\n Message.error(ret.value);\r\n this.connectRfCard(); //读取失败后,重新连接一下。\r\n return;\r\n } else if (ret.status === 1) {\r\n this.searchMember(ret.value);\r\n }\r\n })\r\n }\r\n }\r\n\r\n //IC卡关闭\r\n closeRfCard(){\r\n if (this.hasElectron === true && this.iCCardServer === 1) {\r\n nativeMs.setIpcRendererMethod('CloseRfCard')\r\n }\r\n }\r\n\r\n openPhotoModal = () => {\r\n let { isNewRetailBCPos } = platform || {};\r\n if (!isNewRetailBCPos) {\r\n if (!this.openFaceRecognition) {\r\n Message.warn('未启用人脸识别,需要先开启人脸识别功能');\r\n return;\r\n }\r\n this.setState({\r\n memberPhoto: true,\r\n titleModal: '选择头像'\r\n })\r\n }\r\n }\r\n\r\n openShowModal = (status, res) => {\r\n let title = '';\r\n const { data: { Member = {} } = {} } = this.context.viewModel || {};\r\n const {newAvatar} = this.state;\r\n const jsMember = toJS(Member);\r\n const updateMember = newAvatar ? {...jsMember, ImageFile: newAvatar} : jsMember;\r\n switch (status) {\r\n case 0:\r\n title = '会员详情';\r\n this.setState({ viewMemberInfo: updateMember })\r\n break;\r\n case 1:\r\n title = '到店会员';\r\n this.setState({ viewMemberInfo: res })\r\n break;\r\n case 2:\r\n title = '人脸识别';\r\n this.setState({ viewMemberInfo: res })\r\n break;\r\n }\r\n this.setState({\r\n status: status,\r\n memberShow: true,\r\n titleModal: title\r\n })\r\n }\r\n\r\n openCloseModal = () => {\r\n const { setMemberFocus } = this.props;\r\n const memberStore = this.context.viewModel && this.context.viewModel.items.find(el => el.name == 'MemberStore');\r\n const uiState = memberStore.uiState;\r\n const IsIntegralExchange = memberStore.store && memberStore.store.data && memberStore.store.data.IsIntegralExchange\r\n if (!!uiState.tip) {\r\n Message.info(uiState.tip)\r\n return;\r\n }\r\n ModalWraper.confirm({\r\n className: 'tplus-confirm-modal',\r\n title: '关闭会员',\r\n content: `${IsIntegralExchange ? \"关闭会员将会清空商品信息!\" : \"确定要关闭该会员吗?\"}`,\r\n onOk: () => {\r\n this.ms.clearSeletMember();\r\n stores.selectMemberStore.clearMemberCare();\r\n typeof setMemberFocus == 'function' && setMemberFocus();\r\n }\r\n })\r\n }\r\n\r\n //关闭生日提醒\r\n handleCloseBirthdayModal = () => {\r\n this.ms.changeBirthdayShow(false);\r\n }\r\n\r\n //会员关怀-送礼\r\n handleMemberCareModal = () => {\r\n this.setState({ isMemberCareModal: true })\r\n }\r\n handleMemberCareModalCancel = () => {\r\n this.setState({ isMemberCareModal: false })\r\n }\r\n\r\n handleSearch = (val) => {\r\n this.setState({ searchValue: val })\r\n }\r\n\r\n handleFocus = (el) => {\r\n if (this.isMemberInputType) return;\r\n if (this.isVoucherMode) {\r\n Keyboard.open(\r\n v => {\r\n const value = Keyboard.getNewValue(this.inputSearch, this.inputSearch.value, v);\r\n this.handleSearch(value);\r\n },\r\n () => { this.searchMember(undefined, 'ok') },\r\n this.keyboardClose,\r\n 'ByMember',\r\n localStore.get('ByMember')\r\n )()\r\n } else {\r\n Keyboard.open2(\r\n (v) => {\r\n const value = Keyboard.getNewValue(this.inputSearch, this.inputSearch.value, v);\r\n this.handleSearch(value);\r\n },\r\n () => {\r\n this.searchMember(undefined, 'ok');\r\n },\r\n this.keyboardClose,\r\n 'ByMember',\r\n localStore.get('ByMember')\r\n )\r\n }\r\n }\r\n\r\n keyboardClose = () => {\r\n this.inputSearch.blur();\r\n }\r\n\r\n handleBlur = () => {\r\n if (this.isVoucherMode) {\r\n Keyboard.close();\r\n } else {\r\n Keyboard.close2();\r\n }\r\n }\r\n\r\n handleReadICard = () => {\r\n this.readRfCard();\r\n }\r\n\r\n handleShowModal = (type, params) => {\r\n if (params) {\r\n this.setState({ dtMember: params, memberShow: type })\r\n } else {\r\n this.setState({ memberShow: type })\r\n }\r\n }\r\n\r\n handlePhotoModal = (type, newAvatar) => {\r\n if (newAvatar) {\r\n this.setState({\r\n newAvatar,\r\n memberPhoto: type\r\n })\r\n } else {\r\n this.setState({ memberPhoto: type })\r\n }\r\n } \r\n\r\n searchMember = (val, type) => {\r\n if(!stores.offlineSys.shouldInOffline()) return;\r\n if (!this.ms || this.searchLoading) return;\r\n const {searchValue} = this.state;\r\n val = val || (searchValue || '').trim();\r\n if (!val) return;\r\n const { memberSearched, selectMemberSuccess,setMemberFocus,getMemberBirthday, getMeStorageCard } = this.props;\r\n this.searchLoading = true;\r\n this.setState({searchVisible: true});\r\n this.ms.getSearchMember({\r\n currentPage: 1,\r\n pageSize: 10,\r\n key: val,\r\n isSingleMember: false\r\n }).then(ret => {\r\n this.searchLoading = false;\r\n const {ColumnInfo: columnInfo, Data} = ret || {};\r\n const data = JSON.parse(Data) || [];\r\n const info = data[0];\r\n this.setState({searchVisible: false, columnInfo});\r\n if (info && info.MemberType.IsStorage && this.isStorageCardInputType && this.iseyboardKEnter){\r\n getMeStorageCard && getMeStorageCard(true);\r\n this.handleSearch('');\r\n this.keypressStime = null;\r\n } else {\r\n getMeStorageCard && getMeStorageCard(false);\r\n }\r\n memberSearched && memberSearched(info, 'searched');\r\n if (info) {\r\n if (data.length > 1) {\r\n stores.drawerStore.init({\r\n title: '会员管理',\r\n key: 'member',\r\n onHide:()=>{\r\n },\r\n listArr: data,\r\n });\r\n this.setState({\r\n searchValue: null\r\n })\r\n } else {\r\n memberSearched && memberSearched(info, 'searched');\r\n userInfoFormat(info);\r\n if (errMessageTip(info)) return;\r\n this.ms.seletMember(info, true);\r\n setTimeout(() => this.setState({ searchValue: '' }), 0);\r\n this.handleBlur();\r\n selectMemberSuccess && selectMemberSuccess();\r\n getMemberBirthday && getMemberBirthday(info.ID, (result) => {\r\n stores.selectMemberStore.changeMemberCare(result);\r\n });\r\n }\r\n } else {\r\n if (type === 'ok'){\r\n Message.warn('会员不存在');\r\n if (this.isMobileEnvironment) {\r\n setTimeout(() => this.setState({ searchValue: '' }), 0);\r\n }\r\n typeof setMemberFocus == 'function' && setMemberFocus();\r\n }\r\n }\r\n }).catch(err => {\r\n this.setState({searchVisible: false});\r\n this.searchLoading = false;\r\n memberSearched && memberSearched(undefined, 'err');\r\n })\r\n }\r\n\r\n //获取当前到店会员数量\r\n getInStoreMemberCount = () => {\r\n if (!this.ms) return;\r\n this.ms.getInStoreMemberCount().then(res => {\r\n const {data: {data: shopPerson} = {}} = res || {};\r\n this.setState({shopPerson});\r\n this.resetInShopMemberTimer(shopPerson);\r\n });\r\n }\r\n\r\n onKeyPressed = (e) => {\r\n const keyCode = e && e.keyCode\r\n if (keyCode === 13) {\r\n if (this.isMemberInputType) {\r\n let stime = this.keypressStime;\r\n let etime = Date.parse(new Date());\r\n if (etime - stime > 300) {\r\n this.handleSearch('')\r\n this.keypressStime = null;\r\n return Message.warn('未启用键盘录入功能');\r\n }\r\n this.keypressStime = null;\r\n }\r\n this.iseyboardKEnter = Date.parse(new Date()) - this.keypressStime > 300;\r\n if (this.isStorageCardInputType) {\r\n this.keypressStime = null;\r\n }\r\n if (this.searchLoading) return;\r\n this.searchMember(undefined, 'ok');\r\n }\r\n else if (this.isMemberInputType && !this.keypressStime && !(keyCode == 8)) {\r\n this.keypressStime = Date.parse(new Date())\r\n } else if (this.isStorageCardInputType && !this.keypressStime && !(keyCode == 8) && !this.isMemberInputType) {\r\n this.keypressStime = Date.parse(new Date())\r\n }\r\n }\r\n\r\n computedCoupon = (member = {}) => {\r\n let { isNewRetailBCPos } = platform || {};\r\n if (!!isNewRetailBCPos) {\r\n return member.MemberCouponCount? member.MemberCouponCount : '0';\r\n } else {\r\n const couponKey = 'membercouponcount';\r\n const {DynamicPropertyKeys = [], DynamicPropertyValues = []} = member;\r\n const couponIndex = DynamicPropertyKeys.findIndex(v => v === couponKey);\r\n return ~couponIndex ? DynamicPropertyValues[couponIndex] : '0';\r\n }\r\n }\r\n\r\n loadFaceRecognition = (type) => {\r\n // type = 1:到店会员 type = 2:POS机人脸识别\r\n this.setState({faceLoading: type === 2, inShopLoading: type === 1});\r\n this.ms.loadInStoreMember(String(type))\r\n .then(res => {\r\n this.setState({faceLoading: false, inShopLoading: false});\r\n const {Data} = res || {};\r\n if (!JSON.parse(Data).length) {\r\n const tipMessage = ['当前没有到店会员', '未识别到人脸信息'];\r\n type === 1 && this.setState({shopPerson: 0});\r\n return Message.info(tipMessage[type - 1]);\r\n }\r\n type === 1 && this.getInStoreMemberCount();\r\n this.openShowModal(type, res);\r\n })\r\n .catch(err => {\r\n this.setState({faceLoading: false, inShopLoading: false});\r\n console.log(err)\r\n });\r\n }\r\n\r\n //移动端:扫描商品\r\n changeScanProduct = () => {\r\n if (this.scanObj) this.scanObj.startScan()\r\n }\r\n onScanResult = (res) => {\r\n this.setState({\r\n searchValue: res\r\n }, () => {\r\n this.onKeyPressed({ keyCode: 13 })\r\n })\r\n }\r\n\r\n setIsShowBirthdayTip = () => {\r\n stores.selectMemberStore.clearMemberCare()\r\n }\r\n\r\n getMemberBirthdayInfo = (result) => {\r\n stores.selectMemberStore.changeMemberCare(result);\r\n }\r\n\r\n render() {\r\n const {\r\n memberPhoto, titleModal, memberShow, inShopLoading = false, faceLoading = false,\r\n status, shopPerson, searchValue, viewMemberInfo, newAvatar, searchVisible = false, columnInfo, isCC,\r\n isMemberCare, isMemberCareModal, isShowBirthdayTip\r\n } = this.state;\r\n const { mode = 'formal', authProcess, selectMemberSuccess } = this.props;\r\n const { selectMemberInfo, precisionInfo = {} } = this.ms; //selectMemberInfo 用作触发mobox render\r\n const { data: { Member: dtMember = {} } = {}, items = [] } = this.context.viewModel || {};\r\n const viewVoucher = items.find(v => v.type === 'Voucher') || {};\r\n const isTakeTheir = viewVoucher.getIsTakeTheir && viewVoucher.getIsTakeTheir();\r\n const isSelectedMember = !!dtMember.ID;\r\n const { Differentiate } = enumController.getEnumOj();\r\n const { memberCareInfo } = stores.selectMemberStore;\r\n let { isNewRetailBCPos } = platform || {};\r\n\r\n return (\r\n <div className='MemberContainer'>\r\n <div className='left'>\r\n {!isSelectedMember &&\r\n <div className='search'>\r\n <div className='b1'>\r\n <Input\r\n type='text'\r\n className=\"input\"\r\n id='memberPoint'\r\n placeholder='扫描/输入会员号'\r\n value={searchValue}\r\n ref={el => this.inputSearch = el && el.input}\r\n onChange={(e) => this.handleSearch(e.target.value)}\r\n onFocus={this.handleFocus}\r\n onBlur={this.handleBlur}\r\n onKeyDown={this.onKeyPressed}\r\n />\r\n <Spin\r\n className='search-spin'\r\n scale={0.8}\r\n type='circle-side'\r\n visible={searchVisible}\r\n />\r\n </div>\r\n <div className='b2'>\r\n {\r\n this.hasElectron === true && this.iCCardServer === 1 &&\r\n <Ticon className='icon' onClick={this.handleReadICard} type=\"ICka\" />\r\n }\r\n {\r\n this.isHorizontalPad ?\r\n <Ticon type='saomiao1' className='icon' onClick={this.changeScanProduct} />\r\n :\r\n (\r\n false && this.openFaceRecognition === 1 && !faceLoading &&\r\n <div className='openFaceRecognition-box'>\r\n <Ticon className='icon' onClick={() => this.loadFaceRecognition(2)} type=\"renlianshibie\" />\r\n <Spin\r\n className='face-spin'\r\n scale={0.8}\r\n type='circle'\r\n visible={faceLoading}\r\n />\r\n </div>\r\n )\r\n }\r\n {\r\n /* 扫描组件 */\r\n this.isHorizontalPad &&\r\n <Scan ref={scan => this.scanObj = scan} onChange={this.onScanResult} />\r\n }\r\n </div>\r\n </div>\r\n }\r\n {isSelectedMember &&\r\n <div className={`info ${this.openFaceRecognition ? '' : 'member-btn-hidden-flex'}`}>\r\n <div className='first'>\r\n <img onClick={this.openPhotoModal} src={newAvatar || dtMember.ImageFile || emptyMemberImage} />\r\n {memberPhoto && <MemberPhoto dtMember={dtMember} showModal={memberPhoto} titleModal={titleModal} handleModal={this.handlePhotoModal} />}\r\n {\r\n memberCareInfo && memberCareInfo.isTicket && <Ticon type=\"shengri\" className='shengriIcon'></Ticon>\r\n }\r\n {\r\n memberCareInfo && memberCareInfo.isTicket && <div className='birthdayContent'>\r\n <div className='birthdayWarn'>{memberCareInfo.daysToBirthday === 0 ? '今天生日' : memberCareInfo.daysToBirthday + '天后生日'}</div>\r\n <Button colors=\"warn\" onClick={this.handleMemberCareModal} className='check bg-theme'>查看</Button>\r\n <Ticon type=\"cuowuda\" className='cuowudaIcon'></Ticon>\r\n </div>\r\n }\r\n {\r\n memberCareInfo && memberCareInfo.isTicket && <Ticon type=\"cuowuda\" onClick={() => { this.setIsShowBirthdayTip()}} className='cuowudaIcon'></Ticon>\r\n }\r\n </div>\r\n <div className='second member-hotkey-info' onClick={() => this.openShowModal(0)}>\r\n <div className='one'>\r\n {dtMember.Name && <div className='a'>{dtMember.Name}</div>}\r\n <div className='b'>{dtMember.CardCode}</div>\r\n </div>\r\n <div className='two'>\r\n <div className='a'>{formatPrecision(dtMember.BalanceStorage, precisionInfo.BalanceStorage)}</div>\r\n <div className='b'>余额</div>\r\n </div>\r\n <div className='two'>\r\n <div className='a'>{this.computedCoupon(dtMember)}</div>\r\n <div className='b'>{Differentiate.COUPON}</div>\r\n </div>\r\n <div className='two'>\r\n <div className='a'>{formatPrecision(dtMember.BalanceIntegral, precisionInfo.BalanceIntegral) || 0}</div>\r\n <div className='b'>积分</div>\r\n </div>\r\n </div>\r\n <div className='close'>\r\n {!isTakeTheir && <Ticon type=\"guanbi-yuan\" onClick={this.openCloseModal} />}\r\n </div>\r\n </div>\r\n }\r\n </div>\r\n {/* {\r\n memberCareInfo && memberCareInfo.isTicket ? <div className='float'>\r\n <div className='txt'>{memberCareInfo.daysToBirthday === 0 ? '今天生日' : memberCareInfo.daysToBirthday + '天后生日'}</div>\r\n <div className='btn' onClick={this.handleMemberCareModal}>查看</div>\r\n <div className='cancel'>\r\n <Ticon type='guanbixiao' onClick={() => {\r\n this.setIsShowBirthdayTip()\r\n }}/>\r\n </div>\r\n </div> : null\r\n } */}\r\n {!!this.openFaceRecognition && <div className='right'>\r\n <Button type=\"primary\" onClick={() => this.loadFaceRecognition(1)} className='btn' disabled={inShopLoading}>\r\n {!inShopLoading && '到店会员'}\r\n <Spin\r\n className='inshop-member-spin'\r\n scale={0.8}\r\n type='circle'\r\n visible={inShopLoading}\r\n />\r\n {!!shopPerson && <div className='badge'>{shopPerson}</div>}\r\n </Button>\r\n </div>}\r\n <MemberModal\r\n mode={mode}\r\n authProcess={authProcess}\r\n viewMemberInfo={viewMemberInfo}\r\n columnInfo={columnInfo}\r\n status={status}\r\n showModal={memberShow}\r\n titleModal={titleModal}\r\n selectMemberSuccess={selectMemberSuccess}\r\n handleModal={this.handleShowModal}\r\n />\r\n <ModalWraper\r\n show={isMemberCareModal}\r\n className='member-care-modal'\r\n width='688'\r\n centered={true}\r\n memberClass='memberCareWidth'\r\n cancel={this.handleMemberCareModalCancel}\r\n >\r\n <div className='first'>会员生日关怀</div>\r\n <div className='second'>\r\n <div className='secondContent'>\r\n <Ticon type='dengpao'/>\r\n <span>口头关怀客户,提示引导客户去线上商城领取权益。</span>\r\n </div>\r\n </div>\r\n <div className='third'>\r\n <div className='one'>\r\n <img src={emptyMemberImage} />\r\n <Ticon type='shengri' />\r\n </div>\r\n <div className='two'>\r\n {\r\n memberCareInfo && memberCareInfo.daysToBirthday === 0 ? <span>\r\n 今天是{dtMember.Name}的生日,该会员是{dtMember.MemberType.Name},可享受以下权益\r\n </span> : <span>\r\n {dtMember.Name}会员还有{memberCareInfo && memberCareInfo.daysToBirthday}天生日,该会员是{dtMember.MemberType.Name},可享受以下权益\r\n </span>\r\n }\r\n </div>\r\n </div>\r\n {\r\n memberCareInfo && <div className='fourth'>\r\n {memberCareInfo && memberCareInfo.memberCareDTO && memberCareInfo.memberCareDTO.memberRightRuleList && memberCareInfo.memberCareDTO.memberRightRuleList[0].integralMultiple && <div className='item'>1.{ memberCareInfo.memberCareDTO.memberRightRuleList[0].integralMultiple}</div>}\r\n {memberCareInfo && memberCareInfo.memberCareDTO && memberCareInfo.memberCareDTO.memberRightRuleList && memberCareInfo.memberCareDTO.memberRightRuleList[0].integralGive && <div className='item'>2.{ memberCareInfo.memberCareDTO.memberRightRuleList[0].integralGive}</div>}\r\n {\r\n memberCareInfo && memberCareInfo.memberCareDTO && memberCareInfo.memberCareDTO.memberRightRuleList && memberCareInfo.memberCareDTO.memberRightRuleList[0].couponIdMapList.map((value, index) => {\r\n let count = 0;\r\n if (memberCareInfo.memberCareDTO.memberRightRuleList[0].integralMultiple) {\r\n count += 1;\r\n }\r\n if (memberCareInfo.memberCareDTO.memberRightRuleList[0].integralGive) {\r\n count += 1;\r\n }\r\n return (<div className='item'>{count + 1 + index}.{value.name}</div>)\r\n })\r\n }\r\n </div>\r\n }\r\n </ModalWraper>\r\n {\r\n !isNewRetailBCPos && <ModalWraper show={this.ms.birthdayShow} centered={true} className='member-birthday'>\r\n <div className='picture'>\r\n <img width='350' height='308' src={memberBirthday} />\r\n <Ticon type=\"guanbi-yuan\" onClick={this.handleCloseBirthdayModal} />\r\n </div>\r\n <div className='remark'>今天是会员<span>{dtMember.Name || dtMember.CardCode}</span>的生日</div>\r\n </ModalWraper>\r\n }\r\n </div>\r\n );\r\n }\r\n}\r\nexport default MemberTag\r\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "tplus-member",
3
- "version": "3.28.7",
3
+ "version": "3.28.8",
4
4
  "description": "",
5
5
  "main": "dist/index.js",
6
6
  "scripts": {