Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
J
jinfa-platform
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
shenshaokai
jinfa-platform
Commits
ad31b42b
Commit
ad31b42b
authored
Jun 18, 2021
by
XieZhiXiong
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'dev-srm' of
http://10.0.0.22:3000/lingxi/lingxi-business-paltform
into dev-srm
parents
05d5a740
1c109f3a
Hide whitespace changes
Inline
Side-by-side
Showing
20 changed files
with
241 additions
and
279 deletions
+241
-279
ChannelMallCenter.tsx
src/pages/home/components/Centers/ChannelMallCenter.tsx
+6
-9
Contract.tsx
src/pages/home/components/Centers/Contract.tsx
+26
-33
FundCenter.tsx
src/pages/home/components/Centers/FundCenter.tsx
+31
-71
MemberCenter.tsx
src/pages/home/components/Centers/MemberCenter.tsx
+49
-0
OrderCenter.tsx
src/pages/home/components/Centers/OrderCenter.tsx
+1
-1
PurchaseCenter.tsx
src/pages/home/components/Centers/PurchaseCenter.tsx
+16
-11
SettlementCenter.tsx
src/pages/home/components/Centers/SettlementCenter.tsx
+8
-51
ShopCenter.tsx
src/pages/home/components/Centers/ShopCenter.tsx
+6
-28
center.less
src/pages/home/components/Centers/center.less
+0
-30
index.tsx
src/pages/home/components/Centers/index.tsx
+3
-1
layout.tsx
src/pages/home/components/Centers/layout.tsx
+41
-6
useViewRequest.tsx
src/pages/home/hooks/useViewRequest.tsx
+4
-1
index.tsx
src/pages/home/index.tsx
+2
-1
detail.tsx
src/pages/member/memberInspection/detail.tsx
+6
-5
index.tsx
...es/transaction/purchaseAbility/onlineBid/search/index.tsx
+1
-2
index.tsx
...transaction/purchaseOrder/orderCollect/constant/index.tsx
+25
-16
index.tsx
src/pages/transaction/purchaseOrder/orderCollect/index.tsx
+3
-7
useMaterialTable.tsx
...ion/purchaseOrder/orderCollect/model/useMaterialTable.tsx
+4
-3
index.ts
...es/transaction/purchaseOrder/orderCollect/schema/index.ts
+6
-0
index.tsx
src/pages/transaction/purchaseOrder/readyAddOrder/index.tsx
+3
-3
No files found.
src/pages/home/components/Centers/ChannelMallCenter.tsx
View file @
ad31b42b
...
...
@@ -45,11 +45,11 @@ const ChannelMallCenter: React.FC<Iprops> = () => {
<
Layout
viewRef=
{
ref
}
title=
"渠道商城中心"
tips=
"
您还没有创建渠道商城,请先创建渠道商城
"
tips=
"
轻松完成渠道商城的创建、渠道商城风格选择、个性化装修
"
extra=
{
<
Authorize
url=
{
SHOP_CENTER
}
>
<
div
>
<
Link
to=
{
SHOP_CENTER
}
>
进入
店铺
中心
</
Link
>
<
Link
to=
{
SHOP_CENTER
}
>
进入
渠道商城
中心
</
Link
>
</
div
>
</
Authorize
>
}
...
...
@@ -58,13 +58,10 @@ const ChannelMallCenter: React.FC<Iprops> = () => {
<
Fragment
>
{
responseData
&&
responseData
.
id
&&
(
<
div
className=
{
styles
.
ding_tips
}
>
<
div
>
<
BellOutlined
/>
<
span
style=
{
{
marginLeft
:
'12px'
}
}
>
您还没有申请电子签章,请先申请电子签章
</
span
>
</
div
>
<
Button
size=
"small"
type=
"primary"
>
点击申请
</
Button
>
</
div
>
<
Layout
.
AlertTip
content=
"您还没有创建渠道商城,请先创建渠道商城"
url=
"/memberCenter/channelAbility/infoManage"
/>
)
}
<
Layout
.
Tag
tagList=
{
tagList
}
></
Layout
.
Tag
>
...
...
src/pages/home/components/Centers/Contract.tsx
View file @
ad31b42b
import
React
,
{
Fragment
,
use
Memo
}
from
'react'
;
import
React
,
{
Fragment
,
use
Effect
,
useMemo
,
useState
}
from
'react'
;
import
{
Button
}
from
'antd'
;
import
Layout
from
'./layout'
;
import
Layout
,
{
IDataListProps
}
from
'./layout'
;
import
useViewRequest
from
'../../hooks/useViewRequest'
;
import
{
PublicApi
}
from
'@/services/api'
;
import
{
BellOutlined
}
from
'@ant-design/icons'
;
...
...
@@ -9,6 +9,7 @@ import { GetReportMemberHomeGetContractTallyResponse } from '@/services/ReportAp
import
styles
from
'./center.less'
import
{
Link
}
from
'umi'
;
const
{
StaticsDataList
,
AlertTip
}
=
Layout
interface
Iprops
{}
const
KEY_TITLE
=
{
...
...
@@ -18,7 +19,21 @@ const KEY_TITLE = {
}
const
Constract
:
React
.
FC
<
Iprops
>
=
(
props
:
Iprops
)
=>
{
const
{
loading
,
isError
,
hasRequest
,
responseData
,
ref
}
=
useViewRequest
<
GetReportMemberHomeGetContractTallyResponse
,
any
>
(
PublicApi
.
getReportMemberHomeGetContractTally
,
{})
const
{
loading
,
isError
,
hasRequest
,
responseData
,
ref
,
inViewPort
}
=
useViewRequest
<
GetReportMemberHomeGetContractTallyResponse
,
any
>
(
PublicApi
.
getReportMemberHomeGetContractTally
,
{})
const
[
hasConstract
,
setHasConstract
]
=
useState
<
boolean
>
(
false
);
useEffect
(()
=>
{
if
(
!
inViewPort
)
{
return
;
}
async
function
findCurrMemberPurchase
()
{
const
{
data
,
code
}
=
await
PublicApi
.
getContractSignatureAuthGet
();
if
(
code
===
1000
)
{
return
setHasConstract
(
data
?.
state
!==
1
)
}
}
findCurrMemberPurchase
()
},
[
inViewPort
])
return
(
<
Layout
...
...
@@ -28,38 +43,16 @@ const Constract: React.FC<Iprops> = (props: Iprops) => {
loading=
{
loading
}
>
<
Fragment
>
<
div
className=
{
styles
.
ding_tips
}
>
<
div
>
<
BellOutlined
/>
<
span
style=
{
{
marginLeft
:
'12px'
}
}
>
您还没有申请电子签章,请先申请电子签章
</
span
>
</
div
>
<
Button
size=
"small"
type=
"primary"
>
点击申请
</
Button
>
</
div
>
{
responseData
&&
Object
.
keys
(
responseData
).
map
((
record
:
keyof
GetReportMemberHomeGetContractTallyResponse
)
=>
{
return
(
<
div
className=
{
styles
.
wrapRow
}
key=
{
record
}
>
<
span
className=
{
styles
.
rowTitle
}
>
{
KEY_TITLE
[
record
]
}
</
span
>
<
div
className=
{
styles
.
rowValues
}
>
{
responseData
[
record
]?.
map
((
item
,
key
)
=>
{
return
(
<
div
className=
{
styles
.
wrapCol
}
key=
{
key
}
>
<
div
className=
{
styles
.
colTitle
}
>
{
item
.
name
}
</
div
>
{
item
.
link
?
<
Link
to=
{
item
.
link
}
className=
{
styles
.
colValue
}
>
{
item
.
count
}
</
Link
>
:
<
div
className=
{
styles
.
colValue
}
>
{
item
.
count
}
</
div
>
}
</
div
>
)
})
}
</
div
>
</
div
>
)
})
(
!
hasConstract
)
&&
(
<
AlertTip
url=
"/memberCenter/contract/ElectronicSignature/apply"
content=
"您还没有申请电子签章,请先申请电子签章"
/>
)
}
<
StaticsDataList
title=
{
KEY_TITLE
}
dataSource=
{
responseData
as
unknown
as
IDataListProps
[
"dataSource"
]
}
/>
</
Fragment
>
</
Layout
>
)
...
...
src/pages/home/components/Centers/FundCenter.tsx
View file @
ad31b42b
import
React
,
{
useCallback
}
from
'react'
;
import
React
,
{
useCallback
,
useMemo
}
from
'react'
;
import
styles
from
'./center.less'
import
settlement_platformCollection
from
'@/assets/imgs/settlement_platformCollection.png'
;
import
settlement_integrate
from
'@/assets/imgs/settlement_integrate.png'
;
...
...
@@ -9,7 +9,7 @@ import { PublicApi } from '@/services/api';
import
{
Link
}
from
'umi'
import
{
getAuth
}
from
'@/utils/auth'
;
import
useViewRequest
from
'../../hooks/useViewRequest'
;
import
Layout
from
'./layout'
;
import
Layout
,
{
IDataListProps
}
from
'./layout'
;
import
{
GetReportMemberHomeGetAccountTallyResponse
}
from
'@/services/ReportApi'
;
interface
Iprops
{};
...
...
@@ -22,30 +22,33 @@ const FundCenter: React.FC<Iprops> = () => {
const
{
loading
,
responseData
,
isError
,
ref
}
=
useViewRequest
<
GetReportMemberHomeGetAccountTallyResponse
,
any
>
(
PublicApi
.
getReportMemberHomeGetAccountTally
,
{})
const
userAuth
=
getAuth
();
const
urls
=
userAuth
.
urls
;
const
tagsList
=
[
{
icon
:
settlement_platformCollection
,
text
:
'资金账户'
,
url
:
'/memberCenter/payandSettle/capitalAccounts/accountLists'
},
{
icon
:
settlement_integrate
,
text
:
'授信账户'
,
url
:
'/memberCenter/payandSettle/creditManage/quotaMenage'
},
{
icon
:
settlement_accountReceive
,
text
:
'资金账户管理'
,
url
:
'/memberCenter/payandSettle/capitalAccounts/accountLists'
},
{
icon
:
settlement_accountPayable
,
text
:
'授信管理'
,
url
:
'/memberCenter/payandSettle/creditManage/quotaMenage'
},
]
const
urls
=
(
userAuth
as
any
)?.
urls
||
[];
// 在tagList 做修改过滤
const
tagsList
=
useMemo
(()
=>
{
const
list
=
[
{
icon
:
settlement_platformCollection
,
title
:
'资金账户'
,
url
:
'/memberCenter/payandSettle/capitalAccounts/accountLists'
},
{
icon
:
settlement_integrate
,
title
:
'授信账户'
,
url
:
'/memberCenter/payandSettle/creditManage/quotaMenage'
},
{
icon
:
settlement_accountReceive
,
title
:
'资金账户管理'
,
url
:
'/memberCenter/payandSettle/capitalAccounts/accountLists'
},
{
icon
:
settlement_accountPayable
,
title
:
'授信管理'
,
url
:
'/memberCenter/payandSettle/creditManage/quotaMenage'
},
].
filter
((
_item
)
=>
urls
.
includes
(
_item
.
url
))
return
list
},
[
userAuth
])
return
(
<
Layout
...
...
@@ -55,51 +58,8 @@ const FundCenter: React.FC<Iprops> = () => {
loading=
{
loading
}
>
<>
<
div
className=
{
styles
.
centerRow
}
>
{
tagsList
.
map
((
item
)
=>
{
const
hasAuth
=
!
urls
.
includes
(
item
.
url
);
if
(
!
hasAuth
)
{
return
null
}
return
(
<
Link
to=
{
item
.
url
}
key=
{
item
.
text
}
className=
{
styles
.
tagsItem
}
>
<
div
className=
{
styles
.
icon
}
>
<
img
src=
{
item
.
icon
}
/>
</
div
>
<
div
className=
{
styles
.
text
}
>
{
item
.
text
}
</
div
>
</
Link
>
)
})
}
</
div
>
<
div
>
{
responseData
&&
Object
.
keys
(
responseData
).
map
((
record
:
keyof
GetReportMemberHomeGetAccountTallyResponse
)
=>
{
return
(
<
div
className=
{
styles
.
wrapRow
}
key=
{
record
}
>
<
span
className=
{
styles
.
rowTitle
}
>
{
KEY_TO_TITLE
[
record
]
}
</
span
>
<
div
className=
{
styles
.
rowValues
}
>
{
responseData
[
record
]?.
map
((
item
,
key
)
=>
{
return
(
<
div
className=
{
styles
.
wrapCol
}
key=
{
key
}
>
<
div
className=
{
styles
.
colTitle
}
>
{
item
.
name
}
</
div
>
{
item
.
link
?
<
Link
to=
{
item
.
link
}
className=
{
styles
.
colValue
}
>
{
item
.
count
}
</
Link
>
:
<
div
className=
{
styles
.
colValue
}
>
{
item
.
count
}
</
div
>
}
</
div
>
)
})
}
</
div
>
</
div
>
)
})
}
</
div
>
<
Layout
.
Tag
tagList=
{
tagsList
}
/>
<
Layout
.
StaticsDataList
title=
{
KEY_TO_TITLE
}
dataSource=
{
responseData
as
unknown
as
IDataListProps
[
"dataSource"
]
}
/>
</>
</
Layout
>
)
...
...
src/pages/home/components/Centers/MemberCenter.tsx
0 → 100644
View file @
ad31b42b
import
React
,
{
Fragment
,
useMemo
}
from
'react'
;
import
styles
from
'./center.less'
;
import
{
PublicApi
}
from
'@/services/api'
import
{
Link
}
from
'umi'
import
Layout
from
'./layout'
;
import
Authorize
from
'../Authorize'
;
import
useViewRequest
from
'../../hooks/useViewRequest'
;
import
{
GetReportMemberHomeGetMemberTallyResponse
,
GetReportMemberHomeGetPurchaseTallyResponse
}
from
'@/services/ReportV2Api'
;
import
{
BellOutlined
}
from
'@ant-design/icons'
;
import
{
Button
}
from
'antd'
;
interface
Iprops
{};
const
{
StaticsDataList
}
=
Layout
const
url
=
'/memberCenter/handling/assign/query'
;
const
KEY_TITLE
=
{
importList
:
'会员入库'
,
changeList
:
'会员变更'
,
kpiList
:
'会员考评'
,
rectifyList
:
'会员整改'
,
rectifyNoticeList
:
'整改通知'
}
const
MemberCenter
:
React
.
FC
<
Iprops
>
=
()
=>
{
const
{
loading
,
responseData
,
filterEmptyList
,
isError
,
ref
}
=
useViewRequest
<
GetReportMemberHomeGetMemberTallyResponse
,
any
>
(
PublicApi
.
getReportMemberHomeGetMemberTally
,
{})
return
(
<
Layout
viewRef=
{
ref
}
title=
"会员中心"
tips=
""
extra=
{
<
Authorize
url=
{
url
}
>
<
div
>
<
Link
to=
{
url
}
>
会员中心
</
Link
>
</
div
>
</
Authorize
>
}
loading=
{
loading
}
isError=
{
isError
}
>
<
StaticsDataList
title=
{
KEY_TITLE
}
dataSource=
{
filterEmptyList
}
/>
</
Layout
>
)
}
export
default
MemberCenter
src/pages/home/components/Centers/OrderCenter.tsx
View file @
ad31b42b
...
...
@@ -38,7 +38,7 @@ const PurchaseCenter: React.FC<Iprops> = () => {
loading=
{
loading
}
isError=
{
isError
}
>
<
StaticsDataList
title=
{
KEY_TITLE
}
dataSource=
{
filterEmptyList
as
GetReportMemberHomeGetPurchaseTallyResponse
}
/>
<
StaticsDataList
title=
{
KEY_TITLE
}
dataSource=
{
filterEmptyList
}
/>
</
Layout
>
)
}
...
...
src/pages/home/components/Centers/PurchaseCenter.tsx
View file @
ad31b42b
import
React
,
{
Fragment
,
useEffect
,
useMemo
}
from
'react'
;
import
React
,
{
Fragment
,
useEffect
,
useMemo
,
useState
}
from
'react'
;
import
styles
from
'./center.less'
;
import
{
PublicApi
}
from
'@/services/api'
import
{
Link
}
from
'umi'
...
...
@@ -31,22 +31,25 @@ const isBusiness = [1, 2];
const
isConsumer
=
2
;
const
PurchaseCenter
:
React
.
FC
<
Iprops
>
=
()
=>
{
const
{
loading
,
responseData
,
filterEmptyList
,
isError
,
ref
,
inViewPort
,
refresh
}
=
useViewRequest
<
GetReportMemberHomeGetPurchaseTallyResponse
,
any
>
(
PublicApi
.
getReportMemberHomeGetPurchaseTally
,
{})
const
auth
=
getAuth
()
const
auth
=
getAuth
();
/** 是否有权限 */
const
hasPurchaseAuth
=
(
isBusiness
.
includes
(
auth
.
memberType
))
&&
isConsumer
===
auth
.
memberRoleType
;
/** 是否有采购门户 */
const
[
hasPurchase
,
setHasPurchase
]
=
useState
<
boolean
>
(
hasPurchaseAuth
);
useEffect
(()
=>
{
if
(
!
inViewPort
||
(
!
isBusiness
.
includes
(
auth
.
memberType
))
||
isConsumer
!==
auth
.
memberRoleType
)
{
if
(
!
inViewPort
||
(
!
hasPurchaseAuth
)
)
{
return
;
}
console
.
log
((
!
isBusiness
.
includes
(
auth
.
memberType
)),
isConsumer
!==
auth
.
memberRoleType
)
//
console.log((!isBusiness.includes(auth.memberType)), isConsumer !== auth.memberRoleType)
async
function
findCurrMemberPurchase
()
{
const
{
data
,
code
}
=
await
PublicApi
.
getTemplateWebMemberPurchaseWebFindCurrMemberPurchase
();
if
(
code
===
code
)
{
return
data
?.
id
if
(
code
===
1000
)
{
return
setHasPurchase
(
data
?.
id
?
true
:
false
)
}
return
null
}
findCurrMemberPurchase
()
},
[
inViewPort
,
a
uth
])
},
[
inViewPort
,
hasPurchaseA
uth
])
return
(
<
Layout
...
...
@@ -68,17 +71,19 @@ const PurchaseCenter: React.FC<Iprops> = () => {
>
<
Fragment
>
{
(
!
hasPurchase
&&
(
<
div
className=
{
styles
.
ding_tips
}
>
<
div
>
<
BellOutlined
/>
<
span
style=
{
{
marginLeft
:
'12px'
}
}
>
您还没有创建采购门户,请先创建采购门户
</
span
>
</
div
>
<
Button
size=
"small"
type=
"primary"
>
点击创建
</
Button
>
<
Link
to=
{
`/memberCenter/procurementAbility/purchasDoor/purchasInfo`
}
>
<
Button
size=
"small"
type=
"primary"
>
点击创建
</
Button
>
</
Link
>
</
div
>
)
}
<
StaticsDataList
title=
{
KEY_TITLE
}
dataSource=
{
filterEmptyList
as
GetReportMemberHomeGetPurchaseTallyResponse
}
/>
<
StaticsDataList
title=
{
KEY_TITLE
}
dataSource=
{
filterEmptyList
}
/>
</
Fragment
>
</
Layout
>
...
...
src/pages/home/components/Centers/SettlementCenter.tsx
View file @
ad31b42b
...
...
@@ -23,31 +23,31 @@ const SettlementCenter: React.FC<Iprops> = () => {
const
{
loading
,
responseData
,
filterEmptyList
,
isError
,
ref
}
=
useViewRequest
<
GetReportMemberHomeGetSettleAccountTallyResponse
,
any
>
(
PublicApi
.
getReportMemberHomeGetSettleAccountTally
,
{})
const
userAuth
=
getAuth
();
const
urls
=
userAuth
.
urls
;
const
urls
=
userAuth
?
.
urls
;
const
tagsList
=
[
{
icon
:
settlement_platformCollection
,
t
ext
:
'平台代收款结算'
,
t
itle
:
'平台代收款结算'
,
url
:
'/memberCenter/balance/platformSettlement/accountReceivable'
},
{
icon
:
settlement_integrate
,
t
ext
:
'平台积分结算'
,
t
itle
:
'平台积分结算'
,
url
:
'/memberCenter/balance/platformSettlement/integral'
},
{
icon
:
settlement_accountReceive
,
t
ext
:
'应收账款结算'
,
t
itle
:
'应收账款结算'
,
url
:
'/memberCenter/balance/accountsReceivable/settlementList'
},
{
icon
:
settlement_accountPayable
,
t
ext
:
'应付账款结算'
,
t
itle
:
'应付账款结算'
,
url
:
'/memberCenter/balance/accountsPayable/settlementList'
},
{
icon
:
settlement_invoice
,
t
ext
:
'开票管理'
,
t
itle
:
'开票管理'
,
url
:
'/memberCenter/balance/accountsReceivable/invoice'
}
]
...
...
@@ -60,51 +60,8 @@ const SettlementCenter: React.FC<Iprops> = () => {
isError=
{
isError
}
>
<>
<
div
className=
{
styles
.
centerRow
}
>
{
tagsList
.
map
((
item
)
=>
{
const
hasAuth
=
!
urls
.
includes
(
item
.
url
);
if
(
!
hasAuth
)
{
return
null
}
return
(
<
Link
to=
{
item
.
url
}
key=
{
item
.
text
}
className=
{
styles
.
tagsItem
}
>
<
div
className=
{
styles
.
icon
}
>
<
img
src=
{
item
.
icon
}
/>
</
div
>
<
div
className=
{
styles
.
text
}
>
{
item
.
text
}
</
div
>
</
Link
>
)
})
}
</
div
>
{
/* {
responseData && Object.keys(responseData).map((record: keyof GetReportMemberHomeGetSettleAccountTallyResponse) => {
return (
<div className={styles.wrapRow} key={record}>
<span className={styles.rowTitle}>{KEY_TITLE[record]}</span>
<div className={styles.rowValues}>
{
responseData[record]?.map((item, key) => {
return (
<div className={styles.wrapCol} key={key}>
<div className={styles.colTitle}>{item.name}</div>
{
item.link
? <Link to={item.link} className={styles.colValue}>{item.count}</Link>
: <div className={styles.colValue}>{item.count}</div>
}
</div>
)
})
}
</div>
</div>
)
})
} */
}
<
Layout
.
StaticsDataList
title=
{
KEY_TITLE
}
dataSource=
{
filterEmptyList
as
GetReportMemberHomeGetSettleAccountTallyResponse
}
/>
<
Layout
.
Tag
tagList=
{
tagsList
}
/>
<
Layout
.
StaticsDataList
title=
{
KEY_TITLE
}
dataSource=
{
filterEmptyList
}
/>
</>
</
Layout
>
)
...
...
src/pages/home/components/Centers/ShopCenter.tsx
View file @
ad31b42b
...
...
@@ -53,36 +53,14 @@ const ShopCenter: React.FC<Iprops> = () => {
<
Fragment
>
{
responseData
&&
responseData
.
id
&&
(
<
div
className=
{
styles
.
ding_tips
}
>
<
div
>
<
BellOutlined
/>
<
span
style=
{
{
marginLeft
:
'12px'
}
}
>
您还没有申请电子签章,请先申请电子签章
</
span
>
</
div
>
<
Button
size=
"small"
type=
"primary"
>
点击申请
</
Button
>
</
div
>
<
Layout
.
AlertTip
content=
"轻松完成店铺的创建、店铺风格选择、店铺个性化装修。"
url=
""
/>
)
}
<
div
className=
{
styles
.
centerRow
}
>
{
tagList
.
map
((
_item
)
=>
{
return
(
<
Authorize
url=
{
_item
.
url
}
canView=
{
true
}
key=
{
_item
.
title
}
>
<
Link
to=
{
_item
.
url
}
className=
{
styles
.
tagsItem
}
>
<
div
className=
{
styles
.
hoverLink
}
>
<
img
src=
{
create_shop
}
className=
{
styles
.
icon
}
/>
<
div
className=
{
styles
.
text
}
>
{
_item
.
title
}
</
div
>
<
div
className=
{
styles
.
hoverIconConatiner
}
>
<
div
className=
{
styles
.
hoverIcon
}
>
<
RightOutlined
style=
{
{
color
:
'#fff'
,
fontSize
:
'8px'
}
}
/>
</
div
>
</
div
>
</
div
>
</
Link
>
</
Authorize
>
)
})
}
</
div
>
<
Layout
.
Tag
tagList=
{
tagList
}
></
Layout
.
Tag
>
</
Fragment
>
</
Layout
>
)
...
...
src/pages/home/components/Centers/center.less
View file @
ad31b42b
...
...
@@ -13,36 +13,6 @@
align-items: center;
}
// .tagsSpecial {
// width: 160px;
// margin-right: 16px;
// .ding_tips {
// color: @main-color;
// background: rgba(0, 179, 122, 0.12);
// padding: 10px;
// display: flex;
// flex-direction: row;
// position: relative;
// margin-top: 20px;
// .ding_icon {
// margin-right: 10px;
// }
// &:before {
// content: '';
// position: absolute;
// top: -10px;
// left: 20px;
// width: 0;
// height: 0;
// border-left: 10px solid transparent;
// border-right: 10px solid transparent;
// border-bottom: 10px solid rgba(0, 179, 122, 0.12);;
// }
// }
// }
.centerRow {
display: flex;
flex-direction: row;
...
...
src/pages/home/components/Centers/index.tsx
View file @
ad31b42b
...
...
@@ -10,6 +10,7 @@ import Contract from './Contract';
import
PurchaseCenter
from
'./PurchaseCenter'
;
import
OrderCenter
from
'./OrderCenter'
;
import
ChannelMallCenter
from
'./ChannelMallCenter'
;
import
MemberCenter
from
'./MemberCenter'
;
export
{
TradeCenter
,
...
...
@@ -23,5 +24,6 @@ export {
Contract
,
PurchaseCenter
,
OrderCenter
,
ChannelMallCenter
ChannelMallCenter
,
MemberCenter
}
src/pages/home/components/Centers/layout.tsx
View file @
ad31b42b
...
...
@@ -5,11 +5,12 @@ import { Skeleton } from 'antd';
import
{
Link
}
from
'umi'
;
import
layoutStyles
from
'./center.less'
;
import
Authorize
from
'../Authorize'
;
import
{
RightOutlined
}
from
'@ant-design/icons'
;
import
{
BellOutlined
,
RightOutlined
}
from
'@ant-design/icons'
;
interface
LayoutType
{
StaticsDataList
:
typeof
StaticsDataList
,
Tag
:
typeof
Tag
,
Tag
:
typeof
Tags
,
AlertTip
:
typeof
AlertTip
,
}
interface
Iprops
{
...
...
@@ -85,14 +86,20 @@ const Layout: LayoutType & React.FC<Iprops> = (props) => {
)
}
interface
IDataListProps
<
T
>
{
dataSource
:
T
,
export
interface
IDataListProps
{
dataSource
:
{
[
key
:
string
]:
({
name
:
string
,
link
:
string
,
count
:
number
,
}[])
|
null
},
title
:
{
[
key
in
keyof
T
]:
string
[
key
:
string
]:
string
}
}
const
StaticsDataList
=
(
props
)
=>
{
const
StaticsDataList
=
(
props
:
IDataListProps
)
=>
{
const
{
dataSource
,
title
}
=
props
;
return
(
<>
...
...
@@ -160,6 +167,34 @@ const Tags = (props: TagProps) => {
)
}
interface
AlterTipProps
{
content
:
string
,
extra
?:
React
.
ReactNode
,
url
?:
string
,
}
const
AlertTip
=
(
props
:
AlterTipProps
)
=>
{
const
{
content
,
extra
=
null
,
url
=
""
}
=
props
;
return
(
<
div
className=
{
layoutStyles
.
ding_tips
}
>
<
div
>
<
BellOutlined
/>
<
span
style=
{
{
marginLeft
:
'12px'
}
}
>
{
content
}
</
span
>
</
div
>
{
extra
||
(
<
Link
to=
{
url
}
>
<
Button
size=
"small"
type=
"primary"
>
点击创建
</
Button
>
</
Link
>
)
}
</
div
>
)
}
Layout
.
AlertTip
=
AlertTip
;
Layout
.
Tag
=
Tags
;
Layout
.
StaticsDataList
=
StaticsDataList
...
...
src/pages/home/hooks/useViewRequest.tsx
View file @
ad31b42b
...
...
@@ -62,7 +62,10 @@ function useViewRequest<T, P>(fn: (postData: P) => Promise<ResponseDataType & {
return
result
}
Object
.
keys
(
responseData
).
forEach
((
_row
)
=>
{
if
(
responseData
[
_row
]
&&
responseData
[
_row
].
length
!==
0
)
{
// if (responseData[_row] && responseData[_row].length !== 0)
{
// result[_row] = responseData[_row];
//
}
if
(
responseData
[
_row
])
{
result
[
_row
]
=
responseData
[
_row
];
}
})
...
...
src/pages/home/index.tsx
View file @
ad31b42b
...
...
@@ -8,13 +8,14 @@ import LatestAnnounce from './components/LatestAnnounces';
import
RecentVisit
from
'./components/RecentVisit'
;
import
AnyQuestion
from
'./components/AnyQuestion'
;
import
AdvertisementContainer
from
'./components/AdvertisementSpace'
;
import
{
TradeCenter
,
FundCenter
,
ShopCenter
,
ProductCenter
,
SettlementCenter
,
AfterSoldCenter
,
LogisticsCenter
,
ProcessCenter
,
Contract
,
PurchaseCenter
,
OrderCenter
,
ChannelMallCenter
}
from
'./components/Centers'
;
import
{
TradeCenter
,
FundCenter
,
ShopCenter
,
ProductCenter
,
SettlementCenter
,
AfterSoldCenter
,
LogisticsCenter
,
ProcessCenter
,
Contract
,
PurchaseCenter
,
OrderCenter
,
ChannelMallCenter
,
MemberCenter
}
from
'./components/Centers'
;
import
styles
from
'./index.less'
import
{
CompassFilled
}
from
'@ant-design/icons'
;
import
{
PublicApi
}
from
'@/services/api'
;
import
{
GetReportMemberHomeGetDataLayoutRequest
}
from
'@/services/ReportApi'
;
const
ComponentSelect
=
{
"会员中心"
:
MemberCenter
,
"交易中心"
:
TradeCenter
,
"店铺中心"
:
ShopCenter
,
"商品中心"
:
ProductCenter
,
...
...
src/pages/member/memberInspection/detail.tsx
View file @
ad31b42b
...
...
@@ -38,11 +38,12 @@ const InspectionDetail: React.FC<Iprops> = (props: Iprops) => {
{
title
:
'考察要求附件'
,
value
:
(
<
div
>
// 这里应该写一个组件
<
div
style=
{
{
display
:
'flex'
,
flexDirection
:
'column'
}
}
>
{
initialValue
?.
attachments
.
map
((
_row
)
=>
{
return
(
<
a
key=
{
_row
.
url
}
href=
{
_row
.
url
}
>
{
_row
.
name
}
</
a
>
<
a
style=
{
{
marginBottom
:
'4px'
}
}
key=
{
_row
.
url
}
href=
{
_row
.
url
}
>
{
_row
.
name
}
</
a
>
)
})
}
...
...
@@ -78,11 +79,11 @@ const InspectionDetail: React.FC<Iprops> = (props: Iprops) => {
title
:
'考察要求附件'
,
span
:
2
,
value
:
(
<
div
>
<
div
style=
{
{
display
:
'flex'
,
flexDirection
:
'column'
}
}
>
{
initialValue
?.
reports
.
map
((
_row
)
=>
{
return
(
<
a
key=
{
_row
.
url
}
href=
{
_row
.
url
}
>
{
_row
.
name
}
</
a
>
<
a
style=
{
{
marginBottom
:
'4px'
}
}
key=
{
_row
.
url
}
href=
{
_row
.
url
}
>
{
_row
.
name
}
</
a
>
)
})
}
...
...
@@ -91,7 +92,7 @@ const InspectionDetail: React.FC<Iprops> = (props: Iprops) => {
},
{
title
:
'考察结果'
,
value
:
initialValue
?.
result
value
:
initialValue
?.
result
===
1
?
'合格'
:
'不合格'
}
],
[
initialValue
])
...
...
src/pages/transaction/purchaseAbility/onlineBid/search/index.tsx
View file @
ad31b42b
...
...
@@ -65,8 +65,7 @@ const Search = () => {
dataIndex
:
'isPrize'
,
render
:
(
text
:
any
,
record
:
any
)
=>
<>
{
(
text
!==
1
&&
text
!==
0
)
?
null
:
<
StatusTag
type=
{
text
?
'success'
:
'danger'
}
title=
{
text
?
'是'
:
'否'
}
/>
}
</>,
width
:
180
</>
},
{
title
:
'外部状态'
,
key
:
'externalState'
,
...
...
src/pages/transaction/purchaseOrder/orderCollect/constant/index.tsx
View file @
ad31b42b
...
...
@@ -4,6 +4,7 @@ import { Row } from 'antd'
import
{
DELIVERY_TYPE
,
OrderModalType
,
PurchaseOrderOutWorkStateTexts
}
from
'@/constants/order'
import
moment
from
'moment'
import
{
AddressPop
}
from
'../components/productModalTable'
import
{
GlobalConfig
}
from
'@/global/config'
;
// 简单控制价格区间的组件
// @todo 后续需要优化, 样式,目录文件等。
...
...
@@ -138,22 +139,30 @@ export const orderTypeLabel = ['',
// '采购招标合同',
]
export
const
orderTypeLabelMap
=
{
"5"
:
"现货采购"
,
"6"
:
"现货采购"
,
"7"
:
"询价采购"
,
"8"
:
"需求采购"
,
"9"
:
"集采"
,
"10"
:
"渠道直采"
,
"11"
:
"渠道直采"
,
"12"
:
"渠道现货"
,
"13"
:
"渠道现货"
,
// "24": "积分兑换",
// "25": "渠道积分兑换",
"32"
:
"采购询价合同"
,
"33"
:
"采购招标合同"
,
"34"
:
"采购竞价合同"
,
}
// export const orderTypeLabelMap = {
// "5": "现货采购",
// "6": "现货采购",
// "7": "询价采购",
// "8": "需求采购",
// "9": "集采",
// "10": "渠道直采",
// "11": "渠道直采",
// "12": "渠道现货",
// "13": "渠道现货",
// // "24": "积分兑换",
// // "25": "渠道积分兑换",
// "32": "采购询价合同",
// "33": "采购招标合同",
// "34": "采购竞价合同",
// }
export
const
orderTypeLabelMap
=
()
=>
{
let
tempObject
:
{
[
key
:
number
]:
string
}
=
{}
GlobalConfig
[
'web'
][
'orderMode'
].
map
(
item
=>
{
tempObject
[
item
[
'value'
]]
=
item
[
'label'
]
})
return
tempObject
;
}
// 支付方式
export
const
payTypeLabel
=
[
...
...
src/pages/transaction/purchaseOrder/orderCollect/index.tsx
View file @
ad31b42b
...
...
@@ -206,10 +206,6 @@ const PurchaseOrderDetail:React.FC<PurchaseOrderDetailProps> = (props) => {
},
[])
useEffect
(()
=>
{
console
.
log
(
initFormValue
,
'init'
)
},
[
initFormValue
])
const
handleSubmit
=
async
(
value
)
=>
{
let
_orderProductRequests
=
JSON
.
parse
(
JSON
.
stringify
(
value
.
orderProductRequests
))
let
processEnum
=
value
[
'processEnum'
]
...
...
@@ -589,7 +585,7 @@ const PurchaseOrderDetail:React.FC<PurchaseOrderDetailProps> = (props) => {
// 判断合同下单
if
(
value
>
30
)
{
ctx
.
setFieldState
(
'quotationNo'
,
state
=>
{
state
.
props
.
title
=
orderTypeLabelMap
[
value
]
state
.
props
.
title
=
orderTypeLabelMap
()
[
value
]
state
.
visible
=
true
})
ctx
.
setFieldState
(
'needTheInvoice'
,
state
=>
{
...
...
@@ -663,7 +659,7 @@ const PurchaseOrderDetail:React.FC<PurchaseOrderDetailProps> = (props) => {
addSchemaAction
.
setFieldState
(
'orderProductRequests'
,
productState
=>
{
productState
.
props
[
"x-component-props"
]
=
{
...
productState
.
props
[
"x-component-props"
],
prefix
:
editable
?
materialAddButton
:
''
,
prefix
:
editable
&&
pageStatus
===
PageStatus
.
ADD
?
materialAddButton
:
''
,
}
})
//
},
500
)
...
...
@@ -679,7 +675,7 @@ const PurchaseOrderDetail:React.FC<PurchaseOrderDetailProps> = (props) => {
//
},
500
)
}
// 选择某种类型时, 需显示对应的订单类型
ctx
.
setFieldValue
(
'type'
,
orderTypeLabelMap
[
value
])
ctx
.
setFieldValue
(
'type'
,
orderTypeLabelMap
()
[
value
])
})
useEditHideField
()
// 商品信息的改动 驱动支付信息变化
...
...
src/pages/transaction/purchaseOrder/orderCollect/model/useMaterialTable.tsx
View file @
ad31b42b
...
...
@@ -60,11 +60,12 @@ export const useMaterialTable = (ctx: ISchemaFormActions | ISchemaFormAsyncActio
const
[
materialColumns
,
setMaterialColumns
]
=
useState
(()
=>
{
const
{
pageStatus
}
=
usePageStatus
()
if
(
pageStatus
===
PageStatus
.
ADD
)
{
// 渲染操作
materialInfoColumns
[
materialInfoColumns
.
length
-
1
].
render
=
(
text
,
record
)
=>
<
Button
type=
'link'
onClick=
{
()
=>
handleDelete
(
record
)
}
>
删除
</
Button
>
// 渲染单价
materialInfoColumns
[
7
].
render
=
(
t
,
r
)
=>
{
materialInfoColumns
[
8
].
render
=
(
t
,
r
)
=>
{
if
(
orderModel
===
OrderModalType
[
"HAND_ORDER"
])
{
return
<
PriceComp
priceSection=
{
r
.
unitPrice
}
/>
}
else
{
...
...
@@ -82,13 +83,13 @@ export const useMaterialTable = (ctx: ISchemaFormActions | ISchemaFormAsyncActio
}
else
{
// 渲染单价
materialInfoColumns
[
7
].
render
=
(
t
,
r
)
=>
<
span
style=
{
{
color
:
'red'
}
}
>
¥
{
r
.
price
}
</
span
>
materialInfoColumns
[
8
].
render
=
(
t
,
r
)
=>
<
span
style=
{
{
color
:
'red'
}
}
>
¥
{
r
.
price
}
</
span
>
// 渲染商品ID
materialInfoColumns
[
0
].
render
=
(
t
,
r
)
=>
r
.
productId
materialInfoColumns
[
materialInfoColumns
.
length
-
1
].
render
=
(
t
,
r
)
=>
null
}
return
materialInfoColumns
})
const
handleShowMaterial
=
()
=>
{
...
...
src/pages/transaction/purchaseOrder/orderCollect/schema/index.ts
View file @
ad31b42b
...
...
@@ -69,6 +69,7 @@ export const tableListSchema: ISchema = {
// 基本信息
const
basicInfo
:
ISchema
=
{
"x-index"
:
0
,
type
:
'object'
,
"x-component"
:
'tabpane'
,
"x-component-props"
:
{
...
...
@@ -257,6 +258,7 @@ const basicInfo: ISchema = {
}
// 订单商品
export
const
orderProduct
:
ISchema
=
{
"x-index"
:
2
,
type
:
'object'
,
"x-component"
:
'tabpane'
,
"x-component-props"
:
{
...
...
@@ -287,6 +289,7 @@ export const orderProduct: ISchema = {
// 合同下单 订单物料
export
const
orderMaterial
:
ISchema
=
{
"x-index"
:
2
,
type
:
'object'
,
"x-component"
:
'tabpane'
,
"x-component-props"
:
{
...
...
@@ -317,6 +320,7 @@ export const orderMaterial: ISchema = {
// 支付信息
export
const
payInfo
:
ISchema
=
{
"x-index"
:
3
,
type
:
'object'
,
"x-component"
:
'tabpane'
,
"x-component-props"
:
{
...
...
@@ -345,6 +349,7 @@ export const payInfo: ISchema = {
// 交付信息
const
submitInfo
:
ISchema
=
{
"x-index"
:
1
,
type
:
'object'
,
"x-component"
:
'tabpane'
,
"x-component-props"
:
{
...
...
@@ -406,6 +411,7 @@ const submitInfo: ISchema = {
// 其他信息
const
ortherInfo
:
ISchema
=
{
"x-index"
:
4
,
type
:
'object'
,
"x-component"
:
'tabpane'
,
"x-component-props"
:
{
...
...
src/pages/transaction/purchaseOrder/readyAddOrder/index.tsx
View file @
ad31b42b
...
...
@@ -51,8 +51,8 @@ const ReadyAddOrder:React.FC<ReadyAddOrderProps> = (props) => {
}
const
handleBitchPush
=
async
()
=>
{
const
canBitch
=
!
rowSelectionCtl
.
selectRow
.
some
(
v
=>
v
.
interiorState
!==
PurchaseOrderInsideWorkState
.
ADD_PURCHASE_ORDER
)
if
(
canBitc
h
)
{
//
const canBitch = !rowSelectionCtl.selectRow.some(v => v.interiorState !== PurchaseOrderInsideWorkState.ADD_PURCHASE_ORDER)
if
(
rowSelectionCtl
.
selectRow
.
lengt
h
)
{
const
{
code
}
=
await
submitRun
({
ids
:
rowSelectionCtl
.
selectedRowKeys
})
if
(
code
===
1000
)
{
ref
.
current
.
reload
()
...
...
@@ -60,7 +60,7 @@ const ReadyAddOrder:React.FC<ReadyAddOrderProps> = (props) => {
rowSelectionCtl
.
setSelectedRowKeys
([])
}
}
else
{
message
.
error
(
'
只能提交审核
待新增的订单'
)
message
.
error
(
'
请先选择
待新增的订单'
)
}
}
...
...
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