Commit 25ee0096 authored by Bill's avatar Bill

fix: 修改结算支付信息

parent 39fbd622
......@@ -13,10 +13,11 @@ interface Iprops {
// onResendCode: () => void,
/** 商户订单号 */
tradeCode: string
onClose?: () => void
}
const GetCodeModal: React.FC<Iprops> = (props: Iprops) => {
const { title = '验证码', onOk, visible, tradeCode } = props;
const { title = '验证码', onOk, visible, tradeCode, onClose } = props;
const [code, setCode] = useState<string>("");
const { text, isActive, start } = useCountDown({
maxTime: 60,
......@@ -46,6 +47,9 @@ const GetCodeModal: React.FC<Iprops> = (props: Iprops) => {
start();
}
}
const handleClose = () => {
onClose?.()
}
return (
<Modal
......@@ -53,6 +57,7 @@ const GetCodeModal: React.FC<Iprops> = (props: Iprops) => {
width={360}
title={title}
onOk={handleOk}
onCancel={handleClose}
>
<div className={styles.container}>
<div className={styles.formItem}>
......
......@@ -5,7 +5,7 @@
.wrapContainer {
background-color: #FAFBFC;
padding: 12px;
padding: 12px 12px 0px 12px;
margin-top: 8px;
font-size: 14px;
......
import { getSettleAccountsPlatformSettlementChannelList } from '@/services/SettleV2Api';
import { Modal, Radio } from 'antd';
import { message, Modal, Radio } from 'antd';
import React, { useState, useEffect, useCallback } from 'react';
import styles from './index.less';
import PayItem from './payItem';
......@@ -59,6 +59,7 @@ const OtherPayModal: React.FC<Iprops> = (props: Iprops) => {
]
const getPayChannel = useCallback(async () => {
// message.info("正在加载支付渠道")
const { data, code } = await getSettleAccountsPlatformSettlementChannelList();
if (code === 1000) {
setPayChannelOptions(data.map((_item) => ({
......
......@@ -7,7 +7,8 @@ import alipay from '@/assets/imgs/alipay_icon.png';
interface Iprops {
mode: 'wechat' | 'alipay'
visible: boolean,
qrcode: string
qrcode: string,
onClose: () => void
}
const MODE_TEXT = {
......@@ -15,12 +16,17 @@ const MODE_TEXT = {
alipay: '支付宝'
}
const QrcodeModal: React.FC<Iprops> = (props: Iprops) => {
const { mode, visible, qrcode } = props;
const { mode, visible, qrcode, onClose } = props;
const currentImage = mode === 'wechat' ? wechat : alipay;
const handleClose = () => {
onClose?.()
}
return (
<Modal
visible={visible}
title={`请用${MODE_TEXT[mode]}支付`}
onCancel={handleClose}
>
<div className={styles.container}>
<div className={styles.tips}>
......
......@@ -12,8 +12,9 @@ import { useCallback } from 'react';
import { GetSettleAccountsMemberSettlementPagePayableSettlementResponseDetail } from '@/services/SettleV2Api';
import { ColumnsType } from 'antd/lib/table';
import { getIntl } from 'umi';
import { getPayAllInPayGetUserInfo } from '@/services/PayV2Api';
import { getPayAllInPayGetUserInfo, postPayAllInPayGetUserInfo } from '@/services/PayV2Api';
import { message } from 'antd';
import { getAuth } from '@/utils/auth';
const intl = getIntl();
const format = "YYYY-MM-DD HH:mm:ss"
const URL_MAP = {
......@@ -26,16 +27,20 @@ const URL_MAP = {
const STATUS_COLOR = ["default", "warning", "primary", "danger", "success"];
/** 通联支付 个人会员 */
const USER_MEMBER_TYPE = 2
const USER_MEMBER_TYPE = 3
/** 通联支付企业会员 */
const ENTERPRISE_MERBER_TYPE =3
const ENTERPRISE_MERBER_TYPE = 2
/** 通联支付 未认证提示 */
const UNVERIFY_TIPS = {
const BALANCE_UNVERIFY_TIPS = {
[USER_MEMBER_TYPE]: '该结算方会员未进行通联实名认证,暂不可收款',
[ENTERPRISE_MERBER_TYPE]: '该结算方会员暂未完成企业信息审核,暂不可收款;',
}
/** 付款方 */
const PAY_UNVERIFY_TIPS = {
[USER_MEMBER_TYPE]: '该会员未进行通联实名认证,暂不可收款',
[ENTERPRISE_MERBER_TYPE]: '该会员暂未完成企业信息审核,暂不可收款;',
}
type ModalsType = {
......@@ -56,6 +61,7 @@ type ModalsType = {
}
function useHandleSettlementList() {
const auth = getAuth()
const [itemInfo, setItemInfo] = useState<GetSettleAccountsMemberSettlementPagePayableSettlementResponseDetail | null>(null)
const [modals, setModals] = useState<ModalsType>({
viewPay: false,
......@@ -82,17 +88,39 @@ function useHandleSettlementList() {
})
}, [])
const valifyUser = async (params: { memberRoleId: number, memberId: number }, mode: "balance" | 'pay') => {
const { code, data, message: msg } = await postPayAllInPayGetUserInfo(params, { ctlType: 'none' });
if (code !== 1000) {
message.error(msg);
return false;
}
const tips = mode === 'balance' ? BALANCE_UNVERIFY_TIPS : PAY_UNVERIFY_TIPS
if (!(data.memberType === USER_MEMBER_TYPE && data.isIdentityChecked === 1 || data.memberType === ENTERPRISE_MERBER_TYPE && data.status === 2)) {
message.error(tips[data.memberType])
return false;
}
return true
}
const handleAction = async (record: GetSettleAccountsMemberSettlementPagePayableSettlementResponseDetail, key: keyof ModalsType) => {
setItemInfo(record);
if (key === 'universalPay') {
const { code, data, message: msg } = await getPayAllInPayGetUserInfo();
if (code !== 1000) {
message.error(msg);
const res = await valifyUser({
memberId: record.memberId,
memberRoleId: record.roleId
}, 'balance');
// 结算方没验证
if (!res) {
return;
}
if (!(data.memberType === USER_MEMBER_TYPE && data.isIdentityChecked === 1 || data.memberType === ENTERPRISE_MERBER_TYPE && data.status === 2)) {
message.error(UNVERIFY_TIPS[data.memberType])
const payRes = await valifyUser({
memberId: auth.memberId,
memberRoleId: auth.memberRoleId
}, 'pay');
// 付款方没验证
if (!payRes) {
return;
}
}
......
......@@ -194,7 +194,7 @@ const SettlementList = () => {
}
} finally {
setUniversalPayLoading(true)
setUniversalPayLoading(false)
}
}
......@@ -297,11 +297,14 @@ const SettlementList = () => {
mode={currentUniversalPay === UNIVERSAL_PAY_WECHAT ? 'wechat' : 'alipay' }
// mode={'wechat'}
qrcode={qrcodeUrl}
onClose={() => handleClose('qrcodeModal')}
/>
<GetCodeModal
visible={modals.smsCodeModal}
onOk={handleCompleteSmsCode}
tradeCode={itemInfo?.settlementNo}
onClose={() => handleClose('smsCodeModal')}
/>
</PageHeaderWrapper>
)
......
......@@ -44,37 +44,37 @@ const FormilyCoupon: React.FC<Iprops> & { isFieldComponent: boolean } = (props:
const columns: ColumnType<any>[] = [
{
title: intl.formatMessage({ id: 'activityPages.id' }),
title: intl.formatMessage({ id: 'activityPage.id' }),
dataIndex: 'id'
},
{
title: intl.formatMessage({ id: 'activityPages.CouponName' }),
title: intl.formatMessage({ id: 'activityPage.CouponName' }),
dataIndex: 'name'
},
{
title: intl.formatMessage({ id: 'activityPages.couponTypeName' }),
title: intl.formatMessage({ id: 'activityPage.couponTypeName' }),
dataIndex: 'typeName'
},
{
title: intl.formatMessage({ id: 'activityPages.getWayName' }),
title: intl.formatMessage({ id: 'activityPage.getWayName' }),
dataIndex: 'getWayName'
},
{
title: intl.formatMessage({ id: 'activityPages.denomination' }),
title: intl.formatMessage({ id: 'activityPage.denomination' }),
dataIndex: 'denomination'
},
{
title: intl.formatMessage({ id: 'activityPages.useConditionMoney' }),
title: intl.formatMessage({ id: 'activityPage.useConditionMoney' }),
dataIndex: 'useConditionMoney'
},
{
title: intl.formatMessage({ id: 'activityPages.time' }),
title: intl.formatMessage({ id: 'activityPage.time' }),
dataIndex: 'validityTime',
render: (_text, _record) => {
return (
<div>
<span>{_record?.releaseTimeStart && moment(_record?.releaseTimeStar).format(format)}</span>
{intl.formatMessage({ id: 'activityPages.to' })}
{intl.formatMessage({ id: 'activityPage.to' })}
<span>{_record?.releaseTimeEnd && moment(_record?.releaseTimeEnd).format(format)}</span>
</div>
);
......@@ -118,7 +118,7 @@ const FormilyCoupon: React.FC<Iprops> & { isFieldComponent: boolean } = (props:
<div className={styles.container}>
<div className={styles.content}>
<div className={styles.module}>
<Button onClick={() => setDrawerVisible(true)}>{intl.formatMessage({ id: 'activityPages.chooseCoupon' })}</Button>
<Button onClick={() => setDrawerVisible(true)}>{intl.formatMessage({ id: 'activityPage.chooseCoupon' })}</Button>
</div>
<div className={styles.info}>
{
......
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