import { Button, Image, message, Modal, Space, Tabs, Tooltip } from "antd" import React, { useEffect, useState } from "react" import { useModel } from "umi" import FileBoxAD from "@/components/FileBoxAD" import { CloseCircleFilled, QuestionCircleFilled } from "@ant-design/icons" import style from './index.less' import LookLanding from "../lookLanding" interface Props { visible?: boolean, onChange?: (content: string[]) => void, onClose?: () => void, sliderImgContent?: { url: string, width?: number, height?: number }[] isBack?: boolean } /** * 选择素材 * @returns */ const SelectCloud: React.FC = (props) => { /**================================**/ const { visible, onChange, onClose, sliderImgContent, isBack = true } = props const { state, set, getList } = useModel('useLaunchAdq.useBdMediaPup') const { mediaType, belongUser, parentId, selectItem, num } = state const [lookVisible, setLookVisible] = useState(false) const [id, setId] = useState(0) /**================================**/ useEffect(() => { if (sliderImgContent && sliderImgContent?.length > 0) { setTimeout(() => { set({ selectItem: sliderImgContent }) }, 100) } else { setTimeout(() => { set({ selectItem: [] }) }, 100) } }, []) const handleOk = () => { if (selectItem && selectItem?.length > 0) { onChange && onChange(selectItem) } else { message.error('请选择') } } /**加载组件或数据更新执行请求列表 */ useEffect(() => { if (belongUser === '1' || belongUser === '0') { getList() } }, [mediaType, belongUser, parentId]) const clearImg = (id: number) => { set({ selectItem: selectItem?.filter(item => item.id !== id) }) } return 选择素材 {(selectItem && num && selectItem?.length > 0 && num > 1) &&
{mediaType === 'IMG' ?
{selectItem?.map((item: any, index: number) => (
{ clearImg(item?.id) }} />
))}
已选:{selectItem.length}
: selectItem?.map((item: any, index: number) => (
{ clearImg(item?.id) }} />
))}
} } visible={visible} onOk={handleOk} onCancel={() => { onClose && onClose() }} width={1200} destroyOnClose maskClosable={false} bodyStyle={{ padding: 0 }} > { set({ belongUser: activeKey }) }} activeKey={belongUser} style={{ margin: '0 24px' }} tabBarExtraContent={ { mediaType === 'PAGE' ? null : } }> { setId(data || 0) if (type === 1) { setLookVisible(true) } }} /> {/* 查看落地页 */} {lookVisible && setLookVisible(false)} id={id} />}
} export default React.memo(SelectCloud)