import useNewToken from "@/Hook/useNewToken" import { App, Button, Card, Col, Input, Row, Select, Tabs } from "antd" import { useEffect, useState } from "react" import SearchBox from "../../components/searchBox" import style from './index.less' import SelectTag from "./selectTag" import Right from "./right" import Left from "./left" import AddEditSc from "./addEditSc" import { inject, observer } from "mobx-react" import { toJS } from "mobx" import { delMsgTemplateApi, getTemplateListApi, GetTemplateListProps, MEDIATYPE } from "../../API/weMaterial/weMaterial" import { ExclamationCircleFilled } from '@ant-design/icons'; import { useAjax } from "@/Hook/useAjax" import { PlusOutlined } from '@ant-design/icons'; import { randomString } from "@/utils/utils" /** * 素材管理 * @returns */ function WeMaterial(props: { store: any }) { const globaStoreData = toJS(props.store.data) /***********************/ const { token } = useNewToken() const { message, modal } = App.useApp(); const [queryForm, setQueryForm] = useState({ pageNum: 1, pageSize: 20, isPersonal: '1' }) const [data, setData] = useState([]) const [selectData, setSelectData] = useState({}) const [scShow, setScShow] = useState(false) // 素材新增修改控制 const [copyData, setCopyData] = useState() const getTemplateList = useAjax((params) => getTemplateListApi(params)) const delMsgTemplate = useAjax((params) => delMsgTemplateApi(params)) /***********************/ useEffect(() => { getList() }, [queryForm]) const getList = () => { getTemplateList.run(queryForm).then(res => { if (res) { if (queryForm.pageNum === 1) { setData(res?.data?.records) if (!(selectData && res?.data?.records?.find((item: any) => item.id == selectData.id))) { setSelectData(res?.data?.records[0]) } } else { setData(data.concat(res?.data?.records)) } } }) } // 下一页 const loadMoreData = () => { setQueryForm({ ...queryForm, pageNum: queryForm.pageNum + 1 }) } // 删除 const del = (id: number, name: string) => { modal.confirm({ title: '确定删除?', icon: , content: `是否确定删除 [${name}] 素材模板`, okType: 'danger', onOk() { delMsgTemplate.run(id).then(res => { message.success('删除成功') let newData = data?.filter(item => item.id !== id) if (selectData.id === id) { setSelectData(newData[0]) } setData(newData) }) } }); } return { setQueryForm({ ...queryForm, isPersonal: e as any, pageNum: 1, pageSize: 20 }) }} />} styles={{ body: { padding: 0 } }} > {scShow && { setScShow(false) setCopyData(undefined) }} onChange={() => { if (queryForm.pageNum === 1) { getList() } else { setQueryForm({ ...queryForm, pageNum: 1, pageSize: 20 }); } setScShow(false) setCopyData(undefined) }} />} }> <> { setQueryForm({ ...queryForm, mediaTitle: e, pageNum: 1, pageSize: 20 }); }} /> { setQueryForm({ ...queryForm, mediaTagId: id, pageNum: 1, pageSize: 20 }); }} /> { setCopyData({ mediaTitle: data?.mediaTitle + '副本' + randomString(true, 2, 5), mediaTagIds: data?.mediaTagIds ? data?.mediaTagIds?.map((id: string, index: number) => ({ tagId: id, tagName: data.mediaTagNames[index] })) : [], mediaContentDTOList: data.corpMediaContentVOList }) setScShow(true) }} selectData={selectData} setSelectData={setSelectData} token={token} data={data} onChange={(value) => setSelectData(value)} loading={getTemplateList.loading} loadMore={loadMoreData} setQueryForm={setQueryForm} total={data?.length || 0} /> {!globaStoreData?.isMobile && { if (queryForm.pageNum === 1) { getList() } else { setQueryForm({ ...queryForm, pageNum: 1, pageSize: 20 }); } }} token={token} value={selectData} />} } export default inject('store')(observer((props: any) => WeMaterial({ store: props.store.globaStore })))