// 会员详情组件 import { connect } from "umi"; import type { ConnectState } from "@/models/connect"; import { Button, Col, FormInstance, message, Modal, Row } from "antd"; import { useEffect, useRef, useState } from "react"; import Draggable from "react-draggable"; import React from "react"; import ProForm, { ProFormSelect, ProFormText, ProFormTextArea } from "@ant-design/pro-form"; import moment from 'moment'; import memberInfoIcon from '@/assets/detail/memberInfoIcon.png' import closeIcon from '@/assets/detail/closeIcon.png' import session from "@/utils/session"; import memberDetailIcon from '@/assets/detail/memberDetailIcon.png' import ProTable from "@ant-design/pro-table"; import { handeDeleteMembershipRecord, handeGetMEMBERSHIPDetail, handleGetCONSUMPTIONRECORDList, handleGetMEMBERGROWTHList, handleGetPOINTRECORDList } from "../../service"; import AddressDetail from "../../MemberAddress/components/addressDetail"; import './style.less' import ConsumptionRecordSearch from "../../ConsumptionRecordSearch"; import GrowthValueRecordSearch from "../../GrowthValueRecordSearch"; import PointsRecordSearch from "../../PointsRecordSearch"; import RegistrationRetentionAnalysis from "../../RegistrationRetentionAnalysis"; import LicensePlateManage from "./LicensePlateManage"; import MemberDiscounts from "./MemberDiscounts"; import CollectProducts from "./CollectProducts"; import MerchantEvaluationManage from "../../MerchantEvaluationManage"; import MallEvaluationManage from "../../MallEvaluationManage"; import { handleSetlogSave } from "@/utils/format"; type DetailProps = { showDetailDrawer: boolean currentRow: any handleCloseModal: any currentUser: any } const MemberDetail = ({ showDetailDrawer, currentRow, handleCloseModal, currentUser }: DetailProps) => { const { confirm } = Modal; const modalRef = useRef(); const draggleRef = React.createRef() // 弹出框拖动效果 const [bounds, setBounds] = useState<{ left: number, right: number, top: number, bottom: number }>() // 移动的位置 const [disabled, setDraggleDisabled] = useState() // 是否拖动 let MEMBERSHIPTYPEYNObj = session.get('MEMBERSHIPTYPEYNObj'); let MEMBERSHIPLEVELYNObj = session.get('MEMBERSHIPLEVELYNObj'); let MEMBERSHIPLEVELYNList = session.get('MEMBERSHIPLEVELYNList'); let COMPANY_STATEList = session.get('COMPANY_STATEList'); let SCORETYPETree = session.get('SCORETYPETree') let CONSUMPTIONRECORDTYPEObj = session.get('CONSUMPTIONRECORDTYPEObj') // 会员详情信息 const [userDetailInfo, setUserDetailInfo] = useState({}) // 当前选中在详情里面要查看的内容 const [selectTab, setSelectTab] = useState(1) const onDraggaleStart = (event, uiData) => { const { clientWidth, clientHeight } = window.document.documentElement; const targetRect = draggleRef.current?.getBoundingClientRect(); if (!targetRect) { return; } setBounds({ left: -targetRect.left + uiData.x, right: clientWidth - (targetRect.right - uiData.x), top: -targetRect.top + uiData.y, bottom: clientHeight - (targetRect.bottom - uiData.y), }); }; // 消费的列表 let consumptionColumns: any = [ { title: "服务区名称", width: 150, dataIndex: "SERVERPART_NAME", hideInSearch: true, ellipsis: true, align: 'center' }, { title: "门店名称", width: 150, dataIndex: "SHOPNAME", hideInSearch: true, ellipsis: true, align: 'center' }, { title: "消费类型", width: 120, dataIndex: "CONSUMPTIONRECORD_TYPE", hideInSearch: true, ellipsis: true, valueType: 'select', valueEnum: CONSUMPTIONRECORDTYPEObj, align: 'center' }, { title: "订单金额", width: 120, dataIndex: "CONSUME_AMOUNT", hideInSearch: true, valueType: 'digit', ellipsis: true, align: 'center' }, { title: "消费金额", width: 120, dataIndex: "CONSUME_PRICE", hideInSearch: true, valueType: 'digit', ellipsis: true, align: 'center' }, { title: "消费积分", width: 120, dataIndex: "CONSUME_SCORE", hideInSearch: true, valueType: 'digit', ellipsis: true, align: 'center' }, { title: "实付金额", width: 120, dataIndex: "PAY_AMOUNT", hideInSearch: true, valueType: 'digit', ellipsis: true, align: 'center' }, { title: "优惠金额", width: 150, dataIndex: "COUPON_AMOUNT", hideInSearch: true, ellipsis: true, align: 'center' }, { title: "消费时间 ", width: 150, dataIndex: "CONSUMPTIONRECORD_DATE", hideInSearch: true, align: 'center', render: (_, record) => { return record?.CONSUMPTIONRECORD_DATE ? moment(record?.CONSUMPTIONRECORD_DATE).format('YYYY-MM-DD HH:mm:ss') : '-' } }, ] // 积分的列表 let PointColumns: any = [ { title: "服务区名称", width: 150, dataIndex: "SERVERPART_NAME", hideInSearch: true, ellipsis: true, align: 'center' }, { title: "门店名称", width: 150, dataIndex: "SHOPNAME", hideInSearch: true, ellipsis: true, align: 'center' }, { title: "积分方式", width: 120, dataIndex: "POINT_TYPE", hideInSearch: true, ellipsis: true, align: 'center', valueType: 'select', valueEnum: { "1": "累计", "-1": "消耗" }, }, { title: "积分来源", width: 120, dataIndex: "POINT_SOURCE", hideInSearch: true, ellipsis: true, valueType: 'treeSelect', align: 'center', request: () => { return SCORETYPETree } }, { title: "本次积分", width: 120, dataIndex: "CURRENT_POINT", hideInSearch: true, ellipsis: true, align: 'center', valueType: "digit" }, { title: "累计积分", width: 120, dataIndex: "MEMBERSHIP_POINT", hideInSearch: true, ellipsis: true, align: 'center', valueType: "digit" }, { title: "获取时间", width: 120, dataIndex: "CREATE_DATE", hideInSearch: true, align: 'center', ellipsis: true, }, ] // 成长值的列表 let GrowthValueColumns: any = [ { title: "服务区名称", width: 150, dataIndex: "SERVERPART_NAME", hideInSearch: true, align: 'center', ellipsis: true, }, { title: "门店名称", width: 150, dataIndex: "SHOPNAME", hideInSearch: true, align: 'center', ellipsis: true, }, { title: "累计成长值", width: 120, dataIndex: "MEMBERSHIP_GROWTH", hideInSearch: true, ellipsis: true, align: 'center', valueType: 'digit' }, { title: "本次成长值", width: 120, dataIndex: "CURRENT_GROWTH", hideInSearch: true, ellipsis: true, align: 'center', valueType: 'digit' }, { title: "成长来源", width: 120, dataIndex: "GROWTH_SOURCE", hideInSearch: true, ellipsis: true, valueType: 'treeSelect', align: 'center', request: () => { return SCORETYPETree } }, { title: "成长方式", width: 120, dataIndex: "GROWTH_TYPE", hideInSearch: true, align: 'center', ellipsis: true, valueType: 'select', valueEnum: { "1": "积累", "-1": "消耗", } }, { title: "操作时间", width: 120, dataIndex: "OPERATE_DATE", align: 'center', hideInSearch: true, render: (_, record) => { return record?.OPERATE_DATE ? moment(record?.OPERATE_DATE).format('YYYY-MM-DD') : "-" } }, ] useEffect(() => { if (showDetailDrawer) { setSelectTab(1) } }, [showDetailDrawer]) return ( } destroyOnClose={true} width={1200} visible={showDetailDrawer} footer={false} afterClose={() => { modalRef.current?.resetFields(); // setCurrentRow(undefined); }} maskClosable={true} bodyStyle={{ maxHeight: '850px', // 你可以根据需要调整高度 overflowY: 'auto', }} onCancel={() => { setSelectTab(0) handleCloseModal() }} modalRender={(modal) => { return onDraggaleStart(event, uiData)} handle=".modalTop" >
{modal}
}} > { if (currentRow?.MEMBERSHIP_ID || currentRow?.USER_ID) { const req: any = { MEMBERSHIPId: currentRow?.MEMBERSHIP_ID || currentRow?.USER_ID } const data = await handeGetMEMBERSHIPDetail(req) console.log('userDetailData', data); let obj: any = { ...data, OPERATE_DATE: data.OPERATE_DATE ? moment(data.OPERATE_DATE).format('YYYY-MM-DD HH:mm:ss') : '', ADDTIME: data.ADDTIME ? moment(data.ADDTIME).format('YYYY-MM-DD HH:mm:ss') : '', MEMBERSHIP_BIRTHDAY: currentRow?.MEMBERSHIP_BIRTHDAY ? moment(currentRow?.MEMBERSHIP_BIRTHDAY).format('YYYY-MM-DD') : '', } setUserDetailInfo(obj) return obj } else { return {} } }} >
会员详情
{ setSelectTab(0) handleCloseModal() }} />
{userDetailInfo?.MEMBERSHIP_NAME || "-"} {/* {userDetailInfo?.MEMBERSHIP_SEX === 0 ? '男' : userDetailInfo?.MEMBERSHIP_SEX === 1 ? '女' : ''} */} { userDetailInfo?.MEMBERSHIP_TYPE && MEMBERSHIPTYPEYNObj && MEMBERSHIPTYPEYNObj[userDetailInfo?.MEMBERSHIP_TYPE] ? {MEMBERSHIPTYPEYNObj[userDetailInfo?.MEMBERSHIP_TYPE]} : "" } { userDetailInfo?.MEMBERSHIP_LEVEL && MEMBERSHIPLEVELYNObj && MEMBERSHIPLEVELYNObj[userDetailInfo?.MEMBERSHIP_LEVEL] ? {MEMBERSHIPLEVELYNObj[userDetailInfo?.MEMBERSHIP_LEVEL]} : "" }
{/* */}
{ setSelectTab(1) handleSetlogSave(`查看【${userDetailInfo?.MEMBERSHIP_NAME}】详细信息`) }}>详情信息 { setSelectTab(2) handleSetlogSave(`查看【${userDetailInfo?.MEMBERSHIP_NAME}】消费记录`) }}>消费记录 { setSelectTab(3) handleSetlogSave(`查看【${userDetailInfo?.MEMBERSHIP_NAME}】成长值记录`) }}>成长值记录 { setSelectTab(4) handleSetlogSave(`查看【${userDetailInfo?.MEMBERSHIP_NAME}】积分记录`) }}>积分记录 { setSelectTab(5) handleSetlogSave(`查看【${userDetailInfo?.MEMBERSHIP_NAME}】地址管理`) }}>地址管理 { setSelectTab(6) handleSetlogSave(`查看【${userDetailInfo?.MEMBERSHIP_NAME}】活动轨迹`) }}>活动轨迹 { setSelectTab(7) handleSetlogSave(`查看【${userDetailInfo?.MEMBERSHIP_NAME}】车牌管理`) }}>车牌管理 { setSelectTab(8) handleSetlogSave(`查看【${userDetailInfo?.MEMBERSHIP_NAME}】优惠券管理`) }}>优惠券管理 { setSelectTab(9) handleSetlogSave(`查看【${userDetailInfo?.MEMBERSHIP_NAME}】收藏商品`) }}>收藏商品 { setSelectTab(10) handleSetlogSave(`查看【${userDetailInfo?.MEMBERSHIP_NAME}】商家评价`) }}>商家评价 { setSelectTab(11) handleSetlogSave(`查看【${userDetailInfo?.MEMBERSHIP_NAME}】商城评价`) }}>商城评价
{/* */}
{/* 消费记录 */} { selectTab === 2 ? : "" } {/* 成长值记录 */} { selectTab === 3 ? : '' } {/* 积分记录 */} { selectTab === 4 ? : '' } {/* 地址管理 */} { selectTab === 5 ? : '' } {/* 活动轨迹 */} { selectTab === 6 ? : "" } {/* 车牌管理 */} { selectTab === 7 ? : "" } {/* 会员优惠券 */} { selectTab === 8 ? : "" } {/* 会员收藏 */} { selectTab === 9 ? : "" } {/* 商家评价 */} { selectTab === 10 ? : "" } {/* 商城评价 */} { selectTab === 11 ? : "" }
{ userDetailInfo?.MEMBERSHIP_TYPE === 9999 ? : "" }
) } export default connect(({ user, }: ConnectState) => ({ currentUser: user.currentUser, }))(MemberDetail);