import {getDetailList, delDetail, getDetail, getPointByUuid} from '../../../services/measure/analysis' import { useState, useEffect } from 'react' import {message, Button, type TableColumnsType, type TableProps, Modal, Table, Pagination, Input } from 'antd'; import { useNavigate } from 'react-router-dom'; import type { DetailTable, SearchParams } from "../../../services/measure/type"; import { ExclamationCircleFilled } from '@ant-design/icons'; export default function MeasureDetail() { const navigate = useNavigate(); const { Search } = Input; function onToMeasure(){ navigate('/measure/config') } useEffect(()=>{ const params = { pageSize, pageNum, } getDetailDataList(params) }, []) const [selectRows, setSelectedRow] = useState([]) const [selectedRowKeys, setSelectedRowKeys] = useState([]); const rowSelection = { selectedRowKeys, onChange: (selectedRowKeys: React.Key[], selectedRows: DetailTable[]) => { console.log(`selectedRowKeys: ${selectedRowKeys}`, 'selectedRows: ', selectedRows); setSelectedRow(selectedRows) setSelectedRowKeys(selectedRowKeys) }, getCheckboxProps: (record: DetailTable) => ({ name: record.name, }), }; const columns: TableColumnsType = [ { title: '序号', dataIndex: 'seq', render:(_, record, index)=>{ return index + 1 } }, { title: '测量名称', dataIndex: 'name', }, { title: '线路名称', dataIndex: 'lineName', }, { title: '位置', dataIndex: 'location', }, { title: '轨型', dataIndex: 'trackShapeCode', render:(_, record)=>{ const trackShapeCode = record.trackShapeCode return trackShapeCode ? trackShapeCode : '无' } }, { title: '方向', dataIndex: 'direction', render:(_, record)=>{ const direction = record.direction return direction ? direction : '无' } }, { title: '创建者', dataIndex: 'operatorName', }, { title: '时间', dataIndex: 'createTime', }, // { // title: '操作', // dataIndex: 'op', // width:180, // align:'center', // render:(_, record)=>{ // return
// //
// //
// //
// } // }, ]; const [tableData, setTableData] = useState([]) const [total, setTotal] = useState(0) const getDetailDataList = (params:SearchParams) => { setLoading(true) getDetailList(params).then(res => { if(res.success){ setLoading(false) //@ts-ignore setTableData(res.data.list) setTotal(res.data.total) }else{ // setTableData(detailList) } }).catch(e=>{ //如果接口异常,则使用mock数据 // setTableData(detailList) }).finally(()=>{ setLoading(false) }) } const [selectionType, setSelectionType] = useState<'checkbox'>('checkbox'); const { confirm } = Modal; const onBatchDel = () => { confirm({ title: '提示', icon: , content: '请确认是否删除选中的数据', okText:'确认', cancelText:'取消', onOk() { onHandelDelData() }, onCancel() { console.log('Cancel'); }, }); } const onDel = (item:DetailTable) => { confirm({ title: '提示', icon: , content: '请确认是否删除选中的数据', okText:'确认', cancelText:'取消', onOk() { doDel({ids:item.id}) }, onCancel() { console.log('Cancel'); }, }); } const onShowDetail = (item:DetailTable)=> { message.warning('正在开发中') return; getDetail({id:item.id}).then(res=>{ console.log('res==测量记录详情=', res) if(res){ //@ts-ignore getRecordByUuid(res.data.uuid) } }) } const onDetaiResult = (item:DetailTable) => { message.warning('正在开发中') return; } const getRecordByUuid = (uuid:string) => { getPointByUuid({uuid}).then(res=>{ console.log('=========================', res) }) } type DelParams = { ids: string | number; } const onHandelDelData = () =>{ let list = [...selectRows] const ids = list.map(item => item.id) if(!ids || !ids.length){ return; } const params = { ids:ids.join(',') } doDel(params) } const doDel = (params:DelParams) => { delDetail(params).then(res => { if(res.success){ message.success('删除成功') const params = { pageSize, pageNum, } getDetailDataList(params) setSelectedRowKeys([]) setSelectedRow([]) } }).catch(e=> { //删除mock的数据 // const filterList = tableData && tableData.filter(item => !ids.includes(item.id)) // setTableData(filterList) // message.success('删除成功') // setSelectedRow([]) }) } const [pageNum, setPageNum] = useState(1) const [pageSize, setPageSize] = useState(5) const onPageChange = (pageNumValue:number, pageSizeValue:number) => { setPageNum(pageNumValue) setPageSize(pageSizeValue) searchParams = { ...searchParams, pageSize:pageSizeValue, pageNum:pageNumValue, } getDetailDataList(searchParams) } const [name, setName] = useState() const [lineName, setLineName] = useState() let searchParams:SearchParams = { pageNum, pageSize, } const onSearch = ()=> { setPageNum(1) setPageSize(5) searchParams = { pageSize, pageNum: 1, name, lineName } getDetailDataList(searchParams) } let [loading, setLoading] = useState(false) return (
setName(e.target.value)} style={{ width: 200 }}/> setLineName(e.target.value)} style={{ width: 200 }}/>
locale={{ emptyText: '无数据', }} loading={loading} rowSelection={{ type: selectionType, ...rowSelection }} columns={columns} rowKey="id" dataSource={tableData && tableData.map(item => ({ ...item, key: item.name }))} pagination={false} scroll={{ y: 550 }} />
); }