carCompletionRate.jsx 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123
  1. import {Table, Button, Input, Popconfirm} from "antd";
  2. import {useState, useEffect} from "react";
  3. import ModalHooks from "./components/modal.jsx";
  4. import "./carCompletionRate.scss";
  5. import axios from "@/utils/axios.js";
  6. const {Column} = Table;
  7. export default function CarCompletionRate() {
  8. // 页面数据
  9. const [data, setData] = useState([]);
  10. // 是否展示弹框
  11. const [isModalOpen, setIsModalOpen] = useState(false);
  12. const [row, setRow] = useState({});
  13. // 新增用户页面
  14. function addUser() {
  15. setRow([]);
  16. setIsModalOpen(true);
  17. }
  18. // 关闭页面
  19. function closeModal() {
  20. setIsModalOpen(false);
  21. getData()
  22. }
  23. // 点击修改的回调
  24. function modify(data) {
  25. setRow(data);
  26. setIsModalOpen(true);
  27. }
  28. // 线路下拉框
  29. const [option,setOption] = useState([])
  30. // 线路数据
  31. const [lineList, setLineList] = useState([])
  32. /**
  33. * 线路数据请求
  34. * @returns {Promise<void>}
  35. */
  36. async function getLineData() {
  37. let {data} = await axios.get('/busLine/getList')
  38. setLineList(data)
  39. let option = data.map(item => {
  40. return {
  41. label: item.lineName,
  42. value: item.lineId,
  43. }
  44. })
  45. setOption(option)
  46. }
  47. // 获取数据
  48. async function getData() {
  49. let {data} = await axios.get("/homePage/getDepartPunctualityRateList");
  50. setData(data);
  51. }
  52. // 设置线路名称
  53. function setText(text){
  54. let it= option.find((item)=>item.value===text)?.label
  55. return it
  56. }
  57. useEffect(() => {
  58. getLineData()
  59. getData();
  60. }, []);
  61. return (
  62. <div className="completion">
  63. <div className="top">
  64. <div className="button">
  65. <Button type="primary" onClick={addUser}>
  66. 添加准点率
  67. </Button>
  68. </div>
  69. </div>
  70. <Table
  71. dataSource={data}
  72. bordered={true}
  73. rowKey="id"
  74. pagination={{
  75. current: 1, // 当前页数
  76. pageSize: 12, // 每页显示的数量
  77. }}
  78. >
  79. <Column title="线路名称" dataIndex="lineId" key="id" render={(text)=>(
  80. setText(text)
  81. )
  82. }></Column>
  83. <Column title="跑法" dataIndex="modelId" key="id" render={(text)=>
  84. !text?'上行':'下行'
  85. }/>
  86. <Column title="发车总数" dataIndex="total" key="id" />
  87. <Column title="准点数" dataIndex="onTime" key="id"/>
  88. <Column title="开始站点" dataIndex="startStation" key="id"/>
  89. <Column title="结束站点" dataIndex="endStation" key="id"/>
  90. <Column title="车牌" dataIndex="licensePlate" key="id"/>
  91. <Column
  92. title="操作"
  93. width="170px"
  94. dataIndex="id"
  95. key="id"
  96. render={(text, record) => (
  97. <div className="btn">
  98. <Button type="primary" onClick={() => modify(record)}>
  99. 修改
  100. </Button>
  101. </div>
  102. )}
  103. />
  104. </Table>
  105. <ModalHooks
  106. isModalOpen={isModalOpen}
  107. closeModal={closeModal}
  108. row={row}
  109. option={option}
  110. lineList={lineList}
  111. ></ModalHooks>
  112. </div>
  113. );
  114. }