tplus-member 1.26.3 → 1.27.1
Sign up to get free protection for your applications and to get access to all the features.
- package/locales/zh/tplus-portsetting.json +1 -1
- package/locales/zh-CN/tplus-portsetting.json +1 -1
- package/package.json +27 -27
- package/dist/api.js +0 -533
- package/dist/api.js.map +0 -1
- package/dist/controllers/FeedbackController.js +0 -53
- package/dist/controllers/FeedbackController.js.map +0 -1
- package/dist/controllers/MemberOrderController.js +0 -359
- package/dist/controllers/MemberOrderController.js.map +0 -1
- package/dist/controllers/OpenCardController.js +0 -289
- package/dist/controllers/OpenCardController.js.map +0 -1
- package/dist/controllers/defaultConfig.js +0 -19
- package/dist/controllers/defaultConfig.js.map +0 -1
- package/dist/dataProvider/member.js +0 -144
- package/dist/dataProvider/member.js.map +0 -1
- package/dist/dataProvider/openCard.js +0 -145
- package/dist/dataProvider/openCard.js.map +0 -1
- package/dist/domain/member/AuthProcess.js +0 -42
- package/dist/domain/member/AuthProcess.js.map +0 -1
- package/dist/domain/member/CardCodeChangedProcessor.js +0 -35
- package/dist/domain/member/CardCodeChangedProcessor.js.map +0 -1
- package/dist/domain/member/CheckCardCodeAndCodeProcessor.js +0 -48
- package/dist/domain/member/CheckCardCodeAndCodeProcessor.js.map +0 -1
- package/dist/domain/member/CheckMobilephoneFormatProcessor.js +0 -38
- package/dist/domain/member/CheckMobilephoneFormatProcessor.js.map +0 -1
- package/dist/domain/member/CheckPresentAmountProcessor.js +0 -99
- package/dist/domain/member/CheckPresentAmountProcessor.js.map +0 -1
- package/dist/domain/member/EffectiveDateChangedProcessor.js +0 -50
- package/dist/domain/member/EffectiveDateChangedProcessor.js.map +0 -1
- package/dist/domain/member/GetThisPresentAmountProcessor.js +0 -116
- package/dist/domain/member/GetThisPresentAmountProcessor.js.map +0 -1
- package/dist/domain/member/InitDataDeductionProcessor.js +0 -68
- package/dist/domain/member/InitDataDeductionProcessor.js.map +0 -1
- package/dist/domain/member/InitDataProcessor.js +0 -140
- package/dist/domain/member/InitDataProcessor.js.map +0 -1
- package/dist/domain/member/InitDataProjectProcessor.js +0 -102
- package/dist/domain/member/InitDataProjectProcessor.js.map +0 -1
- package/dist/domain/member/IsMemberEffectiveProcessor.js +0 -45
- package/dist/domain/member/IsMemberEffectiveProcessor.js.map +0 -1
- package/dist/domain/member/IsMemberEnableProcessor.js +0 -38
- package/dist/domain/member/IsMemberEnableProcessor.js.map +0 -1
- package/dist/domain/member/IsMemberExpirationProcessor.js +0 -46
- package/dist/domain/member/IsMemberExpirationProcessor.js.map +0 -1
- package/dist/domain/member/IsMemberPasswordSameProcessor.js +0 -41
- package/dist/domain/member/IsMemberPasswordSameProcessor.js.map +0 -1
- package/dist/domain/member/IsMemberStorageForStoreProcessor.js +0 -40
- package/dist/domain/member/IsMemberStorageForStoreProcessor.js.map +0 -1
- package/dist/domain/member/MemberTypeChangedProcessor.js +0 -120
- package/dist/domain/member/MemberTypeChangedProcessor.js.map +0 -1
- package/dist/domain/member/MobilephoneChangedProcessor.js +0 -39
- package/dist/domain/member/MobilephoneChangedProcessor.js.map +0 -1
- package/dist/domain/member/PersonProcesser.js +0 -35
- package/dist/domain/member/PersonProcesser.js.map +0 -1
- package/dist/domain/member/PriuserdefChangedProcessor.js +0 -50
- package/dist/domain/member/PriuserdefChangedProcessor.js.map +0 -1
- package/dist/domain/operationLog/AddLogProcessor.js +0 -50
- package/dist/domain/operationLog/AddLogProcessor.js.map +0 -1
- package/dist/domain/operationLog/OperationConfig.js +0 -34
- package/dist/domain/operationLog/OperationConfig.js.map +0 -1
- package/dist/domain/operationLog/OperationLog.js +0 -146
- package/dist/domain/operationLog/OperationLog.js.map +0 -1
- package/dist/index.js +0 -124
- package/dist/index.js.map +0 -1
- package/dist/member/MemberPhoto.js +0 -268
- package/dist/member/MemberPhoto.js.map +0 -1
- package/dist/member/MemberShow.js +0 -167
- package/dist/member/MemberShow.js.map +0 -1
- package/dist/member/ShopMember.js +0 -1096
- package/dist/member/ShopMember.js.map +0 -1
- package/dist/member/ShopMember.less +0 -605
- package/dist/member/api.js +0 -726
- package/dist/member/api.js.map +0 -1
- package/dist/member/color.less +0 -32
- package/dist/member/index.js +0 -843
- package/dist/member/index.js.map +0 -1
- package/dist/member/index.less +0 -466
- package/dist/member/memberTab.js +0 -675
- package/dist/member/memberTab.js.map +0 -1
- package/dist/memberMenu/changeMemberCard/index.js +0 -268
- package/dist/memberMenu/changeMemberCard/index.js.map +0 -1
- package/dist/memberMenu/changeMemberCard/style.less +0 -43
- package/dist/memberMenu/index.js +0 -826
- package/dist/memberMenu/index.js.map +0 -1
- package/dist/memberMenu/modifyPass/index.js +0 -207
- package/dist/memberMenu/modifyPass/index.js.map +0 -1
- package/dist/memberMenu/modifyPass/store.js +0 -357
- package/dist/memberMenu/modifyPass/store.js.map +0 -1
- package/dist/memberMenu/modifyPass/style.less +0 -91
- package/dist/memberMenu/style.less +0 -82
- package/dist/socket.js +0 -164
- package/dist/socket.js.map +0 -1
- package/dist/utils.js +0 -246
- package/dist/utils.js.map +0 -1
- package/dist/viewController/MemberOrderViewController.js +0 -144
- package/dist/viewController/MemberOrderViewController.js.map +0 -1
- package/dist/viewDoMain/CheckMemberProcessorBlock.js +0 -53
- package/dist/viewDoMain/CheckMemberProcessorBlock.js.map +0 -1
- package/dist/viewDoMain/CheckMemberStorageProcessorBlock.js +0 -85
- package/dist/viewDoMain/CheckMemberStorageProcessorBlock.js.map +0 -1
- package/dist/viewDoMain/CheckSelectMemberProcessorBlock.js +0 -69
- package/dist/viewDoMain/CheckSelectMemberProcessorBlock.js.map +0 -1
- package/dist/viewDoMain/CheckUpdatePasswordProcessorBlock.js +0 -44
- package/dist/viewDoMain/CheckUpdatePasswordProcessorBlock.js.map +0 -1
- package/dist/viewDoMain/MemberDataChangedProcessorBlock.js +0 -66
- package/dist/viewDoMain/MemberDataChangedProcessorBlock.js.map +0 -1
- package/dist/viewDoMain/MemberDataPreSaveProcessorBlock.js +0 -79
- package/dist/viewDoMain/MemberDataPreSaveProcessorBlock.js.map +0 -1
- package/dist/viewModels/MemberDeduction.js +0 -862
- package/dist/viewModels/MemberDeduction.js.map +0 -1
- package/dist/viewModels/MemberOrder.js +0 -248
- package/dist/viewModels/MemberOrder.js.map +0 -1
- package/dist/viewModels/MemberProject.js +0 -953
- package/dist/viewModels/MemberProject.js.map +0 -1
- package/dist/viewModels/MemberStore.js +0 -310
- package/dist/viewModels/MemberStore.js.map +0 -1
- package/dist/views/commonPerson/commonPerson.less +0 -54
- package/dist/views/commonPerson/commonPersonModal.js +0 -459
- package/dist/views/commonPerson/commonPersonModal.js.map +0 -1
- package/dist/views/memberDeduction/MemberDeductionView.js +0 -837
- package/dist/views/memberDeduction/MemberDeductionView.js.map +0 -1
- package/dist/views/memberDeduction/deductionSuccess.js +0 -62
- package/dist/views/memberDeduction/deductionSuccess.js.map +0 -1
- package/dist/views/memberDeduction/memberDeduction.less +0 -238
- package/dist/views/memberManage/MemberOrderView.js +0 -427
- package/dist/views/memberManage/MemberOrderView.js.map +0 -1
- package/dist/views/memberManage/memberOrder.less +0 -72
- package/dist/views/memberProject/GroupProjectModal.js +0 -676
- package/dist/views/memberProject/GroupProjectModal.js.map +0 -1
- package/dist/views/memberProject/MemberProjectView.js +0 -578
- package/dist/views/memberProject/MemberProjectView.js.map +0 -1
- package/dist/views/memberProject/SelectProjectModal.js +0 -330
- package/dist/views/memberProject/SelectProjectModal.js.map +0 -1
- package/dist/views/memberProject/memberProject.less +0 -334
- package/dist/views/memberRecharge/MemberStoreView.js +0 -546
- package/dist/views/memberRecharge/MemberStoreView.js.map +0 -1
- package/dist/views/memberRecharge/memberStore.less +0 -148
package/dist/member/index.js.map
DELETED
@@ -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: 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\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"]}
|
package/dist/member/index.less
DELETED
@@ -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
|
-
}
|