Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
J
jinfa-platform
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
黄庭坚
jinfa-platform
Commits
6c107f3a
Commit
6c107f3a
authored
Apr 07, 2022
by
许佳敏
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch '20418order' into 'v2-220418'
20418order See merge request linkseeks-design/pro-platform!136
parents
5ad80809
25d27061
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
28 changed files
with
1386 additions
and
454 deletions
+1386
-454
deliveryNotice.ts
config/routes/orderRoute/deliveryNotice.ts
+16
-0
AddressDrawer.tsx
src/components/AddressDrawer/AddressDrawer.tsx
+5
-3
index.ts
src/components/FormItem/index.ts
+11
-2
LogisticsCompanyMerchantsSelect.tsx
...ogisticsCompanySelect/LogisticsCompanyMerchantsSelect.tsx
+2
-2
LogisticsCompanySelect.tsx
...ponents/LogisticsCompanySelect/LogisticsCompanySelect.tsx
+4
-2
RoleSelect.tsx
src/components/RoleSelect/RoleSelect.tsx
+22
-17
harver-material.tsx
src/pages/order/assets/context/harver-material.tsx
+20
-1
DeliveryNoteService.ts
src/pages/order/assets/handles/DeliveryNoteService.ts
+68
-33
DeliveryNoticeOrder.ts
src/pages/order/assets/handles/DeliveryNoticeOrder.ts
+2
-1
HandleFormSubmit.ts
src/pages/order/assets/handles/HandleFormSubmit.ts
+121
-12
useDetailInfoById.tsx
src/pages/order/assets/hooks/useDetailInfoById.tsx
+0
-17
DeliveryGoodTableSelect.tsx
...nents/DeliveryGoodTableSelect/DeliveryGoodTableSelect.tsx
+87
-85
page-table-column.tsx
src/pages/order/constants/page-table-column.tsx
+3
-14
table-column.ts
src/pages/order/constants/table-column.ts
+2
-2
add.tsx
src/pages/order/deliveryNotice/manageB2B/add.tsx
+278
-0
details.tsx
src/pages/order/deliveryNotice/manageB2B/details.tsx
+90
-23
edit.tsx
src/pages/order/deliveryNotice/manageB2B/edit.tsx
+258
-0
index.tsx
src/pages/order/deliveryNotice/manageB2B/index.tsx
+60
-59
add.tsx
src/pages/order/deliveryNotice/manageSRM/add.tsx
+77
-20
details.tsx
src/pages/order/deliveryNotice/manageSRM/details.tsx
+6
-2
edit.tsx
src/pages/order/deliveryNotice/manageSRM/edit.tsx
+96
-42
index.tsx
src/pages/order/deliveryNotice/manageSRM/index.tsx
+7
-3
details.tsx
...pages/order/deliveryNotice/receivingNoteQuery/details.tsx
+87
-23
index.tsx
src/pages/order/deliveryNotice/receivingNoteQuery/index.tsx
+37
-59
add.tsx
src/pages/order/receivingNote/deliveryNoteManage/add.tsx
+0
-0
index.tsx
src/pages/order/receivingNote/deliveryNoteManage/index.tsx
+6
-3
index.tsx
src/pages/order/receivingNote/deliveryNoteQuery/index.tsx
+12
-21
status.ts
src/pages/order/utils/status.ts
+9
-8
No files found.
config/routes/orderRoute/deliveryNotice.ts
View file @
6c107f3a
...
...
@@ -53,6 +53,22 @@ const DeliveryNotice = [
hideInMenu
:
true
,
noMargin
:
true
},
{
/** 送货单新增SRM*/
path
:
'/memberCenter/order/deliveryNotice/manageB2B/add'
,
name
:
'送货单新增(B2B)'
,
component
:
'@/pages/order/deliveryNotice/manageB2B/add'
,
hideInMenu
:
true
,
noMargin
:
true
},
{
/** 送货单编辑SRM*/
path
:
'/memberCenter/order/deliveryNotice/manageB2B/edit'
,
name
:
'送货单编辑(SRM)'
,
component
:
'@/pages/order/deliveryNotice/manageB2B/edit'
,
hideInMenu
:
true
,
noMargin
:
true
},
{
...
...
src/components/AddressDrawer/AddressDrawer.tsx
View file @
6c107f3a
...
...
@@ -24,11 +24,13 @@ interface AddressDrawerProps {
sumbitRequest
?:
SumbitRequest
addressListRequest
?:
(
values
?:
any
)
=>
Promise
<
any
>
value
?:
any
disabled
?:
boolean
}
function
AddressDrawer
(
props
:
AddressDrawerProps
)
{
const
{
onChange
,
formInstance
,
renderForm
,
sumbitRequest
,
addressListRequest
,
value
:
addr
}
=
props
;
const
{
onChange
,
formInstance
,
renderForm
,
sumbitRequest
,
addressListRequest
,
value
:
addr
,
disabled
=
false
}
=
props
;
const
[
visible
,
setVisible
]
=
useState
<
boolean
>
(
false
);
const
[
showForm
,
setShowForm
]
=
useState
<
boolean
>
(
false
);
...
...
@@ -88,11 +90,11 @@ function AddressDrawer(props: AddressDrawerProps) {
<
AddressRaioContextProvider
value=
{
addrList
}
>
<
Row
gutter=
{
10
}
>
<
Col
span=
{
20
}
>
<
Input
.
TextArea
value=
{
`${value?.fullAddress} ${value?.shipperName ? value?.shipperName : value?.receiverName} ${value?.phone}`
}
/>
<
Input
.
TextArea
disabled=
{
disabled
}
value=
{
`${value?.fullAddress} ${value?.shipperName ? value?.shipperName : value?.receiverName} ${value?.phone}`
}
/>
</
Col
>
<
Col
span=
{
4
}
>
<
Button
className=
'w-full'
onClick=
{
()
=>
setVisible
(
true
)
}
>
管理
</
Button
>
<
Button
disabled=
{
disabled
}
className=
'w-full'
onClick=
{
()
=>
setVisible
(
true
)
}
>
管理
</
Button
>
</
Col
>
</
Row
>
...
...
src/components/FormItem/index.ts
View file @
6c107f3a
export
{
default
as
FormItem
}
from
'./FormItem'
\ No newline at end of file
export
{
default
as
FormItem
}
from
'./FormItem'
export
const
required
=
(
msg
:
string
=
""
)
=>
{
return
(
{
required
:
true
,
message
:
msg
}
)
}
\ No newline at end of file
src/components/LogisticsCompanySelect/LogisticsCompanyMerchantsSelect.tsx
View file @
6c107f3a
import
LogisticsCompanySelect
,
{
CooperateType
}
from
"./LogisticsCompanySelect"
function
LogisticsCompanyMerchantsSelect
(
props
)
{
const
{
onChange
}
=
props
;
const
{
onChange
,
value
,
disabled
=
false
}
=
props
;
return
(
<
LogisticsCompanySelect
onChange=
{
onChange
}
cooperateType=
{
CooperateType
.
Merchants
}
/>
<
LogisticsCompanySelect
disabled=
{
disabled
}
value=
{
value
}
onChange=
{
onChange
}
cooperateType=
{
CooperateType
.
Merchants
}
/>
)
}
...
...
src/components/LogisticsCompanySelect/LogisticsCompanySelect.tsx
View file @
6c107f3a
...
...
@@ -10,11 +10,13 @@ export enum CooperateType {
interface
LogisticsCompanySelectProps
{
onChange
?:
(
value
)
=>
void
cooperateType
:
CooperateType
.
Platform
|
CooperateType
.
Merchants
value
?:
any
disabled
?:
boolean
}
function
LogisticsCompanySelect
(
props
:
LogisticsCompanySelectProps
)
{
const
{
onChange
,
cooperateType
}
=
props
;
const
{
onChange
,
cooperateType
,
value
,
disabled
=
false
}
=
props
;
const
[
options
,
setOptions
]
=
useState
([]);
useEffect
(()
=>
{
...
...
@@ -38,7 +40,7 @@ function LogisticsCompanySelect(props: LogisticsCompanySelectProps) {
}
return
(
<
Select
options=
{
options
}
onChange=
{
(
v
)
=>
{
<
Select
disabled=
{
disabled
}
value=
{
value
}
options=
{
options
}
onChange=
{
(
v
)
=>
{
const
option
=
options
.
find
(
o
=>
{
return
o
.
value
==
v
})
...
...
src/components/RoleSelect/RoleSelect.tsx
View file @
6c107f3a
import
{
Button
,
Col
,
Drawer
,
Form
,
Input
,
Radio
,
Row
,
Table
}
from
"antd"
;
import
{
useCallback
,
useEffect
,
useState
}
from
"react"
;
import
{
TableMemberColumn
}
from
"./columns"
;
import
{
import
{
///member/manage/lower/consumer/member/page
getMemberManageLowerProviderMerchantPage
,
getMemberManageUpperProviderMerchantPage
,
getMemberManageLowerConsumerMemberPage
getMemberManageLowerConsumerMemberPage
,
getMemberManageUpperConsumerMerchantPage
}
from
'@/services/MemberV2Api'
;
interface
RoleSelectProps
{
request
?:
(
payload
:
any
)
=>
Promise
<
any
>
params
?:
object
onChange
?:
(
e
)
=>
void
value
?:
any
formatFeils
?:
(
e
)
=>
any
disabled
?:
boolean
}
/**
...
...
@@ -21,13 +25,11 @@ interface RoleSelectProps {
*/
function
RoleSelect
(
props
:
RoleSelectProps
)
{
const
{
request
,
params
,
onChange
}
=
props
const
{
request
,
params
,
onChange
,
value
,
formatFeils
=
(
e
)
=>
e
,
disabled
=
false
}
=
props
const
[
visible
,
setVisible
]
=
useState
(
false
);
const
[
form
]
=
Form
.
useForm
()
const
[
dataSource
,
setDataSource
]
=
useState
([])
const
[
intV
,
setIntV
]
=
useState
<
any
>
();
const
showDrawer
=
useCallback
(()
=>
{
setVisible
(
true
)
},
[
visible
])
...
...
@@ -38,24 +40,26 @@ function RoleSelect(props: RoleSelectProps) {
useEffect
(()
=>
{
fetchData
()
},
[])
const
fetchData
=
()
=>
{
request
({
...
params
,
...
form
.
getFieldsValue
()
...
form
.
getFieldsValue
()
,
}).
then
(
res
=>
{
setDataSource
(
res
.
data
.
data
)
})
},
[])
}
return
(
<>
<
Row
gutter=
{
4
}
>
<
Col
span=
{
18
}
>
<
Input
value=
{
intV
?.
name
}
disabled
/>
<
Input
value=
{
value
?.
name
}
disabled=
{
disabled
}
/>
</
Col
>
<
Col
span=
{
6
}
>
<
Button
onClick=
{
showDrawer
}
>
选择采购会员
</
Button
>
<
Button
disabled=
{
disabled
}
onClick=
{
showDrawer
}
>
选择采购会员
</
Button
>
</
Col
>
</
Row
>
...
...
@@ -72,15 +76,15 @@ function RoleSelect(props: RoleSelectProps) {
</
Button
.
Group
>
}
>
<
Form
>
<
Form
form=
{
form
}
>
<
Form
.
Item
name=
"name"
>
<
Input
.
Search
/>
<
Input
.
Search
onSearch=
{
()
=>
{
fetchData
()
}
}
/>
</
Form
.
Item
>
</
Form
>
<
Radio
.
Group
className=
"block w-full"
onChange=
{
(
e
)
=>
{
const
value
=
e
.
target
.
value
setIntV
(
value
)
onChange
(
value
)
let
target
=
props
.
formatFeils
(
value
)
onChange
(
target
)
}
}
>
<
Table
className=
"w-full"
...
...
@@ -95,8 +99,8 @@ function RoleSelect(props: RoleSelectProps) {
);
}
RoleSelect
.
defaultProps
=
{
request
:
getMemberManage
LowerConsumerMember
Page
,
request
:
getMemberManage
UpperConsumerMerchant
Page
,
params
:
{},
onChange
:
(
e
)
=>
{}
onChange
:
(
e
)
=>
{
}
}
export
default
RoleSelect
;
\ No newline at end of file
src/pages/order/assets/context/harver-material.tsx
View file @
6c107f3a
import
{
Input
}
from
'antd'
;
import
{
Button
,
Input
}
from
'antd'
;
import
React
,
{
useCallback
,
useContext
,
useState
}
from
'react'
;
import
{
HarvestMaterialMock
}
from
'../mock/HarvestMaterialMock'
;
...
...
@@ -37,4 +37,22 @@ export function HarvestMaterialInput(props: {
}
return
<
Input
{
...
props
}
value=
{
inputVal
}
onChange=
{
handleChange
}
/>
}
export
function
HarvestMaterialDelete
(
props
:
{
index
:
number
})
{
const
context
=
useContext
(
HarvestMaterialContext
);
const
{
index
}
=
props
;
const
handleClick
=
(
e
)
=>
{
const
{
dataSource
}
=
context
;
const
r
=
dataSource
.
splice
(
index
,
0
)
context
.
dataSource
=
r
;
}
return
(
<
Button
onClick=
{
handleClick
}
type=
"link"
>
删除
</
Button
>
)
}
\ No newline at end of file
src/pages/order/assets/handles/DeliveryNoteService.ts
View file @
6c107f3a
import
{
getOrderDeliveryOrderDetail
,
getOrderDeliveryOrderDetailProductPage
,
getOrderDeliveryOrderSrmPage
}
from
'@/services/OrderNewV2Api'
;
import
{
getOrderDeliveryOrderDetail
,
getOrderDeliveryOrderDetailProductPage
,
getOrderDeliveryOrderSrmPage
,
getOrderDeliveryOrderB2bPage
,
getOrderDeliveryOrderReceivePage
}
from
'@/services/OrderNewV2Api'
;
/**
* 送货单服务基类
*/
class
NoteService
{
class
NoteS
rmS
ervice
{
#
deliveryType
=
new
Map
([[
1
,
'物流'
],
[
2
,
'自提'
],
[
3
,
'无需配送'
]])
#
deliveryType
=
new
Map
([[
1
,
'物流'
],
[
2
,
'自提'
],
[
3
,
'无需配送'
]])
getQuery
(
params
:
any
)
{
return
getOrderDeliveryOrderSrmPage
(
params
).
then
(
res
=>
{
return
res
.
data
})
}
getQuery
(
params
:
any
)
{
return
getOrderDeliveryOrderSrmPage
(
params
).
then
(
res
=>
{
return
res
.
data
})
}
getDetailInfoById
(
id
:
string
)
{
return
getOrderDeliveryOrderDetail
({
id
}).
then
(
res
=>
{
return
res
.
data
})
}
getDetailInfoById
(
id
:
string
)
{
return
getOrderDeliveryOrderDetail
({
id
}).
then
(
res
=>
{
return
res
.
data
})
}
getDetailInfoProductById
(
id
:
string
,
current
:
string
=
"1"
,
pageSize
:
string
=
"10"
)
{
return
getOrderDeliveryOrderDetailProductPage
({
id
,
current
,
pageSize
}).
then
(
res
=>
res
.
data
)
}
getDetailInfoProductById
(
id
:
string
,
current
:
string
=
"1"
,
pageSize
:
string
=
"10"
)
{
return
getOrderDeliveryOrderDetailProductPage
({
id
,
current
,
pageSize
}).
then
(
res
=>
res
.
data
)
}
getDeliveryType
(
type
?:
number
)
{
/**
* 默认是物流
*/
if
(
!
this
.
#
deliveryType
.
has
(
type
))
{
return
this
.
#
deliveryType
.
get
(
1
);
}
return
this
.
#
deliveryType
.
get
(
type
)
getDeliveryType
(
type
?:
number
)
{
/**
* 默认是物流
*/
if
(
!
this
.
#
deliveryType
.
has
(
type
))
{
return
this
.
#
deliveryType
.
get
(
1
);
}
return
this
.
#
deliveryType
.
get
(
type
)
}
}
class
NoteB2bService
extends
NoteSrmService
{
getQuery
(
params
:
any
)
{
return
getOrderDeliveryOrderB2bPage
(
params
).
then
(
res
=>
{
return
res
.
data
})
}
}
}
/**
* 送货单 收货单详情 服务
*/
class
NoteReceiveService
extends
NoteSrmService
{
getQuery
(
params
:
any
)
{
return
getOrderDeliveryOrderReceivePage
(
params
).
then
(
res
=>
{
return
res
.
data
})
}
}
export
default
class
NoteFactoryService
{
static
getInstance
()
{
return
new
NoteService
()
static
getInstance
(
noteType
:
"srm"
|
"b2b"
|
"receive"
=
"srm"
)
{
if
(
noteType
===
'srm'
)
{
return
new
NoteSrmService
()
}
if
(
noteType
===
'b2b'
)
{
return
new
NoteB2bService
()
}
if
(
noteType
===
'receive'
)
{
return
new
NoteReceiveService
()
}
}
}
src/pages/order/assets/handles/DeliveryNoticeOrder.ts
View file @
6c107f3a
...
...
@@ -13,11 +13,12 @@ class DeliveryNoticeOrder {
getOrderDeliveryPlanOrderProductPage
(
form
:
FormInstance
)
{
let
fields
=
form
.
getFieldsValue
();
console
.
log
(
fields
)
let
payload
:
any
=
{
memberId
:
fields
.
member
?.
buyerMemberId
,
roleId
:
fields
.
member
?.
buyerRoleId
,
roleType
:
fields
.
member
?.
roleType
,
orderType
:
1
,
orderType
:
2
,
current
:
1
,
pageSize
:
100
,
// startDate: '2022-03-22',
...
...
src/pages/order/assets/handles/HandleFormSubmit.ts
View file @
6c107f3a
import
{
HandelFormFieldsKeyValue
}
from
"@/utils/form"
;
import
{
FormInstance
,
message
}
from
"antd"
import
{
postOrderDeliveryOrderSrmCreate
}
from
'@/services/OrderNewV2Api'
;
import
{
getOrderDeliveryOrderDetail
,
getOrderDeliveryOrderDetailProductPage
,
postOrderDeliveryOrderSrmCreate
,
postOrderDeliveryOrderUpdate
,
postOrderDeliveryOrderB2bCreate
,
postOrderReceiveOrderCreate
}
from
'@/services/OrderNewV2Api'
;
import
moment
from
"moment"
;
export
class
HandleFormSubmit
{
#
form
:
FormInstance
...
...
@@ -48,6 +56,58 @@ export class HandleFormSubmit {
})
}
getDetailById
(
id
:
string
)
{
///order/delivery/order/detail
return
getOrderDeliveryOrderDetail
({
id
}).
then
(
res
=>
{
const
data
=
res
.
data
console
.
log
(
data
.
deliverVO
)
let
formField
=
{
digest
:
data
.
digest
,
remark
:
data
.
remark
,
member
:
{
buyerMemberId
:
data
.
buyerMemberId
,
buyerMemberName
:
data
.
buyerMemberName
,
buyerRoleId
:
data
.
buyerRoleId
,
roleType
:
2
,
name
:
data
.
buyerMemberName
},
deliveryTime
:
moment
(
data
.
deliveryTime
),
deliveryRangeTime
:
[
moment
(
"1990-10-10 "
+
data
.
deliveryStartTime
),
moment
(
"1990-10-10 "
+
data
.
deliveryEndTime
),
],
deliveryVO
:
{
...
data
.
deliverVO
,
shipperName
:
data
.
deliverVO
.
consignee
,
fullAddress
:
data
.
deliverVO
.
provinceName
+
data
.
deliverVO
.
cityName
+
data
.
deliverVO
.
districtName
+
data
.
deliverVO
.
streetName
??
''
},
receiveVO
:
{
...
data
.
receiverBO
,
receiverName
:
data
.
receiverBO
.
consignee
,
fullAddress
:
data
.
receiverBO
.
provinceName
+
data
.
receiverBO
.
cityName
+
data
.
receiverBO
.
districtName
+
data
.
receiverBO
.
streetName
??
''
},
deliveryType
:
data
.
deliveryType
,
"executorVO.phone"
:
data
.
executorVO
.
phone
,
sendTime
:
moment
(
data
.
sendTime
),
"executorVO.carNumbers"
:
data
.
executorVO
.
carNumbers
,
logisticsNo
:
data
.
logisticsNo
,
logisticsCompanyInt
:
{
label
:
data
.
logisticsCompany
,
value
:
data
.
logisticsCompanyId
},
outerHistoryList
:
data
.
outerHistoryList
,
deliveryNo
:
data
.
deliveryNo
}
return
formField
})
}
getOrderDeliveryOrderDetailProductPage
(
payload
?:
any
)
{
return
getOrderDeliveryOrderDetailProductPage
(
payload
).
then
(
res
=>
{
return
res
.
data
;
})
}
submit
()
{
if
(
this
.
handleBeforeFields
())
return
Promise
.
reject
(
"error"
);
return
this
.
validateFormFields
()
...
...
@@ -89,7 +149,14 @@ export class ReceivingNoteAddService extends HandleFormSubmit {
export
class
DeliveryNoteAddService
extends
HandleFormSubmit
{
handleBeforeFields
():
boolean
{
let
b
=
this
.
getTableData
().
some
((
v
)
=>
Number
(
v
.
deliveryCount
)
<
Number
(
v
.
purchaseCount
))
let
b
=
this
.
getTableData
().
map
(
v
=>
{
return
{
...
v
,
deliveryCount
:
v
.
deliveryCount
?
v
.
deliveryCount
:
v
.
purchaseCount
}
}).
some
((
v
)
=>
{
return
Number
(
v
.
deliveryCount
)
<
Number
(
v
.
purchaseCount
)
})
if
(
b
)
{
message
.
error
(
'收货数量不能少于送货数量'
)
}
...
...
@@ -113,22 +180,63 @@ export class DeliveryNoteAddService extends HandleFormSubmit {
values
.
receiveVO
.
consignee
=
values
.
receiveVO
.
shipperName
values
.
deliveryVO
.
consignee
=
values
.
deliveryVO
.
receiverName
values
.
logisticsCompanyId
=
values
.
logisticsCompanyInt
.
value
values
.
logisticsCompany
=
values
.
logisticsCompanyInt
.
label
values
.
logisticsCompanyId
=
values
?.
logisticsCompanyInt
?.
value
??
''
values
.
logisticsCompany
=
values
?.
logisticsCompanyInt
?.
label
??
''
values
.
sendTime
=
moment
(
values
.
sendTime
).
format
(
'YYYY-MM-DD HH:mm:ss'
)
console
.
log
(
values
)
var
params
=
this
.
handleBeforeRequestParamas
(
values
,
{
products
:
this
.
getTableData
().
map
(
v
=>
{
return
{
...
v
,
createTime
:
moment
(
v
.
createTime
).
format
(
'YYYY-MM-DD HH:mm:ss'
)
}
})
});
var
params
=
this
.
handleBeforeRequestParamas
(
values
,
{
products
:
this
.
getTableData
().
map
(
v
=>
{
return
{
...
v
,
deliveryCount
:
v
.
deliveryCount
?
v
.
deliveryCount
:
v
.
purchaseCount
,
createTime
:
moment
(
v
.
createTime
).
format
(
'YYYY-MM-DD HH:mm:ss'
)
}
})
});
console
.
log
(
params
);
return
this
.
getSubmitRequest
()(
params
)
})
}
}
export
class
DeliveryNoteUploadService
extends
DeliveryNoteAddService
{
handleBeforeFields
():
boolean
{
return
false
;
}
getSubmitRequest
():
any
{
return
postOrderDeliveryOrderUpdate
}
}
//新增送货单B2B
export
class
ReceivingNoteB2BAddService
extends
DeliveryNoteAddService
{
getSubmitRequest
()
{
return
postOrderDeliveryOrderB2bCreate
;
}
}
export
class
DeliveryNoteB2bUploadService
extends
DeliveryNoteUploadService
{
}
export
class
ReceiveOrderCreate
extends
DeliveryNoteAddService
{
handleBeforeRequestParamas
(...
arg
)
{
return
{
...
arg
[
0
],
receiveTime
:
arg
[
0
].
deliveryTime
+
" "
+
arg
[
0
].
deliveryEndTime
,
products
:
arg
[
1
].
products
.
map
(
v
=>
{
return
{
deliveryOrderProductId
:
v
.
id
,
receiveCount
:
v
.
deliveryCount
}
})
}
}
getSubmitRequest
():
(
vals
:
any
)
=>
Promise
<
any
>
{
return
postOrderReceiveOrderCreate
}
}
\ No newline at end of file
src/pages/order/assets/hooks/useDetailInfoById.tsx
deleted
100644 → 0
View file @
5ad80809
import
React
,
{
useState
,
useEffect
}
from
'react'
;
import
NoteFactoryService
from
'../handles/DeliveryNoteService'
;
export
function
useDetailInfoById
(
id
)
{
const
[
info
,
setInfo
]
=
useState
<
any
>
();
const
service
=
NoteFactoryService
.
getInstance
();
useEffect
(()
=>
{
service
.
getDetailInfoById
(
id
).
then
(
res
=>
{
setInfo
(
res
as
any
)
})
},
[])
return
[
info
];
}
src/pages/order/components/DeliveryGoodTableSelect/DeliveryGoodTableSelect.tsx
View file @
6c107f3a
...
...
@@ -8,8 +8,8 @@ import ExpandedRowTableRender from "./ExpandedRowTableRender";
const
selectedRowKeys
=
new
Map
()
interface
DeliveryGoodTableModalProps
{
form
:
FormInstance
onChange
:
(
value
)
=>
void
form
:
FormInstance
onChange
:
(
value
)
=>
void
}
/**
...
...
@@ -19,100 +19,101 @@ interface DeliveryGoodTableModalProps {
*/
function
DeliveryGoodTableModal
(
props
:
DeliveryGoodTableModalProps
)
{
const
{
onChange
,
form
}
=
props
;
const
{
onChange
,
form
}
=
props
;
const
[
visible
,
setVisible
]
=
useState
(
false
)
const
service
=
DeliveryNoticeOrderFactory
.
getInstance
()
const
[
tableData
,
setTableData
]
=
useState
([])
const
[
visible
,
setVisible
]
=
useState
(
false
)
const
service
=
DeliveryNoticeOrderFactory
.
getInstance
()
const
[
tableData
,
setTableData
]
=
useState
([])
const
handleVisible
=
useCallback
(()
=>
{
setVisible
(
true
)
},
[
visible
])
const
handleVisible
=
useCallback
(()
=>
{
setVisible
(
true
)
},
[
visible
])
const
handleSubmit
=
useCallback
(()
=>
{
let
result
=
[]
for
(
const
v
of
selectedRowKeys
)
{
result
.
push
(...
v
[
1
])
}
setVisible
(
false
)
onChange
(
result
)
},
[
visible
])
useEffect
(()
=>
{
service
.
getOrderDeliveryPlanOrderProductPage
(
form
).
then
(
res
=>
{
if
(
isNull
(
res
))
return
;
const
data
=
res
.
data
let
result
=
data
.
map
(
v
=>
{
return
{
...
v
,
id
:
guid
()
}
})
setTableData
(
result
)
})
},
[
visible
])
const
handleSubmit
=
useCallback
(()
=>
{
let
result
=
[]
for
(
const
v
of
selectedRowKeys
)
{
result
.
push
(...
v
[
1
])
}
setVisible
(
false
)
onChange
(
result
)
},
[
visible
])
const
expandedRowRender
=
(
record
,
index
)
=>
{
let
data
=
record
;
useEffect
(()
=>
{
service
.
getOrderDeliveryPlanOrderProductPage
(
form
).
then
(
res
=>
{
if
(
isNull
(
res
))
return
;
const
data
=
res
.
data
let
result
=
data
.
map
(
v
=>
{
return
{
...
v
,
id
:
guid
()
}
})
setTableData
(
result
)
selectedRowKeys
.
clear
()
})
},
[
visible
])
let
combination
=
(
record
.
orders
as
any
[]).
map
(
v
=>
{
let
result
=
{
...
record
,
...
v
,
}
delete
result
[
'orders'
]
return
result
})
const
expandedRowRender
=
(
record
,
index
)
=>
{
let
data
=
record
;
return
(
<
ExpandedRowTableRender
row=
{
data
.
id
}
dataSource=
{
combination
}
onChange=
{
(
keys
,
index
)
=>
{
selectedRowKeys
.
set
(
index
,
keys
);
}
}
/>
);
}
let
combination
=
(
record
.
orders
as
any
[]).
map
(
v
=>
{
let
result
=
{
...
record
,
...
v
,
}
delete
result
[
'orders'
]
return
result
})
return
(
<>
<
div
className=
'mt-16'
>
<
Button
onClick=
{
handleVisible
}
>
选择物流
</
Button
>
</
div
>
<
ExpandedRowTableRender
row=
{
data
.
id
}
dataSource=
{
combination
}
onChange=
{
(
keys
,
index
)
=>
{
selectedRowKeys
.
set
(
index
,
keys
);
}
}
/>
);
}
<
Drawer
title=
"选择送货物料"
visible=
{
visible
}
width=
"90vw"
onClose=
{
()
=>
{
setVisible
(
false
)
}
}
footer=
{
<
Button
.
Group
>
<
Button
type=
"primary"
onClick=
{
handleSubmit
}
>
确认
</
Button
>
</
Button
.
Group
>
}
>
return
(
<>
<
div
className=
'mt-16'
>
<
Button
onClick=
{
handleVisible
}
>
选择物流
</
Button
>
</
div
>
{
tableData
.
map
(
t
=>
{
return
(
<
Table
className=
"mt-16"
columns=
{
PlannedDeliveryMaterialTableColumn
}
rowKey=
{
row
=>
row
.
orderProductId
}
dataSource=
{
[
t
]
}
expandedRowRender=
{
expandedRowRender
}
defaultExpandAllRows=
{
true
}
expandIcon=
{
()
=>
""
}
pagination=
{
false
}
/>
)
})
}
<
Drawer
title=
"选择送货物料"
visible=
{
visible
}
width=
"90vw"
onClose=
{
()
=>
{
setVisible
(
false
)
}
}
footer=
{
<
Button
.
Group
>
<
Button
type=
"primary"
onClick=
{
handleSubmit
}
>
确认
</
Button
>
</
Button
.
Group
>
}
>
</
Drawer
>
</>
);
{
tableData
.
map
(
t
=>
{
return
(
<
Table
className=
"mt-16"
columns=
{
PlannedDeliveryMaterialTableColumn
}
rowKey=
{
row
=>
row
.
orderProductId
}
dataSource=
{
[
t
]
}
expandedRowRender=
{
expandedRowRender
}
defaultExpandAllRows=
{
true
}
expandIcon=
{
()
=>
""
}
pagination=
{
false
}
/>
)
})
}
</
Drawer
>
</>
);
}
export
default
DeliveryGoodTableModal
;
\ No newline at end of file
src/pages/order/constants/page-table-column.tsx
View file @
6c107f3a
...
...
@@ -2,7 +2,8 @@
* 订单模块 Table Column 组装
* @author: 莫雷
*/
import
{
HarvestMaterialInput
}
from
"../assets/context"
;
import
{
Button
}
from
"antd"
;
import
{
HarvestMaterialDelete
,
HarvestMaterialInput
}
from
"../assets/context"
;
import
{
BrandColumn
,
ClassColumn
,
CommodityIdColumn
,
ConsigneeNumColumn
,
DeliveredNumColumn
,
DeliveryNumColumn
,
FlowNoteColumn
,
FlowOnColumn
,
FlowOptionsColumn
,
FlowOptionsTimeColumn
,
FlowRoleColumn
,
FlowStatusColumn
,
MaterialModelColumn
,
MaterialNameColumn
,
MaterialNoColumn
,
OrderCreatedAtColumn
,
OrderNoColumn
,
OrderSummaryColumn
,
OredrNumColumn
,
PlannedDeliveryNumColumn
,
TradeNameColumn
,
TransitNumColumn
,
UntilColumn
}
from
"./table-column"
;
export
const
DeliveryNoteAddFromTableColumn
:
any
=
[
...
...
@@ -45,19 +46,7 @@ export const DeliveryNoticeTableColumn: any = [
UntilColumn
,
OrderNoColumn
,
OrderCreatedAtColumn
,
OredrNumColumn
,
{
...
DeliveryNumColumn
,
render
:
(
t
,
rcode
,
index
)
=>
{
return
(
<
HarvestMaterialInput
value=
{
rcode
[
OredrNumColumn
.
key
]
}
index=
{
index
}
keyUp=
"deliveryCount"
/>
)
}
}
OredrNumColumn
];
// 计划送货物料表格
...
...
src/pages/order/constants/table-column.ts
View file @
6c107f3a
...
...
@@ -6,8 +6,8 @@ import dayjs from "dayjs"
*/
export
const
CommodityIdColumn
:
any
=
{
title
:
'商品ID'
,
dataIndex
:
'
orderProduct
Id'
,
key
:
'
orderProduct
Id'
,
dataIndex
:
'
sku
Id'
,
key
:
'
sku
Id'
,
align
:
'center'
,
}
...
...
src/pages/order/deliveryNotice/manageB2B/add.tsx
0 → 100644
View file @
6c107f3a
/**
* 订单能力 - 送货单 - 送货单管理详情SRM
* @author: Gavin
* @description: 与B2B内容大致相同,文件分开方便后续对接以及日后变动修改二开
*/
import
AnchorPage
,
{
AnchorsItem
}
from
'@/components/AnchorPage'
import
React
,
{
useCallback
,
useEffect
,
useState
,
useContext
}
from
'react'
import
{
BillsInfo
,
BuyerLabel
,
ConsigneeTimeLabel
,
DeliveryAbstractLabel
,
DeliveryDateLabel
,
DeliveryGood
,
DeliveryInfo
,
DeliveryNameLabel
,
DeliveryPhoneLabel
,
DeliverySlefAddrLabel
,
DeliveryTimeLabel
,
DeliveryTypeLabel
,
Distribution
,
LogisticsCarNoLabel
,
LogisticsCompanyLabel
,
LogisticsInfo
,
LogisticsNoLabel
,
NoteLabel
,
ReceivingAddress
}
from
'../../constants'
import
{
BaseInfo
as
ContentBox
}
from
'@/components/BaseInfo'
import
{
Input
,
Table
,
Radio
,
Form
,
Button
}
from
'antd'
;
import
{
DeliveryNoticeTableColumn
}
from
'../../constants/page-table-column'
;
import
{
FormItem
,
required
}
from
'@/components/FormItem'
;
import
{
DatePickerSelect
}
from
'@/components/DatePickerSelect'
import
{
AddressDrawer
}
from
'@/components/AddressDrawer'
;
import
{
getLogisticsSelectListReceiverAddress
,
getLogisticsSelectListShipperAddress
,
postLogisticsReceiverAddressAdd
,
postLogisticsReceiverAddressUpdate
,
postLogisticsShipperAddressAdd
,
postLogisticsShipperAddressUpdate
}
from
'@/services/LogisticsV2Api'
;
import
DeliveryGoodTableSelect
from
'../../components/DeliveryGoodTableSelect/DeliveryGoodTableSelect'
;
import
{
HarvestMaterialContextProvider
,
HarvestMaterialInput
}
from
'../../assets/context'
;
import
{
ReceivingNoteB2BAddService
}
from
'../../assets/handles/HandleFormSubmit'
;
import
{
RoleSelect
}
from
'@/components/RoleSelect'
;
import
LogisticsCompanyMerchantsSelect
from
'@/components/LogisticsCompanySelect/LogisticsCompanyMerchantsSelect'
;
import
{
DeliveryNumColumn
,
OredrNumColumn
}
from
'../../constants/table-column'
;
const
DeliveryNoticeManageSRMDetails
:
React
.
FC
=
()
=>
{
const
[
tableDataSource
,
setTableDataSource
]
=
useState
<
any
[]
>
();
const
[
form
]
=
Form
.
useForm
()
const
service
=
new
ReceivingNoteB2BAddService
(
form
);
const
[
anchors
,
setAnchors
]
=
useState
<
AnchorsItem
[]
>
([
BillsInfo
,
Distribution
,
DeliveryInfo
,
LogisticsInfo
,
DeliveryGood
,
])
useEffect
(()
=>
{
form
.
setFieldsValue
({
sourceType
:
0
})
},
[])
const
handleSubmit
=
useCallback
(()
=>
{
service
.
setTableData
(
tableDataSource
);
service
.
submit
().
then
(
res
=>
{
if
(
res
.
code
===
1000
)
{
history
.
go
(
-
1
)
}
});
},
[
form
,
tableDataSource
])
const
handleRemoveMaterialTableRow
=
(
i
:
number
)
=>
{
const
source
:
any
[]
=
tableDataSource
;
const
newSource
=
source
.
splice
(
i
,
0
)
setTableDataSource
(
newSource
);
}
return
(
<
AnchorPage
title=
"送货单管理详情(SRM)"
anchors=
{
anchors
}
extra=
{
<
Button
.
Group
>
<
Button
onClick=
{
handleSubmit
}
type=
'primary'
>
提交
</
Button
>
</
Button
.
Group
>
}
>
<
Form
form=
{
form
}
>
<
FormItem
name=
"sourceType"
>
<
Input
type=
"hidden"
/>
</
FormItem
>
<
ContentBox
title=
{
BillsInfo
.
name
}
id=
{
BillsInfo
.
key
}
>
<
FormItem
rules=
{
[
required
()
]
}
label=
{
DeliveryAbstractLabel
}
name=
"digest"
>
<
Input
/>
</
FormItem
>
<
FormItem
label=
{
NoteLabel
}
name=
"remark"
>
<
Input
/>
</
FormItem
>
<
FormItem
rules=
{
[
required
()
]
}
label=
{
BuyerLabel
}
name=
"member"
>
<
RoleSelect
formatFeils=
{
(
e
)
=>
{
return
{
buyerMemberId
:
e
.
memberId
,
buyerRoleId
:
e
.
roleId
,
roleType
:
2
,
name
:
e
.
name
}
}
}
/>
</
FormItem
>
</
ContentBox
>
<
ContentBox
title=
{
Distribution
.
name
}
id=
{
Distribution
.
key
}
>
<
FormItem
rules=
{
[
required
()
]
}
label=
{
DeliveryDateLabel
}
name=
"deliveryTime"
>
<
DatePickerSelect
className=
'w-full'
/>
</
FormItem
>
<
FormItem
rules=
{
[
required
()
]
}
label=
{
DeliveryNameLabel
}
name=
"deliveryVO"
>
<
AddressDrawer
addressListRequest=
{
(
val
)
=>
{
return
getLogisticsSelectListReceiverAddress
(
val
)
}
}
sumbitRequest=
{
{
update
:
(
val
)
=>
{
return
postLogisticsReceiverAddressUpdate
(
val
)
},
add
:
(
val
)
=>
{
return
postLogisticsReceiverAddressAdd
(
val
)
}
}
}
/>
</
FormItem
>
<
FormItem
rules=
{
[
required
()
]
}
label=
{
DeliveryTimeLabel
}
name=
"deliveryRangeTime"
>
<
DatePickerSelect
.
RangePicker
className=
"w-full"
picker=
'time'
/>
</
FormItem
>
<
FormItem
rules=
{
[
required
()
]
}
label=
{
DeliveryPhoneLabel
}
name=
"executorVO.phone"
>
<
Input
/>
</
FormItem
>
</
ContentBox
>
<
ContentBox
title=
{
DeliveryInfo
.
name
}
id=
{
DeliveryInfo
.
key
}
>
<
FormItem
rules=
{
[
required
()
]
}
label=
{
ConsigneeTimeLabel
}
name=
"sendTime"
>
<
DatePickerSelect
className=
"w-full"
/>
</
FormItem
>
<
FormItem
rules=
{
[
required
()
]
}
label=
{
ReceivingAddress
}
name=
"receiveVO"
>
<
AddressDrawer
disabled=
{
false
}
addressListRequest=
{
(
val
)
=>
{
return
getLogisticsSelectListShipperAddress
(
val
)
}
}
sumbitRequest=
{
{
update
:
(
val
)
=>
{
return
postLogisticsShipperAddressUpdate
(
val
)
},
add
:
(
val
)
=>
{
return
postLogisticsShipperAddressAdd
(
val
)
}
}
}
/>
</
FormItem
>
</
ContentBox
>
<
ContentBox
title=
{
LogisticsInfo
.
name
}
id=
{
LogisticsInfo
.
key
}
>
<
FormItem
rules=
{
[
required
()
]
}
label=
{
DeliveryTypeLabel
}
name=
"deliveryType"
>
<
Radio
.
Group
>
<
Radio
.
Button
value=
{
1
}
>
物流
</
Radio
.
Button
>
<
Radio
.
Button
value=
{
2
}
>
自提
</
Radio
.
Button
>
{
/* <Radio.Button value={3}>无效配送</Radio.Button> */
}
</
Radio
.
Group
>
</
FormItem
>
<
FormItem
label=
{
LogisticsCarNoLabel
}
name=
"executorVO.carNumbers"
>
<
Input
/>
</
FormItem
>
<
FormItem
label=
{
LogisticsCompanyLabel
}
name=
"logisticsCompanyInt"
>
<
LogisticsCompanyMerchantsSelect
/>
</
FormItem
>
<
FormItem
label=
{
LogisticsNoLabel
}
name=
"logisticsNo"
>
<
Input
/>
</
FormItem
>
</
ContentBox
>
<
ContentBox
title=
{
DeliveryGood
.
name
}
id=
{
DeliveryGood
.
key
}
cols=
{
1
}
>
{
/* 在编辑的时候不需要进行此操作 */
}
<
DeliveryGoodTableSelect
form=
{
form
}
onChange=
{
(
value
)
=>
{
if
(
value
.
length
>
0
)
{
let
addr
=
{
provinceName
:
value
[
0
].
provinceName
,
cityName
:
value
[
0
].
cityName
,
districtName
:
value
[
0
].
districtName
,
streetName
:
value
[
0
].
streetName
,
address
:
value
[
0
].
address
,
phone
:
value
[
0
].
phone
,
consignee
:
value
[
0
].
consignee
,
receiverName
:
value
[
0
].
consignee
,
fullAddress
:
`${value[0].provinceName}${value[0].cityName}${value[0].districtName}${value[0].streetName}${value[0].address}`
}
form
.
setFieldsValue
({
'receiveVO'
:
addr
})
}
setTableDataSource
(
value
)
}
}
/>
<
HarvestMaterialContextProvider
value=
{
{
dataSource
:
tableDataSource
}
}
>
<
Table
rowKey=
{
row
=>
row
.
orderNo
}
columns=
{
[
...
DeliveryNoticeTableColumn
,
{
...
DeliveryNumColumn
,
render
:
(
t
,
rcode
,
index
)
=>
{
return
(
<
HarvestMaterialInput
value=
{
rcode
[
OredrNumColumn
.
key
]
}
index=
{
index
}
keyUp=
"deliveryCount"
/>
)
}
},
{
title
:
"操作"
,
render
:
(
t
,
r
,
i
)
=>
{
return
(
<
Button
type=
'link'
onClick=
{
()
=>
handleRemoveMaterialTableRow
(
i
)
}
>
删除
</
Button
>
)
}
}
]
}
dataSource=
{
tableDataSource
}
/>
</
HarvestMaterialContextProvider
>
</
ContentBox
>
</
Form
>
</
AnchorPage
>
)
}
export
default
DeliveryNoticeManageSRMDetails
\ No newline at end of file
src/pages/order/deliveryNotice/manageB2B/details.tsx
View file @
6c107f3a
...
...
@@ -4,74 +4,118 @@
* @description: 与B2B内容大致相同,文件分开方便后续对接以及日后变动修改二开
*/
import
AnchorPage
,
{
AnchorsItem
}
from
'@/components/AnchorPage'
import
React
,
{
useState
}
from
'react'
import
{
BillsInfo
,
ConsigneeLabel
,
ConsigneePhoneLabel
,
ConsigneeTimeLabel
,
DeliveryAbstractLabel
,
DeliveryAddrLabel
,
DeliveryDateLabel
,
DeliveryGood
,
DeliveryInfo
,
DeliveryNameLabel
,
DeliveryNoLabel
,
DeliveryPhoneLabel
,
DeliverySlefAddrLabel
,
DeliveryTimeLabel
,
DeliveryTypeLabel
,
Distribution
,
LogisticsCarNoLabel
,
LogisticsCompanyLabel
,
LogisticsInfo
,
LogisticsNoLabel
,
NoteLabel
,
OutStatusLabel
}
from
'../../constants'
import
React
,
{
use
Effect
,
use
State
}
from
'react'
import
{
BillsInfo
,
ConsigneeLabel
,
ConsigneePhoneLabel
,
ConsigneeTimeLabel
,
DeliveryAbstractLabel
,
DeliveryAddrLabel
,
DeliveryDateLabel
,
DeliveryGood
,
DeliveryInfo
,
DeliveryNameLabel
,
DeliveryNoLabel
,
DeliveryPhoneLabel
,
DeliverySlefAddrLabel
,
DeliveryTimeLabel
,
DeliveryTypeLabel
,
Distribution
,
ExternalRoamRecord
,
LogisticsCarNoLabel
,
LogisticsCompanyLabel
,
LogisticsInfo
,
LogisticsNoLabel
,
NoteLabel
,
OutStatusLabel
}
from
'../../constants'
import
{
BaseInfo
as
ContentBox
}
from
'@/components/BaseInfo'
import
{
Table
}
from
'antd'
;
import
{
DeliveryNoticeTableColumn
}
from
'../../constants/page-table-column'
;
import
{
DeliveryNoticeTableColumn
,
ExternalRoamRecordTableColumn
}
from
'../../constants/page-table-column'
;
import
{
useLocation
}
from
'umi'
;
import
NoteFactoryService
from
'../../assets/handles/DeliveryNoteService'
;
import
{
DeliveryNumColumn
}
from
'../../constants/table-column'
;
const
ContentBoxItem
=
ContentBox
.
BaseInfoItem
;
const
DeliveryNoticeManageSRMDetails
:
React
.
FC
=
()
=>
{
const
location
=
useLocation
();
const
query
=
(
location
as
any
).
query
;
const
service
=
NoteFactoryService
.
getInstance
(
'b2b'
);
const
[
anchors
,
setAnchors
]
=
useState
<
AnchorsItem
[]
>
([
BillsInfo
,
Distribution
,
DeliveryInfo
,
LogisticsInfo
,
DeliveryGood
,
ExternalRoamRecord
])
const
[
info
,
setInfo
]
=
useState
<
any
>
();
const
[
tableDataSource
,
setTableDataSource
]
=
useState
([]);
const
[
totalCount
,
setTotalCount
]
=
useState
(
1
);
const
[
outerHistoryList
,
setOuterHistoryList
]
=
useState
([]);
useEffect
(()
=>
{
service
.
getDetailInfoById
(
query
.
id
as
string
).
then
(
res
=>
{
setInfo
(
res
)
})
service
.
getDetailInfoProductById
(
query
.
id
as
string
).
then
(
res
=>
{
setTableDataSource
(
res
.
data
)
setTotalCount
(
res
.
totalCount
)
})
},
[])
/**
* 如果info 更新 outerHistoryList也一起更新
*/
useEffect
(()
=>
{
setOuterHistoryList
(
info
?.
outerHistoryList
)
},
[
info
])
return
(
<
AnchorPage
title=
"送货单管理详情(
B2B
)"
<
AnchorPage
title=
"送货单管理详情(
SRM
)"
anchors=
{
anchors
}
>
<
ContentBox
title=
{
BillsInfo
.
name
}
id=
{
BillsInfo
.
key
}
>
<
ContentBoxItem
label=
{
DeliveryNoLabel
}
>
{
info
?.
deliveryNo
}
</
ContentBoxItem
>
<
ContentBoxItem
label=
{
DeliveryAbstractLabel
}
>
{
info
?.
digest
}
</
ContentBoxItem
>
<
ContentBoxItem
label=
{
NoteLabel
}
>
{
info
?.
remark
}
</
ContentBoxItem
>
<
ContentBoxItem
label=
{
OutStatusLabel
}
>
{
info
?.
outerStatusName
}
</
ContentBoxItem
>
</
ContentBox
>
<
ContentBox
title=
{
Distribution
.
name
}
id=
{
Distribution
.
key
}
>
<
ContentBoxItem
label=
{
DeliveryDateLabel
}
>
{
info
?.
deliveryTime
}
</
ContentBoxItem
>
<
ContentBoxItem
label=
{
DeliveryNameLabel
}
>
{
info
?.
deliverVO
?.
consignee
}
</
ContentBoxItem
>
<
ContentBoxItem
label=
{
DeliveryTimeLabel
}
>
{
info
?.
sendTime
}
</
ContentBoxItem
>
<
ContentBoxItem
label=
{
DeliveryPhoneLabel
}
>
{
info
?.
deliverVO
?.
phone
}
</
ContentBoxItem
>
</
ContentBox
>
<
ContentBox
title=
{
DeliveryInfo
.
name
}
id=
{
DeliveryInfo
.
key
}
>
<
ContentBoxItem
label=
{
ConsigneeTimeLabel
}
>
</
ContentBoxItem
>
<
ContentBoxItem
label=
{
DeliveryAddrLabel
}
>
{
info
?.
sendTime
}
</
ContentBoxItem
>
<
ContentBoxItem
label=
{
DeliverySlefAddrLabel
}
>
<
ContentBoxItem
label=
{
info
?.
deliveryType
===
0
?
DeliveryAddrLabel
:
DeliverySlefAddrLabel
}
>
<
div
>
{
info
?.
deliverVO
?.
provinceName
}
{
info
?.
deliverVO
?.
cityName
}
{
info
?.
deliverVO
?.
districtName
}
{
info
?.
deliverVO
?.
streetName
}
{
info
?.
deliverVO
?.
address
}
</
div
>
<
div
>
{
info
?.
deliverVO
.
phone
}
{
info
?.
deliverVO
.
consignee
}
</
div
>
</
ContentBoxItem
>
...
...
@@ -80,26 +124,49 @@ const DeliveryNoticeManageSRMDetails: React.FC = () => {
<
ContentBox
title=
{
LogisticsInfo
.
name
}
id=
{
LogisticsInfo
.
key
}
>
<
ContentBoxItem
label=
{
DeliveryTypeLabel
}
>
{
service
.
getDeliveryType
(
info
?.
deliveryType
)
}
</
ContentBoxItem
>
<
ContentBoxItem
label=
{
LogisticsCarNoLabel
}
>
{
info
?.
executorVO
?.
carNumbers
}
</
ContentBoxItem
>
<
ContentBoxItem
label=
{
LogisticsCompanyLabel
}
>
{
info
?.
logisticsCompany
}
</
ContentBoxItem
>
<
ContentBoxItem
label=
{
LogisticsNoLabel
}
>
{
info
?.
logisticsNo
}
</
ContentBoxItem
>
</
ContentBox
>
<
ContentBox
title=
{
DeliveryGood
.
name
}
id=
{
DeliveryGood
.
key
}
cols=
{
1
}
>
<
Table
columns=
{
DeliveryNoticeTableColumn
}
/>
<
Table
columns=
{
[
...
DeliveryNoticeTableColumn
,
{
...
DeliveryNumColumn
,
dataIndex
:
'deliveryCount'
,
render
:
(
t
,
rcode
,
index
)
=>
{
return
t
}
}]
}
rowKey=
"id"
dataSource=
{
tableDataSource
}
pagination=
{
{
total
:
totalCount
}
}
/>
</
ContentBox
>
<
ContentBox
title=
{
ExternalRoamRecord
.
name
}
key=
{
ExternalRoamRecord
.
key
}
cols=
{
1
}
>
<
Table
columns=
{
[
...
ExternalRoamRecordTableColumn
,
]
}
rowKey=
"id"
dataSource=
{
outerHistoryList
}
/>
</
ContentBox
>
</
AnchorPage
>
)
...
...
src/pages/order/deliveryNotice/manageB2B/edit.tsx
0 → 100644
View file @
6c107f3a
/**
* 订单能力 - 送货单 - 送货单管理详情SRM
* @author: Gavin
* @description: 与B2B内容大致相同,文件分开方便后续对接以及日后变动修改二开
*/
import
AnchorPage
,
{
AnchorsItem
}
from
'@/components/AnchorPage'
import
React
,
{
useCallback
,
useEffect
,
useState
,
useContext
}
from
'react'
import
{
BillsInfo
,
BuyerLabel
,
ConsigneeTimeLabel
,
DeliveryAbstractLabel
,
DeliveryDateLabel
,
DeliveryGood
,
DeliveryInfo
,
DeliveryNameLabel
,
DeliveryPhoneLabel
,
DeliveryTimeLabel
,
DeliveryTypeLabel
,
Distribution
,
ExternalRoamRecord
,
LogisticsCarNoLabel
,
LogisticsCompanyLabel
,
LogisticsInfo
,
LogisticsNoLabel
,
NoteLabel
,
ReceivingAddress
}
from
'../../constants'
import
{
BaseInfo
as
ContentBox
}
from
'@/components/BaseInfo'
import
{
Input
,
Table
,
Row
,
Col
,
Select
,
Radio
,
Form
,
Button
}
from
'antd'
;
import
{
DeliveryNoticeTableColumn
,
ExternalRoamRecordTableColumn
}
from
'../../constants/page-table-column'
;
import
{
FormItem
,
required
}
from
'@/components/FormItem'
;
import
{
DatePickerSelect
}
from
'@/components/DatePickerSelect'
import
{
AddressDrawer
}
from
'@/components/AddressDrawer'
;
import
{
getLogisticsSelectListReceiverAddress
,
getLogisticsSelectListShipperAddress
,
postLogisticsReceiverAddressAdd
,
postLogisticsReceiverAddressUpdate
,
postLogisticsShipperAddressAdd
,
postLogisticsShipperAddressUpdate
}
from
'@/services/LogisticsV2Api'
;
import
{
DeliveryNoteB2bUploadService
}
from
'../../assets/handles/HandleFormSubmit'
;
import
{
RoleSelect
}
from
'@/components/RoleSelect'
;
import
LogisticsCompanyMerchantsSelect
from
'@/components/LogisticsCompanySelect/LogisticsCompanyMerchantsSelect'
;
import
{
useLocation
}
from
'umi'
;
import
{
DeliveryNumColumn
}
from
'../../constants/table-column'
;
const
ContentBoxItem
=
ContentBox
.
BaseInfoItem
;
const
DeliveryNoticeManageSRMEdit
:
React
.
FC
=
()
=>
{
const
[
tableDataSource
,
setTableDataSource
]
=
useState
<
any
>
([]);
const
[
outerHistoryList
,
setOuterHistoryList
]
=
useState
<
any
>
([]);
const
location
:
any
=
useLocation
()
const
{
id
}
=
location
.
query
const
[
form
]
=
Form
.
useForm
()
const
service
=
new
DeliveryNoteB2bUploadService
(
form
);
const
[
anchors
,
setAnchors
]
=
useState
<
AnchorsItem
[]
>
([
BillsInfo
,
Distribution
,
DeliveryInfo
,
LogisticsInfo
,
DeliveryGood
,
])
useEffect
(()
=>
{
form
.
setFieldsValue
({
sourceType
:
0
,
id
:
id
})
service
.
getDetailById
(
id
).
then
(
res
=>
{
form
.
setFieldsValue
(
res
)
setOuterHistoryList
(
res
.
outerHistoryList
)
})
service
.
getOrderDeliveryOrderDetailProductPage
({
id
}).
then
(
res
=>
{
setTableDataSource
(
res
.
data
)
})
},
[
id
])
const
handleSubmit
=
useCallback
(()
=>
{
service
.
setTableData
(
tableDataSource
);
service
.
submit
().
then
(
res
=>
{
if
(
res
.
code
===
1000
)
{
history
.
go
(
-
1
)
}
});
},
[
form
,
tableDataSource
])
return
(
<
AnchorPage
title=
"送货单管理详情(SRM)"
anchors=
{
anchors
}
extra=
{
<
Button
.
Group
>
<
Button
onClick=
{
handleSubmit
}
type=
'primary'
>
提交
</
Button
>
</
Button
.
Group
>
}
>
<
Form
form=
{
form
}
>
<
FormItem
hidden
name=
"sourceType"
>
<
Input
type=
"hidden"
/>
</
FormItem
>
<
FormItem
hidden
name=
"id"
>
<
Input
type=
"hidden"
/>
</
FormItem
>
<
ContentBox
title=
{
BillsInfo
.
name
}
id=
{
BillsInfo
.
key
}
>
<
FormItem
rules=
{
[
required
()
]
}
label=
{
DeliveryAbstractLabel
}
name=
"digest"
>
<
Input
/>
</
FormItem
>
<
FormItem
label=
{
NoteLabel
}
name=
"remark"
>
<
Input
/>
</
FormItem
>
<
FormItem
rules=
{
[
required
()
]
}
label=
{
BuyerLabel
}
name=
"member"
>
<
RoleSelect
formatFeils=
{
(
e
)
=>
{
return
{
buyerMemberId
:
e
.
id
,
buyerRoleId
:
e
.
roleId
,
roleType
:
2
,
name
:
e
.
name
}
}
}
/>
</
FormItem
>
</
ContentBox
>
<
ContentBox
title=
{
Distribution
.
name
}
id=
{
Distribution
.
key
}
>
<
FormItem
rules=
{
[
required
()
]
}
label=
{
DeliveryDateLabel
}
name=
"deliveryTime"
>
<
DatePickerSelect
className=
'w-full'
/>
</
FormItem
>
<
FormItem
rules=
{
[
required
()
]
}
label=
{
DeliveryNameLabel
}
name=
"deliveryVO"
>
<
AddressDrawer
addressListRequest=
{
(
val
)
=>
{
return
getLogisticsSelectListReceiverAddress
(
val
)
}
}
sumbitRequest=
{
{
update
:
(
val
)
=>
{
return
postLogisticsReceiverAddressUpdate
(
val
)
},
add
:
(
val
)
=>
{
return
postLogisticsReceiverAddressAdd
(
val
)
}
}
}
/>
</
FormItem
>
<
FormItem
rules=
{
[
required
()
]
}
label=
{
DeliveryTimeLabel
}
name=
"deliveryRangeTime"
>
<
DatePickerSelect
.
RangePicker
className=
"w-full"
picker=
'time'
/>
</
FormItem
>
<
FormItem
label=
{
DeliveryPhoneLabel
}
name=
"executorVO.phone"
>
<
Input
/>
</
FormItem
>
</
ContentBox
>
<
ContentBox
title=
{
DeliveryInfo
.
name
}
id=
{
DeliveryInfo
.
key
}
>
<
FormItem
rules=
{
[
required
()
]
}
label=
{
ConsigneeTimeLabel
}
name=
"sendTime"
>
<
DatePickerSelect
className=
"w-full"
/>
</
FormItem
>
<
FormItem
rules=
{
[
required
()
]
}
label=
{
ReceivingAddress
}
name=
"receiveVO"
>
<
AddressDrawer
disabled=
{
true
}
addressListRequest=
{
(
val
)
=>
{
return
getLogisticsSelectListShipperAddress
(
val
)
}
}
sumbitRequest=
{
{
update
:
(
val
)
=>
{
return
postLogisticsShipperAddressUpdate
(
val
)
},
add
:
(
val
)
=>
{
return
postLogisticsShipperAddressAdd
(
val
)
}
}
}
/>
</
FormItem
>
</
ContentBox
>
<
ContentBox
title=
{
LogisticsInfo
.
name
}
id=
{
LogisticsInfo
.
key
}
>
<
FormItem
rules=
{
[
required
()
]
}
label=
{
DeliveryTypeLabel
}
name=
"deliveryType"
>
<
Radio
.
Group
>
<
Radio
value=
{
0
}
>
物流
</
Radio
>
<
Radio
value=
{
1
}
>
自提
</
Radio
>
{
/* <Radio.Button value={3}>无效配送</Radio.Button> */
}
</
Radio
.
Group
>
</
FormItem
>
<
FormItem
label=
{
LogisticsCarNoLabel
}
name=
"executorVO.carNumbers"
>
<
Input
/>
</
FormItem
>
<
FormItem
label=
{
LogisticsCompanyLabel
}
name=
"logisticsCompanyInt"
rules=
{
[
{
required
:
true
}
]
}
>
<
LogisticsCompanyMerchantsSelect
/>
</
FormItem
>
<
FormItem
label=
{
LogisticsNoLabel
}
name=
"logisticsNo"
>
<
Input
/>
</
FormItem
>
</
ContentBox
>
<
ContentBox
title=
{
DeliveryGood
.
name
}
id=
{
DeliveryGood
.
key
}
cols=
{
1
}
>
<
Table
rowKey=
{
row
=>
row
.
orderNo
}
columns=
{
[
...
DeliveryNoticeTableColumn
,
{
...
DeliveryNumColumn
,
dataIndex
:
'deliveryCount'
,
render
:
(
t
,
rcode
,
index
)
=>
{
return
t
}
}
]
}
dataSource=
{
tableDataSource
}
/>
</
ContentBox
>
</
Form
>
<
ContentBox
title=
{
ExternalRoamRecord
.
name
}
key=
{
ExternalRoamRecord
.
key
}
cols=
{
1
}
>
<
Table
columns=
{
ExternalRoamRecordTableColumn
}
rowKey=
"id"
dataSource=
{
outerHistoryList
}
/>
</
ContentBox
>
</
AnchorPage
>
)
}
export
default
DeliveryNoticeManageSRMEdit
\ No newline at end of file
src/pages/order/deliveryNotice/manageB2B/index.tsx
View file @
6c107f3a
...
...
@@ -3,41 +3,40 @@
* @author: Gavin
* @description: 与SRM内容大致相同,文件分开方便后续对接以及日后变动修改二开
*/
import
React
,
{
useRef
,
useState
}
from
'react'
import
{
PageHeaderWrapper
}
from
'@ant-design/pro-layout'
import
{
Button
,
Card
,
Space
,
Tag
}
from
'antd'
import
{
PlusOutlined
}
from
'@ant-design/icons'
import
StandardTable
from
'@/components/StandardTable'
import
{
ColumnType
}
from
'antd/lib/table'
import
TableOperation
from
'@/components/TableOperation'
import
EyePreview
from
'@/components/EyePreview'
import
NiceForm
from
'@/components/NiceForm'
import
{
createFormActions
}
from
'@formily/antd'
import
{
useStateFilterSearchLinkageEffect
}
from
'@/formSchema/effects/useFilterSearch'
import
{
FORM_FILTER_PATH
}
from
'@/formSchema/const'
import
{
deliveryNoticeManageB2BSchema
}
from
'./schema'
import
React
,
{
useRef
,
useState
}
from
'react'
import
{
PageHeaderWrapper
}
from
'@ant-design/pro-layout'
import
{
Button
,
Card
,
Space
,
Tag
}
from
'antd'
import
{
PlusOutlined
}
from
'@ant-design/icons'
import
StandardTable
from
'@/components/StandardTable'
import
{
ColumnType
}
from
'antd/lib/table'
import
TableOperation
from
'@/components/TableOperation'
import
EyePreview
from
'@/components/EyePreview'
import
NiceForm
from
'@/components/NiceForm'
import
{
createFormActions
}
from
'@formily/antd'
import
{
useStateFilterSearchLinkageEffect
}
from
'@/formSchema/effects/useFilterSearch'
import
{
FORM_FILTER_PATH
}
from
'@/formSchema/const'
import
{
deliveryNoticeManageB2BSchema
}
from
'./schema'
import
{
TagStatusFactory
}
from
'../../utils'
import
dayjs
from
'dayjs'
import
NoteFactoryService
from
'../../assets/handles/DeliveryNoteService'
import
{
Link
,
useHistory
}
from
'umi'
const
tagStatusColor
=
{
// 待提交
2
:
{
color
:
'#f4f5f7'
,
fontColor
:
'#5c626a'
},
// 待确认
3
:
{
color
:
'#ecf2fe'
,
fontColor
:
'#4787f0'
},
// 待修订
4
:
{
color
:
'#eae6ff'
,
fontColor
:
'#9963d8'
},
// 已确认
5
:
{
color
:
'#ebf9f6'
,
fontColor
:
'#00a98f'
},
// 已生产送货单
6
:
{
color
:
'#f0f5ff'
,
fontColor
:
'#f0f5ff'
},
// 已作废
7
:
{
color
:
'#fff2f0'
,
fontColor
:
'#ff4d4f'
},
}
const
tagStatus
=
TagStatusFactory
.
getInstance
();
const
statusTxt
=
new
Map
([[
1
,
'已提交'
],
[
2
,
'已收货'
],
[
3
,
'已作废'
]]);
const
service
=
NoteFactoryService
.
getInstance
(
'b2b'
);
const
DeliveryNoticeManageB2B
:
React
.
FC
=
()
=>
{
const
ref
=
useRef
<
any
>
({})
const
history
=
useHistory
();
const
formActions
=
createFormActions
()
const
controllerBtns
=
(<
Space
>
<
Button
type=
'primary'
icon=
{
<
PlusOutlined
/>
}
>
新增
</
Button
>
<
Link
to=
{
"/memberCenter/order/deliveryNotice/manageB2B/add"
}
>
<
Button
type=
'primary'
icon=
{
<
PlusOutlined
/>
}
>
新增
</
Button
>
</
Link
>
</
Space
>)
const
renderOptionButton
=
(
record
:
any
)
=>
{
const
btnAuthOfOperationTextMap
=
{
...
...
@@ -51,9 +50,13 @@ const DeliveryNoticeManageB2B: React.FC = () => {
'查看'
:
true
,
}
const
operationHandler
=
{
'修改'
:
()
=>
{
console
.
log
(
'修改 :>> '
,)
},
'修改'
:
()
=>
{
history
.
push
(
`/memberCenter/order/deliveryNotice/manageB2B/edit?id=
${
record
.
id
}
`
)
},
'作废'
:
()
=>
{
console
.
log
(
'作废 :>> '
,)
},
'查看'
:
()
=>
{
console
.
log
(
'查看 :>> '
,)
},
'查看'
:
()
=>
{
history
.
push
(
`/memberCenter/order/deliveryNotice/manageB2B/details?id=
${
record
.
id
}
`
)
},
}
return
(
<
TableOperation
...
...
@@ -63,27 +66,40 @@ const DeliveryNoticeManageB2B: React.FC = () => {
/>
)
}
const
columns
:
ColumnType
<
unknown
>
[]
=
[
const
columns
:
ColumnType
<
any
>
[]
=
[
{
title
:
'送货单号'
,
dataIndex
:
'id'
,
key
:
'id'
,
width
:
160
,
render
:
(
text
:
unknown
,
record
:
unknown
)
=>
<
EyePreview
url=
'/memberCenter/order/deliveryNotice/manageB2B/details'
>
{
text
}
</
EyePreview
>
render
:
(
text
,
r
)
=>
<
EyePreview
url=
{
`/memberCenter/order/deliveryNotice/manageB2B/details?id=${r.id}`
}
>
{
r
.
deliveryNo
}
</
EyePreview
>
},
{
title
:
'送货单摘要'
,
dataIndex
:
'digest'
,
key
:
'digest'
},
{
title
:
'送货日期'
,
dataIndex
:
'deliveryTime'
,
key
:
'deliveryTime'
,
render
:
(
t
,
r
:
any
)
=>
{
return
dayjs
(
r
.
createTime
).
format
(
'YYYY-MM-DD'
);
}
},
{
title
:
'采购会员'
,
dataIndex
:
'buyerMemberName'
,
key
:
'buyerMemberName'
},
{
title
:
'单据时间'
,
dataIndex
:
'createTime'
,
key
:
'createTime'
,
render
:
(
t
,
r
:
any
)
=>
{
return
dayjs
(
r
.
createTime
).
format
(
'YYYY-MM-DD'
)
}
},
{
title
:
'送货单摘要'
,
dataIndex
:
'id2'
,
key
:
'id2'
},
{
title
:
'送货日期'
,
dataIndex
:
'id3'
,
key
:
'id3'
},
{
title
:
'采购会员'
,
dataIndex
:
'id5'
,
key
:
'id5'
},
{
title
:
'单据时间'
,
dataIndex
:
'id4'
,
key
:
'id4'
},
{
title
:
'外部状态'
,
dataIndex
:
'id6'
,
key
:
'id6'
,
render
:
(
text
:
string
,
record
:
any
)
=>
(
<
Tag
color=
{
tagStatusColor
[
record
.
id
]?.
color
}
>
<
span
style=
{
{
color
:
tagStatusColor
[
record
.
id
]?.
fontColor
}
}
>
{
text
}
</
span
>
</
Tag
>
)
dataIndex
:
'outerStatus'
,
key
:
'outerStatus'
,
render
:
(
t
:
string
,
r
:
any
)
=>
{
const
styles
=
tagStatus
.
getTagStyle
(
r
.
outerStatus
);
return
(
<
Tag
color=
{
styles
.
bgColor
}
>
<
span
style=
{
{
color
:
styles
.
fontColor
}
}
>
{
statusTxt
.
get
(
r
.
outerStatus
)
}
</
span
>
</
Tag
>
)
}
},
{
title
:
'操作'
,
...
...
@@ -95,22 +111,7 @@ const DeliveryNoticeManageB2B: React.FC = () => {
]
const
fetchData
=
(
params
:
unknown
)
=>
{
console
.
log
(
'params :>> '
,
params
);
return
new
Promise
((
resolve
)
=>
{
const
data
=
{
totalCount
:
1
,
data
:
[
{
id
:
1
,
id2
:
2
,
id3
:
3
,
id4
:
4
,
id5
:
5
,
id6
:
6
},
{
id
:
2
,
id2
:
3
,
id3
:
4
,
id4
:
5
,
id5
:
6
,
id6
:
7
},
{
id
:
3
,
id2
:
3
,
id3
:
4
,
id4
:
5
,
id5
:
6
,
id6
:
7
},
{
id
:
4
,
id2
:
3
,
id3
:
4
,
id4
:
5
,
id5
:
6
,
id6
:
7
},
{
id
:
5
,
id2
:
3
,
id3
:
4
,
id4
:
5
,
id5
:
6
,
id6
:
7
},
{
id
:
6
,
id2
:
3
,
id3
:
4
,
id4
:
5
,
id5
:
6
,
id6
:
7
},
{
id
:
7
,
id2
:
3
,
id3
:
4
,
id4
:
5
,
id5
:
6
,
id6
:
7
},
{
id
:
8
,
id2
:
3
,
id3
:
4
,
id4
:
5
,
id5
:
6
,
id6
:
7
},
]
}
resolve
(
data
)
})
return
service
.
getQuery
(
params
);
}
return
(
...
...
src/pages/order/deliveryNotice/manageSRM/add.tsx
View file @
6c107f3a
...
...
@@ -9,12 +9,12 @@ import { BillsInfo, BuyerLabel, ConsigneeLabel, ConsigneePhoneLabel, ConsigneeTi
import
{
BaseInfo
as
ContentBox
}
from
'@/components/BaseInfo'
import
{
Input
,
Table
,
Row
,
Col
,
Select
,
Radio
,
Form
,
Button
}
from
'antd'
;
import
{
DeliveryNoticeTableColumn
}
from
'../../constants/page-table-column'
;
import
{
FormItem
}
from
'@/components/FormItem'
;
import
{
FormItem
,
required
}
from
'@/components/FormItem'
;
import
{
DatePickerSelect
}
from
'@/components/DatePickerSelect'
import
{
AddressDrawer
}
from
'@/components/AddressDrawer'
;
import
{
getLogisticsSelectListReceiverAddress
,
getLogisticsSelectListShipperAddress
,
postLogisticsReceiverAddressAdd
,
postLogisticsReceiverAddressUpdate
,
postLogisticsShipperAddressAdd
,
postLogisticsShipperAddressUpdate
}
from
'@/services/LogisticsV2Api'
;
import
DeliveryGoodTableSelect
from
'../../components/DeliveryGoodTableSelect/DeliveryGoodTableSelect'
;
import
{
HarvestMaterialContextProvider
,
HarvestMaterialContext
}
from
'../../assets/context'
;
import
{
HarvestMaterialContextProvider
,
HarvestMaterialContext
,
HarvestMaterialInput
}
from
'../../assets/context'
;
import
moment
from
'moment'
;
import
{
HandelFormFieldsKeyValue
}
from
'@/utils/form'
;
import
{
DeliveryNoteAddService
}
from
'../../assets/handles/HandleFormSubmit'
;
...
...
@@ -22,6 +22,7 @@ import { RoleSelect } from '@/components/RoleSelect';
import
DeliveryNoticeOrderFactory
from
'../../assets/handles/DeliveryNoticeOrder'
;
import
LogisticsCompanyMerchantsSelect
from
'@/components/LogisticsCompanySelect/LogisticsCompanyMerchantsSelect'
;
import
{
values
}
from
'lodash'
;
import
{
DeliveryNumColumn
,
OredrNumColumn
}
from
'../../constants/table-column'
;
const
ContentBoxItem
=
ContentBox
.
BaseInfoItem
;
...
...
@@ -73,7 +74,11 @@ const DeliveryNoticeManageSRMDetails: React.FC = () => {
</
FormItem
>
<
ContentBox
title=
{
BillsInfo
.
name
}
id=
{
BillsInfo
.
key
}
>
<
FormItem
label=
{
DeliveryAbstractLabel
}
name=
"digest"
>
<
FormItem
rules=
{
[
required
()
]
}
label=
{
DeliveryAbstractLabel
}
name=
"digest"
>
<
Input
/>
</
FormItem
>
...
...
@@ -81,18 +86,37 @@ const DeliveryNoticeManageSRMDetails: React.FC = () => {
<
Input
/>
</
FormItem
>
<
FormItem
label=
{
BuyerLabel
}
name=
"member"
>
<
RoleSelect
/>
<
FormItem
rules=
{
[
required
()
]
}
label=
{
BuyerLabel
}
name=
"member"
>
<
RoleSelect
formatFeils=
{
(
e
)
=>
{
return
{
buyerMemberId
:
e
.
memberId
,
buyerRoleId
:
e
.
roleId
,
roleType
:
2
,
name
:
e
.
name
}
}
}
/>
</
FormItem
>
</
ContentBox
>
<
ContentBox
title=
{
Distribution
.
name
}
id=
{
Distribution
.
key
}
>
<
FormItem
label=
{
DeliveryDateLabel
}
name=
"deliveryTime"
>
<
FormItem
rules=
{
[
required
()
]
}
label=
{
DeliveryDateLabel
}
name=
"deliveryTime"
>
<
DatePickerSelect
className=
'w-full'
/>
</
FormItem
>
<
FormItem
label=
{
DeliveryNameLabel
}
name=
"deliveryVO"
>
<
FormItem
rules=
{
[
required
()
]
}
label=
{
DeliveryNameLabel
}
name=
"deliveryVO"
>
<
AddressDrawer
addressListRequest=
{
(
val
)
=>
{
return
getLogisticsSelectListReceiverAddress
(
val
)
...
...
@@ -108,21 +132,38 @@ const DeliveryNoticeManageSRMDetails: React.FC = () => {
/>
</
FormItem
>
<
FormItem
label=
{
DeliveryTimeLabel
}
name=
"deliveryRangeTime"
>
<
FormItem
rules=
{
[
required
()
]
}
label=
{
DeliveryTimeLabel
}
name=
"deliveryRangeTime"
>
<
DatePickerSelect
.
RangePicker
className=
"w-full"
picker=
'time'
/>
</
FormItem
>
<
FormItem
label=
{
DeliveryPhoneLabel
}
name=
"executorVO.phone"
>
<
FormItem
rules=
{
[
required
()
]
}
label=
{
DeliveryPhoneLabel
}
name=
"executorVO.phone"
>
<
Input
/>
</
FormItem
>
</
ContentBox
>
<
ContentBox
title=
{
DeliveryInfo
.
name
}
id=
{
DeliveryInfo
.
key
}
>
<
FormItem
label=
{
ConsigneeTimeLabel
}
name=
"sendTime"
>
<
ContentBox
title=
{
DeliveryInfo
.
name
}
id=
{
DeliveryInfo
.
key
}
>
<
FormItem
rules=
{
[
required
()
]
}
label=
{
ConsigneeTimeLabel
}
name=
"sendTime"
>
<
DatePickerSelect
className=
"w-full"
/>
</
FormItem
>
<
FormItem
label=
{
ReceivingAddress
}
name=
"receiveVO"
>
<
FormItem
rules=
{
[
required
()
]
}
label=
{
ReceivingAddress
}
name=
"receiveVO"
>
<
AddressDrawer
addressListRequest=
{
(
val
)
=>
{
return
getLogisticsSelectListShipperAddress
(
val
)
...
...
@@ -142,7 +183,11 @@ const DeliveryNoticeManageSRMDetails: React.FC = () => {
<
ContentBox
title=
{
LogisticsInfo
.
name
}
id=
{
LogisticsInfo
.
key
}
>
<
FormItem
label=
{
DeliveryTypeLabel
}
name=
"deliveryType"
>
<
FormItem
rules=
{
[
required
()
]
}
label=
{
DeliveryTypeLabel
}
name=
"deliveryType"
>
<
Radio
.
Group
>
<
Radio
.
Button
value=
{
1
}
>
物流
</
Radio
.
Button
>
<
Radio
.
Button
value=
{
2
}
>
自提
</
Radio
.
Button
>
...
...
@@ -153,11 +198,7 @@ const DeliveryNoticeManageSRMDetails: React.FC = () => {
<
FormItem
label=
{
LogisticsCarNoLabel
}
name=
"executorVO.carNumbers"
>
<
Input
/>
</
FormItem
>
<
FormItem
label=
{
LogisticsCompanyLabel
}
name=
"logisticsCompanyInt"
rules=
{
[
{
required
:
true
}
]
}
>
<
FormItem
label=
{
LogisticsCompanyLabel
}
name=
"logisticsCompanyInt"
>
<
LogisticsCompanyMerchantsSelect
/>
</
FormItem
>
<
FormItem
label=
{
LogisticsNoLabel
}
name=
"logisticsNo"
>
...
...
@@ -167,6 +208,7 @@ const DeliveryNoticeManageSRMDetails: React.FC = () => {
<
ContentBox
title=
{
DeliveryGood
.
name
}
id=
{
DeliveryGood
.
key
}
cols=
{
1
}
>
{
/* 在编辑的时候不需要进行此操作 */
}
<
DeliveryGoodTableSelect
form=
{
form
}
onChange=
{
(
value
)
=>
{
...
...
@@ -181,7 +223,7 @@ const DeliveryNoticeManageSRMDetails: React.FC = () => {
phone
:
value
[
0
].
phone
,
consignee
:
value
[
0
].
consignee
,
receiverName
:
value
[
0
].
consignee
,
fullAddress
:
`${value[0].provinceName}${value[0].cityName}${value[0].districtName}${value[0].streetName}${value[0].address}`
fullAddress
:
`${value[0].provinceName}${value[0].cityName}${value[0].districtName}${value[0].streetName}${value[0].address}`
}
form
.
setFieldsValue
({
'receiveVO'
:
addr
...
...
@@ -197,7 +239,22 @@ const DeliveryNoticeManageSRMDetails: React.FC = () => {
}
}
>
<
Table
rowKey=
{
row
=>
row
.
orderNo
}
columns=
{
DeliveryNoticeTableColumn
}
columns=
{
[
...
DeliveryNoticeTableColumn
,
{
...
DeliveryNumColumn
,
render
:
(
t
,
rcode
,
index
)
=>
{
return
(
<
HarvestMaterialInput
value=
{
rcode
[
OredrNumColumn
.
key
]
}
index=
{
index
}
keyUp=
"deliveryCount"
/>
)
}
}
]
}
dataSource=
{
tableDataSource
}
/>
</
HarvestMaterialContextProvider
>
...
...
src/pages/order/deliveryNotice/manageSRM/details.tsx
View file @
6c107f3a
...
...
@@ -12,7 +12,6 @@ import { DeliveryNoticeTableColumn, ExternalRoamRecordTableColumn } from '../../
import
NoteFactoryService
from
'../../assets/handles/DeliveryNoteService'
;
import
{
useLocation
}
from
'umi'
;
import
qs
from
'query-string'
;
import
{
useDetailInfoById
}
from
'../../assets/hooks/useDetailInfoById'
;
const
ContentBoxItem
=
ContentBox
.
BaseInfoItem
;
...
...
@@ -32,13 +31,18 @@ const DeliveryNoticeManageSRMDetails: React.FC = () => {
ExternalRoamRecord
])
const
[
info
]
=
useDetailInfoById
(
query
.
id
);
const
[
info
,
setInfo
]
=
useState
<
any
>
();
const
[
tableDataSource
,
setTableDataSource
]
=
useState
([]);
const
[
totalCount
,
setTotalCount
]
=
useState
(
1
);
const
[
outerHistoryList
,
setOuterHistoryList
]
=
useState
([]);
useEffect
(()
=>
{
service
.
getDetailInfoById
(
query
.
id
as
string
).
then
(
res
=>
{
setInfo
(
res
)
})
service
.
getDetailInfoProductById
(
query
.
id
as
string
).
then
(
res
=>
{
setTableDataSource
(
res
.
data
)
...
...
src/pages/order/deliveryNotice/manageSRM/edit.tsx
View file @
6c107f3a
...
...
@@ -5,11 +5,11 @@
*/
import
AnchorPage
,
{
AnchorsItem
}
from
'@/components/AnchorPage'
import
React
,
{
useCallback
,
useEffect
,
useState
,
useContext
}
from
'react'
import
{
BillsInfo
,
BuyerLabel
,
ConsigneeLabel
,
ConsigneePhoneLabel
,
ConsigneeTimeLabel
,
DeliveryAbstractLabel
,
DeliveryAddrLabel
,
DeliveryDateLabel
,
DeliveryGood
,
DeliveryInfo
,
DeliveryNameLabel
,
DeliveryNoLabel
,
DeliveryPhoneLabel
,
DeliverySlefAddrLabel
,
DeliveryTimeLabel
,
DeliveryTypeLabel
,
Distribution
,
LogisticsCarNoLabel
,
LogisticsCompanyLabel
,
LogisticsInfo
,
LogisticsNoLabel
,
NoteLabel
,
OutStatusLabel
,
ReceivingAddress
}
from
'../../constants'
import
{
BillsInfo
,
BuyerLabel
,
ConsigneeLabel
,
ConsigneePhoneLabel
,
ConsigneeTimeLabel
,
DeliveryAbstractLabel
,
DeliveryAddrLabel
,
DeliveryDateLabel
,
DeliveryGood
,
DeliveryInfo
,
DeliveryNameLabel
,
DeliveryNoLabel
,
DeliveryPhoneLabel
,
DeliverySlefAddrLabel
,
DeliveryTimeLabel
,
DeliveryTypeLabel
,
Distribution
,
ExternalRoamRecord
,
LogisticsCarNoLabel
,
LogisticsCompanyLabel
,
LogisticsInfo
,
LogisticsNoLabel
,
NoteLabel
,
OutStatusLabel
,
ReceivingAddress
}
from
'../../constants'
import
{
BaseInfo
as
ContentBox
}
from
'@/components/BaseInfo'
import
{
Input
,
Table
,
Row
,
Col
,
Select
,
Radio
,
Form
,
Button
}
from
'antd'
;
import
{
DeliveryNoticeTableColumn
}
from
'../../constants/page-table-column'
;
import
{
FormItem
}
from
'@/components/FormItem'
;
import
{
DeliveryNoticeTableColumn
,
ExternalRoamRecordTableColumn
}
from
'../../constants/page-table-column'
;
import
{
FormItem
,
required
}
from
'@/components/FormItem'
;
import
{
DatePickerSelect
}
from
'@/components/DatePickerSelect'
import
{
AddressDrawer
}
from
'@/components/AddressDrawer'
;
import
{
getLogisticsSelectListReceiverAddress
,
getLogisticsSelectListShipperAddress
,
postLogisticsReceiverAddressAdd
,
postLogisticsReceiverAddressUpdate
,
postLogisticsShipperAddressAdd
,
postLogisticsShipperAddressUpdate
}
from
'@/services/LogisticsV2Api'
;
...
...
@@ -17,25 +17,26 @@ import DeliveryGoodTableSelect from '../../components/DeliveryGoodTableSelect/De
import
{
HarvestMaterialContextProvider
,
HarvestMaterialContext
}
from
'../../assets/context'
;
import
moment
from
'moment'
;
import
{
HandelFormFieldsKeyValue
}
from
'@/utils/form'
;
import
{
DeliveryNoteAddService
}
from
'../../assets/handles/HandleFormSubmit'
;
import
{
DeliveryNoteAddService
,
DeliveryNoteUploadService
}
from
'../../assets/handles/HandleFormSubmit'
;
import
{
RoleSelect
}
from
'@/components/RoleSelect'
;
import
DeliveryNoticeOrderFactory
from
'../../assets/handles/DeliveryNoticeOrder'
;
import
LogisticsCompanyMerchantsSelect
from
'@/components/LogisticsCompanySelect/LogisticsCompanyMerchantsSelect'
;
import
{
useLocation
}
from
'umi'
;
import
{
useDetailInfoById
}
from
'../../assets/hooks/useDetailInfoById'
;
import
{
DeliveryNumColumn
}
from
'../../constants/table-column'
;
const
ContentBoxItem
=
ContentBox
.
BaseInfoItem
;
const
DeliveryNoticeManageSRMEdit
:
React
.
FC
=
()
=>
{
const
[
tableDataSource
,
setTableDataSource
]
=
useState
();
const
[
tableDataSource
,
setTableDataSource
]
=
useState
<
any
>
([]);
const
[
outerHistoryList
,
setOuterHistoryList
]
=
useState
<
any
>
([]);
const
location
:
any
=
useLocation
()
const
{
id
}
=
location
.
query
const
[
info
]
=
useDetailInfoById
(
id
);
const
[
form
]
=
Form
.
useForm
()
const
service
=
new
DeliveryNoteAddService
(
form
);
const
service
=
new
DeliveryNoteUploadService
(
form
);
const
[
anchors
,
setAnchors
]
=
useState
<
AnchorsItem
[]
>
([
BillsInfo
,
...
...
@@ -46,10 +47,17 @@ const DeliveryNoticeManageSRMEdit: React.FC = () => {
])
useEffect
(()
=>
{
form
.
setFieldsValue
({
sourceType
:
0
})
console
.
log
(
info
)
form
.
setFieldsValue
(
info
)
},
[
info
])
form
.
setFieldsValue
({
sourceType
:
0
,
id
:
id
})
service
.
getDetailById
(
id
).
then
(
res
=>
{
form
.
setFieldsValue
(
res
)
setOuterHistoryList
(
res
.
outerHistoryList
)
})
service
.
getOrderDeliveryOrderDetailProductPage
({
id
}).
then
(
res
=>
{
setTableDataSource
(
res
.
data
)
})
},
[
id
])
const
handleSubmit
=
useCallback
(()
=>
{
service
.
setTableData
(
tableDataSource
);
...
...
@@ -75,12 +83,18 @@ const DeliveryNoticeManageSRMEdit: React.FC = () => {
<
Form
form=
{
form
}
>
<
FormItem
name=
"sourceType"
>
<
FormItem
hidden
name=
"sourceType"
>
<
Input
type=
"hidden"
/>
</
FormItem
>
<
FormItem
hidden
name=
"id"
>
<
Input
type=
"hidden"
/>
</
FormItem
>
<
ContentBox
title=
{
BillsInfo
.
name
}
id=
{
BillsInfo
.
key
}
>
<
FormItem
label=
{
DeliveryAbstractLabel
}
name=
"digest"
>
<
FormItem
rules=
{
[
required
()
]
}
label=
{
DeliveryAbstractLabel
}
name=
"digest"
>
<
Input
/>
</
FormItem
>
...
...
@@ -88,18 +102,37 @@ const DeliveryNoticeManageSRMEdit: React.FC = () => {
<
Input
/>
</
FormItem
>
<
FormItem
label=
{
BuyerLabel
}
name=
"member"
>
<
RoleSelect
/>
<
FormItem
rules=
{
[
required
()
]
}
label=
{
BuyerLabel
}
name=
"member"
>
<
RoleSelect
formatFeils=
{
(
e
)
=>
{
return
{
buyerMemberId
:
e
.
id
,
buyerRoleId
:
e
.
roleId
,
roleType
:
2
,
name
:
e
.
name
}
}
}
/>
</
FormItem
>
</
ContentBox
>
<
ContentBox
title=
{
Distribution
.
name
}
id=
{
Distribution
.
key
}
>
<
FormItem
label=
{
DeliveryDateLabel
}
name=
"deliveryTime"
>
<
FormItem
rules=
{
[
required
()
]
}
label=
{
DeliveryDateLabel
}
name=
"deliveryTime"
>
<
DatePickerSelect
className=
'w-full'
/>
</
FormItem
>
<
FormItem
label=
{
DeliveryNameLabel
}
name=
"deliveryVO"
>
<
FormItem
rules=
{
[
required
()
]
}
label=
{
DeliveryNameLabel
}
name=
"deliveryVO"
>
<
AddressDrawer
addressListRequest=
{
(
val
)
=>
{
return
getLogisticsSelectListReceiverAddress
(
val
)
...
...
@@ -115,7 +148,11 @@ const DeliveryNoticeManageSRMEdit: React.FC = () => {
/>
</
FormItem
>
<
FormItem
label=
{
DeliveryTimeLabel
}
name=
"deliveryRangeTime"
>
<
FormItem
rules=
{
[
required
()
]
}
label=
{
DeliveryTimeLabel
}
name=
"deliveryRangeTime"
>
<
DatePickerSelect
.
RangePicker
className=
"w-full"
picker=
'time'
/>
</
FormItem
>
...
...
@@ -125,12 +162,21 @@ const DeliveryNoticeManageSRMEdit: React.FC = () => {
</
ContentBox
>
<
ContentBox
title=
{
DeliveryInfo
.
name
}
id=
{
DeliveryInfo
.
key
}
>
<
FormItem
label=
{
ConsigneeTimeLabel
}
name=
"sendTime"
>
<
FormItem
rules=
{
[
required
()
]
}
label=
{
ConsigneeTimeLabel
}
name=
"sendTime"
>
<
DatePickerSelect
className=
"w-full"
/>
</
FormItem
>
<
FormItem
label=
{
ReceivingAddress
}
name=
"receiveVO"
>
<
FormItem
rules=
{
[
required
()
]
}
label=
{
ReceivingAddress
}
name=
"receiveVO"
>
<
AddressDrawer
disabled=
{
true
}
addressListRequest=
{
(
val
)
=>
{
return
getLogisticsSelectListShipperAddress
(
val
)
}
}
...
...
@@ -149,10 +195,14 @@ const DeliveryNoticeManageSRMEdit: React.FC = () => {
<
ContentBox
title=
{
LogisticsInfo
.
name
}
id=
{
LogisticsInfo
.
key
}
>
<
FormItem
label=
{
DeliveryTypeLabel
}
name=
"deliveryType"
>
<
FormItem
rules=
{
[
required
()
]
}
label=
{
DeliveryTypeLabel
}
name=
"deliveryType"
>
<
Radio
.
Group
>
<
Radio
.
Button
value=
{
1
}
>
物流
</
Radio
.
Button
>
<
Radio
.
Button
value=
{
2
}
>
自提
</
Radio
.
Button
>
<
Radio
value=
{
0
}
>
物流
</
Radio
>
<
Radio
value=
{
1
}
>
自提
</
Radio
>
{
/* <Radio.Button value={3}>无效配送</Radio.Button> */
}
</
Radio
.
Group
>
</
FormItem
>
...
...
@@ -174,29 +224,33 @@ const DeliveryNoticeManageSRMEdit: React.FC = () => {
<
ContentBox
title=
{
DeliveryGood
.
name
}
id=
{
DeliveryGood
.
key
}
cols=
{
1
}
>
<
DeliveryGoodTableSelect
form=
{
form
}
onChange=
{
(
value
)
=>
{
console
.
log
(
value
)
setTableDataSource
(
value
)
}
}
<
Table
rowKey=
{
row
=>
row
.
orderNo
}
columns=
{
[
...
DeliveryNoticeTableColumn
,
{
...
DeliveryNumColumn
,
dataIndex
:
'deliveryCount'
,
render
:
(
t
,
rcode
,
index
)
=>
{
return
t
}
}
]
}
dataSource=
{
tableDataSource
}
/>
<
HarvestMaterialContextProvider
value=
{
{
dataSource
:
tableDataSource
}
}
>
<
Table
rowKey=
{
row
=>
row
.
orderNo
}
columns=
{
DeliveryNoticeTableColumn
}
dataSource=
{
tableDataSource
}
/>
</
HarvestMaterialContextProvider
>
</
ContentBox
>
</
Form
>
<
ContentBox
title=
{
ExternalRoamRecord
.
name
}
key=
{
ExternalRoamRecord
.
key
}
cols=
{
1
}
>
<
Table
columns=
{
ExternalRoamRecordTableColumn
}
rowKey=
"id"
dataSource=
{
outerHistoryList
}
/>
</
ContentBox
>
</
AnchorPage
>
)
...
...
src/pages/order/deliveryNotice/manageSRM/index.tsx
View file @
6c107f3a
...
...
@@ -29,7 +29,7 @@ const DeliveryNoticeManageSRM: React.FC = () => {
const
history
=
useHistory
()
const
statusTxt
=
new
Map
([[
1
,
'已提交'
],
[
2
,
'已收货'
],
[
3
,
'已作废'
]]);
const
controllerBtns
=
(
<
Space
>
<
Link
to=
"/memberCenter/order/deliveryNotice/manageSRM/add"
>
...
...
@@ -52,8 +52,12 @@ const DeliveryNoticeManageSRM: React.FC = () => {
}
const
operationHandler
=
{
'修改'
:
()
=>
{
history
.
push
(
`/memberCenter/order/deliveryNotice/manageSRM/edit?id=
${
record
.
id
}
`
)
},
'作废'
:
()
=>
{
console
.
log
(
'作废 :>> '
,)
},
'查看'
:
()
=>
{
console
.
log
(
'查看 :>> '
,)
},
'作废'
:
()
=>
{
// /order/delivery/order/invalid
},
'查看'
:
()
=>
{
history
.
push
(
`/memberCenter/order/deliveryNotice/manageSRM/details?id=
${
record
.
id
}
`
)
},
}
return
(
<
TableOperation
...
...
src/pages/order/deliveryNotice/receivingNoteQuery/details.tsx
View file @
6c107f3a
...
...
@@ -4,74 +4,124 @@
* @description: 与B2B内容大致相同,文件分开方便后续对接以及日后变动修改二开
*/
import
AnchorPage
,
{
AnchorsItem
}
from
'@/components/AnchorPage'
import
React
,
{
useState
}
from
'react'
import
{
BillsInfo
,
ConsigneeLabel
,
ConsigneePhoneLabel
,
ConsigneeTimeLabel
,
DeliveryAbstractLabel
,
DeliveryAddrLabel
,
DeliveryDateLabel
,
DeliveryGood
,
DeliveryInfo
,
DeliveryNameLabel
,
DeliveryNoLabel
,
DeliveryPhoneLabel
,
DeliverySlefAddrLabel
,
DeliveryTimeLabel
,
DeliveryTypeLabel
,
Distribution
,
LogisticsCarNoLabel
,
LogisticsCompanyLabel
,
LogisticsInfo
,
LogisticsNoLabel
,
NoteLabel
,
OutStatusLabel
}
from
'../../constants'
import
React
,
{
useEffect
,
useState
}
from
'react'
import
{
BillsInfo
,
ConsigneeTimeLabel
,
DeliveryAbstractLabel
,
DeliveryAddrLabel
,
DeliveryDateLabel
,
DeliveryGood
,
DeliveryInfo
,
DeliveryNameLabel
,
DeliveryNoLabel
,
DeliveryPhoneLabel
,
DeliverySlefAddrLabel
,
DeliveryTimeLabel
,
DeliveryTypeLabel
,
Distribution
,
ExternalRoamRecord
,
LogisticsCarNoLabel
,
LogisticsCompanyLabel
,
LogisticsInfo
,
LogisticsNoLabel
,
NoteLabel
,
OutStatusLabel
}
from
'../../constants'
import
{
BaseInfo
as
ContentBox
}
from
'@/components/BaseInfo'
import
{
Table
}
from
'antd'
;
import
{
DeliveryNoticeTableColumn
}
from
'../../constants/page-table-column'
;
import
{
DeliveryNoticeTableColumn
,
ExternalRoamRecordTableColumn
}
from
'../../constants/page-table-column'
;
import
{
useLocation
}
from
'umi'
;
import
NoteFactoryService
from
'../../assets/handles/DeliveryNoteService'
;
const
ContentBoxItem
=
ContentBox
.
BaseInfoItem
;
const
DeliveryNoticeManageSRMDetails
:
React
.
FC
=
()
=>
{
const
location
=
useLocation
();
const
query
=
(
location
as
any
).
query
;
const
service
=
NoteFactoryService
.
getInstance
(
'receive'
);
const
[
anchors
,
setAnchors
]
=
useState
<
AnchorsItem
[]
>
([
BillsInfo
,
Distribution
,
DeliveryInfo
,
LogisticsInfo
,
DeliveryGood
,
ExternalRoamRecord
])
const
[
info
,
setInfo
]
=
useState
<
any
>
();
const
[
tableDataSource
,
setTableDataSource
]
=
useState
([]);
const
[
totalCount
,
setTotalCount
]
=
useState
(
1
);
const
[
outerHistoryList
,
setOuterHistoryList
]
=
useState
([]);
useEffect
(()
=>
{
service
.
getDetailInfoById
(
query
.
id
as
string
).
then
(
res
=>
{
setInfo
(
res
)
})
service
.
getDetailInfoProductById
(
query
.
id
as
string
).
then
(
res
=>
{
setTableDataSource
(
res
.
data
)
setTotalCount
(
res
.
totalCount
)
})
},
[])
/**
* 如果info 更新 outerHistoryList也一起更新
*/
useEffect
(()
=>
{
setOuterHistoryList
(
info
?.
outerHistoryList
)
},
[
info
])
return
(
<
AnchorPage
title=
"
送货单管理详情(B2B)
"
<
AnchorPage
title=
"
收货单详情
"
anchors=
{
anchors
}
>
<
ContentBox
title=
{
BillsInfo
.
name
}
id=
{
BillsInfo
.
key
}
>
<
ContentBoxItem
label=
{
DeliveryNoLabel
}
>
{
info
?.
deliveryNo
}
</
ContentBoxItem
>
<
ContentBoxItem
label=
{
DeliveryAbstractLabel
}
>
{
info
?.
digest
}
</
ContentBoxItem
>
<
ContentBoxItem
label=
{
NoteLabel
}
>
{
info
?.
remark
}
</
ContentBoxItem
>
<
ContentBoxItem
label=
{
OutStatusLabel
}
>
{
info
?.
outerStatusName
}
</
ContentBoxItem
>
</
ContentBox
>
<
ContentBox
title=
{
Distribution
.
name
}
id=
{
Distribution
.
key
}
>
<
ContentBoxItem
label=
{
DeliveryDateLabel
}
>
{
info
?.
deliveryTime
}
</
ContentBoxItem
>
<
ContentBoxItem
label=
{
DeliveryNameLabel
}
>
{
info
?.
deliverVO
?.
consignee
}
</
ContentBoxItem
>
<
ContentBoxItem
label=
{
DeliveryTimeLabel
}
>
{
info
?.
sendTime
}
</
ContentBoxItem
>
<
ContentBoxItem
label=
{
DeliveryPhoneLabel
}
>
{
info
?.
deliverVO
?.
phone
}
</
ContentBoxItem
>
</
ContentBox
>
<
ContentBox
title=
{
DeliveryInfo
.
name
}
id=
{
DeliveryInfo
.
key
}
>
<
ContentBoxItem
label=
{
ConsigneeTimeLabel
}
>
</
ContentBoxItem
>
<
ContentBoxItem
label=
{
DeliveryAddrLabel
}
>
{
info
?.
deliveryTime
}
{
info
?.
deliveryStartTime
}
{
info
?.
deliveryEndTime
}
</
ContentBoxItem
>
<
ContentBoxItem
label=
{
DeliverySlefAddrLabel
}
>
<
ContentBoxItem
label=
{
info
?.
deliveryType
===
0
?
DeliveryAddrLabel
:
DeliverySlefAddrLabel
}
>
<
div
>
{
info
?.
deliverVO
?.
provinceName
}
{
info
?.
deliverVO
?.
cityName
}
{
info
?.
deliverVO
?.
districtName
}
{
info
?.
deliverVO
?.
streetName
}
{
info
?.
deliverVO
?.
address
}
</
div
>
<
div
>
{
info
?.
deliverVO
.
phone
}
{
info
?.
deliverVO
.
consignee
}
</
div
>
</
ContentBoxItem
>
...
...
@@ -80,26 +130,40 @@ const DeliveryNoticeManageSRMDetails: React.FC = () => {
<
ContentBox
title=
{
LogisticsInfo
.
name
}
id=
{
LogisticsInfo
.
key
}
>
<
ContentBoxItem
label=
{
DeliveryTypeLabel
}
>
{
service
.
getDeliveryType
(
info
?.
deliveryType
)
}
</
ContentBoxItem
>
<
ContentBoxItem
label=
{
LogisticsCarNoLabel
}
>
{
info
?.
executorVO
?.
carNumbers
}
</
ContentBoxItem
>
<
ContentBoxItem
label=
{
LogisticsCompanyLabel
}
>
{
info
?.
logisticsCompany
}
</
ContentBoxItem
>
<
ContentBoxItem
label=
{
LogisticsNoLabel
}
>
{
info
?.
logisticsNo
}
</
ContentBoxItem
>
</
ContentBox
>
<
ContentBox
title=
{
DeliveryGood
.
name
}
id=
{
DeliveryGood
.
key
}
cols=
{
1
}
>
<
Table
columns=
{
DeliveryNoticeTableColumn
}
/>
<
Table
columns=
{
DeliveryNoticeTableColumn
}
rowKey=
"id"
dataSource=
{
tableDataSource
}
pagination=
{
{
total
:
totalCount
}
}
/>
</
ContentBox
>
<
ContentBox
title=
{
ExternalRoamRecord
.
name
}
id=
{
ExternalRoamRecord
.
key
}
cols=
{
1
}
>
<
Table
columns=
{
ExternalRoamRecordTableColumn
}
rowKey=
"id"
dataSource=
{
outerHistoryList
}
/>
</
ContentBox
>
</
AnchorPage
>
)
...
...
src/pages/order/deliveryNotice/receivingNoteQuery/index.tsx
View file @
6c107f3a
...
...
@@ -3,33 +3,23 @@
* @author: Gavin
* @description:
*/
import
React
,
{
useRef
,
useState
}
from
'react'
import
{
PageHeaderWrapper
}
from
'@ant-design/pro-layout'
import
{
Card
,
Space
,
Tag
}
from
'antd'
import
StandardTable
from
'@/components/StandardTable'
import
{
ColumnType
}
from
'antd/lib/table'
import
TableOperation
from
'@/components/TableOperation'
import
EyePreview
from
'@/components/EyePreview'
import
NiceForm
from
'@/components/NiceForm'
import
{
createFormActions
}
from
'@formily/antd'
import
{
useStateFilterSearchLinkageEffect
}
from
'@/formSchema/effects/useFilterSearch'
import
{
FORM_FILTER_PATH
}
from
'@/formSchema/const'
import
{
receivingNoteQuerySchema
}
from
'./schema'
import
React
,
{
useRef
,
useState
}
from
'react'
import
{
PageHeaderWrapper
}
from
'@ant-design/pro-layout'
import
{
Card
,
Space
,
Tag
}
from
'antd'
import
StandardTable
from
'@/components/StandardTable'
import
{
ColumnType
}
from
'antd/lib/table'
import
TableOperation
from
'@/components/TableOperation'
import
EyePreview
from
'@/components/EyePreview'
import
NiceForm
from
'@/components/NiceForm'
import
{
createFormActions
}
from
'@formily/antd'
import
{
useStateFilterSearchLinkageEffect
}
from
'@/formSchema/effects/useFilterSearch'
import
{
FORM_FILTER_PATH
}
from
'@/formSchema/const'
import
{
receivingNoteQuerySchema
}
from
'./schema'
import
{
TagStatusFactory
}
from
'../../utils'
import
NoteFactoryService
from
'../../assets/handles/DeliveryNoteService'
const
tagStatusColor
=
{
// 待提交
2
:
{
color
:
'#f4f5f7'
,
fontColor
:
'#5c626a'
},
// 待确认
3
:
{
color
:
'#ecf2fe'
,
fontColor
:
'#4787f0'
},
// 待修订
4
:
{
color
:
'#eae6ff'
,
fontColor
:
'#9963d8'
},
// 已确认
5
:
{
color
:
'#ebf9f6'
,
fontColor
:
'#00a98f'
},
// 已生产送货单
6
:
{
color
:
'#f0f5ff'
,
fontColor
:
'#f0f5ff'
},
// 已作废
7
:
{
color
:
'#fff2f0'
,
fontColor
:
'#ff4d4f'
},
}
const
tagStatus
=
TagStatusFactory
.
getInstance
();
const
service
=
NoteFactoryService
.
getInstance
(
"receive"
);
const
ReceivingNoteQuery
:
React
.
FC
=
()
=>
{
const
ref
=
useRef
<
any
>
({})
...
...
@@ -54,29 +44,32 @@ const ReceivingNoteQuery: React.FC = () => {
/>
)
}
const
columns
:
ColumnType
<
unknown
>
[]
=
[
const
columns
:
ColumnType
<
any
>
[]
=
[
{
title
:
'收货单号'
,
dataIndex
:
'
id
'
,
key
:
'
id
'
,
dataIndex
:
'
receiveNo
'
,
key
:
'
receiveNo
'
,
width
:
160
,
render
:
(
t
ext
:
unknown
,
record
:
unknown
)
=>
<
EyePreview
url=
'/memberCenter/order/deliveryNotice/receivingNoteQuery/details'
>
{
text
}
</
EyePreview
>
render
:
(
t
,
r
)
=>
<
EyePreview
url=
{
`/memberCenter/order/deliveryNotice/receivingNoteQuery/details?id=${r.id}`
}
>
{
r
.
receiveNo
}
</
EyePreview
>
},
{
title
:
'收货单摘要'
,
dataIndex
:
'
id2'
,
key
:
'id2
'
},
{
title
:
'收货日期'
,
dataIndex
:
'
id3'
,
key
:
'id3
'
},
{
title
:
'送货单号'
,
dataIndex
:
'
id3'
,
key
:
'id3
'
},
{
title
:
'送货日期'
,
dataIndex
:
'
id3'
,
key
:
'id3
'
},
{
title
:
'采购会员'
,
dataIndex
:
'
id5'
,
key
:
'id5
'
},
{
title
:
'单据时间'
,
dataIndex
:
'
id4'
,
key
:
'id4
'
},
{
title
:
'收货单摘要'
,
dataIndex
:
'
digest'
,
key
:
'digest
'
},
{
title
:
'收货日期'
,
dataIndex
:
'
receiveTime'
,
key
:
'receiveTime
'
},
{
title
:
'送货单号'
,
dataIndex
:
'
deliveryNo'
,
key
:
'deliveryNo
'
},
{
title
:
'送货日期'
,
dataIndex
:
'
deliveryTime'
,
key
:
'deliveryTime
'
},
{
title
:
'采购会员'
,
dataIndex
:
'
vendorMemberName'
,
key
:
'vendorMemberName
'
},
{
title
:
'单据时间'
,
dataIndex
:
'
createTime'
,
key
:
'createTime
'
},
{
title
:
'外部状态'
,
dataIndex
:
'id6'
,
key
:
'id6'
,
render
:
(
text
:
string
,
record
:
any
)
=>
(
<
Tag
color=
{
tagStatusColor
[
record
.
id
]?.
color
}
>
<
span
style=
{
{
color
:
tagStatusColor
[
record
.
id
]?.
fontColor
}
}
>
{
text
}
</
span
>
</
Tag
>
)
dataIndex
:
'outerStatusName'
,
key
:
'outerStatusName'
,
render
:
(
text
:
string
,
record
:
any
)
=>
{
const
styles
=
tagStatus
.
getTagStyle
(
record
.
id
)
return
(
<
Tag
color=
{
styles
.
bgColor
}
>
<
span
style=
{
{
color
:
styles
.
fontColor
}
}
>
{
styles
.
txt
}
</
span
>
</
Tag
>
)
}
},
{
title
:
'操作'
,
...
...
@@ -88,22 +81,7 @@ const ReceivingNoteQuery: React.FC = () => {
]
const
fetchData
=
(
params
:
unknown
)
=>
{
console
.
log
(
'params :>> '
,
params
);
return
new
Promise
((
resolve
)
=>
{
const
data
=
{
totalCount
:
1
,
data
:
[
{
id
:
1
,
id2
:
2
,
id3
:
3
,
id4
:
4
,
id5
:
5
,
id6
:
6
},
{
id
:
2
,
id2
:
3
,
id3
:
4
,
id4
:
5
,
id5
:
6
,
id6
:
7
},
{
id
:
3
,
id2
:
3
,
id3
:
4
,
id4
:
5
,
id5
:
6
,
id6
:
7
},
{
id
:
4
,
id2
:
3
,
id3
:
4
,
id4
:
5
,
id5
:
6
,
id6
:
7
},
{
id
:
5
,
id2
:
3
,
id3
:
4
,
id4
:
5
,
id5
:
6
,
id6
:
7
},
{
id
:
6
,
id2
:
3
,
id3
:
4
,
id4
:
5
,
id5
:
6
,
id6
:
7
},
{
id
:
7
,
id2
:
3
,
id3
:
4
,
id4
:
5
,
id5
:
6
,
id6
:
7
},
{
id
:
8
,
id2
:
3
,
id3
:
4
,
id4
:
5
,
id5
:
6
,
id6
:
7
},
]
}
resolve
(
data
)
})
return
service
.
getQuery
(
params
)
}
return
(
...
...
src/pages/order/receivingNote/deliveryNoteManage/add.tsx
View file @
6c107f3a
This diff is collapsed.
Click to expand it.
src/pages/order/receivingNote/deliveryNoteManage/index.tsx
View file @
6c107f3a
...
...
@@ -35,7 +35,7 @@ const DeliveryNoteManage: React.FC = () => {
}
const
buttonGroup
=
{
'修改'
:
true
,
'作废'
:
tru
e
,
'作废'
:
fals
e
,
'查看'
:
true
,
}
const
operationHandler
=
{
...
...
@@ -51,13 +51,16 @@ const DeliveryNoteManage: React.FC = () => {
/>
)
}
const
columns
:
ColumnType
<
unknown
>
[]
=
[
const
columns
:
ColumnType
<
any
>
[]
=
[
{
title
:
'收货单号'
,
dataIndex
:
'id'
,
key
:
'id'
,
width
:
160
,
render
:
(
text
:
unknown
,
record
:
unknown
)
=>
<
EyePreview
url=
'/memberCenter/order/receivingNote/deliveryNoteManage/details'
>
{
text
}
</
EyePreview
>
render
:
(
text
,
record
)
=>
<
EyePreview
url=
'/memberCenter/order/receivingNote/deliveryNoteManage/details'
>
{
text
}
</
EyePreview
>
},
{
title
:
'收货单摘要'
,
dataIndex
:
'digest'
,
key
:
'digest'
},
{
title
:
'送货单号'
,
dataIndex
:
'deliveryNo'
,
key
:
'deliveryNo'
},
...
...
src/pages/order/receivingNote/deliveryNoteQuery/index.tsx
View file @
6c107f3a
...
...
@@ -17,30 +17,19 @@ import { FORM_FILTER_PATH } from '@/formSchema/const'
import
{
deliveryNoteQuerySchema
}
from
'./schema'
import
ReceiveNoteFacotry
from
'../../assets/handles/ReceiveNotePage'
import
{
TagStatusFactory
}
from
'../../utils'
import
{
useHistory
}
from
'umi'
interface
IStatusEnum
{
[
key
:
number
]:
{
color
:
string
,
fontColor
:
string
}
}
enum
StatusEnum
{
ToSbumit
=
2
}
const
service
=
ReceiveNoteFacotry
.
getInstance
(
'Query'
)
const
tagStatus
=
TagStatusFactory
.
getInstance
();
const
DeliveryNoteQuery
:
React
.
FC
=
()
=>
{
const
ref
=
useRef
<
any
>
({})
const
formActions
=
createFormActions
()
const
service
=
ReceiveNoteFacotry
.
getInstance
(
'Query'
)
const
tagStatus
=
TagStatusFactory
.
getInstance
();
const
history
=
useHistory
()
const
controllerBtns
=
(<
Space
></
Space
>)
const
renderOptionButton
=
(
r
ecord
:
any
)
=>
{
const
renderOptionButton
=
(
r
:
any
)
=>
{
const
btnAuthOfOperationTextMap
=
{
'生产收货单'
:
'DevTest'
,
'查看'
:
'DevTest'
,
...
...
@@ -50,7 +39,9 @@ const DeliveryNoteQuery: React.FC = () => {
'查看'
:
true
,
}
const
operationHandler
=
{
'生产收货单'
:
()
=>
{
console
.
log
(
'生产收货单 :>> '
,)
},
'生产收货单'
:
()
=>
{
history
.
push
(
`/memberCenter/order/receivingNote/deliveryNoteManage/add?id=
${
r
.
id
}
`
)
},
'查看'
:
()
=>
{
console
.
log
(
'查看 :>> '
,)
},
}
return
(
...
...
@@ -61,13 +52,13 @@ const DeliveryNoteQuery: React.FC = () => {
/>
)
}
const
columns
:
ColumnType
<
unknown
>
[]
=
[
const
columns
:
ColumnType
<
any
>
[]
=
[
{
title
:
'收货单号'
,
dataIndex
:
'id'
,
key
:
'id'
,
width
:
160
,
render
:
(
t
ext
:
unknown
,
record
:
unknown
)
=>
<
EyePreview
url=
'/memberCenter/order/receivingNote/deliveryNoteQuery/details'
>
{
text
}
</
EyePreview
>
render
:
(
t
:
any
,
r
:
any
)
=>
<
EyePreview
url=
{
`/memberCenter/order/receivingNote/deliveryNoteQuery/details?id=${r.id}`
}
>
{
r
.
deliveryNo
}
</
EyePreview
>
},
{
title
:
'收货单摘要'
,
dataIndex
:
'digest'
,
key
:
'digest'
},
{
title
:
'收货日期'
,
dataIndex
:
'receiveTime'
,
key
:
'receiveTime'
},
...
...
@@ -82,7 +73,7 @@ const DeliveryNoteQuery: React.FC = () => {
const
styles
=
tagStatus
.
getTagStyle
(
record
.
outerStatus
)
return
(
<
Tag
color=
{
styles
.
bgColor
}
>
<
span
style=
{
{
color
:
styles
.
fontColor
}
}
>
{
record
.
outerStatus
}
</
span
>
<
span
style=
{
{
color
:
styles
.
fontColor
}
}
>
{
styles
.
txt
}
</
span
>
</
Tag
>
)
}
...
...
@@ -97,7 +88,7 @@ const DeliveryNoteQuery: React.FC = () => {
]
const
fetchData
=
(
params
:
unknown
)
=>
{
return
service
.
getQuery
(
params
)
.
then
(
res
=>
res
.
data
)
return
service
.
getQuery
(
params
)
}
return
(
...
...
src/pages/order/utils/status.ts
View file @
6c107f3a
interface
StatusStyle
{
bgColor
:
string
,
fontColor
:
string
txt
:
string
}
interface
StatusStyleItem
{
[
key
:
string
]:
StatusStyle
...
...
@@ -42,31 +43,31 @@ class TagStatus {
}
defaultStatusStyle
()
{
return
{
bgColor
:
'#f2f4f5'
,
fontColor
:
'#000'
}
return
{
bgColor
:
'#f2f4f5'
,
fontColor
:
'#000'
,
txt
:
'默认'
}
}
toSbumitStatusStyle
()
{
return
{
bgColor
:
'#f4f5f7'
,
fontColor
:
'#5c626a'
};
return
{
bgColor
:
'#f4f5f7'
,
fontColor
:
'#5c626a'
,
txt
:
'待提交'
};
}
toBeConfirmedStyle
()
{
return
{
bgColor
:
'#ecf2fe'
,
fontColor
:
'#4787f0'
};
return
{
bgColor
:
'#ecf2fe'
,
fontColor
:
'#4787f0'
,
txt
:
'待确认'
};
}
toBeModifiedStyle
()
{
return
{
bgColor
:
'#eae6ff'
,
fontColor
:
'#9963d8'
}
return
{
bgColor
:
'#eae6ff'
,
fontColor
:
'#9963d8'
,
txt
:
'待修改'
}
}
confirmedStyle
()
{
return
{
bgColor
:
'#ebf9f6'
,
fontColor
:
'#00a98f'
}
return
{
bgColor
:
'#ebf9f6'
,
fontColor
:
'#00a98f'
,
txt
:
'已确认'
}
}
generatedStyle
()
{
return
{
bgColor
:
'#f0f5ff'
,
fontColor
:
'#f0f5ff'
}
return
{
bgColor
:
'#f0f5ff'
,
fontColor
:
'#f0f5ff'
,
txt
:
'已确认'
}
}
voidedStyle
()
{
return
{
bgColor
:
'#fff2f0'
,
fontColor
:
'#ff4d4f'
}
return
{
bgColor
:
'#fff2f0'
,
fontColor
:
'#ff4d4f'
,
txt
:
'已确认'
}
}
/**
...
...
@@ -93,7 +94,7 @@ class TagStatus {
}
class
TagStatusFactory
{
static
getInstance
(){
static
getInstance
()
{
return
new
TagStatus
();
}
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment