import React, { useState, useEffect } from 'react'; import { PageHeaderWrapper } from '@ant-design/pro-layout'; import { Form, Pagination, Button, Icon, message, Modal, Table, Select, Input, DatePicker } from 'antd'; import router from 'umi/router'; import moment from 'moment'; import className from 'classnames'; import Cell from '../../components/Cell'; import styles from './style.less'; import { fetch, apis } from '../../utils/request'; import request from '../../utils/request'; import AuthButton from '@/components/AuthButton'; import Swiper from './components/Swiper'; import { regFenToYuan } from '@/utils/money'; import Refund from './components/Refund' const { MonthPicker, RangePicker, WeekPicker } = DatePicker; function header(props) { // 获取初始化数据 const [data, setData] = useState({}) const [row, setRow] = useState({}) const [demandIdList, setDemandIdList] = useState([]) const [visible, setVisible] = useState(false) const [refundVisible, setRefundVisible] = useState(false) const [inputValue, setValue] = useState('') const [swiperList, setSwiperList] = useState([]) const orgId = props.orgId || '' useEffect(() => { getList({ pageNum: 1, pageSize: 10, orderType: 'refund' }); }, []) // 查询列表 const getList = (params) => { request({ ...apis.fund.taOrgOrder, params: { ...params, orgId, } }).then((data) => { console.log(data) setData(data) }) } // 提交事件 const handleSubmit = (e, props) => { e.preventDefault(); props.form.validateFields((err, values) => { if (!err) { let { LocalDate, ...submitValue } = values if (null != LocalDate && LocalDate.length > 0) { const [startDate, endDate] = LocalDate submitValue.startDate = `${moment(startDate).format('YYYY-MM-DDT00:00:00')}Z`; submitValue.endDate = `${moment(endDate).format('YYYY-MM-DDT23:59:59')}Z`; } else { submitValue.startDate = null submitValue.endDate = null } getList({ pageNum: 1, pageSize: 10, orderType: 'refund', ...submitValue }) } }); } const changePageNum = (pageNumber) => { let { LocalDate, ...submitValue } = props.form.getFieldsValue() if (null != LocalDate && LocalDate.length > 0) { const [startDate, endDate] = LocalDate submitValue.startDate = `${moment(startDate).format('YYYY-MM-DDT00:00:00')}Z`; submitValue.endDate = `${moment(endDate).format('YYYY-MM-DDT23:59:59')}Z`; } else { submitValue.startDate = null submitValue.endDate = null } getList({ pageNum: pageNumber, pageSize: 10, orderType: 'refund', ...submitValue }) } const look = (list) => { setSwiperList(list) } /** * * * @param {*} props * @returns */ const columns = [ { title: '订单编号', dataIndex: 'tradeNo', key: 'tradeNo', align: 'center', }, { title: '退款组织', dataIndex: 'miniAppName', key: 'miniAppName', align: 'center', }, { title: '退款金额', dataIndex: 'amount', key: 'amount', align: 'center', render: (x, row) => {regFenToYuan(x)} }, { title: '退款创建时间', dataIndex: 'createDate', key: 'createDate', align: 'center', render: (x, row) => <>{`${moment(row.createDate).format('YYYY-MM-DD HH:mm:ss')}`}, }, { title: '退款状态', dataIndex: 'auditStatus', key: 'auditStatus', align: 'center', render: (x, row) => <>{row.auditStatus == 'checking' ? '已申请' : row.auditStatus == 'agree' ? '已退款' : '已驳回'} }, { title: '驳回原因', dataIndex: 'auditResult', key: 'auditResult', align: 'center', render: (x, row) => <>{row.tradingStatus == 'fail' && {row.auditResult}} }, { title: '退款凭证', dataIndex: 'certificateUrlList', key: 'certificateUrlList', align: 'center', render: (x, row) => ( <> { (x || []).length > 0 && <> look(row.certificateUrlList)}> 查看 } ), }, { title: '操作', dataIndex: 'handle', key: 'handle', align: 'center', width: '120px', render: (x, row) => ( <> { row.auditStatus == 'checking' && <> refund(row)}> 退款 reject(row)}> 驳回 } ), }, ]; function handleReset() { props.form.resetFields(); getList({ pageNum: 1, pageSize: 10, orderType: 'refund' }) } const handleOk = () => { if (inputValue) { request({ ...apis.fund.reject, urlData: { id: row.orderId }, data: { auditResult: inputValue, orgId: row.orgId, } }).then((data) => { console.log(data) getList({ pageNum: 1, pageSize: 10, orderType: 'refund' }); }) setVisible(false) setValue('') } else { message.warning('驳回原因不能为空'); } } const handleCancel = () => { setVisible(false) setRefundVisible(false) } const reject = row => { setVisible(true) setRow(row) } const refund = (row) => { setRefundVisible(true) console.log(row, 'row') setRow(row) } const toDeatil = () => { if (orgId) { props.onToDetail() } else { router.push({ pathname: '/fundManagement/AccountDetail', query: { orgId: row.orgId, }, }); } } const bohui = () => { setRefundVisible(false) setVisible(true) } const orderRefund = () => { getList({ pageNum: 1, pageSize: 10, orderType: 'refund' }); setRefundVisible(false) } // 导出 const exportList = () => { const { LocalDate, ...submitValue } = props.form.getFieldsValue() if (null != LocalDate && LocalDate.length > 0) { const [startDate, endDate] = LocalDate submitValue.startDate = `${moment(startDate).format('YYYY-MM-DDT00:00:00')}Z`; submitValue.endDate = `${moment(endDate).format('YYYY-MM-DDT23:59:59')}Z`; } else { submitValue.startDate = null submitValue.endDate = null } request({ ...apis.fund.refundOrderExport, params: { orderType: 'refund', orgId, ...submitValue } }).then(data => { if (!data) { return } const url = window.URL.createObjectURL(new Blob([data])) const link = document.createElement('a') link.style.display = 'none' link.href = url link.setAttribute('download', '退款订单表.xlsx') document.body.append(link) link.click() }).catch() } const { getFieldDecorator } = props.form const lastColumns = props.organize == 'hidden' ? columns.filter(x => x.title != '退款组织') : columns return ( <> handleOk()} onCancel={() => handleCancel()} footer={[ , , ]} >
驳回原因 * setValue(e.target.value)} style={{ marginLeft: '10px', width: '80%' }} placeholder="请输入驳回原因" />
orderRefund()} onCancel={() => handleCancel()} footer={[ orderRefund()} orderId={row.orderId} />, , ]} >

1.请核对账户余额等是否正常,且预留了足够的活动余额。异常请核对企业账单后与企业相关人员沟通并确认点击驳回申请

退款金额: {regFenToYuan(row.amount) || '0'}元 账户余额:{regFenToYuan(row.realBalance) || '0'}元 toDeatil()}>查看账户详情

2.请到微信商户平台使用企业付款或充值订单退款等方式退款,或使用微信转账/银行卡转账/企业对公转账等方式退款

3.退款完成后,截图保留凭证并点击确认退款

< Swiper list={swiperList} onClose={() => setSwiperList([])} />
handleSubmit(e, props)} style={{ marginBottom: '16px' }}> {getFieldDecorator('tradeNo')( } placeholder="订单编号" />, )} { props.organize != 'hidden' && {getFieldDecorator('miniAppName')( } placeholder="退款组织" />, )} } {getFieldDecorator('auditStatus')( , )} 退款时间段: {getFieldDecorator('LocalDate')( , )}
r.tradeNo} dataSource={data.records} columns={lastColumns} pagination={false} />
) } const WrappedHeader = Form.create({ name: 'header' })(header); export default WrappedHeader