You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

77 lines
2.1 KiB

  1. // 引入相关的hooks
  2. import { useSelector, useDispatch } from "react-redux";
  3. // 引入对应的方法
  4. import {getDetailList} from '../../../services/measure/analysis'
  5. import { useState, useEffect } from 'react'
  6. import {message, type TableColumnsType, type TableProps, Button, Table } from 'antd';
  7. import { useNavigate } from 'react-router-dom';
  8. import type { DetailTable } from "../../../services/measure/type";
  9. export default function MeasureDetail() {
  10. // 通过useSelector直接拿到store中定义的value
  11. //@ts-ignore
  12. const { value } = useSelector(store => store.counter);
  13. // 通过useDispatch 派发事件
  14. const dispatch = useDispatch();
  15. const navigate = useNavigate();
  16. function onToMeasure(){
  17. navigate('/measure/config')
  18. }
  19. useEffect(()=>{
  20. getDetailDataList()
  21. }, [])
  22. const [selectRows, setSelectedRow] = useState<DetailTable[]>([])
  23. const rowSelection: TableProps<DetailTable>['rowSelection'] = {
  24. onChange: (selectedRowKeys: React.Key[], selectedRows: DetailTable[]) => {
  25. console.log(`selectedRowKeys: ${selectedRowKeys}`, 'selectedRows: ', selectedRows);
  26. setSelectedRow(selectedRows)
  27. },
  28. getCheckboxProps: (record: DetailTable) => ({
  29. name: record.name,
  30. }),
  31. };
  32. const columns: TableColumnsType<DetailTable> = [
  33. {
  34. title: '测量名称',
  35. dataIndex: 'name',
  36. },
  37. {
  38. title: '创建者',
  39. dataIndex: 'operatorName',
  40. },
  41. {
  42. title: '时间',
  43. dataIndex: 'createTime',
  44. },
  45. ];
  46. const [tableData, setTableData] = useState<DetailTable[]>([])
  47. const getDetailDataList = () => {
  48. getDetailList().then(res => {
  49. setTableData(res.data.list)
  50. })
  51. }
  52. const [selectionType, setSelectionType] = useState<'checkbox'>('checkbox');
  53. const onDel = () => {
  54. console.log('selectedRows====', selectRows)
  55. message.error('正在做')
  56. }
  57. return (
  58. <div>
  59. <div className="p-[30px]">
  60. <Button type="primary" onClick={onDel}></Button>
  61. </div>
  62. <div>
  63. <Table<DetailTable>
  64. rowSelection={{ type: selectionType, ...rowSelection }}
  65. columns={columns}
  66. dataSource={tableData.map(item => ({ ...item, key: item.name }))}
  67. />
  68. </div>
  69. </div>
  70. );
  71. }