|
|
@@ -0,0 +1,185 @@
|
|
|
+import {Button, Table} from "antd";
|
|
|
+import {useEffect, useState} from "react";
|
|
|
+import ModalHooks from "./components/modal.jsx";
|
|
|
+import "./maintenanceDetails.scss";
|
|
|
+import axios from "@/utils/axios.js";
|
|
|
+import DeleteButton from "@/components/delete.jsx";
|
|
|
+
|
|
|
+const {Column} = Table;
|
|
|
+
|
|
|
+export default function MaintenanceDetails() {
|
|
|
+ // 页面数据
|
|
|
+ const [data, setData] = useState([]);
|
|
|
+ // 是否展示弹框
|
|
|
+ const [isModalOpen, setIsModalOpen] = useState(false);
|
|
|
+ // 一行的数据
|
|
|
+
|
|
|
+ const [row, setRow] = useState({});
|
|
|
+ // 设置下拉框绑定的值
|
|
|
+ const [val, setVal] = useState('')
|
|
|
+
|
|
|
+ // 切换页数
|
|
|
+ function changeSize(e) {
|
|
|
+
|
|
|
+ setCurrent(e)
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ // 当前页数
|
|
|
+ const [current, setCurrent] = useState(1)
|
|
|
+ // 每页条数
|
|
|
+ const pageSize = 10
|
|
|
+ // 总条数
|
|
|
+ let [total, setTotal] = useState(0)
|
|
|
+
|
|
|
+ // 新增用户页面
|
|
|
+ function addUser() {
|
|
|
+ setRow([]);
|
|
|
+ setIsModalOpen(true);
|
|
|
+ }
|
|
|
+
|
|
|
+ // 关闭页面
|
|
|
+ function closeModal() {
|
|
|
+ setIsModalOpen(false);
|
|
|
+ getData()
|
|
|
+ }
|
|
|
+
|
|
|
+ // 点击修改的回调
|
|
|
+ function modify(data) {
|
|
|
+ setRow(data);
|
|
|
+ setIsModalOpen(true);
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ // 线路下拉框
|
|
|
+ const [option, setOption] = useState([])
|
|
|
+ // 线路数据
|
|
|
+ const [lineList, setLineList] = useState([])
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 线路数据请求
|
|
|
+ * @returns {Promise<void>}
|
|
|
+ */
|
|
|
+ async function getLineData() {
|
|
|
+
|
|
|
+ let {data} = await axios.get("/busLine/getList", {params: {hasModel: 1}})
|
|
|
+ setLineList(data)
|
|
|
+ let option = data.map(item => {
|
|
|
+ return {
|
|
|
+ label: item.lineName,
|
|
|
+ value: item.lineId,
|
|
|
+ }
|
|
|
+
|
|
|
+ })
|
|
|
+ // 默认查询第一个
|
|
|
+ if (!val) {
|
|
|
+ setVal(option[0].value)
|
|
|
+ // console.log(option[0])
|
|
|
+ }
|
|
|
+ setOption(option)
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ // 获取数据
|
|
|
+ async function getData() {
|
|
|
+
|
|
|
+ let {data} = await axios.get("/maintenance/getMaintenanceDetail", {
|
|
|
+ params: {
|
|
|
+ pageNum: current,
|
|
|
+ startTime: '1999-01-22 17:06:00',
|
|
|
+ endTime: '2030-01-23 17:06:00'
|
|
|
+ }
|
|
|
+ });
|
|
|
+ setData(data.list);
|
|
|
+ setTotal(data.total)
|
|
|
+ await getLineData()
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ // 设置类型文字
|
|
|
+ function setType(text) {
|
|
|
+ switch (text) {
|
|
|
+ case 1:
|
|
|
+ return "行驶中";
|
|
|
+ case 2:
|
|
|
+ return "维保";
|
|
|
+ case 3:
|
|
|
+ return "固定包车";
|
|
|
+ case 4:
|
|
|
+ return "临时包车";
|
|
|
+
|
|
|
+ case 5:
|
|
|
+ return "充电";
|
|
|
+ case 6:
|
|
|
+ return "公务";
|
|
|
+
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ // 设置线路名称
|
|
|
+ function setText(text) {
|
|
|
+ let it = option.find((item) => item.value === text)?.label
|
|
|
+ return it
|
|
|
+ }
|
|
|
+
|
|
|
+ useEffect(() => {
|
|
|
+ getData()
|
|
|
+
|
|
|
+ }, [])
|
|
|
+ return (
|
|
|
+ <div className="passenger">
|
|
|
+ <div className="top">
|
|
|
+
|
|
|
+ <div className="button">
|
|
|
+ <Button type="primary" onClick={addUser}>
|
|
|
+ 新增维保明细
|
|
|
+ </Button>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <Table
|
|
|
+ dataSource={data}
|
|
|
+ bordered={true}
|
|
|
+ rowKey="id"
|
|
|
+
|
|
|
+ pagination={{
|
|
|
+ total: total, // 数据的总数
|
|
|
+ current: current, // 当前页数
|
|
|
+ pageSize: pageSize, // 每页显示的数量
|
|
|
+ onChange: changeSize
|
|
|
+ }}
|
|
|
+ >
|
|
|
+ <Column title="时间" dataIndex="time" key="id"></Column>
|
|
|
+ <Column title="线路名称" dataIndex="lineId" key="id" render={(text) => (
|
|
|
+ setText(text)
|
|
|
+ )
|
|
|
+ }></Column>
|
|
|
+ <Column title="车牌号" dataIndex="licensePlate" key="id"></Column>
|
|
|
+ <Column title="故障原因" dataIndex="faultReason" key="id"></Column>
|
|
|
+ <Column title="维修类型" dataIndex="maintenanceType" key="id"></Column>
|
|
|
+ <Column title="维修点位" dataIndex="maintenanceLocation" key="id"></Column>
|
|
|
+ <Column
|
|
|
+ title="操作"
|
|
|
+ width="170px"
|
|
|
+ dataIndex="id"
|
|
|
+ key="id"
|
|
|
+ render={(text, record) => (
|
|
|
+ <div className="btn">
|
|
|
+ <Button type="primary" onClick={() => modify(record)}>
|
|
|
+ 修改
|
|
|
+ </Button>
|
|
|
+ <DeleteButton url='/maintenanceEdit/delMaintenanceDetail' id={text}
|
|
|
+ getData={getData}></DeleteButton>
|
|
|
+ </div>
|
|
|
+ )}
|
|
|
+ />
|
|
|
+ </Table>
|
|
|
+ <ModalHooks
|
|
|
+ isModalOpen={isModalOpen}
|
|
|
+ closeModal={closeModal}
|
|
|
+ row={row}
|
|
|
+ option={option}
|
|
|
+ val={val}
|
|
|
+ ></ModalHooks>
|
|
|
+ </div>
|
|
|
+ );
|
|
|
+}
|