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
linweijiong
jinfa-platform
Commits
3b303fb8
Commit
3b303fb8
authored
Dec 11, 2020
by
XieZhiXiong
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
修复冲突
parent
a22e7e1d
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
0 additions
and
206 deletions
+0
-206
commodity.tsx
src/pages/systemSetting/collection/commodity.tsx
+0
-206
No files found.
src/pages/systemSetting/collection/commodity.tsx
View file @
3b303fb8
<<
<
<<<<
HEAD
import
React
,
{
useEffect
,
useState
}
from
'
react
'
import
cx
from
'
classnames
'
import
{
Button
,
Pagination
,
message
,
Modal
}
from
'
antd
'
import
{
StarFilled
}
from
'@
ant
-
design
/
icons
'
import
credit_icon
from
'@/
assets
/
imgs
/
credit_icon
.
png
'
import
styles
from
'
.
/
index
.
less
'
import
{
PublicApi
}
from
'@/
services
/
api
'
import
{
numFormat
}
from
'@/
utils
/
numberFomat
'
import
moment
from
'
moment
'
import
{
COMMODITY_TYPE
}
from
'@/
constants
'
import
{
GlobalConfig
}
from
'@/
global
/
config
'
const
Commodity
:
React
.
FC
=
()
=
>
{
const
[
list
,
setList
]
=
useState
([])
const
[
buyLoading
,
setBuyLoading
]
=
useState
<
boolean
>
(
false
)
const
[
current
,
setCurrent
]
=
useState
<
number
>
(
1
)
const
[
pageSize
,
setPageSize
]
=
useState
<
number
>
(
10
)
const
[
totalCount
,
setTotalCount
]
=
useState
<
number
>
(
0
)
useEffect
(()
=>
{
fetchCollectCommodityList
()
},
[
current
])
/**
* 获取收藏的商品列表
*/
const
fetchCollectCommodityList
=
()
=>
{
const
param
:
any
=
{
current
,
pageSize
}
PublicApi
.
getSearchShopCommodityCollectGetCommodityCollectList
(
param
).
then
(
res
=>
{
if
(
res
.
code
===
1000
)
{
setList
(
res
.
data
.
data
)
setTotalCount
(
res
.
data
.
totalCount
)
}
})
}
const
linkToDetail
=
(
detail
)
=>
{
const
param
:
any
=
{
commodityId
:
detail
.
commodity
.
id
,
type
:
detail
.
type
,
channelMemberId
:
detail
.
channelMemberId
}
setBuyLoading
(
true
)
PublicApi
.
getSearchShopCommonGetCommodityIsPublish
(
param
).
then
(
res
=>
{
setBuyLoading
(
false
)
if
(
res
.
code
===
1000
)
{
if
(
res
.
data
)
{
const
el
=
document
.
createElement
(
'a'
)
switch
(
detail
.
type
)
{
case
1
:
case
2
:
el
.
href
=
`/shop/commodity/detail?id=${detail.commodity.id}&shopId=${btoa(JSON.stringify({ shopId: detail.commodity.storeId, memberId: detail.commodity.memberId, roleId: detail.commodity.memberRoleId }))}`
;
break
case
3
:
el
.
href
=
`${GlobalConfig.channelRootRoute}/commodity/detail?id=${detail.commodity.id}&channelId=${btoa(JSON.stringify({ memberId: detail.channelMemberId }))}`
;
break
case
4
:
el
.
href
=
`${GlobalConfig.ichannelRootRoute}/commodity/detail?id=${detail.commodity.id}&channelId=${btoa(JSON.stringify({ memberId: detail.channelMemberId }))}`
;
break
case
5
:
el
.
href
=
`${GlobalConfig.channelRootRoute}/commodity/detail?id=${detail.commodity.id}&channelId=${btoa(JSON.stringify({ memberId: detail.channelMemberId }))}`
;
break
}
el
.
target
=
'_blank'
;
el
.
click
()
}
else
{
message
.
destroy
()
message
.
info
(
"该商品已下架"
)
}
}
})
}
const
renderBtn
=
(
priceType
,
commodity
)
=>
{
switch
(
priceType
)
{
case
COMMODITY_TYPE
.
prompt
:
return
<
Button
loading=
{
buyLoading
}
className=
{
styles
.
collection_state_wrap_btn
}
type=
"primary"
onClick=
{
()
=>
linkToDetail
(
commodity
)
}
>
再次购买
</
Button
>
case
COMMODITY_TYPE
.
integral
:
return
<
Button
loading=
{
buyLoading
}
className=
{
styles
.
collection_state_wrap_btn
}
type=
"primary"
onClick=
{
()
=>
linkToDetail
(
commodity
)
}
>
立即兑换
</
Button
>
case
COMMODITY_TYPE
.
inquiry
:
return
<
Button
loading=
{
buyLoading
}
className=
{
styles
.
collection_state_wrap_btn
}
type=
"primary"
onClick=
{
()
=>
linkToDetail
(
commodity
)
}
>
立即询价
</
Button
>
}
}
const
renderPrice
=
(
priceType
,
commodity
)
=>
{
switch
(
priceType
)
{
case
COMMODITY_TYPE
.
prompt
:
return
(
<
div
className=
{
styles
.
commodity_price
}
>
<
span
>
¥
</
span
>
<
label
>
{
commodity
.
min
===
commodity
.
max
?
numFormat
(
commodity
.
min
)
:
`${numFormat(commodity.min)}~${numFormat(commodity.max)}`
}
</
label
>
</
div
>
)
case
COMMODITY_TYPE
.
integral
:
return
(
<
div
className=
{
styles
.
commodity_point
}
>
{
commodity
.
min
===
commodity
.
max
?
numFormat
(
commodity
.
min
)
:
`${numFormat(commodity.min)}~${numFormat(commodity.max)}`
}
积分
</
div
>
)
case
COMMODITY_TYPE
.
inquiry
:
return
<
div
className=
{
styles
.
commodity_tag
}
>
在线询价
</
div
>
}
}
const
handleChange
=
(
page
)
=>
{
setCurrent
(
page
)
}
const
handleCancelCollect
=
(
detail
)
=>
{
Modal
.
confirm
({
centered
:
true
,
className
:
styles
.
mallComfirm
,
content
:
`是否要取消收藏?`
,
onOk
:
()
=>
{
return
new
Promise
((
resolve
,
reject
)
=>
{
const
param
:
any
=
{
commodityId
:
detail
.
commodity
.
id
,
type
:
detail
.
type
}
if
([
3
,
4
,
5
].
includes
(
detail
.
type
))
{
param
.
channelMemberId
=
detail
.
channelMemberId
}
PublicApi
.
postSearchShopCommodityCollectDeleteCommodityCollect
(
param
).
then
(
res
=>
{
if
(
res
.
code
===
1000
)
{
fetchCollectCommodityList
()
resolve
()
}
else
{
reject
()
}
}).
catch
(()
=>
{
reject
()
})
})
}
})
}
return
(
<>
<
div
className=
{
styles
.
commodity_list
}
>
{
list
&&
list
.
map
((
item
,
index
)
=>
(
<
div
className=
{
styles
.
commodity_list_item
}
key=
{
`commodity_list_item_${index}`
}
>
<
div
className=
{
cx
(
styles
.
commodity_list_item_item
,
styles
.
morehalf
)
}
>
<
div
className=
{
styles
.
shop_header_info
}
>
<
div
className=
{
styles
.
shop_header_info_logo
}
>
<
img
src=
{
item
.
commodity
.
mainPic
}
/>
</
div
>
<
div
className=
{
styles
.
shop_header_info_content
}
>
<
p
className=
{
styles
.
commodity_name
}
onClick=
{
()
=>
linkToDetail
(
item
)
}
>
{
item
.
commodity
.
name
}
</
p
>
<
ul
className=
{
styles
.
tags_list
}
>
{
item
.
commodity
.
sellingPoint
&&
item
.
commodity
.
sellingPoint
.
map
((
pointItem
,
pointIndex
)
=>
(
<
li
className=
{
styles
.
tags_list_item
}
key=
{
`tags_list_item_${pointIndex}`
}
>
{
pointItem
}
</
li
>
))
}
</
ul
>
</
div
>
</
div
>
</
div
>
<
div
className=
{
cx
(
styles
.
commodity_list_item_item
)
}
>
<
div
className=
{
styles
.
shop_header_info_content_about_item
}
>
<
i
className=
{
styles
.
icon
}
><
img
src=
{
credit_icon
}
/></
i
>
<
span
>
{
item
.
commodity
.
creditScore
||
0
}
</
span
>
</
div
>
<
div
className=
{
styles
.
commodity_shopname
}
>
{
item
.
commodity
.
memberName
}
</
div
>
</
div
>
<
div
className=
{
cx
(
styles
.
commodity_list_item_item
)
}
>
{
renderPrice
(
item
.
commodity
.
priceType
,
item
.
commodity
)
}
</
div
>
<
div
className=
{
cx
(
styles
.
commodity_list_item_item
)
}
>
<
span
className=
{
styles
.
date
}
>
{
moment
(
item
.
createTime
).
format
(
"YYYY-MM-DD HH:mm"
)
}
</
span
>
</
div
>
<
div
className=
{
cx
(
styles
.
commodity_list_item_item
)
}
>
<
div
className=
{
styles
.
collection_state_wrap
}
>
<
div
className=
{
cx
(
styles
.
collection_state
)
}
onClick=
{
()
=>
handleCancelCollect
(
item
)
}
>
<
StarFilled
/>
<
label
>
收藏
</
label
>
</
div
>
{
renderBtn
(
item
.
commodity
.
priceType
,
item
)
}
</
div
>
</
div
>
</
div
>
))
}
</
div
>
{
totalCount
>
0
&&
(
<
div
className=
{
styles
.
pagination_wrap
}
>
<
Pagination
showSizeChanger=
{
false
}
current=
{
current
}
total=
{
totalCount
}
pageSize=
{
pageSize
}
onChange=
{
handleChange
}
/>
</
div
>
)
}
</>
)
}
export default Commodity
=======
import
React
,
{
useEffect
,
useState
}
from
'react'
import
cx
from
'classnames'
import
{
Button
,
Pagination
,
message
,
Modal
}
from
'antd'
...
...
@@ -408,4 +203,3 @@ const Commodity: React.FC = () => {
}
export
default
Commodity
>>>>>>>
8bc729ca39f3083efcc57de080bd0dc3f290f344
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