Commit 79f6da9e authored by XieZhiXiong's avatar XieZhiXiong

基本完成售后退款相关页面

parent d6cf1e3d
......@@ -9,7 +9,7 @@
import ExchangeRoute from './exchangeRoute'
import ExchangeHandleRoute from './exchangeHandleRoute'
import ReturnRoute from './returnRoute'
import ReturnedHandleRoute from './returnHandleRoute'
import ReturnManageRoute from './returnManageRoute'
import RepairRoute from './repairRoute'
import RepairManageRoute from './repairManageRoute'
......@@ -21,7 +21,7 @@ const AfterServiceRoute = {
ExchangeRoute,
ExchangeHandleRoute,
ReturnRoute,
ReturnedHandleRoute,
ReturnManageRoute,
RepairRoute,
RepairManageRoute,
]
......
/*
* 退货处理路由
* @Author: ghua
* @Date: 2020-10-29 11:18:58
* @Last Modified by: ghua
* @Last Modified time: 2020-10-29 11:18:58
*/
export default {
// 退货处理
path: '/memberCenter/afterService/handleReturn',
name: 'handleReturn',
routes: [
{
// 退申请单查询
path: '/memberCenter/afterService/handleReturn/orderList',
name: 'orderList',
},
{
// 待提交审核退货申请单
path: '/memberCenter/afterService/handleReturn/waitSubmitExamineOrder',
name: 'waitSubmitExamineOrder',
},
{
// 待审核退货申请单(一级)
path: '/memberCenter/afterService/handleReturn/waitExamineLevelOne',
name: 'waitExamineLevelOne',
},
{
// 待审核退货申请单(二级)
path: '/memberCenter/afterService/handleReturn/waitExamineLevelTwo',
name: 'waitExamineLevelTwo',
},
{
// 待确认退货申请单
path: '/memberCenter/afterService/handleReturn/waitConfirmReturn',
name: 'waitConfirmReturn',
},
{
// 待退货收货
path: '/memberCenter/afterService/handleReturn/waitReturnAndReceiving',
name: 'waitReturnAndReceiving',
},
{
// 待退款
path: '/memberCenter/afterService/handleReturn/waitRefund',
name: 'waitRefund',
},
]
}
\ No newline at end of file
/*
* 退货处理路由
* @Author: ghua
* @Date: 2020-10-29 11:18:58
* @Last Modified by: ghua
* @Last Modified time: 2020-10-29 11:18:58
*/
import { RouterChild } from '../../utils/index';
const route: RouterChild = {
// 退货处理
path: '/memberCenter/afterService/returnManage',
name: 'returnManage',
routes: [
// 退申请单查询
{
path: '/memberCenter/afterService/returnManage/returnQuery',
name: 'returnQuery',
component: '@/pages/afterService/returnManage/returnQuery/index',
},
// 退申请单查询-详情
{
path: '/memberCenter/afterService/returnManage/returnQuery/detail',
name: 'returnQueryDetail',
component: '@/pages/afterService/returnManage/returnQuery/detail',
hideInMenu: true,
noMargin: true,
},
// 待提交审核退货申请单
{
path: '/memberCenter/afterService/returnManage/returnPrSubmit',
name: 'returnPrSubmit',
component: '@/pages/afterService/returnManage/returnPrSubmit/index',
},
// 待提交审核退货申请单-详情
{
path: '/memberCenter/afterService/returnManage/returnPrSubmit/detail',
name: 'returnQueryDetail',
component: '@/pages/afterService/returnManage/returnPrSubmit/detail',
hideInMenu: true,
noMargin: true,
},
// 待提交审核退货申请单-审核
{
path: '/memberCenter/afterService/returnManage/returnPrSubmit/verify',
name: 'verifyReturnPrSubmit',
component: '@/pages/afterService/returnManage/returnPrSubmit/verify',
hideInMenu: true,
noMargin: true,
},
// 待审核退货申请单(一级)
{
path: '/memberCenter/afterService/returnManage/returnPr1',
name: 'returnPr1',
component: '@/pages/afterService/returnManage/returnPr1/index',
},
// 待审核退货申请单(一级)-详情
{
path: '/memberCenter/afterService/returnManage/returnPr1/detail',
name: 'returnQueryDetail',
component: '@/pages/afterService/returnManage/returnPr1/detail',
hideInMenu: true,
noMargin: true,
},
// 待审核退货申请单(一级)-审核
{
path: '/memberCenter/afterService/returnManage/returnPr1/verify',
name: 'verifyReturnPr1',
component: '@/pages/afterService/returnManage/returnPr1/verify',
hideInMenu: true,
noMargin: true,
},
// 待审核退货申请单(二级)
{
path: '/memberCenter/afterService/returnManage/returnPr2',
name: 'returnPr2',
component: '@/pages/afterService/returnManage/returnPr2/index',
},
// 待审核退货申请单(二级)-详情
{
path: '/memberCenter/afterService/returnManage/returnPr2/detail',
name: 'returnQueryDetail',
component: '@/pages/afterService/returnManage/returnPr2/detail',
hideInMenu: true,
noMargin: true,
},
// 待审核退货申请单(二级)-审核
{
path: '/memberCenter/afterService/returnManage/returnPr2/verify',
name: 'verifyReturnPr2',
component: '@/pages/afterService/returnManage/returnPr2/verify',
hideInMenu: true,
noMargin: true,
},
// 待确认退货申请单
{
path: '/memberCenter/afterService/returnManage/returnPrConfirm',
name: 'returnPrConfirm',
component: '@/pages/afterService/returnManage/returnPrConfirm/index',
},
// 待确认退货申请单-详情
{
path: '/memberCenter/afterService/returnManage/returnPrConfirm/detail',
name: 'returnQueryDetail',
component: '@/pages/afterService/returnManage/returnPrConfirm/detail',
hideInMenu: true,
noMargin: true,
},
// 待确认退货申请单-审核
{
path: '/memberCenter/afterService/returnManage/returnPrConfirm/verify',
name: 'verifyReturnPr2',
component: '@/pages/afterService/returnManage/returnPrConfirm/verify',
hideInMenu: true,
noMargin: true,
},
// 待新增退货入库单
{
path: '/memberCenter/afterService/returnManage/returnPrAddWarehousing',
name: 'returnPrAddWarehousing',
component: '@/pages/afterService/returnManage/returnPrAddWarehousing/index',
},
// 待新增退货入库单-详情
{
path: '/memberCenter/afterService/returnManage/returnPrAddWarehousing/detail',
name: 'returnQueryDetail',
component: '@/pages/afterService/returnManage/returnPrAddWarehousing/detail',
hideInMenu: true,
noMargin: true,
},
// 待退货收货
{
path: '/memberCenter/afterService/returnManage/returnPrReceived',
name: 'returnPrReceived',
component: '@/pages/afterService/returnManage/returnPrReceived/index',
},
// 待退货收货-详情
{
path: '/memberCenter/afterService/returnManage/returnPrReceived/detail',
name: 'returnQueryDetail',
component: '@/pages/afterService/returnManage/returnPrReceived/detail',
hideInMenu: true,
noMargin: true,
},
// 待退货收货-审核
{
path: '/memberCenter/afterService/returnManage/returnPrReceived/verify',
name: 'verifyReturnPrReceived',
component: '@/pages/afterService/returnManage/returnPrReceived/verify',
hideInMenu: true,
noMargin: true,
},
// 待退款
{
path: '/memberCenter/afterService/returnManage/returnPrReturn',
name: 'returnPrReturn',
component: '@/pages/afterService/returnManage/returnPrReturn/index',
},
// 待退款-详情
{
path: '/memberCenter/afterService/returnManage/returnPrReturn/detail',
name: 'returnQueryDetail',
component: '@/pages/afterService/returnManage/returnPrReturn/detail',
hideInMenu: true,
noMargin: true,
},
// 待退款-审核
{
path: '/memberCenter/afterService/returnManage/returnPrReturn/verify',
name: 'verifyReturnPrReceived',
component: '@/pages/afterService/returnManage/returnPrReturn/verify',
hideInMenu: true,
noMargin: true,
},
]
};
export default route;
\ No newline at end of file
......@@ -62,20 +62,115 @@ const route: RouterChild = {
name: 'returnPrAddDeliver',
component: '@/pages/afterService/returnApplication/returnPrAddDeliver/index',
},
// 待新增退货发货单-详情
{
path: '/memberCenter/afterService/returnApplication/returnPrAddDeliver/detail',
name: 'returnQueryDetail',
component: '@/pages/afterService/returnApplication/returnPrAddDeliver/detail',
hideInMenu: true,
noMargin: true,
},
// 待新增物流单
{
path: '/memberCenter/afterService/returnApplication/returnPrAddLogistics',
name: 'returnPrAddLogistics',
component: '@/pages/afterService/returnApplication/returnPrAddLogistics/index',
},
// 待新增物流单-详情
{
path: '/memberCenter/afterService/returnApplication/returnPrAddLogistics/detail',
name: 'returnQueryDetail',
component: '@/pages/afterService/returnApplication/returnPrAddLogistics/detail',
hideInMenu: true,
noMargin: true,
},
// 待退货发货
{
path: '/memberCenter/afterService/returnApplication/returnPrDeliver',
name: 'returnPrDeliver',
component: '@/pages/afterService/returnApplication/returnPrDeliver/index',
},
// 待退货发货-详情
{
path: '/memberCenter/afterService/returnApplication/returnPrDeliver/detail',
name: 'returnQueryDetail',
component: '@/pages/afterService/returnApplication/returnPrDeliver/detail',
hideInMenu: true,
noMargin: true,
},
// 待退货发货-退货发货
{
path: '/memberCenter/afterService/returnApplication/returnPrDeliver/verify',
name: 'returnQueryDetail',
component: '@/pages/afterService/returnApplication/returnPrDeliver/verify',
hideInMenu: true,
noMargin: true,
},
// 待确认退货回单
{
path: '/memberCenter/afterService/return/waitConfirmOrder',
name: 'waitConfirmOrder',
path: '/memberCenter/afterService/returnApplication/returnPrConfirmBack',
name: 'returnPrConfirmBack',
component: '@/pages/afterService/returnApplication/returnPrConfirmBack/index',
},
// 待确认退货回单-详情
{
path: '/memberCenter/afterService/returnApplication/returnPrConfirmBack/detail',
name: 'returnQueryDetail',
component: '@/pages/afterService/returnApplication/returnPrConfirmBack/detail',
hideInMenu: true,
noMargin: true,
},
// 待确认退货回单-审核
{
path: '/memberCenter/afterService/returnApplication/returnPrConfirmBack/verify',
name: 'verifyReturnPrConfirmBack',
component: '@/pages/afterService/returnApplication/returnPrConfirmBack/verify',
hideInMenu: true,
noMargin: true,
},
// 待确认退款结果
{
path: '/memberCenter/afterService/return/waitConfirmRefundResult',
name: 'waitConfirmRefundResult',
path: '/memberCenter/afterService/returnApplication/returnPrConfirmResult',
name: 'returnPrConfirmResult',
component: '@/pages/afterService/returnApplication/returnPrConfirmResult/index',
},
// 待确认退款结果-详情
{
path: '/memberCenter/afterService/returnApplication/returnPrConfirmResult/detail',
name: 'returnQueryDetail',
component: '@/pages/afterService/returnApplication/returnPrConfirmResult/detail',
hideInMenu: true,
noMargin: true,
},
// 待确认退款结果-审核
{
path: '/memberCenter/afterService/returnApplication/returnPrConfirmResult/verify',
name: 'verifyReturnPrConfirmResult',
component: '@/pages/afterService/returnApplication/returnPrConfirmResult/verify',
hideInMenu: true,
noMargin: true,
},
// 待确认售后完成
{
path: '/memberCenter/afterService/return/waitConfirmFinsh',
name: 'waitConfirmFinsh',
path: '/memberCenter/afterService/returnApplication/returnPrConfirmFinish',
name: 'returnPrConfirmFinish',
component: '@/pages/afterService/returnApplication/returnPrConfirmFinish/index',
},
// 待确认售后完成-详情
{
path: '/memberCenter/afterService/returnApplication/returnPrConfirmFinish/detail',
name: 'returnQueryDetail',
component: '@/pages/afterService/returnApplication/returnPrConfirmFinish/detail',
hideInMenu: true,
noMargin: true,
},
// 待确认售后完成-审核
{
path: '/memberCenter/afterService/returnApplication/returnPrConfirmFinish/verify',
name: 'verifyReturnPrConfirmFinish',
component: '@/pages/afterService/returnApplication/returnPrConfirmFinish/verify',
hideInMenu: true,
noMargin: true,
},
]
}
......
......@@ -511,25 +511,39 @@ export default {
'menu.afterService.handleExchange.exchangeConfirmOrder': '待确认换货回单',
'menu.afterService.returnApplication': '退货申请',
'menu.afterService.returnApplication.returnQuery': '退申请单查询',
'menu.afterService.returnApplication.returnQueryDetail': '查看退申请单',
'menu.afterService.returnApplication.returnQuery': '退申请单查询',
'menu.afterService.returnApplication.returnQueryDetail': '查看退申请单',
'menu.afterService.returnApplication.returnPrSubmit': '待提交退货申请单',
'menu.afterService.returnApplication.returnPrSubmitDetail': '查看退申请单',
'menu.afterService.returnApplication.addReturnPrSubmit': '新建退申请单',
'menu.afterService.returnApplication.editReturnPrSubmit': '编辑退申请单',
'menu.afterService.returnApplication.returnPrSubmitDetail': '查看退申请单',
'menu.afterService.returnApplication.addReturnPrSubmit': '新建退申请单',
'menu.afterService.returnApplication.editReturnPrSubmit': '编辑退申请单',
'menu.afterService.returnApplication.returnPrAddDeliver': '待新增退货发货单',
'menu.afterService.returnApplication.waitConfirmOrder': '待确认退货回单',
'menu.afterService.returnApplication.waitConfirmRefundResult': '待确认退款结果',
'menu.afterService.returnApplication.waitConfirmFinsh': '待确认售后完成',
'menu.afterService.returnApplication.returnPrAddLogistics': '待新增物流单',
'menu.afterService.returnApplication.returnPrDeliver': '待退货发货',
'menu.afterService.returnApplication.verifyReturnPrDeliver': '退货发货',
'menu.afterService.returnApplication.returnPrConfirmBack': '待确认退货回单',
'menu.afterService.returnApplication.verifyReturnPrConfirmBack': '确认退货回单',
'menu.afterService.returnApplication.returnPrConfirmResult': '待确认退款结果',
'menu.afterService.returnApplication.verifyReturnPrConfirmResult': '确认退款结果',
'menu.afterService.returnApplication.returnPrConfirmFinish': '待确认售后完成',
'menu.afterService.returnApplication.verifyReturnPrConfirmFinish': '确认售后完成',
'menu.afterService.handleReturn': '退货处理',
'menu.afterService.handleReturn.orderList': '退申请单查询',
'menu.afterService.handleReturn.waitSubmitExamineOrder': '待提交审核退货申请单',
'menu.afterService.handleReturn.waitExamineLevelOne': '待审核退货申请单(一级)',
'menu.afterService.handleReturn.waitExamineLevelTwo': '待审核退货申请单(二级)',
'menu.afterService.handleReturn.waitConfirmReturn': '待确认退货申请单',
'menu.afterService.handleReturn.waitReturnAndReceiving': '待退货收货',
'menu.afterService.handleReturn.waitRefund': '待退款',
'menu.afterService.returnManage': '退货处理',
'menu.afterService.returnManage.returnQuery': '退货申请单查询',
'menu.afterService.returnManage.returnQueryDetail': '查看退货申请单',
'menu.afterService.returnManage.returnPrSubmit': '待提交审核退货申请单',
'menu.afterService.returnManage.verifyReturnPrSubmit': '审核待提交退货申请单',
'menu.afterService.returnManage.returnPr1': '待审核退货申请单(一级)',
'menu.afterService.returnManage.verifyReturnPr1': '审核审核退货申请单(一级)',
'menu.afterService.returnManage.returnPr2': '待审核退货申请单(二级)',
'menu.afterService.returnManage.verifyReturnPr2': '审核审核退货申请单(二级)',
'menu.afterService.returnManage.returnPrConfirm': '待确认退货申请单',
'menu.afterService.returnManage.verifyReturnPrConfirm': '确认退货申请单',
'menu.afterService.returnManage.returnPrAddWarehousing': '待新增退货入库单',
'menu.afterService.returnManage.returnPrReceived': '待退货收货',
'menu.afterService.returnManage.verifyReturnPrReceived': '确认退货收货',
'menu.afterService.returnManage.returnPrReturn': '待退款',
'menu.afterService.returnManage.verifyReturnPrReturn': '确认退款',
'menu.afterService.repairApplication': '维修申请',
'menu.afterService.repairApplication.repairQuery': '维修申请单查询',
......
/*
* @Author: XieZhiXiong
* @Date: 2020-11-09 10:48:12
* @LastEditors: XieZhiXiong
* @LastEditTime: 2020-11-09 18:05:48
* @Description: 手动发货弹窗
*/
import React from 'react';
import { Modal } from 'antd';
import { createFormActions, FormEffectHooks, FormPath } from '@formily/antd';
import { DatePicker } from '@formily/antd-components'
import NiceForm from '@/components/NiceForm';
import { schema } from './schema';
const modalFormActions = createFormActions();
const {
onFieldValueChange$,
onFieldInputChange$,
} = FormEffectHooks;
interface VerifyModalProps {
visible: boolean;
confirmLoading: boolean;
onSubmit: (values: { agree: 0 | 1, reason: string }) => void;
onVisible: (flag: boolean) => void;
// 是否编辑的
isEdit?: boolean;
};
const VerifyModal: React.FC<VerifyModalProps> = ({
visible,
confirmLoading,
onSubmit,
onVisible,
isEdit = true,
}) => {
const handleSubmit = values => {
if (onSubmit) {
onSubmit(values);
}
};
return (
<Modal
title="退货发货处理"
visible={visible}
confirmLoading={confirmLoading}
onOk={() => modalFormActions.submit()}
onCancel={() => onVisible(false)}
destroyOnClose
>
<NiceForm
effects={($, { setFieldState }) => {
}}
components={{
DatePicker,
}}
editable={isEdit}
actions={modalFormActions}
schema={schema}
onSubmit={handleSubmit}
/>
</Modal>
);
};
export default VerifyModal;
\ No newline at end of file
/*
* @Author: XieZhiXiong
* @Date: 2020-11-09 10:50:43
* @LastEditors: XieZhiXiong
* @LastEditTime: 2020-11-09 11:26:23
* @Description:
*/
import { ISchema } from '@formily/antd';
export const schema: ISchema = {
type: 'object',
properties: {
MEGA_LAYOUT: {
type: 'object',
'x-component': 'mega-layout',
'x-component-props': {
labelAlign: 'top',
},
properties: {
address: {
type: 'string',
title: '发货地址',
enum: [
],
'x-component-props': {
placeholder: '请选择',
},
},
sendTime: {
type: 'string',
title: '发货时间',
'x-component': 'DatePicker',
required: true,
'x-component-props': {
placeholder: '请选择',
showTime: true,
style: { width: '100%' },
},
},
codeNo: {
type: 'string',
title: '发货单号',
required: true,
'x-component-props': {
placeholder: '请选择',
},
},
company: {
type: 'string',
title: '物流公司',
required: true,
enum: [
],
'x-component-props': {
placeholder: '请选择',
},
},
},
},
},
};
\ No newline at end of file
......@@ -2,33 +2,61 @@
* @Author: XieZhiXiong
* @Date: 2020-11-06 09:54:04
* @LastEditors: XieZhiXiong
* @LastEditTime: 2020-11-06 09:54:16
* @LastEditTime: 2020-11-09 16:27:40
* @Description: 退货地址信息
*/
import React from 'react';
import { Descriptions } from 'antd';
import MellowCard from '@/components/MellowCard';
import { createFormActions, FormEffectHooks, FormPath } from '@formily/antd';
import NiceForm from '@/components/NiceForm';
import { schema } from './schema';
import styles from './index.less';
const ReturnAddressInfo: React.FC = () => {
const modalFormActions = createFormActions();
const {
onFieldValueChange$,
onFieldInputChange$,
} = FormEffectHooks;
interface ReturnAddressInfo {
// 是否是编辑的
isEdit?: boolean;
};
const ReturnAddressInfo: React.FC<ReturnAddressInfo> = ({
isEdit = false,
}) => {
const handleSubmit = values => {
};
const DeliveryAddress = (
<div>
<p>张三 / 185 2929 6475</p>
<p>广东省广州市海珠区新港东路1068号中洲中心北塔6楼</p>
</div>
);
return (
<MellowCard
title="收货地址"
fullHeight
>
<Descriptions column={1} className={styles.desc}>
<Descriptions.Item label="配送方式">
物流
</Descriptions.Item>
<Descriptions.Item label="退货收货地址">
<p>张三 / 185 2929 6475</p>
<p>广东省广州市海珠区新港东路1068号中洲中心北塔6楼</p>
</Descriptions.Item>
<Descriptions.Item label="退货发货地址">
<p>张三 / 185 2929 6475</p>
<p>广东省广州市海珠区新港东路1068号中洲中心北塔6楼</p>
</Descriptions.Item>
</Descriptions>
<NiceForm
effects={($, { setFieldState }) => {
onFieldValueChange$('shippingAddress').subscribe(fieldState => {
console.log('配送方式', fieldState.value);
});
}}
expressionScope={{
DeliveryAddress,
}}
editable={isEdit}
actions={modalFormActions}
schema={schema}
onSubmit={handleSubmit}
/>
</MellowCard>
);
};
......
/*
* @Author: XieZhiXiong
* @Date: 2020-11-09 15:56:35
* @LastEditors: XieZhiXiong
* @LastEditTime: 2020-11-09 16:19:24
* @Description:
*/
import { ISchema } from '@formily/antd';
export const schema: ISchema = {
type: 'object',
properties: {
MEGA_LAYOUT: {
type: 'object',
'x-component': 'mega-layout',
'x-component-props': {
labelCol: 6,
full: true,
labelAlign: 'left',
},
properties: {
mode: {
type: 'string',
title: '配送方式',
default: '物流',
'x-component': 'Text',
'x-component-props': {},
},
shippingAddress: {
type: 'string',
title: '退货收货地址',
enum: [],
required: true,
'x-component-props': {
placeholder: '请选择',
},
},
deliveryAddress: {
type: 'string',
title: '退货发货地址',
'x-component': 'Children',
'x-component-props': {
children: '{{DeliveryAddress}}',
},
},
},
},
},
};
\ No newline at end of file
......@@ -12,7 +12,7 @@ import { PublicApi } from '@/services/api';
import { FormOutlined } from '@ant-design/icons';
import { usePageStatus } from '@/hooks/usePageStatus';
import DetailInfo from '../components/DetailInfo';
import FinishedModal from '../components/FinishedModal';
import FinishedModal from '../../components/FinishedModal';
const RepairPrFinishedDetailVerify: React.FC = () => {
const { id, creditId } = usePageStatus();
......
import React from 'react';
import { usePageStatus } from '@/hooks/usePageStatus';
import DetailInfo from '../components/DetailInfo';
const ReturnPrAddDeliverDetail: React.FC = () => {
const { id, creditId } = usePageStatus();
return (
<DetailInfo
id={id}
/>
);
};
export default ReturnPrAddDeliverDetail;
\ No newline at end of file
......@@ -2,13 +2,14 @@
* @Author: XieZhiXiong
* @Date: 2020-11-06 16:30:44
* @LastEditors: XieZhiXiong
* @LastEditTime: 2020-11-06 16:49:12
* @LastEditTime: 2020-11-09 10:28:17
* @Description: 待新增退货发货单
*/
import React, { useState, useRef } from 'react';
import { Card, Badge, Progress, Button } from 'antd';
import { Card, Badge, Progress, Button, Modal } from 'antd';
import {
ClockCircleOutlined,
ClockCircleOutlined,
ExclamationCircleOutlined,
} from '@ant-design/icons';
import { history } from 'umi';
import { StandardTable } from 'god';
......@@ -31,11 +32,24 @@ import {
} from '../../contants';
import styles from './index.less';
const { confirm } = Modal;
const formActions = createFormActions();
const ReturnPrAddDeliver: React.FC = () => {
const ref = useRef<any>({});
const handleVerify = record => {
confirm({
title: '确认审核操作',
icon: <ExclamationCircleOutlined />,
content: `是否确认审核退货发货单号为${'FH5421039'}的退货发货单?`,
onOk() {
// do something
},
});
};
const defaultColumns: ColumnType<any>[] = [
{
title: '申请单号',
......@@ -44,7 +58,7 @@ const ReturnPrAddDeliver: React.FC = () => {
render: (text, record) => (
<>
<EyePreview
url={`/memberCenter/afterService/returnApplication/returnQuery/detail?id=${record.id}`}
url={`/memberCenter/afterService/returnApplication/returnPrAddDeliver/detail?id=${record.id}`}
>
{text}
</EyePreview>
......@@ -114,9 +128,9 @@ const ReturnPrAddDeliver: React.FC = () => {
</Button>
<Button
type="link"
onClick={() => {}}
onClick={() => handleVerify(record.id)}
>
查看物流单
审核
</Button>
</>
),
......@@ -226,4 +240,4 @@ const ReturnPrAddDeliver: React.FC = () => {
);
};
export default ReturnPrDeliver;
\ No newline at end of file
export default ReturnPrAddDeliver;
\ No newline at end of file
......@@ -2,7 +2,7 @@
* @Author: XieZhiXiong
* @Date: 2020-09-29 10:03:06
* @LastEditors: XieZhiXiong
* @LastEditTime: 2020-11-05 14:28:08
* @LastEditTime: 2020-11-09 17:53:29
* @Description:
*/
import { ISchema } from '@formily/antd';
......@@ -60,24 +60,6 @@ export const listSearchSchema: ISchema = {
allowClear: true,
},
},
outerStatus: {
type: 'string',
default: undefined,
enum: [],
'x-component-props': {
placeholder: '外部状态(全部)',
allowClear: true,
},
},
innerStatus: {
type: 'string',
default: undefined,
enum: [],
'x-component-props': {
placeholder: '内部状态(全部)',
allowClear: true,
},
},
submit: {
'x-component': 'Submit',
'x-mega-props': {
......
import React from 'react';
import { usePageStatus } from '@/hooks/usePageStatus';
import DetailInfo from '../components/DetailInfo';
const ReturnPrAddLogistics: React.FC = () => {
const { id, creditId } = usePageStatus();
return (
<DetailInfo
id={id}
/>
);
};
export default ReturnPrAddLogistics;
\ No newline at end of file
......@@ -33,7 +33,7 @@ import styles from './index.less';
const formActions = createFormActions();
const ReturnPrLogistics: React.FC = () => {
const ReturnPrAddLogistics: React.FC = () => {
const ref = useRef<any>({});
const defaultColumns: ColumnType<any>[] = [
......@@ -44,7 +44,7 @@ const ReturnPrLogistics: React.FC = () => {
render: (text, record) => (
<>
<EyePreview
url={`/memberCenter/afterService/returnApplication/returnQuery/detail?id=${record.id}`}
url={`/memberCenter/afterService/returnApplication/returnPrAddLogistics/detail?id=${record.id}`}
>
{text}
</EyePreview>
......@@ -116,7 +116,7 @@ const ReturnPrLogistics: React.FC = () => {
type="link"
onClick={() => {}}
>
审核
查看物流单
</Button>
</>
),
......@@ -226,4 +226,4 @@ const ReturnPrLogistics: React.FC = () => {
);
};
export default ReturnPrLogistics;
\ No newline at end of file
export default ReturnPrAddLogistics;
\ No newline at end of file
import React from 'react';
import { usePageStatus } from '@/hooks/usePageStatus';
import DetailInfo from '../components/DetailInfo';
const ReturnPrConfirmBackDetail: React.FC = () => {
const { id, creditId } = usePageStatus();
return (
<DetailInfo
id={id}
/>
);
};
export default ReturnPrConfirmBackDetail;
\ No newline at end of file
/*
* @Author: XieZhiXiong
* @Date: 2020-11-06 16:30:44
* @LastEditors: XieZhiXiong
* @LastEditTime: 2020-11-09 11:33:35
* @Description: 待新增退货发货单
*/
import React, { useState, useRef } from 'react';
import { Card, Badge, Progress, Button, Modal } from 'antd';
import {
ClockCircleOutlined,
ExclamationCircleOutlined,
} from '@ant-design/icons';
import { history } from 'umi';
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';
import { coverColFiltersItem } from '@/utils';
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_INNER_STATUS_BADGE_MAP,
} from '../../contants';
import styles from './index.less';
const { confirm } = Modal;
const formActions = createFormActions();
const ReturnPrConfirmBack: React.FC = () => {
const ref = useRef<any>({});
const defaultColumns: ColumnType<any>[] = [
{
title: '申请单号',
dataIndex: 'applyNo',
align: 'center',
render: (text, record) => (
<>
<EyePreview
url={`/memberCenter/afterService/returnApplication/returnPrConfirmBack/detail?id=${record.id}`}
>
{text}
</EyePreview>
</>
),
},
{
title: '申请单摘要',
dataIndex: 'parentMemberName',
align: 'center',
},
{
title: '供应会员',
dataIndex: 'supplier',
align: 'center',
},
{
title: '退款金额',
dataIndex: 'returnAmount',
align: 'center',
},
{
title: '单据时间',
dataIndex: 'created',
align: 'center',
},
{
title: '退货批次',
dataIndex: 'batch',
align: 'center',
},
{
title: '退货发货单号',
dataIndex: 'deliverNo',
align: 'center',
render: text => <a>{text}</a>,
},
{
title: '外部状态',
dataIndex: 'outerStatusName',
align: 'center',
filters: [],
onFilter: (value, record) => record.outerStatus === value,
render: (text, record) => (
<StatusTag type="success" title="售后完成" />
),
},
{
title: '内部状态',
dataIndex: 'innerStatusName',
align: 'center',
filters: [],
onFilter: (value, record) => record.innerStatus === value,
render: (text, record) => <Badge color={'#6C9CEB'} text="待确认售后完成" />,
},
{
title: '操作',
dataIndex: 'option',
align: 'center',
render: (text, record) => (
<>
<Button
type="link"
onClick={() => history.push(`/memberCenter/afterService/returnApplication/returnPrConfirmBack/verify`)}
>
确认退货回单
</Button>
</>
),
},
];
const [columns, setColumns] = useState<any[]>(defaultColumns);
const fetchListData = (params: any) => {
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();
// });
// });
return Promise.resolve({
data: [
{
id: 1,
applyNo: '123',
parentMemberName: '申请单摘要',
created: '2020-11-03 11:46:00',
},
],
total: 10,
});
};
// 初始化高级筛选选项
const fetchSearchItems = async () => {
// const res = await PublicApi.getPayCreditApplyPageItemsByConsumer();
// if (res.code === 1000) {
// const { data } = res;
// const {
// outerStatusList = [],
// innerStatusList = [],
// } = data;
// const newColumns = columns.slice();
// // filter 0 过滤掉全部选项
// coverColFiltersItem(
// newColumns,
// 'outerStatusName',
// outerStatusList.map(item => ({ text: item.name, value: item.status })).filter(item => item.value),
// );
// coverColFiltersItem(
// newColumns,
// 'innerStatusName',
// innerStatusList.map(item => ({ text: item.name, value: item.status })).filter(item => item.value),
// );
// setColumns(newColumns);
// return {
// outerStatus: outerStatusList.map(item => ({ label: item.name, value: item.status })).filter(item => item.value),
// innerStatus: innerStatusList.map(item => ({ label: item.name, value: item.status })).filter(item => item.value),
// };
// }
return {};
};
return (
<PageHeaderWrapper>
<Card>
<StandardTable
tableProps={{
rowKey: 'id',
}}
columns={columns}
currentRef={ref}
fetchTableData={(params: any) => fetchListData(params)}
controlRender={
<NiceForm
actions={formActions}
onSubmit={values => ref.current.reload(values)}
effects={($, actions) => {
useStateFilterSearchLinkageEffect(
$,
actions,
'applyNo',
FORM_FILTER_PATH,
);
useAsyncInitSelect(
['innerStatus', 'outerStatus'],
fetchSearchItems,
);
}}
schema={listSearchSchema}
/>
}
/>
</Card>
</PageHeaderWrapper>
);
};
export default ReturnPrConfirmBack;
\ No newline at end of file
/*
* @Author: XieZhiXiong
* @Date: 2020-09-29 10:03:06
* @LastEditors: XieZhiXiong
* @LastEditTime: 2020-11-05 14:28:08
* @Description:
*/
import { ISchema } from '@formily/antd';
import { FORM_FILTER_PATH } from '@/formSchema/const';
import { UPLOAD_TYPE } from '@/constants';
export const listSearchSchema: ISchema = {
type: 'object',
properties: {
megaLayout: {
type: 'object',
'x-component': 'mega-layout',
properties: {
applyNo: {
type: 'string',
'x-component': 'Search',
'x-component-props': {
placeholder: '搜索',
align: 'flex-left',
tip: '输入 申请单号 进行搜索',
},
},
[FORM_FILTER_PATH]: {
type: 'object',
'x-component': 'mega-layout',
'x-component-props': {
grid: true,
full: true,
autoRow: true,
columns: 6,
},
properties: {
abstract: {
type: 'string',
'x-component-props': {
placeholder: '申请单摘要',
allowClear: true,
},
},
'[startTime, endTime]': {
type: 'string',
default: '',
'x-component': 'dateSelect',
'x-component-props': {
placeholder: '单据时间(全部)',
allowClear: true,
},
},
supplier: {
type: 'string',
default: undefined,
enum: [],
'x-component-props': {
placeholder: '供应会员(全部)',
allowClear: true,
},
},
outerStatus: {
type: 'string',
default: undefined,
enum: [],
'x-component-props': {
placeholder: '外部状态(全部)',
allowClear: true,
},
},
innerStatus: {
type: 'string',
default: undefined,
enum: [],
'x-component-props': {
placeholder: '内部状态(全部)',
allowClear: true,
},
},
submit: {
'x-component': 'Submit',
'x-mega-props': {
span: 1,
},
'x-component-props': {
children: '查询',
},
},
},
},
},
},
},
};
\ No newline at end of file
import React, { useState } from 'react';
import { Button } from 'antd';
import { history } from 'umi';
import { PublicApi } from '@/services/api';
import { FormOutlined } from '@ant-design/icons';
import { usePageStatus } from '@/hooks/usePageStatus';
import DetailInfo from '../components/DetailInfo';
const ReturnPrConfirmBackVerify: React.FC = () => {
const { id, creditId } = usePageStatus();
const [submitLoading, setSubmitLoading] = useState(false);
const handleSubmit = values => {
if (!id) {
return;
}
};
return (
<>
<DetailInfo
id={id}
headExtra={(
<Button
type="primary"
icon={<FormOutlined />}
onClick={() => {}}
>
确认全部退货发货单已收到回单
</Button>
)}
/>
</>
);
};
export default ReturnPrConfirmBackVerify;
\ No newline at end of file
import React from 'react';
import { usePageStatus } from '@/hooks/usePageStatus';
import DetailInfo from '../components/DetailInfo';
const ReturnPrConfirmFinishDetail: React.FC = () => {
const { id, creditId } = usePageStatus();
return (
<DetailInfo
id={id}
/>
);
};
export default ReturnPrConfirmFinishDetail;
\ No newline at end of file
/*
* @Author: XieZhiXiong
* @Date: 2020-11-06 16:30:44
* @LastEditors: XieZhiXiong
* @LastEditTime: 2020-11-09 14:52:16
* @Description: 待新增退货发货单
*/
import React, { useState, useRef } from 'react';
import { Card, Badge, Progress, Button, Modal } from 'antd';
import {
ClockCircleOutlined,
ExclamationCircleOutlined,
} from '@ant-design/icons';
import { history } from 'umi';
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';
import { coverColFiltersItem } from '@/utils';
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_INNER_STATUS_BADGE_MAP,
} from '../../contants';
import styles from './index.less';
const { confirm } = Modal;
const formActions = createFormActions();
const ReturnPrConfirmFinish: React.FC = () => {
const ref = useRef<any>({});
const defaultColumns: ColumnType<any>[] = [
{
title: '申请单号',
dataIndex: 'applyNo',
align: 'center',
render: (text, record) => (
<>
<EyePreview
url={`/memberCenter/afterService/returnApplication/returnPrConfirmFinish/detail?id=${record.id}`}
>
{text}
</EyePreview>
</>
),
},
{
title: '申请单摘要',
dataIndex: 'parentMemberName',
align: 'center',
},
{
title: '供应会员',
dataIndex: 'supplier',
align: 'center',
},
{
title: '退款金额',
dataIndex: 'returnAmount',
align: 'center',
},
{
title: '单据时间',
dataIndex: 'created',
align: 'center',
},
{
title: '外部状态',
dataIndex: 'outerStatusName',
align: 'center',
filters: [],
onFilter: (value, record) => record.outerStatus === value,
render: (text, record) => (
<StatusTag type="success" title="售后完成" />
),
},
{
title: '内部状态',
dataIndex: 'innerStatusName',
align: 'center',
filters: [],
onFilter: (value, record) => record.innerStatus === value,
render: (text, record) => <Badge color={'#6C9CEB'} text="待确认售后完成" />,
},
{
title: '操作',
dataIndex: 'option',
align: 'center',
render: (text, record) => (
<>
<Button
type="link"
onClick={() => history.push(`/memberCenter/afterService/returnApplication/returnPrConfirmFinish/verify`)}
>
确认售后完成
</Button>
</>
),
},
];
const [columns, setColumns] = useState<any[]>(defaultColumns);
const fetchListData = (params: any) => {
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();
// });
// });
return Promise.resolve({
data: [
{
id: 1,
applyNo: '123',
parentMemberName: '申请单摘要',
created: '2020-11-03 11:46:00',
},
],
total: 10,
});
};
// 初始化高级筛选选项
const fetchSearchItems = async () => {
// const res = await PublicApi.getPayCreditApplyPageItemsByConsumer();
// if (res.code === 1000) {
// const { data } = res;
// const {
// outerStatusList = [],
// innerStatusList = [],
// } = data;
// const newColumns = columns.slice();
// // filter 0 过滤掉全部选项
// coverColFiltersItem(
// newColumns,
// 'outerStatusName',
// outerStatusList.map(item => ({ text: item.name, value: item.status })).filter(item => item.value),
// );
// coverColFiltersItem(
// newColumns,
// 'innerStatusName',
// innerStatusList.map(item => ({ text: item.name, value: item.status })).filter(item => item.value),
// );
// setColumns(newColumns);
// return {
// outerStatus: outerStatusList.map(item => ({ label: item.name, value: item.status })).filter(item => item.value),
// innerStatus: innerStatusList.map(item => ({ label: item.name, value: item.status })).filter(item => item.value),
// };
// }
return {};
};
return (
<PageHeaderWrapper>
<Card>
<StandardTable
tableProps={{
rowKey: 'id',
}}
columns={columns}
currentRef={ref}
fetchTableData={(params: any) => fetchListData(params)}
controlRender={
<NiceForm
actions={formActions}
onSubmit={values => ref.current.reload(values)}
effects={($, actions) => {
useStateFilterSearchLinkageEffect(
$,
actions,
'applyNo',
FORM_FILTER_PATH,
);
useAsyncInitSelect(
['innerStatus', 'outerStatus'],
fetchSearchItems,
);
}}
schema={listSearchSchema}
/>
}
/>
</Card>
</PageHeaderWrapper>
);
};
export default ReturnPrConfirmFinish;
\ No newline at end of file
/*
* @Author: XieZhiXiong
* @Date: 2020-09-29 10:03:06
* @LastEditors: XieZhiXiong
* @LastEditTime: 2020-11-05 14:28:08
* @Description:
*/
import { ISchema } from '@formily/antd';
import { FORM_FILTER_PATH } from '@/formSchema/const';
import { UPLOAD_TYPE } from '@/constants';
export const listSearchSchema: ISchema = {
type: 'object',
properties: {
megaLayout: {
type: 'object',
'x-component': 'mega-layout',
properties: {
applyNo: {
type: 'string',
'x-component': 'Search',
'x-component-props': {
placeholder: '搜索',
align: 'flex-left',
tip: '输入 申请单号 进行搜索',
},
},
[FORM_FILTER_PATH]: {
type: 'object',
'x-component': 'mega-layout',
'x-component-props': {
grid: true,
full: true,
autoRow: true,
columns: 6,
},
properties: {
abstract: {
type: 'string',
'x-component-props': {
placeholder: '申请单摘要',
allowClear: true,
},
},
'[startTime, endTime]': {
type: 'string',
default: '',
'x-component': 'dateSelect',
'x-component-props': {
placeholder: '单据时间(全部)',
allowClear: true,
},
},
supplier: {
type: 'string',
default: undefined,
enum: [],
'x-component-props': {
placeholder: '供应会员(全部)',
allowClear: true,
},
},
outerStatus: {
type: 'string',
default: undefined,
enum: [],
'x-component-props': {
placeholder: '外部状态(全部)',
allowClear: true,
},
},
innerStatus: {
type: 'string',
default: undefined,
enum: [],
'x-component-props': {
placeholder: '内部状态(全部)',
allowClear: true,
},
},
submit: {
'x-component': 'Submit',
'x-mega-props': {
span: 1,
},
'x-component-props': {
children: '查询',
},
},
},
},
},
},
},
};
\ No newline at end of file
import React, { useState } from 'react';
import { Button } from 'antd';
import { history } from 'umi';
import { PublicApi } from '@/services/api';
import { FormOutlined } from '@ant-design/icons';
import { usePageStatus } from '@/hooks/usePageStatus';
import DetailInfo from '../components/DetailInfo';
import FinishedModal from '../../components/FinishedModal';
const ReturnPrConfirmFinishVerify: React.FC = () => {
const { id, creditId } = usePageStatus();
const [visible, setVisible] = useState(false);
const [confirmLoading, setConfirmLoading] = useState(false);
const handleSubmit = values => {
if (!id) {
return;
}
};
return (
<>
<DetailInfo
id={id}
headExtra={(
<Button
type="primary"
icon={<FormOutlined />}
onClick={() => setVisible(true)}
>
提交
</Button>
)}
/>
<FinishedModal
visible={visible}
confirmLoading={confirmLoading}
onSubmit={handleSubmit}
onVisible={() => setVisible(false)}
/>
</>
);
};
export default ReturnPrConfirmFinishVerify;
\ No newline at end of file
import React from 'react';
import { usePageStatus } from '@/hooks/usePageStatus';
import DetailInfo from '../components/DetailInfo';
const ReturnPrConfirmResultDetail: React.FC = () => {
const { id, creditId } = usePageStatus();
return (
<DetailInfo
id={id}
/>
);
};
export default ReturnPrConfirmResultDetail;
\ No newline at end of file
/*
* @Author: XieZhiXiong
* @Date: 2020-11-06 16:30:44
* @LastEditors: XieZhiXiong
* @LastEditTime: 2020-11-09 13:54:49
* @Description: 待新增退货发货单
*/
import React, { useState, useRef } from 'react';
import { Card, Badge, Progress, Button, Modal } from 'antd';
import {
ClockCircleOutlined,
ExclamationCircleOutlined,
} from '@ant-design/icons';
import { history } from 'umi';
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';
import { coverColFiltersItem } from '@/utils';
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_INNER_STATUS_BADGE_MAP,
} from '../../contants';
import styles from './index.less';
const { confirm } = Modal;
const formActions = createFormActions();
const ReturnPrConfirmResult: React.FC = () => {
const ref = useRef<any>({});
const defaultColumns: ColumnType<any>[] = [
{
title: '申请单号',
dataIndex: 'applyNo',
align: 'center',
render: (text, record) => (
<>
<EyePreview
url={`/memberCenter/afterService/returnApplication/returnPrConfirmResult/detail?id=${record.id}`}
>
{text}
</EyePreview>
</>
),
},
{
title: '申请单摘要',
dataIndex: 'parentMemberName',
align: 'center',
},
{
title: '供应会员',
dataIndex: 'supplier',
align: 'center',
},
{
title: '退款金额',
dataIndex: 'returnAmount',
align: 'center',
},
{
title: '单据时间',
dataIndex: 'created',
align: 'center',
},
{
title: '已退款',
dataIndex: 'returnAmount',
align: 'center',
},
{
title: '外部状态',
dataIndex: 'outerStatusName',
align: 'center',
filters: [],
onFilter: (value, record) => record.outerStatus === value,
render: (text, record) => (
<StatusTag type="success" title="售后完成" />
),
},
{
title: '内部状态',
dataIndex: 'innerStatusName',
align: 'center',
filters: [],
onFilter: (value, record) => record.innerStatus === value,
render: (text, record) => <Badge color={'#6C9CEB'} text="待确认售后完成" />,
},
{
title: '操作',
dataIndex: 'option',
align: 'center',
render: (text, record) => (
<>
<Button
type="link"
onClick={() => history.push(`/memberCenter/afterService/returnApplication/returnPrConfirmResult/verify`)}
>
确认
</Button>
</>
),
},
];
const [columns, setColumns] = useState<any[]>(defaultColumns);
const fetchListData = (params: any) => {
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();
// });
// });
return Promise.resolve({
data: [
{
id: 1,
applyNo: '123',
parentMemberName: '申请单摘要',
created: '2020-11-03 11:46:00',
},
],
total: 10,
});
};
// 初始化高级筛选选项
const fetchSearchItems = async () => {
// const res = await PublicApi.getPayCreditApplyPageItemsByConsumer();
// if (res.code === 1000) {
// const { data } = res;
// const {
// outerStatusList = [],
// innerStatusList = [],
// } = data;
// const newColumns = columns.slice();
// // filter 0 过滤掉全部选项
// coverColFiltersItem(
// newColumns,
// 'outerStatusName',
// outerStatusList.map(item => ({ text: item.name, value: item.status })).filter(item => item.value),
// );
// coverColFiltersItem(
// newColumns,
// 'innerStatusName',
// innerStatusList.map(item => ({ text: item.name, value: item.status })).filter(item => item.value),
// );
// setColumns(newColumns);
// return {
// outerStatus: outerStatusList.map(item => ({ label: item.name, value: item.status })).filter(item => item.value),
// innerStatus: innerStatusList.map(item => ({ label: item.name, value: item.status })).filter(item => item.value),
// };
// }
return {};
};
return (
<PageHeaderWrapper>
<Card>
<StandardTable
tableProps={{
rowKey: 'id',
}}
columns={columns}
currentRef={ref}
fetchTableData={(params: any) => fetchListData(params)}
controlRender={
<NiceForm
actions={formActions}
onSubmit={values => ref.current.reload(values)}
effects={($, actions) => {
useStateFilterSearchLinkageEffect(
$,
actions,
'applyNo',
FORM_FILTER_PATH,
);
useAsyncInitSelect(
['innerStatus', 'outerStatus'],
fetchSearchItems,
);
}}
schema={listSearchSchema}
/>
}
/>
</Card>
</PageHeaderWrapper>
);
};
export default ReturnPrConfirmResult;
\ No newline at end of file
/*
* @Author: XieZhiXiong
* @Date: 2020-09-29 10:03:06
* @LastEditors: XieZhiXiong
* @LastEditTime: 2020-11-05 14:28:08
* @Description:
*/
import { ISchema } from '@formily/antd';
import { FORM_FILTER_PATH } from '@/formSchema/const';
import { UPLOAD_TYPE } from '@/constants';
export const listSearchSchema: ISchema = {
type: 'object',
properties: {
megaLayout: {
type: 'object',
'x-component': 'mega-layout',
properties: {
applyNo: {
type: 'string',
'x-component': 'Search',
'x-component-props': {
placeholder: '搜索',
align: 'flex-left',
tip: '输入 申请单号 进行搜索',
},
},
[FORM_FILTER_PATH]: {
type: 'object',
'x-component': 'mega-layout',
'x-component-props': {
grid: true,
full: true,
autoRow: true,
columns: 6,
},
properties: {
abstract: {
type: 'string',
'x-component-props': {
placeholder: '申请单摘要',
allowClear: true,
},
},
'[startTime, endTime]': {
type: 'string',
default: '',
'x-component': 'dateSelect',
'x-component-props': {
placeholder: '单据时间(全部)',
allowClear: true,
},
},
supplier: {
type: 'string',
default: undefined,
enum: [],
'x-component-props': {
placeholder: '供应会员(全部)',
allowClear: true,
},
},
outerStatus: {
type: 'string',
default: undefined,
enum: [],
'x-component-props': {
placeholder: '外部状态(全部)',
allowClear: true,
},
},
innerStatus: {
type: 'string',
default: undefined,
enum: [],
'x-component-props': {
placeholder: '内部状态(全部)',
allowClear: true,
},
},
submit: {
'x-component': 'Submit',
'x-mega-props': {
span: 1,
},
'x-component-props': {
children: '查询',
},
},
},
},
},
},
},
};
\ No newline at end of file
import React, { useState } from 'react';
import { Button } from 'antd';
import { history } from 'umi';
import { PublicApi } from '@/services/api';
import { FormOutlined } from '@ant-design/icons';
import { usePageStatus } from '@/hooks/usePageStatus';
import DetailInfo from '../components/DetailInfo';
const ReturnPrConfirmResultVerify: React.FC = () => {
const { id, creditId } = usePageStatus();
const [submitLoading, setSubmitLoading] = useState(false);
const handleSubmit = values => {
if (!id) {
return;
}
};
return (
<>
<DetailInfo
id={id}
headExtra={(
<Button
type="primary"
icon={<FormOutlined />}
onClick={() => {}}
>
确认本单所有退款到账
</Button>
)}
/>
</>
);
};
export default ReturnPrConfirmResultVerify;
\ No newline at end of file
import React from 'react';
import { usePageStatus } from '@/hooks/usePageStatus';
import DetailInfo from '../components/DetailInfo';
const ReturnPrDeliverDetail: React.FC = () => {
const { id, creditId } = usePageStatus();
return (
<DetailInfo
id={id}
/>
);
};
export default ReturnPrDeliverDetail;
\ No newline at end of file
/*
* @Author: XieZhiXiong
* @Date: 2020-11-06 16:30:44
* @LastEditors: XieZhiXiong
* @LastEditTime: 2020-11-09 11:10:50
* @Description: 待新增退货发货单
*/
import React, { useState, useRef } from 'react';
import { Card, Badge, Progress, Button, Modal } from 'antd';
import {
ClockCircleOutlined,
ExclamationCircleOutlined,
} from '@ant-design/icons';
import { history } from 'umi';
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';
import { coverColFiltersItem } from '@/utils';
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_INNER_STATUS_BADGE_MAP,
} from '../../contants';
import styles from './index.less';
const { confirm } = Modal;
const formActions = createFormActions();
const ReturnPrDeliver: React.FC = () => {
const ref = useRef<any>({});
const defaultColumns: ColumnType<any>[] = [
{
title: '申请单号',
dataIndex: 'applyNo',
align: 'center',
render: (text, record) => (
<>
<EyePreview
url={`/memberCenter/afterService/returnApplication/returnPrDeliver/detail?id=${record.id}`}
>
{text}
</EyePreview>
</>
),
},
{
title: '申请单摘要',
dataIndex: 'parentMemberName',
align: 'center',
},
{
title: '供应会员',
dataIndex: 'supplier',
align: 'center',
},
{
title: '退款金额',
dataIndex: 'returnAmount',
align: 'center',
},
{
title: '单据时间',
dataIndex: 'created',
align: 'center',
},
{
title: '退货批次',
dataIndex: 'batch',
align: 'center',
},
{
title: '退货发货单号',
dataIndex: 'deliverNo',
align: 'center',
render: text => <a>{text}</a>,
},
{
title: '外部状态',
dataIndex: 'outerStatusName',
align: 'center',
filters: [],
onFilter: (value, record) => record.outerStatus === value,
render: (text, record) => (
<StatusTag type="success" title="售后完成" />
),
},
{
title: '内部状态',
dataIndex: 'innerStatusName',
align: 'center',
filters: [],
onFilter: (value, record) => record.innerStatus === value,
render: (text, record) => <Badge color={'#6C9CEB'} text="待确认售后完成" />,
},
{
title: '操作',
dataIndex: 'option',
align: 'center',
render: (text, record) => (
<>
<Button
type="link"
onClick={() => history.push(`/memberCenter/afterService/returnApplication/returnPrDeliver/verify`)}
>
退货发货
</Button>
</>
),
},
];
const [columns, setColumns] = useState<any[]>(defaultColumns);
const fetchListData = (params: any) => {
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();
// });
// });
return Promise.resolve({
data: [
{
id: 1,
applyNo: '123',
parentMemberName: '申请单摘要',
created: '2020-11-03 11:46:00',
},
],
total: 10,
});
};
// 初始化高级筛选选项
const fetchSearchItems = async () => {
// const res = await PublicApi.getPayCreditApplyPageItemsByConsumer();
// if (res.code === 1000) {
// const { data } = res;
// const {
// outerStatusList = [],
// innerStatusList = [],
// } = data;
// const newColumns = columns.slice();
// // filter 0 过滤掉全部选项
// coverColFiltersItem(
// newColumns,
// 'outerStatusName',
// outerStatusList.map(item => ({ text: item.name, value: item.status })).filter(item => item.value),
// );
// coverColFiltersItem(
// newColumns,
// 'innerStatusName',
// innerStatusList.map(item => ({ text: item.name, value: item.status })).filter(item => item.value),
// );
// setColumns(newColumns);
// return {
// outerStatus: outerStatusList.map(item => ({ label: item.name, value: item.status })).filter(item => item.value),
// innerStatus: innerStatusList.map(item => ({ label: item.name, value: item.status })).filter(item => item.value),
// };
// }
return {};
};
return (
<PageHeaderWrapper>
<Card>
<StandardTable
tableProps={{
rowKey: 'id',
}}
columns={columns}
currentRef={ref}
fetchTableData={(params: any) => fetchListData(params)}
controlRender={
<NiceForm
actions={formActions}
onSubmit={values => ref.current.reload(values)}
effects={($, actions) => {
useStateFilterSearchLinkageEffect(
$,
actions,
'applyNo',
FORM_FILTER_PATH,
);
useAsyncInitSelect(
['innerStatus', 'outerStatus'],
fetchSearchItems,
);
}}
schema={listSearchSchema}
/>
}
/>
</Card>
</PageHeaderWrapper>
);
};
export default ReturnPrDeliver;
\ No newline at end of file
/*
* @Author: XieZhiXiong
* @Date: 2020-09-29 10:03:06
* @LastEditors: XieZhiXiong
* @LastEditTime: 2020-11-05 14:28:08
* @Description:
*/
import { ISchema } from '@formily/antd';
import { FORM_FILTER_PATH } from '@/formSchema/const';
import { UPLOAD_TYPE } from '@/constants';
export const listSearchSchema: ISchema = {
type: 'object',
properties: {
megaLayout: {
type: 'object',
'x-component': 'mega-layout',
properties: {
applyNo: {
type: 'string',
'x-component': 'Search',
'x-component-props': {
placeholder: '搜索',
align: 'flex-left',
tip: '输入 申请单号 进行搜索',
},
},
[FORM_FILTER_PATH]: {
type: 'object',
'x-component': 'mega-layout',
'x-component-props': {
grid: true,
full: true,
autoRow: true,
columns: 6,
},
properties: {
abstract: {
type: 'string',
'x-component-props': {
placeholder: '申请单摘要',
allowClear: true,
},
},
'[startTime, endTime]': {
type: 'string',
default: '',
'x-component': 'dateSelect',
'x-component-props': {
placeholder: '单据时间(全部)',
allowClear: true,
},
},
supplier: {
type: 'string',
default: undefined,
enum: [],
'x-component-props': {
placeholder: '供应会员(全部)',
allowClear: true,
},
},
outerStatus: {
type: 'string',
default: undefined,
enum: [],
'x-component-props': {
placeholder: '外部状态(全部)',
allowClear: true,
},
},
innerStatus: {
type: 'string',
default: undefined,
enum: [],
'x-component-props': {
placeholder: '内部状态(全部)',
allowClear: true,
},
},
submit: {
'x-component': 'Submit',
'x-mega-props': {
span: 1,
},
'x-component-props': {
children: '查询',
},
},
},
},
},
},
},
};
\ No newline at end of file
import React, { useState } from 'react';
import { Button } from 'antd';
import { history } from 'umi';
import { PublicApi } from '@/services/api';
import { SettingOutlined } from '@ant-design/icons';
import { usePageStatus } from '@/hooks/usePageStatus';
import ManualDeliveryModal from '../../components/ManualDeliveryModal';
import DetailInfo from '../components/DetailInfo';
const ReturnPrDeliverVerify: React.FC = () => {
const { id, creditId } = usePageStatus();
const [modalVisible, setModalVisible] = useState(false);
const [submitLoading, setSubmitLoading] = useState(false);
const handleSubmit = values => {
if (!id) {
return;
}
setSubmitLoading(true);
// PublicApi.postPayCreditHandleVerifyStepOne({
// applyId: id,
// isPass: values.agree,
// opinion: values.reason,
// }).then(res => {
// if (res.code === 1000) {
// history.goBack();
// }
// }).finally(() => {
// setSubmitLoading(false);
// });
};
const handleVisible = flag => {
setModalVisible(!!flag);
};
return (
<>
<DetailInfo
id={id}
headExtra={(
<Button
type="default"
icon={<SettingOutlined />}
onClick={() => handleVisible(true)}
>
手工退货发货
</Button>
)}
/>
<ManualDeliveryModal
visible={modalVisible}
confirmLoading={submitLoading}
onSubmit={handleSubmit}
onVisible={handleVisible}
/>
</>
);
};
export default ReturnPrDeliverVerify;
\ No newline at end of file
import React from 'react';
import { usePageStatus } from '@/hooks/usePageStatus';
import DetailInfo from '../components/DetailInfo';
const ReturnPr1Detail: React.FC = () => {
const { id, creditId } = usePageStatus();
return (
<DetailInfo
id={id}
/>
);
};
export default ReturnPr1Detail;
\ No newline at end of file
/*
* @Author: XieZhiXiong
* @Date: 2020-11-05 14:25:41
* @LastEditors: XieZhiXiong
* @LastEditTime: 2020-11-09 17:44:59
* @Description: 退货申请单查询
*/
import React, { useState, useRef } from 'react';
import { Card, Badge, Progress, Button } from 'antd';
import {
ClockCircleOutlined,
} from '@ant-design/icons';
import { StandardTable } from 'god';
import moment from 'moment';
import { history } from 'umi';
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';
import { coverColFiltersItem } from '@/utils';
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_INNER_STATUS_BADGE_MAP,
} from '../../contants';
import styles from './index.less';
const formActions = createFormActions();
const ReturnPr1: React.FC = () => {
const ref = useRef<any>({});
const defaultColumns: ColumnType<any>[] = [
{
title: '申请单号',
dataIndex: 'applyNo',
align: 'center',
render: (text, record) => (
<>
<EyePreview
url={`/memberCenter/afterService/returnManage/returnPr1/detail?id=${record.id}`}
>
{text}
</EyePreview>
</>
),
},
{
title: '申请单摘要',
dataIndex: 'parentMemberName',
align: 'center',
},
{
title: '采购会员',
dataIndex: 'supplier',
align: 'center',
},
{
title: '退款金额',
dataIndex: 'returnAmount',
align: 'center',
},
{
title: '单据时间',
dataIndex: 'created',
align: 'center',
},
{
title: '外部状态',
dataIndex: 'outerStatusName',
align: 'center',
filters: [],
onFilter: (value, record) => record.outerStatus === value,
render: (text, record) => (
<StatusTag type="success" title="售后完成" />
),
},
{
title: '内部状态',
dataIndex: 'innerStatusName',
align: 'center',
filters: [],
onFilter: (value, record) => record.innerStatus === value,
render: (text, record) => <Badge color={'#6C9CEB'} text="待确认售后完成" />,
},
{
title: '操作',
dataIndex: 'option',
align: 'center',
render: (text, record) => (
<>
<Button
type="link"
onClick={() => history.push(`/memberCenter/afterService/returnManage/returnPr1/verify`)}
>
提交审核
</Button>
</>
),
},
];
const [columns, setColumns] = useState<any[]>(defaultColumns);
const fetchListData = (params: any) => {
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();
// });
// });
return Promise.resolve({
data: [
{
id: 1,
applyNo: '123',
parentMemberName: '申请单摘要',
created: '2020-11-03 11:46:00',
},
],
total: 10,
});
};
// 初始化高级筛选选项
const fetchSearchItems = async () => {
// const res = await PublicApi.getPayCreditApplyPageItemsByConsumer();
// if (res.code === 1000) {
// const { data } = res;
// const {
// outerStatusList = [],
// innerStatusList = [],
// } = data;
// const newColumns = columns.slice();
// // filter 0 过滤掉全部选项
// coverColFiltersItem(
// newColumns,
// 'outerStatusName',
// outerStatusList.map(item => ({ text: item.name, value: item.status })).filter(item => item.value),
// );
// coverColFiltersItem(
// newColumns,
// 'innerStatusName',
// innerStatusList.map(item => ({ text: item.name, value: item.status })).filter(item => item.value),
// );
// setColumns(newColumns);
// return {
// outerStatus: outerStatusList.map(item => ({ label: item.name, value: item.status })).filter(item => item.value),
// innerStatus: innerStatusList.map(item => ({ label: item.name, value: item.status })).filter(item => item.value),
// };
// }
return {};
};
return (
<PageHeaderWrapper>
<Card>
<StandardTable
tableProps={{
rowKey: 'id',
}}
columns={columns}
currentRef={ref}
fetchTableData={(params: any) => fetchListData(params)}
controlRender={
<NiceForm
actions={formActions}
onSubmit={values => ref.current.reload(values)}
effects={($, actions) => {
useStateFilterSearchLinkageEffect(
$,
actions,
'applyNo',
FORM_FILTER_PATH,
);
useAsyncInitSelect(
['innerStatus', 'outerStatus'],
fetchSearchItems,
);
}}
schema={listSearchSchema}
/>
}
/>
</Card>
</PageHeaderWrapper>
);
};
export default ReturnPr1;
\ No newline at end of file
/*
* @Author: XieZhiXiong
* @Date: 2020-09-29 10:03:06
* @LastEditors: XieZhiXiong
* @LastEditTime: 2020-11-09 17:19:00
* @Description:
*/
import { ISchema } from '@formily/antd';
import { FORM_FILTER_PATH } from '@/formSchema/const';
import { UPLOAD_TYPE } from '@/constants';
export const listSearchSchema: ISchema = {
type: 'object',
properties: {
megaLayout: {
type: 'object',
'x-component': 'mega-layout',
properties: {
applyNo: {
type: 'string',
'x-component': 'Search',
'x-component-props': {
placeholder: '搜索',
align: 'flex-left',
tip: '输入 申请单号 进行搜索',
},
},
[FORM_FILTER_PATH]: {
type: 'object',
'x-component': 'mega-layout',
'x-component-props': {
grid: true,
full: true,
autoRow: true,
columns: 6,
},
properties: {
abstract: {
type: 'string',
'x-component-props': {
placeholder: '申请单摘要',
allowClear: true,
},
},
'[startTime, endTime]': {
type: 'string',
default: '',
'x-component': 'dateSelect',
'x-component-props': {
placeholder: '单据时间(全部)',
allowClear: true,
},
},
supplier: {
type: 'string',
default: undefined,
enum: [],
'x-component-props': {
placeholder: '采购会员(全部)',
allowClear: true,
},
},
submit: {
'x-component': 'Submit',
'x-mega-props': {
span: 1,
},
'x-component-props': {
children: '查询',
},
},
},
},
},
},
},
};
\ No newline at end of file
/*
* @Author: XieZhiXiong
* @Date: 2020-11-04 17:22:07
* @LastEditors: XieZhiXiong
* @LastEditTime: 2020-11-09 17:27:30
* @Description:
*/
import React, { useState } from 'react';
import { Button } from 'antd';
import { history } from 'umi';
import { PublicApi } from '@/services/api';
import { FormOutlined } from '@ant-design/icons';
import { usePageStatus } from '@/hooks/usePageStatus';
import DetailInfo from '../components/DetailInfo';
import VerifyModal from '../../components/VerifyModal';
const ReturnPr1Verify: React.FC = () => {
const { id, creditId } = usePageStatus();
const [visible, setVisible] = useState(false);
const [confirmLoading, setConfirmLoading] = useState(false);
const handleSubmit = values => {
};
return (
<>
<DetailInfo
id={id}
target="/memberCenter/payandSettle/creditApplication/quotaFormQuery/detail"
headExtra={(
<Button
type="primary"
icon={<FormOutlined />}
onClick={() => setVisible(true)}
>
单据审核
</Button>
)}
/>
<VerifyModal
visible={visible}
confirmLoading={confirmLoading}
onSubmit={handleSubmit}
onVisible={() => setVisible(false)}
/>
</>
);
};
export default ReturnPr1Verify;
\ No newline at end of file
import React from 'react';
import { usePageStatus } from '@/hooks/usePageStatus';
import DetailInfo from '../components/DetailInfo';
const ReturnPr2Detail: React.FC = () => {
const { id, creditId } = usePageStatus();
return (
<DetailInfo
id={id}
/>
);
};
export default ReturnPr2Detail;
\ No newline at end of file
/*
* @Author: XieZhiXiong
* @Date: 2020-11-05 14:25:41
* @LastEditors: XieZhiXiong
* @LastEditTime: 2020-11-09 17:34:37
* @Description: 退货申请单查询
*/
import React, { useState, useRef } from 'react';
import { Card, Badge, Progress, Button } from 'antd';
import {
ClockCircleOutlined,
} from '@ant-design/icons';
import { StandardTable } from 'god';
import moment from 'moment';
import { history } from 'umi';
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';
import { coverColFiltersItem } from '@/utils';
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_INNER_STATUS_BADGE_MAP,
} from '../../contants';
import styles from './index.less';
const formActions = createFormActions();
const ReturnPr2: React.FC = () => {
const ref = useRef<any>({});
const defaultColumns: ColumnType<any>[] = [
{
title: '申请单号',
dataIndex: 'applyNo',
align: 'center',
render: (text, record) => (
<>
<EyePreview
url={`/memberCenter/afterService/returnManage/returnPr2/detail?id=${record.id}`}
>
{text}
</EyePreview>
</>
),
},
{
title: '申请单摘要',
dataIndex: 'parentMemberName',
align: 'center',
},
{
title: '采购会员',
dataIndex: 'supplier',
align: 'center',
},
{
title: '退款金额',
dataIndex: 'returnAmount',
align: 'center',
},
{
title: '单据时间',
dataIndex: 'created',
align: 'center',
},
{
title: '外部状态',
dataIndex: 'outerStatusName',
align: 'center',
filters: [],
onFilter: (value, record) => record.outerStatus === value,
render: (text, record) => (
<StatusTag type="success" title="售后完成" />
),
},
{
title: '内部状态',
dataIndex: 'innerStatusName',
align: 'center',
filters: [],
onFilter: (value, record) => record.innerStatus === value,
render: (text, record) => <Badge color={'#6C9CEB'} text="待确认售后完成" />,
},
{
title: '操作',
dataIndex: 'option',
align: 'center',
render: (text, record) => (
<>
<Button
type="link"
onClick={() => history.push(`/memberCenter/afterService/returnManage/returnPr2/verify`)}
>
提交审核
</Button>
</>
),
},
];
const [columns, setColumns] = useState<any[]>(defaultColumns);
const fetchListData = (params: any) => {
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();
// });
// });
return Promise.resolve({
data: [
{
id: 1,
applyNo: '123',
parentMemberName: '申请单摘要',
created: '2020-11-03 11:46:00',
},
],
total: 10,
});
};
// 初始化高级筛选选项
const fetchSearchItems = async () => {
// const res = await PublicApi.getPayCreditApplyPageItemsByConsumer();
// if (res.code === 1000) {
// const { data } = res;
// const {
// outerStatusList = [],
// innerStatusList = [],
// } = data;
// const newColumns = columns.slice();
// // filter 0 过滤掉全部选项
// coverColFiltersItem(
// newColumns,
// 'outerStatusName',
// outerStatusList.map(item => ({ text: item.name, value: item.status })).filter(item => item.value),
// );
// coverColFiltersItem(
// newColumns,
// 'innerStatusName',
// innerStatusList.map(item => ({ text: item.name, value: item.status })).filter(item => item.value),
// );
// setColumns(newColumns);
// return {
// outerStatus: outerStatusList.map(item => ({ label: item.name, value: item.status })).filter(item => item.value),
// innerStatus: innerStatusList.map(item => ({ label: item.name, value: item.status })).filter(item => item.value),
// };
// }
return {};
};
return (
<PageHeaderWrapper>
<Card>
<StandardTable
tableProps={{
rowKey: 'id',
}}
columns={columns}
currentRef={ref}
fetchTableData={(params: any) => fetchListData(params)}
controlRender={
<NiceForm
actions={formActions}
onSubmit={values => ref.current.reload(values)}
effects={($, actions) => {
useStateFilterSearchLinkageEffect(
$,
actions,
'applyNo',
FORM_FILTER_PATH,
);
useAsyncInitSelect(
['innerStatus', 'outerStatus'],
fetchSearchItems,
);
}}
schema={listSearchSchema}
/>
}
/>
</Card>
</PageHeaderWrapper>
);
};
export default ReturnPr2;
\ No newline at end of file
/*
* @Author: XieZhiXiong
* @Date: 2020-09-29 10:03:06
* @LastEditors: XieZhiXiong
* @LastEditTime: 2020-11-09 17:19:00
* @Description:
*/
import { ISchema } from '@formily/antd';
import { FORM_FILTER_PATH } from '@/formSchema/const';
import { UPLOAD_TYPE } from '@/constants';
export const listSearchSchema: ISchema = {
type: 'object',
properties: {
megaLayout: {
type: 'object',
'x-component': 'mega-layout',
properties: {
applyNo: {
type: 'string',
'x-component': 'Search',
'x-component-props': {
placeholder: '搜索',
align: 'flex-left',
tip: '输入 申请单号 进行搜索',
},
},
[FORM_FILTER_PATH]: {
type: 'object',
'x-component': 'mega-layout',
'x-component-props': {
grid: true,
full: true,
autoRow: true,
columns: 6,
},
properties: {
abstract: {
type: 'string',
'x-component-props': {
placeholder: '申请单摘要',
allowClear: true,
},
},
'[startTime, endTime]': {
type: 'string',
default: '',
'x-component': 'dateSelect',
'x-component-props': {
placeholder: '单据时间(全部)',
allowClear: true,
},
},
supplier: {
type: 'string',
default: undefined,
enum: [],
'x-component-props': {
placeholder: '采购会员(全部)',
allowClear: true,
},
},
submit: {
'x-component': 'Submit',
'x-mega-props': {
span: 1,
},
'x-component-props': {
children: '查询',
},
},
},
},
},
},
},
};
\ No newline at end of file
/*
* @Author: XieZhiXiong
* @Date: 2020-11-04 17:22:07
* @LastEditors: XieZhiXiong
* @LastEditTime: 2020-11-09 17:27:30
* @Description:
*/
import React, { useState } from 'react';
import { Button } from 'antd';
import { history } from 'umi';
import { PublicApi } from '@/services/api';
import { FormOutlined } from '@ant-design/icons';
import { usePageStatus } from '@/hooks/usePageStatus';
import DetailInfo from '../components/DetailInfo';
import VerifyModal from '../../components/VerifyModal';
const ReturnPr2Verify: React.FC = () => {
const { id, creditId } = usePageStatus();
const [visible, setVisible] = useState(false);
const [confirmLoading, setConfirmLoading] = useState(false);
const handleSubmit = values => {
};
return (
<>
<DetailInfo
id={id}
target="/memberCenter/payandSettle/creditApplication/quotaFormQuery/detail"
headExtra={(
<Button
type="primary"
icon={<FormOutlined />}
onClick={() => setVisible(true)}
>
单据审核
</Button>
)}
/>
<VerifyModal
visible={visible}
confirmLoading={confirmLoading}
onSubmit={handleSubmit}
onVisible={() => setVisible(false)}
/>
</>
);
};
export default ReturnPr2Verify;
\ No newline at end of file
import React from 'react';
import { usePageStatus } from '@/hooks/usePageStatus';
import DetailInfo from '../components/DetailInfo';
const ReturnPrAddDeliverDetail: React.FC = () => {
const { id, creditId } = usePageStatus();
return (
<DetailInfo
id={id}
/>
);
};
export default ReturnPrAddDeliverDetail;
\ No newline at end of file
/*
* @Author: XieZhiXiong
* @Date: 2020-11-06 16:30:44
* @LastEditors: XieZhiXiong
* @LastEditTime: 2020-11-09 17:59:16
* @Description: 待新增退货发货单
*/
import React, { useState, useRef } from 'react';
import { Card, Badge, Progress, Button, Modal } from 'antd';
import {
ClockCircleOutlined,
ExclamationCircleOutlined,
} from '@ant-design/icons';
import { history } from 'umi';
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';
import { coverColFiltersItem } from '@/utils';
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_INNER_STATUS_BADGE_MAP,
} from '../../contants';
import styles from './index.less';
const { confirm } = Modal;
const formActions = createFormActions();
const ReturnPrAddWarehousing: React.FC = () => {
const ref = useRef<any>({});
const handleVerify = record => {
confirm({
title: '确认审核操作',
icon: <ExclamationCircleOutlined />,
content: `是否确认审核退货入库单号为${'FH5421039'}的退货入库单?`,
onOk() {
// do something
},
});
};
const defaultColumns: ColumnType<any>[] = [
{
title: '申请单号',
dataIndex: 'applyNo',
align: 'center',
render: (text, record) => (
<>
<EyePreview
url={`/memberCenter/afterService/returnManage/returnPrAddWarehousing/detail?id=${record.id}`}
>
{text}
</EyePreview>
</>
),
},
{
title: '申请单摘要',
dataIndex: 'parentMemberName',
align: 'center',
},
{
title: '采购会员',
dataIndex: 'supplier',
align: 'center',
},
{
title: '退款金额',
dataIndex: 'returnAmount',
align: 'center',
},
{
title: '单据时间',
dataIndex: 'created',
align: 'center',
},
{
title: '退货批次',
dataIndex: 'batch',
align: 'center',
},
{
title: '退货发货单号',
dataIndex: 'deliverNo',
align: 'center',
render: text => <a>{text}</a>,
},
{
title: '外部状态',
dataIndex: 'outerStatusName',
align: 'center',
filters: [],
onFilter: (value, record) => record.outerStatus === value,
render: (text, record) => (
<StatusTag type="success" title="售后完成" />
),
},
{
title: '内部状态',
dataIndex: 'innerStatusName',
align: 'center',
filters: [],
onFilter: (value, record) => record.innerStatus === value,
render: (text, record) => <Badge color={'#6C9CEB'} text="待确认售后完成" />,
},
{
title: '操作',
dataIndex: 'option',
align: 'center',
render: (text, record) => (
<>
<Button
type="link"
onClick={() => () => history.push(``)}
>
新增
</Button>
<Button
type="link"
onClick={() => handleVerify(record.id)}
>
审核
</Button>
</>
),
},
];
const [columns, setColumns] = useState<any[]>(defaultColumns);
const fetchListData = (params: any) => {
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();
// });
// });
return Promise.resolve({
data: [
{
id: 1,
applyNo: '123',
parentMemberName: '申请单摘要',
created: '2020-11-03 11:46:00',
},
],
total: 10,
});
};
// 初始化高级筛选选项
const fetchSearchItems = async () => {
// const res = await PublicApi.getPayCreditApplyPageItemsByConsumer();
// if (res.code === 1000) {
// const { data } = res;
// const {
// outerStatusList = [],
// innerStatusList = [],
// } = data;
// const newColumns = columns.slice();
// // filter 0 过滤掉全部选项
// coverColFiltersItem(
// newColumns,
// 'outerStatusName',
// outerStatusList.map(item => ({ text: item.name, value: item.status })).filter(item => item.value),
// );
// coverColFiltersItem(
// newColumns,
// 'innerStatusName',
// innerStatusList.map(item => ({ text: item.name, value: item.status })).filter(item => item.value),
// );
// setColumns(newColumns);
// return {
// outerStatus: outerStatusList.map(item => ({ label: item.name, value: item.status })).filter(item => item.value),
// innerStatus: innerStatusList.map(item => ({ label: item.name, value: item.status })).filter(item => item.value),
// };
// }
return {};
};
return (
<PageHeaderWrapper>
<Card>
<StandardTable
tableProps={{
rowKey: 'id',
}}
columns={columns}
currentRef={ref}
fetchTableData={(params: any) => fetchListData(params)}
controlRender={
<NiceForm
actions={formActions}
onSubmit={values => ref.current.reload(values)}
effects={($, actions) => {
useStateFilterSearchLinkageEffect(
$,
actions,
'applyNo',
FORM_FILTER_PATH,
);
useAsyncInitSelect(
['innerStatus', 'outerStatus'],
fetchSearchItems,
);
}}
schema={listSearchSchema}
/>
}
/>
</Card>
</PageHeaderWrapper>
);
};
export default ReturnPrAddWarehousing;
\ No newline at end of file
/*
* @Author: XieZhiXiong
* @Date: 2020-09-29 10:03:06
* @LastEditors: XieZhiXiong
* @LastEditTime: 2020-11-09 17:53:45
* @Description:
*/
import { ISchema } from '@formily/antd';
import { FORM_FILTER_PATH } from '@/formSchema/const';
import { UPLOAD_TYPE } from '@/constants';
export const listSearchSchema: ISchema = {
type: 'object',
properties: {
megaLayout: {
type: 'object',
'x-component': 'mega-layout',
properties: {
applyNo: {
type: 'string',
'x-component': 'Search',
'x-component-props': {
placeholder: '搜索',
align: 'flex-left',
tip: '输入 申请单号 进行搜索',
},
},
[FORM_FILTER_PATH]: {
type: 'object',
'x-component': 'mega-layout',
'x-component-props': {
grid: true,
full: true,
autoRow: true,
columns: 6,
},
properties: {
abstract: {
type: 'string',
'x-component-props': {
placeholder: '申请单摘要',
allowClear: true,
},
},
'[startTime, endTime]': {
type: 'string',
default: '',
'x-component': 'dateSelect',
'x-component-props': {
placeholder: '单据时间(全部)',
allowClear: true,
},
},
supplier: {
type: 'string',
default: undefined,
enum: [],
'x-component-props': {
placeholder: '采购会员(全部)',
allowClear: true,
},
},
submit: {
'x-component': 'Submit',
'x-mega-props': {
span: 1,
},
'x-component-props': {
children: '查询',
},
},
},
},
},
},
},
};
\ No newline at end of file
import React from 'react';
import { usePageStatus } from '@/hooks/usePageStatus';
import DetailInfo from '../components/DetailInfo';
const ReturnPrConfirmDetail: React.FC = () => {
const { id, creditId } = usePageStatus();
return (
<DetailInfo
id={id}
/>
);
};
export default ReturnPrConfirmDetail;
\ No newline at end of file
/*
* @Author: XieZhiXiong
* @Date: 2020-11-05 14:25:41
* @LastEditors: XieZhiXiong
* @LastEditTime: 2020-11-09 17:40:41
* @Description: 退货申请单查询
*/
import React, { useState, useRef } from 'react';
import { Card, Badge, Progress, Button } from 'antd';
import {
ClockCircleOutlined,
} from '@ant-design/icons';
import { StandardTable } from 'god';
import moment from 'moment';
import { history } from 'umi';
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';
import { coverColFiltersItem } from '@/utils';
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_INNER_STATUS_BADGE_MAP,
} from '../../contants';
import styles from './index.less';
const formActions = createFormActions();
const ReturnPrConfirm: React.FC = () => {
const ref = useRef<any>({});
const defaultColumns: ColumnType<any>[] = [
{
title: '申请单号',
dataIndex: 'applyNo',
align: 'center',
render: (text, record) => (
<>
<EyePreview
url={`/memberCenter/afterService/returnManage/returnPrConfirm/detail?id=${record.id}`}
>
{text}
</EyePreview>
</>
),
},
{
title: '申请单摘要',
dataIndex: 'parentMemberName',
align: 'center',
},
{
title: '采购会员',
dataIndex: 'supplier',
align: 'center',
},
{
title: '退款金额',
dataIndex: 'returnAmount',
align: 'center',
},
{
title: '单据时间',
dataIndex: 'created',
align: 'center',
},
{
title: '外部状态',
dataIndex: 'outerStatusName',
align: 'center',
filters: [],
onFilter: (value, record) => record.outerStatus === value,
render: (text, record) => (
<StatusTag type="success" title="售后完成" />
),
},
{
title: '内部状态',
dataIndex: 'innerStatusName',
align: 'center',
filters: [],
onFilter: (value, record) => record.innerStatus === value,
render: (text, record) => <Badge color={'#6C9CEB'} text="待确认售后完成" />,
},
{
title: '操作',
dataIndex: 'option',
align: 'center',
render: (text, record) => (
<>
<Button
type="link"
onClick={() => history.push(`/memberCenter/afterService/returnManage/returnPrConfirm/verify`)}
>
提交审核
</Button>
</>
),
},
];
const [columns, setColumns] = useState<any[]>(defaultColumns);
const fetchListData = (params: any) => {
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();
// });
// });
return Promise.resolve({
data: [
{
id: 1,
applyNo: '123',
parentMemberName: '申请单摘要',
created: '2020-11-03 11:46:00',
},
],
total: 10,
});
};
// 初始化高级筛选选项
const fetchSearchItems = async () => {
// const res = await PublicApi.getPayCreditApplyPageItemsByConsumer();
// if (res.code === 1000) {
// const { data } = res;
// const {
// outerStatusList = [],
// innerStatusList = [],
// } = data;
// const newColumns = columns.slice();
// // filter 0 过滤掉全部选项
// coverColFiltersItem(
// newColumns,
// 'outerStatusName',
// outerStatusList.map(item => ({ text: item.name, value: item.status })).filter(item => item.value),
// );
// coverColFiltersItem(
// newColumns,
// 'innerStatusName',
// innerStatusList.map(item => ({ text: item.name, value: item.status })).filter(item => item.value),
// );
// setColumns(newColumns);
// return {
// outerStatus: outerStatusList.map(item => ({ label: item.name, value: item.status })).filter(item => item.value),
// innerStatus: innerStatusList.map(item => ({ label: item.name, value: item.status })).filter(item => item.value),
// };
// }
return {};
};
return (
<PageHeaderWrapper>
<Card>
<StandardTable
tableProps={{
rowKey: 'id',
}}
columns={columns}
currentRef={ref}
fetchTableData={(params: any) => fetchListData(params)}
controlRender={
<NiceForm
actions={formActions}
onSubmit={values => ref.current.reload(values)}
effects={($, actions) => {
useStateFilterSearchLinkageEffect(
$,
actions,
'applyNo',
FORM_FILTER_PATH,
);
useAsyncInitSelect(
['innerStatus', 'outerStatus'],
fetchSearchItems,
);
}}
schema={listSearchSchema}
/>
}
/>
</Card>
</PageHeaderWrapper>
);
};
export default ReturnPrConfirm;
\ No newline at end of file
/*
* @Author: XieZhiXiong
* @Date: 2020-09-29 10:03:06
* @LastEditors: XieZhiXiong
* @LastEditTime: 2020-11-09 17:19:00
* @Description:
*/
import { ISchema } from '@formily/antd';
import { FORM_FILTER_PATH } from '@/formSchema/const';
import { UPLOAD_TYPE } from '@/constants';
export const listSearchSchema: ISchema = {
type: 'object',
properties: {
megaLayout: {
type: 'object',
'x-component': 'mega-layout',
properties: {
applyNo: {
type: 'string',
'x-component': 'Search',
'x-component-props': {
placeholder: '搜索',
align: 'flex-left',
tip: '输入 申请单号 进行搜索',
},
},
[FORM_FILTER_PATH]: {
type: 'object',
'x-component': 'mega-layout',
'x-component-props': {
grid: true,
full: true,
autoRow: true,
columns: 6,
},
properties: {
abstract: {
type: 'string',
'x-component-props': {
placeholder: '申请单摘要',
allowClear: true,
},
},
'[startTime, endTime]': {
type: 'string',
default: '',
'x-component': 'dateSelect',
'x-component-props': {
placeholder: '单据时间(全部)',
allowClear: true,
},
},
supplier: {
type: 'string',
default: undefined,
enum: [],
'x-component-props': {
placeholder: '采购会员(全部)',
allowClear: true,
},
},
submit: {
'x-component': 'Submit',
'x-mega-props': {
span: 1,
},
'x-component-props': {
children: '查询',
},
},
},
},
},
},
},
};
\ No newline at end of file
/*
* @Author: XieZhiXiong
* @Date: 2020-11-04 17:22:07
* @LastEditors: XieZhiXiong
* @LastEditTime: 2020-11-09 17:27:30
* @Description:
*/
import React, { useState } from 'react';
import { Button } from 'antd';
import { history } from 'umi';
import { PublicApi } from '@/services/api';
import { FormOutlined } from '@ant-design/icons';
import { usePageStatus } from '@/hooks/usePageStatus';
import DetailInfo from '../components/DetailInfo';
import VerifyModal from '../../components/VerifyModal';
const ReturnPrConfirmVerify: React.FC = () => {
const { id, creditId } = usePageStatus();
const [visible, setVisible] = useState(false);
const [confirmLoading, setConfirmLoading] = useState(false);
const handleSubmit = values => {
};
return (
<>
<DetailInfo
id={id}
target="/memberCenter/payandSettle/creditApplication/quotaFormQuery/detail"
headExtra={(
<Button
type="primary"
icon={<FormOutlined />}
onClick={() => setVisible(true)}
>
单据审核
</Button>
)}
/>
<VerifyModal
visible={visible}
confirmLoading={confirmLoading}
onSubmit={handleSubmit}
onVisible={() => setVisible(false)}
/>
</>
);
};
export default ReturnPrConfirmVerify;
\ No newline at end of file
import React from 'react';
import { usePageStatus } from '@/hooks/usePageStatus';
import DetailInfo from '../components/DetailInfo';
const ReturnPrReceivedDetail: React.FC = () => {
const { id, creditId } = usePageStatus();
return (
<DetailInfo
id={id}
/>
);
};
export default ReturnPrReceivedDetail;
\ No newline at end of file
/*
* @Author: XieZhiXiong
* @Date: 2020-11-06 16:30:44
* @LastEditors: XieZhiXiong
* @LastEditTime: 2020-11-09 18:02:25
* @Description: 待新增退货发货单
*/
import React, { useState, useRef } from 'react';
import { Card, Badge, Progress, Button, Modal } from 'antd';
import {
ClockCircleOutlined,
ExclamationCircleOutlined,
} from '@ant-design/icons';
import { history } from 'umi';
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';
import { coverColFiltersItem } from '@/utils';
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_INNER_STATUS_BADGE_MAP,
} from '../../contants';
import styles from './index.less';
const { confirm } = Modal;
const formActions = createFormActions();
const ReturnPrReceived: React.FC = () => {
const ref = useRef<any>({});
const defaultColumns: ColumnType<any>[] = [
{
title: '申请单号',
dataIndex: 'applyNo',
align: 'center',
render: (text, record) => (
<>
<EyePreview
url={`/memberCenter/afterService/returnManage/returnPrReceived/detail?id=${record.id}`}
>
{text}
</EyePreview>
</>
),
},
{
title: '申请单摘要',
dataIndex: 'parentMemberName',
align: 'center',
},
{
title: '采购会员',
dataIndex: 'supplier',
align: 'center',
},
{
title: '退款金额',
dataIndex: 'returnAmount',
align: 'center',
},
{
title: '单据时间',
dataIndex: 'created',
align: 'center',
},
{
title: '退货批次',
dataIndex: 'batch',
align: 'center',
},
{
title: '退货发货单号',
dataIndex: 'deliverNo',
align: 'center',
render: text => <a>{text}</a>,
},
{
title: '外部状态',
dataIndex: 'outerStatusName',
align: 'center',
filters: [],
onFilter: (value, record) => record.outerStatus === value,
render: (text, record) => (
<StatusTag type="success" title="售后完成" />
),
},
{
title: '内部状态',
dataIndex: 'innerStatusName',
align: 'center',
filters: [],
onFilter: (value, record) => record.innerStatus === value,
render: (text, record) => <Badge color={'#6C9CEB'} text="待确认售后完成" />,
},
{
title: '操作',
dataIndex: 'option',
align: 'center',
render: (text, record) => (
<>
<Button
type="link"
onClick={() => history.push(`/memberCenter/afterService/returnManage/returnPrReceived/verify`)}
>
退货发货
</Button>
</>
),
},
];
const [columns, setColumns] = useState<any[]>(defaultColumns);
const fetchListData = (params: any) => {
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();
// });
// });
return Promise.resolve({
data: [
{
id: 1,
applyNo: '123',
parentMemberName: '申请单摘要',
created: '2020-11-03 11:46:00',
},
],
total: 10,
});
};
// 初始化高级筛选选项
const fetchSearchItems = async () => {
// const res = await PublicApi.getPayCreditApplyPageItemsByConsumer();
// if (res.code === 1000) {
// const { data } = res;
// const {
// outerStatusList = [],
// innerStatusList = [],
// } = data;
// const newColumns = columns.slice();
// // filter 0 过滤掉全部选项
// coverColFiltersItem(
// newColumns,
// 'outerStatusName',
// outerStatusList.map(item => ({ text: item.name, value: item.status })).filter(item => item.value),
// );
// coverColFiltersItem(
// newColumns,
// 'innerStatusName',
// innerStatusList.map(item => ({ text: item.name, value: item.status })).filter(item => item.value),
// );
// setColumns(newColumns);
// return {
// outerStatus: outerStatusList.map(item => ({ label: item.name, value: item.status })).filter(item => item.value),
// innerStatus: innerStatusList.map(item => ({ label: item.name, value: item.status })).filter(item => item.value),
// };
// }
return {};
};
return (
<PageHeaderWrapper>
<Card>
<StandardTable
tableProps={{
rowKey: 'id',
}}
columns={columns}
currentRef={ref}
fetchTableData={(params: any) => fetchListData(params)}
controlRender={
<NiceForm
actions={formActions}
onSubmit={values => ref.current.reload(values)}
effects={($, actions) => {
useStateFilterSearchLinkageEffect(
$,
actions,
'applyNo',
FORM_FILTER_PATH,
);
useAsyncInitSelect(
['innerStatus', 'outerStatus'],
fetchSearchItems,
);
}}
schema={listSearchSchema}
/>
}
/>
</Card>
</PageHeaderWrapper>
);
};
export default ReturnPrReceived;
\ No newline at end of file
/*
* @Author: XieZhiXiong
* @Date: 2020-09-29 10:03:06
* @LastEditors: XieZhiXiong
* @LastEditTime: 2020-11-05 14:28:08
* @Description:
*/
import { ISchema } from '@formily/antd';
import { FORM_FILTER_PATH } from '@/formSchema/const';
import { UPLOAD_TYPE } from '@/constants';
export const listSearchSchema: ISchema = {
type: 'object',
properties: {
megaLayout: {
type: 'object',
'x-component': 'mega-layout',
properties: {
applyNo: {
type: 'string',
'x-component': 'Search',
'x-component-props': {
placeholder: '搜索',
align: 'flex-left',
tip: '输入 申请单号 进行搜索',
},
},
[FORM_FILTER_PATH]: {
type: 'object',
'x-component': 'mega-layout',
'x-component-props': {
grid: true,
full: true,
autoRow: true,
columns: 6,
},
properties: {
abstract: {
type: 'string',
'x-component-props': {
placeholder: '申请单摘要',
allowClear: true,
},
},
'[startTime, endTime]': {
type: 'string',
default: '',
'x-component': 'dateSelect',
'x-component-props': {
placeholder: '单据时间(全部)',
allowClear: true,
},
},
supplier: {
type: 'string',
default: undefined,
enum: [],
'x-component-props': {
placeholder: '采购会员(全部)',
allowClear: true,
},
},
outerStatus: {
type: 'string',
default: undefined,
enum: [],
'x-component-props': {
placeholder: '外部状态(全部)',
allowClear: true,
},
},
innerStatus: {
type: 'string',
default: undefined,
enum: [],
'x-component-props': {
placeholder: '内部状态(全部)',
allowClear: true,
},
},
submit: {
'x-component': 'Submit',
'x-mega-props': {
span: 1,
},
'x-component-props': {
children: '查询',
},
},
},
},
},
},
},
};
\ No newline at end of file
import React, { useState } from 'react';
import { Button } from 'antd';
import { history } from 'umi';
import { PublicApi } from '@/services/api';
import { SettingOutlined } from '@ant-design/icons';
import { usePageStatus } from '@/hooks/usePageStatus';
import ManualDeliveryModal from '../../components/ManualDeliveryModal';
import DetailInfo from '../components/DetailInfo';
const ReturnPrReceivedVerify: React.FC = () => {
const { id, creditId } = usePageStatus();
const [modalVisible, setModalVisible] = useState(false);
const [submitLoading, setSubmitLoading] = useState(false);
const handleSubmit = values => {
if (!id) {
return;
}
setSubmitLoading(true);
// PublicApi.postPayCreditHandleVerifyStepOne({
// applyId: id,
// isPass: values.agree,
// opinion: values.reason,
// }).then(res => {
// if (res.code === 1000) {
// history.goBack();
// }
// }).finally(() => {
// setSubmitLoading(false);
// });
};
const handleVisible = flag => {
setModalVisible(!!flag);
};
return (
<>
<DetailInfo
id={id}
headExtra={(
<Button
type="default"
icon={<SettingOutlined />}
onClick={() => handleVisible(true)}
>
手工确认退货收货
</Button>
)}
/>
<ManualDeliveryModal
visible={modalVisible}
confirmLoading={submitLoading}
onSubmit={handleSubmit}
onVisible={handleVisible}
isEdit={false}
/>
</>
);
};
export default ReturnPrReceivedVerify;
\ No newline at end of file
import React from 'react';
import { usePageStatus } from '@/hooks/usePageStatus';
import DetailInfo from '../components/DetailInfo';
const ReturnPrReturnDetail: React.FC = () => {
const { id, creditId } = usePageStatus();
return (
<DetailInfo
id={id}
/>
);
};
export default ReturnPrReturnDetail;
\ No newline at end of file
/*
* @Author: XieZhiXiong
* @Date: 2020-11-05 14:25:41
* @LastEditors: XieZhiXiong
* @LastEditTime: 2020-11-09 18:12:26
* @Description: 退货申请单查询
*/
import React, { useState, useRef } from 'react';
import { Card, Badge, Progress, Button } from 'antd';
import {
ClockCircleOutlined,
} from '@ant-design/icons';
import { StandardTable } from 'god';
import moment from 'moment';
import { history } from 'umi';
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';
import { coverColFiltersItem } from '@/utils';
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_INNER_STATUS_BADGE_MAP,
} from '../../contants';
import styles from './index.less';
const formActions = createFormActions();
const ReturnPrReturn: React.FC = () => {
const ref = useRef<any>({});
const defaultColumns: ColumnType<any>[] = [
{
title: '申请单号',
dataIndex: 'applyNo',
align: 'center',
render: (text, record) => (
<>
<EyePreview
url={`/memberCenter/afterService/returnManage/returnPrReturn/detail?id=${record.id}`}
>
{text}
</EyePreview>
</>
),
},
{
title: '申请单摘要',
dataIndex: 'parentMemberName',
align: 'center',
},
{
title: '采购会员',
dataIndex: 'supplier',
align: 'center',
},
{
title: '退款金额',
dataIndex: 'returnAmount',
align: 'center',
},
{
title: '单据时间',
dataIndex: 'created',
align: 'center',
},
{
title: '已退款',
dataIndex: 'returned',
align: 'center',
},
{
title: '外部状态',
dataIndex: 'outerStatusName',
align: 'center',
filters: [],
onFilter: (value, record) => record.outerStatus === value,
render: (text, record) => (
<StatusTag type="success" title="售后完成" />
),
},
{
title: '内部状态',
dataIndex: 'innerStatusName',
align: 'center',
filters: [],
onFilter: (value, record) => record.innerStatus === value,
render: (text, record) => <Badge color={'#6C9CEB'} text="待确认售后完成" />,
},
{
title: '操作',
dataIndex: 'option',
align: 'center',
render: (text, record) => (
<>
<Button
type="link"
onClick={() => history.push(`/memberCenter/afterService/returnManage/returnPrReturn/verify`)}
>
提交审核
</Button>
</>
),
},
];
const [columns, setColumns] = useState<any[]>(defaultColumns);
const fetchListData = (params: any) => {
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();
// });
// });
return Promise.resolve({
data: [
{
id: 1,
applyNo: '123',
parentMemberName: '申请单摘要',
created: '2020-11-03 11:46:00',
},
],
total: 10,
});
};
// 初始化高级筛选选项
const fetchSearchItems = async () => {
// const res = await PublicApi.getPayCreditApplyPageItemsByConsumer();
// if (res.code === 1000) {
// const { data } = res;
// const {
// outerStatusList = [],
// innerStatusList = [],
// } = data;
// const newColumns = columns.slice();
// // filter 0 过滤掉全部选项
// coverColFiltersItem(
// newColumns,
// 'outerStatusName',
// outerStatusList.map(item => ({ text: item.name, value: item.status })).filter(item => item.value),
// );
// coverColFiltersItem(
// newColumns,
// 'innerStatusName',
// innerStatusList.map(item => ({ text: item.name, value: item.status })).filter(item => item.value),
// );
// setColumns(newColumns);
// return {
// outerStatus: outerStatusList.map(item => ({ label: item.name, value: item.status })).filter(item => item.value),
// innerStatus: innerStatusList.map(item => ({ label: item.name, value: item.status })).filter(item => item.value),
// };
// }
return {};
};
return (
<PageHeaderWrapper>
<Card>
<StandardTable
tableProps={{
rowKey: 'id',
}}
columns={columns}
currentRef={ref}
fetchTableData={(params: any) => fetchListData(params)}
controlRender={
<NiceForm
actions={formActions}
onSubmit={values => ref.current.reload(values)}
effects={($, actions) => {
useStateFilterSearchLinkageEffect(
$,
actions,
'applyNo',
FORM_FILTER_PATH,
);
useAsyncInitSelect(
['innerStatus', 'outerStatus'],
fetchSearchItems,
);
}}
schema={listSearchSchema}
/>
}
/>
</Card>
</PageHeaderWrapper>
);
};
export default ReturnPrReturn;
\ No newline at end of file
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
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