import React, { useCallback, useEffect, useState } from "react" import { Card, Col, Empty, Modal, Pagination, Row, Tabs, Tag, Image, Input, message, Button, Space } from "antd" import { useModel } from 'umi' import FlieBox from '@/components/FileBox' const { TabPane } = Tabs import style from './index.less' type Props = { mediaType: number, visible: boolean, onOk: (url: string, type?: number) => void, onCancel: () => void, title: string, actionKey?: string, isShowWx?: boolean, isAllData?: boolean, noFile?: boolean//是否禁止选择文件夹 } let config2 = { 1: 'image', 2: 'voice', 3: 'video', 5: 'news', 6: 'knews' } const SmModalBox = (props: Props) => { const { mediaType, visible, onOk, onCancel, title, actionKey, isShowWx = true, isAllData = false, noFile = false } = props const { getWeData, update } = useModel('useOperating.useMaterialContent', model => ({ getWeData: model.getWeData, update: model.update, })) const { actionWX } = useModel('useOperating.useWxGroupList', model => ({ actionWX: model.state.actionWX })) const { state, set, getList, init, typeEnum } = useModel('useOperating.useBdMediaPup') const { fileType, belongUser, parentId, selectItem } = state const [actionData, setActionData] = useState(null) const [action, setAction] = useState('') const [page, setPage] = useState(1)//页码 const [qqLink, setQqLink] = useState('') // let ok = useCallback(() => { if (!actionKey) { if (isAllData) { if (belongUser == 0 || belongUser == 1) { if (selectItem && Object.keys(selectItem).length > 0) { onOk(selectItem, mediaType) } else { message.error('选择本地图片') } } else if (belongUser == 3) { if (actionData) { onOk(actionData, mediaType) } else { message.error('选择微信图片') } } } else { if (action) { onOk(action, mediaType) } } } else if (actionKey === '1') { if (qqLink) { onOk(qqLink) } else { message.error('地址不正确') } } }, [actionKey, actionData, selectItem, belongUser]) useEffect(() => { if (belongUser == 0 || belongUser == 1) { getList() } else if (belongUser == 3) { setPage(1) getWeData.run({ mpId: actionWX?.id, pageSize: 20, pageNum: 1, mediaType: config2[mediaType] }) } }, [fileType, belongUser, parentId, actionWX?.id]) useEffect(() => { init({ fileType: config2[mediaType] }) }, [mediaType]) // 分页 let wxpageSizeChange = useCallback((page: number, pageSize?: number) => { setPage(page) if (actionWX?.id) { getWeData.run({ mpId: actionWX?.id, pageSize: pageSize, pageNum: page, mediaType: config2[mediaType] }) } }, [mediaType, actionWX]) //选中图片 let handleClick = useCallback((url, data?: any) => { setAction(url) setActionData(data) }, []) //qq视频 const qqLinkChange = useCallback((e: React.ChangeEvent) => { let v = e.target.value let arr = v.split('/') let vid = arr[arr.length - 1].replace('.html', '') if (v.search(/http[s]?:\/\/v.qq.com[\S]*.html/ig) !== -1) { setQqLink(`https://v.qq.com/iframe/player.html?vid=${vid}&auto=0`) } }, []) // 更新公众号下素材 let sync = useCallback(() => { update.run({ mpId: actionWX?.id, mediaType: config2[mediaType] }).then((res) => { if (res) { setPage(0) if (actionWX?.id) { getWeData.run({ mpId: actionWX?.id, pageSize: 20, pageNum: 1, mediaType: config2[mediaType] }) } } }) }, [update, actionWX?.id, mediaType]) let Tags = (props: { url: string, data?: { title?: string, name?: string } }) => { switch (mediaType) { case 1: return handleClick(props.url, props?.data)} /> case 3: return
handleClick(props.url, props?.data)}>
default: return
handleClick(props.url, props?.data)}>
} } return { !actionKey && <> { set({ belongUser: activeKey }) }} activeKey={belongUser} tabBarExtraContent={ { belongUser === '3' ? : '' } } > { isShowWx && { getWeData?.data?.records?.length > 0 ? { getWeData?.data?.records?.map((item: any) => { return }) } : } 总共{total}数据} /> } } { (belongUser == 1 || belongUser == 0) && !actionKey && } { actionKey === '1' &&