Commit f0fe2832 authored by GuanHua's avatar GuanHua

feat:商品收藏修改和资讯搜索修改

parent 96675f1e
......@@ -6,11 +6,12 @@ interface SignModalPropsType {
visible: boolean,
onOk?: Function,
onCancel?: Function,
contractUrl?: string
contractUrl?: string,
loading: boolean;
}
const SignModal: React.FC<SignModalPropsType> = (props) => {
const { visible, onOk, onCancel, contractUrl } = props
const { visible, onOk, onCancel, contractUrl, loading } = props
const iframeRef = useRef<HTMLIFrameElement>(null)
// const iframeScrollBottom = () => {
......@@ -31,6 +32,8 @@ const SignModal: React.FC<SignModalPropsType> = (props) => {
className={styles.sign_modal}
title="签署电子合同"
width={1000}
maskClosable={false}
confirmLoading={loading}
visible={visible}
centered
okText="签署合同并提交"
......
......@@ -6,19 +6,24 @@ import { getAuth } from '@/utils/auth'
import { PublicApi } from '@/services/api'
import styles from './index.less'
import { message } from 'antd'
import { LAYOUT_TYPE, COMMODITY_TYPE } from '@/constants'
interface imgItemType {
id: number;
commodityPic: string;
}
interface ExhibitionPropsType {
imgList: imgItemType[];
commodityDetail: GetSearchShopStoreGetCommodityDetailResponse
commodityDetail: GetSearchShopStoreGetCommodityDetailResponse;
layoutType: LAYOUT_TYPE;
priceType: number;
shopInfo: any
}
const Exhibition: React.FC<ExhibitionPropsType> = (props) => {
const { imgList = [], commodityDetail } = props
const { imgList = [], commodityDetail, layoutType, priceType, shopInfo } = props
const [previewImg, setPreviewImg] = useState<any>()
const [offSetLeft, setOffSetLeft] = useState<number>(0)
const [collectState, setCollectState] = useState<boolean>(false)
......@@ -26,6 +31,7 @@ const Exhibition: React.FC<ExhibitionPropsType> = (props) => {
let collectFlg = true
useEffect(() => {
if (commodityDetail) {
console.log(shopInfo)
getCollectState()
}
}, [commodityDetail])
......@@ -51,13 +57,44 @@ const Exhibition: React.FC<ExhibitionPropsType> = (props) => {
}
}
const getLayoutType = () => {
switch (layoutType) {
case LAYOUT_TYPE.mall:
return 1
case LAYOUT_TYPE.shop:
if (priceType === COMMODITY_TYPE.integral) {
return 2
} else {
return 1
}
case LAYOUT_TYPE.channel:
if (priceType === COMMODITY_TYPE.integral) {
return 5
} else {
return 3
}
case LAYOUT_TYPE.ichannel:
if (priceType === COMMODITY_TYPE.integral) {
return 5
} else {
return 4
}
default:
return 1
}
}
/**
* 获取收藏状态
*/
const getCollectState = () => {
if (getAuth()) {
let param: any = {
commodityId: commodityDetail.id,
type: getLayoutType()
}
//@ts-ignore
PublicApi.getSearchShopCommodityCollectGetCommodityCollect({ commodityId: commodityDetail.id }).then(res => {
PublicApi.getSearchShopCommodityCollectGetCommodityCollect(param).then(res => {
if (res.code === 1000) {
setCollectState(res.data.isCollect)
setCollectCount(res.data.count)
......@@ -84,7 +121,13 @@ const Exhibition: React.FC<ExhibitionPropsType> = (props) => {
collectFlg = false
let postFn;
let param: any = {
commodityId: commodityDetail.id
commodityId: commodityDetail.id,
type: getLayoutType()
}
console.log([3, 4, 5].includes(getLayoutType()))
if ([3, 4, 5].includes(getLayoutType())) {
console.log(shopInfo.memberId, " shopInfo.memberId")
param.channelMemberId = shopInfo.memberId
}
if (collectState) {
postFn = PublicApi.postSearchShopCommodityCollectDeleteCommodityCollect
......
......@@ -650,7 +650,7 @@ const CommodityDetail = (props) => {
<div className={styles.commodity_detail}>
<div className={styles.commodity_detail_container}>
<div className={styles.commodity_detail_info}>
<Exhibition imgList={commodityImgList} commodityDetail={commodityDetail} />
<Exhibition layoutType={layoutType} shopInfo={shopInfo} priceType={commodityDetail?.priceType} imgList={commodityImgList} commodityDetail={commodityDetail} />
<div className={styles.product_info_container}>
<div className={styles.product_info}>
<div className={styles.product_info_name}>
......
......@@ -146,7 +146,7 @@ const InformationSearch: React.FC<InformationPropsType> = (props) => {
param.title = keyword
}
if (labelName && labelId) {
param.columnId = labelId
param.labelId = labelId
}
//@ts-ignore
......
@import '../common.less';
.contract {}
\ No newline at end of file
.checkbox_contract_text {
&:hover {
color: var(--mall_main_color);
}
}
\ No newline at end of file
import React from 'react'
import React, { useEffect } from 'react'
import { Tooltip, Checkbox } from 'antd'
import { QuestionCircleOutlined } from '@ant-design/icons'
import styles from './index.less'
......@@ -6,11 +6,13 @@ import styles from './index.less'
interface ContractPropsType {
state: boolean;
onChange: Function;
contractInfo: any
}
const Contract: React.FC<ContractPropsType> = (props) => {
const { state, onChange } = props
const { state, onChange, contractInfo } = props
return (
<div className={styles.contract}>
<div className={styles.common_title}>
......@@ -23,7 +25,9 @@ const Contract: React.FC<ContractPropsType> = (props) => {
<Checkbox checked={state} onChange={(e) => onChange(e.target.checked)}>
<span>我同意签订:</span>
</Checkbox>
<span className={styles.checkbox_contract_text}> 《广州白马皮具交易中心商品购销合同.pdf》</span>
{
contractInfo && <a href={contractInfo?.contractUrl} download target="_blank" className={styles.checkbox_contract_text}>{contractInfo?.contractName}</a>
}
</div>
</div>
)
......
This diff is collapsed.
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