Commit 25ed95dd authored by Bill's avatar Bill

Merge branch 'dev' of 10.0.0.22:lingxi/lingxi-business-paltform into dev

parents 668da6e4 e9318ba9
......@@ -3,7 +3,7 @@
* @Date: 2020-08-19 15:33:27
* @LastEditors: XieZhiXiong
* @Copyright: 1549414730@qq.com
* @LastEditTime: 2020-09-30 17:34:06
* @LastEditTime: 2020-10-26 16:46:50
*/
import { RouterChild } from '../utils';
......@@ -36,13 +36,20 @@ const payandSettleRoute: RouterChild = {
name: 'quotaMenage',
component: '@/pages/payandSettle/creditApplication/quotaMenage/index',
},
// 授信额度管理详情
// 授信额度管理-详情
{
path: '/memberCenter/payandSettle/creditApplication/quotaMenage/detail',
name: 'quotaMenageDetail',
component: '@/pages/payandSettle/creditApplication/quotaMenage/detail/index',
hideInMenu: true,
},
// 授信额度管理-申请
{
path: '/memberCenter/payandSettle/creditApplication/quotaMenage/apply',
name: 'quotaApply',
component: '@/pages/payandSettle/creditApplication/quotaPrSubmit/verify',
hideInMenu: true,
},
// 授信申请单查询
{
path: '/memberCenter/payandSettle/creditApplication/quotaFormQuery',
......@@ -62,13 +69,20 @@ const payandSettleRoute: RouterChild = {
name: 'quotaPrSubmit',
component: '@/pages/payandSettle/creditApplication/quotaPrSubmit/index',
},
// 待提交授信申请单详情
// 待提交授信申请单-详情
{
path: '/memberCenter/payandSettle/creditApplication/quotaPrSubmit/detail',
name: 'quotaPrSubmitDetail',
component: '@/pages/payandSettle/creditApplication/quotaPrSubmit/detail',
hideInMenu: true,
},
// 待提交授信申请单-详情
{
path: '/memberCenter/payandSettle/creditApplication/quotaPrSubmit/verify',
name: 'quotaPrSubmitDetail',
component: '@/pages/payandSettle/creditApplication/quotaPrSubmit/verify',
hideInMenu: true,
},
],
},
// 授信处理
......@@ -95,7 +109,7 @@ const payandSettleRoute: RouterChild = {
name: 'quotaFormQuery',
component: '@/pages/payandSettle/creditManage/quotaFormQuery/index',
},
// 授信申请单详情
// 授信申请单-详情
{
path: '/memberCenter/payandSettle/creditManage/quotaFormQuery/detail',
name: 'quotaFormQueryDetail',
......@@ -108,7 +122,7 @@ const payandSettleRoute: RouterChild = {
name: 'quotaPrSubmit',
component: '@/pages/payandSettle/creditManage/quotaPrSubmit/index',
},
// 待提交授信申请单详情
// 待提交授信申请单-详情
{
path: '/memberCenter/payandSettle/creditManage/quotaPrSubmit/detail',
name: 'quotaPrSubmitDetail',
......@@ -121,7 +135,7 @@ const payandSettleRoute: RouterChild = {
name: 'quotaPr',
component: '@/pages/payandSettle/creditManage/quotaPr/index',
},
// 待审核授信申请单详情
// 待审核授信申请单-详情
{
path: '/memberCenter/payandSettle/creditManage/quotaPr/detail',
name: 'quotaPrDetail',
......@@ -134,7 +148,7 @@ const payandSettleRoute: RouterChild = {
name: 'quotaPrConfirm',
component: '@/pages/payandSettle/creditManage/quotaPrConfirm/index',
},
// 待确认授信申请单详情
// 待确认授信申请单-详情
{
path: '/memberCenter/payandSettle/creditManage/quotaPrConfirm/detail',
name: 'quotaPrConfirmDetail',
......
......@@ -12,7 +12,7 @@
background: #EBF7F2;
}
&__warnning {
&__warning {
color: #FF991F;
background: #FFFAE6;
}
......
......@@ -10,7 +10,7 @@ import classNames from 'classnames';
import styles from './index.less';
interface StatusTagProps {
type: 'success' | 'warnning' | 'default' | 'danger' | 'primary';
type: 'success' | 'warning' | 'default' | 'danger' | 'primary';
title: React.ReactNode;
};
......
......@@ -887,4 +887,36 @@ export const BILL_TRADE_OPERATION = {
[BILL_TRADE_OPERATION_ORDER_PAY]: '订单支付',
[BILL_TRADE_OPERATION_ORDER_RETURN]: '订单退款',
[BILL_TRADE_OPERATION_REPAYMENT]: '还款',
};
// 授信内部状态
export const CREDIT_INNER_STATUS_UNCOMMITTED = 1; // 待提交审核
export const CREDIT_INNER_STATUS_COMMITTED = 2; // 已提交
export const CREDIT_INNER_STATUS_SUCCESS_1 = 3; // 一级审核通过
export const CREDIT_INNER_STATUS_SUCCESS_2 = 4; // 二级审核通过
export const CREDIT_INNER_STATUS_SUCCESS_3 = 5; // 三级审核通过
export const CREDIT_INNER_STATUS_FAILED = 6; // 审核不通过
export const CREDIT_INNER_STATUS_CONFIRM_SUCCESS = 7; // 确认审核通过
export const CREDIT_INNER_STATUS_CONFIRM_FAILED = 8; // 确认审核不通过
export const CREDIT_INNER_STATUS = {
[CREDIT_INNER_STATUS_UNCOMMITTED]: '待提交审核',
[CREDIT_INNER_STATUS_COMMITTED]: '已提交',
[CREDIT_INNER_STATUS_SUCCESS_1]: '一级审核通过',
[CREDIT_INNER_STATUS_SUCCESS_2]: '二级审核通过',
[CREDIT_INNER_STATUS_SUCCESS_3]: '三级审核通过',
[CREDIT_INNER_STATUS_FAILED]: '审核不通过',
[CREDIT_INNER_STATUS_CONFIRM_SUCCESS]: '确认审核通过',
[CREDIT_INNER_STATUS_CONFIRM_FAILED]: '确认审核不通过',
};
// 授信外部状态
export const CREDIT_OUTER_STATUS_UNCOMMITTED = 1; // 待提交
export const CREDIT_OUTER_STATUS_UNCONFIRMED = 2; // 待确认
export const CREDIT_OUTER_STATUS_SUCCESS = 3; // 接受申请
export const CREDIT_OUTER_STATUS_FAILED = 4; // 不接受申请
export const CREDIT_OUTER_STATUS = {
[CREDIT_OUTER_STATUS_UNCOMMITTED]: '待提交',
[CREDIT_OUTER_STATUS_UNCONFIRMED]: '待确认',
[CREDIT_OUTER_STATUS_SUCCESS]: '接受申请',
[CREDIT_OUTER_STATUS_FAILED]: '不接受申请',
};
\ No newline at end of file
......@@ -393,6 +393,7 @@ export default {
'menu.payandSettle.creditApplication': '授信申请',
'menu.payandSettle.creditApplication.quotaMenage': '授信额度管理',
'menu.payandSettle.creditApplication.quotaMenageDetail': '授信额度管理',
'menu.payandSettle.creditApplication.quotaApply': '授信额度申请',
'menu.payandSettle.creditApplication.quotaFormQuery': '授信申请单查询',
'menu.payandSettle.creditApplication.quotaFormQueryDetail': '授信申请单详情',
'menu.payandSettle.creditApplication.quotaPrSubmit': '待提交授信申请单',
......
......@@ -10,7 +10,7 @@ import classNames from 'classnames';
import styles from './index.less';
interface StatusTagProps {
type: 'success' | 'warnning' | 'default' | 'danger' | 'primary';
type: 'success' | 'warning' | 'default' | 'danger' | 'primary';
title: string;
};
......
......@@ -37,8 +37,8 @@ export const MEMBER_STATUS_TAG_MAP = {
export const MEMBER_INNER_STATUS_TYPE = {
[MEMBER_INNER_STATUS_REGISTERED]: 'default',
[MEMBER_INNER_STATUS_UNCOMMITTED]: 'primary',
[MEMBER_INNER_STATUS_UNREVIEWED_1]: 'warnning',
[MEMBER_INNER_STATUS_UNREVIEWED_2]: 'warnning',
[MEMBER_INNER_STATUS_UNREVIEWED_1]: 'warning',
[MEMBER_INNER_STATUS_UNREVIEWED_2]: 'warning',
[MEMBER_INNER_STATUS_FAILED]: 'danger',
[MEMBER_INNER_STATUS_SUCCESS]: 'success',
};
......@@ -46,7 +46,7 @@ export const MEMBER_INNER_STATUS_TYPE = {
// 会员外部状态 StatusTag map
export const MEMBER_OUTER_STATUS_TYPE = {
[MEMBER_OUTER_STATUS_UNCOMMITTED]: 'primary',
[MEMBER_OUTER_STATUS_UNREVIEWED]: 'warnning',
[MEMBER_OUTER_STATUS_UNREVIEWED]: 'warning',
[MEMBER_OUTER_STATUS_FAILED]: 'danger',
[MEMBER_OUTER_STATUS_SUCCESS]: 'success',
};
......
......@@ -2,7 +2,7 @@
* @Author: XieZhiXiong
* @Date: 2020-10-15 15:41:51
* @LastEditors: XieZhiXiong
* @LastEditTime: 2020-10-15 15:44:52
* @LastEditTime: 2020-10-26 16:58:35
* @Description:
*/
import {
......@@ -12,31 +12,44 @@ import {
CREDIT_REPAYMENT_STATUS_UNCONFIRMED,
CREDIT_REPAYMENT_STATUS_PAID,
CREDIT_REPAYMENT_STATUS_OVERDUE,
CREDIT_OUTER_STATUS_UNCOMMITTED,
CREDIT_OUTER_STATUS_UNCONFIRMED,
CREDIT_OUTER_STATUS_SUCCESS,
CREDIT_OUTER_STATUS_FAILED,
CREDIT_INNER_STATUS_UNCOMMITTED,
CREDIT_INNER_STATUS_COMMITTED,
CREDIT_INNER_STATUS_SUCCESS_1,
CREDIT_INNER_STATUS_SUCCESS_2,
CREDIT_INNER_STATUS_SUCCESS_3,
CREDIT_INNER_STATUS_FAILED,
CREDIT_INNER_STATUS_CONFIRM_SUCCESS,
CREDIT_INNER_STATUS_CONFIRM_FAILED,
} from '@/constants';
// 授信会员状态
export const CREDIT_MEMBER_STATUS_NOT_APPLIED = 1; // 未申请的
export const CREDIT_MEMBER_STATUS_APPLYING = 2; // 申请中
export const CREDIT_MEMBER_STATUS_NORMAL = 3; // 正常的
export const CREDIT_MEMBER_STATUS_FROZEN = 4; // 已冻结
export const CREDIT_MEMBER_STATUS = {
[CREDIT_MEMBER_STATUS_NOT_APPLIED]: '未申请',
[CREDIT_MEMBER_STATUS_APPLYING]: '申请中',
[CREDIT_MEMBER_STATUS_NORMAL]: '正常的',
[CREDIT_MEMBER_STATUS_FROZEN]: '已冻结',
};
// 账单交易状态
export const BILL_TRADE_STATUS_UNCONFIRMED = 1; // 待确认还款结果
export const BILL_TRADE_STATUS_OUTSTANDIND = 2; // 确认未到账
export const BILL_TRADE_STATUS_RECEIVED = 3; // 确认到账
// 账单状态 StatusTag map
export const BILL_TRADE_STATUS_TAB_MAP = {
[BILL_TRADE_STATUS_UNCONFIRMED]: 'primary',
[BILL_TRADE_STATUS_OUTSTANDIND]: 'danger',
[BILL_TRADE_STATUS_RECEIVED]: 'success',
};
export const STATUS_COLOR_MAP = {
0: '#669EDE',
1: '#41CC9E',
2: '#EF6260',
};
export const STATUS_COLOR_TXT = {
0: '待审核',
1: '审核通过',
2: '冻结',
};
// 还款状态 StatusTag map
export const CREDIT_REPAYMENT_STATUS_TAG_MAP = {
[CREDIT_REPAYMENT_STATUS_OUTSTANDING]: 'default',
......@@ -45,16 +58,40 @@ export const CREDIT_REPAYMENT_STATUS_TAG_MAP = {
[CREDIT_REPAYMENT_STATUS_OVERDUE]: 'danger',
};
// 会员状态 Badge map
export const MEMBER_STATUS_BADGE_MAP = {
[CREDIT_MEMBER_STATUS_NOT_APPLIED]: '#FF991F',
[CREDIT_MEMBER_STATUS_APPLYING]: '#00B37A',
[CREDIT_MEMBER_STATUS_NORMAL]: '#00B37A',
[CREDIT_MEMBER_STATUS_FROZEN]: '#E63F3B',
};
// 会员状态 StatusTag map
export const MEMBER_STATUS_TAG_MAP = {
[MEMBER_STATUS_NORMAL]: 'success',
[MEMBER_STATUS_FROZEN]: 'default'
[CREDIT_MEMBER_STATUS_NOT_APPLIED]: 'warning',
[CREDIT_MEMBER_STATUS_APPLYING]: 'success',
[CREDIT_MEMBER_STATUS_NORMAL]: 'success',
[CREDIT_MEMBER_STATUS_FROZEN]: 'danger',
};
// 会员状态 StatusTag map
export const MEMBER_STATUS_BADGE_MAP = {
1: '#EF6260',
2: '#EF6260',
// 授信外部状态
export const CREDIT_OUTER_STATUS_TAG_MAP = {
[CREDIT_OUTER_STATUS_UNCOMMITTED]: 'default',
[CREDIT_OUTER_STATUS_UNCONFIRMED]: 'primary',
[CREDIT_OUTER_STATUS_SUCCESS]: 'success',
[CREDIT_OUTER_STATUS_FAILED]: 'danger',
};
// 授信内部状态
export const CREDIT_OUTER_STATUS_BADGE_MAP = {
[CREDIT_INNER_STATUS_UNCOMMITTED]: '#669EDE',
[CREDIT_INNER_STATUS_COMMITTED]: '#41CC9E',
[CREDIT_INNER_STATUS_SUCCESS_1]: '#41CC9E',
[CREDIT_INNER_STATUS_SUCCESS_2]: '#41CC9E',
[CREDIT_INNER_STATUS_SUCCESS_3]: '#41CC9E',
[CREDIT_INNER_STATUS_FAILED]: '#EF6260',
[CREDIT_INNER_STATUS_CONFIRM_SUCCESS]: '#41CC9E',
[CREDIT_INNER_STATUS_CONFIRM_FAILED]: '#EF6260',
};
......@@ -63,7 +100,7 @@ export const MEMBER_STATUS_BADGE_MAP = {
*/
export const statusMap = {
'1': { title: '申请提现', type: 'warnning' },
'1': { title: '申请提现', type: 'warning' },
'2': { title: '审核通过', type: 'success' },
'3': { title: '审核不通过', type: 'default' },
'4': { title: '提现成功', type: 'success' },
......
......@@ -5,10 +5,18 @@ import { EditableColumns } from '@/components/PolymericTable/interface';
import EyePreview from '@/components/EyePreview';
interface HistoryListHistoryListProps {
dataSource: {
applyNo: string,
originalQuota: number;
applyQuota: number;
auditQuota: number;
applyTime: string;
}[];
};
const HistoryList: React.FC = () => {
const HistoryList: React.FC<HistoryListHistoryListProps> = ({
dataSource = [],
}) => {
const columns: EditableColumns[] = [
{
......@@ -34,7 +42,7 @@ const HistoryList: React.FC = () => {
},
{
title: '审批额度(元)',
dataIndex: 'reason',
dataIndex: 'auditQuota',
align: 'center',
},
{
......@@ -44,10 +52,6 @@ const HistoryList: React.FC = () => {
},
];
const handlePaginationChange = () => {
};
return (
<MellowCard
title="历史授信申请"
......@@ -56,15 +60,11 @@ const HistoryList: React.FC = () => {
}}
>
<PolymericTable
rowKey="remark"
dataSource={[]}
rowKey="applyNo"
dataSource={dataSource}
columns={columns}
loading={false}
pagination={{
pageSize: 10,
total: 200,
}}
onPaginationChange={handlePaginationChange}
pagination={null}
/>
</MellowCard>
);
......
/*
* @Author: XieZhiXiong
* @Date: 2020-09-29 10:47:07
* @LastEditors: XieZhiXiong
* @LastEditTime: 2020-10-26 17:11:54
* @Description: 外部流转组件
*/
import React from 'react';
import { Steps } from 'antd';
import MellowCard from '@/components/MellowCard';
......@@ -8,10 +15,12 @@ interface OuterCirculation {
title: string,
description: string,
}[];
current: number;
};
const OuterCirculation: React.FC<OuterCirculation> = ({
steps = [],
current,
}) => {
if (!Array.isArray(steps)) {
......@@ -25,7 +34,7 @@ const OuterCirculation: React.FC<OuterCirculation> = ({
marginBottom: 24,
}}
>
<Steps style={{ marginTop: 30 }} progressDot current={2}>
<Steps style={{ marginTop: 30 }} progressDot current={current}>
{steps.map((item, index) => (
<Steps.Step key={index} title={item.title} description={item.description} />
))}
......
/*
* @Author: XieZhiXiong
* @Date: 2020-09-29 15:04:46
* @LastEditors: XieZhiXiong
* @LastEditTime: 2020-10-26 18:54:44
* @Description: 外部流转记录
*/
import React from 'react';
import { CREDIT_OUTER_STATUS } from '@/constants';
import MellowCard from '@/components/MellowCard';
import PolymericTable from '@/components/PolymericTable';
import { EditableColumns } from '@/components/PolymericTable/interface';
import StatusTag from '@/components/StatusTag';
import { CREDIT_OUTER_STATUS_TAG_MAP } from '../../../constant';
interface OuterCirculationRecordProps {
dataSource: {
id: number,
order: number,
role: string,
roleName: string,
status: number,
action: string,
createTime: string,
operate: string,
operateTime: string,
opinion: string,
}[];
onPaginationChange?: (page: number, size: number) => void;
......@@ -26,28 +33,29 @@ const OuterCirculationRecord: React.FC<OuterCirculationRecordProps> = ({
{
title: '序号',
dataIndex: 'order',
align: 'center',
align: 'center',
render: (_, record, index) => index + 1,
},
{
title: '操作角色',
dataIndex: 'role',
dataIndex: 'roleName',
align: 'center',
},
{
title: '状态',
dataIndex: 'status',
align: 'center',
render: text => <StatusTag type="warnning" title="不接受申请" />
render: text => <StatusTag type={text} title={CREDIT_OUTER_STATUS[text]} />
},
{
title: '操作',
dataIndex: 'action',
dataIndex: 'operate',
align: 'center',
ellipsis: true,
},
{
title: '操作时间',
dataIndex: 'createTime',
dataIndex: 'operateTime',
align: 'center',
},
{
......@@ -66,21 +74,17 @@ const OuterCirculationRecord: React.FC<OuterCirculationRecordProps> = ({
return (
<MellowCard
title="历史授信申请"
title="外部流转记录"
style={{
marginBottom: 24,
}}
>
<PolymericTable
rowKey="id"
rowKey="operateTime"
dataSource={dataSource}
columns={columns}
loading={false}
pagination={{
pageSize: 10,
total: 200,
}}
onPaginationChange={handlePaginationChange}
pagination={null}
/>
</MellowCard>
);
......
import { useBusinessEffects } from './useBusinessEffects';
export const createEffects = (context, actions) => {
useBusinessEffects(context, actions);
};
\ No newline at end of file
/*
* @Author: XieZhiXiong
* @Date: 2020-10-22 17:31:08
* @LastEditors: XieZhiXiong
* @LastEditTime: 2020-10-26 18:29:35
* @Description: 联动逻辑相关
*/
import { FormEffectHooks, FormPath } from '@formily/antd';
import { useLinkageUtils } from '@/utils/formEffectUtils';
const {
onFieldInputChange$,
onFieldValueChange$,
} = FormEffectHooks;
export const useBusinessEffects = (context, actions) => {
const {
getFieldValue,
setFieldValue,
getFieldState,
setFieldState,
} = actions;
const linkage = useLinkageUtils();
// 还款金额 联动 滑块条
onFieldInputChange$('applyQuota').subscribe(fieldState => {
linkage.value('quotaSlide', +fieldState.value);
});
}
\ No newline at end of file
......@@ -14,50 +14,86 @@ import { createFormActions, FormEffectHooks } from '@formily/antd';
import MellowCard from '@/components/MellowCard';
import NiceForm from '@/components/NiceForm';
import { editModalSchema } from './schema';
import { createEffects } from './effects';
import styles from './index.less';
const formActions = createFormActions();
const { onFormInit$ } = FormEffectHooks;
interface QuotaApplicationInfo {
editable?: boolean;
onSubmit?: (values: {[key: string]: any}) => void;
// 授信申请信息
quotaInfo: {
// 现有额度
originalQuota: number,
// 申请调整额度
applyQuota: number,
// 申请调整账单日期
billDay: number,
// 申请还款周期
repayPeriod: number,
// //申请时间
applyTime: string,
},
// 授信审批信息
verify: {
// 审批额度
quota: number,
// 审批账单日期
billDay: number,
// 审批账单生成后还款周期
repayPeriod: number,
// 审批时间
verifyTime: string,
},
};
const QuotaApplicationInfo: React.FC<QuotaApplicationInfo> = ({
editable = false,
onSubmit,
quotaInfo = {},
verify = {},
}) => {
const [modalVisible, setModalVisible] = useState(false);
const handleSubmit = values => {
if (onSubmit) {
onSubmit(values);
const { billDay, repayPeriod, ...rest } = values;
onSubmit({
billDay: +billDay,
repayPeriod: +repayPeriod,
...rest,
});
setModalVisible(false);
}
};
const MinMarks = (
<div>
<div>0</div>
<div
style={{
position: 'relative',
left: '-8px'
}}
>
<div
style={{
textAlign: 'left',
position: 'relative',
left: '3px'
}}
>
<div>{quotaInfo.originalQuota}</div>
<div>
当前额度
</div>
</div>
);
const MaxMarks = (
<div>
<div>12,000</div>
<div
style={{
position: 'relative',
left: '-21px'
}}
>
<div
style={{
textAlign: 'right',
position: 'relative',
left: '-20px'
}}
>
<div>{quotaInfo.applyQuota}</div>
<div>
最高可调额度
</div>
</div>
......@@ -70,7 +106,6 @@ const QuotaApplicationInfo: React.FC<QuotaApplicationInfo> = ({
}
};
return (
<>
<Row
......@@ -108,10 +143,10 @@ const QuotaApplicationInfo: React.FC<QuotaApplicationInfo> = ({
<Row gutter={40}>
<Col span={8}>
<div className={styles.statistic}>
<div className={styles['statistic-title']}>本期账单(元):</div>
<div className={styles['statistic-title']}>现有额度(元):</div>
<div className={styles['statistic-amount']}>
<Row align="middle" justify="space-between">
<Col span={14}>100,000</Col>
<Col span={14}>{quotaInfo.originalQuota}</Col>
<Col span={8}>
<div className={styles.adjustment}>
申请调整至
......@@ -126,7 +161,7 @@ const QuotaApplicationInfo: React.FC<QuotaApplicationInfo> = ({
<div className={styles.statistic}>
<div className={styles['statistic-title']}>申请调整额度(元)</div>
<div className={styles['statistic-amount']}>
100,000
{quotaInfo.applyQuota}
</div>
</div>
......@@ -136,9 +171,9 @@ const QuotaApplicationInfo: React.FC<QuotaApplicationInfo> = ({
marginTop: 25,
}}
>
<Descriptions.Item label="申请调整账单日期">30</Descriptions.Item>
<Descriptions.Item label="申请还款周期">30</Descriptions.Item>
<Descriptions.Item label="申请时间">2020-08-21 08:58</Descriptions.Item>
<Descriptions.Item label="申请调整账单日期">{quotaInfo.billDay}</Descriptions.Item>
<Descriptions.Item label="申请还款周期">{quotaInfo.repayPeriod}</Descriptions.Item>
<Descriptions.Item label="申请时间">{quotaInfo.applyTime}</Descriptions.Item>
</Descriptions>
</Col>
<Col span={8}>
......@@ -152,7 +187,7 @@ const QuotaApplicationInfo: React.FC<QuotaApplicationInfo> = ({
uid: '1',
name: 'xxx.png',
status: 'done',
url: 'http://www.baidu.com/xxx.png',
url: 'http://www.baidu.com/xxx.png',
},
{
uid: '2',
......@@ -192,15 +227,15 @@ const QuotaApplicationInfo: React.FC<QuotaApplicationInfo> = ({
<Descriptions column={1}>
<Descriptions.Item label="审批额度(元)">
<div className={styles['approval-amount']}>
500,000
{verify.quota}
</div>
</Descriptions.Item>
</Descriptions>
</div>
<Descriptions column={1}>
<Descriptions.Item label="审批账单日期">11</Descriptions.Item>
<Descriptions.Item label="审批还款周期">0</Descriptions.Item>
<Descriptions.Item label="审批时间">2020-08-21 08:58</Descriptions.Item>
<Descriptions.Item label="审批账单日期">{verify.billDay}</Descriptions.Item>
<Descriptions.Item label="审批还款周期">{verify.repayPeriod}</Descriptions.Item>
<Descriptions.Item label="审批时间">{verify.verifyTime}</Descriptions.Item>
</Descriptions>
</div>
</MellowCard>
......@@ -217,8 +252,35 @@ const QuotaApplicationInfo: React.FC<QuotaApplicationInfo> = ({
>
<NiceForm
previewPlaceholder=""
effects={($, { setFieldState }) => {
effects={($, actions) => {
const { setFieldState, setFieldValue } = actions;
onFormInit$().subscribe(() => {
// 初始化数据
setFieldState('applyQuota', fileState => {
fileState.value = quotaInfo.applyQuota;
fileState.rules = fileState.rules.concat({
validator(value) {
return +value > quotaInfo.applyQuota ? '输入值已超出最大额度' : '';
}
});
});
setFieldState('quotaSlide', fileState => {
fileState.props['x-component-props'].max = quotaInfo.applyQuota;
fileState.props['x-component-props'].marks = {
0: {
label: MinMarks,
},
[quotaInfo.applyQuota]: {
label: MaxMarks,
},
};
fileState.value = quotaInfo.applyQuota;
});
});
createEffects($, actions);
}}
expressionScope={{
MinMarks,
......
......@@ -2,11 +2,12 @@
* @Author: XieZhiXiong
* @Date: 2020-09-29 15:51:31
* @LastEditors: XieZhiXiong
* @LastEditTime: 2020-09-29 16:52:53
* @LastEditTime: 2020-10-26 18:46:02
* @Description:
*/
import { ISchema } from '@formily/antd';
import { UPLOAD_TYPE } from '@/constants';
import { PATTERN_MAPS } from '@/constants/regExp';
export const editModalSchema: ISchema = {
type: 'object',
......@@ -19,7 +20,7 @@ export const editModalSchema: ISchema = {
full: true,
},
properties: {
quota: {
applyQuota: {
type: 'string',
title: '申请调整额度',
'x-component-props': {
......@@ -36,24 +37,25 @@ export const editModalSchema: ISchema = {
quotaSlide: {
type: 'number',
title: '',
editable: false,
'x-component': 'range',
'x-component-props': {
min: 0,
max: 1024,
marks: {
0: {
label: '{{MinMarks}}',
},
1024: {
label: '{{MaxMarks}}',
},
},
// max: 1024,
// marks: {
// 0: {
// label: '{{MinMarks}}',
// },
// 1024: {
// label: '{{MaxMarks}}',
// },
// },
style: {
margin: '0 20px 28px'
},
},
},
date: {
billDay: {
type: 'string',
title: '申请调整账单日期',
'x-component-props': {
......@@ -65,9 +67,19 @@ export const editModalSchema: ISchema = {
required: true,
message: '请填写申请调整账单日期',
},
{
pattern: PATTERN_MAPS.quantity,
message: '请填写大于等于1的正整数',
},
{
validator(value) {
const intVal = +value;
return intVal > 28 || intVal < 0 ? '请输入大于0 小于等于 28的数值' : '';
}
},
],
},
cycle: {
repayPeriod: {
type: 'string',
title: '申请还款周期',
'x-component-props': {
......@@ -79,6 +91,10 @@ export const editModalSchema: ISchema = {
required: true,
message: '请填写申请还款周期',
},
{
pattern: PATTERN_MAPS.quantity,
message: '请填写大于等于1的正整数',
},
],
},
attachment: {
......@@ -96,7 +112,7 @@ export const editModalSchema: ISchema = {
},
'x-rules': [
{
required: true,
required: false,
message: '请上传申请附件',
},
],
......
......@@ -4,9 +4,11 @@ import {
ClockCircleOutlined,
} from '@ant-design/icons';
import { StandardTable } from 'god';
import moment from 'moment';
import { ColumnType } from 'antd/lib/table/interface';
import { PageHeaderWrapper } from '@ant-design/pro-layout';
import { createFormActions } from '@formily/antd';
import { PublicApi } from '@/services/api';
import { useStateFilterSearchLinkageEffect } from '@/formSchema/effects/useFilterSearch';
import { useAsyncInitSelect } from '@/formSchema/effects/useAsyncInitSelect';
import { FORM_FILTER_PATH } from '@/formSchema/const';
......@@ -14,6 +16,10 @@ import EyePreview from '@/components/EyePreview';
import NiceForm from '@/components/NiceForm';
import StatusTag from '@/components/StatusTag';
import { listSearchSchema } from './schema';
import {
CREDIT_OUTER_STATUS_TAG_MAP,
CREDIT_OUTER_STATUS_BADGE_MAP,
} from '../../constant';
import styles from './index.less';
const formActions = createFormActions();
......@@ -53,7 +59,7 @@ const QuotaFormQuery: React.FC = () => {
const defaultColumns: ColumnType<any>[] = [
{
title: '申请单号/时间',
dataIndex: 'orderNo',
dataIndex: 'applyNo',
align: 'center',
render: (text, record) => (
<>
......@@ -63,69 +69,82 @@ const QuotaFormQuery: React.FC = () => {
{text}
</EyePreview>
<div>
<ClockCircleOutlined /> {record.applicationTime}
<ClockCircleOutlined /> {record.applyTime}
</div>
</>
),
},
{
title: '会员归属',
dataIndex: 'memberName',
dataIndex: 'parentMemberName',
align: 'center',
},
{
title: '会员类型',
dataIndex: 'memberType',
dataIndex: 'memberTypeName',
align: 'center',
},
{
title: '会员角色',
dataIndex: 'memberRole',
dataIndex: 'memberRoleName',
align: 'center',
render: (text, record) => <>{text}</>,
},
{
title: '所属会员等级',
dataIndex: 'memberLevel',
dataIndex: 'memberLevelName',
align: 'center',
render: (text, record) => <>{text}</>,
},
{
title: '调整前额度(元)',
dataIndex: 'before',
dataIndex: 'originalQuota',
align: 'center',
},
{
title: '申请调整后额度(元)',
dataIndex: 'after',
dataIndex: 'applyQuota',
align: 'center',
},
{
title: '外部状态',
dataIndex: 'outerStatus',
dataIndex: 'outerStatusName',
align: 'center',
filters: [],
onFilter: (value, record) => record.outerStatus === value,
render: (text, record) => (
<StatusTag type="warnning" title="不接受申请" />
<StatusTag type={CREDIT_OUTER_STATUS_TAG_MAP[record.outerStatus]} title={text} />
),
},
{
title: '内部状态',
dataIndex: 'innerStatus',
dataIndex: 'innerStatusName',
align: 'center',
filters: [],
onFilter: (value, record) => record.innerStatus === value,
render: (text, record) => <Badge color="#41CC9E" text="正常" />,
render: (text, record) => <Badge color={CREDIT_OUTER_STATUS_BADGE_MAP[record.innerStatus]} text={text} />,
},
];
const [columns, setColumns] = useState<any[]>(defaultColumns);
const fetchListData = (params: any) => {
return Promise.resolve({
total: 2,
data: mock,
const { startTime, endTime, ...rest } = params;
return new Promise((resolve, reject) => {
PublicApi.getPayCreditApplyPageCreditApply({
startTime: startTime ? moment(startTime).format('YYYY-MM-DD') : null,
endTime: startTime ? moment(startTime).format('YYYY-MM-DD') : null,
...rest,
})
.then(res => {
if (res.code === 1000) {
resolve(res.data);
}
reject();
})
.catch(() => {
reject();
});
});
};
......@@ -152,7 +171,7 @@ const QuotaFormQuery: React.FC = () => {
useStateFilterSearchLinkageEffect(
$,
actions,
'name',
'applyNo',
FORM_FILTER_PATH,
);
useAsyncInitSelect(
......
......@@ -16,7 +16,7 @@ export const listSearchSchema: ISchema = {
type: 'object',
'x-component': 'mega-layout',
properties: {
name: {
applyNo: {
type: 'string',
'x-component': 'Search',
'x-component-props': {
......@@ -35,7 +35,7 @@ export const listSearchSchema: ISchema = {
columns: 6,
},
properties: {
'[startDate, endDate]': {
'[startTime, endTime]': {
type: 'string',
default: '',
'x-component': 'dateSelect',
......@@ -44,7 +44,7 @@ export const listSearchSchema: ISchema = {
allowClear: true,
},
},
outterStatus: {
outerStatus: {
type: 'string',
default: undefined,
enum: [],
......
......@@ -26,7 +26,7 @@ import { PublicApi } from '@/services/api';
const repaymentFormActions = createFormActions();
const uploadVoucherFormActions = createFormActions();
const { onFormInit$ } = FormEffectHooks
const { onFormInit$ } = FormEffectHooks;
const { Option } = Select;
......
......@@ -12,13 +12,13 @@ import { PublicApi } from '@/services/api';
import { GetPayCreditApplyGetCreditDetailResponse } from '@/services/PayApi';
import { usePageStatus, PageStatus } from '@/hooks/usePageStatus';
import {
MEMBER_STATUS,
CREDIT_REPAYMENT_STATUS,
} from '@/constants';
import AvatarWrap from '@/components/AvatarWrap';
import StatusTag from '@/components/StatusTag';
import {
MEMBER_STATUS_BADGE_MAP,
CREDIT_MEMBER_STATUS,
CREDIT_REPAYMENT_STATUS_TAG_MAP,
} from '../../../constant';
import { BillDetailParams, BillDetailData, BillRecordParams } from './components/IntroduceRow';
......@@ -160,7 +160,7 @@ const QuotaMenageDetail: React.FC = () => {
<Descriptions.Item label="会员状态" span={2}>
<Badge
color={MEMBER_STATUS_BADGE_MAP[creditInfo?.member?.status]}
text={MEMBER_STATUS[creditInfo?.member?.status]}
text={CREDIT_MEMBER_STATUS[creditInfo?.member?.status]}
/>
</Descriptions.Item>
</Descriptions>
......
import React, { useState, useRef } from 'react';
import { Card, Badge, Progress, Button } from 'antd';
import { history } from 'umi';
import { StandardTable } from 'god';
import { ColumnType } from 'antd/lib/table/interface';
import { PageHeaderWrapper } from '@ant-design/pro-layout';
......@@ -32,6 +33,7 @@ const QuotaMenage: React.FC = () => {
const handleJumpApply = record => {
// 跳转申请页面
history.push(`/memberCenter/payandSettle/creditApplication/quotaMenage/apply?id=${record.id}`);
};
const defaultColumns: ColumnType<any>[] = [
......@@ -150,7 +152,10 @@ const QuotaMenage: React.FC = () => {
<>
{/* 现有额度为 0,并且授信状态为 未申请 或 到达了可调额时间(会员支付参数配置的时间) */}
{
(record.quota === 0 && record.status === CREDIT_STATUS_NOT_APPLIED) && (
((
record.quota === 0 && record.status === CREDIT_STATUS_NOT_APPLIED) ||
record.isCanApply
) && (
<Button
type="link"
onClick={() => handleJumpApply(record)}
......
import React, { Suspense, useEffect, useState } from 'react';
import {
PageHeader,
Descriptions,
Card,
Spin,
Button,
Badge,
message,
} from 'antd';
import { FormOutlined } from '@ant-design/icons';
import { PageHeaderWrapper } from '@ant-design/pro-layout';
import { history } from 'umi';
import { PublicApi } from '@/services/api';
import { GetPayCreditApplyGetApplyDetailResponse } from '@/services/PayApi';
import { CREDIT_INNER_STATUS, CREDIT_OUTER_STATUS } from '@/constants';
import AvatarWrap from '@/components/AvatarWrap';
import StatusTag from '@/components/StatusTag';
import { MEMBER_STATUS_TAG_MAP, CREDIT_OUTER_STATUS_TAG_MAP, CREDIT_OUTER_STATUS_BADGE_MAP } from '../../../../constant';
const OuterCirculation = React.lazy(() => import('../../../components/OuterCirculation'));
const QuotaApplicationInfo = React.lazy(() => import('../../../components/QuotaApplicationInfo'));
const HitoryList = React.lazy(() => import('../../../components/HistoryList'));
const OuterCirculationRecord = React.lazy(() => import('../../../components/OuterCirculationRecord'));
interface DetailInfo {
id: string;
// 是否是编辑的
isEdit?: boolean;
};
interface QuotaValues {
applyQuota: number | null;
billDay: number | null;
repayPeriod: number | null;
};
const DetailInfo: React.FC<DetailInfo> = ({
id,
isEdit = false,
}) => {
const [quotaInfo, setQuotaInfo] = useState<GetPayCreditApplyGetApplyDetailResponse>(null);
const [quotaValues, setQuotaValues] = useState<QuotaValues>({
applyQuota: null,
billDay: null,
repayPeriod: null,
});
const [infoLoading, setInfoloading] = useState(false);
const [submitLoading, setSubmitLoading] = useState(false);
const getQuotaInfo = () => {
if (!id) {
return;
}
setInfoloading(true);
PublicApi.getPayCreditApplyGetApplyDetail({
id,
}).then(res => {
if (res.code === 1000) {
setQuotaInfo(res.data);
}
}).finally(() => {
setInfoloading(false);
});
};
useEffect(() => {
getQuotaInfo();
}, []);
// 调整授信申请信息
const handleQuotaSubmit = (values) => {
setQuotaValues(values);
};
const handleSubmit = () => {
setSubmitLoading(true);
PublicApi.postPayCreditApplyAddCreditApply({
creditId: +id,
...quotaValues,
}).then(res => {
if (res.code === 1000) {
history.goBack();
}
}).finally(() => {
setSubmitLoading(false);
});
};
return (
<Spin spinning={infoLoading}>
<PageHeaderWrapper
title={
<>
<PageHeader
style={{ padding: '0' }}
onBack={() => history.goBack()}
title={
<AvatarWrap
info={{
aloneTxt: '单',
name: `申请单号:${quotaInfo?.applyNo}`,
}}
extra={quotaInfo?.member?.levelTag}
/>
}
extra={(
<>
{isEdit && (
<Button
type="primary"
onClick={handleSubmit}
loading={submitLoading}
>
提交
</Button>
)}
</>
)}
>
<Descriptions
size="small"
column={3}
style={{
padding: '0 32px',
}}
>
<Descriptions.Item label="会员归属">{'暂无'}</Descriptions.Item>
<Descriptions.Item label="会员类型">{quotaInfo?.member?.memberTypeName}</Descriptions.Item>
<Descriptions.Item label="会员角色名称">{quotaInfo?.member?.roleName}</Descriptions.Item>
<Descriptions.Item label="会员状态">
<StatusTag
type={MEMBER_STATUS_TAG_MAP[quotaInfo && quotaInfo.member ? quotaInfo.member.status || 1 : 1]}
title={quotaInfo && quotaInfo.member ? quotaInfo.member.status || 1 : 1}
/>
</Descriptions.Item>
<Descriptions.Item label="外部状态">
<StatusTag type={CREDIT_OUTER_STATUS_TAG_MAP[quotaInfo?.outerStatus]} title={CREDIT_OUTER_STATUS[quotaInfo?.outerStatus]} />
</Descriptions.Item>
<Descriptions.Item label="内部状态">
<Badge color={CREDIT_OUTER_STATUS_BADGE_MAP[quotaInfo?.innerStatus]} text={CREDIT_INNER_STATUS[quotaInfo?.innerStatus]} />
</Descriptions.Item>
</Descriptions>
</PageHeader>
</>
}
>
<Suspense fallback={null}>
<OuterCirculation
steps={
quotaInfo && quotaInfo.outerVerifyRecordList ?
quotaInfo.outerVerifyRecordList.map(item => ({
title: item.operate,
description: item.roleName,
})) :
[]
}
current={0}
/>
</Suspense>
<Suspense fallback={null}>
<QuotaApplicationInfo
quotaInfo={{
originalQuota: quotaInfo?.originalQuota,
applyQuota: quotaInfo?.applyQuota,
billDay: quotaInfo?.billDay,
repayPeriod: quotaInfo?.repayPeriod,
applyTime: quotaInfo?.applyTime,
}}
verify={{
quota: quotaInfo?.verify.quota,
billDay: quotaInfo?.verify.billDay,
repayPeriod: quotaInfo?.verify.repayPeriod,
verifyTime: quotaInfo?.verify.verifyTime,
}}
editable={isEdit}
onSubmit={handleQuotaSubmit}
/>
</Suspense>
<Suspense fallback={null}>
<HitoryList dataSource={quotaInfo?.historyApplyList} />
</Suspense>
<Suspense fallback={null}>
<OuterCirculationRecord dataSource={quotaInfo?.outerVerifyRecordList} />
</Suspense>
</PageHeaderWrapper>
</Spin>
);
};
export default DetailInfo;
\ No newline at end of file
import React, { Suspense } from 'react';
import {
PageHeader,
Descriptions,
Card,
Spin,
Button,
Badge,
message,
} from 'antd';
import { FormOutlined } from '@ant-design/icons';
import { PageHeaderWrapper } from '@ant-design/pro-layout';
import { history } from 'umi';
import AvatarWrap from '@/components/AvatarWrap';
import StatusTag from '@/components/StatusTag';
const OuterCirculation = React.lazy(() => import('../components/OuterCirculation'));
const QuotaApplicationInfo = React.lazy(() => import('../components/QuotaApplicationInfo'));
const HitoryList = React.lazy(() => import('../components/HistoryList'));
const OuterCirculationRecord = React.lazy(() => import('../components/OuterCirculationRecord'));
import React from 'react';
import { usePageStatus } from '@/hooks/usePageStatus';
import DetailInfo from './components/DetailInfo';
const QuotaPrSubmitDetail: React.FC = () => {
const steps = [
{
title: '提交授信申请单',
description: '采购商',
},
{
title: '确认授信申请单',
description: '供应商',
},
{
title: '完成',
description: '',
},
];
const outerRecord = [
{
id: 1,
order: 1,
role: '采购商',
status: 2,
action: '提交授信申请单',
createTime: '2020-05-12 08:08',
opinion: '同意',
},
{
id: 2,
order: 2,
role: '采购商',
status: 2,
action: '提交授信申请单',
createTime: '2020-05-12 08:08',
opinion: '同意',
},
];
const { id } = usePageStatus();
return (
<PageHeaderWrapper
title={
<>
<PageHeader
style={{ padding: '0' }}
onBack={() => history.goBack()}
title={
<AvatarWrap
info={{
aloneTxt: '单',
name: '申请单号:DPTY12',
}}
extra="青铜会员"
/>
}
extra={(
<>
</>
)}
>
<Descriptions
size="small"
column={3}
style={{
padding: '0 32px',
}}
>
<Descriptions.Item label="会员归属">广州白马皮具交易中心</Descriptions.Item>
<Descriptions.Item label="会员类型">企业会员</Descriptions.Item>
<Descriptions.Item label="会员角色名称">采购商</Descriptions.Item>
<Descriptions.Item label="会员状态">
<StatusTag type="success" title="正常" />
</Descriptions.Item>
<Descriptions.Item label="外部状态">
<StatusTag type="success" title="接受申请" />
</Descriptions.Item>
<Descriptions.Item label="内部状态">
<Badge color="#41CC9E" text="正常" />
</Descriptions.Item>
</Descriptions>
</PageHeader>
</>
}
>
<Suspense fallback={null}>
<OuterCirculation steps={steps} />
</Suspense>
<Suspense fallback={null}>
<QuotaApplicationInfo editable={true} />
</Suspense>
<Suspense fallback={null}>
<HitoryList />
</Suspense>
<Suspense fallback={null}>
<OuterCirculationRecord dataSource={outerRecord} />
</Suspense>
</PageHeaderWrapper>
<DetailInfo id={id} />
);
};
......
......@@ -4,9 +4,11 @@ import {
ClockCircleOutlined,
} from '@ant-design/icons';
import { StandardTable } from 'god';
import moment from 'moment';
import { ColumnType } from 'antd/lib/table/interface';
import { PageHeaderWrapper } from '@ant-design/pro-layout';
import { createFormActions } from '@formily/antd';
import { PublicApi } from '@/services/api';
import { useStateFilterSearchLinkageEffect } from '@/formSchema/effects/useFilterSearch';
import { useAsyncInitSelect } from '@/formSchema/effects/useAsyncInitSelect';
import { FORM_FILTER_PATH } from '@/formSchema/const';
......@@ -14,46 +16,21 @@ import EyePreview from '@/components/EyePreview';
import NiceForm from '@/components/NiceForm';
import StatusTag from '@/components/StatusTag';
import { listSearchSchema } from './schema';
import {
CREDIT_OUTER_STATUS_TAG_MAP,
CREDIT_OUTER_STATUS_BADGE_MAP,
} from '../../constant';
import styles from './index.less';
const formActions = createFormActions();
const mock = [
{
id: 1,
orderNo: 'SPTY9',
applicationTime: '2020-05-12 08:08',
memberName: '广州白马皮具交易有限公司',
memberType: '企业会员',
memberRole: '采购商',
memberLevel: '青铜会员',
before : '48,000',
after: '50,000.00',
outerStatus: 1,
innerStatus: 1,
},
{
id: 2,
orderNo: 'SPTY9',
applicationTime: '2020-05-12 08:08',
memberName: '广州白马皮具交易有限公司',
memberType: '企业会员',
memberRole: '采购商',
memberLevel: '青铜会员',
before : '48,000',
after: '50,000.00',
outerStatus: 1,
innerStatus: 1,
},
];
const QuotaPrSubmit: React.FC = () => {
const ref = useRef<any>({});
const defaultColumns: ColumnType<any>[] = [
{
title: '申请单号/时间',
dataIndex: 'orderNo',
dataIndex: 'applyNo',
align: 'center',
render: (text, record) => (
<>
......@@ -63,41 +40,41 @@ const QuotaPrSubmit: React.FC = () => {
{text}
</EyePreview>
<div>
<ClockCircleOutlined /> {record.applicationTime}
<ClockCircleOutlined /> {record.applyTime}
</div>
</>
),
},
{
title: '会员归属',
dataIndex: 'memberName',
dataIndex: 'parentMemberName',
align: 'center',
},
{
title: '会员类型',
dataIndex: 'memberType',
dataIndex: 'memberTypeName',
align: 'center',
},
{
title: '会员角色',
dataIndex: 'memberRole',
dataIndex: 'memberRoleName',
align: 'center',
render: (text, record) => <>{text}</>,
},
{
title: '所属会员等级',
dataIndex: 'memberLevel',
dataIndex: 'memberLevelName',
align: 'center',
render: (text, record) => <>{text}</>,
},
{
title: '调整前额度(元)',
dataIndex: 'before',
dataIndex: 'originalQuota',
align: 'center',
},
{
title: '申请调整后额度(元)',
dataIndex: 'after',
dataIndex: 'applyQuota',
align: 'center',
},
{
......@@ -107,7 +84,7 @@ const QuotaPrSubmit: React.FC = () => {
filters: [],
onFilter: (value, record) => record.outerStatus === value,
render: (text, record) => (
<StatusTag type="warnning" title="不接受申请" />
<StatusTag type={CREDIT_OUTER_STATUS_TAG_MAP[record.outerStatus]} title={text} />
),
},
{
......@@ -116,7 +93,7 @@ const QuotaPrSubmit: React.FC = () => {
align: 'center',
filters: [],
onFilter: (value, record) => record.innerStatus === value,
render: (text, record) => <Badge color="#41CC9E" text="正常" />,
render: (text, record) => <Badge color={CREDIT_OUTER_STATUS_BADGE_MAP[record.innerStatus]} text={text} />,
},
{
title: '操作',
......@@ -148,9 +125,22 @@ const QuotaPrSubmit: React.FC = () => {
const [columns, setColumns] = useState<any[]>(defaultColumns);
const fetchListData = (params: any) => {
return Promise.resolve({
total: 2,
data: mock,
const { startTime, endTime, ...rest } = params;
return new Promise((resolve, reject) => {
PublicApi.getPayCreditApplyPageWaitSubmitCreditApply({
startTime: startTime ? moment(startTime).format('YYYY-MM-DD') : null,
endTime: startTime ? moment(startTime).format('YYYY-MM-DD') : null,
...rest,
})
.then(res => {
if (res.code === 1000) {
resolve(res.data);
}
reject();
})
.catch(() => {
reject();
});
});
};
......@@ -177,7 +167,7 @@ const QuotaPrSubmit: React.FC = () => {
useStateFilterSearchLinkageEffect(
$,
actions,
'name',
'applyNo',
FORM_FILTER_PATH,
);
useAsyncInitSelect(
......
......@@ -16,7 +16,7 @@ export const listSearchSchema: ISchema = {
type: 'object',
'x-component': 'mega-layout',
properties: {
name: {
applyNo: {
type: 'string',
'x-component': 'Search',
'x-component-props': {
......@@ -35,7 +35,7 @@ export const listSearchSchema: ISchema = {
columns: 6,
},
properties: {
'[startDate, endDate]': {
'[startTime, endTime]': {
type: 'string',
default: '',
'x-component': 'dateSelect',
......@@ -44,7 +44,7 @@ export const listSearchSchema: ISchema = {
allowClear: true,
},
},
outterStatus: {
outerStatus: {
type: 'string',
default: undefined,
enum: [],
......
import React from 'react';
import { usePageStatus } from '@/hooks/usePageStatus';
import DetailInfo from './components/DetailInfo';
const VerifyQuotaPrSubmit: React.FC = () => {
const { id } = usePageStatus();
return (
<DetailInfo id={id} isEdit />
);
};
export default VerifyQuotaPrSubmit;
\ No newline at end of file
......@@ -37,8 +37,8 @@ export const MEMBER_STATUS_TAG_MAP = {
export const MEMBER_INNER_STATUS_TYPE = {
[MEMBER_INNER_STATUS_REGISTERED]: 'default',
[MEMBER_INNER_STATUS_UNCOMMITTED]: 'primary',
[MEMBER_INNER_STATUS_UNREVIEWED_1]: 'warnning',
[MEMBER_INNER_STATUS_UNREVIEWED_2]: 'warnning',
[MEMBER_INNER_STATUS_UNREVIEWED_1]: 'warning',
[MEMBER_INNER_STATUS_UNREVIEWED_2]: 'warning',
[MEMBER_INNER_STATUS_FAILED]: 'danger',
[MEMBER_INNER_STATUS_SUCCESS]: 'success',
};
......@@ -46,7 +46,7 @@ export const MEMBER_INNER_STATUS_TYPE = {
// 会员外部状态 StatusTag map
export const MEMBER_OUTER_STATUS_TYPE = {
[MEMBER_OUTER_STATUS_UNCOMMITTED]: 'primary',
[MEMBER_OUTER_STATUS_UNREVIEWED]: 'warnning',
[MEMBER_OUTER_STATUS_UNREVIEWED]: 'warning',
[MEMBER_OUTER_STATUS_FAILED]: 'danger',
[MEMBER_OUTER_STATUS_SUCCESS]: 'success',
};
......
......@@ -109,7 +109,7 @@ const QuotaFormQuery: React.FC = () => {
filters: [],
onFilter: (value, record) => record.outerStatus === value,
render: (text, record) => (
<StatusTag type="warnning" title="不接受申请" />
<StatusTag type="warning" title="不接受申请" />
),
},
{
......
......@@ -126,7 +126,7 @@ const QuotaMenage: React.FC = () => {
dataIndex: 'repaymentStatus',
align: 'center',
render: (text, record) => (
<StatusTag type="warnning" title="逾期 3 天" />
<StatusTag type="warning" title="逾期 3 天" />
),
},
{
......
......@@ -109,7 +109,7 @@ const QuotaPr: React.FC = () => {
filters: [],
onFilter: (value, record) => record.outerStatus === value,
render: (text, record) => (
<StatusTag type="warnning" title="不接受申请" />
<StatusTag type="warning" title="不接受申请" />
),
},
{
......
......@@ -109,7 +109,7 @@ const QuotaPrConfirm: React.FC = () => {
filters: [],
onFilter: (value, record) => record.outerStatus === value,
render: (text, record) => (
<StatusTag type="warnning" title="不接受申请" />
<StatusTag type="warning" title="不接受申请" />
),
},
{
......
......@@ -109,7 +109,7 @@ const QuotaPrSubmit: React.FC = () => {
filters: [],
onFilter: (value, record) => record.outerStatus === value,
render: (text, record) => (
<StatusTag type="warnning" title="不接受申请" />
<StatusTag type="warning" title="不接受申请" />
),
},
{
......
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