tplus-member 1.26.1 → 1.27.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (136) hide show
  1. package/locales/zh/tplus-portsetting.json +1 -1
  2. package/locales/zh-CN/tplus-portsetting.json +1 -1
  3. package/package.json +5 -5
  4. package/dist/api.js +0 -533
  5. package/dist/api.js.map +0 -1
  6. package/dist/controllers/FeedbackController.js +0 -53
  7. package/dist/controllers/FeedbackController.js.map +0 -1
  8. package/dist/controllers/MemberOrderController.js +0 -359
  9. package/dist/controllers/MemberOrderController.js.map +0 -1
  10. package/dist/controllers/OpenCardController.js +0 -289
  11. package/dist/controllers/OpenCardController.js.map +0 -1
  12. package/dist/controllers/defaultConfig.js +0 -19
  13. package/dist/controllers/defaultConfig.js.map +0 -1
  14. package/dist/dataProvider/member.js +0 -144
  15. package/dist/dataProvider/member.js.map +0 -1
  16. package/dist/dataProvider/openCard.js +0 -145
  17. package/dist/dataProvider/openCard.js.map +0 -1
  18. package/dist/domain/member/AuthProcess.js +0 -42
  19. package/dist/domain/member/AuthProcess.js.map +0 -1
  20. package/dist/domain/member/CardCodeChangedProcessor.js +0 -35
  21. package/dist/domain/member/CardCodeChangedProcessor.js.map +0 -1
  22. package/dist/domain/member/CheckCardCodeAndCodeProcessor.js +0 -48
  23. package/dist/domain/member/CheckCardCodeAndCodeProcessor.js.map +0 -1
  24. package/dist/domain/member/CheckMobilephoneFormatProcessor.js +0 -38
  25. package/dist/domain/member/CheckMobilephoneFormatProcessor.js.map +0 -1
  26. package/dist/domain/member/CheckPresentAmountProcessor.js +0 -99
  27. package/dist/domain/member/CheckPresentAmountProcessor.js.map +0 -1
  28. package/dist/domain/member/EffectiveDateChangedProcessor.js +0 -50
  29. package/dist/domain/member/EffectiveDateChangedProcessor.js.map +0 -1
  30. package/dist/domain/member/GetThisPresentAmountProcessor.js +0 -116
  31. package/dist/domain/member/GetThisPresentAmountProcessor.js.map +0 -1
  32. package/dist/domain/member/InitDataDeductionProcessor.js +0 -68
  33. package/dist/domain/member/InitDataDeductionProcessor.js.map +0 -1
  34. package/dist/domain/member/InitDataProcessor.js +0 -140
  35. package/dist/domain/member/InitDataProcessor.js.map +0 -1
  36. package/dist/domain/member/InitDataProjectProcessor.js +0 -102
  37. package/dist/domain/member/InitDataProjectProcessor.js.map +0 -1
  38. package/dist/domain/member/IsMemberEffectiveProcessor.js +0 -45
  39. package/dist/domain/member/IsMemberEffectiveProcessor.js.map +0 -1
  40. package/dist/domain/member/IsMemberEnableProcessor.js +0 -38
  41. package/dist/domain/member/IsMemberEnableProcessor.js.map +0 -1
  42. package/dist/domain/member/IsMemberExpirationProcessor.js +0 -46
  43. package/dist/domain/member/IsMemberExpirationProcessor.js.map +0 -1
  44. package/dist/domain/member/IsMemberPasswordSameProcessor.js +0 -41
  45. package/dist/domain/member/IsMemberPasswordSameProcessor.js.map +0 -1
  46. package/dist/domain/member/IsMemberStorageForStoreProcessor.js +0 -40
  47. package/dist/domain/member/IsMemberStorageForStoreProcessor.js.map +0 -1
  48. package/dist/domain/member/MemberTypeChangedProcessor.js +0 -120
  49. package/dist/domain/member/MemberTypeChangedProcessor.js.map +0 -1
  50. package/dist/domain/member/MobilephoneChangedProcessor.js +0 -39
  51. package/dist/domain/member/MobilephoneChangedProcessor.js.map +0 -1
  52. package/dist/domain/member/PersonProcesser.js +0 -35
  53. package/dist/domain/member/PersonProcesser.js.map +0 -1
  54. package/dist/domain/member/PriuserdefChangedProcessor.js +0 -50
  55. package/dist/domain/member/PriuserdefChangedProcessor.js.map +0 -1
  56. package/dist/domain/operationLog/AddLogProcessor.js +0 -50
  57. package/dist/domain/operationLog/AddLogProcessor.js.map +0 -1
  58. package/dist/domain/operationLog/OperationConfig.js +0 -34
  59. package/dist/domain/operationLog/OperationConfig.js.map +0 -1
  60. package/dist/domain/operationLog/OperationLog.js +0 -146
  61. package/dist/domain/operationLog/OperationLog.js.map +0 -1
  62. package/dist/index.js +0 -124
  63. package/dist/index.js.map +0 -1
  64. package/dist/member/MemberPhoto.js +0 -268
  65. package/dist/member/MemberPhoto.js.map +0 -1
  66. package/dist/member/MemberShow.js +0 -167
  67. package/dist/member/MemberShow.js.map +0 -1
  68. package/dist/member/ShopMember.js +0 -1096
  69. package/dist/member/ShopMember.js.map +0 -1
  70. package/dist/member/ShopMember.less +0 -605
  71. package/dist/member/api.js +0 -726
  72. package/dist/member/api.js.map +0 -1
  73. package/dist/member/color.less +0 -32
  74. package/dist/member/index.js +0 -843
  75. package/dist/member/index.js.map +0 -1
  76. package/dist/member/index.less +0 -466
  77. package/dist/member/memberTab.js +0 -675
  78. package/dist/member/memberTab.js.map +0 -1
  79. package/dist/memberMenu/changeMemberCard/index.js +0 -268
  80. package/dist/memberMenu/changeMemberCard/index.js.map +0 -1
  81. package/dist/memberMenu/changeMemberCard/style.less +0 -43
  82. package/dist/memberMenu/index.js +0 -826
  83. package/dist/memberMenu/index.js.map +0 -1
  84. package/dist/memberMenu/modifyPass/index.js +0 -207
  85. package/dist/memberMenu/modifyPass/index.js.map +0 -1
  86. package/dist/memberMenu/modifyPass/store.js +0 -357
  87. package/dist/memberMenu/modifyPass/store.js.map +0 -1
  88. package/dist/memberMenu/modifyPass/style.less +0 -91
  89. package/dist/memberMenu/style.less +0 -82
  90. package/dist/socket.js +0 -164
  91. package/dist/socket.js.map +0 -1
  92. package/dist/utils.js +0 -246
  93. package/dist/utils.js.map +0 -1
  94. package/dist/viewController/MemberOrderViewController.js +0 -144
  95. package/dist/viewController/MemberOrderViewController.js.map +0 -1
  96. package/dist/viewDoMain/CheckMemberProcessorBlock.js +0 -53
  97. package/dist/viewDoMain/CheckMemberProcessorBlock.js.map +0 -1
  98. package/dist/viewDoMain/CheckMemberStorageProcessorBlock.js +0 -85
  99. package/dist/viewDoMain/CheckMemberStorageProcessorBlock.js.map +0 -1
  100. package/dist/viewDoMain/CheckSelectMemberProcessorBlock.js +0 -69
  101. package/dist/viewDoMain/CheckSelectMemberProcessorBlock.js.map +0 -1
  102. package/dist/viewDoMain/CheckUpdatePasswordProcessorBlock.js +0 -44
  103. package/dist/viewDoMain/CheckUpdatePasswordProcessorBlock.js.map +0 -1
  104. package/dist/viewDoMain/MemberDataChangedProcessorBlock.js +0 -66
  105. package/dist/viewDoMain/MemberDataChangedProcessorBlock.js.map +0 -1
  106. package/dist/viewDoMain/MemberDataPreSaveProcessorBlock.js +0 -79
  107. package/dist/viewDoMain/MemberDataPreSaveProcessorBlock.js.map +0 -1
  108. package/dist/viewModels/MemberDeduction.js +0 -862
  109. package/dist/viewModels/MemberDeduction.js.map +0 -1
  110. package/dist/viewModels/MemberOrder.js +0 -248
  111. package/dist/viewModels/MemberOrder.js.map +0 -1
  112. package/dist/viewModels/MemberProject.js +0 -953
  113. package/dist/viewModels/MemberProject.js.map +0 -1
  114. package/dist/viewModels/MemberStore.js +0 -310
  115. package/dist/viewModels/MemberStore.js.map +0 -1
  116. package/dist/views/commonPerson/commonPerson.less +0 -54
  117. package/dist/views/commonPerson/commonPersonModal.js +0 -459
  118. package/dist/views/commonPerson/commonPersonModal.js.map +0 -1
  119. package/dist/views/memberDeduction/MemberDeductionView.js +0 -837
  120. package/dist/views/memberDeduction/MemberDeductionView.js.map +0 -1
  121. package/dist/views/memberDeduction/deductionSuccess.js +0 -62
  122. package/dist/views/memberDeduction/deductionSuccess.js.map +0 -1
  123. package/dist/views/memberDeduction/memberDeduction.less +0 -238
  124. package/dist/views/memberManage/MemberOrderView.js +0 -427
  125. package/dist/views/memberManage/MemberOrderView.js.map +0 -1
  126. package/dist/views/memberManage/memberOrder.less +0 -72
  127. package/dist/views/memberProject/GroupProjectModal.js +0 -676
  128. package/dist/views/memberProject/GroupProjectModal.js.map +0 -1
  129. package/dist/views/memberProject/MemberProjectView.js +0 -578
  130. package/dist/views/memberProject/MemberProjectView.js.map +0 -1
  131. package/dist/views/memberProject/SelectProjectModal.js +0 -330
  132. package/dist/views/memberProject/SelectProjectModal.js.map +0 -1
  133. package/dist/views/memberProject/memberProject.less +0 -334
  134. package/dist/views/memberRecharge/MemberStoreView.js +0 -546
  135. package/dist/views/memberRecharge/MemberStoreView.js.map +0 -1
  136. package/dist/views/memberRecharge/memberStore.less +0 -148
@@ -1 +0,0 @@
1
- {"version":3,"sources":["tplus-member/member/index.js"],"names":["emptyMemberImage","memberBirthday","currentMember","MemberTag","observer","props","state","searchValue","titleModal","memberShow","memberPhoto","searchVisible","shopPerson","status","dtMember","connectCardStatus","connectCardError","controllerEvent","methodName","methodArgs","context","onEvent","Action","fromJS","viewModel","resetInShopMemberTimer","count","timer","clearTimeout","time","setTimeout","getInStoreMemberCount","openPhotoModal","openFaceRecognition","Message","warn","setState","openShowModal","res","title","data","Member","newAvatar","jsMember","updateMember","ImageFile","viewMemberInfo","openCloseModal","memberStore","items","find","el","name","uiState","tip","info","ModalWraper","confirm","className","content","onOk","ms","clearSeletMember","handleCloseBirthdayModal","changeBirthdayShow","handleSearch","val","handleFocus","isMemberInputType","_this","cb","searchMember","undefined","Keyboard","open2","v","value","getNewValue","inputSearch","keyboardClose","localStore","get","blur","handleBlur","close2","handleReadICard","readRfCard","handleShowModal","type","params","handlePhotoModal","SetKeyBoardDisplay","isHorizontalSunMi","window","android_setKeyBoard","searchLoading","trim","memberSearched","selectMemberSuccess","getSearchMember","currentPage","pageSize","key","isSingleMember","then","ret","columnInfo","ColumnInfo","Data","JSON","parse","MemberType","IsStorage","isStorageCardInputType","iseyboardKEnter","keypressStime","length","stores","drawerStore","init","onHide","selectMemberInfo","memberChangeData","deepCloneMember","listArr","seletMember","isMobileEnvironment","catch","onKeyPressed","e","keyCode","stime","etime","Date","computedCoupon","member","couponKey","DynamicPropertyKeys","DynamicPropertyValues","couponIndex","findIndex","loadFaceRecognition","faceLoading","inShopLoading","loadInStoreMember","String","tipMessage","console","log","err","changeScanProduct","scanObj","startScan","onScanResult","loginInfo","IsOnlyControlStorageCardInputType","OpenFaceRecognition","ICCardServer","ICCardPassword","parseInt","iCCardServer","iCCardPassword","API","platform","isHorizontalPad","hasElectron","env","constant","electron","bind","memberChange","ID","connectRfCard","removeEventListener","windowOnresize","closeRfCard","nextProps","isSendMessage","nativeMs","setIpcRendererMethod","result","error","cardPsw","cardSec","cardKm","mode","authProcess","precisionInfo","viewVoucher","isTakeTheir","getIsTakeTheir","isSelectedMember","input","scan","Name","CardCode","BalanceStorage","BalanceIntegral","birthdayShow","Component","propTypes","PropTypes","func","contextTypes","object","defaultProps"],"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 } from 'react';\r\nimport { Button, FormControl } from 'tinper-bee';\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 } from 'mutants-util';\r\nimport MemberModal from './MemberShow';\r\nimport MemberPhoto from './MemberPhoto';\r\nimport API from './api';\r\nimport { formatPrecision, userInfoFormat, errMessageTip } from '../utils';\r\nimport './index.less';\r\nimport memberStore from './api';\r\n\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 };\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 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 = API;\r\n //移动端环境下,没有读取IC卡的方式。\r\n const { isHorizontalPad, isHorizontalSunMi } = platform || {};\r\n this.isHorizontalPad = !!isHorizontalPad;\r\n this.isMobileEnvironment = !!isHorizontalPad || !!isHorizontalSunMi;\r\n this.isHorizontalSunMi = !!isHorizontalSunMi;\r\n this.hasElectron = (env.platform === env.constant.platform.electron);\r\n this.handleReadICard = this.handleReadICard.bind(this);\r\n\r\n //记录键盘录入信息的开始时间\r\n this.keypressStime = null;\r\n this.iseyboardKEnter = false; //是否为键盘输入\r\n }\r\n\r\n componentWillReact() {\r\n const { data: { Member: dtMember = {} } = {} } = this.context.viewModel || {};\r\n const { selectMemberInfo = {} } = 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 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 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 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 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 ModalWraper.confirm({\r\n className: 'tplus-confirm-modal',\r\n title: '关闭会员',\r\n content: '确定要关闭该会员吗?',\r\n onOk: () => {\r\n this.ms.clearSeletMember();\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 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 if (type) {\r\n this.setState({\r\n searchValue: null\r\n })\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 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 } = 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\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 if (info) {\r\n if (data.length > 1) {\r\n this.SetKeyBoardDisplay(1)\r\n let _this = this;\r\n stores.drawerStore.init({\r\n title: '会员管理',\r\n key: 'member',\r\n onHide:()=>{\r\n this.SetKeyBoardDisplay(0);\r\n const { selectMemberInfo = {} } = _this.ms;\r\n const memberChangeData = Object.keys(selectMemberInfo).length ? selectMemberInfo : undefined;\r\n const deepCloneMember = memberChangeData && JSON.parse(JSON.stringify(memberChangeData));\r\n if (deepCloneMember) {\r\n this.setState({\r\n searchValue: null\r\n })\r\n }\r\n },\r\n listArr: data,\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 }\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 let count = res || 0;\r\n this.setState({ shopPerson: count });\r\n this.resetInShopMemberTimer(count);\r\n });\r\n }\r\n\r\n onKeyPressed = (e) => {\r\n const keyCode = e && e.keyCode\r\n if (keyCode === 13) {\r\n if (this.isMemberInputType) {\r\n let stime = this.keypressStime;\r\n let etime = Date.parse(new Date());\r\n if (etime - stime > 300) {\r\n this.handleSearch('')\r\n this.keypressStime = null;\r\n return Message.warn('未启用键盘录入功能');\r\n }\r\n this.keypressStime = null;\r\n }\r\n this.iseyboardKEnter = Date.parse(new Date()) - this.keypressStime > 300;\r\n if (this.isStorageCardInputType) {\r\n this.keypressStime = null;\r\n }\r\n if (this.searchLoading) return;\r\n this.searchMember(undefined, 'ok');\r\n }\r\n else if (this.isMemberInputType && !this.keypressStime && !(keyCode == 8)) {\r\n this.keypressStime = Date.parse(new Date())\r\n } else if (this.isStorageCardInputType && !this.keypressStime && !(keyCode == 8) && !this.isMemberInputType) {\r\n this.keypressStime = Date.parse(new Date())\r\n }\r\n }\r\n\r\n computedCoupon = (member = {}) => {\r\n 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 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 render() {\r\n const {\r\n memberPhoto, titleModal, memberShow, inShopLoading = false, faceLoading = false,\r\n status, shopPerson, searchValue, viewMemberInfo, newAvatar, searchVisible, columnInfo\r\n } = this.state;\r\n const { mode = 'formal', authProcess } = 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 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 <FormControl\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={this.handleSearch}\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 </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'>优惠券</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 {!!this.openFaceRecognition && <div className='right'>\r\n <Button colors=\"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 handleModal={this.handleShowModal}\r\n />\r\n <ModalWraper show={this.ms.birthdayShow} centered={true} className='memberBirthday'>\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 </div>\r\n );\r\n }\r\n}\r\nexport default MemberTag"]}
@@ -1,466 +0,0 @@
1
- @import './color.less';
2
-
3
- .MemberContainer {
4
- display : flex;
5
- justify-content : center;
6
- align-items : Center;
7
- background-color: @color-z3;
8
- width : 400px;
9
- height : 56px;
10
- padding: 0px 10px;
11
- .left {
12
- width : 320px;
13
- flex: 1;
14
- .search {
15
- width : 100%;
16
- border : 1px solid @color-g5;
17
- border-radius : 3px;
18
- height: 32px;
19
- line-height: 32px;
20
- background: #F4F4F4;
21
- border-color: #999999;
22
- display: flex;
23
-
24
- .b1 {
25
- float : left;
26
- height : 30px;
27
- line-height: 30px;
28
- flex: 1;
29
- position: relative;
30
- .tplus-spin{
31
- position: absolute;
32
- right: 0;
33
- top: 2px;
34
- }
35
- .input {
36
- width : 100%;
37
- height : 30px;
38
- border-width: 0 !important;
39
- padding : 0 5px;
40
- background : transparent;
41
- padding-left: 12px;
42
- }
43
- }
44
-
45
- .b2 {
46
- float : right;
47
- display : flex;
48
- align-items: center;
49
- height : 30px;
50
- position: relative;
51
-
52
- .icon {
53
- font-size: 20px;
54
- color : @color-g2;
55
- cursor : pointer;
56
- margin-left: 8px;
57
- margin-right: 8px;
58
- }
59
- .openFaceRecognition-box{
60
- position: relative;
61
- width: 38px;
62
- height: 100%;
63
- .face-spin{
64
- position: absolute;
65
- top: 4px;
66
- left: 5px;
67
- }
68
- }
69
- }
70
- }
71
- .face-spin{
72
- margin-top: -2px;
73
- position: absolute;
74
- right: 6px;
75
- .circle{
76
- border: 2px solid #ef8f39;
77
- border-top-color: transparent;
78
- }
79
- }
80
-
81
- .info {
82
- width : 100%;
83
- height : 56px;
84
- display : flex;
85
- justify-content: left;
86
- align-items : Center;
87
- line-height: normal;
88
- &.member-btn-hidden-flex{
89
- .first{
90
- flex: 0;
91
- }
92
- .second{
93
- flex: 1;
94
- justify-content: space-around;
95
- }
96
- .close{
97
- flex: 0 0 50px;
98
- }
99
- }
100
- .first {
101
- img {
102
- width : 36px;
103
- height : 36px;
104
- border-radius: 50%;
105
- border : 1px solid @color-g8;
106
- overflow : hidden;
107
- cursor : pointer;
108
- }
109
- }
110
-
111
- .second {
112
- width : 240px;
113
- font-size : 12px;
114
- color : @color-g1;
115
- cursor : default;
116
- display : flex;
117
- justify-content: left;
118
- align-items : Center;
119
- cursor: pointer;
120
- .one {
121
- width : 82px;
122
- overflow: hidden;
123
- padding-left : 5px;
124
-
125
- .a {
126
- overflow : hidden;
127
- white-space : nowrap;
128
- text-overflow: ellipsis;
129
- }
130
-
131
- .b {
132
- text-align : left;
133
- font-size : 12px;
134
- margin-top : 5px;
135
- //color : @color-d7;
136
- //background:url('https://newretail.static.chanjet.com/member_class.png') no-repeat left top;
137
- //min-width : 40px;
138
- //background: linear-gradient(to bottom right, #e5c583 , #fadcb0);
139
- //border-radius: 14px 20px 20px 0;
140
- //display: inline-block;
141
- //padding: 0 4px;
142
- //max-width: 100%;
143
- //overflow: hidden;
144
- //height : 18px;
145
- //line-height : 18px;
146
- }
147
- }
148
-
149
- .two {
150
- text-align: center;
151
- width : 54px;
152
- //overflow : hidden;
153
- word-break: keep-all;
154
-
155
- .a {
156
- font-size : 12px;
157
- font-weight: bold;
158
- overflow: hidden;
159
- text-overflow:ellipsis;
160
- white-space: nowrap;
161
- }
162
-
163
- .b {
164
- font-size : 12px;
165
- margin-top: 5px;
166
- }
167
- }
168
- }
169
-
170
- .close {
171
- display: flex;
172
- justify-content: center;
173
- overflow : hidden;
174
- width : 30px;
175
- height : 56px;
176
- line-height: 56px;
177
- padding : 0px 5px;
178
- cursor: pointer;
179
-
180
- i {
181
- font-size: 16px;
182
- color : @color-g5;
183
- }
184
- }
185
- }
186
- }
187
-
188
- .right {
189
- width : 90px;
190
- font-size : 12px;
191
- padding-left: 10px;
192
- border-left : 1px solid @color-g6;
193
- position : relative;
194
-
195
- .btn {
196
- width : 64px;
197
- min-width : 0px;
198
- height : 32px;
199
- line-height : 32px;
200
- padding : 0;
201
- font-size : 12px;
202
- color : @color-z3;
203
- border-color : @color-z1 !important;
204
- background-color: @color-z1 !important;
205
- overflow: visible;
206
- }
207
- .inshop-member-spin{
208
- margin: 0 auto;
209
- display: inline-block;
210
- margin-top: 3px;
211
- }
212
-
213
- .btn:focus,
214
- .btn:hover {
215
- border-color : @color-z1;
216
- background-color: @color-z1;
217
- }
218
-
219
- .badge {
220
- padding: 0px 4px;
221
- position : absolute;
222
- top : -11px;
223
- right : -8px;
224
- min-width : 20px;
225
- height : 20px;
226
- line-height : 20px;
227
- text-align : center;
228
- font-size : 12px;
229
- color : @color-z3;
230
- border-radius : 20px;
231
- background-color: @color-d1;
232
- }
233
- }
234
- }
235
- .memberBirthday {
236
- .u-modal-content {
237
- background-color: rgba(255, 255, 255, 0) !important;
238
- box-shadow : 0 0 0 !important;
239
- border : 0 !important;
240
- text-align : center;
241
-
242
- .u-modal-body {
243
- width : 600px !important;
244
- height: 370px !important;
245
- }
246
-
247
- .u-modal-header,
248
- .u-modal-footer {
249
-
250
- display: none;
251
- }
252
-
253
- .picture {
254
- img {
255
- width : 350px;
256
- height: 308px;
257
- }
258
-
259
- i {
260
- position : absolute;
261
- top : 0;
262
- right : 100px;
263
- font-size: 24px;
264
- color : #FFFFFF;
265
- }
266
- }
267
-
268
- .remark {
269
- margin-top: 24px;
270
- font-size : 22px;
271
- color : #FFFFFF;
272
-
273
- span {
274
- padding: 0 5px;
275
- color : #EF8F39;
276
- }
277
- }
278
- }
279
- }
280
-
281
- .member-modal-animation{
282
- &.u-modal.fade{
283
- .u-modal-dialog{
284
- opacity: 0;
285
- top: 40%;
286
- transform: translateY(-50%);
287
- margin: 0px auto;
288
- transition: all .2s ease-in-out !important;
289
- }
290
-
291
- &.in{
292
- .u-modal-dialog{
293
- opacity: 1;
294
- top: 50%;
295
- }
296
- }
297
- }
298
- }
299
- .MemberShowContainer {
300
- .header {
301
- border-bottom: 1px solid @color-g6 !important;
302
- .u-modal-title {
303
- font-size : 18px;
304
- }
305
- .u-close {
306
- opacity: 1 !important;
307
- }
308
- }
309
-
310
- .member-show-body {
311
- .memberShopContainer {
312
- padding-left: 0px !important;
313
- }
314
-
315
- .member-shop-content {
316
- width: 100%;
317
-
318
- .member-content-tab {
319
- flex: 0 1 auto;
320
- }
321
- }
322
- }
323
-
324
- .footer {
325
- border-top: 1px solid @color-g6 !important;
326
- .u-button.u-button-secondary {
327
- background-color: @color-z3;
328
- color : @color-g3;
329
- border-color : @color-g5;
330
- margin-right: 20px !important;
331
- }
332
- .u-button.u-button-primary {
333
- border-color : @color-z1;
334
- background-color: @color-z1;
335
- }
336
- }
337
- }
338
-
339
- .MemberPhotoContainer {
340
- .header {
341
- border-bottom: 1px solid @color-g6 !important;
342
- .u-modal-title {
343
- font-size : 18px;
344
- }
345
- }
346
-
347
- .body {
348
- height : 376px;
349
- overflow : hidden;
350
- overflow-y: auto;
351
- padding : 0;
352
- display: flex;
353
- flex-wrap: wrap;
354
- justify-content: space-between;
355
- .memberPhoto {
356
- float : left;
357
- text-align : center;
358
- padding: 10px 20px;
359
- position : relative;
360
- width: 120px;
361
- height: 135px;
362
-
363
- .img {
364
- width : 80px;
365
- height : 80px;
366
- border-radius: 50%;
367
- border : 1px solid @color-z3;
368
- overflow : hidden;
369
- }
370
-
371
- .select {
372
- position : absolute;
373
- bottom : 45px;
374
- right : 25px;
375
- height : 22px;
376
- width : 22px;
377
- font-size : 12px;
378
- color : @color-z3;
379
- border-radius : 20px;
380
- background-color: @color-z1;
381
- }
382
-
383
- .tag {
384
- font-size : 16px;
385
- line-height: 14px;
386
- color : @color-g1;
387
- font-weight: 600;
388
- padding-top: 16px;
389
- }
390
-
391
- img {
392
- width : 80px;
393
- height: 80px;
394
- }
395
- }
396
- }
397
-
398
- .footer {
399
- border-top: 1px solid @color-g6 !important;
400
- padding: 12px;
401
- .u-button.u-button-secondary {
402
- background-color: @color-z3;
403
- color : @color-g3;
404
- border-color : @color-g5;
405
- }
406
-
407
- .u-button.u-button-primary {
408
- border-color : @color-z1;
409
- background-color: @color-z1;
410
- }
411
- }
412
- }
413
-
414
- .MemberCloseContainer {
415
- .header {
416
- .u-modal-title {
417
- font-size : 18px;
418
- }
419
- .u-close {
420
- opacity: 1 !important;
421
- }
422
- }
423
-
424
- .body {
425
- height : 120px;
426
- padding: 0;
427
- display: flex;
428
-
429
- .content {
430
- margin-top : 23px;
431
- margin-left: 32px;
432
-
433
- .icon {
434
- font-size: 20px;
435
- color : @color-z1;
436
- }
437
-
438
- .span {
439
- margin-left: 16px;
440
- font-size : 16px;
441
- font-weight: 400;
442
- }
443
- }
444
- }
445
-
446
- .footer {
447
- .u-button.u-button-secondary {
448
- background-color: @color-z3;
449
- color : @color-g3;
450
- border-color : @color-g5;
451
- }
452
-
453
- .u-button.u-button-primary {
454
- border-color : @color-z1;
455
- background-color: @color-z1;
456
- }
457
- }
458
- }
459
- .member-modal-wrapper{
460
- .u-modal-backdrop{
461
- z-index: 900 !important;
462
- }
463
- .u-modal{
464
- z-index: 901 !important;
465
- }
466
- }