Commit e59bec76 authored by 前端-钟卫鹏's avatar 前端-钟卫鹏

fix:处理多支付订单按照支付环节依次支付,处理询价需求下单冗余render字段用于显示自提地址,获取支付方式添加会员角色id字段

parent 36e0ee0c
......@@ -3,7 +3,7 @@ import { history } from 'umi';
import { Button, Card, Tabs, message, Badge } from 'antd'
import { PageHeaderWrapper } from '@ant-design/pro-layout'
import {
SaveOutlined,
SaveOutlined,
EditFilled,
} from '@ant-design/icons'
import ReutrnEle from '@/components/ReturnEle'
......@@ -123,7 +123,7 @@ const AddProducts: React.FC<{}> = (props) => {
// 获取页面使用模板
const productDescriptionTemplate = async () => {
//@ts-ignore
PublicApi.getTemplateGoodsFindUseGoodsTemplate({ siteId }).then(res => {
PublicApi.getTemplateWebPageTemplateWebFindGoodsDescribeTemplate({ siteId }).then(res => {
if (res.code === 1000)
setCurrentTemplateName(res.data.fileName)
})
......@@ -169,10 +169,10 @@ const AddProducts: React.FC<{}> = (props) => {
_bacsicForm.customerCategoryId = _bacsicForm.customerCategoryId[_bacsicForm.customerCategoryId.length - 1]
// 移除描述中的空数组[]
let _productDescription = { ...productDescription }
for(let i in _productDescription){
if(_productDescription[i]?.length === 0){
delete _productDescription[i]
}
for(let i in _productDescription){
if(_productDescription[i]?.length === 0){
delete _productDescription[i]
}
}
let _params = {
..._bacsicForm,
......@@ -424,4 +424,4 @@ const AddProducts: React.FC<{}> = (props) => {
</PageHeaderWrapper>)
}
export default observer(AddProducts)
\ No newline at end of file
export default observer(AddProducts)
......@@ -35,8 +35,18 @@ const OrderPayTabs:React.FC<OrderPayTabsProps> = (props) => {
const { data, payList, ctl } = useContext(OrderDetailContext)
useEffect(() => {
// 过滤支付信息 取第一个待支付的id
if(data?.paymentInformationResponses?.length) {
let payments = data.paymentInformationResponses.filter(item => item.externalState === 1)
if(payments.length) {
ctl.setPayId(payments[0].id)
}
}
}, [])
const onChange = (activeKey) => {
ctl.setPayId(activeKey)
// ctl.setPayId(activeKey)
}
return (
......@@ -63,4 +73,4 @@ const OrderPayTabs:React.FC<OrderPayTabsProps> = (props) => {
OrderPayTabs.defaultProps = {}
export default OrderPayTabs
\ No newline at end of file
export default OrderPayTabs
......@@ -5,6 +5,7 @@ import { useModalTable } from '../../model/useModalTable'
import { ISchemaFormActions, ISchemaFormAsyncActions } from '@formily/antd'
import { inquiryColumns } from '../../../readyAddOrder/constant'
import { PublicApi } from '@/services/api'
import { filterProductDataById } from '../productModalTable'
export interface DemandModalTableProps extends ModalTableProps {
type?: 'radio' | 'checkbox',
......@@ -30,13 +31,14 @@ const DemandModalTable:React.FC<DemandModalTableProps> = (props) => {
const handleConfirm = async () => {
const item = rowSelectionCtl.selectRow[0]
console.log(item, '看需求报价item有没有member信息')
if (item) {
schemaAction.setFieldValue('quotationNo', item.quotationNo)
const data = await fetchOrderApi.getProductListByDemandOrderId({
id: item.id
})
schemaAction.setFieldValue('orderProductRequests', data)
// schemaAction.setFieldValue('orderProductRequests', data)
// 把地址信息冗余给商品字段render
schemaAction.setFieldValue('orderProductRequests', await filterProductDataById([], data))
schemaAction.setFieldValue('supplyMembersName', item.offerMemberName)
schemaAction.setFieldValue('supplyMembersId', item.offerMemberId)
schemaAction.setFieldValue('supplyMembersRoleId', item.offerMemberRoleId)
......@@ -66,4 +68,4 @@ const DemandModalTable:React.FC<DemandModalTableProps> = (props) => {
DemandModalTable.defaultProps = {}
export default DemandModalTable
\ No newline at end of file
export default DemandModalTable
......@@ -5,6 +5,7 @@ import { useModalTable } from '../../model/useModalTable'
import { ISchemaFormActions, ISchemaFormAsyncActions } from '@formily/antd'
import { inquiryColumns } from '../../constant'
import { PublicApi } from '@/services/api'
import { filterProductDataById } from '../productModalTable'
export interface InquiryModalTableProps extends ModalTableProps {
type?: 'radio' | 'checkbox',
......@@ -30,18 +31,24 @@ const InquiryModalTable:React.FC<InquiryModalTableProps> = (props) => {
const handleConfirm = async () => {
const item = rowSelectionCtl.selectRow[0]
console.log(item, '看询价报价item有没有member信息')
if (item) {
schemaAction.setFieldValue('quotationNo', item.quotationNo)
const data = await fetchOrderApi.getProductListByQuotationOrderId({
id: item.inquiryListId
})
// 将询价报价单的id字段 冗余给商品列表
schemaAction.setFieldValue('orderProductRequests', data.map((v: any) => {
// schemaAction.setFieldValue('orderProductRequests', data.map((v: any) => {
// v.memberId = item.offerMemberId
// v.memberRoleId = item.offerMemberRoleId
// return v
// }))
let newData = data.map((v: any) => {
v.memberId = item.offerMemberId
v.memberRoleId = item.offerMemberRoleId
return v
}))
})
// 把地址信息冗余给商品字段render
schemaAction.setFieldValue('orderProductRequests', await filterProductDataById([], newData))
schemaAction.setFieldValue('supplyMembersName', item.offerMemberName)
schemaAction.setFieldValue('supplyMembersId', item.offerMemberId)
schemaAction.setFieldValue('supplyMembersRoleId', item.offerMemberRoleId)
......@@ -71,4 +78,4 @@ const InquiryModalTable:React.FC<InquiryModalTableProps> = (props) => {
InquiryModalTable.defaultProps = {}
export default InquiryModalTable
\ No newline at end of file
export default InquiryModalTable
......@@ -74,7 +74,7 @@ const orderProductShopTypeMaps = {
export const AddressPop = (props) => {
const { pickInfo = null, children } = props
let receiveInfo = pickInfo?.render && JSON.parse(pickInfo.render).props.pickInfo
let receiveInfo = pickInfo?.render && JSON.parse(pickInfo.render)
return pickInfo && pickInfo.deliveryType === 2 ? <Space>
<EnvironmentOutlined style={{marginRight: 8}}/>
<Popover content={
......@@ -83,8 +83,12 @@ export const AddressPop = (props) => {
<h3><EnvironmentOutlined/> 自提地址</h3>
{/* <p>{pickInfo.receiverName} / {pickInfo.phone}</p>
<p>{pickInfo.fullAddress}</p> */}
<p>{receiveInfo.shipperName} / {receiveInfo.phone}</p>
<p>{receiveInfo.provinceName + receiveInfo.cityName + receiveInfo.districtName + receiveInfo.address}</p>
{
receiveInfo && <>
<p>{receiveInfo.shipperName} / {receiveInfo.phone}</p>
<p>{receiveInfo.provinceName + receiveInfo.cityName + receiveInfo.districtName + receiveInfo.address}</p>
</>
}
</div>
</Row>
}>
......@@ -103,11 +107,19 @@ export const filterProductDataById = (data, targetData) => {
next.unit = next.unit || next.unitName
next.productName = next.productName || next.name
// if (logistics.deliveryType === 2) {
// const { code, data } = await PublicApi.getLogisticsShipperAddressGet({
// id: logistics.sendAddress
// }, { ttl: 60 * 1000, useCache: true })
// logistics.render = code === 1000 ? <AddressPop pickInfo={data}>{DELIVERY_TYPE[logistics.deliveryType]}</AddressPop> : DELIVERY_TYPE[logistics.deliveryType]
// } else {
// logistics.render = DELIVERY_TYPE[logistics.deliveryType]
// }
if (logistics.deliveryType === 2) {
const { code, data } = await PublicApi.getLogisticsShipperAddressGet({
id: logistics.sendAddress
}, { ttl: 60 * 1000, useCache: true })
logistics.render = code === 1000 ? <AddressPop pickInfo={data}>{DELIVERY_TYPE[logistics.deliveryType]}</AddressPop> : DELIVERY_TYPE[logistics.deliveryType]
logistics.render = data
} else {
logistics.render = DELIVERY_TYPE[logistics.deliveryType]
}
......
......@@ -132,6 +132,7 @@ const PurchaseOrderDetail:React.FC<PurchaseOrderDetailProps> = (props) => {
const [paymentColumns, paymentComponents, paymentSave] = usePaymentInfo(
addSchemaAction,
addSchemaAction.getFieldValue('supplyMembersId'),
addSchemaAction.getFieldValue('supplyMembersRoleId'),
pageStatus === PageStatus.ADD ? addSchemaAction.getFieldValue('orderProductRequests') : initFormValue.orderProductRequests
)
const { productAddButton, productRef, productColumns, productComponents, ...sectionProps } = useProductTable(addSchemaAction)
......
......@@ -6,7 +6,7 @@ import { PublicApi } from '@/services/api'
import { ReadyAddOrderDetailContext } from '../../context'
import { message } from 'antd'
export const usePaymentInfo = (ctx: ISchemaFormActions | ISchemaFormAsyncActions, memberId: any, orderProducts: any): any => {
export const usePaymentInfo = (ctx: ISchemaFormActions | ISchemaFormAsyncActions, memberId: any, memberRoleId: any, orderProducts: any): any => {
const paywayData = useRef<any>({})
const [columns, setColumns] = useState<any[]>(paymentInformationColumns)
const { productSumPrice } = useContext(ReadyAddOrderDetailContext)
......@@ -71,7 +71,7 @@ export const usePaymentInfo = (ctx: ISchemaFormActions | ISchemaFormAsyncActions
useEffect(() => {
// 当选择报价单/会员/商品时有memberId传入时 调用支付方式api
if(memberId) {
getPayLists(memberId)
getPayLists(memberId, memberRoleId)
}
}, [memberId])
......@@ -90,8 +90,8 @@ export const usePaymentInfo = (ctx: ISchemaFormActions | ISchemaFormAsyncActions
}
}, [orderProducts, columns])
const getPayLists = (memberId) => {
PublicApi.getPayPayWayList({memberId}).then(res => {
const getPayLists = (memberId, memberRoleId) => {
PublicApi.getPayPayWayList({memberId, memberRoleId}).then(res => {
const { code, data } = res
if (code === 1000) {
const newColumns = [...columns]
......
......@@ -100,7 +100,9 @@ export const useProductTable = (ctx: ISchemaFormActions | ISchemaFormAsyncAction
const handleSave = row => {
// 商品采购数量变动 清空之前的支付信息
ctx.setFieldValue('paymentInformationResponses', [])
if (pageStatus === PageStatus.ADD) {
ctx.setFieldValue('paymentInformationResponses', [])
}
return new Promise((resolve, reject) => {
const newData = [...ctx.getFieldValue('orderProductRequests')];
......
......@@ -59,4 +59,4 @@ const ReadyConfirmContract: React.FC = () => {
);
};
export default ReadyConfirmContract;
\ No newline at end of file
export default ReadyConfirmContract;
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