tplus-member 1.27.1 → 1.27.2
Sign up to get free protection for your applications and to get access to all the features.
- package/dist/api.js +533 -0
- package/dist/api.js.map +1 -0
- package/dist/controllers/FeedbackController.js +53 -0
- package/dist/controllers/FeedbackController.js.map +1 -0
- package/dist/controllers/MemberOrderController.js +359 -0
- package/dist/controllers/MemberOrderController.js.map +1 -0
- package/dist/controllers/OpenCardController.js +289 -0
- package/dist/controllers/OpenCardController.js.map +1 -0
- package/dist/controllers/defaultConfig.js +19 -0
- package/dist/controllers/defaultConfig.js.map +1 -0
- package/dist/dataProvider/member.js +144 -0
- package/dist/dataProvider/member.js.map +1 -0
- package/dist/dataProvider/openCard.js +145 -0
- package/dist/dataProvider/openCard.js.map +1 -0
- package/dist/domain/member/AuthProcess.js +42 -0
- package/dist/domain/member/AuthProcess.js.map +1 -0
- package/dist/domain/member/CardCodeChangedProcessor.js +35 -0
- package/dist/domain/member/CardCodeChangedProcessor.js.map +1 -0
- package/dist/domain/member/CheckCardCodeAndCodeProcessor.js +48 -0
- package/dist/domain/member/CheckCardCodeAndCodeProcessor.js.map +1 -0
- package/dist/domain/member/CheckMobilephoneFormatProcessor.js +38 -0
- package/dist/domain/member/CheckMobilephoneFormatProcessor.js.map +1 -0
- package/dist/domain/member/CheckPresentAmountProcessor.js +99 -0
- package/dist/domain/member/CheckPresentAmountProcessor.js.map +1 -0
- package/dist/domain/member/EffectiveDateChangedProcessor.js +50 -0
- package/dist/domain/member/EffectiveDateChangedProcessor.js.map +1 -0
- package/dist/domain/member/GetThisPresentAmountProcessor.js +116 -0
- package/dist/domain/member/GetThisPresentAmountProcessor.js.map +1 -0
- package/dist/domain/member/InitDataDeductionProcessor.js +68 -0
- package/dist/domain/member/InitDataDeductionProcessor.js.map +1 -0
- package/dist/domain/member/InitDataProcessor.js +140 -0
- package/dist/domain/member/InitDataProcessor.js.map +1 -0
- package/dist/domain/member/InitDataProjectProcessor.js +102 -0
- package/dist/domain/member/InitDataProjectProcessor.js.map +1 -0
- package/dist/domain/member/IsMemberEffectiveProcessor.js +45 -0
- package/dist/domain/member/IsMemberEffectiveProcessor.js.map +1 -0
- package/dist/domain/member/IsMemberEnableProcessor.js +38 -0
- package/dist/domain/member/IsMemberEnableProcessor.js.map +1 -0
- package/dist/domain/member/IsMemberExpirationProcessor.js +46 -0
- package/dist/domain/member/IsMemberExpirationProcessor.js.map +1 -0
- package/dist/domain/member/IsMemberPasswordSameProcessor.js +41 -0
- package/dist/domain/member/IsMemberPasswordSameProcessor.js.map +1 -0
- package/dist/domain/member/IsMemberStorageForStoreProcessor.js +40 -0
- package/dist/domain/member/IsMemberStorageForStoreProcessor.js.map +1 -0
- package/dist/domain/member/MemberTypeChangedProcessor.js +120 -0
- package/dist/domain/member/MemberTypeChangedProcessor.js.map +1 -0
- package/dist/domain/member/MobilephoneChangedProcessor.js +39 -0
- package/dist/domain/member/MobilephoneChangedProcessor.js.map +1 -0
- package/dist/domain/member/PersonProcesser.js +35 -0
- package/dist/domain/member/PersonProcesser.js.map +1 -0
- package/dist/domain/member/PriuserdefChangedProcessor.js +50 -0
- package/dist/domain/member/PriuserdefChangedProcessor.js.map +1 -0
- package/dist/domain/operationLog/AddLogProcessor.js +50 -0
- package/dist/domain/operationLog/AddLogProcessor.js.map +1 -0
- package/dist/domain/operationLog/OperationConfig.js +34 -0
- package/dist/domain/operationLog/OperationConfig.js.map +1 -0
- package/dist/domain/operationLog/OperationLog.js +146 -0
- package/dist/domain/operationLog/OperationLog.js.map +1 -0
- package/dist/index.js +124 -0
- package/dist/index.js.map +1 -0
- package/dist/member/MemberPhoto.js +268 -0
- package/dist/member/MemberPhoto.js.map +1 -0
- package/dist/member/MemberShow.js +167 -0
- package/dist/member/MemberShow.js.map +1 -0
- package/dist/member/ShopMember.js +1096 -0
- package/dist/member/ShopMember.js.map +1 -0
- package/dist/member/ShopMember.less +605 -0
- package/dist/member/api.js +726 -0
- package/dist/member/api.js.map +1 -0
- package/dist/member/color.less +32 -0
- package/dist/member/index.js +843 -0
- package/dist/member/index.js.map +1 -0
- package/dist/member/index.less +466 -0
- package/dist/member/memberTab.js +675 -0
- package/dist/member/memberTab.js.map +1 -0
- package/dist/memberMenu/changeMemberCard/index.js +268 -0
- package/dist/memberMenu/changeMemberCard/index.js.map +1 -0
- package/dist/memberMenu/changeMemberCard/style.less +43 -0
- package/dist/memberMenu/index.js +826 -0
- package/dist/memberMenu/index.js.map +1 -0
- package/dist/memberMenu/modifyPass/index.js +207 -0
- package/dist/memberMenu/modifyPass/index.js.map +1 -0
- package/dist/memberMenu/modifyPass/store.js +357 -0
- package/dist/memberMenu/modifyPass/store.js.map +1 -0
- package/dist/memberMenu/modifyPass/style.less +91 -0
- package/dist/memberMenu/style.less +82 -0
- package/dist/socket.js +164 -0
- package/dist/socket.js.map +1 -0
- package/dist/utils.js +246 -0
- package/dist/utils.js.map +1 -0
- package/dist/viewController/MemberOrderViewController.js +144 -0
- package/dist/viewController/MemberOrderViewController.js.map +1 -0
- package/dist/viewDoMain/CheckMemberProcessorBlock.js +53 -0
- package/dist/viewDoMain/CheckMemberProcessorBlock.js.map +1 -0
- package/dist/viewDoMain/CheckMemberStorageProcessorBlock.js +85 -0
- package/dist/viewDoMain/CheckMemberStorageProcessorBlock.js.map +1 -0
- package/dist/viewDoMain/CheckSelectMemberProcessorBlock.js +69 -0
- package/dist/viewDoMain/CheckSelectMemberProcessorBlock.js.map +1 -0
- package/dist/viewDoMain/CheckUpdatePasswordProcessorBlock.js +44 -0
- package/dist/viewDoMain/CheckUpdatePasswordProcessorBlock.js.map +1 -0
- package/dist/viewDoMain/MemberDataChangedProcessorBlock.js +66 -0
- package/dist/viewDoMain/MemberDataChangedProcessorBlock.js.map +1 -0
- package/dist/viewDoMain/MemberDataPreSaveProcessorBlock.js +79 -0
- package/dist/viewDoMain/MemberDataPreSaveProcessorBlock.js.map +1 -0
- package/dist/viewModels/MemberDeduction.js +862 -0
- package/dist/viewModels/MemberDeduction.js.map +1 -0
- package/dist/viewModels/MemberOrder.js +248 -0
- package/dist/viewModels/MemberOrder.js.map +1 -0
- package/dist/viewModels/MemberProject.js +953 -0
- package/dist/viewModels/MemberProject.js.map +1 -0
- package/dist/viewModels/MemberStore.js +310 -0
- package/dist/viewModels/MemberStore.js.map +1 -0
- package/dist/views/commonPerson/commonPerson.less +54 -0
- package/dist/views/commonPerson/commonPersonModal.js +459 -0
- package/dist/views/commonPerson/commonPersonModal.js.map +1 -0
- package/dist/views/memberDeduction/MemberDeductionView.js +837 -0
- package/dist/views/memberDeduction/MemberDeductionView.js.map +1 -0
- package/dist/views/memberDeduction/deductionSuccess.js +62 -0
- package/dist/views/memberDeduction/deductionSuccess.js.map +1 -0
- package/dist/views/memberDeduction/memberDeduction.less +238 -0
- package/dist/views/memberManage/MemberOrderView.js +427 -0
- package/dist/views/memberManage/MemberOrderView.js.map +1 -0
- package/dist/views/memberManage/memberOrder.less +72 -0
- package/dist/views/memberProject/GroupProjectModal.js +676 -0
- package/dist/views/memberProject/GroupProjectModal.js.map +1 -0
- package/dist/views/memberProject/MemberProjectView.js +578 -0
- package/dist/views/memberProject/MemberProjectView.js.map +1 -0
- package/dist/views/memberProject/SelectProjectModal.js +330 -0
- package/dist/views/memberProject/SelectProjectModal.js.map +1 -0
- package/dist/views/memberProject/memberProject.less +334 -0
- package/dist/views/memberRecharge/MemberStoreView.js +546 -0
- package/dist/views/memberRecharge/MemberStoreView.js.map +1 -0
- package/dist/views/memberRecharge/memberStore.less +148 -0
- package/package.json +1 -1
@@ -0,0 +1 @@
|
|
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":["/**\n * @memberChange member 状态发生变化时的回调\n * @memberSearched 录入框会员状态发生变化时的回调 memberSearched(value, type) // type: searched 触发搜索 | err 搜索接口错误 | close 关闭会员\n *\n */\nimport React, { Component } from 'react';\nimport { Button, FormControl } from 'tinper-bee';\nimport { observer } from 'mobx-react';\nimport { toJS } from 'mobx';\nimport PropTypes from 'prop-types'\nimport { Ticon, Message, ModalWraper, Spin, Keyboard,Scan } from 'tplus-components-touch';\nimport { env, nativeMs, localStore, stores } from 'mutants-microfx';\nimport { Action } from 'mutants-appfx'\nimport { platform } from 'mutants-util';\nimport MemberModal from './MemberShow';\nimport MemberPhoto from './MemberPhoto';\nimport API from './api';\nimport { formatPrecision, userInfoFormat, errMessageTip } from '../utils';\nimport './index.less';\nimport memberStore from './api';\n\n//定义默认头像值。\nconst emptyMemberImage = 'https://newretail.static.chanjet.com/default_avatar.png';\nconst memberBirthday = 'https://newretail.static.chanjet.com/pictures/member_birthday.png';\nlet currentMember;\n\n@observer\nclass MemberTag extends Component {\n\n state = {\n searchValue: '',\n titleModal: '',\n memberShow: false,\n memberPhoto: false,\n searchVisible: false,\n shopPerson: 0,\n status: 2, // 0会员详情、1到店会员、2人脸识别\n dtMember: {}, // 会员信息\n connectCardStatus: false, //连接IC卡状态\n connectCardError: '', //连接IC卡错误后记录错误信息\n };\n\n static propTypes = {\n memberChange: PropTypes.func,\n memberSearched: PropTypes.func,\n }\n\n static contextTypes = {\n onEvent:PropTypes.func,\n viewModel: PropTypes.object,\n }\n\n static defaultProps = {\n memberChange: () => { },\n }\n\n constructor(props) {\n super(props);\n const { loginInfo: { isMemberInputType, IsOnlyControlStorageCardInputType, OpenFaceRecognition, ICCardServer, ICCardPassword } = {} } = localStore.get('user') || {};\n this.isMemberInputType = parseInt(isMemberInputType); // '0'为不禁用 '1'为禁用\n this.isStorageCardInputType = parseInt(IsOnlyControlStorageCardInputType); // 仅储值卡是否禁用键盘输入,'0'为不禁用 '1'为禁用\n this.openFaceRecognition = parseInt(OpenFaceRecognition); // 启用人脸识别:0禁用 1为启用\n this.iCCardServer = parseInt(ICCardServer); // 启用IC卡:0为禁用 1为启用\n this.iCCardPassword = ICCardPassword; //IC卡密码\n this.ms = API;\n //移动端环境下,没有读取IC卡的方式。\n const { isHorizontalPad, isHorizontalSunMi } = platform || {};\n this.isHorizontalPad = !!isHorizontalPad;\n this.isMobileEnvironment = !!isHorizontalPad || !!isHorizontalSunMi;\n this.isHorizontalSunMi = !!isHorizontalSunMi;\n this.hasElectron = (env.platform === env.constant.platform.electron);\n this.handleReadICard = this.handleReadICard.bind(this);\n\n //记录键盘录入信息的开始时间\n this.keypressStime = null;\n this.iseyboardKEnter = false; //是否为键盘输入\n }\n\n componentWillReact() {\n const { data: { Member: dtMember = {} } = {} } = this.context.viewModel || {};\n const { selectMemberInfo = {} } = this.ms;\n const memberChangeData = Object.keys(selectMemberInfo).length ? selectMemberInfo : undefined;\n\n const memberChange = (data) => {\n this.setState({newAvatar: ''});\n this.props.memberChange(data);\n }\n if (typeof memberChangeData === 'object') {\n const deepCloneMember = JSON.parse(JSON.stringify(memberChangeData));\n if (!currentMember) {\n currentMember = deepCloneMember;\n memberChange(memberChangeData);\n } else if (currentMember.ID !== memberChangeData.ID) {\n memberChange(memberChangeData);\n currentMember = deepCloneMember;\n } else if (!dtMember.ID && (currentMember || {}).ID) { // DataModel 中清掉member,手动同步 member\n currentMember = undefined;\n this.ms.clearSeletMember();\n }\n } else if (currentMember && !memberChangeData) {\n memberChange(memberChangeData);\n currentMember = undefined;\n } else if (dtMember.ID && !(currentMember || {}).ID) { // DataModel 中存在member,手动同步 member\n const deepCloneMember = JSON.parse(JSON.stringify(dtMember));\n currentMember = deepCloneMember;\n this.ms.seletMember(dtMember);\n }\n }\n\n componentDidMount() {\n this.connectRfCard();\n }\n\n componentWillUnmount() {\n window.removeEventListener('resize', this.windowOnresize);\n this.closeRfCard();\n }\n\n componentWillReceiveProps(nextProps) {\n //接受socket传递过来的信息\n let { isSendMessage } = nextProps;\n if (isSendMessage === true) this.getInStoreMemberCount()\n }\n\n controllerEvent = (methodName, methodArgs) => {\n this.context.onEvent({ 'controllerEvent': Action.fromJS(this.context.viewModel, methodName) }, 'controllerEvent', methodArgs);\n }\n\n resetInShopMemberTimer = (count) => {\n this.timer && clearTimeout(this.timer);\n if (!count) return;\n const time = 5 * 60 * 1000;\n this.timer = setTimeout(() => {\n this.getInStoreMemberCount();\n }, time);\n }\n //IC卡连接\n connectRfCard() {\n //客户端环境下,并开启了启用IC卡。\n if (this.hasElectron === true && this.iCCardServer === 1) {\n nativeMs.setIpcRendererMethod('ConnectRfCard', null, ret => {\n let result = {}\n if (ret.status === 0) {\n result = { connectCardStatus: false, connectCardError: ret.value }\n } else {\n result = { connectCardStatus: true, connectCardError: '' };\n }\n this.setState(result)\n })\n }\n }\n\n //IC卡读取\n readRfCard() {\n //客户端环境下,并开启了启用IC卡。\n if (this.hasElectron === true && this.iCCardServer === 1) {\n const { connectCardStatus, connectCardError } = this.state;\n if (connectCardStatus === false) {\n Message.error(connectCardError ? connectCardError : '读取IC卡失败');\n this.connectRfCard(); //读取失败后,重新连接一下。\n return;\n }\n let params = { cardPsw: this.iCCardPassword, cardSec: 13, cardKm: 0 }\n nativeMs.setIpcRendererMethod('ReadRfCard', { ...params }, ret => {\n if (ret.status === 0) {\n Message.error(ret.value);\n this.connectRfCard(); //读取失败后,重新连接一下。\n return;\n } else if (ret.status === 1) {\n this.searchMember(ret.value);\n }\n })\n }\n }\n\n //IC卡关闭\n closeRfCard(){\n if (this.hasElectron === true && this.iCCardServer === 1) {\n nativeMs.setIpcRendererMethod('CloseRfCard')\n }\n }\n\n openPhotoModal = () => {\n if (!this.openFaceRecognition){\n Message.warn('未启用人脸识别,需要先开启人脸识别功能');\n return;\n }\n this.setState({\n memberPhoto: true,\n titleModal: '选择头像'\n })\n }\n\n openShowModal = (status, res) => {\n let title = '';\n const { data: { Member = {} } = {} } = this.context.viewModel || {};\n const {newAvatar} = this.state;\n const jsMember = toJS(Member);\n const updateMember = newAvatar ? {...jsMember, ImageFile: newAvatar} : jsMember;\n switch (status) {\n case 0:\n title = '会员详情';\n this.setState({ viewMemberInfo: updateMember })\n break;\n case 1:\n title = '到店会员';\n this.setState({ viewMemberInfo: res })\n break;\n case 2:\n title = '人脸识别';\n this.setState({ viewMemberInfo: res })\n break;\n }\n this.setState({\n status: status,\n memberShow: true,\n titleModal: title\n })\n }\n\n openCloseModal = () => {\n const memberStore = this.context.viewModel && this.context.viewModel.items.find(el=>el.name=='MemberStore');\n const uiState = memberStore.uiState;\n if(!!uiState.tip){\n Message.info(uiState.tip)\n return;\n }\n ModalWraper.confirm({\n className: 'tplus-confirm-modal',\n title: '关闭会员',\n content: '确定要关闭该会员吗?',\n onOk: () => {\n this.ms.clearSeletMember();\n }\n });\n }\n\n //关闭生日提醒\n handleCloseBirthdayModal = () => {\n this.ms.changeBirthdayShow(false);\n }\n\n handleSearch = (val) => {\n this.setState({ searchValue: val })\n }\n\n handleFocus = (el) => {\n if (this.isMemberInputType) return;\n const _this = this;\n function cb() {\n _this.searchMember(undefined, 'ok');\n }\n Keyboard.open2((v) => {\n const value = Keyboard.getNewValue(this.inputSearch, this.inputSearch.value, v);\n this.handleSearch(value);\n }, cb, this.keyboardClose , 'ByMember', localStore.get('ByMember'))\n }\n\n keyboardClose = () => {\n this.inputSearch.blur();\n }\n handleBlur = () => {\n Keyboard.close2();\n }\n\n handleReadICard = () => {\n this.readRfCard();\n }\n\n handleShowModal = (type, params) => {\n if (params) {\n this.setState({ dtMember: params, memberShow: type })\n } else {\n this.setState({ memberShow: type })\n }\n if (type) {\n this.setState({\n searchValue: null\n })\n }\n }\n\n handlePhotoModal = (type, newAvatar) => {\n if (newAvatar) {\n this.setState({\n newAvatar,\n memberPhoto: type\n })\n } else {\n this.setState({ memberPhoto: type })\n }\n }\n\n SetKeyBoardDisplay = (value) => {\n this.isHorizontalSunMi && window.android_setKeyBoard && window.android_setKeyBoard.SetKeyBoardDisplay(value)\n }\n\n searchMember = (val, type) => {\n if (!this.ms || this.searchLoading) return;\n const {searchValue} = this.state;\n val = val || (searchValue || '').trim();\n if (!val) return;\n const { memberSearched, selectMemberSuccess } = this.props;\n this.searchLoading = true;\n this.setState({searchVisible: true});\n this.ms.getSearchMember({\n currentPage: 1,\n pageSize: 10,\n key: val,\n isSingleMember: false\n }).then(ret => {\n this.searchLoading = false;\n const {ColumnInfo: columnInfo, Data} = ret || {};\n const data = JSON.parse(Data) || [];\n const info = data[0];\n this.setState({searchVisible: false, columnInfo});\n\n if (info && info.MemberType.IsStorage && this.isStorageCardInputType && this.iseyboardKEnter){\n this.handleSearch('');\n this.keypressStime = null;\n Message.warn('储值会员不可键盘录入');\n return;\n }\n if (info) {\n if (data.length > 1) {\n this.SetKeyBoardDisplay(1)\n let _this = this;\n stores.drawerStore.init({\n title: '会员管理',\n key: 'member',\n onHide:()=>{\n this.SetKeyBoardDisplay(0);\n const { selectMemberInfo = {} } = _this.ms;\n const memberChangeData = Object.keys(selectMemberInfo).length ? selectMemberInfo : undefined;\n const deepCloneMember = memberChangeData && JSON.parse(JSON.stringify(memberChangeData));\n if (deepCloneMember) {\n this.setState({\n searchValue: null\n })\n }\n },\n listArr: data,\n });\n } else {\n memberSearched && memberSearched(info, 'searched');\n userInfoFormat(info);\n if (errMessageTip(info)) return;\n this.ms.seletMember(info, true);\n setTimeout(() => this.setState({ searchValue: '' }), 0);\n this.handleBlur();\n selectMemberSuccess && selectMemberSuccess();\n }\n } else {\n if (type === 'ok'){\n Message.warn('会员不存在');\n if (this.isMobileEnvironment) {\n setTimeout(() => this.setState({ searchValue: '' }), 0);\n }\n }\n }\n }).catch(err => {\n this.setState({searchVisible: false});\n this.searchLoading = false;\n memberSearched && memberSearched(undefined, 'err');\n })\n }\n\n //获取当前到店会员数量\n getInStoreMemberCount = () => {\n if (!this.ms) return;\n this.ms.getInStoreMemberCount().then(res => {\n let count = res || 0;\n this.setState({ shopPerson: count });\n this.resetInShopMemberTimer(count);\n });\n }\n\n onKeyPressed = (e) => {\n const keyCode = e && e.keyCode\n if (keyCode === 13) {\n if (this.isMemberInputType) {\n let stime = this.keypressStime;\n let etime = Date.parse(new Date());\n if (etime - stime > 300) {\n this.handleSearch('')\n this.keypressStime = null;\n return Message.warn('未启用键盘录入功能');\n }\n this.keypressStime = null;\n }\n this.iseyboardKEnter = Date.parse(new Date()) - this.keypressStime > 300;\n if (this.isStorageCardInputType) {\n this.keypressStime = null;\n }\n if (this.searchLoading) return;\n this.searchMember(undefined, 'ok');\n }\n else if (this.isMemberInputType && !this.keypressStime && !(keyCode == 8)) {\n this.keypressStime = Date.parse(new Date())\n } else if (this.isStorageCardInputType && !this.keypressStime && !(keyCode == 8) && !this.isMemberInputType) {\n this.keypressStime = Date.parse(new Date())\n }\n }\n\n computedCoupon = (member = {}) => {\n const couponKey = 'membercouponcount';\n const {DynamicPropertyKeys = [], DynamicPropertyValues = []} = member;\n const couponIndex = DynamicPropertyKeys.findIndex(v => v === couponKey);\n return ~couponIndex ? DynamicPropertyValues[couponIndex] : '0';\n }\n\n loadFaceRecognition = (type) => {\n // type = 1:到店会员 type = 2:POS机人脸识别\n this.setState({faceLoading: type === 2, inShopLoading: type === 1});\n this.ms.loadInStoreMember(String(type))\n .then(res => {\n this.setState({faceLoading: false, inShopLoading: false});\n const {Data} = res || {};\n if (!JSON.parse(Data).length) {\n const tipMessage = ['当前没有到店会员', '未识别到人脸信息'];\n type === 1 && this.setState({shopPerson: 0});\n return Message.info(tipMessage[type - 1]);\n }\n type === 1 && this.getInStoreMemberCount();\n this.openShowModal(type, res);\n })\n .catch(err => {\n this.setState({faceLoading: false, inShopLoading: false});\n console.log(err)\n });\n }\n\n //移动端:扫描商品\n changeScanProduct = () => {\n if (this.scanObj) this.scanObj.startScan()\n }\n onScanResult = (res) => {\n this.setState({\n searchValue: res\n }, () => {\n this.onKeyPressed({ keyCode: 13 })\n })\n }\n render() {\n const {\n memberPhoto, titleModal, memberShow, inShopLoading = false, faceLoading = false,\n status, shopPerson, searchValue, viewMemberInfo, newAvatar, searchVisible, columnInfo\n } = this.state;\n const { mode = 'formal', authProcess } = this.props;\n const { selectMemberInfo, precisionInfo = {} } = this.ms; //selectMemberInfo 用作触发mobox render\n const { data: { Member: dtMember = {} } = {}, items = [] } = this.context.viewModel || {};\n const viewVoucher = items.find(v => v.type === 'Voucher') || {};\n const isTakeTheir = viewVoucher.getIsTakeTheir && viewVoucher.getIsTakeTheir();\n const isSelectedMember = !!dtMember.ID;\n return (\n <div className='MemberContainer'>\n <div className='left'>\n {!isSelectedMember &&\n <div className='search'>\n <div className='b1'>\n <FormControl\n type='text'\n className=\"input\"\n id='memberPoint'\n placeholder='扫描/输入会员号'\n value={searchValue}\n ref={el => this.inputSearch = el && el.input}\n onChange={this.handleSearch}\n onFocus={this.handleFocus}\n onBlur={this.handleBlur}\n onKeyDown={this.onKeyPressed}\n />\n <Spin\n className='search-spin'\n scale={0.8}\n type='circle-side'\n visible={searchVisible}\n />\n </div>\n <div className='b2'>\n {\n this.hasElectron === true && this.iCCardServer === 1 &&\n <Ticon className='icon' onClick={this.handleReadICard} type=\"ICka\" />\n }\n {\n this.isHorizontalPad ?\n <Ticon type='saomiao1' className='icon' onClick={this.changeScanProduct} />\n :\n (\n false && this.openFaceRecognition === 1 && !faceLoading &&\n <div className='openFaceRecognition-box'>\n <Ticon className='icon' onClick={() => this.loadFaceRecognition(2)} type=\"renlianshibie\" />\n <Spin\n className='face-spin'\n scale={0.8}\n type='circle'\n visible={faceLoading}\n />\n </div>\n )\n }\n {\n /* 扫描组件 */\n this.isHorizontalPad &&\n <Scan ref={scan => this.scanObj = scan} onChange={this.onScanResult} />\n }\n </div>\n </div>\n }\n {isSelectedMember &&\n <div className={`info ${this.openFaceRecognition ? '' : 'member-btn-hidden-flex'}`}>\n <div className='first'>\n <img onClick={this.openPhotoModal} src={newAvatar || dtMember.ImageFile || emptyMemberImage} />\n {memberPhoto && <MemberPhoto dtMember={dtMember} showModal={memberPhoto} titleModal={titleModal} handleModal={this.handlePhotoModal} />}\n </div>\n <div className='second member-hotkey-info' onClick={() => this.openShowModal(0)}>\n <div className='one'>\n {dtMember.Name && <div className='a'>{dtMember.Name}</div>}\n <div className='b'>{dtMember.CardCode}</div>\n </div>\n <div className='two'>\n <div className='a'>{formatPrecision(dtMember.BalanceStorage, precisionInfo.BalanceStorage)}</div>\n <div className='b'>余额</div>\n </div>\n <div className='two'>\n <div className='a'>{this.computedCoupon(dtMember)}</div>\n <div className='b'>优惠券</div>\n </div>\n <div className='two'>\n <div className='a'>{formatPrecision(dtMember.BalanceIntegral, precisionInfo.BalanceIntegral) || 0}</div>\n <div className='b'>积分</div>\n </div>\n </div>\n <div className='close'>\n {!isTakeTheir && <Ticon type=\"guanbi-yuan\" onClick={this.openCloseModal} />}\n </div>\n </div>\n }\n </div>\n {!!this.openFaceRecognition && <div className='right'>\n <Button colors=\"primary\" onClick={() => this.loadFaceRecognition(1)} className='btn' disabled={inShopLoading}>\n {!inShopLoading && '到店会员'}\n <Spin\n className='inshop-member-spin'\n scale={0.8}\n type='circle'\n visible={inShopLoading}\n />\n {!!shopPerson && <div className='badge'>{shopPerson}</div>}\n </Button>\n </div>}\n <MemberModal\n mode={mode}\n authProcess={authProcess}\n viewMemberInfo={viewMemberInfo}\n columnInfo={columnInfo}\n status={status}\n showModal={memberShow}\n titleModal={titleModal}\n handleModal={this.handleShowModal}\n />\n <ModalWraper show={this.ms.birthdayShow} centered={true} className='memberBirthday'>\n <div className='picture'>\n <img width='350' height='308' src={memberBirthday} />\n <Ticon type=\"guanbi-yuan\" onClick={this.handleCloseBirthdayModal} />\n </div>\n <div className='remark'>今天是会员<span>{dtMember.Name || dtMember.CardCode}</span>的生日</div>\n </ModalWraper>\n </div>\n );\n }\n}\nexport default MemberTag"]}
|
@@ -0,0 +1,466 @@
|
|
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
|
+
}
|