Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
A
admin
概览
概览
详情
活动
周期分析
版本库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
问题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程表
图表
维基
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
iuav
admin
Commits
39f55e58
提交
39f55e58
authored
9月 14, 2023
作者:
龚洪江
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
功能:采购订单,商城订单,确认订单对接
上级
f08e063a
隐藏空白字符变更
内嵌
并排
正在显示
17 个修改的文件
包含
882 行增加
和
191 行删除
+882
-191
orderManageType.ts
src/api/interface/orderManageType.ts
+273
-1
orderManage.ts
src/api/modules/orderManage.ts
+18
-0
index.scss
src/components/order/selfTableItem/index.scss
+17
-0
index.tsx
src/components/order/selfTableItem/index.tsx
+14
-0
index.scss
...pages/orderManage/procurementOrder/orderDetail/index.scss
+28
-0
index.tsx
src/pages/orderManage/procurementOrder/orderDetail/index.tsx
+110
-14
index.scss
src/pages/orderManage/procurementOrder/orderList/index.scss
+33
-0
index.tsx
src/pages/orderManage/procurementOrder/orderList/index.tsx
+175
-43
index.scss
.../productOrder/orderDetail/comp/detailPurchaser/index.scss
+24
-7
index.tsx
...e/productOrder/orderDetail/comp/detailPurchaser/index.tsx
+29
-29
index.scss
src/pages/orderManage/productOrder/orderDetail/index.scss
+0
-18
index.scss
...roductOrder/orderList/components/approvalOrder/index.scss
+8
-0
index.tsx
...productOrder/orderList/components/approvalOrder/index.tsx
+75
-8
index.tsx
...roductOrder/orderList/components/shipmentsOrder/index.tsx
+5
-2
index.tsx
...age/productOrder/orderList/components/sureOrder/index.tsx
+22
-5
index.scss
src/pages/orderManage/productOrder/orderList/index.scss
+20
-35
index.tsx
src/pages/orderManage/productOrder/orderList/index.tsx
+31
-29
没有找到文件。
src/api/interface/orderManageType.ts
浏览文件 @
39f55e58
...
@@ -965,7 +965,7 @@ type mallOrderType = {
...
@@ -965,7 +965,7 @@ type mallOrderType = {
/**
/**
* 支付凭证
* 支付凭证
*/
*/
payImgList
?
:
string
;
payImgList
:
string
;
/**
/**
* 备注信息
* 备注信息
*/
*/
...
@@ -1251,3 +1251,275 @@ export type confirmOrderType = InterFunction<
...
@@ -1251,3 +1251,275 @@ export type confirmOrderType = InterFunction<
},
},
any
any
>
;
>
;
// 根据用户id获取钱包信息
export
type
walletAmountType
=
InterFunction
<
{
userAccountId
?:
number
},
{
/**
* 云享金余额
*/
cashAmt
?:
number
;
/**
* 已冻结云享金
*/
cashFreeze
?:
number
;
/**
* id
*/
id
?:
number
;
/**
* 已提现的金额
*/
rebateWdl
?:
number
;
/**
* 佣金余额
*/
salaryAmt
?:
number
;
/**
* 已冻结佣金
*/
salaryFreeze
?:
number
;
/**
* 总金额
*/
totalAmount
?:
number
;
/**
* 云享金总金额
*/
totalCash
?:
number
;
/**
* 冻结总额
*/
totalFreeze
?:
number
;
/**
* 佣金总额度
*/
totalSalary
?:
number
;
/**
* 用户ID
*/
userAccountId
?:
number
;
/**
* 用户姓名
*/
userName
?:
string
;
/**
* 提现冻结金额
*/
wdlFreeze
?:
number
;
}
>
;
// 商城订单-凭证审批
export
type
approvalOrderType
=
InterFunction
<
{
/**
* 审核状态,0待审批,1通过,2未通过
*/
checkStatus
:
number
;
/**
* 支付凭证
*/
payImgList
?:
string
;
/**
* 未通过原因
*/
refuseReason
?:
string
;
/**
* 订单id
*/
uavOrderId
:
number
;
id
:
number
;
},
any
>
;
// 采购订单-列表
export
type
listPurchaseOrderType
=
InterListFunction
<
{
/**
* 结束时间
*/
endTime
?:
string
;
/**
* 关键字-订单编号
*/
keyword
?:
string
;
/**
* 开始时间
*/
startTime
?:
string
;
/**
* 订单状态码
*/
statusCode
?:
number
;
/**
* 商家id
*/
thirdBackUserAccountId
?:
number
;
/**
* 用户uid
*/
uid
?:
string
;
},
{
id
:
number
;
orderNo
:
string
;
backUserAccountId
:
number
;
thirdUserAccountId
:
number
;
uavOrderId
:
number
;
orderAmount
:
number
;
statusCode
:
number
;
createTime
:
string
;
userRemark
:
null
;
sellerRemark
:
null
;
skuDTOList
:
{
/**
* 下单时间
*/
createTime
?:
Date
;
/**
* 订单规格id
*/
id
?:
number
;
/**
* 商品id
*/
mallGoodsId
?:
number
;
/**
* 购买数量
*/
orderNum
:
number
;
/**
* 商品规格id
*/
priceStockId
?:
number
;
/**
* 商品规格
*/
productSpec
:
string
;
/**
* 商品规格图片
*/
skuImage
?:
string
;
/**
* 商品规格编号
*/
skuNo
?:
string
;
/**
* 商品名称
*/
tradeName
?:
string
;
/**
* 订单id
*/
uavOrderId
?:
number
;
/**
* 单价
*/
unitPrice
?:
number
;
}[];
uavOrderExpressDTO
:
null
;
uavOrderPayDTOS
:
null
;
contractInfoDTO
:
null
;
}
>
;
// 采购订单-详情
export
type
purchaseOrderDetailType
=
InterFunction
<
{
/**
* id
*/
id
:
number
;
},
{
id
:
number
;
orderNo
:
string
;
backUserAccountId
:
number
;
thirdUserAccountId
:
number
;
uavOrderId
:
number
;
orderAmount
:
number
;
statusCode
:
number
;
createTime
:
number
;
userRemark
:
null
;
sellerRemark
:
null
;
skuDTOList
:
{
/**
* 下单时间
*/
createTime
?:
Date
;
/**
* 订单规格id
*/
id
?:
number
;
/**
* 商品id
*/
mallGoodsId
?:
number
;
/**
* 购买数量
*/
orderNum
:
number
;
/**
* 商品规格id
*/
priceStockId
?:
number
;
/**
* 商品规格
*/
productSpec
:
string
;
/**
* 商品规格图片
*/
skuImage
?:
string
;
/**
* 商品规格编号
*/
skuNo
?:
string
;
/**
* 商品名称
*/
tradeName
?:
string
;
/**
* 订单id
*/
uavOrderId
?:
number
;
/**
* 单价
*/
unitPrice
?:
number
;
}[];
uavOrderExpressDTO
:
{
id
:
number
;
uavOrderId
:
number
;
sendExpNo
:
string
;
sendExpCode
:
string
;
takeName
:
string
;
takePhone
:
string
;
takeRegion
:
string
;
takeAddress
:
string
;
sendTime
:
number
;
receiveTime
:
null
;
receive
:
number
;
};
uavOrderPayDTOS
:
Array
<
unknown
>
;
contractInfoDTO
:
null
;
}
>
;
// 采购订单-确认
export
type
confirmPOrderType
=
InterFunction
<
{
/**
* 采购订单id
*/
id
?:
number
;
/**
* 订单金额
*/
orderAmount
?:
number
;
/**
* 平台备注
*/
userRemark
?:
string
;
},
any
>
;
src/api/modules/orderManage.ts
浏览文件 @
39f55e58
import
axios
from
'../request'
;
import
axios
from
'../request'
;
import
{
import
{
approvalOrderType
,
confirmOrderType
,
confirmOrderType
,
confirmPOrderType
,
disputeType
,
disputeType
,
flowDictionaryAndTimeType
,
flowDictionaryAndTimeType
,
flowDictionaryType
,
flowDictionaryType
,
...
@@ -9,6 +11,7 @@ import {
...
@@ -9,6 +11,7 @@ import {
listOfRentalOrdersType
,
listOfRentalOrdersType
,
listPageManagerVerOne
,
listPageManagerVerOne
,
listPcWechatOrderType
,
listPcWechatOrderType
,
listPurchaseOrderType
,
listTranStatusType
,
listTranStatusType
,
logisticsDynamicsType
,
logisticsDynamicsType
,
mallOrderDetailType
,
mallOrderDetailType
,
...
@@ -20,6 +23,7 @@ import {
...
@@ -20,6 +23,7 @@ import {
orderListStatus
,
orderListStatus
,
pfConfirmOrderWareType
,
pfConfirmOrderWareType
,
platFormCloseOrderType
,
platFormCloseOrderType
,
purchaseOrderDetailType
,
refundOrderType
,
refundOrderType
,
renterTakeOrderType
,
renterTakeOrderType
,
sellerRemarkType
,
sellerRemarkType
,
...
@@ -28,6 +32,7 @@ import {
...
@@ -28,6 +32,7 @@ import {
serviceOrderFormListType
,
serviceOrderFormListType
,
serviceOrderStatusType
,
serviceOrderStatusType
,
serviceOrderType
,
serviceOrderType
,
walletAmountType
,
}
from
'~/api/interface/orderManageType'
;
}
from
'~/api/interface/orderManageType'
;
export
class
OrderManageAPI
{
export
class
OrderManageAPI
{
...
@@ -124,4 +129,17 @@ export class OrderManageAPI {
...
@@ -124,4 +129,17 @@ export class OrderManageAPI {
axios
.
get
(
'/oms/uav-order/sellerRemark'
,
{
params
});
axios
.
get
(
'/oms/uav-order/sellerRemark'
,
{
params
});
// 商城订单-确认订单
// 商城订单-确认订单
static
confirmOrder
:
confirmOrderType
=
(
data
)
=>
axios
.
post
(
'/oms/uav-order/confirmOrder'
,
data
);
static
confirmOrder
:
confirmOrderType
=
(
data
)
=>
axios
.
post
(
'/oms/uav-order/confirmOrder'
,
data
);
// 根据用户id获取钱包信息
static
getWalletAmount
:
walletAmountType
=
(
params
)
=>
axios
.
get
(
'/userapp/pay/getPayWalletInfo'
,
{
params
});
// 商城订单-审批凭证
static
approvalOrder
:
approvalOrderType
=
(
data
)
=>
axios
.
post
(
'/oms/uav-order/checkPay'
,
data
);
// 采购订单-列表
static
getListPurchaseOrder
:
listPurchaseOrderType
=
(
data
)
=>
axios
.
post
(
'/oms/uav-po/listPurchaseOrder'
,
data
);
// 采购订单-详情
static
getPurchaseOrderDetail
:
purchaseOrderDetailType
=
(
params
)
=>
axios
.
get
(
'/oms/uav-po/getPurchaseOrder'
,
{
params
});
// 采购订单-确认
static
confirmPOrder
:
confirmPOrderType
=
(
data
)
=>
axios
.
post
(
'/oms/uav-po/confirmPOrder'
,
data
);
}
}
src/components/order/selfTableItem/index.scss
0 → 100644
浏览文件 @
39f55e58
.order-table-item
{
.item-td
{
position
:
absolute
;
top
:
0
;
left
:
0
;
height
:
40px
;
width
:
100%
;
background
:
rgba
(
22
,
119
,
255
,
0
.1
);
line-height
:
40px
;
}
.item-tr
{
min-height
:
50px
;
width
:
100%
;
margin-top
:
50px
;
}
}
src/components/order/selfTableItem/index.tsx
0 → 100644
浏览文件 @
39f55e58
import
'./index.scss'
;
const
TableItem
:
React
.
FC
<
{
td
?:
React
.
ReactNode
;
tr
?:
React
.
ReactNode
;
// eslint-disable-next-line react/prop-types
}
>
=
({
td
,
tr
})
=>
{
return
(
<
div
className=
'order-table-item'
>
<
div
className=
'item-td'
>
{
td
}
</
div
>
<
div
className=
'item-tr'
>
{
tr
}
</
div
>
</
div
>
);
};
export
default
TableItem
;
src/pages/orderManage/procurementOrder/orderDetail/index.scss
0 → 100644
浏览文件 @
39f55e58
.procurement-order-detail
{
.procurement-sku-item
{
display
:
flex
;
align-items
:
center
;
margin-bottom
:
10px
;
.sku-img
{
width
:
48px
;
height
:
48px
;
}
.sku-info
{
margin-left
:
10px
;
line-height
:
16px
;
text-align
:
left
;
.info-name
{
color
:
#1677ff
}
.info-spec
{
margin-top
:
10px
;
span
:not
(
:last-child
)
{
&
:after
{
content
:
';'
;
}
}
}
}
}
}
src/pages/orderManage/procurementOrder/orderDetail/index.tsx
浏览文件 @
39f55e58
import
{
Button
,
Descriptions
,
Table
}
from
'antd'
;
import
{
Button
,
Descriptions
,
Image
,
Table
}
from
'antd'
;
import
{
useNavigate
}
from
'react-router-dom'
;
import
{
useNavigate
,
useSearchParams
}
from
'react-router-dom'
;
import
{
OrderManageAPI
}
from
'~/api'
;
import
React
,
{
useEffect
,
useState
}
from
'react'
;
import
{
purchaseOrderDetailType
}
from
'~/api/interface/orderManageType'
;
import
{
InterDataType
}
from
'~/api/interface'
;
import
dayjs
from
'dayjs'
;
import
{
ColumnsType
}
from
'antd/es/table'
;
import
'./index.scss'
;
// 采购订单详情返回类型
type
detailType
=
InterDataType
<
purchaseOrderDetailType
>
;
const
ProcurementOrderDetail
=
()
=>
{
const
ProcurementOrderDetail
=
()
=>
{
const
navigate
=
useNavigate
();
const
navigate
=
useNavigate
();
const
[
searchParams
]
=
useSearchParams
();
const
[
purchaseOrderDetail
,
setPurchaseOrderDetail
]
=
useState
<
detailType
>
();
// 订单状态
const
[
orderStatusList
,
setOrderStatusList
]
=
useState
<
{
value
:
number
;
label
:
string
}[]
>
([]);
const
columns
:
ColumnsType
<
detailType
[
'skuDTOList'
][
0
]
>
=
[
{
title
:
'商品'
,
align
:
'center'
,
width
:
'20%'
,
render
:
(
_text
,
record
)
=>
(
<
div
className=
'mall-sku-item'
>
<
Image
src=
{
record
.
skuImage
}
className=
'sku-img'
/>
<
div
className=
'sku-info'
>
<
div
className=
'info-name'
>
{
record
.
tradeName
}
</
div
>
<
div
className=
'info-spec'
>
{
Object
.
entries
(
JSON
.
parse
(
record
.
productSpec
)).
map
((
v
,
index
)
=>
(
<
span
key=
{
index
}
>
{
v
.
join
(
':'
)
}
</
span
>
))
}
</
div
>
</
div
>
</
div
>
),
},
{
title
:
'单价(元)'
,
dataIndex
:
'unitPrice'
,
align
:
'center'
,
render
:
(
text
)
=>
`¥
${
text
?.
toLocaleString
()}
`,
},
{
title: '数量',
dataIndex: 'orderNum',
align: 'center',
},
{
title: '订单状态',
align: 'center',
render: () => orderStatusList.find((v) => v.value === purchaseOrderDetail?.statusCode)?.label,
},
{
title: '订单金额(元)',
align: 'center',
render: () => `
¥
$
{
purchaseOrderDetail
?.
orderAmount
}
`,
},
];
// 获取采购订单详情
const getPurchaseOrderDetail = (id: number) => {
OrderManageAPI.getPurchaseOrderDetail({ id }).then(({ result }) => {
if (result) {
setPurchaseOrderDetail(result);
}
});
};
// 获取订单状态
const getOrderStatusList = () => {
OrderManageAPI.getMallOrderStatusList().then(({ result }) => {
if (result) {
const list = result.map((item) => ({ value: item.code, label: item.status }));
setOrderStatusList(list);
}
});
};
const backRoute = () => {
const backRoute = () => {
navigate(-1);
navigate(-1);
};
};
useEffect(() => {
getPurchaseOrderDetail(Number(searchParams.get('id')));
getOrderStatusList();
}, []);
return (
return (
<div className='procurement-order-detail'>
<div className='procurement-order-detail'>
<Descriptions
<Descriptions
...
@@ -24,24 +102,42 @@ const ProcurementOrderDetail = () => {
...
@@ -24,24 +102,42 @@ const ProcurementOrderDetail = () => {
</Descriptions>
</Descriptions>
<Descriptions title='订单' style={{ marginTop: '10px' }} column={3}>
<Descriptions title='订单' style={{ marginTop: '10px' }} column={3}>
<Descriptions.Item label='订单编号:' labelStyle={{ color: '#000' }}>
<Descriptions.Item label='订单编号:' labelStyle={{ color: '#000' }}>
1
{purchaseOrderDetail?.orderNo}
</Descriptions.Item>
</Descriptions.Item>
<
Descriptions
.
Item
label=
'创建时间:'
labelStyle=
{
{
color
:
'#000'
}
}
>
<Descriptions.Item label='创建时间:' labelStyle={{ color: '#000' }} span={2}>
2
{dayjs(purchaseOrderDetail?.createTime).format('YYYY-MM-DD HH:mm:ss')}
</
Descriptions
.
Item
>
<
Descriptions
.
Item
label=
'合同编号:'
labelStyle=
{
{
color
:
'#000'
}
}
>
3
</Descriptions.Item>
</Descriptions.Item>
{/*<Descriptions.Item label='合同编号:' labelStyle={{ color: '#000' }}>*/}
{/* 3*/}
{/*</Descriptions.Item>*/}
<Descriptions.Item span={3}>
<Descriptions.Item span={3}>
<
Table
bordered
style=
{
{
width
:
'100%'
}
}
/>
<Table
size='small'
dataSource={purchaseOrderDetail?.skuDTOList || []}
columns={columns}
rowKey='id'
bordered
pagination={false}
style={{ width: '100%' }}
// rowSelection={{ selectedRowKeys, onChange: onSelectChange }}
/>
</Descriptions.Item>
</Descriptions.Item>
</Descriptions>
</Descriptions>
<Descriptions title='物流' bordered style={{ marginTop: '10px' }}>
<Descriptions title='物流' bordered style={{ marginTop: '10px' }}>
<
Descriptions
.
Item
label=
'收货人:'
>
供应商名称:
</
Descriptions
.
Item
>
<Descriptions.Item label='收货人:'>
<
Descriptions
.
Item
label=
'手机号:'
>
供应商电话:
</
Descriptions
.
Item
>
{purchaseOrderDetail?.uavOrderExpressDTO.takeName}
<
Descriptions
.
Item
label=
'收货地址:'
>
Hangzhou, Zhejiang
</
Descriptions
.
Item
>
</Descriptions.Item>
<
Descriptions
.
Item
label=
'物流单号:'
>
Hangzhou, Zhejiang
</
Descriptions
.
Item
>
<Descriptions.Item label='手机号:'>
<
Descriptions
.
Item
label=
'物流进度:'
>
Hangzhou, Zhejiang
</
Descriptions
.
Item
>
{purchaseOrderDetail?.uavOrderExpressDTO.takePhone}
</Descriptions.Item>
<Descriptions.Item label='收货地址:'>
{purchaseOrderDetail?.uavOrderExpressDTO.takeRegion.split('/').join('') ||
'' + purchaseOrderDetail?.uavOrderExpressDTO.takeAddress}
</Descriptions.Item>
<Descriptions.Item label='物流单号:'>
{purchaseOrderDetail?.uavOrderExpressDTO.sendExpNo || '--'}
</Descriptions.Item>
<Descriptions.Item label='物流进度:'>--</Descriptions.Item>
</Descriptions>
</Descriptions>
<Descriptions title='凭证' bordered style={{ marginTop: '10px' }}>
<Descriptions title='凭证' bordered style={{ marginTop: '10px' }}>
<Descriptions.Item label='付款凭证:'>供应商名称:</Descriptions.Item>
<Descriptions.Item label='付款凭证:'>供应商名称:</Descriptions.Item>
...
...
src/pages/orderManage/procurementOrder/orderList/index.scss
0 → 100644
浏览文件 @
39f55e58
.procurement-order-list
{
.goods-text
{
height
:
60px
;
width
:
100%
;
text-align
:
center
;
line-height
:
60px
;
}
.procurement-sku-item
{
display
:
flex
;
align-items
:
center
;
margin-bottom
:
10px
;
.sku-img
{
width
:
48px
;
height
:
48px
;
}
.sku-info
{
margin-left
:
10px
;
line-height
:
16px
;
text-align
:
left
;
.info-name
{
color
:
#1677ff
}
.info-spec
{
margin-top
:
10px
;
span
:not
(
:last-child
)
{
&
:after
{
content
:
';'
;
}
}
}
}
}
}
src/pages/orderManage/procurementOrder/orderList/index.tsx
浏览文件 @
39f55e58
import
SearchBox
from
'~/components/search-box'
;
import
SearchBox
from
'~/components/search-box'
;
import
{
Button
,
Table
}
from
'antd'
;
import
{
Button
,
Image
,
Table
}
from
'antd'
;
import
{
useEffect
,
useState
}
from
'react'
;
import
{
useEffect
,
useState
}
from
'react'
;
import
{
OrderManageAPI
}
from
'~/api'
;
import
{
OrderManageAPI
}
from
'~/api'
;
import
{
ColumnsType
}
from
'antd/es/table/InternalTable'
;
import
{
ColumnsType
}
from
'antd/es/table/InternalTable'
;
import
{
useNavigate
}
from
'react-router-dom'
;
import
{
useNavigate
}
from
'react-router-dom'
;
import
{
InterListType
,
InterReqListType
,
PaginationProps
}
from
'~/api/interface'
;
import
{
listPurchaseOrderType
}
from
'~/api/interface/orderManageType'
;
import
TableItem
from
'~/components/order/selfTableItem'
;
import
'./index.scss'
;
import
{
filterObjAttr
}
from
'~/utils'
;
import
dayjs
from
'dayjs'
;
import
qs
from
'query-string'
;
// 采购订单列表返回类型
type
procurementOrderListType
=
InterListType
<
listPurchaseOrderType
>
;
// 采购订单列表请求类型
type
procurementOrderParamsType
=
InterReqListType
<
listPurchaseOrderType
>
;
const
ProcurementOrderList
=
()
=>
{
const
ProcurementOrderList
=
()
=>
{
const
navigate
=
useNavigate
();
const
navigate
=
useNavigate
();
// 订单操作按钮列表
const
operateBtnList
=
[
{
btnStr
:
'确认订单'
,
status
:
200
,
btnClick
:
(
record
:
procurementOrderListType
[
0
])
=>
{},
},
{
btnStr
:
'凭证审批'
,
status
:
420
,
btnClick
:
(
record
:
procurementOrderListType
[
0
])
=>
{},
},
{
btnStr
:
'发货'
,
status
:
500
,
btnClick
:
(
record
:
procurementOrderListType
[
0
])
=>
{},
},
];
// 订单状态
// 订单状态
const
[
orderStatusList
,
setOrderStatusList
]
=
useState
<
{
value
:
number
;
label
:
string
}[]
>
([]);
const
[
orderStatusList
,
setOrderStatusList
]
=
useState
<
{
value
:
number
;
label
:
string
}[]
>
([]);
// 订单状态搜索列表
// 订单状态搜索列表
...
@@ -18,77 +48,171 @@ const ProcurementOrderList = () => {
...
@@ -18,77 +48,171 @@ const ProcurementOrderList = () => {
const
[
statusCodeButtonIndex
,
setStatusCodeButtonIndex
]
=
useState
<
number
>
(
0
);
const
[
statusCodeButtonIndex
,
setStatusCodeButtonIndex
]
=
useState
<
number
>
(
0
);
// 表格数据
// 表格数据
const
[
tableData
,
setTableData
]
=
useState
<
any
>
([{
id
:
1
}]);
const
[
tableData
,
setTableData
]
=
useState
<
procurementOrderListType
>
([]);
const
tableColumns
:
ColumnsType
<
any
>
=
[
const
[
query
,
setQuery
]
=
useState
<
procurementOrderParamsType
>
();
const
[
pagination
,
setPagination
]
=
useState
<
PaginationProps
&
{
totalCount
:
number
}
>
({
pageNo
:
1
,
pageSize
:
10
,
totalCount
:
0
,
});
const
tableColumns
:
ColumnsType
<
procurementOrderListType
[
0
]
>
=
[
{
{
title
:
'商品'
,
title
:
'商品'
,
dataIndex
:
'userName'
,
width
:
280
,
align
:
'center'
,
align
:
'center'
,
fixed
:
'left'
,
render
:
(
_text
,
record
)
=>
(
<
TableItem
td=
{
<
div
>
<
span
>
订单编号:
</
span
>
<
span
>
{
record
.
orderNo
}
</
span
>
</
div
>
}
tr=
{
record
?.
skuDTOList
?.
map
((
v
)
=>
(
<
div
key=
{
v
.
id
}
className=
'procurement-sku-item'
>
<
Image
src=
{
v
.
skuImage
}
className=
'sku-img'
/>
<
div
className=
'sku-info'
>
<
div
className=
'info-name'
>
{
v
.
tradeName
}
</
div
>
<
div
className=
'info-spec'
>
{
Object
.
entries
(
JSON
.
parse
(
v
.
productSpec
)).
map
((
v
,
index
)
=>
(
<
span
key=
{
index
}
>
{
v
.
join
(
':'
)
}
</
span
>
))
}
</
div
>
</
div
>
</
div
>
))
}
/>
),
},
},
{
{
title
:
'订单金额(元)'
,
title
:
'订单金额(元)'
,
dataIndex
:
'orderAmount'
,
align
:
'center'
,
align
:
'center'
,
render
:
(
text
,
record
)
=>
(
<
TableItem
tr=
{
<
div
className=
'goods-text'
>
¥
{
text
?.
toLocaleString
()
}
</
div
>
}
td=
{
<
div
>
<
span
>
创建时间:
</
span
>
<
span
>
{
dayjs
(
record
.
createTime
).
format
(
'YYYY-MM-DD HH:mm:ss'
)
}
</
span
>
</
div
>
}
/>
),
},
},
{
{
title
:
'
买家
'
,
title
:
'
供应商信息
'
,
align
:
'center'
,
align
:
'center'
,
render
:
()
=>
<
TableItem
/>,
},
},
{
{
title
:
'订单状态'
,
title
:
'订单状态'
,
align
:
'center'
,
align
:
'center'
,
},
dataIndex
:
'statusCode'
,
{
render
:
(
text
)
=>
(
title
:
'实收款'
,
<
TableItem
align
:
'center'
,
tr=
{
},
<
div
className=
'goods-text'
>
{
{
orderStatusList
.
find
((
i
)
=>
i
.
value
===
text
)?.
label
||
text
}
title
:
'推荐人'
,
</
div
>
align
:
'center'
,
}
},
/>
{
),
title
:
'订单交期'
,
align
:
'center'
,
},
},
{
{
title
:
'备注'
,
title
:
'备注'
,
align
:
'center'
,
align
:
'center'
,
render
:
()
=>
<
TableItem
tr=
{
<
Button
type=
'link'
>
--
</
Button
>
}
/>,
},
},
{
{
title
:
'操作'
,
title
:
'操作'
,
align
:
'center'
,
align
:
'center'
,
render
:
()
=>
(
render
:
(
_text
:
any
,
record
)
=>
(
<
Button
type=
'link'
onClick=
{
toProcurementOrderDetail
}
>
<
TableItem
详情
tr=
{
</
Button
>
<>
{
getCurrentOperateBtn
?
(
<
Button
type=
{
'link'
}
onClick=
{
()
=>
getCurrentOperateBtn
(
record
.
statusCode
)?.
btnClick
(
record
)
}
>
{
getCurrentOperateBtn
(
record
.
statusCode
)?.
btnStr
}
</
Button
>
)
:
(
''
)
}
<
Button
type=
'link'
onClick=
{
()
=>
toProcurementOrderDetail
(
record
)
}
>
详情
</
Button
>
</>
}
/>
),
),
},
},
];
];
// 获取当前操作按钮
const
getCurrentOperateBtn
=
(
status
:
number
)
=>
{
return
operateBtnList
.
find
((
v
)
=>
v
.
status
===
status
);
};
// 获取订单状态
// 获取订单状态
const
getOrderStatus
=
()
=>
{
const
getOrderStatusList
=
()
=>
{
OrderManageAPI
.
orderListStatus
({}).
then
(({
result
})
=>
{
OrderManageAPI
.
getMallOrderStatusList
().
then
(({
result
})
=>
{
const
list
=
result
.
map
((
item
)
=>
({
value
:
item
.
code
,
label
:
item
.
status
}));
if
(
result
)
{
setOrderStatusList
(
list
);
const
list
=
result
.
map
((
item
)
=>
({
value
:
item
.
code
,
label
:
item
.
status
}));
const
arr
=
list
setOrderStatusList
(
list
);
.
filter
((
i
)
=>
[
999
,
800
,
720
,
300
,
200
,
100
,
50
].
includes
(
i
.
value
))
setTranStatusList
([{
label
:
'全部'
,
value
:
undefined
},
...
list
]);
.
reverse
();
}
setTranStatusList
([{
value
:
undefined
,
label
:
'全部订单'
},
...
arr
]);
});
};
// 采购订单列表
const
getListPurchaseOrder
=
(
query
?:
procurementOrderParamsType
)
=>
{
OrderManageAPI
.
getListPurchaseOrder
({
pageSize
:
pagination
.
pageSize
,
pageNo
:
pagination
.
pageNo
,
...
query
,
}).
then
(({
result
})
=>
{
pagination
.
totalCount
=
result
.
totalCount
;
setPagination
({
...
pagination
});
setTableData
(
result
.
list
||
[]);
});
});
};
};
// 分页
const
paginationChange
=
(
pageNo
:
number
,
pageSize
:
number
)
=>
{
pagination
.
pageNo
=
pageNo
;
pagination
.
pageSize
=
pageSize
;
getListPurchaseOrder
(
query
);
};
// 订单状态筛选
// 订单状态筛选
const
statusChangeEvent
=
(
i
:
number
)
=>
{
const
statusChangeEvent
=
(
i
:
number
)
=>
{
if
(
i
===
statusCodeButtonIndex
)
{
pagination
.
pageNo
=
1
;
setStatusCodeButtonIndex
(
0
);
pagination
.
pageSize
=
10
;
}
else
{
setStatusCodeButtonIndex
(
i
);
setStatusCodeButtonIndex
(
i
);
const
req
=
{
...
query
,
statusCode
:
tranStatusList
[
i
].
value
};
}
setQuery
(
req
);
getListPurchaseOrder
(
req
);
};
// 筛选
const
searchSuccess
=
(
value
:
any
)
=>
{
pagination
.
pageNo
=
1
;
pagination
.
pageSize
=
10
;
const
reqData
=
filterObjAttr
(
value
,
[
'rangeTime'
]);
setQuery
({
...
reqData
});
getListPurchaseOrder
(
reqData
);
};
};
// 采购订单详情
// 采购订单详情
const
toProcurementOrderDetail
=
()
=>
{
const
toProcurementOrderDetail
=
(
record
:
procurementOrderListType
[
0
])
=>
{
navigate
(
'/orderManage/procurementOrder/detail'
);
navigate
({
pathname
:
'/orderManage/procurementOrder/detail'
,
search
:
qs
.
stringify
({
id
:
record
.
id
}),
});
};
};
useEffect
(()
=>
{
useEffect
(()
=>
{
getOrderStatus
();
getOrderStatusList
();
getListPurchaseOrder
();
},
[]);
},
[]);
return
(
return
(
<
div
className=
'procurement-order-list'
>
<
div
className=
'procurement-order-list'
>
...
@@ -101,12 +225,6 @@ const ProcurementOrderList = () => {
...
@@ -101,12 +225,6 @@ const ProcurementOrderList = () => {
placeholder
:
'请输入订单编号'
,
placeholder
:
'请输入订单编号'
,
},
},
{
{
label
:
'买家账号'
,
name
:
'keyword2'
,
type
:
'input'
,
placeholder
:
'请输入用户账号'
,
},
{
label
:
'时间'
,
label
:
'时间'
,
name
:
'rangeTime'
,
name
:
'rangeTime'
,
type
:
'rangePicker'
,
type
:
'rangePicker'
,
...
@@ -129,8 +247,22 @@ const ProcurementOrderList = () => {
...
@@ -129,8 +247,22 @@ const ProcurementOrderList = () => {
})
}
})
}
</>
</>
}
}
searchData=
{
searchSuccess
}
/>
<
Table
columns=
{
tableColumns
}
dataSource=
{
tableData
}
rowKey=
'id'
pagination=
{
{
total
:
pagination
.
totalCount
,
pageSize
:
pagination
.
pageSize
,
current
:
pagination
.
pageNo
,
showSizeChanger
:
true
,
showQuickJumper
:
true
,
onChange
:
(
page
:
number
,
pageSize
:
number
)
=>
paginationChange
(
page
,
pageSize
),
showTotal
:
(
total
,
range
)
=>
`当前 ${range[0]}-${range[1]} 条记录 / 共 ${total} 条数据`
,
}
}
/>
/>
<
Table
bordered
columns=
{
tableColumns
}
dataSource=
{
tableData
}
/>
</
div
>
</
div
>
);
);
};
};
...
...
src/pages/orderManage/productOrder/orderDetail/comp/detailPurchaser/index.scss
浏览文件 @
39f55e58
.remark
{
.detail-purchaser
{
display
:
flex
;
.remark
{
.label
{
display
:
flex
;
white-space
:
nowrap
;
.label
{
white-space
:
nowrap
;
}
.value
{
line-height
:
15px
;
}
}
}
.value
{
.pay-img-wrap
{
line-height
:
15px
;
display
:
flex
;
.detail-image
{
display
:
flex
;
justify-content
:
flex-start
;
margin-bottom
:
10px
;
flex-wrap
:
wrap
;
.image
{
width
:
68px
;
height
:
68px
;
margin-right
:
10px
;
margin-bottom
:
10px
;
}
}
}
}
}
}
src/pages/orderManage/productOrder/orderDetail/comp/detailPurchaser/index.tsx
浏览文件 @
39f55e58
import
React
from
'react'
;
import
React
from
'react'
;
import
{
Button
}
from
'antd'
;
import
{
Button
,
Image
}
from
'antd'
;
import
{
mallOrderDetailType
}
from
'~/api/interface/orderManageType'
;
import
{
mallOrderDetailType
}
from
'~/api/interface/orderManageType'
;
import
{
InterDataType
}
from
'~/api/interface'
;
import
{
InterDataType
}
from
'~/api/interface'
;
import
{
contractStatusList
}
from
'~/utils/dictionary'
;
import
{
contractStatusList
}
from
'~/utils/dictionary'
;
...
@@ -74,34 +74,34 @@ const DetailPurchaser: React.FC<PropsType> = ({ detail }) => {
...
@@ -74,34 +74,34 @@ const DetailPurchaser: React.FC<PropsType> = ({ detail }) => {
) : (
) : (
''
''
)}
)}
{
/*<div className={'detail-title'}>付款凭证</div>*/}
{
detail?.payDTOList ? (
{/*<div className={'detail-text'}>预付款:</div>*/}
<>
{/*<div className={'detail-image'}>*/}
<div className='detail-title'>付款凭证</div>
{/* {[*/}
{detail?.payDTOList.map((v, index) => (
{/* 'https://pad-video-x.oss-cn-shenzhen.aliyuncs.com/file/infrastructure-05-05.png',*/}
<div key={index} className='pay-img-wrap'>
{/* 'https://pad-video-x.oss-cn-shenzhen.aliyuncs.com/file/infrastructure-05-05.png',*/}
<div className='detail-text'>
{/* ].map((i, j) => (*/}
第{index + 1}次上传
{/* <Image key={j} className={'image'} src={i} alt='付款凭证' />*/}
<span style={{ color: 'red' }}>
{/* ))}*/}
({v.checkStatus === 0 ? '待审批' : v.checkStatus === 1 ? '已通过' : '未通过'})
{/*</div>*/}
</span>
{/*<div className={'detail-text'}>尾款:</div>*/}
:
{/*<div className={'detail-image'}>*/}
</div>
{/* {[*/}
<div className='detail-image'>
{/* 'https://pad-video-x.oss-cn-shenzhen.aliyuncs.com/file/infrastructure-05-05.png',*/}
{JSON.parse(v.payImgList).map((i: any, j: number) => (
{/* 'https://pad-video-x.oss-cn-shenzhen.aliyuncs.com/file/infrastructure-05-05.png',*/}
<Image key={j} className='image' src={i.filePath} alt='付款凭证' />
{/* ].map((i, j) => (*/
}
))
}
{/* <Image key={j} className={'image'} src={i} alt='付款凭证' />*/}
</div>
{/* ))}*/}
</div>
{/*</div>*/
}
))
}
{/*<div className={'detail-text'}>全款:</div>*/}
{/*<div className={'detail-image'}>*/}
<div className='detail-text remark'>
{/* {[*/}
<div className='label'>凭证备注:</div>
{/* 'https://pad-video-x.oss-cn-shenzhen.aliyuncs.com/file/infrastructure-05-05.png',*/}
<div className='value'>{detail?.payDTOList[0].payRemark}</div>
{/* 'https://pad-video-x.oss-cn-shenzhen.aliyuncs.com/file/infrastructure-05-05.png',*/}
</div>
{/* ].map((i, j) => (*/}
</>
{/* <Image key={j} className={'image'} src={i} alt='付款凭证' />*/}
) : (
{/* ))}*/}
''
{/*</div>*/
}
)
}
</div>
</div>
);
);
};
};
...
...
src/pages/orderManage/productOrder/orderDetail/index.scss
浏览文件 @
39f55e58
...
@@ -43,23 +43,5 @@
...
@@ -43,23 +43,5 @@
margin-right
:
20px
;
margin-right
:
20px
;
}
}
}
}
.detail-image
{
display
:
flex
;
justify-content
:
flex-start
;
margin-left
:
56px
;
margin-top
:
-20px
;
margin-bottom
:
10px
;
.image
{
width
:
68px
;
height
:
68px
;
//margin-right: 10px;
}
.ant-image
{
margin-right
:
10px
;
}
}
}
}
}
}
src/pages/orderManage/productOrder/orderList/components/approvalOrder/index.scss
0 → 100644
浏览文件 @
39f55e58
.pay-img-wrap
{
display
:
flex
;
flex-wrap
:
wrap
;
.ant-image
{
margin-bottom
:
10px
;
margin-right
:
10px
;
}
}
src/pages/orderManage/productOrder/orderList/components/approvalOrder/index.tsx
浏览文件 @
39f55e58
import
{
FC
}
from
'react'
;
import
{
FC
,
useState
}
from
'react'
;
import
{
Form
,
Modal
,
ModalProps
,
Radio
}
from
'antd'
;
import
{
Form
,
Modal
,
ModalProps
,
Radio
,
Image
,
Row
,
Col
,
Input
,
RadioChangeEvent
,
message
,
}
from
'antd'
;
import
{
mallOrderListType
}
from
'~/api/interface/orderManageType'
;
import
{
InterListType
}
from
'~/api/interface'
;
import
'./index.scss'
;
import
{
OrderManageAPI
}
from
'~/api'
;
interface
selfProps
{
interface
selfProps
{
onCancel
:
()
=>
void
;
onCancel
:
()
=>
void
;
onOk
:
()
=>
void
;
onOk
:
()
=>
void
;
mallOrderItem
:
mallOrderItemType
|
undefined
;
}
}
// 订单对象类型
type
mallOrderItemType
=
InterListType
<
mallOrderListType
>
[
0
];
const
ApprovalOrder
:
FC
<
ModalProps
&
selfProps
>
=
({
open
,
onCancel
,
onOk
,
mallOrderItem
})
=>
{
const
[
form
]
=
Form
.
useForm
<
{
checkStatus
:
number
;
refuseReason
:
string
}
>
();
const
[
checkStatus
,
setCheckStatus
]
=
useState
<
number
>
(
1
);
const
radioChange
=
(
e
:
RadioChangeEvent
)
=>
{
setCheckStatus
(
e
.
target
.
value
);
};
// 获取需要审批的凭证
const
getApproveObj
=
()
=>
{
return
mallOrderItem
?.
payDTOList
?.
find
((
v
)
=>
v
.
checkStatus
===
0
);
};
const
ApprovalOrder
:
FC
<
ModalProps
&
selfProps
>
=
({
open
,
onCancel
,
onOk
})
=>
{
const
handleOk
=
()
=>
{
const
handleOk
=
()
=>
{
onOk
();
if
(
mallOrderItem
)
{
form
.
validateFields
().
then
((
values
)
=>
{
OrderManageAPI
.
approvalOrder
({
uavOrderId
:
mallOrderItem
?.
id
,
checkStatus
:
values
.
checkStatus
,
refuseReason
:
values
.
refuseReason
||
undefined
,
id
:
getApproveObj
()?.
id
||
0
,
}).
then
(({
code
})
=>
{
if
(
code
===
'200'
)
{
message
.
success
(
'审批成功'
);
form
.
resetFields
();
onOk
();
}
});
});
}
};
};
const
handleCancel
=
()
=>
{
const
handleCancel
=
()
=>
{
form
.
resetFields
();
onCancel
();
onCancel
();
};
};
return
(
return
(
<
Modal
open=
{
open
}
title=
'凭证审批'
onOk=
{
handleOk
}
onCancel=
{
handleCancel
}
>
<
Modal
open=
{
open
}
title=
'凭证审批'
onOk=
{
handleOk
}
onCancel=
{
handleCancel
}
>
<
Form
labelCol=
{
{
span
:
4
}
}
wrapperCol=
{
{
span
:
12
}
}
>
<
Form
<
Form
.
Item
label=
'状态'
>
labelCol=
{
{
span
:
2
}
}
<
Radio
.
Group
>
wrapperCol=
{
{
span
:
19
}
}
initialValues=
{
{
checkStatus
:
1
}
}
form=
{
form
}
>
<
Form
.
Item
label=
'状态'
name=
'checkStatus'
>
<
Radio
.
Group
onChange=
{
radioChange
}
>
<
Radio
value=
{
1
}
>
通过
</
Radio
>
<
Radio
value=
{
1
}
>
通过
</
Radio
>
<
Radio
value=
{
2
}
>
驳回
</
Radio
>
<
Radio
value=
{
2
}
>
驳回
</
Radio
>
</
Radio
.
Group
>
</
Radio
.
Group
>
</
Form
.
Item
>
</
Form
.
Item
>
<
Form
.
Item
label=
'凭证'
></
Form
.
Item
>
{
checkStatus
===
2
?
(
<
Form
.
Item
name=
'refuseReason'
label=
'原因'
>
<
Input
.
TextArea
placeholder=
'请输入驳回原因'
rows=
{
4
}
showCount
maxLength=
{
70
}
/>
</
Form
.
Item
>
)
:
(
''
)
}
</
Form
>
</
Form
>
{
<
Row
>
<
Col
span=
{
2
}
>
凭证:
</
Col
>
<
Col
span=
{
19
}
>
<
div
className=
'pay-img-wrap'
>
{
JSON
.
parse
(
getApproveObj
()?.
payImgList
||
'[]'
).
map
((
i
:
any
,
j
:
number
)
=>
(
<
Image
src=
{
i
.
filePath
}
key=
{
j
}
width=
{
100
}
height=
{
100
}
/>
))
}
</
div
>
</
Col
>
</
Row
>
}
</
Modal
>
</
Modal
>
);
);
};
};
...
...
src/pages/orderManage/productOrder/orderList/components/shipmentsOrder/index.tsx
浏览文件 @
39f55e58
...
@@ -9,7 +9,9 @@ import { mallOrderListType, mallOrderSendType } from '~/api/interface/orderManag
...
@@ -9,7 +9,9 @@ import { mallOrderListType, mallOrderSendType } from '~/api/interface/orderManag
type
locationType
=
InterDataType
<
getSecondDistrictInfoType
>
;
type
locationType
=
InterDataType
<
getSecondDistrictInfoType
>
;
type
mallOrderType
=
InterListType
<
mallOrderListType
>
[
0
];
type
mallOrderType
=
InterListType
<
mallOrderListType
>
[
0
];
// 发货请求类型
// 发货请求类型
type
sendMallType
=
InterReqType
<
mallOrderSendType
>
;
type
sendMallType
=
Omit
<
Exclude
<
InterReqType
<
mallOrderSendType
>
,
undefined
>
,
'takeRegion'
>
&
{
takeRegion
:
string
[];
};
interface
selfProps
{
interface
selfProps
{
currentOrderItem
:
mallOrderType
|
undefined
;
currentOrderItem
:
mallOrderType
|
undefined
;
...
@@ -40,6 +42,7 @@ const ShipmentsOrder: FC<ModalProps & selfProps> = ({ onOk, onCancel, open, curr
...
@@ -40,6 +42,7 @@ const ShipmentsOrder: FC<ModalProps & selfProps> = ({ onOk, onCancel, open, curr
...
value
,
...
value
,
uavOrderId
:
currentOrderItem
?.
id
,
uavOrderId
:
currentOrderItem
?.
id
,
id
:
currentOrderItem
?.
uavOrderExpressDTO
.
id
,
id
:
currentOrderItem
?.
uavOrderExpressDTO
.
id
,
takeRegion
:
value
?.
takeRegion
?.
join
(
'/'
),
}).
then
(({
code
})
=>
{
}).
then
(({
code
})
=>
{
if
(
code
===
'200'
)
{
if
(
code
===
'200'
)
{
message
.
success
(
'发货成功'
);
message
.
success
(
'发货成功'
);
...
@@ -65,7 +68,7 @@ const ShipmentsOrder: FC<ModalProps & selfProps> = ({ onOk, onCancel, open, curr
...
@@ -65,7 +68,7 @@ const ShipmentsOrder: FC<ModalProps & selfProps> = ({ onOk, onCancel, open, curr
form
.
setFieldsValue
({
form
.
setFieldsValue
({
takeName
:
currentOrderItem
.
uavOrderExpressDTO
.
takeName
,
takeName
:
currentOrderItem
.
uavOrderExpressDTO
.
takeName
,
takePhone
:
currentOrderItem
.
uavOrderExpressDTO
.
takePhone
,
takePhone
:
currentOrderItem
.
uavOrderExpressDTO
.
takePhone
,
takeRegion
:
currentOrderItem
.
uavOrderExpressDTO
.
takeRegion
,
takeRegion
:
currentOrderItem
.
uavOrderExpressDTO
.
takeRegion
.
split
(
'/'
)
,
takeAddress
:
currentOrderItem
.
uavOrderExpressDTO
.
takeAddress
,
takeAddress
:
currentOrderItem
.
uavOrderExpressDTO
.
takeAddress
,
});
});
}
}
...
...
src/pages/orderManage/productOrder/orderList/components/sureOrder/index.tsx
浏览文件 @
39f55e58
...
@@ -32,7 +32,12 @@ interface selfProps {
...
@@ -32,7 +32,12 @@ interface selfProps {
}
}
const
SureOrder
:
FC
<
ModalProps
&
selfProps
>
=
({
open
,
onOk
,
onCancel
,
mallOrderItem
})
=>
{
const
SureOrder
:
FC
<
ModalProps
&
selfProps
>
=
({
open
,
onOk
,
onCancel
,
mallOrderItem
})
=>
{
const
[
orderInfoForm
]
=
Form
.
useForm
<
{
orderTotalAmount
:
number
;
deliveryTime
:
string
}
>
();
const
[
orderInfoForm
]
=
Form
.
useForm
<
{
orderTotalAmount
:
number
;
deliveryTime
:
string
;
totalSalary
:
number
;
cashAmt
:
number
;
}
>
();
const
[
contractForm
]
=
Form
.
useForm
<
{
contractUrl
:
string
;
contractTitle
:
string
}
>
();
const
[
contractForm
]
=
Form
.
useForm
<
{
contractUrl
:
string
;
contractTitle
:
string
}
>
();
const
tableColumns
:
ColumnsType
<
mallOrderItemType
[
'skuDTOList'
][
0
]
>
=
[
const
tableColumns
:
ColumnsType
<
mallOrderItemType
[
'skuDTOList'
][
0
]
>
=
[
{
{
...
@@ -106,7 +111,19 @@ const SureOrder: FC<ModalProps & selfProps> = ({ open, onOk, onCancel, mallOrder
...
@@ -106,7 +111,19 @@ const SureOrder: FC<ModalProps & selfProps> = ({ open, onOk, onCancel, mallOrder
const
iframeModalCancel
=
()
=>
{
const
iframeModalCancel
=
()
=>
{
setIframeModalShow
(
false
);
setIframeModalShow
(
false
);
};
};
// 用户钱包信息
const
getWalletAmount
=
()
=>
{
OrderManageAPI
.
getWalletAmount
({
userAccountId
:
mallOrderItem
?.
userAccountId
}).
then
(
({
result
})
=>
{
if
(
result
)
{
orderInfoForm
.
setFieldsValue
({
cashAmt
:
result
.
cashAmt
,
totalSalary
:
result
.
totalSalary
,
});
}
},
);
};
const
handleOk
=
()
=>
{
const
handleOk
=
()
=>
{
if
(
mallOrderItem
)
{
if
(
mallOrderItem
)
{
Promise
.
all
([
orderInfoForm
.
validateFields
(),
contractForm
.
validateFields
()])
Promise
.
all
([
orderInfoForm
.
validateFields
(),
contractForm
.
validateFields
()])
...
@@ -139,7 +156,7 @@ const SureOrder: FC<ModalProps & selfProps> = ({ open, onOk, onCancel, mallOrder
...
@@ -139,7 +156,7 @@ const SureOrder: FC<ModalProps & selfProps> = ({ open, onOk, onCancel, mallOrder
useEffect
(()
=>
{
useEffect
(()
=>
{
if
(
mallOrderItem
)
{
if
(
mallOrderItem
)
{
orderInfoForm
.
setFieldValue
(
'orderTotalAmount'
,
mallOrderItem
.
orderTotalAmount
);
getWalletAmount
(
);
}
}
},
[
mallOrderItem
]);
},
[
mallOrderItem
]);
return
(
return
(
...
@@ -218,10 +235,10 @@ const SureOrder: FC<ModalProps & selfProps> = ({ open, onOk, onCancel, mallOrder
...
@@ -218,10 +235,10 @@ const SureOrder: FC<ModalProps & selfProps> = ({ open, onOk, onCancel, mallOrder
>
>
<
Input
placeholder=
'请输入实付总额'
suffix=
'元'
maxLength=
{
30
}
/>
<
Input
placeholder=
'请输入实付总额'
suffix=
'元'
maxLength=
{
30
}
/>
</
Form
.
Item
>
</
Form
.
Item
>
<
Form
.
Item
label=
'云享金'
>
<
Form
.
Item
label=
'云享金'
name=
'cashAmt'
>
<
Input
placeholder=
'请输入抵扣云享金'
suffix=
'元'
/>
<
Input
placeholder=
'请输入抵扣云享金'
suffix=
'元'
/>
</
Form
.
Item
>
</
Form
.
Item
>
<
Form
.
Item
label=
'佣金'
>
<
Form
.
Item
label=
'佣金'
name=
'totalSalary'
>
<
Input
placeholder=
'请输入抵扣佣金'
suffix=
'元'
/>
<
Input
placeholder=
'请输入抵扣佣金'
suffix=
'元'
/>
</
Form
.
Item
>
</
Form
.
Item
>
<
Form
.
Item
<
Form
.
Item
...
...
src/pages/orderManage/productOrder/orderList/index.scss
浏览文件 @
39f55e58
.order-table-item
{
.product-order
{
.item-td
{
.mall-sku-item
{
position
:
absolute
;
display
:
flex
;
top
:
0
;
align-items
:
center
;
left
:
0
;
margin-bottom
:
10px
;
height
:
40px
;
.sku-img
{
width
:
100%
;
width
:
48px
;
background
:
rgba
(
22
,
119
,
255
,
0
.1
);
height
:
48px
;
line-height
:
40px
;
}
}
.sku-info
{
margin-left
:
10px
;
.item-tr
{
line-height
:
16px
;
min-height
:
50px
;
text-align
:
left
;
width
:
100%
;
.info-name
{
margin-top
:
50px
;
color
:
#1677ff
.mall-sku-item
{
display
:
flex
;
align-items
:
center
;
margin-bottom
:
10px
;
.sku-img
{
width
:
48px
;
height
:
48px
;
}
}
.sku-info
{
.info-spec
{
margin-left
:
10px
;
margin-top
:
10px
;
line-height
:
16px
;
span
:not
(
:last-child
)
{
text-align
:
left
;
&
:after
{
.info-name
{
content
:
';'
;
color
:
#1677ff
}
.info-spec
{
margin-top
:
10px
;
span
:not
(
:last-child
)
{
&
:after
{
content
:
';'
;
}
}
}
}
}
}
}
...
...
src/pages/orderManage/productOrder/orderList/index.tsx
浏览文件 @
39f55e58
...
@@ -3,17 +3,18 @@ import SearchBox from '~/components/search-box';
...
@@ -3,17 +3,18 @@ import SearchBox from '~/components/search-box';
import
{
Button
,
Table
,
Image
,
Tooltip
}
from
'antd'
;
import
{
Button
,
Table
,
Image
,
Tooltip
}
from
'antd'
;
import
{
ColumnsType
}
from
'antd/es/table'
;
import
{
ColumnsType
}
from
'antd/es/table'
;
import
{
useNavigate
}
from
'react-router-dom'
;
import
{
useNavigate
}
from
'react-router-dom'
;
import
qs
from
'query-string
'
;
import
{
CommentOutlined
}
from
'@ant-design/icons
'
;
import
{
OrderManageAPI
}
from
'~/api'
;
import
{
OrderManageAPI
}
from
'~/api'
;
import
{
mallOrderListType
}
from
'~/api/interface/orderManageType'
;
import
{
mallOrderListType
}
from
'~/api/interface/orderManageType'
;
import
{
InterListType
,
InterReqType
}
from
'~/api/interface'
;
import
{
InterListType
,
InterReqType
}
from
'~/api/interface'
;
import
SureOrder
from
'./components/sureOrder'
;
import
SureOrder
from
'./components/sureOrder'
;
import
ApprovalOrder
from
'./components/approvalOrder'
;
import
ApprovalOrder
from
'./components/approvalOrder'
;
import
ShipmentsOrder
from
'./components/shipmentsOrder'
;
import
ShipmentsOrder
from
'./components/shipmentsOrder'
;
import
'./index.scss'
;
import
{
filterObjAttr
}
from
'~/utils'
;
import
RemarkModal
from
'~/pages/orderManage/productOrder/orderList/components/remarkModal'
;
import
RemarkModal
from
'~/pages/orderManage/productOrder/orderList/components/remarkModal'
;
import
{
CommentOutlined
}
from
'@ant-design/icons'
;
import
TableItem
from
'~/components/order/selfTableItem'
;
import
{
filterObjAttr
}
from
'~/utils'
;
import
'./index.scss'
;
import
qs
from
'query-string'
;
// 表格数据类型
// 表格数据类型
type
TableType
=
InterListType
<
mallOrderListType
>
;
type
TableType
=
InterListType
<
mallOrderListType
>
;
...
@@ -40,11 +41,6 @@ function ProductOrderView() {
...
@@ -40,11 +41,6 @@ function ProductOrderView() {
},
},
},
},
{
{
btnStr
:
'凭证审批'
,
status
:
420
,
btnClick
:
()
=>
{},
},
{
btnStr
:
'发货'
,
btnStr
:
'发货'
,
status
:
500
,
status
:
500
,
btnClick
:
(
record
:
TableType
[
0
])
=>
{
btnClick
:
(
record
:
TableType
[
0
])
=>
{
...
@@ -76,20 +72,6 @@ function ProductOrderView() {
...
@@ -76,20 +72,6 @@ function ProductOrderView() {
const
[
shipmentsOrderShow
,
setShipmentsOrderShow
]
=
useState
<
boolean
>
(
false
);
//发货
const
[
shipmentsOrderShow
,
setShipmentsOrderShow
]
=
useState
<
boolean
>
(
false
);
//发货
const
[
remarkModalShow
,
setRemarkModalShow
]
=
useState
<
boolean
>
(
false
);
const
[
remarkModalShow
,
setRemarkModalShow
]
=
useState
<
boolean
>
(
false
);
// 封装表格行样式
const
TableItem
:
React
.
FC
<
{
td
?:
React
.
ReactNode
;
tr
?:
React
.
ReactNode
;
// eslint-disable-next-line react/prop-types
}
>
=
({
td
,
tr
})
=>
{
return
(
<
div
className=
'order-table-item'
>
<
div
className=
'item-td'
>
{
td
}
</
div
>
<
div
className=
'item-tr'
>
{
tr
}
</
div
>
</
div
>
);
};
// 加载列表
// 加载列表
const
getTableList
=
(
value
=
{})
=>
{
const
getTableList
=
(
value
=
{})
=>
{
setLoading
(
true
);
setLoading
(
true
);
...
@@ -124,11 +106,16 @@ function ProductOrderView() {
...
@@ -124,11 +106,16 @@ function ProductOrderView() {
// 表单提交
// 表单提交
const
onFinish
=
(
data
:
ReqType
)
=>
{
const
onFinish
=
(
data
:
ReqType
)
=>
{
pagination
.
current
=
1
;
pagination
.
current
=
1
;
query
=
filterObjAttr
(
data
,
[
'rangeTime'
]);
query
=
{
...
filterObjAttr
(
data
,
[
'rangeTime'
]),
statusCode
:
tranStatusList
[
statusCodeButtonIndex
].
value
,
};
getTableList
();
getTableList
();
};
};
// 订单状态筛选
// 订单状态筛选
const
statusChangeEvent
=
(
i
:
number
)
=>
{
const
statusChangeEvent
=
(
i
:
number
)
=>
{
pagination
.
current
=
1
;
pagination
.
pageSize
=
10
;
setStatusCodeButtonIndex
(
i
);
setStatusCodeButtonIndex
(
i
);
query
=
{
...
query
,
statusCode
:
tranStatusList
[
i
].
value
};
query
=
{
...
query
,
statusCode
:
tranStatusList
[
i
].
value
};
getTableList
();
getTableList
();
...
@@ -152,12 +139,17 @@ function ProductOrderView() {
...
@@ -152,12 +139,17 @@ function ProductOrderView() {
setSureOrderShow
(
false
);
setSureOrderShow
(
false
);
};
};
const
sureOrderOk
=
()
=>
{
const
sureOrderOk
=
()
=>
{
getTableList
(
query
);
setSureOrderShow
(
false
);
setSureOrderShow
(
false
);
getTableList
(
query
);
};
};
// 凭证审批
// 凭证审批
const
showApprovalModalClick
=
(
record
:
TableType
[
0
])
=>
{
getMallOrderDetail
(
record
.
id
);
setApprovalOrderShow
(
true
);
};
const
approvalOrderOk
=
()
=>
{
const
approvalOrderOk
=
()
=>
{
setApprovalOrderShow
(
false
);
setApprovalOrderShow
(
false
);
getTableList
(
query
);
};
};
const
approvalOrderCancel
=
()
=>
{
const
approvalOrderCancel
=
()
=>
{
setApprovalOrderShow
(
false
);
setApprovalOrderShow
(
false
);
...
@@ -187,6 +179,10 @@ function ProductOrderView() {
...
@@ -187,6 +179,10 @@ function ProductOrderView() {
const
getCurrentOperateBtn
=
(
status
:
number
)
=>
{
const
getCurrentOperateBtn
=
(
status
:
number
)
=>
{
return
operateBtnList
.
find
((
v
)
=>
v
.
status
===
status
);
return
operateBtnList
.
find
((
v
)
=>
v
.
status
===
status
);
};
};
// 判断是否还要审批付款凭证
const
isContinueApprove
=
(
record
:
TableType
[
0
])
=>
{
return
record
.
payDTOList
?.
some
((
v
)
=>
v
.
checkStatus
===
0
);
};
// componentDidMount
// componentDidMount
useEffect
(()
=>
{
useEffect
(()
=>
{
...
@@ -404,7 +400,13 @@ function ProductOrderView() {
...
@@ -404,7 +400,13 @@ function ProductOrderView() {
)
:
(
)
:
(
''
''
)
}
)
}
{
[
420
].
includes
(
record
.
statusCode
)
||
isContinueApprove
(
record
)
?
(
<
Button
type=
'link'
onClick=
{
()
=>
showApprovalModalClick
(
record
)
}
>
凭证审批
</
Button
>
)
:
(
''
)
}
<
Button
type=
{
'link'
}
onClick=
{
()
=>
handleDetail
(
record
)
}
>
<
Button
type=
{
'link'
}
onClick=
{
()
=>
handleDetail
(
record
)
}
>
详情
详情
</
Button
>
</
Button
>
...
@@ -415,7 +417,7 @@ function ProductOrderView() {
...
@@ -415,7 +417,7 @@ function ProductOrderView() {
},
},
];
];
return
(
return
(
<>
<
div
className=
'product-order'
>
<
SearchBox
<
SearchBox
search=
{
[
search=
{
[
{
{
...
@@ -465,7 +467,6 @@ function ProductOrderView() {
...
@@ -465,7 +467,6 @@ function ProductOrderView() {
onChange
:
(
page
:
number
,
pageSize
:
number
)
=>
paginationChange
(
page
,
pageSize
),
onChange
:
(
page
:
number
,
pageSize
:
number
)
=>
paginationChange
(
page
,
pageSize
),
showTotal
:
(
total
,
range
)
=>
`当前 ${range[0]}-${range[1]} 条记录 / 共 ${total} 条数据`
,
showTotal
:
(
total
,
range
)
=>
`当前 ${range[0]}-${range[1]} 条记录 / 共 ${total} 条数据`
,
}
}
}
}
// rowSelection={{ selectedRowKeys, onChange: onSelectChange }}
/>
/>
{
/*确认订单*/
}
{
/*确认订单*/
}
<
SureOrder
<
SureOrder
...
@@ -479,6 +480,7 @@ function ProductOrderView() {
...
@@ -479,6 +480,7 @@ function ProductOrderView() {
open=
{
approvalOrderShow
}
open=
{
approvalOrderShow
}
onCancel=
{
approvalOrderCancel
}
onCancel=
{
approvalOrderCancel
}
onOk=
{
approvalOrderOk
}
onOk=
{
approvalOrderOk
}
mallOrderItem=
{
currentOrderItem
}
/>
/>
{
/*发货*/
}
{
/*发货*/
}
<
ShipmentsOrder
<
ShipmentsOrder
...
@@ -494,7 +496,7 @@ function ProductOrderView() {
...
@@ -494,7 +496,7 @@ function ProductOrderView() {
onCancel=
{
remarkModalCancel
}
onCancel=
{
remarkModalCancel
}
mallOrderItem=
{
currentOrderItem
}
mallOrderItem=
{
currentOrderItem
}
/>
/>
</>
</
div
>
);
);
}
}
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论