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
156ff3ea
Commit
156ff3ea
authored
Dec 22, 2020
by
Bill
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'dev' of 10.0.0.22:lingxi/lingxi-business-paltform into dev
parents
196d77b5
cd578616
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
1010 additions
and
577 deletions
+1010
-577
index.tsx
src/components/ModalTable/index.tsx
+149
-149
CustomRelevance.tsx
src/components/NiceForm/components/CustomRelevance.tsx
+135
-132
columns.ts
...on/stockSellStorage/bills/components/BillsForm/columns.ts
+187
-0
useBusinessEffects.ts
.../bills/components/BillsForm/effects/useBusinessEffects.ts
+75
-259
fetchBillList.ts
...ckSellStorage/bills/components/BillsForm/fetchBillList.ts
+268
-0
index.tsx
...ion/stockSellStorage/bills/components/BillsForm/index.tsx
+118
-37
index.ts
...ockSellStorage/bills/components/BillsForm/schema/index.ts
+78
-0
No files found.
src/components/ModalTable/index.tsx
View file @
156ff3ea
import
React
,
{
ReactText
,
useRef
,
useEffect
,
useLayoutEffect
}
from
'react'
;
import
{
StandardTable
}
from
'god'
;
import
NestTable
from
'@/components/NestTable'
;
import
{
IStandardTableProps
}
from
'god/dist/src/standard-table'
;
import
{
Row
,
Col
,
Modal
}
from
'antd'
;
import
{
productModalSchema
,
productModalByMemberSchema
,
memberModalSchema
,
inquirySchema
,
demandSchema
,
enquirySchema
,
mergeOrderSchema
,
goodsModalSchema
,
demandNumberSchema
,
logisticsDeliverySearchSchema
,
addOrderModalSchema
,
logisticsSelectGoodsSearchSchema
,
SelectRfqOrderSearchSchema
}
from
'./schema'
;
import
Search
from
'../NiceForm/components/Search'
;
import
SearchSelect
from
'../NiceForm/components/SearchSelect'
;
import
Submit
from
'../NiceForm/components/Submit'
;
import
{
useStateFilterSearchLinkageEffect
}
from
'@/formSchema/effects/useFilterSearch'
;
import
{
FORM_FILTER_PATH
}
from
'@/formSchema/const'
;
import
DateSelect
from
'../NiceForm/components/DateSelect'
;
export
interface
ModalTableProps
extends
IStandardTableProps
<
any
>
{
width
?:
number
,
modalTitle
?:
ReactText
,
confirm
?(),
cancel
?(),
visible
?:
boolean
,
resetModal
?:
object
,
modalType
?:
'productByDefault'
|
'productByMember'
|
'memberByDefault'
|
'inquiryByDefault'
|
'demandByDefault'
|
'enquiryModel'
|
'MergeOrderByDefault'
|
'goodsModalSchema'
|
'demandNumberSchema'
|
'logisticsDelivery'
|
'addOrderModalSchema'
|
'selectGoodsSchema'
|
'selectRfqOrder'
|
'none'
,
useNestTable
?:
boolean
,
// 是否使用嵌套表格
nestColumns
?:
any
[],
nestTableProps
?:
any
,
// fix: 新增参数, 为true时每次开启弹窗都会重新reload接口
forceRender
?:
boolean
,
searchName
?:
string
}
const
ModalTable
:
React
.
FC
<
ModalTableProps
>
=
(
props
)
=>
{
const
{
width
=
704
,
modalTitle
,
confirm
,
cancel
,
visible
,
currentRef
,
resetModal
,
modalType
=
'none'
,
forceRender
,
useNestTable
=
false
,
nestColumns
,
nestTableProps
,
searchName
,
...
resetTable
}
=
props
const
selfRef
=
currentRef
||
useRef
<
any
>
({})
useEffect
(()
=>
{
if
(
visible
&&
forceRender
)
{
// 重新开启时需reload接口
// fix: 去掉自动reload接口, 防止重复请求
// fix: 新增forceRender接口, 用于控制弹窗是否需要reload
selfRef
.
current
.
reload
&&
selfRef
.
current
.
reload
()
}
else
{
selfRef
.
current
.
resetField
&&
selfRef
.
current
.
resetField
({
validate
:
false
})
}
},
[
visible
])
const
modelSchemaRender
=
()
=>
{
switch
(
modalType
)
{
case
'productByDefault'
:
{
return
productModalSchema
}
case
'productByMember'
:
{
return
productModalByMemberSchema
}
case
'memberByDefault'
:
{
return
memberModalSchema
}
case
'inquiryByDefault'
:
{
return
inquirySchema
}
case
'enquiryModel'
:{
return
enquirySchema
}
case
'demandByDefault'
:
{
return
demandSchema
}
case
'MergeOrderByDefault'
:
{
return
mergeOrderSchema
}
case
'goodsModalSchema'
:
{
return
goodsModalSchema
}
case
'demandNumberSchema'
:
{
return
demandNumberSchema
}
case
'logisticsDelivery'
:
{
return
logisticsDeliverySearchSchema
}
case
'addOrderModalSchema'
:
{
return
addOrderModalSchema
}
case
'selectGoodsSchema'
:
{
return
logisticsSelectGoodsSearchSchema
}
case
'selectRfqOrder'
:
{
return
SelectRfqOrderSearchSchema
}
case
'none'
:
{
return
{}
}
}
}
return
(
<
Modal
width=
{
width
}
title=
{
modalTitle
}
onOk=
{
confirm
}
onCancel=
{
cancel
}
visible=
{
visible
}
{
...
resetModal
}
>
{
useNestTable
?
(
<
NestTable
NestColumns=
{
nestColumns
}
className=
"common_tb"
rowClassName=
{
(
_
,
index
)
=>
(
index
%
2
)
===
0
&&
"tb_bg"
}
{
...
nestTableProps
}
/>
)
:
(
<
StandardTable
tableType=
'small'
currentRef=
{
selfRef
}
formRender=
{
(
child
,
ps
)
=>
<
Row
justify=
'space-between'
style=
{
{
marginBottom
:
16
}
}
>
<
Col
span=
{
18
}
style=
{
{
zIndex
:
99
}
}
>
{
child
}
</
Col
>
<
Col
style=
{
{
marginTop
:
4
}
}
>
{
ps
}
</
Col
>
</
Row
>
}
formilyProps=
{
modalType
===
'none'
?
null
:
{
ctx
:
{
schema
:
modelSchemaRender
(),
components
:
{
ModalSearch
:
Search
,
SearchSelect
,
Submit
,
DateSelect
},
effects
:
(
$
,
actions
)
=>
{
useStateFilterSearchLinkageEffect
(
$
,
actions
,
searchName
?
searchName
:
'name'
,
FORM_FILTER_PATH
,
);
}
}
}
}
{
...
resetTable
}
/>
)
}
</
Modal
>
)
}
ModalTable
.
defaultProps
=
{}
export
default
ModalTable
import
React
,
{
ReactText
,
useRef
,
useEffect
,
useLayoutEffect
}
from
'react'
;
import
{
StandardTable
}
from
'god'
;
import
NestTable
from
'@/components/NestTable'
;
import
{
IStandardTableProps
}
from
'god/dist/src/standard-table'
;
import
{
Row
,
Col
,
Modal
}
from
'antd'
;
import
{
productModalSchema
,
productModalByMemberSchema
,
memberModalSchema
,
inquirySchema
,
demandSchema
,
enquirySchema
,
mergeOrderSchema
,
goodsModalSchema
,
demandNumberSchema
,
logisticsDeliverySearchSchema
,
addOrderModalSchema
,
logisticsSelectGoodsSearchSchema
,
SelectRfqOrderSearchSchema
}
from
'./schema'
;
import
Search
from
'../NiceForm/components/Search'
;
import
SearchSelect
from
'../NiceForm/components/SearchSelect'
;
import
Submit
from
'../NiceForm/components/Submit'
;
import
{
useStateFilterSearchLinkageEffect
}
from
'@/formSchema/effects/useFilterSearch'
;
import
{
FORM_FILTER_PATH
}
from
'@/formSchema/const'
;
import
DateSelect
from
'../NiceForm/components/DateSelect'
;
export
interface
ModalTableProps
extends
IStandardTableProps
<
any
>
{
width
?:
number
,
modalTitle
?:
ReactText
,
confirm
?(),
cancel
?(),
visible
?:
boolean
,
resetModal
?:
object
,
modalType
?:
'productByDefault'
|
'productByMember'
|
'memberByDefault'
|
'inquiryByDefault'
|
'demandByDefault'
|
'enquiryModel'
|
'MergeOrderByDefault'
|
'goodsModalSchema'
|
'demandNumberSchema'
|
'logisticsDelivery'
|
'addOrderModalSchema'
|
'selectGoodsSchema'
|
'selectRfqOrder'
|
'none'
,
useNestTable
?:
boolean
,
// 是否使用嵌套表格
nestColumns
?:
any
[],
nestTableProps
?:
any
,
// fix: 新增参数, 为true时每次开启弹窗都会重新reload接口
forceRender
?:
boolean
,
searchName
?:
string
}
const
ModalTable
:
React
.
FC
<
ModalTableProps
>
=
(
props
)
=>
{
const
{
width
=
704
,
modalTitle
,
confirm
,
cancel
,
visible
,
currentRef
,
resetModal
,
modalType
=
'none'
,
forceRender
,
useNestTable
=
false
,
nestColumns
,
nestTableProps
,
searchName
,
...
resetTable
}
=
props
const
selfRef
=
currentRef
||
useRef
<
any
>
({})
useEffect
(()
=>
{
if
(
visible
&&
forceRender
)
{
// 重新开启时需reload接口
// fix: 去掉自动reload接口, 防止重复请求
// fix: 新增forceRender接口, 用于控制弹窗是否需要reload
selfRef
.
current
.
reload
&&
selfRef
.
current
.
reload
()
}
else
{
selfRef
.
current
.
resetField
&&
selfRef
.
current
.
resetField
({
validate
:
false
})
}
},
[
visible
])
const
modelSchemaRender
=
()
=>
{
switch
(
modalType
)
{
case
'productByDefault'
:
{
return
productModalSchema
}
case
'productByMember'
:
{
return
productModalByMemberSchema
}
case
'memberByDefault'
:
{
return
memberModalSchema
}
case
'inquiryByDefault'
:
{
return
inquirySchema
}
case
'enquiryModel'
:{
return
enquirySchema
}
case
'demandByDefault'
:
{
return
demandSchema
}
case
'MergeOrderByDefault'
:
{
return
mergeOrderSchema
}
case
'goodsModalSchema'
:
{
return
goodsModalSchema
}
case
'demandNumberSchema'
:
{
return
demandNumberSchema
}
case
'logisticsDelivery'
:
{
return
logisticsDeliverySearchSchema
}
case
'addOrderModalSchema'
:
{
return
addOrderModalSchema
}
case
'selectGoodsSchema'
:
{
return
logisticsSelectGoodsSearchSchema
}
case
'selectRfqOrder'
:
{
return
SelectRfqOrderSearchSchema
}
case
'none'
:
{
return
{}
}
}
}
return
(
<
Modal
width=
{
width
}
title=
{
modalTitle
}
onOk=
{
confirm
}
onCancel=
{
cancel
}
visible=
{
visible
}
{
...
resetModal
}
>
{
useNestTable
?
(
<
NestTable
NestColumns=
{
nestColumns
}
className=
"common_tb"
rowClassName=
{
(
_
,
index
)
=>
(
index
%
2
)
===
0
&&
"tb_bg"
}
{
...
nestTableProps
}
/>
)
:
(
<
StandardTable
tableType=
'small'
currentRef=
{
selfRef
}
formRender=
{
(
child
,
ps
)
=>
<
Row
justify=
'space-between'
style=
{
{
marginBottom
:
16
}
}
>
<
Col
span=
{
18
}
style=
{
{
zIndex
:
99
}
}
>
{
child
}
</
Col
>
<
Col
style=
{
{
marginTop
:
4
}
}
>
{
ps
}
</
Col
>
</
Row
>
}
formilyProps=
{
modalType
===
'none'
?
null
:
{
ctx
:
{
schema
:
modelSchemaRender
(),
components
:
{
ModalSearch
:
Search
,
SearchSelect
,
Submit
,
DateSelect
},
effects
:
(
$
,
actions
)
=>
{
useStateFilterSearchLinkageEffect
(
$
,
actions
,
searchName
?
searchName
:
'name'
,
FORM_FILTER_PATH
,
);
}
}
}
}
{
...
resetTable
}
/>
)
}
</
Modal
>
)
}
ModalTable
.
defaultProps
=
{}
export
default
ModalTable
src/components/NiceForm/components/CustomRelevance.tsx
View file @
156ff3ea
import
React
,
{
useState
,
useEffect
}
from
'react'
;
import
{
Input
,
Button
,
message
}
from
'antd'
;
import
{
LinkOutlined
}
from
'@ant-design/icons'
;
import
styled
from
'styled-components'
;
import
{
useRowSelectionTable
}
from
'@/hooks/useRowSelectionTable'
;
import
ModalTable
from
'@/components/ModalTable'
;
const
RowStyleLayout
=
styled
(
props
=>
<
div
{
...
props
}
/>)
`
width: 100%;
.relevance {
height: 100%;
background: #909399;
border-radius: 0;
&[disabled] {
background: #F4F5F7;
}
}
.ant-input-group-addon {
padding: 0;
border: none;
}
`
;
const
Relevance
=
props
=>
{
const
{
editable
,
value
=
[],
}
=
props
;
const
{
modalProps
=
{
title
:
'标题'
,
width
:
960
,
},
selectionType
=
'radio'
,
columns
,
formilyProps
,
tableProps
=
{},
fetchTableData
,
title
=
'选择'
,
tip
=
''
,
// 点击按钮前的提示,用于前提需要提示的场景
disabled
=
false
,
}
=
props
.
props
[
'x-component-props'
];
const
tableRowKey
=
tableProps
.
rowKey
||
'id'
;
const
tableRowLableKey
=
tableProps
.
lableKey
||
''
;
// Input展示用的 key val
const
[
visible
,
setVisible
]
=
useState
(
false
);
const
[
rowSelection
,
rowCtl
]
=
useRowSelectionTable
({
type
:
selectionType
,
customKey
:
tableRowKey
});
useEffect
(()
=>
{
// Table 只能缓存 keys
const
rowKeys
=
value
.
map
(
item
=>
item
[
tableRowKey
]);
rowCtl
.
setSelectedRowKeys
(
rowKeys
);
rowCtl
.
setSelectRow
(
value
);
},
[
props
.
value
,
tableProps
.
rowKey
]);
const
handleConfirm
=
()
=>
{
const
rows
=
rowCtl
.
selectRow
;
const
keys
=
rows
.
map
(
item
=>
item
[
tableRowKey
]);
if
(
props
.
mutators
)
{
if
(
rows
&&
rows
.
length
)
{
props
.
mutators
.
change
(
rows
);
}
setVisible
(
false
);
return
;
}
rowCtl
.
setSelectedRowKeys
(
keys
);
setVisible
(
false
);
};
const
handleModalVisible
=
()
=>
{
if
(
!
fetchTableData
)
{
message
.
warning
(
tip
||
'请传入 fetchTableData 属性,否则Table 将无法发起请求'
);
return
;
}
setVisible
(
true
);
};
return
(
<
RowStyleLayout
>
<
Input
value=
{
tableRowLableKey
?
value
.
map
(
item
=>
item
[
tableRowLableKey
]).
join
(
','
)
:
''
}
addonAfter=
{
(
<>
{
editable
&&
(
<
Button
type=
"primary"
className=
"relevance"
icon=
{
<
LinkOutlined
/>
}
onClick=
{
handleModalVisible
}
disabled=
{
disabled
}
block
>
{
title
}
</
Button
>
)
}
</>
)
}
disabled
/>
<
ModalTable
confirm=
{
handleConfirm
}
cancel=
{
()
=>
setVisible
(
false
)
}
visible=
{
visible
}
width=
{
960
}
{
...
modalProps
}
modalTitle=
{
modalProps
.
title
}
rowSelection=
{
rowSelection
}
columns=
{
columns
}
fetchTableData=
{
fetchTableData
}
formilyProps=
{
formilyProps
}
tableProps=
{
tableProps
}
/>
</
RowStyleLayout
>
);
};
Relevance
.
defaultProps
=
{};
Relevance
.
isFieldComponent
=
true
;
export
default
Relevance
;
import
React
,
{
useState
,
useEffect
}
from
'react'
;
import
{
Input
,
Button
,
message
}
from
'antd'
;
import
{
LinkOutlined
}
from
'@ant-design/icons'
;
import
styled
from
'styled-components'
;
import
{
useRowSelectionTable
}
from
'@/hooks/useRowSelectionTable'
;
import
ModalTable
from
'@/components/ModalTable'
;
const
RowStyleLayout
=
styled
(
props
=>
<
div
{
...
props
}
/>)
`
width: 100%;
.relevance {
height: 100%;
background: #909399;
border-radius: 0;
&[disabled] {
background: #F4F5F7;
}
}
.ant-input-group-addon {
padding: 0;
border: none;
}
`
;
const
Relevance
=
props
=>
{
const
{
editable
,
value
=
[],
}
=
props
;
const
{
modalProps
=
{
title
:
'标题'
,
width
:
960
,
},
selectionType
=
'radio'
,
columns
,
formilyProps
,
tableProps
=
{},
fetchTableData
,
title
=
'选择'
,
tip
=
''
,
// 点击按钮前的提示,用于前提需要提示的场景
disabled
=
false
,
}
=
props
.
props
[
'x-component-props'
];
const
tableRowKey
=
tableProps
.
rowKey
||
'id'
;
const
tableRowLableKey
=
tableProps
.
lableKey
||
''
;
// Input展示用的 key val
const
[
visible
,
setVisible
]
=
useState
(
false
);
const
[
rowSelection
,
rowCtl
]
=
useRowSelectionTable
({
type
:
selectionType
,
customKey
:
tableRowKey
});
useEffect
(()
=>
{
// Table 只能缓存 keys
const
rowKeys
=
value
.
map
(
item
=>
item
[
tableRowKey
]);
rowCtl
.
setSelectedRowKeys
(
rowKeys
);
rowCtl
.
setSelectRow
(
value
);
},
[
props
.
value
,
tableProps
.
rowKey
]);
const
handleConfirm
=
()
=>
{
const
rows
=
rowCtl
.
selectRow
;
const
keys
=
rows
.
map
(
item
=>
item
[
tableRowKey
]);
if
(
props
.
mutators
)
{
if
(
rows
&&
rows
.
length
)
{
props
.
mutators
.
change
(
rows
);
}
setVisible
(
false
);
return
;
}
rowCtl
.
setSelectedRowKeys
(
keys
);
setVisible
(
false
);
};
const
handleModalVisible
=
()
=>
{
if
(
!
fetchTableData
)
{
message
.
warning
(
tip
||
'请传入 fetchTableData 属性,否则Table 将无法发起请求'
);
return
;
}
setVisible
(
true
);
};
return
(
<
RowStyleLayout
>
<
Input
value=
{
tableRowLableKey
?
value
.
map
(
item
=>
item
[
tableRowLableKey
]).
join
(
','
)
:
''
}
addonAfter=
{
(
<>
{
editable
&&
(
<
Button
type=
"primary"
className=
"relevance"
icon=
{
<
LinkOutlined
/>
}
onClick=
{
handleModalVisible
}
disabled=
{
disabled
}
block
>
{
title
}
</
Button
>
)
}
</>
)
}
disabled
/>
<
ModalTable
confirm=
{
handleConfirm
}
cancel=
{
()
=>
setVisible
(
false
)
}
visible=
{
visible
}
width=
{
960
}
{
...
modalProps
}
modalTitle=
{
modalProps
.
title
}
rowSelection=
{
rowSelection
}
columns=
{
columns
}
fetchTableData=
{
fetchTableData
}
formilyProps=
{
formilyProps
}
tableProps=
{
tableProps
}
resetModal=
{
{
destroyOnClose
:
true
,
}
}
/>
</
RowStyleLayout
>
);
};
Relevance
.
defaultProps
=
{};
Relevance
.
isFieldComponent
=
true
;
export
default
Relevance
;
src/pages/transaction/stockSellStorage/bills/components/BillsForm/columns.ts
0 → 100644
View file @
156ff3ea
/*
* @Author: XieZhiXiong
* @Date: 2020-12-22 18:01:50
* @LastEditors: XieZhiXiong
* @LastEditTime: 2020-12-22 18:01:51
* @Description: 单据列表 弹窗表格列
*/
import
{
ORDER_TYPE2
,
PurchaseOrderInsideWorkStateTexts
,
}
from
'@/constants'
;
/**
* 采购订单-弹窗表格列
*/
export
const
purchaseOrderColumns
:
any
[]
=
[
{
title
:
'订单号'
,
align
:
'center'
,
dataIndex
:
'orderNo'
,
},
{
title
:
'订单摘要'
,
align
:
'center'
,
dataIndex
:
'orderThe'
,
},
{
title
:
'会员名称'
,
align
:
'center'
,
dataIndex
:
'supplyMembersName'
,
},
{
title
:
'下单时间'
,
align
:
'center'
,
dataIndex
:
'createTime'
,
},
{
title
:
'订单类型'
,
align
:
'center'
,
dataIndex
:
'type'
,
render
:
text
=>
ORDER_TYPE2
[
text
],
},
{
title
:
'订单状态'
,
align
:
'center'
,
dataIndex
:
'interiorState'
,
render
:
text
=>
PurchaseOrderInsideWorkStateTexts
[
text
],
},
];
/**
* 销售订单-弹窗表格列
*/
export
const
salesOrderColumns
:
any
[]
=
[
{
title
:
'订单号'
,
align
:
'center'
,
dataIndex
:
'orderNo'
,
},
{
title
:
'订单摘要'
,
align
:
'center'
,
dataIndex
:
'orderThe'
,
},
{
title
:
'会员名称'
,
align
:
'center'
,
dataIndex
:
'createMemberName'
,
},
{
title
:
'下单时间'
,
align
:
'center'
,
dataIndex
:
'createTime'
,
},
{
title
:
'订单类型'
,
align
:
'center'
,
dataIndex
:
'type'
,
render
:
text
=>
ORDER_TYPE2
[
text
],
},
{
title
:
'订单状态'
,
align
:
'center'
,
dataIndex
:
'interiorState'
,
render
:
text
=>
PurchaseOrderInsideWorkStateTexts
[
text
],
},
];
/**
* 加工入库单列表
*/
export
const
machiningWarehousingColumns
=
[
{
title
:
'通知单号'
,
align
:
'center'
,
dataIndex
:
'noticeNo'
,
},
{
title
:
'通知单摘要'
,
align
:
'center'
,
dataIndex
:
'summary'
,
},
{
title
:
'加工企业名称'
,
align
:
'center'
,
dataIndex
:
'processName'
,
},
{
title
:
'单据时间'
,
align
:
'center'
,
dataIndex
:
'createTime'
,
},
{
title
:
'申请单状态'
,
align
:
'center'
,
dataIndex
:
'outerStatusName'
,
},
];
/**
* 加工发货单列表
*/
export
const
machiningDeliveryColumns
=
[
{
title
:
'通知单号'
,
align
:
'center'
,
dataIndex
:
'noticeNo'
,
},
{
title
:
'通知单摘要'
,
align
:
'center'
,
dataIndex
:
'summary'
,
},
{
title
:
'供应会员'
,
align
:
'center'
,
dataIndex
:
'supplierName'
,
},
{
title
:
'单据时间'
,
align
:
'center'
,
dataIndex
:
'createTime'
,
},
{
title
:
'申请单状态'
,
align
:
'center'
,
dataIndex
:
'outerStatusName'
,
},
];
/**
* 售后发货、入库订单列表
*/
export
const
getAfterSaleColumns
=
(
isPurchaser
?:
boolean
)
=>
{
return
[
{
title
:
'申请单号'
,
align
:
'center'
,
dataIndex
:
'applyNo'
,
},
{
title
:
'申请单摘要'
,
align
:
'center'
,
dataIndex
:
'applyAbstract'
,
},
isPurchaser
?
{
title
:
'供应会员'
,
align
:
'center'
,
dataIndex
:
'supplierName'
,
}
:
{
title
:
'采购会员'
,
align
:
'center'
,
dataIndex
:
'consumerName'
,
},
{
title
:
'单据时间'
,
align
:
'center'
,
dataIndex
:
'applyTime'
,
},
{
title
:
'申请单状态'
,
align
:
'center'
,
dataIndex
:
'outerStatusName'
,
},
];
};
\ No newline at end of file
src/pages/transaction/stockSellStorage/bills/components/BillsForm/effects/useBusinessEffects.ts
View file @
156ff3ea
...
...
@@ -2,16 +2,14 @@
* @Author: XieZhiXiong
* @Date: 2020-09-16 15:16:47
* @LastEditors: XieZhiXiong
* @LastEditTime: 2020-12-
14 16:55:09
* @LastEditTime: 2020-12-
22 18:04:58
* @Description: 联动逻辑相关
*/
import
{
Modal
}
from
'antd'
;
import
{
ExclamationCircleOutlined
}
from
'@ant-design/icons'
;
import
{
FormEffectHooks
,
FormPath
}
from
'@formily/antd'
;
import
{
useLinkageUtils
}
from
'@/utils/formEffectUtils'
;
import
{
useStateFilterSearchLinkageEffect
}
from
'@/formSchema/effects/useFilterSearch'
;
import
{
ORDER_TYPE2
,
DEPENDENT_DOC_ORDER
,
DEPENDENT_DOC_EXCHANGE
,
DEPENDENT_DOC_RETURN
,
...
...
@@ -28,7 +26,6 @@ import {
DOC_TYPE_EXCHANGE_RECEIPT
,
DOC_TYPE_EXCHANGE_RETURN_INVOICE
,
DOC_TYPE_EXCHANGE_RETURN_RECEIPT
,
PurchaseOrderInsideWorkStateTexts
,
DELIVERY_TYPE
,
}
from
'@/constants'
;
import
Search
from
'@/components/NiceForm/components/Search'
;
...
...
@@ -40,257 +37,33 @@ import {
purchaseOrderBillSchema
,
machiningWarehousingBillSchema
,
machiningDeliveryBillSchema
,
afterSaleBillSchema
,
}
from
'../schema'
;
import
{
purchaseOrderColumns
,
salesOrderColumns
,
machiningWarehousingColumns
,
machiningDeliveryColumns
,
getAfterSaleColumns
,
}
from
'../columns'
;
import
{
fetchOrderPurchaseReceiptAddList
,
getOrderSalesInvoiceOrderList
,
getMachiningWarehousingList
,
getMachiningDeliveryList
,
getRefundDeliveryList
,
getRefundWarehousingList
,
getExchangeReturnDeliveryList
,
getExchangeReturnWarehousingList
,
getExchangeDeliveryList
,
getExchangeWarehousingList
,
}
from
'../fetchBillList'
;
const
{
onFieldInputChange$
,
onFieldValueChange$
,
}
=
FormEffectHooks
;
// 弹窗表格列-订单
// 采购订单-弹窗表格列
const
purchaseOrderColumns
:
any
[]
=
[
{
title
:
'订单号'
,
align
:
'center'
,
dataIndex
:
'orderNo'
,
},
{
title
:
'订单摘要'
,
align
:
'center'
,
dataIndex
:
'orderThe'
,
},
{
title
:
'会员名称'
,
align
:
'center'
,
dataIndex
:
'supplyMembersName'
,
},
{
title
:
'下单时间'
,
align
:
'center'
,
dataIndex
:
'createTime'
,
},
{
title
:
'订单类型'
,
align
:
'center'
,
dataIndex
:
'type'
,
render
:
text
=>
ORDER_TYPE2
[
text
],
},
{
title
:
'订单状态'
,
align
:
'center'
,
dataIndex
:
'interiorState'
,
render
:
text
=>
PurchaseOrderInsideWorkStateTexts
[
text
],
},
];
// 销售订单-弹窗表格列
const
salesOrderColumns
:
any
[]
=
[
{
title
:
'订单号'
,
align
:
'center'
,
dataIndex
:
'orderNo'
,
},
{
title
:
'订单摘要'
,
align
:
'center'
,
dataIndex
:
'orderThe'
,
},
{
title
:
'会员名称'
,
align
:
'center'
,
dataIndex
:
'createMemberName'
,
},
{
title
:
'下单时间'
,
align
:
'center'
,
dataIndex
:
'createTime'
,
},
{
title
:
'订单类型'
,
align
:
'center'
,
dataIndex
:
'type'
,
render
:
text
=>
ORDER_TYPE2
[
text
],
},
{
title
:
'订单状态'
,
align
:
'center'
,
dataIndex
:
'interiorState'
,
render
:
text
=>
PurchaseOrderInsideWorkStateTexts
[
text
],
},
];
// 加工入库单列表
const
machiningWarehousingColumns
=
[
{
title
:
'通知单号'
,
align
:
'center'
,
dataIndex
:
'noticeNo'
,
},
{
title
:
'通知单摘要'
,
align
:
'center'
,
dataIndex
:
'summary'
,
},
{
title
:
'加工企业名称'
,
align
:
'center'
,
dataIndex
:
'processName'
,
},
{
title
:
'单据时间'
,
align
:
'center'
,
dataIndex
:
'createTime'
,
},
{
title
:
'申请单状态'
,
align
:
'center'
,
dataIndex
:
'outerStatusName'
,
},
];
// 加工发货单列表
const
machiningDeliveryColumns
=
[
{
title
:
'通知单号'
,
align
:
'center'
,
dataIndex
:
'noticeNo'
,
},
{
title
:
'通知单摘要'
,
align
:
'center'
,
dataIndex
:
'summary'
,
},
{
title
:
'供应会员'
,
align
:
'center'
,
dataIndex
:
'supplierName'
,
},
{
title
:
'单据时间'
,
align
:
'center'
,
dataIndex
:
'createTime'
,
},
{
title
:
'申请单状态'
,
align
:
'center'
,
dataIndex
:
'outerStatusName'
,
},
];
// 售后订单列表
const
afterSaleColumns
=
[
{
title
:
'申请单号'
,
align
:
'center'
,
dataIndex
:
'orderNo'
,
},
{
title
:
'申请单摘要'
,
align
:
'center'
,
dataIndex
:
'invoicesAbstract'
,
},
{
title
:
'会员名称'
,
align
:
'center'
,
dataIndex
:
'memberName'
,
},
{
title
:
'单据时间'
,
align
:
'center'
,
dataIndex
:
'createTime'
,
},
{
title
:
'申请单状态'
,
align
:
'center'
,
dataIndex
:
'state'
,
},
];
// 获取采购入库单相关数据
const
fetchOrderPurchaseReceiptAddList
=
async
(
params
:
any
)
=>
{
const
res
=
await
PublicApi
.
getOrderPurchaseReceiptAddList
({
...
params
,
})
if
(
res
.
code
===
1000
)
{
return
{
data
:
res
.
data
.
data
.
map
(
item
=>
({
...
item
,
memberName
:
item
.
supplyMembersName
,
membersId
:
item
.
supplyMembersId
,
membersRoleId
:
item
.
supplyMembersRoleId
,
})),
total
:
res
.
data
.
totalCount
,
};
}
return
[];
};
// 获取销售发货单相关数据
const
getOrderSalesInvoiceOrderList
=
async
(
params
:
any
)
=>
{
const
res
=
await
PublicApi
.
getOrderSalesInvoiceOrderList
({
...
params
,
})
if
(
res
.
code
===
1000
)
{
return
{
data
:
res
.
data
.
data
.
map
(
item
=>
({
...
item
,
memberName
:
item
.
memberName
,
membersId
:
item
.
memberId
,
membersRoleId
:
item
.
memberRoleId
,
})),
total
:
res
.
data
.
totalCount
,
};
}
return
[];
};
// 获取加工入库单单相关数据
const
getMachiningWarehousingList
=
async
(
params
:
any
)
=>
{
const
{
search
,
...
rest
}
=
params
;
const
res
=
await
PublicApi
.
getEnhanceSupplierToBeAddStorageList
({
noticeNo
:
search
,
...
rest
,
})
if
(
res
.
code
===
1000
)
{
return
{
data
:
res
.
data
.
data
.
map
(
item
=>
({
...
item
,
memberName
:
item
.
processName
,
deliveryAddresId
:
+
item
.
receiverAddressId
,
fullAddress
:
item
.
receiveAddress
||
''
,
receiverName
:
item
.
receiveUserName
||
''
,
phone
:
item
.
receiveUserTel
||
''
,
})),
total
:
res
.
data
.
totalCount
,
};
}
return
[];
};
// 获取加工发货单单相关数据
const
getMachiningDeliveryList
=
async
(
params
:
any
)
=>
{
const
{
search
,
...
rest
}
=
params
;
const
res
=
await
PublicApi
.
getEnhanceProcessToBeAddDeliveryList
({
noticeNo
:
search
,
...
rest
,
})
if
(
res
.
code
===
1000
)
{
return
{
data
:
res
.
data
.
data
.
map
(
item
=>
({
...
item
,
memberName
:
item
.
supplierName
,
deliveryAddresId
:
+
item
.
receiverAddressId
,
fullAddress
:
item
.
receiveAddress
||
''
,
receiverName
:
item
.
receiveUserName
||
''
,
phone
:
item
.
receiveUserTel
||
''
,
})),
total
:
res
.
data
.
totalCount
,
};;
}
return
[];
};
// 获取关联组件对应的 params
const
getParams
=
type
=>
{
const
basicParams
=
{
...
...
@@ -363,31 +136,67 @@ const getParams = type => {
// 退货发货单
case
DOC_TYPE_RETURN_INVOICE
:
{
basicParams
.
modalProps
.
title
=
'选择售后单'
;
basicParams
.
columns
=
getAfterSaleColumns
(
true
);
basicParams
.
fetchTableData
=
getRefundDeliveryList
;
basicParams
.
formilyProps
.
ctx
.
schema
=
afterSaleBillSchema
(
true
);
basicParams
.
tableProps
.
rowKey
=
'applyNo'
;
basicParams
.
tableProps
.
lableKey
=
'applyNo'
;
break
;
}
// 退货入库单
case
DOC_TYPE_RETURN_RECEIPT
:
{
basicParams
.
modalProps
.
title
=
'选择售后单'
;
basicParams
.
columns
=
getAfterSaleColumns
(
false
);
basicParams
.
fetchTableData
=
getRefundWarehousingList
;
basicParams
.
formilyProps
.
ctx
.
schema
=
afterSaleBillSchema
(
false
);
basicParams
.
tableProps
.
rowKey
=
'applyNo'
;
basicParams
.
tableProps
.
lableKey
=
'applyNo'
;
break
;
}
// 换货退货发货单
case
DOC_TYPE_EXCHANGE_RETURN_INVOICE
:
{
basicParams
.
modalProps
.
title
=
'选择售后单'
;
basicParams
.
columns
=
getAfterSaleColumns
(
true
);
basicParams
.
fetchTableData
=
getExchangeReturnDeliveryList
;
basicParams
.
formilyProps
.
ctx
.
schema
=
afterSaleBillSchema
(
true
);
basicParams
.
tableProps
.
rowKey
=
'applyNo'
;
basicParams
.
tableProps
.
lableKey
=
'applyNo'
;
break
;
}
// 换货退货入库单
case
DOC_TYPE_EXCHANGE_RETURN_RECEIPT
:
{
basicParams
.
modalProps
.
title
=
'选择售后单'
;
basicParams
.
columns
=
getAfterSaleColumns
(
false
);
basicParams
.
fetchTableData
=
getExchangeReturnWarehousingList
;
basicParams
.
formilyProps
.
ctx
.
schema
=
afterSaleBillSchema
(
false
);
basicParams
.
tableProps
.
rowKey
=
'applyNo'
;
basicParams
.
tableProps
.
lableKey
=
'applyNo'
;
break
;
}
// 换货发货单
case
DOC_TYPE_EXCHANGE_INVOICE
:
{
basicParams
.
modalProps
.
title
=
'选择售后单'
;
basicParams
.
columns
=
getAfterSaleColumns
(
true
);
basicParams
.
fetchTableData
=
getExchangeDeliveryList
;
basicParams
.
formilyProps
.
ctx
.
schema
=
afterSaleBillSchema
(
true
);
basicParams
.
tableProps
.
rowKey
=
'applyNo'
;
basicParams
.
tableProps
.
lableKey
=
'applyNo'
;
break
;
}
// 换货入库单
case
DOC_TYPE_EXCHANGE_RECEIPT
:
{
break
;
}
// 换货退货发货单
case
DOC_TYPE_EXCHANGE_RETURN_INVOICE
:
{
basicParams
.
modalProps
.
title
=
'选择售后单'
;
basicParams
.
columns
=
getAfterSaleColumns
(
false
);
basicParams
.
fetchTableData
=
getExchangeWarehousingList
;
basicParams
.
formilyProps
.
ctx
.
schema
=
afterSaleBillSchema
(
false
);
basicParams
.
tableProps
.
rowKey
=
'applyNo'
;
basicParams
.
tableProps
.
lableKey
=
'applyNo'
;
break
;
}
...
...
@@ -518,7 +327,6 @@ export const useBusinessEffects = (context, actions) => {
// 关联单据改变
onFieldValueChange$
(
'orderNo'
).
subscribe
(
fieldState
=>
{
const
invoicesTypeIdVal
=
getFieldValue
(
'invoicesTypeId'
);
const
relevanceInvoicesVal
=
getFieldValue
(
'relevanceInvoices'
);
const
first
=
fieldState
.
value
&&
fieldState
.
value
[
0
];
// 设置单据公用的数据相关
...
...
@@ -622,6 +430,10 @@ export const useBusinessEffects = (context, actions) => {
case
DOC_TYPE_EXCHANGE_INVOICE
:
// 换货入库单
case
DOC_TYPE_EXCHANGE_RECEIPT
:
{
// 设置配送方式相关字段数据
setFieldValue
(
'transport'
,
DELIVERY_TYPE
[
first
.
deliveryType
]);
setFieldValue
(
'deliveryType'
,
first
.
deliveryType
);
// 获取明细数据 商品 数据
PublicApi
.
getAsReplaceGoodsPageReturnedGoods
({
replaceId
:
first
.
id
,
...
...
@@ -653,6 +465,10 @@ export const useBusinessEffects = (context, actions) => {
case
DOC_TYPE_RETURN_INVOICE
:
// 退货入库单
case
DOC_TYPE_RETURN_RECEIPT
:
{
// 设置配送方式相关字段数据
setFieldValue
(
'transport'
,
DELIVERY_TYPE
[
first
.
deliveryType
]);
setFieldValue
(
'deliveryType'
,
first
.
deliveryType
);
// 获取明细数据 商品 数据
PublicApi
.
getAsReturnGoodsPageReturnedGoods
({
returnId
:
first
.
id
,
...
...
src/pages/transaction/stockSellStorage/bills/components/BillsForm/fetchBillList.ts
0 → 100644
View file @
156ff3ea
/*
* @Author: XieZhiXiong
* @Date: 2020-12-22 17:57:26
* @LastEditors: XieZhiXiong
* @LastEditTime: 2020-12-22 17:57:26
* @Description: 获取 单据列表 弹窗数据接口相关
*/
import
{
PublicApi
}
from
'@/services/api'
;
import
moment
from
'moment'
;
// 获取采购入库单相关数据
export
const
fetchOrderPurchaseReceiptAddList
=
async
(
params
:
any
)
=>
{
const
res
=
await
PublicApi
.
getOrderPurchaseReceiptAddList
({
...
params
,
})
if
(
res
.
code
===
1000
)
{
return
{
data
:
res
.
data
.
data
.
map
(
item
=>
({
...
item
,
memberName
:
item
.
supplyMembersName
,
membersId
:
item
.
supplyMembersId
,
membersRoleId
:
item
.
supplyMembersRoleId
,
})),
total
:
res
.
data
.
totalCount
,
};
}
return
[];
};
// 获取销售发货单相关数据
export
const
getOrderSalesInvoiceOrderList
=
async
(
params
:
any
)
=>
{
const
res
=
await
PublicApi
.
getOrderSalesInvoiceOrderList
({
...
params
,
})
if
(
res
.
code
===
1000
)
{
return
{
data
:
res
.
data
.
data
.
map
(
item
=>
({
...
item
,
memberName
:
item
.
memberName
,
membersId
:
item
.
memberId
,
membersRoleId
:
item
.
memberRoleId
,
})),
total
:
res
.
data
.
totalCount
,
};
}
return
[];
};
// 获取加工入库单单相关数据
export
const
getMachiningWarehousingList
=
async
(
params
:
any
)
=>
{
const
{
search
,
...
rest
}
=
params
;
const
res
=
await
PublicApi
.
getEnhanceSupplierToBeAddStorageList
({
noticeNo
:
search
,
...
rest
,
})
if
(
res
.
code
===
1000
)
{
return
{
data
:
res
.
data
.
data
.
map
(
item
=>
({
...
item
,
memberName
:
item
.
processName
,
deliveryAddresId
:
+
item
.
receiverAddressId
,
fullAddress
:
item
.
receiveAddress
||
''
,
receiverName
:
item
.
receiveUserName
||
''
,
phone
:
item
.
receiveUserTel
||
''
,
})),
total
:
res
.
data
.
totalCount
,
};
}
return
[];
};
// 获取加工发货单单相关数据
export
const
getMachiningDeliveryList
=
async
(
params
:
any
)
=>
{
const
{
search
,
...
rest
}
=
params
;
const
res
=
await
PublicApi
.
getEnhanceProcessToBeAddDeliveryList
({
noticeNo
:
search
,
...
rest
,
})
if
(
res
.
code
===
1000
)
{
return
{
data
:
res
.
data
.
data
.
map
(
item
=>
({
...
item
,
memberName
:
item
.
supplierName
,
deliveryAddresId
:
+
item
.
receiverAddressId
,
fullAddress
:
item
.
receiveAddress
||
''
,
receiverName
:
item
.
receiveUserName
||
''
,
phone
:
item
.
receiveUserTel
||
''
,
})),
total
:
res
.
data
.
totalCount
,
};
}
return
[];
};
// 获取售后退货发货单单相关数据
export
const
getRefundDeliveryList
=
async
(
params
:
any
)
=>
{
const
{
search
,
startTime
,
endTime
,
...
rest
}
=
params
;
const
res
=
await
PublicApi
.
getAsReturnGoodsPageToBeAddReturnDeliveryGoods
({
applyNo
:
search
,
startTime
:
startTime
?
moment
(
+
startTime
).
format
(
'YYYY-MM-DD HH:mm:ss'
)
:
null
,
endTime
:
endTime
?
moment
(
+
endTime
).
format
(
'YYYY-MM-DD HH:mm:ss'
)
:
null
,
...
rest
,
})
if
(
res
.
code
===
1000
)
{
return
{
data
:
res
.
data
.
data
.
map
(
item
=>
({
...
item
,
id
:
item
.
returnId
,
memberName
:
item
.
supplierName
,
membersId
:
item
.
parentMemberId
,
membersRoleId
:
item
.
parentMemberRoleId
,
deliveryAddresId
:
item
.
returnGoodsAddress
.
receiveId
,
fullAddress
:
item
.
returnGoodsAddress
.
receiveAddress
||
''
,
receiverName
:
item
.
returnGoodsAddress
.
receiveUserName
||
''
,
phone
:
item
.
returnGoodsAddress
.
receiveUserTel
||
''
,
deliveryType
:
item
.
returnGoodsAddress
.
deliveryType
||
''
,
})),
total
:
res
.
data
.
totalCount
,
};
}
return
[];
};
// 获取售后退货入库单单相关数据
export
const
getRefundWarehousingList
=
async
(
params
:
any
)
=>
{
const
{
search
,
startTime
,
endTime
,
...
rest
}
=
params
;
const
res
=
await
PublicApi
.
getAsReturnGoodsPageToBeAddReturnGoodsStorage
({
applyNo
:
search
,
startTime
:
startTime
?
moment
(
+
startTime
).
format
(
'YYYY-MM-DD HH:mm:ss'
)
:
null
,
endTime
:
endTime
?
moment
(
+
endTime
).
format
(
'YYYY-MM-DD HH:mm:ss'
)
:
null
,
...
rest
,
})
if
(
res
.
code
===
1000
)
{
return
{
data
:
res
.
data
.
data
.
map
(
item
=>
({
...
item
,
id
:
item
.
returnId
,
memberName
:
item
.
consumerName
,
membersId
:
item
.
parentMemberId
,
membersRoleId
:
item
.
parentMemberRoleId
,
deliveryAddresId
:
item
.
returnGoodsAddress
.
sendId
,
fullAddress
:
item
.
returnGoodsAddress
.
sendAddress
||
''
,
receiverName
:
item
.
returnGoodsAddress
.
sendUserName
||
''
,
phone
:
item
.
returnGoodsAddress
.
sendUserTel
||
''
,
deliveryType
:
item
.
returnGoodsAddress
.
deliveryType
||
''
,
})),
total
:
res
.
data
.
totalCount
,
};
}
return
[];
};
// 获取售后换货退货发货单单相关数据
export
const
getExchangeReturnDeliveryList
=
async
(
params
:
any
)
=>
{
const
{
search
,
startTime
,
endTime
,
...
rest
}
=
params
;
const
res
=
await
PublicApi
.
getAsReplaceGoodsPageToBeAddReturnDeliveryGoods
({
applyNo
:
search
,
startTime
:
startTime
?
moment
(
+
startTime
).
format
(
'YYYY-MM-DD HH:mm:ss'
)
:
null
,
endTime
:
endTime
?
moment
(
+
endTime
).
format
(
'YYYY-MM-DD HH:mm:ss'
)
:
null
,
...
rest
,
})
if
(
res
.
code
===
1000
)
{
return
{
data
:
res
.
data
.
data
.
map
(
item
=>
({
...
item
,
id
:
item
.
replaceId
,
memberName
:
item
.
supplierName
,
membersId
:
item
.
parentMemberId
,
membersRoleId
:
item
.
parentMemberRoleId
,
deliveryAddresId
:
item
.
returnGoodsAddress
.
receiveId
,
fullAddress
:
item
.
returnGoodsAddress
.
receiveAddress
||
''
,
receiverName
:
item
.
returnGoodsAddress
.
receiveUserName
||
''
,
phone
:
item
.
returnGoodsAddress
.
receiveUserTel
||
''
,
deliveryType
:
item
.
returnGoodsAddress
.
deliveryType
||
''
,
})),
total
:
res
.
data
.
totalCount
,
};
}
return
[];
};
// 获取售后换货退货入库单单相关数据
export
const
getExchangeReturnWarehousingList
=
async
(
params
:
any
)
=>
{
const
{
search
,
startTime
,
endTime
,
...
rest
}
=
params
;
const
res
=
await
PublicApi
.
getAsReplaceGoodsPageToBeAddReturnGoodsStorage
({
applyNo
:
search
,
startTime
:
startTime
?
moment
(
+
startTime
).
format
(
'YYYY-MM-DD HH:mm:ss'
)
:
null
,
endTime
:
endTime
?
moment
(
+
endTime
).
format
(
'YYYY-MM-DD HH:mm:ss'
)
:
null
,
...
rest
,
})
if
(
res
.
code
===
1000
)
{
return
{
data
:
res
.
data
.
data
.
map
(
item
=>
({
...
item
,
id
:
item
.
replaceId
,
memberName
:
item
.
consumerName
,
membersId
:
item
.
parentMemberId
,
membersRoleId
:
item
.
parentMemberRoleId
,
deliveryAddresId
:
item
.
returnGoodsAddress
.
receiveId
,
fullAddress
:
item
.
returnGoodsAddress
.
receiveAddress
||
''
,
receiverName
:
item
.
returnGoodsAddress
.
receiveUserName
||
''
,
phone
:
item
.
returnGoodsAddress
.
receiveUserTel
||
''
,
deliveryType
:
item
.
returnGoodsAddress
.
deliveryType
||
''
,
})),
total
:
res
.
data
.
totalCount
,
};
}
return
[];
};
// 获取售后换货发货单单相关数据
export
const
getExchangeDeliveryList
=
async
(
params
:
any
)
=>
{
const
{
search
,
startTime
,
endTime
,
...
rest
}
=
params
;
const
res
=
await
PublicApi
.
getAsReplaceGoodsPageToBeAddReplaceDeliveryGoods
({
applyNo
:
search
,
startTime
:
startTime
?
moment
(
+
startTime
).
format
(
'YYYY-MM-DD HH:mm:ss'
)
:
null
,
endTime
:
endTime
?
moment
(
+
endTime
).
format
(
'YYYY-MM-DD HH:mm:ss'
)
:
null
,
...
rest
,
})
if
(
res
.
code
===
1000
)
{
return
{
data
:
res
.
data
.
data
.
map
(
item
=>
({
...
item
,
id
:
item
.
replaceId
,
memberName
:
item
.
supplierName
,
membersId
:
item
.
parentMemberId
,
membersRoleId
:
item
.
parentMemberRoleId
,
deliveryAddresId
:
item
.
replaceGoodsAddress
.
receiveId
,
fullAddress
:
item
.
replaceGoodsAddress
.
receiveAddress
||
''
,
receiverName
:
item
.
replaceGoodsAddress
.
receiveUserName
||
''
,
phone
:
item
.
replaceGoodsAddress
.
receiveUserTel
||
''
,
deliveryType
:
item
.
replaceGoodsAddress
.
deliveryType
||
''
,
})),
total
:
res
.
data
.
totalCount
,
};
}
return
[];
};
// 获取售后换货入库单单相关数据
export
const
getExchangeWarehousingList
=
async
(
params
:
any
)
=>
{
const
{
search
,
startTime
,
endTime
,
...
rest
}
=
params
;
const
res
=
await
PublicApi
.
getAsReplaceGoodsPageToBeAddReplaceGoodsStorage
({
applyNo
:
search
,
startTime
:
startTime
?
moment
(
+
startTime
).
format
(
'YYYY-MM-DD HH:mm:ss'
)
:
null
,
endTime
:
endTime
?
moment
(
+
endTime
).
format
(
'YYYY-MM-DD HH:mm:ss'
)
:
null
,
...
rest
,
})
if
(
res
.
code
===
1000
)
{
return
{
data
:
res
.
data
.
data
.
map
(
item
=>
({
...
item
,
id
:
item
.
replaceId
,
memberName
:
item
.
consumerName
,
membersId
:
item
.
parentMemberId
,
membersRoleId
:
item
.
parentMemberRoleId
,
deliveryAddresId
:
item
.
replaceGoodsAddress
.
receiveId
,
fullAddress
:
item
.
replaceGoodsAddress
.
receiveAddress
||
''
,
receiverName
:
item
.
replaceGoodsAddress
.
receiveUserName
||
''
,
phone
:
item
.
replaceGoodsAddress
.
receiveUserTel
||
''
,
deliveryType
:
item
.
replaceGoodsAddress
.
deliveryType
||
''
,
})),
total
:
res
.
data
.
totalCount
,
};
}
return
[];
};
\ No newline at end of file
src/pages/transaction/stockSellStorage/bills/components/BillsForm/index.tsx
View file @
156ff3ea
...
...
@@ -172,12 +172,9 @@ const BillsForm: React.FC<BillsFormProps> = ({
extraData
:
{
productName
:
item
.
productName
,
deliveryType
,
id
:
''
,
// 加工发货单需要,明细id
processNum
:
0
,
// 加工发货单需要,加工数量
orderNo
:
item
.
orderNo
,
// 订单编号
goodsCount
:
item
.
productCount
,
// 采购数量
price
:
item
.
price
,
// 加工发货、入库单需要,加工单价
totalPrice
:
0
,
// 加工发货、入库单需要,加工总价
id
:
item
.
produceNoticeOrderDetailId
,
// 加工发货单需要,明细id
},
}))
:
[];
...
...
@@ -448,15 +445,15 @@ const BillsForm: React.FC<BillsFormProps> = ({
fullAddress
:
returnGoodsAddress
.
receiveAddress
||
''
,
receiverName
:
returnGoodsAddress
.
receiveUserName
||
''
,
phone
:
returnGoodsAddress
.
receiveUserTel
||
''
,
supplyMembersName
:
supplierName
,
supplyMembersId
:
parentMemberId
,
supplyMembersRoleId
:
parentMemberRoleId
,
}
]
:
[]
,
deliveryType
:
returnGoodsAddress
.
deliveryType
,
transport
:
DELIVERY_TYPE
[
returnGoodsAddress
.
deliveryType
],
supplyMembersName
:
supplierName
,
supplyMembersId
:
parentMemberId
,
supplyMembersRoleId
:
parentMemberRoleId
,
});
}).
finally
(()
=>
{
setInfoLoading
(
false
);
...
...
@@ -495,15 +492,15 @@ const BillsForm: React.FC<BillsFormProps> = ({
fullAddress
:
returnGoodsAddress
.
receiveAddress
||
''
,
receiverName
:
returnGoodsAddress
.
receiveUserName
||
''
,
phone
:
returnGoodsAddress
.
receiveUserTel
||
''
,
supplyMembersName
:
supplierName
,
supplyMembersId
:
parentMemberId
,
supplyMembersRoleId
:
parentMemberRoleId
,
}
]
:
[]
,
deliveryType
:
returnGoodsAddress
.
deliveryType
,
transport
:
DELIVERY_TYPE
[
returnGoodsAddress
.
deliveryType
],
supplyMembersName
:
supplierName
,
supplyMembersId
:
parentMemberId
,
supplyMembersRoleId
:
parentMemberRoleId
,
});
}).
finally
(()
=>
{
setInfoLoading
(
false
);
...
...
@@ -543,15 +540,15 @@ const BillsForm: React.FC<BillsFormProps> = ({
fullAddress
:
returnGoodsAddress
.
receiveAddress
||
''
,
receiverName
:
returnGoodsAddress
.
receiveUserName
||
''
,
phone
:
returnGoodsAddress
.
receiveUserTel
||
''
,
supplyMembersName
:
supplierName
,
supplyMembersId
:
parentMemberId
,
supplyMembersRoleId
:
parentMemberRoleId
,
}
]
:
[]
,
deliveryType
:
returnGoodsAddress
.
deliveryType
,
transport
:
DELIVERY_TYPE
[
returnGoodsAddress
.
deliveryType
],
supplyMembersName
:
supplierName
,
supplyMembersId
:
parentMemberId
,
supplyMembersRoleId
:
parentMemberRoleId
,
});
}).
finally
(()
=>
{
setInfoLoading
(
false
);
...
...
@@ -590,15 +587,15 @@ const BillsForm: React.FC<BillsFormProps> = ({
fullAddress
:
returnGoodsAddress
.
receiveAddress
||
''
,
receiverName
:
returnGoodsAddress
.
receiveUserName
||
''
,
phone
:
returnGoodsAddress
.
receiveUserTel
||
''
,
supplyMembersName
:
supplierName
,
supplyMembersId
:
parentMemberId
,
supplyMembersRoleId
:
parentMemberRoleId
,
}
]
:
[]
,
deliveryType
:
returnGoodsAddress
.
deliveryType
,
transport
:
DELIVERY_TYPE
[
returnGoodsAddress
.
deliveryType
],
supplyMembersName
:
supplierName
,
supplyMembersId
:
parentMemberId
,
supplyMembersRoleId
:
parentMemberRoleId
,
});
}).
finally
(()
=>
{
setInfoLoading
(
false
);
...
...
@@ -638,15 +635,15 @@ const BillsForm: React.FC<BillsFormProps> = ({
fullAddress
:
returnGoodsAddress
.
receiveAddress
||
''
,
receiverName
:
returnGoodsAddress
.
receiveUserName
||
''
,
phone
:
returnGoodsAddress
.
receiveUserTel
||
''
,
supplyMembersName
:
supplierName
,
supplyMembersId
:
parentMemberId
,
supplyMembersRoleId
:
parentMemberRoleId
,
}
]
:
[]
,
deliveryType
:
returnGoodsAddress
.
deliveryType
,
transport
:
DELIVERY_TYPE
[
returnGoodsAddress
.
deliveryType
],
supplyMembersName
:
supplierName
,
supplyMembersId
:
parentMemberId
,
supplyMembersRoleId
:
parentMemberRoleId
,
transport
:
DELIVERY_TYPE
[
returnGoodsAddress
.
deliveryType
],
});
}).
finally
(()
=>
{
setInfoLoading
(
false
);
...
...
@@ -685,15 +682,15 @@ const BillsForm: React.FC<BillsFormProps> = ({
fullAddress
:
returnGoodsAddress
.
receiveAddress
||
''
,
receiverName
:
returnGoodsAddress
.
receiveUserName
||
''
,
phone
:
returnGoodsAddress
.
receiveUserTel
||
''
,
supplyMembersName
:
supplierName
,
supplyMembersId
:
parentMemberId
,
supplyMembersRoleId
:
parentMemberRoleId
,
}
]
:
[]
,
deliveryType
:
returnGoodsAddress
.
deliveryType
,
transport
:
DELIVERY_TYPE
[
returnGoodsAddress
.
deliveryType
],
supplyMembersName
:
supplierName
,
supplyMembersId
:
parentMemberId
,
supplyMembersRoleId
:
parentMemberRoleId
,
});
}).
finally
(()
=>
{
setInfoLoading
(
false
);
...
...
@@ -1013,7 +1010,49 @@ const BillsForm: React.FC<BillsFormProps> = ({
if
(
!
isEdit
)
{
return
;
}
PublicApi
.
postWarehouseInvoicesUpdata
({
id
:
+
id
,
invoicesAbstract
:
rest
.
invoicesAbstract
,
inventoryId
:
rest
.
inventoryId
,
inventoryRole
:
rest
.
inventoryRole
,
transactionTime
:
newTransactionTime
,
invoicesDetailsRequests
:
newInvoicesDetailsRequests
.
map
(
item
=>
{
const
{
extraData
:
{
id
,
orderNo
,
deliveryType
,
goodsCount
,
price
,
totalPrice
,
...
extraRest
},
itemName
,
amount
,
productCount
,
...
rest
}
=
item
;
return
{
...
rest
,
...
extraRest
,
goodsName
:
itemName
,
storageCount
:
productCount
,
productCount
:
goodsCount
,
produceNoticeOrderDetailId
:
id
,
};
}),
})
.
then
(
res
=>
{
if
(
res
.
code
!==
1000
)
{
return
;
}
setUnsaved
(
false
);
setTimeout
(()
=>
{
history
.
goBack
();
},
800
);
}).
finally
(()
=>
{
setSubmitLoading
(
false
);
});
}
break
;
}
...
...
@@ -1065,7 +1104,49 @@ const BillsForm: React.FC<BillsFormProps> = ({
if
(
!
isEdit
)
{
return
;
}
PublicApi
.
postWarehouseInvoicesUpdata
({
id
:
+
id
,
invoicesAbstract
:
rest
.
invoicesAbstract
,
inventoryId
:
rest
.
inventoryId
,
inventoryRole
:
rest
.
inventoryRole
,
transactionTime
:
newTransactionTime
,
invoicesDetailsRequests
:
newInvoicesDetailsRequests
.
map
(
item
=>
{
const
{
extraData
:
{
id
,
orderNo
,
deliveryType
,
goodsCount
,
price
,
totalPrice
,
...
extraRest
},
itemName
,
amount
,
productCount
,
...
rest
}
=
item
;
return
{
...
rest
,
...
extraRest
,
goodsName
:
itemName
,
shipmentQuantity
:
productCount
,
productCount
:
goodsCount
,
produceNoticeOrderDetailId
:
id
,
};
}),
})
.
then
(
res
=>
{
if
(
res
.
code
!==
1000
)
{
return
;
}
setUnsaved
(
false
);
setTimeout
(()
=>
{
history
.
goBack
();
},
800
);
}).
finally
(()
=>
{
setSubmitLoading
(
false
);
});
}
break
;
}
...
...
@@ -1112,9 +1193,9 @@ const BillsForm: React.FC<BillsFormProps> = ({
}),
relevanceInvoicesId
:
orderNo
[
0
].
id
,
relevanceInvoices
:
rest
.
relevanceInvoices
,
supplyMembersName
:
billInfo
.
supplyMembersName
,
supplyMembersId
:
billInfo
.
supplyMembersId
,
supplyMembersRoleId
:
billInfo
.
supplyMembersRoleId
,
supplyMembersName
:
orderNo
[
0
]
.
supplyMembersName
,
supplyMembersId
:
orderNo
[
0
]
.
supplyMembersId
,
supplyMembersRoleId
:
orderNo
[
0
]
.
supplyMembersRoleId
,
invoicesTypeId
,
})
.
then
(
res
=>
{
...
...
@@ -1216,9 +1297,9 @@ const BillsForm: React.FC<BillsFormProps> = ({
}),
relevanceInvoicesId
:
orderNo
[
0
].
id
,
relevanceInvoices
:
rest
.
relevanceInvoices
,
supplyMembersName
:
billInfo
.
supplyMembersName
,
supplyMembersId
:
billInfo
.
supplyMembersId
,
supplyMembersRoleId
:
billInfo
.
supplyMembersRoleId
,
supplyMembersName
:
orderNo
[
0
]
.
supplyMembersName
,
supplyMembersId
:
orderNo
[
0
]
.
supplyMembersId
,
supplyMembersRoleId
:
orderNo
[
0
]
.
supplyMembersRoleId
,
invoicesTypeId
,
})
.
then
(
res
=>
{
...
...
@@ -1318,9 +1399,9 @@ const BillsForm: React.FC<BillsFormProps> = ({
}),
relevanceInvoicesId
:
orderNo
[
0
].
id
,
relevanceInvoices
:
rest
.
relevanceInvoices
,
supplyMembersName
:
billInfo
.
supplyMembersName
,
supplyMembersId
:
billInfo
.
supplyMembersId
,
supplyMembersRoleId
:
billInfo
.
supplyMembersRoleId
,
supplyMembersName
:
orderNo
[
0
]
.
supplyMembersName
,
supplyMembersId
:
orderNo
[
0
]
.
supplyMembersId
,
supplyMembersRoleId
:
orderNo
[
0
]
.
supplyMembersRoleId
,
invoicesTypeId
,
})
.
then
(
res
=>
{
...
...
@@ -1420,9 +1501,9 @@ const BillsForm: React.FC<BillsFormProps> = ({
}),
relevanceInvoicesId
:
orderNo
[
0
].
id
,
relevanceInvoices
:
rest
.
relevanceInvoices
,
supplyMembersName
:
billInfo
.
supplyMembersName
,
supplyMembersId
:
billInfo
.
supplyMembersId
,
supplyMembersRoleId
:
billInfo
.
supplyMembersRoleId
,
supplyMembersName
:
orderNo
[
0
]
.
supplyMembersName
,
supplyMembersId
:
orderNo
[
0
]
.
supplyMembersId
,
supplyMembersRoleId
:
orderNo
[
0
]
.
supplyMembersRoleId
,
invoicesTypeId
,
})
.
then
(
res
=>
{
...
...
src/pages/transaction/stockSellStorage/bills/components/BillsForm/schema/index.ts
View file @
156ff3ea
...
...
@@ -752,6 +752,84 @@ export const machiningDeliveryBillSchema: ISchema = {
},
};
// 售后发货、入库 弹窗 search schema
export
const
afterSaleBillSchema
=
(
isPurchaser
:
boolean
):
ISchema
=>
{
return
{
type
:
'object'
,
properties
:
{
megaLayout
:
{
type
:
'object'
,
'x-component'
:
'Mega-Layout'
,
properties
:
{
search
:
{
type
:
'string'
,
'x-component'
:
'Search'
,
'x-mega-props'
:
{},
'x-component-props'
:
{
placeholder
:
'搜索'
,
align
:
'flex-start'
,
tip
:
'输入 通知单号 进行搜索'
,
},
},
[
FORM_FILTER_PATH
]:
{
type
:
'object'
,
'x-component'
:
'Mega-Layout'
,
'x-component-props'
:
{
grid
:
true
,
full
:
true
,
autoRow
:
true
,
columns
:
3
,
},
properties
:
{
applyAbstract
:
{
type
:
'string'
,
'x-component-props'
:
{
placeholder
:
'申请单摘要'
,
allowClear
:
true
,
},
},
...(
isPurchaser
?
{
supplierName
:
{
type
:
'string'
,
'x-component-props'
:
{
placeholder
:
'供应会员'
,
allowClear
:
true
,
},
},
}
:
{
consumerName
:
{
type
:
'string'
,
'x-component-props'
:
{
placeholder
:
'采购会员'
,
allowClear
:
true
,
},
},
}),
'[startTime, endTime]'
:
{
type
:
'string'
,
'x-component'
:
'DateSelect'
,
'x-component-props'
:
{
placeholder
:
'单据时间'
,
allowClear
:
true
,
},
},
submit
:
{
'x-component'
:
'Submit'
,
'x-mega-props'
:
{
span
:
1
,
},
'x-component-props'
:
{
children
:
'查询'
,
}
}
},
},
},
},
},
}
};
export
const
goodsSearchSchema
:
ISchema
=
{
type
:
'object'
,
properties
:
{
...
...
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