Commit b05dff41 authored by 前端-许佳敏's avatar 前端-许佳敏
parents e334f154 813a0f37
......@@ -2,7 +2,7 @@
* @Author: XieZhiXiong
* @Date: 2021-08-05 10:28:06
* @LastEditors: XieZhiXiong
* @LastEditTime: 2021-08-19 17:23:30
* @LastEditTime: 2021-08-26 09:47:51
* @Description: 地址选择 FormItem
*/
import React, { useState, useEffect, useMemo, useRef } from 'react';
......@@ -464,12 +464,14 @@ const AddressSelect: React.FC<IProps> = (props) => {
}));
}, [list]);
if (!editable) {
if (!editable && value) {
console.log('list', list)
const current = list.find((item) => item.id === value);
const full = current ? `${current.name} ${current.fullAddress} ${current.phone}` : null;
const isStr = typeof value === 'string';
return (
<div>{full || value}</div>
<div>{full || (!isStr ? `${value.name} ${value.fullAddress} ${value.phone}` : value)}</div>
);
}
......
......@@ -420,13 +420,6 @@ class GoodsDrawer extends React.Component<GoodsDrawerProps, GoodsDrawerState> {
}) :
[]
,
// 计算已支付金额,采购单价 * 支付比例 累加
payAmount:
product.payInfoList
? product.payInfoList.reduce((prev, now) => {
return now.externalState === PayOutWorkState.CONFIRM_ACCOUNT ? +(new BigNumber(+product.purchaseCount).multipliedBy(product.price).multipliedBy(new BigNumber(now.payRatio).dividedBy(100))).toFixed(2) + prev : prev;
}, 0)
: product.paidAmount,
});
}
});
......
......@@ -2,13 +2,14 @@
* @Author: XieZhiXiong
* @Date: 2020-11-05 17:36:45
* @LastEditors: XieZhiXiong
* @LastEditTime: 2021-08-11 09:46:59
* @LastEditTime: 2021-08-25 15:47:51
* @Description: 查看退货数量与退款金额 抽屉
*/
import React, { useEffect } from 'react';
import { Drawer, Button } from 'antd';
import React, { useEffect, useState } from 'react';
import { Drawer, Button, Spin } from 'antd';
import NiceForm from '@/components/NiceForm';
import { createAsyncFormActions, FormEffectHooks } from '@formily/antd';
import { PublicApi } from '@/services/api';
import {
ORDER_TYPE_INQUIRY_CONTRACT,
ORDER_TYPE_BIDDING_CONTRACT,
......@@ -69,6 +70,10 @@ export interface OrderInfo {
*/
orderNo: string;
/**
* 订单id
*/
orderId: number;
/**
* 订单类型
*/
orderType: number;
......@@ -148,6 +153,27 @@ const ReturnInfoDrawer: React.FC<ReturnInfoDrawerProps> = ({
onSubmit,
isEdit = false,
}) => {
const [payInfoLoading, setPayInfoLoading] = useState(false);
console.log('orderInfo', orderInfo);
const getPayInfo = () => {
if (!orderInfo || !orderInfo.orderId) {
return;
}
setPayInfoLoading(true);
PublicApi.getOrderCommonAfterSalePaymentFind({
orderId: `${orderInfo.orderId}`,
}).then((res) => {
console.log('res', res);
}).finally(() => {
setPayInfoLoading(false);
});
};
useEffect(() => {
getPayInfo();
}, [orderInfo]);
useEffect(() => {
const { setFieldState } = schemaAction;
......@@ -221,22 +247,24 @@ const ReturnInfoDrawer: React.FC<ReturnInfoDrawerProps> = ({
}
destroyOnClose
>
<NiceForm
initialValues={orderInfo}
previewPlaceholder=" "
components={{
Stamp,
SteamerTicket,
}}
editable={isEdit}
effects={($, actions) => {
createEffects($, actions);
}}
onSubmit={handleSubmit}
actions={schemaAction}
schema={schema}
colon
/>
<Spin spinning={payInfoLoading}>
<NiceForm
initialValues={orderInfo}
previewPlaceholder=" "
components={{
Stamp,
SteamerTicket,
}}
editable={isEdit}
effects={($, actions) => {
createEffects($, actions);
}}
onSubmit={handleSubmit}
actions={schemaAction}
schema={schema}
colon
/>
</Spin>
</Drawer>
);
};
......
/*
* @Author: XieZhiXiong
* @Date: 2021-08-26 10:12:48
* @LastEditors: XieZhiXiong
* @LastEditTime: 2021-08-26 10:39:03
* @Description: 中止弹窗
*/
import React from 'react';
import { Modal } from 'antd';
import { createFormActions } from '@formily/antd';
import { DatePicker } from '@formily/antd-components';
import moment from 'moment';
import NiceForm from '@/components/NiceForm';
import schema from './schema';
const formActions = createFormActions();
export type ValuesType = {
/**
* 中止原因
*/
remark: string,
}
interface StopModalProps {
/**
* 是否可见
*/
visible: boolean,
/**
* Form 确认事件
*/
onSubmit: (values: ValuesType) => void,
/**
* 抽屉关闭事件
*/
onClose: () => void,
/**
* 确认按钮 loading
*/
submitLoading: boolean,
}
const StopModal: React.FC<StopModalProps> = (props) => {
const {
visible,
onSubmit,
onClose,
submitLoading,
} = props;
const handleSubmit = (values: ValuesType) => {
if (onSubmit) {
onSubmit(values);
}
};
return (
<Modal
title="中止原因"
visible={visible}
confirmLoading={submitLoading}
onOk={() => formActions.submit()}
onCancel={() => onClose?.()}
destroyOnClose
>
<NiceForm
initialValues={{
date: moment().format('YYYY-MM-DD HH:mm:ss'),
}}
previewPlaceholder="' '"
components={{
DatePicker,
}}
effects={() => {
}}
actions={formActions}
schema={schema}
onSubmit={handleSubmit}
/>
</Modal>
);
};
export default StopModal;
/*
* @Author: XieZhiXiong
* @Date: 2021-08-26 10:21:44
* @LastEditors: XieZhiXiong
* @LastEditTime: 2021-08-26 11:05:12
* @Description:
*/
import { ISchema } from '@formily/antd';
const schema: ISchema = {
type: 'object',
properties: {
MEGA_LAYOUT: {
type: 'object',
'x-component': 'mega-layout',
'x-component-props': {
labelAlign: 'left',
labelCol: 4,
wrapperCol: 20,
},
properties: {
date: {
type: 'string',
title: '中止时间',
'x-component': 'DatePicker',
editable: false,
},
remark: {
type: 'string',
title: '中止原因',
'x-component': 'Textarea',
'x-component-props': {
placeholder: '在此输入你的内容,最长100个字符,50个汉字',
maxLength: 60,
rows: 5,
},
'x-rules': [
{
required: true,
message: '请填写原因',
},
{
limitByte: true, // 自定义校验规则
maxByte: 100,
}
],
},
},
},
},
};
export default schema;
......@@ -289,6 +289,7 @@ const ExchangeForm: React.FC<BillsFormProps> = ({
{
title: !isPointsOrder ? '采购金额' : '所需积分小计',
dataIndex: 'paidAmount',
render: (text, record) => +text ? ${text}` : record.amount,
},
{
title: '已换货数量',
......
......@@ -2,14 +2,11 @@
* @Author: XieZhiXiong
* @Date: 2020-11-05 14:25:41
* @LastEditors: XieZhiXiong
* @LastEditTime: 2021-01-13 15:27:46
* @LastEditTime: 2021-08-26 11:14:09
* @Description: 换货申请单查询
*/
import React, { useState, useRef } from 'react';
import { Card, Badge, Progress, Button } from 'antd';
import {
ClockCircleOutlined,
} from '@ant-design/icons';
import { Card, Badge, Button } from 'antd';
import { StandardTable } from 'god';
import moment from 'moment';
import { ColumnType } from 'antd/lib/table/interface';
......@@ -20,6 +17,11 @@ import { useStateFilterSearchLinkageEffect } from '@/formSchema/effects/useFilte
import { useAsyncInitSelect } from '@/formSchema/effects/useAsyncInitSelect';
import { FORM_FILTER_PATH } from '@/formSchema/const';
import { coverColFiltersItem } from '@/utils';
import {
EXCHANGE_INNER_STATUS_CONFIRM_SUCCESS,
EXCHANGE_INNER_STATUS_CONFIRM_FAILED,
EXCHANGE_INNER_STATUS_FINISHED,
} from '@/constants/afterService';
import EyePreview from '@/components/EyePreview';
import NiceForm from '@/components/NiceForm';
import StatusTag from '@/components/StatusTag';
......@@ -28,12 +30,17 @@ import {
EXCHANGE_OUTER_STATUS_TAG_MAP,
EXCHANGE_INNER_STATUS_BADGE_MAP,
} from '../../constants';
import StopModal, { ValuesType } from '../../components/StopModal';
import styles from './index.less';
const formActions = createFormActions();
const ExchangeQuery: React.FC = () => {
const [stopModalVisible, setStopModalVisible] = useState(false);
const [stopModalSubmitLoading, setStopModalSubmitLoading] = useState(false);
const ref = useRef<any>({});
const currentRecord = useRef<number>(0);
const defaultColumns: ColumnType<any>[] = [
{
......@@ -84,6 +91,27 @@ const ExchangeQuery: React.FC = () => {
onFilter: (value, record) => record.innerStatus === value,
render: (text, record) => <Badge color={EXCHANGE_INNER_STATUS_BADGE_MAP[record.innerStatus] || '#606266'} text={text} />,
},
{
title: '操作',
dataIndex: 'option',
align: 'center',
render: (text, record) => (
<>
{(
record.innerStatus >= EXCHANGE_INNER_STATUS_CONFIRM_SUCCESS
&& record.innerStatus <= EXCHANGE_INNER_STATUS_FINISHED
&& record.innerStatus !== EXCHANGE_INNER_STATUS_CONFIRM_FAILED
) && (
<Button
type="link"
onClick={() => handleStop(record.replaceId)}
>
终止
</Button>
)}
</>
),
},
];
const [columns, setColumns] = useState<any[]>(defaultColumns);
......@@ -143,6 +171,30 @@ const ExchangeQuery: React.FC = () => {
return {};
};
const handleVisibleStopModal = (flag?: boolean) => {
setStopModalVisible(!!flag);
};
const handleStop = (recordId: number) => {
currentRecord.current = recordId;
handleVisibleStopModal(true);
};
const handleStopModalSubmit = (values: ValuesType) => {
setStopModalSubmitLoading(true);
PublicApi.postAsReplaceGoodsStopReturnGoods({
dataId: currentRecord.current,
remark: values.remark,
}).then(res => {
if (res.code === 1000) {
ref.current.reload();
handleVisibleStopModal(false);
}
}).finally(() => {
setStopModalSubmitLoading(false);
});
};
return (
<PageHeaderWrapper>
<Card>
......@@ -174,6 +226,13 @@ const ExchangeQuery: React.FC = () => {
}
/>
</Card>
<StopModal
visible={stopModalVisible}
onClose={() => handleVisibleStopModal(false)}
onSubmit={handleStopModalSubmit}
submitLoading={stopModalSubmitLoading}
/>
</PageHeaderWrapper>
);
};
......
......@@ -672,6 +672,8 @@ const ReturnForm: React.FC<BillsFormProps> = ({
const preValues = addSchemaAction.getFieldValue('returnGoodsList');
const value = [];
console.log('values', values)
values.forEach(item => {
const atom = {
id: item.id,
......
......@@ -2,14 +2,11 @@
* @Author: XieZhiXiong
* @Date: 2020-11-05 14:25:41
* @LastEditors: XieZhiXiong
* @LastEditTime: 2021-07-30 13:45:07
* @LastEditTime: 2021-08-26 11:05:57
* @Description: 退货申请单查询
*/
import React, { useState, useRef } from 'react';
import { Card, Badge, Progress, Button } from 'antd';
import {
ClockCircleOutlined,
} from '@ant-design/icons';
import { Card, Badge, Button } from 'antd';
import { StandardTable } from 'god';
import moment from 'moment';
import { ColumnType } from 'antd/lib/table/interface';
......@@ -20,6 +17,11 @@ import { useStateFilterSearchLinkageEffect } from '@/formSchema/effects/useFilte
import { useAsyncInitSelect } from '@/formSchema/effects/useAsyncInitSelect';
import { FORM_FILTER_PATH } from '@/formSchema/const';
import { coverColFiltersItem } from '@/utils';
import {
RETURN_INNER_STATUS_CONFIRM_SUCCESS,
RETURN_INNER_STATUS_FINISHED,
RETURN_INNER_STATUS_CONFIRM_FAILED,
} from '@/constants/afterService';
import EyePreview from '@/components/EyePreview';
import NiceForm from '@/components/NiceForm';
import StatusTag from '@/components/StatusTag';
......@@ -28,12 +30,17 @@ import {
RETURN_OUTER_STATUS_TAG_MAP,
RETURN_INNER_STATUS_BADGE_MAP,
} from '../../constants';
import StopModal, { ValuesType } from '../../components/StopModal';
import styles from './index.less';
const formActions = createFormActions();
const ReturnQuery: React.FC = () => {
const [stopModalVisible, setStopModalVisible] = useState(false);
const [stopModalSubmitLoading, setStopModalSubmitLoading] = useState(false);
const ref = useRef<any>({});
const currentRecord = useRef<number>(0);
const defaultColumns: ColumnType<any>[] = [
{
......@@ -89,6 +96,27 @@ const ReturnQuery: React.FC = () => {
onFilter: (value, record) => record.innerStatus === value,
render: (text, record) => <Badge color={RETURN_INNER_STATUS_BADGE_MAP[record.innerStatus] || '#606266'} text={text} />,
},
{
title: '操作',
dataIndex: 'option',
align: 'center',
render: (text, record) => (
<>
{(
record.innerStatus >= RETURN_INNER_STATUS_CONFIRM_SUCCESS
&& record.innerStatus <= RETURN_INNER_STATUS_FINISHED
&& record.innerStatus !== RETURN_INNER_STATUS_CONFIRM_FAILED
) && (
<Button
type="link"
onClick={() => handleStop(record.returnId)}
>
终止
</Button>
)}
</>
),
},
];
const [columns, setColumns] = useState<any[]>(defaultColumns);
......@@ -148,6 +176,30 @@ const ReturnQuery: React.FC = () => {
return {};
};
const handleVisibleStopModal = (flag?: boolean) => {
setStopModalVisible(!!flag);
};
const handleStop = (recordId: number) => {
currentRecord.current = recordId;
handleVisibleStopModal(true);
};
const handleStopModalSubmit = (values: ValuesType) => {
setStopModalSubmitLoading(true);
PublicApi.postAsReturnGoodsStopReturnGoods({
dataId: currentRecord.current,
remark: values.remark,
}).then(res => {
if (res.code === 1000) {
ref.current.reload();
handleVisibleStopModal(false);
}
}).finally(() => {
setStopModalSubmitLoading(false);
});
};
return (
<PageHeaderWrapper>
<Card>
......@@ -179,6 +231,13 @@ const ReturnQuery: React.FC = () => {
}
/>
</Card>
<StopModal
visible={stopModalVisible}
onClose={() => handleVisibleStopModal(false)}
onSubmit={handleStopModalSubmit}
submitLoading={stopModalSubmitLoading}
/>
</PageHeaderWrapper>
);
};
......
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