tplus-member 3.16.1 → 3.17.2

Sign up to get free protection for your applications and to get access to all the features.
package/dist/api.js CHANGED
@@ -151,7 +151,6 @@ var API = function () {
151
151
 
152
152
  return GetThisPresentAmount;
153
153
  }()
154
-
155
154
  /** 获取会员储值相关信息 */
156
155
 
157
156
  }, {
package/dist/api.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["tplus-member/api.js"],"names":["API","props","param","voucherViewInfo","storeID","dto","parameter","StorageDetails","ThisStorageAmount","Member","Code","result","memberId","resp"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;;;;;IACMA,G;AACF,iBAAYC,KAAZ,EAAmB;AAAA;AAAG;;;;;;;;;;;AAGZC,qC,GAAQ;AACV,mDAAe;AADL,iC;;uCAGgB,oBAAKA,KAAL,EAAY,wDAAZ,EAAsE,KAAtE,EAA6E,KAA7E,C;;;AAAxBC,+C;iEACCA,e;;;;;;;;;;;;;;;;;AAGX;;;;;;;;mHAI6BC,O;;;;;;uCACZ,oBAAK,EAAEA,gBAAF,EAAL,EAAkB,uDAAlB,EAA2E,KAA3E,EAAkF,KAAlF,C;;;;;;;;;;;;;;;;;;;;AAGjB;;;;;;;mHAG2BC,G;;;;;;oCAElBA,G;;;;;;;;;uCAIc,oBACf;AACIC,+CAAW,yBAAe,EAAE,qBAAqBD,IAAIE,cAAJ,CAAmB,CAAnB,EAAsBC,iBAA7C,EAAgE,cAAcH,IAAII,MAAJ,CAAWC,IAAzF,EAAf;AADf,iCADe,EAIf,yDAJe,EAKf,KALe,EAMf,KANe,C;;;AAAfC,sC;kEASGA,M;;;;;;;;;;;;;;;;;AAGV;;;;;mHACwBC,Q;;;;;;;uCACJ,qBAAMA,QAAN,EACb,gDADa,EAEb,KAFa,EAGb,KAHa,C;;;AAAbC,oC;kEAKGA,I;;;;;;;;;;;;;;;;;;;;kBAIA,IAAIb,GAAJ,E","file":"api.js","sourcesContent":["import { tApi, ccApi } from 'tplus-api';\r\nimport { platform } from 'mutants-util';\r\nimport memberStore from './member/api';\r\nclass API {\r\n constructor(props) { }\r\n\r\n async getMemberVoucherDataInfo() {\r\n const param = {\r\n \"vouchername\": \"MemberStorage\"\r\n }\r\n const voucherViewInfo = await tApi(param, 'chanjet.RE.INewRetailVoucherService.GetVoucherDataInfo', false, false);\r\n return voucherViewInfo;\r\n }\r\n\r\n /**\r\n * 获取储值业务员\r\n * @param {*} storeID \r\n */\r\n async getPersonDTOsByStoreID(storeID) {\r\n return await tApi({ storeID }, 'chanjet.AA.DR.INewRetailMember.GetPersonDTOsByStoreID', false, false);\r\n }\r\n\r\n /**\r\n * 获取本次赠送金额\r\n */\r\n async GetThisPresentAmount(dto) {\r\n\r\n if (!dto) {\r\n return;\r\n }\r\n\r\n let result = await tApi(\r\n {\r\n parameter: JSON.stringify({ 'ThisStorageAmount': dto.StorageDetails[0].ThisStorageAmount, \"memberCode\": dto.Member.Code })\r\n },\r\n \"chanjet.ME.INewRetailMemberStorage.GetThisPresentAmount\",\r\n false,\r\n false\r\n );\r\n\r\n return result;\r\n }\r\n\r\n /** 获取会员储值相关信息 */\r\n async getPosStorageRule(memberId) {\r\n let resp = await ccApi(memberId,\r\n \"/marketingtool/MeStorageCard/getPosStorageRule\",\r\n false,\r\n false,\r\n );\r\n return resp;\r\n }\r\n}\r\n\r\nexport default new API;"]}
1
+ {"version":3,"sources":["tplus-member/api.js"],"names":["API","props","param","voucherViewInfo","storeID","dto","parameter","StorageDetails","ThisStorageAmount","Member","Code","result","memberId","resp"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;;;;;IACMA,G;AACF,iBAAYC,KAAZ,EAAmB;AAAA;AAAG;;;;;;;;;;;AAGZC,qC,GAAQ;AACV,mDAAe;AADL,iC;;uCAGgB,oBAAKA,KAAL,EAAY,wDAAZ,EAAsE,KAAtE,EAA6E,KAA7E,C;;;AAAxBC,+C;iEACCA,e;;;;;;;;;;;;;;;;;AAGX;;;;;;;;mHAI6BC,O;;;;;;uCACZ,oBAAK,EAAEA,gBAAF,EAAL,EAAkB,uDAAlB,EAA2E,KAA3E,EAAkF,KAAlF,C;;;;;;;;;;;;;;;;;;;;AAGjB;;;;;;;mHAG2BC,G;;;;;;oCAElBA,G;;;;;;;;;uCAIc,oBACf;AACIC,+CAAW,yBAAe,EAAE,qBAAqBD,IAAIE,cAAJ,CAAmB,CAAnB,EAAsBC,iBAA7C,EAAgE,cAAcH,IAAII,MAAJ,CAAWC,IAAzF,EAAf;AADf,iCADe,EAIf,yDAJe,EAKf,KALe,EAMf,KANe,C;;;AAAfC,sC;kEASGA,M;;;;;;;;;;;;;;;;AAEX;;;;;mHACwBC,Q;;;;;;;uCAOH,qBAAMA,QAAN,EACb,gDADa,EAEb,KAFa,EAGb,KAHa,C;;;AAAbC,oC;kEAKGA,I;;;;;;;;;;;;;;;;;;;;kBAIA,IAAIb,GAAJ,E","file":"api.js","sourcesContent":["import { tApi, ccApi } from 'tplus-api';\r\nimport { platform } from 'mutants-util';\r\nimport memberStore from './member/api';\r\nclass API {\r\n constructor(props) { }\r\n\r\n async getMemberVoucherDataInfo() {\r\n const param = {\r\n \"vouchername\": \"MemberStorage\"\r\n }\r\n const voucherViewInfo = await tApi(param, 'chanjet.RE.INewRetailVoucherService.GetVoucherDataInfo', false, false);\r\n return voucherViewInfo;\r\n }\r\n\r\n /**\r\n * 获取储值业务员\r\n * @param {*} storeID \r\n */\r\n async getPersonDTOsByStoreID(storeID) {\r\n return await tApi({ storeID }, 'chanjet.AA.DR.INewRetailMember.GetPersonDTOsByStoreID', false, false);\r\n }\r\n\r\n /**\r\n * 获取本次赠送金额\r\n */\r\n async GetThisPresentAmount(dto) {\r\n\r\n if (!dto) {\r\n return;\r\n }\r\n\r\n let result = await tApi(\r\n {\r\n parameter: JSON.stringify({ 'ThisStorageAmount': dto.StorageDetails[0].ThisStorageAmount, \"memberCode\": dto.Member.Code })\r\n },\r\n \"chanjet.ME.INewRetailMemberStorage.GetThisPresentAmount\",\r\n false,\r\n false\r\n );\r\n\r\n return result;\r\n }\r\n /** 获取会员储值相关信息 */\r\n async getPosStorageRule(memberId) {\r\n // let resp = await ccApi(memberId,\r\n // \"/marketingtool/MeStorageCard/getPosStorageRule\",\r\n // false,\r\n // false,\r\n // );\r\n // return resp;\r\n let resp = await ccApi(memberId,\r\n \"/marketingtool/MeStorageCard/getPosStorageRule\",\r\n false,\r\n false,\r\n );\r\n return resp;\r\n }\r\n}\r\n\r\nexport default new API;"]}
@@ -318,8 +318,12 @@ var ShopMember = (_temp = _class = function (_Component) {
318
318
  var pageSize = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 10;
319
319
  var isSingleMember = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;
320
320
  var searchId = arguments[4];
321
- var searchValue = _this2.state.searchValue;
322
- var status = _this2.props.status;
321
+ var _this2$state3 = _this2.state,
322
+ searchValue = _this2$state3.searchValue,
323
+ searchStatus = _this2$state3.searchStatus;
324
+ var _this2$props2 = _this2.props,
325
+ status = _this2$props2.status,
326
+ listArr = _this2$props2.listArr;
323
327
 
324
328
  if (!_this2.ms) return;
325
329
  if (type === 'init') {
@@ -339,6 +343,22 @@ var ShopMember = (_temp = _class = function (_Component) {
339
343
  if (type === 'opencard') {
340
344
  currentPage = _this2.currentPage;
341
345
  }
346
+ if (searchStatus) {
347
+ var arr = listArr.slice(0);
348
+ // stores.memberStore.searchInfoList.map((value) => {
349
+ // arr.push(value)
350
+ // })
351
+ _this2.setState({
352
+ searchStatus: false,
353
+ memberList: arr
354
+ }, function () {
355
+ var memberList = _this2.state.memberList;
356
+
357
+ _this2.loadUserListSuccess(memberList, 's', memberList.length);
358
+ _tplusComponentsTouch.Loading.hide();
359
+ });
360
+ return;
361
+ }
342
362
  _this2.ms.getSearchMember({
343
363
  currentPage: currentPage,
344
364
  pageSize: pageSize,
@@ -361,7 +381,7 @@ var ShopMember = (_temp = _class = function (_Component) {
361
381
 
362
382
  _this2.setState({ columnInfo: ColumnInfo });
363
383
  _this2.precisionInfo(ColumnInfo);
364
- _this2.usersLoadSuccess(JSON.parse(Data), type, pageSize);
384
+ _this2.usersLoadSuccess(type === 's' ? ret : JSON.parse(Data), type, pageSize);
365
385
  };
366
386
 
367
387
  _this2.precisionInfo = function (columnInfo) {
@@ -419,9 +439,9 @@ var ShopMember = (_temp = _class = function (_Component) {
419
439
  var iconItems = _this2.getMemberStateStamp(item);
420
440
  var labels = UmemberLabel ? UmemberLabel.split(',') : [];
421
441
  var defaultAvatar = 'https://newretail.static.chanjet.com/default_avatar.png';
422
- var _this2$state3 = _this2.state,
423
- selected = _this2$state3.selected,
424
- isCC = _this2$state3.isCC;
442
+ var _this2$state4 = _this2.state,
443
+ selected = _this2$state4.selected,
444
+ isCC = _this2$state4.isCC;
425
445
 
426
446
  var isSelected = selected === key;
427
447
  return _react2.default.createElement(
@@ -602,9 +622,9 @@ var ShopMember = (_temp = _class = function (_Component) {
602
622
  };
603
623
 
604
624
  _this2.handleOk = function (nomemberList) {
605
- var _this2$state4 = _this2.state,
606
- member = _this2$state4.member,
607
- errorMsg = _this2$state4.errorMsg;
625
+ var _this2$state5 = _this2.state,
626
+ member = _this2$state5.member,
627
+ errorMsg = _this2$state5.errorMsg;
608
628
 
609
629
  var _ref5 = member || {},
610
630
  isExpiration = _ref5.isExpiration,
@@ -664,11 +684,11 @@ var ShopMember = (_temp = _class = function (_Component) {
664
684
  };
665
685
 
666
686
  _this2.handleChangeMember = function (member) {
667
- var _this2$props2 = _this2.props,
668
- onOk = _this2$props2.onOk,
669
- memberChange = _this2$props2.memberChange,
670
- selectMemberSuccess = _this2$props2.selectMemberSuccess,
671
- getMemberBirthday = _this2$props2.getMemberBirthday;
687
+ var _this2$props3 = _this2.props,
688
+ onOk = _this2$props3.onOk,
689
+ memberChange = _this2$props3.memberChange,
690
+ selectMemberSuccess = _this2$props3.selectMemberSuccess,
691
+ getMemberBirthday = _this2$props3.getMemberBirthday;
672
692
 
673
693
  _mutantsMicrofx.stores.selectMemberStore.seletMember(member, true);
674
694
  memberChange && memberChange(member);
@@ -751,6 +771,7 @@ var ShopMember = (_temp = _class = function (_Component) {
751
771
  like: [],
752
772
  recency: []
753
773
  },
774
+ searchStatus: !!_this2.props.listArr ? true : false,
754
775
  isCC: !!isNewRetailBCPos,
755
776
  tabIndex: _this2.props.defaultActiveKey,
756
777
  isAllAuthority: false,
@@ -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","status","inputValue","keyboardOnClose","getSearchMember","loadUserListSuccess","dataLoaded","ColumnInfo","Data","columnInfo","precisionInfo","usersLoadSuccess","JSON","parse","length","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","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 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 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 // console.log(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 } = this.state;\r\n const { status } = 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 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(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 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')}\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 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 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' />\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","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","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 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 // console.log(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 // stores.memberStore.searchInfoList.map((value) => {\r\n // arr.push(value)\r\n // })\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 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')}\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 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 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' />\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"]}
@@ -120,13 +120,11 @@ var MemberTag = (0, _mobxReact.observer)(_class = (_temp = _class2 = function (_
120
120
 
121
121
  _ref$loginInfo = _ref$loginInfo === undefined ? {} : _ref$loginInfo;
122
122
  var isMemberInputType = _ref$loginInfo.isMemberInputType,
123
- IsOnlyControlStorageCardInputType = _ref$loginInfo.IsOnlyControlStorageCardInputType,
124
123
  OpenFaceRecognition = _ref$loginInfo.OpenFaceRecognition,
125
124
  ICCardServer = _ref$loginInfo.ICCardServer,
126
125
  ICCardPassword = _ref$loginInfo.ICCardPassword;
127
126
 
128
127
  _this2.isMemberInputType = parseInt(isMemberInputType); // '0'为不禁用 '1'为禁用
129
- _this2.isStorageCardInputType = parseInt(IsOnlyControlStorageCardInputType); // 仅储值卡是否禁用键盘输入,'0'为不禁用 '1'为禁用
130
128
  _this2.openFaceRecognition = parseInt(OpenFaceRecognition); // 启用人脸识别:0禁用 1为启用
131
129
  _this2.iCCardServer = parseInt(ICCardServer); // 启用IC卡:0为禁用 1为启用
132
130
  _this2.iCCardPassword = ICCardPassword; //IC卡密码
@@ -831,7 +829,12 @@ var MemberTag = (0, _mobxReact.observer)(_class = (_temp = _class2 = function (_
831
829
  }
832
830
  };
833
831
 
832
+ this.SetKeyBoardDisplay = function (value) {
833
+ _this7.isHorizontalSunMi && window.android_setKeyBoard && window.android_setKeyBoard.SetKeyBoardDisplay(value);
834
+ };
835
+
834
836
  this.searchMember = function (val, type) {
837
+ if (!_mutantsMicrofx.stores.offlineSys.shouldInOffline()) return;
835
838
  if (!_this7.ms || _this7.searchLoading) return;
836
839
  var searchValue = _this7.state.searchValue;
837
840
 
@@ -847,9 +850,9 @@ var MemberTag = (0, _mobxReact.observer)(_class = (_temp = _class2 = function (_
847
850
  _this7.setState({ searchVisible: true });
848
851
  _this7.ms.getSearchMember({
849
852
  currentPage: 1,
850
- pageSize: 1,
853
+ pageSize: 10,
851
854
  key: val,
852
- isSingleMember: true
855
+ isSingleMember: false
853
856
  }).then(function (ret) {
854
857
  _this7.searchLoading = false;
855
858
 
@@ -860,24 +863,32 @@ var MemberTag = (0, _mobxReact.observer)(_class = (_temp = _class2 = function (_
860
863
  var data = JSON.parse(Data) || [];
861
864
  var info = data[0];
862
865
  _this7.setState({ searchVisible: false, columnInfo: columnInfo });
863
- if (info && info.MemberType.IsStorage && _this7.isStorageCardInputType && _this7.iseyboardKEnter) {
864
- _this7.handleSearch('');
865
- _this7.keypressStime = null;
866
- _tplusComponentsTouch.Message.warn('储值会员不可键盘录入');
867
- return;
868
- }
869
866
  memberSearched && memberSearched(info, 'searched');
870
867
  if (info) {
871
- (0, _utils.userInfoFormat)(info);
872
- if ((0, _utils.errMessageTip)(info)) return;
873
- _this7.ms.seletMember(info, true);
874
- setTimeout(function () {
875
- return _this7.setState({ searchValue: '' });
876
- }, 0);
877
- _this7.handleBlur();
878
- getMemberBirthday && getMemberBirthday(info.ID, function (result) {
879
- _mutantsMicrofx.stores.selectMemberStore.changeMemberCare(result);
880
- });
868
+ if (data.length > 1) {
869
+ _this7.SetKeyBoardDisplay(1);
870
+ _mutantsMicrofx.stores.drawerStore.init({
871
+ title: '会员管理',
872
+ key: 'member',
873
+ onHide: function onHide() {
874
+ _this7.SetKeyBoardDisplay(0);
875
+ },
876
+ listArr: data
877
+ });
878
+ _this7.setState({
879
+ searchValue: null
880
+ });
881
+ } else {
882
+ memberSearched && memberSearched(info, 'searched');
883
+ (0, _utils.userInfoFormat)(info);
884
+ if ((0, _utils.errMessageTip)(info)) return;
885
+ _this7.ms.seletMember(info, true);
886
+ setTimeout(function () {
887
+ return _this7.setState({ searchValue: '' });
888
+ }, 0);
889
+ _this7.handleBlur();
890
+ selectMemberSuccess && selectMemberSuccess();
891
+ }
881
892
  } else {
882
893
  if (type === 'ok') {
883
894
  _tplusComponentsTouch.Message.warn('会员不存在');
@@ -889,7 +900,6 @@ var MemberTag = (0, _mobxReact.observer)(_class = (_temp = _class2 = function (_
889
900
  typeof setMemberFocus == 'function' && setMemberFocus();
890
901
  }
891
902
  }
892
- selectMemberSuccess && selectMemberSuccess(info);
893
903
  }).catch(function (err) {
894
904
  _this7.setState({ searchVisible: false });
895
905
  _this7.searchLoading = false;
@@ -1 +1 @@
1
- {"version":3,"sources":["tplus-member/member/index.js"],"names":["hasElectron","env","platform","constant","electron","emptyMemberImage","memberBirthday","currentMember","MemberTag","observer","props","localStore","get","loginInfo","isMemberInputType","IsOnlyControlStorageCardInputType","OpenFaceRecognition","ICCardServer","ICCardPassword","parseInt","isStorageCardInputType","openFaceRecognition","iCCardServer","iCCardPassword","ms","memberStore","isHorizontalPad","isHorizontalSunMi","isMobileEnvironment","handleReadICard","bind","keypressStime","isNewRetailBCPos","state","isCC","isShowBirthdayTip","context","viewModel","data","Member","dtMember","selectMemberInfo","isClear","memberChangeData","length","undefined","memberChange","setState","newAvatar","deepCloneMember","JSON","parse","ID","clearSeletMember","seletMember","stores","selectMemberStore","clearMemberCare","connectRfCard","window","removeEventListener","windowOnresize","closeRfCard","nextProps","isSendMessage","getInStoreMemberCount","nativeMs","setIpcRendererMethod","result","ret","status","connectCardStatus","connectCardError","value","Message","error","params","cardPsw","cardSec","cardKm","searchMember","memberPhoto","titleModal","memberShow","inShopLoading","faceLoading","shopPerson","searchValue","viewMemberInfo","searchVisible","columnInfo","isMemberCare","isMemberCareModal","mode","authProcess","selectMemberSuccess","precisionInfo","items","viewVoucher","find","v","type","isTakeTheir","getIsTakeTheir","isSelectedMember","enumController","getEnumOj","Differentiate","memberCareInfo","inputSearch","el","input","e","handleSearch","target","handleFocus","handleBlur","onKeyPressed","changeScanProduct","loadFaceRecognition","scanObj","scan","onScanResult","openPhotoModal","ImageFile","handlePhotoModal","isTicket","daysToBirthday","handleMemberCareModal","setIsShowBirthdayTip","openShowModal","Name","CardCode","BalanceStorage","computedCoupon","COUPON","BalanceIntegral","openCloseModal","handleShowModal","handleMemberCareModalCancel","MemberType","memberCareDTO","memberRightRuleList","integralMultiple","integralGive","couponIdMapList","map","index","count","name","birthdayShow","handleCloseBirthdayModal","Component","propTypes","PropTypes","func","memberSearched","contextTypes","onEvent","object","defaultProps","controllerEvent","methodName","methodArgs","Action","fromJS","resetInShopMemberTimer","timer","clearTimeout","time","setTimeout","warn","res","title","jsMember","updateMember","setMemberFocus","uiState","IsIntegralExchange","store","tip","info","ModalWraper","confirm","className","content","onOk","changeBirthdayShow","val","_this","cb","Keyboard","open2","getNewValue","keyboardClose","blur","close2","readRfCard","searchLoading","trim","getMemberBirthday","getSearchMember","currentPage","pageSize","key","isSingleMember","then","ColumnInfo","Data","IsStorage","iseyboardKEnter","changeMemberCare","catch","keyCode","stime","etime","Date","member","MemberCouponCount","couponKey","DynamicPropertyKeys","DynamicPropertyValues","couponIndex","findIndex","loadInStoreMember","String","tipMessage","console","log","err","startScan","getMemberBirthdayInfo"],"mappings":"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","file":"index.js","sourcesContent":["/**\r\n * @memberChange member 状态发生变化时的回调\r\n * @memberSearched 录入框会员状态发生变化时的回调 memberSearched(value, type) // type: searched 触发搜索 | err 搜索接口错误 | close 关闭会员\r\n *\r\n */\r\nimport React, { Component, Fragment } from 'react';\r\nimport { Button, Input } from 'antd';\r\nimport { observer } from 'mobx-react';\r\nimport { toJS } from 'mobx';\r\nimport PropTypes from 'prop-types'\r\nimport { Ticon, Message, ModalWraper, Spin, Keyboard,Scan } from 'tplus-components-touch';\r\nimport { env, nativeMs, localStore } from 'mutants-microfx';\r\nimport { Action } from 'mutants-appfx'\r\nimport { platform, enumController } from 'mutants-util';\r\nimport MemberModal from './MemberShow';\r\nimport MemberPhoto from './MemberPhoto';\r\nimport memberStore from './api';\r\nimport { formatPrecision, userInfoFormat, errMessageTip } from '../utils';\r\nimport './index.less';\r\nimport { stores } from 'mutants-microfx';\r\n\r\nconst hasElectron = (env.platform === env.constant.platform.electron);\r\n//定义默认头像值。\r\nconst emptyMemberImage = 'https://newretail.static.chanjet.com/default_avatar.png';\r\nconst memberBirthday = 'https://newretail.static.chanjet.com/pictures/member_birthday.png';\r\nlet currentMember;\r\n\r\n@observer\r\nclass MemberTag extends Component {\r\n\r\n state = {\r\n searchValue: '',\r\n titleModal: '',\r\n memberShow: false,\r\n memberPhoto: false,\r\n searchVisible: false,\r\n shopPerson: 0,\r\n status: 2, // 0会员详情、1到店会员、2人脸识别\r\n dtMember: {}, // 会员信息\r\n connectCardStatus: false, //连接IC卡状态\r\n connectCardError: '', //连接IC卡错误后记录错误信息\r\n isMemberCare: false,\r\n isMemberCareModal: false\r\n };\r\n\r\n static propTypes = {\r\n memberChange: PropTypes.func,\r\n memberSearched: PropTypes.func,\r\n }\r\n\r\n static contextTypes = {\r\n onEvent:PropTypes.func,\r\n viewModel: PropTypes.object,\r\n }\r\n\r\n static defaultProps = {\r\n memberChange: () => { },\r\n }\r\n\r\n constructor(props) {\r\n super(props);\r\n this.hasElectron = hasElectron;\r\n const { loginInfo: { isMemberInputType, IsOnlyControlStorageCardInputType, OpenFaceRecognition, ICCardServer, ICCardPassword } = {} } = localStore.get('user') || {};\r\n this.isMemberInputType = parseInt(isMemberInputType); // '0'为不禁用 '1'为禁用\r\n this.isStorageCardInputType = parseInt(IsOnlyControlStorageCardInputType); // 仅储值卡是否禁用键盘输入,'0'为不禁用 '1'为禁用\r\n this.openFaceRecognition = parseInt(OpenFaceRecognition); // 启用人脸识别:0禁用 1为启用\r\n this.iCCardServer = parseInt(ICCardServer); // 启用IC卡:0为禁用 1为启用\r\n this.iCCardPassword = ICCardPassword; //IC卡密码\r\n this.ms = memberStore;\r\n //移动端环境下,没有读取IC卡的方式。\r\n const { isHorizontalPad, isHorizontalSunMi } = platform || {};\r\n this.isHorizontalPad = !!isHorizontalPad;\r\n this.isMobileEnvironment = !!isHorizontalPad || !!isHorizontalSunMi;\r\n this.handleReadICard = this.handleReadICard.bind(this);\r\n\r\n //记录键盘录入信息的开始时间\r\n this.keypressStime = null;\r\n let { isNewRetailBCPos } = platform || {};\r\n this.state = {\r\n isCC: !!isNewRetailBCPos,\r\n isShowBirthdayTip: false,\r\n };\r\n }\r\n\r\n componentWillReact() {\r\n const { data: { Member: dtMember = {} } = {} } = this.context.viewModel || {};\r\n const { selectMemberInfo = {}, isClear = false } = this.ms;\r\n const memberChangeData = Object.keys(selectMemberInfo).length ? selectMemberInfo : undefined;\r\n\r\n const memberChange = (data) => {\r\n this.setState({newAvatar: ''});\r\n this.props.memberChange(data);\r\n }\r\n if (typeof memberChangeData === 'object') {\r\n const deepCloneMember = JSON.parse(JSON.stringify(memberChangeData));\r\n if (!currentMember) {\r\n currentMember = deepCloneMember;\r\n memberChange(memberChangeData);\r\n } else if (currentMember.ID !== memberChangeData.ID) {\r\n memberChange(memberChangeData);\r\n currentMember = deepCloneMember;\r\n } else if (!dtMember.ID && (currentMember || {}).ID) { // DataModel 中清掉member,手动同步 member\r\n currentMember = undefined;\r\n this.ms.clearSeletMember();\r\n }\r\n } else if (currentMember && !memberChangeData) {\r\n memberChange(memberChangeData);\r\n currentMember = undefined;\r\n } else if (dtMember.ID && !(currentMember || {}).ID) { // DataModel 中存在member,手动同步 member\r\n const deepCloneMember = JSON.parse(JSON.stringify(dtMember));\r\n currentMember = deepCloneMember;\r\n this.ms.seletMember(dtMember);\r\n }\r\n }\r\n\r\n componentDidMount() {\r\n stores.selectMemberStore && stores.selectMemberStore.clearMemberCare()\r\n this.connectRfCard();\r\n }\r\n\r\n componentWillUnmount() {\r\n window.removeEventListener('resize', this.windowOnresize);\r\n this.closeRfCard();\r\n }\r\n\r\n componentWillReceiveProps(nextProps) {\r\n //接受socket传递过来的信息\r\n let { isSendMessage } = nextProps;\r\n if (isSendMessage === true) this.getInStoreMemberCount()\r\n }\r\n\r\n controllerEvent = (methodName, methodArgs) => {\r\n this.context.onEvent({ 'controllerEvent': Action.fromJS(this.context.viewModel, methodName) }, 'controllerEvent', methodArgs);\r\n }\r\n\r\n resetInShopMemberTimer = (count) => {\r\n this.timer && clearTimeout(this.timer);\r\n if (!count) return;\r\n const time = 5 * 60 * 1000;\r\n this.timer = setTimeout(() => {\r\n this.getInStoreMemberCount();\r\n }, time);\r\n }\r\n //IC卡连接\r\n connectRfCard() {\r\n //客户端环境下,并开启了启用IC卡。\r\n if (this.hasElectron === true && this.iCCardServer === 1) {\r\n nativeMs.setIpcRendererMethod('ConnectRfCard', null, ret => {\r\n let result = {}\r\n if (ret.status === 0) {\r\n result = { connectCardStatus: false, connectCardError: ret.value }\r\n } else {\r\n result = { connectCardStatus: true, connectCardError: '' };\r\n }\r\n this.setState(result)\r\n })\r\n }\r\n }\r\n\r\n //IC卡读取\r\n readRfCard() {\r\n //客户端环境下,并开启了启用IC卡。\r\n if (this.hasElectron === true && this.iCCardServer === 1) {\r\n const { connectCardStatus, connectCardError } = this.state;\r\n if (connectCardStatus === false) {\r\n Message.error(connectCardError ? connectCardError : '读取IC卡失败');\r\n this.connectRfCard(); //读取失败后,重新连接一下。\r\n return;\r\n }\r\n let params = { cardPsw: this.iCCardPassword, cardSec: 13, cardKm: 0 }\r\n nativeMs.setIpcRendererMethod('ReadRfCard', { ...params }, ret => {\r\n if (ret.status === 0) {\r\n Message.error(ret.value);\r\n this.connectRfCard(); //读取失败后,重新连接一下。\r\n return;\r\n } else if (ret.status === 1) {\r\n this.searchMember(ret.value);\r\n }\r\n })\r\n }\r\n }\r\n\r\n //IC卡关闭\r\n closeRfCard(){\r\n if (this.hasElectron === true && this.iCCardServer === 1) {\r\n nativeMs.setIpcRendererMethod('CloseRfCard')\r\n }\r\n }\r\n\r\n openPhotoModal = () => {\r\n let { isNewRetailBCPos } = platform || {};\r\n if (!isNewRetailBCPos) {\r\n if (!this.openFaceRecognition) {\r\n Message.warn('未启用人脸识别,需要先开启人脸识别功能');\r\n return;\r\n }\r\n this.setState({\r\n memberPhoto: true,\r\n titleModal: '选择头像'\r\n })\r\n }\r\n }\r\n\r\n openShowModal = (status, res) => {\r\n let title = '';\r\n const { data: { Member = {} } = {} } = this.context.viewModel || {};\r\n const {newAvatar} = this.state;\r\n const jsMember = toJS(Member);\r\n const updateMember = newAvatar ? {...jsMember, ImageFile: newAvatar} : jsMember;\r\n switch (status) {\r\n case 0:\r\n title = '会员详情';\r\n this.setState({ viewMemberInfo: updateMember })\r\n break;\r\n case 1:\r\n title = '到店会员';\r\n this.setState({ viewMemberInfo: res })\r\n break;\r\n case 2:\r\n title = '人脸识别';\r\n this.setState({ viewMemberInfo: res })\r\n break;\r\n }\r\n this.setState({\r\n status: status,\r\n memberShow: true,\r\n titleModal: title\r\n })\r\n }\r\n\r\n openCloseModal = () => {\r\n const { setMemberFocus } = this.props;\r\n const memberStore = this.context.viewModel && this.context.viewModel.items.find(el => el.name == 'MemberStore');\r\n const uiState = memberStore.uiState;\r\n const IsIntegralExchange = memberStore.store && memberStore.store.data && memberStore.store.data.IsIntegralExchange\r\n if (!!uiState.tip) {\r\n Message.info(uiState.tip)\r\n return;\r\n }\r\n ModalWraper.confirm({\r\n className: 'tplus-confirm-modal',\r\n title: '关闭会员',\r\n content: `${IsIntegralExchange ? \"关闭会员将会清空商品信息!\" : \"确定要关闭该会员吗?\"}`,\r\n onOk: () => {\r\n this.ms.clearSeletMember();\r\n stores.selectMemberStore.clearMemberCare();\r\n typeof setMemberFocus == 'function' && setMemberFocus();\r\n }\r\n })\r\n }\r\n\r\n //关闭生日提醒\r\n handleCloseBirthdayModal = () => {\r\n this.ms.changeBirthdayShow(false);\r\n }\r\n\r\n //会员关怀-送礼\r\n handleMemberCareModal = () => {\r\n this.setState({ isMemberCareModal: true })\r\n }\r\n handleMemberCareModalCancel = () => {\r\n this.setState({ isMemberCareModal: false })\r\n }\r\n\r\n handleSearch = (val) => {\r\n this.setState({ searchValue: val })\r\n }\r\n\r\n handleFocus = (el) => {\r\n if (this.isMemberInputType) return;\r\n const _this = this;\r\n function cb() {\r\n _this.searchMember(undefined, 'ok');\r\n }\r\n Keyboard.open2((v) => {\r\n const value = Keyboard.getNewValue(this.inputSearch, this.inputSearch.value, v);\r\n this.handleSearch(value);\r\n }, cb, this.keyboardClose , 'ByMember', localStore.get('ByMember'))\r\n }\r\n\r\n keyboardClose = () => {\r\n this.inputSearch.blur();\r\n }\r\n handleBlur = () => {\r\n Keyboard.close2();\r\n }\r\n\r\n handleReadICard = () => {\r\n this.readRfCard();\r\n }\r\n\r\n handleShowModal = (type, params) => {\r\n if (params) {\r\n this.setState({ dtMember: params, memberShow: type })\r\n } else {\r\n this.setState({ memberShow: type })\r\n }\r\n }\r\n\r\n handlePhotoModal = (type, newAvatar) => {\r\n if (newAvatar) {\r\n this.setState({\r\n newAvatar,\r\n memberPhoto: type\r\n })\r\n } else {\r\n this.setState({ memberPhoto: type })\r\n }\r\n }\r\n\r\n searchMember = (val, type) => {\r\n if (!this.ms || this.searchLoading) return;\r\n const {searchValue} = this.state;\r\n val = val || (searchValue || '').trim();\r\n if (!val) return;\r\n const { memberSearched, selectMemberSuccess,setMemberFocus,getMemberBirthday } = this.props;\r\n this.searchLoading = true;\r\n this.setState({searchVisible: true});\r\n this.ms.getSearchMember({\r\n currentPage: 1,\r\n pageSize: 1,\r\n key: val,\r\n isSingleMember: true\r\n }).then(ret => {\r\n this.searchLoading = false;\r\n const {ColumnInfo: columnInfo, Data} = ret || {};\r\n const data = JSON.parse(Data) || [];\r\n const info = data[0];\r\n this.setState({searchVisible: false, columnInfo});\r\n if (info && info.MemberType.IsStorage && this.isStorageCardInputType && this.iseyboardKEnter){\r\n this.handleSearch('');\r\n this.keypressStime = null;\r\n Message.warn('储值会员不可键盘录入');\r\n return;\r\n }\r\n memberSearched && memberSearched(info, 'searched');\r\n if (info) {\r\n userInfoFormat(info);\r\n if (errMessageTip(info)) return;\r\n this.ms.seletMember(info, true);\r\n setTimeout(() => this.setState({ searchValue: '' }), 0);\r\n this.handleBlur();\r\n getMemberBirthday && getMemberBirthday(info.ID, (result) => {\r\n stores.selectMemberStore.changeMemberCare(result); \r\n })\r\n } else {\r\n if (type === 'ok'){\r\n Message.warn('会员不存在');\r\n if (this.isMobileEnvironment) {\r\n setTimeout(() => this.setState({ searchValue: '' }), 0);\r\n }\r\n typeof setMemberFocus == 'function' && setMemberFocus();\r\n }\r\n }\r\n selectMemberSuccess && selectMemberSuccess(info);\r\n }).catch(err => {\r\n this.setState({searchVisible: false});\r\n this.searchLoading = false;\r\n memberSearched && memberSearched(undefined, 'err');\r\n })\r\n }\r\n\r\n //获取当前到店会员数量\r\n getInStoreMemberCount = () => {\r\n if (!this.ms) return;\r\n this.ms.getInStoreMemberCount().then(res => {\r\n const {data: {data: shopPerson} = {}} = res || {};\r\n this.setState({shopPerson});\r\n this.resetInShopMemberTimer(shopPerson);\r\n });\r\n }\r\n\r\n onKeyPressed = (e) => {\r\n const keyCode = e && e.keyCode\r\n if (keyCode === 13) {\r\n if (this.isMemberInputType) {\r\n let stime = this.keypressStime;\r\n let etime = Date.parse(new Date());\r\n if (etime - stime > 300) {\r\n this.handleSearch('')\r\n this.keypressStime = null;\r\n return Message.warn('未启用键盘录入功能');\r\n }\r\n this.keypressStime = null;\r\n }\r\n if (this.searchLoading) return;\r\n this.searchMember(undefined, 'ok');\r\n }\r\n else if (this.isMemberInputType && !this.keypressStime && !(keyCode == 8)) {\r\n this.keypressStime = Date.parse(new Date())\r\n }\r\n }\r\n\r\n computedCoupon = (member = {}) => {\r\n let { isNewRetailBCPos } = platform || {};\r\n if (!!isNewRetailBCPos) {\r\n return member.MemberCouponCount? member.MemberCouponCount : '0';\r\n } else {\r\n const couponKey = 'membercouponcount';\r\n const {DynamicPropertyKeys = [], DynamicPropertyValues = []} = member;\r\n const couponIndex = DynamicPropertyKeys.findIndex(v => v === couponKey);\r\n return ~couponIndex ? DynamicPropertyValues[couponIndex] : '0';\r\n }\r\n }\r\n\r\n loadFaceRecognition = (type) => {\r\n // type = 1:到店会员 type = 2:POS机人脸识别\r\n this.setState({faceLoading: type === 2, inShopLoading: type === 1});\r\n this.ms.loadInStoreMember(String(type))\r\n .then(res => {\r\n this.setState({faceLoading: false, inShopLoading: false});\r\n const {Data} = res || {};\r\n if (!JSON.parse(Data).length) {\r\n const tipMessage = ['当前没有到店会员', '未识别到人脸信息'];\r\n type === 1 && this.setState({shopPerson: 0});\r\n return Message.info(tipMessage[type - 1]);\r\n }\r\n type === 1 && this.getInStoreMemberCount();\r\n this.openShowModal(type, res);\r\n })\r\n .catch(err => {\r\n this.setState({faceLoading: false, inShopLoading: false});\r\n console.log(err)\r\n });\r\n }\r\n\r\n //移动端:扫描商品\r\n changeScanProduct = () => {\r\n if (this.scanObj) this.scanObj.startScan()\r\n }\r\n onScanResult = (res) => {\r\n this.setState({\r\n searchValue: res\r\n }, () => {\r\n this.onKeyPressed({ keyCode: 13 })\r\n })\r\n }\r\n\r\n setIsShowBirthdayTip = () => {\r\n stores.selectMemberStore.clearMemberCare()\r\n }\r\n\r\n getMemberBirthdayInfo = (result) => {\r\n stores.selectMemberStore.changeMemberCare(result);\r\n }\r\n\r\n render() {\r\n const {\r\n memberPhoto, titleModal, memberShow, inShopLoading = false, faceLoading = false,\r\n status, shopPerson, searchValue, viewMemberInfo, newAvatar, searchVisible = false, columnInfo, isCC,\r\n isMemberCare, isMemberCareModal, isShowBirthdayTip\r\n } = this.state;\r\n const { mode = 'formal', authProcess, selectMemberSuccess } = this.props;\r\n const { selectMemberInfo, precisionInfo = {} } = this.ms; //selectMemberInfo 用作触发mobox render\r\n const { data: { Member: dtMember = {} } = {}, items = [] } = this.context.viewModel || {};\r\n const viewVoucher = items.find(v => v.type === 'Voucher') || {};\r\n const isTakeTheir = viewVoucher.getIsTakeTheir && viewVoucher.getIsTakeTheir();\r\n const isSelectedMember = !!dtMember.ID;\r\n const { Differentiate } = enumController.getEnumOj();\r\n const { memberCareInfo } = stores.selectMemberStore;\r\n let { isNewRetailBCPos } = platform || {};\r\n return (\r\n <div className='MemberContainer'>\r\n <div className='left'>\r\n {!isSelectedMember &&\r\n <div className='search'>\r\n <div className='b1'>\r\n <Input\r\n type='text'\r\n className=\"input\"\r\n id='memberPoint'\r\n placeholder='扫描/输入会员号'\r\n value={searchValue}\r\n ref={el => this.inputSearch = el && el.input}\r\n onChange={(e) => this.handleSearch(e.target.value)}\r\n onFocus={this.handleFocus}\r\n onBlur={this.handleBlur}\r\n onKeyDown={this.onKeyPressed}\r\n />\r\n <Spin\r\n className='search-spin'\r\n scale={0.8}\r\n type='circle-side'\r\n visible={searchVisible}\r\n />\r\n </div>\r\n <div className='b2'>\r\n {\r\n this.hasElectron === true && this.iCCardServer === 1 &&\r\n <Ticon className='icon' onClick={this.handleReadICard} type=\"ICka\" />\r\n }\r\n {\r\n this.isHorizontalPad ?\r\n <Ticon type='saomiao1' className='icon' onClick={this.changeScanProduct} />\r\n :\r\n (\r\n false && this.openFaceRecognition === 1 && !faceLoading &&\r\n <div className='openFaceRecognition-box'>\r\n <Ticon className='icon' onClick={() => this.loadFaceRecognition(2)} type=\"renlianshibie\" />\r\n <Spin\r\n className='face-spin'\r\n scale={0.8}\r\n type='circle'\r\n visible={faceLoading}\r\n />\r\n </div>\r\n )\r\n }\r\n {\r\n /* 扫描组件 */\r\n this.isHorizontalPad &&\r\n <Scan ref={scan => this.scanObj = scan} onChange={this.onScanResult} />\r\n }\r\n </div>\r\n </div>\r\n }\r\n {isSelectedMember &&\r\n <div className={`info ${this.openFaceRecognition ? '' : 'member-btn-hidden-flex'}`}>\r\n <div className='first'>\r\n <img onClick={this.openPhotoModal} src={newAvatar || dtMember.ImageFile || emptyMemberImage} />\r\n {memberPhoto && <MemberPhoto dtMember={dtMember} showModal={memberPhoto} titleModal={titleModal} handleModal={this.handlePhotoModal} />}\r\n {\r\n memberCareInfo && memberCareInfo.isTicket && <Ticon type=\"shengri\" className='shengriIcon'></Ticon>\r\n }\r\n {\r\n memberCareInfo && memberCareInfo.isTicket && <div className='birthdayContent'>\r\n <div className='birthdayWarn'>{memberCareInfo.daysToBirthday === 0 ? '今天生日' : memberCareInfo.daysToBirthday + '天后生日'}</div>\r\n <Button colors=\"warn\" onClick={this.handleMemberCareModal} className='check bg-theme'>查看</Button>\r\n <Ticon type=\"cuowuda\" className='cuowudaIcon'></Ticon>\r\n </div>\r\n }\r\n {\r\n memberCareInfo && memberCareInfo.isTicket && <Ticon type=\"cuowuda\" onClick={() => { this.setIsShowBirthdayTip()}} className='cuowudaIcon'></Ticon>\r\n }\r\n </div>\r\n <div className='second member-hotkey-info' onClick={() => this.openShowModal(0)}>\r\n <div className='one'>\r\n {dtMember.Name && <div className='a'>{dtMember.Name}</div>}\r\n <div className='b'>{dtMember.CardCode}</div>\r\n </div>\r\n <div className='two'>\r\n <div className='a'>{formatPrecision(dtMember.BalanceStorage, precisionInfo.BalanceStorage)}</div>\r\n <div className='b'>余额</div>\r\n </div>\r\n <div className='two'>\r\n <div className='a'>{this.computedCoupon(dtMember)}</div>\r\n <div className='b'>{Differentiate.COUPON}</div>\r\n </div>\r\n <div className='two'>\r\n <div className='a'>{formatPrecision(dtMember.BalanceIntegral, precisionInfo.BalanceIntegral) || 0}</div>\r\n <div className='b'>积分</div>\r\n </div>\r\n </div>\r\n <div className='close'>\r\n {!isTakeTheir && <Ticon type=\"guanbi-yuan\" onClick={this.openCloseModal} />}\r\n </div>\r\n </div>\r\n }\r\n </div>\r\n {/* {\r\n memberCareInfo && memberCareInfo.isTicket ? <div className='float'>\r\n <div className='txt'>{memberCareInfo.daysToBirthday === 0 ? '今天生日' : memberCareInfo.daysToBirthday + '天后生日'}</div>\r\n <div className='btn' onClick={this.handleMemberCareModal}>查看</div>\r\n <div className='cancel'>\r\n <Ticon type='guanbixiao' onClick={() => {\r\n this.setIsShowBirthdayTip()\r\n }}/>\r\n </div>\r\n </div> : null\r\n } */}\r\n {!!this.openFaceRecognition && <div className='right'>\r\n <Button type=\"primary\" onClick={() => this.loadFaceRecognition(1)} className='btn' disabled={inShopLoading}>\r\n {!inShopLoading && '到店会员'}\r\n <Spin\r\n className='inshop-member-spin'\r\n scale={0.8}\r\n type='circle'\r\n visible={inShopLoading}\r\n />\r\n {!!shopPerson && <div className='badge'>{shopPerson}</div>}\r\n </Button>\r\n </div>}\r\n <MemberModal\r\n mode={mode}\r\n authProcess={authProcess}\r\n viewMemberInfo={viewMemberInfo}\r\n columnInfo={columnInfo}\r\n status={status}\r\n showModal={memberShow}\r\n titleModal={titleModal}\r\n selectMemberSuccess={selectMemberSuccess}\r\n handleModal={this.handleShowModal}\r\n />\r\n <ModalWraper\r\n show={isMemberCareModal}\r\n className='member-care-modal'\r\n width='688'\r\n centered={true}\r\n memberClass='memberCareWidth'\r\n cancel={this.handleMemberCareModalCancel}\r\n >\r\n <div className='first'>会员生日关怀</div>\r\n <div className='second'>\r\n <div className='secondContent'>\r\n <Ticon type='dengpao'/>\r\n <span>口头关怀客户,提示引导客户去线上商城领取权益。</span>\r\n </div>\r\n </div>\r\n <div className='third'>\r\n <div className='one'>\r\n <img src={emptyMemberImage} />\r\n <Ticon type='shengri' />\r\n </div>\r\n <div className='two'>\r\n {\r\n memberCareInfo && memberCareInfo.daysToBirthday === 0 ? <span>\r\n 今天是{dtMember.Name}的生日,该会员是{dtMember.MemberType.Name},可享受以下权益\r\n </span> : <span>\r\n {dtMember.Name}会员还有{memberCareInfo && memberCareInfo.daysToBirthday}天生日,该会员是{dtMember.MemberType.Name},可享受以下权益\r\n </span>\r\n }\r\n </div>\r\n </div>\r\n {\r\n memberCareInfo && <div className='fourth'>\r\n {memberCareInfo && memberCareInfo.memberCareDTO && memberCareInfo.memberCareDTO.memberRightRuleList && memberCareInfo.memberCareDTO.memberRightRuleList[0].integralMultiple && <div className='item'>1.{ memberCareInfo.memberCareDTO.memberRightRuleList[0].integralMultiple}</div>}\r\n {memberCareInfo && memberCareInfo.memberCareDTO && memberCareInfo.memberCareDTO.memberRightRuleList && memberCareInfo.memberCareDTO.memberRightRuleList[0].integralGive && <div className='item'>2.{ memberCareInfo.memberCareDTO.memberRightRuleList[0].integralGive}</div>}\r\n {\r\n memberCareInfo && memberCareInfo.memberCareDTO && memberCareInfo.memberCareDTO.memberRightRuleList && memberCareInfo.memberCareDTO.memberRightRuleList[0].couponIdMapList.map((value, index) => {\r\n let count = 0;\r\n if (memberCareInfo.memberCareDTO.memberRightRuleList[0].integralMultiple) {\r\n count += 1;\r\n }\r\n if (memberCareInfo.memberCareDTO.memberRightRuleList[0].integralGive) {\r\n count += 1;\r\n }\r\n return (<div className='item'>{count + 1 + index}.{value.name}</div>)\r\n })\r\n }\r\n </div>\r\n }\r\n </ModalWraper>\r\n {\r\n !isNewRetailBCPos && <ModalWraper show={this.ms.birthdayShow} centered={true} className='member-birthday'>\r\n <div className='picture'>\r\n <img width='350' height='308' src={memberBirthday} />\r\n <Ticon type=\"guanbi-yuan\" onClick={this.handleCloseBirthdayModal} />\r\n </div>\r\n <div className='remark'>今天是会员<span>{dtMember.Name || dtMember.CardCode}</span>的生日</div>\r\n </ModalWraper>\r\n }\r\n </div>\r\n );\r\n }\r\n}\r\nexport default MemberTag\r\n"]}
1
+ {"version":3,"sources":["tplus-member/member/index.js"],"names":["hasElectron","env","platform","constant","electron","emptyMemberImage","memberBirthday","currentMember","MemberTag","observer","props","localStore","get","loginInfo","isMemberInputType","OpenFaceRecognition","ICCardServer","ICCardPassword","parseInt","openFaceRecognition","iCCardServer","iCCardPassword","ms","memberStore","isHorizontalPad","isHorizontalSunMi","isMobileEnvironment","handleReadICard","bind","keypressStime","isNewRetailBCPos","state","isCC","isShowBirthdayTip","context","viewModel","data","Member","dtMember","selectMemberInfo","isClear","memberChangeData","length","undefined","memberChange","setState","newAvatar","deepCloneMember","JSON","parse","ID","clearSeletMember","seletMember","stores","selectMemberStore","clearMemberCare","connectRfCard","window","removeEventListener","windowOnresize","closeRfCard","nextProps","isSendMessage","getInStoreMemberCount","nativeMs","setIpcRendererMethod","result","ret","status","connectCardStatus","connectCardError","value","Message","error","params","cardPsw","cardSec","cardKm","searchMember","memberPhoto","titleModal","memberShow","inShopLoading","faceLoading","shopPerson","searchValue","viewMemberInfo","searchVisible","columnInfo","isMemberCare","isMemberCareModal","mode","authProcess","selectMemberSuccess","precisionInfo","items","viewVoucher","find","v","type","isTakeTheir","getIsTakeTheir","isSelectedMember","enumController","getEnumOj","Differentiate","memberCareInfo","inputSearch","el","input","e","handleSearch","target","handleFocus","handleBlur","onKeyPressed","changeScanProduct","loadFaceRecognition","scanObj","scan","onScanResult","openPhotoModal","ImageFile","handlePhotoModal","isTicket","daysToBirthday","handleMemberCareModal","setIsShowBirthdayTip","openShowModal","Name","CardCode","BalanceStorage","computedCoupon","COUPON","BalanceIntegral","openCloseModal","handleShowModal","handleMemberCareModalCancel","MemberType","memberCareDTO","memberRightRuleList","integralMultiple","integralGive","couponIdMapList","map","index","count","name","birthdayShow","handleCloseBirthdayModal","Component","propTypes","PropTypes","func","memberSearched","contextTypes","onEvent","object","defaultProps","controllerEvent","methodName","methodArgs","Action","fromJS","resetInShopMemberTimer","timer","clearTimeout","time","setTimeout","warn","res","title","jsMember","updateMember","setMemberFocus","uiState","IsIntegralExchange","store","tip","info","ModalWraper","confirm","className","content","onOk","changeBirthdayShow","val","_this","cb","Keyboard","open2","getNewValue","keyboardClose","blur","close2","readRfCard","SetKeyBoardDisplay","android_setKeyBoard","offlineSys","shouldInOffline","searchLoading","trim","getMemberBirthday","getSearchMember","currentPage","pageSize","key","isSingleMember","then","ColumnInfo","Data","drawerStore","init","onHide","listArr","catch","keyCode","stime","etime","Date","member","MemberCouponCount","couponKey","DynamicPropertyKeys","DynamicPropertyValues","couponIndex","findIndex","loadInStoreMember","String","tipMessage","console","log","err","startScan","getMemberBirthdayInfo","changeMemberCare"],"mappings":"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","file":"index.js","sourcesContent":["/**\r\n * @memberChange member 状态发生变化时的回调\r\n * @memberSearched 录入框会员状态发生变化时的回调 memberSearched(value, type) // type: searched 触发搜索 | err 搜索接口错误 | close 关闭会员\r\n *\r\n */\r\nimport React, { Component, Fragment } from 'react';\r\nimport { Button, Input } from 'antd';\r\nimport { observer } from 'mobx-react';\r\nimport { toJS } from 'mobx';\r\nimport PropTypes from 'prop-types'\r\nimport { Ticon, Message, ModalWraper, Spin, Keyboard,Scan } from 'tplus-components-touch';\r\nimport { env, nativeMs, localStore , stores} from 'mutants-microfx';\r\nimport { Action } from 'mutants-appfx'\r\nimport { platform, enumController } from 'mutants-util';\r\nimport MemberModal from './MemberShow';\r\nimport MemberPhoto from './MemberPhoto';\r\nimport memberStore from './api';\r\nimport { formatPrecision, userInfoFormat, errMessageTip } from '../utils';\r\nimport './index.less';\r\n\r\n\r\n\r\nconst hasElectron = (env.platform === env.constant.platform.electron);\r\n//定义默认头像值。\r\nconst emptyMemberImage = 'https://newretail.static.chanjet.com/default_avatar.png';\r\nconst memberBirthday = 'https://newretail.static.chanjet.com/pictures/member_birthday.png';\r\nlet currentMember;\r\n\r\n@observer\r\nclass MemberTag extends Component {\r\n\r\n state = {\r\n searchValue: '',\r\n titleModal: '',\r\n memberShow: false,\r\n memberPhoto: false,\r\n searchVisible: false,\r\n shopPerson: 0,\r\n status: 2, // 0会员详情、1到店会员、2人脸识别\r\n dtMember: {}, // 会员信息\r\n connectCardStatus: false, //连接IC卡状态\r\n connectCardError: '', //连接IC卡错误后记录错误信息\r\n isMemberCare: false,\r\n isMemberCareModal: false\r\n };\r\n\r\n static propTypes = {\r\n memberChange: PropTypes.func,\r\n memberSearched: PropTypes.func,\r\n }\r\n\r\n static contextTypes = {\r\n onEvent:PropTypes.func,\r\n viewModel: PropTypes.object,\r\n }\r\n\r\n static defaultProps = {\r\n memberChange: () => { },\r\n }\r\n\r\n constructor(props) {\r\n super(props);\r\n this.hasElectron = hasElectron;\r\n const { loginInfo: { isMemberInputType, OpenFaceRecognition, ICCardServer, ICCardPassword } = {} } = localStore.get('user') || {};\r\n this.isMemberInputType = parseInt(isMemberInputType); // '0'为不禁用 '1'为禁用\r\n this.openFaceRecognition = parseInt(OpenFaceRecognition); // 启用人脸识别:0禁用 1为启用\r\n this.iCCardServer = parseInt(ICCardServer); // 启用IC卡:0为禁用 1为启用\r\n this.iCCardPassword = ICCardPassword; //IC卡密码\r\n this.ms = memberStore;\r\n //移动端环境下,没有读取IC卡的方式。\r\n const { isHorizontalPad, isHorizontalSunMi } = platform || {};\r\n this.isHorizontalPad = !!isHorizontalPad;\r\n this.isMobileEnvironment = !!isHorizontalPad || !!isHorizontalSunMi;\r\n this.handleReadICard = this.handleReadICard.bind(this);\r\n\r\n //记录键盘录入信息的开始时间\r\n this.keypressStime = null;\r\n let { isNewRetailBCPos } = platform || {};\r\n this.state = {\r\n isCC: !!isNewRetailBCPos,\r\n isShowBirthdayTip: false,\r\n };\r\n }\r\n\r\n componentWillReact() {\r\n const { data: { Member: dtMember = {} } = {} } = this.context.viewModel || {};\r\n const { selectMemberInfo = {}, isClear = false } = this.ms;\r\n const memberChangeData = Object.keys(selectMemberInfo).length ? selectMemberInfo : undefined;\r\n\r\n const memberChange = (data) => {\r\n this.setState({newAvatar: ''});\r\n this.props.memberChange(data);\r\n }\r\n if (typeof memberChangeData === 'object') {\r\n const deepCloneMember = JSON.parse(JSON.stringify(memberChangeData));\r\n if (!currentMember) {\r\n currentMember = deepCloneMember;\r\n memberChange(memberChangeData);\r\n } else if (currentMember.ID !== memberChangeData.ID) {\r\n memberChange(memberChangeData);\r\n currentMember = deepCloneMember;\r\n } else if (!dtMember.ID && (currentMember || {}).ID) { // DataModel 中清掉member,手动同步 member\r\n currentMember = undefined;\r\n this.ms.clearSeletMember();\r\n }\r\n } else if (currentMember && !memberChangeData) {\r\n memberChange(memberChangeData);\r\n currentMember = undefined;\r\n } else if (dtMember.ID && !(currentMember || {}).ID) { // DataModel 中存在member,手动同步 member\r\n const deepCloneMember = JSON.parse(JSON.stringify(dtMember));\r\n currentMember = deepCloneMember;\r\n this.ms.seletMember(dtMember);\r\n }\r\n }\r\n\r\n componentDidMount() {\r\n stores.selectMemberStore && stores.selectMemberStore.clearMemberCare()\r\n this.connectRfCard();\r\n }\r\n\r\n componentWillUnmount() {\r\n window.removeEventListener('resize', this.windowOnresize);\r\n this.closeRfCard();\r\n }\r\n\r\n componentWillReceiveProps(nextProps) {\r\n //接受socket传递过来的信息\r\n let { isSendMessage } = nextProps;\r\n if (isSendMessage === true) this.getInStoreMemberCount()\r\n }\r\n\r\n controllerEvent = (methodName, methodArgs) => {\r\n this.context.onEvent({ 'controllerEvent': Action.fromJS(this.context.viewModel, methodName) }, 'controllerEvent', methodArgs);\r\n }\r\n\r\n resetInShopMemberTimer = (count) => {\r\n this.timer && clearTimeout(this.timer);\r\n if (!count) return;\r\n const time = 5 * 60 * 1000;\r\n this.timer = setTimeout(() => {\r\n this.getInStoreMemberCount();\r\n }, time);\r\n }\r\n //IC卡连接\r\n connectRfCard() {\r\n //客户端环境下,并开启了启用IC卡。\r\n if (this.hasElectron === true && this.iCCardServer === 1) {\r\n nativeMs.setIpcRendererMethod('ConnectRfCard', null, ret => {\r\n let result = {}\r\n if (ret.status === 0) {\r\n result = { connectCardStatus: false, connectCardError: ret.value }\r\n } else {\r\n result = { connectCardStatus: true, connectCardError: '' };\r\n }\r\n this.setState(result)\r\n })\r\n }\r\n }\r\n\r\n //IC卡读取\r\n readRfCard() {\r\n //客户端环境下,并开启了启用IC卡。\r\n if (this.hasElectron === true && this.iCCardServer === 1) {\r\n const { connectCardStatus, connectCardError } = this.state;\r\n if (connectCardStatus === false) {\r\n Message.error(connectCardError ? connectCardError : '读取IC卡失败');\r\n this.connectRfCard(); //读取失败后,重新连接一下。\r\n return;\r\n }\r\n let params = { cardPsw: this.iCCardPassword, cardSec: 13, cardKm: 0 }\r\n nativeMs.setIpcRendererMethod('ReadRfCard', { ...params }, ret => {\r\n if (ret.status === 0) {\r\n Message.error(ret.value);\r\n this.connectRfCard(); //读取失败后,重新连接一下。\r\n return;\r\n } else if (ret.status === 1) {\r\n this.searchMember(ret.value);\r\n }\r\n })\r\n }\r\n }\r\n\r\n //IC卡关闭\r\n closeRfCard(){\r\n if (this.hasElectron === true && this.iCCardServer === 1) {\r\n nativeMs.setIpcRendererMethod('CloseRfCard')\r\n }\r\n }\r\n\r\n openPhotoModal = () => {\r\n let { isNewRetailBCPos } = platform || {};\r\n if (!isNewRetailBCPos) {\r\n if (!this.openFaceRecognition) {\r\n Message.warn('未启用人脸识别,需要先开启人脸识别功能');\r\n return;\r\n }\r\n this.setState({\r\n memberPhoto: true,\r\n titleModal: '选择头像'\r\n })\r\n }\r\n }\r\n\r\n openShowModal = (status, res) => {\r\n let title = '';\r\n const { data: { Member = {} } = {} } = this.context.viewModel || {};\r\n const {newAvatar} = this.state;\r\n const jsMember = toJS(Member);\r\n const updateMember = newAvatar ? {...jsMember, ImageFile: newAvatar} : jsMember;\r\n switch (status) {\r\n case 0:\r\n title = '会员详情';\r\n this.setState({ viewMemberInfo: updateMember })\r\n break;\r\n case 1:\r\n title = '到店会员';\r\n this.setState({ viewMemberInfo: res })\r\n break;\r\n case 2:\r\n title = '人脸识别';\r\n this.setState({ viewMemberInfo: res })\r\n break;\r\n }\r\n this.setState({\r\n status: status,\r\n memberShow: true,\r\n titleModal: title\r\n })\r\n }\r\n\r\n openCloseModal = () => {\r\n const { setMemberFocus } = this.props;\r\n const memberStore = this.context.viewModel && this.context.viewModel.items.find(el => el.name == 'MemberStore');\r\n const uiState = memberStore.uiState;\r\n const IsIntegralExchange = memberStore.store && memberStore.store.data && memberStore.store.data.IsIntegralExchange\r\n if (!!uiState.tip) {\r\n Message.info(uiState.tip)\r\n return;\r\n }\r\n ModalWraper.confirm({\r\n className: 'tplus-confirm-modal',\r\n title: '关闭会员',\r\n content: `${IsIntegralExchange ? \"关闭会员将会清空商品信息!\" : \"确定要关闭该会员吗?\"}`,\r\n onOk: () => {\r\n this.ms.clearSeletMember();\r\n stores.selectMemberStore.clearMemberCare();\r\n typeof setMemberFocus == 'function' && setMemberFocus();\r\n }\r\n })\r\n }\r\n\r\n //关闭生日提醒\r\n handleCloseBirthdayModal = () => {\r\n this.ms.changeBirthdayShow(false);\r\n }\r\n\r\n //会员关怀-送礼\r\n handleMemberCareModal = () => {\r\n this.setState({ isMemberCareModal: true })\r\n }\r\n handleMemberCareModalCancel = () => {\r\n this.setState({ isMemberCareModal: false })\r\n }\r\n\r\n handleSearch = (val) => {\r\n this.setState({ searchValue: val })\r\n }\r\n\r\n handleFocus = (el) => {\r\n if (this.isMemberInputType) return;\r\n const _this = this;\r\n function cb() {\r\n _this.searchMember(undefined, 'ok');\r\n }\r\n Keyboard.open2((v) => {\r\n const value = Keyboard.getNewValue(this.inputSearch, this.inputSearch.value, v);\r\n this.handleSearch(value);\r\n }, cb, this.keyboardClose , 'ByMember', localStore.get('ByMember'))\r\n }\r\n\r\n keyboardClose = () => {\r\n this.inputSearch.blur();\r\n }\r\n handleBlur = () => {\r\n Keyboard.close2();\r\n }\r\n\r\n handleReadICard = () => {\r\n this.readRfCard();\r\n }\r\n\r\n handleShowModal = (type, params) => {\r\n if (params) {\r\n this.setState({ dtMember: params, memberShow: type })\r\n } else {\r\n this.setState({ memberShow: type })\r\n }\r\n }\r\n\r\n handlePhotoModal = (type, newAvatar) => {\r\n if (newAvatar) {\r\n this.setState({\r\n newAvatar,\r\n memberPhoto: type\r\n })\r\n } else {\r\n this.setState({ memberPhoto: type })\r\n }\r\n }\r\n\r\n SetKeyBoardDisplay = (value) => {\r\n this.isHorizontalSunMi && window.android_setKeyBoard && window.android_setKeyBoard.SetKeyBoardDisplay(value)\r\n }\r\n\r\n\r\n searchMember = (val, type) => {\r\n if(!stores.offlineSys.shouldInOffline()) return;\r\n if (!this.ms || this.searchLoading) return;\r\n const {searchValue} = this.state;\r\n val = val || (searchValue || '').trim();\r\n if (!val) return;\r\n const { memberSearched, selectMemberSuccess,setMemberFocus,getMemberBirthday } = this.props;\r\n this.searchLoading = true;\r\n this.setState({searchVisible: true});\r\n this.ms.getSearchMember({\r\n currentPage: 1,\r\n pageSize: 10,\r\n key: val,\r\n isSingleMember: false\r\n }).then(ret => {\r\n this.searchLoading = false;\r\n const {ColumnInfo: columnInfo, Data} = ret || {};\r\n const data = JSON.parse(Data) || [];\r\n const info = data[0];\r\n this.setState({searchVisible: false, columnInfo});\r\n memberSearched && memberSearched(info, 'searched');\r\n if (info) {\r\n if (data.length > 1) {\r\n this.SetKeyBoardDisplay(1)\r\n stores.drawerStore.init({\r\n title: '会员管理',\r\n key: 'member',\r\n onHide:()=>{\r\n this.SetKeyBoardDisplay(0)\r\n },\r\n listArr: data,\r\n });\r\n this.setState({\r\n searchValue: null\r\n })\r\n } else {\r\n memberSearched && memberSearched(info, 'searched');\r\n userInfoFormat(info);\r\n if (errMessageTip(info)) return;\r\n this.ms.seletMember(info, true);\r\n setTimeout(() => this.setState({ searchValue: '' }), 0);\r\n this.handleBlur();\r\n selectMemberSuccess && selectMemberSuccess();\r\n }\r\n } else {\r\n if (type === 'ok'){\r\n Message.warn('会员不存在');\r\n if (this.isMobileEnvironment) {\r\n setTimeout(() => this.setState({ searchValue: '' }), 0);\r\n }\r\n typeof setMemberFocus == 'function' && setMemberFocus();\r\n }\r\n }\r\n }).catch(err => {\r\n this.setState({searchVisible: false});\r\n this.searchLoading = false;\r\n memberSearched && memberSearched(undefined, 'err');\r\n })\r\n }\r\n\r\n //获取当前到店会员数量\r\n getInStoreMemberCount = () => {\r\n if (!this.ms) return;\r\n this.ms.getInStoreMemberCount().then(res => {\r\n const {data: {data: shopPerson} = {}} = res || {};\r\n this.setState({shopPerson});\r\n this.resetInShopMemberTimer(shopPerson);\r\n });\r\n }\r\n\r\n onKeyPressed = (e) => {\r\n const keyCode = e && e.keyCode\r\n if (keyCode === 13) {\r\n if (this.isMemberInputType) {\r\n let stime = this.keypressStime;\r\n let etime = Date.parse(new Date());\r\n if (etime - stime > 300) {\r\n this.handleSearch('')\r\n this.keypressStime = null;\r\n return Message.warn('未启用键盘录入功能');\r\n }\r\n this.keypressStime = null;\r\n }\r\n if (this.searchLoading) return;\r\n this.searchMember(undefined, 'ok');\r\n }\r\n else if (this.isMemberInputType && !this.keypressStime && !(keyCode == 8)) {\r\n this.keypressStime = Date.parse(new Date())\r\n }\r\n }\r\n\r\n computedCoupon = (member = {}) => {\r\n let { isNewRetailBCPos } = platform || {};\r\n if (!!isNewRetailBCPos) {\r\n return member.MemberCouponCount? member.MemberCouponCount : '0';\r\n } else {\r\n const couponKey = 'membercouponcount';\r\n const {DynamicPropertyKeys = [], DynamicPropertyValues = []} = member;\r\n const couponIndex = DynamicPropertyKeys.findIndex(v => v === couponKey);\r\n return ~couponIndex ? DynamicPropertyValues[couponIndex] : '0';\r\n }\r\n }\r\n\r\n loadFaceRecognition = (type) => {\r\n // type = 1:到店会员 type = 2:POS机人脸识别\r\n this.setState({faceLoading: type === 2, inShopLoading: type === 1});\r\n this.ms.loadInStoreMember(String(type))\r\n .then(res => {\r\n this.setState({faceLoading: false, inShopLoading: false});\r\n const {Data} = res || {};\r\n if (!JSON.parse(Data).length) {\r\n const tipMessage = ['当前没有到店会员', '未识别到人脸信息'];\r\n type === 1 && this.setState({shopPerson: 0});\r\n return Message.info(tipMessage[type - 1]);\r\n }\r\n type === 1 && this.getInStoreMemberCount();\r\n this.openShowModal(type, res);\r\n })\r\n .catch(err => {\r\n this.setState({faceLoading: false, inShopLoading: false});\r\n console.log(err)\r\n });\r\n }\r\n\r\n //移动端:扫描商品\r\n changeScanProduct = () => {\r\n if (this.scanObj) this.scanObj.startScan()\r\n }\r\n onScanResult = (res) => {\r\n this.setState({\r\n searchValue: res\r\n }, () => {\r\n this.onKeyPressed({ keyCode: 13 })\r\n })\r\n }\r\n\r\n setIsShowBirthdayTip = () => {\r\n stores.selectMemberStore.clearMemberCare()\r\n }\r\n\r\n getMemberBirthdayInfo = (result) => {\r\n stores.selectMemberStore.changeMemberCare(result);\r\n }\r\n\r\n render() {\r\n const {\r\n memberPhoto, titleModal, memberShow, inShopLoading = false, faceLoading = false,\r\n status, shopPerson, searchValue, viewMemberInfo, newAvatar, searchVisible = false, columnInfo, isCC,\r\n isMemberCare, isMemberCareModal, isShowBirthdayTip\r\n } = this.state;\r\n const { mode = 'formal', authProcess, selectMemberSuccess } = this.props;\r\n const { selectMemberInfo, precisionInfo = {} } = this.ms; //selectMemberInfo 用作触发mobox render\r\n const { data: { Member: dtMember = {} } = {}, items = [] } = this.context.viewModel || {};\r\n const viewVoucher = items.find(v => v.type === 'Voucher') || {};\r\n const isTakeTheir = viewVoucher.getIsTakeTheir && viewVoucher.getIsTakeTheir();\r\n const isSelectedMember = !!dtMember.ID;\r\n const { Differentiate } = enumController.getEnumOj();\r\n const { memberCareInfo } = stores.selectMemberStore;\r\n let { isNewRetailBCPos } = platform || {};\r\n\r\n\r\n return (\r\n <div className='MemberContainer'>\r\n <div className='left'>\r\n {!isSelectedMember &&\r\n <div className='search'>\r\n <div className='b1'>\r\n <Input\r\n type='text'\r\n className=\"input\"\r\n id='memberPoint'\r\n placeholder='扫描/输入会员号'\r\n value={searchValue}\r\n ref={el => this.inputSearch = el && el.input}\r\n onChange={(e) => this.handleSearch(e.target.value)}\r\n onFocus={this.handleFocus}\r\n onBlur={this.handleBlur}\r\n onKeyDown={this.onKeyPressed}\r\n />\r\n <Spin\r\n className='search-spin'\r\n scale={0.8}\r\n type='circle-side'\r\n visible={searchVisible}\r\n />\r\n </div>\r\n <div className='b2'>\r\n {\r\n this.hasElectron === true && this.iCCardServer === 1 &&\r\n <Ticon className='icon' onClick={this.handleReadICard} type=\"ICka\" />\r\n }\r\n {\r\n this.isHorizontalPad ?\r\n <Ticon type='saomiao1' className='icon' onClick={this.changeScanProduct} />\r\n :\r\n (\r\n false && this.openFaceRecognition === 1 && !faceLoading &&\r\n <div className='openFaceRecognition-box'>\r\n <Ticon className='icon' onClick={() => this.loadFaceRecognition(2)} type=\"renlianshibie\" />\r\n <Spin\r\n className='face-spin'\r\n scale={0.8}\r\n type='circle'\r\n visible={faceLoading}\r\n />\r\n </div>\r\n )\r\n }\r\n {\r\n /* 扫描组件 */\r\n this.isHorizontalPad &&\r\n <Scan ref={scan => this.scanObj = scan} onChange={this.onScanResult} />\r\n }\r\n </div>\r\n </div>\r\n }\r\n {isSelectedMember &&\r\n <div className={`info ${this.openFaceRecognition ? '' : 'member-btn-hidden-flex'}`}>\r\n <div className='first'>\r\n <img onClick={this.openPhotoModal} src={newAvatar || dtMember.ImageFile || emptyMemberImage} />\r\n {memberPhoto && <MemberPhoto dtMember={dtMember} showModal={memberPhoto} titleModal={titleModal} handleModal={this.handlePhotoModal} />}\r\n {\r\n memberCareInfo && memberCareInfo.isTicket && <Ticon type=\"shengri\" className='shengriIcon'></Ticon>\r\n }\r\n {\r\n memberCareInfo && memberCareInfo.isTicket && <div className='birthdayContent'>\r\n <div className='birthdayWarn'>{memberCareInfo.daysToBirthday === 0 ? '今天生日' : memberCareInfo.daysToBirthday + '天后生日'}</div>\r\n <Button colors=\"warn\" onClick={this.handleMemberCareModal} className='check bg-theme'>查看</Button>\r\n <Ticon type=\"cuowuda\" className='cuowudaIcon'></Ticon>\r\n </div>\r\n }\r\n {\r\n memberCareInfo && memberCareInfo.isTicket && <Ticon type=\"cuowuda\" onClick={() => { this.setIsShowBirthdayTip()}} className='cuowudaIcon'></Ticon>\r\n }\r\n </div>\r\n <div className='second member-hotkey-info' onClick={() => this.openShowModal(0)}>\r\n <div className='one'>\r\n {dtMember.Name && <div className='a'>{dtMember.Name}</div>}\r\n <div className='b'>{dtMember.CardCode}</div>\r\n </div>\r\n <div className='two'>\r\n <div className='a'>{formatPrecision(dtMember.BalanceStorage, precisionInfo.BalanceStorage)}</div>\r\n <div className='b'>余额</div>\r\n </div>\r\n <div className='two'>\r\n <div className='a'>{this.computedCoupon(dtMember)}</div>\r\n <div className='b'>{Differentiate.COUPON}</div>\r\n </div>\r\n <div className='two'>\r\n <div className='a'>{formatPrecision(dtMember.BalanceIntegral, precisionInfo.BalanceIntegral) || 0}</div>\r\n <div className='b'>积分</div>\r\n </div>\r\n </div>\r\n <div className='close'>\r\n {!isTakeTheir && <Ticon type=\"guanbi-yuan\" onClick={this.openCloseModal} />}\r\n </div>\r\n </div>\r\n }\r\n </div>\r\n {/* {\r\n memberCareInfo && memberCareInfo.isTicket ? <div className='float'>\r\n <div className='txt'>{memberCareInfo.daysToBirthday === 0 ? '今天生日' : memberCareInfo.daysToBirthday + '天后生日'}</div>\r\n <div className='btn' onClick={this.handleMemberCareModal}>查看</div>\r\n <div className='cancel'>\r\n <Ticon type='guanbixiao' onClick={() => {\r\n this.setIsShowBirthdayTip()\r\n }}/>\r\n </div>\r\n </div> : null\r\n } */}\r\n {!!this.openFaceRecognition && <div className='right'>\r\n <Button type=\"primary\" onClick={() => this.loadFaceRecognition(1)} className='btn' disabled={inShopLoading}>\r\n {!inShopLoading && '到店会员'}\r\n <Spin\r\n className='inshop-member-spin'\r\n scale={0.8}\r\n type='circle'\r\n visible={inShopLoading}\r\n />\r\n {!!shopPerson && <div className='badge'>{shopPerson}</div>}\r\n </Button>\r\n </div>}\r\n <MemberModal\r\n mode={mode}\r\n authProcess={authProcess}\r\n viewMemberInfo={viewMemberInfo}\r\n columnInfo={columnInfo}\r\n status={status}\r\n showModal={memberShow}\r\n titleModal={titleModal}\r\n selectMemberSuccess={selectMemberSuccess}\r\n handleModal={this.handleShowModal}\r\n />\r\n <ModalWraper\r\n show={isMemberCareModal}\r\n className='member-care-modal'\r\n width='688'\r\n centered={true}\r\n memberClass='memberCareWidth'\r\n cancel={this.handleMemberCareModalCancel}\r\n >\r\n <div className='first'>会员生日关怀</div>\r\n <div className='second'>\r\n <div className='secondContent'>\r\n <Ticon type='dengpao'/>\r\n <span>口头关怀客户,提示引导客户去线上商城领取权益。</span>\r\n </div>\r\n </div>\r\n <div className='third'>\r\n <div className='one'>\r\n <img src={emptyMemberImage} />\r\n <Ticon type='shengri' />\r\n </div>\r\n <div className='two'>\r\n {\r\n memberCareInfo && memberCareInfo.daysToBirthday === 0 ? <span>\r\n 今天是{dtMember.Name}的生日,该会员是{dtMember.MemberType.Name},可享受以下权益\r\n </span> : <span>\r\n {dtMember.Name}会员还有{memberCareInfo && memberCareInfo.daysToBirthday}天生日,该会员是{dtMember.MemberType.Name},可享受以下权益\r\n </span>\r\n }\r\n </div>\r\n </div>\r\n {\r\n memberCareInfo && <div className='fourth'>\r\n {memberCareInfo && memberCareInfo.memberCareDTO && memberCareInfo.memberCareDTO.memberRightRuleList && memberCareInfo.memberCareDTO.memberRightRuleList[0].integralMultiple && <div className='item'>1.{ memberCareInfo.memberCareDTO.memberRightRuleList[0].integralMultiple}</div>}\r\n {memberCareInfo && memberCareInfo.memberCareDTO && memberCareInfo.memberCareDTO.memberRightRuleList && memberCareInfo.memberCareDTO.memberRightRuleList[0].integralGive && <div className='item'>2.{ memberCareInfo.memberCareDTO.memberRightRuleList[0].integralGive}</div>}\r\n {\r\n memberCareInfo && memberCareInfo.memberCareDTO && memberCareInfo.memberCareDTO.memberRightRuleList && memberCareInfo.memberCareDTO.memberRightRuleList[0].couponIdMapList.map((value, index) => {\r\n let count = 0;\r\n if (memberCareInfo.memberCareDTO.memberRightRuleList[0].integralMultiple) {\r\n count += 1;\r\n }\r\n if (memberCareInfo.memberCareDTO.memberRightRuleList[0].integralGive) {\r\n count += 1;\r\n }\r\n return (<div className='item'>{count + 1 + index}.{value.name}</div>)\r\n })\r\n }\r\n </div>\r\n }\r\n </ModalWraper>\r\n {\r\n !isNewRetailBCPos && <ModalWraper show={this.ms.birthdayShow} centered={true} className='member-birthday'>\r\n <div className='picture'>\r\n <img width='350' height='308' src={memberBirthday} />\r\n <Ticon type=\"guanbi-yuan\" onClick={this.handleCloseBirthdayModal} />\r\n </div>\r\n <div className='remark'>今天是会员<span>{dtMember.Name || dtMember.CardCode}</span>的生日</div>\r\n </ModalWraper>\r\n }\r\n </div>\r\n );\r\n }\r\n}\r\nexport default MemberTag\r\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "tplus-member",
3
- "version": "3.16.1",
3
+ "version": "3.17.2",
4
4
  "description": "",
5
5
  "main": "dist/index.js",
6
6
  "scripts": {
@@ -16,12 +16,12 @@
16
16
  "mutants-appfx": "^1.0.0",
17
17
  "mutants-devtools": "^1.0.0",
18
18
  "mutants-microfx": "^1.0.0",
19
- "tplus-api": "~3.0.47",
20
- "tplus-components": "~3.16.1",
21
- "tplus-components-touch": "~3.16.1",
22
- "tplus-portaltouch": "~3.16.1",
23
- "tplus-poslogin": "~3.16.1",
24
- "tplus-setting-touch": "~3.16.1"
19
+ "tplus-api": "~5.0.1",
20
+ "tplus-components": "~3.17.1",
21
+ "tplus-components-touch": "~3.17.1",
22
+ "tplus-portaltouch": "~3.17.1",
23
+ "tplus-poslogin": "~3.17.1",
24
+ "tplus-setting-touch": "~3.17.1"
25
25
  },
26
26
  "dependencies": {
27
27
  "antd": "4.10.3"