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

fix:处理销售订单一级审核通过异常,处理新增采购订单折扣价计算异常/获取运费异常

parent 21aae1ff
...@@ -816,12 +816,10 @@ export const PurchaseOrderInsideWorkStateTexts = { ...@@ -816,12 +816,10 @@ export const PurchaseOrderInsideWorkStateTexts = {
2: '一级待审核订单', 2: '一级待审核订单',
3: '二级待审核订单', 3: '二级待审核订单',
4: '待提交订单', 4: '待提交订单',
// 5: '待确认电子合同', 5: '待确认电子合同',
5: '提交订单完成',
6: '提交一级审核订单不通过', 6: '提交一级审核订单不通过',
7: '提交二级审核订单不通过', 7: '提交二级审核订单不通过',
// 8: '待支付订单', 8: '待支付订单',
8: '确认电子合同',
10: '支付成功', 10: '支付成功',
11: '支付失败', 11: '支付失败',
12: '待确认收货', 12: '待确认收货',
......
...@@ -20,6 +20,7 @@ import { ...@@ -20,6 +20,7 @@ import {
GetProductCommodityGetShopResponse GetProductCommodityGetShopResponse
} from '@/services/ProductApi' } from '@/services/ProductApi'
import moment from 'moment' import moment from 'moment'
import { isGetAccessor } from 'typescript'
interface IAttributeByValue { interface IAttributeByValue {
groupName: string; groupName: string;
...@@ -365,11 +366,11 @@ const viewProducts: React.FC<{}> = () => { ...@@ -365,11 +366,11 @@ const viewProducts: React.FC<{}> = () => {
onBack={() => history.goBack()} onBack={() => history.goBack()}
backIcon={<ReutrnEle logoSrc={productDetail?.unitPriceAndPicList[0]?.commodityPic[0]} />} backIcon={<ReutrnEle logoSrc={productDetail?.unitPriceAndPicList[0]?.commodityPic[0]} />}
content={content} content={content}
extra={[ // extra={[
<Button icon={<FormOutlined />} key="1" type="primary" disabled={productDetail?.status !== 3 && productDetail?.status !== 1 } onClick={clickModify}> // <Button icon={<FormOutlined />} key="1" type="primary" disabled={productDetail?.status !== 3 && productDetail?.status !== 1 } onClick={clickModify}>
修改 // 修改
</Button>, // </Button>,
]} // ]}
> >
<Space direction="vertical" style={{width:'100%'}}> <Space direction="vertical" style={{width:'100%'}}>
<Card headStyle={{borderBottom:'none'}} title="流程进度"> <Card headStyle={{borderBottom:'none'}} title="流程进度">
......
...@@ -4,6 +4,7 @@ import { Row, Space, Popover } from 'antd' ...@@ -4,6 +4,7 @@ import { Row, Space, Popover } from 'antd'
import { DELIVERY_TYPE, OrderModalType, PurchaseOrderOutWorkStateTexts } from '@/constants' import { DELIVERY_TYPE, OrderModalType, PurchaseOrderOutWorkStateTexts } from '@/constants'
import { EnvironmentOutlined } from '@ant-design/icons' import { EnvironmentOutlined } from '@ant-design/icons'
import { PublicApi } from '@/services/api' import { PublicApi } from '@/services/api'
import { toPercent } from '@/utils/type'
// 简单控制价格区间的组件 // 简单控制价格区间的组件
// @todo 后续需要优化, 样式,目录文件等。 // @todo 后续需要优化, 样式,目录文件等。
...@@ -277,11 +278,15 @@ export const productInfoColumns: any[] = [ ...@@ -277,11 +278,15 @@ export const productInfoColumns: any[] = [
align: 'left', align: 'left',
key: 'unitPrice', key: 'unitPrice',
render: (t, r) => { render: (t, r) => {
if(r?.commodityId) { // if(r?.commodityId) {
return <PriceComp priceSection={r.unitPrice}/> // return <PriceComp priceSection={r.unitPrice}/>
} else { // } else {
console.log(r,'rr') // return r.price
// }
if(JSON.stringify(r.unitPrice) === '{}') {
return r.price return r.price
} else {
return <PriceComp priceSection={r.unitPrice}/>
} }
} }
}, },
...@@ -290,7 +295,7 @@ export const productInfoColumns: any[] = [ ...@@ -290,7 +295,7 @@ export const productInfoColumns: any[] = [
dataIndex: 'memberPrice', dataIndex: 'memberPrice',
align: 'center', align: 'center',
key: 'memberPrice', key: 'memberPrice',
render: (text, record) => record.isMemberPrice ? text : null render: (text, record) => record.isMemberPrice ? toPercent(text) : null
}, },
{ {
title: '采购数量', title: '采购数量',
......
...@@ -28,7 +28,8 @@ const asyncPadDataForProduct = async (ctx: ISchemaFormActions | ISchemaFormAsync ...@@ -28,7 +28,8 @@ const asyncPadDataForProduct = async (ctx: ISchemaFormActions | ISchemaFormAsync
parentMemberId: v.memberId, parentMemberId: v.memberId,
parentMemberRoleId: v.memberRoleId parentMemberRoleId: v.memberRoleId
}, {ttl: 60 * 1000, useCache: true}) }, {ttl: 60 * 1000, useCache: true})
return code === 1000 ? { value: (data.parameter * 100) + '%', id: v.id } : { value: '', id: 0 } // return code === 1000 ? { value: (data.parameter * 100) + '%', id: v.id } : { value: '', id: 0 }
return code === 1000 ? { value: data.parameter, id: v.id } : { value: '', id: 0 }
} }
)) ))
...@@ -92,10 +93,11 @@ export const useProductTableChangeForPay = (ctx: ISchemaFormActions | ISchemaFor ...@@ -92,10 +93,11 @@ export const useProductTableChangeForPay = (ctx: ISchemaFormActions | ISchemaFor
const payInfoData = ctx.getFieldValue('paymentInformationResponses') const payInfoData = ctx.getFieldValue('paymentInformationResponses')
// 强制渲染一次, 用于触发金额总数 // 强制渲染一次, 用于触发金额总数
update() update()
// 已经存在数据 无需请求 // // 已经存在数据 无需请求
if (payInfoData && payInfoData.length > 0) { // if (payInfoData && payInfoData.length > 0) {
} else if (value && value.length > 0){ // } else
if (value && value.length > 0){
// 请求一次并复制给支付信息 // 请求一次并复制给支付信息
const productItem = value[0] const productItem = value[0]
fetchOrderApi.getPayInfoList({ fetchOrderApi.getPayInfoList({
......
...@@ -3,7 +3,7 @@ import { history } from 'umi' ...@@ -3,7 +3,7 @@ import { history } from 'umi'
import { PageHeaderWrapper } from '@ant-design/pro-layout' import { PageHeaderWrapper } from '@ant-design/pro-layout'
import ReutrnEle from '@/components/ReturnEle' import ReutrnEle from '@/components/ReturnEle'
import { usePageStatus, PageStatus } from '@/hooks/usePageStatus' import { usePageStatus, PageStatus } from '@/hooks/usePageStatus'
import { Button, Card, Row, Col, Drawer } from 'antd' import { Button, Card, Row, Col, Drawer, message } from 'antd'
import { createFormActions, registerVirtualBox, useFormSpy } from '@formily/antd' import { createFormActions, registerVirtualBox, useFormSpy } from '@formily/antd'
import { SaveOutlined, LinkOutlined, PlusOutlined } from '@ant-design/icons' import { SaveOutlined, LinkOutlined, PlusOutlined } from '@ant-design/icons'
import NiceForm from '@/components/NiceForm' import NiceForm from '@/components/NiceForm'
...@@ -70,7 +70,8 @@ export const MoneyTotalBox = registerVirtualBox('moneyTotalBox', props => { ...@@ -70,7 +70,8 @@ export const MoneyTotalBox = registerVirtualBox('moneyTotalBox', props => {
PublicApi.postLogisticsFreightTemplateCalFreightPrice({ PublicApi.postLogisticsFreightTemplateCalFreightPrice({
orderProductList: logsiticsDataMaps.map(v => ({ orderProductList: logsiticsDataMaps.map(v => ({
templateId: v.logistics.templateId, templateId: v.logistics.templateId,
weight: v.logistics.weight weight: v.logistics.weight,
count: v?.purchaseCount || 0
})), })),
receiverAddressId: typeof receiverAddressId === 'object' ? receiverAddressId.id : receiverAddressId receiverAddressId: typeof receiverAddressId === 'object' ? receiverAddressId.id : receiverAddressId
}, {ttl: 10 * 1000, useCache: true, ctlType: 'none'}).then(res => { }, {ttl: 10 * 1000, useCache: true, ctlType: 'none'}).then(res => {
...@@ -181,7 +182,8 @@ const PurchaseOrderDetail:React.FC<PurchaseOrderDetailProps> = (props) => { ...@@ -181,7 +182,8 @@ const PurchaseOrderDetail:React.FC<PurchaseOrderDetailProps> = (props) => {
orderProductRequests: _orderProductRequests.map(v => { orderProductRequests: _orderProductRequests.map(v => {
v.price = 1 v.price = 1
v.isMemberPrice = Number(v.isMemberPrice) v.isMemberPrice = Number(v.isMemberPrice)
v.memberPrice = v.memberPrice !== 1 ? toPoint(v.memberPrice) : 1 // v.memberPrice = v.memberPrice !== 1 ? toPoint(v.memberPrice) : 1
v.memberPrice = v.memberPrice
v.imgUrl = v.mainPic v.imgUrl = v.mainPic
v.minOrder = v.minOrder v.minOrder = v.minOrder
// v.productId = v.id // v.productId = v.id
...@@ -203,16 +205,27 @@ const PurchaseOrderDetail:React.FC<PurchaseOrderDetailProps> = (props) => { ...@@ -203,16 +205,27 @@ const PurchaseOrderDetail:React.FC<PurchaseOrderDetailProps> = (props) => {
// theInvoiceInfo: value.theInvoiceInfo // theInvoiceInfo: value.theInvoiceInfo
} }
// 校验是否选择支付渠道 // 校验是否选择支付渠道
let judgement = params.paymentInformationResponses.map(item => { let judgementByPay = params.paymentInformationResponses.map(item => {
if(item.channel && item.payWay){ if(item.channel && item.payWay){
return true return true
} else { } else {
return false return false
} }
}) })
if(judgement.includes(false)){ if(judgementByPay.includes(false)){
throw new Error('请选择支付方式或者支付渠道') throw new Error('请选择支付方式或者支付渠道')
} }
// 校验采购数量
let judgementByCount = params.orderProductRequests.map(item => {
if(item.purchaseCount){
return true
} else {
return false
}
})
if(judgementByCount.includes(false)){
throw new Error('请填写商品采购数量')
}
// logistics render字段字符串化 // logistics render字段字符串化
params.orderProductRequests = params.orderProductRequests.map(item => { params.orderProductRequests = params.orderProductRequests.map(item => {
let logs: any = { ...item.logistics, render: item.logistics?.render ? JSON.stringify(item.logistics.render) : '' }; let logs: any = { ...item.logistics, render: item.logistics?.render ? JSON.stringify(item.logistics.render) : '' };
...@@ -234,6 +247,7 @@ const PurchaseOrderDetail:React.FC<PurchaseOrderDetailProps> = (props) => { ...@@ -234,6 +247,7 @@ const PurchaseOrderDetail:React.FC<PurchaseOrderDetailProps> = (props) => {
setBtnLoading(false) setBtnLoading(false)
} catch (error) { } catch (error) {
setBtnLoading(false) setBtnLoading(false)
error?.message && message.error(error.message)
console.log(error) console.log(error)
} }
} }
......
...@@ -27,6 +27,10 @@ export const getUnitPriceTotal = (record) => { ...@@ -27,6 +27,10 @@ export const getUnitPriceTotal = (record) => {
if(record.unitPrice) { if(record.unitPrice) {
record.unitPrice = sortByKey(record.unitPrice) record.unitPrice = sortByKey(record.unitPrice)
} }
// fix 当没有传递unitPrice字段时 但有price字段时 补全unitPrice字段
if(record.price && JSON.stringify(record.unitPrice) === "{}") {
record.unitPrice = {'0-0': record.price}
}
let unitPrice = 0 let unitPrice = 0
Object.entries(record.unitPrice).forEach(([key, value]) => { Object.entries(record.unitPrice).forEach(([key, value]) => {
const [min, max] = key.split('-').map(v => Number(v)) const [min, max] = key.split('-').map(v => Number(v))
...@@ -41,8 +45,13 @@ export const getUnitPriceTotal = (record) => { ...@@ -41,8 +45,13 @@ export const getUnitPriceTotal = (record) => {
} }
}) })
// 考虑会员折扣 // 考虑会员折扣
let memberPrice = record.memberPrice !== 1 ? toPoint(record.memberPrice) : 1 // let memberPrice = record.memberPrice !== 1 ? toPoint(record.memberPrice) : 1
let memberPrice = record.memberPrice
if(record.isMemberPrice) {
return unitPrice * purchaseCount * memberPrice return unitPrice * purchaseCount * memberPrice
} else {
return unitPrice * purchaseCount
}
} }
export const useProductTable = (ctx: ISchemaFormActions | ISchemaFormAsyncActions) => { export const useProductTable = (ctx: ISchemaFormActions | ISchemaFormAsyncActions) => {
const productRef = useRef<any>({}) const productRef = useRef<any>({})
...@@ -96,6 +105,7 @@ export const useProductTable = (ctx: ISchemaFormActions | ISchemaFormAsyncAction ...@@ -96,6 +105,7 @@ export const useProductTable = (ctx: ISchemaFormActions | ISchemaFormAsyncAction
const newData = [...ctx.getFieldValue('orderProductRequests')]; const newData = [...ctx.getFieldValue('orderProductRequests')];
const index = newData.findIndex(item => row.id === item.id); const index = newData.findIndex(item => row.id === item.id);
const item = newData[index]; const item = newData[index];
console.log(getUnitPriceTotal(row), 'row')
row['money'] = getUnitPriceTotal(row) row['money'] = getUnitPriceTotal(row)
// 新增的时候接口字段id,commodityId 编辑的时候id,productId // 新增的时候接口字段id,commodityId 编辑的时候id,productId
row['productId'] = row?.commodityId ? row.id : row.productId row['productId'] = row?.commodityId ? row.id : row.productId
......
...@@ -25,7 +25,7 @@ const SecondApprovedOrderDetail: React.FC = () => { ...@@ -25,7 +25,7 @@ const SecondApprovedOrderDetail: React.FC = () => {
approvedRef.current.actions.submit().then(async () => { approvedRef.current.actions.submit().then(async () => {
const params = { const params = {
id: Number(id), id: Number(id),
state: 1 state: approvedRef.current.actions.getFieldValue('state')
} }
const result = await run(params) const result = await run(params)
......
...@@ -12,7 +12,7 @@ export const toPoint = (percent: string) => { ...@@ -12,7 +12,7 @@ export const toPoint = (percent: string) => {
// 小数转分数 // 小数转分数
export const toPercent = (point: number) => { export const toPercent = (point: number) => {
// let str = Number(point * 100).toFixed(1); // let str = Number(point * 100).toFixed(1);
let str = Number(point * 100); let str: any = Number(point * 100);
str += "%"; str += "%";
return str; return str;
} }
\ No newline at end of file
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