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 (
<>
1.请核对账户余额等是否正常,且预留了足够的活动余额。异常请核对企业账单后与企业相关人员沟通并确认点击驳回申请
退款金额: {regFenToYuan(row.amount) || '0'}元
账户余额:{regFenToYuan(row.realBalance) || '0'}元
toDeatil()}>查看账户详情
2.请到微信商户平台使用企业付款或充值订单退款等方式退款,或使用微信转账/银行卡转账/企业对公转账等方式退款 3.退款完成后,截图保留凭证并点击确认退款