tplus-member 1.27.1 → 1.27.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (134) hide show
  1. package/dist/api.js +533 -0
  2. package/dist/api.js.map +1 -0
  3. package/dist/controllers/FeedbackController.js +53 -0
  4. package/dist/controllers/FeedbackController.js.map +1 -0
  5. package/dist/controllers/MemberOrderController.js +359 -0
  6. package/dist/controllers/MemberOrderController.js.map +1 -0
  7. package/dist/controllers/OpenCardController.js +289 -0
  8. package/dist/controllers/OpenCardController.js.map +1 -0
  9. package/dist/controllers/defaultConfig.js +19 -0
  10. package/dist/controllers/defaultConfig.js.map +1 -0
  11. package/dist/dataProvider/member.js +144 -0
  12. package/dist/dataProvider/member.js.map +1 -0
  13. package/dist/dataProvider/openCard.js +145 -0
  14. package/dist/dataProvider/openCard.js.map +1 -0
  15. package/dist/domain/member/AuthProcess.js +42 -0
  16. package/dist/domain/member/AuthProcess.js.map +1 -0
  17. package/dist/domain/member/CardCodeChangedProcessor.js +35 -0
  18. package/dist/domain/member/CardCodeChangedProcessor.js.map +1 -0
  19. package/dist/domain/member/CheckCardCodeAndCodeProcessor.js +48 -0
  20. package/dist/domain/member/CheckCardCodeAndCodeProcessor.js.map +1 -0
  21. package/dist/domain/member/CheckMobilephoneFormatProcessor.js +38 -0
  22. package/dist/domain/member/CheckMobilephoneFormatProcessor.js.map +1 -0
  23. package/dist/domain/member/CheckPresentAmountProcessor.js +99 -0
  24. package/dist/domain/member/CheckPresentAmountProcessor.js.map +1 -0
  25. package/dist/domain/member/EffectiveDateChangedProcessor.js +50 -0
  26. package/dist/domain/member/EffectiveDateChangedProcessor.js.map +1 -0
  27. package/dist/domain/member/GetThisPresentAmountProcessor.js +116 -0
  28. package/dist/domain/member/GetThisPresentAmountProcessor.js.map +1 -0
  29. package/dist/domain/member/InitDataDeductionProcessor.js +68 -0
  30. package/dist/domain/member/InitDataDeductionProcessor.js.map +1 -0
  31. package/dist/domain/member/InitDataProcessor.js +140 -0
  32. package/dist/domain/member/InitDataProcessor.js.map +1 -0
  33. package/dist/domain/member/InitDataProjectProcessor.js +102 -0
  34. package/dist/domain/member/InitDataProjectProcessor.js.map +1 -0
  35. package/dist/domain/member/IsMemberEffectiveProcessor.js +45 -0
  36. package/dist/domain/member/IsMemberEffectiveProcessor.js.map +1 -0
  37. package/dist/domain/member/IsMemberEnableProcessor.js +38 -0
  38. package/dist/domain/member/IsMemberEnableProcessor.js.map +1 -0
  39. package/dist/domain/member/IsMemberExpirationProcessor.js +46 -0
  40. package/dist/domain/member/IsMemberExpirationProcessor.js.map +1 -0
  41. package/dist/domain/member/IsMemberPasswordSameProcessor.js +41 -0
  42. package/dist/domain/member/IsMemberPasswordSameProcessor.js.map +1 -0
  43. package/dist/domain/member/IsMemberStorageForStoreProcessor.js +40 -0
  44. package/dist/domain/member/IsMemberStorageForStoreProcessor.js.map +1 -0
  45. package/dist/domain/member/MemberTypeChangedProcessor.js +120 -0
  46. package/dist/domain/member/MemberTypeChangedProcessor.js.map +1 -0
  47. package/dist/domain/member/MobilephoneChangedProcessor.js +39 -0
  48. package/dist/domain/member/MobilephoneChangedProcessor.js.map +1 -0
  49. package/dist/domain/member/PersonProcesser.js +35 -0
  50. package/dist/domain/member/PersonProcesser.js.map +1 -0
  51. package/dist/domain/member/PriuserdefChangedProcessor.js +50 -0
  52. package/dist/domain/member/PriuserdefChangedProcessor.js.map +1 -0
  53. package/dist/domain/operationLog/AddLogProcessor.js +50 -0
  54. package/dist/domain/operationLog/AddLogProcessor.js.map +1 -0
  55. package/dist/domain/operationLog/OperationConfig.js +34 -0
  56. package/dist/domain/operationLog/OperationConfig.js.map +1 -0
  57. package/dist/domain/operationLog/OperationLog.js +146 -0
  58. package/dist/domain/operationLog/OperationLog.js.map +1 -0
  59. package/dist/index.js +124 -0
  60. package/dist/index.js.map +1 -0
  61. package/dist/member/MemberPhoto.js +268 -0
  62. package/dist/member/MemberPhoto.js.map +1 -0
  63. package/dist/member/MemberShow.js +167 -0
  64. package/dist/member/MemberShow.js.map +1 -0
  65. package/dist/member/ShopMember.js +1096 -0
  66. package/dist/member/ShopMember.js.map +1 -0
  67. package/dist/member/ShopMember.less +605 -0
  68. package/dist/member/api.js +726 -0
  69. package/dist/member/api.js.map +1 -0
  70. package/dist/member/color.less +32 -0
  71. package/dist/member/index.js +843 -0
  72. package/dist/member/index.js.map +1 -0
  73. package/dist/member/index.less +466 -0
  74. package/dist/member/memberTab.js +675 -0
  75. package/dist/member/memberTab.js.map +1 -0
  76. package/dist/memberMenu/changeMemberCard/index.js +268 -0
  77. package/dist/memberMenu/changeMemberCard/index.js.map +1 -0
  78. package/dist/memberMenu/changeMemberCard/style.less +43 -0
  79. package/dist/memberMenu/index.js +826 -0
  80. package/dist/memberMenu/index.js.map +1 -0
  81. package/dist/memberMenu/modifyPass/index.js +207 -0
  82. package/dist/memberMenu/modifyPass/index.js.map +1 -0
  83. package/dist/memberMenu/modifyPass/store.js +357 -0
  84. package/dist/memberMenu/modifyPass/store.js.map +1 -0
  85. package/dist/memberMenu/modifyPass/style.less +91 -0
  86. package/dist/memberMenu/style.less +82 -0
  87. package/dist/socket.js +164 -0
  88. package/dist/socket.js.map +1 -0
  89. package/dist/utils.js +246 -0
  90. package/dist/utils.js.map +1 -0
  91. package/dist/viewController/MemberOrderViewController.js +144 -0
  92. package/dist/viewController/MemberOrderViewController.js.map +1 -0
  93. package/dist/viewDoMain/CheckMemberProcessorBlock.js +53 -0
  94. package/dist/viewDoMain/CheckMemberProcessorBlock.js.map +1 -0
  95. package/dist/viewDoMain/CheckMemberStorageProcessorBlock.js +85 -0
  96. package/dist/viewDoMain/CheckMemberStorageProcessorBlock.js.map +1 -0
  97. package/dist/viewDoMain/CheckSelectMemberProcessorBlock.js +69 -0
  98. package/dist/viewDoMain/CheckSelectMemberProcessorBlock.js.map +1 -0
  99. package/dist/viewDoMain/CheckUpdatePasswordProcessorBlock.js +44 -0
  100. package/dist/viewDoMain/CheckUpdatePasswordProcessorBlock.js.map +1 -0
  101. package/dist/viewDoMain/MemberDataChangedProcessorBlock.js +66 -0
  102. package/dist/viewDoMain/MemberDataChangedProcessorBlock.js.map +1 -0
  103. package/dist/viewDoMain/MemberDataPreSaveProcessorBlock.js +79 -0
  104. package/dist/viewDoMain/MemberDataPreSaveProcessorBlock.js.map +1 -0
  105. package/dist/viewModels/MemberDeduction.js +862 -0
  106. package/dist/viewModels/MemberDeduction.js.map +1 -0
  107. package/dist/viewModels/MemberOrder.js +248 -0
  108. package/dist/viewModels/MemberOrder.js.map +1 -0
  109. package/dist/viewModels/MemberProject.js +953 -0
  110. package/dist/viewModels/MemberProject.js.map +1 -0
  111. package/dist/viewModels/MemberStore.js +310 -0
  112. package/dist/viewModels/MemberStore.js.map +1 -0
  113. package/dist/views/commonPerson/commonPerson.less +54 -0
  114. package/dist/views/commonPerson/commonPersonModal.js +459 -0
  115. package/dist/views/commonPerson/commonPersonModal.js.map +1 -0
  116. package/dist/views/memberDeduction/MemberDeductionView.js +837 -0
  117. package/dist/views/memberDeduction/MemberDeductionView.js.map +1 -0
  118. package/dist/views/memberDeduction/deductionSuccess.js +62 -0
  119. package/dist/views/memberDeduction/deductionSuccess.js.map +1 -0
  120. package/dist/views/memberDeduction/memberDeduction.less +238 -0
  121. package/dist/views/memberManage/MemberOrderView.js +427 -0
  122. package/dist/views/memberManage/MemberOrderView.js.map +1 -0
  123. package/dist/views/memberManage/memberOrder.less +72 -0
  124. package/dist/views/memberProject/GroupProjectModal.js +676 -0
  125. package/dist/views/memberProject/GroupProjectModal.js.map +1 -0
  126. package/dist/views/memberProject/MemberProjectView.js +578 -0
  127. package/dist/views/memberProject/MemberProjectView.js.map +1 -0
  128. package/dist/views/memberProject/SelectProjectModal.js +330 -0
  129. package/dist/views/memberProject/SelectProjectModal.js.map +1 -0
  130. package/dist/views/memberProject/memberProject.less +334 -0
  131. package/dist/views/memberRecharge/MemberStoreView.js +546 -0
  132. package/dist/views/memberRecharge/MemberStoreView.js.map +1 -0
  133. package/dist/views/memberRecharge/memberStore.less +148 -0
  134. package/package.json +1 -1
@@ -0,0 +1,843 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+
7
+ var _Button2 = require('tinper-bee/dist/Button');
8
+
9
+ var _Button3 = _interopRequireDefault(_Button2);
10
+
11
+ var _FormControl2 = require('tinper-bee/dist/FormControl');
12
+
13
+ var _FormControl3 = _interopRequireDefault(_FormControl2);
14
+
15
+ var _typeof2 = require('babel-runtime/helpers/typeof');
16
+
17
+ var _typeof3 = _interopRequireDefault(_typeof2);
18
+
19
+ var _stringify = require('babel-runtime/core-js/json/stringify');
20
+
21
+ var _stringify2 = _interopRequireDefault(_stringify);
22
+
23
+ var _keys = require('babel-runtime/core-js/object/keys');
24
+
25
+ var _keys2 = _interopRequireDefault(_keys);
26
+
27
+ var _extends2 = require('babel-runtime/helpers/extends');
28
+
29
+ var _extends3 = _interopRequireDefault(_extends2);
30
+
31
+ var _getPrototypeOf = require('babel-runtime/core-js/object/get-prototype-of');
32
+
33
+ var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf);
34
+
35
+ var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck');
36
+
37
+ var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
38
+
39
+ var _createClass2 = require('babel-runtime/helpers/createClass');
40
+
41
+ var _createClass3 = _interopRequireDefault(_createClass2);
42
+
43
+ var _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn');
44
+
45
+ var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
46
+
47
+ var _inherits2 = require('babel-runtime/helpers/inherits');
48
+
49
+ var _inherits3 = _interopRequireDefault(_inherits2);
50
+
51
+ var _class, _class2, _temp; /**
52
+ * @memberChange member 状态发生变化时的回调
53
+ * @memberSearched 录入框会员状态发生变化时的回调 memberSearched(value, type) // type: searched 触发搜索 | err 搜索接口错误 | close 关闭会员
54
+ *
55
+ */
56
+
57
+
58
+ require('tinper-bee/dist/Button/index.css');
59
+
60
+ require('tinper-bee/dist/FormControl/index.css');
61
+
62
+ var _react = require('react');
63
+
64
+ var _react2 = _interopRequireDefault(_react);
65
+
66
+ var _mobxReact = require('mobx-react');
67
+
68
+ var _mobx = require('mobx');
69
+
70
+ var _propTypes = require('prop-types');
71
+
72
+ var _propTypes2 = _interopRequireDefault(_propTypes);
73
+
74
+ var _tplusComponentsTouch = require('tplus-components-touch');
75
+
76
+ var _mutantsMicrofx = require('mutants-microfx');
77
+
78
+ var _mutantsAppfx = require('mutants-appfx');
79
+
80
+ var _mutantsUtil = require('mutants-util');
81
+
82
+ var _MemberShow = require('./MemberShow');
83
+
84
+ var _MemberShow2 = _interopRequireDefault(_MemberShow);
85
+
86
+ var _MemberPhoto = require('./MemberPhoto');
87
+
88
+ var _MemberPhoto2 = _interopRequireDefault(_MemberPhoto);
89
+
90
+ var _api = require('./api');
91
+
92
+ var _api2 = _interopRequireDefault(_api);
93
+
94
+ var _utils = require('../utils');
95
+
96
+ require('./index.less');
97
+
98
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
99
+
100
+ //定义默认头像值。
101
+ var emptyMemberImage = 'https://newretail.static.chanjet.com/default_avatar.png';
102
+ var memberBirthday = 'https://newretail.static.chanjet.com/pictures/member_birthday.png';
103
+ var currentMember = void 0;
104
+
105
+ var MemberTag = (0, _mobxReact.observer)(_class = (_temp = _class2 = function (_Component) {
106
+ (0, _inherits3.default)(MemberTag, _Component);
107
+
108
+ function MemberTag(props) {
109
+ (0, _classCallCheck3.default)(this, MemberTag);
110
+
111
+ var _this2 = (0, _possibleConstructorReturn3.default)(this, (MemberTag.__proto__ || (0, _getPrototypeOf2.default)(MemberTag)).call(this, props));
112
+
113
+ _this2.state = {
114
+ searchValue: '',
115
+ titleModal: '',
116
+ memberShow: false,
117
+ memberPhoto: false,
118
+ searchVisible: false,
119
+ shopPerson: 0,
120
+ status: 2, // 0会员详情、1到店会员、2人脸识别
121
+ dtMember: {}, // 会员信息
122
+ connectCardStatus: false, //连接IC卡状态
123
+ connectCardError: '' //连接IC卡错误后记录错误信息
124
+ };
125
+
126
+ _this2.controllerEvent = function (methodName, methodArgs) {
127
+ _this2.context.onEvent({ 'controllerEvent': _mutantsAppfx.Action.fromJS(_this2.context.viewModel, methodName) }, 'controllerEvent', methodArgs);
128
+ };
129
+
130
+ _this2.resetInShopMemberTimer = function (count) {
131
+ _this2.timer && clearTimeout(_this2.timer);
132
+ if (!count) return;
133
+ var time = 5 * 60 * 1000;
134
+ _this2.timer = setTimeout(function () {
135
+ _this2.getInStoreMemberCount();
136
+ }, time);
137
+ };
138
+
139
+ _this2.openPhotoModal = function () {
140
+ if (!_this2.openFaceRecognition) {
141
+ _tplusComponentsTouch.Message.warn('未启用人脸识别,需要先开启人脸识别功能');
142
+ return;
143
+ }
144
+ _this2.setState({
145
+ memberPhoto: true,
146
+ titleModal: '选择头像'
147
+ });
148
+ };
149
+
150
+ _this2.openShowModal = function (status, res) {
151
+ var title = '';
152
+
153
+ var _ref = _this2.context.viewModel || {},
154
+ _ref$data = _ref.data;
155
+
156
+ _ref$data = _ref$data === undefined ? {} : _ref$data;
157
+ var _ref$data$Member = _ref$data.Member,
158
+ Member = _ref$data$Member === undefined ? {} : _ref$data$Member;
159
+ var newAvatar = _this2.state.newAvatar;
160
+
161
+ var jsMember = (0, _mobx.toJS)(Member);
162
+ var updateMember = newAvatar ? (0, _extends3.default)({}, jsMember, { ImageFile: newAvatar }) : jsMember;
163
+ switch (status) {
164
+ case 0:
165
+ title = '会员详情';
166
+ _this2.setState({ viewMemberInfo: updateMember });
167
+ break;
168
+ case 1:
169
+ title = '到店会员';
170
+ _this2.setState({ viewMemberInfo: res });
171
+ break;
172
+ case 2:
173
+ title = '人脸识别';
174
+ _this2.setState({ viewMemberInfo: res });
175
+ break;
176
+ }
177
+ _this2.setState({
178
+ status: status,
179
+ memberShow: true,
180
+ titleModal: title
181
+ });
182
+ };
183
+
184
+ _this2.openCloseModal = function () {
185
+ var memberStore = _this2.context.viewModel && _this2.context.viewModel.items.find(function (el) {
186
+ return el.name == 'MemberStore';
187
+ });
188
+ var uiState = memberStore.uiState;
189
+ if (!!uiState.tip) {
190
+ _tplusComponentsTouch.Message.info(uiState.tip);
191
+ return;
192
+ }
193
+ _tplusComponentsTouch.ModalWraper.confirm({
194
+ className: 'tplus-confirm-modal',
195
+ title: '关闭会员',
196
+ content: '确定要关闭该会员吗?',
197
+ onOk: function onOk() {
198
+ _this2.ms.clearSeletMember();
199
+ }
200
+ });
201
+ };
202
+
203
+ _this2.handleCloseBirthdayModal = function () {
204
+ _this2.ms.changeBirthdayShow(false);
205
+ };
206
+
207
+ _this2.handleSearch = function (val) {
208
+ _this2.setState({ searchValue: val });
209
+ };
210
+
211
+ _this2.handleFocus = function (el) {
212
+ if (_this2.isMemberInputType) return;
213
+ var _this = _this2;
214
+ function cb() {
215
+ _this.searchMember(undefined, 'ok');
216
+ }
217
+ _tplusComponentsTouch.Keyboard.open2(function (v) {
218
+ var value = _tplusComponentsTouch.Keyboard.getNewValue(_this2.inputSearch, _this2.inputSearch.value, v);
219
+ _this2.handleSearch(value);
220
+ }, cb, _this2.keyboardClose, 'ByMember', _mutantsMicrofx.localStore.get('ByMember'));
221
+ };
222
+
223
+ _this2.keyboardClose = function () {
224
+ _this2.inputSearch.blur();
225
+ };
226
+
227
+ _this2.handleBlur = function () {
228
+ _tplusComponentsTouch.Keyboard.close2();
229
+ };
230
+
231
+ _this2.handleReadICard = function () {
232
+ _this2.readRfCard();
233
+ };
234
+
235
+ _this2.handleShowModal = function (type, params) {
236
+ if (params) {
237
+ _this2.setState({ dtMember: params, memberShow: type });
238
+ } else {
239
+ _this2.setState({ memberShow: type });
240
+ }
241
+ if (type) {
242
+ _this2.setState({
243
+ searchValue: null
244
+ });
245
+ }
246
+ };
247
+
248
+ _this2.handlePhotoModal = function (type, newAvatar) {
249
+ if (newAvatar) {
250
+ _this2.setState({
251
+ newAvatar: newAvatar,
252
+ memberPhoto: type
253
+ });
254
+ } else {
255
+ _this2.setState({ memberPhoto: type });
256
+ }
257
+ };
258
+
259
+ _this2.SetKeyBoardDisplay = function (value) {
260
+ _this2.isHorizontalSunMi && window.android_setKeyBoard && window.android_setKeyBoard.SetKeyBoardDisplay(value);
261
+ };
262
+
263
+ _this2.searchMember = function (val, type) {
264
+ if (!_this2.ms || _this2.searchLoading) return;
265
+ var searchValue = _this2.state.searchValue;
266
+
267
+ val = val || (searchValue || '').trim();
268
+ if (!val) return;
269
+ var _this2$props = _this2.props,
270
+ memberSearched = _this2$props.memberSearched,
271
+ selectMemberSuccess = _this2$props.selectMemberSuccess;
272
+
273
+ _this2.searchLoading = true;
274
+ _this2.setState({ searchVisible: true });
275
+ _this2.ms.getSearchMember({
276
+ currentPage: 1,
277
+ pageSize: 10,
278
+ key: val,
279
+ isSingleMember: false
280
+ }).then(function (ret) {
281
+ _this2.searchLoading = false;
282
+
283
+ var _ref2 = ret || {},
284
+ columnInfo = _ref2.ColumnInfo,
285
+ Data = _ref2.Data;
286
+
287
+ var data = JSON.parse(Data) || [];
288
+ var info = data[0];
289
+ _this2.setState({ searchVisible: false, columnInfo: columnInfo });
290
+
291
+ if (info && info.MemberType.IsStorage && _this2.isStorageCardInputType && _this2.iseyboardKEnter) {
292
+ _this2.handleSearch('');
293
+ _this2.keypressStime = null;
294
+ _tplusComponentsTouch.Message.warn('储值会员不可键盘录入');
295
+ return;
296
+ }
297
+ if (info) {
298
+ if (data.length > 1) {
299
+ _this2.SetKeyBoardDisplay(1);
300
+ var _this = _this2;
301
+ _mutantsMicrofx.stores.drawerStore.init({
302
+ title: '会员管理',
303
+ key: 'member',
304
+ onHide: function onHide() {
305
+ _this2.SetKeyBoardDisplay(0);
306
+ var _this$ms$selectMember = _this.ms.selectMemberInfo,
307
+ selectMemberInfo = _this$ms$selectMember === undefined ? {} : _this$ms$selectMember;
308
+
309
+ var memberChangeData = (0, _keys2.default)(selectMemberInfo).length ? selectMemberInfo : undefined;
310
+ var deepCloneMember = memberChangeData && JSON.parse((0, _stringify2.default)(memberChangeData));
311
+ if (deepCloneMember) {
312
+ _this2.setState({
313
+ searchValue: null
314
+ });
315
+ }
316
+ },
317
+ listArr: data
318
+ });
319
+ } else {
320
+ memberSearched && memberSearched(info, 'searched');
321
+ (0, _utils.userInfoFormat)(info);
322
+ if ((0, _utils.errMessageTip)(info)) return;
323
+ _this2.ms.seletMember(info, true);
324
+ setTimeout(function () {
325
+ return _this2.setState({ searchValue: '' });
326
+ }, 0);
327
+ _this2.handleBlur();
328
+ selectMemberSuccess && selectMemberSuccess();
329
+ }
330
+ } else {
331
+ if (type === 'ok') {
332
+ _tplusComponentsTouch.Message.warn('会员不存在');
333
+ if (_this2.isMobileEnvironment) {
334
+ setTimeout(function () {
335
+ return _this2.setState({ searchValue: '' });
336
+ }, 0);
337
+ }
338
+ }
339
+ }
340
+ }).catch(function (err) {
341
+ _this2.setState({ searchVisible: false });
342
+ _this2.searchLoading = false;
343
+ memberSearched && memberSearched(undefined, 'err');
344
+ });
345
+ };
346
+
347
+ _this2.getInStoreMemberCount = function () {
348
+ if (!_this2.ms) return;
349
+ _this2.ms.getInStoreMemberCount().then(function (res) {
350
+ var count = res || 0;
351
+ _this2.setState({ shopPerson: count });
352
+ _this2.resetInShopMemberTimer(count);
353
+ });
354
+ };
355
+
356
+ _this2.onKeyPressed = function (e) {
357
+ var keyCode = e && e.keyCode;
358
+ if (keyCode === 13) {
359
+ if (_this2.isMemberInputType) {
360
+ var stime = _this2.keypressStime;
361
+ var etime = Date.parse(new Date());
362
+ if (etime - stime > 300) {
363
+ _this2.handleSearch('');
364
+ _this2.keypressStime = null;
365
+ return _tplusComponentsTouch.Message.warn('未启用键盘录入功能');
366
+ }
367
+ _this2.keypressStime = null;
368
+ }
369
+ _this2.iseyboardKEnter = Date.parse(new Date()) - _this2.keypressStime > 300;
370
+ if (_this2.isStorageCardInputType) {
371
+ _this2.keypressStime = null;
372
+ }
373
+ if (_this2.searchLoading) return;
374
+ _this2.searchMember(undefined, 'ok');
375
+ } else if (_this2.isMemberInputType && !_this2.keypressStime && !(keyCode == 8)) {
376
+ _this2.keypressStime = Date.parse(new Date());
377
+ } else if (_this2.isStorageCardInputType && !_this2.keypressStime && !(keyCode == 8) && !_this2.isMemberInputType) {
378
+ _this2.keypressStime = Date.parse(new Date());
379
+ }
380
+ };
381
+
382
+ _this2.computedCoupon = function () {
383
+ var member = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
384
+
385
+ var couponKey = 'membercouponcount';
386
+ var _member$DynamicProper = member.DynamicPropertyKeys,
387
+ DynamicPropertyKeys = _member$DynamicProper === undefined ? [] : _member$DynamicProper,
388
+ _member$DynamicProper2 = member.DynamicPropertyValues,
389
+ DynamicPropertyValues = _member$DynamicProper2 === undefined ? [] : _member$DynamicProper2;
390
+
391
+ var couponIndex = DynamicPropertyKeys.findIndex(function (v) {
392
+ return v === couponKey;
393
+ });
394
+ return ~couponIndex ? DynamicPropertyValues[couponIndex] : '0';
395
+ };
396
+
397
+ _this2.loadFaceRecognition = function (type) {
398
+ // type = 1:到店会员 type = 2:POS机人脸识别
399
+ _this2.setState({ faceLoading: type === 2, inShopLoading: type === 1 });
400
+ _this2.ms.loadInStoreMember(String(type)).then(function (res) {
401
+ _this2.setState({ faceLoading: false, inShopLoading: false });
402
+
403
+ var _ref3 = res || {},
404
+ Data = _ref3.Data;
405
+
406
+ if (!JSON.parse(Data).length) {
407
+ var tipMessage = ['当前没有到店会员', '未识别到人脸信息'];
408
+ type === 1 && _this2.setState({ shopPerson: 0 });
409
+ return _tplusComponentsTouch.Message.info(tipMessage[type - 1]);
410
+ }
411
+ type === 1 && _this2.getInStoreMemberCount();
412
+ _this2.openShowModal(type, res);
413
+ }).catch(function (err) {
414
+ _this2.setState({ faceLoading: false, inShopLoading: false });
415
+ console.log(err);
416
+ });
417
+ };
418
+
419
+ _this2.changeScanProduct = function () {
420
+ if (_this2.scanObj) _this2.scanObj.startScan();
421
+ };
422
+
423
+ _this2.onScanResult = function (res) {
424
+ _this2.setState({
425
+ searchValue: res
426
+ }, function () {
427
+ _this2.onKeyPressed({ keyCode: 13 });
428
+ });
429
+ };
430
+
431
+ var _ref4 = _mutantsMicrofx.localStore.get('user') || {},
432
+ _ref4$loginInfo = _ref4.loginInfo;
433
+
434
+ _ref4$loginInfo = _ref4$loginInfo === undefined ? {} : _ref4$loginInfo;
435
+ var isMemberInputType = _ref4$loginInfo.isMemberInputType,
436
+ IsOnlyControlStorageCardInputType = _ref4$loginInfo.IsOnlyControlStorageCardInputType,
437
+ OpenFaceRecognition = _ref4$loginInfo.OpenFaceRecognition,
438
+ ICCardServer = _ref4$loginInfo.ICCardServer,
439
+ ICCardPassword = _ref4$loginInfo.ICCardPassword;
440
+
441
+ _this2.isMemberInputType = parseInt(isMemberInputType); // '0'为不禁用 '1'为禁用
442
+ _this2.isStorageCardInputType = parseInt(IsOnlyControlStorageCardInputType); // 仅储值卡是否禁用键盘输入,'0'为不禁用 '1'为禁用
443
+ _this2.openFaceRecognition = parseInt(OpenFaceRecognition); // 启用人脸识别:0禁用 1为启用
444
+ _this2.iCCardServer = parseInt(ICCardServer); // 启用IC卡:0为禁用 1为启用
445
+ _this2.iCCardPassword = ICCardPassword; //IC卡密码
446
+ _this2.ms = _api2.default;
447
+ //移动端环境下,没有读取IC卡的方式。
448
+
449
+ var _ref5 = _mutantsUtil.platform || {},
450
+ isHorizontalPad = _ref5.isHorizontalPad,
451
+ isHorizontalSunMi = _ref5.isHorizontalSunMi;
452
+
453
+ _this2.isHorizontalPad = !!isHorizontalPad;
454
+ _this2.isMobileEnvironment = !!isHorizontalPad || !!isHorizontalSunMi;
455
+ _this2.isHorizontalSunMi = !!isHorizontalSunMi;
456
+ _this2.hasElectron = _mutantsMicrofx.env.platform === _mutantsMicrofx.env.constant.platform.electron;
457
+ _this2.handleReadICard = _this2.handleReadICard.bind(_this2);
458
+
459
+ //记录键盘录入信息的开始时间
460
+ _this2.keypressStime = null;
461
+ _this2.iseyboardKEnter = false; //是否为键盘输入
462
+ return _this2;
463
+ }
464
+
465
+ (0, _createClass3.default)(MemberTag, [{
466
+ key: 'componentWillReact',
467
+ value: function componentWillReact() {
468
+ var _this3 = this;
469
+
470
+ var _ref6 = this.context.viewModel || {},
471
+ _ref6$data = _ref6.data;
472
+
473
+ _ref6$data = _ref6$data === undefined ? {} : _ref6$data;
474
+ var _ref6$data$Member = _ref6$data.Member,
475
+ dtMember = _ref6$data$Member === undefined ? {} : _ref6$data$Member;
476
+ var _ms$selectMemberInfo = this.ms.selectMemberInfo,
477
+ selectMemberInfo = _ms$selectMemberInfo === undefined ? {} : _ms$selectMemberInfo;
478
+
479
+ var memberChangeData = (0, _keys2.default)(selectMemberInfo).length ? selectMemberInfo : undefined;
480
+
481
+ var memberChange = function memberChange(data) {
482
+ _this3.setState({ newAvatar: '' });
483
+ _this3.props.memberChange(data);
484
+ };
485
+ if ((typeof memberChangeData === 'undefined' ? 'undefined' : (0, _typeof3.default)(memberChangeData)) === 'object') {
486
+ var deepCloneMember = JSON.parse((0, _stringify2.default)(memberChangeData));
487
+ if (!currentMember) {
488
+ currentMember = deepCloneMember;
489
+ memberChange(memberChangeData);
490
+ } else if (currentMember.ID !== memberChangeData.ID) {
491
+ memberChange(memberChangeData);
492
+ currentMember = deepCloneMember;
493
+ } else if (!dtMember.ID && (currentMember || {}).ID) {
494
+ // DataModel 中清掉member,手动同步 member
495
+ currentMember = undefined;
496
+ this.ms.clearSeletMember();
497
+ }
498
+ } else if (currentMember && !memberChangeData) {
499
+ memberChange(memberChangeData);
500
+ currentMember = undefined;
501
+ } else if (dtMember.ID && !(currentMember || {}).ID) {
502
+ // DataModel 中存在member,手动同步 member
503
+ var _deepCloneMember = JSON.parse((0, _stringify2.default)(dtMember));
504
+ currentMember = _deepCloneMember;
505
+ this.ms.seletMember(dtMember);
506
+ }
507
+ }
508
+ }, {
509
+ key: 'componentDidMount',
510
+ value: function componentDidMount() {
511
+ this.connectRfCard();
512
+ }
513
+ }, {
514
+ key: 'componentWillUnmount',
515
+ value: function componentWillUnmount() {
516
+ window.removeEventListener('resize', this.windowOnresize);
517
+ this.closeRfCard();
518
+ }
519
+ }, {
520
+ key: 'componentWillReceiveProps',
521
+ value: function componentWillReceiveProps(nextProps) {
522
+ //接受socket传递过来的信息
523
+ var isSendMessage = nextProps.isSendMessage;
524
+
525
+ if (isSendMessage === true) this.getInStoreMemberCount();
526
+ }
527
+ }, {
528
+ key: 'connectRfCard',
529
+
530
+ //IC卡连接
531
+ value: function connectRfCard() {
532
+ var _this4 = this;
533
+
534
+ //客户端环境下,并开启了启用IC卡。
535
+ if (this.hasElectron === true && this.iCCardServer === 1) {
536
+ _mutantsMicrofx.nativeMs.setIpcRendererMethod('ConnectRfCard', null, function (ret) {
537
+ var result = {};
538
+ if (ret.status === 0) {
539
+ result = { connectCardStatus: false, connectCardError: ret.value };
540
+ } else {
541
+ result = { connectCardStatus: true, connectCardError: '' };
542
+ }
543
+ _this4.setState(result);
544
+ });
545
+ }
546
+ }
547
+
548
+ //IC卡读取
549
+
550
+ }, {
551
+ key: 'readRfCard',
552
+ value: function readRfCard() {
553
+ var _this5 = this;
554
+
555
+ //客户端环境下,并开启了启用IC卡。
556
+ if (this.hasElectron === true && this.iCCardServer === 1) {
557
+ var _state = this.state,
558
+ connectCardStatus = _state.connectCardStatus,
559
+ connectCardError = _state.connectCardError;
560
+
561
+ if (connectCardStatus === false) {
562
+ _tplusComponentsTouch.Message.error(connectCardError ? connectCardError : '读取IC卡失败');
563
+ this.connectRfCard(); //读取失败后,重新连接一下。
564
+ return;
565
+ }
566
+ var params = { cardPsw: this.iCCardPassword, cardSec: 13, cardKm: 0 };
567
+ _mutantsMicrofx.nativeMs.setIpcRendererMethod('ReadRfCard', (0, _extends3.default)({}, params), function (ret) {
568
+ if (ret.status === 0) {
569
+ _tplusComponentsTouch.Message.error(ret.value);
570
+ _this5.connectRfCard(); //读取失败后,重新连接一下。
571
+ return;
572
+ } else if (ret.status === 1) {
573
+ _this5.searchMember(ret.value);
574
+ }
575
+ });
576
+ }
577
+ }
578
+
579
+ //IC卡关闭
580
+
581
+ }, {
582
+ key: 'closeRfCard',
583
+ value: function closeRfCard() {
584
+ if (this.hasElectron === true && this.iCCardServer === 1) {
585
+ _mutantsMicrofx.nativeMs.setIpcRendererMethod('CloseRfCard');
586
+ }
587
+ }
588
+
589
+ //关闭生日提醒
590
+
591
+
592
+ //获取当前到店会员数量
593
+
594
+
595
+ //移动端:扫描商品
596
+
597
+ }, {
598
+ key: 'render',
599
+ value: function render() {
600
+ var _this6 = this;
601
+
602
+ var _state2 = this.state,
603
+ memberPhoto = _state2.memberPhoto,
604
+ titleModal = _state2.titleModal,
605
+ memberShow = _state2.memberShow,
606
+ _state2$inShopLoading = _state2.inShopLoading,
607
+ inShopLoading = _state2$inShopLoading === undefined ? false : _state2$inShopLoading,
608
+ _state2$faceLoading = _state2.faceLoading,
609
+ faceLoading = _state2$faceLoading === undefined ? false : _state2$faceLoading,
610
+ status = _state2.status,
611
+ shopPerson = _state2.shopPerson,
612
+ searchValue = _state2.searchValue,
613
+ viewMemberInfo = _state2.viewMemberInfo,
614
+ newAvatar = _state2.newAvatar,
615
+ searchVisible = _state2.searchVisible,
616
+ columnInfo = _state2.columnInfo;
617
+ var _props = this.props,
618
+ _props$mode = _props.mode,
619
+ mode = _props$mode === undefined ? 'formal' : _props$mode,
620
+ authProcess = _props.authProcess;
621
+ var _ms = this.ms,
622
+ selectMemberInfo = _ms.selectMemberInfo,
623
+ _ms$precisionInfo = _ms.precisionInfo,
624
+ precisionInfo = _ms$precisionInfo === undefined ? {} : _ms$precisionInfo; //selectMemberInfo 用作触发mobox render
625
+
626
+ var _ref7 = this.context.viewModel || {},
627
+ _ref7$data = _ref7.data;
628
+
629
+ _ref7$data = _ref7$data === undefined ? {} : _ref7$data;
630
+ var _ref7$data$Member = _ref7$data.Member,
631
+ dtMember = _ref7$data$Member === undefined ? {} : _ref7$data$Member,
632
+ _ref7$items = _ref7.items,
633
+ items = _ref7$items === undefined ? [] : _ref7$items;
634
+
635
+ var viewVoucher = items.find(function (v) {
636
+ return v.type === 'Voucher';
637
+ }) || {};
638
+ var isTakeTheir = viewVoucher.getIsTakeTheir && viewVoucher.getIsTakeTheir();
639
+ var isSelectedMember = !!dtMember.ID;
640
+ return _react2.default.createElement(
641
+ 'div',
642
+ { className: 'MemberContainer' },
643
+ _react2.default.createElement(
644
+ 'div',
645
+ { className: 'left' },
646
+ !isSelectedMember && _react2.default.createElement(
647
+ 'div',
648
+ { className: 'search' },
649
+ _react2.default.createElement(
650
+ 'div',
651
+ { className: 'b1' },
652
+ _react2.default.createElement(_FormControl3.default, {
653
+ type: 'text',
654
+ className: 'input',
655
+ id: 'memberPoint',
656
+ placeholder: '\u626B\u63CF/\u8F93\u5165\u4F1A\u5458\u53F7',
657
+ value: searchValue,
658
+ ref: function ref(el) {
659
+ return _this6.inputSearch = el && el.input;
660
+ },
661
+ onChange: this.handleSearch,
662
+ onFocus: this.handleFocus,
663
+ onBlur: this.handleBlur,
664
+ onKeyDown: this.onKeyPressed
665
+ }),
666
+ _react2.default.createElement(_tplusComponentsTouch.Spin, {
667
+ className: 'search-spin',
668
+ scale: 0.8,
669
+ type: 'circle-side',
670
+ visible: searchVisible
671
+ })
672
+ ),
673
+ _react2.default.createElement(
674
+ 'div',
675
+ { className: 'b2' },
676
+ this.hasElectron === true && this.iCCardServer === 1 && _react2.default.createElement(_tplusComponentsTouch.Ticon, { className: 'icon', onClick: this.handleReadICard, type: 'ICka' }),
677
+ this.isHorizontalPad ? _react2.default.createElement(_tplusComponentsTouch.Ticon, { type: 'saomiao1', className: 'icon', onClick: this.changeScanProduct }) : false && this.openFaceRecognition === 1 && !faceLoading && _react2.default.createElement(
678
+ 'div',
679
+ { className: 'openFaceRecognition-box' },
680
+ _react2.default.createElement(_tplusComponentsTouch.Ticon, { className: 'icon', onClick: function onClick() {
681
+ return _this6.loadFaceRecognition(2);
682
+ }, type: 'renlianshibie' }),
683
+ _react2.default.createElement(_tplusComponentsTouch.Spin, {
684
+ className: 'face-spin',
685
+ scale: 0.8,
686
+ type: 'circle',
687
+ visible: faceLoading
688
+ })
689
+ ),
690
+
691
+ /* 扫描组件 */
692
+ this.isHorizontalPad && _react2.default.createElement(_tplusComponentsTouch.Scan, { ref: function ref(scan) {
693
+ return _this6.scanObj = scan;
694
+ }, onChange: this.onScanResult })
695
+ )
696
+ ),
697
+ isSelectedMember && _react2.default.createElement(
698
+ 'div',
699
+ { className: 'info ' + (this.openFaceRecognition ? '' : 'member-btn-hidden-flex') },
700
+ _react2.default.createElement(
701
+ 'div',
702
+ { className: 'first' },
703
+ _react2.default.createElement('img', { onClick: this.openPhotoModal, src: newAvatar || dtMember.ImageFile || emptyMemberImage }),
704
+ memberPhoto && _react2.default.createElement(_MemberPhoto2.default, { dtMember: dtMember, showModal: memberPhoto, titleModal: titleModal, handleModal: this.handlePhotoModal })
705
+ ),
706
+ _react2.default.createElement(
707
+ 'div',
708
+ { className: 'second member-hotkey-info', onClick: function onClick() {
709
+ return _this6.openShowModal(0);
710
+ } },
711
+ _react2.default.createElement(
712
+ 'div',
713
+ { className: 'one' },
714
+ dtMember.Name && _react2.default.createElement(
715
+ 'div',
716
+ { className: 'a' },
717
+ dtMember.Name
718
+ ),
719
+ _react2.default.createElement(
720
+ 'div',
721
+ { className: 'b' },
722
+ dtMember.CardCode
723
+ )
724
+ ),
725
+ _react2.default.createElement(
726
+ 'div',
727
+ { className: 'two' },
728
+ _react2.default.createElement(
729
+ 'div',
730
+ { className: 'a' },
731
+ (0, _utils.formatPrecision)(dtMember.BalanceStorage, precisionInfo.BalanceStorage)
732
+ ),
733
+ _react2.default.createElement(
734
+ 'div',
735
+ { className: 'b' },
736
+ '\u4F59\u989D'
737
+ )
738
+ ),
739
+ _react2.default.createElement(
740
+ 'div',
741
+ { className: 'two' },
742
+ _react2.default.createElement(
743
+ 'div',
744
+ { className: 'a' },
745
+ this.computedCoupon(dtMember)
746
+ ),
747
+ _react2.default.createElement(
748
+ 'div',
749
+ { className: 'b' },
750
+ '\u4F18\u60E0\u5238'
751
+ )
752
+ ),
753
+ _react2.default.createElement(
754
+ 'div',
755
+ { className: 'two' },
756
+ _react2.default.createElement(
757
+ 'div',
758
+ { className: 'a' },
759
+ (0, _utils.formatPrecision)(dtMember.BalanceIntegral, precisionInfo.BalanceIntegral) || 0
760
+ ),
761
+ _react2.default.createElement(
762
+ 'div',
763
+ { className: 'b' },
764
+ '\u79EF\u5206'
765
+ )
766
+ )
767
+ ),
768
+ _react2.default.createElement(
769
+ 'div',
770
+ { className: 'close' },
771
+ !isTakeTheir && _react2.default.createElement(_tplusComponentsTouch.Ticon, { type: 'guanbi-yuan', onClick: this.openCloseModal })
772
+ )
773
+ )
774
+ ),
775
+ !!this.openFaceRecognition && _react2.default.createElement(
776
+ 'div',
777
+ { className: 'right' },
778
+ _react2.default.createElement(
779
+ _Button3.default,
780
+ { colors: 'primary', onClick: function onClick() {
781
+ return _this6.loadFaceRecognition(1);
782
+ }, className: 'btn', disabled: inShopLoading },
783
+ !inShopLoading && '到店会员',
784
+ _react2.default.createElement(_tplusComponentsTouch.Spin, {
785
+ className: 'inshop-member-spin',
786
+ scale: 0.8,
787
+ type: 'circle',
788
+ visible: inShopLoading
789
+ }),
790
+ !!shopPerson && _react2.default.createElement(
791
+ 'div',
792
+ { className: 'badge' },
793
+ shopPerson
794
+ )
795
+ )
796
+ ),
797
+ _react2.default.createElement(_MemberShow2.default, {
798
+ mode: mode,
799
+ authProcess: authProcess,
800
+ viewMemberInfo: viewMemberInfo,
801
+ columnInfo: columnInfo,
802
+ status: status,
803
+ showModal: memberShow,
804
+ titleModal: titleModal,
805
+ handleModal: this.handleShowModal
806
+ }),
807
+ _react2.default.createElement(
808
+ _tplusComponentsTouch.ModalWraper,
809
+ { show: this.ms.birthdayShow, centered: true, className: 'memberBirthday' },
810
+ _react2.default.createElement(
811
+ 'div',
812
+ { className: 'picture' },
813
+ _react2.default.createElement('img', { width: '350', height: '308', src: memberBirthday }),
814
+ _react2.default.createElement(_tplusComponentsTouch.Ticon, { type: 'guanbi-yuan', onClick: this.handleCloseBirthdayModal })
815
+ ),
816
+ _react2.default.createElement(
817
+ 'div',
818
+ { className: 'remark' },
819
+ '\u4ECA\u5929\u662F\u4F1A\u5458',
820
+ _react2.default.createElement(
821
+ 'span',
822
+ null,
823
+ dtMember.Name || dtMember.CardCode
824
+ ),
825
+ '\u7684\u751F\u65E5'
826
+ )
827
+ )
828
+ );
829
+ }
830
+ }]);
831
+ return MemberTag;
832
+ }(_react.Component), _class2.propTypes = {
833
+ memberChange: _propTypes2.default.func,
834
+ memberSearched: _propTypes2.default.func
835
+ }, _class2.contextTypes = {
836
+ onEvent: _propTypes2.default.func,
837
+ viewModel: _propTypes2.default.object
838
+ }, _class2.defaultProps = {
839
+ memberChange: function memberChange() {}
840
+ }, _temp)) || _class;
841
+
842
+ exports.default = MemberTag;
843
+ //# sourceMappingURL=index.js.map