tplus-member 3.46.1 → 3.47.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -106,7 +106,6 @@ var _mobx = require('mobx');
106
106
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
107
107
 
108
108
  // let swiperSelectObserver;
109
- var hasElectron = _mutantsMicrofx.env.platform === _mutantsMicrofx.env.constant.platform.electron;
110
109
 
111
110
  var ShopMember = (_temp = _class = function (_Component) {
112
111
  (0, _inherits3.default)(ShopMember, _Component);
@@ -121,24 +120,6 @@ var ShopMember = (_temp = _class = function (_Component) {
121
120
  _this2.currentPage = 1;
122
121
  _this2.cacheUserRetail = {};
123
122
 
124
- _this2.handleReadICard = function () {
125
- _this2.readRfCard();
126
- };
127
-
128
- _this2.changeScanProduct = function () {
129
- if (_this2.scanObj) _this2.scanObj.startScan();
130
- };
131
-
132
- _this2.onScanCzkResult = function (val) {
133
- var _this = _this2;
134
- _this2.setState({
135
- searchValue: val
136
- });
137
- setTimeout(function () {
138
- _this.handleSearchClick(val);
139
- }, 0);
140
- };
141
-
142
123
  _this2.hotKeyListener = function (nodeName, index) {
143
124
  _this2.progressListen();
144
125
  if (nodeName && ~nodeName.className.indexOf('slide-selected')) {
@@ -825,18 +806,6 @@ var ShopMember = (_temp = _class = function (_Component) {
825
806
 
826
807
  var mode = _this2.props.mode;
827
808
 
828
- _this2.hasElectron = hasElectron;
829
-
830
- var _ref10 = _mutantsMicrofx.stores.user.options.get('loginInfo') || {},
831
- ICCardServer = _ref10.ICCardServer;
832
-
833
- _this2.iCCardServer = parseInt(ICCardServer); // 启用IC卡:0为禁用 1为启用
834
- //移动端环境下,没有读取IC卡的方式。
835
-
836
- var _ref11 = _mutantsUtil.platform || {},
837
- isHorizontalPad = _ref11.isHorizontalPad;
838
-
839
- _this2.isHorizontalPad = !!isHorizontalPad;
840
809
  _this2.state = {
841
810
  searchValue: '',
842
811
  memberList: [],
@@ -854,12 +823,9 @@ var ShopMember = (_temp = _class = function (_Component) {
854
823
  lastRetailList: [], // 最近购买列表
855
824
  lastRetailTotal: 0, // 最近购买的总数量
856
825
  lastRetailPageNo: 0, // 最近购买的当前页,默认0开始
857
- lastRetailLoading: false, // 是否正在加载购买记录
858
- connectCardStatus: false, //连接IC卡状态
859
- connectCardError: '' //连接IC卡错误后记录错误信息
826
+ lastRetailLoading: false // 是否正在加载购买记录
860
827
  };
861
828
  _this2.ms = _api2.default;
862
- _this2.handleReadICard = _this2.handleReadICard.bind(_this2);
863
829
  return _this2;
864
830
  }
865
831
 
@@ -880,7 +846,7 @@ var ShopMember = (_temp = _class = function (_Component) {
880
846
  // }
881
847
  // }
882
848
  // });
883
- this.connectRfCard();
849
+
884
850
  window.addEventListener('resize', this.windowOnresize);
885
851
  var _props = this.props,
886
852
  viewMemberInfo = _props.viewMemberInfo,
@@ -902,6 +868,7 @@ var ShopMember = (_temp = _class = function (_Component) {
902
868
  };
903
869
  this.loadUserList('init');
904
870
  $.on(this.hotKeyListener);
871
+
905
872
  this.ms.searchValue = ''; //初始化完成筛选列表清空数据(会员新增成功——封涛)
906
873
  }
907
874
  }, {
@@ -921,89 +888,22 @@ var ShopMember = (_temp = _class = function (_Component) {
921
888
  }, {
922
889
  key: 'componentWillUnmount',
923
890
  value: function componentWillUnmount() {
891
+
924
892
  // memberSwiper && memberSwiper.destroy(false);
925
893
  // memberSwiper = undefined;
926
894
  this.willUnmount = true;
895
+
927
896
  window.removeEventListener('resize', this.windowOnresize);
928
897
  // swiperSelectObserver.disconnect();
929
898
  $.off(this.hotKeyListener);
930
899
  }
931
-
932
- //IC卡关闭
933
-
934
- }, {
935
- key: 'closeRfCard',
936
- value: function closeRfCard() {
937
- if (this.hasElectron === true && this.iCCardServer === 1) {
938
- _mutantsMicrofx.nativeMs.setIpcRendererMethod('CloseRfCard');
939
- }
940
- }
941
- }, {
942
- key: 'readRfCard',
943
-
944
- //IC卡读取
945
- value: function readRfCard() {
946
- var _this4 = this;
947
-
948
- //客户端环境下,并开启了启用IC卡。
949
- if (this.hasElectron === true && this.iCCardServer === 1) {
950
- var _state2 = this.state,
951
- connectCardStatus = _state2.connectCardStatus,
952
- connectCardError = _state2.connectCardError;
953
-
954
- if (connectCardStatus === false) {
955
- _tplusComponentsTouch.Message.error(connectCardError ? connectCardError : '读取IC卡失败');
956
- this.connectRfCard(); //读取失败后,重新连接一下。
957
- return;
958
- }
959
- var params = { cardPsw: this.iCCardPassword, cardSec: 13, cardKm: 0 };
960
- _mutantsMicrofx.nativeMs.setIpcRendererMethod('ReadRfCard', (0, _extends3.default)({}, params), function (ret) {
961
- if (ret.status === 0) {
962
- _tplusComponentsTouch.Message.error(ret.value);
963
- _this4.connectRfCard(); //读取失败后,重新连接一下。
964
- return;
965
- } else if (ret.status === 1) {
966
- // this.searchMember(ret.value);
967
- // this.czkInput.input["value"]=ret.value;
968
- _this4.setState({
969
- searchValue: ret.value
970
- });
971
- _this4.handleSearchClick(ret.value);
972
- }
973
- });
974
- }
975
- }
976
-
977
- //IC卡连接
978
-
979
- }, {
980
- key: 'connectRfCard',
981
- value: function connectRfCard() {
982
- var _this5 = this;
983
-
984
- //客户端环境下,并开启了启用IC卡。
985
- if (this.hasElectron === true && this.iCCardServer === 1) {
986
- _mutantsMicrofx.nativeMs.setIpcRendererMethod('ConnectRfCard', null, function (ret) {
987
- var result = {};
988
- if (ret.status === 0) {
989
- result = { connectCardStatus: false, connectCardError: ret.value };
990
- } else {
991
- result = { connectCardStatus: true, connectCardError: '' };
992
- }
993
- _this5.setState(result);
994
- });
995
- }
996
- }
997
-
998
- //移动端:扫描商品
999
-
1000
900
  }, {
1001
901
  key: 'getCardInfoByMemberId',
1002
902
 
1003
903
 
1004
904
  // 获取会员的卡信息
1005
905
  value: function () {
1006
- var _ref12 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee4(memberId) {
906
+ var _ref10 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee4(memberId) {
1007
907
  var cardInfo, _cardInfo$data, data;
1008
908
 
1009
909
  return _regenerator2.default.wrap(function _callee4$(_context4) {
@@ -1040,7 +940,7 @@ var ShopMember = (_temp = _class = function (_Component) {
1040
940
  }));
1041
941
 
1042
942
  function getCardInfoByMemberId(_x9) {
1043
- return _ref12.apply(this, arguments);
943
+ return _ref10.apply(this, arguments);
1044
944
  }
1045
945
 
1046
946
  return getCardInfoByMemberId;
@@ -1064,7 +964,7 @@ var ShopMember = (_temp = _class = function (_Component) {
1064
964
  }, {
1065
965
  key: 'render',
1066
966
  value: function render() {
1067
- var _this6 = this;
967
+ var _this4 = this;
1068
968
 
1069
969
  var isUserAndroidKey = !!window.android_setKeyBoard;
1070
970
 
@@ -1072,33 +972,33 @@ var ShopMember = (_temp = _class = function (_Component) {
1072
972
  var _user$loginInfo = user.loginInfo;
1073
973
  _user$loginInfo = _user$loginInfo === undefined ? {} : _user$loginInfo;
1074
974
  var IsEnableUMember = _user$loginInfo.IsEnableUMember;
1075
- var _state3 = this.state,
1076
- searchValue = _state3.searchValue,
1077
- _state3$memberList = _state3.memberList,
1078
- memberList = _state3$memberList === undefined ? [] : _state3$memberList,
1079
- _state3$memberInfo = _state3.memberInfo,
1080
- memberInfo = _state3$memberInfo === undefined ? {} : _state3$memberInfo,
1081
- _state3$member = _state3.member,
1082
- member = _state3$member === undefined ? {} : _state3$member,
1083
- _state3$recommend = _state3.recommend,
1084
- recommend = _state3$recommend === undefined ? [] : _state3$recommend,
1085
- _state3$memberTabHeig = _state3.memberTabHeight,
1086
- memberTabHeight = _state3$memberTabHeig === undefined ? 0 : _state3$memberTabHeig,
1087
- loadmoreLoading = _state3.loadmoreLoading,
1088
- nomoreData = _state3.nomoreData,
1089
- initEmpty = _state3.initEmpty,
1090
- _state3$columnInfo = _state3.columnInfo,
1091
- columnInfo = _state3$columnInfo === undefined ? [] : _state3$columnInfo,
1092
- loadingUser = _state3.loadingUser,
1093
- loadingBtn = _state3.loadingBtn,
1094
- selected = _state3.selected,
1095
- isAllAuthority = _state3.isAllAuthority,
1096
- lastRetailTotal = _state3.lastRetailTotal,
1097
- lastRetailList = _state3.lastRetailList,
1098
- lastRetailLoading = _state3.lastRetailLoading,
1099
- isCC = _state3.isCC,
1100
- cardInfo = _state3.cardInfo,
1101
- cardList = _state3.cardList;
975
+ var _state2 = this.state,
976
+ searchValue = _state2.searchValue,
977
+ _state2$memberList = _state2.memberList,
978
+ memberList = _state2$memberList === undefined ? [] : _state2$memberList,
979
+ _state2$memberInfo = _state2.memberInfo,
980
+ memberInfo = _state2$memberInfo === undefined ? {} : _state2$memberInfo,
981
+ _state2$member = _state2.member,
982
+ member = _state2$member === undefined ? {} : _state2$member,
983
+ _state2$recommend = _state2.recommend,
984
+ recommend = _state2$recommend === undefined ? [] : _state2$recommend,
985
+ _state2$memberTabHeig = _state2.memberTabHeight,
986
+ memberTabHeight = _state2$memberTabHeig === undefined ? 0 : _state2$memberTabHeig,
987
+ loadmoreLoading = _state2.loadmoreLoading,
988
+ nomoreData = _state2.nomoreData,
989
+ initEmpty = _state2.initEmpty,
990
+ _state2$columnInfo = _state2.columnInfo,
991
+ columnInfo = _state2$columnInfo === undefined ? [] : _state2$columnInfo,
992
+ loadingUser = _state2.loadingUser,
993
+ loadingBtn = _state2.loadingBtn,
994
+ selected = _state2.selected,
995
+ isAllAuthority = _state2.isAllAuthority,
996
+ lastRetailTotal = _state2.lastRetailTotal,
997
+ lastRetailList = _state2.lastRetailList,
998
+ lastRetailLoading = _state2.lastRetailLoading,
999
+ isCC = _state2.isCC,
1000
+ cardInfo = _state2.cardInfo,
1001
+ cardList = _state2.cardList;
1102
1002
  var _props2 = this.props,
1103
1003
  status = _props2.status,
1104
1004
  showModal = _props2.showModal,
@@ -1133,42 +1033,35 @@ var ShopMember = (_temp = _class = function (_Component) {
1133
1033
  tplusInput: true,
1134
1034
  placeholder: '\u624B\u673A\u53F7/\u5361\u53F7/\u540D\u79F0/\u8EAB\u4EFD\u8BC1\u53F7',
1135
1035
  prefix: 'sousuo',
1136
- className: _tplusComponentsTouch.hotKey.hotKeyNotFilter('search-input') + ' android_focus_keyboard ' + (this.hasElectron === true && this.iCCardServer === 1 || this.isHorizontalPad === true ? 'temp' : ''),
1036
+ className: _tplusComponentsTouch.hotKey.hotKeyNotFilter('search-input') + ' android_focus_keyboard',
1137
1037
  value: searchValue,
1138
1038
  type: 'native',
1139
- onChange: function onChange(_ref13) {
1140
- var searchValue = _ref13.target.value;
1141
- return _this6.setState({ searchValue: searchValue });
1039
+ onChange: function onChange(_ref11) {
1040
+ var searchValue = _ref11.target.value;
1041
+ return _this4.setState({ searchValue: searchValue });
1142
1042
  },
1143
1043
  inputRef: function inputRef(ref) {
1144
- return _this6.searchRef = ref;
1044
+ return _this4.searchRef = ref;
1145
1045
  },
1146
1046
  onClear: function onClear() {
1147
- return _this6.onClear('searchValue', _this6.searchRef);
1047
+ return _this4.onClear('searchValue', _this4.searchRef);
1148
1048
  },
1149
- onFocus: function onFocus(_ref14) {
1150
- var target = _ref14.target;
1049
+ onFocus: function onFocus(_ref12) {
1050
+ var target = _ref12.target;
1151
1051
 
1152
1052
  if (!isUserAndroidKey) {
1153
- _this6.focusInputName = 'searchValue';
1154
- _this6.inputTarget = target;
1053
+ _this4.focusInputName = 'searchValue';
1054
+ _this4.inputTarget = target;
1155
1055
  _tplusComponentsTouch.Keyboard.open(function (v) {
1156
- var key = _this6.focusInputName;
1157
- var value = _tplusComponentsTouch.Keyboard.getNewValue(_this6.inputTarget, _this6.inputTarget.value, v);
1158
- _this6.setState((0, _defineProperty3.default)({}, key, value));
1159
- }, _this6.keyboardOnOk, _this6.keyboardOnClose)();
1056
+ var key = _this4.focusInputName;
1057
+ var value = _tplusComponentsTouch.Keyboard.getNewValue(_this4.inputTarget, _this4.inputTarget.value, v);
1058
+ _this4.setState((0, _defineProperty3.default)({}, key, value));
1059
+ }, _this4.keyboardOnOk, _this4.keyboardOnClose)();
1160
1060
  }
1161
1061
  },
1162
1062
  onBlur: _tplusComponentsTouch.Keyboard.close,
1163
1063
  onKeyDown: this.onKeyPressed
1164
1064
  }),
1165
- this.hasElectron === true && this.iCCardServer === 1 && _react2.default.createElement(_tplusComponentsTouch.Ticon, { className: 'icon', onClick: this.handleReadICard, type: 'ICka' }),
1166
- this.isHorizontalPad && _react2.default.createElement(_tplusComponentsTouch.Ticon, { type: 'saomiao1', className: 'icon', onClick: this.changeScanProduct }),
1167
-
1168
- /* 扫描组件 */
1169
- this.isHorizontalPad && _react2.default.createElement(Scan, { ref: function ref(scan) {
1170
- return _this6.scanObj = scan;
1171
- }, onChange: this.onScanCzkResult }),
1172
1065
  _react2.default.createElement(
1173
1066
  _button2.default,
1174
1067
  { className: 'primary-btn', onClick: this.handleSearchClick },
@@ -1177,8 +1070,8 @@ var ShopMember = (_temp = _class = function (_Component) {
1177
1070
  ),
1178
1071
  _react2.default.createElement(
1179
1072
  'div',
1180
- { ref: function ref(_ref15) {
1181
- return _this6.memberTab = _ref15;
1073
+ { ref: function ref(_ref13) {
1074
+ return _this4.memberTab = _ref13;
1182
1075
  }, className: '' + _tplusComponentsTouch.hotKey.hotKeyBindClass('4', 'member-shop-content') },
1183
1076
  this.dataLoaded && noList && _react2.default.createElement(
1184
1077
  'div',
@@ -1191,7 +1084,7 @@ var ShopMember = (_temp = _class = function (_Component) {
1191
1084
  ),
1192
1085
  _react2.default.createElement(_MemberCardList2.default, {
1193
1086
  ref: function ref(list) {
1194
- return _this6.memberCardList = list;
1087
+ return _this4.memberCardList = list;
1195
1088
  },
1196
1089
  title: title,
1197
1090
  storeKey: storeKey,
@@ -1226,7 +1119,7 @@ var ShopMember = (_temp = _class = function (_Component) {
1226
1119
  cardList: cardList,
1227
1120
  getCardList: this.getCardList,
1228
1121
  loadUserInfo: function loadUserInfo(key, Idmember, item, type, syncUpdateMember) {
1229
- return _this6.loadUserInfo(key, Idmember, item, type, syncUpdateMember);
1122
+ return _this4.loadUserInfo(key, Idmember, item, type, syncUpdateMember);
1230
1123
  },
1231
1124
  handleChange: this.MemberMenuChange })
1232
1125
  ),
@@ -1268,7 +1161,7 @@ var ShopMember = (_temp = _class = function (_Component) {
1268
1161
  _button2.default,
1269
1162
  {
1270
1163
  onClick: function onClick() {
1271
- return _this6.handleOk(noList);
1164
+ return _this4.handleOk(noList);
1272
1165
  },
1273
1166
  type: 'primary',
1274
1167
  style: { marginRight: 5 },
@@ -1 +1 @@
1
- {"version":3,"sources":["tplus-member/member/ShopMember.js"],"names":["hasElectron","env","platform","constant","electron","ShopMember","props","currentPage","cacheUserRetail","handleReadICard","readRfCard","changeScanProduct","scanObj","startScan","onScanCzkResult","val","_this","setState","searchValue","setTimeout","handleSearchClick","hotKeyListener","nodeName","index","progressListen","className","indexOf","isHotKeyAction","activeElement","document","blur","observerCard","slideSelected","querySelector","prevSlideSelected","swiperSelectObserver","unobserve","observe","progress","selected","state","memberList","viewMemberInfo","loadmoreLoading","nomoreData","loadUserList","windowOnresize","memberTab","window","removeEventListener","memberTabHeight","clientHeight","tabMenuHeight","isNotSetState","Idmember","willUnmount","currentMemberId","loadUserInfo","key","item","type","syncUpdateMember","selectChange","memberChange","tabIndex","Loading","hide","recommend","userSearch","memberTabChange","member","loadingUser","loadingBtn","ms","getGetUmemberDTO","then","ret","BalanceIntegral","BalanceStorage","UmemberLabel","MemberCouponTitle","Mobilephone","DynamicPropertyKeys","DynamicPropertyValues","mergeKeys","setMemberKey","currentMemberOfList","find","value","ID","forEach","v","arr","map","push","initEmpty","errorMsg","stores","selectMemberStore","setCurMemberInfo","resetLastRetail","findMemberLastRetailDetailList","context","viewModel","data","Member","seletMember","getCardInfoByMemberId","catch","loadUserRetail","titleModal","includes","show","target","node","delay","getMemberRetailDetail","Like","Record","Recency","RecommendList","memberInfo","record","like","recency","pageSize","isSingleMember","searchId","searchStatus","status","listArr","inputValue","keyboardOnClose","slice","loadUserListSuccess","length","getSearchMember","dataLoaded","ColumnInfo","Data","columnInfo","precisionInfo","usersLoadSuccess","JSON","parse","filter","Precision","FieldName","setPrecisionInfo","storeKey","undefined","handleSearchChange","memberCardList","resetSlideTop","getMemberStateStamp","isExpiration","isUserLogout","isUserLoss","isUserNotUsing","controllerEvent","methodName","methodArgs","onEvent","Action","fromJS","fn","result","resolve","handleOk","noList","onCancel","retailDetails","getRetails","isArrowPriceChange","MemberState","Id","Name","Message","warn","IdbusiType","items","viewVoucher","isTakeTheir","getIsTakeTheir","memberStore","el","name","uiState","tip","info","ModalWraper","confirm","title","content","onOk","handleChangeMember","selectMemberSuccess","getMemberBirthday","changeMemberCare","keyboardOnOk","searchRef","onKeyPressed","e","keyCode","enterKey","currentUserRetail","MemberMenuChange","dto","onClear","input","focus","changeIsAllAuthority","isAllAuthority","pageNo","lastRetailPageNo","lastRetailList","params","memberId","lastRetailLoading","findMemberLastRetailDetail","recencyBeanList","totalCount","lastRetailTotal","mode","user","options","get","ICCardServer","iCCardServer","parseInt","isHorizontalPad","isCC","defaultActiveKey","cardInfo","connectCardStatus","connectCardError","bind","connectRfCard","addEventListener","Code","$","on","off","nativeMs","setIpcRendererMethod","error","cardPsw","iCCardPassword","cardSec","cardKm","RetailDetails","isUserAndroidKey","android_setKeyBoard","localStorage","getItem","loginInfo","IsEnableUMember","cardList","showModal","authProcess","showSearch","showSelectBtn","voucherStateType","enumController","getEnumOj","memberEnumState","hotKey","hotKeyNotFilter","ref","focusInputName","inputTarget","Keyboard","open","getNewValue","close","scan","hotKeyBindClass","list","display","getCardList","marginRight","Component","defaultProps","contextTypes","PropTypes","object","array","func"],"mappings":"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","file":"ShopMember.js","sourcesContent":["import React, { Component } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { Button } from 'antd';\r\nimport { ModalWraper, Input, Loading, Message, Ticon, Keyboard, Spin, hotKey } from 'tplus-components-touch';\r\nimport { stores, env, nativeMs } from 'mutants-microfx';\r\nimport { enumController, platform } from 'mutants-util';\r\nimport memberStore from './api';\r\nimport MemberTab from './memberTab/index.js';\r\nimport './ShopMember.less';\r\nimport { formatPrecision, userInfoFormat, errMessageTip } from '../utils';\r\nimport MemberMenu from './memberMenu/index.js'\r\nimport MemberCardList from './MemberCardList'\r\nimport { Action } from 'mutants-appfx'\r\nimport { toJS } from 'mobx';\r\n// let swiperSelectObserver;\r\nconst hasElectron = (env.platform === env.constant.platform.electron);\r\n\r\nexport default class ShopMember extends Component {\r\n static defaultProps = {\r\n onCancel: () => {},\r\n onOk: () => {},\r\n };\r\n\r\n static contextTypes = {\r\n viewModel: PropTypes.object,\r\n columnInfo: PropTypes.array,\r\n onEvent: PropTypes.func\r\n };\r\n constructor(props) {\r\n super(props);\r\n const { mode } = this.props;\r\n this.hasElectron = hasElectron;\r\n const { ICCardServer } = stores.user.options.get('loginInfo') || {};\r\n this.iCCardServer = parseInt(ICCardServer); // 启用IC卡:0为禁用 1为启用\r\n //移动端环境下,没有读取IC卡的方式。\r\n const { isHorizontalPad } = platform || {};\r\n this.isHorizontalPad = !!isHorizontalPad;\r\n this.state = {\r\n searchValue: '',\r\n memberList: [],\r\n memberInfo: {\r\n record: [],\r\n like: [],\r\n recency: [],\r\n },\r\n searchStatus: !!this.props.listArr ? true : false,\r\n isCC: true,\r\n tabIndex: this.props.defaultActiveKey,\r\n isAllAuthority: false,\r\n tabMenuHeight: mode !== 'practice' ? 64 : 0, // 64为table上部操作菜单高度\r\n cardInfo: [], // 会员的卡信息\r\n\t lastRetailList: [], // 最近购买列表\r\n lastRetailTotal: 0, // 最近购买的总数量\r\n lastRetailPageNo: 0, // 最近购买的当前页,默认0开始\r\n lastRetailLoading: false, // 是否正在加载购买记录\r\n connectCardStatus: false, //连接IC卡状态\r\n connectCardError: '', //连接IC卡错误后记录错误信息\r\n };\r\n this.ms = memberStore;\r\n this.handleReadICard = this.handleReadICard.bind(this);\r\n }\r\n\r\n currentPage = 1;\r\n cacheUserRetail = {};\r\n\r\n componentDidMount() {\r\n // swiperSelectObserver = new IntersectionObserver(entries => {\r\n // const { boundingClientRect: { height, bottom, top } = {}, intersectionRatio } = entries[0];\r\n // if (intersectionRatio !== 1 && this.isHotKeyAction) {\r\n // this.isHotKeyAction = false;\r\n\r\n // bottom > height && memberSwiper.slideNext();\r\n // // 解决向上滑动时top < 10 时距离问题\r\n // if (top < -10) {\r\n // top < height && memberSwiper.slidePrev() && memberSwiper.slidePrev()\r\n // } else {\r\n // top < height && memberSwiper.slidePrev()\r\n // }\r\n // }\r\n // });\r\n this.connectRfCard();\r\n window.addEventListener('resize', this.windowOnresize);\r\n const { viewMemberInfo, status, columnInfo, storeKey } = this.props;\r\n if (viewMemberInfo) {\r\n if (status) {\r\n return this.loadUserListSuccess(viewMemberInfo);\r\n } else if (status === 0) { // status 0 为 查看会员详情\r\n columnInfo && this.precisionInfo(columnInfo); // 查看录入的会员查看详情时父级传递了 columnInfo props\r\n return this.usersLoadSuccess([viewMemberInfo], 'search');\r\n }\r\n const { Code } = viewMemberInfo;\r\n return this.loadUserList('init', undefined, undefined, true, Code);\r\n };\r\n this.loadUserList('init');\r\n $.on(this.hotKeyListener);\r\n this.ms.searchValue = '';//初始化完成筛选列表清空数据(会员新增成功——封涛)\r\n }\r\n\r\n componentDidUpdate() {\r\n const {memberList = [], memberTabHeight, tabMenuHeight} = this.state;\r\n const clientHeight = this.memberTab.clientHeight - tabMenuHeight;\r\n if (clientHeight !== memberTabHeight) {\r\n this.setState({memberTabHeight: clientHeight});\r\n }\r\n }\r\n\r\n componentWillUnmount() {\r\n // memberSwiper && memberSwiper.destroy(false);\r\n // memberSwiper = undefined;\r\n this.willUnmount = true;\r\n window.removeEventListener('resize', this.windowOnresize);\r\n // swiperSelectObserver.disconnect();\r\n $.off(this.hotKeyListener);\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 handleReadICard = () => {\r\n this.readRfCard();\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 // this.czkInput.input[\"value\"]=ret.value;\r\n this.setState({\r\n searchValue: ret.value\r\n })\r\n this.handleSearchClick(ret.value);\r\n }\r\n })\r\n }\r\n }\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 //移动端:扫描商品\r\n changeScanProduct = () => {\r\n if (this.scanObj) this.scanObj.startScan()\r\n }\r\n\r\n onScanCzkResult = (val) => {\r\n let _this = this;\r\n this.setState({\r\n searchValue: val\r\n })\r\n setTimeout(() => { _this.handleSearchClick(val) }, 0)\r\n }\r\n\r\n hotKeyListener = (nodeName, index) => {\r\n this.progressListen()\r\n if (nodeName && ~nodeName.className.indexOf('slide-selected')) {\r\n this.isHotKeyAction = true;\r\n const activeElement = document.activeElement;\r\n activeElement && activeElement.blur();\r\n }\r\n }\r\n\r\n observerCard = () => {\r\n setTimeout(() => {\r\n const slideSelected = document.querySelector('.slide-selected');\r\n this.prevSlideSelected && swiperSelectObserver.unobserve(this.prevSlideSelected);\r\n this.prevSlideSelected = slideSelected;\r\n slideSelected && swiperSelectObserver.observe(slideSelected);\r\n })\r\n }\r\n\r\n progressListen = (progress) => {\r\n const {selected} = this.state;\r\n\r\n const {memberList = []} = this.state;\r\n const {viewMemberInfo} = this.props;\r\n if (viewMemberInfo) return;\r\n const {loadmoreLoading, nomoreData, searchValue = ''} = this.state;\r\n // let newselect = (selected + 5) % 10\r\n if ((selected + 1) % 10 === 0 && !loadmoreLoading && !nomoreData) {\r\n this.currentPage += 1;\r\n this.loadUserList('loadmore', this.currentPage);\r\n }\r\n if (progress >= 1 && !loadmoreLoading && !nomoreData) {\r\n this.currentPage += 1;\r\n this.loadUserList('loadmore', this.currentPage);\r\n }\r\n }\r\n\r\n windowOnresize = () => {\r\n if (!this.memberTab) {\r\n return window.removeEventListener('resize', this.windowOnresize);\r\n };\r\n const {memberTabHeight} = this.state;\r\n const clientHeight = this.memberTab.clientHeight - this.state.tabMenuHeight;\r\n if (memberTabHeight !== clientHeight) {\r\n this.setState({memberTabHeight: clientHeight});\r\n }\r\n }\r\n\r\n isNotSetState = (Idmember) => {\r\n if (this.willUnmount || Idmember !== this.currentMemberId) return true;\r\n }\r\n\r\n loadUserInfo = (key, Idmember, item, type, syncUpdateMember) => {\r\n // this.observerCard();\r\n\r\n const { selectChange, viewMemberInfo, memberChange } = this.props;\r\n const { selected, tabIndex = '1' } = this.state;\r\n if (key === selected && type !== true && type!=='opencard') return;\r\n Loading.hide();\r\n if (this.currentMemberId && !(this.cacheUserRetail[this.currentMemberId] || {}).recommend) {\r\n delete this.cacheUserRetail[this.currentMemberId];\r\n }\r\n this.currentMemberId = Idmember;\r\n\r\n if (this.userSearch || viewMemberInfo) {\r\n this.userSearch = false;\r\n this.setState({selected: key});\r\n }\r\n\r\n const {memberList = []} = this.state;\r\n\r\n this.memberTabChange(tabIndex);\r\n\r\n this.setState({ selected: key, member: memberList[key] || {}, loadingUser: true, loadingBtn: true });\r\n this.ms.getGetUmemberDTO(Idmember)\r\n .then(ret => {\r\n if (this.isNotSetState(Idmember)) return;\r\n const {BalanceIntegral, BalanceStorage, UmemberLabel, MemberCouponTitle, Mobilephone,\r\n DynamicPropertyKeys = [], DynamicPropertyValues = []} = ret || {};\r\n const mergeKeys = {BalanceIntegral, BalanceStorage, UmemberLabel, MemberCouponTitle, Mobilephone, DynamicPropertyKeys, DynamicPropertyValues};\r\n //const memberInfo = {...(memberList[key] || {}), ...mergeKeys};\r\n if (viewMemberInfo) {\r\n // 用接口中的 BalanceStorage MemberCouponTitle覆盖列表中的数据, 监听对象 使用action 设置值\r\n this.ms.setMemberKey(mergeKeys);\r\n } else {\r\n //设置会员列表中该会员的BalanceStorage值\r\n const currentMemberOfList = memberList.find(value => value.ID === Idmember) || {};\r\n Object.keys(mergeKeys).forEach(v => currentMemberOfList[v] = mergeKeys[v]);\r\n }\r\n userInfoFormat(ret)\r\n let arr = [];\r\n memberList.map(item => {\r\n if (item.ID === ret.ID) {\r\n arr.push(ret)\r\n } else {\r\n arr.push(item)\r\n }\r\n })\r\n this.setState({\r\n member: ret,\r\n initEmpty: true,\r\n memberList: arr,\r\n errorMsg: '',\r\n loadingUser: false,\r\n loadingBtn: false\r\n })\r\n stores.selectMemberStore.setCurMemberInfo(ret);\r\n selectChange && selectChange(item);\r\n // 获取购买记录\r\n this.resetLastRetail(0)\r\n this.findMemberLastRetailDetailList(3)\r\n // 更新当前选定的会员信息\r\n if (syncUpdateMember) {\r\n const { data: { Member: { ID } = {} } = {} } = this.context.viewModel || {};\r\n if (ID == ret.ID) {\r\n stores.selectMemberStore.seletMember(ret);\r\n memberChange && memberChange(ret)\r\n }\r\n }\r\n // 获取会员的卡信息\r\n this.getCardInfoByMemberId(Idmember)\r\n }).catch(err => {\r\n selectChange && selectChange({});\r\n if (this.isNotSetState(Idmember)) return;\r\n this.setState({\r\n member: memberList[key] || {},\r\n initEmpty: true,\r\n errorMsg: '会员信息获取失败,请重试',\r\n memberList,\r\n loadingBtn:false\r\n });\r\n });\r\n }\r\n\r\n loadUserRetail = (Idmember) => {\r\n const {tabIndex = '1'} = this.state;\r\n const {titleModal} = this.props;\r\n\r\n if (tabIndex !== '1' && ['会员详情', '到店会员', '人脸识别'].includes(titleModal)) {\r\n Loading.show({\r\n target: '.member-content-tab',\r\n node: <Spin scale={1.2} type='shape' visible/>,\r\n delay: false\r\n });\r\n }\r\n const {currentMemberId} = this.state;\r\n this.cacheUserRetail[Idmember] = {};\r\n this.ms.getMemberRetailDetail(Idmember)\r\n .then(ret => {\r\n Loading.hide();\r\n if (this.isNotSetState(Idmember)) return;\r\n const {Like, Record, Recency, RecommendList = []} = ret || {};\r\n const recommend = RecommendList;\r\n const memberInfo = {record: Record, like: Like, recency: Recency};\r\n\r\n this.setState({recommend, memberInfo});\r\n this.cacheUserRetail[Idmember] = {recommend, memberInfo};\r\n\r\n })\r\n .catch(err => {\r\n delete this.cacheUserRetail[Idmember];\r\n if (this.isNotSetState(Idmember)) return;\r\n this.setState({\r\n recommend: [],\r\n memberInfo: {},\r\n });\r\n Loading.hide();\r\n });\r\n }\r\n\r\n loadUserList = (type, currentPage = 1, pageSize = 10, isSingleMember = false, searchId) => {\r\n const { searchValue, searchStatus } = this.state;\r\n const { status, listArr } = this.props;\r\n if (!this.ms) return;\r\n if (type === 'init') {\r\n let inputValue = this.ms && this.ms.searchValue;\r\n if (inputValue) {\r\n this.setState({ searchValue: inputValue })\r\n setTimeout(() => { this.keyboardOnClose() }, 310)\r\n }\r\n }\r\n if (type === 'loadmore') {\r\n this.setState({ loadmoreLoading: true });\r\n } else {\r\n Loading.show({ target: '.memberShopContainer' });\r\n }\r\n if (type === 'opencard') {\r\n currentPage = this.currentPage;\r\n }\r\n if (searchStatus) {\r\n let arr = listArr.slice(0);\r\n this.setState({\r\n searchStatus: false,\r\n memberList: arr\r\n }, () => {\r\n const { memberList } = this.state;\r\n this.loadUserListSuccess(memberList, 's', memberList.length);\r\n Loading.hide();\r\n })\r\n return;\r\n }\r\n this.ms.getSearchMember({\r\n currentPage,\r\n pageSize,\r\n key: this.ms.searchValue || searchValue || searchId,\r\n isSingleMember: this.ms.searchValue ? true : isSingleMember\r\n })\r\n .then(ret => {\r\n this.loadUserListSuccess(ret, type, pageSize);\r\n Loading.hide();\r\n })\r\n .catch(err => Loading.hide());\r\n }\r\n\r\n loadUserListSuccess = (ret, type, pageSize) => {\r\n this.dataLoaded = true;\r\n const { ColumnInfo, Data } = ret || {};\r\n this.setState({ columnInfo: ColumnInfo});\r\n this.precisionInfo(ColumnInfo);\r\n this.usersLoadSuccess(type === 's' ? ret : JSON.parse(Data), type, pageSize);\r\n }\r\n\r\n precisionInfo = (columnInfo) => {\r\n const precisionInfo = {};\r\n if (columnInfo && columnInfo.length > 0) {\r\n columnInfo = columnInfo.filter(v => !!v.Precision) || [];\r\n columnInfo.length > 0 &&\r\n columnInfo.forEach(item => {\r\n const { Precision, FieldName } = item;\r\n if (Precision) precisionInfo[FieldName] = Precision;\r\n })\r\n }\r\n this.ms.setPrecisionInfo(precisionInfo);\r\n }\r\n\r\n // 获取会员的卡信息\r\n async getCardInfoByMemberId (memberId) {\r\n const cardInfo = await this.ms.getCardInfoByMemberId(memberId) || {}\r\n const { data = [] } = cardInfo\r\n this.setState({\r\n cardInfo: data\r\n })\r\n }\r\n\r\n handleSearchClick = () => {\r\n const { searchValue } = this.state;\r\n const { storeKey } = this.props\r\n this.userSearch = true;\r\n this.currentPage = 1;\r\n this.setState({ nomoreData: false, selected: undefined });\r\n this.loadUserList('search', this.currentPage);\r\n }\r\n\r\n handleSearchChange = (val) => {\r\n this.setState({searchValue: val});\r\n }\r\n\r\n\r\n usersLoadSuccess = (data = [], type, pageSize = 10) => {\r\n const {status} = this.props;\r\n const { selected } = this.state;\r\n if (this.willUnmount) return;\r\n if (data.length) {\r\n data.forEach(v => userInfoFormat(v));\r\n\r\n if (type === 'loadmore') {\r\n const {memberList = []} = this.state;\r\n memberList.push(...data);\r\n return this.setState({nomoreData: data.length < pageSize, loadmoreLoading: false, memberList});\r\n }\r\n this.setState({memberList: data}, () => {\r\n if (type === 'search') {\r\n this.memberCardList.resetSlideTop();\r\n }\r\n const [item = {}] = data;\r\n // const key=type==='opencard'?(selected-(this.currentPage-1)*pageSize):0;\r\n // const item =data[key];\r\n this.loadUserInfo(0, item.ID, item, type);\r\n });\r\n } else if (type === 'loadmore') {\r\n this.setState({nomoreData: true, loadmoreLoading: false});\r\n } else {\r\n Loading.hide();\r\n this.setState({\r\n memberList: [],\r\n recommend: [],\r\n member: {},\r\n memberInfo: {record: [], like: [], recency: []}\r\n }, () => {\r\n if (type === 'search') {\r\n this.memberCardList.resetSlideTop();\r\n }\r\n });\r\n }\r\n }\r\n\r\n //获取会员状态集合,在页面上以图片戳的形式展示。\r\n getMemberStateStamp = (item) => {\r\n let arr = [];\r\n const { isExpiration, isUserLogout, isUserLoss, isUserNotUsing } = item;\r\n //已挂失\r\n if (isUserLoss) arr.push(<Ticon type='yiguashi' />)\r\n //已过期\r\n if (isExpiration) arr.push(<Ticon type='yiguoqi' />)\r\n //已注销\r\n if (isUserLogout) arr.push(<Ticon type='yizhuxiao' />)\r\n //未启用\r\n if (isUserNotUsing) arr.push(<Ticon type='weiqiyong' />)\r\n return arr;\r\n }\r\n controllerEvent = (methodName, methodArgs) => {\r\n return new Promise(resolve => {\r\n this.context.onEvent({ 'controllerEvent': Action.fromJS(this.context.viewModel, methodName) }, 'controllerEvent', {...methodArgs, fn: function(result) {\r\n resolve(result);\r\n }});\r\n });\r\n }\r\n // 获取商品行\r\n getRetails() {\r\n const data = this.context.viewModel.data || {};\r\n return toJS(data.RetailDetails || []);\r\n }\r\n handleOk = async (noList) => {\r\n if (noList) {\r\n return this.props.onCancel();\r\n }\r\n const { member, errorMsg } = this.state;\r\n // 增加会员对手工改价的校验\r\n let isArrowPriceChange = await this.controllerEvent('memberPriceChangeValidate', {member, retailDetails: this.getRetails()});\r\n if (!isArrowPriceChange) {\r\n return this.props.onCancel();\r\n }\r\n const { isExpiration, MemberState: { Id, Name } = {} } = member || {};\r\n if (noList) {\r\n return this.props.onCancel();\r\n }\r\n if (errorMsg) return Message.warn(errorMsg);\r\n if (errMessageTip(member)) return;\r\n const { data: { Member: {ID} = {}, IdbusiType } = {}, items = [] } = this.context.viewModel || {};\r\n if (IdbusiType == 39) {\r\n Message.warn('取货时不可以切换选择会员');\r\n return;\r\n }\r\n const viewVoucher = items.find(v => v.type === 'Voucher') || {};\r\n const isTakeTheir = viewVoucher.getIsTakeTheir && viewVoucher.getIsTakeTheir();\r\n if (isTakeTheir) {\r\n Message.warn('自提时不可以切换选择会员');\r\n return;\r\n }\r\n\r\n //会员不可更改判断\r\n const memberStore = this.context.viewModel && this.context.viewModel.items.find(el => el.name == 'MemberStore');\r\n const uiState = memberStore.uiState;\r\n if (!!uiState.tip) {\r\n Message.info(uiState.tip)\r\n return;\r\n }\r\n if (ID) {\r\n const _this = this;\r\n return ModalWraper.confirm({\r\n className: 'tplus-confirm-modal',\r\n title: '切换会员',\r\n content: '您确定要替换当前会员吗?',\r\n onOk() {\r\n _this.handleChangeMember(member)\r\n }\r\n })\r\n }\r\n this.handleChangeMember(member)\r\n }\r\n\r\n handleChangeMember = (member) => {\r\n const { onOk, memberChange, selectMemberSuccess, getMemberBirthday } = this.props;\r\n stores.selectMemberStore.seletMember(member, true);\r\n memberChange && memberChange(member)\r\n onOk && onOk();\r\n getMemberBirthday && getMemberBirthday(member.ID, (result) => {\r\n stores.selectMemberStore.changeMemberCare(result);\r\n })\r\n //商品输入框焦点。\r\n setTimeout(() => { selectMemberSuccess && selectMemberSuccess(member) }, 300)\r\n }\r\n\r\n keyboardOnOk = () => {\r\n this.handleSearchClick();\r\n }\r\n\r\n keyboardOnClose = () => {\r\n this.searchRef && this.searchRef.blur();\r\n }\r\n\r\n onKeyPressed = (e) => {\r\n const { keyCode } = e;\r\n const enterKey = 13;\r\n if (keyCode === enterKey) {\r\n this.handleSearchClick();\r\n this.keyboardOnClose();\r\n }\r\n }\r\n\r\n memberTabChange = (tabIndex) => {\r\n this.setState({tabIndex});\r\n const currentUserRetail = this.cacheUserRetail[this.currentMemberId];\r\n if (!currentUserRetail) {\r\n return this.loadUserRetail(this.currentMemberId);\r\n }\r\n this.setState({...currentUserRetail});\r\n const activeElement = document.activeElement;\r\n activeElement && activeElement.blur()\r\n }\r\n\r\n MemberMenuChange = (dto) => {\r\n const { memberList } = this.state;\r\n userInfoFormat(dto)\r\n let arr = [];\r\n memberList.map(item => {\r\n if (item.ID == dto.ID) {\r\n arr.push(dto)\r\n } else {\r\n arr.push(item)\r\n }\r\n })\r\n this.setState({ member: dto, memberList: arr })\r\n }\r\n\r\n onClear = (key, input) => {\r\n this.setState({[key]: ''});\r\n input.focus();\r\n }\r\n\r\n changeIsAllAuthority = () => {\r\n this.setState({\r\n isAllAuthority: false\r\n })\r\n }\r\n\r\n // 重置购买记录相关数据\r\n resetLastRetail = async (pageNo) => {\r\n this.setState({\r\n lastRetailPageNo: pageNo\r\n })\r\n }\r\n // 获取会员的购买记录\r\n findMemberLastRetailDetailList = async (pageSize) => {\r\n let { lastRetailPageNo, member: { ID } = {}, lastRetailList = [] } = this.state\r\n const params = {\r\n memberId: ID,\r\n pageNo: lastRetailPageNo,\r\n pageSize\r\n }\r\n this.setState({\r\n lastRetailLoading: true\r\n })\r\n try {\r\n const ret = await this.ms.findMemberLastRetailDetail(params)\r\n const { data: { recencyBeanList = [], totalCount = 0 } = {} } = ret\r\n lastRetailList.push(...recencyBeanList)\r\n\r\n this.setState({\r\n lastRetailTotal: totalCount,\r\n lastRetailLoading: false,\r\n lastRetailPageNo: pageSize === 3 ? 0 : this.state.lastRetailPageNo + 1,\r\n lastRetailList: this.state.lastRetailPageNo === 0 ? recencyBeanList : lastRetailList\r\n })\r\n\r\n } catch (err) {\r\n this.setState({\r\n lastRetailLoading: false\r\n })\r\n }\r\n }\r\n\r\n render() {\r\n const isUserAndroidKey = !! window.android_setKeyBoard;\r\n\r\n const user = JSON.parse(localStorage.getItem('user')) || {};\r\n const { loginInfo: { IsEnableUMember } = {} } = user;\r\n const { searchValue, memberList = [], memberInfo = {}, member = {}, recommend = [], memberTabHeight = 0,\r\n loadmoreLoading, nomoreData, initEmpty, columnInfo = [], loadingUser, loadingBtn, selected, isAllAuthority,lastRetailTotal, lastRetailList, lastRetailLoading,isCC, cardInfo, cardList } = this.state;\r\n const { status, showModal, titleModal, type, defaultActiveKey, onCancel, viewMemberInfo, authProcess, mode, title, storeKey } = this.props;\r\n const { precisionInfo = {} } = this.ms;\r\n const showSearch = ['会员查询'].includes(type);\r\n const noList = !memberList.length;\r\n const showSelectBtn = type === '会员查询' || !!status;\r\n //是否正常开单\r\n let voucherStateType = (mode !== 'practice');\r\n const { memberEnumState } = enumController.getEnumOj();\r\n\r\n return (\r\n <div className='memberShopContainer'>\r\n {\r\n showSearch &&\r\n <div className='search-container'>\r\n <Input\r\n tplusInput\r\n placeholder='手机号/卡号/名称/身份证号'\r\n prefix='sousuo'\r\n className={`${hotKey.hotKeyNotFilter('search-input')} android_focus_keyboard ${(this.hasElectron === true && this.iCCardServer === 1 || this.isHorizontalPad === true) ? 'temp' : ''}`}\r\n value={searchValue}\r\n type='native'\r\n onChange={({ target: { value: searchValue } }) => this.setState({ searchValue })}\r\n inputRef={ref => this.searchRef = ref}\r\n onClear={() => this.onClear('searchValue', this.searchRef)}\r\n onFocus={({ target }) => {\r\n if(!isUserAndroidKey ){\r\n this.focusInputName = 'searchValue';\r\n this.inputTarget = target;\r\n Keyboard.open(v => {\r\n const key = this.focusInputName;\r\n const value = Keyboard.getNewValue(this.inputTarget, this.inputTarget.value, v);\r\n this.setState({ [key]: value });\r\n }, this.keyboardOnOk, this.keyboardOnClose)();\r\n }\r\n }}\r\n onBlur={Keyboard.close}\r\n onKeyDown={this.onKeyPressed}\r\n />\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 /* 扫描组件 */\r\n this.isHorizontalPad &&\r\n <Scan ref={scan => this.scanObj = scan} onChange={this.onScanCzkResult} />\r\n }\r\n <Button className='primary-btn' onClick={this.handleSearchClick}>搜索</Button>\r\n </div>\r\n }\r\n <div ref={ref => this.memberTab = ref} className={`${hotKey.hotKeyBindClass('4', 'member-shop-content')}`}>\r\n {\r\n this.dataLoaded && noList && <div className='empty-data-img'><div className='tip-text'>暂无数据 ~</div></div>\r\n }\r\n <MemberCardList\r\n ref={list => this.memberCardList = list}\r\n title={title}\r\n storeKey={storeKey}\r\n memberList={memberList}\r\n precisionInfo={precisionInfo}\r\n loadmoreLoading={loadmoreLoading}\r\n nomoreData={nomoreData}\r\n loadUserInfo={this.loadUserInfo}\r\n progressListen={this.progressListen}\r\n getMemberStateStamp={this.getMemberStateStamp}\r\n selected={selected}\r\n isCC={isCC}\r\n cardList={cardList}\r\n />\r\n\r\n <div className='member-content-tab content' style={{ display: noList ? 'none' : 'flex' }}>\r\n {\r\n (voucherStateType && !isAllAuthority) &&\r\n <div>\r\n <div className='menu'>\r\n <MemberMenu\r\n authProcess={authProcess}\r\n changeIsAllAuthority={this.changeIsAllAuthority}\r\n loadUserList={this.loadUserList}\r\n member={member}\r\n memberEnumState={memberEnumState}\r\n loadingBtn={loadingBtn}\r\n selected={selected}\r\n cardList={cardList}\r\n getCardList={this.getCardList}\r\n loadUserInfo={(key, Idmember, item, type, syncUpdateMember) => this.loadUserInfo(key, Idmember, item, type, syncUpdateMember)}\r\n handleChange={this.MemberMenuChange}></MemberMenu>\r\n </div>\r\n <div className='line'></div>\r\n </div>\r\n }\r\n <MemberTab\r\n defaultActiveKey={defaultActiveKey}\r\n member={member}\r\n memberInfo={memberInfo}\r\n showModal={showModal}\r\n title={title}\r\n titleModal={titleModal}\r\n storeKey={storeKey}\r\n recommend={recommend}\r\n memberTabHeight={memberTabHeight}\r\n initEmpty={initEmpty}\r\n memberList={memberList}\r\n columnInfo={columnInfo}\r\n precisionInfo={precisionInfo}\r\n onChange={this.memberTabChange}\r\n getMemberStateStamp={this.getMemberStateStamp}\r\n cardInfo={cardInfo}\r\n \t\t\t lastRetailTotal={lastRetailTotal}\r\n lastRetailList={lastRetailList}\r\n lastRetailLoading={lastRetailLoading}\r\n findMemberLastRetailDetailList={this.findMemberLastRetailDetailList}\r\n />\r\n </div>\r\n </div>\r\n <div className='member-footer'>\r\n <Button onClick={onCancel}>取消</Button>\r\n {\r\n showSelectBtn &&\r\n <Button\r\n onClick={() => this.handleOk(noList)}\r\n type=\"primary\"\r\n style={{ marginRight: 5 }}\r\n disabled={loadingUser}\r\n >\r\n {\r\n loadingUser ? '加载会员' : noList ? '确定' : '选取会员'\r\n }\r\n </Button>\r\n }\r\n </div>\r\n </div>\r\n )\r\n }\r\n}\r\n"]}
1
+ {"version":3,"sources":["tplus-member/member/ShopMember.js"],"names":["ShopMember","props","currentPage","cacheUserRetail","hotKeyListener","nodeName","index","progressListen","className","indexOf","isHotKeyAction","activeElement","document","blur","observerCard","setTimeout","slideSelected","querySelector","prevSlideSelected","swiperSelectObserver","unobserve","observe","progress","selected","state","memberList","viewMemberInfo","loadmoreLoading","nomoreData","searchValue","loadUserList","windowOnresize","memberTab","window","removeEventListener","memberTabHeight","clientHeight","tabMenuHeight","setState","isNotSetState","Idmember","willUnmount","currentMemberId","loadUserInfo","key","item","type","syncUpdateMember","selectChange","memberChange","tabIndex","Loading","hide","recommend","userSearch","memberTabChange","member","loadingUser","loadingBtn","ms","getGetUmemberDTO","then","ret","BalanceIntegral","BalanceStorage","UmemberLabel","MemberCouponTitle","Mobilephone","DynamicPropertyKeys","DynamicPropertyValues","mergeKeys","setMemberKey","currentMemberOfList","find","value","ID","forEach","v","arr","map","push","initEmpty","errorMsg","stores","selectMemberStore","setCurMemberInfo","resetLastRetail","findMemberLastRetailDetailList","context","viewModel","data","Member","seletMember","getCardInfoByMemberId","catch","loadUserRetail","titleModal","includes","show","target","node","delay","getMemberRetailDetail","Like","Record","Recency","RecommendList","memberInfo","record","like","recency","pageSize","isSingleMember","searchId","searchStatus","status","listArr","inputValue","keyboardOnClose","slice","loadUserListSuccess","length","getSearchMember","dataLoaded","ColumnInfo","Data","columnInfo","precisionInfo","usersLoadSuccess","JSON","parse","filter","Precision","FieldName","setPrecisionInfo","handleSearchClick","storeKey","undefined","handleSearchChange","val","memberCardList","resetSlideTop","getMemberStateStamp","isExpiration","isUserLogout","isUserLoss","isUserNotUsing","controllerEvent","methodName","methodArgs","onEvent","Action","fromJS","fn","result","resolve","handleOk","noList","onCancel","retailDetails","getRetails","isArrowPriceChange","MemberState","Id","Name","Message","warn","IdbusiType","items","viewVoucher","isTakeTheir","getIsTakeTheir","memberStore","el","name","uiState","tip","info","_this","ModalWraper","confirm","title","content","onOk","handleChangeMember","selectMemberSuccess","getMemberBirthday","changeMemberCare","keyboardOnOk","searchRef","onKeyPressed","e","keyCode","enterKey","currentUserRetail","MemberMenuChange","dto","onClear","input","focus","changeIsAllAuthority","isAllAuthority","pageNo","lastRetailPageNo","lastRetailList","params","memberId","lastRetailLoading","findMemberLastRetailDetail","recencyBeanList","totalCount","lastRetailTotal","mode","isCC","defaultActiveKey","cardInfo","addEventListener","Code","$","on","off","RetailDetails","isUserAndroidKey","android_setKeyBoard","user","localStorage","getItem","loginInfo","IsEnableUMember","cardList","showModal","authProcess","showSearch","showSelectBtn","voucherStateType","enumController","getEnumOj","memberEnumState","hotKey","hotKeyNotFilter","ref","focusInputName","inputTarget","Keyboard","open","getNewValue","close","hotKeyBindClass","list","display","getCardList","marginRight","Component","defaultProps","contextTypes","PropTypes","object","array","func"],"mappings":"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","file":"ShopMember.js","sourcesContent":["import React, { Component } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { Button } from 'antd';\r\nimport { ModalWraper, Input, Loading, Message, Ticon, Keyboard, Spin, hotKey } from 'tplus-components-touch';\r\nimport { stores } from 'mutants-microfx';\r\nimport { enumController, platform } from 'mutants-util';\r\nimport memberStore from './api';\r\nimport MemberTab from './memberTab/index.js';\r\nimport './ShopMember.less';\r\nimport { formatPrecision, userInfoFormat, errMessageTip } from '../utils';\r\nimport MemberMenu from './memberMenu/index.js'\r\nimport MemberCardList from './MemberCardList'\r\nimport { Action } from 'mutants-appfx'\r\nimport { toJS } from 'mobx';\r\n// let swiperSelectObserver;\r\n\r\nexport default class ShopMember extends Component {\r\n static defaultProps = {\r\n onCancel: () => {},\r\n onOk: () => {},\r\n };\r\n\r\n static contextTypes = {\r\n viewModel: PropTypes.object,\r\n columnInfo: PropTypes.array,\r\n onEvent: PropTypes.func\r\n };\r\n constructor(props) {\r\n super(props);\r\n const { mode } = this.props;\r\n this.state = {\r\n searchValue: '',\r\n memberList: [],\r\n memberInfo: {\r\n record: [],\r\n like: [],\r\n recency: [],\r\n },\r\n searchStatus: !!this.props.listArr ? true : false,\r\n isCC: true,\r\n tabIndex: this.props.defaultActiveKey,\r\n isAllAuthority: false,\r\n tabMenuHeight: mode !== 'practice' ? 64 : 0, // 64为table上部操作菜单高度\r\n cardInfo: [], // 会员的卡信息\r\n\t lastRetailList: [], // 最近购买列表\r\n lastRetailTotal: 0, // 最近购买的总数量\r\n lastRetailPageNo: 0, // 最近购买的当前页,默认0开始\r\n lastRetailLoading: false, // 是否正在加载购买记录\r\n };\r\n this.ms = memberStore;\r\n }\r\n\r\n currentPage = 1;\r\n cacheUserRetail = {};\r\n\r\n componentDidMount() {\r\n // swiperSelectObserver = new IntersectionObserver(entries => {\r\n // const { boundingClientRect: { height, bottom, top } = {}, intersectionRatio } = entries[0];\r\n // if (intersectionRatio !== 1 && this.isHotKeyAction) {\r\n // this.isHotKeyAction = false;\r\n\r\n // bottom > height && memberSwiper.slideNext();\r\n // // 解决向上滑动时top < 10 时距离问题\r\n // if (top < -10) {\r\n // top < height && memberSwiper.slidePrev() && memberSwiper.slidePrev()\r\n // } else {\r\n // top < height && memberSwiper.slidePrev()\r\n // }\r\n // }\r\n // });\r\n\r\n window.addEventListener('resize', this.windowOnresize);\r\n const { viewMemberInfo, status, columnInfo, storeKey } = this.props;\r\n if (viewMemberInfo) {\r\n if (status) {\r\n return this.loadUserListSuccess(viewMemberInfo);\r\n } else if (status === 0) { // status 0 为 查看会员详情\r\n columnInfo && this.precisionInfo(columnInfo); // 查看录入的会员查看详情时父级传递了 columnInfo props\r\n return this.usersLoadSuccess([viewMemberInfo], 'search');\r\n }\r\n const { Code } = viewMemberInfo;\r\n return this.loadUserList('init', undefined, undefined, true, Code);\r\n };\r\n this.loadUserList('init');\r\n $.on(this.hotKeyListener);\r\n\r\n this.ms.searchValue = '';//初始化完成筛选列表清空数据(会员新增成功——封涛)\r\n }\r\n\r\n componentDidUpdate() {\r\n const {memberList = [], memberTabHeight, tabMenuHeight} = this.state;\r\n const clientHeight = this.memberTab.clientHeight - tabMenuHeight;\r\n if (clientHeight !== memberTabHeight) {\r\n this.setState({memberTabHeight: clientHeight});\r\n }\r\n }\r\n\r\n componentWillUnmount() {\r\n\r\n // memberSwiper && memberSwiper.destroy(false);\r\n // memberSwiper = undefined;\r\n this.willUnmount = true;\r\n\r\n window.removeEventListener('resize', this.windowOnresize);\r\n // swiperSelectObserver.disconnect();\r\n $.off(this.hotKeyListener);\r\n }\r\n\r\n hotKeyListener = (nodeName, index) => {\r\n this.progressListen()\r\n if (nodeName && ~nodeName.className.indexOf('slide-selected')) {\r\n this.isHotKeyAction = true;\r\n const activeElement = document.activeElement;\r\n activeElement && activeElement.blur();\r\n }\r\n }\r\n\r\n observerCard = () => {\r\n setTimeout(() => {\r\n const slideSelected = document.querySelector('.slide-selected');\r\n this.prevSlideSelected && swiperSelectObserver.unobserve(this.prevSlideSelected);\r\n this.prevSlideSelected = slideSelected;\r\n slideSelected && swiperSelectObserver.observe(slideSelected);\r\n })\r\n }\r\n\r\n progressListen = (progress) => {\r\n const {selected} = this.state;\r\n\r\n const {memberList = []} = this.state;\r\n const {viewMemberInfo} = this.props;\r\n if (viewMemberInfo) return;\r\n const {loadmoreLoading, nomoreData, searchValue = ''} = this.state;\r\n // let newselect = (selected + 5) % 10\r\n if ((selected + 1) % 10 === 0 && !loadmoreLoading && !nomoreData) {\r\n this.currentPage += 1;\r\n this.loadUserList('loadmore', this.currentPage);\r\n }\r\n if (progress >= 1 && !loadmoreLoading && !nomoreData) {\r\n this.currentPage += 1;\r\n this.loadUserList('loadmore', this.currentPage);\r\n }\r\n }\r\n\r\n windowOnresize = () => {\r\n if (!this.memberTab) {\r\n return window.removeEventListener('resize', this.windowOnresize);\r\n };\r\n const {memberTabHeight} = this.state;\r\n const clientHeight = this.memberTab.clientHeight - this.state.tabMenuHeight;\r\n if (memberTabHeight !== clientHeight) {\r\n this.setState({memberTabHeight: clientHeight});\r\n }\r\n }\r\n\r\n isNotSetState = (Idmember) => {\r\n if (this.willUnmount || Idmember !== this.currentMemberId) return true;\r\n }\r\n\r\n loadUserInfo = (key, Idmember, item, type, syncUpdateMember) => {\r\n // this.observerCard();\r\n\r\n const { selectChange, viewMemberInfo, memberChange } = this.props;\r\n const { selected, tabIndex = '1' } = this.state;\r\n if (key === selected && type !== true && type!=='opencard') return;\r\n Loading.hide();\r\n if (this.currentMemberId && !(this.cacheUserRetail[this.currentMemberId] || {}).recommend) {\r\n delete this.cacheUserRetail[this.currentMemberId];\r\n }\r\n this.currentMemberId = Idmember;\r\n\r\n if (this.userSearch || viewMemberInfo) {\r\n this.userSearch = false;\r\n this.setState({selected: key});\r\n }\r\n\r\n const {memberList = []} = this.state;\r\n\r\n this.memberTabChange(tabIndex);\r\n\r\n this.setState({ selected: key, member: memberList[key] || {}, loadingUser: true, loadingBtn: true });\r\n this.ms.getGetUmemberDTO(Idmember)\r\n .then(ret => {\r\n if (this.isNotSetState(Idmember)) return;\r\n const {BalanceIntegral, BalanceStorage, UmemberLabel, MemberCouponTitle, Mobilephone,\r\n DynamicPropertyKeys = [], DynamicPropertyValues = []} = ret || {};\r\n const mergeKeys = {BalanceIntegral, BalanceStorage, UmemberLabel, MemberCouponTitle, Mobilephone, DynamicPropertyKeys, DynamicPropertyValues};\r\n //const memberInfo = {...(memberList[key] || {}), ...mergeKeys};\r\n if (viewMemberInfo) {\r\n // 用接口中的 BalanceStorage MemberCouponTitle覆盖列表中的数据, 监听对象 使用action 设置值\r\n this.ms.setMemberKey(mergeKeys);\r\n } else {\r\n //设置会员列表中该会员的BalanceStorage值\r\n const currentMemberOfList = memberList.find(value => value.ID === Idmember) || {};\r\n Object.keys(mergeKeys).forEach(v => currentMemberOfList[v] = mergeKeys[v]);\r\n }\r\n userInfoFormat(ret)\r\n let arr = [];\r\n memberList.map(item => {\r\n if (item.ID === ret.ID) {\r\n arr.push(ret)\r\n } else {\r\n arr.push(item)\r\n }\r\n })\r\n this.setState({\r\n member: ret,\r\n initEmpty: true,\r\n memberList: arr,\r\n errorMsg: '',\r\n loadingUser: false,\r\n loadingBtn: false\r\n })\r\n stores.selectMemberStore.setCurMemberInfo(ret);\r\n selectChange && selectChange(item);\r\n // 获取购买记录\r\n this.resetLastRetail(0)\r\n this.findMemberLastRetailDetailList(3)\r\n // 更新当前选定的会员信息\r\n if (syncUpdateMember) {\r\n const { data: { Member: { ID } = {} } = {} } = this.context.viewModel || {};\r\n if (ID == ret.ID) {\r\n stores.selectMemberStore.seletMember(ret);\r\n memberChange && memberChange(ret)\r\n }\r\n }\r\n // 获取会员的卡信息\r\n this.getCardInfoByMemberId(Idmember)\r\n }).catch(err => {\r\n selectChange && selectChange({});\r\n if (this.isNotSetState(Idmember)) return;\r\n this.setState({\r\n member: memberList[key] || {},\r\n initEmpty: true,\r\n errorMsg: '会员信息获取失败,请重试',\r\n memberList,\r\n loadingBtn:false\r\n });\r\n });\r\n }\r\n\r\n loadUserRetail = (Idmember) => {\r\n const {tabIndex = '1'} = this.state;\r\n const {titleModal} = this.props;\r\n\r\n if (tabIndex !== '1' && ['会员详情', '到店会员', '人脸识别'].includes(titleModal)) {\r\n Loading.show({\r\n target: '.member-content-tab',\r\n node: <Spin scale={1.2} type='shape' visible/>,\r\n delay: false\r\n });\r\n }\r\n const {currentMemberId} = this.state;\r\n this.cacheUserRetail[Idmember] = {};\r\n this.ms.getMemberRetailDetail(Idmember)\r\n .then(ret => {\r\n Loading.hide();\r\n if (this.isNotSetState(Idmember)) return;\r\n const {Like, Record, Recency, RecommendList = []} = ret || {};\r\n const recommend = RecommendList;\r\n const memberInfo = {record: Record, like: Like, recency: Recency};\r\n\r\n this.setState({recommend, memberInfo});\r\n this.cacheUserRetail[Idmember] = {recommend, memberInfo};\r\n\r\n })\r\n .catch(err => {\r\n delete this.cacheUserRetail[Idmember];\r\n if (this.isNotSetState(Idmember)) return;\r\n this.setState({\r\n recommend: [],\r\n memberInfo: {},\r\n });\r\n Loading.hide();\r\n });\r\n }\r\n\r\n loadUserList = (type, currentPage = 1, pageSize = 10, isSingleMember = false, searchId) => {\r\n const { searchValue, searchStatus } = this.state;\r\n const { status, listArr } = this.props;\r\n if (!this.ms) return;\r\n if (type === 'init') {\r\n let inputValue = this.ms && this.ms.searchValue;\r\n if (inputValue) {\r\n this.setState({ searchValue: inputValue })\r\n setTimeout(() => { this.keyboardOnClose() }, 310)\r\n }\r\n }\r\n if (type === 'loadmore') {\r\n this.setState({ loadmoreLoading: true });\r\n } else {\r\n Loading.show({ target: '.memberShopContainer' });\r\n }\r\n if (type === 'opencard') {\r\n currentPage = this.currentPage;\r\n }\r\n if (searchStatus) {\r\n let arr = listArr.slice(0);\r\n this.setState({\r\n searchStatus: false,\r\n memberList: arr\r\n }, () => {\r\n const { memberList } = this.state;\r\n this.loadUserListSuccess(memberList, 's', memberList.length);\r\n Loading.hide();\r\n })\r\n return;\r\n }\r\n this.ms.getSearchMember({\r\n currentPage,\r\n pageSize,\r\n key: this.ms.searchValue || searchValue || searchId,\r\n isSingleMember: this.ms.searchValue ? true : isSingleMember\r\n })\r\n .then(ret => {\r\n this.loadUserListSuccess(ret, type, pageSize);\r\n Loading.hide();\r\n })\r\n .catch(err => Loading.hide());\r\n }\r\n\r\n loadUserListSuccess = (ret, type, pageSize) => {\r\n this.dataLoaded = true;\r\n const { ColumnInfo, Data } = ret || {};\r\n this.setState({ columnInfo: ColumnInfo});\r\n this.precisionInfo(ColumnInfo);\r\n this.usersLoadSuccess(type === 's' ? ret : JSON.parse(Data), type, pageSize);\r\n }\r\n\r\n precisionInfo = (columnInfo) => {\r\n const precisionInfo = {};\r\n if (columnInfo && columnInfo.length > 0) {\r\n columnInfo = columnInfo.filter(v => !!v.Precision) || [];\r\n columnInfo.length > 0 &&\r\n columnInfo.forEach(item => {\r\n const { Precision, FieldName } = item;\r\n if (Precision) precisionInfo[FieldName] = Precision;\r\n })\r\n }\r\n this.ms.setPrecisionInfo(precisionInfo);\r\n }\r\n\r\n // 获取会员的卡信息\r\n async getCardInfoByMemberId (memberId) {\r\n const cardInfo = await this.ms.getCardInfoByMemberId(memberId) || {}\r\n const { data = [] } = cardInfo\r\n this.setState({\r\n cardInfo: data\r\n })\r\n }\r\n\r\n handleSearchClick = () => {\r\n const { searchValue } = this.state;\r\n const { storeKey } = this.props\r\n this.userSearch = true;\r\n this.currentPage = 1;\r\n this.setState({ nomoreData: false, selected: undefined });\r\n this.loadUserList('search', this.currentPage);\r\n }\r\n\r\n handleSearchChange = (val) => {\r\n this.setState({searchValue: val});\r\n }\r\n\r\n\r\n usersLoadSuccess = (data = [], type, pageSize = 10) => {\r\n const {status} = this.props;\r\n const { selected } = this.state;\r\n if (this.willUnmount) return;\r\n if (data.length) {\r\n data.forEach(v => userInfoFormat(v));\r\n\r\n if (type === 'loadmore') {\r\n const {memberList = []} = this.state;\r\n memberList.push(...data);\r\n return this.setState({nomoreData: data.length < pageSize, loadmoreLoading: false, memberList});\r\n }\r\n this.setState({memberList: data}, () => {\r\n if (type === 'search') {\r\n this.memberCardList.resetSlideTop();\r\n }\r\n const [item = {}] = data;\r\n // const key=type==='opencard'?(selected-(this.currentPage-1)*pageSize):0;\r\n // const item =data[key];\r\n this.loadUserInfo(0, item.ID, item, type);\r\n });\r\n } else if (type === 'loadmore') {\r\n this.setState({nomoreData: true, loadmoreLoading: false});\r\n } else {\r\n Loading.hide();\r\n this.setState({\r\n memberList: [],\r\n recommend: [],\r\n member: {},\r\n memberInfo: {record: [], like: [], recency: []}\r\n }, () => {\r\n if (type === 'search') {\r\n this.memberCardList.resetSlideTop();\r\n }\r\n });\r\n }\r\n }\r\n\r\n //获取会员状态集合,在页面上以图片戳的形式展示。\r\n getMemberStateStamp = (item) => {\r\n let arr = [];\r\n const { isExpiration, isUserLogout, isUserLoss, isUserNotUsing } = item;\r\n //已挂失\r\n if (isUserLoss) arr.push(<Ticon type='yiguashi' />)\r\n //已过期\r\n if (isExpiration) arr.push(<Ticon type='yiguoqi' />)\r\n //已注销\r\n if (isUserLogout) arr.push(<Ticon type='yizhuxiao' />)\r\n //未启用\r\n if (isUserNotUsing) arr.push(<Ticon type='weiqiyong' />)\r\n return arr;\r\n }\r\n controllerEvent = (methodName, methodArgs) => {\r\n return new Promise(resolve => {\r\n this.context.onEvent({ 'controllerEvent': Action.fromJS(this.context.viewModel, methodName) }, 'controllerEvent', {...methodArgs, fn: function(result) {\r\n resolve(result);\r\n }});\r\n });\r\n }\r\n // 获取商品行\r\n getRetails() {\r\n const data = this.context.viewModel.data || {};\r\n return toJS(data.RetailDetails || []);\r\n }\r\n handleOk = async (noList) => {\r\n if (noList) {\r\n return this.props.onCancel();\r\n }\r\n const { member, errorMsg } = this.state;\r\n // 增加会员对手工改价的校验\r\n let isArrowPriceChange = await this.controllerEvent('memberPriceChangeValidate', {member, retailDetails: this.getRetails()});\r\n if (!isArrowPriceChange) {\r\n return this.props.onCancel();\r\n }\r\n const { isExpiration, MemberState: { Id, Name } = {} } = member || {};\r\n if (noList) {\r\n return this.props.onCancel();\r\n }\r\n if (errorMsg) return Message.warn(errorMsg);\r\n if (errMessageTip(member)) return;\r\n const { data: { Member: {ID} = {}, IdbusiType } = {}, items = [] } = this.context.viewModel || {};\r\n if (IdbusiType == 39) {\r\n Message.warn('取货时不可以切换选择会员');\r\n return;\r\n }\r\n const viewVoucher = items.find(v => v.type === 'Voucher') || {};\r\n const isTakeTheir = viewVoucher.getIsTakeTheir && viewVoucher.getIsTakeTheir();\r\n if (isTakeTheir) {\r\n Message.warn('自提时不可以切换选择会员');\r\n return;\r\n }\r\n\r\n //会员不可更改判断\r\n const memberStore = this.context.viewModel && this.context.viewModel.items.find(el => el.name == 'MemberStore');\r\n const uiState = memberStore.uiState;\r\n if (!!uiState.tip) {\r\n Message.info(uiState.tip)\r\n return;\r\n }\r\n if (ID) {\r\n const _this = this;\r\n return ModalWraper.confirm({\r\n className: 'tplus-confirm-modal',\r\n title: '切换会员',\r\n content: '您确定要替换当前会员吗?',\r\n onOk() {\r\n _this.handleChangeMember(member)\r\n }\r\n })\r\n }\r\n this.handleChangeMember(member)\r\n }\r\n\r\n handleChangeMember = (member) => {\r\n const { onOk, memberChange, selectMemberSuccess, getMemberBirthday } = this.props;\r\n stores.selectMemberStore.seletMember(member, true);\r\n memberChange && memberChange(member)\r\n onOk && onOk();\r\n getMemberBirthday && getMemberBirthday(member.ID, (result) => {\r\n stores.selectMemberStore.changeMemberCare(result);\r\n })\r\n //商品输入框焦点。\r\n setTimeout(() => { selectMemberSuccess && selectMemberSuccess(member) }, 300)\r\n }\r\n\r\n keyboardOnOk = () => {\r\n this.handleSearchClick();\r\n }\r\n\r\n keyboardOnClose = () => {\r\n this.searchRef && this.searchRef.blur();\r\n }\r\n\r\n onKeyPressed = (e) => {\r\n const { keyCode } = e;\r\n const enterKey = 13;\r\n if (keyCode === enterKey) {\r\n this.handleSearchClick();\r\n this.keyboardOnClose();\r\n }\r\n }\r\n\r\n memberTabChange = (tabIndex) => {\r\n this.setState({tabIndex});\r\n const currentUserRetail = this.cacheUserRetail[this.currentMemberId];\r\n if (!currentUserRetail) {\r\n return this.loadUserRetail(this.currentMemberId);\r\n }\r\n this.setState({...currentUserRetail});\r\n const activeElement = document.activeElement;\r\n activeElement && activeElement.blur()\r\n }\r\n\r\n MemberMenuChange = (dto) => {\r\n const { memberList } = this.state;\r\n userInfoFormat(dto)\r\n let arr = [];\r\n memberList.map(item => {\r\n if (item.ID == dto.ID) {\r\n arr.push(dto)\r\n } else {\r\n arr.push(item)\r\n }\r\n })\r\n this.setState({ member: dto, memberList: arr })\r\n }\r\n\r\n onClear = (key, input) => {\r\n this.setState({[key]: ''});\r\n input.focus();\r\n }\r\n\r\n changeIsAllAuthority = () => {\r\n this.setState({\r\n isAllAuthority: false\r\n })\r\n }\r\n\r\n // 重置购买记录相关数据\r\n resetLastRetail = async (pageNo) => {\r\n this.setState({\r\n lastRetailPageNo: pageNo\r\n })\r\n }\r\n // 获取会员的购买记录\r\n findMemberLastRetailDetailList = async (pageSize) => {\r\n let { lastRetailPageNo, member: { ID } = {}, lastRetailList = [] } = this.state\r\n const params = {\r\n memberId: ID,\r\n pageNo: lastRetailPageNo,\r\n pageSize\r\n }\r\n this.setState({\r\n lastRetailLoading: true\r\n })\r\n try {\r\n const ret = await this.ms.findMemberLastRetailDetail(params)\r\n const { data: { recencyBeanList = [], totalCount = 0 } = {} } = ret\r\n lastRetailList.push(...recencyBeanList)\r\n\r\n this.setState({\r\n lastRetailTotal: totalCount,\r\n lastRetailLoading: false,\r\n lastRetailPageNo: pageSize === 3 ? 0 : this.state.lastRetailPageNo + 1,\r\n lastRetailList: this.state.lastRetailPageNo === 0 ? recencyBeanList : lastRetailList\r\n })\r\n\r\n } catch (err) {\r\n this.setState({\r\n lastRetailLoading: false\r\n })\r\n }\r\n }\r\n\r\n render() {\r\n const isUserAndroidKey = !! window.android_setKeyBoard;\r\n\r\n const user = JSON.parse(localStorage.getItem('user')) || {};\r\n const { loginInfo: { IsEnableUMember } = {} } = user;\r\n const { searchValue, memberList = [], memberInfo = {}, member = {}, recommend = [], memberTabHeight = 0,\r\n loadmoreLoading, nomoreData, initEmpty, columnInfo = [], loadingUser, loadingBtn, selected, isAllAuthority,lastRetailTotal, lastRetailList, lastRetailLoading,isCC, cardInfo, cardList } = this.state;\r\n const { status, showModal, titleModal, type, defaultActiveKey, onCancel, viewMemberInfo, authProcess, mode, title, storeKey } = this.props;\r\n const { precisionInfo = {} } = this.ms;\r\n const showSearch = ['会员查询'].includes(type);\r\n const noList = !memberList.length;\r\n const showSelectBtn = type === '会员查询' || !!status;\r\n //是否正常开单\r\n let voucherStateType = (mode !== 'practice');\r\n const { memberEnumState } = enumController.getEnumOj();\r\n\r\n return (\r\n <div className='memberShopContainer'>\r\n {\r\n showSearch &&\r\n <div className='search-container'>\r\n <Input\r\n tplusInput\r\n placeholder='手机号/卡号/名称/身份证号'\r\n prefix='sousuo'\r\n className={`${hotKey.hotKeyNotFilter('search-input')} android_focus_keyboard`}\r\n value={searchValue}\r\n type='native'\r\n onChange={({ target: { value: searchValue } }) => this.setState({ searchValue })}\r\n inputRef={ref => this.searchRef = ref}\r\n onClear={() => this.onClear('searchValue', this.searchRef)}\r\n onFocus={({ target }) => {\r\n if(!isUserAndroidKey ){\r\n this.focusInputName = 'searchValue';\r\n this.inputTarget = target;\r\n Keyboard.open(v => {\r\n const key = this.focusInputName;\r\n const value = Keyboard.getNewValue(this.inputTarget, this.inputTarget.value, v);\r\n this.setState({ [key]: value });\r\n }, this.keyboardOnOk, this.keyboardOnClose)();\r\n }\r\n }}\r\n onBlur={Keyboard.close}\r\n onKeyDown={this.onKeyPressed}\r\n />\r\n <Button className='primary-btn' onClick={this.handleSearchClick}>搜索</Button>\r\n </div>\r\n }\r\n <div ref={ref => this.memberTab = ref} className={`${hotKey.hotKeyBindClass('4', 'member-shop-content')}`}>\r\n {\r\n this.dataLoaded && noList && <div className='empty-data-img'><div className='tip-text'>暂无数据 ~</div></div>\r\n }\r\n <MemberCardList\r\n ref={list => this.memberCardList = list}\r\n title={title}\r\n storeKey={storeKey}\r\n memberList={memberList}\r\n precisionInfo={precisionInfo}\r\n loadmoreLoading={loadmoreLoading}\r\n nomoreData={nomoreData}\r\n loadUserInfo={this.loadUserInfo}\r\n progressListen={this.progressListen}\r\n getMemberStateStamp={this.getMemberStateStamp}\r\n selected={selected}\r\n isCC={isCC}\r\n cardList={cardList}\r\n />\r\n\r\n <div className='member-content-tab content' style={{ display: noList ? 'none' : 'flex' }}>\r\n {\r\n (voucherStateType && !isAllAuthority) &&\r\n <div>\r\n <div className='menu'>\r\n <MemberMenu\r\n authProcess={authProcess}\r\n changeIsAllAuthority={this.changeIsAllAuthority}\r\n loadUserList={this.loadUserList}\r\n member={member}\r\n memberEnumState={memberEnumState}\r\n loadingBtn={loadingBtn}\r\n selected={selected}\r\n cardList={cardList}\r\n getCardList={this.getCardList}\r\n loadUserInfo={(key, Idmember, item, type, syncUpdateMember) => this.loadUserInfo(key, Idmember, item, type, syncUpdateMember)}\r\n handleChange={this.MemberMenuChange}></MemberMenu>\r\n </div>\r\n <div className='line'></div>\r\n </div>\r\n }\r\n <MemberTab\r\n defaultActiveKey={defaultActiveKey}\r\n member={member}\r\n memberInfo={memberInfo}\r\n showModal={showModal}\r\n title={title}\r\n titleModal={titleModal}\r\n storeKey={storeKey}\r\n recommend={recommend}\r\n memberTabHeight={memberTabHeight}\r\n initEmpty={initEmpty}\r\n memberList={memberList}\r\n columnInfo={columnInfo}\r\n precisionInfo={precisionInfo}\r\n onChange={this.memberTabChange}\r\n getMemberStateStamp={this.getMemberStateStamp}\r\n cardInfo={cardInfo}\r\n \t\t\t lastRetailTotal={lastRetailTotal}\r\n lastRetailList={lastRetailList}\r\n lastRetailLoading={lastRetailLoading}\r\n findMemberLastRetailDetailList={this.findMemberLastRetailDetailList}\r\n />\r\n </div>\r\n </div>\r\n <div className='member-footer'>\r\n <Button onClick={onCancel}>取消</Button>\r\n {\r\n showSelectBtn &&\r\n <Button\r\n onClick={() => this.handleOk(noList)}\r\n type=\"primary\"\r\n style={{ marginRight: 5 }}\r\n disabled={loadingUser}\r\n >\r\n {\r\n loadingUser ? '加载会员' : noList ? '确定' : '选取会员'\r\n }\r\n </Button>\r\n }\r\n </div>\r\n </div>\r\n )\r\n }\r\n}\r\n"]}
@@ -78,31 +78,13 @@
78
78
  line-height: 65px;
79
79
  display: flex;
80
80
  align-items: center;
81
- .temp {
82
- padding-right: 30px;
83
- .tplus-input-clear {
84
- display: none;
85
- }
86
- }
87
81
  .search-input{
88
- margin-right: -28px;
82
+ margin-right: 20px;
89
83
  width: 270px;
90
84
  input{
91
85
  padding-left: 0;
92
86
  }
93
87
  }
94
- .primary-btn {
95
- margin-left: 50px;
96
- }
97
- .icon {
98
- position: absolute;
99
- left: 250px;
100
- font-size: 20px;
101
- color : @color-g2;
102
- cursor : pointer;
103
- margin-left: 8px;
104
- margin-right: 8px;
105
- }
106
88
  }
107
89
  .member-shop-content{
108
90
  display: flex;
@@ -9,10 +9,6 @@ var _button = require('antd/es/button');
9
9
 
10
10
  var _button2 = _interopRequireDefault(_button);
11
11
 
12
- var _extends2 = require('babel-runtime/helpers/extends');
13
-
14
- var _extends3 = _interopRequireDefault(_extends2);
15
-
16
12
  var _defineProperty2 = require('babel-runtime/helpers/defineProperty');
17
13
 
18
14
  var _defineProperty3 = _interopRequireDefault(_defineProperty2);
@@ -77,8 +73,6 @@ var _MemberCardList2 = _interopRequireDefault(_MemberCardList);
77
73
 
78
74
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
79
75
 
80
- var hasElectron = _mutantsMicrofx.env.platform === _mutantsMicrofx.env.constant.platform.electron;
81
-
82
76
  // let swiperSelectObserver;
83
77
 
84
78
  var ShopMemberStorage = (_temp = _class = function (_Component) {
@@ -87,63 +81,45 @@ var ShopMemberStorage = (_temp = _class = function (_Component) {
87
81
  function ShopMemberStorage(props) {
88
82
  (0, _classCallCheck3.default)(this, ShopMemberStorage);
89
83
 
90
- var _this2 = (0, _possibleConstructorReturn3.default)(this, (ShopMemberStorage.__proto__ || (0, _getPrototypeOf2.default)(ShopMemberStorage)).call(this, props));
84
+ var _this = (0, _possibleConstructorReturn3.default)(this, (ShopMemberStorage.__proto__ || (0, _getPrototypeOf2.default)(ShopMemberStorage)).call(this, props));
91
85
 
92
- _this2.currentPage = 1;
93
- _this2.cacheUserRetail = {};
94
-
95
- _this2.handleReadICard = function () {
96
- _this2.readRfCard();
97
- };
86
+ _this.currentPage = 1;
87
+ _this.cacheUserRetail = {};
98
88
 
99
- _this2.changeScanProduct = function () {
100
- if (_this2.scanObj) _this2.scanObj.startScan();
101
- };
102
-
103
- _this2.onScanCzkResult = function (val) {
104
- var _this = _this2;
105
- _this2.setState({
106
- searchValue: val
107
- });
108
- setTimeout(function () {
109
- _this.getCardList(val);
110
- }, 0);
111
- };
112
-
113
- _this2.hotKeyListener = function (nodeName, index) {
89
+ _this.hotKeyListener = function (nodeName, index) {
114
90
  if (nodeName && ~nodeName.className.indexOf('slide-selected')) {
115
- _this2.isHotKeyAction = true;
91
+ _this.isHotKeyAction = true;
116
92
  var activeElement = document.activeElement;
117
93
  activeElement && activeElement.blur();
118
94
  }
119
95
  };
120
96
 
121
- _this2.observerCard = function () {
97
+ _this.observerCard = function () {
122
98
  setTimeout(function () {
123
99
  var slideSelected = document.querySelector('.slide-selected');
124
- _this2.prevSlideSelected && swiperSelectObserver.unobserve(_this2.prevSlideSelected);
125
- _this2.prevSlideSelected = slideSelected;
100
+ _this.prevSlideSelected && swiperSelectObserver.unobserve(_this.prevSlideSelected);
101
+ _this.prevSlideSelected = slideSelected;
126
102
  slideSelected && swiperSelectObserver.observe(slideSelected);
127
103
  });
128
104
  };
129
105
 
130
- _this2.windowOnresize = function () {
131
- if (!_this2.memberTab) {
132
- return window.removeEventListener('resize', _this2.windowOnresize);
106
+ _this.windowOnresize = function () {
107
+ if (!_this.memberTab) {
108
+ return window.removeEventListener('resize', _this.windowOnresize);
133
109
  };
134
- var memberTabHeight = _this2.state.memberTabHeight;
110
+ var memberTabHeight = _this.state.memberTabHeight;
135
111
 
136
- var clientHeight = _this2.memberTab.clientHeight - _this2.state.tabMenuHeight;
112
+ var clientHeight = _this.memberTab.clientHeight - _this.state.tabMenuHeight;
137
113
  if (memberTabHeight !== clientHeight) {
138
- _this2.setState({ memberTabHeight: clientHeight });
114
+ _this.setState({ memberTabHeight: clientHeight });
139
115
  }
140
116
  };
141
117
 
142
- _this2.isNotSetState = function (Idmember) {
143
- if (_this2.willUnmount || Idmember !== _this2.currentMemberId) return true;
118
+ _this.isNotSetState = function (Idmember) {
119
+ if (_this.willUnmount || Idmember !== _this.currentMemberId) return true;
144
120
  };
145
121
 
146
- _this2.getCardList = function (cardNo) {
122
+ _this.getCardList = function (cardNo) {
147
123
  var currentPage = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;
148
124
  var pageSize = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 10;
149
125
  var key = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 0;
@@ -154,25 +130,25 @@ var ShopMemberStorage = (_temp = _class = function (_Component) {
154
130
  return;
155
131
  }
156
132
  _tplusComponentsTouch.Loading.show({ target: '.memberShopContainer' });
157
- _this2.setState({
133
+ _this.setState({
158
134
  loadingBtn: true
159
135
  });
160
- _this2.ms.getCardInfoByCardNo(cardNo).then(function (ret) {
136
+ _this.ms.getCardInfoByCardNo(cardNo).then(function (ret) {
161
137
  var _ref = ret || {},
162
138
  _ref$data = _ref.data,
163
139
  data = _ref$data === undefined ? [] : _ref$data;
164
140
 
165
141
  if (data.length) {
166
- _this2.setState({
142
+ _this.setState({
167
143
  cardList: data,
168
144
  selected: 0,
169
145
  loadingBtn: false
170
146
  }, function () {
171
- _this2.setCardInfo(currentPage === 1 ? 0 : key, data[0]);
172
- _this2.memberCardList.resetSlideTop();
147
+ _this.setCardInfo(currentPage === 1 ? 0 : key, data[0]);
148
+ _this.memberCardList.resetSlideTop();
173
149
  });
174
150
  } else {
175
- _this2.setCardInfo(key);
151
+ _this.setCardInfo(key);
176
152
  }
177
153
 
178
154
  _tplusComponentsTouch.Loading.hide();
@@ -185,20 +161,20 @@ var ShopMemberStorage = (_temp = _class = function (_Component) {
185
161
  content: '\u8BF7\u8F93\u5165\u5361\u53F7\uFF01'
186
162
  });
187
163
  }
188
- _this2.setCardInfo(key);
189
- _this2.setState({
164
+ _this.setCardInfo(key);
165
+ _this.setState({
190
166
  loadingBtn: false
191
167
  });
192
168
  _tplusComponentsTouch.Loading.hide();
193
169
  });
194
170
  };
195
171
 
196
- _this2.loadUserInfo = function (ID) {
172
+ _this.loadUserInfo = function (ID) {
197
173
  // this.observerCard();
198
174
 
199
- _this2.ms.getGetUmemberDTO(ID).then(function (ret) {
175
+ _this.ms.getGetUmemberDTO(ID).then(function (ret) {
200
176
  _mutantsMicrofx.stores.selectMemberStore.setCurMemberInfo(ret);
201
- var memberChange = _this2.props.memberChange;
177
+ var memberChange = _this.props.memberChange;
202
178
 
203
179
  memberChange && memberChange(ret);
204
180
  }).catch(function (err) {
@@ -206,50 +182,50 @@ var ShopMemberStorage = (_temp = _class = function (_Component) {
206
182
  });
207
183
  };
208
184
 
209
- _this2.setCardInfo = function (key) {
185
+ _this.setCardInfo = function (key) {
210
186
  var cardInfo = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
211
187
 
212
- _this2.setState({
188
+ _this.setState({
213
189
  selected: key,
214
190
  cardInfo: cardInfo
215
191
  });
216
192
  };
217
193
 
218
- _this2.handleSearchClick = function () {
219
- var _this2$state = _this2.state,
220
- searchValue = _this2$state.searchValue,
221
- selected = _this2$state.selected;
194
+ _this.handleSearchClick = function () {
195
+ var _this$state = _this.state,
196
+ searchValue = _this$state.searchValue,
197
+ selected = _this$state.selected;
222
198
 
223
- _this2.userSearch = true;
224
- _this2.currentPage = 1;
199
+ _this.userSearch = true;
200
+ _this.currentPage = 1;
225
201
  // this.setState({ selected: undefined });
226
- _this2.getCardList(searchValue, _this2.currentPage, 10, selected);
202
+ _this.getCardList(searchValue, _this.currentPage, 10, selected);
227
203
  };
228
204
 
229
- _this2.handleSearchChange = function (val) {
230
- _this2.setState({ searchValue: val });
205
+ _this.handleSearchChange = function (val) {
206
+ _this.setState({ searchValue: val });
231
207
  };
232
208
 
233
- _this2.keyboardOnOk = function () {
234
- _this2.handleSearchClick();
209
+ _this.keyboardOnOk = function () {
210
+ _this.handleSearchClick();
235
211
  };
236
212
 
237
- _this2.keyboardOnClose = function () {
238
- _this2.searchRef && _this2.searchRef.blur();
213
+ _this.keyboardOnClose = function () {
214
+ _this.searchRef && _this.searchRef.blur();
239
215
  };
240
216
 
241
- _this2.onKeyPressed = function (e) {
217
+ _this.onKeyPressed = function (e) {
242
218
  var keyCode = e.keyCode;
243
219
 
244
220
  var enterKey = 13;
245
221
  if (keyCode === enterKey) {
246
- _this2.handleSearchClick();
247
- _this2.keyboardOnClose();
222
+ _this.handleSearchClick();
223
+ _this.keyboardOnClose();
248
224
  }
249
225
  };
250
226
 
251
- _this2.MemberMenuChange = function (dto) {
252
- var memberList = _this2.state.memberList;
227
+ _this.MemberMenuChange = function (dto) {
228
+ var memberList = _this.state.memberList;
253
229
 
254
230
  (0, _utils.userInfoFormat)(dto);
255
231
  var arr = [];
@@ -260,46 +236,31 @@ var ShopMemberStorage = (_temp = _class = function (_Component) {
260
236
  arr.push(item);
261
237
  }
262
238
  });
263
- _this2.setState({ member: dto, memberList: arr });
239
+ _this.setState({ member: dto, memberList: arr });
264
240
  };
265
241
 
266
- _this2.onClear = function (key, input) {
267
- _this2.setState((0, _defineProperty3.default)({}, key, ''));
242
+ _this.onClear = function (key, input) {
243
+ _this.setState((0, _defineProperty3.default)({}, key, ''));
268
244
  input.focus();
269
245
  };
270
246
 
271
- var mode = _this2.props.mode;
272
-
273
- _this2.hasElectron = hasElectron;
274
-
275
- var _ref2 = _mutantsMicrofx.stores.user.options.get('loginInfo') || {},
276
- ICCardServer = _ref2.ICCardServer;
247
+ var mode = _this.props.mode;
277
248
 
278
- _this2.iCCardServer = parseInt(ICCardServer); // 启用IC卡:0为禁用 1为启用
279
- _this2.state = {
249
+ _this.state = {
280
250
  searchValue: '',
281
- searchStatus: !!_this2.props.listArr ? true : false,
282
- tabIndex: _this2.props.defaultActiveKey,
251
+ searchStatus: !!_this.props.listArr ? true : false,
252
+ tabIndex: _this.props.defaultActiveKey,
283
253
  tabMenuHeight: mode !== 'practice' ? 64 : 0, // 64为table上部操作菜单高度
284
254
  cardList: [], // 储值卡列表
285
- cardInfo: {}, // 当前被选中的卡信息
286
- connectCardStatus: false, //连接IC卡状态
287
- connectCardError: '' //连接IC卡错误后记录错误信息
255
+ cardInfo: {} // 当前被选中的卡信息
288
256
  };
289
- _this2.ms = _api2.default;
290
- //移动端环境下,没有读取IC卡的方式。
291
-
292
- var _ref3 = _mutantsUtil.platform || {},
293
- isHorizontalPad = _ref3.isHorizontalPad;
294
-
295
- _this2.isHorizontalPad = !!isHorizontalPad;
296
- return _this2;
257
+ _this.ms = _api2.default;
258
+ return _this;
297
259
  }
298
260
 
299
261
  (0, _createClass3.default)(ShopMemberStorage, [{
300
262
  key: 'componentDidMount',
301
263
  value: function componentDidMount() {
302
- this.connectRfCard();
303
264
  window.addEventListener('resize', this.windowOnresize);
304
265
  $.on(this.hotKeyListener);
305
266
  this.ms.searchValue = ''; //初始化完成筛选列表清空数据(会员新增成功——封涛)
@@ -325,75 +286,6 @@ var ShopMemberStorage = (_temp = _class = function (_Component) {
325
286
  $.off(this.hotKeyListener);
326
287
  }
327
288
 
328
- //IC卡关闭
329
-
330
- }, {
331
- key: 'closeRfCard',
332
- value: function closeRfCard() {
333
- if (this.hasElectron === true && this.iCCardServer === 1) {
334
- _mutantsMicrofx.nativeMs.setIpcRendererMethod('CloseRfCard');
335
- }
336
- }
337
- }, {
338
- key: 'readRfCard',
339
-
340
- //IC卡读取
341
- value: function readRfCard() {
342
- var _this3 = this;
343
-
344
- //客户端环境下,并开启了启用IC卡。
345
- if (this.hasElectron === true && this.iCCardServer === 1) {
346
- var _state2 = this.state,
347
- connectCardStatus = _state2.connectCardStatus,
348
- connectCardError = _state2.connectCardError;
349
-
350
- if (connectCardStatus === false) {
351
- _tplusComponentsTouch.Message.error(connectCardError ? connectCardError : '读取IC卡失败');
352
- this.connectRfCard(); //读取失败后,重新连接一下。
353
- return;
354
- }
355
- var params = { cardPsw: this.iCCardPassword, cardSec: 13, cardKm: 0 };
356
- _mutantsMicrofx.nativeMs.setIpcRendererMethod('ReadRfCard', (0, _extends3.default)({}, params), function (ret) {
357
- if (ret.status === 0) {
358
- _tplusComponentsTouch.Message.error(ret.value);
359
- _this3.connectRfCard(); //读取失败后,重新连接一下。
360
- return;
361
- } else if (ret.status === 1) {
362
- // this.searchMember(ret.value);
363
- // this.czkInput.input["value"]=ret.value;
364
- _this3.setState({
365
- searchValue: ret.value
366
- });
367
- _this3.getCardList(ret.value);
368
- }
369
- });
370
- }
371
- }
372
-
373
- //IC卡连接
374
-
375
- }, {
376
- key: 'connectRfCard',
377
- value: function connectRfCard() {
378
- var _this4 = this;
379
-
380
- //客户端环境下,并开启了启用IC卡。
381
- if (this.hasElectron === true && this.iCCardServer === 1) {
382
- _mutantsMicrofx.nativeMs.setIpcRendererMethod('ConnectRfCard', null, function (ret) {
383
- var result = {};
384
- if (ret.status === 0) {
385
- result = { connectCardStatus: false, connectCardError: ret.value };
386
- } else {
387
- result = { connectCardStatus: true, connectCardError: '' };
388
- }
389
- _this4.setState(result);
390
- });
391
- }
392
- }
393
-
394
- //移动端:扫描商品
395
-
396
-
397
289
  // 获取储值卡信息
398
290
 
399
291
 
@@ -402,19 +294,19 @@ var ShopMemberStorage = (_temp = _class = function (_Component) {
402
294
  }, {
403
295
  key: 'render',
404
296
  value: function render() {
405
- var _this5 = this;
297
+ var _this2 = this;
406
298
 
407
299
  var isUserAndroidKey = !!window.android_setKeyBoard;
408
- var _state3 = this.state,
409
- searchValue = _state3.searchValue,
410
- _state3$memberTabHeig = _state3.memberTabHeight,
411
- memberTabHeight = _state3$memberTabHeig === undefined ? 0 : _state3$memberTabHeig,
412
- initEmpty = _state3.initEmpty,
413
- loadingBtn = _state3.loadingBtn,
414
- selected = _state3.selected,
415
- isAllAuthority = _state3.isAllAuthority,
416
- cardList = _state3.cardList,
417
- cardInfo = _state3.cardInfo;
300
+ var _state2 = this.state,
301
+ searchValue = _state2.searchValue,
302
+ _state2$memberTabHeig = _state2.memberTabHeight,
303
+ memberTabHeight = _state2$memberTabHeig === undefined ? 0 : _state2$memberTabHeig,
304
+ initEmpty = _state2.initEmpty,
305
+ loadingBtn = _state2.loadingBtn,
306
+ selected = _state2.selected,
307
+ isAllAuthority = _state2.isAllAuthority,
308
+ cardList = _state2.cardList,
309
+ cardInfo = _state2.cardInfo;
418
310
  var _props = this.props,
419
311
  status = _props.status,
420
312
  showModal = _props.showModal,
@@ -445,42 +337,35 @@ var ShopMemberStorage = (_temp = _class = function (_Component) {
445
337
  tplusInput: true,
446
338
  placeholder: '\u5361\u53F7/\u624B\u673A\u53F7',
447
339
  prefix: 'sousuo',
448
- className: searchClassName + ' android_focus_keyboard ' + (this.hasElectron === true && this.iCCardServer === 1 || this.isHorizontalPad === true ? 'temp' : ''),
340
+ className: searchClassName + ' android_focus_keyboard',
449
341
  value: searchValue,
450
342
  type: 'native',
451
- onChange: function onChange(_ref4) {
452
- var searchValue = _ref4.target.value;
453
- return _this5.setState({ searchValue: searchValue });
343
+ onChange: function onChange(_ref2) {
344
+ var searchValue = _ref2.target.value;
345
+ return _this2.setState({ searchValue: searchValue });
454
346
  },
455
347
  inputRef: function inputRef(ref) {
456
- return _this5.searchRef = ref;
348
+ return _this2.searchRef = ref;
457
349
  },
458
350
  onClear: function onClear() {
459
- return _this5.onClear('searchValue', _this5.searchRef);
351
+ return _this2.onClear('searchValue', _this2.searchRef);
460
352
  },
461
- onFocus: function onFocus(_ref5) {
462
- var target = _ref5.target;
353
+ onFocus: function onFocus(_ref3) {
354
+ var target = _ref3.target;
463
355
 
464
356
  if (!isUserAndroidKey) {
465
- _this5.focusInputName = 'searchValue';
466
- _this5.inputTarget = target;
357
+ _this2.focusInputName = 'searchValue';
358
+ _this2.inputTarget = target;
467
359
  _tplusComponentsTouch.Keyboard.open(function (v) {
468
- var key = _this5.focusInputName;
469
- var value = _tplusComponentsTouch.Keyboard.getNewValue(_this5.inputTarget, _this5.inputTarget.value, v);
470
- _this5.setState((0, _defineProperty3.default)({}, key, value));
471
- }, _this5.keyboardOnOk, _this5.keyboardOnClose)();
360
+ var key = _this2.focusInputName;
361
+ var value = _tplusComponentsTouch.Keyboard.getNewValue(_this2.inputTarget, _this2.inputTarget.value, v);
362
+ _this2.setState((0, _defineProperty3.default)({}, key, value));
363
+ }, _this2.keyboardOnOk, _this2.keyboardOnClose)();
472
364
  }
473
365
  },
474
366
  onBlur: _tplusComponentsTouch.Keyboard.close,
475
367
  onKeyDown: this.onKeyPressed
476
368
  }),
477
- this.hasElectron === true && this.iCCardServer === 1 && _react2.default.createElement(_tplusComponentsTouch.Ticon, { className: 'icon', onClick: this.handleReadICard, type: 'ICka' }),
478
- this.isHorizontalPad && _react2.default.createElement(_tplusComponentsTouch.Ticon, { type: 'saomiao1', className: 'icon', onClick: this.changeScanProduct }),
479
-
480
- /* 扫描组件 */
481
- this.isHorizontalPad && _react2.default.createElement(Scan, { ref: function ref(scan) {
482
- return _this5.scanObj = scan;
483
- }, onChange: this.onScanCzkResult }),
484
369
  _react2.default.createElement(
485
370
  _button2.default,
486
371
  { className: 'primary-btn', onClick: this.handleSearchClick },
@@ -490,15 +375,15 @@ var ShopMemberStorage = (_temp = _class = function (_Component) {
490
375
  _react2.default.createElement(
491
376
  'div',
492
377
  {
493
- ref: function ref(_ref6) {
494
- return _this5.memberTab = _ref6;
378
+ ref: function ref(_ref4) {
379
+ return _this2.memberTab = _ref4;
495
380
  },
496
381
  className: '' + memberTabClassName
497
382
  },
498
383
  noList && _react2.default.createElement('div', { className: 'empty-data-img storage-empty-data-img' }),
499
384
  _react2.default.createElement(_MemberCardList2.default, {
500
385
  ref: function ref(list) {
501
- return _this5.memberCardList = list;
386
+ return _this2.memberCardList = list;
502
387
  },
503
388
  title: title,
504
389
  storeKey: storeKey,
@@ -1 +1 @@
1
- {"version":3,"sources":["tplus-member/member/ShopMemberStorage.js"],"names":["hasElectron","env","platform","constant","electron","ShopMemberStorage","props","currentPage","cacheUserRetail","handleReadICard","readRfCard","changeScanProduct","scanObj","startScan","onScanCzkResult","val","_this","setState","searchValue","setTimeout","getCardList","hotKeyListener","nodeName","index","className","indexOf","isHotKeyAction","activeElement","document","blur","observerCard","slideSelected","querySelector","prevSlideSelected","swiperSelectObserver","unobserve","observe","windowOnresize","memberTab","window","removeEventListener","memberTabHeight","state","clientHeight","tabMenuHeight","isNotSetState","Idmember","willUnmount","currentMemberId","cardNo","pageSize","key","replace","length","Message","error","Loading","show","target","loadingBtn","ms","getCardInfoByCardNo","then","ret","data","cardList","selected","setCardInfo","memberCardList","resetSlideTop","hide","catch","message","err","includes","ModalWraper","warning","title","content","loadUserInfo","ID","getGetUmemberDTO","stores","selectMemberStore","setCurMemberInfo","memberChange","warn","cardInfo","handleSearchClick","userSearch","handleSearchChange","keyboardOnOk","keyboardOnClose","searchRef","onKeyPressed","e","keyCode","enterKey","MemberMenuChange","dto","memberList","arr","map","item","push","member","onClear","input","focus","mode","user","options","get","ICCardServer","iCCardServer","parseInt","searchStatus","listArr","tabIndex","defaultActiveKey","connectCardStatus","connectCardError","memberStore","isHorizontalPad","connectRfCard","addEventListener","$","on","off","nativeMs","setIpcRendererMethod","params","cardPsw","iCCardPassword","cardSec","cardKm","status","value","result","isUserAndroidKey","android_setKeyBoard","initEmpty","isAllAuthority","showModal","titleModal","type","onCancel","authProcess","storeKey","showSearch","noList","showSelectBtn","voucherStateType","searchClassName","hotKey","hotKeyNotFilter","memberTabClassName","hotKeyBindClass","ref","focusInputName","inputTarget","Keyboard","open","getNewValue","v","close","scan","list","display","Component","defaultProps","contextTypes","viewModel","PropTypes","object","columnInfo","array"],"mappings":"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","file":"ShopMemberStorage.js","sourcesContent":["import React, { Component } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { Button } from 'antd';\r\nimport { ModalWraper, Input, Loading, Message, Ticon, Keyboard, Spin, hotKey } from 'tplus-components-touch';\r\nimport { stores, env, nativeMs } from 'mutants-microfx';\r\nimport { enumController, platform } from 'mutants-util';\r\nimport memberStore from './api';\r\nimport MemberTab from './memberTab/index.js';\r\nimport './ShopMember.less';\r\nimport { formatPrecision, userInfoFormat, errMessageTip } from '../utils';\r\nimport MemberMenuStorage from './memberMenuStorage/index.js'\r\nimport MemberCardList from './MemberCardList'\r\nconst hasElectron = (env.platform === env.constant.platform.electron);\r\n\r\n// let swiperSelectObserver;\r\n\r\nexport default class ShopMemberStorage extends Component {\r\n static defaultProps = {\r\n onCancel: () => {}\r\n };\r\n\r\n static contextTypes = {\r\n viewModel: PropTypes.object,\r\n columnInfo: PropTypes.array,\r\n };\r\n constructor(props) {\r\n super(props);\r\n const { mode } = this.props;\r\n this.hasElectron = hasElectron;\r\n const { ICCardServer } = stores.user.options.get('loginInfo') || {};\r\n this.iCCardServer = parseInt(ICCardServer); // 启用IC卡:0为禁用 1为启用\r\n this.state = {\r\n searchValue: '',\r\n searchStatus: !!this.props.listArr ? true : false,\r\n tabIndex: this.props.defaultActiveKey,\r\n tabMenuHeight: mode !== 'practice' ? 64 : 0, // 64为table上部操作菜单高度\r\n cardList: [], // 储值卡列表\r\n cardInfo: {}, // 当前被选中的卡信息\r\n connectCardStatus: false, //连接IC卡状态\r\n connectCardError: '', //连接IC卡错误后记录错误信息\r\n };\r\n this.ms = memberStore;\r\n //移动端环境下,没有读取IC卡的方式。\r\n const { isHorizontalPad } = platform || {};\r\n this.isHorizontalPad = !!isHorizontalPad;\r\n }\r\n\r\n currentPage = 1;\r\n cacheUserRetail = {};\r\n\r\n componentDidMount() {\r\n this.connectRfCard();\r\n window.addEventListener('resize', this.windowOnresize);\r\n $.on(this.hotKeyListener);\r\n this.ms.searchValue = '';//初始化完成筛选列表清空数据(会员新增成功——封涛)\r\n }\r\n\r\n componentDidUpdate() {\r\n const {memberTabHeight, tabMenuHeight} = this.state;\r\n const clientHeight = this.memberTab.clientHeight - tabMenuHeight;\r\n if (clientHeight !== memberTabHeight) {\r\n this.setState({memberTabHeight: clientHeight});\r\n }\r\n }\r\n\r\n componentWillUnmount() {\r\n this.willUnmount = true;\r\n window.removeEventListener('resize', this.windowOnresize);\r\n // swiperSelectObserver.disconnect();\r\n $.off(this.hotKeyListener);\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 handleReadICard = () => {\r\n this.readRfCard();\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 // this.czkInput.input[\"value\"]=ret.value;\r\n this.setState({\r\n searchValue: ret.value\r\n })\r\n this.getCardList(ret.value);\r\n }\r\n })\r\n }\r\n }\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 //移动端:扫描商品\r\n changeScanProduct = () => {\r\n if (this.scanObj) this.scanObj.startScan()\r\n }\r\n\r\n onScanCzkResult = (val) => {\r\n let _this = this;\r\n this.setState({\r\n searchValue: val\r\n })\r\n setTimeout(() => { _this.getCardList(val) }, 0)\r\n }\r\n\r\n hotKeyListener = (nodeName, index) => {\r\n if (nodeName && ~nodeName.className.indexOf('slide-selected')) {\r\n this.isHotKeyAction = true;\r\n const activeElement = document.activeElement;\r\n activeElement && activeElement.blur();\r\n }\r\n }\r\n\r\n observerCard = () => {\r\n setTimeout(() => {\r\n const slideSelected = document.querySelector('.slide-selected');\r\n this.prevSlideSelected && swiperSelectObserver.unobserve(this.prevSlideSelected);\r\n this.prevSlideSelected = slideSelected;\r\n slideSelected && swiperSelectObserver.observe(slideSelected);\r\n })\r\n }\r\n windowOnresize = () => {\r\n if (!this.memberTab) {\r\n return window.removeEventListener('resize', this.windowOnresize);\r\n };\r\n const {memberTabHeight} = this.state;\r\n const clientHeight = this.memberTab.clientHeight - this.state.tabMenuHeight;\r\n if (memberTabHeight !== clientHeight) {\r\n this.setState({memberTabHeight: clientHeight});\r\n }\r\n }\r\n\r\n isNotSetState = (Idmember) => {\r\n if (this.willUnmount || Idmember !== this.currentMemberId) return true;\r\n }\r\n\r\n // 获取储值卡信息\r\n getCardList = (cardNo, currentPage = 1, pageSize = 10, key = 0) => {\r\n cardNo = cardNo.replace(/\\s+/g,\"\")\r\n if (cardNo.length === 0) {\r\n Message.error('请输入卡号')\r\n return\r\n }\r\n Loading.show({ target: '.memberShopContainer' });\r\n this.setState({\r\n loadingBtn: true\r\n })\r\n this.ms.getCardInfoByCardNo(cardNo)\r\n .then(ret => {\r\n const {data = []} = ret || {}\r\n if (data.length) {\r\n this.setState({\r\n cardList: data,\r\n selected: 0,\r\n loadingBtn: false\r\n }, () => {\r\n this.setCardInfo(currentPage === 1 ? 0 : key, data[0])\r\n this.memberCardList.resetSlideTop();\r\n })\r\n } else {\r\n this.setCardInfo(key)\r\n }\r\n \r\n Loading.hide();\r\n })\r\n .catch(err => {\r\n const { message } = err\r\n if (message.includes('code 404')) {\r\n ModalWraper.warning({\r\n title: '提示',\r\n content: `请输入卡号!`\r\n })\r\n }\r\n this.setCardInfo(key)\r\n this.setState({\r\n loadingBtn: false\r\n })\r\n Loading.hide()\r\n });\r\n }\r\n\r\n loadUserInfo = (ID) => {\r\n // this.observerCard();\r\n\r\n this.ms.getGetUmemberDTO(ID)\r\n .then(ret => {\r\n stores.selectMemberStore.setCurMemberInfo(ret);\r\n const { memberChange } = this.props;\r\n memberChange && memberChange(ret);\r\n }).catch(err => {\r\n Message.warn('会员信息更新失败!')\r\n });\r\n }\r\n\r\n // 设置当前被选中的卡信息\r\n setCardInfo = (key, cardInfo = {}) => {\r\n this.setState({\r\n selected: key,\r\n cardInfo\r\n })\r\n }\r\n\r\n handleSearchClick = () => {\r\n const { searchValue, selected } = this.state;\r\n this.userSearch = true;\r\n this.currentPage = 1;\r\n // this.setState({ selected: undefined });\r\n this.getCardList(searchValue, this.currentPage, 10, selected)\r\n }\r\n\r\n handleSearchChange = (val) => {\r\n this.setState({searchValue: val});\r\n }\r\n\r\n keyboardOnOk = () => {\r\n this.handleSearchClick();\r\n }\r\n\r\n keyboardOnClose = () => {\r\n this.searchRef && this.searchRef.blur();\r\n }\r\n\r\n onKeyPressed = (e) => {\r\n const { keyCode } = e;\r\n const enterKey = 13;\r\n if (keyCode === enterKey) {\r\n this.handleSearchClick();\r\n this.keyboardOnClose();\r\n }\r\n }\r\n\r\n MemberMenuChange = (dto) => {\r\n const { memberList } = this.state;\r\n userInfoFormat(dto)\r\n let arr = [];\r\n memberList.map(item => {\r\n if (item.ID == dto.ID) {\r\n arr.push(dto)\r\n } else {\r\n arr.push(item)\r\n }\r\n })\r\n this.setState({ member: dto, memberList: arr })\r\n }\r\n\r\n onClear = (key, input) => {\r\n this.setState({[key]: ''});\r\n input.focus();\r\n }\r\n\r\n render() {\r\n const isUserAndroidKey = !! window.android_setKeyBoard;\r\n const { searchValue, memberTabHeight = 0, initEmpty, loadingBtn, selected, isAllAuthority, cardList, cardInfo } = this.state;\r\n const { status, showModal, titleModal, type, defaultActiveKey, onCancel, authProcess, mode, title, storeKey } = this.props;\r\n const showSearch = ['会员查询'].includes(type);\r\n const noList = !cardList.length;\r\n const showSelectBtn = type === '会员查询' || !!status;\r\n //是否正常开单\r\n let voucherStateType = (mode !== 'practice');\r\n const searchClassName = hotKey.hotKeyNotFilter('search-input')\r\n const memberTabClassName = hotKey.hotKeyBindClass('10', 'member-shop-content')\r\n \r\n return (\r\n <div className='memberShopContainer'>\r\n {\r\n showSearch &&\r\n <div className='search-container'>\r\n <Input\r\n tplusInput\r\n placeholder='卡号/手机号'\r\n prefix='sousuo'\r\n className={`${searchClassName} android_focus_keyboard ${(this.hasElectron === true && this.iCCardServer === 1 || this.isHorizontalPad === true) ? 'temp' : ''}`}\r\n value={searchValue}\r\n type='native'\r\n onChange={\r\n ({ target: { value: searchValue } }) => this.setState({ searchValue })\r\n }\r\n inputRef={ref => this.searchRef = ref}\r\n onClear={() => this.onClear('searchValue', this.searchRef)}\r\n onFocus={({ target }) => {\r\n if(!isUserAndroidKey ){\r\n this.focusInputName = 'searchValue';\r\n this.inputTarget = target;\r\n Keyboard.open(v => {\r\n const key = this.focusInputName;\r\n const value = Keyboard.getNewValue(this.inputTarget, this.inputTarget.value, v);\r\n this.setState({ [key]: value });\r\n }, this.keyboardOnOk, this.keyboardOnClose)();\r\n }\r\n }}\r\n onBlur={Keyboard.close}\r\n onKeyDown={this.onKeyPressed}\r\n />\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 /* 扫描组件 */\r\n this.isHorizontalPad &&\r\n <Scan ref={scan => this.scanObj = scan} onChange={this.onScanCzkResult} />\r\n }\r\n <Button className='primary-btn' onClick={this.handleSearchClick}>搜索</Button>\r\n </div>\r\n }\r\n <div \r\n ref={ref => this.memberTab = ref} \r\n className={`${memberTabClassName}`}\r\n >\r\n {\r\n noList && <div className='empty-data-img storage-empty-data-img' />\r\n }\r\n <MemberCardList \r\n ref={list => this.memberCardList = list}\r\n title={title}\r\n storeKey={storeKey}\r\n selected={selected}\r\n cardList={cardList}\r\n setCardInfo={this.setCardInfo}\r\n />\r\n \r\n <div className='member-content-tab content' style={{ display: noList ? 'none' : 'flex' }}>\r\n {\r\n (voucherStateType && !isAllAuthority) &&\r\n <div>\r\n <div className='menu'>\r\n <MemberMenuStorage \r\n storeKey={storeKey}\r\n authProcess={authProcess}\r\n loadingBtn={loadingBtn} \r\n selected={selected} \r\n cardList={cardList}\r\n loadUserInfo={this.loadUserInfo}\r\n getCardList={this.getCardList}\r\n handleChange={this.MemberMenuChange} />\r\n </div>\r\n <div className='line'></div>\r\n </div>\r\n }\r\n <MemberTab\r\n defaultActiveKey={defaultActiveKey}\r\n showModal={showModal}\r\n title={title}\r\n titleModal={titleModal}\r\n storeKey={storeKey}\r\n selected={selected}\r\n memberTabHeight={memberTabHeight}\r\n initEmpty={initEmpty}\r\n cardList={cardList}\r\n />\r\n </div>\r\n </div>\r\n <div className='member-footer'>\r\n <Button onClick={onCancel}>取消</Button>\r\n </div>\r\n </div>\r\n )\r\n }\r\n}\r\n"]}
1
+ {"version":3,"sources":["tplus-member/member/ShopMemberStorage.js"],"names":["ShopMemberStorage","props","currentPage","cacheUserRetail","hotKeyListener","nodeName","index","className","indexOf","isHotKeyAction","activeElement","document","blur","observerCard","setTimeout","slideSelected","querySelector","prevSlideSelected","swiperSelectObserver","unobserve","observe","windowOnresize","memberTab","window","removeEventListener","memberTabHeight","state","clientHeight","tabMenuHeight","setState","isNotSetState","Idmember","willUnmount","currentMemberId","getCardList","cardNo","pageSize","key","replace","length","Message","error","Loading","show","target","loadingBtn","ms","getCardInfoByCardNo","then","ret","data","cardList","selected","setCardInfo","memberCardList","resetSlideTop","hide","catch","message","err","includes","ModalWraper","warning","title","content","loadUserInfo","ID","getGetUmemberDTO","stores","selectMemberStore","setCurMemberInfo","memberChange","warn","cardInfo","handleSearchClick","searchValue","userSearch","handleSearchChange","val","keyboardOnOk","keyboardOnClose","searchRef","onKeyPressed","e","keyCode","enterKey","MemberMenuChange","dto","memberList","arr","map","item","push","member","onClear","input","focus","mode","searchStatus","listArr","tabIndex","defaultActiveKey","memberStore","addEventListener","$","on","off","isUserAndroidKey","android_setKeyBoard","initEmpty","isAllAuthority","status","showModal","titleModal","type","onCancel","authProcess","storeKey","showSearch","noList","showSelectBtn","voucherStateType","searchClassName","hotKey","hotKeyNotFilter","memberTabClassName","hotKeyBindClass","value","ref","focusInputName","inputTarget","Keyboard","open","getNewValue","v","close","list","display","Component","defaultProps","contextTypes","viewModel","PropTypes","object","columnInfo","array"],"mappings":"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","file":"ShopMemberStorage.js","sourcesContent":["import React, { Component } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { Button } from 'antd';\r\nimport { ModalWraper, Input, Loading, Message, Ticon, Keyboard, Spin, hotKey } from 'tplus-components-touch';\r\nimport { stores } from 'mutants-microfx';\r\nimport { enumController, platform } from 'mutants-util';\r\nimport memberStore from './api';\r\nimport MemberTab from './memberTab/index.js';\r\nimport './ShopMember.less';\r\nimport { formatPrecision, userInfoFormat, errMessageTip } from '../utils';\r\nimport MemberMenuStorage from './memberMenuStorage/index.js'\r\nimport MemberCardList from './MemberCardList'\r\n\r\n// let swiperSelectObserver;\r\n\r\nexport default class ShopMemberStorage extends Component {\r\n static defaultProps = {\r\n onCancel: () => {}\r\n };\r\n\r\n static contextTypes = {\r\n viewModel: PropTypes.object,\r\n columnInfo: PropTypes.array,\r\n };\r\n constructor(props) {\r\n super(props);\r\n const { mode } = this.props;\r\n this.state = {\r\n searchValue: '',\r\n searchStatus: !!this.props.listArr ? true : false,\r\n tabIndex: this.props.defaultActiveKey,\r\n tabMenuHeight: mode !== 'practice' ? 64 : 0, // 64为table上部操作菜单高度\r\n cardList: [], // 储值卡列表\r\n cardInfo: {}, // 当前被选中的卡信息\r\n };\r\n this.ms = memberStore;\r\n }\r\n\r\n currentPage = 1;\r\n cacheUserRetail = {};\r\n\r\n componentDidMount() {\r\n window.addEventListener('resize', this.windowOnresize);\r\n $.on(this.hotKeyListener);\r\n this.ms.searchValue = '';//初始化完成筛选列表清空数据(会员新增成功——封涛)\r\n }\r\n\r\n componentDidUpdate() {\r\n const {memberTabHeight, tabMenuHeight} = this.state;\r\n const clientHeight = this.memberTab.clientHeight - tabMenuHeight;\r\n if (clientHeight !== memberTabHeight) {\r\n this.setState({memberTabHeight: clientHeight});\r\n }\r\n }\r\n\r\n componentWillUnmount() {\r\n this.willUnmount = true;\r\n window.removeEventListener('resize', this.windowOnresize);\r\n // swiperSelectObserver.disconnect();\r\n $.off(this.hotKeyListener);\r\n }\r\n\r\n hotKeyListener = (nodeName, index) => {\r\n if (nodeName && ~nodeName.className.indexOf('slide-selected')) {\r\n this.isHotKeyAction = true;\r\n const activeElement = document.activeElement;\r\n activeElement && activeElement.blur();\r\n }\r\n }\r\n\r\n observerCard = () => {\r\n setTimeout(() => {\r\n const slideSelected = document.querySelector('.slide-selected');\r\n this.prevSlideSelected && swiperSelectObserver.unobserve(this.prevSlideSelected);\r\n this.prevSlideSelected = slideSelected;\r\n slideSelected && swiperSelectObserver.observe(slideSelected);\r\n })\r\n }\r\n windowOnresize = () => {\r\n if (!this.memberTab) {\r\n return window.removeEventListener('resize', this.windowOnresize);\r\n };\r\n const {memberTabHeight} = this.state;\r\n const clientHeight = this.memberTab.clientHeight - this.state.tabMenuHeight;\r\n if (memberTabHeight !== clientHeight) {\r\n this.setState({memberTabHeight: clientHeight});\r\n }\r\n }\r\n\r\n isNotSetState = (Idmember) => {\r\n if (this.willUnmount || Idmember !== this.currentMemberId) return true;\r\n }\r\n\r\n // 获取储值卡信息\r\n getCardList = (cardNo, currentPage = 1, pageSize = 10, key = 0) => {\r\n cardNo = cardNo.replace(/\\s+/g,\"\")\r\n if (cardNo.length === 0) {\r\n Message.error('请输入卡号')\r\n return\r\n }\r\n Loading.show({ target: '.memberShopContainer' });\r\n this.setState({\r\n loadingBtn: true\r\n })\r\n this.ms.getCardInfoByCardNo(cardNo)\r\n .then(ret => {\r\n const {data = []} = ret || {}\r\n if (data.length) {\r\n this.setState({\r\n cardList: data,\r\n selected: 0,\r\n loadingBtn: false\r\n }, () => {\r\n this.setCardInfo(currentPage === 1 ? 0 : key, data[0])\r\n this.memberCardList.resetSlideTop();\r\n })\r\n } else {\r\n this.setCardInfo(key)\r\n }\r\n \r\n Loading.hide();\r\n })\r\n .catch(err => {\r\n const { message } = err\r\n if (message.includes('code 404')) {\r\n ModalWraper.warning({\r\n title: '提示',\r\n content: `请输入卡号!`\r\n })\r\n }\r\n this.setCardInfo(key)\r\n this.setState({\r\n loadingBtn: false\r\n })\r\n Loading.hide()\r\n });\r\n }\r\n\r\n loadUserInfo = (ID) => {\r\n // this.observerCard();\r\n\r\n this.ms.getGetUmemberDTO(ID)\r\n .then(ret => {\r\n stores.selectMemberStore.setCurMemberInfo(ret);\r\n const { memberChange } = this.props;\r\n memberChange && memberChange(ret);\r\n }).catch(err => {\r\n Message.warn('会员信息更新失败!')\r\n });\r\n }\r\n\r\n // 设置当前被选中的卡信息\r\n setCardInfo = (key, cardInfo = {}) => {\r\n this.setState({\r\n selected: key,\r\n cardInfo\r\n })\r\n }\r\n\r\n handleSearchClick = () => {\r\n const { searchValue, selected } = this.state;\r\n this.userSearch = true;\r\n this.currentPage = 1;\r\n // this.setState({ selected: undefined });\r\n this.getCardList(searchValue, this.currentPage, 10, selected)\r\n }\r\n\r\n handleSearchChange = (val) => {\r\n this.setState({searchValue: val});\r\n }\r\n\r\n keyboardOnOk = () => {\r\n this.handleSearchClick();\r\n }\r\n\r\n keyboardOnClose = () => {\r\n this.searchRef && this.searchRef.blur();\r\n }\r\n\r\n onKeyPressed = (e) => {\r\n const { keyCode } = e;\r\n const enterKey = 13;\r\n if (keyCode === enterKey) {\r\n this.handleSearchClick();\r\n this.keyboardOnClose();\r\n }\r\n }\r\n\r\n MemberMenuChange = (dto) => {\r\n const { memberList } = this.state;\r\n userInfoFormat(dto)\r\n let arr = [];\r\n memberList.map(item => {\r\n if (item.ID == dto.ID) {\r\n arr.push(dto)\r\n } else {\r\n arr.push(item)\r\n }\r\n })\r\n this.setState({ member: dto, memberList: arr })\r\n }\r\n\r\n onClear = (key, input) => {\r\n this.setState({[key]: ''});\r\n input.focus();\r\n }\r\n\r\n render() {\r\n const isUserAndroidKey = !! window.android_setKeyBoard;\r\n const { searchValue, memberTabHeight = 0, initEmpty, loadingBtn, selected, isAllAuthority, cardList, cardInfo } = this.state;\r\n const { status, showModal, titleModal, type, defaultActiveKey, onCancel, authProcess, mode, title, storeKey } = this.props;\r\n const showSearch = ['会员查询'].includes(type);\r\n const noList = !cardList.length;\r\n const showSelectBtn = type === '会员查询' || !!status;\r\n //是否正常开单\r\n let voucherStateType = (mode !== 'practice');\r\n const searchClassName = hotKey.hotKeyNotFilter('search-input')\r\n const memberTabClassName = hotKey.hotKeyBindClass('10', 'member-shop-content')\r\n \r\n return (\r\n <div className='memberShopContainer'>\r\n {\r\n showSearch &&\r\n <div className='search-container'>\r\n <Input\r\n tplusInput\r\n placeholder='卡号/手机号'\r\n prefix='sousuo'\r\n className={`${searchClassName} android_focus_keyboard`}\r\n value={searchValue}\r\n type='native'\r\n onChange={\r\n ({ target: { value: searchValue } }) => this.setState({ searchValue })\r\n }\r\n inputRef={ref => this.searchRef = ref}\r\n onClear={() => this.onClear('searchValue', this.searchRef)}\r\n onFocus={({ target }) => {\r\n if(!isUserAndroidKey ){\r\n this.focusInputName = 'searchValue';\r\n this.inputTarget = target;\r\n Keyboard.open(v => {\r\n const key = this.focusInputName;\r\n const value = Keyboard.getNewValue(this.inputTarget, this.inputTarget.value, v);\r\n this.setState({ [key]: value });\r\n }, this.keyboardOnOk, this.keyboardOnClose)();\r\n }\r\n }}\r\n onBlur={Keyboard.close}\r\n onKeyDown={this.onKeyPressed}\r\n />\r\n <Button className='primary-btn' onClick={this.handleSearchClick}>搜索</Button>\r\n </div>\r\n }\r\n <div \r\n ref={ref => this.memberTab = ref} \r\n className={`${memberTabClassName}`}\r\n >\r\n {\r\n noList && <div className='empty-data-img storage-empty-data-img' />\r\n }\r\n <MemberCardList \r\n ref={list => this.memberCardList = list}\r\n title={title}\r\n storeKey={storeKey}\r\n selected={selected}\r\n cardList={cardList}\r\n setCardInfo={this.setCardInfo}\r\n />\r\n \r\n <div className='member-content-tab content' style={{ display: noList ? 'none' : 'flex' }}>\r\n {\r\n (voucherStateType && !isAllAuthority) &&\r\n <div>\r\n <div className='menu'>\r\n <MemberMenuStorage \r\n storeKey={storeKey}\r\n authProcess={authProcess}\r\n loadingBtn={loadingBtn} \r\n selected={selected} \r\n cardList={cardList}\r\n loadUserInfo={this.loadUserInfo}\r\n getCardList={this.getCardList}\r\n handleChange={this.MemberMenuChange} />\r\n </div>\r\n <div className='line'></div>\r\n </div>\r\n }\r\n <MemberTab\r\n defaultActiveKey={defaultActiveKey}\r\n showModal={showModal}\r\n title={title}\r\n titleModal={titleModal}\r\n storeKey={storeKey}\r\n selected={selected}\r\n memberTabHeight={memberTabHeight}\r\n initEmpty={initEmpty}\r\n cardList={cardList}\r\n />\r\n </div>\r\n </div>\r\n <div className='member-footer'>\r\n <Button onClick={onCancel}>取消</Button>\r\n </div>\r\n </div>\r\n )\r\n }\r\n}\r\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "tplus-member",
3
- "version": "3.46.1",
3
+ "version": "3.47.1",
4
4
  "description": "",
5
5
  "main": "dist/index.js",
6
6
  "scripts": {
@@ -17,11 +17,11 @@
17
17
  "mutants-devtools": "^1.0.0",
18
18
  "mutants-microfx": "^1.0.0",
19
19
  "tplus-api": "~5.0.1",
20
- "tplus-components": "~3.46.1",
21
- "tplus-components-touch": "~3.46.1",
22
- "tplus-portaltouch": "~3.46.1",
23
- "tplus-poslogin": "~3.46.1",
24
- "tplus-setting-touch": "~3.46.1"
20
+ "tplus-components": "~3.47.1",
21
+ "tplus-components-touch": "~3.47.1",
22
+ "tplus-portaltouch": "~3.47.1",
23
+ "tplus-poslogin": "~3.47.1",
24
+ "tplus-setting-touch": "~3.47.1"
25
25
  },
26
26
  "dependencies": {
27
27
  "antd": "4.10.3"