Commit 7259af5e authored by XieZhiXiong's avatar XieZhiXiong

添加 会员管理 -> 待审核入库分类CN国际化

parent 9a3e4316
......@@ -5,6 +5,9 @@
* @LastEditTime: 2021-07-03 18:41:39
* @Description: 会员相关常量
*/
import { getIntl } from 'umi';
const intl = getIntl();
/* --------------------------------- 会员类型 -------------------------------- */
/**
......@@ -27,10 +30,10 @@ export const MEMBER_TYPE_CHANNEL_INDIVIDUAL = 4;
* 会员类型对应中文
*/
export const MEMBER_TYPE = {
[MEMBER_TYPE_CORPORATE]: '企业会员',
[MEMBER_TYPE_INDIVIDUAL]: '个人会员',
[MEMBER_TYPE_CHANNEL_CORPORATE]: '渠道企业会员',
[MEMBER_TYPE_CHANNEL_INDIVIDUAL]: '渠道个人会员',
[MEMBER_TYPE_CORPORATE]: intl.formatMessage({ id: 'member.constants.MEMBER_TYPE_CORPORATE' }),
[MEMBER_TYPE_INDIVIDUAL]: intl.formatMessage({ id: 'member.constants.MEMBER_TYPE_INDIVIDUAL' }),
[MEMBER_TYPE_CHANNEL_CORPORATE]: intl.formatMessage({ id: 'member.constants.MEMBER_TYPE_CHANNEL_CORPORATE' }),
[MEMBER_TYPE_CHANNEL_INDIVIDUAL]: intl.formatMessage({ id: 'member.constants.MEMBER_TYPE_CHANNEL_INDIVIDUAL' }),
};
......@@ -44,8 +47,8 @@ export const MEMBER_TYPE = {
*/
export const MEMBER_STATUS_FROZEN = 2;
export const MEMBER_STATUS = {
[MEMBER_STATUS_NORMAL]: '正常',
[MEMBER_STATUS_FROZEN]: '冻结',
[MEMBER_STATUS_NORMAL]: intl.formatMessage({ id: 'member.constants.MEMBER_STATUS_NORMAL' }),
[MEMBER_STATUS_FROZEN]: intl.formatMessage({ id: 'member.constants.MEMBER_STATUS_FROZEN' }),
};
......@@ -239,9 +242,9 @@ export const PLATFORM_MEMBER_INNER_STATUS_VERIFY_PASSED = 9;
* 会员等级类型枚举对应中文
*/
export const MEMBER_LEVEL_TYPE = {
[MEMBER_LEVEL_TYPE_PLATFORM]: '平台会员',
[MEMBER_LEVEL_TYPE_MERCHANT]: '商户会员',
[MEMBER_LEVEL_TYPE_CHANNEL]: '渠道会员',
[MEMBER_LEVEL_TYPE_PLATFORM]: intl.formatMessage({ id: 'member.constants.MEMBER_LEVEL_TYPE_PLATFORM' }),
[MEMBER_LEVEL_TYPE_MERCHANT]: intl.formatMessage({ id: 'member.constants.MEMBER_LEVEL_TYPE_MERCHANT' }),
[MEMBER_LEVEL_TYPE_CHANNEL]: intl.formatMessage({ id: 'member.constants.MEMBER_LEVEL_TYPE_CHANNEL' }),
};
......@@ -296,11 +299,11 @@ export const MEMBER_INVOICE_TYPE_5 = 5;
* 会员等级类型枚举对应中文
*/
export const MEMBER_INVOICE_TYPE = {
[MEMBER_INVOICE_TYPE_1]: '增值税专用发票',
[MEMBER_INVOICE_TYPE_2]: '普通发票',
[MEMBER_INVOICE_TYPE_3]: '机动车专用发票',
[MEMBER_INVOICE_TYPE_4]: '机打发票',
[MEMBER_INVOICE_TYPE_5]: '定额发票',
[MEMBER_INVOICE_TYPE_1]: intl.formatMessage({ id: 'member.constants.MEMBER_INVOICE_TYPE_1' }),
[MEMBER_INVOICE_TYPE_2]: intl.formatMessage({ id: 'member.constants.MEMBER_INVOICE_TYPE_2' }),
[MEMBER_INVOICE_TYPE_3]: intl.formatMessage({ id: 'member.constants.MEMBER_INVOICE_TYPE_3' }),
[MEMBER_INVOICE_TYPE_4]: intl.formatMessage({ id: 'member.constants.MEMBER_INVOICE_TYPE_4' }),
[MEMBER_INVOICE_TYPE_5]: intl.formatMessage({ id: 'member.constants.MEMBER_INVOICE_TYPE_5' }),
};
......@@ -329,9 +332,9 @@ export const MEMBER_TAX_POINT_5 = 0;
* 会员等级类型枚举对应中文
*/
export const MEMBER_TAX_POINT = {
[MEMBER_TAX_POINT_1]: '17%',
[MEMBER_TAX_POINT_2]: '11%',
[MEMBER_TAX_POINT_3]: '6%',
[MEMBER_TAX_POINT_4]: '3%',
[MEMBER_TAX_POINT_5]: '0%',
[MEMBER_TAX_POINT_1]: intl.formatMessage({ id: 'member.constants.MEMBER_TAX_POINT_1' }),
[MEMBER_TAX_POINT_2]: intl.formatMessage({ id: 'member.constants.MEMBER_TAX_POINT_2' }),
[MEMBER_TAX_POINT_3]: intl.formatMessage({ id: 'member.constants.MEMBER_TAX_POINT_3' }),
[MEMBER_TAX_POINT_4]: intl.formatMessage({ id: 'member.constants.MEMBER_TAX_POINT_4' }),
[MEMBER_TAX_POINT_5]: intl.formatMessage({ id: 'member.constants.MEMBER_TAX_POINT_5' }),
};
......@@ -181,6 +181,35 @@ export default {
'member.management.memberPrComingInvestigate.drawer.form.verify.reason': '不通过原因',
'member.management.memberPrComingInvestigate.drawer.form.verify.placeholder': '在此输入你的内容,最长120个字符,60个汉字',
// 待入库分类
'member.management.memberPrComingClassify.verify.commiting': '正在提交,请稍候...',
'member.management.memberPrComingClassify.drawer.title': '入库分类信息',
'member.management.memberPrComingClassify.drawer.form.select.placeholder': '请选择',
'member.management.memberPrComingClassify.drawer.form.classify': '入库分类信息',
'member.management.memberPrComingClassify.drawer.form.classify.code': '会员编码',
'member.management.memberPrComingClassify.drawer.form.classify.code.description-1': '长度最多10位,不可重复',
'member.management.memberPrComingClassify.drawer.form.classify.code.description-2': '不支持特殊符号(除英文"_-";下划线和中划线)',
'member.management.memberPrComingClassify.drawer.form.classify.code.rules-legal': '请输入数字、英文、_-,最多支持10个字符',
'member.management.memberPrComingClassify.drawer.form.classify.partnerType': '合作关系',
'member.management.memberPrComingClassify.drawer.form.classify.maxAmount': '单次合作金额',
'member.management.memberPrComingClassify.drawer.form.classify.maxAmount.description-1': '允许单次采购最大金额',
'member.management.memberPrComingClassify.drawer.form.classify.maxAmount.rules-legal': '请输入数值,最多支持小数点后两位',
'member.management.memberPrComingClassify.drawer.form.classify.maxAmount.rules-max': '最多支持8个字符',
'member.management.memberPrComingClassify.drawer.form.classify.areaCodes': '适用区域',
'member.management.memberPrComingClassify.drawer.form.classify.categories': '主营品类',
'member.management.memberPrComingClassify.drawer.form.classify.category': '品类',
'member.management.memberPrComingClassify.drawer.form.classify.paymentDay': '付款周期(天)',
'member.management.memberPrComingClassify.drawer.form.classify.paymentDay.rules-legal': '请输入0 或 正整数,最多8位数',
'member.management.memberPrComingClassify.drawer.form.classify.invoiceTypeName': '发票类型',
'member.management.memberPrComingClassify.drawer.form.classify.taxPoint': '税点',
'member.management.memberPrComingClassify.drawer.form.verify': '单据审核',
'member.management.memberPrComingClassify.drawer.form.verify.agree': '是否通过',
'member.management.memberPrComingClassify.drawer.form.verify.agree.pass': '审核通过',
'member.management.memberPrComingClassify.drawer.form.verify.agree.noPass': '审核不通过',
'member.management.memberPrComingClassify.drawer.form.verify.reason': '不通过原因',
'member.management.memberPrComingClassify.drawer.form.verify.placeholder': '在此输入你的内容,最长120个字符,60个汉字',
// 会员状态
'member.status.notAaudit': '待审核',
......@@ -214,4 +243,25 @@ export default {
'member.management.common.form.reason.pass': '通过原因',
'member.management.common.form.reason.noPass': '不通过原因',
'member.management.common.commiting': '正在提交,请稍候...',
// 常量相关
'member.constants.MEMBER_TYPE_CORPORATE': '企业会员',
'member.constants.MEMBER_TYPE_INDIVIDUAL': '个人会员',
'member.constants.MEMBER_TYPE_CHANNEL_CORPORATE': '渠道企业会员',
'member.constants.MEMBER_TYPE_CHANNEL_INDIVIDUAL': '渠道个人会员',
'member.constants.MEMBER_STATUS_NORMAL': '正常',
'member.constants.MEMBER_STATUS_FROZEN': '冻结',
'member.constants.MEMBER_LEVEL_TYPE_PLATFORM': '平台会员',
'member.constants.MEMBER_LEVEL_TYPE_MERCHANT': '商户会员',
'member.constants.MEMBER_LEVEL_TYPE_CHANNEL': '渠道会员',
'member.constants.MEMBER_INVOICE_TYPE_1': '增值税专用发票',
'member.constants.MEMBER_INVOICE_TYPE_2': '普通发票',
'member.constants.MEMBER_INVOICE_TYPE_3': '机动车专用发票',
'member.constants.MEMBER_INVOICE_TYPE_4': '机打发票',
'member.constants.MEMBER_INVOICE_TYPE_5': '定额发票',
'member.constants.MEMBER_TAX_POINT_1': '17%',
'member.constants.MEMBER_TAX_POINT_2': '11%',
'member.constants.MEMBER_TAX_POINT_3': '6%',
'member.constants.MEMBER_TAX_POINT_4': '3%',
'member.constants.MEMBER_TAX_POINT_5': '0%',
};
......@@ -2,7 +2,7 @@
* @Author: XieZhiXiong
* @Date: 2021-05-24 17:47:32
* @LastEditors: XieZhiXiong
* @LastEditTime: 2021-11-18 11:07:50
* @LastEditTime: 2021-12-03 17:52:44
* @Description: 审核Form抽屉
*/
import React, { useEffect } from 'react';
......@@ -10,6 +10,7 @@ import {
Drawer,
Button,
} from 'antd';
import { useIntl } from 'umi';
import NiceForm from '@/components/NiceForm';
import {
createFormActions,
......@@ -207,6 +208,8 @@ const ComingClassifyDrawer: React.FC<IProps> = (props: IProps) => {
submitLoading,
} = props;
const intl = useIntl();
useEffect(() => {
if (partnerTypes && partnerTypes.length) {
formActions.setFieldState('partnerType', state => {
......@@ -240,14 +243,14 @@ const ComingClassifyDrawer: React.FC<IProps> = (props: IProps) => {
const MemberCodeDescription = (
<div className={styles.description}>
<div>长度最多10位,不可重复</div>
<div>不支持特殊符号(除英文"_-";下划线和中划线)</div>
<div>{intl.formatMessage({ id: 'member.management.memberPrComingClassify.drawer.form.classify.code.description-1' })}</div>
<div>{intl.formatMessage({ id: 'member.management.memberPrComingClassify.drawer.form.classify.code.description-2' })}</div>
</div>
);
const MemberCypher = (
<div className={styles.description}>
<div>允许单次采购最大金额</div>
<div>{intl.formatMessage({ id: 'member.management.memberPrComingClassify.drawer.form.classify.maxAmount.description-1' })}</div>
</div>
);
......@@ -304,7 +307,7 @@ const ComingClassifyDrawer: React.FC<IProps> = (props: IProps) => {
return (
<Drawer
title="入库分类信息"
title={intl.formatMessage({ id: 'member.management.memberPrComingClassify.drawer.title' })}
width={620}
onClose={handleClose}
visible={visible}
......@@ -315,14 +318,14 @@ const ComingClassifyDrawer: React.FC<IProps> = (props: IProps) => {
}}
>
<Button onClick={handleClose} style={{ marginRight: 16 }}>
取 消
{intl.formatMessage({ id: 'member.actions.cancel' })}
</Button>
<Button
onClick={() => formActions.submit()}
type="primary"
loading={submitLoading}
>
确 定
{intl.formatMessage({ id: 'member.actions.confirm' })}
</Button>
</div>
}
......@@ -369,7 +372,7 @@ const ComingClassifyDrawer: React.FC<IProps> = (props: IProps) => {
onFieldValueChange$('agree').subscribe(fieldState => {
setFieldState('reason', state => {
state.title = fieldState.value === 0 ? '不通过原因' : '通过原因';
state.title = fieldState.value === 0 ? intl.formatMessage({ id: 'member.management.common.form.reason.noPass' }) : intl.formatMessage({ id: 'member.management.common.form.reason.pass' });
state.required = fieldState.value === 0;
setTimeout(() => {
formActions.validate('reason');
......
......@@ -2,10 +2,11 @@
* @Author: XieZhiXiong
* @Date: 2021-05-24 18:00:52
* @LastEditors: XieZhiXiong
* @LastEditTime: 2021-07-09 18:10:07
* @LastEditTime: 2021-12-03 17:48:35
* @Description:
*/
import { ISchema } from '@formily/antd';
import { getIntl } from 'umi';
import {
MEMBER_INVOICE_TYPE_1,
MEMBER_INVOICE_TYPE_2,
......@@ -22,6 +23,8 @@ import {
} from '@/constants/member';
import { PATTERN_MAPS } from '@/constants/regExp';
const intl = getIntl();
export const schema: ISchema = {
type: 'object',
properties: {
......@@ -29,7 +32,7 @@ export const schema: ISchema = {
type: 'object',
'x-component': 'FlagBox',
'x-component-props': {
title: '入库分类信息',
title: intl.formatMessage({ id: 'member.management.memberPrComingClassify.drawer.form.classify' }),
},
properties: {
MEGA_LAYOUT: {
......@@ -43,28 +46,28 @@ export const schema: ISchema = {
properties: {
code: {
type: 'string',
title: '会员编码',
title: intl.formatMessage({ id: 'member.management.memberPrComingClassify.drawer.form.classify.code' }),
required: true,
description: '{{MemberCodeDescription}}',
'x-rules': [
{
pattern: /^[a-zA-Z0-9_-]{1,10}$/,
message: '请输入数字、英文、_-,最多支持10个字符',
message: intl.formatMessage({ id: 'member.management.memberPrComingClassify.drawer.form.classify.code.rules-legal' }),
},
],
},
partnerType: {
type: 'string',
enum: [],
title: '合作关系',
title: intl.formatMessage({ id: 'member.management.memberPrComingClassify.drawer.form.classify.partnerType' }),
'x-component-props': {
placeholder: '请选择',
placeholder: intl.formatMessage({ id: 'member.management.memberPrComingClassify.drawer.form.select.placeholder' }),
},
required: true,
},
maxAmount: {
type: 'string',
title: '单次合作金额',
title: intl.formatMessage({ id: 'member.management.memberPrComingClassify.drawer.form.classify.maxAmount' }),
required: true,
'x-component-props': {
addonBefore: '¥',
......@@ -73,17 +76,17 @@ export const schema: ISchema = {
'x-rules': [
{
pattern: PATTERN_MAPS.money,
message: '请输入数值,最多支持小数点后两位',
message: intl.formatMessage({ id: 'member.management.memberPrComingClassify.drawer.form.classify.maxAmount.rules-legal' }),
},
{
max: 8,
message: '最多支持8个字符',
message: intl.formatMessage({ id: 'member.management.memberPrComingClassify.drawer.form.classify.maxAmount.rules-max' }),
},
],
},
areaCodes: {
type: 'array',
title: '适用区域',
title: intl.formatMessage({ id: 'member.management.memberPrComingClassify.drawer.form.classify.areaCodes' }),
required: true,
'x-component': 'CustomAddArray',
default: [],
......@@ -109,7 +112,7 @@ export const schema: ISchema = {
},
categories: {
type: 'array',
title: '主营品类',
title: intl.formatMessage({ id: 'member.management.memberPrComingClassify.drawer.form.classify.categories' }),
required: true,
'x-component': 'ArrayCards',
'x-component-props': {
......@@ -126,7 +129,7 @@ export const schema: ISchema = {
properties: {
category: {
type: 'string',
title: '品类',
title: intl.formatMessage({ id: 'member.management.memberPrComingClassify.drawer.form.classify.category' }),
'x-component': 'CascaderFormItem',
'x-component-props': {
fieldNames: { label: 'title', value: 'title', children: 'children' },
......@@ -181,12 +184,12 @@ export const schema: ISchema = {
// },
paymentDay: {
type: 'string',
title: '付款周期(天)',
title: intl.formatMessage({ id: 'member.management.memberPrComingClassify.drawer.form.classify.paymentDay' }),
required: true,
'x-rules': [
{
pattern: /^([0]|[1-9][0-9]{0,7})$/,
message: '请输入0 或 正整数,最多8位数',
message: intl.formatMessage({ id: 'member.management.memberPrComingClassify.drawer.form.classify.paymentDay.rules-legal' }),
},
],
},
......@@ -214,12 +217,12 @@ export const schema: ISchema = {
value: MEMBER_INVOICE_TYPE[MEMBER_INVOICE_TYPE_5],
},
],
title: '发票类型',
title: intl.formatMessage({ id: 'member.management.memberPrComingClassify.drawer.form.classify.invoiceTypeName' }),
required: true,
},
taxPoint: {
type: 'string',
title: '税点',
title: intl.formatMessage({ id: 'member.management.memberPrComingClassify.drawer.form.classify.taxPoint' }),
enum: [
{
label: MEMBER_TAX_POINT[MEMBER_TAX_POINT_1],
......@@ -255,7 +258,7 @@ export const schema: ISchema = {
type: 'object',
'x-component': 'FlagBox',
'x-component-props': {
title: '单据审核',
title: intl.formatMessage({ id: 'member.management.memberPrComingClassify.drawer.form.verify' }),
},
properties: {
MEGA_LAYOUT: {
......@@ -269,23 +272,23 @@ export const schema: ISchema = {
properties: {
agree: {
type: 'string',
title: '是否通过',
title: intl.formatMessage({ id: 'member.management.memberPrComingClassify.drawer.form.verify.agree' }),
default: 1,
'x-component': 'Radio',
required: true,
enum: [
{ label: '审核通过', value: 1 },
{ label: '审核不通过', value: 0 },
{ label: intl.formatMessage({ id: 'member.management.memberPrComingClassify.drawer.form.verify.agree.pass' }), value: 1 },
{ label: intl.formatMessage({ id: 'member.management.memberPrComingClassify.drawer.form.verify.agree.noPass' }), value: 0 },
],
'x-component-props': {},
},
reason: {
type: 'string',
title: '不通过原因',
title: intl.formatMessage({ id: 'member.management.memberPrComingClassify.drawer.form.verify.reason' }),
'x-component': 'Textarea',
required: true,
'x-component-props': {
placeholder: '在此输入你的内容,最长120个字符,60个汉字',
placeholder: intl.formatMessage({ id: 'member.management.memberPrComingClassify.drawer.form.verify.placeholder' }),
rows: 5,
},
'x-rules': [
......
......@@ -2,11 +2,11 @@
* @Author: XieZhiXiong
* @Date: 2021-05-25 14:34:56
* @LastEditors: XieZhiXiong
* @LastEditTime: 2021-11-17 18:05:10
* @LastEditTime: 2021-12-03 16:26:23
* @Description: 待入库分类
*/
import React, { useRef } from 'react';
import { history } from 'umi';
import { history, useIntl } from 'umi';
import { Card, Button } from 'antd';
import { StandardTable } from 'god';
import moment from 'moment';
......@@ -26,20 +26,22 @@ const formActions = createFormActions();
const MemberPrComingClassify: React.FC<{}> = props => {
const ref = useRef<any>({});
const intl = useIntl();
const handleJumpAudit = record => {
history.push(`/memberCenter/memberAbility/manage/memberPrComingClassify/verify?validateId=${record.validateId}`);
};
const defaultColumns = verifyComingColumn('/memberCenter/memberAbility/manage/memberPrComingClassify/detail').concat([
{
title: '操作',
title: intl.formatMessage({ id: 'common.table.action' }),
dataIndex: 'option',
render: (_, record) => (
<Button
type="link"
onClick={() => handleJumpAudit(record)}
>
审核
{intl.formatMessage({ id: 'member.actions.verify' })}
</Button>
),
},
......
......@@ -10,7 +10,7 @@ import { Button, message } from 'antd';
import {
CheckCircleOutlined,
} from '@ant-design/icons';
import { history } from 'umi';
import { history, useIntl } from 'umi';
import { usePageStatus } from '@/hooks/usePageStatus';
import { postMemberDepositClassify, getMemberDepositClassifyDetail } from '@/services/MemberV2Api';
import fetchDetailHoc from '../common/hoc/fetchDetailHoc';
......@@ -22,6 +22,8 @@ const MemberPrComingClassifyVerify: React.FC<{}> = () => {
const [visibleVerifyDrawer, setVisibleVerifyDrawer] = useState(false);
const [submitLoading, setSubmitLoading] = useState(false);
const intl = useIntl();
const handleVisibleVerifyDrawer = (flag?) => {
setVisibleVerifyDrawer(!!flag);
};
......@@ -33,7 +35,7 @@ const MemberPrComingClassifyVerify: React.FC<{}> = () => {
...value,
};
const msg = message.loading({
content: '正在提交,请稍候...',
content: intl.formatMessage({ id: 'member.management.memberPrComingClassify.verify.commiting' }),
duration: 0,
});
postMemberDepositClassify(payload, {
......@@ -67,7 +69,7 @@ const MemberPrComingClassifyVerify: React.FC<{}> = () => {
icon={<CheckCircleOutlined />}
onClick={() => handleVisibleVerifyDrawer(true)}
>
单据审核
{intl.formatMessage({ id: 'member.actions.apply.verify' })}
</Button>
<ComingClassifyDrawer
......
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