import {getDetailList, delDetail} from '../../../services/measure/analysis' import { useState, useEffect } from 'react' import {message, Button, type TableColumnsType, type TableProps, Modal, Table } from 'antd'; import { useNavigate } from 'react-router-dom'; import type { DetailTable } from "../../../services/measure/type"; import { ExclamationCircleFilled } from '@ant-design/icons'; export default function MeasureDetail() { const navigate = useNavigate(); function onToMeasure(){ navigate('/measure/config') } useEffect(()=>{ getDetailDataList() }, []) const [selectRows, setSelectedRow] = useState([]) const rowSelection: TableProps['rowSelection'] = { onChange: (selectedRowKeys: React.Key[], selectedRows: DetailTable[]) => { console.log(`selectedRowKeys: ${selectedRowKeys}`, 'selectedRows: ', selectedRows); setSelectedRow(selectedRows) }, getCheckboxProps: (record: DetailTable) => ({ name: record.name, }), }; const columns: TableColumnsType = [ { title: '测量名称', dataIndex: 'name', }, { title: '线路名称', dataIndex: 'lineName', }, { title: '位置', dataIndex: 'location', }, { title: '轨型', dataIndex: 'trackShapeCode', }, { title: '方向', dataIndex: 'direction', }, { title: '创建者', dataIndex: 'operatorName', }, { title: '时间', dataIndex: 'createTime', }, ]; const [tableData, setTableData] = useState([]) const getDetailDataList = () => { getDetailList().then(res => { if (res.success) { setTableData(res.data.list) } else { setTableData(detailList) } }).catch(e=>{ //如果接口异常,则使用mock数据 // setTableData(detailList) }) } const [selectionType, setSelectionType] = useState<'checkbox'>('checkbox'); const { confirm } = Modal; const onDel = () => { console.log('selectedRows====', selectRows) confirm({ title: '提示', icon: , content: '请确认是否删除此条数据', okText:'确认', cancelText:'取消', onOk() { onHandelDelData() }, onCancel() { console.log('Cancel'); }, }); } const onHandelDelData = () =>{ let list = [...selectRows] const ids = list.map(item => item.id) if(!ids || !ids.length){ return; } const params = { ids:ids.join(',') } delDetail(params).then(res => { if(res.status === 0){ getDetailList() message.success('删除成功') } }).catch(e=> { //删除mock的数据 const filterList = tableData.filter(item => !ids.includes(item.id)) setTableData(filterList) message.success('删除成功') setSelectedRow([]) }) } return (
locale={{ emptyText: '无数据', }} rowSelection={{ type: selectionType, ...rowSelection }} columns={columns} dataSource={tableData.map(item => ({ ...item, key: item.name }))} />
); }