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
d30ba54c
Commit
d30ba54c
authored
Mar 24, 2022
by
wzy
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
feat: 进销存-单据管理修改
parent
deea026b
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
149 additions
and
2730 deletions
+149
-2730
index.ts
...ckSellStorage/bills/components/BillsForm/effects/index.ts
+45
-46
useBusinessEffects.ts
.../bills/components/BillsForm/effects/useBusinessEffects.ts
+22
-689
index.tsx
...ion/stockSellStorage/bills/components/BillsForm/index.tsx
+39
-1644
index.ts
...ockSellStorage/bills/components/BillsForm/schema/index.ts
+13
-299
index.tsx
src/pages/transaction/stockSellStorage/bills/index.tsx
+13
-35
index.ts
...Storage/billsType/components/BillTypeForm/schema/index.ts
+17
-17
No files found.
src/pages/transaction/stockSellStorage/bills/components/BillsForm/effects/index.ts
View file @
d30ba54c
/*
* @Author: XieZhiXiong
* @Date: 2021-10-18 11:11:48
* @LastEditors: XieZhiXiong
* @LastEditTime: 2021-11-17 20:29:02
* @Description:
*/
import
{
useBusinessEffects
}
from
'./useBusinessEffects'
;
import
{
useAsyncSelect
}
from
'@/formSchema/effects/useAsyncSelect'
;
import
{
getProductInvoicesTypeAll
,
getProductWarehouseAll
}
from
'@/services/ProductV2Api'
;
// 获取单据类型
const
fetchInvoicesType
=
():
Promise
<
any
[]
>
=>
{
return
new
Promise
((
resolve
,
reject
)
=>
{
getProductInvoicesTypeAll
().
then
(
res
=>
{
if
(
res
.
code
===
1000
)
{
resolve
(
res
.
data
);
}
reject
();
}).
catch
(()
=>
{
reject
();
});
});
};
// 获取仓库
const
fetchInventory
=
():
Promise
<
any
[]
>
=>
{
return
new
Promise
((
resolve
,
reject
)
=>
{
getProductWarehouseAll
().
then
(
res
=>
{
if
(
res
.
code
===
1000
)
{
resolve
(
res
.
data
);
}
reject
();
}).
catch
(()
=>
{
reject
();
});
});
};
export
const
createEffects
=
(
context
,
actions
)
=>
{
useBusinessEffects
(
context
,
actions
);
useAsyncSelect
(
'invoicesTypeId'
,
fetchInvoicesType
,
[
'name'
,
'id'
]);
useAsyncSelect
(
'inventoryId'
,
fetchInventory
,
[
'name'
,
'id'
]);
};
\ No newline at end of file
/*
* @Author: XieZhiXiong
* @Date: 2021-10-18 11:11:48
* @LastEditors: XieZhiXiong
* @LastEditTime: 2021-11-17 20:29:02
* @Description:
*/
import
{
useBusinessEffects
}
from
'./useBusinessEffects'
;
import
{
useAsyncSelect
}
from
'@/formSchema/effects/useAsyncSelect'
;
import
{
getProductInvoicesTypeAll
,
getProductWarehouseAll
}
from
'@/services/ProductV2Api'
;
// 获取单据类型
const
fetchInvoicesType
=
():
Promise
<
any
[]
>
=>
{
return
new
Promise
((
resolve
,
reject
)
=>
{
getProductInvoicesTypeAll
().
then
(
res
=>
{
if
(
res
.
code
===
1000
)
{
resolve
(
res
.
data
);
}
reject
();
}).
catch
(()
=>
{
reject
();
});
});
};
// 获取仓库
const
fetchInventory
=
():
Promise
<
any
[]
>
=>
{
return
new
Promise
((
resolve
,
reject
)
=>
{
getProductWarehouseAll
().
then
(
res
=>
{
if
(
res
.
code
===
1000
)
{
resolve
(
res
.
data
);
}
reject
();
}).
catch
(()
=>
{
reject
();
});
});
};
export
const
createEffects
=
(
context
,
actions
)
=>
{
useBusinessEffects
(
context
,
actions
);
useAsyncSelect
(
'invoicesTypeId'
,
fetchInvoicesType
,
[
'name'
,
'id'
]);
useAsyncSelect
(
'warehouseId'
,
fetchInventory
,
[
'name'
,
'id'
]);
};
src/pages/transaction/stockSellStorage/bills/components/BillsForm/effects/useBusinessEffects.ts
View file @
d30ba54c
...
...
@@ -5,15 +5,10 @@
* @LastEditTime: 2021-11-17 20:30:16
* @Description: 联动逻辑相关
*/
import
{
Modal
,
message
}
from
'antd'
;
import
{
FormEffectHooks
,
FormPath
}
from
'@formily/antd'
;
import
{
useLinkageUtils
}
from
'@/utils/formEffectUtils'
;
import
{
useStateFilterSearchLinkageEffect
}
from
'@/formSchema/effects/useFilterSearch'
;
import
{
DEPENDENT_DOC_ORDER
,
DEPENDENT_DOC_EXCHANGE
,
DEPENDENT_DOC_RETURN
,
DEPENDENT_DOC_PRODUCTION
,
DEPENDENT_DOC_INTERNAL
,
DOC_TYPE_PURCHASE_RECEIPT
,
...
...
@@ -27,15 +22,10 @@ import {
DOC_TYPE_EXCHANGE_RETURN_INVOICE
,
DOC_TYPE_EXCHANGE_RETURN_RECEIPT
,
}
from
'@/constants/commodity'
;
import
{
DELIVERY_TYPE
,
}
from
'@/constants/order'
;
import
Search
from
'@/components/NiceForm/components/Search'
;
import
Submit
from
'@/components/NiceForm/components/Submit'
;
import
DateSelect
from
'@/components/NiceForm/components/DateSelect'
;
import
{
FORM_FILTER_PATH
}
from
'@/formSchema/const'
;
import
{
getEnhanceProcessToBeAddDeliveryDetails
,
getEnhanceSupplierToBeAddStorageDetails
}
from
'@/services/EnhanceV2Api'
;
import
{
getAsReplaceGoodsPageReturnedGoods
,
getAsReturnGoodsPageReturnedGoods
}
from
'@/services/AfterServiceV2Api'
;
import
{
purchaseOrderBillSchema
,
machiningWarehousingBillSchema
,
...
...
@@ -200,18 +190,6 @@ const getParams = type => {
return
basicParams
;
};
const
freeEnumItem
=
(
data
:
{[
key
:
string
]:
any
}[],
keyName
:
string
,
value
:
any
)
=>
{
if
(
!
Array
.
isArray
(
data
))
{
return
;
}
data
.
forEach
(
item
=>
{
if
(
item
[
keyName
]
===
value
)
{
item
.
disabled
=
false
;
}
else
{
item
.
disabled
=
true
;
}
});
};
export
const
useBusinessEffects
=
(
context
,
actions
)
=>
{
const
{
...
...
@@ -223,58 +201,11 @@ export const useBusinessEffects = (context, actions) => {
const
linkage
=
useLinkageUtils
();
// 根据 单据类型 联动 对应单据所选项
onFieldInputChange$
(
'invoicesTypeId'
).
subscribe
(
fieldState
=>
{
// const newEnum = [...getFieldState('relevanceInvoices', state => state.props.enum)];
// switch (fieldState.value) {
// // 采购入库单、销售发货单只能选择 订单
// case DOC_TYPE_PURCHASE_RECEIPT:
// case DOC_TYPE_SALES_INVOICE: {
// freeEnumItem(newEnum, 'value', DEPENDENT_DOC_ORDER);
// break;
// }
// // 加工入库单、加工发货单只能选择 生产通知单
// case DOC_TYPE_PROCESS_RECEIPT:
// case DOC_TYPE_PROCESS_INVOICE: {
// freeEnumItem(newEnum, 'value', DEPENDENT_DOC_PRODUCTION);
// break;
// }
// // 退货发货单、退货入库单只能选择 退货申请单
// case DOC_TYPE_RETURN_INVOICE:
// case DOC_TYPE_RETURN_RECEIPT: {
// freeEnumItem(newEnum, 'value', DEPENDENT_DOC_RETURN);
// break;
// }
// // 换货退货发货单、换货退货入库单只能选择 换货申请单
// case DOC_TYPE_EXCHANGE_RETURN_INVOICE:
// case DOC_TYPE_EXCHANGE_RETURN_RECEIPT: {
// freeEnumItem(newEnum, 'value', DEPENDENT_DOC_EXCHANGE);
// break;
// }
// // 换货发货单、换货入库单只能选择 换货申请单
// case DOC_TYPE_EXCHANGE_INVOICE:
// case DOC_TYPE_EXCHANGE_RECEIPT: {
// freeEnumItem(newEnum, 'value', DEPENDENT_DOC_EXCHANGE);
// break;
// }
// // 其他的走内部单据
// default: {
// freeEnumItem(newEnum, 'value', DEPENDENT_DOC_INTERNAL);
// break;
// }
// }
// linkage.value('relevanceInvoices', undefined);
// linkage.enum('relevanceInvoices', newEnum);
const
invoicesDetailsRequestsVal
=
getFieldValue
(
'invoicesDetailsRequests'
);
onFieldInputChange$
(
'invoicesTypeId'
).
subscribe
(()
=>
{
const
invoicesDetailsRequestsVal
=
getFieldValue
(
'invoicesDetailsDTOList'
);
if
(
invoicesDetailsRequestsVal
&&
invoicesDetailsRequestsVal
.
length
)
{
linkage
.
value
(
'invoicesDetails
Requests
'
,
[]);
linkage
.
value
(
'invoicesDetails
DTOList
'
,
[]);
}
const
orderNoVal
=
getFieldValue
(
'orderNo'
);
...
...
@@ -287,13 +218,13 @@ export const useBusinessEffects = (context, actions) => {
onFieldValueChange$
(
'invoicesTypeId'
).
subscribe
(
fieldState
=>
{
const
{
originAsyncData
=
[]
}
=
fieldState
;
const
current
=
originAsyncData
.
find
(
item
=>
item
.
id
===
fieldState
.
value
);
const
params
=
getParams
(
fieldState
.
value
);
//
const params = getParams(fieldState.value);
if
(
current
)
{
linkage
.
value
(
'invoicesTypeCode'
,
current
.
number
);
linkage
.
value
(
'direction'
,
current
.
direction
);
}
linkage
.
componentProps
(
'orderNo'
,
params
);
//
linkage.componentProps('orderNo', params);
});
// 根据 单据类型 联动 对应单据所选项
...
...
@@ -312,229 +243,17 @@ export const useBusinessEffects = (context, actions) => {
});
// 对应仓库改变
onFieldInputChange$
(
'inventoryId'
).
subscribe
(
fieldState
=>
{
onFieldInputChange$
(
'warehouseId'
).
subscribe
(
fieldState
=>
{
console
.
log
(
"🚀 ~ file: useBusinessEffects.ts ~ line 316 ~ useBusinessEffects ~ fieldState"
,
fieldState
)
const
current
=
fieldState
.
originAsyncData
.
find
(
item
=>
item
.
id
===
fieldState
.
value
);
console
.
log
(
"🚀 ~ file: useBusinessEffects.ts ~ line 317 ~ useBusinessEffects ~ current"
,
current
)
if
(
current
)
{
linkage
.
value
(
'inventoryRole'
,
current
.
principal
);
}
});
// 关联单据改变
onFieldValueChange$
(
'orderNo'
).
subscribe
(
fieldState
=>
{
const
invoicesTypeIdVal
=
getFieldValue
(
'invoicesTypeId'
);
const
first
=
fieldState
.
value
&&
fieldState
.
value
[
0
];
// 设置单据公用的数据相关
setFieldValue
(
'memberName'
,
first
?
first
.
memberName
:
''
);
setFieldValue
(
'membersId'
,
first
?
first
.
membersId
:
''
);
setFieldValue
(
'membersRoleId'
,
first
?
first
.
membersRoleId
:
''
);
setFieldValue
(
'address'
,
first
?
`
${
first
.
fullAddress
}
${
first
.
receiverName
}
/
${
first
.
phone
}
`
:
''
);
// 以下数据只用于收集,不用于展示
setFieldValue
(
'deliveryAddresId'
,
first
?
first
.
deliveryAddresId
:
null
);
setFieldValue
(
'receiverName'
,
first
?
first
.
receiverName
:
''
);
setFieldValue
(
'fullAddress'
,
first
?
first
.
fullAddress
:
''
);
setFieldValue
(
'phone'
,
first
?
first
.
phone
:
''
);
setFieldValue
(
'isDefault'
,
first
?
first
.
isDefault
:
false
);
if
(
!
first
)
{
return
;
}
switch
(
invoicesTypeIdVal
)
{
// 采购入库单、销售发货单
case
DOC_TYPE_PURCHASE_RECEIPT
:
case
DOC_TYPE_SALES_INVOICE
:
{
// 设置配送方式相关字段数据
setFieldValue
(
'transport'
,
DELIVERY_TYPE
[
first
.
deliveryType
]);
setFieldValue
(
'deliveryType'
,
first
.
deliveryType
);
// 根据选择的订单查询 订单对应的商品,并给 Table 的商品下拉框赋值
// getOrderProcurementOrderProductList({
// id: first.id,
// orderNo: '',
// } as any).then(res => {
// if (res.code === 1000) {
// const goodOptions = res.data.map(item => ({
// label: item.productName,
// value: item.id,
// }));
// setFieldState('invoicesDetailsRequests.*.product', state => {
// FormPath.setIn(state, 'originAsyncData', res.data);
// FormPath.setIn(state, 'props.enum', goodOptions);
// });
// }
// }).catch((err) => {
// console.warn(err);
// });
break
;
}
// 加工入库单
case
DOC_TYPE_PROCESS_RECEIPT
:
{
// 设置配送方式相关字段数据
setFieldValue
(
'transport'
,
DELIVERY_TYPE
[
first
.
deliveryType
]);
setFieldValue
(
'deliveryType'
,
first
.
deliveryType
);
// 从加工单详情获取 商品 数据
getEnhanceSupplierToBeAddStorageDetails
({
id
:
first
.
id
,
}).
then
(
res
=>
{
if
(
res
.
code
!==
1000
)
{
return
;
}
const
{
details
=
[],
deliveryType
,
}
=
res
.
data
;
const
goodOptions
=
details
.
map
(
item
=>
({
label
:
`
${
item
.
productName
}${
item
.
orderNo
?
'---'
+
item
.
orderNo
:
''
}
`
,
value
:
item
.
id
,
}));
setFieldState
(
'invoicesDetailsRequests.*.product'
,
state
=>
{
FormPath
.
setIn
(
state
,
'originAsyncData'
,
details
.
map
(
item
=>
({
...
item
,
// 这里的数据以采购、销售订单的为准
price
:
item
.
processPrice
,
// 与采购入库单、销售发货单统一
logistics
:
{
deliveryType
,
// 手动赋值配送方式,同一个通知单下的所有商品都是统一的配送方式
},
})));
FormPath
.
setIn
(
state
,
'props.enum'
,
goodOptions
);
});
}).
catch
((
err
)
=>
{
console
.
warn
(
err
);
});
break
;
}
// 加工发货单
case
DOC_TYPE_PROCESS_INVOICE
:
{
// 设置配送方式相关字段数据
setFieldValue
(
'transport'
,
DELIVERY_TYPE
[
first
.
deliveryType
]);
setFieldValue
(
'deliveryType'
,
first
.
deliveryType
);
// 从加工单详情获取 商品 数据
getEnhanceProcessToBeAddDeliveryDetails
({
id
:
first
.
id
,
}).
then
(
res
=>
{
if
(
res
.
code
!==
1000
)
{
return
;
}
const
{
details
=
[],
}
=
res
.
data
;
const
goodOptions
=
details
.
map
(
item
=>
({
label
:
`
${
item
.
productName
}${
item
.
orderNo
?
'---订单号:'
+
item
.
orderNo
:
''
}
`
,
value
:
item
.
id
,
}));
setFieldState
(
'invoicesDetailsRequests.*.product'
,
state
=>
{
FormPath
.
setIn
(
state
,
'originAsyncData'
,
details
.
map
((
item
)
=>
({
...
item
,
price
:
item
.
processPrice
,
// 与采购入库单、销售发货单统一
})));
FormPath
.
setIn
(
state
,
'props.enum'
,
goodOptions
);
});
}).
catch
((
err
)
=>
{
console
.
warn
(
err
);
});
break
;
}
// 换货退货发货单
case
DOC_TYPE_EXCHANGE_RETURN_INVOICE
:
// 换货退货入库单
case
DOC_TYPE_EXCHANGE_RETURN_RECEIPT
:
// 换货发货单
case
DOC_TYPE_EXCHANGE_INVOICE
:
// 换货入库单
case
DOC_TYPE_EXCHANGE_RECEIPT
:
{
// 设置配送方式相关字段数据
setFieldValue
(
'transport'
,
DELIVERY_TYPE
[
first
.
deliveryType
]);
setFieldValue
(
'deliveryType'
,
first
.
deliveryType
);
// 获取明细数据 商品 数据
getAsReplaceGoodsPageReturnedGoods
({
replaceId
:
first
.
id
,
current
:
`
${
1
}
`
,
pageSize
:
`
${
99999
}
`
,
}).
then
(
res
=>
{
if
(
res
.
code
!==
1000
)
{
return
;
}
const
{
data
=
[],
}
=
res
.
data
;
const
goodOptions
=
data
.
map
(
item
=>
({
label
:
`
${
item
.
productName
}
---订单号:
${
item
.
orderNo
}
`
,
value
:
item
.
orderRecordId
,
}));
setFieldState
(
'invoicesDetailsRequests.*.product'
,
state
=>
{
FormPath
.
setIn
(
state
,
'originAsyncData'
,
data
.
map
(
item
=>
({
...
item
,
price
:
item
.
purchasePrice
,
// 与采购入库单、销售发货单统一
id
:
item
.
orderRecordId
,
})));
FormPath
.
setIn
(
state
,
'props.enum'
,
goodOptions
);
});
}).
catch
((
err
)
=>
{
console
.
warn
(
err
);
});
break
;
}
// 退货发货单
case
DOC_TYPE_RETURN_INVOICE
:
// 退货入库单
case
DOC_TYPE_RETURN_RECEIPT
:
{
// 设置配送方式相关字段数据
setFieldValue
(
'transport'
,
DELIVERY_TYPE
[
first
.
deliveryType
]);
setFieldValue
(
'deliveryType'
,
first
.
deliveryType
);
// 获取明细数据 商品 数据
getAsReturnGoodsPageReturnedGoods
({
returnId
:
first
.
id
,
current
:
`
${
1
}
`
,
pageSize
:
`
${
99999
}
`
,
}).
then
(
res
=>
{
if
(
res
.
code
!==
1000
)
{
return
;
}
const
{
data
=
[],
}
=
res
.
data
;
const
goodOptions
=
data
.
map
(
item
=>
({
label
:
`
${
item
.
productName
}
---
${
intl
.
formatMessage
({
id
:
'stockSellStorage.dingdanhao'
})}
:
${
item
.
orderNo
}
`
,
value
:
item
.
orderRecordId
,
}));
setFieldState
(
'invoicesDetailsRequests.*.product'
,
state
=>
{
FormPath
.
setIn
(
state
,
'originAsyncData'
,
data
.
map
(
item
=>
({
...
item
,
price
:
item
.
purchasePrice
,
// 与采购入库单、销售发货单统一
id
:
item
.
orderRecordId
,
})));
FormPath
.
setIn
(
state
,
'props.enum'
,
goodOptions
);
});
}).
catch
((
err
)
=>
{
console
.
warn
(
err
);
});
break
;
}
default
:
{
break
;
}
}
});
// 关联单据改变
onFieldInputChange$
(
'orderNo'
).
subscribe
(
fieldState
=>
{
const
invoicesDetailsRequestsVal
=
getFieldValue
(
'invoicesDetailsRequests'
);
if
(
invoicesDetailsRequestsVal
&&
invoicesDetailsRequestsVal
.
length
)
{
linkage
.
value
(
'invoicesDetailsRequests'
,
[]);
linkage
.
value
(
'warehouseRole'
,
current
.
principal
);
}
});
// 关联明细
onFieldValueChange$
(
'invoicesDetails
Requests
'
).
subscribe
(
fieldState
=>
{
onFieldValueChange$
(
'invoicesDetails
DTOList
'
).
subscribe
(
fieldState
=>
{
const
{
value
}
=
fieldState
;
if
(
!
value
.
length
)
{
...
...
@@ -544,412 +263,26 @@ export const useBusinessEffects = (context, actions) => {
}
});
// 关联明细 商品下拉框 联动商品ID、单价
onFieldInputChange$
(
'invoicesDetailsRequests.*.product'
).
subscribe
(
fieldState
=>
{
const
{
name
,
originAsyncData
,
value
}
=
fieldState
;
const
current
=
originAsyncData
.
find
(
item
=>
item
.
id
===
value
);
const
invoicesTypeIdVal
=
getFieldValue
(
'invoicesTypeId'
);
const
invoicesDetailsRequestsValue
=
getFieldValue
(
'invoicesDetailsRequests'
);
const
itemIndex
=
name
.
match
(
/
\d
/
)[
0
];
const
itemNoValue
=
getFieldValue
(
FormPath
.
transform
(
name
,
/
\d
/
,
$1
=>
{
return
`invoicesDetailsRequests.
${
$1
}
.itemNo`
}));
// 这里判断是否货品 跟 商品 都已经选择过了,不可重复选择
const
sameGood
=
invoicesDetailsRequestsValue
.
find
((
item
,
index
)
=>
index
!==
+
itemIndex
&&
item
.
itemNo
===
itemNoValue
&&
item
.
product
===
value
);
if
(
sameGood
)
{
message
.
warning
(
intl
.
formatMessage
({
id
:
'stockSellStorage.cunzaixiangtonghuohaoshang'
}));
setTimeout
(()
=>
{
setFieldState
(
FormPath
.
transform
(
name
,
/
\d
/
,
$1
=>
{
return
`invoicesDetailsRequests.
${
$1
}
.product`
}),
state
=>
{
state
.
value
=
undefined
;
}
);
},
0
);
return
;
}
// 取消选择
if
(
!
value
)
{
setFieldState
(
FormPath
.
transform
(
name
,
/
\d
/
,
$1
=>
{
return
`invoicesDetailsRequests.
${
$1
}
.productId`
}),
state
=>
{
state
.
value
=
''
;
}
);
setFieldState
(
FormPath
.
transform
(
name
,
/
\d
/
,
$1
=>
{
return
`invoicesDetailsRequests.
${
$1
}
.price`
}),
state
=>
{
state
.
value
=
null
;
}
);
setFieldState
(
FormPath
.
transform
(
name
,
/
\d
/
,
$1
=>
{
return
`invoicesDetailsRequests.
${
$1
}
.productCount`
}),
state
=>
{
state
.
value
=
''
;
}
);
setFieldState
(
FormPath
.
transform
(
name
,
/
\d
/
,
$1
=>
{
return
`invoicesDetailsRequests.
${
$1
}
.amount`
}),
state
=>
{
state
.
value
=
null
;
}
);
const
invoicesDetailsRequestsValue
=
getFieldValue
(
'invoicesDetailsRequests'
);
switch
(
invoicesTypeIdVal
)
{
// 采购入库单、销售发货单
case
DOC_TYPE_PURCHASE_RECEIPT
:
case
DOC_TYPE_SALES_INVOICE
:
{
// 明细每项数据的 商品 未选中,物流方式设置成 ''
if
(
invoicesDetailsRequestsValue
.
every
(
item
=>
!
item
.
product
)
)
{
setFieldValue
(
'transport'
,
''
);
setFieldValue
(
'deliveryType'
,
null
);
}
break
;
}
}
// 额外的数据
setFieldState
(
FormPath
.
transform
(
name
,
/
\d
/
,
$1
=>
{
return
`invoicesDetailsRequests.
${
$1
}
.extraData`
}),
state
=>
{
state
.
value
=
{};
}
);
}
if
(
!
current
)
{
return
;
}
// 关联明细 商品数量 联动计算商品金额
onFieldInputChange$
(
'invoicesDetailsDTOList.*.invoicesCount'
).
subscribe
(
fieldState
=>
{
const
{
name
,
value
}
=
fieldState
;
setFieldState
(
FormPath
.
transform
(
name
,
/
\d
/
,
$1
=>
{
return
`invoicesDetailsRequests.
${
$1
}
.productId`
}),
state
=>
{
state
.
value
=
current
.
productId
;
}
);
setFieldState
(
const
costPriceValue
=
getFieldState
(
FormPath
.
transform
(
name
,
/
\d
/
,
$1
=>
{
return
`invoicesDetails
Requests.
${
$1
}
.p
rice`
return
`invoicesDetails
DTOList.
${
$1
}
.costP
rice`
}),
state
=>
{
state
.
value
=
current
.
price
?
current
.
price
.
toFixed
(
2
)
:
null
;
}
state
=>
state
.
value
,
);
// 额外的数据
// 内部单据 单据金额为 成本价 * 单据数量
setFieldState
(
FormPath
.
transform
(
name
,
/
\d
/
,
$1
=>
{
return
`invoicesDetails
Requests.
${
$1
}
.extraData
`
return
`invoicesDetails
DTOList.
${
$1
}
.totalPrice
`
}),
state
=>
{
state
.
value
=
{
productName
:
current
.
productName
,
deliveryType
:
// 配送方式,一个单据只能有一个配送方式
current
.
logistics
&&
current
.
logistics
.
deliveryType
?
current
.
logistics
.
deliveryType
:
undefined
,
id
:
current
.
id
,
// 加工发货单需要,明细id
processNum
:
current
.
processNum
,
// 加工发货单需要,加工数量
orderNo
:
current
.
orderNo
,
// 订单编号
goodsCount
:
current
.
purchaseCount
,
// 采购数量
price
:
current
.
processPrice
,
// 加工发货、入库单需要,加工单价
totalPrice
:
current
.
processTotalPrice
,
// 加工发货、入库单需要,加工总价
};
}
);
switch
(
invoicesTypeIdVal
)
{
// 采购入库单、销售发货单
case
DOC_TYPE_PURCHASE_RECEIPT
:
case
DOC_TYPE_SALES_INVOICE
:
{
// 设置单据数量,取采购数量
setFieldState
(
FormPath
.
transform
(
name
,
/
\d
/
,
$1
=>
{
return
`invoicesDetailsRequests.
${
$1
}
.productCount`
}),
state
=>
{
state
.
value
=
current
.
purchaseCount
;
}
);
setFieldState
(
FormPath
.
transform
(
name
,
/
\d
/
,
$1
=>
{
return
`invoicesDetailsRequests.
${
$1
}
.amount`
}),
state
=>
{
state
.
value
=
current
.
price
?
`
${
intl
.
formatMessage
({
id
:
'common.money'
})}${(
current
.
purchaseCount
*
current
.
price
).
toFixed
(
2
)}
`
:
null
;
}
);
setTimeout
(()
=>
{
const
invoicesDetailsRequestsValue
=
getFieldValue
(
'invoicesDetailsRequests'
);
// 配送方式,一个单据只能有一个配送方式
setFieldState
(
FormPath
.
transform
(
name
,
/
\d
/
,
$1
=>
{
return
`invoicesDetailsRequests.
${
$1
}
.product`
}),
state
=>
{
if
(
current
.
logistics
&&
invoicesDetailsRequestsValue
.
some
(
item
=>
item
.
extraData
&&
item
.
extraData
.
deliveryType
!==
current
.
logistics
.
deliveryType
)
)
{
state
.
errors
=
intl
.
formatMessage
({
id
:
'stockSellStorage.shangpinpeisongfangshibuyi'
});
}
else
{
state
.
errors
=
''
;
}
}
);
// 明细每项数据的 商品 选中,物流方式设置成 为对应商品的物流方式
if
(
current
.
logistics
&&
current
.
logistics
.
deliveryType
&&
invoicesDetailsRequestsValue
.
every
(
item
=>
item
.
extraData
&&
item
.
extraData
.
deliveryType
===
current
.
logistics
.
deliveryType
)
)
{
setFieldValue
(
'transport'
,
DELIVERY_TYPE
[
current
.
logistics
.
deliveryType
]);
setFieldValue
(
'deliveryType'
,
current
.
logistics
.
deliveryType
);
}
},
0
);
break
;
}
// 加工入库单、加工发货单
case
DOC_TYPE_PROCESS_RECEIPT
:
case
DOC_TYPE_PROCESS_INVOICE
:
{
// 设置单据数量,取加工数量
setFieldState
(
FormPath
.
transform
(
name
,
/
\d
/
,
$1
=>
{
return
`invoicesDetailsRequests.
${
$1
}
.productCount`
}),
state
=>
{
state
.
value
=
current
.
processNum
;
}
);
setFieldState
(
FormPath
.
transform
(
name
,
/
\d
/
,
$1
=>
{
return
`invoicesDetailsRequests.
${
$1
}
.amount`
}),
state
=>
{
state
.
value
=
current
.
processPrice
?
`
${
intl
.
formatMessage
({
id
:
'common.money'
})}${(
current
.
processNum
*
current
.
processPrice
).
toFixed
(
2
)}
`
:
null
;
}
);
break
;
}
// 换货退货发货单
case
DOC_TYPE_EXCHANGE_RETURN_INVOICE
:
// 换货退货入库单
case
DOC_TYPE_EXCHANGE_RETURN_RECEIPT
:
// 换货发货单
case
DOC_TYPE_EXCHANGE_INVOICE
:
// 换货入库单
case
DOC_TYPE_EXCHANGE_RECEIPT
:
{
// 设置单据数量,取换货数量
setFieldState
(
FormPath
.
transform
(
name
,
/
\d
/
,
$1
=>
{
return
`invoicesDetailsRequests.
${
$1
}
.productCount`
}),
state
=>
{
state
.
value
=
current
.
replaceCount
;
}
);
setFieldState
(
FormPath
.
transform
(
name
,
/
\d
/
,
$1
=>
{
return
`invoicesDetailsRequests.
${
$1
}
.amount`
}),
state
=>
{
state
.
value
=
current
.
price
?
`
${
intl
.
formatMessage
({
id
:
'common.money'
})}${(
current
.
replaceCount
*
current
.
price
).
toFixed
(
2
)}
`
:
null
;
}
);
break
;
}
// 退货发货单
case
DOC_TYPE_RETURN_INVOICE
:
// 退货入库单
case
DOC_TYPE_RETURN_RECEIPT
:
{
// 设置单据数量,取退货数量
setFieldState
(
FormPath
.
transform
(
name
,
/
\d
/
,
$1
=>
{
return
`invoicesDetailsRequests.
${
$1
}
.productCount`
}),
state
=>
{
state
.
value
=
current
.
returnCount
;
}
);
setFieldState
(
FormPath
.
transform
(
name
,
/
\d
/
,
$1
=>
{
return
`invoicesDetailsRequests.
${
$1
}
.amount`
}),
state
=>
{
state
.
value
=
current
.
price
?
`
${
intl
.
formatMessage
({
id
:
'common.money'
})}${(
current
.
returnCount
*
current
.
price
).
toFixed
(
2
)}
`
:
null
;
}
);
break
;
}
default
:
{
break
;
state
.
value
=
costPriceValue
?
`
${
intl
.
formatMessage
({
id
:
'common.money'
})}${(
+
value
*
costPriceValue
).
toFixed
(
2
)}
`
:
null
;
}
}
});
// 关联明细 商品数量 联动计算商品金额
onFieldInputChange$
(
'invoicesDetailsRequests.*.productCount'
).
subscribe
(
fieldState
=>
{
const
{
name
,
value
}
=
fieldState
;
const
invoicesTypeIdVal
=
getFieldValue
(
'invoicesTypeId'
);
const
originAsyncData
=
getFieldState
(
FormPath
.
transform
(
name
,
/
\d
/
,
$1
=>
{
return
`invoicesDetailsRequests.
${
$1
}
.product`
}),
state
=>
state
.
originAsyncData
,
);
const
goodId
=
getFieldState
(
FormPath
.
transform
(
name
,
/
\d
/
,
$1
=>
{
return
`invoicesDetailsRequests.
${
$1
}
.product`
}),
state
=>
state
.
value
,
);
const
current
=
originAsyncData
?
originAsyncData
.
find
(
item
=>
item
.
id
===
goodId
)
:
null
;
// switch (invoicesTypeIdVal) {
// // 采购入库单、销售发货单
// case DOC_TYPE_PURCHASE_RECEIPT:
// case DOC_TYPE_SALES_INVOICE: {
// if (current && +value > current.purchaseCount) {
// Modal.destroyAll();
// Modal.confirm({
// title: intl.formatMessage({id: 'stockSellStorage.tishi'}),
// content: intl.formatMessage({id: 'stockSellStorage.danjushuliangyichaoguoshang'}),
// okText: intl.formatMessage({id: 'stockSellStorage.queren'}),
// cancelText: intl.formatMessage({id: 'stockSellStorage.quxiao'}),
// });
// }
// break;
// }
// // 加工入库单、加工发货单
// case DOC_TYPE_PROCESS_RECEIPT:
// case DOC_TYPE_PROCESS_INVOICE: {
// if (current && +value > current.processNum) {
// Modal.destroyAll();
// Modal.confirm({
// title: intl.formatMessage({id: 'stockSellStorage.tishi'}),
// content: intl.formatMessage({id: 'stockSellStorage.danjushuliangyichaoguojia'}),
// okText: intl.formatMessage({id: 'stockSellStorage.queren'}),
// cancelText: intl.formatMessage({id: 'stockSellStorage.quxiao'}),
// cancelButtonProps: {
// style: {
// display: 'none',
// },
// },
// });
// }
// break;
// }
// // 换货退货发货单
// case DOC_TYPE_EXCHANGE_RETURN_INVOICE:
// // 换货退货入库单
// case DOC_TYPE_EXCHANGE_RETURN_RECEIPT:
// // 换货发货单
// case DOC_TYPE_EXCHANGE_INVOICE:
// // 换货入库单
// case DOC_TYPE_EXCHANGE_RECEIPT: {
// if (current && +value > current.replaceCount) {
// Modal.destroyAll();
// Modal.confirm({
// title: intl.formatMessage({id: 'stockSellStorage.tishi'}),
// content: intl.formatMessage({id: 'stockSellStorage.danjushuliangyichaoguohuan'}),
// okText: intl.formatMessage({id: 'stockSellStorage.queren'}),
// cancelText: intl.formatMessage({id: 'stockSellStorage.quxiao'}),
// cancelButtonProps: {
// style: {
// display: 'none',
// },
// },
// });
// }
// break;
// }
// // 退货发货单
// case DOC_TYPE_RETURN_INVOICE:
// // 退货入库单
// case DOC_TYPE_RETURN_RECEIPT: {
// if (current && +value > current.returnCount) {
// Modal.destroyAll();
// Modal.confirm({
// title: intl.formatMessage({id: 'stockSellStorage.tishi'}),
// content: intl.formatMessage({id: 'stockSellStorage.danjushuliangyichaoguotui'}),
// okText: intl.formatMessage({id: 'stockSellStorage.queren'}),
// cancelText: intl.formatMessage({id: 'stockSellStorage.quxiao'}),
// cancelButtonProps: {
// style: {
// display: 'none',
// },
// },
// });
// }
// break;
// }
// 内部单据
// default: {
// 成本价
const
costPriceValue
=
getFieldState
(
FormPath
.
transform
(
name
,
/
\d
/
,
$1
=>
{
return
`invoicesDetailsRequests.
${
$1
}
.costPrice`
}),
state
=>
state
.
value
,
);
// 内部单据 单据金额为 成本价 * 单据数量
setFieldState
(
FormPath
.
transform
(
name
,
/
\d
/
,
$1
=>
{
return
`invoicesDetailsRequests.
${
$1
}
.amount`
}),
state
=>
{
state
.
value
=
costPriceValue
?
`
${
intl
.
formatMessage
({
id
:
'common.money'
})}${(
+
value
*
costPriceValue
).
toFixed
(
2
)}
`
:
null
;
}
);
// break;
// }
// }
if
(
current
)
{
setFieldState
(
FormPath
.
transform
(
name
,
/
\d
/
,
$1
=>
{
return
`invoicesDetailsRequests.
${
$1
}
.amount`
}),
state
=>
{
state
.
value
=
current
.
price
?
`
${
intl
.
formatMessage
({
id
:
'common.money'
})}${(
+
value
*
current
.
price
).
toFixed
(
2
)}
`
:
null
;
}
);
}
});
// 对应单据改变
...
...
@@ -961,10 +294,10 @@ export const useBusinessEffects = (context, actions) => {
// 所以把title设置
if
(
value
===
DEPENDENT_DOC_INTERNAL
)
{
linkage
.
display
(
'*(orderNo,memberName,address,transport)'
,
false
);
linkage
.
display
(
'invoicesDetails
Requests
.*.*(product,productId,price)'
,
false
);
linkage
.
display
(
'invoicesDetails
DTOList
.*.*(product,productId,price)'
,
false
);
}
else
{
linkage
.
display
(
'*(orderNo,memberName,address,transport)'
);
linkage
.
display
(
'invoicesDetails
Requests
.*.*(product,productId,price)'
);
linkage
.
display
(
'invoicesDetails
DTOList
.*.*(product,productId,price)'
);
}
});
}
src/pages/transaction/stockSellStorage/bills/components/BillsForm/index.tsx
View file @
d30ba54c
import
React
,
{
useState
,
useEffect
,
useRef
}
from
'react'
;
import
{
Button
,
Card
,
Spin
,
message
}
from
'antd'
;
import
React
,
{
useState
,
useEffect
}
from
'react'
;
import
{
Button
,
Card
,
Spin
}
from
'antd'
;
import
{
DeleteOutlined
}
from
'@ant-design/icons'
;
import
{
Radio
,
ArrayTable
}
from
'@formily/antd-components'
;
import
{
getIntl
,
history
,
Prompt
}
from
'umi'
;
import
moment
from
'moment'
;
import
{
usePageStatus
,
PageStatus
}
from
'@/hooks/usePageStatus'
;
import
{
PageHeaderWrapper
}
from
'@ant-design/pro-layout'
;
import
{
SaveOutlined
,
PlusOutlined
}
from
'@ant-design/icons'
;
import
{
createFormActions
,
FormEffectHooks
}
from
'@formily/antd'
;
import
{
useRowSelectionTable
}
from
'@/hooks/useRowSelectionTable'
;
import
{
getProductCustomerGetCustomerCategoryTree
,
getProductGoodsGetGoodsList
,
getProductInvoicesDetails
,
getProductSelectGetSelectBrand
,
postProductInvoicesUpdata
}
from
'@/services/ProductV2Api'
;
import
{
getEnhanceProcessToBeAddDeliveryDetails
,
getEnhanceSupplierToBeAddStorageDetails
,
postEnhanceProcessToBeAddDeliverySubmit
,
postEnhanceSupplierToBeAddStorageSubmit
}
from
'@/services/EnhanceV2Api'
;
import
{
getAsReplaceGoodsGetDetailByConsumer
,
getAsReplaceGoodsGetDetailBySupplier
,
getAsReturnGoodsGetDetailByConsumer
,
getAsReturnGoodsGetDetailBySupplier
}
from
'@/services/AfterServiceV2Api'
;
import
{
useLinkageUtils
}
from
'@/utils/formEffectUtils'
;
import
{
getProductGoodsGetGoodsList
,
getProductInvoicesDetails
,
postProductInvoicesAddOrUpdate
}
from
'@/services/ProductV2Api'
;
import
ReutrnEle
from
'@/components/ReturnEle'
;
import
NiceForm
from
'@/components/NiceForm'
;
import
ModalTable
from
'@/components/ModalTable'
;
...
...
@@ -22,23 +18,6 @@ import SearchSelect from '@/components/NiceForm/components/SearchSelect';
import
CustomCategorySearch
from
'@/components/NiceForm/components/CustomCategorySearch'
;
import
{
useStateFilterSearchLinkageEffect
}
from
'@/formSchema/effects/useFilterSearch'
;
import
{
FORM_FILTER_PATH
}
from
'@/formSchema/const'
;
import
{
useAsyncSelect
}
from
'@/formSchema/effects/useAsyncSelect'
;
import
{
DOC_TYPE_PURCHASE_RECEIPT
,
DOC_TYPE_SALES_INVOICE
,
DOC_TYPE_PROCESS_RECEIPT
,
DOC_TYPE_PROCESS_INVOICE
,
DOC_TYPE_RETURN_INVOICE
,
DOC_TYPE_RETURN_RECEIPT
,
DOC_TYPE_EXCHANGE_INVOICE
,
DOC_TYPE_EXCHANGE_RECEIPT
,
DOC_TYPE_EXCHANGE_RETURN_INVOICE
,
DOC_TYPE_EXCHANGE_RETURN_RECEIPT
,
DEPENDENT_DOC_INTERNAL
,
DOC_DIRECTION_WAREHOUSING
,
DOC_DIRECTION_OUTGOING
,
}
from
'@/constants/commodity'
;
import
{
addBillSchema
,
goodsSearchSchema
}
from
'./schema'
;
import
{
createEffects
}
from
'./effects'
;
import
EllipsisText
from
'../EllipsisText'
;
...
...
@@ -47,7 +26,6 @@ const intl = getIntl();
const
addSchemaAction
=
createFormActions
();
const
{
onFormInputChange$
,
onFormInit$
,
}
=
FormEffectHooks
;
interface
BillsFormProps
{
...
...
@@ -82,31 +60,12 @@ interface BillsFormProps {
source
?:
1
|
2
;
};
function
transforDirection
(
type
)
{
let
flag
=
0
;
switch
(
type
)
{
case
DOC_TYPE_PURCHASE_RECEIPT
:
case
DOC_TYPE_PROCESS_RECEIPT
:
case
DOC_TYPE_RETURN_RECEIPT
:
case
DOC_TYPE_EXCHANGE_RECEIPT
:
case
DOC_TYPE_EXCHANGE_RETURN_RECEIPT
:
flag
=
1
;
break
;
default
:
break
;
}
return
flag
;
};
;
const
BillsForm
:
React
.
FC
<
BillsFormProps
>
=
({
id
=
0
,
id
,
invoicesNo
=
''
,
isEdit
=
false
,
invoicesTypeId
,
relevanceInvoices
,
relevanceInvoicesId
,
source
=
2
,
})
=>
{
const
[
visible
,
setVisible
]
=
useState
(
false
);
const
[
productRowSelection
,
productRowCtl
]
=
useRowSelectionTable
({
type
:
'checkbox'
});
...
...
@@ -144,26 +103,6 @@ const BillsForm: React.FC<BillsFormProps> = ({
},
]
// 获取品牌
const
fetchBrand
=
async
(
name
=
''
)
=>
{
const
res
=
await
getProductSelectGetSelectBrand
({
name
,
});
if
(
res
.
code
===
1000
)
{
return
res
.
data
;
}
return
[];
}
// 获取会员品类
const
fetchCustomerCategory
=
async
()
=>
{
const
res
=
await
getProductCustomerGetCustomerCategoryTree
();
if
(
res
.
code
===
1000
)
{
return
res
.
data
;
}
return
[];
}
// 获取单据详情
const
getBillInfo
=
()
=>
{
if
(
!
id
&&
!
invoicesNo
)
{
...
...
@@ -200,7 +139,7 @@ const BillsForm: React.FC<BillsFormProps> = ({
// 生成通知单字段不同,做兼容
product
:
item
.
produceNoticeOrderDetailId
||
item
.
relationInvoicesId
,
// 没有 单价price,取 成本价costPrice,兼顾内部单据的场景
amount
:
`
${
intl
.
formatMessage
({
id
:
'common.money'
})}${((
item
.
storageCount
||
item
.
shipmentQuantity
||
0
)
*
(
item
.
price
||
item
.
costPrice
||
0
)).
toFixed
(
2
)}
`
,
totalPrice
:
`
${
intl
.
formatMessage
({
id
:
'common.money'
})}${((
item
.
storageCount
||
item
.
shipmentQuantity
||
0
)
*
(
item
.
price
||
item
.
costPrice
||
0
)).
toFixed
(
2
)}
`
,
extraData
:
{
productName
:
item
.
productName
,
deliveryType
,
...
...
@@ -210,33 +149,9 @@ const BillsForm: React.FC<BillsFormProps> = ({
},
}))
:
[];
addSchemaAction
.
setFieldState
(
'*(invoicesTypeId,orderNo)'
,
state
=>
{
state
.
props
[
'x-component-props'
].
disabled
=
true
;
}
);
setBillInfo
({
transactionTime
:
transactionTime
?
moment
(
transactionTime
).
format
(
'YYYY-MM-DD HH:mm:ss'
)
:
''
,
orderNo
:
relevanceInvoicesId
?
[
{
orderNo
,
id
:
+
relevanceInvoicesId
,
deliveryAddresId
:
+
deliveryAddresId
,
memberName
:
supplyMembersName
||
''
,
fullAddress
:
fullAddress
||
''
,
receiverName
:
receiverName
||
''
,
phone
:
phone
||
''
,
deliveryType
,
isDefault
,
}
]
:
[]
,
invoicesDetailsRequests
:
details
,
invoicesDetailsDTOList
:
details
,
...
rest
,
});
}).
catch
((
err
)
=>
{
...
...
@@ -246,536 +161,12 @@ const BillsForm: React.FC<BillsFormProps> = ({
});
};
// 获取待新增单据(销售发货单,采购入库单,加工入库单)详情
// 填充对应单据、关联单据、会员名称、收货地址、物流方式等信息
const
getOrderDetailed
=
()
=>
{
if
(
!
invoicesTypeId
)
{
return
;
}
const
intInvoicesTypeId
=
+
invoicesTypeId
;
// 设置单据类型、关联单据禁用
addSchemaAction
.
setFieldState
(
'*(invoicesTypeId,orderNo)'
,
state
=>
{
state
.
props
[
'x-component-props'
].
disabled
=
true
;
}
);
switch
(
intInvoicesTypeId
)
{
// 采购入库单
case
DOC_TYPE_PURCHASE_RECEIPT
:
{
setInfoLoading
(
true
);
// getOrderProcurementOrderDetails({
// id: relevanceInvoicesId,
// orderNo: '',
// } as any).then(res => {
// if (res.code !== 1000) {
// return;
// }
// const {
// supplyMembersName,
// supplyMembersId,
// supplyMembersRoleId,
// deliveryAddresId,
// orderNo,
// deliveryAddressInfo,
// } = res.data;
// setBillInfo({
// ...billInfo,
// invoicesTypeId: intInvoicesTypeId,
// relevanceInvoices: +relevanceInvoices,
// orderNo:
// relevanceInvoicesId ?
// [
// {
// orderNo,
// id: +relevanceInvoicesId,
// deliveryAddresId: +deliveryAddresId,
// memberName: supplyMembersName,
// membersId: supplyMembersId,
// membersRoleId: supplyMembersRoleId,
// fullAddress: deliveryAddressInfo.fullAddress || '',
// receiverName: deliveryAddressInfo.receiverName || '',
// phone: deliveryAddressInfo.phone || '',
// isDefault: deliveryAddressInfo.isDefault,
// }
// ] :
// []
// ,
// });
// }).catch((err) => {
// console.warn(err);
// }).finally(() => {
// setInfoLoading(false);
// });
break
;
}
// 销售发货单
case
DOC_TYPE_SALES_INVOICE
:
{
setInfoLoading
(
true
);
// getOrderPurchaseOrderDetails({
// id: relevanceInvoicesId,
// orderNo: '',
// }).then(res => {
// if (res.code !== 1000) {
// return;
// }
// const {
// createMemberName,
// createMemberId,
// createRoleId,
// deliveryAddresId,
// orderNo,
// deliveryAddressInfo,
// } = res.data;
// setBillInfo({
// ...billInfo,
// invoicesTypeId: intInvoicesTypeId,
// relevanceInvoices: +relevanceInvoices,
// orderNo:
// relevanceInvoicesId ?
// [
// {
// orderNo,
// id: +relevanceInvoicesId,
// deliveryAddresId: +deliveryAddresId,
// memberName: createMemberName,
// membersId: createMemberId,
// membersRoleId: createRoleId,
// fullAddress: deliveryAddressInfo.fullAddress || '',
// receiverName: deliveryAddressInfo.receiverName || '',
// phone: deliveryAddressInfo.phone || '',
// isDefault: deliveryAddressInfo.isDefault,
// }
// ] :
// []
// ,
// });
// }).catch((err) => {
// console.warn(err);
// }).finally(() => {
// setInfoLoading(false);
// });
break
;
}
// 加工入库单
case
DOC_TYPE_PROCESS_RECEIPT
:
{
setInfoLoading
(
true
);
getEnhanceSupplierToBeAddStorageDetails
({
id
:
relevanceInvoicesId
,
}).
then
(
res
=>
{
if
(
res
.
code
!==
1000
)
{
return
;
}
const
{
processName
,
receiverAddressId
,
noticeNo
,
receiveAddress
,
receiveUserName
,
receiveUserTel
,
deliveryType
,
}
=
res
.
data
;
setBillInfo
({
...
billInfo
,
invoicesTypeId
:
intInvoicesTypeId
,
relevanceInvoices
:
+
relevanceInvoices
,
orderNo
:
relevanceInvoicesId
?
[
{
orderNo
:
noticeNo
,
id
:
+
relevanceInvoicesId
,
deliveryAddresId
:
+
receiverAddressId
,
memberName
:
processName
,
fullAddress
:
receiveAddress
||
''
,
receiverName
:
receiveUserName
||
''
,
phone
:
receiveUserTel
||
''
,
deliveryType
,
}
]
:
[]
,
});
}).
catch
((
err
)
=>
{
console
.
warn
(
err
);
}).
finally
(()
=>
{
setInfoLoading
(
false
);
});
break
;
}
// 加工发货单
case
DOC_TYPE_PROCESS_INVOICE
:
{
setInfoLoading
(
true
);
getEnhanceProcessToBeAddDeliveryDetails
({
id
:
relevanceInvoicesId
,
}).
then
(
res
=>
{
if
(
res
.
code
!==
1000
)
{
return
;
}
const
{
supplierName
,
receiverAddressId
,
noticeNo
,
receiveAddress
,
receiveUserName
,
receiveUserTel
,
deliveryType
,
}
=
res
.
data
;
setBillInfo
({
...
billInfo
,
invoicesTypeId
:
intInvoicesTypeId
,
relevanceInvoices
:
+
relevanceInvoices
,
orderNo
:
relevanceInvoicesId
?
[
{
orderNo
:
noticeNo
,
id
:
+
relevanceInvoicesId
,
deliveryAddresId
:
+
receiverAddressId
,
memberName
:
supplierName
,
fullAddress
:
receiveAddress
||
''
,
receiverName
:
receiveUserName
||
''
,
phone
:
receiveUserTel
||
''
,
deliveryType
,
}
]
:
[]
,
});
}).
catch
((
err
)
=>
{
console
.
warn
(
err
);
}).
finally
(()
=>
{
setInfoLoading
(
false
);
});
break
;
}
// 换货退货发货单
case
DOC_TYPE_EXCHANGE_RETURN_INVOICE
:
{
setInfoLoading
(
true
);
getAsReplaceGoodsGetDetailByConsumer
({
replaceId
:
relevanceInvoicesId
,
}).
then
(
res
=>
{
if
(
res
.
code
!==
1000
)
{
return
;
}
const
{
supplierName
,
returnGoodsAddress
,
applyNo
,
parentMemberId
,
parentMemberRoleId
,
}
=
res
.
data
;
setBillInfo
({
...
billInfo
,
invoicesTypeId
:
intInvoicesTypeId
,
relevanceInvoices
:
+
relevanceInvoices
,
orderNo
:
relevanceInvoicesId
?
[
{
orderNo
:
applyNo
,
id
:
+
relevanceInvoicesId
,
deliveryAddresId
:
returnGoodsAddress
.
receiveId
,
memberName
:
supplierName
,
fullAddress
:
returnGoodsAddress
.
receiveAddress
||
''
,
receiverName
:
returnGoodsAddress
.
receiveUserName
||
''
,
phone
:
returnGoodsAddress
.
receiveUserTel
||
''
,
supplyMembersName
:
supplierName
,
supplyMembersId
:
parentMemberId
,
supplyMembersRoleId
:
parentMemberRoleId
,
deliveryType
:
returnGoodsAddress
.
deliveryType
,
}
]
:
[]
,
});
}).
catch
((
err
)
=>
{
console
.
warn
(
err
);
}).
finally
(()
=>
{
setInfoLoading
(
false
);
});
break
;
}
// 退货发货单
case
DOC_TYPE_RETURN_INVOICE
:
{
setInfoLoading
(
true
);
getAsReturnGoodsGetDetailByConsumer
({
returnId
:
relevanceInvoicesId
,
}).
then
(
res
=>
{
if
(
res
.
code
!==
1000
)
{
return
;
}
const
{
supplierName
,
returnGoodsAddress
,
applyNo
,
parentMemberId
,
parentMemberRoleId
,
}
=
res
.
data
;
setBillInfo
({
...
billInfo
,
invoicesTypeId
:
intInvoicesTypeId
,
relevanceInvoices
:
+
relevanceInvoices
,
orderNo
:
relevanceInvoicesId
?
[
{
orderNo
:
applyNo
,
id
:
+
relevanceInvoicesId
,
deliveryAddresId
:
returnGoodsAddress
.
receiveId
,
memberName
:
supplierName
,
fullAddress
:
returnGoodsAddress
.
receiveAddress
||
''
,
receiverName
:
returnGoodsAddress
.
receiveUserName
||
''
,
phone
:
returnGoodsAddress
.
receiveUserTel
||
''
,
supplyMembersName
:
supplierName
,
supplyMembersId
:
parentMemberId
,
supplyMembersRoleId
:
parentMemberRoleId
,
deliveryType
:
returnGoodsAddress
.
deliveryType
,
}
]
:
[]
,
});
}).
catch
((
err
)
=>
{
console
.
warn
(
err
);
}).
finally
(()
=>
{
setInfoLoading
(
false
);
});
break
;
}
// 换货退货入库单
case
DOC_TYPE_EXCHANGE_RETURN_RECEIPT
:
{
setInfoLoading
(
true
);
getAsReplaceGoodsGetDetailBySupplier
({
replaceId
:
relevanceInvoicesId
,
}).
then
(
res
=>
{
if
(
res
.
code
!==
1000
)
{
return
;
}
const
{
supplierName
,
consumerName
,
returnGoodsAddress
,
applyNo
,
parentMemberId
,
parentMemberRoleId
,
}
=
res
.
data
;
setBillInfo
({
...
billInfo
,
invoicesTypeId
:
intInvoicesTypeId
,
relevanceInvoices
:
+
relevanceInvoices
,
orderNo
:
relevanceInvoicesId
?
[
{
orderNo
:
applyNo
,
id
:
+
relevanceInvoicesId
,
deliveryAddresId
:
returnGoodsAddress
.
receiveId
,
memberName
:
consumerName
,
fullAddress
:
returnGoodsAddress
.
receiveAddress
||
''
,
receiverName
:
returnGoodsAddress
.
receiveUserName
||
''
,
phone
:
returnGoodsAddress
.
receiveUserTel
||
''
,
supplyMembersName
:
supplierName
,
supplyMembersId
:
parentMemberId
,
supplyMembersRoleId
:
parentMemberRoleId
,
deliveryType
:
returnGoodsAddress
.
deliveryType
,
}
]
:
[]
,
});
}).
catch
((
err
)
=>
{
console
.
warn
(
err
);
}).
finally
(()
=>
{
setInfoLoading
(
false
);
});
break
;
}
// 退货入库单
case
DOC_TYPE_RETURN_RECEIPT
:
{
setInfoLoading
(
true
);
getAsReturnGoodsGetDetailBySupplier
({
returnId
:
relevanceInvoicesId
,
}).
then
(
res
=>
{
if
(
res
.
code
!==
1000
)
{
return
;
}
const
{
supplierName
,
returnGoodsAddress
,
applyNo
,
parentMemberId
,
parentMemberRoleId
,
}
=
res
.
data
;
setBillInfo
({
...
billInfo
,
invoicesTypeId
:
intInvoicesTypeId
,
relevanceInvoices
:
+
relevanceInvoices
,
orderNo
:
relevanceInvoicesId
?
[
{
orderNo
:
applyNo
,
id
:
+
relevanceInvoicesId
,
deliveryAddresId
:
returnGoodsAddress
.
receiveId
,
memberName
:
supplierName
,
fullAddress
:
returnGoodsAddress
.
receiveAddress
||
''
,
receiverName
:
returnGoodsAddress
.
receiveUserName
||
''
,
phone
:
returnGoodsAddress
.
receiveUserTel
||
''
,
supplyMembersName
:
supplierName
,
supplyMembersId
:
parentMemberId
,
supplyMembersRoleId
:
parentMemberRoleId
,
deliveryType
:
returnGoodsAddress
.
deliveryType
,
}
]
:
[]
,
});
}).
catch
((
err
)
=>
{
console
.
warn
(
err
);
}).
finally
(()
=>
{
setInfoLoading
(
false
);
});
break
;
}
// 换货发货单
case
DOC_TYPE_EXCHANGE_INVOICE
:
{
setInfoLoading
(
true
);
getAsReplaceGoodsGetDetailBySupplier
({
replaceId
:
relevanceInvoicesId
,
}).
then
(
res
=>
{
if
(
res
.
code
!==
1000
)
{
return
;
}
const
{
supplierName
,
consumerName
,
returnGoodsAddress
,
replaceGoodsAddress
,
applyNo
,
parentMemberId
,
parentMemberRoleId
,
}
=
res
.
data
;
setBillInfo
({
...
billInfo
,
invoicesTypeId
:
intInvoicesTypeId
,
relevanceInvoices
:
+
relevanceInvoices
,
orderNo
:
relevanceInvoicesId
?
[
{
orderNo
:
applyNo
,
id
:
+
relevanceInvoicesId
,
deliveryAddresId
:
returnGoodsAddress
.
receiveId
,
memberName
:
consumerName
,
fullAddress
:
returnGoodsAddress
.
receiveAddress
||
''
,
receiverName
:
returnGoodsAddress
.
receiveUserName
||
''
,
phone
:
returnGoodsAddress
.
receiveUserTel
||
''
,
supplyMembersName
:
supplierName
,
supplyMembersId
:
parentMemberId
,
supplyMembersRoleId
:
parentMemberRoleId
,
deliveryType
:
replaceGoodsAddress
.
deliveryType
,
}
]
:
[]
,
});
}).
catch
((
err
)
=>
{
console
.
warn
(
err
);
}).
finally
(()
=>
{
setInfoLoading
(
false
);
});
break
;
}
// 换货入库单
case
DOC_TYPE_EXCHANGE_RECEIPT
:
{
setInfoLoading
(
true
);
getAsReplaceGoodsGetDetailByConsumer
({
replaceId
:
relevanceInvoicesId
,
}).
then
(
res
=>
{
if
(
res
.
code
!==
1000
)
{
return
;
}
const
{
supplierName
,
returnGoodsAddress
,
replaceGoodsAddress
,
applyNo
,
parentMemberId
,
parentMemberRoleId
,
}
=
res
.
data
;
setBillInfo
({
...
billInfo
,
invoicesTypeId
:
intInvoicesTypeId
,
relevanceInvoices
:
+
relevanceInvoices
,
orderNo
:
relevanceInvoicesId
?
[
{
orderNo
:
applyNo
,
id
:
+
relevanceInvoicesId
,
deliveryAddresId
:
returnGoodsAddress
.
receiveId
,
memberName
:
supplierName
,
fullAddress
:
returnGoodsAddress
.
receiveAddress
||
''
,
receiverName
:
returnGoodsAddress
.
receiveUserName
||
''
,
phone
:
returnGoodsAddress
.
receiveUserTel
||
''
,
supplyMembersName
:
supplierName
,
supplyMembersId
:
parentMemberId
,
supplyMembersRoleId
:
parentMemberRoleId
,
deliveryType
:
replaceGoodsAddress
.
deliveryType
,
}
]
:
[]
,
});
}).
catch
((
err
)
=>
{
console
.
warn
(
err
);
}).
finally
(()
=>
{
setInfoLoading
(
false
);
});
break
;
}
default
:
{
break
;
}
}
};
useEffect
(()
=>
{
getBillInfo
();
getOrderDetailed
();
},
[]);
// useEffect(() => {
// getBillInfo();
// }, []);
// 弹出单据明细
const
handleAdd
=
()
=>
{
// const orderNoVal = addSchemaAction.getFieldValue('orderNo');
// const relevanceInvoicesVal = addSchemaAction.getFieldValue('relevanceInvoices');
// if (!orderNoVal && relevanceInvoicesVal !== DEPENDENT_DOC_INTERNAL) {
// message.warning(intl.formatMessage({ id: 'stockSellStorage.qingxuanzeduiyingdanju' }));
// return;
// }
setVisible
(
true
);
};
...
...
@@ -793,1023 +184,51 @@ const BillsForm: React.FC<BillsFormProps> = ({
// 提交
const
handleSubmit
=
value
=>
{
const
{
invoicesTypeId
,
invoicesTypeCode
,
orderNo
,
transactionTime
,
address
,
transport
,
invoicesDetailsRequests
=
[],
memberName
,
membersId
,
membersRoleId
,
direction
,
...
rest
}
=
value
;
const
newInvoicesDetailsRequests
=
invoicesDetailsRequests
.
map
(({
productCount
,
...
rest
})
=>
({
productCount
:
+
productCount
,
...
rest
,
}));
const
newTransactionTime
=
transactionTime
?
moment
(
transactionTime
).
valueOf
()
:
null
;
console
.
log
(
"🚀 ~ file: index.tsx ~ line 187 ~ value"
,
value
)
debugger
delete
value
.
transactionTime
setSubmitLoading
(
true
);
switch
(
invoicesTypeId
)
{
// 采购入库单
case
DOC_TYPE_PURCHASE_RECEIPT
:
{
if
(
!
id
)
{
if
(
!
isEdit
)
{
return
;
}
// postOrderPurchaseReceiptAdd({
// ...rest,
// orderNo: orderNo[0].orderNo,
// relevanceInvoicesId: orderNo[0].id,
// transactionTime: newTransactionTime,
// invoicesDetailsRequests: newInvoicesDetailsRequests.map(item => {
// const {
// extraData: {
// id,
// orderNo,
// deliveryType,
// goodsCount,
// price,
// totalPrice,
// ...extraRest
// },
// itemName,
// amount,
// productCount,
// product,
// ...rest
// } = item;
// return {
// ...rest,
// ...extraRest,
// goodsName: itemName,
// storageCount: productCount,
// productCount: goodsCount,
// relationInvoicesId: product,
// };
// }),
// supplyMembersName: memberName,
// supplyMembersId: membersId,
// supplyMembersRoleId: membersRoleId,
// source,
// })
// .then(res => {
// if (res.code !== 1000) {
// setSubmitLoading(false);
// return;
// }
// setUnsaved(false);
// setTimeout(() => {
// history.goBack();
// }, 800);
// }).catch(() => {
// setSubmitLoading(false);
// });
}
else
{
// update action
if
(
!
isEdit
)
{
return
;
}
// postProductInvoicesUpdata({
// 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,
// product,
// ...rest
// } = item;
// return {
// ...rest,
// ...extraRest,
// goodsName: itemName,
// storageCount: productCount,
// productCount: goodsCount,
// relationInvoicesId: product,
// };
// }),
// })
// .then(res => {
// if (res.code !== 1000) {
// setSubmitLoading(false);
// return;
// }
// setUnsaved(false);
// setTimeout(() => {
// history.goBack();
// }, 800);
// }).catch(() => {
// setSubmitLoading(false);
// });
}
break
;
}
// 销售发货单
case
DOC_TYPE_SALES_INVOICE
:
{
if
(
!
id
)
{
if
(
!
isEdit
)
{
return
;
}
// postOrderSalesInvoiceOrder({
// ...rest,
// orderNo: orderNo[0].orderNo,
// relevanceInvoicesId: orderNo[0].id,
// transactionTime: newTransactionTime,
// invoicesDetailsRequests: newInvoicesDetailsRequests.map(item => {
// const {
// extraData: {
// id,
// orderNo,
// deliveryType,
// goodsCount,
// price,
// totalPrice,
// ...extraRest
// },
// itemName,
// amount,
// productCount,
// product,
// ...rest
// } = item;
// return {
// ...rest,
// ...extraRest,
// goodsName: itemName,
// shipmentQuantity: productCount,
// productCount: goodsCount,
// relationInvoicesId: product,
// };
// }),
// // 后台说 不管是 采购入库单,还是 销售发货单 都用这三个字段
// // createMemberName: memberName,
// supplyMembersName: memberName,
// supplyMembersId: membersId,
// supplyMembersRoleId: membersRoleId,
// source,
// })
// .then(res => {
// if (res.code !== 1000) {
// setSubmitLoading(false);
// return;
// }
// setUnsaved(false);
// setTimeout(() => {
// history.goBack();
// }, 800);
// }).catch(() => {
// setSubmitLoading(false);
// });
}
else
{
// update action
if
(
!
isEdit
)
{
return
;
}
// postProductInvoicesUpdata({
// 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,
// product,
// ...rest
// } = item;
// return {
// ...rest,
// ...extraRest,
// goodsName: itemName,
// shipmentQuantity: productCount,
// productCount: goodsCount,
// relationInvoicesId: product,
// };
// }),
// })
// .then(res => {
// if (res.code !== 1000) {
// setSubmitLoading(false);
// return;
// }
// setUnsaved(false);
// setTimeout(() => {
// history.goBack();
// }, 800);
// }).catch(() => {
// setSubmitLoading(false);
// });
}
break
;
}
// 加工入库单
case
DOC_TYPE_PROCESS_RECEIPT
:
{
if
(
!
id
)
{
if
(
!
isEdit
)
{
return
;
}
postEnhanceSupplierToBeAddStorageSubmit
({
produceNoticeOrderId
:
orderNo
[
0
].
id
,
warehouseId
:
rest
.
inventoryId
,
warehouseRole
:
rest
.
inventoryRole
,
storageSummary
:
rest
.
invoicesAbstract
,
storageTime
:
newTransactionTime
,
storageDetailsDTOList
:
newInvoicesDetailsRequests
.
map
(
item
=>
{
const
{
extraData
=
{},
amount
,
productCount
,
product
,
...
rest
}
=
item
;
return
{
...
rest
,
produceNoticeOrderDetailId
:
extraData
.
id
,
orderNo
:
extraData
.
orderNo
,
processNum
:
extraData
.
processNum
,
productName
:
extraData
.
productName
,
price
:
extraData
.
price
,
totalPrice
:
extraData
.
totalPrice
,
storageCount
:
productCount
,
};
}),
source
,
})
.
then
(
res
=>
{
if
(
res
.
code
!==
1000
)
{
setSubmitLoading
(
false
);
return
;
}
setUnsaved
(
false
);
setTimeout
(()
=>
{
history
.
goBack
();
},
800
);
}).
catch
(()
=>
{
setSubmitLoading
(
false
);
});
}
else
{
// update action
if
(
!
isEdit
)
{
return
;
}
postProductInvoicesUpdata
({
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
,
product
,
...
rest
}
=
item
;
return
{
...
rest
,
...
extraRest
,
goodsName
:
itemName
,
storageCount
:
productCount
,
productCount
:
goodsCount
,
produceNoticeOrderDetailId
:
id
,
};
}),
})
.
then
(
res
=>
{
if
(
res
.
code
!==
1000
)
{
setSubmitLoading
(
false
);
return
;
}
setUnsaved
(
false
);
setTimeout
(()
=>
{
history
.
goBack
();
},
800
);
}).
catch
(()
=>
{
setSubmitLoading
(
false
);
});
}
break
;
}
// 加工发货单
case
DOC_TYPE_PROCESS_INVOICE
:
{
if
(
!
id
)
{
if
(
!
isEdit
)
{
return
;
}
postEnhanceProcessToBeAddDeliverySubmit
({
produceNoticeOrderId
:
orderNo
[
0
].
id
,
warehouseId
:
rest
.
inventoryId
,
warehouseRole
:
rest
.
inventoryRole
,
invoiceSummary
:
rest
.
invoicesAbstract
,
invoiceTime
:
newTransactionTime
,
invoiceDetailsDTOList
:
newInvoicesDetailsRequests
.
map
(
item
=>
{
const
{
extraData
=
{},
amount
,
productCount
,
product
,
...
rest
}
=
item
;
return
{
...
rest
,
produceNoticeOrderDetailId
:
extraData
.
id
,
orderNo
:
extraData
.
orderNo
,
processNum
:
extraData
.
processNum
,
productName
:
extraData
.
productName
,
price
:
extraData
.
price
,
totalPrice
:
extraData
.
totalPrice
,
shipmentQuantity
:
productCount
,
};
}),
source
,
})
.
then
(
res
=>
{
if
(
res
.
code
!==
1000
)
{
setSubmitLoading
(
false
);
return
;
}
setUnsaved
(
false
);
setTimeout
(()
=>
{
history
.
goBack
();
},
800
);
}).
catch
(()
=>
{
setSubmitLoading
(
false
);
});
}
else
{
// update action
if
(
!
isEdit
)
{
return
;
}
postProductInvoicesUpdata
({
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
,
product
,
...
rest
}
=
item
;
return
{
...
rest
,
...
extraRest
,
goodsName
:
itemName
,
shipmentQuantity
:
productCount
,
productCount
:
goodsCount
,
produceNoticeOrderDetailId
:
id
,
};
}),
})
.
then
(
res
=>
{
if
(
res
.
code
!==
1000
)
{
setSubmitLoading
(
false
);
return
;
}
setUnsaved
(
false
);
setTimeout
(()
=>
{
history
.
goBack
();
},
800
);
}).
catch
(()
=>
{
setSubmitLoading
(
false
);
});
}
break
;
}
// 换货退货发货单、换货换货发货单
// 用的参数名是一样的
case
DOC_TYPE_EXCHANGE_RETURN_INVOICE
:
case
DOC_TYPE_EXCHANGE_INVOICE
:
{
if
(
!
id
)
{
if
(
!
isEdit
)
{
return
;
}
// postProductInvoicesAdd({
// invoicesTypeCode: invoicesTypeCode,
// invoicesAbstract: rest.invoicesAbstract,
// memberName: memberName,
// inventoryId: rest.inventoryId,
// inventoryRole: rest.inventoryRole,
// transactionTime: newTransactionTime,
// orderNo: orderNo[0].orderNo,
// deliveryAddresId: orderNo[0].deliveryAddresId,
// receiverName: rest.receiverName,
// fullAddress: rest.fullAddress,
// phone: rest.phone,
// deliveryType: rest.deliveryType,
// invoicesDetailsRequests: newInvoicesDetailsRequests.map(item => {
// const {
// extraData = {},
// amount,
// productCount,
// itemName,
// product,
// ...rest
// } = item;
// return {
// ...rest,
// goodsName: itemName,
// productModel: rest.specifications,
// productName: extraData.productName,
// storageCount: 0,
// shipmentQuantity: productCount,
// productCount: extraData.goodsCount,
// orderNo: extraData.orderNo,
// relationInvoicesId: product,
// };
// }),
// relevanceInvoicesId: orderNo[0].id,
// relevanceInvoices: rest.relevanceInvoices,
// supplyMembersName: orderNo[0].supplyMembersName,
// supplyMembersId: orderNo[0].supplyMembersId,
// supplyMembersRoleId: orderNo[0].supplyMembersRoleId,
// invoicesTypeId,
// source,
// })
// .then(res => {
// if (res.code !== 1000) {
// setSubmitLoading(false);
// return;
// }
// setUnsaved(false);
// setTimeout(() => {
// history.goBack();
// }, 800);
// }).catch(() => {
// setSubmitLoading(false);
// });
}
else
{
// update action
if
(
!
isEdit
)
{
return
;
}
// postProductInvoicesUpdata({
// id: +id,
// invoicesAbstract: rest.invoicesAbstract,
// inventoryId: rest.inventoryId,
// inventoryRole: rest.inventoryRole,
// transactionTime: newTransactionTime,
// invoicesDetailsRequests: newInvoicesDetailsRequests.map(item => {
// const {
// extraData = {},
// amount,
// productCount,
// itemName,
// product,
// ...rest
// } = item;
// return {
// ...rest,
// goodsName: itemName,
// productModel: rest.specifications,
// productName: extraData.productName,
// storageCount: 0,
// shipmentQuantity: productCount,
// productCount: extraData.goodsCount,
// orderNo: extraData.orderNo,
// relationInvoicesId: product,
// };
// }),
// })
// .then(res => {
// if (res.code !== 1000) {
// setSubmitLoading(false);
// return;
// }
// setUnsaved(false);
// setTimeout(() => {
// history.goBack();
// }, 800);
// }).catch(() => {
// setSubmitLoading(false);
// });
}
break
;
}
// 换货入库单、换货退货入库单
// 用的参数名是一样的
case
DOC_TYPE_EXCHANGE_RECEIPT
:
case
DOC_TYPE_EXCHANGE_RETURN_RECEIPT
:
{
if
(
!
id
)
{
if
(
!
isEdit
)
{
return
;
}
// postProductInvoicesAdd({
// invoicesTypeCode: invoicesTypeCode,
// invoicesAbstract: rest.invoicesAbstract,
// memberName: memberName,
// inventoryId: rest.inventoryId,
// inventoryRole: rest.inventoryRole,
// transactionTime: newTransactionTime,
// orderNo: orderNo[0].orderNo,
// deliveryAddresId: orderNo[0].deliveryAddresId,
// receiverName: rest.receiverName,
// fullAddress: rest.fullAddress,
// phone: rest.phone,
// deliveryType: rest.deliveryType,
// invoicesDetailsRequests: newInvoicesDetailsRequests.map(item => {
// const {
// extraData = {},
// amount,
// productCount,
// itemName,
// product,
// ...rest
// } = item;
// return {
// ...rest,
// goodsName: itemName,
// productModel: rest.specifications,
// productName: extraData.productName,
// shipmentQuantity: 0,
// storageCount: productCount,
// productCount: extraData.goodsCount,
// orderNo: extraData.orderNo,
// relationInvoicesId: product,
// };
// }),
// relevanceInvoicesId: orderNo[0].id,
// relevanceInvoices: rest.relevanceInvoices,
// supplyMembersName: orderNo[0].supplyMembersName,
// supplyMembersId: orderNo[0].supplyMembersId,
// supplyMembersRoleId: orderNo[0].supplyMembersRoleId,
// invoicesTypeId,
// source,
// })
// .then(res => {
// if (res.code !== 1000) {
// setSubmitLoading(false);
// return;
// }
// setUnsaved(false);
// setTimeout(() => {
// history.goBack();
// }, 800);
// }).catch(() => {
// setSubmitLoading(false);
// });
}
else
{
// update action
if
(
!
isEdit
)
{
return
;
}
postProductInvoicesUpdata
({
id
:
+
id
,
invoicesAbstract
:
rest
.
invoicesAbstract
,
inventoryId
:
rest
.
inventoryId
,
inventoryRole
:
rest
.
inventoryRole
,
transactionTime
:
newTransactionTime
,
invoicesDetailsRequests
:
newInvoicesDetailsRequests
.
map
(
item
=>
{
const
{
extraData
=
{},
amount
,
productCount
,
itemName
,
product
,
...
rest
}
=
item
;
return
{
...
rest
,
goodsName
:
itemName
,
productModel
:
rest
.
specifications
,
productName
:
extraData
.
productName
,
shipmentQuantity
:
0
,
storageCount
:
productCount
,
productCount
:
extraData
.
goodsCount
,
orderNo
:
extraData
.
orderNo
,
relationInvoicesId
:
product
,
};
}),
})
.
then
(
res
=>
{
if
(
res
.
code
!==
1000
)
{
setSubmitLoading
(
false
);
return
;
}
setUnsaved
(
false
);
setTimeout
(()
=>
{
history
.
goBack
();
},
800
);
}).
catch
(()
=>
{
setSubmitLoading
(
false
);
});
}
break
;
}
// 退货发货单
case
DOC_TYPE_RETURN_INVOICE
:
{
if
(
!
id
)
{
if
(
!
isEdit
)
{
return
;
}
// postProductInvoicesAdd({
// invoicesTypeCode: invoicesTypeCode,
// invoicesAbstract: rest.invoicesAbstract,
// memberName: memberName,
// inventoryId: rest.inventoryId,
// inventoryRole: rest.inventoryRole,
// transactionTime: newTransactionTime,
// orderNo: orderNo[0].orderNo,
// deliveryAddresId: orderNo[0].deliveryAddresId,
// receiverName: rest.receiverName,
// fullAddress: rest.fullAddress,
// phone: rest.phone,
// deliveryType: rest.deliveryType,
// invoicesDetailsRequests: newInvoicesDetailsRequests.map(item => {
// const {
// extraData = {},
// amount,
// productCount,
// itemName,
// product,
// ...rest
// } = item;
// return {
// ...rest,
// goodsName: itemName,
// productModel: rest.specifications,
// productName: extraData.productName,
// storageCount: 0,
// shipmentQuantity: productCount,
// productCount: extraData.goodsCount,
// orderNo: extraData.orderNo,
// relationInvoicesId: product,
// };
// }),
// relevanceInvoicesId: orderNo[0].id,
// relevanceInvoices: rest.relevanceInvoices,
// supplyMembersName: orderNo[0].supplyMembersName,
// supplyMembersId: orderNo[0].supplyMembersId,
// supplyMembersRoleId: orderNo[0].supplyMembersRoleId,
// invoicesTypeId,
// source,
// })
// .then(res => {
// if (res.code !== 1000) {
// setSubmitLoading(false);
// return;
// }
// setUnsaved(false);
// setTimeout(() => {
// history.goBack();
// }, 800);
// }).catch(() => {
// setSubmitLoading(false);
// });
}
else
{
// update action
if
(
!
isEdit
)
{
return
;
}
// postProductInvoicesUpdata({
// id: +id,
// invoicesAbstract: rest.invoicesAbstract,
// inventoryId: rest.inventoryId,
// inventoryRole: rest.inventoryRole,
// transactionTime: newTransactionTime,
// invoicesDetailsRequests: newInvoicesDetailsRequests.map(item => {
// const {
// extraData = {},
// amount,
// productCount,
// itemName,
// product,
// ...rest
// } = item;
// return {
// ...rest,
// goodsName: itemName,
// productModel: rest.specifications,
// productName: extraData.productName,
// storageCount: 0,
// shipmentQuantity: productCount,
// productCount: extraData.goodsCount,
// orderNo: extraData.orderNo,
// relationInvoicesId: product,
// };
// }),
// })
// .then(res => {
// if (res.code !== 1000) {
// setSubmitLoading(false);
// return;
// }
// setUnsaved(false);
// setTimeout(() => {
// history.goBack();
// }, 800);
// }).catch(() => {
// setSubmitLoading(false);
// });
}
break
;
}
// 退货入库单
case
DOC_TYPE_RETURN_RECEIPT
:
{
if
(
!
id
)
{
if
(
!
isEdit
)
{
return
;
}
// postProductInvoicesAdd({
// invoicesTypeCode: invoicesTypeCode,
// invoicesAbstract: rest.invoicesAbstract,
// memberName: memberName,
// inventoryId: rest.inventoryId,
// inventoryRole: rest.inventoryRole,
// transactionTime: newTransactionTime,
// orderNo: orderNo[0].orderNo,
// deliveryAddresId: orderNo[0].deliveryAddresId,
// receiverName: rest.receiverName,
// fullAddress: rest.fullAddress,
// phone: rest.phone,
// deliveryType: rest.deliveryType,
// invoicesDetailsRequests: newInvoicesDetailsRequests.map(item => {
// const {
// extraData = {},
// amount,
// productCount,
// itemName,
// product,
// ...rest
// } = item;
// return {
// ...rest,
// goodsName: itemName,
// productModel: rest.specifications,
// productName: extraData.productName,
// shipmentQuantity: 0,
// storageCount: productCount,
// productCount: extraData.goodsCount,
// orderNo: extraData.orderNo,
// relationInvoicesId: product,
// };
// }),
// relevanceInvoicesId: orderNo[0].id,
// relevanceInvoices: rest.relevanceInvoices,
// supplyMembersName: orderNo[0].supplyMembersName,
// supplyMembersId: orderNo[0].supplyMembersId,
// supplyMembersRoleId: orderNo[0].supplyMembersRoleId,
// invoicesTypeId,
// source,
// })
// .then(res => {
// if (res.code !== 1000) {
// setSubmitLoading(false);
// return;
// }
// setUnsaved(false);
// setTimeout(() => {
// history.goBack();
// }, 800);
// }).catch(() => {
// setSubmitLoading(false);
// });
}
else
{
// update action
if
(
!
isEdit
)
{
return
;
}
// postProductInvoicesUpdata({
// id: +id,
// invoicesAbstract: rest.invoicesAbstract,
// inventoryId: rest.inventoryId,
// inventoryRole: rest.inventoryRole,
// transactionTime: newTransactionTime,
// invoicesDetailsRequests: newInvoicesDetailsRequests.map(item => {
// const {
// extraData = {},
// amount,
// productCount,
// itemName,
// product,
// ...rest
// } = item;
// return {
// ...rest,
// goodsName: itemName,
// productModel: rest.specifications,
// productName: extraData.productName,
// shipmentQuantity: 0,
// storageCount: productCount,
// productCount: extraData.goodsCount,
// orderNo: extraData.orderNo,
// relationInvoicesId: product,
// };
// }),
// })
// .then(res => {
// if (res.code !== 1000) {
// setSubmitLoading(false);
// return;
// }
// setUnsaved(false);
// setTimeout(() => {
// history.goBack();
// }, 800);
// }).catch(() => {
// setSubmitLoading(false);
// });
}
break
;
}
default
:
{
if
(
!
id
)
{
if
(
!
isEdit
)
{
return
;
}
// postProductInvoicesAdd({
// invoicesTypeCode: invoicesTypeCode,
// invoicesAbstract: rest.invoicesAbstract,
// memberName: memberName,
// inventoryId: rest.inventoryId,
// inventoryRole: rest.inventoryRole,
// transactionTime: newTransactionTime,
// orderNo: null,
// deliveryAddresId: null,
// receiverName: null,
// fullAddress: null,
// phone: null,
// deliveryType: null,
// invoicesDetailsRequests: newInvoicesDetailsRequests.map(item => {
// const {
// extraData = {},
// amount,
// productCount,
// itemName,
// product,
// ...rest
// } = item;
// return {
// ...rest,
// goodsName: itemName,
// productModel: rest.specifications,
// productName: extraData.productName,
// shipmentQuantity: direction == DOC_DIRECTION_OUTGOING ? productCount : 0,
// storageCount: direction === DOC_DIRECTION_WAREHOUSING ? productCount : 0,
// productCount: 0,
// orderNo: null,
// relationInvoicesId: null,
// };
// }),
// relevanceInvoicesId: null,
// relevanceInvoices: rest.relevanceInvoices,
// supplyMembersName: null,
// supplyMembersId: null,
// supplyMembersRoleId: null,
// invoicesTypeId,
// source,
// })
// .then(res => {
// if (res.code !== 1000) {
// setSubmitLoading(false);
// return;
// }
// setUnsaved(false);
// setTimeout(() => {
// history.goBack();
// }, 800);
// }).catch(() => {
// setSubmitLoading(false);
// });
}
else
{
// update action
if
(
!
isEdit
)
{
return
;
}
// postProductInvoicesUpdata({
// id: +id,
// invoicesAbstract: rest.invoicesAbstract,
// inventoryId: rest.inventoryId,
// inventoryRole: rest.inventoryRole,
// transactionTime: newTransactionTime,
// invoicesDetailsRequests: newInvoicesDetailsRequests.map(item => {
// const {
// extraData = {},
// amount,
// productCount,
// itemName,
// product,
// ...rest
// } = item;
// return {
// ...rest,
// goodsName: itemName,
// productModel: rest.specifications,
// productName: extraData.productName,
// shipmentQuantity: direction == DOC_DIRECTION_OUTGOING ? productCount : 0,
// storageCount: direction === DOC_DIRECTION_WAREHOUSING ? productCount : 0,
// productCount: 0,
// orderNo: null,
// relationInvoicesId: null,
// };
// }),
// })
// .then(res => {
// if (res.code !== 1000) {
// setSubmitLoading(false);
// return;
// }
// setUnsaved(false);
// setTimeout(() => {
// history.goBack();
// }, 800);
// }).catch(() => {
// setSubmitLoading(false);
// });
postProductInvoicesAddOrUpdate
({
id
:
+
id
,
...
value
,
invoicesTime
:
new
Date
(
value
.
invoicesTime
).
getTime
(),
})
.
then
(
res
=>
{
if
(
res
.
code
!==
1000
)
{
setSubmitLoading
(
false
);
return
;
}
break
;
}
}
setUnsaved
(
false
);
setTimeout
(()
=>
{
history
.
goBack
();
},
800
);
}).
catch
(()
=>
{
setSubmitLoading
(
false
);
});
};
// 选择单据明细
const
handleOkAddProduct
=
async
()
=>
{
// 这里先找到是否已经选择过的数据,存在的话就直接使用,否则用新值
const
preValues
=
addSchemaAction
.
getFieldValue
(
'invoicesDetails
Requests
'
);
const
preValues
=
addSchemaAction
.
getFieldValue
(
'invoicesDetails
DTOList
'
);
const
values
=
[];
productRowCtl
.
selectRow
.
forEach
(
item
=>
{
const
atom
=
{
itemNo
:
item
.
code
,
goodsId
:
item
.
id
,
itemName
:
item
.
name
,
goodsNo
:
item
.
code
,
goodsName
:
item
.
name
,
specifications
:
item
.
type
,
category
:
item
.
customerCategory
?
item
.
customerCategory
.
name
:
''
,
brand
:
item
.
brand
?
item
.
brand
.
name
:
''
,
category
:
item
.
customerCategory
?.
name
||
''
,
brand
:
item
.
brand
?.
name
||
''
,
unit
:
item
.
unitName
,
costPrice
:
item
.
costPrice
,
product
:
undefined
,
productName
:
item
.
productName
,
productId
:
''
,
price
:
''
,
productCount
:
0
,
amount
:
''
,
invoicesCount
:
0
,
totalPrice
:
''
,
};
values
.
push
(
atom
);
});
addSchemaAction
.
setFieldValue
(
'invoicesDetails
Requests'
,
preValues
.
concat
(
values
));
addSchemaAction
.
setFieldValue
(
'invoicesDetails
DTOList'
,
preValues
?
.
concat
(
values
));
productRowCtl
.
setSelectRow
([]);
productRowCtl
.
setSelectedRowKeys
([]);
setVisible
(
false
);
...
...
@@ -1827,9 +246,9 @@ const BillsForm: React.FC<BillsFormProps> = ({
}
const
handleRemoveItem
=
(
index
:
number
)
=>
{
const
newValue
=
[...
addSchemaAction
.
getFieldValue
(
'invoicesDetails
Requests
'
)];
const
newValue
=
[...
addSchemaAction
.
getFieldValue
(
'invoicesDetails
DTOList
'
)];
newValue
.
splice
(
index
,
1
);
addSchemaAction
.
setFieldValue
(
'invoicesDetails
Requests
'
,
newValue
);
addSchemaAction
.
setFieldValue
(
'invoicesDetails
DTOList
'
,
newValue
);
};
// ArrayTable自定义渲染
...
...
@@ -1919,7 +338,6 @@ const BillsForm: React.FC<BillsFormProps> = ({
CustomCategorySearch
,
},
effects
:
(
$
,
actions
)
=>
{
const
linkage
=
useLinkageUtils
();
useStateFilterSearchLinkageEffect
(
$
,
...
...
@@ -1927,29 +345,6 @@ const BillsForm: React.FC<BillsFormProps> = ({
'name'
,
FORM_FILTER_PATH
,
);
useAsyncSelect
(
'brandId'
,
fetchBrand
,
[
'name'
,
'id'
]);
onFormInit$
().
subscribe
(()
=>
{
// 初始化远程检索逻辑
fetchCustomerCategory
().
then
(
res
=>
{
linkage
.
componentProps
(
'customerCategoryId'
,
{
dataoption
:
res
,
});
});
// 初始化远程检索逻辑
// linkage.componentProps('brandId',
{
// onSearch: async value =>
{
// linkage.loading('brandId');
// const dataSource = await fetchBrand(value);
// linkage.enum('brandId', dataSource.map(item => (
{
// label: item.name,
// value: item.id,
//
})));
// linkage.loaded('brandId');
//
},
//
});
});
},
inline
:
false
,
}
...
...
src/pages/transaction/stockSellStorage/bills/components/BillsForm/schema/index.ts
View file @
d30ba54c
...
...
@@ -87,118 +87,6 @@ const orderDetailSchema: ISchema = {
},
};
const
productionDetailSchema
:
ISchema
=
{
type
:
'object'
,
properties
:
{
megaLayout
:
{
type
:
'object'
,
'x-component'
:
'mega-layout'
,
properties
:
{
search
:
{
type
:
'string'
,
'x-component'
:
'Search'
,
'x-mega-props'
:
{},
'x-component-props'
:
{
placeholder
:
intl
.
formatMessage
({
id
:
'stockSellStorage.sousuo'
}),
align
:
'flex-start'
,
},
},
[
FORM_FILTER_PATH
]:
{
type
:
'object'
,
'x-component'
:
'mega-layout'
,
visible
:
false
,
'x-component-props'
:
{
inline
:
true
,
},
properties
:
{
orderNo
:
{
type
:
'string'
,
'x-component-props'
:
{
placeholder
:
intl
.
formatMessage
({
id
:
'stockSellStorage.tongzhidanhao'
}),
},
},
invoicesAbstract
:
{
type
:
'string'
,
'x-component-props'
:
{
placeholder
:
intl
.
formatMessage
({
id
:
'stockSellStorage.tongzhidanzhaiyao'
}),
},
},
memberName
:
{
type
:
'string'
,
'x-component-props'
:
{
placeholder
:
intl
.
formatMessage
({
id
:
'stockSellStorage.jiagongqiye'
}),
},
},
time
:
{
type
:
'string'
,
'x-component-props'
:
{
placeholder
:
intl
.
formatMessage
({
id
:
'stockSellStorage.qingxuanzedanjushijian'
}),
},
enum
:
[],
},
},
},
},
},
},
};
const
afterSaleDetailSchema
:
ISchema
=
{
type
:
'object'
,
properties
:
{
megaLayout
:
{
type
:
'object'
,
'x-component'
:
'mega-layout'
,
properties
:
{
search
:
{
type
:
'string'
,
'x-component'
:
'Search'
,
'x-mega-props'
:
{},
'x-component-props'
:
{
placeholder
:
intl
.
formatMessage
({
id
:
'stockSellStorage.sousuo'
}),
align
:
'flex-start'
,
},
},
[
FORM_FILTER_PATH
]:
{
type
:
'object'
,
'x-component'
:
'mega-layout'
,
visible
:
false
,
'x-component-props'
:
{
inline
:
true
,
},
properties
:
{
orderNo
:
{
type
:
'string'
,
'x-component-props'
:
{
placeholder
:
intl
.
formatMessage
({
id
:
'stockSellStorage.shenqingdanhao'
}),
},
},
invoicesAbstract
:
{
type
:
'string'
,
'x-component-props'
:
{
placeholder
:
intl
.
formatMessage
({
id
:
'stockSellStorage.shenqingdanzhaiyao'
}),
},
},
memberName
:
{
type
:
'string'
,
'x-component-props'
:
{
placeholder
:
intl
.
formatMessage
({
id
:
'stockSellStorage.huiyuanmingcheng'
}),
},
},
time
:
{
type
:
'string'
,
'x-component-props'
:
{
placeholder
:
intl
.
formatMessage
({
id
:
'stockSellStorage.qingxuanzedanjushijian'
}),
},
enum
:
[],
},
},
},
},
},
},
};
export
const
addBillSchema
:
ISchema
=
{
type
:
'object'
,
properties
:
{
...
...
@@ -241,11 +129,7 @@ export const addBillSchema: ISchema = {
message
:
intl
.
formatMessage
({
id
:
'common.text.pleaseSelect'
})
}]
},
invoicesTypeCode
:
{
type
:
'string'
,
display
:
false
,
},
inventoryId
:
{
warehouseId
:
{
type
:
'string'
,
title
:
intl
.
formatMessage
({
id
:
'stockSellStorage.duiyingcangku'
}),
enum
:
[],
...
...
@@ -265,7 +149,7 @@ export const addBillSchema: ISchema = {
message
:
intl
.
formatMessage
({
id
:
'common.form.input.placeholder'
})
}]
},
transaction
Time
:
{
invoices
Time
:
{
type
:
'date'
,
title
:
intl
.
formatMessage
({
id
:
'stockSellStorage.danjushijian'
}),
'x-component-props'
:
{
...
...
@@ -274,7 +158,7 @@ export const addBillSchema: ISchema = {
},
required
:
true
,
},
inventory
Role
:
{
warehouse
Role
:
{
type
:
'string'
,
title
:
intl
.
formatMessage
({
id
:
'stockSellStorage.cangkurenyuan'
}),
'x-rules'
:
[{
...
...
@@ -282,134 +166,6 @@ export const addBillSchema: ISchema = {
message
:
intl
.
formatMessage
({
id
:
'common.form.input.placeholder'
})
}]
},
// relevanceInvoices: {
// title: intl.formatMessage({id: 'stockSellStorage.duiyingdanju'}),
// type: 'string',
// 'x-rules': [
// {
// required: true,
// message: intl.formatMessage({id: 'stockSellStorage.qingxuanzeduiyingdanju'}),
// },
// ],
// enum: [
// {
// label: intl.formatMessage({id: 'stockSellStorage.dingdan'}),
// value: DEPENDENT_DOC_ORDER,
// disabled: true,
// },
// {
// label: intl.formatMessage({id: 'stockSellStorage.huanhuoshenqingdan'}),
// value: DEPENDENT_DOC_EXCHANGE,
// disabled: true,
// },
// {
// label: intl.formatMessage({id: 'stockSellStorage.tuihuoshenqingdan'}),
// value: DEPENDENT_DOC_RETURN,
// disabled: true,
// },
// {
// label: intl.formatMessage({id: 'stockSellStorage.shengchantongzhidan'}),
// value: DEPENDENT_DOC_PRODUCTION,
// disabled: true,
// },
// {
// label: intl.formatMessage({id: 'stockSellStorage.neibudanju'}),
// value: DEPENDENT_DOC_INTERNAL,
// disabled: true,
// },
// ],
// },
// // 这是用 Mega-Layout 设置独立作用域,不然会被 Form 的布局影响到弹窗的布局
// MEGA_LAYOUT1_1: {
// type: 'object',
// 'x-component': 'Mega-Layout',
// 'x-component-props': {
// wrapperCol: 24,
// },
// properties: {
// orderNo: {
// type: 'string',
// title: intl.formatMessage({id: 'stockSellStorage.guanliandanju'}),
// 'x-component': 'CustomRelevance',
// 'x-component-props': {
// title: intl.formatMessage({id: 'stockSellStorage.guanlian'}),
// tip: intl.formatMessage({id: 'stockSellStorage.qingxuanzeduiyingdanju'}),
// },
// 'x-mega-props': {
// wrapperCol: 12,
// },
// 'x-rules': [
// {
// required: true,
// message: intl.formatMessage({id: 'stockSellStorage.qingguanliandanju'}),
// },
// ],
// },
// },
// },
// memberName: {
// type: 'string',
// 'x-component': 'Text',
// title: intl.formatMessage({id: 'stockSellStorage.huiyuanmingcheng'}),
// default: '',
// },
// address: {
// type: 'string',
// 'x-component': 'Text',
// title: intl.formatMessage({id: 'stockSellStorage.shouhuodizhi'}),
// default: '',
// },
// transport: {
// type: 'string',
// 'x-component': 'Text',
// title: intl.formatMessage({id: 'stockSellStorage.wuliufangshi'}),
// // default: '', // 奇了怪了,initialValues 覆盖不了 default,就这个字段会
// },
// 交付地址ID,不用于展示,只用于收集值
deliveryAddresId
:
{
type
:
'string'
,
display
:
false
,
},
// 交付地址收货人名字,不用于展示,只用于收集值
receiverName
:
{
type
:
'string'
,
display
:
false
,
},
// 交付地址详情,不用于展示,只用于收集值
fullAddress
:
{
type
:
'string'
,
display
:
false
,
},
// 交付地址联系电话,不用于展示,只用于收集值
phone
:
{
type
:
'string'
,
display
:
false
,
},
// 物流方式,不用于展示,只用于收集值
deliveryType
:
{
type
:
'number'
,
display
:
false
,
},
// 交付地址收是否默认0.否1.是,不用于展示,只用于收集值
isDefault
:
{
type
:
'boolean'
,
display
:
false
,
},
// 会员id,可以是采购会员id、销售会员id
membersId
:
{
type
:
'string'
,
display
:
false
,
},
// 会员角色id,可以是采购会员角色id、销售会员角色id
membersRoleId
:
{
type
:
'string'
,
display
:
false
,
},
// 单据类型方向
direction
:
{
type
:
'string'
,
display
:
false
,
},
},
},
},
...
...
@@ -436,7 +192,7 @@ export const addBillSchema: ISchema = {
children
:
'{{TableAddButton}}'
},
},
invoicesDetails
Requests
:
{
invoicesDetails
DTOList
:
{
type
:
'array'
,
'x-component'
:
'ArrayTable'
,
'x-component-props'
:
{
...
...
@@ -455,7 +211,12 @@ export const addBillSchema: ISchema = {
items
:
{
type
:
'object'
,
properties
:
{
itemNo
:
{
// 额外的数据,用于收集不需要展示的数据
goodsId
:
{
type
:
'string'
,
display
:
false
,
},
goodsNo
:
{
type
:
'string'
,
title
:
intl
.
formatMessage
({
id
:
'stockSellStorage.huohao'
}),
'x-props'
:
{
...
...
@@ -466,7 +227,7 @@ export const addBillSchema: ISchema = {
ellipsis
:
true
,
},
},
item
Name
:
{
goods
Name
:
{
type
:
'string'
,
title
:
intl
.
formatMessage
({
id
:
'stockSellStorage.huopinmingcheng'
}),
'x-props'
:
{
...
...
@@ -532,49 +293,7 @@ export const addBillSchema: ISchema = {
ellipsis
:
true
,
},
},
// product: {
// type: 'string',
// title: intl.formatMessage({id: 'stockSellStorage.shangpinmingcheng'}),
// enum: [],
// 'x-component-props': {
// allowClear: true,
// style: {
// width: 150,
// },
// },
// 'x-rules': [
// {
// required: true,
// message: intl.formatMessage({id: 'stockSellStorage.qingxuanzeshangpin'}),
// },
// ],
// display: true,
// },
// productId: {
// type: 'string',
// title: intl.formatMessage({id: 'stockSellStorage.shangpinID'}),
// 'x-props': {
// width: 80,
// },
// 'x-component': 'Text',
// 'x-component-props': {
// ellipsis: true,
// },
// display: true,
// },
// price: {
// type: 'string',
// title: intl.formatMessage({id: 'stockSellStorage.danjia'}),
// 'x-props': {
// width: 100,
// },
// 'x-component': 'Text',
// 'x-component-props': {
// ellipsis: true,
// },
// display: true,
// },
productCount
:
{
invoicesCount
:
{
type
:
'string'
,
title
:
intl
.
formatMessage
({
id
:
'stockSellStorage.danjushuliang'
}),
'x-component-props'
:
{
...
...
@@ -594,7 +313,7 @@ export const addBillSchema: ISchema = {
},
],
},
amount
:
{
totalPrice
:
{
type
:
'string'
,
title
:
intl
.
formatMessage
({
id
:
'stockSellStorage.jine'
}),
'x-props'
:
{
...
...
@@ -605,11 +324,6 @@ export const addBillSchema: ISchema = {
ellipsis
:
true
,
},
},
// 额外的数据,用于收集不需要展示的数据
extraData
:
{
type
:
'string'
,
display
:
false
,
},
},
}
},
...
...
src/pages/transaction/stockSellStorage/bills/index.tsx
View file @
d30ba54c
import
React
,
{
useState
,
use
Effect
,
use
Ref
}
from
'react'
;
import
React
,
{
useState
,
useRef
}
from
'react'
;
import
{
getIntl
,
history
}
from
'umi'
;
import
{
PageHeaderWrapper
}
from
'@ant-design/pro-layout'
;
import
{
Button
,
Card
,
Dropdown
,
Menu
,
Space
,
Badge
,
Popconfirm
}
from
'antd'
;
import
{
PlusOutlined
,
DownOutlined
,
DeleteOutlined
,
RollbackOutlined
,
SnippetsOutlined
,
ZoomOutOutlined
}
from
'@ant-design/icons'
;
import
{
PlusOutlined
,
DownOutlined
,
DeleteOutlined
,
RollbackOutlined
,
SnippetsOutlined
}
from
'@ant-design/icons'
;
import
StandardTable
from
'@/components/StandardTable'
;
import
moment
from
'moment'
;
import
{
ColumnType
}
from
'antd/lib/table/interface'
;
import
{
getProductInvoicesList
,
getProductInvoicesTypeAll
,
getProductWarehouseAll
,
postProductInvoicesBatchDelete
,
postProductInvoicesBatchReview
All
,
postProductInvoicesBatchAgainstReview
}
from
'@/services/ProductV2Api'
;
import
{
getProductInvoicesList
,
getProductInvoicesTypeAll
,
getProductWarehouseAll
,
postProductInvoicesBatchDelete
,
postProductInvoicesBatchReview
}
from
'@/services/ProductV2Api'
;
import
EyePreview
from
'@/components/EyePreview'
;
import
NiceForm
from
'@/components/NiceForm'
;
import
{
createFormActions
,
FormEffectHooks
}
from
'@formily/antd'
;
import
{
createFormActions
}
from
'@formily/antd'
;
import
{
useStateFilterSearchLinkageEffect
}
from
'@/formSchema/effects/useFilterSearch'
;
import
{
FORM_FILTER_PATH
}
from
'@/formSchema/const'
;
import
UploadModal
from
'@/components/UploadModal'
;
...
...
@@ -70,26 +70,11 @@ const Bills: React.FC<{}> = () => {
});
};
const
auditInvoices
=
(
ids
:
number
[],
callback
?:
()
=>
void
)
=>
{
const
auditInvoices
=
(
ids
:
number
[],
reviewType
:
number
,
callback
?:
()
=>
void
)
=>
{
setBatchLoading
(
true
);
postProductInvoicesBatchReviewAll
({
ids
,
}).
then
(
res
=>
{
if
(
res
.
code
!==
1000
)
{
return
;
}
if
(
callback
)
{
callback
();
}
}).
finally
(()
=>
{
setBatchLoading
(
false
);
});
};
const
counterclaimInvoices
=
(
ids
:
number
[],
callback
?:
()
=>
void
)
=>
{
setBatchLoading
(
true
);
postProductInvoicesBatchAgainstReview
({
postProductInvoicesBatchReview
({
ids
,
reviewType
}).
then
(
res
=>
{
if
(
res
.
code
!==
1000
)
{
return
;
...
...
@@ -121,7 +106,7 @@ const Bills: React.FC<{}> = () => {
}
case
'BatchAudit'
:
{
auditInvoices
(
selectedRowKeys
,
()
=>
{
auditInvoices
(
selectedRowKeys
,
1
,
()
=>
{
setSelectedRowKeys
([]);
ref
.
current
.
reload
();
});
...
...
@@ -129,7 +114,7 @@ const Bills: React.FC<{}> = () => {
}
case
'BatchCounterclaim'
:
{
counterclaimInvoices
(
selectedRowKeys
,
()
=>
{
auditInvoices
(
selectedRowKeys
,
0
,
()
=>
{
setSelectedRowKeys
([]);
ref
.
current
.
reload
();
});
...
...
@@ -161,15 +146,8 @@ const Bills: React.FC<{}> = () => {
);
const
handleCounterclaim
=
id
=>
{
counterclaimInvoices
([
id
],
()
=>
{
setSelectedRowKeys
([]);
ref
.
current
.
reload
();
});
};
const
handleAudit
=
id
=>
{
auditInvoices
([
id
],
()
=>
{
const
handleAudit
=
(
id
,
reviewType
)
=>
{
auditInvoices
([
id
],
reviewType
,
()
=>
{
setSelectedRowKeys
([]);
ref
.
current
.
reload
();
});
...
...
@@ -258,7 +236,7 @@ const Bills: React.FC<{}> = () => {
<
Button
type=
"link"
onClick=
{
()
=>
history
.
push
(
`/memberCenter/tranactionAbility/stockSellStorage/bills/edit?id=${record.id}`
)
}
>
{
intl
.
formatMessage
({
id
:
'stockSellStorage.xiugai'
})
}
</
Button
>
</
AuthButton
>
<
AuthButton
btnCode=
'bills.shenhe'
>
<
Button
type=
"link"
onClick=
{
()
=>
handleAudit
(
record
.
id
)
}
>
{
intl
.
formatMessage
({
id
:
'stockSellStorage.shenhe'
})
}
</
Button
>
<
Button
type=
"link"
onClick=
{
()
=>
handleAudit
(
record
.
id
,
1
)
}
>
{
intl
.
formatMessage
({
id
:
'stockSellStorage.shenhe'
})
}
</
Button
>
</
AuthButton
>
<
AuthButton
btnCode=
'bills.del'
>
<
Popconfirm
...
...
@@ -278,7 +256,7 @@ const Bills: React.FC<{}> = () => {
</>
)
}
{
record
.
state
===
DOC_STATUS_REVIEWED
&&
(
<
Button
type=
"link"
onClick=
{
()
=>
handle
Counterclaim
(
record
.
id
)
}
>
{
intl
.
formatMessage
({
id
:
'stockSellStorage.fanshen'
})
}
</
Button
>
<
Button
type=
"link"
onClick=
{
()
=>
handle
Audit
(
record
.
id
,
0
)
}
>
{
intl
.
formatMessage
({
id
:
'stockSellStorage.fanshen'
})
}
</
Button
>
)
}
</>
)
:
null
;
...
...
src/pages/transaction/stockSellStorage/billsType/components/BillTypeForm/schema/index.ts
View file @
d30ba54c
...
...
@@ -22,24 +22,24 @@ export const billsTypeDetailSchema: ISchema = {
},
properties
:
{
number
:
{
type
:
'
string
'
,
type
:
'
text
'
,
title
:
intl
.
formatMessage
({
id
:
'stockSellStorage.danjuleixingbianhao'
}),
'x-component-props'
:
{
placeholder
:
intl
.
formatMessage
({
id
:
'stockSellStorage.zuichang10gezifu'
}),
maxLength
:
10
,
},
'x-rules'
:
[
{
required
:
true
,
message
:
intl
.
formatMessage
({
id
:
'stockSellStorage.qingshurudanjuleixingbian'
}),
},
{
validator
:
value
=>
{
const
CNReg
=
/
[\u
4E00-
\u
9FA5
]
/g
;
return
CNReg
.
test
(
value
)
?
intl
.
formatMessage
({
id
:
'stockSellStorage.qingshurufeizhongwenzifu'
})
:
''
;
},
},
],
//
'x-component-props': {
//
placeholder: intl.formatMessage({ id: 'stockSellStorage.zuichang10gezifu' }),
//
maxLength: 10,
//
},
//
'x-rules': [
//
{
//
required: true,
//
message: intl.formatMessage({ id: 'stockSellStorage.qingshurudanjuleixingbian' }),
//
},
//
{
//
validator: value => {
//
const CNReg = /[\u4E00-\u9FA5]/g;
//
return CNReg.test(value) ? intl.formatMessage({ id: 'stockSellStorage.qingshurufeizhongwenzifu' }) : '';
//
},
//
},
//
],
},
name
:
{
type
:
'string'
,
...
...
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