Commit 590850fc authored by XieZhiXiong's avatar XieZhiXiong

feat: 添加 会员等级、会员升级规则 CN国际化

parent 5df21305
......@@ -220,6 +220,57 @@ export default {
// 待确认会员变更
'member.management.memberPrVerifyChangeConfirm.query.verify-tip': '确定要审核通过选中的会员吗?',
// 会员等级
'member.management.memberLevel.query.columns.id': 'ID',
'member.management.memberLevel.query.columns.level': '会员等级',
'member.management.memberLevel.query.columns.levelTag': '会员等级标签',
'member.management.memberLevel.query.columns.memberLevelTypeName': '会员等级类型',
'member.management.memberLevel.query.columns.scoreTag': '升级分值标签',
'member.management.memberLevel.query.columns.roleName': '会员角色名称',
'member.management.memberLevel.query.columns.roleTypeName': '角色类型',
'member.management.memberLevel.query.columns.memberTypeName': '会员类型',
'member.management.memberLevel.query.columns.point': '升级阈值',
'member.management.memberLevel.query.columns.status': '状态',
'member.management.memberLevel.query.setting': '设置',
'member.management.memberLevel.query.levelTag.placeholder': '搜索',
'member.management.memberLevel.query.levelTag.tip': '输入 会员等级标签 进行搜索',
'member.management.memberLevel.query.roleName.placeholder': '角色名称',
'member.management.memberLevel.query.query': '查询',
'member.management.memberLevel.components.DetailInfo.status.active': '启用成功',
'member.management.memberLevel.components.DetailInfo.status.disbled': '禁用成功',
'member.management.memberLevel.components.DetailInfo.columns.id': 'ID',
'member.management.memberLevel.components.DetailInfo.columns.name': '会员权益名称',
'member.management.memberLevel.components.DetailInfo.columns.remark': '会员权益说明',
'member.management.memberLevel.components.DetailInfo.columns.acquireWay': '权益获取方式',
'member.management.memberLevel.components.DetailInfo.columns.paramWay': '参数设置方式',
'member.management.memberLevel.components.DetailInfo.columns.param': '参数',
'member.management.memberLevel.components.DetailInfo.columns.status': '参数',
'member.management.memberLevel.components.DetailInfo.columns.rules-required': '请输入相应值',
'member.management.memberLevel.components.DetailInfo.columns.rules-legal': '请输入整数或小数位不超过两位的小数',
'member.management.memberLevel.components.DetailInfo.submit.success': '保存成功',
'member.management.memberLevel.components.DetailInfo.submit': '保存',
'member.management.memberLevel.components.DetailInfo.level': '会员等级',
'member.management.memberLevel.components.DetailInfo.scoreTag': '升级分值标签',
'member.management.memberLevel.components.DetailInfo.roleTypeName': '角色类型',
'member.management.memberLevel.components.DetailInfo.levelRemark': '会员等级说明',
'member.management.memberLevel.components.DetailInfo.roleName': '会员角色名称',
'member.management.memberLevel.components.DetailInfo.memberTypeName': '会员类型',
'member.management.memberLevel.components.DetailInfo.threshold': '升级阀值',
'member.management.memberLevel.components.DetailInfo.threshold.current': '当前阀值',
'member.management.memberLevel.components.DetailInfo.rights': '会员权益',
// 会员升级规则
'member.management.memberUpgradeRule.columns.id': 'ID',
'member.management.memberUpgradeRule.columns.ruleName': '升级规则',
'member.management.memberUpgradeRule.columns.remark': '升级规则说明',
'member.management.memberUpgradeRule.columns.levelTypeName': '适用会员等级类型',
'member.management.memberUpgradeRule.columns.score': '可获取的分值',
'member.management.memberUpgradeRule.columns.rules-required': '请输入相应值',
'member.management.memberUpgradeRule.transaction.rules-legal': '请输入整数或小数',
'member.management.memberUpgradeRule.login.rules-legal': '请输入整数数值',
'member.management.memberUpgradeRule.comment.rules-legal': '请输入整数数值',
'member.management.memberUpgradeRule.save': '保存',
// 会员状态
'member.status.notAaudit': '待审核',
......
import React, { useState, useEffect } from 'react';
import { history } from 'umi';
import { history, useIntl } from 'umi';
import {
Button,
Popconfirm,
......@@ -38,6 +38,8 @@ const DetailInfo: React.FC<DetailInfoProps> = ({
const [submitLoading, setSubmitLoading] = useState(false);
const [submitDisabled, setSubmitDisabled] = useState(false);
const intl = useIntl();
const getMemberLevelInfo = () => {
setInfoLoading(true);
getMemberAbilityLevelGet({
......@@ -67,7 +69,7 @@ const DetailInfo: React.FC<DetailInfoProps> = ({
ctlType: 'none',
}).then(res => {
if (res.code === 1000) {
const msg = disabled ? '启用成功' : '禁用成功'
const msg = disabled ? intl.formatMessage({ id: 'member.management.memberLevel.components.DetailInfo.status.active' }) : intl.formatMessage({ id: 'member.management.memberLevel.components.DetailInfo.status.disbled' })
message.success(msg);
getMemberLevelInfo();
}
......@@ -76,33 +78,33 @@ const DetailInfo: React.FC<DetailInfoProps> = ({
const columns: EditableColumns[] = [
{
title: 'ID',
title: intl.formatMessage({ id: 'member.management.memberLevel.components.DetailInfo.columns.id' }),
dataIndex: 'id',
},
{
title: '会员权益名称',
title: intl.formatMessage({ id: 'member.management.memberLevel.components.DetailInfo.columns.name' }),
dataIndex: 'name',
},
{
title: '会员权益说明',
title: intl.formatMessage({ id: 'member.management.memberLevel.components.DetailInfo.columns.remark' }),
dataIndex: 'remark',
},
{
title: '权益获取方式',
title: intl.formatMessage({ id: 'member.management.memberLevel.components.DetailInfo.columns.acquireWay' }),
dataIndex: 'acquireWay',
},
{
title: '参数设置方式',
title: intl.formatMessage({ id: 'member.management.memberLevel.components.DetailInfo.columns.paramWay' }),
dataIndex: 'paramWay',
},
{
title: '参数',
title: intl.formatMessage({ id: 'member.management.memberLevel.components.DetailInfo.columns.param' }),
dataIndex: 'param',
width: '20%',
editable: isEdit,
},
{
title: '状态',
title: intl.formatMessage({ id: 'member.management.memberLevel.components.DetailInfo.columns.status' }),
dataIndex: 'status',
render: (_, record: any) => (
isEdit ? (
......@@ -112,7 +114,7 @@ const DetailInfo: React.FC<DetailInfoProps> = ({
fieldNames="status"
/>
) : (
_ === 1 ? '有效' : '失效'
_ === 1 ? intl.formatMessage({ id: 'common.status.effective' }) : intl.formatMessage({ id: 'common.status.invalid' })
)
)
}
......@@ -180,7 +182,7 @@ const DetailInfo: React.FC<DetailInfoProps> = ({
try {
const resArr = await Promise.all(promises);
if (resArr.every((item: { code: number }) => item.code === 1000)) {
message.success('保存成功');
message.success(intl.formatMessage({ id: 'member.management.memberLevel.components.DetailInfo.submit.success' }));
getMemberLevelInfo();
}
// const errorItem = resArr.find(item => item.code !== 1000);
......@@ -209,11 +211,11 @@ const DetailInfo: React.FC<DetailInfoProps> = ({
rules: [
{
required: true,
message: '请输入相应值',
message: intl.formatMessage({ id: 'member.management.memberLevel.components.DetailInfo.columns.rules-required' }),
},
{
pattern: PATTERN_MAPS.money,
message: '请输入整数或小数位不超过两位的小数',
message: intl.formatMessage({ id: 'member.management.memberLevel.components.DetailInfo.columns.rules-legal' }),
},
],
addonAfter: '%',
......@@ -246,7 +248,7 @@ const DetailInfo: React.FC<DetailInfoProps> = ({
disabled={submitDisabled}
onClick={handleSubmit}
>
保存
{intl.formatMessage({ id: 'member.management.memberLevel.components.DetailInfo.submit' })}
</Button>
)}
</>
......@@ -274,19 +276,19 @@ const DetailInfo: React.FC<DetailInfoProps> = ({
padding: '0 32px',
}}
>
<Descriptions.Item label="会员等级">{ levelInfo?.level }</Descriptions.Item>
<Descriptions.Item label="升级分值标签">{ levelInfo?.scoreTag }</Descriptions.Item>
<Descriptions.Item label="角色类型">{ levelInfo?.roleTypeName }</Descriptions.Item>
<Descriptions.Item label="会员等级说明">{ levelInfo?.levelRemark }</Descriptions.Item>
<Descriptions.Item label="会员角色名称">{ levelInfo?.roleName }</Descriptions.Item>
<Descriptions.Item label="会员类型">{ levelInfo?.memberTypeName }</Descriptions.Item>
<Descriptions.Item label={intl.formatMessage({ id: 'member.management.memberLevel.components.DetailInfo.level' })}>{ levelInfo?.level }</Descriptions.Item>
<Descriptions.Item label={intl.formatMessage({ id: 'member.management.memberLevel.components.DetailInfo.scoreTag' })}>{ levelInfo?.scoreTag }</Descriptions.Item>
<Descriptions.Item label={intl.formatMessage({ id: 'member.management.memberLevel.components.DetailInfo.roleTypeName' })}>{ levelInfo?.roleTypeName }</Descriptions.Item>
<Descriptions.Item label={intl.formatMessage({ id: 'member.management.memberLevel.components.DetailInfo.levelRemark' })}>{ levelInfo?.levelRemark }</Descriptions.Item>
<Descriptions.Item label={intl.formatMessage({ id: 'member.management.memberLevel.components.DetailInfo.roleName' })}>{ levelInfo?.roleName }</Descriptions.Item>
<Descriptions.Item label={intl.formatMessage({ id: 'member.management.memberLevel.components.DetailInfo.memberTypeName' })}>{ levelInfo?.memberTypeName }</Descriptions.Item>
</Descriptions>
</PageHeader>
</>
}
>
<Card
title="升级阀值"
title={intl.formatMessage({ id: 'member.management.memberLevel.components.DetailInfo.threshold' })}
headStyle={{
borderBottom: 'none',
}}
......@@ -295,7 +297,7 @@ const DetailInfo: React.FC<DetailInfoProps> = ({
<div className={styles.extra}>
<div className={styles['extra-main']}>
<div className={classNames(styles['extra-main-content'], styles.left)}>
<div className={styles.icon}>当前阀值</div>
<div className={styles.icon}>{intl.formatMessage({ id: 'member.management.memberLevel.components.DetailInfo.threshold.current' })}</div>
<div className={styles.input}>
<div className={styles['input-main']}>
<Input
......@@ -321,7 +323,7 @@ const DetailInfo: React.FC<DetailInfoProps> = ({
</Card>
<Card
title="会员权益"
title={intl.formatMessage({ id: 'member.management.memberLevel.components.DetailInfo.rights' })}
headStyle={{
borderBottom: 'none',
}}
......
import React, { useRef } from 'react';
import { history } from 'umi';
import { history, useIntl } from 'umi';
import { Button, Card, message } from 'antd';
import { StandardTable } from 'god';
import { ColumnType } from 'antd/lib/table/interface';
......@@ -28,20 +28,22 @@ const fetchData = async (params: any) => {
const MemberLevel: React.FC<[]> = () => {
const ref = useRef<any>({});
const intl = useIntl();
const columns: ColumnType<any>[] = [
{
title: 'ID',
title: intl.formatMessage({ id: 'member.management.memberLevel.query.columns.id' }),
dataIndex: 'id',
},
{
title: '会员等级',
title: intl.formatMessage({ id: 'member.management.memberLevel.query.columns.level' }),
dataIndex: 'level',
render: (text: any, record: any) => (
<div className={styles[`levelIcon${record.level}`]}></div>
),
},
{
title: '会员等级标签',
title: intl.formatMessage({ id: 'member.management.memberLevel.query.columns.levelTag' }),
dataIndex: 'levelTag',
key: 'levelTag',
render: (text: any, record: any) => (
......@@ -53,31 +55,31 @@ const MemberLevel: React.FC<[]> = () => {
),
},
{
title: '会员等级类型',
title: intl.formatMessage({ id: 'member.management.memberLevel.query.columns.memberLevelTypeName' }),
dataIndex: 'memberLevelTypeName',
},
{
title: '升级分值标签',
title: intl.formatMessage({ id: 'member.management.memberLevel.query.columns.scoreTag' }),
dataIndex: 'scoreTag',
},
{
title: '会员角色名称',
title: intl.formatMessage({ id: 'member.management.memberLevel.query.columns.roleName' }),
dataIndex: 'roleName',
},
{
title: '角色类型',
title: intl.formatMessage({ id: 'member.management.memberLevel.query.columns.roleTypeName' }),
dataIndex: 'roleTypeName',
},
{
title: '会员类型',
title: intl.formatMessage({ id: 'member.management.memberLevel.query.columns.memberTypeName' }),
dataIndex: 'memberTypeName',
},
{
title: '升级阈值',
title: intl.formatMessage({ id: 'member.management.memberLevel.query.columns.point' }),
dataIndex: 'point',
},
{
title: '状态',
title: intl.formatMessage({ id: 'member.management.memberLevel.query.columns.status' }),
dataIndex: 'status',
render: (text: any, record: any) => (
<StatusSwitch
......@@ -88,7 +90,7 @@ const MemberLevel: React.FC<[]> = () => {
),
},
{
title: '操作',
title: intl.formatMessage({ id: 'common.table.action' }),
dataIndex: 'option',
render: (text: any, record: any) => (
<Button
......@@ -97,7 +99,7 @@ const MemberLevel: React.FC<[]> = () => {
history.push(`/memberCenter/memberAbility/ruleConfiguration/level/edit?id=${record.id}`)
}
>
设置
{intl.formatMessage({ id: 'member.management.memberLevel.query.setting' })}
</Button>
),
},
......
import { getIntl } from 'umi';
import { ISchema } from '@formily/antd';
import { FORM_FILTER_PATH } from '@/formSchema/const';
const intl = getIntl();
export const levelSchema: ISchema = {
type: 'object',
properties: {
......@@ -19,8 +22,8 @@ export const levelSchema: ISchema = {
type: 'string',
'x-component': 'Search',
'x-component-props': {
placeholder: '搜索',
tip: '输入 会员等级标签 进行搜索',
placeholder: intl.formatMessage({ id: 'member.management.memberLevel.query.levelTag.placeholder' }),
tip: intl.formatMessage({ id: 'member.management.memberLevel.query.levelTag.tip' }),
},
},
},
......@@ -41,7 +44,7 @@ export const levelSchema: ISchema = {
type: 'string',
'x-component': 'Input',
'x-component-props': {
placeholder: '角色名称',
placeholder: intl.formatMessage({ id: 'member.management.memberLevel.query.roleName.placeholder' }),
allowClear: true,
style: {
width: 160,
......@@ -51,7 +54,7 @@ export const levelSchema: ISchema = {
submit: {
'x-component': 'Submit',
'x-component-props': {
children: '查询',
children: intl.formatMessage({ id: 'member.management.memberLevel.query.query' }),
},
},
},
......
import React, { useState, useEffect } from 'react';
import { useIntl } from 'umi';
import {
Card,
Button,
......@@ -21,6 +22,8 @@ const MemberUpgradeRule: React.FC<[]> = () => {
const [submitLoading, setSubmitLoading] = useState(false);
const [submitDisabled, setSubmitDisabled] = useState(false);
const intl = useIntl();
const getRuleList = async (params) => {
setListLoading(true);
const res = await getMemberAbilityLevelRulePage(params);
......@@ -42,28 +45,28 @@ const MemberUpgradeRule: React.FC<[]> = () => {
const columns: EditableColumns[] = [
{
title: 'ID',
title: intl.formatMessage({ id: 'member.management.memberUpgradeRule.columns.id' }),
dataIndex: 'id',
width: '15%',
},
{
title: '升级规则',
title: intl.formatMessage({ id: 'member.management.memberUpgradeRule.columns.ruleName' }),
dataIndex: 'ruleName',
width: '15%',
},
{
title: '升级规则说明',
title: intl.formatMessage({ id: 'member.management.memberUpgradeRule.columns.remark' }),
dataIndex: 'remark',
ellipsis: true,
render: text => <Tooltip title={text}>{text}</Tooltip>,
},
{
title: '适用会员等级类型',
title: intl.formatMessage({ id: 'member.management.memberUpgradeRule.columns.levelTypeName' }),
dataIndex: 'levelTypeName',
width: '15%',
},
{
title: '可获取的分值',
title: intl.formatMessage({ id: 'member.management.memberUpgradeRule.columns.score' }),
dataIndex: 'score',
width: '15%',
editable: true,
......@@ -126,19 +129,19 @@ const MemberUpgradeRule: React.FC<[]> = () => {
[VIP_RULE_TRANSACTION]: [
{
pattern: /^([0]|[1-9]+[0-9]*)(\.[0-9]+)?$/,
message: '请输入整数或小数',
message: intl.formatMessage({ id: 'member.management.memberUpgradeRule.transaction.rules-legal' }),
},
],
[VIP_RULE_LOGIN]: [
{
pattern: /^[0]$|^[1-9]+[0-9]*$/,
message: '请输入整数数值',
message: intl.formatMessage({ id: 'member.management.memberUpgradeRule.login.rules-legal' }),
},
],
[VIP_RULE_COMMENT]: [
{
pattern: /^[0]$|^[1-9]+[0-9]*$/,
message: '请输入整数数值',
message: intl.formatMessage({ id: 'member.management.memberUpgradeRule.comment.rules-legal' }),
},
],
};
......@@ -160,7 +163,7 @@ const MemberUpgradeRule: React.FC<[]> = () => {
rules: [
{
required: true,
message: '请输入相应值',
message: intl.formatMessage({ id: 'member.management.memberUpgradeRule.columns.rules-required' }),
},
...(rulesMap[record.ruleTypeEnum] || []),
],
......@@ -188,7 +191,7 @@ const MemberUpgradeRule: React.FC<[]> = () => {
disabled={submitDisabled}
onClick={handleSubmit}
>
保存
{intl.formatMessage({ id: 'member.management.memberUpgradeRule.save' })}
</Button>
}
>
......
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