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
shenshaokai
jinfa-platform
Commits
a7a359aa
Commit
a7a359aa
authored
May 09, 2022
by
XieZhiXiong
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
feat: 完善查看关联请购单弹窗
parent
b6e61238
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
60 additions
and
50 deletions
+60
-50
index.tsx
src/pages/transaction/components/orderProductTable/index.tsx
+4
-9
index.tsx
...rderCollectSrm/components/requisitionModalTable/index.tsx
+48
-29
index.tsx
...pages/transaction/purchaseOrder/orderCollectSrm/index.tsx
+5
-5
useMaterialTable.tsx
.../purchaseOrder/orderCollectSrm/model/useMaterialTable.tsx
+3
-7
No files found.
src/pages/transaction/components/orderProductTable/index.tsx
View file @
a7a359aa
...
@@ -4,7 +4,7 @@ import { OrderDetailContext } from '../../_public/order/context'
...
@@ -4,7 +4,7 @@ import { OrderDetailContext } from '../../_public/order/context'
import
{
EditOutlined
}
from
'@ant-design/icons'
import
{
EditOutlined
}
from
'@ant-design/icons'
import
styled
from
'styled-components'
import
styled
from
'styled-components'
import
MellowCard
from
'@/components/MellowCard'
import
MellowCard
from
'@/components/MellowCard'
import
RequisitionModalTable
from
'../../purchaseOrder/orderCollectSrm/components/requisitionModalTable'
import
RequisitionModalTable
,
{
RequisitionModalTableRef
}
from
'../../purchaseOrder/orderCollectSrm/components/requisitionModalTable'
import
{
OrderKindType
,
OrderModalType
}
from
'@/constants/order'
import
{
OrderKindType
,
OrderModalType
}
from
'@/constants/order'
import
{
AddressPop
}
from
'../addressPop'
import
{
AddressPop
}
from
'../addressPop'
import
{
getIntl
}
from
'umi'
import
{
getIntl
}
from
'umi'
...
@@ -183,7 +183,7 @@ const EditableCell: React.FC<EditableCellProps> = ({
...
@@ -183,7 +183,7 @@ const EditableCell: React.FC<EditableCellProps> = ({
};
};
const
OrderProductTable
:
React
.
FC
<
OrderProductTableProps
>
=
({
editable
})
=>
{
const
OrderProductTable
:
React
.
FC
<
OrderProductTableProps
>
=
({
editable
})
=>
{
const
requisitionRef
=
useRef
<
any
>
({}
)
// 关联请购单
const
requisitionRef
=
useRef
<
RequisitionModalTableRef
|
null
>
(
null
)
// 关联请购单
const
{
ctl
,
data
,
preview
}
=
useContext
(
OrderDetailContext
)
const
{
ctl
,
data
,
preview
}
=
useContext
(
OrderDetailContext
)
const
{
product
=
[],
orderMode
,
orderKind
}
=
data
||
{}
const
{
product
=
[],
orderMode
,
orderKind
}
=
data
||
{}
const
creditsCommodity
=
(
orderMode
===
10
||
orderMode
===
25
)
// @todo 积分或渠道积分下单模式
const
creditsCommodity
=
(
orderMode
===
10
||
orderMode
===
25
)
// @todo 积分或渠道积分下单模式
...
@@ -436,17 +436,12 @@ const OrderProductTable:React.FC<OrderProductTableProps> = ({editable}) => {
...
@@ -436,17 +436,12 @@ const OrderProductTable:React.FC<OrderProductTableProps> = ({editable}) => {
return
orderMode
===
OrderModalType
.
PURCHASE_REQUISITION_CONTRACT_ORDER
&&
<>
return
orderMode
===
OrderModalType
.
PURCHASE_REQUISITION_CONTRACT_ORDER
&&
<>
<
Button
<
Button
type=
"link"
type=
"link"
onClick=
{
()
=>
{
onClick=
{
()
=>
requisitionRef
.
current
?.
show
(
record
.
requisitions
||
[])
}
if
(
requisitionRef
)
{
requisitionRef
.
current
.
setCurrentMaterial
(
record
)
requisitionRef
.
current
.
setVisible
(
true
)
}
}
}
>
>
{
/* 关联请购单 */
}
{
/* 关联请购单 */
}
{
intl
.
formatMessage
({
id
:
'transaction_components.guanlianqinggoudan'
})
}
{
intl
.
formatMessage
({
id
:
'transaction_components.guanlianqinggoudan'
})
}
</
Button
>
</
Button
>
<
RequisitionModalTable
currentR
ef=
{
requisitionRef
}
/>
<
RequisitionModalTable
r
ef=
{
requisitionRef
}
/>
</>
</>
},
},
width
:
152
,
width
:
152
,
...
...
src/pages/transaction/purchaseOrder/orderCollectSrm/components/requisitionModalTable/index.tsx
View file @
a7a359aa
import
React
,
{
useEffect
,
useState
}
from
'react'
import
React
,
{
useRef
,
useImperativeHandle
}
from
'react'
import
{
useIntl
}
from
'umi'
import
ModalTable
,
{
ModalTableProps
}
from
'@/components/ModalTable'
import
ModalTable
,
{
ModalTableProps
}
from
'@/components/ModalTable'
import
{
useModalTable
}
from
'../../model/useModalTable'
import
{
ISchemaFormActions
,
ISchemaFormAsyncActions
}
from
'@formily/antd'
import
{
ISchemaFormActions
,
ISchemaFormAsyncActions
}
from
'@formily/antd'
import
{
getContractPurchaseRequisitionPageByProductIds
,
GetContractPurchaseRequisitionPageByProductIdsRequest
}
from
'@/services/ContractV2Api'
import
{
requisitionColumns
}
from
'../../constant'
import
{
requisitionColumns
}
from
'../../constant'
import
{
getOrderBuyerFindRequisition
}
from
'@/services/OrderNewV2Api'
import
{
useModalTable
}
from
'../../model/useModalTable'
import
{
useIntl
}
from
'umi'
type
RequisitionType
=
{
/**
* 请购单id
*/
requisitionId
:
number
,
/**
* 下单数量
*/
orderQuantity
:
number
,
}
export
interface
Contract
ModalTableProps
extends
ModalTableProps
{
export
interface
Requisition
ModalTableProps
extends
ModalTableProps
{
type
?:
'radio'
|
'checkbox'
,
type
?:
'radio'
|
'checkbox'
,
schemaAction
?:
ISchemaFormActions
|
ISchemaFormAsyncActions
,
schemaAction
?:
ISchemaFormActions
|
ISchemaFormAsyncActions
,
currentRef
?:
any
,
currentRef
?:
any
,
confirmModal
?()
confirmModal
?()
}
}
export
interface
RequisitionModalTableRef
{
show
:
(
record
:
RequisitionType
[])
=>
void
,
}
// 关联请购单弹窗
// 关联请购单弹窗
const
RequisitionModalTable
:
React
.
FC
<
ContractModalTableProps
>
=
(
props
)
=>
{
const
RequisitionModalTable
:
React
.
ForwardRefRenderFunction
<
RequisitionModalTableRef
,
RequisitionModalTableProps
>
=
(
props
,
ref
)
=>
{
const
{
type
=
'radio'
,
schemaAction
,
confirmModal
,
currentRef
,
...
restProps
}
=
props
const
{
type
=
'radio'
,
schemaAction
,
confirmModal
,
currentRef
,
...
restProps
}
=
props
const
{
visible
,
setVisible
}
=
useModalTable
({
type
})
const
{
visible
,
setVisible
}
=
useModalTable
({
type
})
const
intl
=
useIntl
()
const
intl
=
useIntl
()
const
[
currentMaterial
,
setCurrentMaterial
]
=
useState
<
any
>
()
const
requisitions
=
useRef
<
RequisitionType
[]
>
([]);
const
fetchTableData
=
async
(
params
)
=>
{
const
fetchTableData
=
async
(
params
)
=>
{
if
(
currentMaterial
)
{
const
res
=
await
getContractPurchaseRequisitionPageByProductIds
({
if
(
Array
.
isArray
(
currentMaterial
.
requisitionList
))
{
prpIdsStr
:
requisitions
.
current
.
map
((
item
)
=>
item
.
requisitionId
).
join
(
','
),
// 参数有传列表数据进来,直接赋值给表格
}
as
GetContractPurchaseRequisitionPageByProductIdsRequest
)
return
currentMaterial
.
requisitionList
if
(
res
.
code
===
1000
)
{
}
else
{
const
compountedData
=
res
.
data
.
data
.
map
((
item
)
=>
{
// 参数没有传列表数据进来,则根据 商品id 请求 关联请购单
const
currentEntity
=
requisitions
.
current
.
find
((
requisition
)
=>
requisition
.
requisitionId
===
item
.
prpId
)
||
{}
return
(
await
getOrderBuyerFindRequisition
({
return
({
...
params
,
...
item
,
productId
:
currentMaterial
.
productId
,
...
currentEntity
,
},
{
useCache
:
true
,
ttl
:
10
*
1000
})).
data
})
})
return
{
...
res
.
data
,
data
:
compountedData
,
}
}
}
}
return
{
data
:
[],
totalCount
:
0
}
}
}
/** 弹窗内 表格组件 参数 */
/** 弹窗内 表格组件 参数 */
...
@@ -42,20 +62,19 @@ const RequisitionModalTable:React.FC<ContractModalTableProps> = (props) => {
...
@@ -42,20 +62,19 @@ const RequisitionModalTable:React.FC<ContractModalTableProps> = (props) => {
columns
:
requisitionColumns
,
columns
:
requisitionColumns
,
fetchTableData
,
fetchTableData
,
tableProps
:
{
tableProps
:
{
rowKey
:
'
requisition
Id'
,
rowKey
:
'
prp
Id'
,
scroll
:
{
x
:
1200
},
scroll
:
{
x
:
1200
},
}
}
}
}
useEffect
(()
=>
{
const
handleShow
=
(
records
:
RequisitionType
[])
=>
{
if
(
currentRef
)
{
requisitions
.
current
=
records
;
currentRef
.
current
=
{
setVisible
(
true
);
visible
,
};
setVisible
,
setCurrentMaterial
,
useImperativeHandle
(
ref
,
()
=>
({
}
show
:
handleShow
,
}
}))
},
[])
return
(
return
(
<
ModalTable
<
ModalTable
...
@@ -76,6 +95,6 @@ const RequisitionModalTable:React.FC<ContractModalTableProps> = (props) => {
...
@@ -76,6 +95,6 @@ const RequisitionModalTable:React.FC<ContractModalTableProps> = (props) => {
)
)
}
}
RequisitionModalTable
.
defaultProps
=
{}
const
RequisitionModalTableForWard
=
React
.
forwardRef
<
RequisitionModalTableRef
,
RequisitionModalTableProps
>
(
RequisitionModalTable
);
export
default
RequisitionModalTable
export
default
RequisitionModalTable
ForWard
src/pages/transaction/purchaseOrder/orderCollectSrm/index.tsx
View file @
a7a359aa
...
@@ -19,7 +19,7 @@ import { useMaterialTable } from './model/useMaterialTable'
...
@@ -19,7 +19,7 @@ import { useMaterialTable } from './model/useMaterialTable'
import
{
convertOrderMaterialData
}
from
'./utils'
;
import
{
convertOrderMaterialData
}
from
'./utils'
;
import
ContractModalTable
from
'./components/contractModalTable'
import
ContractModalTable
from
'./components/contractModalTable'
import
MaterialModalTable
from
'./components/materialModalTable'
import
MaterialModalTable
from
'./components/materialModalTable'
import
RequisitionModalTable
from
'./components/requisitionModalTable'
import
RequisitionModalTable
,
{
RequisitionModalTableRef
}
from
'./components/requisitionModalTable'
import
OrderMaterialsDrawer
,
{
OrderMaterialsConfirmValue
,
OrderMaterialsDrawerRef
}
from
'./components/orderMaterialsDrawer'
import
OrderMaterialsDrawer
,
{
OrderMaterialsConfirmValue
,
OrderMaterialsDrawerRef
}
from
'./components/orderMaterialsDrawer'
import
{
useAsyncSelect
}
from
'@/formSchema/effects/useAsyncSelect'
import
{
useAsyncSelect
}
from
'@/formSchema/effects/useAsyncSelect'
import
{
OrderModalType
}
from
'@/constants/order'
import
{
OrderModalType
}
from
'@/constants/order'
...
@@ -99,7 +99,6 @@ const PurchaseOrderDetail:React.FC<PurchaseOrderDetailProps> = (props) => {
...
@@ -99,7 +99,6 @@ const PurchaseOrderDetail:React.FC<PurchaseOrderDetailProps> = (props) => {
const
shopDataRef
=
useRef
<
any
>
({})
const
shopDataRef
=
useRef
<
any
>
({})
const
intl
=
useIntl
()
const
intl
=
useIntl
()
const
contractOrderRef
=
useRef
<
any
>
({})
// 合同下单选采购合同
const
contractOrderRef
=
useRef
<
any
>
({})
// 合同下单选采购合同
const
requisitionRef
=
useRef
<
any
>
({})
// 关联请购单
const
[
formLoading
,
setFormLoading
]
=
useState
(
false
)
const
[
formLoading
,
setFormLoading
]
=
useState
(
false
)
const
[
btnLoading
,
setBtnLoading
]
=
useState
(
false
)
const
[
btnLoading
,
setBtnLoading
]
=
useState
(
false
)
const
update
=
useUpdate
()
const
update
=
useUpdate
()
...
@@ -115,9 +114,10 @@ const PurchaseOrderDetail:React.FC<PurchaseOrderDetailProps> = (props) => {
...
@@ -115,9 +114,10 @@ const PurchaseOrderDetail:React.FC<PurchaseOrderDetailProps> = (props) => {
return
resultState
return
resultState
})
})
const
[
visibleOrderMaterialsDrawer
,
setVisibleOrderMaterialsDrawer
]
=
useState
(
false
)
const
[
visibleOrderMaterialsDrawer
,
setVisibleOrderMaterialsDrawer
]
=
useState
(
false
)
const
{
formContext
}
=
useFormDetail
()
const
{
formContext
}
=
useFormDetail
()
const
requisitionRef
=
useRef
<
RequisitionModalTableRef
|
null
>
(
null
)
// 关联请购单
const
orderMaterialsDrawerRef
=
useRef
<
OrderMaterialsDrawerRef
|
null
>
(
null
)
const
orderMaterialsDrawerRef
=
useRef
<
OrderMaterialsDrawerRef
|
null
>
(
null
)
const
handleVisibleOrderMaterialsDrawer
=
(
flag
?:
boolean
)
=>
{
const
handleVisibleOrderMaterialsDrawer
=
(
flag
?:
boolean
)
=>
{
...
@@ -439,7 +439,7 @@ const PurchaseOrderDetail:React.FC<PurchaseOrderDetailProps> = (props) => {
...
@@ -439,7 +439,7 @@ const PurchaseOrderDetail:React.FC<PurchaseOrderDetailProps> = (props) => {
{
/* 选择采购物料 */
}
{
/* 选择采购物料 */
}
<
MaterialModalTable
currentRef=
{
materialRef
}
schemaAction=
{
addSchemaAction
}
sectionProps=
{
surplusProps
}
/>
<
MaterialModalTable
currentRef=
{
materialRef
}
schemaAction=
{
addSchemaAction
}
sectionProps=
{
surplusProps
}
/>
{
/* 查看关联请购单 */
}
{
/* 查看关联请购单 */
}
<
RequisitionModalTable
currentR
ef=
{
requisitionRef
}
schemaAction=
{
addSchemaAction
}
/>
<
RequisitionModalTable
r
ef=
{
requisitionRef
}
schemaAction=
{
addSchemaAction
}
/>
{
/* 选择采购物料抽屉 */
}
{
/* 选择采购物料抽屉 */
}
<
OrderMaterialsDrawer
<
OrderMaterialsDrawer
...
...
src/pages/transaction/purchaseOrder/orderCollectSrm/model/useMaterialTable.tsx
View file @
a7a359aa
...
@@ -7,6 +7,7 @@ import { useModalTable } from './useModalTable';
...
@@ -7,6 +7,7 @@ import { useModalTable } from './useModalTable';
import
{
usePageStatus
,
PageStatus
}
from
'@/hooks/usePageStatus'
;
import
{
usePageStatus
,
PageStatus
}
from
'@/hooks/usePageStatus'
;
import
{
useIntl
}
from
'umi'
;
import
{
useIntl
}
from
'umi'
;
import
{
OrderModalType
}
from
'@/constants/order'
;
import
{
OrderModalType
}
from
'@/constants/order'
;
import
{
RequisitionModalTableRef
}
from
'../components/requisitionModalTable'
;
// 对象按key排序(运用于商城传过来的阶梯价格排序)
// 对象按key排序(运用于商城传过来的阶梯价格排序)
export
const
sortByKey
=
(
params
)
=>
{
export
const
sortByKey
=
(
params
)
=>
{
...
@@ -29,7 +30,7 @@ export const getUnitPriceTotal = (record) => {
...
@@ -29,7 +30,7 @@ export const getUnitPriceTotal = (record) => {
export
const
useMaterialTable
=
(
export
const
useMaterialTable
=
(
ctx
:
ISchemaFormActions
|
ISchemaFormAsyncActions
,
ctx
:
ISchemaFormActions
|
ISchemaFormAsyncActions
,
orderMode
=
ctx
.
getFieldValue
(
'orderMode'
),
orderMode
=
ctx
.
getFieldValue
(
'orderMode'
),
requisitionRef
?:
React
.
MutableRefObject
<
any
>
,
requisitionRef
?:
React
.
MutableRefObject
<
RequisitionModalTableRef
>
,
onClickAdd
?:
()
=>
void
,
onClickAdd
?:
()
=>
void
,
onDeleteRecord
?:
(
record
:
any
)
=>
void
,
onDeleteRecord
?:
(
record
:
any
)
=>
void
,
)
=>
{
)
=>
{
...
@@ -69,12 +70,7 @@ export const useMaterialTable = (
...
@@ -69,12 +70,7 @@ export const useMaterialTable = (
tempColumn
[
associatedIndex
].
render
=
(
text
,
record
)
=>
(
tempColumn
[
associatedIndex
].
render
=
(
text
,
record
)
=>
(
<
Button
<
Button
type=
"link"
type=
"link"
onClick=
{
()
=>
{
onClick=
{
()
=>
requisitionRef
.
current
?.
show
(
record
.
requisitions
||
[])
}
if
(
requisitionRef
)
{
requisitionRef
.
current
.
setCurrentMaterial
(
record
)
requisitionRef
.
current
.
setVisible
(
true
)
}
}
}
>
>
关联请购单
关联请购单
</
Button
>
</
Button
>
...
...
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