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
90e2f9eb
Commit
90e2f9eb
authored
Nov 18, 2020
by
前端-钟卫鹏
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'dev' into test
parents
e6ec9c32
a127e538
Hide whitespace changes
Inline
Side-by-side
Showing
20 changed files
with
658 additions
and
324 deletions
+658
-324
handlingRoute.ts
config/routes/handlingRoute.ts
+39
-2
package.json
package.json
+1
-1
menu.ts
src/locales/zh-CN/menu.ts
+4
-0
index.tsx
src/pages/handling/assign/add/index.tsx
+2
-2
index.tsx
src/pages/handling/assign/detail/index.tsx
+63
-18
index.tsx
src/pages/handling/common/index.tsx
+5
-0
index.tsx
src/pages/handling/components/DeliveryInformation/index.tsx
+7
-3
index.tsx
src/pages/handling/components/ExamineModal/index.tsx
+63
-0
index.tsx
src/pages/handling/components/ModalContainer/index.tsx
+0
-34
index.tsx
src/pages/handling/components/ProcessDetail/index.tsx
+2
-3
index.tsx
src/pages/handling/components/ProcessOrder/index.tsx
+76
-79
schema.tsx
src/pages/handling/components/ProcessOrder/schema.tsx
+176
-0
contants.tsx
src/pages/handling/components/Query/contants.tsx
+5
-4
Container.tsx
src/pages/home/components/Centers/Container.tsx
+39
-4
FundCenter.tsx
src/pages/home/components/Centers/FundCenter.tsx
+50
-96
ProductCenter.tsx
src/pages/home/components/Centers/ProductCenter.tsx
+40
-27
TradeCenter.tsx
src/pages/home/components/Centers/TradeCenter.tsx
+47
-43
useOrderDetail.tsx
...ages/transaction/_public/order/effects/useOrderDetail.tsx
+14
-4
index.tsx
src/pages/transaction/purchaseOrder/orderCollect/index.tsx
+1
-1
usePaymentInfo.tsx
...ction/purchaseOrder/orderCollect/model/usePaymentInfo.tsx
+24
-3
No files found.
config/routes/handlingRoute.ts
View file @
90e2f9eb
...
@@ -46,7 +46,14 @@ const HandlingRoute = {
...
@@ -46,7 +46,14 @@ const HandlingRoute = {
component
:
'@/pages/handling/assign/add'
,
component
:
'@/pages/handling/assign/add'
,
hideInMenu
:
true
hideInMenu
:
true
},
},
// 指派生产通知单 -> 待新增生产通知单详情
{
path
:
'/memberCenter/handling/assign/tobeAddQuery/detail'
,
name
:
'assignProductionDetail'
,
icon
:
'smile'
,
component
:
'@/pages/handling/assign/detail'
,
hideInMenu
:
true
},
// 指派生产通知单 -> 待审核通知单(一级)
// 指派生产通知单 -> 待审核通知单(一级)
{
{
path
:
'/memberCenter/handling/assign/pendingFirst'
,
path
:
'/memberCenter/handling/assign/pendingFirst'
,
...
@@ -54,6 +61,13 @@ const HandlingRoute = {
...
@@ -54,6 +61,13 @@ const HandlingRoute = {
icon
:
'smile'
,
icon
:
'smile'
,
component
:
'@/pages/handling/components/Query'
component
:
'@/pages/handling/components/Query'
},
},
{
path
:
'/memberCenter/handling/assign/pendingFirst/detail'
,
name
:
'examineFirstDetail'
,
icon
:
'smile'
,
component
:
'@/pages/handling/assign/detail'
,
hideInMenu
:
true
,
},
// 指派生产通知单 -> 待审核通知单(二级)
// 指派生产通知单 -> 待审核通知单(二级)
{
{
path
:
'/memberCenter/handling/assign/pendingSecond'
,
path
:
'/memberCenter/handling/assign/pendingSecond'
,
...
@@ -61,6 +75,13 @@ const HandlingRoute = {
...
@@ -61,6 +75,13 @@ const HandlingRoute = {
icon
:
'smile'
,
icon
:
'smile'
,
component
:
'@/pages/handling/components/Query'
component
:
'@/pages/handling/components/Query'
},
},
{
path
:
'/memberCenter/handling/assign/pendingSecond/detail'
,
name
:
'examineSecondDetail'
,
icon
:
'smile'
,
component
:
'@/pages/handling/assign/detail'
,
hideInMenu
:
true
,
},
// 指派生产通知单 -> 待提交生产通知单
// 指派生产通知单 -> 待提交生产通知单
{
{
path
:
'/memberCenter/handling/assign/pendingSubmit'
,
path
:
'/memberCenter/handling/assign/pendingSubmit'
,
...
@@ -68,6 +89,14 @@ const HandlingRoute = {
...
@@ -68,6 +89,14 @@ const HandlingRoute = {
icon
:
'smile'
,
icon
:
'smile'
,
component
:
'@/pages/handling/components/Query'
component
:
'@/pages/handling/components/Query'
},
},
// 指派生产通知单 -> 待提交生产通知单 详情
{
path
:
'/memberCenter/handling/assign/pendingSubmit/detail'
,
name
:
'pendingSubmitDetail'
,
icon
:
'smile'
,
component
:
'@/pages/handling/assign/detail'
,
hideInMenu
:
true
,
},
// 指派生产通知单 -> 待新增加工入库单
// 指派生产通知单 -> 待新增加工入库单
{
{
path
:
'/memberCenter/handling/assign/pendingAddProcessing'
,
path
:
'/memberCenter/handling/assign/pendingAddProcessing'
,
...
@@ -81,7 +110,15 @@ const HandlingRoute = {
...
@@ -81,7 +110,15 @@ const HandlingRoute = {
path
:
'/memberCenter/handling/assign/pendingReceive'
,
path
:
'/memberCenter/handling/assign/pendingReceive'
,
name
:
'toBeRecieve'
,
name
:
'toBeRecieve'
,
icon
:
'smile'
,
icon
:
'smile'
,
component
:
'@/pages/handling//components/Query'
component
:
'@/pages/handling/components/Query'
},
// 指派生产通知单 -> 待收货生产通知单
{
path
:
'/memberCenter/handling/assign/pendingReceive/detail'
,
name
:
'toBeRecieveDetail'
,
icon
:
'smile'
,
component
:
'@/pages/handling/assign/detail'
,
hideInMenu
:
true
,
},
},
// 指派生产通知单 -> 新建加工入库单
// 指派生产通知单 -> 新建加工入库单
{
{
...
...
package.json
View file @
90e2f9eb
...
@@ -18,7 +18,7 @@
...
@@ -18,7 +18,7 @@
"prettier"
:
"prettier --write '**/*.{js,jsx,tsx,ts,less,md,json}'"
,
"prettier"
:
"prettier --write '**/*.{js,jsx,tsx,ts,less,md,json}'"
,
"test"
:
"umi-test"
,
"test"
:
"umi-test"
,
"test:coverage"
:
"umi-test --coverage"
,
"test:coverage"
:
"umi-test --coverage"
,
"start:cross"
:
"cross-env SITE_ID=352 USE_ROUTE_CONFIG=false SOCKET_URL=ws://10.0.0.25:
81
00 yarn start"
,
"start:cross"
:
"cross-env SITE_ID=352 USE_ROUTE_CONFIG=false SOCKET_URL=ws://10.0.0.25:
94
00 yarn start"
,
"start:scm"
:
"cross-env SITE_ID=1 BACK_GATEWAY=http://lingxi-scm.wg.shushangyun.com USE_ROUTE_CONFIG=false SOCKET_URL=ws://lingxi-scm.wg.shushangyun.com yarn start"
,
"start:scm"
:
"cross-env SITE_ID=1 BACK_GATEWAY=http://lingxi-scm.wg.shushangyun.com USE_ROUTE_CONFIG=false SOCKET_URL=ws://lingxi-scm.wg.shushangyun.com yarn start"
,
"start:url"
:
"cross-env SITE_ID=1 BACK_GATEWAY=http://lingxi-all.wg.shushangyun.com USE_ROUTE_CONFIG=true SOCKET_URL=ws://lingxi-all.wg.shushangyun.com yarn start"
,
"start:url"
:
"cross-env SITE_ID=1 BACK_GATEWAY=http://lingxi-all.wg.shushangyun.com USE_ROUTE_CONFIG=true SOCKET_URL=ws://lingxi-all.wg.shushangyun.com yarn start"
,
"start:10"
:
"cross-env SITE_ID=1 BACK_GATEWAY=http://10.0.0.10:8100 USE_ROUTE_CONFIG=true SOCKET_URL=ws://10.0.0.10:8100 yarn start"
"start:10"
:
"cross-env SITE_ID=1 BACK_GATEWAY=http://10.0.0.10:8100 USE_ROUTE_CONFIG=true SOCKET_URL=ws://10.0.0.10:8100 yarn start"
...
...
src/locales/zh-CN/menu.ts
View file @
90e2f9eb
...
@@ -462,11 +462,15 @@ export default {
...
@@ -462,11 +462,15 @@ export default {
'menu.handling.assign.assignProductionAdd'
:
'新建生产通知单'
,
'menu.handling.assign.assignProductionAdd'
:
'新建生产通知单'
,
'menu.handling.assign.assignProductionDetail'
:
'生产通知单详情'
,
'menu.handling.assign.assignProductionDetail'
:
'生产通知单详情'
,
'menu.handling.assign.examineFirst'
:
'待审核生产通知单(一级)'
,
'menu.handling.assign.examineFirst'
:
'待审核生产通知单(一级)'
,
'menu.handling.assign.examineFirstDetail'
:
'待审核生产通知单(一级)详情'
,
'menu.handling.assign.examineSecond'
:
'待审核生产通知单(二级)'
,
'menu.handling.assign.examineSecond'
:
'待审核生产通知单(二级)'
,
'menu.handling.assign.examineSecondDetail'
:
'待审核生产通知单(二级)详情'
,
'menu.handling.assign.toBeSubmit'
:
'待提交生产通知单'
,
'menu.handling.assign.toBeSubmit'
:
'待提交生产通知单'
,
'menu.handling.assign.processStock'
:
'待新增加工入库单'
,
'menu.handling.assign.processStock'
:
'待新增加工入库单'
,
'menu.handling.assign.toBeRecieve'
:
'待收货生产通知单'
,
'menu.handling.assign.toBeRecieve'
:
'待收货生产通知单'
,
'menu.handling.assign.createProcessStock'
:
'新建加工入库单'
,
'menu.handling.assign.createProcessStock'
:
'新建加工入库单'
,
'menu.handling.assign.pendingSubmitDetail'
:
'待提交生产通知单详情'
,
'menu.handling.assign.toBeRecieveDetail'
:
'待收货生产通知单详情'
,
'menu.handling.confirm'
:
'确认生产通知单'
,
'menu.handling.confirm'
:
'确认生产通知单'
,
'menu.handling.confirm.confirmProductionQuery'
:
'生产通知单查询'
,
'menu.handling.confirm.confirmProductionQuery'
:
'生产通知单查询'
,
'menu.handling.confirm.pendingSubmit'
:
'待提交生产通知单'
,
'menu.handling.confirm.pendingSubmit'
:
'待提交生产通知单'
,
...
...
src/pages/handling/assign/add/index.tsx
View file @
90e2f9eb
...
@@ -46,8 +46,8 @@ const Add: React.FC<{}> = () => {
...
@@ -46,8 +46,8 @@ const Add: React.FC<{}> = () => {
const
noticesDetailColumn
=
()
=>
{
const
noticesDetailColumn
=
()
=>
{
return
[
return
[
{
title
:
'订单号'
,
dataIndex
:
'order
Id
'
},
{
title
:
'订单号'
,
dataIndex
:
'order
No
'
},
{
title
:
'商品ID'
,
dataIndex
:
'
i
d'
},
{
title
:
'商品ID'
,
dataIndex
:
'
commodityI
d'
},
{
title
:
'商品名称'
,
dataIndex
:
'name'
},
{
title
:
'商品名称'
,
dataIndex
:
'name'
},
{
title
:
'品类'
,
dataIndex
:
'customerCategoryName'
},
{
title
:
'品类'
,
dataIndex
:
'customerCategoryName'
},
{
title
:
'品牌'
,
dataIndex
:
'brandName'
},
{
title
:
'品牌'
,
dataIndex
:
'brandName'
},
...
...
src/pages/handling/assign/detail/index.tsx
View file @
90e2f9eb
...
@@ -2,7 +2,7 @@ import React, {useState, useEffect} from 'react';
...
@@ -2,7 +2,7 @@ import React, {useState, useEffect} from 'react';
import
{
PageHeaderWrapper
}
from
'@ant-design/pro-layout'
;
import
{
PageHeaderWrapper
}
from
'@ant-design/pro-layout'
;
import
{
history
}
from
'umi'
;
import
{
history
}
from
'umi'
;
import
AvatarWrap
from
'@/components/AvatarWrap'
;
import
AvatarWrap
from
'@/components/AvatarWrap'
;
import
{
PageHeader
,
Descriptions
,
Card
,
Tabs
,
Space
,
Row
,
Col
}
from
'antd'
;
import
{
PageHeader
,
Descriptions
,
Card
,
Tabs
,
Space
,
Row
,
Col
,
Button
}
from
'antd'
;
import
Circulation
from
'../../components/Circulation'
;
import
Circulation
from
'../../components/Circulation'
;
import
WrapTable
from
'../../components/WrapTable'
;
import
WrapTable
from
'../../components/WrapTable'
;
import
OtherRequirement
from
'../../components/OtherRequirement'
;
import
OtherRequirement
from
'../../components/OtherRequirement'
;
...
@@ -13,22 +13,56 @@ import StatusTag from '@/components/StatusTag';
...
@@ -13,22 +13,56 @@ import StatusTag from '@/components/StatusTag';
import
DeliveryInfomation
from
'../../components/DeliveryInformation'
;
import
DeliveryInfomation
from
'../../components/DeliveryInformation'
;
import
moment
from
'moment'
;
import
moment
from
'moment'
;
import
{
columns
,
innerWorkFlowRecordColumn
,
outerWorkflowRecordsColumn
}
from
'./columns'
;
import
{
columns
,
innerWorkFlowRecordColumn
,
outerWorkflowRecordsColumn
}
from
'./columns'
;
import
ExamineModal
from
'../../components/ExamineModal'
;
const
SERVICE_MAP
=
{
'/memberCenter/handling/assign/query/detail'
:
PublicApi
.
getEnhanceSupplierAllDetails
,
'/memberCenter/handling/assign/tobeAddQuery/detail'
:
PublicApi
.
getEnhanceSupplierToBeAddDetails
,
'/memberCenter/handling/assign/pendingFirst/detail'
:
PublicApi
.
getEnhanceSupplierToBeFirstExamDetails
,
'/memberCenter/handling/assign/pendingSecond/detail'
:
PublicApi
.
getEnhanceSupplierToBeSecondExamDetails
,
'/memberCenter/handling/assign/pendingSubmit/detail'
:
PublicApi
.
getEnhanceSupplierToBeSubmitDetails
,
'/memberCenter/handling/assign/pendingReceive/detail'
:
PublicApi
.
getEnhanceSupplierToBeReceiveDetails
,
}
/**
* 审核链接
*/
const
EXAM_SERVICE
=
{
'/memberCenter/handling/assign/pendingFirst/detail'
:
PublicApi
.
postEnhanceSupplierToBeFirstExamExam
,
'/memberCenter/handling/assign/pendingSecond/detail'
:
PublicApi
.
postEnhanceSupplierToBeSecondExamExam
}
const
{
TabPane
}
=
Tabs
;
const
{
TabPane
}
=
Tabs
;
const
Detail
:
React
.
FC
<
{}
>
=
()
=>
{
const
Detail
:
React
.
FC
<
{}
>
=
()
=>
{
const
[
info
,
setInfo
]
=
useState
<
any
>
({})
const
[
info
,
setInfo
]
=
useState
<
any
>
({})
const
{
id
}
=
usePageStatus
();
const
{
id
}
=
usePageStatus
();
const
pathname
=
history
.
location
.
pathname
;
useEffect
(()
=>
{
useEffect
(()
=>
{
if
(
id
)
{
if
(
id
)
{
PublicApi
.
getEnhanceSupplierAllDetails
({
id
:
id
})
SERVICE_MAP
[
pathname
]
({
id
:
id
})
.
then
(({
data
,
code
})
=>
{
.
then
(({
data
,
code
})
=>
{
if
(
code
===
1000
)
{
if
(
code
===
1000
)
{
setInfo
(
data
);
setInfo
(
data
);
}
}
})
})
}
}
},
[
id
])
},
[
id
]);
// 审核
const
examOnOk
=
({
text
,
status
})
=>
{
const
postData
=
{
id
:
id
,
status
:
status
,
cause
:
text
}
EXAM_SERVICE
[
pathname
](
postData
)
.
then
(({
code
,
data
})
=>
{
if
(
code
==
1000
)
{
history
.
go
(
-
1
)
}
})
}
return
(
return
(
<
PageHeaderWrapper
<
PageHeaderWrapper
...
@@ -48,20 +82,28 @@ const Detail: React.FC<{}> = () => {
...
@@ -48,20 +82,28 @@ const Detail: React.FC<{}> = () => {
/>
/>
}
}
>
>
<
Descriptions
<
Row
>
column=
{
3
}
<
Col
span=
{
22
}
>
style=
{
{
padding
:
'0 32px'
,
fontWeight
:
400
}
}
<
Descriptions
colon=
{
false
}
column=
{
3
}
>
style=
{
{
padding
:
'0 32px'
,
fontWeight
:
400
}
}
<
Descriptions
.
Item
label=
"通知单摘要:"
>
{
info
?.
summary
}
</
Descriptions
.
Item
>
colon=
{
false
}
<
Descriptions
.
Item
label=
"加工企业:"
>
{
info
?.
processName
}
</
Descriptions
.
Item
>
>
<
Descriptions
.
Item
label=
"单据时间:"
>
{
info
&&
info
.
createTime
&&
moment
(
info
.
createTime
).
format
(
'YYYY-MM-DD'
)
||
null
}
</
Descriptions
.
Item
>
<
Descriptions
.
Item
label=
"通知单摘要:"
>
{
info
?.
summary
}
</
Descriptions
.
Item
>
<
Descriptions
.
Item
label=
"通知单来源:"
>
{
info
?.
source
==
'1'
?
'订单加工'
:
'商品加工'
}
</
Descriptions
.
Item
>
<
Descriptions
.
Item
label=
"加工企业:"
>
{
info
?.
processName
}
</
Descriptions
.
Item
>
<
Descriptions
.
Item
label=
"外部状态:"
>
<
Descriptions
.
Item
label=
"单据时间:"
>
{
info
&&
info
.
createTime
&&
moment
(
info
.
createTime
).
format
(
'YYYY-MM-DD'
)
||
null
}
</
Descriptions
.
Item
>
<
StatusTag
type=
"success"
title=
{
info
.
outerStatusName
}
/>
<
Descriptions
.
Item
label=
"通知单来源:"
>
{
info
?.
source
==
'1'
?
'订单加工'
:
'商品加工'
}
</
Descriptions
.
Item
>
</
Descriptions
.
Item
>
<
Descriptions
.
Item
label=
"外部状态:"
>
<
Descriptions
.
Item
label=
"内部状态:"
>
{
info
.
innerStatusName
}
</
Descriptions
.
Item
>
<
StatusTag
type=
"success"
title=
{
info
.
outerStatusName
}
/>
</
Descriptions
>
</
Descriptions
.
Item
>
<
Descriptions
.
Item
label=
"内部状态:"
>
{
info
.
innerStatusName
}
</
Descriptions
.
Item
>
</
Descriptions
>
</
Col
>
<
Col
span=
{
2
}
>
<
ExamineModal
onOk=
{
examOnOk
}
/>
</
Col
>
</
Row
>
</
PageHeader
>
</
PageHeader
>
</>
</>
}
}
...
@@ -96,6 +138,9 @@ const Detail: React.FC<{}> = () => {
...
@@ -96,6 +138,9 @@ const Detail: React.FC<{}> = () => {
receiveAddress=
{
info
.
receiveAddress
}
receiveAddress=
{
info
.
receiveAddress
}
receiveUserName=
{
info
.
receiveUserName
}
receiveUserName=
{
info
.
receiveUserName
}
receiveUserTel=
{
info
.
receiveUserTel
}
receiveUserTel=
{
info
.
receiveUserTel
}
deliveryAddress=
{
info
.
deliveryAddress
}
deliveryUserName=
{
info
.
deliveryUserName
}
deliveryUserTel=
{
info
.
deliveryUserTel
}
/>
/>
</
div
>
</
div
>
<
div
style=
{
{
marginTop
:
'20px'
}
}
>
<
div
style=
{
{
marginTop
:
'20px'
}
}
>
...
...
src/pages/handling/common/index.tsx
View file @
90e2f9eb
...
@@ -15,3 +15,8 @@ export const commonTimeList = [
...
@@ -15,3 +15,8 @@ export const commonTimeList = [
* 单据时间
* 单据时间
*/
*/
export
const
docTime
=
[{
label
:
'单据时间(全部)'
,
value
:
0
}].
concat
(
commonTimeList
);
export
const
docTime
=
[{
label
:
'单据时间(全部)'
,
value
:
0
}].
concat
(
commonTimeList
);
/**
* 下单时间
*/
export
const
orderTime
=
[{
label
:
'单据时间(全部)'
,
value
:
0
}].
concat
(
commonTimeList
);
src/pages/handling/components/DeliveryInformation/index.tsx
View file @
90e2f9eb
...
@@ -12,6 +12,9 @@ interface Iprops {
...
@@ -12,6 +12,9 @@ interface Iprops {
receiveAddress
:
string
,
receiveAddress
:
string
,
receiveUserName
:
string
,
receiveUserName
:
string
,
receiveUserTel
:
string
receiveUserTel
:
string
deliveryAddress
:
string
,
deliveryUserName
:
string
,
deliveryUserTel
:
string
}
}
const
DeliveryInfomation
:
React
.
FC
<
Iprops
>
=
(
props
)
=>
{
const
DeliveryInfomation
:
React
.
FC
<
Iprops
>
=
(
props
)
=>
{
...
@@ -38,13 +41,14 @@ const DeliveryInfomation: React.FC<Iprops> = (props) => {
...
@@ -38,13 +41,14 @@ const DeliveryInfomation: React.FC<Iprops> = (props) => {
<
Col
offset=
{
5
}
>
{
props
.
receiveAddress
}
</
Col
>
<
Col
offset=
{
5
}
>
{
props
.
receiveAddress
}
</
Col
>
</
Row
>
</
Row
>
</
Col
>
</
Col
>
<
Col
span=
{
9
}
>
<
Col
span=
{
9
}
style=
{
!
props
.
deliveryUserName
?
{
display
:
'none'
}
:
{}
}
>
<
Row
style=
{
{
marginBottom
:
'20px'
}
}
>
<
Row
style=
{
{
marginBottom
:
'20px'
}
}
>
<
Col
span=
{
5
}
>
发货地址
</
Col
>
<
Col
span=
{
5
}
>
发货地址
</
Col
>
<
Col
>
张三 / 136,7627,2729
</
Col
>
<
Col
>
{
props
.
deliveryUserTel
}
/
{
props
.
deliveryUserName
}
</
Col
>
</
Row
>
</
Row
>
<
Row
>
<
Row
>
<
Col
offset=
{
5
}
>
广东省广州市海珠区新港东路1068号中州中心北塔6楼
</
Col
>
<
Col
offset=
{
5
}
>
{
props
.
deliveryAddress
}
</
Col
>
</
Row
>
</
Row
>
</
Col
>
</
Col
>
</
Row
>
</
Row
>
...
...
src/pages/handling/components/ExamineModal/index.tsx
0 → 100644
View file @
90e2f9eb
import
React
,
{
useState
}
from
'react'
;
import
{
Modal
,
Radio
,
Input
,
Button
,
message
}
from
'antd'
;
const
{
TextArea
}
=
Input
;
interface
Iparams
{
status
:
number
,
text
:
string
,
}
interface
Iprops
{
onOk
:
(
params
:
Iparams
)
=>
void
}
const
ExamineModal
:
React
.
FC
<
Iprops
>
=
(
props
)
=>
{
const
[
visible
,
setVisible
]
=
useState
<
boolean
>
(
false
);
const
[
status
,
setStatus
]
=
useState
<
number
>
(
1
);
const
[
text
,
setText
]
=
useState
(
""
)
const
handleOnOk
=
()
=>
{
if
(
text
==
''
)
{
message
.
error
(
"不通过原因不能为空"
);
return
;
}
!!
props
.
onOk
&&
props
.
onOk
({
status
:
status
,
text
:
text
})
setVisible
(
false
)
}
const
onChange
=
(
e
)
=>
{
setStatus
(
e
.
target
.
value
)
}
const
handleTextChange
=
(
e
)
=>
{
setText
(
e
.
target
.
value
)
}
return
(
<
div
>
<
Button
onClick=
{
()
=>
setVisible
(
true
)
}
>
单据审核
</
Button
>
<
Modal
visible=
{
visible
}
title=
"单据审核"
onOk=
{
handleOnOk
}
>
<
div
>
<
Radio
.
Group
onChange=
{
onChange
}
value=
{
status
}
>
<
Radio
value=
{
1
}
>
审核通过
</
Radio
>
<
Radio
value=
{
0
}
>
审核不通过
</
Radio
>
</
Radio
.
Group
>
<
div
style=
{
status
===
1
?
{
display
:
'none'
}
:
{}
}
>
<
p
style=
{
{
margin
:
'15px 0'
}
}
>
审核不通过的原因
</
p
>
<
div
>
<
TextArea
rows=
{
5
}
value=
{
text
}
onChange=
{
handleTextChange
}
></
TextArea
>
</
div
>
</
div
>
</
div
>
</
Modal
>
</
div
>
)
}
export
default
ExamineModal
\ No newline at end of file
src/pages/handling/components/ModalContainer/index.tsx
deleted
100644 → 0
View file @
e6ec9c32
import
React
,
{
Component
}
from
'react'
;
class
ModalContainer
extends
Component
{
state
=
{
visible
:
false
}
handleCancel
=
()
=>
{
this
.
setState
({
visible
:
false
})
}
show
=
()
=>
{
this
.
setState
({
visible
:
true
})
}
render
()
{
const
{
visible
}
=
this
.
state
;
const
{
children
}
=
this
.
props
;
return
(
children
({
visible
:
visible
,
show
:
this
.
show
,
cancel
:
this
.
handleCancel
})
)
}
}
export
default
ModalContainer
;
\ No newline at end of file
src/pages/handling/components/ProcessDetail/index.tsx
View file @
90e2f9eb
...
@@ -40,13 +40,12 @@ const ProcessDetail: React.FC<Iprops> = (props) => {
...
@@ -40,13 +40,12 @@ const ProcessDetail: React.FC<Iprops> = (props) => {
.
then
((
data
)
=>
{
.
then
((
data
)
=>
{
if
(
data
.
code
==
1000
)
{
if
(
data
.
code
==
1000
)
{
const
target
=
data
.
data
.
unitPriceAndPicList
.
filter
((
item
)
=>
item
.
id
.
toString
()
==
props
.
primaryKey
.
toString
());
const
target
=
data
.
data
.
unitPriceAndPicList
.
filter
((
item
)
=>
item
.
id
.
toString
()
==
props
.
primaryKey
.
toString
());
console
.
log
(
props
.
primaryKey
,
target
)
console
.
log
(
data
.
data
.
unitPriceAndPicList
);
setInfo
({
setInfo
({
...
data
.
data
,
...
data
.
data
,
quantity
:
quantity
,
quantity
:
quantity
,
processUnitPrice
:
processUnitPrice
,
processUnitPrice
:
processUnitPrice
,
attributes
:
target
[
0
]
.
attributeAndValueList
attributes
:
target
[
0
]
&&
target
[
0
].
attributeAndValueList
||
[]
});
});
}
}
})
})
...
...
src/pages/handling/components/ProcessOrder/index.tsx
View file @
90e2f9eb
...
@@ -4,107 +4,104 @@ import { PublicApi } from '@/services/api';
...
@@ -4,107 +4,104 @@ import { PublicApi } from '@/services/api';
import
EyePreview
from
'@/components/EyePreview'
;
import
EyePreview
from
'@/components/EyePreview'
;
import
{
BasicForm
,
TablePagination
,
SearchForm
}
from
'../ModalForTable'
import
{
BasicForm
,
TablePagination
,
SearchForm
}
from
'../ModalForTable'
import
{
createFormActions
}
from
'@formily/antd'
;
import
{
createFormActions
}
from
'@formily/antd'
;
import
processProductSchema
from
'../../schema/processProductSchema'
;
import
{
useRowSelectionTable
}
from
'@/hooks/useRowSelectionTable'
;
import
{
useRowSelectionTable
}
from
'@/hooks/useRowSelectionTable'
;
import
{
schema
}
from
'./schema'
;
import
{
timeRange
}
from
'@/utils'
const
actions
=
createFormActions
();
const
actions
=
createFormActions
();
const
columns
=
[
{
title
:
'订单号'
,
dataIndex
:
'orderNo'
},
{
title
:
'订单摘要'
,
dataIndex
:
'orderThe'
},
{
title
:
'采购会员'
,
dataIndex
:
'supplyMembersName'
},
{
title
:
'下单时间'
,
dataIndex
:
'createTime'
},
{
title
:
'订单状态'
,
dataIndex
:
'externalState'
},
{
title
:
'订单类型'
,
dataIndex
:
'type'
}
]
const
expandRowColumn
=
[
const
expandRowColumn
=
[
{
title
:
'商品id'
,
dataIndex
:
'
i
d'
},
{
title
:
'商品id'
,
dataIndex
:
'
commodityI
d'
},
{
title
:
'商品名称'
,
dataIndex
:
'name'
},
{
title
:
'商品名称'
,
dataIndex
:
'name'
},
{
title
:
'品类'
,
dataIndex
:
'type'
},
{
title
:
'品类'
,
dataIndex
:
'customerCategoryName'
},
{
title
:
'品牌'
,
dataIndex
:
'brand'
},
{
title
:
'品牌'
,
dataIndex
:
'brandName'
},
{
title
:
'单位'
,
dataIndex
:
'unit'
},
{
title
:
'单价'
,
dataIndex
:
'price'
},
{
title
:
'订单数量'
,
dataIndex
:
'total'
},
{
title
:
'订单数量'
,
dataIndex
:
'orderTotal'
},
{
title
:
'剩余加工数量'
,
dataIndex
:
'rest'
},
{
{
title
:
'已加工数量'
,
dataIndex
:
'hasProcess'
}
title
:
'剩余加工数量'
,
];
dataIndex
:
'restTotal'
,
render
:
(
text
,
record
)
=>
{
const
data
=
[];
return
record
.
purchaseCount
-
(
record
.
hasProcessNum
||
0
)
for
(
let
i
=
0
;
i
<
3
;
++
i
)
{
data
.
push
({
id
:
i
,
name
:
'进口头层黄牛皮荔枝纹/红色/XL'
,
type
:
'牛皮'
,
brand
:
'PELLE'
,
unit
:
'尺'
,
total
:
'2000'
,
rest
:
'1000'
,
hasProcess
:
'1000'
});
}
const
tableSchema
=
{
table
:
{
type
:
"object"
,
name
:
"table"
,
"x-component"
:
"Table"
,
"x-component-props"
:
{
"columns"
:
columns
,
"rowKey"
:
"id"
,
"expandable"
:
"{{expandable}}"
,
"pagination"
:
false
,
// "rowSelection": "{{rowSelection}}",
// dataSource: [{id: 1}]
}
}
},
},
}
{
const
schema
=
processProductSchema
(
tableSchema
);
title
:
'已加工数量'
,
dataIndex
:
'hasProcessNum'
,
render
:
(
text
)
=>
{
return
text
||
0
;
}
}
];
const
ProcessProducts
=
({
visible
,
cancel
,
...
restProps
})
=>
{
const
ProcessProducts
=
({
visible
,
cancel
,
...
restProps
})
=>
{
// const [selectRow, setSelectRow] = useState({});
// const [mainTableSelectRow, mainTableSelectRowCtl] = useRowSelectionTable({customKey: 'id'});
const
[
selectRow
,
memberRowCtl
]
=
useRowSelectionTable
({
customKey
:
'id'
});
const
[
selectRow
,
selectRowCtl
]
=
useRowSelectionTable
({
const
[
orderData
,
setOrderData
]
=
useState
<
any
>
([])
customKey
:
'id'
,
extendsSelection
:
{
getCheckboxProps
:
record
=>
({
disabled
:
record
.
purchaseCount
-
(
record
.
processNum
||
0
)
<=
0
,
}),
}
});
const
fetchData
=
useCallback
(
async
(
params
:
any
)
=>
{
const
fetchData
=
useCallback
(
async
(
params
:
any
)
=>
{
let
res
=
await
PublicApi
.
getOrderProcessingOrderList
(
params
);
const
{
orderTime
,
...
rest
}
=
params
const
{
st
,
et
}
=
timeRange
(
orderTime
);
let
postData
=
{
startCreateTime
:
st
,
endCreateTime
:
et
,
...
rest
}
let
res
=
await
PublicApi
.
getOrderProcessingOrderList
(
postData
);
return
res
;
return
res
;
},
[])
},
[])
const
expandable
=
{
const
expandable
=
{
expandedRowRender
:
record
=>
(
expandedRowRender
:
record
=>
{
<
Table
const
renderData
=
record
.
productDateilss
.
map
(
columns=
{
expandRowColumn
}
(
item
)
=>
{
rowKey=
{
"id"
}
return
{
// rowSelection={rowSelection}
orderNo
:
record
.
orderNo
,
dataSource=
{
record
.
productDateilss
}
commodityId
:
item
.
productId
,
// 商品id
pagination=
{
false
}
id
:
item
.
id
,
/>
name
:
item
.
productName
,
),
customerCategoryName
:
item
.
category
,
brandName
:
item
.
brand
,
unitName
:
item
.
unit
,
orderTotal
:
item
.
purchaseCount
,
restTotal
:
item
.
purchaseCount
-
(
item
.
processNum
||
0
),
processNum
:
''
,
processUnitPrice
:
''
,
processTotalPrice
:
''
,
price
:
item
.
price
,
//单价,
hasProcessNum
:
item
.
processNum
}
}
)
return
(
<
Table
columns=
{
expandRowColumn
}
rowKey=
{
"id"
}
rowSelection=
{
selectRow
}
dataSource=
{
renderData
}
pagination=
{
false
}
/>
)
},
// defaultExpandAllRows: true
// defaultExpandAllRows: true
}
}
const
handleSubmit
=
()
=>
{
const
handleSubmit
=
()
=>
{
restProps
.
onOk
(
memberRowCtl
)
// console.log(selectRowCtl, mainTableSelectRowCtl);
console
.
log
(
selectRowCtl
)
restProps
.
onOk
(
selectRowCtl
)
cancel
();
cancel
();
}
}
return
(
return
(
<
Drawer
<
Drawer
title=
"选择加工订单"
title=
"选择加工订单"
...
@@ -132,7 +129,7 @@ const ProcessProducts = ({visible, cancel, ...restProps}) => {
...
@@ -132,7 +129,7 @@ const ProcessProducts = ({visible, cancel, ...restProps}) => {
schema=
{
schema
}
schema=
{
schema
}
actions=
{
actions
}
actions=
{
actions
}
expressionScope=
{
{
expressionScope=
{
{
rowSelection
:
selectRow
,
// rowSelection: tableSelectRow()
,
expandable
:
expandable
expandable
:
expandable
}
}
}
}
></
SearchForm
>
></
SearchForm
>
...
...
src/pages/handling/components/ProcessOrder/schema.tsx
0 → 100644
View file @
90e2f9eb
import
{
ORDER_TYPE
,
PurchaseOrderOutWorkStateTexts
}
from
'@/constants'
;
import
{
orderTime
}
from
'../../common'
;
const
columns
=
[
{
title
:
'订单号'
,
dataIndex
:
'orderNo'
},
{
title
:
'订单摘要'
,
dataIndex
:
'orderThe'
},
{
title
:
'采购会员'
,
dataIndex
:
'supplyMembersName'
},
{
title
:
'下单时间'
,
dataIndex
:
'createTime'
},
{
title
:
'订单状态'
,
dataIndex
:
'externalState'
,
render
:
(
text
,
record
)
=>
{
return
PurchaseOrderOutWorkStateTexts
[
text
]
},
filters
:
Object
.
entries
(
PurchaseOrderOutWorkStateTexts
).
map
(([
key
,
value
])
=>
({
text
:
value
,
value
:
Number
(
key
)
})),
onFilter
:
(
value
,
record
)
=>
value
===
record
.
externalState
,
},
{
title
:
'订单类型'
,
dataIndex
:
'type'
,
render
:
(
text
,
recode
)
=>
{
return
ORDER_TYPE
[
text
];
}
}
]
export
const
schema
=
{
type
:
'object'
,
properties
:
{
layout
:
{
type
:
'object'
,
'x-component'
:
'CustomFlexRowLayout'
,
'x-component-props'
:
{
justify
:
'space-between'
,
align
:
'center'
},
properties
:
{
'flex-layout'
:
{
type
:
'object'
,
name
:
'rigth-layout'
,
"x-component"
:
'CustomFlexColumnLayout'
,
properties
:
{
controllers
:
{
type
:
'object'
,
name
:
'controllers'
,
'x-component'
:
'CustomFlexRowLayout'
,
'x-component-props'
:
{
justify
:
'start'
,
},
properties
:
{
orderNo
:
{
type
:
'string'
,
'x-component'
:
'Search'
,
'x-component-props'
:
{
placeholder
:
"请填写订单号"
,
"onSearch"
:
"{{search}}"
,
}
},
'HIGHT_FILTER_BTN'
:
{
type
:
'string'
,
'x-component'
:
'button'
,
'x-component-props'
:
{
"children"
:
"{{HIGHT_FILTER_BTN}}"
,
"onClick"
:
"{{toggleFilters}}"
,
style
:
{
margin
:
'0 15px'
}
}
},
reset
:
{
type
:
'string'
,
name
:
'reset'
,
"x-component"
:
"button"
,
"x-component-props"
:
{
"onClick"
:
"{{reset}}"
,
"children"
:
"重置"
,
}
},
}
},
'FILTERS'
:
{
type
:
'object'
,
name
:
'FILTERS'
,
'x-component'
:
'CustomFlexRowLayout'
,
'x-component-props'
:
{
justify
:
'start'
},
properties
:
{
orderThe
:
{
type
:
'string'
,
'x-component'
:
'Input'
,
'x-component-props'
:
{
placeholder
:
'请填写订单摘要'
,
style
:
{
width
:
'150px'
,
margin
:
'0 20px 0 0'
}
}
},
supplyMembersId
:
{
type
:
'string'
,
'x-component'
:
'Select'
,
'x-component-props'
:
{
placeholder
:
'请选择采购会员'
,
allowClear
:
true
,
style
:
{
width
:
'150px'
,
margin
:
'0 20px 0 0'
}
}
},
orderTime
:
{
type
:
'string'
,
'x-component'
:
'Select'
,
'x-component-props'
:
{
options
:
orderTime
,
allowClear
:
true
,
style
:
{
width
:
'150px'
,
margin
:
'0 20px 0 0'
},
default
:
0
,
}
},
type
:
{
type
:
'string'
,
'x-component'
:
'Select'
,
'x-component-props'
:
{
options
:
[],
style
:
{
width
:
'150px'
,
margin
:
'0 20px 0 0'
}
}
},
queryBtn
:
{
type
:
'string'
,
'x-component'
:
'Submit'
,
"x-component-props"
:
{
"children"
:
"查询"
,
}
}
}
}
}
},
pagination
:
{
type
:
'object'
,
'x-component'
:
"TablePagination"
,
'x-style'
:
{
display
:
'flex'
,
flexDirection
:
'row'
,
justifyContent
:
'flex-end'
},
'x-component-props'
:
{
showQuickJumper
:
true
,
pageSize
:
10
,
simple
:
true
}
}
}
},
table
:
{
type
:
"object"
,
name
:
"table"
,
"x-component"
:
"Table"
,
"x-component-props"
:
{
"columns"
:
columns
,
"rowKey"
:
"id"
,
"pagination"
:
false
,
// "rowSelection": "{{rowSelection}}",
"expandable"
:
"{{expandable}}"
,
}
},
}
}
\ No newline at end of file
src/pages/handling/components/Query/contants.tsx
View file @
90e2f9eb
...
@@ -107,8 +107,8 @@ export const FILTER_NAMES = {
...
@@ -107,8 +107,8 @@ export const FILTER_NAMES = {
export
const
DETAIL_PATH
=
{
export
const
DETAIL_PATH
=
{
[
QUERY_PATH
]:
'/memberCenter/handling/assign/query/detail'
,
[
QUERY_PATH
]:
'/memberCenter/handling/assign/query/detail'
,
[
TO_BE_ADD_QUERY_PATH
]:
'/memberCenter/handling/assign/query/detail'
,
[
TO_BE_ADD_QUERY_PATH
]:
'/memberCenter/handling/assign/query/detail'
,
[
PENDING_FIRST
]:
'/memberCenter/handling/assign/
query
/detail'
,
[
PENDING_FIRST
]:
'/memberCenter/handling/assign/
pendingFirst
/detail'
,
[
PENDING_SECOND
]:
'/memberCenter/handling/assign/
query
/detail'
,
[
PENDING_SECOND
]:
'/memberCenter/handling/assign/
pendingSecond
/detail'
,
[
PENDING_SUBMIT
]:
'/memberCenter/handling/assign/
query
/detail'
,
[
PENDING_SUBMIT
]:
'/memberCenter/handling/assign/
pendingSubmit
/detail'
,
[
PENDING_RECEIVE
]:
'/memberCenter/handling/assign/
query
/detail'
,
[
PENDING_RECEIVE
]:
'/memberCenter/handling/assign/
pendingReceive
/detail'
,
}
}
\ No newline at end of file
src/pages/home/components/Centers/Container.tsx
View file @
90e2f9eb
import
React
,
{
ReactNode
}
from
'react'
;
import
React
,
{
ReactNode
,
useEffect
,
useState
}
from
'react'
;
import
styles
from
'./Container.less'
;
import
styles
from
'./Container.less'
;
import
{
useInViewport
}
from
'@umijs/hooks'
;
import
{
Skeleton
}
from
'antd'
;
interface
Iprops
{
interface
Iprops
{
/**
/**
...
@@ -13,13 +15,36 @@ interface Iprops {
...
@@ -13,13 +15,36 @@ interface Iprops {
/**
/**
* 主要用在header 右边连接ReactNode
* 主要用在header 右边连接ReactNode
*/
*/
extra
?:
ReactNode
extra
?:
ReactNode
,
/**
* request
*/
request
?:
()
=>
Promise
<
any
>
};
};
const
AbilityContainer
:
React
.
FC
<
Iprops
>
=
(
props
)
=>
{
const
AbilityContainer
:
React
.
FC
<
Iprops
>
=
(
props
)
=>
{
const
{
title
=
''
,
tips
=
''
}
=
props
;
const
{
title
=
''
,
tips
=
''
}
=
props
;
const
[
inViewPort
,
ref
]
=
useInViewport
<
HTMLDivElement
>
();
const
[
loading
,
setLoading
]
=
useState
<
boolean
>
(
false
);
const
[
flag
,
setFlag
]
=
useState
<
boolean
>
(
false
);
const
[
data
,
setData
]
=
useState
<
any
>
({});
useEffect
(()
=>
{
if
(
inViewPort
&&
!
flag
)
{
setLoading
(
true
);
props
.
request
&&
props
.
request
()
.
then
(({
code
,
data
})
=>
{
if
(
code
===
1000
)
{
setData
(
data
)
}
setFlag
(
true
)
setLoading
(
false
)
})
}
},
[
inViewPort
])
return
(
return
(
<
div
className=
{
styles
.
container
}
>
<
div
className=
{
styles
.
container
}
ref=
{
ref
}
>
<
div
className=
{
styles
.
header
}
>
<
div
className=
{
styles
.
header
}
>
<
div
className=
{
styles
.
left
}
>
<
div
className=
{
styles
.
left
}
>
<
div
className=
{
styles
.
title
}
>
{
title
}
</
div
>
<
div
className=
{
styles
.
title
}
>
{
title
}
</
div
>
...
@@ -30,7 +55,17 @@ const AbilityContainer: React.FC<Iprops> = (props) => {
...
@@ -30,7 +55,17 @@ const AbilityContainer: React.FC<Iprops> = (props) => {
</
div
>
</
div
>
</
div
>
</
div
>
<
div
className=
{
styles
.
body
}
>
<
div
className=
{
styles
.
body
}
>
{
props
.
children
}
{
!!
props
.
request
?
<>
{
props
.
children
({
loading
:
loading
,
requestData
:
data
,
})
}
</>
:
props
.
children
}
</
div
>
</
div
>
</
div
>
</
div
>
)
)
...
...
src/pages/home/components/Centers/FundCenter.tsx
View file @
90e2f9eb
import
React
,
{
use
Effect
,
useState
}
from
'react'
;
import
React
,
{
use
Callback
}
from
'react'
;
import
AbilityContainer
from
'./Container'
;
import
AbilityContainer
from
'./Container'
;
import
styles
from
'./center.less'
import
styles
from
'./center.less'
import
logistics
from
'@/assets/imgs/logistics.png'
;
import
logistics
from
'@/assets/imgs/logistics.png'
;
...
@@ -6,7 +6,6 @@ import logistics_form from '@/assets/imgs/logistics_form.png';
...
@@ -6,7 +6,6 @@ import logistics_form from '@/assets/imgs/logistics_form.png';
import
logistics_address
from
'@/assets/imgs/logistics_address.png'
;
import
logistics_address
from
'@/assets/imgs/logistics_address.png'
;
import
logistics_cost
from
'@/assets/imgs/logistics_cost.png'
;
import
logistics_cost
from
'@/assets/imgs/logistics_cost.png'
;
import
{
Row
,
Col
,
Skeleton
}
from
'antd'
;
import
{
Row
,
Col
,
Skeleton
}
from
'antd'
;
import
{
useInViewport
}
from
'@umijs/hooks'
;
import
{
PublicApi
}
from
'@/services/api'
;
import
{
PublicApi
}
from
'@/services/api'
;
import
{
Link
}
from
'umi'
import
{
Link
}
from
'umi'
...
@@ -18,107 +17,62 @@ const KEY_TO_TITLE = {
...
@@ -18,107 +17,62 @@ const KEY_TO_TITLE = {
}
}
const
FundCenter
:
React
.
FC
<
Iprops
>
=
()
=>
{
const
FundCenter
:
React
.
FC
<
Iprops
>
=
()
=>
{
const
[
inViewPort
,
ref
]
=
useInViewport
<
HTMLDivElement
>
();
const
request
=
useCallback
(
async
()
=>
{
const
[
data
,
setData
]
=
useState
<
any
>
({});
const
res
=
await
PublicApi
.
getReportMemberHomeGetAccount
();
const
[
flag
,
setFlag
]
=
useState
<
boolean
>
(
false
);
return
res
;
const
[
loading
,
setLoading
]
=
useState
<
boolean
>
(
false
);
},
[])
const
tagsList
=
[
{
icon
:
logistics
,
text
:
'物流派单'
},
{
icon
:
logistics_form
,
text
:
'接单报价'
},
{
icon
:
logistics_address
,
text
:
'收货地址管理'
},
{
icon
:
logistics_address
,
text
:
'发货地址管理'
},
{
icon
:
logistics_cost
,
text
:
'运费模板'
}
]
useEffect
(()
=>
{
if
(
inViewPort
&&
!
flag
)
{
setLoading
(
true
);
PublicApi
.
getReportMemberHomeGetAccount
()
.
then
(({
code
,
data
})
=>
{
if
(
code
===
1000
)
{
console
.
log
(
data
);
setData
(
data
)
setFlag
(
true
)
setLoading
(
false
)
}
})
}
},
[
inViewPort
])
return
(
return
(
<
AbilityContainer
<
AbilityContainer
title=
"资金账户管理"
title=
"资金账户管理"
tips=
{
"提供资金账户管理、授信额度管理等功能。"
}
tips=
{
"提供资金账户管理、授信额度管理等功能。"
}
request=
{
request
}
>
>
<
div
ref=
{
ref
}
>
{
{
({
loading
,
requestData
})
=>
{
loading
return
(
?
<
Skeleton
active
/>
<
div
>
:
(
{
<>
loading
{
/* <div className={styles.tags}>
?
<
Skeleton
active
/>
{
:
(
tagsList.map((item) => {
<>
return (
<
div
>
<div className={styles.tagsItem} key={item.text}>
{
<div className={styles.icon}>
Object
.
keys
(
requestData
).
map
((
item
)
=>
{
<img src={item.icon} />
return
(
</div>
<
Row
key=
{
item
}
className=
{
styles
.
row
}
>
<div className={styles.text}>{item.text}</div>
<
Col
span=
{
4
}
className=
{
styles
.
rowTitle
}
>
{
KEY_TO_TITLE
[
item
]
}
</
Col
>
</div>
<
Col
span=
{
20
}
className=
{
styles
.
colRow
}
>
)
{
})
requestData
[
item
].
map
((
record
)
=>
{
}
return
(
</div> */
}
<
Col
span=
{
4
}
key=
{
record
.
name
}
className=
{
styles
.
col
}
>
<
div
>
<
div
className=
{
styles
.
colTitle
}
>
{
record
.
name
}
</
div
>
{
{
Object
.
keys
(
data
).
map
((
item
)
=>
{
record
.
link
return
(
?
<
Link
to=
{
record
.
Link
}
className=
{
styles
.
colValue
}
>
{
record
.
count
}
</
Link
>
<
Row
key=
{
item
}
className=
{
styles
.
row
}
>
:
<
div
className=
{
styles
.
colValue
}
>
{
record
.
count
}
</
div
>
<
Col
span=
{
4
}
className=
{
styles
.
rowTitle
}
>
{
KEY_TO_TITLE
[
item
]
}
</
Col
>
}
<
Col
span=
{
20
}
className=
{
styles
.
colRow
}
>
{
</
Col
>
data
[
item
].
map
((
record
)
=>
{
)
return
(
})
<
Col
span=
{
4
}
key=
{
record
.
name
}
className=
{
styles
.
col
}
>
}
<
div
className=
{
styles
.
colTitle
}
>
{
record
.
name
}
</
div
>
</
Col
>
{
</
Row
>
record
.
link
)
?
<
Link
to=
{
record
.
Link
}
className=
{
styles
.
colValue
}
>
{
record
.
count
}
</
Link
>
})
:
<
div
className=
{
styles
.
colValue
}
>
{
record
.
count
}
</
div
>
}
}
</
div
>
</>
</
Col
>
)
)
}
})
</
div
>
}
)
</
Col
>
</
Row
>
)
})
}
</
div
>
</>
)
}
}
}
</
div
>
</
AbilityContainer
>
</
AbilityContainer
>
)
)
}
}
...
...
src/pages/home/components/Centers/ProductCenter.tsx
View file @
90e2f9eb
import
React
from
'react'
;
import
React
,
{
useCallback
}
from
'react'
;
import
AbilityContainer
from
'./Container'
;
import
AbilityContainer
from
'./Container'
;
import
{
Row
,
Col
,
Space
}
from
'antd'
;
import
{
Row
,
Col
,
Space
,
Skeleton
}
from
'antd'
;
import
styles
from
'./center.less'
import
styles
from
'./center.less'
;
import
{
PublicApi
}
from
'@/services/api'
;
import
{
Link
}
from
'umi'
;
interface
Iprops
{};
interface
Iprops
{};
const
ProductCenter
:
React
.
FC
<
Iprops
>
=
()
=>
{
const
ProductCenter
:
React
.
FC
<
Iprops
>
=
()
=>
{
const
data
=
[
const
request
=
useCallback
(
async
()
=>
{
{
const
res
=
await
PublicApi
.
getReportMemberHomeGetCommodityTally
();
id
:
1
,
return
res
;
list
:
[
1
,
2
,
3
,
4
]
},
[])
},
]
return
(
return
(
<
AbilityContainer
<
AbilityContainer
tips=
"快速完成品牌、商品创建、发布、提供灵活的商品库存管理"
tips=
"快速完成品牌、商品创建、发布、提供灵活的商品库存管理"
...
@@ -23,29 +23,42 @@ const ProductCenter: React.FC<Iprops> = () => {
...
@@ -23,29 +23,42 @@ const ProductCenter: React.FC<Iprops> = () => {
<
a
>
创建商品
</
a
>
<
a
>
创建商品
</
a
>
</
Space
>
</
Space
>
}
}
request=
{
request
}
>
>
{
{
data
.
map
((
record
)
=>
{
({
loading
,
requestData
})
=>
{
const
isArray
=
Array
.
isArray
(
requestData
);
return
(
return
(
<
Row
key=
{
record
.
id
}
className=
{
styles
.
row
}
>
<>
<
Col
span=
{
4
}
className=
{
styles
.
rowTitle
}
>
平台代收账款结算
</
Col
>
{
<
Col
span=
{
20
}
className=
{
styles
.
colRow
}
>
loading
{
?
<
Skeleton
active
/>
record
.
list
.
map
((
item
)
=>
{
:
<>
return
(
<
Row
className=
{
styles
.
row
}
>
<
Col
span=
{
4
}
key=
{
item
}
className=
{
styles
.
col
}
>
<
Col
span=
{
4
}
className=
{
styles
.
rowTitle
}
>
商品
</
Col
>
<
div
className=
{
styles
.
colTitle
}
>
待提交审核咨询单
</
div
>
<
Col
span=
{
20
}
className=
{
styles
.
colRow
}
>
<
div
className=
{
styles
.
colValue
}
>
5
</
div
>
{
</
Col
>
isArray
&&
requestData
.
map
((
item
)
=>
{
)
return
(
})
<
Col
span=
{
4
}
key=
{
item
.
name
}
className=
{
styles
.
col
}
>
}
<
div
className=
{
styles
.
colTitle
}
>
{
item
.
name
}
</
div
>
</
Col
>
{
</
Row
>
item
.
link
?
<
Link
to=
{
item
.
Link
}
className=
{
styles
.
colValue
}
>
{
item
.
count
}
</
Link
>
:
<
div
className=
{
styles
.
colValue
}
>
{
item
.
count
}
</
div
>
}
</
Col
>
)
})
}
</
Col
>
</
Row
>
</>
}
</>
)
)
}
)
}
}
}
</
AbilityContainer
>
</
AbilityContainer
>
)
)
}
}
...
...
src/pages/home/components/Centers/TradeCenter.tsx
View file @
90e2f9eb
import
React
from
'react'
;
import
React
,
{
useCallback
}
from
'react'
;
import
AbilityContainer
from
'./Container'
;
import
AbilityContainer
from
'./Container'
;
import
{
Row
,
Col
}
from
'antd'
;
import
{
Row
,
Col
,
Skeleton
}
from
'antd'
;
import
styles
from
'./center.less'
import
styles
from
'./center.less'
import
{
PublicApi
}
from
'@/services/api'
;
interface
Iprops
{};
interface
Iprops
{};
const
KEY_TITLE
=
{
'commodityInquiryList'
:
'商品询价'
,
'inquiryQuotationList'
:
'询价报价'
,
'confirmInquiryQuotationList'
:
'确认询价报价'
,
'demandPublishList'
:
'需求发布'
,
'demandQuotationList'
:
'需求报价'
,
'confirmDemandQuotationList'
:
'确认需求报价'
,
'saleOrderList'
:
'销售订单'
,
'purchaseOrderList'
:
'采购订单'
}
const
TradeCenter
:
React
.
FC
<
Iprops
>
=
()
=>
{
const
TradeCenter
:
React
.
FC
<
Iprops
>
=
()
=>
{
const
data
=
[
const
request
=
useCallback
(
async
()
=>
{
{
const
res
=
await
PublicApi
.
getReportMemberHomeGetTradeReport
();
id
:
1
,
return
res
;
list
:
[
1
,
2
,
3
,
4
]
},
[])
},
{
id
:
2
,
list
:
[
1
,
2
,
3
,
4
]
},
{
id
:
3
,
list
:
[
1
,
2
,
3
,
4
,
5
]
},
{
id
:
4
,
list
:
[
1
,
2
,
3
,
4
,
5
,
6
,
7
,
8
,
9
,
10
]
},
{
id
:
5
,
list
:
[
1
,
2
,
3
,
4
,
5
,
6
]
},
{
id
:
6
,
list
:
[
1
]
}
]
return
(
return
(
<
AbilityContainer
<
AbilityContainer
title=
"交易中心"
title=
"交易中心"
...
@@ -41,27 +30,42 @@ const TradeCenter: React.FC<Iprops> = () => {
...
@@ -41,27 +30,42 @@ const TradeCenter: React.FC<Iprops> = () => {
<
a
>
进入交易中心
</
a
>
<
a
>
进入交易中心
</
a
>
</
div
>
</
div
>
}
}
request=
{
request
}
>
>
{
{
data
.
map
((
record
)
=>
{
({
loading
,
requestData
}
)
=>
{
return
(
return
(
<
Row
key=
{
record
.
id
}
className=
{
styles
.
row
}
>
<>
<
Col
span=
{
4
}
className=
{
styles
.
rowTitle
}
>
平台代收账款结算
</
Col
>
{
<
Col
span=
{
20
}
className=
{
styles
.
colRow
}
>
loading
{
?
[
1
,
2
,
3
].
map
((
item
)
=>
(
record
.
list
.
map
((
item
)
=>
{
<
Skeleton
active
key=
{
item
}
/>
))
:
Object
.
keys
(
requestData
).
map
((
record
)
=>
{
return
(
return
(
<
Col
span=
{
4
}
key=
{
item
}
className=
{
styles
.
col
}
>
<
Row
key=
{
record
}
className=
{
styles
.
row
}
>
<
div
className=
{
styles
.
colTitle
}
>
待提交审核咨询单
</
div
>
<
Col
span=
{
4
}
className=
{
styles
.
rowTitle
}
>
{
KEY_TITLE
[
record
]
}
</
Col
>
<
div
className=
{
styles
.
colValue
}
>
5
</
div
>
<
Col
span=
{
20
}
className=
{
styles
.
colRow
}
>
</
Col
>
{
requestData
[
record
].
map
((
item
,
key
)
=>
{
return
(
<
Col
span=
{
4
}
key=
{
key
}
className=
{
styles
.
col
}
>
<
div
className=
{
styles
.
colTitle
}
>
{
item
.
name
}
</
div
>
<
div
className=
{
styles
.
colValue
}
>
{
item
.
count
}
</
div
>
</
Col
>
)
})
}
</
Col
>
</
Row
>
)
)
})
})
}
</
Col
>
}
</
Row
>
</>
)
)
})
}
}
}
</
AbilityContainer
>
</
AbilityContainer
>
...
...
src/pages/transaction/_public/order/effects/useOrderDetail.tsx
View file @
90e2f9eb
...
@@ -38,7 +38,7 @@ export const useOrderDetail = (options: OrderDetailHookProps) => {
...
@@ -38,7 +38,7 @@ export const useOrderDetail = (options: OrderDetailHookProps) => {
useEffect
(()
=>
{
useEffect
(()
=>
{
reloadFormData
()
reloadFormData
()
reloadPayList
()
//
reloadPayList()
},
[])
},
[])
const
reloadFormData
=
useCallback
(()
=>
{
const
reloadFormData
=
useCallback
(()
=>
{
...
@@ -51,6 +51,7 @@ export const useOrderDetail = (options: OrderDetailHookProps) => {
...
@@ -51,6 +51,7 @@ export const useOrderDetail = (options: OrderDetailHookProps) => {
if
(
data
.
paymentInformationResponses
.
length
>
0
){
if
(
data
.
paymentInformationResponses
.
length
>
0
){
setCurrentPayInfoId
(
data
.
paymentInformationResponses
[
0
].
id
)
setCurrentPayInfoId
(
data
.
paymentInformationResponses
[
0
].
id
)
}
}
reloadPayList
(
data
.
supplyMembersId
)
}
else
{
}
else
{
message
.
error
(
msg
)
message
.
error
(
msg
)
}
}
...
@@ -58,14 +59,23 @@ export const useOrderDetail = (options: OrderDetailHookProps) => {
...
@@ -58,14 +59,23 @@ export const useOrderDetail = (options: OrderDetailHookProps) => {
}
}
},
[
id
])
},
[
id
])
const
reloadPayList
=
useCallback
((
)
=>
{
const
reloadPayList
=
(
memberId
)
=>
{
PublicApi
.
getPayPayWayList
().
then
(
res
=>
{
PublicApi
.
getPayPayWayList
(
{
memberId
}
).
then
(
res
=>
{
const
{
code
,
data
}
=
res
const
{
code
,
data
}
=
res
if
(
code
===
1000
)
{
if
(
code
===
1000
)
{
setPaylist
(
data
)
setPaylist
(
data
)
}
}
})
})
},
[
id
])
}
// const reloadPayList = useCallback(() => {
// PublicApi.getPayPayWayList().then(res => {
// const { code, data } = res
// if (code === 1000) {
// setPaylist(data)
// }
// })
// }, [id])
...
...
src/pages/transaction/purchaseOrder/orderCollect/index.tsx
View file @
90e2f9eb
...
@@ -127,7 +127,7 @@ const PurchaseOrderDetail:React.FC<PurchaseOrderDetailProps> = (props) => {
...
@@ -127,7 +127,7 @@ const PurchaseOrderDetail:React.FC<PurchaseOrderDetailProps> = (props) => {
}
}
return
resultState
return
resultState
})
})
const
[
paymentColumns
,
paymentComponents
,
paymentSave
]
=
usePaymentInfo
(
addSchemaAction
)
const
[
paymentColumns
,
paymentComponents
,
paymentSave
]
=
usePaymentInfo
(
addSchemaAction
,
addSchemaAction
.
getFieldValue
(
'supplyMembersId'
)
)
const
{
productAddButton
,
productRef
,
productColumns
,
productComponents
,
...
sectionProps
}
=
useProductTable
(
addSchemaAction
)
const
{
productAddButton
,
productRef
,
productColumns
,
productComponents
,
...
sectionProps
}
=
useProductTable
(
addSchemaAction
)
// 页面进入时, 当前所处的下单模式
// 页面进入时, 当前所处的下单模式
...
...
src/pages/transaction/purchaseOrder/orderCollect/model/usePaymentInfo.tsx
View file @
90e2f9eb
...
@@ -5,7 +5,7 @@ import { useEffect, useState, useRef, useContext } from 'react'
...
@@ -5,7 +5,7 @@ import { useEffect, useState, useRef, useContext } from 'react'
import
{
PublicApi
}
from
'@/services/api'
import
{
PublicApi
}
from
'@/services/api'
import
{
ReadyAddOrderDetailContext
}
from
'../../context'
import
{
ReadyAddOrderDetailContext
}
from
'../../context'
export
const
usePaymentInfo
=
(
ctx
:
ISchemaFormActions
|
ISchemaFormAsyncActions
):
any
=>
{
export
const
usePaymentInfo
=
(
ctx
:
ISchemaFormActions
|
ISchemaFormAsyncActions
,
memberId
:
any
):
any
=>
{
const
paywayData
=
useRef
<
any
>
({})
const
paywayData
=
useRef
<
any
>
({})
const
[
columns
,
setColumns
]
=
useState
<
any
[]
>
(
paymentInformationColumns
)
const
[
columns
,
setColumns
]
=
useState
<
any
[]
>
(
paymentInformationColumns
)
const
{
productSumPrice
}
=
useContext
(
ReadyAddOrderDetailContext
)
const
{
productSumPrice
}
=
useContext
(
ReadyAddOrderDetailContext
)
...
@@ -54,8 +54,29 @@ export const usePaymentInfo = (ctx: ISchemaFormActions | ISchemaFormAsyncActions
...
@@ -54,8 +54,29 @@ export const usePaymentInfo = (ctx: ISchemaFormActions | ISchemaFormAsyncActions
return
result
return
result
}
}
// useEffect(() => {
// PublicApi.getPayPayWayList().then(res => {
// const { code, data } = res
// if (code === 1000) {
// const newColumns = [...columns]
// newColumns[5].formItemProps.options = initPayWayList(data)
// paywayData.current = data
// setColumns(newColumns)
// }
// })
// }, [])
useEffect
(()
=>
{
useEffect
(()
=>
{
PublicApi
.
getPayPayWayList
().
then
(
res
=>
{
console
.
log
(
memberId
,
'memberId'
)
// 当选择报价单/会员/商品时有memberId传入时 调用支付方式api
if
(
memberId
)
{
getPayLists
(
memberId
)
}
},
[
memberId
])
const
getPayLists
=
(
memberId
)
=>
{
PublicApi
.
getPayPayWayList
({
memberId
}).
then
(
res
=>
{
const
{
code
,
data
}
=
res
const
{
code
,
data
}
=
res
if
(
code
===
1000
)
{
if
(
code
===
1000
)
{
const
newColumns
=
[...
columns
]
const
newColumns
=
[...
columns
]
...
@@ -65,7 +86,7 @@ export const usePaymentInfo = (ctx: ISchemaFormActions | ISchemaFormAsyncActions
...
@@ -65,7 +86,7 @@ export const usePaymentInfo = (ctx: ISchemaFormActions | ISchemaFormAsyncActions
setColumns
(
newColumns
)
setColumns
(
newColumns
)
}
}
})
})
}
,
[])
}
const
handleSave
=
row
=>
{
const
handleSave
=
row
=>
{
return
new
Promise
((
resolve
,
reject
)
=>
{
return
new
Promise
((
resolve
,
reject
)
=>
{
...
...
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