Commit 3b303fb8 authored by XieZhiXiong's avatar XieZhiXiong

修复冲突

parent a22e7e1d
<<<<<<< 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
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment