/* * @Author: your name * @Date: 2021-12-07 09:28:41 * @LastEditTime: 2022-02-28 14:11:18 * @LastEditors: Please set LastEditors * @Description: 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE * @FilePath: /MedicalWisdomCheckSys/src/pages/GradeHospitalAccreditation/accreditationDetail/components/materialTable/index.tsx */ import React, { useEffect, useState,useRef } from 'react'; import MccsSelect from '@/components/MccsProFormSelect/index'; import { Input, Row, Col, Button, Checkbox, Divider, Pagination, Empty,Spin,Tooltip } from 'antd'; import './style.less'; import { CheckboxChangeEvent } from 'antd/lib/checkbox'; const { Search } = Input; const TableItem: React.FC = ({ data, actionHandle,checkBoxChangeHandle }) => { //注意!!!!data类型有待补充 const textWraperSpanRef = useRef(null); const subTextRef = useRef(null); const [ifShowTip,setIfShowTip] = useState(false); const [ifHasMore,setifHasMore] = useState(false); const onVisibleChangeHanfle = (bool:boolean)=>{ if(bool){ setIfShowTip(ifHasMore); }else{ setIfShowTip(false); } } useEffect(()=>{ if(textWraperSpanRef.current&&subTextRef.current){ setifHasMore(textWraperSpanRef.current['clientWidth'] > subTextRef.current['clientWidth']) } },[]); return (
{ //用于测量渲染出文案的长度 }
{`档次:${data.grade} 目录:${data.directory}`}
checkBoxChangeHandle(e,data)} />
{(data.sort&&data.profileName)&&
{`${data.sort}.${data.profileName}`}
}
{`档次:${data.grade} 目录:${data.directory}`}
actionHandle('EDIT',[data])}>修改 actionHandle('DEL',[data])}>删除
) } const MaterialTable: React.FC = (props) => { const { selectOptions, request, addHandle, tableItemActionHandle } = props; const [list, setList] = useState([]); const [selectorFilter, setSelectorFilter] = useState(''); //下拉筛选 const [keyword, setKeyword] = useState(''); const [relaodData, setRelaodData] = useState(false); const [loading,setLoading] = useState(false); //加载中 const [pageData, setPageData] = useState<{ pageSize: number, current: number, }>({ current: 1, pageSize: 10 }); const [total,setTotal] = useState(0); const [checkedList,setCheckedList] = useState([]); //已勾选的项集合 const geData = async () => { if (request) { setLoading(true); const res = await request({ ...pageData, keyword, selectorFilter:selectorFilter=='全部'?'':selectorFilter }); if (res) { setList(res.list); setPageData({ pageSize: res.pageSize, current: res.current }); setTotal(res.total); setRelaodData(false); setLoading(false); } } } const tableItemAction = async (type: 'EDIT' | 'DEL', data: any[]) => { if (tableItemActionHandle) { const resp = await tableItemActionHandle(type, data); if (resp) { geData(); } } } const checkBoxChangeHandle = (e:CheckboxChangeEvent,data:any)=>{ if(e.target.checked){ setCheckedList([...checkedList,data]); }else{ let _checkedList = checkedList; _checkedList.splice(_checkedList.findIndex(t=>t.id == data.id),1); setCheckedList([..._checkedList]); } } //批量删除 const batchDelList = async ()=>{ if (tableItemActionHandle) { const resp = await tableItemActionHandle('DEL',checkedList); if (resp) { geData(); setCheckedList([]); } } } useEffect(() => { //刷新数据 if (relaodData) { geData(); } }, [relaodData]); useEffect(() => { if (props.reload) { setRelaodData(true); } }, [props]); useEffect(() => { geData(); }, []) return (
{ setSelectorFilter(val); setRelaodData(true); } }} /> { setKeyword(val); setRelaodData(true); }} onChange={e => { const key = e.target.value; if (!key || key.length == 0) { setKeyword(key); setRelaodData(true); } }} />
资料目录
{checkedList.length>0&&}
{loading&&
} { (list.length == 0&&!loading) && ( ) } { !loading&&list.map((item, index) => ( )) }
{/* */} { setPageData({ current:page, pageSize:pageSize?pageSize:10 }); setRelaodData(true); }} defaultCurrent={3} total={total} />
10条/页
) } export default MaterialTable;