|
|
@ -1,13 +1,14 @@ |
|
|
|
import {getDetailList, delDetail} from '../../../services/measure/analysis' |
|
|
|
import {getDetailList, delDetail, getDetail, getPointByUuid} from '../../../services/measure/analysis' |
|
|
|
import { useState, useEffect } from 'react' |
|
|
|
import {message, Button, type TableColumnsType, type TableProps, Modal, Table, Pagination } from 'antd'; |
|
|
|
import {message, Button, type TableColumnsType, type TableProps, Modal, Table, Pagination, Input } from 'antd'; |
|
|
|
|
|
|
|
import { useNavigate } from 'react-router-dom'; |
|
|
|
import type { DetailTable } from "../../../services/measure/type"; |
|
|
|
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') |
|
|
|
} |
|
|
@ -50,10 +51,18 @@ export default function MeasureDetail() { |
|
|
|
{ |
|
|
|
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: '创建者', |
|
|
@ -63,34 +72,51 @@ export default function MeasureDetail() { |
|
|
|
title: '时间', |
|
|
|
dataIndex: 'createTime', |
|
|
|
}, |
|
|
|
{ |
|
|
|
title: '操作', |
|
|
|
dataIndex: 'op', |
|
|
|
width:180, |
|
|
|
align:'center', |
|
|
|
render:(_, record)=>{ |
|
|
|
return <div> |
|
|
|
<Button type="link" onClick={()=>onDel(record)}>删除</Button> |
|
|
|
<br/> |
|
|
|
<Button type="link" onClick={()=>onShowDetail(record)}>导出测量数据</Button> |
|
|
|
<br/> |
|
|
|
<Button type="link" onClick={()=>onDetaiResult(record)}>导出分析结果</Button> |
|
|
|
</div> |
|
|
|
} |
|
|
|
}, |
|
|
|
]; |
|
|
|
|
|
|
|
const [tableData, setTableData] = useState<DetailTable[]>([]) |
|
|
|
const [total, setTotal] = useState(0) |
|
|
|
const getDetailDataList = (params:{pageSize:number, pageNum:number}) => { |
|
|
|
|
|
|
|
getDetailList(params).then(res => { |
|
|
|
if(res.success){ |
|
|
|
console.log('res====', res) |
|
|
|
//@ts-ignore
|
|
|
|
setTableData(res.data.list) |
|
|
|
setTotal(res.data.total) |
|
|
|
}else{ |
|
|
|
// setTableData(detailList)
|
|
|
|
} |
|
|
|
}).catch(e=>{ |
|
|
|
//如果接口异常,则使用mock数据
|
|
|
|
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 onDel = () => { |
|
|
|
const onBatchDel = () => { |
|
|
|
confirm({ |
|
|
|
title: '提示', |
|
|
|
icon: <ExclamationCircleFilled />, |
|
|
|
content: '请确认是否删除此条数据', |
|
|
|
content: '请确认是否删除选中的数据', |
|
|
|
okText:'确认', |
|
|
|
cancelText:'取消', |
|
|
|
onOk() { |
|
|
@ -101,7 +127,49 @@ export default function MeasureDetail() { |
|
|
|
}, |
|
|
|
}); |
|
|
|
} |
|
|
|
|
|
|
|
const onDel = (item:DetailTable) => { |
|
|
|
confirm({ |
|
|
|
title: '提示', |
|
|
|
icon: <ExclamationCircleFilled />, |
|
|
|
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) |
|
|
@ -111,60 +179,91 @@ export default function MeasureDetail() { |
|
|
|
const params = { |
|
|
|
ids:ids.join(',') |
|
|
|
} |
|
|
|
doDel(params) |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
const doDel = (params:DelParams) => { |
|
|
|
delDetail(params).then(res => { |
|
|
|
if(res.success){ |
|
|
|
message.success('删除成功') |
|
|
|
setSelectedRowKeys([]) |
|
|
|
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 filterList = tableData && tableData.filter(item => !ids.includes(item.id))
|
|
|
|
// setTableData(filterList)
|
|
|
|
// message.success('删除成功')
|
|
|
|
// setSelectedRow([])
|
|
|
|
}) |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
const [pageNum, setPageNum] = useState(1) |
|
|
|
const [pageSize, setPageSize] = useState(8) |
|
|
|
const onPageChange = (pageNum:number) => { |
|
|
|
console.log('pageNum---', pageNum) |
|
|
|
setPageNum(pageNum) |
|
|
|
const params = { |
|
|
|
pageSize, |
|
|
|
pageNum, |
|
|
|
const [pageSize, setPageSize] = useState(5) |
|
|
|
const onPageChange = (pageNumValue:number, pageSizeValue:number) => { |
|
|
|
setPageNum(pageNumValue) |
|
|
|
setPageSize(pageSizeValue) |
|
|
|
searchParams = { |
|
|
|
...searchParams, |
|
|
|
pageSize:pageSizeValue, |
|
|
|
pageNum:pageNumValue, |
|
|
|
} |
|
|
|
getDetailDataList(params) |
|
|
|
getDetailDataList(searchParams) |
|
|
|
} |
|
|
|
|
|
|
|
const [name, setName] = useState<string>() |
|
|
|
const [lineName, setLineName] = useState<string>() |
|
|
|
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 ( |
|
|
|
<div> |
|
|
|
<div className="p-[30px]"> |
|
|
|
<div className="p-[15px]"> |
|
|
|
<Button |
|
|
|
disabled={!selectRows.length} |
|
|
|
type="primary" |
|
|
|
onClick={onDel}> |
|
|
|
删除 |
|
|
|
onClick={onBatchDel}> |
|
|
|
批量删除 |
|
|
|
</Button> |
|
|
|
<Input className='ml-[2rem]' placeholder="测量名称" onChange={(e)=>setName(e.target.value)} style={{ width: 200 }}/> |
|
|
|
<Input className='ml-[2rem]' placeholder="线路名称" onChange={(e)=>setLineName(e.target.value)} style={{ width: 200 }}/> |
|
|
|
<Button type="primary" className='ml-[2rem]' onClick={onSearch}>搜索</Button> |
|
|
|
</div> |
|
|
|
<div> |
|
|
|
<Table<DetailTable> |
|
|
|
locale={{ |
|
|
|
emptyText: '无数据', |
|
|
|
}} |
|
|
|
loading={loading} |
|
|
|
rowSelection={{ type: selectionType, ...rowSelection }} |
|
|
|
columns={columns} |
|
|
|
rowKey="id" |
|
|
|
dataSource={tableData && tableData.map(item => ({ ...item, key: item.name }))} |
|
|
|
pagination={false} |
|
|
|
/> |
|
|
|
<div className="float-right"><Pagination onChange={onPageChange} defaultPageSize={pageSize} defaultCurrent={1} total={total} /></div> |
|
|
|
<div className="float-right"> |
|
|
|
<Pagination onChange={onPageChange} current={pageNum} pageSizeOptions={[5,10,20,30]} defaultCurrent={pageNum} defaultPageSize={pageSize} total={total}/> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
|
|
|
|
</div> |
|
|
|