Browse Source

新增接口修改bug

fengxiang 2 years ago
parent
commit
1697b32a06
24 changed files with 535 additions and 109 deletions
  1. 10 10
      index.html
  2. 45 0
      src/components/dictSelect.jsx
  3. 2 0
      src/index.jsx
  4. 26 2
      src/pages/home/home.jsx
  5. 4 1
      src/pages/home/home.scss
  6. 15 13
      src/pages/homePageChild/carCompletionRate/carCompletionRate.jsx
  7. 7 5
      src/pages/homePageChild/carCompletionRate/components/modal.jsx
  8. 15 13
      src/pages/homePageChild/classCompletionRate/classCompletionRate.jsx
  9. 20 18
      src/pages/homePageChild/classPunctualitRate/classPunctualitRate.jsx
  10. 131 0
      src/pages/homePageChild/mapElement/components/modal.jsx
  11. 9 0
      src/pages/homePageChild/mapElement/components/modal.scss
  12. 138 0
      src/pages/homePageChild/mapElement/mapElement.jsx
  13. 31 0
      src/pages/homePageChild/mapElement/mapElement.scss
  14. 3 0
      src/pages/lineAnalysisChild/lineAdjustment/lineAdjustment.jsx
  15. 2 2
      src/pages/lineAnalysisChild/regionalMileage/regionalMileage.jsx
  16. 0 2
      src/pages/linePageChild/basicInfomationOfTheLine/basicInfomationOfTheLine.jsx
  17. 37 3
      src/pages/linePageChild/basicInfomationOfTheLine/components/modal.jsx
  18. 2 2
      src/pages/linePageChild/numberOfTransit/numberOfTransit.jsx
  19. 2 13
      src/pages/linePageChild/vehicleMonitoring/components/modal.jsx
  20. 8 7
      src/pages/linePageChild/vehicleStatus/vehicleStatus.jsx
  21. 17 9
      src/pages/settingPageChild/user/user.jsx
  22. 9 7
      src/pages/stationManagementInformation/chageService/chageService.jsx
  23. 1 1
      src/pages/stationManagementInformation/nowChargeStatistics/nowChargeStatistics.jsx
  24. 1 1
      src/utils/axios.js

+ 10 - 10
index.html

@@ -1,13 +1,13 @@
 <!DOCTYPE html>
 <html lang="en">
-  <head>
-    <meta charset="UTF-8" />
-    <link rel="icon" type="image/svg+xml" href="/vite.svg" />
-    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <title>Vite + React</title>
-  </head>
-  <body>
-    <div id="root"></div>
-    <script type="module" src="/src/index.jsx"></script>
-  </body>
+<head>
+    <meta charset="UTF-8"/>
+    <link rel="icon" type="image/svg+xml" href="/vite.svg"/>
+    <meta name="viewport" content="width=device-width, initial-scale=1.0"/>
+    <title>雅安车站管理系统后台</title>
+</head>
+<body>
+<div id="root"></div>
+<script type="module" src="/src/index.jsx"></script>
+</body>
 </html>

+ 45 - 0
src/components/dictSelect.jsx

@@ -0,0 +1,45 @@
+import {Select} from "antd";
+import {useSelector} from "react-redux";
+import {useEffect, useState} from "react";
+
+
+export default function DictSelect({dictType, outSelectVal}) {
+    // 获取store的数据
+    const dictData = useSelector((state) => state.counter.dictData);
+
+    let [option, setOption] = useState([])
+    let [selectVal, setSelectVal] = useState('')
+
+    /**
+     * 设置第一次进来的数据
+     */
+    function getSelect() {
+        for (const dictTypeElement of dictData) {
+            if (dictTypeElement.type === dictType) {
+                setOption(JSON.parse(JSON.stringify(dictTypeElement.valueList)))
+                // 默认选中第一个
+                if (!selectVal) {
+                    setSelectVal(dictTypeElement.valueList[0].val)
+                }
+            }
+        }
+    }
+
+    /**
+     * 选项数据选择时候把数据传出去
+     * @param val 数据
+     * @constructor
+     */
+    function SelectBrul(val) {
+        setSelectVal(val)
+        outSelectVal(val)
+    }
+
+    useEffect(() => {
+        getSelect()
+    }, []);
+    return (
+        <Select options={option} fieldNames={{label: 'name', value: 'val',}} style={{width: '150px'}}
+                value={selectVal} onSelect={SelectBrul}></Select>
+    )
+}

+ 2 - 0
src/index.jsx

@@ -82,6 +82,7 @@ import StationSpacingDistribution
     from "@/pages/lineAnalysisChild/stationSpacingDistribution/stationSpacingDistribution.jsx";
 import LineType from "@/pages/lineAnalysisChild/lineType/lineType.jsx";
 import LineAnalysisDetails from "@/pages/lineAnalysisChild/lineAnalysisDetails/lineAnalysisDetails.jsx";
+import MapElement from "@/pages/homePageChild/mapElement/mapElement.jsx";
 
 
 ReactDOM.createRoot(document.getElementById("root")).render(
@@ -110,6 +111,7 @@ ReactDOM.createRoot(document.getElementById("root")).render(
                             <Route path="classPunctualitRate"
                                    element={<ClassPunctualitRate></ClassPunctualitRate>}></Route>
                             <Route path="carCompletionRate" element={<CarCompletionRate></CarCompletionRate>}></Route>
+                            <Route path="mapElement" element={<MapElement></MapElement>}></Route>
                             {/*    线路运营路由*/}
                             <Route path="basicInfomationOfTheLine"
                                    element={<BasicInfomationOfTheLine></BasicInfomationOfTheLine>}></Route>

+ 26 - 2
src/pages/home/home.jsx

@@ -11,7 +11,6 @@ export default function Home() {
     const navagate = useNavigate()
     const [current, setCurrent] = useState('mail')
 
-
     // 菜单数据
     const items = [{
         label: '首页配置', key: 'basicInfomation', icon: <DesktopOutlined/>, children: [{
@@ -34,6 +33,8 @@ export default function Home() {
             label: '班次准点率', key: 'classPunctualitRate', icon: <AreaChartOutlined/>,
         }, {
             label: '发车准点率', key: 'carCompletionRate', icon: <AreaChartOutlined/>,
+        }, {
+            label: '地图元素配置', key: 'mapElement', icon: <AreaChartOutlined/>,
         }]
     }, {
         label: '线路运营配置', key: 'lineConfiguration', icon: <SettingOutlined/>, children: [{
@@ -203,6 +204,28 @@ export default function Home() {
         if (location.pathname === '/') {
             navagate('/statisticsData')
         }
+        let slectkey = location.pathname.slice(1)
+        // 默认选中的key
+        setCurrent(slectkey)
+        // 处理默认展开项
+        for (const item of items) {
+            for (const child of item.children) {
+                if (child.key === slectkey) {
+                    setOpenKeys([item.key])
+                    return
+                }
+            }
+        }
+    }
+
+    // 默认展开的子菜单key
+    const [openKeys, setOpenKeys] = useState(['basicInfomation']);
+
+    // 设置只能打开一个
+    function onOpenChange(keys) {
+
+        const latestOpenKey = keys.find((key) => openKeys.indexOf(key) === -1);
+        setOpenKeys(latestOpenKey ? [latestOpenKey] : [])
     }
 
     useEffect(() => {
@@ -230,7 +253,8 @@ export default function Home() {
         <div className="body">
             <div className="menu">
 
-                <Menu onClick={onClick} selectedKeys={[current]} mode="inline" items={items}/>
+                <Menu onClick={onClick} selectedKeys={[current]} mode="inline" items={items} openKeys={openKeys}
+                      onOpenChange={onOpenChange}/>
             </div>
             <div className="contetn">
                 <Outlet></Outlet>

+ 4 - 1
src/pages/home/home.scss

@@ -38,8 +38,11 @@
 
       scrollbar-width: none;
       -ms-overflow-style: none;
+      border-right: 1px solid rgba(204, 204, 204, 0.35);
 
-
+      .ant-menu {
+        border: none;
+      }
     }
 
     .contetn {

+ 15 - 13
src/pages/homePageChild/carCompletionRate/carCompletionRate.jsx

@@ -1,5 +1,5 @@
-import {Table, Button, Input, Popconfirm} from "antd";
-import {useState, useEffect} from "react";
+import {Button, Table} from "antd";
+import {useEffect, useState} from "react";
 import ModalHooks from "./components/modal.jsx";
 import "./carCompletionRate.scss";
 import axios from "@/utils/axios.js";
@@ -31,16 +31,18 @@ export default function CarCompletionRate() {
         setIsModalOpen(true);
 
     }
+
     // 线路下拉框
-    const [option,setOption] = useState([])
+    const [option, setOption] = useState([])
     // 线路数据
     const [lineList, setLineList] = useState([])
+
     /**
      * 线路数据请求
      * @returns {Promise<void>}
      */
     async function getLineData() {
-        let { data } = await axios.get("/busLine/getList", { params: { hasModel :1}});
+        let {data} = await axios.get("/busLine/getList", {params: {hasModel: 1}});
         setLineList(data)
         let option = data.map(item => {
             return {
@@ -51,16 +53,19 @@ export default function CarCompletionRate() {
         setOption(option)
 
     }
+
     // 获取数据
     async function getData() {
         let {data} = await axios.get("/homePage/getDepartPunctualityRateList");
         setData(data);
     }
+
     // 设置线路名称
-    function setText(text){
-       let it= option.find((item)=>item.value===text)?.label
+    function setText(text) {
+        let it = option.find((item) => item.value === text)?.label
         return it
     }
+
     useEffect(() => {
         getLineData()
         getData();
@@ -84,14 +89,11 @@ export default function CarCompletionRate() {
                     pageSize: 12, // 每页显示的数量
                 }}
             >
-                <Column title="线路名称" dataIndex="lineId" key="id"  render={(text)=>(
-                setText(text)
-                )
-                }></Column>
-                <Column title="跑法" dataIndex="modelId" key="id" render={(text)=>
-                    !text?'上行':'下行'
+                <Column title="线路名称" dataIndex="lineName" key="id"></Column>
+                <Column title="跑法" dataIndex="modelId" key="id" render={(text) =>
+                    !text ? '上行' : '下行'
                 }/>
-                <Column title="发车总数" dataIndex="total" key="id" />
+                <Column title="发车总数" dataIndex="total" key="id"/>
                 <Column title="准点数" dataIndex="onTime" key="id"/>
                 <Column title="开始站点" dataIndex="startStation" key="id"/>
                 <Column title="结束站点" dataIndex="endStation" key="id"/>

+ 7 - 5
src/pages/homePageChild/carCompletionRate/components/modal.jsx

@@ -1,6 +1,6 @@
-import {Modal, Form, Input, Select, message, InputNumber} from 'antd';
+import {Form, Input, InputNumber, message, Modal, Select} from 'antd';
 import axios from '@/utils/axios.js'
-import {useEffect, useState} from 'react'
+import {useEffect} from 'react'
 import './modal.scss'
 
 export default function ModalHooks({isModalOpen, closeModal, row, lineList, option}) {
@@ -50,7 +50,8 @@ export default function ModalHooks({isModalOpen, closeModal, row, lineList, opti
         // 站点数据
         let stationList = i.lineModeList[0].modeStationsList
         form.setFieldValue('startStation', stationList[0].stationName)
-        form.setFieldValue('endStation', stationList[stationList.length - 1].stationName)
+        stationList.reverse()
+        form.setFieldValue('endStation', stationList.find((item => item.direction === 1)).stationName)
     }
 
 
@@ -68,7 +69,8 @@ export default function ModalHooks({isModalOpen, closeModal, row, lineList, opti
         <div className="form">
 
             {contextHolder}
-            <Modal title={row?.id?'修改数据':'新增数据'} open={isModalOpen} onOk={handleOk} onCancel={handleCancel} width={900}
+            <Modal title={row?.id ? '修改数据' : '新增数据'} open={isModalOpen} onOk={handleOk} onCancel={handleCancel}
+                   width={900}
                    cancelText="取消" okText="确定">
                 <Form
                     name="statics"
@@ -180,7 +182,7 @@ export default function ModalHooks({isModalOpen, closeModal, row, lineList, opti
                             },
                         ]}
                     >
-                        <Input ></Input>
+                        <Input></Input>
                     </Form.Item>
                 </Form>
 

+ 15 - 13
src/pages/homePageChild/classCompletionRate/classCompletionRate.jsx

@@ -1,5 +1,5 @@
-import {Table, Button, Input, Popconfirm} from "antd";
-import {useState, useEffect} from "react";
+import {Button, Table} from "antd";
+import {useEffect, useState} from "react";
 import ModalHooks from "./components/modal.jsx";
 import "./classCompletionRate.scss";
 import axios from "@/utils/axios.js";
@@ -31,16 +31,18 @@ export default function ClassCompletionRate() {
         setIsModalOpen(true);
 
     }
+
     // 线路下拉框
-    const [option,setOption] = useState([])
+    const [option, setOption] = useState([])
     // 线路数据
     const [lineList, setLineList] = useState([])
+
     /**
      * 线路数据请求
      * @returns {Promise<void>}
      */
     async function getLineData() {
-        let {data} = await await axios.get("/busLine/getList", { params: { hasModel :1}})
+        let {data} = await await axios.get("/busLine/getList", {params: {hasModel: 1}})
         setLineList(data)
         let option = data.map(item => {
             return {
@@ -52,16 +54,19 @@ export default function ClassCompletionRate() {
         setOption(option)
 
     }
+
     // 获取数据
     async function getData() {
         let {data} = await axios.get("/homePage/getClassesCompletionRate");
         setData(data);
     }
+
     // 设置线路名称
-    function setText(text){
-       let it= option.find((item)=>item.value===text)?.label
+    function setText(text) {
+        let it = option.find((item) => item.value === text)?.label
         return it
     }
+
     useEffect(() => {
         getLineData()
         getData();
@@ -87,14 +92,11 @@ export default function ClassCompletionRate() {
 
                 }}
             >
-                <Column title="线路名称" dataIndex="lineId" key="id"  render={(text)=>(
-                setText(text)
-                )
-                }></Column>
-                <Column title="跑法" dataIndex="modelId" key="id" render={(text)=>
-                    !text?'正跑':'反跑'
+                <Column title="线路名称" dataIndex="lineName" key="id"></Column>
+                <Column title="跑法" dataIndex="modelId" key="id" render={(text) =>
+                    !text ? '正跑' : '反跑'
                 }/>
-                <Column title="计划" dataIndex="planClasses" key="id" />
+                <Column title="计划" dataIndex="planClasses" key="id"/>
                 <Column title="实际" dataIndex="realityClasses" key="id"/>
                 <Column title="开始站点" dataIndex="startStation" key="id"/>
                 <Column title="结束站点" dataIndex="endStation" key="id"/>

+ 20 - 18
src/pages/homePageChild/classPunctualitRate/classPunctualitRate.jsx

@@ -1,5 +1,5 @@
-import {Table, Button, Input, Popconfirm} from "antd";
-import {useState, useEffect} from "react";
+import {Button, Table} from "antd";
+import {useEffect, useState} from "react";
 import ModalHooks from "./components/modal.jsx";
 import "./classPunctualitRate.scss";
 import axios from "@/utils/axios.js";
@@ -31,16 +31,18 @@ export default function ClassPunctualitRate() {
         setIsModalOpen(true);
 
     }
+
     // 线路下拉框
-    const [option,setOption] = useState([])
+    const [option, setOption] = useState([])
     // 线路数据
     const [lineList, setLineList] = useState([])
+
     /**
      * 线路数据请求
      * @returns {Promise<void>}
      */
     async function getLineData() {
-        let {data} = await await axios.get("/busLine/getList", { params: { hasModel :1}})
+        let {data} = await await axios.get("/busLine/getList", {params: {hasModel: 1}})
         setLineList(data)
         let option = data.map(item => {
             return {
@@ -52,16 +54,19 @@ export default function ClassPunctualitRate() {
         setOption(option)
 
     }
+
     // 获取数据
     async function getData() {
         let {data} = await axios.get("/homePage/getClassesPunctualityRate");
         setData(data);
     }
+
     // 设置线路名称
-    function setText(text){
-       let it= option.find((item)=>item.value===text)?.label
+    function setText(text) {
+        let it = option.find((item) => item.value === text)?.label
         return it
     }
+
     useEffect(() => {
         getLineData()
         getData();
@@ -86,20 +91,17 @@ export default function ClassPunctualitRate() {
                     pageSize: 12, // 每页显示的数量
                 }}
             >
-                <Column title="线路名称" dataIndex="lineId" key="id"  render={(text)=>(
-                setText(text)
-                )
-                }></Column>
-                <Column title="跑法" dataIndex="modelId" key="id" render={(text)=>
-                    !text?'上行':'下行'
+                <Column title="线路名称" dataIndex="lineName" key="id"></Column>
+                <Column title="跑法" dataIndex="modelId" key="id" render={(text) =>
+                    !text ? '上行' : '下行'
                 }/>
-                <Column title="计划班次" dataIndex="planTime" key="id" />
+                <Column title="计划班次" dataIndex="planTime" key="id"/>
                 <Column title="实际班次" dataIndex="realityTime" key="id"/>
-                <Column title="状态" dataIndex="status" key="id" render={(text)=>(
-                       text===0?'正常':text===1?"超出":'异常'
-                    )}/>
-                <Column title="是否今日" dataIndex="type" key="id" render={(text)=>(
-                    text===1?'今日':'昨日'
+                <Column title="状态" dataIndex="status" key="id" render={(text) => (
+                    text === 0 ? '正常' : text === 1 ? "超出" : '异常'
+                )}/>
+                <Column title="是否今日" dataIndex="type" key="id" render={(text) => (
+                    text === 1 ? '今日' : '昨日'
                 )}/>
                 <Column title="车牌" dataIndex="licensePlate" key="id"/>
                 <Column

+ 131 - 0
src/pages/homePageChild/mapElement/components/modal.jsx

@@ -0,0 +1,131 @@
+import {Form, Input, InputNumber, message, Modal,} from 'antd';
+import axios from '@/utils/axios.js'
+import {useEffect} from 'react'
+import './modal.scss'
+
+
+export default function ModalHooks({isModalOpen, closeModal, row, inputVal}) {
+    const [messageApi, contextHolder] = message.useMessage();
+    // 表单
+    const [form] = Form.useForm();
+    // 下拉框数值
+    let passengerOption = [
+        {value: '保养', label: '保养'},
+        {value: '维修', label: '维修'}
+    ]
+    //状态下拉框
+    const status = [
+        {value: 1, label: '运营'},
+        {value: 2, label: '非运营'},
+    ]
+
+    /**
+     *确定时候的回调
+     */
+    function handleOk() {
+        // 验证表单
+        form.validateFields().then(async () => {
+            let formData = JSON.parse(JSON.stringify(form.getFieldsValue()))
+            // 新增类型
+            formData.type = inputVal
+            if (row?.id) {
+                // 修改数据
+                formData.id = row.id
+            }
+            let {code, message} = await axios.post('/homePageEdit/editMapElement', formData)
+            if (code === 200) {
+                messageApi.success(message)
+                handleCancel()
+            } else {
+                messageApi.error(message)
+            }
+        })
+    }
+
+    // 关闭页面
+    const handleCancel = () => {
+        closeModal(false);
+        form.resetFields()
+    };
+    // 表单
+    useEffect(() => {
+        if (row.id) {
+            let formData = JSON.parse(JSON.stringify(row))
+
+            form.setFieldsValue(formData)
+
+        }
+    }, [row])
+
+
+    return (
+        <div className="form">
+
+            {contextHolder}
+            <Modal title={row?.id ? '修改数据' : '新增数据'} open={isModalOpen} onOk={handleOk} onCancel={handleCancel}
+                   width={900}
+                   cancelText="取消" okText="确定">
+                <Form
+                    name="statics"
+                    form={form}
+                    wrapperCol={
+                        {span: 30, offset: 0}
+                    }
+                    layout='inline'
+                    initialValues={{
+                        remember: true,
+                    }}
+
+                    autoComplete="off"
+                >
+
+                    <Form.Item
+                        label="元素名称"
+                        name="name"
+                        rules={[
+                            {
+                                required: true,
+                                message: '请输入',
+
+                            },
+                        ]}
+
+                    >
+                        <Input></Input>
+                    </Form.Item>
+
+                    <Form.Item
+                        label="经度"
+                        name="lon"
+                        rules={[
+                            {
+                                required: true,
+                                message: '请输入',
+                            },
+                        ]}
+
+                    >
+                        <InputNumber style={{width: '100%'}}></InputNumber>
+                    </Form.Item>
+                    <Form.Item
+                        label="维度"
+                        name="lat"
+                        rules={[
+                            {
+                                required: true,
+                                message: '请输入',
+                            },
+                        ]}
+
+                    >
+                        <InputNumber style={{width: '100%'}}></InputNumber>
+                    </Form.Item>
+
+                </Form>
+
+            </Modal>
+        </div>
+    )
+
+
+}

+ 9 - 0
src/pages/homePageChild/mapElement/components/modal.scss

@@ -0,0 +1,9 @@
+#statics {
+  .ant-form-item{
+    width: 45%;
+    margin-bottom: 10px;
+    .ant-form-item-label{
+      width: 120px;
+    }
+  }
+}

+ 138 - 0
src/pages/homePageChild/mapElement/mapElement.jsx

@@ -0,0 +1,138 @@
+import {Button, Table} from "antd";
+import {useEffect, useState} from "react";
+import ModalHooks from "./components/modal.jsx";
+import "./mapElement.scss";
+import axios from "@/utils/axios.js";
+import DeleteButton from "@/components/delete.jsx";
+import DictSelect from "@/components/dictSelect.jsx";
+
+const {Column} = Table;
+
+export default function MapElement() {
+    const [inputVal, setInputVal] = useState("");
+    // 页面数据
+    const [data, setData] = useState([]);
+    // 是否展示弹框
+    const [isModalOpen, setIsModalOpen] = useState(false);
+    const [row, setRow] = useState({});
+    // 当前页数
+    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);
+    }
+
+    // 获取数据
+    async function getData() {
+        let {data} = await axios.get("/homePage/getMapElement", {
+            params: {
+                pageSize,
+                pageNum: current,
+                type: inputVal ? inputVal : null
+            }
+        });
+        setData(data.list);
+        setTotal(data.total)
+    }
+
+    /**
+     * 删除页面
+     * @param data 删除每一条数据
+     * @returns {Promise<void>}
+     */
+    async function deleteRow(data) {
+        let {code} = await axios.get('/sys/delete', {params: {id: data.id}})
+        if (code === 200) {
+            await getData()
+        }
+    }
+
+    // 修改页面
+    function changeSize(e) {
+
+        setCurrent(e)
+
+    }
+
+    /**
+     * 下拉框改变时候同时请求数据
+     */
+    function getSelectVal(val) {
+        setInputVal(val)
+        setCurrent(1)
+    }
+
+    useEffect(() => {
+        getData();
+    }, [current, inputVal]);
+    return (
+        <div className="map">
+            <div className="top">
+                <div className="input">
+                    <DictSelect dictType='dictElement' outSelectVal={getSelectVal}></DictSelect>
+                </div>
+                <div className="button">
+                    <Button type="primary" onClick={addUser}>
+                        新增地图元素
+                    </Button>
+                </div>
+            </div>
+            <Table
+                dataSource={data}
+                pagination={{
+                    total: total, // 数据的总数
+                    current: current, // 当前页数
+                    pageSize: pageSize, // 每页显示的数量
+                    onChange: changeSize
+                }}
+                bordered={true}
+                rowKey="id"
+            >
+                <Column title="类型" dataIndex="type" key="id"/>
+                <Column title="名称" dataIndex="name" key="id"/>
+                <Column title="经度" dataIndex="lon" key="id"/>
+                <Column title="维度" dataIndex="lat" key="id"/>
+
+                <Column
+                    title="操作"
+                    width="170px"
+                    dataIndex="id"
+                    key="id"
+                    render={(text, record) => (
+                        <div className="btn">
+                            <Button type="primary" onClick={() => modify(record)}>
+                                修改
+                            </Button>
+                            <DeleteButton url='/homePageEdit/delMapElement' id={text}
+                                          getData={getData}></DeleteButton>
+                        </div>
+                    )}
+                />
+            </Table>
+            <ModalHooks
+                isModalOpen={isModalOpen}
+                closeModal={closeModal}
+                row={row}
+                inputVal={inputVal}
+            ></ModalHooks>
+        </div>
+    );
+}

+ 31 - 0
src/pages/homePageChild/mapElement/mapElement.scss

@@ -0,0 +1,31 @@
+.map {
+  width: 100%;
+  height: 100%;
+
+  .top {
+    display: flex;
+    justify-content: space-between;
+    margin-bottom: 5px;
+
+    .input {
+      display: flex;
+
+      button {
+        margin-left: 10px;
+      }
+    }
+  }
+
+  .btn {
+    display: flex;
+    justify-content: space-between;
+  }
+
+}
+
+#basic {
+
+  .ant-form-item {
+    margin-bottom: 20px;
+  }
+}

+ 3 - 0
src/pages/lineAnalysisChild/lineAdjustment/lineAdjustment.jsx

@@ -106,6 +106,9 @@ export default function LineAdjustment() {
                 bordered={true}
                 rowKey="id"
                 pagination={false}
+                scroll={{
+                    y: 900
+                }}
             >
                 <Column title="时间" dataIndex="time" key="id"></Column>
                 <Column title="线路" dataIndex="lineId" key="id" render={(text) => (

+ 2 - 2
src/pages/lineAnalysisChild/regionalMileage/regionalMileage.jsx

@@ -86,8 +86,8 @@ export default function RegionalMileage() {
                 rowKey="id"
                 pagination={false}
             >
-                <Column title="站点名称" dataIndex="stationName" key="id"></Column>
-                <Column title="时间" dataIndex="time" key="id"></Column>
+                <Column title="区域名称" dataIndex="region" key="id"></Column>
+                <Column title="客流量" dataIndex="flow" key="id"></Column>
 
 
                 <Column

+ 0 - 2
src/pages/linePageChild/basicInfomationOfTheLine/basicInfomationOfTheLine.jsx

@@ -88,9 +88,7 @@ export default function BasicInfomationOfTheLine() {
      * @param value 数据值
      */
     function changeSelect(value) {
-
         setVal(value)
-
     }
 
 

+ 37 - 3
src/pages/linePageChild/basicInfomationOfTheLine/components/modal.jsx

@@ -1,6 +1,6 @@
-import {Modal, Form, Select, message, InputNumber, TimePicker, Input} from 'antd';
+import {Form, Input, InputNumber, message, Modal, Select, TimePicker} from 'antd';
 import axios from '@/utils/axios.js'
-import {useEffect, useState} from 'react'
+import {useEffect} from 'react'
 import './modal.scss'
 import dayjs from "dayjs";
 import customParseFormat from 'dayjs/plugin/customParseFormat'
@@ -45,9 +45,43 @@ export default function ModalHooks({isModalOpen, closeModal, row, lineList, opti
         closeModal(false);
         form.resetFields()
     };
+
+    /**
+     * 查找线路的开始和结束
+     * @param id
+     * @param list
+     */
+    function setStartAndEnd(id, list) {
+        let row = list.find(item => {
+            return item.lineId === id
+        })
+        let modelStationList = row.lineModeList[0].modeStationsList
+        // 正向起始
+        let forwardStart = modelStationList.find(item => item.direction === 1)
+        form.setFieldValue('upStartStation', forwardStart.stationName)
+        // 反向起始
+        let reverseStart = modelStationList.find(item => item.direction === 2)
+        form.setFieldValue('downStartStation', reverseStart.stationName)
+        modelStationList.reverse()
+        // 正向结束
+        let forwardEnd = modelStationList.find(item => item.direction === 1)
+        form.setFieldValue('upEndStation', forwardEnd.stationName)
+        // 反向结束
+        let reverseEnd = modelStationList.find(item => item.direction === 2)
+        form.setFieldValue('downEndStation', reverseEnd.stationName)
+        // formData.upStartStation = modelStationList[0].stationName
+        // 下面根据各个表格不同变换
+        // formData.downEndTime = dayjs(formData.downEndTime, 'HH:mm')
+        // console.log(row.lineModeList[0].modeStationsList)
+    }
+
     // 表单
     useEffect(() => {
         form.setFieldValue('lineId', val)
+        if (val && !row.id) {
+
+            setStartAndEnd(val, lineList)
+        }
         if (row.id) {
             dayjs.extend(customParseFormat)
             let formData = JSON.parse(JSON.stringify(row))
@@ -156,7 +190,6 @@ export default function ModalHooks({isModalOpen, closeModal, row, lineList, opti
                             {
                                 required: true,
                                 message: '请输入',
-
                             },
                         ]}
                     >
@@ -187,6 +220,7 @@ export default function ModalHooks({isModalOpen, closeModal, row, lineList, opti
                     >
                         <TimePicker format={'HH:mm'} style={{width: '100%'}}></TimePicker>
                     </Form.Item>
+
                     <Form.Item
                         label="上行结束时间"
                         name="upEndTime"

+ 2 - 2
src/pages/linePageChild/numberOfTransit/numberOfTransit.jsx

@@ -75,7 +75,7 @@ export default function NumberOfTransit() {
      */
     async function getLineData() {
 
-        let {data} = await await axios.get("/busLine/getList", { params: { hasModel :1}})
+        let {data} = await await axios.get("/busLine/getList", {params: {hasModel: 1}})
         setLineList(data)
         let option = data.map(item => {
             return {
@@ -128,7 +128,7 @@ export default function NumberOfTransit() {
                 rowKey="id"
                 pagination={false}
             >
-                <Column title="星级" dataIndex="year" key="id"></Column>
+                <Column title="年份" dataIndex="year" key="id"></Column>
                 <Column title="数量" dataIndex="total" key="id"/>
                 <Column
                     title="操作"

+ 2 - 13
src/pages/linePageChild/vehicleMonitoring/components/modal.jsx

@@ -1,4 +1,4 @@
-import {Form, Input, InputNumber, message, Modal, Select,} from 'antd';
+import {Form, Input, message, Modal, Select,} from 'antd';
 import axios from '@/utils/axios.js'
 import {useEffect} from 'react'
 import './modal.scss'
@@ -142,18 +142,7 @@ export default function ModalHooks({isModalOpen, closeModal, row}) {
                     >
                         <Input style={{width: '100%'}}></Input>
                     </Form.Item>
-                    <Form.Item
-                        label="损坏程度"
-                        name="damageNum"
-                        rules={[
-                            {
-                                required: true,
-                                message: '请输入',
-                            },
-                        ]}
-                    >
-                        <InputNumber style={{width: '100%'}}></InputNumber>
-                    </Form.Item>
+
 
                 </Form>
 

+ 8 - 7
src/pages/linePageChild/vehicleStatus/vehicleStatus.jsx

@@ -3,6 +3,7 @@ import {useEffect, useState} from "react";
 import ModalHooks from "./components/modal.jsx";
 import "./vehicleStatus.scss";
 import axios from "@/utils/axios.js";
+import DeleteButton from "@/components/delete.jsx";
 
 const {Column} = Table;
 
@@ -73,11 +74,11 @@ export default function VehicleStatus() {
         <div className="passenger">
             <div className="top">
 
-                {/*<div className="button">*/}
-                {/*    <Button type="primary" onClick={addUser}>*/}
-                {/*        新增乘客类型*/}
-                {/*    </Button>*/}
-                {/*</div>*/}
+                <div className="button">
+                    <Button type="primary" onClick={addUser}>
+                        新增车辆状态
+                    </Button>
+                </div>
             </div>
             <Table
                 dataSource={data}
@@ -103,7 +104,8 @@ export default function VehicleStatus() {
                             <Button type="primary" onClick={() => modify(record)}>
                                 修改
                             </Button>
-
+                            <DeleteButton url='/lineOperateEdit/delVehicleStatus' id={text}
+                                          getData={getData}></DeleteButton>
                         </div>
                     )}
                 />
@@ -112,7 +114,6 @@ export default function VehicleStatus() {
                 isModalOpen={isModalOpen}
                 closeModal={closeModal}
                 row={row}
-
                 val={val}
             ></ModalHooks>
         </div>

+ 17 - 9
src/pages/settingPageChild/user/user.jsx

@@ -1,5 +1,5 @@
-import {Table, Button, Input, Popconfirm} from "antd";
-import {useState, useEffect} from "react";
+import {Button, Input, Popconfirm, Table} from "antd";
+import {useEffect, useState} from "react";
 import ModalHooks from "./components/modal.jsx";
 import "./user.scss";
 import axios from "@/utils/axios.js";
@@ -14,11 +14,12 @@ export default function User() {
     const [isModalOpen, setIsModalOpen] = useState(false);
     const [row, setRow] = useState({});
     // 当前页数
-    const [current,setCurrent] =useState(1)
+    const [current, setCurrent] = useState(1)
     // 每页条数
-    const pageSize=10
+    const pageSize = 10
     // 总条数
-    let [total,setTotal] = useState(0)
+    let [total, setTotal] = useState(0)
+
     // 新增用户页面
     function addUser() {
         setRow([]);
@@ -39,7 +40,13 @@ export default function User() {
 
     // 获取数据
     async function getData() {
-        let {data} = await axios.get("/sys/select",{params:{pageSize,pageNum:current}});
+        let {data} = await axios.get("/sys/select", {
+            params: {
+                pageSize,
+                pageNum: current,
+
+            }
+        });
         setData(data.list);
         setTotal(data.total)
     }
@@ -55,8 +62,9 @@ export default function User() {
             await getData()
         }
     }
+
     // 修改页面
-    function changeSize(e){
+    function changeSize(e) {
 
         setCurrent(e)
 
@@ -84,10 +92,10 @@ export default function User() {
             <Table
                 dataSource={data}
                 pagination={{
-                    total:total , // 数据的总数
+                    total: total, // 数据的总数
                     current: current, // 当前页数
                     pageSize: pageSize, // 每页显示的数量
-                    onChange:changeSize
+                    onChange: changeSize
                 }}
                 bordered={true}
                 rowKey="id"

+ 9 - 7
src/pages/stationManagementInformation/chageService/chageService.jsx

@@ -3,6 +3,7 @@ import {useEffect, useState} from "react";
 import ModalHooks from "./components/modal.jsx";
 import "./chageService.scss";
 import axios from "@/utils/axios.js";
+import DeleteButton from "@/components/delete.jsx";
 
 const {Column} = Table;
 
@@ -43,7 +44,7 @@ export default function ChageService() {
 
         let {data} = await axios.get("/getStationChargingStatus");
 
-        setData([data]);
+        setData(data);
 
     }
 
@@ -73,11 +74,11 @@ export default function ChageService() {
         <div className="passenger">
             <div className="top">
 
-                {/*<div className="button">*/}
-                {/*    <Button type="primary" onClick={addUser}>*/}
-                {/*        新增充电趋势*/}
-                {/*    </Button>*/}
-                {/*</div>*/}
+                <div className="button">
+                    <Button type="primary" onClick={addUser}>
+                        新增充电服务情况
+                    </Button>
+                </div>
             </div>
             <Table
                 dataSource={data}
@@ -99,7 +100,8 @@ export default function ChageService() {
                             <Button type="primary" onClick={() => modify(record)}>
                                 修改
                             </Button>
-
+                            <DeleteButton url='/delStationChargingStatus' id={text}
+                                          getData={getData}></DeleteButton>
                         </div>
                     )}
                 />

+ 1 - 1
src/pages/stationManagementInformation/nowChargeStatistics/nowChargeStatistics.jsx

@@ -75,7 +75,7 @@ export default function NowChargeStatistics() {
 
                 {/*<div className="button">*/}
                 {/*    <Button type="primary" onClick={addUser}>*/}
-                {/*        新增*/}
+                {/*        新增今日充电统计*/}
                 {/*    </Button>*/}
                 {/*</div>*/}
             </div>

+ 1 - 1
src/utils/axios.js

@@ -8,9 +8,9 @@ axios.interceptors.request.use(
             const user = localStorage.getItem('user')
             const headers = config.headers
             let satoken = JSON.parse(user)?.satoken || ''
-            // console.log(satoken)
             if (!satoken) {
                 window.location.href = '/#/login'
+                return
             }
             headers.satoken = satoken
         }