import React, { Fragment, useRef, useMemo,useEffect,useState } from 'react'; import BasicCrudModal from '../../../../components/crud/BasicCrudModal'; import { Table, Card, Modal, Form, Input, Button, Row,Col, Timeline, message, Tabs,Image } from 'antd'; import {FileWordOutlined,FilePdfOutlined,FileZipOutlined,FileExcelOutlined } from '@ant-design/icons'; import { useSelector } from 'react-redux'; import ToolBar from './toolbar'; import ModalForm from './form'; import apiurl from '../../../../service/apiurl'; import usePageTable from '../../../../components/crud/usePageTable2'; import { createCrudService } from '../../../../components/crud/_'; import {CrudOpRender_text} from '../../../../components/crud/CrudOpRender'; const url = "http://223.75.53.141:9102/test.by-lyf.tmp" const Page = () => { const role = useSelector(state => state.auth.role); const editBtn = role?.rule?.find(item => item.menuName == "编辑"); const viewBtn = role?.rule?.find(item => item.menuName == "查看"); const delBtn = role?.rule?.find(item => item.menuName == "删除"); const refModal = useRef(); const [searchVal, setSearchVal] = useState(false) const [iframeSrc, setIframeSrc] = useState('') const [pdfViewOPen, setPdfViewOPen] = useState(false) const [isFetch, setIsFetch] = useState(false) const columns = [ { title: '序号', key: 'inx', dataIndex: 'inx', width: 60, align:"center" }, { title: '名称', key: 'name', dataIndex: 'name', width: 250, ellipsis: true }, { title: '发生日期', key: 'eventsDate', dataIndex: 'eventsDate', width: 140, }, { title: '事件类型', key: 'eventsType', dataIndex: 'eventsType', width: 140, render: (value) => {value == 1 ? "综合大事记" : value == 2 ? "专题大事记" : ''}, }, { title: '事件内容描述', key: 'eventsDesc', dataIndex: 'eventsDesc', width: 300}, { title: '操作', key: 'operation', width: 240, fixed: 'right',align: 'center', render: (value, row, index) => ( () => command(cmd)(row)} />) }, ]; const width = useMemo(() => columns.reduce((total, cur) => total + (cur.width), 0), [columns]); const command = (type) => (params) => { if (type === 'save') { refModal.current.showSave(); } else if (type === 'edit') { refModal.current.showEdit({ ...params }); } else if (type === 'view') { refModal.current.showView(params); } else if (type === 'del') { refModal.current.onDeleteGet(apiurl.rcgl.gcdsj.delete + `/${params.id}`); } } const download = (params) => { let downloadLink = document.createElement("a"); downloadLink.href = `http://local.gunshiiot.com:18083/gunshiApp/xyt/projectEvents/file/download/${params}`; downloadLink.download = `${params.fileName}`; downloadLink.style.display = "none"; // 将链接添加到页面中 document.body.appendChild(downloadLink); // 模拟点击事件,开始下载 downloadLink.click(); } const { tableProps, search, refresh } = usePageTable(createCrudService(apiurl.rcgl.gcdsj.page).find_noCode); /** * @description 处理成功的回调 */ const successCallback = () => { refresh() setIsFetch(!isFetch) } const viewPdf = (params) => { setIframeSrc(params) setPdfViewOPen(true) } useEffect(()=>{ const params = { search: { ...searchVal, } }; search(params) }, [searchVal]) return ( <>
{tableProps.dataSource.map((item, index) => (
{item.eventsDate}
{item.eventsDesc}
附件: { item.files.length > 0 && item.files.map(file => { return (
{file.fileName.indexOf('.docx') > -1 ?
{ download(file.fileId) }} style={{ cursor: 'pointer' }} >
: file.fileName.indexOf('.pdf') > -1 ?
{ viewPdf(file?.fileId) }} style={{ cursor: 'pointer' }} >
: file.fileName.indexOf('.zip') > -1 ?
{ download(file?.fileId) }} style={{ cursor: 'pointer' }} >
: file.fileName.indexOf('.xlsx') > -1 ?
{ download(file?.fileId) }} style={{ cursor: 'pointer' }} >
: } {file.fileName}
) }) } ))} {refresh({addvcd:localStorage.getItem('ADCD6')})}} /> { setPdfViewOPen(false) }} >