Commit f79db54e authored by Bill's avatar Bill

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

parents 4d1bd2c4 5b69310e
...@@ -35,17 +35,50 @@ const InputNumber: React.FC<InputNumberPropsType> = (props) => { ...@@ -35,17 +35,50 @@ const InputNumber: React.FC<InputNumberPropsType> = (props) => {
const handleReduce = (e) => { const handleReduce = (e) => {
e.stopPropagation() e.stopPropagation()
if (value > minCount) { if (value > minCount) {
onChange(Number(value) - 1, 'click') onChange(accSub(value, 1), 'click')
} }
} }
const handleAdd = (e) => { const handleAdd = (e) => {
e.stopPropagation() e.stopPropagation()
if (value < maxCount) { if (value < maxCount) {
onChange(Number(value) + 1, 'click') onChange(accAdd(value, 1), 'click')
} }
} }
const accAdd = (num1,num2) => {
let r1, r2
try{
r1 = num1.toString().split('.')[1].length;
}catch(e){
r1 = 0;
}
try{
r2 = num2.toString().split(".")[1].length;
}catch(e){
r2 = 0;
}
const m = Math.pow(10, Math.max(r1,r2));
return Math.round(num1 * m + num2 * m)/m;
}
const accSub = (num1, num2) => {
let r1, r2;
try{
r1 = num1.toString().split('.')[1].length;
}catch(e){
r1 = 0;
}
try{
r2 = num2.toString().split(".")[1].length;
}catch(e){
r2 = 0;
}
const m = Math.pow(10,Math.max(r1,r2));
const n = (r1 >= r2) ? r1 : r2;
return (Math.round(num1 * m-num2 * m) / m).toFixed(n);
}
const handleChange = (e) => { const handleChange = (e) => {
const { value } = e.target; const { value } = e.target;
const reg = /^\d*([.]?\d{0,3})$/ const reg = /^\d*([.]?\d{0,3})$/
......
...@@ -24,11 +24,11 @@ const Address: React.FC<AddressPropsType> = (props) => { ...@@ -24,11 +24,11 @@ const Address: React.FC<AddressPropsType> = (props) => {
}, []) }, [])
const fetchAddressList = (init = false) => { const fetchAddressList = (init = false) => {
let param = { const param: any = {
current: 1, current: 1,
pageSize: 50 pageSize: 50
} }
//@ts-ignore
PublicApi.getLogisticsReceiverAddressPage(param).then(res => { PublicApi.getLogisticsReceiverAddressPage(param).then(res => {
if (res.code === 1000) { if (res.code === 1000) {
setAddressList(res.data?.data) setAddressList(res.data?.data)
...@@ -41,14 +41,14 @@ const Address: React.FC<AddressPropsType> = (props) => { ...@@ -41,14 +41,14 @@ const Address: React.FC<AddressPropsType> = (props) => {
const initDefaultAddress = async (addressList: GetLogisticsReceiverAddressPageResponseDetail[]) => { const initDefaultAddress = async (addressList: GetLogisticsReceiverAddressPageResponseDetail[]) => {
let selectItem let selectItem
for (let item of addressList) { for (const item of addressList) {
if (item.isDefault === 1) { if (item.isDefault === 1) {
selectItem = item selectItem = item
} }
} }
if (selectItem) { if (selectItem) {
setSelectKey(selectItem.id) setSelectKey(selectItem.id)
let res = await PublicApi.getLogisticsReceiverAddressGet({ id: selectItem.id }) const res = await PublicApi.getLogisticsReceiverAddressGet({ id: selectItem.id })
onChange(Object.assign(selectItem, res.data)) onChange(Object.assign(selectItem, res.data))
} }
} }
...@@ -56,13 +56,13 @@ const Address: React.FC<AddressPropsType> = (props) => { ...@@ -56,13 +56,13 @@ const Address: React.FC<AddressPropsType> = (props) => {
const handleSelect = async (e: any) => { const handleSelect = async (e: any) => {
setSelectKey(e.target.value) setSelectKey(e.target.value)
let selectItem let selectItem
for (let item of addressList) { for (const item of addressList) {
if (item.id === e.target.value) { if (item.id === e.target.value) {
selectItem = item selectItem = item
} }
} }
if (selectItem) { if (selectItem) {
let res = await PublicApi.getLogisticsReceiverAddressGet({ id: selectItem.id }) const res = await PublicApi.getLogisticsReceiverAddressGet({ id: selectItem.id })
onChange(Object.assign(selectItem, res.data)) onChange(Object.assign(selectItem, res.data))
} }
} }
...@@ -91,11 +91,11 @@ const Address: React.FC<AddressPropsType> = (props) => { ...@@ -91,11 +91,11 @@ const Address: React.FC<AddressPropsType> = (props) => {
} }
const handleSetDefaultAddress = async (addressItem: GetLogisticsReceiverAddressPageResponseDetail) => { const handleSetDefaultAddress = async (addressItem: GetLogisticsReceiverAddressPageResponseDetail) => {
// eslint-disable-next-line @typescript-eslint/ban-ts-ignore
//@ts-ignore //@ts-ignore
let addressDetailRes = await PublicApi.getLogisticsReceiverAddressGet({ id: addressItem.id }) const addressDetailRes = await PublicApi.getLogisticsReceiverAddressGet({ id: addressItem.id })
let param: GetLogisticsReceiverAddressGetResponse = addressDetailRes.data const param: GetLogisticsReceiverAddressGetResponse = addressDetailRes.data
param.isDefault = 1 param.isDefault = 1
//@ts-ignore
PublicApi.postLogisticsReceiverAddressUpdate(param).then(res => { PublicApi.postLogisticsReceiverAddressUpdate(param).then(res => {
if (res.code === 1000) { if (res.code === 1000) {
fetchAddressList() fetchAddressList()
......
...@@ -26,7 +26,7 @@ const Contract: React.FC<ContractPropsType> = (props) => { ...@@ -26,7 +26,7 @@ const Contract: React.FC<ContractPropsType> = (props) => {
<span>我同意签订:</span> <span>我同意签订:</span>
</Checkbox> </Checkbox>
{ {
contractInfo && <a href={contractInfo?.contractUrl} download target="_blank" className={styles.checkbox_contract_text}>{contractInfo?.contractName}</a> contractInfo && <a href={contractInfo?.contractUrl} download rel="noreferrer" target="_blank" className={styles.checkbox_contract_text}>{contractInfo?.contractName}</a>
} }
</div> </div>
</div> </div>
......
...@@ -85,13 +85,15 @@ const Order: React.FC<OrderPropsType> = (props) => { ...@@ -85,13 +85,15 @@ const Order: React.FC<OrderPropsType> = (props) => {
message.error("订单不存在") message.error("订单不存在")
history.goBack() history.goBack()
} }
if(storeId) {
initOrderInfo() initOrderInfo()
}
return () => { return () => {
if (sessionStorage.getItem("contractInfo")) { if (sessionStorage.getItem("contractInfo")) {
sessionStorage.removeItem("contractInfo") sessionStorage.removeItem("contractInfo")
} }
} }
}, []) }, [storeId])
const initOrderInfo = async () => { const initOrderInfo = async () => {
const result = [] const result = []
...@@ -120,9 +122,9 @@ const Order: React.FC<OrderPropsType> = (props) => { ...@@ -120,9 +122,9 @@ const Order: React.FC<OrderPropsType> = (props) => {
try { try {
const param: any = { const param: any = {
productId, productId,
shopId, storeId, shopId: storeId,
memberId: orderInfo.supplyMembersId, memberId: sessionOrderInfo.supplyMembersId,
memberRoleId: orderInfo.supplyMembersRoleId, memberRoleId: sessionOrderInfo.supplyMembersRoleId,
} }
const rulesRes = await PublicApi.getOrderTradingRulesByProductId(param) const rulesRes = await PublicApi.getOrderTradingRulesByProductId(param)
const { data } = rulesRes const { data } = rulesRes
......
...@@ -33,8 +33,10 @@ const PayWay: React.FC<PayWayProps> = (props) => { ...@@ -33,8 +33,10 @@ const PayWay: React.FC<PayWayProps> = (props) => {
} }
useEffect(() => { useEffect(() => {
if(expand) {
fetchCreditInfo() fetchCreditInfo()
}, []) }
}, [expand])
useEffect(() => { useEffect(() => {
if (payWayList && payWayList.length === 1) { if (payWayList && payWayList.length === 1) {
...@@ -49,9 +51,10 @@ const PayWay: React.FC<PayWayProps> = (props) => { ...@@ -49,9 +51,10 @@ const PayWay: React.FC<PayWayProps> = (props) => {
} }
PublicApi.getPayCreditGetCredit(param).then(res => { PublicApi.getPayCreditGetCredit(param).then(res => {
message.destroy()
if(res.code === 1000) { if(res.code === 1000) {
setCreditInfo(res.data) setCreditInfo(res.data)
} else {
message.destroy()
} }
}) })
} }
......
...@@ -76,6 +76,7 @@ const QuotaApplicationInfo: React.FC<QuotaApplicationInfo> = ({ ...@@ -76,6 +76,7 @@ const QuotaApplicationInfo: React.FC<QuotaApplicationInfo> = ({
fileList, fileList,
...rest ...rest
} = values; } = values;
onSubmit({ onSubmit({
applyQuota: +applyQuota, applyQuota: +applyQuota,
billDay: +billDay, billDay: +billDay,
...@@ -86,8 +87,9 @@ const QuotaApplicationInfo: React.FC<QuotaApplicationInfo> = ({ ...@@ -86,8 +87,9 @@ const QuotaApplicationInfo: React.FC<QuotaApplicationInfo> = ({
.map(item => { .map(item => {
const { data, ...rest } = item; const { data, ...rest } = item;
return { return {
data: data.url,
...rest, ...rest,
url: data.url,
data: data,
} }
}), }),
...rest, ...rest,
......
...@@ -115,7 +115,7 @@ export const editModalSchema: ISchema = { ...@@ -115,7 +115,7 @@ export const editModalSchema: ISchema = {
}, },
'x-rules': [ 'x-rules': [
{ {
required: false, required: true,
message: '请上传申请附件', message: '请上传申请附件',
}, },
], ],
......
...@@ -10,7 +10,6 @@ const QuotaFormQueryDetail: React.FC = () => { ...@@ -10,7 +10,6 @@ const QuotaFormQueryDetail: React.FC = () => {
id={id} id={id}
creditId={creditId} creditId={creditId}
target="/memberCenter/payandSettle/creditApplication/quotaFormQuery/detail" target="/memberCenter/payandSettle/creditApplication/quotaFormQuery/detail"
isEdit
/> />
); );
}; };
......
...@@ -79,7 +79,7 @@ const BillInfo: React.FC<BillInfoProps> = ({ ...@@ -79,7 +79,7 @@ const BillInfo: React.FC<BillInfoProps> = ({
> >
<Descriptions column={1}> <Descriptions column={1}>
<Descriptions.Item label="交易流水号"> <Descriptions.Item label="交易流水号">
<Row justify="space-between"> <Row justify="space-between" style={{ width: '100%' }}>
<Col span={12}> <Col span={12}>
<a onClick={() => handleCheckVoucher(trade.payProveList)}>{trade.tradeCode}</a> <a onClick={() => handleCheckVoucher(trade.payProveList)}>{trade.tradeCode}</a>
</Col> </Col>
...@@ -94,7 +94,7 @@ const BillInfo: React.FC<BillInfoProps> = ({ ...@@ -94,7 +94,7 @@ const BillInfo: React.FC<BillInfoProps> = ({
</Row> </Row>
</Descriptions.Item> </Descriptions.Item>
<Descriptions.Item label="交易项目"> <Descriptions.Item label="交易项目">
<Row justify="space-between"> <Row justify="space-between" style={{ width: '100%' }}>
<Col span={12}> <Col span={12}>
{BILL_TRADE_OPERATION[trade.operation]} {BILL_TRADE_OPERATION[trade.operation]}
</Col> </Col>
......
...@@ -14,21 +14,19 @@ import { ...@@ -14,21 +14,19 @@ import {
import { createFormActions, FormEffectHooks } from '@formily/antd'; import { createFormActions, FormEffectHooks } from '@formily/antd';
import lodash from 'lodash'; import lodash from 'lodash';
import { PublicApi } from '@/services/api'; import { PublicApi } from '@/services/api';
import { PAY_CHANNEL_WECHAT } from '@/constants';
import MellowCard from '@/components/MellowCard'; import MellowCard from '@/components/MellowCard';
import { Pie } from '@/components/Charts'; import { Pie } from '@/components/Charts';
import StatusTag from '@/components/StatusTag'; import StatusTag from '@/components/StatusTag';
import NiceForm from '@/components/NiceForm'; import NiceForm from '@/components/NiceForm';
import { repaymentModalSchema, uploadVoucherModalSchema } from './schema'; import { uploadVoucherModalSchema } from './schema';
import { createEffects } from './effects/repayment';
import TradeRecord, { RecordParams, RecordRes } from '../TradeRecord'; import TradeRecord, { RecordParams, RecordRes } from '../TradeRecord';
import WxPayModal from '../WxPayModal'; import WxPayModal from '../WxPayModal';
import RefundModal from '../RefundModal';
import styles from './index.less'; import styles from './index.less';
const repaymentFormActions = createFormActions();
const uploadVoucherFormActions = createFormActions(); const uploadVoucherFormActions = createFormActions();
const { onFormInit$ } = FormEffectHooks;
const { Option } = Select; const { Option } = Select;
export interface BillDetailParams { export interface BillDetailParams {
...@@ -72,6 +70,10 @@ export interface BillDetailData { ...@@ -72,6 +70,10 @@ export interface BillDetailData {
* 收款人Id * 收款人Id
*/ */
memberId: number memberId: number
/**
* 收款人角色Id
*/
memberRoleId: number
}; };
export interface BillRecordParams extends RecordParams { export interface BillRecordParams extends RecordParams {
...@@ -113,7 +115,6 @@ interface IntroduceRowState { ...@@ -113,7 +115,6 @@ interface IntroduceRowState {
name: string, name: string,
bankAccount: string, bankAccount: string,
bankDeposit: string, bankDeposit: string,
memberId: number,
}, },
visibleRecord: boolean; visibleRecord: boolean;
visibleRepayment: boolean; visibleRepayment: boolean;
...@@ -144,7 +145,6 @@ class IntroduceRow extends React.Component<IntroduceRowProps, IntroduceRowState> ...@@ -144,7 +145,6 @@ class IntroduceRow extends React.Component<IntroduceRowProps, IntroduceRowState>
name: '', name: '',
bankAccount: '', bankAccount: '',
bankDeposit: '', bankDeposit: '',
memberId: 0,
}, },
visibleRecord: false, visibleRecord: false,
visibleRepayment: false, visibleRepayment: false,
...@@ -180,7 +180,7 @@ class IntroduceRow extends React.Component<IntroduceRowProps, IntroduceRowState> ...@@ -180,7 +180,7 @@ class IntroduceRow extends React.Component<IntroduceRowProps, IntroduceRowState>
id: `${id}`, id: `${id}`,
}).then(res => { }).then(res => {
this.setState({ billInfo: res }); this.setState({ billInfo: res });
this.getSettleAccountsCorporateAccountConfig(res.memberId, res.memberRoleId); this.getSettleAccountsGetMemberAccountConfig(res.memberId, res.memberRoleId);
}).finally(() => { }).finally(() => {
this.setState({ billInfoLoading: false }); this.setState({ billInfoLoading: false });
}); });
...@@ -188,13 +188,13 @@ class IntroduceRow extends React.Component<IntroduceRowProps, IntroduceRowState> ...@@ -188,13 +188,13 @@ class IntroduceRow extends React.Component<IntroduceRowProps, IntroduceRowState>
}; };
// 获取对公账户信息 // 获取对公账户信息
getSettleAccountsCorporateAccountConfig = (memberId: number, memberRoleId: number) => { getSettleAccountsGetMemberAccountConfig = (memberId: number, memberRoleId: number) => {
if (!memberId || !memberRoleId) { if (!memberId || !memberRoleId) {
return; return;
} }
PublicApi.getSettleAccountsCorporateAccountConfig({ PublicApi.getSettleAccountsGetMemberAccountConfig({
memberId: `${memberId}`, memberId: `${memberId}`,
memberRoleId: `${memberRoleId}`, roleId: `${memberRoleId}`,
}).then(res => { }).then(res => {
if (res.code === 1000) { if (res.code === 1000) {
this.setState({ this.setState({
...@@ -257,7 +257,7 @@ class IntroduceRow extends React.Component<IntroduceRowProps, IntroduceRowState> ...@@ -257,7 +257,7 @@ class IntroduceRow extends React.Component<IntroduceRowProps, IntroduceRowState>
switch (tradeChannel) { switch (tradeChannel) {
// 微信支付 // 微信支付
case 1: { case PAY_CHANNEL_WECHAT: {
this.setState({ this.setState({
wxPayPrice: values.repayQuota, wxPayPrice: values.repayQuota,
wxPayUrl: res.data.payQRCode, wxPayUrl: res.data.payQRCode,
...@@ -289,10 +289,10 @@ class IntroduceRow extends React.Component<IntroduceRowProps, IntroduceRowState> ...@@ -289,10 +289,10 @@ class IntroduceRow extends React.Component<IntroduceRowProps, IntroduceRowState>
}; };
handleUploadVoucherSubmit = values => { handleUploadVoucherSubmit = values => {
const { payProveList } = values; const { payProveList = [] } = values;
const { repaymentValues, billId, bankAccount } = this.state; const { repaymentValues, billId, bankAccount } = this.state;
if (!bankAccount || !bankAccount.id || !bankAccount.memberId) { if (!bankAccount || !bankAccount.id) {
message.error('没有还款账户相关信息,无法还款'); message.error('没有还款账户相关信息,无法还款');
return; return;
} }
...@@ -317,7 +317,6 @@ class IntroduceRow extends React.Component<IntroduceRowProps, IntroduceRowState> ...@@ -317,7 +317,6 @@ class IntroduceRow extends React.Component<IntroduceRowProps, IntroduceRowState>
}; };
beforeUploadVoucher = file => { beforeUploadVoucher = file => {
console.log(file.size)
if (file.size / 1024 > 200) { if (file.size / 1024 > 200) {
message.warning('图片大小超过200K'); message.warning('图片大小超过200K');
return Promise.reject(); return Promise.reject();
...@@ -564,56 +563,13 @@ class IntroduceRow extends React.Component<IntroduceRowProps, IntroduceRowState> ...@@ -564,56 +563,13 @@ class IntroduceRow extends React.Component<IntroduceRowProps, IntroduceRowState>
</Col> </Col>
</Row> </Row>
<Modal <RefundModal
title="还款"
width={576}
visible={visibleRepayment} visible={visibleRepayment}
confirmLoading={repaymentSubmitLoading} billInfo={billInfo}
onOk={() => repaymentFormActions.submit()}
onCancel={() => this.setState({ visibleRepayment: false })} onCancel={() => this.setState({ visibleRepayment: false })}
destroyOnClose
>
<NiceForm
previewPlaceholder=""
effects={($, actions) => {
const { setFieldState, setFieldValue } = actions;
onFormInit$().subscribe(() => {
// 初始化数据
setFieldState('repayQuota', fileState => {
fileState.value = billInfo.residueRepayQuota;
fileState.rules = fileState.rules.concat({
validator(value) {
return +value > billInfo.residueRepayQuota ? '输入值已超出还款金额' : '';
}
});
});
setFieldState('amountSlide', fileState => {
fileState.value = billInfo.residueRepayQuota;
fileState.props['x-component-props'].max = billInfo.residueRepayQuota;
fileState.props['x-component-props'].marks = {
0: {
label: 0,
},
[billInfo.residueRepayQuota]: {
label: billInfo.residueRepayQuota,
},
};
});
});
createEffects($, actions);
}}
expressionScope={{
}}
actions={repaymentFormActions}
schema={repaymentModalSchema}
onSubmit={this.handleRepaymentSubmit} onSubmit={this.handleRepaymentSubmit}
confirmLoading={repaymentSubmitLoading}
/> />
</Modal>
<Modal <Modal
title="上传支付凭证" title="上传支付凭证"
......
import { ISchema } from '@formily/antd'; import { ISchema } from '@formily/antd';
import { UPLOAD_TYPE } from '@/constants'; import { UPLOAD_TYPE } from '@/constants';
export const repaymentModalSchema: ISchema = {
type: 'object',
properties: {
MEGA_LAYOUT: {
type: 'object',
'x-component': 'mega-layout',
'x-component-props': {
labelAlign: 'top',
full: true,
},
properties: {
repayQuota: {
type: 'string',
title: '还款金额',
'x-component-props': {
placeholder: '',
addonBefore: '¥',
},
'x-rules': [
{
required: true,
message: '请填写还款金额',
},
],
},
amountSlide: {
type: 'number',
title: '',
'x-component': 'range',
'x-component-props': {
min: 0,
// max: 20000,
},
},
tradeType: {
type: 'number',
enum: [
{
label: '线上支付方式',
value: 1,
},
{
label: '线下支付方式',
value: 2,
},
],
default: 1,
title: '选择支付方式',
'x-component-props': {
placeholder: '请选择',
},
'x-rules': [
{
required: true,
message: '请选择支付方式',
},
],
},
tradeChannel: {
type: 'string',
title: '选择支付渠道',
enum: [
{
label: '微信',
value: 1,
},
{
label: '支付宝',
value: 2,
},
{
label: '银联',
value: 3,
},
],
default: 1,
'x-component-props': {
placeholder: '请选择',
},
'x-rules': [
{
required: true,
message: '请选择支付渠道',
},
],
},
},
},
},
};
export const uploadVoucherModalSchema: ISchema = { export const uploadVoucherModalSchema: ISchema = {
type: 'object', type: 'object',
properties: { properties: {
...@@ -139,7 +48,7 @@ export const uploadVoucherModalSchema: ISchema = { ...@@ -139,7 +48,7 @@ export const uploadVoucherModalSchema: ISchema = {
}, },
'x-rules': [ 'x-rules': [
{ {
required: false, required: true,
message: '请上传支付凭证', message: '请上传支付凭证',
}, },
], ],
......
import React from 'react';
import { Modal } from 'antd';
import { createFormActions, FormEffectHooks } from '@formily/antd';
import { PublicApi } from '@/services/api';
import NiceForm from '@/components/NiceForm';
import { BillDetailData } from '../IntroduceRow';
import { repaymentModalSchema } from './schema';
import { createEffects } from './effects';
import { useAsyncSelect } from '@/formSchema/effects/useAsyncSelect';
const { onFormInit$ } = FormEffectHooks;
const repaymentFormActions = createFormActions();
interface RefundModalProps {
/**
* 是否可见
*/
visible: boolean,
/**
* 隐藏事件
*/
onCancel: () => void,
/**
* 确认按钮 loading
*/
confirmLoading?: boolean,
/**
* 账单信息
*/
billInfo: BillDetailData | null,
/**
* 提交事件
*/
onSubmit: (values: any) => void,
};
const RefundModal: React.FC<RefundModalProps> = (props) => {
const {
visible,
onCancel,
confirmLoading,
billInfo,
onSubmit,
} = props;
// 获取供应商支付渠道
const getPayChannels = (): Promise<any[]> => {
return new Promise((resolve, reject) => {
PublicApi.getPayCreditRepaymentList({
payType: `${1}`, // 支付方式:1 线上支付
memberId: `${billInfo.memberId}`,
memberRoleId: `${billInfo.memberRoleId}`,
}).then(res => {
if (res.code === 1000) {
const options =
res.data ?
res.data.map(item => ({
label: item.way,
value: item.wayId,
})) :
[];
resolve(options);
}
reject();
}).catch(() => {
reject();
});
});
};
const handleRepaymentSubmit = (values) => {
if (onSubmit) {
onSubmit(values);
}
};
return (
<Modal
title="还款"
width={576}
visible={visible}
confirmLoading={confirmLoading}
onOk={() => repaymentFormActions.submit()}
onCancel={onCancel}
destroyOnClose
>
<NiceForm
previewPlaceholder=""
effects={($, actions) => {
const { setFieldState, setFieldValue } = actions;
onFormInit$().subscribe(() => {
// 初始化数据
setFieldState('repayQuota', fileState => {
fileState.value = billInfo.residueRepayQuota;
fileState.rules = fileState.rules.concat({
validator(value) {
return +value > billInfo.residueRepayQuota ? '输入值已超出还款金额' : '';
}
});
});
setFieldState('amountSlide', fileState => {
fileState.value = billInfo.residueRepayQuota;
fileState.props['x-component-props'].max = billInfo.residueRepayQuota;
fileState.props['x-component-props'].marks = {
0: {
label: 0,
},
[billInfo.residueRepayQuota]: {
label: billInfo.residueRepayQuota,
},
};
});
});
createEffects($, actions);
console.log('123')
useAsyncSelect('tradeChannel', getPayChannels, ['label', 'value']);
}}
expressionScope={{
}}
actions={repaymentFormActions}
schema={repaymentModalSchema}
onSubmit={handleRepaymentSubmit}
/>
</Modal>
);
};
export default RefundModal;
\ No newline at end of file
import { ISchema } from '@formily/antd';
import { UPLOAD_TYPE } from '@/constants';
export const repaymentModalSchema: ISchema = {
type: 'object',
properties: {
MEGA_LAYOUT: {
type: 'object',
'x-component': 'mega-layout',
'x-component-props': {
labelAlign: 'top',
full: true,
},
properties: {
repayQuota: {
type: 'string',
title: '还款金额',
'x-component-props': {
placeholder: '',
addonBefore: '¥',
},
'x-rules': [
{
required: true,
message: '请填写还款金额',
},
],
},
amountSlide: {
type: 'number',
title: '',
'x-component': 'range',
'x-component-props': {
min: 0,
// max: 20000,
},
},
tradeType: {
type: 'number',
enum: [
{
label: '线上支付方式',
value: 1,
},
{
label: '线下支付方式',
value: 2,
},
],
default: 1,
title: '选择支付方式',
'x-component-props': {
placeholder: '请选择',
},
'x-rules': [
{
required: true,
message: '请选择支付方式',
},
],
},
tradeChannel: {
type: 'string',
title: '选择支付渠道',
enum: [
{
label: '微信',
value: 1,
},
{
label: '支付宝',
value: 2,
},
{
label: '银联',
value: 3,
},
],
default: 1,
'x-component-props': {
placeholder: '请选择',
},
'x-rules': [
{
required: true,
message: '请选择支付渠道',
},
],
},
},
},
},
};
\ No newline at end of file
...@@ -178,7 +178,7 @@ class TradeRecord extends React.Component<TradeRecordProps, TradeRecordState> { ...@@ -178,7 +178,7 @@ class TradeRecord extends React.Component<TradeRecordProps, TradeRecordState> {
<TradeWrap.TradeItem key={item.tradeCode}> <TradeWrap.TradeItem key={item.tradeCode}>
<Descriptions column={1}> <Descriptions column={1}>
<Descriptions.Item label="交易流水号"> <Descriptions.Item label="交易流水号">
<Row justify="space-between"> <Row justify="space-between" style={{ width: '100%' }}>
<Col span={12}> <Col span={12}>
<a onClick={() => this.handleCheckVoucher(item.payProveList)}>{item.tradeCode}</a> <a onClick={() => this.handleCheckVoucher(item.payProveList)}>{item.tradeCode}</a>
</Col> </Col>
...@@ -193,7 +193,7 @@ class TradeRecord extends React.Component<TradeRecordProps, TradeRecordState> { ...@@ -193,7 +193,7 @@ class TradeRecord extends React.Component<TradeRecordProps, TradeRecordState> {
</Row> </Row>
</Descriptions.Item> </Descriptions.Item>
<Descriptions.Item label="交易项目"> <Descriptions.Item label="交易项目">
<Row justify="space-between"> <Row justify="space-between" style={{ width: '100%' }}>
<Col span={12}> <Col span={12}>
{item.operationName} {item.operationName}
</Col> </Col>
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
* @Author: XieZhiXiong * @Author: XieZhiXiong
* @Date: 2020-12-16 11:07:13 * @Date: 2020-12-16 11:07:13
* @LastEditors: XieZhiXiong * @LastEditors: XieZhiXiong
* @LastEditTime: 2020-12-16 15:09:21 * @LastEditTime: 2020-12-30 13:50:05
* @Description: 微信支付弹窗 * @Description: 微信支付弹窗
*/ */
import React, { useState, useEffect, useRef } from 'react'; import React, { useState, useEffect, useRef } from 'react';
...@@ -80,7 +80,6 @@ const WxPayModal: React.FC<WxPayModalProps> = ({ ...@@ -80,7 +80,6 @@ const WxPayModal: React.FC<WxPayModalProps> = ({
timer.current = setTimeout(() => { timer.current = setTimeout(() => {
handleCheckResult(); handleCheckResult();
}, 2000); }, 2000);
console.log('timer', timer)
} else { } else {
clearTimeout(timer.current); clearTimeout(timer.current);
timer = null; timer = null;
...@@ -107,8 +106,6 @@ const WxPayModal: React.FC<WxPayModalProps> = ({ ...@@ -107,8 +106,6 @@ const WxPayModal: React.FC<WxPayModalProps> = ({
useEffect(() => { useEffect(() => {
if (!visible) { if (!visible) {
console.log('隐藏咯')
console.log('timer', timer.current)
if (timer.current) { if (timer.current) {
clearTimeout(timer.current); clearTimeout(timer.current);
timer.current = null; timer.current = null;
......
...@@ -115,7 +115,7 @@ const QuotaMenage: React.FC = () => { ...@@ -115,7 +115,7 @@ const QuotaMenage: React.FC = () => {
{text ? ( {text ? (
<StatusTag <StatusTag
type={CREDIT_REPAYMENT_STATUS_TAG_MAP[record.repayStatus]} type={CREDIT_REPAYMENT_STATUS_TAG_MAP[record.repayStatus]}
title={record.repayStatus !== CREDIT_REPAYMENT_STATUS_OVERDUE ? text : record.overdueDay} title={text}
/> />
) : null} ) : null}
</> </>
......
...@@ -79,7 +79,7 @@ const BillInfo: React.FC<BillInfoProps> = ({ ...@@ -79,7 +79,7 @@ const BillInfo: React.FC<BillInfoProps> = ({
> >
<Descriptions column={1}> <Descriptions column={1}>
<Descriptions.Item label="交易流水号"> <Descriptions.Item label="交易流水号">
<Row justify="space-between"> <Row justify="space-between" style={{ width: '100%' }}>
<Col span={12}> <Col span={12}>
<a onClick={() => handleCheckVoucher(trade.payProveList)}>{trade.tradeCode}</a> <a onClick={() => handleCheckVoucher(trade.payProveList)}>{trade.tradeCode}</a>
</Col> </Col>
...@@ -94,7 +94,7 @@ const BillInfo: React.FC<BillInfoProps> = ({ ...@@ -94,7 +94,7 @@ const BillInfo: React.FC<BillInfoProps> = ({
</Row> </Row>
</Descriptions.Item> </Descriptions.Item>
<Descriptions.Item label="交易项目"> <Descriptions.Item label="交易项目">
<Row justify="space-between"> <Row justify="space-between" style={{ width: '100%' }}>
<Col span={12}> <Col span={12}>
{BILL_TRADE_OPERATION[trade.operation]} {BILL_TRADE_OPERATION[trade.operation]}
</Col> </Col>
......
...@@ -240,7 +240,7 @@ class TradeRecord extends React.Component<TradeRecordProps, TradeRecordState> { ...@@ -240,7 +240,7 @@ class TradeRecord extends React.Component<TradeRecordProps, TradeRecordState> {
<TradeWrap.TradeItem key={item.tradeCode}> <TradeWrap.TradeItem key={item.tradeCode}>
<Descriptions column={1}> <Descriptions column={1}>
<Descriptions.Item label="交易流水号"> <Descriptions.Item label="交易流水号">
<Row justify="space-between"> <Row justify="space-between" style={{ width: '100%' }}>
<Col span={10}> <Col span={10}>
<a onClick={() => this.handleCheckVoucher(item.payProveList)}>{item.tradeCode}</a> <a onClick={() => this.handleCheckVoucher(item.payProveList)}>{item.tradeCode}</a>
</Col> </Col>
...@@ -255,7 +255,7 @@ class TradeRecord extends React.Component<TradeRecordProps, TradeRecordState> { ...@@ -255,7 +255,7 @@ class TradeRecord extends React.Component<TradeRecordProps, TradeRecordState> {
</Row> </Row>
</Descriptions.Item> </Descriptions.Item>
<Descriptions.Item label="交易项目"> <Descriptions.Item label="交易项目">
<Row justify="space-between"> <Row justify="space-between" style={{ width: '100%' }}>
<Col span={12}> <Col span={12}>
{item.operationName} {item.operationName}
</Col> </Col>
......
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