Commit 4f365c72 authored by Aivs's avatar Aivs

fix:客户详细信息动态化

parent 91210868
import {
sexTypeOpt,
idTypeOpt,
userTypeOption,
userLevelOption,
statusOption,
deleteOption,
jifenOption,
booleanOpt,
appTypeOpt,
} from './option.config';
export const appProperties = {
total_run_distance: '总跑量',
user_like: '点赞用户数',
active_org: '活跃组织数',
new_user: '新增用户',
recognition_user: '认证用户数',
month_distance: '月跑量',
org_count: '组织总数',
add_run_distance: '日跑量',
user_solitaire: '评论用户数',
mean_run_distance: '人均跑量',
new_org: '新增组织数',
check_user: '活跃用户数',
recognition_count: '认证次数',
date: '日期',
};
export const orgProperties = {
date: '日期',
org_id: '组织ID',
orgName: '组织名称',
all_run_distance: '总跑量',
month_distance: '月跑量',
all_user_num: '用户数',
check_user_num: '打卡用户数',
feed_like_user: '点赞用户数',
mean_run_distance: '人均跑量',
today_new_run_distance: '今日跑量',
new_run_distance: '新增跑量',
new_user_num: '新增用户',
recognition_count: '认证次数',
check_user_pct: '活跃度',
recognition_user_num: '认证用户数',
solitaire_user: '留言用户数',
unfeed_like_user: '非朋友圈点赞用户数',
};
export const userProperties = {
id: '用户ID',
joinOrgNameList: '院校组织',
mobile: '手机号',
monthlyCheckCount: '月打卡次数',
monthlyCheckDetail: '月打卡明细',
monthlyTotalDistance: '月跑量',
nickname: '昵称',
userRemainEb: '用户当前可用EB',
userRemainR: '剩余R分',
userTotalEb: 'EB总数',
userTotalR: 'R分总数',
// user_id: '用户ID',
username: '用户名字',
weeklyCheckCount: '周打卡次数',
weeklyCheckDetail: '周打卡明细',
weeklyTotalDistance: '周跑量',
allDistance: '总跑量',
timeZoneDistance: '时间段内总跑量',
lastCheckTime: '最后打卡时间',
};
export const checkDetailProperties = {
addTime: '添加时间',
deleted: '是否删除',
id: 'ID',
point: '获得EB',
rPoint: '获得R分',
syncStatus: '同步数据状态',
type: '打卡类型',
updateTime: '更新时间',
userId: '用户ID',
};
export const runDataProperties = {
userId: '用户ID',
date: '时间',
recognitionTodayRunDistance: '认证跑量',
addTime: '添加时间',
nickName: '昵称',
todayStep: '今日步数',
updateTime: '更新时间',
recognitionTodayStep: '认证步数',
id: 'ID',
dailyTotalPoint: '获得EB',
deleted: '是否删除',
wxTodayStep: '微信步数',
stepThreshold: '目标步数',
wxTodayRunDistance: '微信跑量',
haveRecognitionAction: '是否认证',
sexType: '性别',
likeNums: '获得点赞',
dailyTotalRPoint: '获得R分',
todayRunDistance: '今日跑量',
weeklyRunDistance: '周跑量',
weeklyStep: '周步数',
weeklyTotalPoint: '周EB',
weeklyTotalRPoint: '周R分',
monthlyRunDistance: '月跑量',
monthlyStep: '月步数',
monthlyTotalPoint: '月EB',
monthlyTotalRPoint: '月R分',
};
export const userMangerProps = {
id: '用户ID',
realName: '用户名',
mobileNumber: '手机号',
email: '邮箱',
idType: '证件类型',
idNumber: '证件号',
sex: '性别',
addTime: '添加时间',
updateTime: '更新时间',
deleted: '是否删除',
gyIdInfo: '戈友ID',
};
export const pointProps = {
userId: '用户ID',
appId: '积分所在APPID',
pointType: '积分类型',
point: '积分数量',
actionType: '行为类型',
pointChangeComment: '积分变动申请的请求详情',
appName: 'app名称',
appPointServiceName: '积分变动原因',
extraInfo: '额外信息',
appPointServiceId: '在APP中的行为类型',
addTime: '添加时间',
updateTime: '更改时间',
};
const appGyhd = new Map([
[
'avatar',
{
name: '头像',
type: 'image',
imageType: 'avatar',
},
],
[
'corp',
{
edit: true,
name: '工作单位',
},
],
[
'deleted',
{
name: '是否删除',
type: 'options',
optionsName: deleteOption,
},
],
['gyId', '戈友ID'],
['id', '用户id'],
[
'idCard',
{
edit: true,
name: '证件号',
},
],
[
'idName',
{
edit: true,
name: '证件用名',
},
],
[
'idType',
{
name: '证件类型',
type: 'options',
optionsName: idTypeOpt,
},
],
[
'im',
{
edit: true,
name: '微信/ QQ',
},
],
[
'name',
{
edit: true,
name: '用户名',
},
],
['openid', 'openID'],
[
'position',
{
edit: true,
name: '职位',
},
],
[
'publisher',
{
name: '是否是发布者',
type: 'options',
optionsName: booleanOpt,
},
],
[
'sex',
{
name: '性别',
type: 'options',
optionsName: sexTypeOpt,
edit: true,
},
],
[
'tel',
{
edit: true,
name: '电话',
},
],
[
'userType',
{
name: '用户类型',
type: 'options',
optionsName: userTypeOption,
},
],
[
'myself',
{
edit: true,
name: '自我介绍',
},
],
]);
const appSc = new Map([
[
'avatar',
{
name: '头像',
type: 'image',
imageType: 'avatar',
},
],
['id', 'ID'],
['username', '用户名称'],
['password', '用户密码'],
[
'gender',
{
name: '性别',
type: 'options',
optionsName: sexTypeOpt,
edit: true,
},
],
[
'birthDay',
{
name: '生日',
type: 'time',
fomat: '',
edit: true,
},
],
[
'lastLoginTime',
{
name: '最近一次登录时间',
type: 'time',
fomat: '',
},
],
['lastLoginIp', '最近一次登录IP地址'],
[
'userLevel',
{
name: '用户级别',
type: 'options',
optionsName: userLevelOption,
edit: true,
},
],
[
'nickname',
{
edit: true,
name: '用户昵称',
},
],
[
'mobile',
{
edit: true,
name: '用户手机号码',
},
],
['weixinOpenid', '微信openid'],
[
'status',
{
name: '状态',
type: 'options',
optionsName: statusOption,
edit: true,
},
],
[
'scores',
{
edit: true,
name: '积分',
},
],
[
'isSendScores',
{
name: '是否注册送过积分',
type: 'options',
optionsName: jifenOption,
edit: true,
},
],
[
'isGy',
{
name: '是不是戈友',
type: 'options',
optionsName: booleanOpt,
edit: true,
},
],
[
'gyId',
{
edit: true,
name: '戈友ID',
},
],
[
'gyProductName',
{
edit: true,
name: '标识',
},
],
]);
const appGyq = new Map([
[
'avatar',
{
name: '头像',
type: 'image',
imageType: 'avatar',
},
],
['id', 'ID'],
[
'nickname',
{
edit: true,
name: '用户昵称',
},
],
[
'mobile',
{
edit: true,
name: '用户手机号码',
},
],
[
'username',
{
edit: true,
name: '用户名称',
},
],
['password', '用户密码'],
[
'gender',
{
name: '性别',
type: 'options',
optionsName: sexTypeOpt,
edit: true,
},
],
[
'birthday',
{
name: '生日',
type: 'time',
fomat: '',
edit: true,
},
],
[
'lastLoginTime',
{
name: '最近一次登录时间',
type: 'time',
fomat: '',
},
],
['lastLoginIp', '最近一次登录IP地址'],
[
'userLevel',
{
name: '用户级别',
type: 'options',
optionsName: userLevelOption,
edit: true,
},
],
['weixinOpenid', '微信登录openid'],
[
'status',
{
name: '状态',
type: 'options',
optionsName: statusOption,
},
],
[
'scores',
{
edit: true,
name: '积分',
},
],
[
'isSendScores',
{
name: '是否注册送过积分',
type: 'options',
optionsName: jifenOption,
},
],
[
'isGy',
{
name: '是否是戈友',
type: 'options',
optionsName: booleanOpt,
edit: true,
},
],
[
'gyId',
{
edit: true,
name: '戈友ID',
},
],
[
'gyProductName',
{
edit: true,
name: '标识',
},
],
[
'school',
{
edit: true,
name: '学校',
},
],
[
'cardId',
{
edit: true,
name: '身份证号',
},
],
[
'wxId',
{
edit: true,
name: '微信号',
},
],
[
'cardTypeId',
{
name: '证件类型',
type: 'options',
optionsName: idTypeOpt,
edit: true,
},
],
[
'cardTypeName',
{
edit: true,
name: '证件类型名称',
},
],
[
'fansNum',
{
edit: true,
name: '粉丝数',
},
],
[
'likesNum',
{
edit: true,
name: '关注数',
},
],
[
'journalNum',
{
edit: true,
name: '日志数',
},
],
[
'joinExerciseNum',
{
edit: true,
name: '参加活动数',
},
],
[
'joinOrgNum',
{
edit: true,
name: '所属组织数',
},
],
[
'email',
{
edit: true,
name: '邮箱',
},
],
[
'isH5Register',
{
name: '是否是通过H5注册的用户',
type: 'boolean',
title: ['是', '否'],
},
],
[
'firm',
{
edit: true,
name: '企业名称',
},
],
[
'dutyTypesId',
{
edit: true,
name: '职务ID',
},
],
[
'dutyTypesName',
{
edit: true,
name: '职务名称',
},
],
[
'weight',
{
name: '体重',
type: 'string',
expt: 'kg',
edit: true,
},
],
[
'height',
{
name: '身高',
type: 'string',
expt: 'cm',
edit: true,
},
],
[
'stepSize',
{
name: '步长',
type: 'string',
expt: 'cm',
edit: true,
},
],
[
'isCloseWxSport',
{
name: '是否关闭微信运动',
type: 'boolean',
title: ['是', '否'],
edit: true,
},
],
]);
const appGsjl = new Map([
[
'avatar',
{
name: '头像',
type: 'image',
imageType: 'avatar',
},
],
[
'name',
{
edit: true,
name: '昵称',
},
],
['openid', '微信openid'],
[
'gy_id',
{
edit: true,
name: '戈友ID',
},
],
[
'gy_type',
{
edit: true,
name: '客户类型',
},
],
[
'gy_product_type',
{
edit: true,
name: '戈友参加的产品类型',
},
],
[
'gy_product_name',
{
edit: true,
name: '戈友参加的产品名称',
},
],
[
'gy_bs',
{
edit: true,
name: '戈友商学院',
},
],
[
'gy_team',
{
edit: true,
name: '戈友组别',
},
],
[
'dob',
{
name: '出生日期',
type: 'time',
fomat: '',
edit: true,
},
],
[
'id_name',
{
edit: true,
name: '证件姓名',
},
],
[
'id_type',
{
name: '证件类型',
type: 'options',
optionsName: idTypeOpt,
edit: true,
},
],
[
'id_card',
{
edit: true,
name: '证件号',
},
],
[
'sex',
{
name: '性别',
type: 'options',
optionsName: sexTypeOpt,
edit: true,
},
],
[
'tel',
{
edit: true,
name: '手机号',
},
],
[
'im',
{
edit: true,
name: '通讯软件(微信/QQ)',
},
],
[
'email',
{
edit: true,
name: '邮箱',
},
],
[
'corp',
{
edit: true,
name: '工作单位',
},
],
[
'position',
{
edit: true,
name: '职位',
},
],
[
'myself',
{
edit: true,
name: '自我介绍',
},
],
]);
//
const appGsjlNew = new Map([
['id', {
edit: true,
name: 'ID',
},],
['appId', {
edit: true,
name: 'APPID',
},],
[
'cardTypeName',
{
edit: true,
name: '证件类型',
},
],
[
'idCard',
{
edit: true,
name: '证件号',
},
],
[
'idCardName',
{
edit: true,
name: '证件姓名',
},
],
[
'enrollPhone',
{
edit: true,
name: '电话',
},
],
[
'operateUserPhone',
{
edit: true,
name: '操作者电话',
},
],
[
'birthDay',
{
edit: true,
name: '出生日期',
},
],
[
'genderTypes',
{
edit: true,
name: '性别',
},
],
[
'realName',
{
edit: true,
name: '昵称',
},
],
[
'wxId',
{
edit: true,
name: '微信号',
},
],
[
'email',
{
edit: true,
name: '邮箱',
},
],
[
'prettyImg',
{
name: '头像',
type: 'image',
imageType: 'avatar',
},
],
[
'gobiName',
{
edit: true,
name: '赛事名称',
},
],
[
'organizeId',
{
edit: true,
name: '组织ID',
},
],
[
'organizeName',
{
edit: true,
name: '组织名称',
},
],
[
'rolesName',
{
edit: true,
name: '分组',
},
],
[
'isOnlinePay',
{
edit: true,
name: '是否在线支持',
},
],
[
'openReceipt',
{
edit: true,
name: '是否开发票',
},
],
[
'price',
{
edit: true,
name: '价格',
},
],
[
'payStatusExplain',
{
edit: true,
name: '付费状态',
},
],
[
'nationality',
{
edit: true,
name: '国籍',
},
],
[
'province',
{
edit: true,
name: '省',
},
],
[
'city',
{
edit: true,
name: '市',
},
],
[
'district',
{
edit: true,
name: '区',
},
],
[
'address',
{
edit: true,
name: '详细地址',
},
],
[
'businessName',
{
edit: true,
name: '行业',
},
],
[
'firm',
{
edit: true,
name: '公司',
},
],
[
'dutyTypesName',
{
edit: true,
name: '职务',
},
],
[
'height',
{
edit: true,
name: '身高',
},
],
[
'weight',
{
edit: true,
name: '体重',
},
],
[
'bloodTypeName',
{
edit: true,
name: '血型',
},
],
[
'clothesSizeName',
{
edit: true,
name: '衣服尺码',
},
],
[
'foodBan',
{
edit: true,
name: '食物禁忌',
},
],
[
'medicineBan',
{
edit: true,
name: '药物禁忌',
},
],
[
'sickHistory',
{
edit: true,
name: '病史',
},
],
[
'pressingLinkPersion',
{
edit: true,
name: '紧急联系人',
},
],
[
'pressingLinkPhone',
{
edit: true,
name: '紧急联系人电话',
},
],
[
'pressingLinkRelation',
{
edit: true,
name: '紧急联系人关系',
},
],
[
'sport',
{
edit: true,
name: '运动',
},
],
[
'talk',
{
edit: true,
name: '一句话',
},
],
]);
// function a (props) {
// const keys = Object.keys(props)
// let str = ''
// keys.forEach(item => {
// str += `["${item}",${typeof props[item] !== 'string' ? '-----' : `"${props[item]}"`}],`
// })
// console.log(str)
// }
// a(app_gsjl)
// console.log(appGsjlNew['gy_bs'], 'hhhhh')
// appGsjlNew.forEach((item:any) => {
// console.log(item)
// })
export const appProps = {
'201': appGyq, // 戈友圈
'206': appGyq, // 工商大道
'101New': appGsjlNew,
'101': appGsjlNew, // 戈赛纪录
'204': appGyhd, // 戈友活动
'203': appSc, // 商城
};
export const sexTypeOpt = [
{
value: '0',
label: '未填写',
},
{
value: '1',
label: '男',
},
{
value: '2',
label: '女',
},
];
export const idTypeOpt = [
{
value: '0',
label: '身份证',
},
{
value: '1',
label: '护照',
},
{
value: '2',
label: '港澳回乡证',
},
{
value: '3',
label: '台胞证',
},
{
value: '4',
label: '其它',
},
];
export const deleteOption = [
{
value: '0',
label: '未删除',
},
{
value: '1',
label: '已删除',
},
];
export const userTypeOption = [
{
value: '1',
label: '公司员工',
},
{
value: '2',
label: '用户',
},
{
value: '3',
label: '默认',
},
];
export const userLevelOption = [
{
value: '0',
label: '普通用户',
},
{
value: '1',
label: 'VIP用户',
},
{
value: '2',
label: '高级VIP用户',
},
];
export const statusOption = [
{
value: '0',
label: '可用',
},
{
value: '1',
label: '禁用',
},
{
value: '2',
label: '注销',
},
];
export const jifenOption = [
{
value: '0',
label: '未赠送',
},
{
value: '1',
label: '已赠送',
},
];
export const booleanOpt = [
{
value: '0',
label: '否',
},
{
value: '1',
label: '是',
},
];
export const pointTypeOpt = [
{
value: '1',
label: 'EB',
},
{
value: '2',
label: 'R分',
},
];
export const appTypeOpt = [
{
value: '1010001',
label: '第一届玄奘之路商学院戈壁挑战赛',
},
{
value: '1010002',
label: '第二届玄奘之路商学院戈壁挑战赛',
},
{
value: '1010003',
label: '第三届玄奘之路商学院戈壁挑战赛',
},
{
value: '1010004',
label: '第四届玄奘之路商学院戈壁挑战赛',
},
{
value: '1010005',
label: '第五届玄奘之路商学院戈壁挑战赛',
},
{
value: '1010006',
label: '第六届玄奘之路商学院戈壁挑战赛',
},
{
value: '1010007',
label: '第七届玄奘之路商学院戈壁挑战赛',
},
{
value: '1010008',
label: '第八届玄奘之路商学院戈壁挑战赛',
},
{
value: '1010009',
label: '第九届玄奘之路商学院戈壁挑战赛',
},
{
value: '1010010',
label: '第十届玄奘之路商学院戈壁挑战赛',
},
{
value: '1010011',
label: '第十一届玄奘之路商学院戈壁挑战赛',
},
{
value: '1010012',
label: '第十二届玄奘之路商学院戈壁挑战赛',
},
{
value: '1010013',
label: '第十三届玄奘之路商学院戈壁挑战赛',
},
{
value: '1010014',
label: '第十四届玄奘之路商学院戈壁挑战赛',
},
{
value: '1010015',
label: '第十五届玄奘之路商学院戈壁挑战赛',
},
];
......@@ -55,11 +55,11 @@ const [orderList,setOrderList] = useState<any>(
[
{
name:'戈有好物',
price:""
price:"0.00元"
},
{
name:'纷享销客',
price:""
price:"0.00元"
},
{
name:'客户中心',
......@@ -210,8 +210,9 @@ const layout = {
const orderInfo = await getOrderInfoByWxId(data)
let orderItem = [...orderList]
orderItem[2].price = orderInfo.data.clientOrderPrice
orderItem[1].price = orderInfo.data.fxxkPrice
orderItem[0].price = orderInfo.data.gyhwPrice
//戈友好物和纷享销客暂时不做先屏蔽
// orderItem[1].price = orderInfo.data.fxxkPrice
// orderItem[0].price = orderInfo.data.gyhwPrice
setOrderList(orderItem)
setOrderInfo(orderInfo.data)
......
......@@ -4,141 +4,66 @@ import {LeftOutlined,DownOutlined,RightOutlined } from '@ant-design/icons';
import './../css/person.css'
import { } from 'react-router-dom'
import { useHistory} from 'react-router-dom'
import { appProps } from '.././config/chartConfig'
import { title } from 'process';
// import Top from './../components/Top'
const Person: React.FC = () => {
const location:any = useHistory()
const [customData, setCustomData] = useState<any>({})
const [userId,setUserId]=useState<any>([])
const [titleData,setTitleData]=useState<any>([])
const back=async ()=>{
// location.back()
location.push({pathname: '/Order', state: { userId }})
}
const getAppId=(appID:any)=>{
let appIdKey = `${appID}`.substring(0, 3)
// if (appIdKey === "101" && Number(appID) > 1010000) appIdKey = "101New";
return appIdKey
}
const getPropsName=(keyInfo:any)=> {
console.log(keyInfo)
console.log(titleData)
console.log(titleData.get(keyInfo))
return titleData.get(keyInfo).name
//
// if (typeof keyInfo === 'string') return keyInfo
// return keyInfo.name
}
const mapProps=(propsMaps:any,cus:any)=>{
const element:any=[];
propsMaps.forEach((item:any,key:any) => {
element.push( ( <div key={key} className="flex spaceBetween">
<p className='leftword'>{item.name}:</p>
{item.type==='image'?<img src={cus[key]} className='avatar' alt="" />:<p className='rightword'>{cus[key]?cus[key]:'-'}</p>}
</div>))
});
return element
}
//路由跳转过来携带的数据
const GetRouterData = async ()=>{
console.log(location, 'props')
setCustomData(location.location.state.userItem)
setUserId(location.location.state.userId)
const type:any=getAppId(location.location.state.userItem.appId)
const titles:any = appProps
setTitleData(titles[type])
}
useEffect(() => {
GetRouterData()
}, [customData])
}, [customData,titleData])
return (
<div>
{/* <Top text={'dddd'}/> */}
<div className="orderItem" ><LeftOutlined onClick={back}/>客户中心</div>
<div className="detail">详细信息</div>
<div className="customDetail">
<div className="flex spaceBetween">
<p className='leftword'>ID:</p>
<p className='rightword'>{customData.id}</p>
</div>
<div className="flex spaceBetween">
<p className='leftword'>证件姓名:</p>
<p className='rightword'>{customData.idCardName}</p>
</div>
<div className="flex spaceBetween">
<p className='leftword'>出生日期:</p>
<p className='rightword'>{customData.birthDay}</p>
</div>
<div className="flex spaceBetween">
<p className='leftword'>微信号:</p>
<p className='rightword'>{customData.wxId}</p>
</div>
<div className="flex spaceBetween">
<p className='leftword'>赛事名称:</p>
<p className='rightword'>{customData.gobiName}</p>
</div>
<div className="flex spaceBetween">
<p className='leftword'>分组:</p>
<p className='rightword'>{customData.rolesName}</p>
</div>
<div className="flex spaceBetween">
<p className='leftword'>证件类型:</p>
<p className='rightword'>{customData.cardTypeName}</p>
</div>
<div className="flex spaceBetween">
<p className='leftword'>电话:</p>
<p className='rightword'>{customData.enrollPhone}</p>
</div>
<div className="flex spaceBetween">
<p className='leftword'>性别:</p>
<p className='rightword'>{customData.genderTypes}</p>
</div>
<div className="flex spaceBetween">
<p className='leftword'>邮箱:</p>
<p className='rightword'>{customData.email}</p>
</div>
<div className="flex spaceBetween">
<p className='leftword'>证件号:</p>
<p className='rightword'>{customData.idCard}</p>
</div>
<div className="flex spaceBetween">
<p className='leftword'>操作者电话:</p>
<p className='rightword'>{customData.operateUserPhone}</p>
</div>
<div className="flex spaceBetween">
<p className='leftword'>昵称:</p>
<p className='rightword'>{customData.realName}</p>
</div>
<div className="flex spaceBetween">
<p className='leftword'>头像:</p>
<img className='avatar' alt="" src={customData.prettyImg}></img>
</div>
<div className="flex spaceBetween">
<p className='leftword'>组织ID:</p>
<p className='rightword'>{customData.organizeId}</p>
</div>
<div className="flex spaceBetween">
<p className='leftword'>是否在线支持:</p>
<p className='rightword'>{customData.isOnlinePay}</p>
</div>
<div className="flex spaceBetween">
<p className='leftword'>价格:</p>
<p className='rightword'>{customData.price}</p>
</div>
<div className="flex spaceBetween">
<p className='leftword'>国籍:</p>
<p className='rightword'>{customData.nationality}</p>
</div>
<div className="flex spaceBetween">
<p className='leftword'>省:</p>
<p className='rightword'>{customData.province}</p>
</div>
<div className="flex spaceBetween">
<p className='leftword'>市:</p>
<p className='rightword'>{customData.city}</p>
</div>
<div className="flex spaceBetween">
<p className='leftword'>区:</p>
<p className='rightword'>{customData.district}</p>
</div>
<div className="flex spaceBetween">
<p className='leftword'>详细地址:</p>
<p className='rightword'>{customData.address}</p>
</div>
<div className="flex spaceBetween">
<p className='leftword'>行业:</p>
<p className='rightword'>{customData.businessName}</p>
</div>
<div className="flex spaceBetween">
<p className='leftword'>公司:</p>
<p className='rightword'>{customData.id}</p>
</div>
<div className="flex spaceBetween">
<p className='leftword'>职务:</p>
<p className='rightword'>{customData.dutyTypesName}</p>
</div>
<div className="flex spaceBetween">
<p className='leftword'>身高:</p>
<p className='rightword'>{customData.height}</p>
</div>
{mapProps(titleData,customData)}
</div>
</div>
)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment