Commit f0fe2832 authored by GuanHua's avatar GuanHua

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

parent 96675f1e
...@@ -6,11 +6,12 @@ interface SignModalPropsType { ...@@ -6,11 +6,12 @@ interface SignModalPropsType {
visible: boolean, visible: boolean,
onOk?: Function, onOk?: Function,
onCancel?: Function, onCancel?: Function,
contractUrl?: string contractUrl?: string,
loading: boolean;
} }
const SignModal: React.FC<SignModalPropsType> = (props) => { 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 iframeRef = useRef<HTMLIFrameElement>(null)
// const iframeScrollBottom = () => { // const iframeScrollBottom = () => {
...@@ -31,6 +32,8 @@ const SignModal: React.FC<SignModalPropsType> = (props) => { ...@@ -31,6 +32,8 @@ const SignModal: React.FC<SignModalPropsType> = (props) => {
className={styles.sign_modal} className={styles.sign_modal}
title="签署电子合同" title="签署电子合同"
width={1000} width={1000}
maskClosable={false}
confirmLoading={loading}
visible={visible} visible={visible}
centered centered
okText="签署合同并提交" okText="签署合同并提交"
......
...@@ -6,19 +6,24 @@ import { getAuth } from '@/utils/auth' ...@@ -6,19 +6,24 @@ import { getAuth } from '@/utils/auth'
import { PublicApi } from '@/services/api' import { PublicApi } from '@/services/api'
import styles from './index.less' import styles from './index.less'
import { message } from 'antd' import { message } from 'antd'
import { LAYOUT_TYPE, COMMODITY_TYPE } from '@/constants'
interface imgItemType { interface imgItemType {
id: number; id: number;
commodityPic: string; commodityPic: string;
} }
interface ExhibitionPropsType { interface ExhibitionPropsType {
imgList: imgItemType[]; imgList: imgItemType[];
commodityDetail: GetSearchShopStoreGetCommodityDetailResponse commodityDetail: GetSearchShopStoreGetCommodityDetailResponse;
layoutType: LAYOUT_TYPE;
priceType: number;
shopInfo: any
} }
const Exhibition: React.FC<ExhibitionPropsType> = (props) => { const Exhibition: React.FC<ExhibitionPropsType> = (props) => {
const { imgList = [], commodityDetail } = props const { imgList = [], commodityDetail, layoutType, priceType, shopInfo } = props
const [previewImg, setPreviewImg] = useState<any>() const [previewImg, setPreviewImg] = useState<any>()
const [offSetLeft, setOffSetLeft] = useState<number>(0) const [offSetLeft, setOffSetLeft] = useState<number>(0)
const [collectState, setCollectState] = useState<boolean>(false) const [collectState, setCollectState] = useState<boolean>(false)
...@@ -26,6 +31,7 @@ const Exhibition: React.FC<ExhibitionPropsType> = (props) => { ...@@ -26,6 +31,7 @@ const Exhibition: React.FC<ExhibitionPropsType> = (props) => {
let collectFlg = true let collectFlg = true
useEffect(() => { useEffect(() => {
if (commodityDetail) { if (commodityDetail) {
console.log(shopInfo)
getCollectState() getCollectState()
} }
}, [commodityDetail]) }, [commodityDetail])
...@@ -51,13 +57,44 @@ const Exhibition: React.FC<ExhibitionPropsType> = (props) => { ...@@ -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 = () => { const getCollectState = () => {
if (getAuth()) { if (getAuth()) {
let param: any = {
commodityId: commodityDetail.id,
type: getLayoutType()
}
//@ts-ignore //@ts-ignore
PublicApi.getSearchShopCommodityCollectGetCommodityCollect({ commodityId: commodityDetail.id }).then(res => { PublicApi.getSearchShopCommodityCollectGetCommodityCollect(param).then(res => {
if (res.code === 1000) { if (res.code === 1000) {
setCollectState(res.data.isCollect) setCollectState(res.data.isCollect)
setCollectCount(res.data.count) setCollectCount(res.data.count)
...@@ -84,7 +121,13 @@ const Exhibition: React.FC<ExhibitionPropsType> = (props) => { ...@@ -84,7 +121,13 @@ const Exhibition: React.FC<ExhibitionPropsType> = (props) => {
collectFlg = false collectFlg = false
let postFn; let postFn;
let param: any = { 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) { if (collectState) {
postFn = PublicApi.postSearchShopCommodityCollectDeleteCommodityCollect postFn = PublicApi.postSearchShopCommodityCollectDeleteCommodityCollect
......
...@@ -650,7 +650,7 @@ const CommodityDetail = (props) => { ...@@ -650,7 +650,7 @@ const CommodityDetail = (props) => {
<div className={styles.commodity_detail}> <div className={styles.commodity_detail}>
<div className={styles.commodity_detail_container}> <div className={styles.commodity_detail_container}>
<div className={styles.commodity_detail_info}> <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_container}>
<div className={styles.product_info}> <div className={styles.product_info}>
<div className={styles.product_info_name}> <div className={styles.product_info_name}>
......
...@@ -146,7 +146,7 @@ const InformationSearch: React.FC<InformationPropsType> = (props) => { ...@@ -146,7 +146,7 @@ const InformationSearch: React.FC<InformationPropsType> = (props) => {
param.title = keyword param.title = keyword
} }
if (labelName && labelId) { if (labelName && labelId) {
param.columnId = labelId param.labelId = labelId
} }
//@ts-ignore //@ts-ignore
......
@import '../common.less'; @import '../common.less';
.contract {} .checkbox_contract_text {
\ No newline at end of file &: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 { Tooltip, Checkbox } from 'antd'
import { QuestionCircleOutlined } from '@ant-design/icons' import { QuestionCircleOutlined } from '@ant-design/icons'
import styles from './index.less' import styles from './index.less'
...@@ -6,11 +6,13 @@ import styles from './index.less' ...@@ -6,11 +6,13 @@ import styles from './index.less'
interface ContractPropsType { interface ContractPropsType {
state: boolean; state: boolean;
onChange: Function; onChange: Function;
contractInfo: any
} }
const Contract: React.FC<ContractPropsType> = (props) => { const Contract: React.FC<ContractPropsType> = (props) => {
const { state, onChange } = props const { state, onChange, contractInfo } = props
return ( return (
<div className={styles.contract}> <div className={styles.contract}>
<div className={styles.common_title}> <div className={styles.common_title}>
...@@ -23,7 +25,9 @@ const Contract: React.FC<ContractPropsType> = (props) => { ...@@ -23,7 +25,9 @@ const Contract: React.FC<ContractPropsType> = (props) => {
<Checkbox checked={state} onChange={(e) => onChange(e.target.checked)}> <Checkbox checked={state} onChange={(e) => onChange(e.target.checked)}>
<span>我同意签订:</span> <span>我同意签订:</span>
</Checkbox> </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>
</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