tplus-member 3.28.9 → 3.28.10

Sign up to get free protection for your applications and to get access to all the features.
@@ -9,6 +9,14 @@ var _button = require('antd/es/button');
9
9
 
10
10
  var _button2 = _interopRequireDefault(_button);
11
11
 
12
+ var _regenerator = require('babel-runtime/regenerator');
13
+
14
+ var _regenerator2 = _interopRequireDefault(_regenerator);
15
+
16
+ var _asyncToGenerator2 = require('babel-runtime/helpers/asyncToGenerator');
17
+
18
+ var _asyncToGenerator3 = _interopRequireDefault(_asyncToGenerator2);
19
+
12
20
  var _defineProperty2 = require('babel-runtime/helpers/defineProperty');
13
21
 
14
22
  var _defineProperty3 = _interopRequireDefault(_defineProperty2);
@@ -98,6 +106,8 @@ var ShopMember = (_temp = _class = function (_Component) {
98
106
  (0, _inherits3.default)(ShopMember, _Component);
99
107
 
100
108
  function ShopMember(props) {
109
+ var _this3 = this;
110
+
101
111
  (0, _classCallCheck3.default)(this, ShopMember);
102
112
 
103
113
  var _this2 = (0, _possibleConstructorReturn3.default)(this, (ShopMember.__proto__ || (0, _getPrototypeOf2.default)(ShopMember)).call(this, props));
@@ -241,6 +251,9 @@ var ShopMember = (_temp = _class = function (_Component) {
241
251
  });
242
252
  _mutantsMicrofx.stores.selectMemberStore.setCurMemberInfo(ret);
243
253
  selectChange && selectChange(item);
254
+ // 获取购买记录
255
+ _this2.resetLastRetail(0);
256
+ _this2.findMemberLastRetailDetailList(3);
244
257
  // 更新当前选定的会员信息
245
258
  if (syncUpdateMember) {
246
259
  var _ref2 = _this2.context.viewModel || {},
@@ -753,10 +766,107 @@ var ShopMember = (_temp = _class = function (_Component) {
753
766
  });
754
767
  };
755
768
 
769
+ _this2.resetLastRetail = function () {
770
+ var _ref7 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee(pageNo) {
771
+ return _regenerator2.default.wrap(function _callee$(_context) {
772
+ while (1) {
773
+ switch (_context.prev = _context.next) {
774
+ case 0:
775
+ _this2.setState({
776
+ lastRetailPageNo: pageNo
777
+ });
778
+
779
+ case 1:
780
+ case 'end':
781
+ return _context.stop();
782
+ }
783
+ }
784
+ }, _callee, _this3);
785
+ }));
786
+
787
+ return function (_x8) {
788
+ return _ref7.apply(this, arguments);
789
+ };
790
+ }();
791
+
792
+ _this2.findMemberLastRetailDetailList = function () {
793
+ var _ref8 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee2(pageSize) {
794
+ var _this2$state6, lastRetailPageNo, _this2$state6$member, ID, _this2$state6$lastRet, lastRetailList, params, ret, _ret$data, _ret$data$recencyBean, recencyBeanList, _ret$data$totalCount, totalCount;
795
+
796
+ return _regenerator2.default.wrap(function _callee2$(_context2) {
797
+ while (1) {
798
+ switch (_context2.prev = _context2.next) {
799
+ case 0:
800
+ _this2$state6 = _this2.state, lastRetailPageNo = _this2$state6.lastRetailPageNo, _this2$state6$member = _this2$state6.member;
801
+ _this2$state6$member = _this2$state6$member === undefined ? {} : _this2$state6$member;
802
+ ID = _this2$state6$member.ID, _this2$state6$lastRet = _this2$state6.lastRetailList, lastRetailList = _this2$state6$lastRet === undefined ? [] : _this2$state6$lastRet;
803
+ _context2.t0 = lastRetailPageNo === 1;
804
+
805
+ if (!_context2.t0) {
806
+ _context2.next = 7;
807
+ break;
808
+ }
809
+
810
+ _context2.next = 7;
811
+ return _this2.resetLastRetail(0);
812
+
813
+ case 7:
814
+ params = {
815
+ memberId: ID,
816
+ pageNo: _this2.state.lastRetailPageNo,
817
+ pageSize: pageSize
818
+ };
819
+
820
+ _this2.setState({
821
+ lastRetailLoading: true
822
+ });
823
+ _context2.prev = 9;
824
+ _context2.next = 12;
825
+ return _this2.ms.findMemberLastRetailDetail(params);
826
+
827
+ case 12:
828
+ ret = _context2.sent;
829
+ _ret$data = ret.data;
830
+ _ret$data = _ret$data === undefined ? {} : _ret$data;
831
+ _ret$data$recencyBean = _ret$data.recencyBeanList, recencyBeanList = _ret$data$recencyBean === undefined ? [] : _ret$data$recencyBean, _ret$data$totalCount = _ret$data.totalCount, totalCount = _ret$data$totalCount === undefined ? 0 : _ret$data$totalCount;
832
+
833
+ lastRetailList.push.apply(lastRetailList, (0, _toConsumableArray3.default)(recencyBeanList));
834
+
835
+ _this2.setState({
836
+ lastRetailTotal: totalCount,
837
+ lastRetailLoading: false,
838
+ lastRetailPageNo: _this2.state.lastRetailPageNo + 1,
839
+ lastRetailList: _this2.state.lastRetailPageNo === 0 ? recencyBeanList : lastRetailList
840
+ });
841
+
842
+ _context2.next = 23;
843
+ break;
844
+
845
+ case 20:
846
+ _context2.prev = 20;
847
+ _context2.t1 = _context2['catch'](9);
848
+
849
+ _this2.setState({
850
+ lastRetailLoading: false
851
+ });
852
+
853
+ case 23:
854
+ case 'end':
855
+ return _context2.stop();
856
+ }
857
+ }
858
+ }, _callee2, _this3, [[9, 20]]);
859
+ }));
860
+
861
+ return function (_x9) {
862
+ return _ref8.apply(this, arguments);
863
+ };
864
+ }();
865
+
756
866
  var mode = _this2.props.mode;
757
867
 
758
- var _ref7 = _mutantsUtil.platform || {},
759
- isNewRetailBCPos = _ref7.isNewRetailBCPos;
868
+ var _ref9 = _mutantsUtil.platform || {},
869
+ isNewRetailBCPos = _ref9.isNewRetailBCPos;
760
870
 
761
871
  _this2.state = {
762
872
  searchValue: '',
@@ -771,7 +881,11 @@ var ShopMember = (_temp = _class = function (_Component) {
771
881
  isCC: !!isNewRetailBCPos,
772
882
  tabIndex: _this2.props.defaultActiveKey,
773
883
  isAllAuthority: false,
774
- tabMenuHeight: mode !== 'practice' ? 64 : 0 // 64为table上部操作菜单高度
884
+ tabMenuHeight: mode !== 'practice' ? 64 : 0, // 64为table上部操作菜单高度
885
+ lastRetailList: [], // 最近购买列表
886
+ lastRetailTotal: 0, // 最近购买的总数量
887
+ lastRetailPageNo: 0, // 最近购买的当前页,默认0开始
888
+ lastRetailLoading: false // 是否正在加载购买记录
775
889
  };
776
890
  _this2.ms = _api2.default;
777
891
  return _this2;
@@ -780,7 +894,7 @@ var ShopMember = (_temp = _class = function (_Component) {
780
894
  (0, _createClass3.default)(ShopMember, [{
781
895
  key: 'componentDidMount',
782
896
  value: function componentDidMount() {
783
- var _this3 = this;
897
+ var _this4 = this;
784
898
 
785
899
  swiperSelectObserver = new IntersectionObserver(function (entries) {
786
900
  var _entries$ = entries[0],
@@ -791,8 +905,8 @@ var ShopMember = (_temp = _class = function (_Component) {
791
905
  top = _entries$$boundingCli.top,
792
906
  intersectionRatio = _entries$.intersectionRatio;
793
907
 
794
- if (intersectionRatio !== 1 && _this3.isHotKeyAction) {
795
- _this3.isHotKeyAction = false;
908
+ if (intersectionRatio !== 1 && _this4.isHotKeyAction) {
909
+ _this4.isHotKeyAction = false;
796
910
 
797
911
  bottom > height && memberSwiper.slideNext();
798
912
  // 解决向上滑动时top < 10 时距离问题
@@ -830,7 +944,7 @@ var ShopMember = (_temp = _class = function (_Component) {
830
944
  }, {
831
945
  key: 'componentDidUpdate',
832
946
  value: function componentDidUpdate() {
833
- var _this4 = this;
947
+ var _this5 = this;
834
948
 
835
949
  var _state = this.state,
836
950
  _state$memberList = _state.memberList,
@@ -850,7 +964,7 @@ var ShopMember = (_temp = _class = function (_Component) {
850
964
  mousewheel: true,
851
965
  watchSlidesProgress: true,
852
966
  on: {
853
- progress: _this4.progressListen
967
+ progress: _this5.progressListen
854
968
  },
855
969
  scrollbar: {
856
970
  el: '.swiper-scrollbar',
@@ -879,10 +993,15 @@ var ShopMember = (_temp = _class = function (_Component) {
879
993
 
880
994
  //获取会员状态集合,在页面上以图片戳的形式展示。
881
995
 
996
+
997
+ // 重置购买记录相关数据
998
+
999
+ // 获取会员的购买记录
1000
+
882
1001
  }, {
883
1002
  key: 'render',
884
1003
  value: function render() {
885
- var _this5 = this;
1004
+ var _this6 = this;
886
1005
 
887
1006
  var isUserAndroidKey = !!window.android_setKeyBoard;
888
1007
 
@@ -910,7 +1029,10 @@ var ShopMember = (_temp = _class = function (_Component) {
910
1029
  loadingUser = _state2.loadingUser,
911
1030
  loadingBtn = _state2.loadingBtn,
912
1031
  selected = _state2.selected,
913
- isAllAuthority = _state2.isAllAuthority;
1032
+ isAllAuthority = _state2.isAllAuthority,
1033
+ lastRetailTotal = _state2.lastRetailTotal,
1034
+ lastRetailList = _state2.lastRetailList,
1035
+ lastRetailLoading = _state2.lastRetailLoading;
914
1036
  var _props2 = this.props,
915
1037
  status = _props2.status,
916
1038
  showModal = _props2.showModal,
@@ -946,27 +1068,27 @@ var ShopMember = (_temp = _class = function (_Component) {
946
1068
  className: _tplusComponentsTouch.hotKey.hotKeyNotFilter('search-input') + ' android_focus_keyboard',
947
1069
  value: searchValue,
948
1070
  type: 'native',
949
- onChange: function onChange(_ref8) {
950
- var searchValue = _ref8.target.value;
951
- return _this5.setState({ searchValue: searchValue });
1071
+ onChange: function onChange(_ref10) {
1072
+ var searchValue = _ref10.target.value;
1073
+ return _this6.setState({ searchValue: searchValue });
952
1074
  },
953
1075
  inputRef: function inputRef(ref) {
954
- return _this5.searchRef = ref;
1076
+ return _this6.searchRef = ref;
955
1077
  },
956
1078
  onClear: function onClear() {
957
- return _this5.onClear('searchValue', _this5.searchRef);
1079
+ return _this6.onClear('searchValue', _this6.searchRef);
958
1080
  },
959
- onFocus: function onFocus(_ref9) {
960
- var target = _ref9.target;
1081
+ onFocus: function onFocus(_ref11) {
1082
+ var target = _ref11.target;
961
1083
 
962
1084
  if (!isUserAndroidKey) {
963
- _this5.focusInputName = 'searchValue';
964
- _this5.inputTarget = target;
1085
+ _this6.focusInputName = 'searchValue';
1086
+ _this6.inputTarget = target;
965
1087
  _tplusComponentsTouch.Keyboard.open(function (v) {
966
- var key = _this5.focusInputName;
967
- var value = _tplusComponentsTouch.Keyboard.getNewValue(_this5.inputTarget, _this5.inputTarget.value, v);
968
- _this5.setState((0, _defineProperty3.default)({}, key, value));
969
- }, _this5.keyboardOnOk, _this5.keyboardOnClose)();
1088
+ var key = _this6.focusInputName;
1089
+ var value = _tplusComponentsTouch.Keyboard.getNewValue(_this6.inputTarget, _this6.inputTarget.value, v);
1090
+ _this6.setState((0, _defineProperty3.default)({}, key, value));
1091
+ }, _this6.keyboardOnOk, _this6.keyboardOnClose)();
970
1092
  }
971
1093
  },
972
1094
  onBlur: _tplusComponentsTouch.Keyboard.close,
@@ -980,8 +1102,8 @@ var ShopMember = (_temp = _class = function (_Component) {
980
1102
  ),
981
1103
  _react2.default.createElement(
982
1104
  'div',
983
- { ref: function ref(_ref10) {
984
- return _this5.memberTab = _ref10;
1105
+ { ref: function ref(_ref12) {
1106
+ return _this6.memberTab = _ref12;
985
1107
  }, className: _tplusComponentsTouch.hotKey.hotKeyBindClass('4', 'member-shop-content') },
986
1108
  this.dataLoaded && nomemberList && _react2.default.createElement(
987
1109
  'div',
@@ -1002,7 +1124,7 @@ var ShopMember = (_temp = _class = function (_Component) {
1002
1124
  'div',
1003
1125
  { className: 'swiper-wrapper' },
1004
1126
  memberList.map(function (value, key) {
1005
- return _this5.getCardRender(value, key, IsEnableUMember, precisionInfo);
1127
+ return _this6.getCardRender(value, key, IsEnableUMember, precisionInfo);
1006
1128
  }),
1007
1129
  !memberList.length && _react2.default.createElement(
1008
1130
  'span',
@@ -1033,7 +1155,7 @@ var ShopMember = (_temp = _class = function (_Component) {
1033
1155
  'div',
1034
1156
  { className: 'menu' },
1035
1157
  _react2.default.createElement(_index2.default, { authProcess: authProcess, changeIsAllAuthority: this.changeIsAllAuthority, loadUserList: this.loadUserList, member: member, memberEnumState: memberEnumState, loadingBtn: loadingBtn, selected: selected, loadUserInfo: function loadUserInfo(key, Idmember, item, type, syncUpdateMember) {
1036
- return _this5.loadUserInfo(key, Idmember, item, type, syncUpdateMember);
1158
+ return _this6.loadUserInfo(key, Idmember, item, type, syncUpdateMember);
1037
1159
  }, handleChange: this.MemberMenuChange })
1038
1160
  ),
1039
1161
  _react2.default.createElement('div', { className: 'line' })
@@ -1051,7 +1173,11 @@ var ShopMember = (_temp = _class = function (_Component) {
1051
1173
  columnInfo: columnInfo,
1052
1174
  precisionInfo: precisionInfo,
1053
1175
  onChange: this.memberTabChange,
1054
- getMemberStateStamp: this.getMemberStateStamp
1176
+ getMemberStateStamp: this.getMemberStateStamp,
1177
+ lastRetailTotal: lastRetailTotal,
1178
+ lastRetailList: lastRetailList,
1179
+ lastRetailLoading: lastRetailLoading,
1180
+ findMemberLastRetailDetailList: this.findMemberLastRetailDetailList
1055
1181
  })
1056
1182
  )
1057
1183
  ),
@@ -1067,7 +1193,7 @@ var ShopMember = (_temp = _class = function (_Component) {
1067
1193
  _button2.default,
1068
1194
  {
1069
1195
  onClick: function onClick() {
1070
- return _this5.handleOk(nomemberList);
1196
+ return _this6.handleOk(nomemberList);
1071
1197
  },
1072
1198
  type: 'primary',
1073
1199
  style: { marginRight: 5 },
@@ -1 +1 @@
1
- {"version":3,"sources":["tplus-member/member/ShopMember.js"],"names":["memberSwiper","swiperSelectObserver","ShopMember","props","currentPage","cacheUserRetail","hotKeyListener","nodeName","index","progressListen","className","indexOf","isHotKeyAction","activeElement","document","blur","observerCard","setTimeout","slideSelected","querySelector","prevSlideSelected","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","context","viewModel","data","Member","seletMember","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","undefined","handleSearchChange","val","getCardRender","IsEnableUMember","Name","CardCode","MemberType","IsFocusUmember","ImageFile","ExpirationDate","isExpiration","isUserLogout","UmemberOpenId","iconItems","getMemberStateStamp","labels","split","defaultAvatar","isCC","isSelected","resetSlideTop","slideTo","isUserLoss","isUserNotUsing","handleOk","nomemberList","MemberState","Id","onCancel","Message","warn","items","viewVoucher","isTakeTheir","getIsTakeTheir","memberStore","el","name","uiState","tip","info","_this","ModalWraper","confirm","title","content","onOk","handleChangeMember","selectMemberSuccess","getMemberBirthday","result","changeMemberCare","keyboardOnOk","searchRef","onKeyPressed","e","keyCode","enterKey","currentUserRetail","MemberMenuChange","dto","onClear","input","focus","changeIsAllAuthority","isAllAuthority","mode","platform","isNewRetailBCPos","memberLength","defaultActiveKey","IntersectionObserver","entries","boundingClientRect","height","bottom","top","intersectionRatio","slideNext","slidePrev","addEventListener","Code","$","on","updateSlides","Swiper","direction","slidesPerView","mousewheel","watchSlidesProgress","scrollbar","destroy","disconnect","off","isUserAndroidKey","android_setKeyBoard","user","localStorage","getItem","loginInfo","showModal","authProcess","showSearch","showSelectBtn","voucherStateType","enumController","getEnumOj","memberEnumState","hotKey","hotKeyNotFilter","ref","focusInputName","inputTarget","Keyboard","open","getNewValue","close","hotKeyBindClass","display","marginTop","marginRight","Component","defaultProps","contextTypes","PropTypes","object","array"],"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';\r\nimport Swiper from 'swiper/dist/js/swiper.js';\r\nimport 'swiper/dist/css/swiper.min.css';\r\nimport './ShopMember.less';\r\nimport { formatPrecision, userInfoFormat, errMessageTip } from '../utils';\r\nimport MemberMenu from './memberMenu/index.js'\r\n\r\nlet memberSwiper;\r\nlet 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 };\r\n constructor(props) {\r\n super(props);\r\n const { mode } = this.props;\r\n let { isNewRetailBCPos } = platform || {};\r\n this.state = {\r\n searchValue: '',\r\n memberList: [],\r\n memberLength: 0,\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: !!isNewRetailBCPos,\r\n tabIndex: this.props.defaultActiveKey,\r\n isAllAuthority: false,\r\n tabMenuHeight: mode !== 'practice' ? 64 : 0 // 64为table上部操作菜单高度\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 } = 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 = [], memberLength, memberTabHeight, tabMenuHeight} = this.state;\r\n if (memberList.length !== memberLength) {\r\n this.setState({memberLength: memberList.length}, () => {\r\n if (memberSwiper) {\r\n return memberSwiper.updateSlides();\r\n }\r\n memberSwiper = new Swiper('.swiper-member-container', {\r\n direction: 'vertical',\r\n slidesPerView: 'auto',\r\n mousewheel: true,\r\n watchSlidesProgress : true,\r\n on: {\r\n progress: this.progressListen\r\n },\r\n scrollbar: {\r\n el: '.swiper-scrollbar',\r\n hide: true,\r\n },\r\n });\r\n });\r\n }\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\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 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 }).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 handleSearchClick = () => {\r\n const { searchValue } = this.state;\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 getCardRender = (item = {}, key, IsEnableUMember, precisionInfo = {}) => {\r\n const {\r\n ID, Name, Mobilephone, CardCode, BalanceIntegral, BalanceStorage, MemberType = {},\r\n IsFocusUmember, UmemberLabel = '', ImageFile, ExpirationDate = '', isExpiration, isUserLogout, UmemberOpenId\r\n } = item;\r\n const iconItems = this.getMemberStateStamp(item);\r\n const labels = UmemberLabel ? UmemberLabel.split(',') : [];\r\n const defaultAvatar = 'https://newretail.static.chanjet.com/default_avatar.png';\r\n const {selected, isCC} = this.state;\r\n const isSelected = selected === key;\r\n return (\r\n <div key={key} className={`swiper-slide member-item-slide ${isSelected ? 'slide-selected' : ''}`} onClick={() => this.loadUserInfo(key, ID, item)}>\r\n {\r\n iconItems && iconItems.length > 0 &&\r\n <div className='memberstate-stamp'>\r\n {iconItems}\r\n </div>\r\n }\r\n <div className='card-avatar'>\r\n <div className='avatar-box'>\r\n <img src={ImageFile || defaultAvatar} width={60} height={60}/>\r\n {IsEnableUMember && <div className={`avatar-bage ${UmemberOpenId ? 'bage-follow' : ''}`}>\r\n <div className='avatar-bage-scale'>{UmemberOpenId ? '已关注' : '未关注'}</div>\r\n </div>}\r\n </div>\r\n </div>\r\n <div className='member-level'>\r\n <span>{MemberType.Name}</span>\r\n </div>\r\n <div className='member-info-container'>\r\n <div className='member-infos'>\r\n <h1 className='member-info-name'>{Name}</h1>\r\n <p className='member-phone'>{Mobilephone || CardCode}</p>\r\n </div>\r\n <div className='member-money'>\r\n <div className='score'>\r\n <span>{formatPrecision(BalanceIntegral, precisionInfo.BalanceIntegral)}积分</span>\r\n </div>\r\n <div className='balance'>\r\n <span>{BalanceStorage ? formatPrecision(BalanceStorage, precisionInfo.BalanceStorage) : 0}余额</span>\r\n </div>\r\n </div>\r\n {IsEnableUMember && <div className='member-tag'>\r\n {labels.map((item, key) => <span key={key}>{item}</span>)}\r\n </div>}\r\n </div>\r\n {isSelected && <div className='member-selected-icon'>\r\n <div className='member-selected-icon-arrow'>\r\n <Ticon type='huiyuanxuanzhong' />\r\n </div>\r\n </div>}\r\n </div>\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.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.resetSlideTop();\r\n }\r\n });\r\n }\r\n }\r\n\r\n resetSlideTop = () => {\r\n if (memberSwiper) {\r\n memberSwiper.slideTo(0, 0, false);\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\r\n handleOk = (nomemberList) => {\r\n const { member, errorMsg } = this.state;\r\n const { isExpiration, MemberState: { Id, Name } = {} } = member || {};\r\n if (nomemberList) {\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} = {} } = {}, items = [] } = this.context.viewModel || {};\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 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 } = this.state;\r\n const { status, showModal, titleModal, type, defaultActiveKey, onCancel, viewMemberInfo, authProcess, mode } = this.props;\r\n const { precisionInfo = {} } = this.ms;\r\n const showSearch = ['会员查询'].includes(type);\r\n const nomemberList = !memberList.length;\r\n const showSelectBtn = type === '会员查询' || !!status;\r\n //是否正常开单\r\n let voucherStateType = (mode !== 'practice');\r\n const { memberEnumState } = enumController.getEnumOj();\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 && nomemberList && <div className='empty-data-img'><div className='tip-text'>暂无数据 ~</div></div>\r\n }\r\n <div className='member-card-list-side' style={{ display: nomemberList ? 'none' : 'block' }}>\r\n <div className=\"swiper-member-container\" style={{ height: '100%' }}>\r\n <div className=\"swiper-wrapper\">\r\n {memberList.map((value, key) => this.getCardRender(value, key, IsEnableUMember, precisionInfo))}\r\n {!memberList.length && <span className='empty-data-tip' style={{ marginTop: 30 }}>没有相关数据~</span>}\r\n {loadmoreLoading && <span className='empty-data-tip empty-data-tip-member-card'>数据加载中 ...</span>}\r\n {nomoreData && <span className='empty-data-tip empty-data-tip-member-card'>没有更多数据了~</span>}\r\n </div>\r\n <div className=\"swiper-scrollbar\" />\r\n </div>\r\n </div>\r\n <div className='member-content-tab content' style={{ display: nomemberList ? 'none' : 'flex' }}>\r\n {\r\n (voucherStateType && !isAllAuthority) &&\r\n <div>\r\n <div className='menu'>\r\n <MemberMenu authProcess={authProcess} changeIsAllAuthority={this.changeIsAllAuthority} loadUserList={this.loadUserList} member={member} memberEnumState={memberEnumState} loadingBtn={loadingBtn} selected={selected} loadUserInfo={(key, Idmember, item, type, syncUpdateMember) => this.loadUserInfo(key, Idmember, item, type, syncUpdateMember)} 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 titleModal={titleModal}\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 />\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(nomemberList)}\r\n type=\"primary\"\r\n style={{ marginRight: 5 }}\r\n disabled={loadingUser}\r\n >\r\n {\r\n loadingUser ? '加载会员' : nomemberList ? '确定' : '选取会员'\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":["memberSwiper","swiperSelectObserver","ShopMember","props","currentPage","cacheUserRetail","hotKeyListener","nodeName","index","progressListen","className","indexOf","isHotKeyAction","activeElement","document","blur","observerCard","setTimeout","slideSelected","querySelector","prevSlideSelected","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","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","undefined","handleSearchChange","val","getCardRender","IsEnableUMember","Name","CardCode","MemberType","IsFocusUmember","ImageFile","ExpirationDate","isExpiration","isUserLogout","UmemberOpenId","iconItems","getMemberStateStamp","labels","split","defaultAvatar","isCC","isSelected","resetSlideTop","slideTo","isUserLoss","isUserNotUsing","handleOk","nomemberList","MemberState","Id","onCancel","Message","warn","items","viewVoucher","isTakeTheir","getIsTakeTheir","memberStore","el","name","uiState","tip","info","_this","ModalWraper","confirm","title","content","onOk","handleChangeMember","selectMemberSuccess","getMemberBirthday","result","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","platform","isNewRetailBCPos","memberLength","defaultActiveKey","IntersectionObserver","entries","boundingClientRect","height","bottom","top","intersectionRatio","slideNext","slidePrev","addEventListener","Code","$","on","updateSlides","Swiper","direction","slidesPerView","mousewheel","watchSlidesProgress","scrollbar","destroy","disconnect","off","isUserAndroidKey","android_setKeyBoard","user","localStorage","getItem","loginInfo","showModal","authProcess","showSearch","showSelectBtn","voucherStateType","enumController","getEnumOj","memberEnumState","hotKey","hotKeyNotFilter","ref","focusInputName","inputTarget","Keyboard","open","getNewValue","close","hotKeyBindClass","display","marginTop","marginRight","Component","defaultProps","contextTypes","PropTypes","object","array"],"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';\r\nimport Swiper from 'swiper/dist/js/swiper.js';\r\nimport 'swiper/dist/css/swiper.min.css';\r\nimport './ShopMember.less';\r\nimport { formatPrecision, userInfoFormat, errMessageTip } from '../utils';\r\nimport MemberMenu from './memberMenu/index.js'\r\n\r\nlet memberSwiper;\r\nlet 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 };\r\n constructor(props) {\r\n super(props);\r\n const { mode } = this.props;\r\n let { isNewRetailBCPos } = platform || {};\r\n this.state = {\r\n searchValue: '',\r\n memberList: [],\r\n memberLength: 0,\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: !!isNewRetailBCPos,\r\n tabIndex: this.props.defaultActiveKey,\r\n isAllAuthority: false,\r\n tabMenuHeight: mode !== 'practice' ? 64 : 0, // 64为table上部操作菜单高度\r\n 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 } = 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 = [], memberLength, memberTabHeight, tabMenuHeight} = this.state;\r\n if (memberList.length !== memberLength) {\r\n this.setState({memberLength: memberList.length}, () => {\r\n if (memberSwiper) {\r\n return memberSwiper.updateSlides();\r\n }\r\n memberSwiper = new Swiper('.swiper-member-container', {\r\n direction: 'vertical',\r\n slidesPerView: 'auto',\r\n mousewheel: true,\r\n watchSlidesProgress : true,\r\n on: {\r\n progress: this.progressListen\r\n },\r\n scrollbar: {\r\n el: '.swiper-scrollbar',\r\n hide: true,\r\n },\r\n });\r\n });\r\n }\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\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 }).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 handleSearchClick = () => {\r\n const { searchValue } = this.state;\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 getCardRender = (item = {}, key, IsEnableUMember, precisionInfo = {}) => {\r\n const {\r\n ID, Name, Mobilephone, CardCode, BalanceIntegral, BalanceStorage, MemberType = {},\r\n IsFocusUmember, UmemberLabel = '', ImageFile, ExpirationDate = '', isExpiration, isUserLogout, UmemberOpenId\r\n } = item;\r\n const iconItems = this.getMemberStateStamp(item);\r\n const labels = UmemberLabel ? UmemberLabel.split(',') : [];\r\n const defaultAvatar = 'https://newretail.static.chanjet.com/default_avatar.png';\r\n const {selected, isCC} = this.state;\r\n const isSelected = selected === key;\r\n return (\r\n <div key={key} className={`swiper-slide member-item-slide ${isSelected ? 'slide-selected' : ''}`} onClick={() => this.loadUserInfo(key, ID, item)}>\r\n {\r\n iconItems && iconItems.length > 0 &&\r\n <div className='memberstate-stamp'>\r\n {iconItems}\r\n </div>\r\n }\r\n <div className='card-avatar'>\r\n <div className='avatar-box'>\r\n <img src={ImageFile || defaultAvatar} width={60} height={60}/>\r\n {IsEnableUMember && <div className={`avatar-bage ${UmemberOpenId ? 'bage-follow' : ''}`}>\r\n <div className='avatar-bage-scale'>{UmemberOpenId ? '已关注' : '未关注'}</div>\r\n </div>}\r\n </div>\r\n </div>\r\n <div className='member-level'>\r\n <span>{MemberType.Name}</span>\r\n </div>\r\n <div className='member-info-container'>\r\n <div className='member-infos'>\r\n <h1 className='member-info-name'>{Name}</h1>\r\n <p className='member-phone'>{Mobilephone || CardCode}</p>\r\n </div>\r\n <div className='member-money'>\r\n <div className='score'>\r\n <span>{formatPrecision(BalanceIntegral, precisionInfo.BalanceIntegral)}积分</span>\r\n </div>\r\n <div className='balance'>\r\n <span>{BalanceStorage ? formatPrecision(BalanceStorage, precisionInfo.BalanceStorage) : 0}余额</span>\r\n </div>\r\n </div>\r\n {IsEnableUMember && <div className='member-tag'>\r\n {labels.map((item, key) => <span key={key}>{item}</span>)}\r\n </div>}\r\n </div>\r\n {isSelected && <div className='member-selected-icon'>\r\n <div className='member-selected-icon-arrow'>\r\n <Ticon type='huiyuanxuanzhong' />\r\n </div>\r\n </div>}\r\n </div>\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.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.resetSlideTop();\r\n }\r\n });\r\n }\r\n }\r\n\r\n resetSlideTop = () => {\r\n if (memberSwiper) {\r\n memberSwiper.slideTo(0, 0, false);\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\r\n handleOk = (nomemberList) => {\r\n const { member, errorMsg } = this.state;\r\n const { isExpiration, MemberState: { Id, Name } = {} } = member || {};\r\n if (nomemberList) {\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} = {} } = {}, items = [] } = this.context.viewModel || {};\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 lastRetailPageNo === 1 && await this.resetLastRetail(0)\r\n const params = {\r\n memberId: ID,\r\n pageNo: this.state.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: 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 } = this.state;\r\n const { status, showModal, titleModal, type, defaultActiveKey, onCancel, viewMemberInfo, authProcess, mode } = this.props;\r\n const { precisionInfo = {} } = this.ms;\r\n const showSearch = ['会员查询'].includes(type);\r\n const nomemberList = !memberList.length;\r\n const showSelectBtn = type === '会员查询' || !!status;\r\n //是否正常开单\r\n let voucherStateType = (mode !== 'practice');\r\n const { memberEnumState } = enumController.getEnumOj();\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 && nomemberList && <div className='empty-data-img'><div className='tip-text'>暂无数据 ~</div></div>\r\n }\r\n <div className='member-card-list-side' style={{ display: nomemberList ? 'none' : 'block' }}>\r\n <div className=\"swiper-member-container\" style={{ height: '100%' }}>\r\n <div className=\"swiper-wrapper\">\r\n {memberList.map((value, key) => this.getCardRender(value, key, IsEnableUMember, precisionInfo))}\r\n {!memberList.length && <span className='empty-data-tip' style={{ marginTop: 30 }}>没有相关数据~</span>}\r\n {loadmoreLoading && <span className='empty-data-tip empty-data-tip-member-card'>数据加载中 ...</span>}\r\n {nomoreData && <span className='empty-data-tip empty-data-tip-member-card'>没有更多数据了~</span>}\r\n </div>\r\n <div className=\"swiper-scrollbar\" />\r\n </div>\r\n </div>\r\n <div className='member-content-tab content' style={{ display: nomemberList ? 'none' : 'flex' }}>\r\n {\r\n (voucherStateType && !isAllAuthority) &&\r\n <div>\r\n <div className='menu'>\r\n <MemberMenu authProcess={authProcess} changeIsAllAuthority={this.changeIsAllAuthority} loadUserList={this.loadUserList} member={member} memberEnumState={memberEnumState} loadingBtn={loadingBtn} selected={selected} loadUserInfo={(key, Idmember, item, type, syncUpdateMember) => this.loadUserInfo(key, Idmember, item, type, syncUpdateMember)} 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 titleModal={titleModal}\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 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(nomemberList)}\r\n type=\"primary\"\r\n style={{ marginRight: 5 }}\r\n disabled={loadingUser}\r\n >\r\n {\r\n loadingUser ? '加载会员' : nomemberList ? '确定' : '选取会员'\r\n }\r\n </Button>\r\n }\r\n </div>\r\n </div>\r\n )\r\n }\r\n}\r\n"]}
@@ -748,6 +748,39 @@ var MemberStore = (_class = function () {
748
748
 
749
749
  return UnRecordLoss;
750
750
  }()
751
+
752
+ // 最近购买
753
+
754
+ }, {
755
+ key: 'findMemberLastRetailDetail',
756
+ value: function () {
757
+ var _ref21 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee16(params) {
758
+ var resp;
759
+ return _regenerator2.default.wrap(function _callee16$(_context16) {
760
+ while (1) {
761
+ switch (_context16.prev = _context16.next) {
762
+ case 0:
763
+ _context16.next = 2;
764
+ return (0, _tplusApi.ccApi)(params, "/member/fundConsume/findMemberLastRetailDetail", false, false, { method: 'get' });
765
+
766
+ case 2:
767
+ resp = _context16.sent;
768
+ return _context16.abrupt('return', resp);
769
+
770
+ case 4:
771
+ case 'end':
772
+ return _context16.stop();
773
+ }
774
+ }
775
+ }, _callee16, this);
776
+ }));
777
+
778
+ function findMemberLastRetailDetail(_x19) {
779
+ return _ref21.apply(this, arguments);
780
+ }
781
+
782
+ return findMemberLastRetailDetail;
783
+ }()
751
784
  }]);
752
785
  return MemberStore;
753
786
  }(), (_descriptor = _applyDecoratedDescriptor(_class.prototype, 'birthdayShow', [_mobx.observable], {
@@ -1 +1 @@
1
- {"version":3,"sources":["tplus-member/member/api.js"],"names":["MemberStore","curMemberInfo","searchValue","setCurMemberInfo","val","value","isBirth","selectMemberInfo","BirthDate","changeBirthdayShow","setTimeout","birthdayShow","precisionInfo","values","length","forEach","v","info","memberCareInfo","stores","user","options","get","obj","getLoginInfo","IdStore","StoreCode","Message","warn","SearchParams","CurrentPage","currentPage","PageSize","pageSize","Key","key","IsSingleMember","isSingleMember","data","Idmember","CameraType","minutes","orgId","accessToken","CiaToken","CloudServerHost","accountId","enterpriseUniqId","token","SignalRToken","PosId","storeID","appKey","CloudServerAppKey","params","axios","Rid","imageTime","count","undefined","SignalRServerHost","id","src","fileParams","ImagePath","param","voucherViewInfo","platform","isNewRetailBCPos","meMemberId","member","ID","oldPassword","User","pwdEncrypt","oldPass","newPassword","Password","dataSource","resp","dto","oldPsw","idstore","Idstore","newPass","memberDTO","newPwd","MemberDTO","observable","action","memberStore","selectMemberStore"],"mappings":"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","file":"api.js","sourcesContent":["import { tApi, ccApi, User } from 'tplus-api';\r\nimport { observable, action, useStrict, extendObservable, runInAction } from 'mobx';\r\nimport { registerStores, stores } from 'mutants-microfx';\r\nimport { platform } from 'mutants-util';\r\nimport { PosInitData } from 'tplus-poslogin';\r\nimport { Message } from 'tplus-components-touch';\r\nimport axios from 'axios'; // cloud server消息推送接口单独使用 不走统一配置\r\nimport { isBirthDate } from '../utils';\r\n\r\nuseStrict(true);\r\nclass MemberStore {\r\n\r\n @observable birthdayShow = false;\r\n @observable selectMemberInfo = {};\r\n @observable precisionInfo = {};\r\n @observable memberCareInfo\r\n @observable isClear\r\n\r\n curMemberInfo={} //开卡-fengtao\r\n searchValue='' //自动搜索会员-会员新增成功-fengtao\r\n\r\n\r\n setCurMemberInfo=(val)=>{\r\n this.curMemberInfo=val||{};\r\n }\r\n\r\n @action seletMember(value = {}, isBirth) {\r\n this.selectMemberInfo = value;\r\n //针对会员生日处理\r\n let { BirthDate } = value;\r\n if (isBirth && BirthDate && isBirthDate(BirthDate)) {\r\n this.changeBirthdayShow(true);\r\n setTimeout(() => { this.changeBirthdayShow(false) }, 3000)\r\n }\r\n }\r\n\r\n @action changeBirthdayShow(value = false) {\r\n this.birthdayShow = value;\r\n }\r\n\r\n @action clearSeletMember() {\r\n this.selectMemberInfo = {};\r\n }\r\n\r\n @action setPrecisionInfo(precisionInfo) {\r\n this.precisionInfo = precisionInfo;\r\n }\r\n\r\n @action setMemberKey(values = {}) {\r\n if (Object.keys(this.selectMemberInfo).length) {\r\n Object.keys(values).forEach(v => this.selectMemberInfo[v] = values[v]);\r\n }\r\n }\r\n\r\n @action changeMemberCare(info) {\r\n this.memberCareInfo = info;\r\n }\r\n\r\n @action clearMemberCare() {\r\n this.memberCareInfo = null;\r\n }\r\n\r\n getLoginInfo() {\r\n return stores.user.options.get('loginInfo');\r\n }\r\n async getSearchMember(obj) {\r\n const { IdStore, StoreCode } = this.getLoginInfo();\r\n if (!IdStore || !StoreCode) {\r\n Message.warn('门店相关信息缺失');\r\n return {};\r\n }\r\n const SearchParams = {\r\n CurrentPage: obj.currentPage,\r\n PageSize: obj.pageSize,\r\n Key: obj.key,\r\n IsSingleMember: obj.isSingleMember,\r\n IdStore: IdStore,\r\n StoreCode: StoreCode\r\n };\r\n const data = await tApi({\r\n SearchParams\r\n }, 'chanjet.AA.DR.INewRetailMember.SearchMember', false, false);\r\n return data;\r\n }\r\n\r\n async getGetUmemberDTO(Idmember) {\r\n const { IdStore, StoreCode } = this.getLoginInfo();\r\n return tApi({ Idmember, IdStore, StoreCode }, 'chanjet.AA.DR.INewRetailMember.GetUmemberDTO', false, false);\r\n }\r\n\r\n async getMemberRetailDetail(Idmember) {\r\n const { IdStore } = this.getLoginInfo();\r\n return tApi({ Idmember, IdStore }, 'chanjet.AA.DR.INewRetailMember.GetMemberRetailDetail', false, false);\r\n }\r\n\r\n async loadInStoreMember(CameraType) {\r\n const { IdStore, StoreCode } = this.getLoginInfo();\r\n const SearchParams = {\r\n CurrentPage: 1,\r\n PageSize: 999,\r\n CameraType,\r\n IdStore,\r\n StoreCode\r\n }\r\n const data = await tApi({\r\n SearchParams\r\n }, 'chanjet.AA.DR.INewRetailMember.LoadInStoreMember', false, false);\r\n return data;\r\n }\r\n\r\n async getInStoreMemberCount(minutes = 30) { // 到店会员数量\r\n const { orgId } = stores.user || {};\r\n const { CiaToken: accessToken, CloudServerHost, enterpriseUniqId: accountId, SignalRToken: token, PosId, storeID, CloudServerAppKey: appKey } = this.getLoginInfo();\r\n const params = { accountId, token, PosId, storeID, orgId, minutes, accessToken, appKey };\r\n\r\n return await axios.get(`${CloudServerHost}/ruiwei/ArrivalCount`, { params });\r\n }\r\n\r\n async getLastSnapImageList(Rid, imageTime = 30, count = 30) { // 到店会员头像列表\r\n Rid = Rid || undefined;\r\n const { orgId } = stores.user || {};\r\n const { CiaToken: accessToken, CloudServerHost, enterpriseUniqId: accountId, SignalRToken: token, PosId, storeID, CloudServerAppKey: appKey } = this.getLoginInfo();\r\n const params = { accountId, token, PosId, storeID, orgId, accessToken, appKey, imageTime, Rid, count };\r\n\r\n return await axios.get(`${CloudServerHost}/ruiwei/ArrivalPhoto`, { params });\r\n }\r\n\r\n async socketAuth() {\r\n const { orgId } = stores.user || {};\r\n const { SignalRServerHost, CiaToken, enterpriseUniqId: accountId, SignalRToken: token, PosId, storeID, CloudServerAppKey: appKey } = this.getLoginInfo();\r\n const params = { accountId, token, PosId, storeID, orgId, appKey, CiaToken };\r\n\r\n return await axios.get(`${SignalRServerHost}/api/auth/GetAccessToken`, { params });\r\n }\r\n\r\n async uploadMemberImage(id, src) {\r\n const fileParams = {\r\n Idmember: id,\r\n ImagePath: src\r\n }\r\n const data = await tApi({\r\n fileParams\r\n }, 'chanjet.AA.DR.INewRetailMember.UploadMemberImage', false, false);\r\n return data;\r\n }\r\n\r\n async getMemberAddViewInfo() {\r\n const param = {\r\n \"voucherName\": \"MemberAdd\"\r\n };\r\n const voucherViewInfo = await tApi({param}, 'chanjet.RE.INewRetailVoucherService.GetNewVoucherViewInfo', false, false);\r\n return voucherViewInfo;\r\n }\r\n\r\n async getStoreMemberStorageViewInfo() {\r\n const param = {\r\n \"voucherName\": \"StoreMemberStorage\"\r\n };\r\n const voucherViewInfo = await tApi({param}, 'chanjet.RE.INewRetailVoucherService.GetNewVoucherViewInfo', false, false);\r\n return voucherViewInfo;\r\n }\r\n\r\n //修改密码 \r\n async modifyMemberPass(obj) {\r\n let { isNewRetailBCPos } = platform || {};\r\n if (isNewRetailBCPos) {\r\n let params = {\r\n meMemberId: obj.member.ID,\r\n oldPassword: User.pwdEncrypt(obj.oldPass),\r\n newPassword: User.pwdEncrypt(obj.member.Password),\r\n dataSource: \"POS\"\r\n }\r\n let resp = await ccApi(params,\r\n \"/member/MeMemberWallet/setWalletPayPassword\",\r\n false,\r\n false,\r\n );\r\n return resp;\r\n } else {\r\n let params = {\r\n dto: obj.member,\r\n oldPsw: obj.oldPass\r\n }\r\n return tApi(params, 'chanjet.AA.DR.INewRetailMember.UpdatePsw', false, false);\r\n }\r\n }\r\n\r\n // 设置密码\r\n async setPwd(obj) {\r\n let idstore = PosInitData('storeID');\r\n let params = {\r\n Idstore: idstore,\r\n meMemberId: obj.member.ID,\r\n oldPassword: null,\r\n newPassword: User.pwdEncrypt(obj.member.Password),\r\n dataSource: \"POS\"\r\n }\r\n let resp = await ccApi(params,\r\n \"/member/MeMemberWallet/setWalletPayPassword\",\r\n false,\r\n false,\r\n );\r\n return resp;\r\n }\r\n\r\n //重置密码\r\n async resetMemberPass(obj) {\r\n let { isNewRetailBCPos } = platform || {};\r\n if (isNewRetailBCPos) {\r\n let params = {\r\n meMemberId: obj.member.ID,\r\n oldPassword: null,\r\n newPassword: User.pwdEncrypt(obj.newPass),\r\n dataSource: \"POS\"\r\n }\r\n let resp = await ccApi(params,\r\n \"/member/MeMemberWallet/setWalletPayPassword\",\r\n false,\r\n false,\r\n );\r\n return resp;\r\n } else {\r\n let params = {\r\n memberDTO: obj.member,\r\n newPwd: obj.newPass\r\n }\r\n return tApi(params, 'chanjet.AA.DR.INewRetailMember.ChangePosPwd', false, false);\r\n }\r\n }\r\n\r\n //挂失\r\n async RecordLoss(member) {\r\n return tApi({ MemberDTO: member }, 'chanjet.AA.DR.INewRetailMember.RecordLoss', false, false);\r\n }\r\n\r\n //取消挂失\r\n async UnRecordLoss(member) {\r\n return tApi({ MemberDTO: member }, 'chanjet.AA.DR.INewRetailMember.UnRecordLoss', false, false);\r\n }\r\n}\r\n\r\nconst memberStore = new MemberStore();\r\n\r\nexport default memberStore;\r\n\r\nregisterStores({ selectMemberStore: memberStore });\r\n"]}
1
+ {"version":3,"sources":["tplus-member/member/api.js"],"names":["MemberStore","curMemberInfo","searchValue","setCurMemberInfo","val","value","isBirth","selectMemberInfo","BirthDate","changeBirthdayShow","setTimeout","birthdayShow","precisionInfo","values","length","forEach","v","info","memberCareInfo","stores","user","options","get","obj","getLoginInfo","IdStore","StoreCode","Message","warn","SearchParams","CurrentPage","currentPage","PageSize","pageSize","Key","key","IsSingleMember","isSingleMember","data","Idmember","CameraType","minutes","orgId","accessToken","CiaToken","CloudServerHost","accountId","enterpriseUniqId","token","SignalRToken","PosId","storeID","appKey","CloudServerAppKey","params","axios","Rid","imageTime","count","undefined","SignalRServerHost","id","src","fileParams","ImagePath","param","voucherViewInfo","platform","isNewRetailBCPos","meMemberId","member","ID","oldPassword","User","pwdEncrypt","oldPass","newPassword","Password","dataSource","resp","dto","oldPsw","idstore","Idstore","newPass","memberDTO","newPwd","MemberDTO","method","observable","action","memberStore","selectMemberStore"],"mappings":"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","file":"api.js","sourcesContent":["import { tApi, ccApi, User } from 'tplus-api';\r\nimport { observable, action, useStrict, extendObservable, runInAction } from 'mobx';\r\nimport { registerStores, stores } from 'mutants-microfx';\r\nimport { platform } from 'mutants-util';\r\nimport { PosInitData } from 'tplus-poslogin';\r\nimport { Message } from 'tplus-components-touch';\r\nimport axios from 'axios'; // cloud server消息推送接口单独使用 不走统一配置\r\nimport { isBirthDate } from '../utils';\r\n\r\nuseStrict(true);\r\nclass MemberStore {\r\n\r\n @observable birthdayShow = false;\r\n @observable selectMemberInfo = {};\r\n @observable precisionInfo = {};\r\n @observable memberCareInfo\r\n @observable isClear\r\n\r\n curMemberInfo={} //开卡-fengtao\r\n searchValue='' //自动搜索会员-会员新增成功-fengtao\r\n\r\n\r\n setCurMemberInfo=(val)=>{\r\n this.curMemberInfo=val||{};\r\n }\r\n\r\n @action seletMember(value = {}, isBirth) {\r\n this.selectMemberInfo = value;\r\n //针对会员生日处理\r\n let { BirthDate } = value;\r\n if (isBirth && BirthDate && isBirthDate(BirthDate)) {\r\n this.changeBirthdayShow(true);\r\n setTimeout(() => { this.changeBirthdayShow(false) }, 3000)\r\n }\r\n }\r\n\r\n @action changeBirthdayShow(value = false) {\r\n this.birthdayShow = value;\r\n }\r\n\r\n @action clearSeletMember() {\r\n this.selectMemberInfo = {};\r\n }\r\n\r\n @action setPrecisionInfo(precisionInfo) {\r\n this.precisionInfo = precisionInfo;\r\n }\r\n\r\n @action setMemberKey(values = {}) {\r\n if (Object.keys(this.selectMemberInfo).length) {\r\n Object.keys(values).forEach(v => this.selectMemberInfo[v] = values[v]);\r\n }\r\n }\r\n\r\n @action changeMemberCare(info) {\r\n this.memberCareInfo = info;\r\n }\r\n\r\n @action clearMemberCare() {\r\n this.memberCareInfo = null;\r\n }\r\n\r\n getLoginInfo() {\r\n return stores.user.options.get('loginInfo');\r\n }\r\n async getSearchMember(obj) {\r\n const { IdStore, StoreCode } = this.getLoginInfo();\r\n if (!IdStore || !StoreCode) {\r\n Message.warn('门店相关信息缺失');\r\n return {};\r\n }\r\n const SearchParams = {\r\n CurrentPage: obj.currentPage,\r\n PageSize: obj.pageSize,\r\n Key: obj.key,\r\n IsSingleMember: obj.isSingleMember,\r\n IdStore: IdStore,\r\n StoreCode: StoreCode\r\n };\r\n const data = await tApi({\r\n SearchParams\r\n }, 'chanjet.AA.DR.INewRetailMember.SearchMember', false, false);\r\n return data;\r\n }\r\n\r\n async getGetUmemberDTO(Idmember) {\r\n const { IdStore, StoreCode } = this.getLoginInfo();\r\n return tApi({ Idmember, IdStore, StoreCode }, 'chanjet.AA.DR.INewRetailMember.GetUmemberDTO', false, false);\r\n }\r\n\r\n async getMemberRetailDetail(Idmember) {\r\n const { IdStore } = this.getLoginInfo();\r\n return tApi({ Idmember, IdStore }, 'chanjet.AA.DR.INewRetailMember.GetMemberRetailDetail', false, false);\r\n }\r\n\r\n async loadInStoreMember(CameraType) {\r\n const { IdStore, StoreCode } = this.getLoginInfo();\r\n const SearchParams = {\r\n CurrentPage: 1,\r\n PageSize: 999,\r\n CameraType,\r\n IdStore,\r\n StoreCode\r\n }\r\n const data = await tApi({\r\n SearchParams\r\n }, 'chanjet.AA.DR.INewRetailMember.LoadInStoreMember', false, false);\r\n return data;\r\n }\r\n\r\n async getInStoreMemberCount(minutes = 30) { // 到店会员数量\r\n const { orgId } = stores.user || {};\r\n const { CiaToken: accessToken, CloudServerHost, enterpriseUniqId: accountId, SignalRToken: token, PosId, storeID, CloudServerAppKey: appKey } = this.getLoginInfo();\r\n const params = { accountId, token, PosId, storeID, orgId, minutes, accessToken, appKey };\r\n\r\n return await axios.get(`${CloudServerHost}/ruiwei/ArrivalCount`, { params });\r\n }\r\n\r\n async getLastSnapImageList(Rid, imageTime = 30, count = 30) { // 到店会员头像列表\r\n Rid = Rid || undefined;\r\n const { orgId } = stores.user || {};\r\n const { CiaToken: accessToken, CloudServerHost, enterpriseUniqId: accountId, SignalRToken: token, PosId, storeID, CloudServerAppKey: appKey } = this.getLoginInfo();\r\n const params = { accountId, token, PosId, storeID, orgId, accessToken, appKey, imageTime, Rid, count };\r\n\r\n return await axios.get(`${CloudServerHost}/ruiwei/ArrivalPhoto`, { params });\r\n }\r\n\r\n async socketAuth() {\r\n const { orgId } = stores.user || {};\r\n const { SignalRServerHost, CiaToken, enterpriseUniqId: accountId, SignalRToken: token, PosId, storeID, CloudServerAppKey: appKey } = this.getLoginInfo();\r\n const params = { accountId, token, PosId, storeID, orgId, appKey, CiaToken };\r\n\r\n return await axios.get(`${SignalRServerHost}/api/auth/GetAccessToken`, { params });\r\n }\r\n\r\n async uploadMemberImage(id, src) {\r\n const fileParams = {\r\n Idmember: id,\r\n ImagePath: src\r\n }\r\n const data = await tApi({\r\n fileParams\r\n }, 'chanjet.AA.DR.INewRetailMember.UploadMemberImage', false, false);\r\n return data;\r\n }\r\n\r\n async getMemberAddViewInfo() {\r\n const param = {\r\n \"voucherName\": \"MemberAdd\"\r\n };\r\n const voucherViewInfo = await tApi({param}, 'chanjet.RE.INewRetailVoucherService.GetNewVoucherViewInfo', false, false);\r\n return voucherViewInfo;\r\n }\r\n\r\n async getStoreMemberStorageViewInfo() {\r\n const param = {\r\n \"voucherName\": \"StoreMemberStorage\"\r\n };\r\n const voucherViewInfo = await tApi({param}, 'chanjet.RE.INewRetailVoucherService.GetNewVoucherViewInfo', false, false);\r\n return voucherViewInfo;\r\n }\r\n\r\n //修改密码 \r\n async modifyMemberPass(obj) {\r\n let { isNewRetailBCPos } = platform || {};\r\n if (isNewRetailBCPos) {\r\n let params = {\r\n meMemberId: obj.member.ID,\r\n oldPassword: User.pwdEncrypt(obj.oldPass),\r\n newPassword: User.pwdEncrypt(obj.member.Password),\r\n dataSource: \"POS\"\r\n }\r\n let resp = await ccApi(params,\r\n \"/member/MeMemberWallet/setWalletPayPassword\",\r\n false,\r\n false,\r\n );\r\n return resp;\r\n } else {\r\n let params = {\r\n dto: obj.member,\r\n oldPsw: obj.oldPass\r\n }\r\n return tApi(params, 'chanjet.AA.DR.INewRetailMember.UpdatePsw', false, false);\r\n }\r\n }\r\n\r\n // 设置密码\r\n async setPwd(obj) {\r\n let idstore = PosInitData('storeID');\r\n let params = {\r\n Idstore: idstore,\r\n meMemberId: obj.member.ID,\r\n oldPassword: null,\r\n newPassword: User.pwdEncrypt(obj.member.Password),\r\n dataSource: \"POS\"\r\n }\r\n let resp = await ccApi(params,\r\n \"/member/MeMemberWallet/setWalletPayPassword\",\r\n false,\r\n false,\r\n );\r\n return resp;\r\n }\r\n\r\n //重置密码\r\n async resetMemberPass(obj) {\r\n let { isNewRetailBCPos } = platform || {};\r\n if (isNewRetailBCPos) {\r\n let params = {\r\n meMemberId: obj.member.ID,\r\n oldPassword: null,\r\n newPassword: User.pwdEncrypt(obj.newPass),\r\n dataSource: \"POS\"\r\n }\r\n let resp = await ccApi(params,\r\n \"/member/MeMemberWallet/setWalletPayPassword\",\r\n false,\r\n false,\r\n );\r\n return resp;\r\n } else {\r\n let params = {\r\n memberDTO: obj.member,\r\n newPwd: obj.newPass\r\n }\r\n return tApi(params, 'chanjet.AA.DR.INewRetailMember.ChangePosPwd', false, false);\r\n }\r\n }\r\n\r\n //挂失\r\n async RecordLoss(member) {\r\n return tApi({ MemberDTO: member }, 'chanjet.AA.DR.INewRetailMember.RecordLoss', false, false);\r\n }\r\n\r\n //取消挂失\r\n async UnRecordLoss(member) {\r\n return tApi({ MemberDTO: member }, 'chanjet.AA.DR.INewRetailMember.UnRecordLoss', false, false);\r\n }\r\n\r\n // 最近购买\r\n async findMemberLastRetailDetail(params) {\r\n let resp = await ccApi(params,\r\n \"/member/fundConsume/findMemberLastRetailDetail\",\r\n false,\r\n false,\r\n { method: 'get' }\r\n );\r\n return resp;\r\n }\r\n}\r\n\r\nconst memberStore = new MemberStore();\r\n\r\nexport default memberStore;\r\n\r\nregisterStores({ selectMemberStore: memberStore });\r\n"]}
@@ -147,6 +147,9 @@ var MemberTab = (0, _mobxReact.observer)(_class = (_temp = _class2 = function (_
147
147
  value: function componentWillUnmount() {
148
148
  this.overflowTip.destroy();
149
149
  }
150
+
151
+ // 点击购买记录加载更多按钮
152
+
150
153
  }, {
151
154
  key: 'render',
152
155
  value: function render() {
@@ -200,6 +203,12 @@ var MemberTab = (0, _mobxReact.observer)(_class = (_temp = _class2 = function (_
200
203
  });
201
204
  };
202
205
 
206
+ this.loadRecentlyMore = function () {
207
+ var findMemberLastRetailDetailList = _this2.props.findMemberLastRetailDetailList;
208
+
209
+ findMemberLastRetailDetailList && findMemberLastRetailDetailList(50);
210
+ };
211
+
203
212
  this.memberInfoEle = function (_ref3) {
204
213
  var title = _ref3.title,
205
214
  key = _ref3.key;
@@ -445,15 +454,17 @@ var MemberTab = (0, _mobxReact.observer)(_class = (_temp = _class2 = function (_
445
454
  key = _ref7.key;
446
455
  var _props3 = _this2.props,
447
456
  memberTabHeight = _props3.memberTabHeight,
448
- _props3$memberInfo = _props3.memberInfo;
449
- _props3$memberInfo = _props3$memberInfo === undefined ? {} : _props3$memberInfo;
450
- var _props3$memberInfo$re = _props3$memberInfo.recency,
451
- recency = _props3$memberInfo$re === undefined ? [] : _props3$memberInfo$re;
457
+ _props3$lastRetailLoa = _props3.lastRetailLoading,
458
+ lastRetailLoading = _props3$lastRetailLoa === undefined ? false : _props3$lastRetailLoa,
459
+ _props3$lastRetailTot = _props3.lastRetailTotal,
460
+ lastRetailTotal = _props3$lastRetailTot === undefined ? 0 : _props3$lastRetailTot,
461
+ _props3$lastRetailLis = _props3.lastRetailList,
462
+ lastRetailList = _props3$lastRetailLis === undefined ? [] : _props3$lastRetailLis;
452
463
 
453
464
  var theadHeight = 50;
454
465
  var tableHeight = memberTabHeight - _this2.tabHeadHeight;
455
466
  var dataSource = [];
456
- var data = recency;
467
+ var data = lastRetailList;
457
468
  data.forEach(function (vlaue, i) {
458
469
  var index = dataSource.findIndex(function (v) {
459
470
  return v.code === vlaue.Code;
@@ -534,19 +545,13 @@ var MemberTab = (0, _mobxReact.observer)(_class = (_temp = _class2 = function (_
534
545
  !i ? _react2.default.createElement(
535
546
  'td',
536
547
  { className: item.data.length === 1 ? 'only-one-data' : '' },
537
- (0, _utils.dateFormat)(item.date),
538
- ' ',
539
- _react2.default.createElement(
540
- 'p',
541
- { className: 'tag' },
542
- '\u6574\u5355\u9000\u8D27'
543
- )
548
+ (0, _utils.dateFormat)(item.date)
544
549
  ) : _react2.default.createElement('td', { className: item.data.length - 1 === i ? 'data-border' : '' }),
545
550
  _react2.default.createElement(
546
551
  'td',
547
552
  { 'data-overflow': 'tip' },
548
553
  v.Name,
549
- _react2.default.createElement(
554
+ Number(v.Amount) < 0 && _react2.default.createElement(
550
555
  'p',
551
556
  { className: 'tag' },
552
557
  '\u9000\u8D27'
@@ -582,12 +587,12 @@ var MemberTab = (0, _mobxReact.observer)(_class = (_temp = _class2 = function (_
582
587
  )
583
588
  )
584
589
  ),
585
- _react2.default.createElement(
590
+ lastRetailTotal != lastRetailList.length && _react2.default.createElement(
586
591
  'div',
587
592
  { className: 'more-button' },
588
593
  _react2.default.createElement(
589
594
  _button2.default,
590
- { type: 'text', className: 'primary-color' },
595
+ { type: 'text', loading: lastRetailLoading, className: 'primary-color', onClick: _this2.loadRecentlyMore },
591
596
  '\u52A0\u8F7D\u66F4\u591A'
592
597
  )
593
598
  )
@@ -1 +1 @@
1
- {"version":3,"sources":["tplus-member/member/memberTab.js"],"names":["TabPane","transform","Code","CardCode","Name","MemberTypeName","Mobilephone","Telephone","StoreName","sex","BirthDate","TotalIntegral","BalanceIntegral","BalanceStorage","TotalStorage","TotalBegin","EffectiveDate","ExpirationDate","UmemberOpenId","UmemberLabel","MemberCouponTitle","Memo","MemberTab","observer","props","stores","user","options","get","IsEnableUMember","state","overflowTip","OverflowTip","target","format","text","colonStr","startsWith","split","containerDom","update","destroy","defaultActiveKey","onChange","memberInfoEle","title","key","rmecommendEle","recentlyEle","Component","propTypes","memberTabHeight","PropTypes","number","any","memberList","array","columnInfo","member","object","memberInfo","precisionInfo","initEmpty","bool","func","tabHeadHeight","dataClear","keys","values","regKey","dataSource","forEach","index","includes","find","v","FieldName","label","Title","push","value","filter","platform","isNewRetailBCPos","getMemberStateStamp","DynamicPropertyKeys","DynamicPropertyValues","MemberType","Sex","isExpiration","Uid","isUserLogout","MemberState","Store","priuserdefData","isUMember","isUMemberShow","memberValues","memberInfos","memberTabContentHeight","hasMemberInfo","some","enumController","getEnumOj","Differentiate","CC_NOT_DISPLAY","COUPON","isHaveCCNot","item","memberValue","precision","undefined","dataItem","length","map","formatValue","formatDateKeys","iconItems","height","position","recommend","recommends","record","like","Value","recommendInfoHeight","haveRecord","every","console","log","emptyRecommend","emptyData","showInfos","recordFilter","name","recommendHeight","recency","theadHeight","tableHeight","data","vlaue","i","findIndex","code","Time","rest","itemValue","date","itemData","sort","a","b","Amount","textAlign","Quantity"],"mappings":"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","file":"memberTab.js","sourcesContent":["import React, { Component } from 'react';\r\nimport { Tabs, Button } from 'antd';\r\nimport { observer } from 'mobx-react';\r\nimport { stores, localStore } from 'mutants-microfx';\r\nimport { OverflowTip, TouchScroll, CardList } from 'tplus-components-touch';\r\nimport { formatPrecision, dateFormat } from '../utils';\r\nimport PropTypes from 'prop-types';\r\nimport { enumController, platform } from 'mutants-util';\r\nimport './ShopMember.less';\r\n\r\nconst { TabPane } = Tabs;\r\n\r\nlet transform = {\r\n Code: '会员编号',\r\n CardCode: '会员卡号',\r\n Name: '会员姓名',\r\n MemberTypeName: '会员类型',\r\n Mobilephone: '手机号',\r\n Telephone: '联系电话',\r\n StoreName:'开卡门店',\r\n sex: '性别',\r\n BirthDate: '出生日期',\r\n TotalIntegral: '累计积分',\r\n BalanceIntegral: '积分余额',\r\n BalanceStorage: '当前总余额',\r\n TotalStorage: '储值总额', // 字段存疑\r\n TotalBegin: '期初余额',\r\n EffectiveDate: '生效日期',\r\n ExpirationDate: '失效日期',\r\n UmemberOpenId: '是否关注微信号',\r\n UmemberLabel: '会员标签',\r\n MemberCouponTitle: '优惠券',\r\n Memo: '备注',\r\n};\r\n\r\n@observer\r\nexport default class MemberTab extends Component {\r\n\r\n static propTypes = {\r\n memberTabHeight: PropTypes.number,\r\n defaultActiveKey: PropTypes.any,\r\n memberList: PropTypes.array,\r\n columnInfo: PropTypes.array,\r\n member: PropTypes.object,\r\n memberInfo: PropTypes.object,\r\n precisionInfo: PropTypes.object,\r\n initEmpty: PropTypes.bool,\r\n onChange: PropTypes.func,\r\n };\r\n\r\n tabHeadHeight = 37;\r\n\r\n constructor(props) {\r\n super(props);\r\n const { IsEnableUMember } = stores.user.options.get('loginInfo') || {};\r\n this.state = { IsEnableUMember: !!IsEnableUMember };\r\n }\r\n\r\n componentDidMount() {\r\n this.overflowTip = new OverflowTip({\r\n target: '.member-content-tab',\r\n format(text) {\r\n text = text || '';\r\n const colonStr = ':';\r\n if (text.startsWith(colonStr)) {\r\n return text.split(colonStr)[1];\r\n }\r\n return text;\r\n }\r\n });\r\n }\r\n\r\n componentDidUpdate() {\r\n if (this.overflowTip && !this.overflowTip.containerDom) {\r\n this.overflowTip.update();\r\n }\r\n }\r\n\r\n componentWillUnmount() {\r\n this.overflowTip.destroy();\r\n }\r\n\r\n dataClear = (keys, values, columnInfo) => {\r\n const regKey = 'priuserdef';\r\n const dataSource = [];\r\n keys.forEach((key, index) => {\r\n if (key.includes(regKey)) {\r\n const {Title: label} = columnInfo.find(v => v.FieldName === key) || {};\r\n dataSource.push({key, value: values[index], label});\r\n }\r\n });\r\n return dataSource.filter(v => v.label);\r\n }\r\n\r\n memberInfoEle = ({ title, key }) => {\r\n let { isNewRetailBCPos } = platform || {};\r\n const { member = {}, memberTabHeight, memberList = [], columnInfo = [], precisionInfo = {}, getMemberStateStamp} = this.props;\r\n const {IsEnableUMember} = this.state;\r\n const { DynamicPropertyKeys = [], DynamicPropertyValues = [], ExpirationDate = '', MemberType: { Name: MemberTypeName } = {},\r\n Sex: { Name: sex } = {}, isExpiration, Uid, isUserLogout, MemberState, Store: { Name : StoreName } = {} } = member;\r\n let priuserdefData = this.dataClear(DynamicPropertyKeys, DynamicPropertyValues, columnInfo);\r\n const isUMember = IsEnableUMember && Uid > 0; // 判断为u会员\r\n const isUMemberShow = ['UmemberOpenId', 'UmemberLabel', 'MemberCouponTitle'];\r\n const memberValues = { MemberTypeName, sex, StoreName , ...member};\r\n const memberInfos = [];\r\n const memberTabContentHeight = memberTabHeight - this.tabHeadHeight;\r\n const hasMemberInfo = Object.keys(memberValues).some(v => memberValues[v]);\r\n const { Differentiate } = enumController.getEnumOj();\r\n\r\n const CC_NOT_DISPLAY = [\"Code\", \"ExpirationDate\", \"UmemberOpenId\", \"UmemberLabel\"];\r\n\r\n transform.MemberCouponTitle = Differentiate.COUPON;\r\n transform.MemberTypeName = Differentiate.MemberTypeName;\r\n Object.keys(transform).forEach(v => {\r\n // 查找CC不需要显示的字段\r\n const isHaveCCNot = CC_NOT_DISPLAY.find(item => item == v);\r\n if (isNewRetailBCPos && isHaveCCNot) return;\r\n if (isUMemberShow.includes(v) && !isNewRetailBCPos &&!isUMember ) return;\r\n const memberValue = memberValues[v];\r\n const precision = precisionInfo[v];\r\n //let value = formatPrecisionKeys.includes(v) ? (hasMemberInfo ? formatPrecision(memberValue, precision) : undefined) : memberValue;\r\n let value = !!precision ? (hasMemberInfo ? formatPrecision(memberValue, precision) : undefined) : memberValue;\r\n (v === 'UmemberOpenId') && (value = memberValue ? '已关注' : '未关注');\r\n const dataItem = { label: `${transform[v]}`, value };\r\n memberInfos.push(dataItem);\r\n });\r\n\r\n //对自定义项的值进行处理。\r\n if (priuserdefData && priuserdefData.length > 0) {\r\n priuserdefData.map(item => {\r\n let { key, value } = item || {};\r\n let precision = precisionInfo[key];\r\n item['value'] = !!precision ? formatPrecision(value, precision) : value;\r\n })\r\n }\r\n\r\n memberInfos.push(...priuserdefData) // 插入会员自定义项\r\n memberInfos.length % 2 && memberInfos.push({}); //奇数补全\r\n\r\n const formatValue = (label, value) => {\r\n const formatDateKeys = ['出生日期', '失效日期', '生效日期'];\r\n if (formatDateKeys.includes(label)) {\r\n return dateFormat(value);\r\n } else {\r\n return value;\r\n }\r\n }\r\n //状态戳\r\n let iconItems = getMemberStateStamp(member);\r\n return (\r\n <TabPane tab={title} key={key}>\r\n <div style={{ height: memberTabContentHeight, position: 'relative' }}>\r\n <TouchScroll height={memberTabContentHeight} >\r\n {\r\n !!memberList.length && <div className='member-info-table'>\r\n {\r\n memberInfos.map((item, index) => <div key={index}>\r\n {item.label && <span>{item.label || ''}</span>}\r\n {item.label && <span data-overflow='tip'>:{formatValue(item.label, item.value)}</span>}\r\n </div>)\r\n }\r\n {\r\n !memberInfos.length && <p className='empty-data'>暂无数据~</p>\r\n }\r\n </div>\r\n }\r\n {\r\n !memberList.length && <div className='empty-data empty-data-img' />\r\n }\r\n </TouchScroll>\r\n {\r\n iconItems && iconItems.length > 0 &&\r\n <div className='memberstate-detail-stamp'>\r\n {iconItems}\r\n </div>\r\n }\r\n </div>\r\n </TabPane >)\r\n };\r\n\r\n rmecommendEle = ({ title, key }) => {\r\n let { recommend: recommends = [], memberInfo: { record = [], like = [] } = {}, memberTabHeight, initEmpty } = this.props;\r\n recommends = recommends.filter(v => v);\r\n recommends.push({ Name: '最近购买', Value: like });\r\n const recommendInfoHeight = 74;\r\n const memberTabContentHeight = memberTabHeight - this.tabHeadHeight;\r\n const haveRecord = !!record.length && record.every(v => !!(v && v.value));\r\n console.log('会员偶发白屏问题:recommends==', recommends)\r\n const emptyRecommend = (haveRecord && recommends.every(v => !((v && v.Value) || []).length)) ? <div className='empty-data'>暂无推荐~</div> : null;\r\n const emptyData = (!haveRecord && recommends.every(v => !((v && v.Value) || []).length)) ? <div className='empty-data empty-data-img'><div className='tip-text'>暂无数据 ~</div></div> : null;\r\n const showInfos = ['最近购买时间', '金额', '平均客单价']\r\n const recordFilter = record.filter(v => showInfos.includes(v.name));\r\n const recommendHeight = haveRecord ? memberTabContentHeight - recommendInfoHeight : memberTabContentHeight;\r\n return <TabPane tab={title} key={key}>\r\n <div className='recommend-tab' style={{height: memberTabContentHeight}}>\r\n {haveRecord && <div className='recommend-info'>\r\n {recordFilter.map((item, key) => <span key={key}>{item.name}: {item.value}</span>)}\r\n </div>}\r\n <div className='recommend-connent' style={{height: recommendHeight}}>\r\n <TouchScroll height={recommendHeight} key={recommendHeight}>\r\n {recommends.map((item, index) => {\r\n if (!(item.Value || []).length) return null;\r\n return <div key={index} className='detail-content'>\r\n <h1>{item.Name}</h1>\r\n <CardList\r\n list={item.Value || []}\r\n maxEmpyt={5}\r\n />\r\n </div>\r\n })}\r\n </TouchScroll>\r\n {initEmpty && emptyRecommend}\r\n </div>\r\n {initEmpty && emptyData}\r\n </div>\r\n </TabPane>;\r\n };\r\n\r\n recentlyEle = ({ title, key }) => {\r\n const {memberTabHeight, memberInfo: {recency = []} = {}} = this.props;\r\n const theadHeight = 50;\r\n const tableHeight = memberTabHeight - this.tabHeadHeight;\r\n const dataSource = [];\r\n const data = recency;\r\n data.forEach((vlaue, i) => {\r\n const index = dataSource.findIndex(v => v.code === vlaue.Code);\r\n if (~index) {\r\n dataSource[index].data.push(vlaue);\r\n } else {\r\n const { Time, Code, ...rest } = vlaue || {};\r\n const itemValue = { date: Time, code: Code, data: [rest] };\r\n dataSource.push(itemValue);\r\n }\r\n });\r\n\r\n dataSource.forEach(value => {\r\n // 金额倒序排序\r\n const itemData = value.data;\r\n if (itemData.length > 1) {\r\n itemData.sort((a = {}, b = {}) => b.Amount - a.Amount);\r\n }\r\n });\r\n\r\n return <TabPane tab={title} key={key}>\r\n {!!dataSource.length && <div className='recently-tab'>\r\n <table className='table'>\r\n <thead>\r\n <tr>\r\n <th width='25%'>消费日期</th>\r\n <th width='25%'>商品</th>\r\n <th width='25%' style={{textAlign: 'center'}}>数量</th>\r\n <th width='25%' className='amount-item'>消费金额</th>\r\n </tr>\r\n </thead>\r\n <tbody style={{height: tableHeight - theadHeight - 42}}>\r\n <TouchScroll>\r\n {dataSource.map((item, key) => {\r\n return item.data.map((v, i) =>\r\n <tr key={i}>\r\n {!i ?\r\n <td className={item.data.length === 1 ? 'only-one-data' : ''}>{dateFormat(item.date)} <p className='tag'>整单退货</p></td> :\r\n <td className={item.data.length - 1 === i ? 'data-border' : ''}/>\r\n }\r\n <td data-overflow='tip'>{v.Name}<p className='tag'>退货</p></td>\r\n <td data-overflow='tip' style={{textAlign: 'center'}}>{v.Quantity}</td>\r\n <td data-overflow='tip'>{v.Amount}</td>\r\n </tr>\r\n );\r\n })}\r\n </TouchScroll>\r\n </tbody>\r\n </table>\r\n </div>}\r\n {!dataSource.length && <div style={{height: tableHeight, position: 'relative'}}><div className='empty-data empty-data-img'><div className='tip-text'>暂无数据 ~</div></div></div>}\r\n <div className='more-button'><Button type=\"text\" className='primary-color'>加载更多</Button></div>\r\n </TabPane>;\r\n };\r\n\r\n render() {\r\n const {defaultActiveKey = '1' } = this.props;\r\n return (\r\n <Tabs\r\n defaultActiveKey={defaultActiveKey}\r\n onChange={this.props.onChange}\r\n className=\"member-table-container\"\r\n >\r\n {this.memberInfoEle({ title: '会员信息', key: '1' })}\r\n {this.rmecommendEle({ title: '智能推荐', key: '2' })}\r\n {this.recentlyEle({ title: '购买记录', key: '3' })}\r\n </Tabs>\r\n );\r\n }\r\n}\r\n"]}
1
+ {"version":3,"sources":["tplus-member/member/memberTab.js"],"names":["TabPane","transform","Code","CardCode","Name","MemberTypeName","Mobilephone","Telephone","StoreName","sex","BirthDate","TotalIntegral","BalanceIntegral","BalanceStorage","TotalStorage","TotalBegin","EffectiveDate","ExpirationDate","UmemberOpenId","UmemberLabel","MemberCouponTitle","Memo","MemberTab","observer","props","stores","user","options","get","IsEnableUMember","state","overflowTip","OverflowTip","target","format","text","colonStr","startsWith","split","containerDom","update","destroy","defaultActiveKey","onChange","memberInfoEle","title","key","rmecommendEle","recentlyEle","Component","propTypes","memberTabHeight","PropTypes","number","any","memberList","array","columnInfo","member","object","memberInfo","precisionInfo","initEmpty","bool","func","tabHeadHeight","dataClear","keys","values","regKey","dataSource","forEach","index","includes","find","v","FieldName","label","Title","push","value","filter","loadRecentlyMore","findMemberLastRetailDetailList","platform","isNewRetailBCPos","getMemberStateStamp","DynamicPropertyKeys","DynamicPropertyValues","MemberType","Sex","isExpiration","Uid","isUserLogout","MemberState","Store","priuserdefData","isUMember","isUMemberShow","memberValues","memberInfos","memberTabContentHeight","hasMemberInfo","some","enumController","getEnumOj","Differentiate","CC_NOT_DISPLAY","COUPON","isHaveCCNot","item","memberValue","precision","undefined","dataItem","length","map","formatValue","formatDateKeys","iconItems","height","position","recommend","recommends","record","like","Value","recommendInfoHeight","haveRecord","every","console","log","emptyRecommend","emptyData","showInfos","recordFilter","name","recommendHeight","lastRetailLoading","lastRetailTotal","lastRetailList","theadHeight","tableHeight","data","vlaue","i","findIndex","code","Time","rest","itemValue","date","itemData","sort","a","b","Amount","textAlign","Number","Quantity"],"mappings":"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","file":"memberTab.js","sourcesContent":["import React, { Component } from 'react';\r\nimport { Tabs, Button } from 'antd';\r\nimport { observer } from 'mobx-react';\r\nimport { stores, localStore } from 'mutants-microfx';\r\nimport { OverflowTip, TouchScroll, CardList } from 'tplus-components-touch';\r\nimport { formatPrecision, dateFormat } from '../utils';\r\nimport PropTypes from 'prop-types';\r\nimport { enumController, platform } from 'mutants-util';\r\nimport './ShopMember.less';\r\n\r\nconst { TabPane } = Tabs;\r\n\r\nlet transform = {\r\n Code: '会员编号',\r\n CardCode: '会员卡号',\r\n Name: '会员姓名',\r\n MemberTypeName: '会员类型',\r\n Mobilephone: '手机号',\r\n Telephone: '联系电话',\r\n StoreName:'开卡门店',\r\n sex: '性别',\r\n BirthDate: '出生日期',\r\n TotalIntegral: '累计积分',\r\n BalanceIntegral: '积分余额',\r\n BalanceStorage: '当前总余额',\r\n TotalStorage: '储值总额', // 字段存疑\r\n TotalBegin: '期初余额',\r\n EffectiveDate: '生效日期',\r\n ExpirationDate: '失效日期',\r\n UmemberOpenId: '是否关注微信号',\r\n UmemberLabel: '会员标签',\r\n MemberCouponTitle: '优惠券',\r\n Memo: '备注',\r\n};\r\n\r\n@observer\r\nexport default class MemberTab extends Component {\r\n\r\n static propTypes = {\r\n memberTabHeight: PropTypes.number,\r\n defaultActiveKey: PropTypes.any,\r\n memberList: PropTypes.array,\r\n columnInfo: PropTypes.array,\r\n member: PropTypes.object,\r\n memberInfo: PropTypes.object,\r\n precisionInfo: PropTypes.object,\r\n initEmpty: PropTypes.bool,\r\n onChange: PropTypes.func,\r\n };\r\n\r\n tabHeadHeight = 37;\r\n\r\n constructor(props) {\r\n super(props);\r\n const { IsEnableUMember } = stores.user.options.get('loginInfo') || {};\r\n this.state = { IsEnableUMember: !!IsEnableUMember };\r\n }\r\n\r\n componentDidMount() {\r\n this.overflowTip = new OverflowTip({\r\n target: '.member-content-tab',\r\n format(text) {\r\n text = text || '';\r\n const colonStr = ':';\r\n if (text.startsWith(colonStr)) {\r\n return text.split(colonStr)[1];\r\n }\r\n return text;\r\n }\r\n });\r\n }\r\n\r\n componentDidUpdate() {\r\n if (this.overflowTip && !this.overflowTip.containerDom) {\r\n this.overflowTip.update();\r\n }\r\n }\r\n\r\n componentWillUnmount() {\r\n this.overflowTip.destroy();\r\n }\r\n\r\n dataClear = (keys, values, columnInfo) => {\r\n const regKey = 'priuserdef';\r\n const dataSource = [];\r\n keys.forEach((key, index) => {\r\n if (key.includes(regKey)) {\r\n const {Title: label} = columnInfo.find(v => v.FieldName === key) || {};\r\n dataSource.push({key, value: values[index], label});\r\n }\r\n });\r\n return dataSource.filter(v => v.label);\r\n }\r\n\r\n // 点击购买记录加载更多按钮\r\n loadRecentlyMore = () => {\r\n const { findMemberLastRetailDetailList } = this.props\r\n findMemberLastRetailDetailList && findMemberLastRetailDetailList(50)\r\n }\r\n\r\n memberInfoEle = ({ title, key }) => {\r\n let { isNewRetailBCPos } = platform || {};\r\n const { member = {}, memberTabHeight, memberList = [], columnInfo = [], precisionInfo = {}, getMemberStateStamp} = this.props;\r\n const {IsEnableUMember} = this.state;\r\n const { DynamicPropertyKeys = [], DynamicPropertyValues = [], ExpirationDate = '', MemberType: { Name: MemberTypeName } = {},\r\n Sex: { Name: sex } = {}, isExpiration, Uid, isUserLogout, MemberState, Store: { Name : StoreName } = {} } = member;\r\n let priuserdefData = this.dataClear(DynamicPropertyKeys, DynamicPropertyValues, columnInfo);\r\n const isUMember = IsEnableUMember && Uid > 0; // 判断为u会员\r\n const isUMemberShow = ['UmemberOpenId', 'UmemberLabel', 'MemberCouponTitle'];\r\n const memberValues = { MemberTypeName, sex, StoreName , ...member};\r\n const memberInfos = [];\r\n const memberTabContentHeight = memberTabHeight - this.tabHeadHeight;\r\n const hasMemberInfo = Object.keys(memberValues).some(v => memberValues[v]);\r\n const { Differentiate } = enumController.getEnumOj();\r\n\r\n const CC_NOT_DISPLAY = [\"Code\", \"ExpirationDate\", \"UmemberOpenId\", \"UmemberLabel\"];\r\n\r\n transform.MemberCouponTitle = Differentiate.COUPON;\r\n transform.MemberTypeName = Differentiate.MemberTypeName;\r\n Object.keys(transform).forEach(v => {\r\n // 查找CC不需要显示的字段\r\n const isHaveCCNot = CC_NOT_DISPLAY.find(item => item == v);\r\n if (isNewRetailBCPos && isHaveCCNot) return;\r\n if (isUMemberShow.includes(v) && !isNewRetailBCPos &&!isUMember ) return;\r\n const memberValue = memberValues[v];\r\n const precision = precisionInfo[v];\r\n //let value = formatPrecisionKeys.includes(v) ? (hasMemberInfo ? formatPrecision(memberValue, precision) : undefined) : memberValue;\r\n let value = !!precision ? (hasMemberInfo ? formatPrecision(memberValue, precision) : undefined) : memberValue;\r\n (v === 'UmemberOpenId') && (value = memberValue ? '已关注' : '未关注');\r\n const dataItem = { label: `${transform[v]}`, value };\r\n memberInfos.push(dataItem);\r\n });\r\n\r\n //对自定义项的值进行处理。\r\n if (priuserdefData && priuserdefData.length > 0) {\r\n priuserdefData.map(item => {\r\n let { key, value } = item || {};\r\n let precision = precisionInfo[key];\r\n item['value'] = !!precision ? formatPrecision(value, precision) : value;\r\n })\r\n }\r\n\r\n memberInfos.push(...priuserdefData) // 插入会员自定义项\r\n memberInfos.length % 2 && memberInfos.push({}); //奇数补全\r\n\r\n const formatValue = (label, value) => {\r\n const formatDateKeys = ['出生日期', '失效日期', '生效日期'];\r\n if (formatDateKeys.includes(label)) {\r\n return dateFormat(value);\r\n } else {\r\n return value;\r\n }\r\n }\r\n //状态戳\r\n let iconItems = getMemberStateStamp(member);\r\n return (\r\n <TabPane tab={title} key={key}>\r\n <div style={{ height: memberTabContentHeight, position: 'relative' }}>\r\n <TouchScroll height={memberTabContentHeight} >\r\n {\r\n !!memberList.length && <div className='member-info-table'>\r\n {\r\n memberInfos.map((item, index) => <div key={index}>\r\n {item.label && <span>{item.label || ''}</span>}\r\n {item.label && <span data-overflow='tip'>:{formatValue(item.label, item.value)}</span>}\r\n </div>)\r\n }\r\n {\r\n !memberInfos.length && <p className='empty-data'>暂无数据~</p>\r\n }\r\n </div>\r\n }\r\n {\r\n !memberList.length && <div className='empty-data empty-data-img' />\r\n }\r\n </TouchScroll>\r\n {\r\n iconItems && iconItems.length > 0 &&\r\n <div className='memberstate-detail-stamp'>\r\n {iconItems}\r\n </div>\r\n }\r\n </div>\r\n </TabPane >)\r\n };\r\n\r\n rmecommendEle = ({ title, key }) => {\r\n let { recommend: recommends = [], memberInfo: { record = [], like = [] } = {}, memberTabHeight, initEmpty } = this.props;\r\n recommends = recommends.filter(v => v);\r\n recommends.push({ Name: '最近购买', Value: like });\r\n const recommendInfoHeight = 74;\r\n const memberTabContentHeight = memberTabHeight - this.tabHeadHeight;\r\n const haveRecord = !!record.length && record.every(v => !!(v && v.value));\r\n console.log('会员偶发白屏问题:recommends==', recommends)\r\n const emptyRecommend = (haveRecord && recommends.every(v => !((v && v.Value) || []).length)) ? <div className='empty-data'>暂无推荐~</div> : null;\r\n const emptyData = (!haveRecord && recommends.every(v => !((v && v.Value) || []).length)) ? <div className='empty-data empty-data-img'><div className='tip-text'>暂无数据 ~</div></div> : null;\r\n const showInfos = ['最近购买时间', '金额', '平均客单价']\r\n const recordFilter = record.filter(v => showInfos.includes(v.name));\r\n const recommendHeight = haveRecord ? memberTabContentHeight - recommendInfoHeight : memberTabContentHeight;\r\n return <TabPane tab={title} key={key}>\r\n <div className='recommend-tab' style={{height: memberTabContentHeight}}>\r\n {haveRecord && <div className='recommend-info'>\r\n {recordFilter.map((item, key) => <span key={key}>{item.name}: {item.value}</span>)}\r\n </div>}\r\n <div className='recommend-connent' style={{height: recommendHeight}}>\r\n <TouchScroll height={recommendHeight} key={recommendHeight}>\r\n {recommends.map((item, index) => {\r\n if (!(item.Value || []).length) return null;\r\n return <div key={index} className='detail-content'>\r\n <h1>{item.Name}</h1>\r\n <CardList\r\n list={item.Value || []}\r\n maxEmpyt={5}\r\n />\r\n </div>\r\n })}\r\n </TouchScroll>\r\n {initEmpty && emptyRecommend}\r\n </div>\r\n {initEmpty && emptyData}\r\n </div>\r\n </TabPane>;\r\n };\r\n\r\n recentlyEle = ({ title, key }) => {\r\n const {memberTabHeight, lastRetailLoading = false, lastRetailTotal = 0, lastRetailList = []} = this.props;\r\n const theadHeight = 50;\r\n const tableHeight = memberTabHeight - this.tabHeadHeight;\r\n const dataSource = [];\r\n const data = lastRetailList;\r\n data.forEach((vlaue, i) => {\r\n const index = dataSource.findIndex(v => v.code === vlaue.Code);\r\n if (~index) {\r\n dataSource[index].data.push(vlaue);\r\n } else {\r\n const { Time, Code, ...rest } = vlaue || {};\r\n const itemValue = { date: Time, code: Code, data: [rest] };\r\n dataSource.push(itemValue);\r\n }\r\n });\r\n\r\n dataSource.forEach(value => {\r\n // 金额倒序排序\r\n const itemData = value.data;\r\n if (itemData.length > 1) {\r\n itemData.sort((a = {}, b = {}) => b.Amount - a.Amount);\r\n }\r\n });\r\n\r\n return <TabPane tab={title} key={key}>\r\n {!!dataSource.length && <div className='recently-tab'>\r\n <table className='table'>\r\n <thead>\r\n <tr>\r\n <th width='25%'>消费日期</th>\r\n <th width='25%'>商品</th>\r\n <th width='25%' style={{textAlign: 'center'}}>数量</th>\r\n <th width='25%' className='amount-item'>消费金额</th>\r\n </tr>\r\n </thead>\r\n <tbody style={{height: tableHeight - theadHeight - 42}}>\r\n <TouchScroll>\r\n {dataSource.map((item, key) => {\r\n return item.data.map((v, i) =>\r\n <tr key={i}>\r\n {!i ?\r\n <td className={item.data.length === 1 ? 'only-one-data' : ''}>{dateFormat(item.date)} \r\n </td> :\r\n <td className={item.data.length - 1 === i ? 'data-border' : ''}/>\r\n }\r\n <td data-overflow='tip'>\r\n {v.Name}\r\n { \r\n Number(v.Amount) < 0 && <p className='tag'>退货</p>\r\n }\r\n </td>\r\n <td data-overflow='tip' style={{textAlign: 'center'}}>{v.Quantity}</td>\r\n <td data-overflow='tip'>{v.Amount}</td>\r\n </tr>\r\n );\r\n })}\r\n </TouchScroll>\r\n </tbody>\r\n </table>\r\n </div>}\r\n {!dataSource.length && <div style={{height: tableHeight, position: 'relative'}}><div className='empty-data empty-data-img'><div className='tip-text'>暂无数据 ~</div></div></div>}\r\n\r\n { lastRetailTotal != lastRetailList.length && <div className='more-button'>\r\n <Button type=\"text\" loading={lastRetailLoading} className='primary-color' onClick={this.loadRecentlyMore}>加载更多</Button></div>\r\n }\r\n </TabPane>;\r\n };\r\n\r\n render() {\r\n const {defaultActiveKey = '1' } = this.props;\r\n return (\r\n <Tabs\r\n defaultActiveKey={defaultActiveKey}\r\n onChange={this.props.onChange}\r\n className=\"member-table-container\"\r\n >\r\n {this.memberInfoEle({ title: '会员信息', key: '1' })}\r\n {this.rmecommendEle({ title: '智能推荐', key: '2' })}\r\n {this.recentlyEle({ title: '购买记录', key: '3' })}\r\n </Tabs>\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.28.9",
3
+ "version": "3.28.10",
4
4
  "description": "",
5
5
  "main": "dist/index.js",
6
6
  "scripts": {