Commit 39caf487 authored by XieZhiXiong's avatar XieZhiXiong
parents 156967c1 d7684fbd
......@@ -798,10 +798,12 @@ export const PurchaseOrderInsideWorkStateTexts = {
2: '一级待审核订单',
3: '二级待审核订单',
4: '待提交订单',
5: '待确认电子合同',
// 5: '待确认电子合同',
5: '提交订单完成',
6: '提交一级审核订单不通过',
7: '提交二级审核订单不通过',
8: '待支付订单',
// 8: '待支付订单',
8: '确认电子合同',
10: '支付成功',
11: '支付失败',
12: '待确认收货',
......
......@@ -111,7 +111,7 @@ const ProductImageForm: React.FC<{}> = (props) => {
setIsAllAttributePic(setImageType)
_priceAttributeParams = priceAttributeParams.map((_item, _index) => {
let _obj = {..._item, goodsId: _item.goods.id}
let _obj = {..._item, goodsId: _item?.goods?.id || _item.goodsId}
_obj.commodityPic = maintainImageData[_index] || []
return _obj
})
......
......@@ -189,8 +189,9 @@ const CreateOrderElectronModal:React.FC<OrderElectronModalProps> = (props) => {
effects={($, actions) => {
// $('onFormInit').subscribe(() => {
if (data.isElectronicContract === 1) {
useAsyncSelect('contractTemplateId', async () => (await PublicApi.getOrderSelectListContractTemplate()).data, ['name', 'id'])
actions.setFieldValue("contractTemplateId", data.contractTemplateId)
useAsyncSelect('contractTemplateId', async () => (await PublicApi.getOrderSelectListContractTemplate()).data, ['name', 'id']).then(()=>{
actions.setFieldValue("contractTemplateId", data.contractTemplateId)
})
} else {
actions.setFieldState('usingElectronicContracts', state => {
state.value = 0
......
......@@ -95,20 +95,24 @@ export const MoneyTotalBox = ({ dataSource, isEditData }) => {
}
const [amountMoney, setAmountMoney] = useState<number>(amount || sum + freePrice)
// useEffect(() => {
// const _sum = orderProductRequests.reduce((prev, next) => prev + Number((next.money || 0)), 0)
// setSum(_sum)
// }, [])
const [changeTotal, setChangeTotal] = useState<boolean>(false) // 是否改变总价
// 总计金额
useEffect(() => {
setAmountMoney(() => (sum*1000 + freePrice*1000)/1000)
}, [sum, freePrice])
useEffect(() => {
if(changeTotal){
// 执行修改订单运费
PublicApi.postOrderProductPriceUpdate({orderId: dataSource.id, price: freePrice, type: 2})
}
}, [amountMoney])
const handleConfirm = () => {
setFreePrice(Number(modalPriceActions.getFieldValue('freePrice') || 0))
modelRef.current.setVisible(false)
setChangeTotal(true)
}
useEffect(() => {
......@@ -294,7 +298,6 @@ const SaleOrderProductTable:React.FC<OrderProductTableProps> = (props) => {
const warehouseRef = useRef<any>({})
// 判断是否可操作当前表格
console.log(SaleOrderInsideWorkStateTexts[data.purchaseOrderInteriorState],data, 'data')
const isEditData = SaleOrderInsideWorkStateTexts[data.purchaseOrderInteriorState] === '待审核订单'
const productComponents = {
body: {
......@@ -338,12 +341,14 @@ const SaleOrderProductTable:React.FC<OrderProductTableProps> = (props) => {
const handleSave = row => {
const newData = [...orderProductRequests];
const index = newData.findIndex(item => row.key === item.key);
const index = newData.findIndex(item => row.id === item.id);
const item = newData[index];
newData.splice(index, 1, {
...item,
...row,
});
// 执行修改订单价格
PublicApi.postOrderProductPriceUpdate({orderId: data.id, orderDetailsId: row.id, price: row.price, type: 1})
ctl.setData({
...data,
orderProductRequests: newData
......
......@@ -30,6 +30,7 @@ import { changeRouterTitleByStatus } from '../../_public/order/utils'
import { ReadyAddOrderDetailContext } from '../context'
import AuditProcess from '@/components/AuditProcess'
import styles from './index.less'
import { toPoint } from '@/utils/type'
export interface PurchaseOrderDetailProps {}
......@@ -180,7 +181,7 @@ const PurchaseOrderDetail:React.FC<PurchaseOrderDetailProps> = (props) => {
orderProductRequests: _orderProductRequests.map(v => {
v.price = 1
v.isMemberPrice = Number(v.isMemberPrice)
v.memberPrice = parseInt(v.memberPrice)
v.memberPrice = toPoint(v.memberPrice)
v.imgUrl = v.mainPic
v.minOrder = v.minOrder
// v.productId = v.id
......
......@@ -5,6 +5,7 @@ import { productInfoColumns } from '../constant';
import ProductTableCell, { ProductEditableRow } from '../components/productTableCell';
import { useModalTable } from './useModalTable';
import { usePageStatus, PageStatus } from '@/hooks/usePageStatus';
import { toPoint } from '@/utils/type';
export const getUnitPriceTotal = (record) => {
const purchaseCount = Number(record['purchaseCount']) || 0
......@@ -27,7 +28,9 @@ export const getUnitPriceTotal = (record) => {
return false
}
})
return unitPrice * purchaseCount
// 考虑会员折扣
let memberPrice = record?.memberPrice ? toPoint(record.memberPrice) : 1
return unitPrice * purchaseCount * memberPrice
}
export const useProductTable = (ctx: ISchemaFormActions | ISchemaFormAsyncActions) => {
const productRef = useRef<any>({})
......
import React from 'react'
import React, { useRef } from 'react'
import { history } from 'umi'
import { Card, Button, Space, Dropdown, Menu } from 'antd'
import { StandardTable } from 'god'
......@@ -24,14 +24,17 @@ const fetchTableData = async (params) => {
// TODO
const FirstApprovedOrder:React.FC<FirstApprovedOrderProps> = (props) => {
const refTable = useRef<any>({})
const {
columns
} = useSelfTable()
} = useSelfTable(refTable)
return <PageHeaderWrapper>
<Card>
<StandardTable
fetchTableData={params => fetchTableData(params)}
ref={refTable}
columns={columns}
rowKey={'orderNo'}
formilyLayouts={{
......
import React, { useRef } from 'react'
import { history, Link } from 'umi'
import { Button, Row, Col, Progress } from 'antd'
import { Button, Row, Col, Progress, Popconfirm } from 'antd'
import { PublicApi } from '@/services/api'
import EyePreview from '@/components/EyePreview'
import { formatTimeString } from '@/utils'
......@@ -49,8 +49,18 @@ const CircleChart = props => {
}
// 业务hooks, 待支付订单
export const useSelfTable = () => {
export const useSelfTable = (props) => {
const { refTable } = props
const ref = useRef<any>({})
const handleCancel = (param) => {
PublicApi.postOrderPurchaseOrderCancel({id: param}).then(res => {
if(res.code === 1000) {
refTable.current.reload()
}
})
}
const payOrderColumns: any[] = [
{
title: '订单号',
......@@ -124,27 +134,41 @@ export const useSelfTable = () => {
title: '当前支付', align: 'center', dataIndex: 'currentPayments', width: 140, render: (text, record) => <>
<Row justify='space-between'>
<Col>{record.currentPayments} / {record.sum}</Col>
<Col>
{/* <Col>
{
record.currentPayments !== record.sum &&
(record.externalState === PurchaseOrderOutWorkState.PAY_ORDER || record.externalState === PurchaseOrderOutWorkState.CONFIRM_NOT_ARRIVED_ACCOUNT) &&
<Link to={`/memberCenter/tranactionAbility/purchaseOrder/readyPayOrder/detail?id=${record.id}`}>去支付</Link>
}
</Col>
</Col> */}
</Row>
<Progress percent={Math.ceil(record.currentPayments / record.sum)} showInfo={false} />
</>
},
// {
// title: '操作',
// align: 'center',
// dataIndex: 'ctl',
// key: 'ctl',
// render: (text, record) => <>
// <Button type='link' onClick={() => handleConfirm(record)}>支付</Button>
// <Button type='link' onClick={() => handleCancel(record.id)}>取消订单</Button>
// </>
// }
{
title: '操作',
align: 'center',
dataIndex: 'ctl',
key: 'ctl',
render: (text, record) => <>
{
record.currentPayments !== record.sum &&
(record.externalState === PurchaseOrderOutWorkState.PAY_ORDER || record.externalState === PurchaseOrderOutWorkState.CONFIRM_NOT_ARRIVED_ACCOUNT) &&
<Link to={`/memberCenter/tranactionAbility/purchaseOrder/readyPayOrder/detail?id=${record.id}`}>去支付</Link>
}
{
(record.externalState === PurchaseOrderOutWorkState.PAY_ORDER && !record.signatureLogId || record.externalState === PurchaseOrderOutWorkState.CONFIRM_NOT_ARRIVED_ACCOUNT) &&
<Popconfirm
title="是否要取消该订单?"
onConfirm={() => handleCancel(record.id)}
okText="是"
cancelText="否"
>
<Button type='link'>取消订单</Button>
</Popconfirm>
}
</>
}
]
return {
......
export function isString(str: any):str is string {
return typeof str === 'string'
}
// 分数转小数
export const toPoint = (percent: string) => {
let str: any = percent.replace("%","");
str = str / 100;
return str;
}
// 小数转分数
export const toPercent = (point: number) => {
let str = Number(point * 100).toFixed(1);
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