tplus-member 3.31.3 → 3.31.4

Sign up to get free protection for your applications and to get access to all the features.
@@ -1 +1 @@
1
- {"version":3,"sources":["tplus-member/member/ShopMember.js"],"names":["ShopMember","props","currentPage","cacheUserRetail","hotKeyListener","nodeName","index","progressListen","className","indexOf","isHotKeyAction","activeElement","document","blur","observerCard","setTimeout","slideSelected","querySelector","prevSlideSelected","swiperSelectObserver","unobserve","observe","progress","selected","state","memberList","viewMemberInfo","loadmoreLoading","nomoreData","searchValue","loadUserList","windowOnresize","memberTab","window","removeEventListener","memberTabHeight","clientHeight","tabMenuHeight","setState","isNotSetState","Idmember","willUnmount","currentMemberId","loadUserInfo","key","item","type","syncUpdateMember","selectChange","memberChange","tabIndex","Loading","hide","recommend","userSearch","memberTabChange","member","loadingUser","loadingBtn","ms","getGetUmemberDTO","then","ret","BalanceIntegral","BalanceStorage","UmemberLabel","MemberCouponTitle","Mobilephone","DynamicPropertyKeys","DynamicPropertyValues","mergeKeys","setMemberKey","currentMemberOfList","find","value","ID","forEach","v","arr","map","push","initEmpty","errorMsg","stores","selectMemberStore","setCurMemberInfo","resetLastRetail","findMemberLastRetailDetailList","context","viewModel","data","Member","seletMember","getCardInfoByMemberId","catch","loadUserRetail","titleModal","includes","show","target","node","delay","getMemberRetailDetail","Like","Record","Recency","RecommendList","memberInfo","record","like","recency","pageSize","isSingleMember","searchId","searchStatus","status","listArr","inputValue","keyboardOnClose","slice","loadUserListSuccess","length","getSearchMember","dataLoaded","ColumnInfo","Data","columnInfo","precisionInfo","usersLoadSuccess","JSON","parse","filter","Precision","FieldName","setPrecisionInfo","handleSearchClick","storeKey","undefined","handleSearchChange","val","memberCardList","resetSlideTop","getMemberStateStamp","isExpiration","isUserLogout","isUserLoss","isUserNotUsing","handleOk","noList","MemberState","Id","Name","onCancel","Message","warn","items","viewVoucher","isTakeTheir","getIsTakeTheir","memberStore","el","name","uiState","tip","info","_this","ModalWraper","confirm","title","content","onOk","handleChangeMember","selectMemberSuccess","getMemberBirthday","result","changeMemberCare","keyboardOnOk","searchRef","onKeyPressed","e","keyCode","enterKey","currentUserRetail","MemberMenuChange","dto","onClear","input","focus","changeIsAllAuthority","isAllAuthority","pageNo","lastRetailPageNo","lastRetailList","params","memberId","lastRetailLoading","findMemberLastRetailDetail","recencyBeanList","totalCount","lastRetailTotal","mode","platform","isNewRetailBCPos","isCC","defaultActiveKey","cardInfo","addEventListener","Code","$","on","off","isUserAndroidKey","android_setKeyBoard","user","localStorage","getItem","loginInfo","IsEnableUMember","cardList","showModal","authProcess","showSearch","showSelectBtn","voucherStateType","enumController","getEnumOj","memberEnumState","hotKey","hotKeyNotFilter","ref","focusInputName","inputTarget","Keyboard","open","getNewValue","close","hotKeyBindClass","list","display","getCardList","marginRight","Component","defaultProps","contextTypes","PropTypes","object","array"],"mappings":"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","file":"ShopMember.js","sourcesContent":["import React, { Component } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { Button } from 'antd';\r\nimport { ModalWraper, Input, Loading, Message, Ticon, Keyboard, Spin, hotKey } from 'tplus-components-touch';\r\nimport { stores } from 'mutants-microfx';\r\nimport { enumController, platform } from 'mutants-util';\r\nimport memberStore from './api';\r\nimport MemberTab from './memberTab/index.js';\r\nimport './ShopMember.less';\r\nimport { formatPrecision, userInfoFormat, errMessageTip } from '../utils';\r\nimport MemberMenu from './memberMenu/index.js'\r\nimport MemberCardList from './MemberCardList'\r\n\r\n// let swiperSelectObserver;\r\n\r\nexport default class ShopMember extends Component {\r\n static defaultProps = {\r\n onCancel: () => {},\r\n onOk: () => {},\r\n };\r\n\r\n static contextTypes = {\r\n viewModel: PropTypes.object,\r\n columnInfo: PropTypes.array,\r\n };\r\n constructor(props) {\r\n super(props);\r\n const { mode } = this.props;\r\n let { isNewRetailBCPos } = platform || {};\r\n this.state = {\r\n searchValue: '',\r\n memberList: [],\r\n memberInfo: {\r\n record: [],\r\n like: [],\r\n recency: [],\r\n },\r\n searchStatus: !!this.props.listArr ? true : false,\r\n isCC: !!isNewRetailBCPos,\r\n tabIndex: this.props.defaultActiveKey,\r\n isAllAuthority: false,\r\n tabMenuHeight: mode !== 'practice' ? 64 : 0, // 64为table上部操作菜单高度\r\n cardInfo: [], // 会员的卡信息\r\n\t lastRetailList: [], // 最近购买列表\r\n lastRetailTotal: 0, // 最近购买的总数量\r\n lastRetailPageNo: 0, // 最近购买的当前页,默认0开始\r\n lastRetailLoading: false, // 是否正在加载购买记录\r\n };\r\n this.ms = memberStore;\r\n }\r\n\r\n currentPage = 1;\r\n cacheUserRetail = {};\r\n\r\n componentDidMount() {\r\n // swiperSelectObserver = new IntersectionObserver(entries => {\r\n // const { boundingClientRect: { height, bottom, top } = {}, intersectionRatio } = entries[0];\r\n // if (intersectionRatio !== 1 && this.isHotKeyAction) {\r\n // this.isHotKeyAction = false;\r\n\r\n // bottom > height && memberSwiper.slideNext();\r\n // // 解决向上滑动时top < 10 时距离问题\r\n // if (top < -10) {\r\n // top < height && memberSwiper.slidePrev() && memberSwiper.slidePrev()\r\n // } else {\r\n // top < height && memberSwiper.slidePrev()\r\n // }\r\n // }\r\n // });\r\n\r\n window.addEventListener('resize', this.windowOnresize);\r\n const { viewMemberInfo, status, columnInfo, storeKey } = this.props;\r\n if (viewMemberInfo) {\r\n if (status) {\r\n return this.loadUserListSuccess(viewMemberInfo);\r\n } else if (status === 0) { // status 0 为 查看会员详情\r\n columnInfo && this.precisionInfo(columnInfo); // 查看录入的会员查看详情时父级传递了 columnInfo props\r\n return this.usersLoadSuccess([viewMemberInfo], 'search');\r\n }\r\n const { Code } = viewMemberInfo;\r\n return this.loadUserList('init', undefined, undefined, true, Code);\r\n };\r\n this.loadUserList('init');\r\n $.on(this.hotKeyListener);\r\n\r\n this.ms.searchValue = '';//初始化完成筛选列表清空数据(会员新增成功——封涛)\r\n }\r\n\r\n componentDidUpdate() {\r\n const {memberList = [], memberTabHeight, tabMenuHeight} = this.state;\r\n const clientHeight = this.memberTab.clientHeight - tabMenuHeight;\r\n if (clientHeight !== memberTabHeight) {\r\n this.setState({memberTabHeight: clientHeight});\r\n }\r\n }\r\n\r\n componentWillUnmount() {\r\n \r\n // memberSwiper && memberSwiper.destroy(false);\r\n // memberSwiper = undefined;\r\n this.willUnmount = true;\r\n\r\n window.removeEventListener('resize', this.windowOnresize);\r\n // swiperSelectObserver.disconnect();\r\n $.off(this.hotKeyListener);\r\n }\r\n\r\n hotKeyListener = (nodeName, index) => {\r\n this.progressListen()\r\n if (nodeName && ~nodeName.className.indexOf('slide-selected')) {\r\n this.isHotKeyAction = true;\r\n const activeElement = document.activeElement;\r\n activeElement && activeElement.blur();\r\n }\r\n }\r\n\r\n observerCard = () => {\r\n setTimeout(() => {\r\n const slideSelected = document.querySelector('.slide-selected');\r\n this.prevSlideSelected && swiperSelectObserver.unobserve(this.prevSlideSelected);\r\n this.prevSlideSelected = slideSelected;\r\n slideSelected && swiperSelectObserver.observe(slideSelected);\r\n })\r\n }\r\n\r\n progressListen = (progress) => {\r\n const {selected} = this.state;\r\n\r\n const {memberList = []} = this.state;\r\n const {viewMemberInfo} = this.props;\r\n if (viewMemberInfo) return;\r\n const {loadmoreLoading, nomoreData, searchValue = ''} = this.state;\r\n // let newselect = (selected + 5) % 10\r\n if ((selected + 1) % 10 === 0 && !loadmoreLoading && !nomoreData) {\r\n this.currentPage += 1;\r\n this.loadUserList('loadmore', this.currentPage);\r\n }\r\n if (progress >= 1 && !loadmoreLoading && !nomoreData) {\r\n this.currentPage += 1;\r\n this.loadUserList('loadmore', this.currentPage);\r\n }\r\n }\r\n\r\n windowOnresize = () => {\r\n if (!this.memberTab) {\r\n return window.removeEventListener('resize', this.windowOnresize);\r\n };\r\n const {memberTabHeight} = this.state;\r\n const clientHeight = this.memberTab.clientHeight - this.state.tabMenuHeight;\r\n if (memberTabHeight !== clientHeight) {\r\n this.setState({memberTabHeight: clientHeight});\r\n }\r\n }\r\n\r\n isNotSetState = (Idmember) => {\r\n if (this.willUnmount || Idmember !== this.currentMemberId) return true;\r\n }\r\n\r\n loadUserInfo = (key, Idmember, item, type, syncUpdateMember) => {\r\n // this.observerCard();\r\n\r\n const { selectChange, viewMemberInfo, memberChange } = this.props;\r\n const { selected, tabIndex = '1' } = this.state;\r\n if (key === selected && type !== true && type!=='opencard') return;\r\n Loading.hide();\r\n if (this.currentMemberId && !(this.cacheUserRetail[this.currentMemberId] || {}).recommend) {\r\n delete this.cacheUserRetail[this.currentMemberId];\r\n }\r\n this.currentMemberId = Idmember;\r\n\r\n if (this.userSearch || viewMemberInfo) {\r\n this.userSearch = false;\r\n this.setState({selected: key});\r\n }\r\n\r\n const {memberList = []} = this.state;\r\n\r\n this.memberTabChange(tabIndex);\r\n\r\n this.setState({ selected: key, member: memberList[key] || {}, loadingUser: true, loadingBtn: true });\r\n this.ms.getGetUmemberDTO(Idmember)\r\n .then(ret => {\r\n if (this.isNotSetState(Idmember)) return;\r\n const {BalanceIntegral, BalanceStorage, UmemberLabel, MemberCouponTitle, Mobilephone,\r\n DynamicPropertyKeys = [], DynamicPropertyValues = []} = ret || {};\r\n const mergeKeys = {BalanceIntegral, BalanceStorage, UmemberLabel, MemberCouponTitle, Mobilephone, DynamicPropertyKeys, DynamicPropertyValues};\r\n //const memberInfo = {...(memberList[key] || {}), ...mergeKeys};\r\n if (viewMemberInfo) {\r\n // 用接口中的 BalanceStorage MemberCouponTitle覆盖列表中的数据, 监听对象 使用action 设置值\r\n this.ms.setMemberKey(mergeKeys);\r\n } else {\r\n //设置会员列表中该会员的BalanceStorage值\r\n const currentMemberOfList = memberList.find(value => value.ID === Idmember) || {};\r\n Object.keys(mergeKeys).forEach(v => currentMemberOfList[v] = mergeKeys[v]);\r\n }\r\n userInfoFormat(ret)\r\n let arr = [];\r\n memberList.map(item => {\r\n if (item.ID === ret.ID) {\r\n arr.push(ret)\r\n } else {\r\n arr.push(item)\r\n }\r\n })\r\n this.setState({\r\n member: ret,\r\n initEmpty: true,\r\n memberList: arr,\r\n errorMsg: '',\r\n loadingUser: false,\r\n loadingBtn: false\r\n })\r\n stores.selectMemberStore.setCurMemberInfo(ret);\r\n selectChange && selectChange(item);\r\n // 获取购买记录\r\n this.resetLastRetail(0)\r\n this.findMemberLastRetailDetailList(3)\r\n // 更新当前选定的会员信息\r\n if (syncUpdateMember) {\r\n const { data: { Member: { ID } = {} } = {} } = this.context.viewModel || {};\r\n if (ID == ret.ID) {\r\n stores.selectMemberStore.seletMember(ret);\r\n memberChange && memberChange(ret)\r\n }\r\n }\r\n // 获取会员的卡信息\r\n this.getCardInfoByMemberId(Idmember)\r\n }).catch(err => {\r\n selectChange && selectChange({});\r\n if (this.isNotSetState(Idmember)) return;\r\n this.setState({\r\n member: memberList[key] || {},\r\n initEmpty: true,\r\n errorMsg: '会员信息获取失败,请重试',\r\n memberList,\r\n loadingBtn:false\r\n });\r\n });\r\n }\r\n\r\n loadUserRetail = (Idmember) => {\r\n const {tabIndex = '1'} = this.state;\r\n const {titleModal} = this.props;\r\n\r\n if (tabIndex !== '1' && ['会员详情', '到店会员', '人脸识别'].includes(titleModal)) {\r\n Loading.show({\r\n target: '.member-content-tab',\r\n node: <Spin scale={1.2} type='shape' visible/>,\r\n delay: false\r\n });\r\n }\r\n const {currentMemberId} = this.state;\r\n this.cacheUserRetail[Idmember] = {};\r\n this.ms.getMemberRetailDetail(Idmember)\r\n .then(ret => {\r\n Loading.hide();\r\n if (this.isNotSetState(Idmember)) return;\r\n const {Like, Record, Recency, RecommendList = []} = ret || {};\r\n const recommend = RecommendList;\r\n const memberInfo = {record: Record, like: Like, recency: Recency};\r\n\r\n this.setState({recommend, memberInfo});\r\n this.cacheUserRetail[Idmember] = {recommend, memberInfo};\r\n\r\n })\r\n .catch(err => {\r\n delete this.cacheUserRetail[Idmember];\r\n if (this.isNotSetState(Idmember)) return;\r\n this.setState({\r\n recommend: [],\r\n memberInfo: {},\r\n });\r\n Loading.hide();\r\n });\r\n }\r\n\r\n loadUserList = (type, currentPage = 1, pageSize = 10, isSingleMember = false, searchId) => {\r\n const { searchValue, searchStatus } = this.state;\r\n const { status, listArr } = this.props;\r\n if (!this.ms) return;\r\n if (type === 'init') {\r\n let inputValue = this.ms && this.ms.searchValue;\r\n if (inputValue) {\r\n this.setState({ searchValue: inputValue })\r\n setTimeout(() => { this.keyboardOnClose() }, 310)\r\n }\r\n }\r\n if (type === 'loadmore') {\r\n this.setState({ loadmoreLoading: true });\r\n } else {\r\n Loading.show({ target: '.memberShopContainer' });\r\n }\r\n if (type === 'opencard') {\r\n currentPage = this.currentPage;\r\n }\r\n if (searchStatus) {\r\n let arr = listArr.slice(0);\r\n this.setState({\r\n searchStatus: false,\r\n memberList: arr\r\n }, () => {\r\n const { memberList } = this.state;\r\n this.loadUserListSuccess(memberList, 's', memberList.length);\r\n Loading.hide();\r\n })\r\n return;\r\n }\r\n this.ms.getSearchMember({\r\n currentPage,\r\n pageSize,\r\n key: this.ms.searchValue || searchValue || searchId,\r\n isSingleMember: this.ms.searchValue ? true : isSingleMember\r\n })\r\n .then(ret => {\r\n this.loadUserListSuccess(ret, type, pageSize);\r\n Loading.hide();\r\n })\r\n .catch(err => Loading.hide());\r\n }\r\n\r\n loadUserListSuccess = (ret, type, pageSize) => {\r\n this.dataLoaded = true;\r\n const { ColumnInfo, Data } = ret || {};\r\n this.setState({ columnInfo: ColumnInfo});\r\n this.precisionInfo(ColumnInfo);\r\n this.usersLoadSuccess(type === 's' ? ret : JSON.parse(Data), type, pageSize);\r\n }\r\n\r\n precisionInfo = (columnInfo) => {\r\n const precisionInfo = {};\r\n if (columnInfo && columnInfo.length > 0) {\r\n columnInfo = columnInfo.filter(v => !!v.Precision) || [];\r\n columnInfo.length > 0 &&\r\n columnInfo.forEach(item => {\r\n const { Precision, FieldName } = item;\r\n if (Precision) precisionInfo[FieldName] = Precision;\r\n })\r\n }\r\n this.ms.setPrecisionInfo(precisionInfo);\r\n }\r\n\r\n // 获取会员的卡信息\r\n async getCardInfoByMemberId (memberId) {\r\n const cardInfo = await this.ms.getCardInfoByMemberId(memberId) || {}\r\n const { data = [] } = cardInfo\r\n this.setState({\r\n cardInfo: data\r\n })\r\n }\r\n\r\n handleSearchClick = () => {\r\n const { searchValue } = this.state;\r\n const { storeKey } = this.props\r\n this.userSearch = true;\r\n this.currentPage = 1;\r\n this.setState({ nomoreData: false, selected: undefined });\r\n this.loadUserList('search', this.currentPage);\r\n }\r\n\r\n handleSearchChange = (val) => {\r\n this.setState({searchValue: val});\r\n }\r\n\r\n\r\n usersLoadSuccess = (data = [], type, pageSize = 10) => {\r\n const {status} = this.props;\r\n const { selected } = this.state;\r\n if (this.willUnmount) return;\r\n if (data.length) {\r\n data.forEach(v => userInfoFormat(v));\r\n\r\n if (type === 'loadmore') {\r\n const {memberList = []} = this.state;\r\n memberList.push(...data);\r\n return this.setState({nomoreData: data.length < pageSize, loadmoreLoading: false, memberList});\r\n }\r\n this.setState({memberList: data}, () => {\r\n if (type === 'search') {\r\n this.memberCardList.resetSlideTop();\r\n }\r\n const [item = {}] = data;\r\n // const key=type==='opencard'?(selected-(this.currentPage-1)*pageSize):0;\r\n // const item =data[key];\r\n this.loadUserInfo(0, item.ID, item, type);\r\n });\r\n } else if (type === 'loadmore') {\r\n this.setState({nomoreData: true, loadmoreLoading: false});\r\n } else {\r\n Loading.hide();\r\n this.setState({\r\n memberList: [],\r\n recommend: [],\r\n member: {},\r\n memberInfo: {record: [], like: [], recency: []}\r\n }, () => {\r\n if (type === 'search') {\r\n this.memberCardList.resetSlideTop();\r\n }\r\n });\r\n }\r\n }\r\n\r\n //获取会员状态集合,在页面上以图片戳的形式展示。\r\n getMemberStateStamp = (item) => {\r\n let arr = [];\r\n const { isExpiration, isUserLogout, isUserLoss, isUserNotUsing } = item;\r\n //已挂失\r\n if (isUserLoss) arr.push(<Ticon type='yiguashi' />)\r\n //已过期\r\n if (isExpiration) arr.push(<Ticon type='yiguoqi' />)\r\n //已注销\r\n if (isUserLogout) arr.push(<Ticon type='yizhuxiao' />)\r\n //未启用\r\n if (isUserNotUsing) arr.push(<Ticon type='weiqiyong' />)\r\n return arr;\r\n }\r\n\r\n handleOk = (noList) => {\r\n const { member, errorMsg } = this.state;\r\n const { isExpiration, MemberState: { Id, Name } = {} } = member || {};\r\n if (noList) {\r\n return this.props.onCancel();\r\n }\r\n if (errorMsg) return Message.warn(errorMsg);\r\n if (errMessageTip(member)) return;\r\n const { data: { Member: {ID} = {} } = {}, items = [] } = this.context.viewModel || {};\r\n\r\n const viewVoucher = items.find(v => v.type === 'Voucher') || {};\r\n const isTakeTheir = viewVoucher.getIsTakeTheir && viewVoucher.getIsTakeTheir();\r\n if (isTakeTheir) {\r\n Message.warn('自提时不可以切换选择会员');\r\n return;\r\n }\r\n\r\n //会员不可更改判断\r\n const memberStore = this.context.viewModel && this.context.viewModel.items.find(el => el.name == 'MemberStore');\r\n const uiState = memberStore.uiState;\r\n if (!!uiState.tip) {\r\n Message.info(uiState.tip)\r\n return;\r\n }\r\n if (ID) {\r\n const _this = this;\r\n return ModalWraper.confirm({\r\n className: 'tplus-confirm-modal',\r\n title: '切换会员',\r\n content: '您确定要替换当前会员吗?',\r\n onOk() {\r\n _this.handleChangeMember(member)\r\n }\r\n })\r\n }\r\n this.handleChangeMember(member)\r\n }\r\n\r\n handleChangeMember = (member) => {\r\n const { onOk, memberChange, selectMemberSuccess, getMemberBirthday } = this.props;\r\n stores.selectMemberStore.seletMember(member, true);\r\n memberChange && memberChange(member)\r\n onOk && onOk();\r\n getMemberBirthday && getMemberBirthday(member.ID, (result) => {\r\n stores.selectMemberStore.changeMemberCare(result);\r\n })\r\n //商品输入框焦点。\r\n setTimeout(() => { selectMemberSuccess && selectMemberSuccess(member) }, 300)\r\n }\r\n\r\n keyboardOnOk = () => {\r\n this.handleSearchClick();\r\n }\r\n\r\n keyboardOnClose = () => {\r\n this.searchRef && this.searchRef.blur();\r\n }\r\n\r\n onKeyPressed = (e) => {\r\n const { keyCode } = e;\r\n const enterKey = 13;\r\n if (keyCode === enterKey) {\r\n this.handleSearchClick();\r\n this.keyboardOnClose();\r\n }\r\n }\r\n\r\n memberTabChange = (tabIndex) => {\r\n this.setState({tabIndex});\r\n const currentUserRetail = this.cacheUserRetail[this.currentMemberId];\r\n if (!currentUserRetail) {\r\n return this.loadUserRetail(this.currentMemberId);\r\n }\r\n this.setState({...currentUserRetail});\r\n const activeElement = document.activeElement;\r\n activeElement && activeElement.blur()\r\n }\r\n\r\n MemberMenuChange = (dto) => {\r\n const { memberList } = this.state;\r\n userInfoFormat(dto)\r\n let arr = [];\r\n memberList.map(item => {\r\n if (item.ID == dto.ID) {\r\n arr.push(dto)\r\n } else {\r\n arr.push(item)\r\n }\r\n })\r\n this.setState({ member: dto, memberList: arr })\r\n }\r\n\r\n onClear = (key, input) => {\r\n this.setState({[key]: ''});\r\n input.focus();\r\n }\r\n\r\n changeIsAllAuthority = () => {\r\n this.setState({\r\n isAllAuthority: false\r\n })\r\n }\r\n\r\n // 重置购买记录相关数据\r\n resetLastRetail = async (pageNo) => {\r\n this.setState({\r\n lastRetailPageNo: pageNo\r\n })\r\n }\r\n // 获取会员的购买记录\r\n findMemberLastRetailDetailList = async (pageSize) => {\r\n let { lastRetailPageNo, member: { ID } = {}, lastRetailList = [] } = this.state\r\n const params = {\r\n memberId: ID,\r\n pageNo: lastRetailPageNo,\r\n pageSize\r\n }\r\n this.setState({\r\n lastRetailLoading: true\r\n })\r\n try {\r\n const ret = await this.ms.findMemberLastRetailDetail(params)\r\n const { data: { recencyBeanList = [], totalCount = 0 } = {} } = ret\r\n lastRetailList.push(...recencyBeanList)\r\n \r\n this.setState({\r\n lastRetailTotal: totalCount,\r\n lastRetailLoading: false,\r\n lastRetailPageNo: pageSize === 3 ? 0 : this.state.lastRetailPageNo + 1,\r\n lastRetailList: this.state.lastRetailPageNo === 0 ? recencyBeanList : lastRetailList\r\n })\r\n \r\n } catch (err) {\r\n this.setState({\r\n lastRetailLoading: false\r\n })\r\n }\r\n }\r\n\r\n render() {\r\n const isUserAndroidKey = !! window.android_setKeyBoard;\r\n\r\n const user = JSON.parse(localStorage.getItem('user')) || {};\r\n const { loginInfo: { IsEnableUMember } = {} } = user;\r\n const { searchValue, memberList = [], memberInfo = {}, member = {}, recommend = [], memberTabHeight = 0,\r\n loadmoreLoading, nomoreData, initEmpty, columnInfo = [], loadingUser, loadingBtn, selected, isAllAuthority,lastRetailTotal, lastRetailList, lastRetailLoading,isCC, cardInfo, cardList } = this.state;\r\n const { status, showModal, titleModal, type, defaultActiveKey, onCancel, viewMemberInfo, authProcess, mode, title, storeKey } = this.props;\r\n const { precisionInfo = {} } = this.ms;\r\n const showSearch = ['会员查询'].includes(type);\r\n const noList = !memberList.length;\r\n const showSelectBtn = type === '会员查询' || !!status;\r\n //是否正常开单\r\n let voucherStateType = (mode !== 'practice');\r\n const { memberEnumState } = enumController.getEnumOj();\r\n \r\n return (\r\n <div className='memberShopContainer'>\r\n {\r\n showSearch &&\r\n <div className='search-container'>\r\n <Input\r\n tplusInput\r\n placeholder='手机号/卡号/名称/身份证号'\r\n prefix='sousuo'\r\n className={`${hotKey.hotKeyNotFilter('search-input')} android_focus_keyboard`}\r\n value={searchValue}\r\n type='native'\r\n onChange={({ target: { value: searchValue } }) => this.setState({ searchValue })}\r\n inputRef={ref => this.searchRef = ref}\r\n onClear={() => this.onClear('searchValue', this.searchRef)}\r\n onFocus={({ target }) => {\r\n if(!isUserAndroidKey ){\r\n this.focusInputName = 'searchValue';\r\n this.inputTarget = target;\r\n Keyboard.open(v => {\r\n const key = this.focusInputName;\r\n const value = Keyboard.getNewValue(this.inputTarget, this.inputTarget.value, v);\r\n this.setState({ [key]: value });\r\n }, this.keyboardOnOk, this.keyboardOnClose)();\r\n }\r\n }}\r\n onBlur={Keyboard.close}\r\n onKeyDown={this.onKeyPressed}\r\n />\r\n <Button className='primary-btn' onClick={this.handleSearchClick}>搜索</Button>\r\n </div>\r\n }\r\n <div ref={ref => this.memberTab = ref} className={`${hotKey.hotKeyBindClass('4', 'member-shop-content')}`}>\r\n {\r\n this.dataLoaded && noList && <div className='empty-data-img'><div className='tip-text'>暂无数据 ~</div></div>\r\n }\r\n <MemberCardList \r\n ref={list => this.memberCardList = list}\r\n title={title}\r\n storeKey={storeKey}\r\n memberList={memberList}\r\n precisionInfo={precisionInfo}\r\n loadmoreLoading={loadmoreLoading}\r\n nomoreData={nomoreData}\r\n loadUserInfo={this.loadUserInfo}\r\n progressListen={this.progressListen}\r\n getMemberStateStamp={this.getMemberStateStamp}\r\n selected={selected}\r\n isCC={isCC}\r\n cardList={cardList}\r\n />\r\n \r\n <div className='member-content-tab content' style={{ display: noList ? 'none' : 'flex' }}>\r\n {\r\n (voucherStateType && !isAllAuthority) &&\r\n <div>\r\n <div className='menu'>\r\n <MemberMenu\r\n authProcess={authProcess} \r\n changeIsAllAuthority={this.changeIsAllAuthority}\r\n loadUserList={this.loadUserList} \r\n member={member} \r\n memberEnumState={memberEnumState} \r\n loadingBtn={loadingBtn} \r\n selected={selected} \r\n cardList={cardList}\r\n getCardList={this.getCardList}\r\n loadUserInfo={(key, Idmember, item, type, syncUpdateMember) => this.loadUserInfo(key, Idmember, item, type, syncUpdateMember)} \r\n handleChange={this.MemberMenuChange}></MemberMenu>\r\n </div>\r\n <div className='line'></div>\r\n </div>\r\n }\r\n <MemberTab\r\n defaultActiveKey={defaultActiveKey}\r\n member={member}\r\n memberInfo={memberInfo}\r\n showModal={showModal}\r\n title={title}\r\n titleModal={titleModal}\r\n storeKey={storeKey}\r\n recommend={recommend}\r\n memberTabHeight={memberTabHeight}\r\n initEmpty={initEmpty}\r\n memberList={memberList}\r\n columnInfo={columnInfo}\r\n precisionInfo={precisionInfo}\r\n onChange={this.memberTabChange}\r\n getMemberStateStamp={this.getMemberStateStamp}\r\n cardInfo={cardInfo}\r\n \t\t\t lastRetailTotal={lastRetailTotal}\r\n lastRetailList={lastRetailList}\r\n lastRetailLoading={lastRetailLoading}\r\n findMemberLastRetailDetailList={this.findMemberLastRetailDetailList}\r\n />\r\n </div>\r\n </div>\r\n <div className='member-footer'>\r\n <Button onClick={onCancel}>取消</Button>\r\n {\r\n showSelectBtn &&\r\n <Button\r\n onClick={() => this.handleOk(noList)}\r\n type=\"primary\"\r\n style={{ marginRight: 5 }}\r\n disabled={loadingUser}\r\n >\r\n {\r\n loadingUser ? '加载会员' : noList ? '确定' : '选取会员'\r\n }\r\n </Button>\r\n }\r\n </div>\r\n </div>\r\n )\r\n }\r\n}\r\n"]}
1
+ {"version":3,"sources":["tplus-member/member/ShopMember.js"],"names":["ShopMember","props","currentPage","cacheUserRetail","hotKeyListener","nodeName","index","progressListen","className","indexOf","isHotKeyAction","activeElement","document","blur","observerCard","setTimeout","slideSelected","querySelector","prevSlideSelected","swiperSelectObserver","unobserve","observe","progress","selected","state","memberList","viewMemberInfo","loadmoreLoading","nomoreData","searchValue","loadUserList","windowOnresize","memberTab","window","removeEventListener","memberTabHeight","clientHeight","tabMenuHeight","setState","isNotSetState","Idmember","willUnmount","currentMemberId","loadUserInfo","key","item","type","syncUpdateMember","selectChange","memberChange","tabIndex","Loading","hide","recommend","userSearch","memberTabChange","member","loadingUser","loadingBtn","ms","getGetUmemberDTO","then","ret","BalanceIntegral","BalanceStorage","UmemberLabel","MemberCouponTitle","Mobilephone","DynamicPropertyKeys","DynamicPropertyValues","mergeKeys","setMemberKey","currentMemberOfList","find","value","ID","forEach","v","arr","map","push","initEmpty","errorMsg","stores","selectMemberStore","setCurMemberInfo","resetLastRetail","findMemberLastRetailDetailList","context","viewModel","data","Member","seletMember","getCardInfoByMemberId","catch","loadUserRetail","titleModal","includes","show","target","node","delay","getMemberRetailDetail","Like","Record","Recency","RecommendList","memberInfo","record","like","recency","pageSize","isSingleMember","searchId","searchStatus","status","listArr","inputValue","keyboardOnClose","slice","loadUserListSuccess","length","getSearchMember","dataLoaded","ColumnInfo","Data","columnInfo","precisionInfo","usersLoadSuccess","JSON","parse","filter","Precision","FieldName","setPrecisionInfo","handleSearchClick","storeKey","undefined","handleSearchChange","val","memberCardList","resetSlideTop","getMemberStateStamp","isExpiration","isUserLogout","isUserLoss","isUserNotUsing","handleOk","noList","MemberState","Id","Name","onCancel","Message","warn","items","viewVoucher","isTakeTheir","getIsTakeTheir","memberStore","el","name","uiState","tip","info","_this","ModalWraper","confirm","title","content","onOk","handleChangeMember","selectMemberSuccess","getMemberBirthday","result","changeMemberCare","keyboardOnOk","searchRef","onKeyPressed","e","keyCode","enterKey","currentUserRetail","MemberMenuChange","dto","onClear","input","focus","changeIsAllAuthority","isAllAuthority","pageNo","lastRetailPageNo","lastRetailList","params","memberId","lastRetailLoading","findMemberLastRetailDetail","recencyBeanList","totalCount","lastRetailTotal","mode","platform","isNewRetailBCPos","isCC","defaultActiveKey","cardInfo","addEventListener","Code","$","on","off","isUserAndroidKey","android_setKeyBoard","user","localStorage","getItem","loginInfo","IsEnableUMember","cardList","showModal","authProcess","showSearch","showSelectBtn","voucherStateType","enumController","getEnumOj","memberEnumState","hotKey","hotKeyNotFilter","ref","focusInputName","inputTarget","Keyboard","open","getNewValue","close","hotKeyBindClass","list","display","getCardList","marginRight","Component","defaultProps","contextTypes","PropTypes","object","array"],"mappings":"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","file":"ShopMember.js","sourcesContent":["import React, { Component } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { Button } from 'antd';\r\nimport { ModalWraper, Input, Loading, Message, Ticon, Keyboard, Spin, hotKey } from 'tplus-components-touch';\r\nimport { stores } from 'mutants-microfx';\r\nimport { enumController, platform } from 'mutants-util';\r\nimport memberStore from './api';\r\nimport MemberTab from './memberTab/index.js';\r\nimport './ShopMember.less';\r\nimport { formatPrecision, userInfoFormat, errMessageTip } from '../utils';\r\nimport MemberMenu from './memberMenu/index.js'\r\nimport MemberCardList from './MemberCardList'\r\n\r\n// let swiperSelectObserver;\r\n\r\nexport default class ShopMember extends Component {\r\n static defaultProps = {\r\n onCancel: () => {},\r\n onOk: () => {},\r\n };\r\n\r\n static contextTypes = {\r\n viewModel: PropTypes.object,\r\n columnInfo: PropTypes.array,\r\n };\r\n constructor(props) {\r\n super(props);\r\n const { mode } = this.props;\r\n let { isNewRetailBCPos } = platform || {};\r\n this.state = {\r\n searchValue: '',\r\n memberList: [],\r\n memberInfo: {\r\n record: [],\r\n like: [],\r\n recency: [],\r\n },\r\n searchStatus: !!this.props.listArr ? true : false,\r\n isCC: !!isNewRetailBCPos,\r\n tabIndex: this.props.defaultActiveKey,\r\n isAllAuthority: false,\r\n tabMenuHeight: mode !== 'practice' ? 64 : 0, // 64为table上部操作菜单高度\r\n cardInfo: [], // 会员的卡信息\r\n\t lastRetailList: [], // 最近购买列表\r\n lastRetailTotal: 0, // 最近购买的总数量\r\n lastRetailPageNo: 0, // 最近购买的当前页,默认0开始\r\n lastRetailLoading: false, // 是否正在加载购买记录\r\n };\r\n this.ms = memberStore;\r\n }\r\n\r\n currentPage = 1;\r\n cacheUserRetail = {};\r\n\r\n componentDidMount() {\r\n // swiperSelectObserver = new IntersectionObserver(entries => {\r\n // const { boundingClientRect: { height, bottom, top } = {}, intersectionRatio } = entries[0];\r\n // if (intersectionRatio !== 1 && this.isHotKeyAction) {\r\n // this.isHotKeyAction = false;\r\n\r\n // bottom > height && memberSwiper.slideNext();\r\n // // 解决向上滑动时top < 10 时距离问题\r\n // if (top < -10) {\r\n // top < height && memberSwiper.slidePrev() && memberSwiper.slidePrev()\r\n // } else {\r\n // top < height && memberSwiper.slidePrev()\r\n // }\r\n // }\r\n // });\r\n\r\n window.addEventListener('resize', this.windowOnresize);\r\n const { viewMemberInfo, status, columnInfo, storeKey } = this.props;\r\n if (viewMemberInfo) {\r\n if (status) {\r\n return this.loadUserListSuccess(viewMemberInfo);\r\n } else if (status === 0) { // status 0 为 查看会员详情\r\n columnInfo && this.precisionInfo(columnInfo); // 查看录入的会员查看详情时父级传递了 columnInfo props\r\n return this.usersLoadSuccess([viewMemberInfo], 'search');\r\n }\r\n const { Code } = viewMemberInfo;\r\n return this.loadUserList('init', undefined, undefined, true, Code);\r\n };\r\n this.loadUserList('init');\r\n $.on(this.hotKeyListener);\r\n\r\n this.ms.searchValue = '';//初始化完成筛选列表清空数据(会员新增成功——封涛)\r\n }\r\n\r\n componentDidUpdate() {\r\n const {memberList = [], memberTabHeight, tabMenuHeight} = this.state;\r\n const clientHeight = this.memberTab.clientHeight - tabMenuHeight;\r\n if (clientHeight !== memberTabHeight) {\r\n this.setState({memberTabHeight: clientHeight});\r\n }\r\n }\r\n\r\n componentWillUnmount() {\r\n \r\n // memberSwiper && memberSwiper.destroy(false);\r\n // memberSwiper = undefined;\r\n this.willUnmount = true;\r\n\r\n window.removeEventListener('resize', this.windowOnresize);\r\n // swiperSelectObserver.disconnect();\r\n $.off(this.hotKeyListener);\r\n }\r\n\r\n hotKeyListener = (nodeName, index) => {\r\n this.progressListen()\r\n if (nodeName && ~nodeName.className.indexOf('slide-selected')) {\r\n this.isHotKeyAction = true;\r\n const activeElement = document.activeElement;\r\n activeElement && activeElement.blur();\r\n }\r\n }\r\n\r\n observerCard = () => {\r\n setTimeout(() => {\r\n const slideSelected = document.querySelector('.slide-selected');\r\n this.prevSlideSelected && swiperSelectObserver.unobserve(this.prevSlideSelected);\r\n this.prevSlideSelected = slideSelected;\r\n slideSelected && swiperSelectObserver.observe(slideSelected);\r\n })\r\n }\r\n\r\n progressListen = (progress) => {\r\n const {selected} = this.state;\r\n\r\n const {memberList = []} = this.state;\r\n const {viewMemberInfo} = this.props;\r\n if (viewMemberInfo) return;\r\n const {loadmoreLoading, nomoreData, searchValue = ''} = this.state;\r\n // let newselect = (selected + 5) % 10\r\n if ((selected + 1) % 10 === 0 && !loadmoreLoading && !nomoreData) {\r\n this.currentPage += 1;\r\n this.loadUserList('loadmore', this.currentPage);\r\n }\r\n if (progress >= 1 && !loadmoreLoading && !nomoreData) {\r\n this.currentPage += 1;\r\n this.loadUserList('loadmore', this.currentPage);\r\n }\r\n }\r\n\r\n windowOnresize = () => {\r\n if (!this.memberTab) {\r\n return window.removeEventListener('resize', this.windowOnresize);\r\n };\r\n const {memberTabHeight} = this.state;\r\n const clientHeight = this.memberTab.clientHeight - this.state.tabMenuHeight;\r\n if (memberTabHeight !== clientHeight) {\r\n this.setState({memberTabHeight: clientHeight});\r\n }\r\n }\r\n\r\n isNotSetState = (Idmember) => {\r\n if (this.willUnmount || Idmember !== this.currentMemberId) return true;\r\n }\r\n\r\n loadUserInfo = (key, Idmember, item, type, syncUpdateMember) => {\r\n // this.observerCard();\r\n\r\n const { selectChange, viewMemberInfo, memberChange } = this.props;\r\n const { selected, tabIndex = '1' } = this.state;\r\n if (key === selected && type !== true && type!=='opencard') return;\r\n Loading.hide();\r\n if (this.currentMemberId && !(this.cacheUserRetail[this.currentMemberId] || {}).recommend) {\r\n delete this.cacheUserRetail[this.currentMemberId];\r\n }\r\n this.currentMemberId = Idmember;\r\n\r\n if (this.userSearch || viewMemberInfo) {\r\n this.userSearch = false;\r\n this.setState({selected: key});\r\n }\r\n\r\n const {memberList = []} = this.state;\r\n\r\n this.memberTabChange(tabIndex);\r\n\r\n this.setState({ selected: key, member: memberList[key] || {}, loadingUser: true, loadingBtn: true });\r\n this.ms.getGetUmemberDTO(Idmember)\r\n .then(ret => {\r\n if (this.isNotSetState(Idmember)) return;\r\n const {BalanceIntegral, BalanceStorage, UmemberLabel, MemberCouponTitle, Mobilephone,\r\n DynamicPropertyKeys = [], DynamicPropertyValues = []} = ret || {};\r\n const mergeKeys = {BalanceIntegral, BalanceStorage, UmemberLabel, MemberCouponTitle, Mobilephone, DynamicPropertyKeys, DynamicPropertyValues};\r\n //const memberInfo = {...(memberList[key] || {}), ...mergeKeys};\r\n if (viewMemberInfo) {\r\n // 用接口中的 BalanceStorage MemberCouponTitle覆盖列表中的数据, 监听对象 使用action 设置值\r\n this.ms.setMemberKey(mergeKeys);\r\n } else {\r\n //设置会员列表中该会员的BalanceStorage值\r\n const currentMemberOfList = memberList.find(value => value.ID === Idmember) || {};\r\n Object.keys(mergeKeys).forEach(v => currentMemberOfList[v] = mergeKeys[v]);\r\n }\r\n userInfoFormat(ret)\r\n let arr = [];\r\n memberList.map(item => {\r\n if (item.ID === ret.ID) {\r\n arr.push(ret)\r\n } else {\r\n arr.push(item)\r\n }\r\n })\r\n this.setState({\r\n member: ret,\r\n initEmpty: true,\r\n memberList: arr,\r\n errorMsg: '',\r\n loadingUser: false,\r\n loadingBtn: false\r\n })\r\n stores.selectMemberStore.setCurMemberInfo(ret);\r\n selectChange && selectChange(item);\r\n // 获取购买记录\r\n this.resetLastRetail(0)\r\n this.findMemberLastRetailDetailList(3)\r\n // 更新当前选定的会员信息\r\n if (syncUpdateMember) {\r\n const { data: { Member: { ID } = {} } = {} } = this.context.viewModel || {};\r\n if (ID == ret.ID) {\r\n stores.selectMemberStore.seletMember(ret);\r\n memberChange && memberChange(ret)\r\n }\r\n }\r\n // 获取会员的卡信息\r\n this.getCardInfoByMemberId(Idmember)\r\n }).catch(err => {\r\n selectChange && selectChange({});\r\n if (this.isNotSetState(Idmember)) return;\r\n this.setState({\r\n member: memberList[key] || {},\r\n initEmpty: true,\r\n errorMsg: '会员信息获取失败,请重试',\r\n memberList,\r\n loadingBtn:false\r\n });\r\n });\r\n }\r\n\r\n loadUserRetail = (Idmember) => {\r\n const {tabIndex = '1'} = this.state;\r\n const {titleModal} = this.props;\r\n\r\n if (tabIndex !== '1' && ['会员详情', '到店会员', '人脸识别'].includes(titleModal)) {\r\n Loading.show({\r\n target: '.member-content-tab',\r\n node: <Spin scale={1.2} type='shape' visible/>,\r\n delay: false\r\n });\r\n }\r\n const {currentMemberId} = this.state;\r\n this.cacheUserRetail[Idmember] = {};\r\n this.ms.getMemberRetailDetail(Idmember)\r\n .then(ret => {\r\n Loading.hide();\r\n if (this.isNotSetState(Idmember)) return;\r\n const {Like, Record, Recency, RecommendList = []} = ret || {};\r\n const recommend = RecommendList;\r\n const memberInfo = {record: Record, like: Like, recency: Recency};\r\n\r\n this.setState({recommend, memberInfo});\r\n this.cacheUserRetail[Idmember] = {recommend, memberInfo};\r\n\r\n })\r\n .catch(err => {\r\n delete this.cacheUserRetail[Idmember];\r\n if (this.isNotSetState(Idmember)) return;\r\n this.setState({\r\n recommend: [],\r\n memberInfo: {},\r\n });\r\n Loading.hide();\r\n });\r\n }\r\n\r\n loadUserList = (type, currentPage = 1, pageSize = 10, isSingleMember = false, searchId) => {\r\n const { searchValue, searchStatus } = this.state;\r\n const { status, listArr } = this.props;\r\n if (!this.ms) return;\r\n if (type === 'init') {\r\n let inputValue = this.ms && this.ms.searchValue;\r\n if (inputValue) {\r\n this.setState({ searchValue: inputValue })\r\n setTimeout(() => { this.keyboardOnClose() }, 310)\r\n }\r\n }\r\n if (type === 'loadmore') {\r\n this.setState({ loadmoreLoading: true });\r\n } else {\r\n Loading.show({ target: '.memberShopContainer' });\r\n }\r\n if (type === 'opencard') {\r\n currentPage = this.currentPage;\r\n }\r\n if (searchStatus) {\r\n let arr = listArr.slice(0);\r\n this.setState({\r\n searchStatus: false,\r\n memberList: arr\r\n }, () => {\r\n const { memberList } = this.state;\r\n this.loadUserListSuccess(memberList, 's', memberList.length);\r\n Loading.hide();\r\n })\r\n return;\r\n }\r\n this.ms.getSearchMember({\r\n currentPage,\r\n pageSize,\r\n key: this.ms.searchValue || searchValue || searchId,\r\n isSingleMember: this.ms.searchValue ? true : isSingleMember\r\n })\r\n .then(ret => {\r\n this.loadUserListSuccess(ret, type, pageSize);\r\n Loading.hide();\r\n })\r\n .catch(err => Loading.hide());\r\n }\r\n\r\n loadUserListSuccess = (ret, type, pageSize) => {\r\n this.dataLoaded = true;\r\n const { ColumnInfo, Data } = ret || {};\r\n this.setState({ columnInfo: ColumnInfo});\r\n this.precisionInfo(ColumnInfo);\r\n this.usersLoadSuccess(type === 's' ? ret : JSON.parse(Data), type, pageSize);\r\n }\r\n\r\n precisionInfo = (columnInfo) => {\r\n const precisionInfo = {};\r\n if (columnInfo && columnInfo.length > 0) {\r\n columnInfo = columnInfo.filter(v => !!v.Precision) || [];\r\n columnInfo.length > 0 &&\r\n columnInfo.forEach(item => {\r\n const { Precision, FieldName } = item;\r\n if (Precision) precisionInfo[FieldName] = Precision;\r\n })\r\n }\r\n this.ms.setPrecisionInfo(precisionInfo);\r\n }\r\n\r\n // 获取会员的卡信息\r\n async getCardInfoByMemberId (memberId) {\r\n const cardInfo = await this.ms.getCardInfoByMemberId(memberId) || {}\r\n const { data = [] } = cardInfo\r\n this.setState({\r\n cardInfo: data\r\n })\r\n }\r\n\r\n handleSearchClick = () => {\r\n const { searchValue } = this.state;\r\n const { storeKey } = this.props\r\n this.userSearch = true;\r\n this.currentPage = 1;\r\n this.setState({ nomoreData: false, selected: undefined });\r\n this.loadUserList('search', this.currentPage);\r\n }\r\n\r\n handleSearchChange = (val) => {\r\n this.setState({searchValue: val});\r\n }\r\n\r\n\r\n usersLoadSuccess = (data = [], type, pageSize = 10) => {\r\n const {status} = this.props;\r\n const { selected } = this.state;\r\n if (this.willUnmount) return;\r\n if (data.length) {\r\n data.forEach(v => userInfoFormat(v));\r\n\r\n if (type === 'loadmore') {\r\n const {memberList = []} = this.state;\r\n memberList.push(...data);\r\n return this.setState({nomoreData: data.length < pageSize, loadmoreLoading: false, memberList});\r\n }\r\n this.setState({memberList: data}, () => {\r\n if (type === 'search') {\r\n this.memberCardList.resetSlideTop();\r\n }\r\n const [item = {}] = data;\r\n // const key=type==='opencard'?(selected-(this.currentPage-1)*pageSize):0;\r\n // const item =data[key];\r\n this.loadUserInfo(0, item.ID, item, type);\r\n });\r\n } else if (type === 'loadmore') {\r\n this.setState({nomoreData: true, loadmoreLoading: false});\r\n } else {\r\n Loading.hide();\r\n this.setState({\r\n memberList: [],\r\n recommend: [],\r\n member: {},\r\n memberInfo: {record: [], like: [], recency: []}\r\n }, () => {\r\n if (type === 'search') {\r\n this.memberCardList.resetSlideTop();\r\n }\r\n });\r\n }\r\n }\r\n\r\n //获取会员状态集合,在页面上以图片戳的形式展示。\r\n getMemberStateStamp = (item) => {\r\n let arr = [];\r\n const { isExpiration, isUserLogout, isUserLoss, isUserNotUsing } = item;\r\n //已挂失\r\n if (isUserLoss) arr.push(<Ticon type='yiguashi' />)\r\n //已过期\r\n if (isExpiration) arr.push(<Ticon type='yiguoqi' />)\r\n //已注销\r\n if (isUserLogout) arr.push(<Ticon type='yizhuxiao' />)\r\n //未启用\r\n if (isUserNotUsing) arr.push(<Ticon type='weiqiyong' />)\r\n return arr;\r\n }\r\n\r\n handleOk = (noList) => {\r\n const { member, errorMsg } = this.state;\r\n const { isExpiration, MemberState: { Id, Name } = {} } = member || {};\r\n if (noList) {\r\n return this.props.onCancel();\r\n }\r\n if (errorMsg) return Message.warn(errorMsg);\r\n if (errMessageTip(member)) return;\r\n const { data: { Member: {ID} = {} } = {}, items = [] } = this.context.viewModel || {};\r\n\r\n const viewVoucher = items.find(v => v.type === 'Voucher') || {};\r\n const isTakeTheir = viewVoucher.getIsTakeTheir && viewVoucher.getIsTakeTheir();\r\n if (isTakeTheir) {\r\n Message.warn('自提时不可以切换选择会员');\r\n return;\r\n }\r\n\r\n //会员不可更改判断\r\n const memberStore = this.context.viewModel && this.context.viewModel.items.find(el => el.name == 'MemberStore');\r\n const uiState = memberStore.uiState;\r\n if (!!uiState.tip) {\r\n Message.info(uiState.tip)\r\n return;\r\n }\r\n if (ID) {\r\n const _this = this;\r\n return ModalWraper.confirm({\r\n className: 'tplus-confirm-modal',\r\n title: '切换会员',\r\n content: '您确定要替换当前会员吗?',\r\n onOk() {\r\n _this.handleChangeMember(member)\r\n }\r\n })\r\n }\r\n this.handleChangeMember(member)\r\n }\r\n\r\n handleChangeMember = (member) => {\r\n const { onOk, memberChange, selectMemberSuccess, getMemberBirthday } = this.props;\r\n stores.selectMemberStore.seletMember(member, true);\r\n memberChange && memberChange(member)\r\n onOk && onOk();\r\n getMemberBirthday && getMemberBirthday(member.ID, (result) => {\r\n stores.selectMemberStore.changeMemberCare(result);\r\n })\r\n //商品输入框焦点。\r\n setTimeout(() => { selectMemberSuccess && selectMemberSuccess(member) }, 300)\r\n }\r\n\r\n keyboardOnOk = () => {\r\n this.handleSearchClick();\r\n }\r\n\r\n keyboardOnClose = () => {\r\n this.searchRef && this.searchRef.blur();\r\n }\r\n\r\n onKeyPressed = (e) => {\r\n const { keyCode } = e;\r\n const enterKey = 13;\r\n if (keyCode === enterKey) {\r\n this.handleSearchClick();\r\n this.keyboardOnClose();\r\n }\r\n }\r\n\r\n memberTabChange = (tabIndex) => {\r\n this.setState({tabIndex});\r\n const currentUserRetail = this.cacheUserRetail[this.currentMemberId];\r\n if (!currentUserRetail) {\r\n return this.loadUserRetail(this.currentMemberId);\r\n }\r\n this.setState({...currentUserRetail});\r\n const activeElement = document.activeElement;\r\n activeElement && activeElement.blur()\r\n }\r\n\r\n MemberMenuChange = (dto) => {\r\n const { memberList } = this.state;\r\n userInfoFormat(dto)\r\n let arr = [];\r\n memberList.map(item => {\r\n if (item.ID == dto.ID) {\r\n arr.push(dto)\r\n } else {\r\n arr.push(item)\r\n }\r\n })\r\n this.setState({ member: dto, memberList: arr })\r\n }\r\n\r\n onClear = (key, input) => {\r\n this.setState({[key]: ''});\r\n input.focus();\r\n }\r\n\r\n changeIsAllAuthority = () => {\r\n this.setState({\r\n isAllAuthority: false\r\n })\r\n }\r\n\r\n // 重置购买记录相关数据\r\n resetLastRetail = async (pageNo) => {\r\n this.setState({\r\n lastRetailPageNo: pageNo\r\n })\r\n }\r\n // 获取会员的购买记录\r\n findMemberLastRetailDetailList = async (pageSize) => {\r\n let { lastRetailPageNo, member: { ID } = {}, lastRetailList = [] } = this.state\r\n const params = {\r\n memberId: ID,\r\n pageNo: lastRetailPageNo,\r\n pageSize\r\n }\r\n this.setState({\r\n lastRetailLoading: true\r\n })\r\n try {\r\n const ret = await this.ms.findMemberLastRetailDetail(params)\r\n const { data: { recencyBeanList = [], totalCount = 0 } = {} } = ret\r\n lastRetailList.push(...recencyBeanList)\r\n \r\n this.setState({\r\n lastRetailTotal: totalCount,\r\n lastRetailLoading: false,\r\n lastRetailPageNo: pageSize === 3 ? 0 : this.state.lastRetailPageNo + 1,\r\n lastRetailList: this.state.lastRetailPageNo === 0 ? recencyBeanList : lastRetailList\r\n })\r\n \r\n } catch (err) {\r\n this.setState({\r\n lastRetailLoading: false\r\n })\r\n }\r\n }\r\n\r\n render() {\r\n const isUserAndroidKey = !! window.android_setKeyBoard;\r\n\r\n const user = JSON.parse(localStorage.getItem('user')) || {};\r\n const { loginInfo: { IsEnableUMember } = {} } = user;\r\n const { searchValue, memberList = [], memberInfo = {}, member = {}, recommend = [], memberTabHeight = 0,\r\n loadmoreLoading, nomoreData, initEmpty, columnInfo = [], loadingUser, loadingBtn, selected, isAllAuthority,lastRetailTotal, lastRetailList, lastRetailLoading,isCC, cardInfo, cardList } = this.state;\r\n const { status, showModal, titleModal, type, defaultActiveKey, onCancel, viewMemberInfo, authProcess, mode, title, storeKey } = this.props;\r\n const { precisionInfo = {} } = this.ms;\r\n const showSearch = ['会员查询'].includes(type);\r\n const noList = !memberList.length;\r\n const showSelectBtn = type === '会员查询' || !!status;\r\n //是否正常开单\r\n let voucherStateType = (mode !== 'practice');\r\n const { memberEnumState } = enumController.getEnumOj();\r\n \r\n return (\r\n <div className='memberShopContainer'>\r\n {\r\n showSearch &&\r\n <div className='search-container'>\r\n <Input\r\n tplusInput\r\n placeholder='手机号/卡号/名称/身份证号'\r\n prefix='sousuo'\r\n className={`${hotKey.hotKeyNotFilter('search-input')} android_focus_keyboard`}\r\n value={searchValue}\r\n type='native'\r\n onChange={({ target: { value: searchValue } }) => this.setState({ searchValue })}\r\n inputRef={ref => this.searchRef = ref}\r\n onClear={() => this.onClear('searchValue', this.searchRef)}\r\n onFocus={({ target }) => {\r\n if(!isUserAndroidKey ){\r\n this.focusInputName = 'searchValue';\r\n this.inputTarget = target;\r\n Keyboard.open(v => {\r\n const key = this.focusInputName;\r\n const value = Keyboard.getNewValue(this.inputTarget, this.inputTarget.value, v);\r\n this.setState({ [key]: value });\r\n }, this.keyboardOnOk, this.keyboardOnClose)();\r\n }\r\n }}\r\n onBlur={Keyboard.close}\r\n onKeyDown={this.onKeyPressed}\r\n />\r\n <Button className='primary-btn' onClick={this.handleSearchClick}>搜索</Button>\r\n </div>\r\n }\r\n <div ref={ref => this.memberTab = ref} className={`${hotKey.hotKeyBindClass('4', 'member-shop-content')}`}>\r\n {\r\n this.dataLoaded && noList && <div className='empty-data-img'><div className='tip-text'>暂无数据 ~</div></div>\r\n }\r\n <MemberCardList \r\n ref={list => this.memberCardList = list}\r\n title={title}\r\n storeKey={storeKey}\r\n memberList={memberList}\r\n precisionInfo={precisionInfo}\r\n loadmoreLoading={loadmoreLoading}\r\n nomoreData={nomoreData}\r\n loadUserInfo={this.loadUserInfo}\r\n progressListen={this.progressListen}\r\n getMemberStateStamp={this.getMemberStateStamp}\r\n selected={selected}\r\n isCC={isCC}\r\n cardList={cardList}\r\n />\r\n \r\n <div className='member-content-tab content' style={{ display: noList ? 'none' : 'flex' }}>\r\n {\r\n (voucherStateType && !isAllAuthority) &&\r\n <div>\r\n <div className='menu'>\r\n <MemberMenu\r\n authProcess={authProcess} \r\n changeIsAllAuthority={this.changeIsAllAuthority}\r\n loadUserList={this.loadUserList} \r\n member={member} \r\n memberEnumState={memberEnumState} \r\n loadingBtn={loadingBtn} \r\n selected={selected} \r\n cardList={cardList}\r\n getCardList={this.getCardList}\r\n loadUserInfo={(key, Idmember, item, type, syncUpdateMember) => this.loadUserInfo(key, Idmember, item, type, syncUpdateMember)} \r\n handleChange={this.MemberMenuChange}></MemberMenu>\r\n </div>\r\n <div className='line'></div>\r\n </div>\r\n }\r\n <MemberTab\r\n defaultActiveKey={defaultActiveKey}\r\n member={member}\r\n memberInfo={memberInfo}\r\n showModal={showModal}\r\n title={title}\r\n titleModal={titleModal}\r\n storeKey={storeKey}\r\n recommend={recommend}\r\n memberTabHeight={memberTabHeight}\r\n initEmpty={initEmpty}\r\n memberList={memberList}\r\n columnInfo={columnInfo}\r\n precisionInfo={precisionInfo}\r\n onChange={this.memberTabChange}\r\n getMemberStateStamp={this.getMemberStateStamp}\r\n cardInfo={cardInfo}\r\n \t\t\t lastRetailTotal={lastRetailTotal}\r\n lastRetailList={lastRetailList}\r\n lastRetailLoading={lastRetailLoading}\r\n findMemberLastRetailDetailList={this.findMemberLastRetailDetailList}\r\n />\r\n </div>\r\n </div>\r\n <div className='member-footer'>\r\n <Button onClick={onCancel}>取消</Button>\r\n {\r\n showSelectBtn &&\r\n <Button\r\n onClick={() => this.handleOk(noList)}\r\n type=\"primary\"\r\n style={{ marginRight: 5 }}\r\n disabled={loadingUser}\r\n >\r\n {\r\n loadingUser ? '加载会员' : noList ? '确定' : '选取会员'\r\n }\r\n </Button>\r\n }\r\n </div>\r\n </div>\r\n )\r\n }\r\n}\r\n"]}
@@ -5,6 +5,10 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.default = undefined;
7
7
 
8
+ var _button = require('antd/es/button');
9
+
10
+ var _button2 = _interopRequireDefault(_button);
11
+
8
12
  var _objectWithoutProperties2 = require('babel-runtime/helpers/objectWithoutProperties');
9
13
 
10
14
  var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
@@ -47,6 +51,8 @@ var _tabs2 = _interopRequireDefault(_tabs);
47
51
 
48
52
  var _class, _class2, _temp, _initialiseProps;
49
53
 
54
+ require('antd/es/button/style');
55
+
50
56
  require('antd/es/tabs/style');
51
57
 
52
58
  var _react = require('react');
@@ -132,6 +138,9 @@ var memberManager = (0, _mobxReact.observer)(_class = (_temp = _class2 = functio
132
138
  return _this;
133
139
  }
134
140
 
141
+ // 点击购买记录加载更多按钮
142
+
143
+
135
144
  // 会员信息
136
145
 
137
146
 
@@ -190,6 +199,12 @@ var memberManager = (0, _mobxReact.observer)(_class = (_temp = _class2 = functio
190
199
  });
191
200
  };
192
201
 
202
+ this.loadRecentlyMore = function () {
203
+ var findMemberLastRetailDetailList = _this2.props.findMemberLastRetailDetailList;
204
+
205
+ findMemberLastRetailDetailList && findMemberLastRetailDetailList(50);
206
+ };
207
+
193
208
  this.memberInfoEle = function (_ref3) {
194
209
  var title = _ref3.title,
195
210
  key = _ref3.key;
@@ -426,15 +441,17 @@ var memberManager = (0, _mobxReact.observer)(_class = (_temp = _class2 = functio
426
441
  key = _ref7.key;
427
442
  var _props4 = _this2.props,
428
443
  memberTabHeight = _props4.memberTabHeight,
429
- _props4$memberInfo = _props4.memberInfo;
430
- _props4$memberInfo = _props4$memberInfo === undefined ? {} : _props4$memberInfo;
431
- var _props4$memberInfo$re = _props4$memberInfo.recency,
432
- recency = _props4$memberInfo$re === undefined ? [] : _props4$memberInfo$re;
444
+ _props4$lastRetailLoa = _props4.lastRetailLoading,
445
+ lastRetailLoading = _props4$lastRetailLoa === undefined ? false : _props4$lastRetailLoa,
446
+ _props4$lastRetailTot = _props4.lastRetailTotal,
447
+ lastRetailTotal = _props4$lastRetailTot === undefined ? 0 : _props4$lastRetailTot,
448
+ _props4$lastRetailLis = _props4.lastRetailList,
449
+ lastRetailList = _props4$lastRetailLis === undefined ? [] : _props4$lastRetailLis;
433
450
 
434
451
  var theadHeight = 50;
435
452
  var tableHeight = memberTabHeight - _this2.tabHeadHeight;
436
453
  var dataSource = [];
437
- var data = recency;
454
+ var data = lastRetailList;
438
455
  data.forEach(function (vlaue, i) {
439
456
  var index = dataSource.findIndex(function (v) {
440
457
  return v.code === vlaue.Code;
@@ -503,7 +520,7 @@ var memberManager = (0, _mobxReact.observer)(_class = (_temp = _class2 = functio
503
520
  ),
504
521
  _react2.default.createElement(
505
522
  'tbody',
506
- { style: { height: tableHeight - theadHeight } },
523
+ { style: { height: tableHeight - theadHeight - 42 } },
507
524
  _react2.default.createElement(
508
525
  _tplusComponentsTouch.TouchScroll,
509
526
  null,
@@ -520,7 +537,12 @@ var memberManager = (0, _mobxReact.observer)(_class = (_temp = _class2 = functio
520
537
  _react2.default.createElement(
521
538
  'td',
522
539
  { 'data-overflow': 'tip' },
523
- v.Name
540
+ v.Name,
541
+ Number(v.Amount) < 0 && _react2.default.createElement(
542
+ 'p',
543
+ { className: 'tag' },
544
+ '\u9000\u8D27'
545
+ )
524
546
  ),
525
547
  _react2.default.createElement(
526
548
  'td',
@@ -542,7 +564,24 @@ var memberManager = (0, _mobxReact.observer)(_class = (_temp = _class2 = functio
542
564
  !dataSource.length && _react2.default.createElement(
543
565
  'div',
544
566
  { style: { height: tableHeight, position: 'relative' } },
545
- _react2.default.createElement('div', { className: 'empty-data empty-data-img' })
567
+ _react2.default.createElement(
568
+ 'div',
569
+ { className: 'empty-data empty-data-img' },
570
+ _react2.default.createElement(
571
+ 'div',
572
+ { className: 'tip-text' },
573
+ '\u6682\u65E0\u6570\u636E ~'
574
+ )
575
+ )
576
+ ),
577
+ lastRetailTotal != lastRetailList.length && _react2.default.createElement(
578
+ 'div',
579
+ { className: 'more-button' },
580
+ _react2.default.createElement(
581
+ _button2.default,
582
+ { type: 'text', loading: lastRetailLoading, className: 'primary-color', onClick: _this2.loadRecentlyMore },
583
+ '\u67E5\u770B\u66F4\u591A'
584
+ )
546
585
  )
547
586
  );
548
587
  };
@@ -1 +1 @@
1
- {"version":3,"sources":["tplus-member/member/memberTab/MemberManager.js"],"names":["TabPane","transform","Code","CardCode","Name","MemberTypeName","Mobilephone","Telephone","StoreName","sex","BirthDate","TotalIntegral","BalanceIntegral","BalanceStorage","TotalStorage","TotalBegin","EffectiveDate","ExpirationDate","UmemberOpenId","UmemberLabel","MemberCouponTitle","Memo","validMethodEnum","LONG_PERIOD","ASSIGNMENT_PERIOD","cardStatusEnumList","ENABLED","DISABLED","UNBINDING","BINDING","INVALIDATION","EXPIRED","REFUNDING_CARD","REFUNDED_CARD","memberManager","observer","props","localStore","get","loginInfo","IsEnableUMember","state","defaultActiveKey","storeKey","onChange","memberInfoEle","title","key","rmecommendEle","recentlyEle","memberCardInfoEle","Component","tabHeadHeight","dataClear","keys","values","columnInfo","regKey","dataSource","forEach","index","includes","find","v","FieldName","label","Title","push","value","filter","platform","isNewRetailBCPos","member","memberTabHeight","memberList","precisionInfo","getMemberStateStamp","DynamicPropertyKeys","DynamicPropertyValues","MemberType","Sex","isExpiration","Uid","isUserLogout","MemberState","Store","priuserdefData","isUMember","isUMemberShow","memberValues","memberInfos","memberTabContentHeight","hasMemberInfo","some","enumController","getEnumOj","Differentiate","CC_NOT_DISPLAY","COUPON","isHaveCCNot","item","memberValue","precision","undefined","dataItem","length","map","formatValue","formatDateKeys","iconItems","height","position","recommend","recommends","memberInfo","record","like","initEmpty","Value","recommendInfoHeight","haveRecord","every","console","log","emptyRecommend","emptyData","showInfos","recordFilter","name","recommendHeight","recency","theadHeight","tableHeight","data","vlaue","i","findIndex","code","Time","rest","itemValue","date","itemData","sort","a","b","Amount","textAlign","Quantity","cardInfo","cardTypeEnumList","memberCardInfos","StorageCardNo","CardTypeEnum","ValidMethodEnum","DueDate","CardStatusEnum","IsSale","overflowY","list"],"mappings":"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","file":"MemberManager.js","sourcesContent":["import React, { Component } from 'react';\r\nimport { Tabs } from 'antd';\r\nimport { observer } from 'mobx-react';\r\nimport { localStore } from 'mutants-microfx';\r\nimport { TouchScroll, CardList } from 'tplus-components-touch';\r\nimport { formatPrecision, dateFormat } from '../../utils';\r\nimport { enumController, platform } from 'mutants-util';\r\nimport MemberCardInfo from './MemberCardInfo'\r\n\r\nconst { TabPane } = Tabs;\r\n\r\nlet transform = {\r\n Code: '会员编号',\r\n CardCode: '会员卡号',\r\n Name: '会员姓名',\r\n MemberTypeName: '会员类型',\r\n Mobilephone: '手机号',\r\n Telephone: '联系电话',\r\n StoreName:'开卡门店',\r\n sex: '性别',\r\n BirthDate: '出生日期',\r\n TotalIntegral: '累计积分',\r\n BalanceIntegral: '积分余额',\r\n BalanceStorage: '当前总余额',\r\n TotalStorage: '储值总额', // 字段存疑\r\n TotalBegin: '期初余额',\r\n EffectiveDate: '生效日期',\r\n ExpirationDate: '失效日期',\r\n UmemberOpenId: '是否关注微信号',\r\n UmemberLabel: '会员标签',\r\n MemberCouponTitle: '优惠券',\r\n Memo: '备注',\r\n};\r\n\r\n\r\n// 有效期类型\r\nconst validMethodEnum = {\r\n LONG_PERIOD: '长期有效',\r\n ASSIGNMENT_PERIOD: '指定有效期'\r\n}\r\n\r\n// 卡状态\r\nconst cardStatusEnumList = {\r\n ENABLED: \"已启用\", \r\n DISABLED: \"已停用\",\r\n UNBINDING: \"待绑定\",\r\n BINDING: \"已绑定\",\r\n INVALIDATION: \"已作废\",\r\n EXPIRED: \"已过期\",\r\n REFUNDING_CARD: \"退卡中\",\r\n REFUNDED_CARD: \"已退卡\"\r\n }\r\n\r\n@observer\r\nexport default class memberManager extends Component {\r\n tabHeadHeight = 37;\r\n constructor (props) {\r\n super(props)\r\n const {loginInfo: {IsEnableUMember} = {}} = localStore.get('user') || {};\r\n this.state = {IsEnableUMember: !!IsEnableUMember};\r\n }\r\n dataClear = (keys, values, columnInfo) => {\r\n const regKey = 'priuserdef';\r\n const dataSource = [];\r\n keys.forEach((key, index) => {\r\n if (key.includes(regKey)) {\r\n const {Title: label} = columnInfo.find(v => v.FieldName === key) || {};\r\n dataSource.push({key, value: values[index], label});\r\n }\r\n });\r\n return dataSource.filter(v => v.label);\r\n }\r\n\r\n // 会员信息\r\n memberInfoEle = ({ title, key }) => {\r\n let { isNewRetailBCPos } = platform || {};\r\n const { member = {}, memberTabHeight, memberList = [], columnInfo = [], precisionInfo = {}, getMemberStateStamp} = this.props;\r\n const {IsEnableUMember} = this.state;\r\n const { DynamicPropertyKeys = [], DynamicPropertyValues = [], ExpirationDate = '', MemberType: { Name: MemberTypeName } = {},\r\n Sex: { Name: sex } = {}, isExpiration, Uid, isUserLogout, MemberState, Store: { Name : StoreName } = {} } = member;\r\n let priuserdefData = this.dataClear(DynamicPropertyKeys, DynamicPropertyValues, columnInfo);\r\n const isUMember = IsEnableUMember && Uid > 0; // 判断为u会员\r\n const isUMemberShow = ['UmemberOpenId', 'UmemberLabel', 'MemberCouponTitle'];\r\n const memberValues = { MemberTypeName, sex, StoreName , ...member};\r\n const memberInfos = [];\r\n const memberTabContentHeight = memberTabHeight - this.tabHeadHeight;\r\n const hasMemberInfo = Object.keys(memberValues).some(v => memberValues[v]);\r\n const { Differentiate } = enumController.getEnumOj();\r\n\r\n const CC_NOT_DISPLAY = [\"Code\", \"ExpirationDate\", \"UmemberOpenId\", \"UmemberLabel\"];\r\n\r\n transform.MemberCouponTitle = Differentiate.COUPON;\r\n transform.MemberTypeName = Differentiate.MemberTypeName;\r\n Object.keys(transform).forEach(v => {\r\n // 查找CC不需要显示的字段\r\n const isHaveCCNot = CC_NOT_DISPLAY.find(item => item == v);\r\n if (isNewRetailBCPos && isHaveCCNot) return;\r\n if (isUMemberShow.includes(v) && !isNewRetailBCPos &&!isUMember ) return;\r\n const memberValue = memberValues[v];\r\n const precision = precisionInfo[v];\r\n //let value = formatPrecisionKeys.includes(v) ? (hasMemberInfo ? formatPrecision(memberValue, precision) : undefined) : memberValue;\r\n let value = !!precision ? (hasMemberInfo ? formatPrecision(memberValue, precision) : undefined) : memberValue;\r\n (v === 'UmemberOpenId') && (value = memberValue ? '已关注' : '未关注');\r\n const dataItem = { label: `${transform[v]}`, value };\r\n memberInfos.push(dataItem);\r\n });\r\n\r\n //对自定义项的值进行处理。\r\n if (priuserdefData && priuserdefData.length > 0) {\r\n priuserdefData.map(item => {\r\n let { key, value } = item || {};\r\n let precision = precisionInfo[key];\r\n item['value'] = !!precision ? formatPrecision(value, precision) : value;\r\n })\r\n }\r\n\r\n memberInfos.push(...priuserdefData) // 插入会员自定义项\r\n memberInfos.length % 2 && memberInfos.push({}); //奇数补全\r\n const formatValue = (label, value) => {\r\n const formatDateKeys = ['出生日期', '失效日期', '生效日期'];\r\n if (formatDateKeys.includes(label)) {\r\n return dateFormat(value);\r\n } else {\r\n return value;\r\n }\r\n }\r\n //状态戳\r\n let iconItems = getMemberStateStamp(member);\r\n return (\r\n <TabPane tab={title} key={key}>\r\n <div style={{ height: memberTabContentHeight, position: 'relative' }}>\r\n <TouchScroll height={memberTabContentHeight} >\r\n {\r\n !!memberList.length && <div className='member-info-table'>\r\n {\r\n memberInfos.map((item, index) => <div key={index}>\r\n {item.label && <span>{item.label || ''}</span>}\r\n {item.label && <span data-overflow='tip'>:{formatValue(item.label, item.value)}</span>}\r\n </div>)\r\n }\r\n {\r\n !memberInfos.length && <p className='empty-data'>暂无数据~</p>\r\n }\r\n </div>\r\n }\r\n {\r\n !memberList.length && <div className='empty-data empty-data-img' />\r\n }\r\n </TouchScroll>\r\n {\r\n iconItems && iconItems.length > 0 &&\r\n <div className='memberstate-detail-stamp'>\r\n {iconItems}\r\n </div>\r\n }\r\n </div>\r\n </TabPane >)\r\n };\r\n\r\n // 智能推荐\r\n rmecommendEle = ({ title, key }) => {\r\n let { recommend: recommends = [], memberInfo: { record = [], like = [] } = {}, memberTabHeight, initEmpty } = this.props;\r\n recommends = recommends.filter(v => v);\r\n recommends.push({ Name: '最近购买', Value: like });\r\n const recommendInfoHeight = 74;\r\n const memberTabContentHeight = memberTabHeight - this.tabHeadHeight;\r\n const haveRecord = !!record.length && record.every(v => !!(v && v.value));\r\n console.log('会员偶发白屏问题:recommends==', recommends)\r\n const emptyRecommend = recommends.every(v => !((v && v.Value) || []).length) ? <div className='empty-data'>暂无推荐~</div> : null;\r\n const emptyData = (!haveRecord && recommends.every(v => !((v && v.Value) || []).length)) ? <div className='empty-data empty-data-img' /> : null;\r\n const showInfos = ['最近购买时间', '金额', '平均客单价']\r\n const recordFilter = record.filter(v => showInfos.includes(v.name));\r\n const recommendHeight = haveRecord ? memberTabContentHeight - recommendInfoHeight : memberTabContentHeight;\r\n return <TabPane tab={title} key={key}>\r\n <div className='recommend-tab' style={{height: memberTabContentHeight}}>\r\n {haveRecord && <div className='recommend-info'>\r\n {recordFilter.map((item, key) => <span key={key}>{item.name}: {item.value}</span>)}\r\n </div>}\r\n <div className='recommend-connent' style={{height: recommendHeight}}>\r\n <TouchScroll height={recommendHeight} key={recommendHeight}>\r\n {recommends.map((item, index) => {\r\n if (!(item.Value || []).length) return null;\r\n return <div key={index} className='detail-content'>\r\n <h1>{item.Name}</h1>\r\n <CardList\r\n list={item.Value || []}\r\n maxEmpyt={5}\r\n />\r\n </div>\r\n })}\r\n </TouchScroll>\r\n {initEmpty && emptyRecommend}\r\n </div>\r\n {initEmpty && emptyData}\r\n </div>\r\n </TabPane>;\r\n };\r\n\r\n // 最近购买\r\n recentlyEle = ({ title, key }) => {\r\n const {memberTabHeight, memberInfo: {recency = []} = {}} = this.props;\r\n const theadHeight = 50;\r\n const tableHeight = memberTabHeight - this.tabHeadHeight;\r\n const dataSource = [];\r\n const data = recency;\r\n data.forEach((vlaue, i) => {\r\n const index = dataSource.findIndex(v => v.code === vlaue.Code);\r\n if (~index) {\r\n dataSource[index].data.push(vlaue);\r\n } else {\r\n const { Time, Code, ...rest } = vlaue || {};\r\n const itemValue = { date: Time, code: Code, data: [rest] };\r\n dataSource.push(itemValue);\r\n }\r\n });\r\n\r\n dataSource.forEach(value => {\r\n // 金额倒序排序\r\n const itemData = value.data;\r\n if (itemData.length > 1) {\r\n itemData.sort((a = {}, b = {}) => b.Amount - a.Amount);\r\n }\r\n });\r\n\r\n return <TabPane tab={title} key={key}>\r\n {!!dataSource.length && <div className='recently-tab'>\r\n <table className='table'>\r\n <thead>\r\n <tr>\r\n <th width='25%'>消费日期</th>\r\n <th width='25%'>商品</th>\r\n <th width='25%' style={{textAlign: 'center'}}>数量</th>\r\n <th width='25%' className='amount-item'>消费金额</th>\r\n </tr>\r\n </thead>\r\n <tbody style={{height: tableHeight - theadHeight}}>\r\n <TouchScroll>\r\n {dataSource.map((item, key) => {\r\n return item.data.map((v, i) =>\r\n <tr key={i}>\r\n {!i ?\r\n <td className={item.data.length === 1 ? 'only-one-data' : ''}>{dateFormat(item.date)}</td> :\r\n <td className={item.data.length - 1 === i ? 'data-border' : ''}/>\r\n }\r\n <td data-overflow='tip'>{v.Name}</td>\r\n <td data-overflow='tip' style={{textAlign: 'center'}}>{v.Quantity}</td>\r\n <td data-overflow='tip'>{v.Amount}</td>\r\n </tr>\r\n );\r\n })}\r\n </TouchScroll>\r\n </tbody>\r\n </table>\r\n </div>}\r\n {!dataSource.length && <div style={{height: tableHeight, position: 'relative'}}><div className='empty-data empty-data-img' /></div>}\r\n </TabPane>;\r\n };\r\n\r\n // 会员的卡信息\r\n memberCardInfoEle = ({ title, key }) => {\r\n const { member = {}, memberTabHeight, memberList = [], cardInfo = [], cardTypeEnumList, storeKey} = this.props;\r\n const memberTabContentHeight = memberTabHeight - this.tabHeadHeight;\r\n const memberCardInfos = []\r\n\r\n cardInfo.map(item => {\r\n const { StorageCardNo, Name, TotalStorage = 0, BalanceStorage = 0, CardTypeEnum, ValidMethodEnum, DueDate, CardStatusEnum, IsSale } = item\r\n const dataSource = [\r\n { label: '卡名称', value: Name },\r\n { label: '卡号', value: StorageCardNo },\r\n { label: '卡类型', value: cardTypeEnumList[CardTypeEnum] },\r\n { label: '有效期至', value: ValidMethodEnum === 'LONG_PERIOD' ? '长期有效' : dateFormat(DueDate)},\r\n { label: '储值总额', value: formatPrecision(IsSale === 'SOLD' ? TotalStorage : 0, 2) },\r\n { label: '储值余额', value: formatPrecision(IsSale === 'SOLD' ? BalanceStorage : 0, 2) },\r\n { label: '卡状态', value: cardStatusEnumList[CardStatusEnum] }\r\n ]\r\n memberCardInfos.push(dataSource)\r\n })\r\n\r\n return (\r\n <TabPane tab={title + '('+ cardInfo.length +')'} key={key}>\r\n <div style={{ height: memberTabContentHeight, position: 'relative',overflowY: 'auto' }}>\r\n <TouchScroll height={memberTabContentHeight} scrollProgress={()=>{}}>\r\n {\r\n !!cardInfo.length && \r\n memberCardInfos.map((list, index) => <MemberCardInfo list={list} index={index} key={'卡' + (index + 1)} title={'卡' + (index + 1)} keyName='memberCardInfos' memberList={memberList} storeKey={storeKey} />)\r\n }\r\n {\r\n !cardInfo.length && <div className='empty-data empty-data-img' />\r\n }\r\n </TouchScroll>\r\n </div>\r\n </TabPane>\r\n )\r\n };\r\n\r\n render() {\r\n const {defaultActiveKey = '1', storeKey } = this.props;\r\n return (\r\n <Tabs\r\n defaultActiveKey={defaultActiveKey}\r\n onChange={this.props.onChange}\r\n className=\"member-table-container\"\r\n >\r\n { this.memberInfoEle({ title: '会员信息', key: '1' }) }\r\n { this.rmecommendEle({ title: '智能推荐', key: '2' }) }\r\n { this.recentlyEle({ title: '最近购买', key: '3' }) }\r\n { this.memberCardInfoEle({title: '卡信息', 'key': '4'}) }\r\n </Tabs>\r\n );\r\n }\r\n}"]}
1
+ {"version":3,"sources":["tplus-member/member/memberTab/MemberManager.js"],"names":["TabPane","transform","Code","CardCode","Name","MemberTypeName","Mobilephone","Telephone","StoreName","sex","BirthDate","TotalIntegral","BalanceIntegral","BalanceStorage","TotalStorage","TotalBegin","EffectiveDate","ExpirationDate","UmemberOpenId","UmemberLabel","MemberCouponTitle","Memo","validMethodEnum","LONG_PERIOD","ASSIGNMENT_PERIOD","cardStatusEnumList","ENABLED","DISABLED","UNBINDING","BINDING","INVALIDATION","EXPIRED","REFUNDING_CARD","REFUNDED_CARD","memberManager","observer","props","localStore","get","loginInfo","IsEnableUMember","state","defaultActiveKey","storeKey","onChange","memberInfoEle","title","key","rmecommendEle","recentlyEle","memberCardInfoEle","Component","tabHeadHeight","dataClear","keys","values","columnInfo","regKey","dataSource","forEach","index","includes","find","v","FieldName","label","Title","push","value","filter","loadRecentlyMore","findMemberLastRetailDetailList","platform","isNewRetailBCPos","member","memberTabHeight","memberList","precisionInfo","getMemberStateStamp","DynamicPropertyKeys","DynamicPropertyValues","MemberType","Sex","isExpiration","Uid","isUserLogout","MemberState","Store","priuserdefData","isUMember","isUMemberShow","memberValues","memberInfos","memberTabContentHeight","hasMemberInfo","some","enumController","getEnumOj","Differentiate","CC_NOT_DISPLAY","COUPON","isHaveCCNot","item","memberValue","precision","undefined","dataItem","length","map","formatValue","formatDateKeys","iconItems","height","position","recommend","recommends","memberInfo","record","like","initEmpty","Value","recommendInfoHeight","haveRecord","every","console","log","emptyRecommend","emptyData","showInfos","recordFilter","name","recommendHeight","lastRetailLoading","lastRetailTotal","lastRetailList","theadHeight","tableHeight","data","vlaue","i","findIndex","code","Time","rest","itemValue","date","itemData","sort","a","b","Amount","textAlign","Number","Quantity","cardInfo","cardTypeEnumList","memberCardInfos","StorageCardNo","CardTypeEnum","ValidMethodEnum","DueDate","CardStatusEnum","IsSale","overflowY","list"],"mappings":"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","file":"MemberManager.js","sourcesContent":["import React, { Component } from 'react';\r\nimport { Tabs, Button } from 'antd';\r\nimport { observer } from 'mobx-react';\r\nimport { localStore } from 'mutants-microfx';\r\nimport { TouchScroll, CardList } from 'tplus-components-touch';\r\nimport { formatPrecision, dateFormat } from '../../utils';\r\nimport { enumController, platform } from 'mutants-util';\r\nimport MemberCardInfo from './MemberCardInfo'\r\n\r\nconst { TabPane } = Tabs;\r\n\r\nlet transform = {\r\n Code: '会员编号',\r\n CardCode: '会员卡号',\r\n Name: '会员姓名',\r\n MemberTypeName: '会员类型',\r\n Mobilephone: '手机号',\r\n Telephone: '联系电话',\r\n StoreName:'开卡门店',\r\n sex: '性别',\r\n BirthDate: '出生日期',\r\n TotalIntegral: '累计积分',\r\n BalanceIntegral: '积分余额',\r\n BalanceStorage: '当前总余额',\r\n TotalStorage: '储值总额', // 字段存疑\r\n TotalBegin: '期初余额',\r\n EffectiveDate: '生效日期',\r\n ExpirationDate: '失效日期',\r\n UmemberOpenId: '是否关注微信号',\r\n UmemberLabel: '会员标签',\r\n MemberCouponTitle: '优惠券',\r\n Memo: '备注',\r\n};\r\n\r\n\r\n// 有效期类型\r\nconst validMethodEnum = {\r\n LONG_PERIOD: '长期有效',\r\n ASSIGNMENT_PERIOD: '指定有效期'\r\n}\r\n\r\n// 卡状态\r\nconst cardStatusEnumList = {\r\n ENABLED: \"已启用\", \r\n DISABLED: \"已停用\",\r\n UNBINDING: \"待绑定\",\r\n BINDING: \"已绑定\",\r\n INVALIDATION: \"已作废\",\r\n EXPIRED: \"已过期\",\r\n REFUNDING_CARD: \"退卡中\",\r\n REFUNDED_CARD: \"已退卡\"\r\n}\r\n\r\n@observer\r\nexport default class memberManager extends Component {\r\n tabHeadHeight = 37;\r\n constructor (props) {\r\n super(props)\r\n const {loginInfo: {IsEnableUMember} = {}} = localStore.get('user') || {};\r\n this.state = {IsEnableUMember: !!IsEnableUMember};\r\n }\r\n dataClear = (keys, values, columnInfo) => {\r\n const regKey = 'priuserdef';\r\n const dataSource = [];\r\n keys.forEach((key, index) => {\r\n if (key.includes(regKey)) {\r\n const {Title: label} = columnInfo.find(v => v.FieldName === key) || {};\r\n dataSource.push({key, value: values[index], label});\r\n }\r\n });\r\n return dataSource.filter(v => v.label);\r\n }\r\n\r\n // 点击购买记录加载更多按钮\r\n loadRecentlyMore = () => {\r\n const { findMemberLastRetailDetailList } = this.props\r\n findMemberLastRetailDetailList && findMemberLastRetailDetailList(50)\r\n }\r\n\r\n // 会员信息\r\n memberInfoEle = ({ title, key }) => {\r\n let { isNewRetailBCPos } = platform || {};\r\n const { member = {}, memberTabHeight, memberList = [], columnInfo = [], precisionInfo = {}, getMemberStateStamp} = this.props;\r\n const {IsEnableUMember} = this.state;\r\n const { DynamicPropertyKeys = [], DynamicPropertyValues = [], ExpirationDate = '', MemberType: { Name: MemberTypeName } = {},\r\n Sex: { Name: sex } = {}, isExpiration, Uid, isUserLogout, MemberState, Store: { Name : StoreName } = {} } = member;\r\n let priuserdefData = this.dataClear(DynamicPropertyKeys, DynamicPropertyValues, columnInfo);\r\n const isUMember = IsEnableUMember && Uid > 0; // 判断为u会员\r\n const isUMemberShow = ['UmemberOpenId', 'UmemberLabel', 'MemberCouponTitle'];\r\n const memberValues = { MemberTypeName, sex, StoreName , ...member};\r\n const memberInfos = [];\r\n const memberTabContentHeight = memberTabHeight - this.tabHeadHeight;\r\n const hasMemberInfo = Object.keys(memberValues).some(v => memberValues[v]);\r\n const { Differentiate } = enumController.getEnumOj();\r\n\r\n const CC_NOT_DISPLAY = [\"Code\", \"ExpirationDate\", \"UmemberOpenId\", \"UmemberLabel\"];\r\n\r\n transform.MemberCouponTitle = Differentiate.COUPON;\r\n transform.MemberTypeName = Differentiate.MemberTypeName;\r\n Object.keys(transform).forEach(v => {\r\n // 查找CC不需要显示的字段\r\n const isHaveCCNot = CC_NOT_DISPLAY.find(item => item == v);\r\n if (isNewRetailBCPos && isHaveCCNot) return;\r\n if (isUMemberShow.includes(v) && !isNewRetailBCPos &&!isUMember ) return;\r\n const memberValue = memberValues[v];\r\n const precision = precisionInfo[v];\r\n //let value = formatPrecisionKeys.includes(v) ? (hasMemberInfo ? formatPrecision(memberValue, precision) : undefined) : memberValue;\r\n let value = !!precision ? (hasMemberInfo ? formatPrecision(memberValue, precision) : undefined) : memberValue;\r\n (v === 'UmemberOpenId') && (value = memberValue ? '已关注' : '未关注');\r\n const dataItem = { label: `${transform[v]}`, value };\r\n memberInfos.push(dataItem);\r\n });\r\n\r\n //对自定义项的值进行处理。\r\n if (priuserdefData && priuserdefData.length > 0) {\r\n priuserdefData.map(item => {\r\n let { key, value } = item || {};\r\n let precision = precisionInfo[key];\r\n item['value'] = !!precision ? formatPrecision(value, precision) : value;\r\n })\r\n }\r\n\r\n memberInfos.push(...priuserdefData) // 插入会员自定义项\r\n memberInfos.length % 2 && memberInfos.push({}); //奇数补全\r\n const formatValue = (label, value) => {\r\n const formatDateKeys = ['出生日期', '失效日期', '生效日期'];\r\n if (formatDateKeys.includes(label)) {\r\n return dateFormat(value);\r\n } else {\r\n return value;\r\n }\r\n }\r\n //状态戳\r\n let iconItems = getMemberStateStamp(member);\r\n return (\r\n <TabPane tab={title} key={key}>\r\n <div style={{ height: memberTabContentHeight, position: 'relative' }}>\r\n <TouchScroll height={memberTabContentHeight} >\r\n {\r\n !!memberList.length && <div className='member-info-table'>\r\n {\r\n memberInfos.map((item, index) => <div key={index}>\r\n {item.label && <span>{item.label || ''}</span>}\r\n {item.label && <span data-overflow='tip'>:{formatValue(item.label, item.value)}</span>}\r\n </div>)\r\n }\r\n {\r\n !memberInfos.length && <p className='empty-data'>暂无数据~</p>\r\n }\r\n </div>\r\n }\r\n {\r\n !memberList.length && <div className='empty-data empty-data-img' />\r\n }\r\n </TouchScroll>\r\n {\r\n iconItems && iconItems.length > 0 &&\r\n <div className='memberstate-detail-stamp'>\r\n {iconItems}\r\n </div>\r\n }\r\n </div>\r\n </TabPane >)\r\n };\r\n\r\n // 智能推荐\r\n rmecommendEle = ({ title, key }) => {\r\n let { recommend: recommends = [], memberInfo: { record = [], like = [] } = {}, memberTabHeight, initEmpty } = this.props;\r\n recommends = recommends.filter(v => v);\r\n recommends.push({ Name: '最近购买', Value: like });\r\n const recommendInfoHeight = 74;\r\n const memberTabContentHeight = memberTabHeight - this.tabHeadHeight;\r\n const haveRecord = !!record.length && record.every(v => !!(v && v.value));\r\n console.log('会员偶发白屏问题:recommends==', recommends)\r\n const emptyRecommend = recommends.every(v => !((v && v.Value) || []).length) ? <div className='empty-data'>暂无推荐~</div> : null;\r\n const emptyData = (!haveRecord && recommends.every(v => !((v && v.Value) || []).length)) ? <div className='empty-data empty-data-img' /> : null;\r\n const showInfos = ['最近购买时间', '金额', '平均客单价']\r\n const recordFilter = record.filter(v => showInfos.includes(v.name));\r\n const recommendHeight = haveRecord ? memberTabContentHeight - recommendInfoHeight : memberTabContentHeight;\r\n return <TabPane tab={title} key={key}>\r\n <div className='recommend-tab' style={{height: memberTabContentHeight}}>\r\n {haveRecord && <div className='recommend-info'>\r\n {recordFilter.map((item, key) => <span key={key}>{item.name}: {item.value}</span>)}\r\n </div>}\r\n <div className='recommend-connent' style={{height: recommendHeight}}>\r\n <TouchScroll height={recommendHeight} key={recommendHeight}>\r\n {recommends.map((item, index) => {\r\n if (!(item.Value || []).length) return null;\r\n return <div key={index} className='detail-content'>\r\n <h1>{item.Name}</h1>\r\n <CardList\r\n list={item.Value || []}\r\n maxEmpyt={5}\r\n />\r\n </div>\r\n })}\r\n </TouchScroll>\r\n {initEmpty && emptyRecommend}\r\n </div>\r\n {initEmpty && emptyData}\r\n </div>\r\n </TabPane>;\r\n };\r\n\r\n // 最近购买\r\n recentlyEle = ({ title, key }) => {\r\n const {memberTabHeight, lastRetailLoading = false, lastRetailTotal = 0, lastRetailList = []} = this.props;\r\n const theadHeight = 50;\r\n const tableHeight = memberTabHeight - this.tabHeadHeight;\r\n const dataSource = [];\r\n const data = lastRetailList;\r\n data.forEach((vlaue, i) => {\r\n const index = dataSource.findIndex(v => v.code === vlaue.Code);\r\n if (~index) {\r\n dataSource[index].data.push(vlaue);\r\n } else {\r\n const { Time, Code, ...rest } = vlaue || {};\r\n const itemValue = { date: Time, code: Code, data: [rest] };\r\n dataSource.push(itemValue);\r\n }\r\n });\r\n\r\n dataSource.forEach(value => {\r\n // 金额倒序排序\r\n const itemData = value.data;\r\n if (itemData.length > 1) {\r\n itemData.sort((a = {}, b = {}) => b.Amount - a.Amount);\r\n }\r\n });\r\n\r\n return <TabPane tab={title} key={key}>\r\n {!!dataSource.length && <div className='recently-tab'>\r\n <table className='table'>\r\n <thead>\r\n <tr>\r\n <th width='25%'>消费日期</th>\r\n <th width='25%'>商品</th>\r\n <th width='25%' style={{textAlign: 'center'}}>数量</th>\r\n <th width='25%' className='amount-item'>消费金额</th>\r\n </tr>\r\n </thead>\r\n <tbody style={{height: tableHeight - theadHeight - 42}}>\r\n <TouchScroll>\r\n {dataSource.map((item, key) => {\r\n return item.data.map((v, i) =>\r\n <tr key={i}>\r\n {!i ?\r\n <td className={item.data.length === 1 ? 'only-one-data' : ''}>{dateFormat(item.date)} \r\n </td> :\r\n <td className={item.data.length - 1 === i ? 'data-border' : ''}/>\r\n }\r\n <td data-overflow='tip'>\r\n {v.Name}\r\n { \r\n Number(v.Amount) < 0 && <p className='tag'>退货</p>\r\n }\r\n </td>\r\n <td data-overflow='tip' style={{textAlign: 'center'}}>{v.Quantity}</td>\r\n <td data-overflow='tip'>{v.Amount}</td>\r\n </tr>\r\n );\r\n })}\r\n </TouchScroll>\r\n </tbody>\r\n </table>\r\n </div>}\r\n {!dataSource.length && <div style={{height: tableHeight, position: 'relative'}}><div className='empty-data empty-data-img'><div className='tip-text'>暂无数据 ~</div></div></div>}\r\n\r\n { lastRetailTotal != lastRetailList.length && <div className='more-button'>\r\n <Button type=\"text\" loading={lastRetailLoading} className='primary-color' onClick={this.loadRecentlyMore}>查看更多</Button></div>\r\n }\r\n </TabPane>;\r\n };\r\n\r\n // 会员的卡信息\r\n memberCardInfoEle = ({ title, key }) => {\r\n const { member = {}, memberTabHeight, memberList = [], cardInfo = [], cardTypeEnumList, storeKey} = this.props;\r\n const memberTabContentHeight = memberTabHeight - this.tabHeadHeight;\r\n const memberCardInfos = []\r\n\r\n cardInfo.map(item => {\r\n const { StorageCardNo, Name, TotalStorage = 0, BalanceStorage = 0, CardTypeEnum, ValidMethodEnum, DueDate, CardStatusEnum, IsSale } = item\r\n const dataSource = [\r\n { label: '卡名称', value: Name },\r\n { label: '卡号', value: StorageCardNo },\r\n { label: '卡类型', value: cardTypeEnumList[CardTypeEnum] },\r\n { label: '有效期至', value: ValidMethodEnum === 'LONG_PERIOD' ? '长期有效' : dateFormat(DueDate)},\r\n { label: '储值总额', value: formatPrecision(IsSale === 'SOLD' ? TotalStorage : 0, 2) },\r\n { label: '储值余额', value: formatPrecision(IsSale === 'SOLD' ? BalanceStorage : 0, 2) },\r\n { label: '卡状态', value: cardStatusEnumList[CardStatusEnum] }\r\n ]\r\n memberCardInfos.push(dataSource)\r\n })\r\n\r\n return (\r\n <TabPane tab={title + '('+ cardInfo.length +')'} key={key}>\r\n <div style={{ height: memberTabContentHeight, position: 'relative',overflowY: 'auto' }}>\r\n <TouchScroll height={memberTabContentHeight} scrollProgress={()=>{}}>\r\n {\r\n !!cardInfo.length && \r\n memberCardInfos.map((list, index) => <MemberCardInfo list={list} index={index} key={'卡' + (index + 1)} title={'卡' + (index + 1)} keyName='memberCardInfos' memberList={memberList} storeKey={storeKey} />)\r\n }\r\n {\r\n !cardInfo.length && <div className='empty-data empty-data-img' />\r\n }\r\n </TouchScroll>\r\n </div>\r\n </TabPane>\r\n )\r\n };\r\n\r\n render() {\r\n const {defaultActiveKey = '1', storeKey } = this.props;\r\n return (\r\n <Tabs\r\n defaultActiveKey={defaultActiveKey}\r\n onChange={this.props.onChange}\r\n className=\"member-table-container\"\r\n >\r\n { this.memberInfoEle({ title: '会员信息', key: '1' }) }\r\n { this.rmecommendEle({ title: '智能推荐', key: '2' }) }\r\n { this.recentlyEle({ title: '最近购买', key: '3' }) }\r\n { this.memberCardInfoEle({title: '卡信息', 'key': '4'}) }\r\n </Tabs>\r\n );\r\n }\r\n}"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "tplus-member",
3
- "version": "3.31.3",
3
+ "version": "3.31.4",
4
4
  "description": "",
5
5
  "main": "dist/index.js",
6
6
  "scripts": {