rankingOfPassengerVolume.jsx 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140
  1. import {Button, Table} from "antd";
  2. import {useEffect, useState} from "react";
  3. import ModalHooks from "./components/modal.jsx";
  4. import "./rankingOfPassengerVolume.scss";
  5. import axios from "@/utils/axios.js";
  6. import DeleteButton from "@/components/delete.jsx";
  7. const {Column} = Table;
  8. export default function RankingOfPassengerVolume() {
  9. // 页面数据
  10. const [data, setData] = useState([]);
  11. // 是否展示弹框
  12. const [isModalOpen, setIsModalOpen] = useState(false);
  13. // 一行的数据
  14. // 线路下拉框
  15. const [option, setOption] = useState([])
  16. const [row, setRow] = useState({});
  17. // 设置下拉框绑定的值
  18. const [val, setVal] = useState('')
  19. // 新增用户页面
  20. function addUser() {
  21. setRow([]);
  22. setIsModalOpen(true);
  23. }
  24. // 关闭页面
  25. function closeModal() {
  26. setIsModalOpen(false);
  27. getData()
  28. }
  29. // 点击修改的回调
  30. function modify(data) {
  31. setRow(data);
  32. setIsModalOpen(true);
  33. }
  34. // 获取数据
  35. async function getData() {
  36. let {data} = await axios.get("/trafficAnalysis/getTrafficFlowRank")
  37. setData(data);
  38. }
  39. // 设置类型文字
  40. function setType(text) {
  41. switch (text) {
  42. case 1:
  43. return "行驶中";
  44. case 2:
  45. return "维保";
  46. case 3:
  47. return "固定包车";
  48. case 4:
  49. return "临时包车";
  50. case 5:
  51. return "充电";
  52. case 6:
  53. return "公务";
  54. }
  55. }
  56. /**
  57. * 线路数据请求
  58. * @returns {Promise<void>}
  59. */
  60. async function getLineData() {
  61. let {data} = await await axios.get("/busLine/getList", {params: {hasModel: 1}})
  62. let option = data.map(item => {
  63. return {
  64. label: item.lineName,
  65. value: item.lineId,
  66. }
  67. })
  68. setOption(option)
  69. }
  70. useEffect(() => {
  71. getData()
  72. getLineData()
  73. }, [])
  74. return (
  75. <div className="passenger">
  76. <div className="top">
  77. <div className="button">
  78. <Button type="primary" onClick={addUser}>
  79. 新增客运量排名
  80. </Button>
  81. </div>
  82. </div>
  83. <Table
  84. dataSource={data}
  85. bordered={true}
  86. rowKey="id"
  87. pagination={false}
  88. scroll={{y: 700}}
  89. >
  90. <Column title="线路" dataIndex="lineName" key="id"></Column>
  91. <Column title="客运量(万人)" dataIndex="trafficVolume" key="id"></Column>
  92. <Column
  93. title="操作"
  94. width="170px"
  95. dataIndex="id"
  96. key="id"
  97. render={(text, record) => (
  98. <div className="btn">
  99. <Button type="primary" onClick={() => modify(record)}>
  100. 修改
  101. </Button>
  102. <DeleteButton url='/trafficAnalysisEdit/delTrafficFlowRank' id={text}
  103. getData={getData}></DeleteButton>
  104. </div>
  105. )}
  106. />
  107. </Table>
  108. <ModalHooks
  109. isModalOpen={isModalOpen}
  110. closeModal={closeModal}
  111. row={row}
  112. option={option}
  113. val={val}
  114. ></ModalHooks>
  115. </div>
  116. );
  117. }