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
51bb4004
Commit
51bb4004
authored
Nov 27, 2020
by
前端-钟卫鹏
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'dev' of
http://10.0.0.22:3000/lingxi/lingxi-business-paltform
into dev
parents
4aa8f5c1
2e1f3cb9
Expand all
Show whitespace changes
Inline
Side-by-side
Showing
37 changed files
with
849 additions
and
432 deletions
+849
-432
handlingRoute.ts
config/routes/handlingRoute.ts
+6
-0
menu.ts
src/locales/zh-CN/menu.ts
+1
-0
verify.tsx
...erService/exchangeManage/exchangePrConfirmBack/verify.tsx
+9
-11
verify.tsx
.../afterService/exchangeManage/exchangePrDeliver/verify.tsx
+9
-11
verify.tsx
...afterService/exchangeManage/exchangePrReceived/verify.tsx
+9
-11
columns.tsx
src/pages/handling/assign/detail/columns.tsx
+1
-1
index.tsx
src/pages/handling/assign/detail/index.tsx
+73
-13
index.tsx
src/pages/handling/assign/processStock/index.tsx
+20
-19
index.tsx
src/pages/handling/common/index.tsx
+100
-33
index.less
src/pages/handling/components/DeliverGood/index.less
+12
-0
index.tsx
src/pages/handling/components/DeliverGood/index.tsx
+175
-0
index.tsx
src/pages/handling/components/DeliveryInformation/index.tsx
+2
-3
contants.tsx
src/pages/handling/components/Query/contants.tsx
+0
-115
index.tsx
src/pages/handling/components/Query/index.tsx
+59
-60
schema.tsx
src/pages/handling/components/Query/schema.tsx
+4
-4
index.tsx
...ages/handling/components/ReceiptDeliveryDetails/index.tsx
+58
-9
index.tsx
src/pages/handling/components/WrapTable/index.tsx
+0
-24
contants.tsx
src/pages/handling/confirm/Query/contants.tsx
+0
-20
index.tsx
src/pages/handling/confirm/Query/index.tsx
+44
-54
index.tsx
src/pages/lxMall/components/Recommand/index.tsx
+1
-1
index.tsx
src/pages/lxMall/index/index.tsx
+1
-1
LXShopLayout.tsx
src/pages/lxMall/layouts/LXShopLayout.tsx
+9
-4
index.tsx
src/pages/lxMall/purchaseOrder/index.tsx
+18
-10
index.tsx
src/pages/member/components/SincerityInfo/index.tsx
+10
-3
basicInfo.tsx
src/pages/member/memberMaintain/detailed/basicInfo.tsx
+10
-2
index.tsx
src/pages/member/memberPr1/components/DetailInfo/index.tsx
+10
-0
index.tsx
src/pages/member/memberPr2/components/DetailInfo/index.tsx
+10
-0
index.tsx
...es/member/memberPrConfirm/components/DetailInfo/index.tsx
+10
-0
index.tsx
...ges/member/memberPrSubmit/components/DetailInfo/index.tsx
+10
-0
basicInfo.tsx
src/pages/member/memberQuery/detailed/basicInfo.tsx
+9
-1
index.tsx
src/pages/shop/shopInfo/index.tsx
+2
-3
basicInfo.tsx
...ction/goodsOffer/addEnquiryOrder/components/basicInfo.tsx
+4
-1
useBusinessEffects.ts
.../bills/components/BillsForm/effects/useBusinessEffects.ts
+91
-5
index.tsx
...ion/stockSellStorage/bills/components/BillsForm/index.tsx
+57
-0
index.ts
...ockSellStorage/bills/components/BillsForm/schema/index.ts
+10
-10
index.ts
...n/supplierEvaluation/unevaluated/evaluate/schema/index.ts
+2
-2
index.tsx
src/utils/index.tsx
+3
-1
No files found.
config/routes/handlingRoute.ts
View file @
51bb4004
...
...
@@ -251,6 +251,12 @@ const HandlingRoute = {
icon
:
'smile'
,
component
:
'@/pages/handling/assign/processStock'
,
},
{
path
:
'/memberCenter/handling/confirm/pendingDelivered/detail'
,
name
:
'pendingDeliveredDetail'
,
icon
:
'smile'
,
component
:
'@/pages/handling/assign/detail'
,
},
// 确认生产通知单 -> 待确认回单生产通知单
{
path
:
'/memberCenter/handling/confirm/pendingReceipt'
,
...
...
src/locales/zh-CN/menu.ts
View file @
51bb4004
...
...
@@ -485,6 +485,7 @@ export default {
'menu.handling.confirm.processingInvoiceTobeAddDetail'
:
'待新增加工发货单详情'
,
'menu.handling.confirm.pendingAddLogistics'
:
'待新增物流单'
,
'menu.handling.confirm.pendingDelivered'
:
'待发货生产通知单'
,
'menu.handling.confirm.pendingDeliveredDetail'
:
'待发货生产通知到单详情'
,
'menu.handling.confirm.pendingReceipt'
:
'待确认回单生产通知单'
,
'menu.handling.confirm.createProcessInvoice'
:
'新建加工发货单'
,
'menu.handling.confirm.createLogisticsOrder'
:
'新建物流单'
,
...
...
src/pages/afterService/exchangeManage/exchangePrConfirmBack/verify.tsx
View file @
51bb4004
...
...
@@ -15,17 +15,15 @@ const ExchangePrConfirmBackVerify: React.FC = () => {
return
;
}
setSubmitLoading
(
true
);
// PublicApi.postPayCreditHandleVerifyStepOne({
// applyId: id,
// isPass: values.agree,
// opinion: values.reason,
// }).then(res => {
// if (res.code === 1000) {
// history.goBack();
// }
// }).finally(() => {
// setSubmitLoading(false);
// });
PublicApi
.
postAsReplaceGoodsConfirmAllReplaceGoodsReceipt
({
dataId
:
id
,
}).
then
(
res
=>
{
if
(
res
.
code
===
1000
)
{
history
.
goBack
();
}
}).
finally
(()
=>
{
setSubmitLoading
(
false
);
});
};
return
(
...
...
src/pages/afterService/exchangeManage/exchangePrDeliver/verify.tsx
View file @
51bb4004
...
...
@@ -17,17 +17,15 @@ const ExchangePrDeliverVerify: React.FC = () => {
return
;
}
setSubmitLoading
(
true
);
// PublicApi.postPayCreditHandleVerifyStepOne({
// applyId: id,
// isPass: values.agree,
// opinion: values.reason,
// }).then(res => {
// if (res.code === 1000) {
// history.goBack();
// }
// }).finally(() => {
// setSubmitLoading(false);
// });
PublicApi
.
postAsReplaceGoodsConfirmReplaceDeliveryGoods
({
dataId
:
id
,
}).
then
(
res
=>
{
if
(
res
.
code
===
1000
)
{
history
.
goBack
();
}
}).
finally
(()
=>
{
setSubmitLoading
(
false
);
});
};
const
handleVisible
=
flag
=>
{
...
...
src/pages/afterService/exchangeManage/exchangePrReceived/verify.tsx
View file @
51bb4004
...
...
@@ -17,17 +17,15 @@ const ExchangePrReceivedVerify: React.FC = () => {
return
;
}
setSubmitLoading
(
true
);
// PublicApi.postPayCreditHandleVerifyStepOne({
// applyId: id,
// isPass: values.agree,
// opinion: values.reason,
// }).then(res => {
// if (res.code === 1000) {
// history.goBack();
// }
// }).finally(() => {
// setSubmitLoading(false);
// });
PublicApi
.
postAsReplaceGoodsConfirmReturnReceiveGoods
({
dataId
:
id
,
}).
then
(
res
=>
{
if
(
res
.
code
===
1000
)
{
history
.
goBack
();
}
}).
finally
(()
=>
{
setSubmitLoading
(
false
);
});
};
const
handleVisible
=
flag
=>
{
...
...
src/pages/handling/assign/detail/columns.tsx
View file @
51bb4004
...
...
@@ -227,7 +227,7 @@ export const pnoReceiveDeliverDetailDOListColumns = [
},
{
title
:
'ID'
,
dataIndex
:
'
order
Id'
dataIndex
:
'
product
Id'
},
{
title
:
'商品名称'
,
...
...
src/pages/handling/assign/detail/index.tsx
View file @
51bb4004
...
...
@@ -4,7 +4,6 @@ import { history } from 'umi';
import
AvatarWrap
from
'@/components/AvatarWrap'
;
import
{
PageHeader
,
Descriptions
,
Card
,
Tabs
,
Row
,
Col
,
Button
,
Badge
,
Table
}
from
'antd'
;
import
Circulation
from
'../../components/Circulation'
;
import
WrapTable
from
'../../components/WrapTable'
;
import
OtherRequirement
from
'../../components/OtherRequirement'
;
import
Appendix
from
'../../components/Appendix'
;
import
{
usePageStatus
}
from
'@/hooks/usePageStatus'
...
...
@@ -28,10 +27,12 @@ import {
CONFIRM_PENDING_FIRST_DETAIL
,
CONFIRM_PENDING_SECOND_DETAIL
,
CONFIRM_PENDING_CONFIRM_DETAIL
,
PENDING_DELIVERD_PATH
,
SUPPLIER_DETAIL_INNER_STATUS_COLOR
,
CONFIRM_DETAIL_INNER_STATUS_COLOR
,
SUPPLIER_OUTER_STATUS_COLOR
}
from
'../../common'
;
import
DeliverGood
from
'../../components/DeliverGood'
;
// 下面的地址需要抽离出来, 还有以下的相同的path
const
SERVICE_MAP
=
{
...
...
@@ -46,7 +47,8 @@ const SERVICE_MAP = {
[
`
${
CONFIRM_PENDING_FIRST_DETAIL
}
`
]:
PublicApi
.
getEnhanceProcessToBeFirstExamDetails
,
[
`
${
CONFIRM_PENDING_SECOND_DETAIL
}
`
]:
PublicApi
.
getEnhanceProcessToBeSecondExamDetails
,
[
`
${
CONFIRM_PENDING_CONFIRM_DETAIL
}
`
]:
PublicApi
.
getEnhanceProcessToBeConfirmDetails
,
'/memberCenter/handling/confirm/processingInvoiceTobeAdd/detail'
:
PublicApi
.
getEnhanceProcessToBeAddDeliveryDetails
,
[
`
${
PENDING_DELIVERD_PATH
}
/detail`
]:
PublicApi
.
getEnhanceProcessToBeDeliveryDetails
// '/memberCenter/handling/confirm/processingInvoiceTobeAdd/detail': PublicApi.getEnhanceProcessToBeAddDeliveryDetails,
}
/**
...
...
@@ -74,8 +76,7 @@ const Detail: React.FC<{}> = () => {
const
[
deliverAddressOption
,
setDeliverAddressOption
]
=
useState
([]);
const
[
activeAddress
,
setActiveAddress
]
=
useState
<
string
|
null
>
(
null
)
useEffect
(()
=>
{
if
(
id
)
{
const
getInfo
=
()
=>
{
const
service
=
SERVICE_MAP
[
pathname
];
service
&&
service
({
id
:
id
})
.
then
(({
data
,
code
})
=>
{
...
...
@@ -84,6 +85,11 @@ const Detail: React.FC<{}> = () => {
}
})
}
useEffect
(()
=>
{
if
(
id
)
{
getInfo
();
}
},
[
id
]);
// 确认生产通知单 -> 待提交审核生产通知单时需要同时提交他的发货地址
...
...
@@ -147,12 +153,9 @@ const Detail: React.FC<{}> = () => {
})
}
/**
* 待提交生产通知单,提交生产通知到哪
*/
const
submit
=
()
=>
{
const
postService
=
(
service
,
params
)
=>
{
setLoading
(
true
)
PublicApi
.
postEnhanceSupplierToBeSubmitSubmit
({
id
:
id
}
)
service
(
params
)
.
then
(({
data
,
code
})
=>
{
if
(
code
===
1000
)
{
history
.
go
(
-
1
);
...
...
@@ -162,7 +165,22 @@ const Detail: React.FC<{}> = () => {
})
}
const
renderExtra
=
()
=>
{
/**
* 待提交生产通知单,提交生产通知单
*/
const
submit
=
()
=>
{
postService
(
PublicApi
.
postEnhanceSupplierToBeSubmitSubmit
,
{
id
:
id
});
}
/**
* 指派生产通知单,提交
* /enhance/supplier/toBeAdd/submitExam
*/
const
toNext
=
()
=>
{
postService
(
PublicApi
.
postEnhanceSupplierToBeAddSubmitExam
,
{
id
:
id
});
}
const
renderExtra
=
useCallback
(()
=>
{
const
ExamineComponent
=
(
<
ExamineModal
onOk=
{
examOnOk
}
modalType=
{
"basic"
}
>
...
...
@@ -170,16 +188,43 @@ const Detail: React.FC<{}> = () => {
</
ExamineModal
>
)
const
SubmitBtn
=
<
Button
loading=
{
loading
}
icon=
{
<
FormOutlined
/>
}
onClick=
{
submit
}
type=
"primary"
>
提交通知单
</
Button
>
const
NextBtn
=
<
Button
loading=
{
loading
}
onClick=
{
toNext
}
>
提交
</
Button
>
const
COMPONENT_MAP
=
{
// 待新增生产通知单有提交按钮
[
`
${
ASSIGN_TO_BE_ADD_QUERY_DETAIL
}
`
]:
NextBtn
,
[
`
${
ASSIGN_PENDING_SUBMIT_DETAIL
}
`
]:
SubmitBtn
,
[
`
${
ASSIGN_PENDING_FIRST_DETAIL
}
`
]:
ExamineComponent
,
[
`
${
ASSIGN_PENDING_SECOND_DETAIL
}
`
]:
ExamineComponent
,
[
`
${
CONFIRM_PENDING_SUBMIT_DETAIL
}
`
]:
ExamineComponent
,
[
`
${
CONFIRM_PENDING_FIRST_DETAIL
}
`
]:
ExamineComponent
,
[
`
${
CONFIRM_PENDING_SECOND_DETAIL
}
`
]:
ExamineComponent
,
[
`
${
CONFIRM_PENDING_CONFIRM_DETAIL
}
`
]:
ExamineComponent
[
`
${
CONFIRM_PENDING_CONFIRM_DETAIL
}
`
]:
ExamineComponent
,
// [`${PENDING_DELIVERD_PATH}/detail`]: DeliverGoodComponent
}
return
(
COMPONENT_MAP
[
pathname
]
||
null
)
},
[])
const
handleConfirm
=
(
status
,
params
)
=>
{
/**
* 这里的5 是指外部状态(outerStatus)为5,1指的是(activeData.deliverStatus)为1,
* 1 可以是 deliverStatus, 也可以是receiveStatus 和 receiptStatus
*/
const
SERVICE_MAP
=
{
'5_1'
:
PublicApi
.
postEnhanceProcessToBeDeliveryConfirmDelivery
,
'7_1'
:
PublicApi
.
postEnhanceSupplierToBeReceiveConfirmReceive
,
'8_1'
:
PublicApi
.
postEnhanceProcessToBeConfirmReceiptConfirmReceipt
}
const
service
=
SERVICE_MAP
[
status
];
if
(
service
)
{
service
(
params
)
.
then
((
data
,
code
)
=>
{
if
(
code
===
1000
)
{
// console.log(data);
getInfo
()
}
})
}
}
return
(
...
...
@@ -229,6 +274,16 @@ const Detail: React.FC<{}> = () => {
{
renderExtra
()
}
{
// 这里手工发货需要某个字段值去判断
pathname
===
(
PENDING_DELIVERD_PATH
+
"/detail"
)
?
(
<
DeliverGood
mode=
"view"
>
<
Button
loading=
{
loading
}
type=
"primary"
>
手工发货
</
Button
>
</
DeliverGood
>
)
:
null
}
</
Col
>
</
Row
>
</
PageHeader
>
...
...
@@ -246,12 +301,15 @@ const Detail: React.FC<{}> = () => {
</
Card
>
</
div
>
{
/* 这里全部是走 非手工发货,当有手工发货按钮是,此时下面收发货明细隐藏 */
}
<
div
style=
{
{
marginTop
:
'20px'
,
display
:
info
.
pnoReceiveDeliverDetailDOList
?.
length
>
0
?
'block'
:
'none'
}
}
>
<
ReceiptDeliveryDetails
statisticsColumn=
{
receiveColumns
}
statisticsData=
{
info
.
details
}
pnoReceiveDeliverDetailDOList=
{
info
.
pnoReceiveDeliverDetailDOList
}
pnoReceiveDeliverDetailColumns=
{
pnoReceiveDeliverDetailDOListColumns
}
outerStatus=
{
info
.
outerStatus
}
confirm=
{
handleConfirm
}
/>
</
div
>
<
div
style=
{
{
marginTop
:
'20px'
}
}
>
...
...
@@ -285,13 +343,15 @@ const Detail: React.FC<{}> = () => {
<
Card
bodyStyle=
{
{
padding
:
'10px 24px 24px 24px'
}
}
>
<
Tabs
>
<
TabPane
tab=
"外部流转记录"
key=
"1"
>
<
WrapTable
<
Table
rowKey=
{
"id"
}
columns=
{
outerWorkflowRecordsColumn
}
dataSource=
{
info
.
outerWorkflowRecordsList
}
/>
</
TabPane
>
<
TabPane
tab=
"内部流转记录"
key=
"2"
>
<
WrapTable
<
Table
rowKey=
{
"id"
}
columns=
{
innerWorkFlowRecordColumn
}
dataSource=
{
info
.
innerWorkflowRecordsList
}
/>
...
...
src/pages/handling/assign/processStock/index.tsx
View file @
51bb4004
...
...
@@ -14,28 +14,29 @@ import { ColumnsType } from 'antd/es/table';
import
{
timeRange
}
from
'@/utils'
;
import
{
Link
,
history
}
from
'umi'
import
{
DOC_TYPE_PROCESS_INVOICE
,
DEPENDENT_DOC_PRODUCTION
}
from
'@/constants'
;
import
{
PROCESS_TITLE
,
PENDING_ADD_PROCESS_PATH
,
PROCESSING_INVOICE_TO_BE_ADD_PATH
,
PENDING_ADD_LOGISTICS_PATH
,
PENDING_DELIVERD_PATH
,
PENDING_RECEIPT_PATH
,
ASSIGN_PENDING_RECEIVE
,
}
from
'../../common'
;
const
formActions
=
createFormActions
();
const
ADD_PROCESS_PATH
=
'/memberCenter/tranactionAbility/stockSellStorage/bills/add'
;
const
ADD_DELIVERY_PATH
=
'/memberCenter/tranactionAbility/stockSellStorage/bills/add'
;
const
ADD_LOGISTICS_PATH
=
'/memberCenter/logisticsAbility/logisticsSubmit/toOrderSumitList/add'
;
const
TITLE
=
{
'/memberCenter/handling/assign/pendingAddProcessing'
:
"待新建加工入库单"
,
'/memberCenter/handling/confirm/processingInvoiceTobeAdd'
:
"待新增加工发货单"
,
'/memberCenter/handling/confirm/pendingAddLogistics'
:
"待新增物流单"
,
'/memberCenter/handling/confirm/pendingDelivered'
:
"待发货生产通知单"
,
'/memberCenter/handling/confirm/pendingReceipt'
:
"待确认回单生产通知单"
,
'/memberCenter/handling/assign/pendingReceive'
:
"待确认收货生产通知单"
,
}
const
SERVICE_MAPS
=
{
'/memberCenter/handling/assign/pendingAddProcessing'
:
PublicApi
.
getEnhanceSupplierToBeAddStorageList
,
'/memberCenter/handling/confirm/processingInvoiceTobeAdd'
:
PublicApi
.
getEnhanceProcessToBeAddDeliveryList
,
'/memberCenter/handling/confirm/pendingAddLogistics'
:
PublicApi
.
getEnhanceProcessToBeAddLogisticsList
,
'/memberCenter/handling/confirm/pendingDelivered'
:
PublicApi
.
getEnhanceSupplierToBeReceiveList
,
'/memberCenter/handling/confirm/pendingReceipt'
:
PublicApi
.
getEnhanceProcessToBeConfirmReceiptList
,
'/memberCenter/handling/assign/pendingReceive'
:
PublicApi
.
getEnhanceSupplierToBeReceiveList
[
PENDING_ADD_PROCESS_PATH
]:
PublicApi
.
getEnhanceSupplierToBeAddStorageList
,
[
PROCESSING_INVOICE_TO_BE_ADD_PATH
]:
PublicApi
.
getEnhanceProcessToBeAddDeliveryList
,
[
PENDING_ADD_LOGISTICS_PATH
]:
PublicApi
.
getEnhanceProcessToBeAddLogisticsList
,
///enhance/process/toBeDelivery/list
[
PENDING_DELIVERD_PATH
]:
PublicApi
.
getEnhanceProcessToBeDeliveryList
,
[
PENDING_RECEIPT_PATH
]:
PublicApi
.
getEnhanceProcessToBeConfirmReceiptList
,
[
ASSIGN_PENDING_RECEIVE
]:
PublicApi
.
getEnhanceSupplierToBeReceiveList
}
enum
ExamType
{
...
...
@@ -43,7 +44,6 @@ enum ExamType {
warehouseReceipt
=
'warehouseReceipt'
,
// 加工入库单
}
const
processStock
:
React
.
FC
<
{}
>
=
()
=>
{
const
ref
=
useRef
<
any
>
({});
const
pathname
=
history
.
location
.
pathname
;
...
...
@@ -84,7 +84,7 @@ const processStock: React.FC<{}> = () => {
},
{
title
:
'发货批次'
,
dataIndex
:
'deliveryBatch'
},
{
title
:
'入库
单号'
,
title
:
()
=>
pathname
==
PENDING_ADD_PROCESS_PATH
?
'入库单号'
:
'发货
单号'
,
dataIndex
:
'deliveryNo'
,
render
:
(
text
)
=>
{
if
(
!
text
)
{
...
...
@@ -141,7 +141,8 @@ const processStock: React.FC<{}> = () => {
),
'待新增物流单'
:
<
Link
to
=
{
`
${
ADD_LOGISTICS_PATH
}
`
}
>
新增
<
/Link>
,
'待确认物流单'
:
<
a
>
查看
<
/a>
,
'待收货通知单'
:
<
Link
to
=
{
'/memberCenter/handling/assign/pendingReceive/detail'
}
>
收货
<
/Link
>
'待收货通知单'
:
<
Link
to
=
{
`
${
ASSIGN_PENDING_RECEIVE
}
/detail`
}
>
收货
<
/Link>
,
'待确认发货'
:
<
Link
to
=
{
`
${
PENDING_DELIVERD_PATH
}
/detail?id=
${
record
.
id
}
`
}
>
发货
<
/Link
>
}
return
MAP
[
record
.
innerStatusName
]
}
...
...
@@ -205,7 +206,7 @@ const processStock: React.FC<{}> = () => {
return
(
<
PageHeaderWrapper
title=
{
TITLE
[
pathname
]
}
title=
{
PROCESS_
TITLE
[
pathname
]
}
>
<
Card
>
<
StandardTable
...
...
src/pages/handling/common/index.tsx
View file @
51bb4004
...
...
@@ -29,10 +29,14 @@ export const ASSIGN_TO_BE_ADD_QUERY = '/memberCenter/handling/assign/tobeAddQuer
export
const
ASSIGN_PENDING_FIRST
=
'/memberCenter/handling/assign/pendingFirst'
;
export
const
ASSIGN_PENDING_SECOND
=
'/memberCenter/handling/assign/pendingSecond'
;
export
const
ASSIGN_PENDING_SUBMIT
=
'/memberCenter/handling/assign/pendingSubmit'
;
/**
* 指派生产通知单->待收货生产通知单
*/
export
const
ASSIGN_PENDING_RECEIVE
=
'/memberCenter/handling/assign/pendingReceive'
;
/**
* 确认生产通知单
* 确认生产通知单
MENU -> 生产通知单查询, 待提交生产通知单,待审核(一级), 待审核(二级),待确认生产通知单
*/
export
const
CONFIRM_QUERY
=
'/memberCenter/handling/confirm/query'
;
export
const
CONFIRM_PENDING_SUBMIT
=
'/memberCenter/handling/confirm/pendingSubmit'
;
...
...
@@ -59,7 +63,6 @@ export const CONFIRM_PENDING_SECOND_DETAIL = CONFIRM_PENDING_SECOND + DETAIL;
export
const
CONFIRM_PENDING_CONFIRM_DETAIL
=
CONFIRM_PENDING_CONFIRM
+
DETAIL
;
/**
* 指派生产通知单-生产通知单查询页
*/
...
...
@@ -101,31 +104,26 @@ export const PENDING_RECEIVE_SCHEMA = "noticeNo"
* 下面设置各个 path 常量
*/
export
const
QUERY_PATH
=
'/query'
;
const
QUERY_TITLE
=
'生产通知单查询'
;
/**
* 待新增生产通知单
*/
export
const
TO_BE_ADD_QUERY_PATH
=
'/tobeAddQuery'
;
const
TO_BE_ADD_QUERY_TITLE
=
'待新增生产通知单'
;
/**
* 带审核生产通知单(一级)
*/
export
const
PENDING_FIRST
=
'/pendingFirst'
;
const
PENDING_FIRST_TITLE
=
'待审核通知单(一级)'
;
/**
* 待审核通知单(二级)
*/
export
const
PENDING_SECOND
=
'/pendingSecond'
;
const
PENDING_SECOND_TITLE
=
'待审核通知单(二级)'
;
/**
* 待审核生产通知单
*/
export
const
PENDING_SUBMIT
=
'/pendingSubmit'
;
const
PENDING_SUBMIT_TITLE
=
'待提交生产通知单'
;
/**
...
...
@@ -134,35 +132,26 @@ const PENDING_SUBMIT_TITLE = '待提交生产通知单';
export
const
PENDING_RECEIVE
=
'/pendingReceive'
;
const
PENDING_RECEIVE_TITLE
=
'待收货生产通知单'
;
export
const
TITLE_MAPS
=
{
[
QUERY_PATH
]:
QUERY_TITLE
,
[
TO_BE_ADD_QUERY_PATH
]:
TO_BE_ADD_QUERY_TITLE
,
[
PENDING_FIRST
]:
PENDING_FIRST_TITLE
,
[
PENDING_SECOND
]:
PENDING_SECOND_TITLE
,
[
PENDING_SUBMIT
]:
PENDING_SUBMIT_TITLE
,
[
PENDING_RECEIVE
]:
PENDING_RECEIVE_TITLE
}
// 根据 lastTypeParams, 获取对应的高级筛选 name
export
const
FILTER_NAMES
=
{
[
QUERY_PATH
]:
QUERY_SEARCH_NAME
,
[
TO_BE_ADD_QUERY_PATH
]:
TO_BE_ADD_QUERY_SEARCH_NAME
,
[
PENDING_FIRST
]:
PENDING_FIRST_AND_SECOND_NOTICE
,
[
PENDING_SECOND
]:
PENDING_FIRST_AND_SECOND_NOTICE
,
[
PENDING_SUBMIT
]:
PENDING_TO_SUBMIT
,
[
PENDING_RECEIVE
]:
PENDING_RECEIVE_SCHEMA
,
"/pendingAddProcessing"
:
PENDING_ADD_PROCESS
,
export
const
ASSINGN_TITLE_MAPS
=
{
[
ASSIGN_QUERY
]:
QUERY_TITLE
,
[
ASSIGN_TO_BE_ADD_QUERY
]:
TO_BE_ADD_QUERY_TITLE
,
[
ASSIGN_PENDING_FIRST
]:
PENDING_FIRST_TITLE
,
[
ASSIGN_PENDING_SECOND
]:
PENDING_SECOND_TITLE
,
[
ASSIGN_PENDING_SUBMIT
]:
PENDING_SUBMIT_TITLE
,
}
export
const
DETAIL_PATH
=
{
[
QUERY_PATH
]:
ASSIGN_QUERY_DETAIL
,
[
TO_BE_ADD_QUERY_PATH
]:
ASSIGN_TO_BE_ADD_QUERY_DETAIL
,
[
PENDING_FIRST
]:
ASSIGN_PENDING_FIRST_DETAIL
,
[
PENDING_SECOND
]:
ASSIGN_PENDING_SECOND_DETAIL
,
[
PENDING_SUBMIT
]:
ASSIGN_PENDING_SUBMIT
,
[
PENDING_RECEIVE
]:
ASSIGN_PENDING_RECEIVE_DETAIL
,
}
// export const DETAIL_PATH = {
// [QUERY_PATH]: ASSIGN_QUERY_DETAIL,
// [TO_BE_ADD_QUERY_PATH]: ASSIGN_TO_BE_ADD_QUERY_DETAIL,
// [PENDING_FIRST]: ASSIGN_PENDING_FIRST_DETAIL,
// [PENDING_SECOND]: ASSIGN_PENDING_SECOND_DETAIL,
// [PENDING_SUBMIT]: ASSIGN_PENDING_SUBMIT,
// [PENDING_RECEIVE]: ASSIGN_PENDING_RECEIVE_DETAIL,
// }
export
const
INNER_STATUS_BADGE_COLOR
=
{
"1"
:
"default"
,
...
...
@@ -181,6 +170,7 @@ export const SUPPLIER_INNER_STATUS_COLOR = {
"1"
:
"default"
,
"2"
:
"warning"
,
"3"
:
"processing"
,
'4'
:
'processing'
,
"5"
:
"success"
,
"9"
:
"error"
,
}
...
...
@@ -226,7 +216,6 @@ export const CONFIRM_DETAIL_INNER_STATUS_COLOR = [
/**
* 指派生产通知单 -> 列表页 -> 外部状态
*/
export
const
SUPPLIER_OUTER_STATUS_COLOR
=
[
"default"
,
"default"
,
...
...
@@ -235,3 +224,81 @@ export const SUPPLIER_OUTER_STATUS_COLOR = [
"danger"
,
"success"
]
/**
* 待新增加工入库单
*/
export
const
PENDING_ADD_PROCESS_PATH
=
'/memberCenter/handling/assign/pendingAddProcessing'
;
/**
* 待新增加工发货单
*/
export
const
PROCESSING_INVOICE_TO_BE_ADD_PATH
=
'/memberCenter/handling/confirm/processingInvoiceTobeAdd'
;
/**
* 待新增物流单
*/
export
const
PENDING_ADD_LOGISTICS_PATH
=
'/memberCenter/handling/confirm/pendingAddLogistics'
;
/**
* 待发货生产通知单
*/
export
const
PENDING_DELIVERD_PATH
=
'/memberCenter/handling/confirm/pendingDelivered'
;
/**
* 待确认回单生产通知单
*/
export
const
PENDING_RECEIPT_PATH
=
'/memberCenter/handling/confirm/pendingReceipt'
;
/**
* 待加工发货单, 待加工入库单,待新增物流单,待发货生产通知单,待确认回单生产通知单, 待确认收货生产通知单
* 以上几种单据标题,因为共用一个页面,需要根据链接去判断
*/
export
const
PROCESS_TITLE
=
{
[
PENDING_ADD_PROCESS_PATH
]:
"待新建加工入库单"
,
[
PROCESSING_INVOICE_TO_BE_ADD_PATH
]:
"待新增加工发货单"
,
[
PENDING_ADD_LOGISTICS_PATH
]:
"待新增物流单"
,
[
PENDING_DELIVERD_PATH
]:
"待发货生产通知单"
,
[
PENDING_RECEIPT_PATH
]:
"待确认回单生产通知单"
,
[
ASSIGN_PENDING_RECEIVE
]:
"待确认收货生产通知单"
,
}
/**
* 收发货铭心 内部状态, 用发货状态,收货状态,回单状态去判断内部状态
* 因为上面三种情况 1:代表待确认 2,表示已确认收发货,回单,
*/
export
const
DELIEVER_AND_RECEIVE_INNER_STATUS_TEXT
=
[
""
,
"待确认发货"
,
"已确认发货"
,
"待确认收货"
,
"已确认收货"
,
"待确认回单"
,
"已确认回单"
]
export
const
DELIEVER_AND_RECEIVE_INNER_BTN_TEXT
=
[
""
,
"确认发货"
,
"确认发货"
,
"确认收货"
,
"确认收货"
,
"确认回单"
,
"确认回单"
]
export
const
DELIEVER_AND_RECEIVE_INNER_STATUS
=
{
'5_1'
:
1
,
'5_2'
:
2
,
'7_1'
:
3
,
'7_2'
:
4
,
'8_1'
:
5
,
'8_2'
:
6
}
src/pages/handling/components/DeliverGood/index.less
0 → 100644
View file @
51bb4004
.row {
margin-bottom: 24px;
font-size: 12px;
&:last-child {
margin-bottom: 0;
}
.label {
color: #909399;
}
}
\ No newline at end of file
src/pages/handling/components/DeliverGood/index.tsx
0 → 100644
View file @
51bb4004
import
React
,
{
useState
,
useCallback
}
from
'react'
;
import
{
Button
,
Modal
,
DatePicker
,
Row
,
Col
}
from
'antd'
;
import
NiceForm
from
'@/components/NiceForm'
;
import
{
createAsyncFormActions
}
from
'@formily/antd'
;
import
{
PublicApi
}
from
'@/services/api'
;
import
{
useAsyncSelect
}
from
'@/formSchema/effects/useAsyncSelect'
;
import
styles
from
'./index.less'
;
import
{
Link
}
from
'umi'
const
formActions
=
createAsyncFormActions
();
interface
Iprops
{
children
:
React
.
ReactNode
,
mode
:
'view'
|
'edit'
}
const
schema
=
{
type
:
'object'
,
properties
:
{
layout
:
{
type
:
"object"
,
"x-component"
:
"mega-layout"
,
"x-component-props"
:
{
"labelAlign"
:
"top"
,
"full"
:
true
},
properties
:
{
address
:
{
type
:
'string'
,
"title"
:
"发货地址"
,
enum
:
[],
"x-rules"
:
[
{
required
:
true
,
message
:
'请选择发货地址'
}
]
},
time
:
{
type
:
'time'
,
title
:
'发货时间'
,
"x-component"
:
'DatePicker'
,
"x-rules"
:
[
{
required
:
true
,
message
:
'请选择发货时间'
}
]
},
no
:
{
type
:
'string'
,
title
:
'发货单号'
,
"x-rules"
:
[
{
required
:
true
,
message
:
'请填写发货单号'
},
{
limitByte
:
true
,
// 自定义校验规则
maxByte
:
20
,
}
]
},
company
:
{
type
:
'string'
,
title
:
'物流公司'
,
enum
:
[],
"x-rules"
:
[
{
required
:
true
,
message
:
'请选择物流公司'
}
]
}
}
}
}
}
const
DeliverGood
:
React
.
FC
<
Iprops
>
=
(
props
)
=>
{
const
{
mode
,}
=
props
;
const
[
visible
,
setVisible
]
=
useState
(
false
);
const
handleOk
=
()
=>
{
if
(
mode
===
'edit'
)
{
formActions
.
submit
()
}
}
const
handleCancel
=
()
=>
{
setVisible
(
false
);
}
const
handleSubmit
=
(
value
)
=>
{
setVisible
(
false
);
}
const
fetchDelieverAddress
=
useCallback
(
async
()
=>
{
const
{
data
,
code
}
=
await
PublicApi
.
getLogisticsShipperAddressPage
({
current
:
'1'
,
pageSize
:
'999'
});
if
(
code
===
1000
)
{
return
data
.
data
.
map
((
item
)
=>
{
return
{
label
:
item
.
fullAddress
+
" / "
+
item
.
shipperName
+
" / "
+
item
.
phone
,
value
:
item
.
id
}
})
}
return
[]
},
[])
const
fetchCompany
=
useCallback
(
async
()
=>
{
// /logistics/select/listCompany
const
{
data
,
code
}
=
await
PublicApi
.
getLogisticsSelectListCompany
({
cooperateType
:
'2'
});
if
(
code
===
1000
)
{
return
data
.
map
((
item
)
=>
{
return
{
label
:
item
.
name
,
value
:
item
.
id
}
})
}
return
[]
},
[])
return
(
<
div
>
<
div
onClick=
{
()
=>
setVisible
(
true
)
}
>
{
props
.
children
}
</
div
>
<
Modal
visible=
{
visible
}
title=
"发货处理"
onOk=
{
handleOk
}
onCancel=
{
handleCancel
}
>
{
mode
===
'edit'
?
<
NiceForm
actions=
{
formActions
}
components=
{
{
DatePicker
}
}
onSubmit=
{
handleSubmit
}
effects=
{
(
$
,
actions
)
=>
{
useAsyncSelect
(
"address"
,
fetchDelieverAddress
);
useAsyncSelect
(
"company"
,
fetchCompany
)
}
}
schema=
{
schema
}
/>
:
<
div
>
<
Row
className=
{
styles
.
row
}
>
<
Col
className=
{
styles
.
label
}
span=
{
4
}
>
发货地址:
</
Col
>
<
Col
>
广东省广州市海珠区新港东路1068号中州中心北塔6楼
</
Col
>
</
Row
>
<
Row
className=
{
styles
.
row
}
>
<
Col
className=
{
styles
.
label
}
span=
{
4
}
>
发货时间:
</
Col
>
<
Col
>
2020-05-20 08:00
</
Col
>
</
Row
>
<
Row
className=
{
styles
.
row
}
>
<
Col
className=
{
styles
.
label
}
span=
{
4
}
>
物流单号:
</
Col
>
<
Col
><
Link
to=
{
'/'
}
>
WL0954548
</
Link
></
Col
>
</
Row
>
<
Row
className=
{
styles
.
row
}
>
<
Col
className=
{
styles
.
label
}
span=
{
4
}
>
物流公司:
</
Col
>
<
Col
>
顺丰
</
Col
>
</
Row
>
</
div
>
}
</
Modal
>
</
div
>
)
}
export
default
DeliverGood
\ No newline at end of file
src/pages/handling/components/DeliveryInformation/index.tsx
View file @
51bb4004
...
...
@@ -53,7 +53,7 @@ const DeliveryInfomation: React.FC<Iprops> = (props) => {
props
.
editDeliverAddress
?
<
Col
span=
{
9
}
>
<
Row
style=
{
{
marginBottom
:
'20px'
}
}
>
<
Col
span=
{
5
}
>
发货地址
</
Col
>
<
Col
span=
{
5
}
>
{
props
.
deliveryType
==
2
?
'自提地址'
:
'发货地址'
}
</
Col
>
<
Col
span=
{
19
}
>
<
Select
style=
{
{
width
:
'100%'
}
}
value=
{
props
.
activeAddress
}
>
{
...
...
@@ -65,14 +65,13 @@ const DeliveryInfomation: React.FC<Iprops> = (props) => {
)
})
}
{
/* <Option value={"1"}>test</Option> */
}
</
Select
>
</
Col
>
</
Row
>
</
Col
>
:
<
Col
span=
{
9
}
style=
{
!
props
.
deliveryUserName
?
{
display
:
'none'
}
:
{}
}
>
<
Row
style=
{
{
marginBottom
:
'20px'
}
}
>
<
Col
span=
{
5
}
>
发货地址
</
Col
>
<
Col
span=
{
5
}
>
{
props
.
deliveryType
==
2
?
'自提地址'
:
'发货地址'
}
</
Col
>
<
Col
>
{
props
.
deliveryUserTel
}
/
{
props
.
deliveryUserName
}
</
Col
>
</
Row
>
<
Row
>
...
...
src/pages/handling/components/Query/contants.tsx
deleted
100644 → 0
View file @
4aa8f5c1
/**
* 指派生产通知单-生产通知单查询页
*/
export
const
QUERY_SEARCH_NAME
=
"noticeNo"
;
/**
* 指派生产通知单-待新增生产通知单列表页
*/
export
const
TO_BE_ADD_QUERY_SEARCH_NAME
=
"noticeNo"
;
/**
* 指派生产通知单-待审核生产通知单(一级)
* 指派生产通知单-待审核生产通知单(二级)
*/
export
const
PENDING_FIRST_AND_SECOND_NOTICE
=
"noticeNo"
;
/**
* 指派生产通知单-待提交生产通知单
*/
export
const
PENDING_TO_SUBMIT
=
"noticeNo"
;
/**
* 指派生产通知单-待新增加工入库单
*/
export
const
PENDING_ADD_PROCESS
=
"summary"
/**
* 指派生产通知单-待收货生产通知单
*/
export
const
PENDING_RECEIVE_SCHEMA
=
"noticeNo"
/**
* 下面设置各个 path 常量
*/
export
const
QUERY_PATH
=
'/query'
;
const
QUERY_TITLE
=
'生产通知单查询'
;
/**
* 待新增生产通知单
*/
export
const
TO_BE_ADD_QUERY_PATH
=
'/tobeAddQuery'
;
const
TO_BE_ADD_QUERY_TITLE
=
'待新增生产通知单'
;
/**
* 带审核生产通知单(一级)
*/
export
const
PENDING_FIRST
=
'/pendingFirst'
;
const
PENDING_FIRST_TITLE
=
'待审核通知单(一级)'
;
/**
* 待审核通知单(二级)
*/
export
const
PENDING_SECOND
=
'/pendingSecond'
;
const
PENDING_SECOND_TITLE
=
'待审核通知单(二级)'
;
/**
* 待审核生产通知单
*/
export
const
PENDING_SUBMIT
=
'/pendingSubmit'
;
const
PENDING_SUBMIT_TITLE
=
'待提交生产通知单'
;
/**
* 待收货生产通知单
*/
export
const
PENDING_RECEIVE
=
'/pendingReceive'
;
const
PENDING_RECEIVE_TITLE
=
'待收货生产通知单'
;
export
const
TITLE_MAPS
=
{
[
QUERY_PATH
]:
QUERY_TITLE
,
[
TO_BE_ADD_QUERY_PATH
]:
TO_BE_ADD_QUERY_TITLE
,
[
PENDING_FIRST
]:
PENDING_FIRST_TITLE
,
[
PENDING_SECOND
]:
PENDING_SECOND_TITLE
,
[
PENDING_SUBMIT
]:
PENDING_SUBMIT_TITLE
,
[
PENDING_RECEIVE
]:
PENDING_RECEIVE_TITLE
}
export
const
INNER_STATUS_BADGE_COLOR
=
{
"1"
:
"default"
,
"2"
:
"warning"
,
"3"
:
"processing"
,
"4"
:
"success"
,
"5"
:
"error"
}
// 根据 lastTypeParams, 获取对应的高级筛选 name
export
const
FILTER_NAMES
=
{
[
QUERY_PATH
]:
QUERY_SEARCH_NAME
,
[
TO_BE_ADD_QUERY_PATH
]:
TO_BE_ADD_QUERY_SEARCH_NAME
,
[
PENDING_FIRST
]:
PENDING_FIRST_AND_SECOND_NOTICE
,
[
PENDING_SECOND
]:
PENDING_FIRST_AND_SECOND_NOTICE
,
[
PENDING_SUBMIT
]:
PENDING_TO_SUBMIT
,
[
PENDING_RECEIVE
]:
PENDING_RECEIVE_SCHEMA
,
"/pendingAddProcessing"
:
PENDING_ADD_PROCESS
,
}
export
const
DETAIL_PATH
=
{
[
QUERY_PATH
]:
'/memberCenter/handling/assign/query/detail'
,
[
TO_BE_ADD_QUERY_PATH
]:
'/memberCenter/handling/assign/tobeAddQuery/detail'
,
[
PENDING_FIRST
]:
'/memberCenter/handling/assign/pendingFirst/detail'
,
[
PENDING_SECOND
]:
'/memberCenter/handling/assign/pendingSecond/detail'
,
[
PENDING_SUBMIT
]:
'/memberCenter/handling/assign/pendingSubmit/detail'
,
[
PENDING_RECEIVE
]:
'/memberCenter/handling/assign/pendingReceive/detail'
,
}
\ No newline at end of file
src/pages/handling/components/Query/index.tsx
View file @
51bb4004
This diff is collapsed.
Click to expand it.
src/pages/handling/components/Query/schema.tsx
View file @
51bb4004
import
{
ISchema
}
from
'@formily/antd'
;
import
{
FORM_FILTER_PATH
}
from
'@/formSchema/const'
;
import
{
QUERY_SEARCH_NAME
,
TO_BE_ADD_QUERY_SEARCH_NAME
,
PENDING_FIRST_AND_SECOND_NOTICE
}
from
'./contants'
;
//
import { QUERY_SEARCH_NAME, TO_BE_ADD_QUERY_SEARCH_NAME, PENDING_FIRST_AND_SECOND_NOTICE } from './contants';
import
{
docTime
}
from
'../../common'
;
/**
...
...
@@ -14,7 +14,7 @@ export const querySchema: ISchema = {
type
:
'object'
,
'x-component'
:
'mega-layout'
,
properties
:
{
[
QUERY_SEARCH_NAME
]
:
{
noticeNo
:
{
type
:
'string'
,
'x-component'
:
'Search'
,
'x-component-props'
:
{
...
...
@@ -108,7 +108,7 @@ export const tobeAddQuerySchema: ISchema = {
children
:
'{{controllerBtns}}'
,
},
},
[
TO_BE_ADD_QUERY_SEARCH_NAME
]
:
{
noticeNo
:
{
type
:
'string'
,
'x-component'
:
'Search'
,
'x-component-props'
:
{
...
...
@@ -202,7 +202,7 @@ export const pendingFirstQuerySchema: ISchema = {
children
:
'{{batchUpdateBtn}}'
,
},
},
[
PENDING_FIRST_AND_SECOND_NOTICE
]
:
{
noticeNo
:
{
type
:
'string'
,
'x-component'
:
'Search'
,
'x-component-props'
:
{
...
...
src/pages/handling/components/ReceiptDeliveryDetails/index.tsx
View file @
51bb4004
import
React
,
{
useEffect
,
useState
}
from
'react'
;
import
{
Card
,
Tabs
,
Table
,
Radio
,
Row
,
Col
}
from
'antd'
;
import
_groupBy
from
'lodash/groupBy'
;
import
{
Card
,
Tabs
,
Table
,
Radio
,
Row
,
Col
,
Popconfirm
}
from
'antd'
;
import
styles
from
'./index.less'
;
import
classname
from
'classnames'
;
import
moment
from
'moment'
;
import
{
DELIEVER_AND_RECEIVE_INNER_STATUS
,
DELIEVER_AND_RECEIVE_INNER_STATUS_TEXT
,
DELIEVER_AND_RECEIVE_INNER_BTN_TEXT
}
from
'../../common'
;
import
{
PublicApi
}
from
'@/services/api'
;
import
{
FlagFilled
}
from
'@ant-design/icons'
;
const
TabPane
=
Tabs
.
TabPane
;
const
format
=
'YYYY-MM-DD HH:mm:ss'
;
const
TEXT_MAP
=
{
"deliverStatus_1"
:
1
,
"deliverStatus_2"
:
2
,
"receiveStatus_1"
:
3
,
"receiveStatus_2"
:
4
,
"receiptStatus_1"
:
5
,
"receiptStatus_2"
:
6
}
const
ReceiptDeliveryDetails
=
(
props
)
=>
{
const
{
statisticsColumn
,
statisticsData
,
pnoReceiveDeliverDetailDOList
=
[],
pnoReceiveDeliverDetailColumns
}
=
props
;
const
{
statisticsColumn
,
statisticsData
,
pnoReceiveDeliverDetailDOList
=
[],
pnoReceiveDeliverDetailColumns
,
outerStatus
}
=
props
;
const
[
activeBatch
,
setActiveBatch
]
=
useState
(
0
);
const
[
activeData
,
setActiveData
]
=
useState
<
any
>
({});
const
[
currentTarget
,
setCurrentTarget
]
=
useState
(
"deliverStatus"
);
useEffect
(()
=>
{
if
(
pnoReceiveDeliverDetailDOList
&&
pnoReceiveDeliverDetailDOList
.
length
>
0
)
{
...
...
@@ -23,6 +34,29 @@ const ReceiptDeliveryDetails = (props) => {
setActiveBatch
(
e
.
target
.
value
)
setActiveData
(
pnoReceiveDeliverDetailDOList
[
e
.
target
.
value
])
}
const
confirm
=
(
params
,
type
)
=>
{
props
.
handleConfirm
(
params
,
type
);
}
useEffect
(()
=>
{
// 小于等于5 取deliverStatus, 小于等于7, 取,receiveStatus, 大于7取receiptStatus
const
range
=
[
5
,
7
,
8
];
const
value
=
[
"deliverStatus"
,
"receiveStatus"
,
"receiptStatus"
];
let
flag
=
false
;
for
(
let
i
=
0
;
i
<
range
.
length
;
i
++
)
{
if
(
outerStatus
==
range
[
i
])
{
setCurrentTarget
(
value
[
i
]);
flag
=
true
;
break
;
}
}
// if(!flag) {
// setCurrentTarget("receiptStatus");
// }
},
[
outerStatus
])
return
(
<
Card
bodyStyle=
{
{
padding
:
'10px 24px 24px 24px'
}
}
>
<
Tabs
>
...
...
@@ -48,7 +82,7 @@ const ReceiptDeliveryDetails = (props) => {
<
Col
span=
{
6
}
>
<
div
className=
{
styles
.
detailItem
}
>
<
span
className=
{
styles
.
title
}
>
发货单号
</
span
>
<
a
className=
{
classname
(
styles
.
value
)
}
>
{
activeData
.
deliveryNo
}
</
a
>
<
a
className=
{
styles
.
value
}
>
{
activeData
.
deliveryNo
}
</
a
>
</
div
>
<
div
>
<
span
className=
{
styles
.
title
}
>
发货时间
</
span
>
...
...
@@ -78,13 +112,28 @@ const ReceiptDeliveryDetails = (props) => {
<
Col
span=
{
4
}
className=
{
styles
.
status
}
>
<
div
>
<
span
className=
{
styles
.
title
}
>
内部状态
</
span
>
<
span
className=
{
styles
.
value
}
>
{
activeData
.
deliverStatus
}
</
span
>
<
span
className=
{
styles
.
value
}
>
{
DELIEVER_AND_RECEIVE_INNER_STATUS_TEXT
[
TEXT_MAP
[
`${currentTarget}_${activeData[currentTarget]}`
]]
}
</
span
>
</
div
>
</
Col
>
<
Col
span=
{
2
}
className=
{
styles
.
action
}
>
<
div
>
确认回单
</
div
>
<
Popconfirm
title=
{
`是否${DELIEVER_AND_RECEIVE_INNER_BTN_TEXT[TEXT_MAP[`
$
{
currentTarget
}
_$
{
activeData
[
currentTarget
]}
`]]}`
}
onConfirm=
{
()
=>
confirm
(
{
produceNoticeOrderId
:
activeData
.
produceNoticeOrderId
,
pnoReceiveDeliverDetailId
:
activeData
.
id
},
`${outerStatus}_${activeData[currentTarget]}`
)
}
okText=
"是"
cancelText=
"否"
>
<
a
href=
"#"
>
{
DELIEVER_AND_RECEIVE_INNER_BTN_TEXT
[
TEXT_MAP
[
`${outerStatus}_${activeData[currentTarget]}`
]]
}
</
a
>
</
Popconfirm
>
</
Col
>
</
Row
>
</
div
>
...
...
src/pages/handling/components/WrapTable/index.tsx
deleted
100644 → 0
View file @
4aa8f5c1
import
React
from
'react'
import
{
Table
}
from
'antd'
import
moment
from
'moment'
;
import
DrawerProcessDetail
from
'../ProcessDetail/DrawerProcessDetail'
;
interface
Iprops
{
dataSource
:
any
[],
columns
?:
any
[]
}
const
WrapTable
:
React
.
FC
<
Iprops
>
=
(
props
)
=>
{
const
dataSource
=
props
.
dataSource
||
[]
return
(
<
Table
columns=
{
props
.
columns
||
[]
}
rowKey=
{
"id"
}
dataSource=
{
dataSource
}
/>
)
}
export
default
WrapTable
\ No newline at end of file
src/pages/handling/confirm/Query/contants.tsx
deleted
100644 → 0
View file @
4aa8f5c1
const
BASIC_PATH
=
'/memberCenter/handling/confirm'
// 生产通知单查询,确认生产通知单
export
const
PATH
=
`
${
BASIC_PATH
}
/query`
// 待提交审核生产通知单
export
const
PENDING_VIEW_PATH
=
`
${
BASIC_PATH
}
/pendingSubmit`
// 待提交审核生产通知单(一级)
export
const
PENDING_FIRST_VIEW_PATH
=
`
${
BASIC_PATH
}
/pendingFirst`
// 待提交审核生产通知单(二级)
export
const
PENDING_SECOND_VIEW_PATH
=
`
${
BASIC_PATH
}
/pendingSecond`
// 待确认生产通知单
export
const
PENDING_CONFIRM_PATH
=
`
${
BASIC_PATH
}
/pendingConfirm`
// 待新增加工发货单 ProcessingInvoiceTobeAdd
export
const
PROCESS_INVOICE_TO_BE_ADD_PATH
=
`
${
BASIC_PATH
}
/processingInvoiceTobeAdd`
// 待新增物流单 pendingAddLogistics
export
const
PENDING_ADD_LOGISTICS_PATH
=
`
${
BASIC_PATH
}
/pendingAddLogistics`
;
// 待收货生产通知单 ${BASIC_PATH}/pendingDelivered
export
const
PENDING_DELIVERED_PATH
=
`
${
BASIC_PATH
}
/pendingDelivered`
;
// 待确认回单生产通知单 pendingReceipt
export
const
PENDING_RECEIPT_PATH
=
`
${
BASIC_PATH
}
/pendingReceipt`
;
src/pages/handling/confirm/Query/index.tsx
View file @
51bb4004
...
...
@@ -10,57 +10,57 @@ import { createFormActions } from '@formily/antd';
import
{
FORM_FILTER_PATH
}
from
'@/formSchema/const'
;
import
{
useAsyncInitSelect
}
from
'@/formSchema/effects/useAsyncInitSelect'
;
import
{
ColumnsType
}
from
'antd/es/table'
;
import
{
DownOutlined
,
DeleteOutlined
}
from
'@ant-design/icons'
;
import
{
history
}
from
'umi'
;
import
{
querySchema
,
basicSchema
,
pendingFirstQuerySchema
}
from
'./schema'
;
import
{
PATH
,
PENDING_VIEW_PATH
,
PENDING_FIRST_VIEW_PATH
,
PENDING_SECOND_VIEW_PATH
,
PENDING_CONFIRM_PATH
,
PROCESS_INVOICE_TO_BE_ADD_PATH
,
//以上代表路径
// PENDING_ADD_LOGISTICS_PATH,
// PENDING_DELIVERED_PATH,
// PENDING_RECEIPT_PATH,
}
from
'./contants'
;
CONFIRM_QUERY
,
CONFIRM_PENDING_SUBMIT
,
CONFIRM_PENDING_FIRST
,
CONFIRM_PENDING_SECOND
,
CONFIRM_PENDING_CONFIRM
,
SUPPLIER_INNER_STATUS_COLOR
,
SUPPLIER_OUTER_STATUS_COLOR
}
from
'../../common'
import
{
timeRange
}
from
'@/utils'
;
import
{
useRowSelectionTable
}
from
'@/hooks/useRowSelectionTable'
;
import
moment
from
'moment'
;
import
{
Link
}
from
'umi'
import
StatusTag
from
'@/components/StatusTag'
;
import
ExamineModal
from
'../../components/ExamineModal'
;
const
formActions
=
createFormActions
();
// 根据 lastTypeParams, 获取相对应的schema
/**
* 该页面是 确认生产通知单5个页面公用的
* 生产通知单查询,
* 待提交生产生产通知单,
* 待审核(一级),
* 待审核(二级),
* 待确认生产通知单
* 根据他们的菜单路径获取schema, 获取列表页的service, 以及根据pathname跳到各自的详情页
*
*/
// 根据 菜单路径, 获取相对应的schema
export
const
SCHEMAS
=
{
[
PATH
]:
querySchema
,
[
PENDING_VIEW_PATH
]:
basicSchema
,
// 待新增生产通知
[
PENDING_FIRST_VIEW_PATH
]:
pendingFirstQuerySchema
,
[
PENDING_SECOND_VIEW_PATH
]:
pendingFirstQuerySchema
,
[
PENDING_CONFIRM_PATH
]:
basicSchema
,
// 带审核生产通知单
[
PROCESS_INVOICE_TO_BE_ADD_PATH
]:
basicSchema
,
// [PENDING_ADD_LOGISTICS_PATH]: basicSchema,
// [PENDING_DELIVERED_PATH]: basicSchema,
// [PENDING_RECEIPT_PATH]: basicSchema
[
CONFIRM_QUERY
]:
querySchema
,
[
CONFIRM_PENDING_SUBMIT
]:
basicSchema
,
// 待新增生产通知
[
CONFIRM_PENDING_FIRST
]:
pendingFirstQuerySchema
,
[
CONFIRM_PENDING_SECOND
]:
pendingFirstQuerySchema
,
[
CONFIRM_PENDING_CONFIRM
]:
basicSchema
,
// 带审核生产通知单
}
console
.
log
(
basicSchema
);
// 根据 path, 得到对应的列表页 service
const
SERVICES
=
{
[
PATH
]:
PublicApi
.
getEnhanceProcessAllList
,
[
PENDING_VIEW_PATH
]:
PublicApi
.
getEnhanceProcessToBeSubmitExamList
,
[
PENDING_FIRST_VIEW_PATH
]:
PublicApi
.
getEnhanceProcessToBeFirstExamList
,
[
PENDING_SECOND_VIEW_PATH
]:
PublicApi
.
getEnhanceProcessToBeSecondExamList
,
[
PENDING_CONFIRM_PATH
]:
PublicApi
.
getEnhanceProcessToBeConfirmList
,
// [PROCESS_INVOICE_TO_BE_ADD_PATH]: PublicApi.getEnhanceProcessToBeAddDeliveryList,
// [PENDING_ADD_LOGISTICS_PATH]: PublicApi.getEnhanceProcessToBeAddLogisticsList,
// [PENDING_RECEIPT_PATH]: PublicApi.getEnhanceProcessToBeConfirmReceiptList
[
CONFIRM_QUERY
]:
PublicApi
.
getEnhanceProcessAllList
,
[
CONFIRM_PENDING_SUBMIT
]:
PublicApi
.
getEnhanceProcessToBeSubmitExamList
,
[
CONFIRM_PENDING_FIRST
]:
PublicApi
.
getEnhanceProcessToBeFirstExamList
,
[
CONFIRM_PENDING_SECOND
]:
PublicApi
.
getEnhanceProcessToBeSecondExamList
,
[
CONFIRM_PENDING_CONFIRM
]:
PublicApi
.
getEnhanceProcessToBeConfirmList
,
}
const
Query
:
React
.
FC
<
{}
>
=
(
props
)
=>
{
const
pathname
=
history
.
location
.
pathname
;
const
[
selectRow
,
selectRowFns
]
=
useRowSelectionTable
({
customKey
:
'id'
});
const
[
batchLoading
,
setBatchLoading
]
=
useState
(
false
)
const
ref
=
useRef
<
any
>
({});
const
fetchData
=
useCallback
(
async
(
params
)
=>
{
...
...
@@ -104,8 +104,8 @@ const Query: React.FC<{}> = (props) => {
{
title
:
'外部状态'
,
dataIndex
:
'outerStatusName'
,
render
:
(
text
)
=>
{
return
<
StatusTag
title=
{
text
}
type=
"success"
></
StatusTag
>
render
:
(
text
,
record
:
any
)
=>
{
return
<
StatusTag
title=
{
text
}
type=
{
SUPPLIER_OUTER_STATUS_COLOR
[
record
.
outerStatus
]
}
></
StatusTag
>
}
},
{
...
...
@@ -113,7 +113,7 @@ const Query: React.FC<{}> = (props) => {
dataIndex
:
'innerStatusName'
,
render
:
(
text
,
record
:
any
)
=>
{
return
(
<
Badge
status=
{
"success"
}
text=
{
text
}
></
Badge
>
<
Badge
status=
{
SUPPLIER_INNER_STATUS_COLOR
[
record
.
processInnerStatus
]
||
'default'
}
text=
{
text
}
></
Badge
>
)
}
}
...
...
@@ -126,22 +126,10 @@ const Query: React.FC<{}> = (props) => {
const
url
=
pathname
+
"/detail"
;
console
.
log
(
url
);
const
actionMap
=
{
[
PENDING_VIEW_PATH
]:
<
Link
to
=
{
`
${
url
}
?id=
${
record
.
id
}
`
}
>
提交审核
<
/Link>
,
[
PENDING_FIRST_VIEW_PATH
]:
<
Link
to
=
{
`
${
url
}
?id=
${
record
.
id
}
`
}
>
审核
<
/Link>
,
[
PENDING_SECOND_VIEW_PATH
]:
<
Link
to
=
{
`
${
url
}
?id=
${
record
.
id
}
`
}
>
审核
<
/Link>
,
[
PENDING_CONFIRM_PATH
]:
<
Link
to
=
{
`
${
url
}
?id=
${
record
.
id
}
`
}
>
确认通知单
<
/Link>
,
// [PROCESS_INVOICE_TO_BE_ADD_PATH]: (
// record.status == 0
// ? <Link to={`/memberCenter/tranactionAbility/stockSellStorage/bills/add`}>新增加工发货单</Link>
// : <a>确认审核</a>
// ),
// [PENDING_ADD_LOGISTICS_PATH]: (
// record.status == 0
// ? <Link to={`/memberCenter/handling/confirm/createLogisticsOrder`}>新增物流单</Link>
// : <Link to={`/memberCenter/handling/confirm/createLogisticsOrder`}>查看物流单</Link>
// ),
// [PENDING_DELIVERED_PATH]: <Link to={`${url}?id=${record.id}`}>发货</Link>,
// [PENDING_RECEIPT_PATH]: <Link to={`${url}?id=${record.id}`}>确认回单</Link>
[
CONFIRM_PENDING_SUBMIT
]:
<
Link
to
=
{
`
${
url
}
?id=
${
record
.
id
}
`
}
>
提交审核
<
/Link>
,
[
CONFIRM_PENDING_FIRST
]:
<
Link
to
=
{
`
${
url
}
?id=
${
record
.
id
}
`
}
>
审核
<
/Link>
,
[
CONFIRM_PENDING_SECOND
]:
<
Link
to
=
{
`
${
url
}
?id=
${
record
.
id
}
`
}
>
审核
<
/Link>
,
[
CONFIRM_PENDING_CONFIRM
]:
<
Link
to
=
{
`
${
url
}
?id=
${
record
.
id
}
`
}
>
确认通知单
<
/Link>
,
}
return
(
<
Space
>
...
...
@@ -157,7 +145,7 @@ const Query: React.FC<{}> = (props) => {
const
batchUpdateBtn
=
()
=>
(
<
div
>
<
Button
onClick=
{
()
=>
handleSubmitToReviewOrDelete
()
}
>
<
Button
loading=
{
batchLoading
}
onClick=
{
()
=>
handleSubmitToReviewOrDelete
()
}
>
批量审核通过
</
Button
>
</
div
>
...
...
@@ -185,15 +173,17 @@ const Query: React.FC<{}> = (props) => {
return
;
}
const
BATCH_UPDATE_SERVICE
=
{
[
PENDING_FIRST_VIEW_PATH
]:
PublicApi
.
postEnhanceProcessToBeFirstExamBatchExamPass
,
[
PENDING_SECOND_VIEW_PATH
]:
PublicApi
.
postEnhanceProcessToBeSecondExamBatchExamPass
,
[
CONFIRM_PENDING_FIRST
]:
PublicApi
.
postEnhanceProcessToBeFirstExamBatchExamPass
,
[
CONFIRM_PENDING_SECOND
]:
PublicApi
.
postEnhanceProcessToBeSecondExamBatchExamPass
,
}
const
service
=
BATCH_UPDATE_SERVICE
[
pathname
];
if
(
service
)
{
setBatchLoading
(
true
);
service
({
idList
:
selectRowFns
.
selectedRowKeys
,
}).
then
(({
data
,
code
})
=>
{
setBatchLoading
(
false
);
if
(
code
===
1000
)
{
formActions
.
submit
();
}
...
...
@@ -227,7 +217,7 @@ const Query: React.FC<{}> = (props) => {
rowKey
:
'id'
,
rowSelection
:
selectRow
}
}
columns=
{
pathname
==
PATH
?
columns
:
hasActionColumn
}
columns=
{
pathname
==
CONFIRM_QUERY
?
columns
:
hasActionColumn
}
currentRef=
{
ref
}
fetchTableData=
{
(
params
:
any
)
=>
fetchData
(
params
)
}
controlRender=
{
...
...
src/pages/lxMall/components/Recommand/index.tsx
View file @
51bb4004
...
...
@@ -178,7 +178,7 @@ const Recommand: React.FC<RecommandPropsType> = (props) => {
link
=
`
${
GlobalConfig
.
ichannelRootRoute
}
/commodity/detail?id=
${
item
.
id
}
&channelId=
${
btoa
(
JSON
.
stringify
({
memberId
}))}
`
break
default
:
link
=
`/shop/commodity/detail?id=
${
item
.
id
}
&shopId=
${
btoa
(
JSON
.
stringify
({
memberId
:
item
.
memberId
}))}
`
link
=
`/shop/commodity/detail?id=
${
item
.
id
}
&shopId=
${
btoa
(
JSON
.
stringify
({
shopId
:
item
.
storeId
,
memberId
:
item
.
memberId
}))}
`
break
}
return
link
...
...
src/pages/lxMall/index/index.tsx
View file @
51bb4004
...
...
@@ -157,7 +157,7 @@ const MallIndex: React.FC<MallIndexPropsType> = (props) => {
}
<
FindMore
/>
<
Information
{
...
props
}
/>
</
div
>
</
div
>
)
}
...
...
src/pages/lxMall/layouts/LXShopLayout.tsx
View file @
51bb4004
...
...
@@ -57,12 +57,17 @@ const LXShopLayout: React.FC<LXMallLayoutPropsType> = (props) => {
useEffect
(()
=>
{
if
(
query
.
memberId
)
{
fetchShopInfo
(
query
.
memberId
)
fetchShopInfo
(
query
.
memberId
,
query
.
roleId
,
query
.
shopId
)
}
},
[
query
])
const
fetchShopInfo
=
(
memberId
)
=>
{
PublicApi
.
getTemplateShopFindShop
({
memberId
}).
then
(
res
=>
{
const
fetchShopInfo
=
(
memberId
,
roleId
,
storeId
)
=>
{
const
param
:
any
=
{
memberId
,
roleId
,
storeId
}
PublicApi
.
getTemplateShopFindShop
(
param
).
then
(
res
=>
{
if
(
res
.
code
===
1000
)
{
setShopInfo
(
res
.
data
)
}
...
...
@@ -86,7 +91,7 @@ const LXShopLayout: React.FC<LXMallLayoutPropsType> = (props) => {
const
menuData
=
basicInfo
.
menuData
?
basicInfo
.
menuData
.
filter
(
item
=>
!
item
.
redirect
)
:
[]
const
handleUpdate
=
()
=>
{
fetchShopInfo
(
query
.
memberId
)
fetchShopInfo
(
query
.
memberId
,
query
.
roleId
,
query
.
shopId
)
}
return
(
...
...
src/pages/lxMall/purchaseOrder/index.tsx
View file @
51bb4004
...
...
@@ -169,9 +169,7 @@ const PurchaseOrder: React.FC<PurchaseOrderPropsType> = (props) => {
defaultCheckedList
:
item
.
orderList
.
map
(
item
=>
item
.
id
)
})
})
console
.
log
(
result
)
setOrderList
(
result
)
// !initChecked && setCheckedList(result.map(item => item.id))
}
const
onCheckAllChange
=
(
e
:
any
)
=>
{
...
...
@@ -271,14 +269,13 @@ const PurchaseOrder: React.FC<PurchaseOrderPropsType> = (props) => {
})
}
}
}
const
handleBlur
=
(
count
:
number
,
id
:
number
)
=>
{
console
.
log
(
countState
,
count
,
"handleBlur"
)
}
/**
* 修改商品购买数量
* @param count
* @param id
*/
const
handleChangeFinishCount
=
(
count
,
id
)
=>
{
const
result
=
orderList
.
map
(
item
=>
{
item
.
orderList
=
item
.
orderList
.
map
(
childItem
=>
{
...
...
@@ -456,6 +453,10 @@ const PurchaseOrder: React.FC<PurchaseOrderPropsType> = (props) => {
})
}
/**
* 获取支付方式
* @param memberId
*/
const
getPayWayListByMemberId
=
(
memberId
:
number
)
=>
{
return
new
Promise
((
resolve
)
=>
{
if
(
!
memberId
)
{
...
...
@@ -530,13 +531,19 @@ const PurchaseOrder: React.FC<PurchaseOrderPropsType> = (props) => {
const
buyOrderlist
=
[]
const
selectOrderList
=
selectItem
.
orderList
.
filter
(
item
=>
selectItem
.
checkedList
.
includes
(
item
.
id
))
let
commonLogistics
=
{}
let
hasLogistics
=
false
let
logisticsInfo
=
{}
setConfirmLoading
(
true
)
const
purchaseIds
=
[]
for
(
const
item
of
selectOrderList
)
{
purchaseIds
.
push
(
item
.
id
)
productIds
.
push
(
item
.
commodityUnitPrice
.
id
)
commonLogistics
=
item
.
commodityUnitPrice
.
commodity
.
logistics
if
(
item
.
commodityUnitPrice
.
commodity
.
logistics
.
deliveryType
===
1
)
{
hasLogistics
=
true
logisticsInfo
=
item
.
commodityUnitPrice
.
commodity
.
logistics
}
const
buyCommodityInfo
:
any
=
{
id
:
item
.
commodityUnitPrice
.
id
,
purchaseId
:
item
.
id
,
...
...
@@ -553,6 +560,7 @@ const PurchaseOrder: React.FC<PurchaseOrderPropsType> = (props) => {
attribute
:
item
.
commodityUnitPrice
.
attributeAndValueList
,
stockCount
:
item
.
stockCount
||
0
}
if
(
item
.
commodityUnitPrice
.
commodity
.
isMemberPrice
)
{
buyCommodityInfo
.
memberDiscount
=
await
getMemberCredit
(
item
.
commodityUnitPrice
.
commodity
.
memberId
,
item
.
commodityUnitPrice
.
commodity
.
memberRoleId
)
}
...
...
@@ -564,7 +572,7 @@ const PurchaseOrder: React.FC<PurchaseOrderPropsType> = (props) => {
purchaseOrder
:
true
,
// 是否进货单下单
idList
:
purchaseIds
,
productType
:
(
layoutType
===
LAYOUT_TYPE
.
channel
||
layoutType
===
LAYOUT_TYPE
.
ichannel
)
?
2
:
1
,
logistics
:
commonLogistics
,
logistics
:
hasLogistics
?
logisticsInfo
:
commonLogistics
,
supplyMembersName
:
selectItem
.
shopname
,
supplyMembersId
:
selectItem
.
memberId
,
supplyMembersRoleId
:
selectItem
.
memberRoleId
,
...
...
src/pages/member/components/SincerityInfo/index.tsx
View file @
51bb4004
...
...
@@ -11,6 +11,7 @@ import {
import
{
QuestionCircleOutlined
,
}
from
'@ant-design/icons'
;
import
{
isJSONStr
}
from
'@/utils'
;
import
PolymericTable
from
'@/components/PolymericTable'
;
import
{
EditableColumns
}
from
'@/components/PolymericTable/interface'
;
import
{
Pie
}
from
'@/components/Charts'
;
...
...
@@ -116,17 +117,17 @@ export interface ComplaintProps {
interface
SincerityInfoProps
{
basicInfo
?:
BasicInfo
;
salesEstimateSum
?:
EstimateSum
;
/*
/*
*
交易评论历史记录
*/
fetchSalesList
?:
(
params
:
FetchParams
)
=>
Promise
<
{
data
:
SalesProps
[]
,
totalCount
:
number
}
>
;
afterEstimateSum
?:
EstimateSum
;
/*
/*
*
售后评论历史记录
*/
fetchAfterList
?:
(
params
:
FetchParams
)
=>
Promise
<
{
data
:
SalesProps
[]
,
totalCount
:
number
}
>
;
complaintSum
?:
ComplaintSum
;
/*
/*
*
投诉历史记录
*/
fetchComplaintList
?:
(
params
:
FetchParams
)
=>
Promise
<
{
data
:
ComplaintProps
[]
,
totalCount
:
number
}
>
;
...
...
@@ -277,11 +278,17 @@ const SincerityInfo: React.FC<SincerityInfoProps> = ({
title
:
'评价内容'
,
dataIndex
:
'comment'
,
align
:
'center'
,
ellipsis
:
true
,
},
{
title
:
'交易商品'
,
dataIndex
:
'product'
,
align
:
'center'
,
ellipsis
:
true
,
render
:
text
=>
{
const
product
=
isJSONStr
(
text
)
||
{};
return
product
.
productName
||
''
;
},
},
{
title
:
'评价方'
,
...
...
src/pages/member/memberMaintain/detailed/basicInfo.tsx
View file @
51bb4004
...
...
@@ -21,8 +21,16 @@ const MemberBasicInfo: React.FC<MemberBasicInfoProps> = ({
}
}
>
<
AuditProcess
outerVerifyCurrent=
{
memberMaintainInfo
?.
currentOuterStep
}
innerVerifyCurrent=
{
memberMaintainInfo
?.
currentInnerStep
}
outerVerifyCurrent=
{
memberMaintainInfo
&&
memberMaintainInfo
.
currentOuterStep
>
0
?
memberMaintainInfo
.
currentOuterStep
-
1
:
0
}
innerVerifyCurrent=
{
memberMaintainInfo
&&
memberMaintainInfo
.
currentInnerStep
>
0
?
memberMaintainInfo
.
currentInnerStep
-
1
:
0
}
outerVerifySteps=
{
memberMaintainInfo
?.
outerVerifySteps
}
innerVerifySteps=
{
memberMaintainInfo
?.
innerVerifySteps
}
/>
...
...
src/pages/member/memberPr1/components/DetailInfo/index.tsx
View file @
51bb4004
...
...
@@ -198,6 +198,16 @@ const DetailInfo: React.FC<DetailInfoProps> = ({
<
AuditProcess
outerVerifySteps=
{
memberInfo
?.
outerVerifySteps
}
innerVerifySteps=
{
memberInfo
?.
innerVerifySteps
}
outerVerifyCurrent=
{
memberInfo
&&
memberInfo
.
currentOuterStep
>
0
?
memberInfo
.
currentOuterStep
-
1
:
0
}
innerVerifyCurrent=
{
memberInfo
&&
memberInfo
.
currentInnerStep
>
0
?
memberInfo
.
currentInnerStep
-
1
:
0
}
/>
</
div
>
...
...
src/pages/member/memberPr2/components/DetailInfo/index.tsx
View file @
51bb4004
...
...
@@ -199,6 +199,16 @@ const DetailInfo: React.FC<DetailInfoProps> = ({
<
AuditProcess
outerVerifySteps=
{
memberInfo
?.
outerVerifySteps
}
innerVerifySteps=
{
memberInfo
?.
innerVerifySteps
}
outerVerifyCurrent=
{
memberInfo
&&
memberInfo
.
currentOuterStep
>
0
?
memberInfo
.
currentOuterStep
-
1
:
0
}
innerVerifyCurrent=
{
memberInfo
&&
memberInfo
.
currentInnerStep
>
0
?
memberInfo
.
currentInnerStep
-
1
:
0
}
/>
</
div
>
...
...
src/pages/member/memberPrConfirm/components/DetailInfo/index.tsx
View file @
51bb4004
...
...
@@ -214,6 +214,16 @@ const DetailInfo: React.FC<DetailInfoProps> = ({
<
AuditProcess
outerVerifySteps=
{
memberInfo
?.
outerVerifySteps
}
innerVerifySteps=
{
memberInfo
?.
innerVerifySteps
}
outerVerifyCurrent=
{
memberInfo
&&
memberInfo
.
currentOuterStep
>
0
?
memberInfo
.
currentOuterStep
-
1
:
0
}
innerVerifyCurrent=
{
memberInfo
&&
memberInfo
.
currentInnerStep
>
0
?
memberInfo
.
currentInnerStep
-
1
:
0
}
/>
</
div
>
...
...
src/pages/member/memberPrSubmit/components/DetailInfo/index.tsx
View file @
51bb4004
...
...
@@ -285,6 +285,16 @@ const DetailInfo: React.FC<DetailInfoProps> = ({
<
AuditProcess
outerVerifySteps=
{
memberInfo
?.
outerVerifySteps
}
innerVerifySteps=
{
memberInfo
?.
innerVerifySteps
}
outerVerifyCurrent=
{
memberInfo
&&
memberInfo
.
currentOuterStep
>
0
?
memberInfo
.
currentOuterStep
-
1
:
0
}
innerVerifyCurrent=
{
memberInfo
&&
memberInfo
.
currentInnerStep
>
0
?
memberInfo
.
currentInnerStep
-
1
:
0
}
/>
</
div
>
...
...
src/pages/member/memberQuery/detailed/basicInfo.tsx
View file @
51bb4004
...
...
@@ -22,7 +22,15 @@ const MemberBasicInfo: React.FC<MemberBasicInfoProps> = ({
marginBottom
:
24
,
}
}
>
<
Steps
style=
{
{
marginTop
:
30
}
}
progressDot
current=
{
memberMaintainInfo
?.
currentOuterStep
}
>
<
Steps
style=
{
{
marginTop
:
30
}
}
progressDot
current=
{
memberMaintainInfo
&&
memberMaintainInfo
.
currentOuterStep
>
0
?
memberMaintainInfo
.
currentOuterStep
-
1
:
0
}
>
{
memberMaintainInfo
.
outerVerifySteps
?
memberMaintainInfo
.
outerVerifySteps
.
map
((
item
,
index
)
=>
(
<
Steps
.
Step
key=
{
index
}
title=
{
item
.
roleName
}
description=
{
item
.
stepName
}
/>
))
:
null
}
...
...
src/pages/shop/shopInfo/index.tsx
View file @
51bb4004
...
...
@@ -231,7 +231,6 @@ const ShopInfo: React.FC<ShopInfoPropsType> = (props) => {
const
getMallItemAndSetUrl
=
(
mallId
)
=>
{
let
result
=
""
console
.
log
(
mallId
,
allMallList
,
"mallId"
)
const
mallItem
=
allMallList
.
filter
(
item
=>
item
.
id
===
mallId
)[
0
]
if
(
!
mallItem
)
{
return
""
...
...
@@ -244,10 +243,10 @@ const ShopInfo: React.FC<ShopInfoPropsType> = (props) => {
switch
(
mallItem
.
type
)
{
case
1
:
result
=
`
${
newSiteUrl
}
/shop?shopId=
${
btoa
(
JSON
.
stringify
({
shopId
:
shopInfo
.
id
,
memberId
:
shopInfo
.
memberId
}))}
`
result
=
`
${
newSiteUrl
}
/shop?shopId=
${
btoa
(
JSON
.
stringify
({
shopId
:
shopInfo
.
id
,
memberId
:
shopInfo
.
memberId
,
roleId
:
shopInfo
.
roleId
}))}
`
break
case
2
:
result
=
`
${
newSiteUrl
}
/shop/pointsMall?shopId=
${
btoa
(
JSON
.
stringify
({
shopId
:
shopInfo
.
id
,
memberId
:
shopInfo
.
memberId
}))}
`
result
=
`
${
newSiteUrl
}
/shop/pointsMall?shopId=
${
btoa
(
JSON
.
stringify
({
shopId
:
shopInfo
.
id
,
memberId
:
shopInfo
.
memberId
,
roleId
:
shopInfo
.
roleId
}))}
`
break
default
:
result
=
""
...
...
src/pages/transaction/goodsOffer/addEnquiryOrder/components/basicInfo.tsx
View file @
51bb4004
...
...
@@ -34,6 +34,7 @@ const BasicInfo: React.FC<queryProps> = (props) => {
const
[
visibleChannelMember
,
setVisibleChannelMember
]
=
useState
(
false
);
const
[
memberName
,
setmemberName
]
=
useState
<
any
>
();
const
[
memberId
,
setmemberId
]
=
useState
<
any
>
();
const
[
roleId
,
setroleId
]
=
useState
<
any
>
();
const
[
memberRowSelection
,
memberRowCtl
]
=
useRowSelectionTable
({
customKey
:
'memberId'
,
type
:
'radio'
});
const
handleOkAddMember
=
()
=>
{
setVisibleChannelMember
(
false
)
...
...
@@ -42,6 +43,7 @@ const BasicInfo: React.FC<queryProps> = (props) => {
memberId
:
memberRowCtl
.
selectRow
[
0
].
memberId
}
setmemberId
(
memberRowCtl
.
selectRow
[
0
].
memberId
)
setroleId
(
memberRowCtl
.
selectRow
[
0
].
roleId
)
setmemberName
(
memberRowCtl
.
selectRow
[
0
].
name
);
getMemberList
(
memberInfo
);
// 回传给父级
}
...
...
@@ -141,6 +143,7 @@ const BasicInfo: React.FC<queryProps> = (props) => {
})
setmemberName
(
editData
.
memberName
)
setmemberId
(
editData
.
memberId
)
setroleId
(
editData
.
roleId
)
}
},
[
editData
])
...
...
@@ -157,7 +160,7 @@ const BasicInfo: React.FC<queryProps> = (props) => {
</
Form
.
Item
>
<
Form
.
Item
label=
'被询价会员'
name=
'memberId'
rules=
{
[{
required
:
true
,
message
:
'请选择被询价会员'
}]
}
>
<
Search
disabled=
{
type
===
3
}
value=
{
memberName
?
memberName
:
undefined
}
readOnly
enterButton=
{
<><
LinkOutlined
/>
选择
</>
}
onSearch=
{
()
=>
setVisibleChannelMember
(
true
)
}
/>
{
memberName
&&
<
Button
type=
'link'
onClick=
{
()
=>
window
.
open
(
`/shop?shopId=${btoa(JSON.stringify({memberId}))}`
)
}
>
查看会员详情
</
Button
>
}
{
memberName
&&
<
Button
type=
'link'
onClick=
{
()
=>
window
.
open
(
`/shop?shopId=${btoa(JSON.stringify({memberId
, roleId
}))}`
)
}
>
查看会员详情
</
Button
>
}
</
Form
.
Item
>
<
Form
.
Item
label=
'询价单号'
name=
'orderNumber'
>
<
span
>
{
(
Object
.
keys
(
editData
).
length
>
0
&&
editData
.
inquiryListNo
)
?
editData
.
inquiryListNo
:
'-'
}
</
span
>
...
...
src/pages/transaction/stockSellStorage/bills/components/BillsForm/effects/useBusinessEffects.ts
View file @
51bb4004
...
...
@@ -2,7 +2,7 @@
* @Author: XieZhiXiong
* @Date: 2020-09-16 15:16:47
* @LastEditors: XieZhiXiong
* @LastEditTime: 2020-11-2
5 17:25:55
* @LastEditTime: 2020-11-2
6 11:10:39
* @Description: 联动逻辑相关
*/
import
{
Modal
}
from
'antd'
;
...
...
@@ -598,8 +598,7 @@ export const useBusinessEffects = (context, actions) => {
onFieldInputChange$
(
'invoicesDetailsRequests.*.product'
).
subscribe
(
fieldState
=>
{
const
{
name
,
originAsyncData
,
value
}
=
fieldState
;
const
current
=
originAsyncData
.
find
(
item
=>
item
.
productId
===
value
);
console
.
log
(
'current'
,
current
)
const
invoicesTypeIdVal
=
getFieldValue
(
'invoicesTypeId'
);
// 取消选择
if
(
!
value
)
{
...
...
@@ -679,20 +678,63 @@ export const useBusinessEffects = (context, actions) => {
);
setFieldState
(
FormPath
.
transform
(
name
,
/
\d
/
,
$1
=>
{
return
`invoicesDetailsRequests.
${
$1
}
.amount`
}),
state
=>
{
state
.
value
=
current
.
price
?
`¥
${(
current
.
purchaseCount
*
current
.
price
).
toFixed
(
2
)}
`
:
null
;
}
);
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
;
}
);
break
;
}
// 加工入库单、加工发货单
case
DOC_TYPE_PROCESS_RECEIPT
:
case
DOC_TYPE_PROCESS_INVOICE
:
{
// 设置单据数量,取加工数量
setFieldState
(
FormPath
.
transform
(
name
,
/
\d
/
,
$1
=>
{
return
`invoicesDetailsRequests.
${
$1
}
.am
ount`
return
`invoicesDetailsRequests.
${
$1
}
.productC
ount`
}),
state
=>
{
state
.
value
=
current
.
price
?
`¥
${(
current
.
purchaseCount
*
current
.
price
).
toFixed
(
2
)}
`
:
null
;
state
.
value
=
current
.
processNum
;
}
);
break
;
}
// 退货发货单、退货入库单
case
DOC_TYPE_RETURN_INVOICE
:
case
DOC_TYPE_RETURN_RECEIPT
:
{
break
;
}
// 换货发货单、换货入库单
case
DOC_TYPE_EXCHANGE_INVOICE
:
case
DOC_TYPE_EXCHANGE_RECEIPT
:
{
break
;
}
default
:
{
break
;
}
}
// 额外的数据
setFieldState
(
...
...
@@ -750,6 +792,7 @@ export const useBusinessEffects = (context, actions) => {
// 关联明细 商品数量 联动计算商品金额
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`
...
...
@@ -764,10 +807,16 @@ export const useBusinessEffects = (context, actions) => {
);
const
current
=
originAsyncData
?
originAsyncData
.
find
(
item
=>
item
.
productId
===
goodId
)
:
null
;
console
.
log
(
'current'
,
current
)
if
(
!
current
)
{
return
;
}
switch
(
invoicesTypeIdVal
)
{
// 采购入库单、销售发货单
case
DOC_TYPE_PURCHASE_RECEIPT
:
case
DOC_TYPE_SALES_INVOICE
:
{
if
(
+
value
>
current
.
purchaseCount
)
{
Modal
.
destroyAll
();
Modal
.
confirm
({
...
...
@@ -777,6 +826,43 @@ export const useBusinessEffects = (context, actions) => {
cancelText
:
'取消'
,
});
}
break
;
}
// 加工入库单、加工发货单
case
DOC_TYPE_PROCESS_RECEIPT
:
case
DOC_TYPE_PROCESS_INVOICE
:
{
if
(
+
value
>
current
.
processNum
)
{
Modal
.
destroyAll
();
Modal
.
confirm
({
title
:
'提示'
,
content
:
'单据数量已超过加工数量'
,
okText
:
'确认'
,
cancelText
:
'取消'
,
});
}
break
;
}
// 退货发货单、退货入库单
case
DOC_TYPE_RETURN_INVOICE
:
case
DOC_TYPE_RETURN_RECEIPT
:
{
break
;
}
// 换货发货单、换货入库单
case
DOC_TYPE_EXCHANGE_INVOICE
:
case
DOC_TYPE_EXCHANGE_RECEIPT
:
{
break
;
}
default
:
{
break
;
}
}
setFieldState
(
FormPath
.
transform
(
name
,
/
\d
/
,
$1
=>
{
...
...
src/pages/transaction/stockSellStorage/bills/components/BillsForm/index.tsx
View file @
51bb4004
...
...
@@ -10,11 +10,13 @@ import { SaveOutlined, PlusOutlined } from '@ant-design/icons';
import
{
createFormActions
,
FormEffectHooks
}
from
'@formily/antd'
;
import
{
useRowSelectionTable
}
from
'@/hooks/useRowSelectionTable'
;
import
{
PublicApi
}
from
'@/services/api'
;
import
{
useLinkageUtils
}
from
'@/utils/formEffectUtils'
;
import
ReutrnEle
from
'@/components/ReturnEle'
;
import
NiceForm
from
'@/components/NiceForm'
;
import
ModalTable
from
'@/components/ModalTable'
;
import
Search
from
'@/components/NiceForm/components/Search'
;
import
Submit
from
'@/components/NiceForm/components/Submit'
;
import
SearchSelect
from
'@/components/NiceForm/components/SearchSelect'
;
import
{
useStateFilterSearchLinkageEffect
}
from
'@/formSchema/effects/useFilterSearch'
;
import
{
FORM_FILTER_PATH
}
from
'@/formSchema/const'
;
import
{
useAsyncSelect
}
from
'@/formSchema/effects/useAsyncSelect'
;
...
...
@@ -42,6 +44,7 @@ import { createEffects } from './effects';
const
addSchemaAction
=
createFormActions
();
const
{
onFormInputChange$
,
onFormInit$
,
}
=
FormEffectHooks
;
interface
BillsFormProps
{
...
...
@@ -97,6 +100,28 @@ const BillsForm: React.FC<BillsFormProps> = ({
},
]
// 获取品牌
const
fetchBrand
=
async
(
name
=
''
)
=>
{
const
res
=
await
PublicApi
.
getProductSelectGetSelectBrand
({
name
,
});
if
(
res
.
code
===
1000
)
{
return
res
.
data
;
}
return
[];
}
// 获取会员品类
const
fetchCustomerCategory
=
async
(
name
=
''
)
=>
{
const
res
=
await
PublicApi
.
getProductSelectGetSelectCustomerCategory
({
name
,
});
if
(
res
.
code
===
1000
)
{
return
res
.
data
;
}
return
[];
}
// 获取单据详情
const
getBillInfo
=
()
=>
{
if
(
!
id
)
{
...
...
@@ -874,14 +899,46 @@ const BillsForm: React.FC<BillsFormProps> = ({
components
:
{
Search
,
Submit
,
SearchSelect
,
},
effects
:
(
$
,
actions
)
=>
{
const
linkage
=
useLinkageUtils
();
useStateFilterSearchLinkageEffect
(
$
,
actions
,
'name'
,
FORM_FILTER_PATH
,
);
useAsyncSelect
(
'brandId'
,
fetchBrand
,
[
'name'
,
'id'
]);
useAsyncSelect
(
'customerCategoryId'
,
fetchCustomerCategory
,
[
'name'
,
'id'
]);
onFormInit$
().
subscribe
(()
=>
{
// 初始化远程检索逻辑
linkage
.
componentProps
(
'customerCategoryId'
,
{
onSearch
:
async
value
=>
{
linkage
.
loading
(
'customerCategoryId'
);
const
dataSource
=
await
fetchCustomerCategory
(
value
);
linkage
.
enum
(
'customerCategoryId'
,
dataSource
.
map
(
item
=>
({
label
:
item
.
name
,
value
:
item
.
id
,
})));
linkage
.
loaded
(
'customerCategoryId'
);
},
});
// 初始化远程检索逻辑
linkage
.
componentProps
(
'brandId'
,
{
onSearch
:
async
value
=>
{
linkage
.
loading
(
'brandId'
);
const
dataSource
=
await
fetchCustomerCategory
(
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 @
51bb4004
...
...
@@ -779,24 +779,24 @@ export const goodsSearchSchema: ISchema = {
},
customerCategoryId
:
{
type
:
'string'
,
'x-component'
:
'SearchSelect'
,
enum
:
[]
,
'x-component-props'
:
{
placeholder
:
'品类'
,
fetchSearch
:
PublicApi
.
getProductSelectGetSelectCustomerCategory
,
style
:
{
width
:
'100%'
,
}
showSearch
:
true
,
defaultActiveFirstOption
:
false
,
showArrow
:
true
,
filterOption
:
false
,
},
},
brandId
:
{
type
:
'string'
,
'x-component'
:
'SearchSelect'
,
enum
:
[]
,
'x-component-props'
:
{
placeholder
:
'品牌'
,
fetchSearch
:
PublicApi
.
getProductSelectGetSelectBrand
,
style
:
{
width
:
'100%'
,
}
showSearch
:
true
,
defaultActiveFirstOption
:
false
,
showArrow
:
true
,
filterOption
:
false
,
},
},
submit
:
{
...
...
src/pages/transaction/supplierEvaluation/unevaluated/evaluate/schema/index.ts
View file @
51bb4004
...
...
@@ -2,7 +2,7 @@
* @Author: XieZhiXiong
* @Date: 2020-09-23 17:00:24
* @LastEditors: XieZhiXiong
* @LastEditTime: 2020-1
0-27 16:59:38
* @LastEditTime: 2020-1
1-26 14:52:22
* @Description:
*/
import
{
ISchema
}
from
'@formily/antd'
;
...
...
@@ -64,7 +64,7 @@ export const evaluateSchema: ISchema = {
},
},
picture
:
{
type
:
'
string
'
,
type
:
'
array
'
,
title
:
'图片'
,
'x-component'
:
'Upload'
,
'x-component-props'
:
{
...
...
src/utils/index.tsx
View file @
51bb4004
...
...
@@ -443,7 +443,9 @@ export interface FileData {
url
:
string
;
};
// 初始化 Upload 数据
/**
* 初始化 Upload 数据
*/
export
function
normalizeFiledata
(
url
:
string
):
FileData
export
function
normalizeFiledata
(
url
:
any
):
any
{
if
(
!
url
)
{
...
...
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