From cc2a265e44cabc6e3a9c5f96cde80a9e777f88b6 Mon Sep 17 00:00:00 2001
From: mrz <17966059@qq.com>
Date: Tue, 22 Mar 2022 16:20:53 +0800
Subject: [PATCH] 用vuex接管用户信息的存取

---
 src/api/base.js                     |   8 ++++----
 src/api/dispatch_api.js             |  48 ++++++++++++++++++++++++++++++++++++++++++++++++
 src/common/init/sys_init.js         |   1 +
 src/components/ICON.vue             | 394 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 src/components/NavMenu/index.vue    |   2 +-
 src/routes.js                       |  22 +++++++++++++++++++---
 src/views/HomeNew.vue               |  44 ++++++++++++++++++++++++++++++++------------
 src/views/Login.vue                 |  15 ++++++++++-----
 src/views/dispatch/Dispatch.vue     | 725 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 src/views/dispatch/DispatchNode.vue | 936 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 src/views/dispatch/DriverInfo.vue   | 654 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 src/views/dispatch/VehicleInfo.vue  | 704 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 src/views/nav1/perm.vue             |  36 ++++++++++++++++++++----------------
 src/views/nav1/user.vue             | 337 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++----------------------------------------------------------------------------------------------------------------------------------------------------------------
 src/views/nav3/Dispatch.vue         | 725 -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 src/views/nav3/DriverInfo.vue       | 654 ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 src/views/nav3/VehicleInfo.vue      | 704 --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 src/views/transit/transit.vue       |  41 +++++++++++++++++++++++++++++++++++++----
 src/vuex/actions.js                 |   4 ++++
 src/vuex/getters.js                 |   4 ++++
 src/vuex/store.js                   |  22 +++++++++++++++++++---
 21 files changed, 3789 insertions(+), 2291 deletions(-)
 create mode 100644 src/api/dispatch_api.js
 create mode 100644 src/components/ICON.vue
 create mode 100644 src/views/dispatch/Dispatch.vue
 create mode 100644 src/views/dispatch/DispatchNode.vue
 create mode 100644 src/views/dispatch/DriverInfo.vue
 create mode 100644 src/views/dispatch/VehicleInfo.vue
 delete mode 100644 src/views/nav3/Dispatch.vue
 delete mode 100644 src/views/nav3/DriverInfo.vue
 delete mode 100644 src/views/nav3/VehicleInfo.vue

diff --git a/src/api/base.js b/src/api/base.js
index 1dcf325..120f35e 100644
--- a/src/api/base.js
+++ b/src/api/base.js
@@ -7,10 +7,10 @@ function getusername(){
         let user =  JSON.parse(sessionStorage.getItem('user'));
         return user;
     }else {
-        Message({
-            message:"未查询到用户缓存名称",
-            type:"error",
-        });
+        // Message({
+        //     message:"未查询到用户缓存名称",
+        //     type:"error",
+        // });
         return {
             username:""
         };
diff --git a/src/api/dispatch_api.js b/src/api/dispatch_api.js
new file mode 100644
index 0000000..9229c2f
--- /dev/null
+++ b/src/api/dispatch_api.js
@@ -0,0 +1,48 @@
+import http from './http.js'
+
+let baseUrl = 'dispatch-system/dispatch'
+// let baseUrl = 'http://127.0.0.1:9999/dispatch'
+/*用户端,调度车辆*/
+export const dispatch = params =>{return http.post(`${baseUrl}/dispatch`,  params);};
+/*用户端,取消车辆调度*/
+export const cancel = params =>{return http.put(`${baseUrl}/cancel`,  params);};
+/*用户端,获取用户信息*/
+export const getUser = params =>{return http.get(`${baseUrl}/user/getUser`,  params);};
+
+/* 管理员端,调度记录,开始任务 */
+export const startTask = params =>{return http.put(`${baseUrl}/startTask`,  params);};
+/* 管理员端,调度记录,结束任务 */
+export const completeTask = params =>{return http.put(`${baseUrl}/completeTask`,  params);};
+
+/*用户端,管理员端调度记录,查询车辆调度记录*/
+export const selectDispatchNoteList = params =>{return http.get(`${baseUrl}/dispatchNote/selectDispatchNoteList`,  params);};
+/*管理员端,调度记录,增加车辆调度记录*/
+export const insertDispatchNote = params =>{return http.post(`${baseUrl}/dispatchNote/insertDispatchNote`,  params);};
+/*管理员端,调度记录,编辑车辆调度记录*/
+export const updateDispatchNote = params =>{return http.put(`${baseUrl}/dispatchNote/updateDispatchNote`,  params);};
+/*管理员端,调度记录,删除车辆调度记录*/
+export const deleteDispatchNote = params =>{return http.del(`${baseUrl}/dispatchNote/deleteDispatchNote`,  params);};
+/*管理员端,调度记录,批量删除车辆调度记录*/
+export const batchRemoveDispatchNode = params =>{return http.get(`${baseUrl}/dispatchNote/batchRemove`,  params);};
+
+/*管理员端,车辆信息,查询车辆信息*/
+export const selectVehicleInfoList = params =>{return http.get(`${baseUrl}/vehicleInfo/selectVehicleInfoList`,  params);};
+/*管理员端,车辆信息,新增车辆信息*/
+export const insertVehicleInfo = params =>{return http.post(`${baseUrl}/vehicleInfo/insertVehicleInfo`,  params);};
+/*管理员端,车辆信息,修改车辆信息*/
+export const updateVehicleInfo = params =>{return http.put(`${baseUrl}/vehicleInfo/updateVehicleInfo`,  params);};
+/*管理员端,车辆信息,删除车辆信息*/
+export const deleteVehicleInfo = params =>{return http.del(`${baseUrl}/vehicleInfo/deleteVehicleInfo`,  params);};
+/*管理员端,车辆信息,批量删除车辆信息*/
+export const batchRemoveVehicleInfo= params =>{return http.get(`${baseUrl}/vehicleInfo/batchRemove`,  params);};
+
+/*管理员端,驾驶员信息,查询驾驶员信息*/
+export const selectDriverInfoList = params =>{return http.get(`${baseUrl}/driverInfo/selectDriverInfoList`,  params);};
+/*管理员端,驾驶员信息,新增驾驶员信息*/
+export const insertDriverInfo = params =>{return http.post(`${baseUrl}/driverInfo/insertDriverInfo`,  params);};
+/*管理员端,驾驶员信息,修改驾驶员信息*/
+export const updateDriverInfo = params =>{return http.put(`${baseUrl}/driverInfo/updateDriverInfo`,  params);};
+/*管理员端,驾驶员信息,删除驾驶员信息*/
+export const deleteDriverInfo = params =>{return http.del(`${baseUrl}/driverInfo/deleteDriverInfo`,  params);};
+/*管理员端,驾驶员信息,批量删除驾驶员信息*/
+export const batchRemoveDriverInfo= params =>{return http.get(`${baseUrl}/driverInfo/batchRemove`,  params);};
diff --git a/src/common/init/sys_init.js b/src/common/init/sys_init.js
index 55f4dc0..290f062 100644
--- a/src/common/init/sys_init.js
+++ b/src/common/init/sys_init.js
@@ -91,6 +91,7 @@ var axois_init = {
                 sessionStorage.removeItem('user');
                 sessionStorage.removeItem('menu');
                 sessionStorage.removeItem('token');
+                axios.defaults.headers.common['Authorization'] = undefined;
                 next()
             }else{
                 let user = JSON.parse(sessionStorage.getItem('user'));
diff --git a/src/components/ICON.vue b/src/components/ICON.vue
new file mode 100644
index 0000000..e60bef4
--- /dev/null
+++ b/src/components/ICON.vue
@@ -0,0 +1,394 @@
+<template>
+    <div class="myicons">
+        <ul class="icon-list">
+            <li><span><i class="el-icon-platform-eleme"></i><span class="icon-name">el-icon-platform-eleme</span></span>
+            </li>
+            <li><span><i class="el-icon-eleme"></i><span class="icon-name">el-icon-eleme</span></span></li>
+            <li><span><i class="el-icon-delete-solid"></i><span class="icon-name">el-icon-delete-solid</span></span>
+            </li>
+            <li><span><i class="el-icon-delete"></i><span class="icon-name">el-icon-delete</span></span></li>
+            <li><span><i class="el-icon-s-tools"></i><span class="icon-name">el-icon-s-tools</span></span></li>
+            <li><span><i class="el-icon-setting"></i><span class="icon-name">el-icon-setting</span></span></li>
+            <li><span><i class="el-icon-user-solid"></i><span class="icon-name">el-icon-user-solid</span></span></li>
+            <li><span><i class="el-icon-user"></i><span class="icon-name">el-icon-user</span></span></li>
+            <li><span><i class="el-icon-phone"></i><span class="icon-name">el-icon-phone</span></span></li>
+            <li><span><i class="el-icon-phone-outline"></i><span class="icon-name">el-icon-phone-outline</span></span>
+            </li>
+            <li><span><i class="el-icon-more"></i><span class="icon-name">el-icon-more</span></span></li>
+            <li><span><i class="el-icon-more-outline"></i><span class="icon-name">el-icon-more-outline</span></span>
+            </li>
+            <li><span><i class="el-icon-star-on"></i><span class="icon-name">el-icon-star-on</span></span></li>
+            <li><span><i class="el-icon-star-off"></i><span class="icon-name">el-icon-star-off</span></span></li>
+            <li><span><i class="el-icon-s-goods"></i><span class="icon-name">el-icon-s-goods</span></span></li>
+            <li><span><i class="el-icon-goods"></i><span class="icon-name">el-icon-goods</span></span></li>
+            <li><span><i class="el-icon-warning"></i><span class="icon-name">el-icon-warning</span></span></li>
+            <li><span><i class="el-icon-warning-outline"></i><span
+                    class="icon-name">el-icon-warning-outline</span></span></li>
+            <li><span><i class="el-icon-question"></i><span class="icon-name">el-icon-question</span></span></li>
+            <li><span><i class="el-icon-info"></i><span class="icon-name">el-icon-info</span></span></li>
+            <li><span><i class="el-icon-remove"></i><span class="icon-name">el-icon-remove</span></span></li>
+            <li><span><i class="el-icon-circle-plus"></i><span class="icon-name">el-icon-circle-plus</span></span></li>
+            <li><span><i class="el-icon-success"></i><span class="icon-name">el-icon-success</span></span></li>
+            <li><span><i class="el-icon-error"></i><span class="icon-name">el-icon-error</span></span></li>
+            <li><span><i class="el-icon-zoom-in"></i><span class="icon-name">el-icon-zoom-in</span></span></li>
+            <li><span><i class="el-icon-zoom-out"></i><span class="icon-name">el-icon-zoom-out</span></span></li>
+            <li><span><i class="el-icon-remove-outline"></i><span class="icon-name">el-icon-remove-outline</span></span>
+            </li>
+            <li><span><i class="el-icon-circle-plus-outline"></i><span
+                    class="icon-name">el-icon-circle-plus-outline</span></span></li>
+            <li><span><i class="el-icon-circle-check"></i><span class="icon-name">el-icon-circle-check</span></span>
+            </li>
+            <li><span><i class="el-icon-circle-close"></i><span class="icon-name">el-icon-circle-close</span></span>
+            </li>
+            <li><span><i class="el-icon-s-help"></i><span class="icon-name">el-icon-s-help</span></span></li>
+            <li><span><i class="el-icon-help"></i><span class="icon-name">el-icon-help</span></span></li>
+            <li><span><i class="el-icon-minus"></i><span class="icon-name">el-icon-minus</span></span></li>
+            <li><span><i class="el-icon-plus"></i><span class="icon-name">el-icon-plus</span></span></li>
+            <li><span><i class="el-icon-check"></i><span class="icon-name">el-icon-check</span></span></li>
+            <li><span><i class="el-icon-close"></i><span class="icon-name">el-icon-close</span></span></li>
+            <li><span><i class="el-icon-picture"></i><span class="icon-name">el-icon-picture</span></span></li>
+            <li><span><i class="el-icon-picture-outline"></i><span
+                    class="icon-name">el-icon-picture-outline</span></span></li>
+            <li><span><i class="el-icon-picture-outline-round"></i><span
+                    class="icon-name">el-icon-picture-outline-round</span></span></li>
+            <li><span><i class="el-icon-upload"></i><span class="icon-name">el-icon-upload</span></span></li>
+            <li><span><i class="el-icon-upload2"></i><span class="icon-name">el-icon-upload2</span></span></li>
+            <li><span><i class="el-icon-download"></i><span class="icon-name">el-icon-download</span></span></li>
+            <li><span><i class="el-icon-camera-solid"></i><span class="icon-name">el-icon-camera-solid</span></span>
+            </li>
+            <li><span><i class="el-icon-camera"></i><span class="icon-name">el-icon-camera</span></span></li>
+            <li><span><i class="el-icon-video-camera-solid"></i><span
+                    class="icon-name">el-icon-video-camera-solid</span></span></li>
+            <li><span><i class="el-icon-video-camera"></i><span class="icon-name">el-icon-video-camera</span></span>
+            </li>
+            <li><span><i class="el-icon-message-solid"></i><span class="icon-name">el-icon-message-solid</span></span>
+            </li>
+            <li><span><i class="el-icon-bell"></i><span class="icon-name">el-icon-bell</span></span></li>
+            <li><span><i class="el-icon-s-cooperation"></i><span class="icon-name">el-icon-s-cooperation</span></span>
+            </li>
+            <li><span><i class="el-icon-s-order"></i><span class="icon-name">el-icon-s-order</span></span></li>
+            <li><span><i class="el-icon-s-platform"></i><span class="icon-name">el-icon-s-platform</span></span></li>
+            <li><span><i class="el-icon-s-fold"></i><span class="icon-name">el-icon-s-fold</span></span></li>
+            <li><span><i class="el-icon-s-unfold"></i><span class="icon-name">el-icon-s-unfold</span></span></li>
+            <li><span><i class="el-icon-s-operation"></i><span class="icon-name">el-icon-s-operation</span></span></li>
+            <li><span><i class="el-icon-s-promotion"></i><span class="icon-name">el-icon-s-promotion</span></span></li>
+            <li><span><i class="el-icon-s-home"></i><span class="icon-name">el-icon-s-home</span></span></li>
+            <li><span><i class="el-icon-s-release"></i><span class="icon-name">el-icon-s-release</span></span></li>
+            <li><span><i class="el-icon-s-ticket"></i><span class="icon-name">el-icon-s-ticket</span></span></li>
+            <li><span><i class="el-icon-s-management"></i><span class="icon-name">el-icon-s-management</span></span>
+            </li>
+            <li><span><i class="el-icon-s-open"></i><span class="icon-name">el-icon-s-open</span></span></li>
+            <li><span><i class="el-icon-s-shop"></i><span class="icon-name">el-icon-s-shop</span></span></li>
+            <li><span><i class="el-icon-s-marketing"></i><span class="icon-name">el-icon-s-marketing</span></span></li>
+            <li><span><i class="el-icon-s-flag"></i><span class="icon-name">el-icon-s-flag</span></span></li>
+            <li><span><i class="el-icon-s-comment"></i><span class="icon-name">el-icon-s-comment</span></span></li>
+            <li><span><i class="el-icon-s-finance"></i><span class="icon-name">el-icon-s-finance</span></span></li>
+            <li><span><i class="el-icon-s-claim"></i><span class="icon-name">el-icon-s-claim</span></span></li>
+            <li><span><i class="el-icon-s-custom"></i><span class="icon-name">el-icon-s-custom</span></span></li>
+            <li><span><i class="el-icon-s-opportunity"></i><span class="icon-name">el-icon-s-opportunity</span></span>
+            </li>
+            <li><span><i class="el-icon-s-data"></i><span class="icon-name">el-icon-s-data</span></span></li>
+            <li><span><i class="el-icon-s-check"></i><span class="icon-name">el-icon-s-check</span></span></li>
+            <li><span><i class="el-icon-s-grid"></i><span class="icon-name">el-icon-s-grid</span></span></li>
+            <li><span><i class="el-icon-menu"></i><span class="icon-name">el-icon-menu</span></span></li>
+            <li><span><i class="el-icon-share"></i><span class="icon-name">el-icon-share</span></span></li>
+            <li><span><i class="el-icon-d-caret"></i><span class="icon-name">el-icon-d-caret</span></span></li>
+            <li><span><i class="el-icon-caret-left"></i><span class="icon-name">el-icon-caret-left</span></span></li>
+            <li><span><i class="el-icon-caret-right"></i><span class="icon-name">el-icon-caret-right</span></span></li>
+            <li><span><i class="el-icon-caret-bottom"></i><span class="icon-name">el-icon-caret-bottom</span></span>
+            </li>
+            <li><span><i class="el-icon-caret-top"></i><span class="icon-name">el-icon-caret-top</span></span></li>
+            <li><span><i class="el-icon-bottom-left"></i><span class="icon-name">el-icon-bottom-left</span></span></li>
+            <li><span><i class="el-icon-bottom-right"></i><span class="icon-name">el-icon-bottom-right</span></span>
+            </li>
+            <li><span><i class="el-icon-back"></i><span class="icon-name">el-icon-back</span></span></li>
+            <li><span><i class="el-icon-right"></i><span class="icon-name">el-icon-right</span></span></li>
+            <li><span><i class="el-icon-bottom"></i><span class="icon-name">el-icon-bottom</span></span></li>
+            <li><span><i class="el-icon-top"></i><span class="icon-name">el-icon-top</span></span></li>
+            <li><span><i class="el-icon-top-left"></i><span class="icon-name">el-icon-top-left</span></span></li>
+            <li><span><i class="el-icon-top-right"></i><span class="icon-name">el-icon-top-right</span></span></li>
+            <li><span><i class="el-icon-arrow-left"></i><span class="icon-name">el-icon-arrow-left</span></span></li>
+            <li><span><i class="el-icon-arrow-right"></i><span class="icon-name">el-icon-arrow-right</span></span></li>
+            <li><span><i class="el-icon-arrow-down"></i><span class="icon-name">el-icon-arrow-down</span></span></li>
+            <li><span><i class="el-icon-arrow-up"></i><span class="icon-name">el-icon-arrow-up</span></span></li>
+            <li><span><i class="el-icon-d-arrow-left"></i><span class="icon-name">el-icon-d-arrow-left</span></span>
+            </li>
+            <li><span><i class="el-icon-d-arrow-right"></i><span class="icon-name">el-icon-d-arrow-right</span></span>
+            </li>
+            <li><span><i class="el-icon-video-pause"></i><span class="icon-name">el-icon-video-pause</span></span></li>
+            <li><span><i class="el-icon-video-play"></i><span class="icon-name">el-icon-video-play</span></span></li>
+            <li><span><i class="el-icon-refresh"></i><span class="icon-name">el-icon-refresh</span></span></li>
+            <li><span><i class="el-icon-refresh-right"></i><span class="icon-name">el-icon-refresh-right</span></span>
+            </li>
+            <li><span><i class="el-icon-refresh-left"></i><span class="icon-name">el-icon-refresh-left</span></span>
+            </li>
+            <li><span><i class="el-icon-finished"></i><span class="icon-name">el-icon-finished</span></span></li>
+            <li><span><i class="el-icon-sort"></i><span class="icon-name">el-icon-sort</span></span></li>
+            <li><span><i class="el-icon-sort-up"></i><span class="icon-name">el-icon-sort-up</span></span></li>
+            <li><span><i class="el-icon-sort-down"></i><span class="icon-name">el-icon-sort-down</span></span></li>
+            <li><span><i class="el-icon-rank"></i><span class="icon-name">el-icon-rank</span></span></li>
+            <li><span><i class="el-icon-loading"></i><span class="icon-name">el-icon-loading</span></span></li>
+            <li><span><i class="el-icon-view"></i><span class="icon-name">el-icon-view</span></span></li>
+            <li><span><i class="el-icon-c-scale-to-original"></i><span
+                    class="icon-name">el-icon-c-scale-to-original</span></span></li>
+            <li><span><i class="el-icon-date"></i><span class="icon-name">el-icon-date</span></span></li>
+            <li><span><i class="el-icon-edit"></i><span class="icon-name">el-icon-edit</span></span></li>
+            <li><span><i class="el-icon-edit-outline"></i><span class="icon-name">el-icon-edit-outline</span></span>
+            </li>
+            <li><span><i class="el-icon-folder"></i><span class="icon-name">el-icon-folder</span></span></li>
+            <li><span><i class="el-icon-folder-opened"></i><span class="icon-name">el-icon-folder-opened</span></span>
+            </li>
+            <li><span><i class="el-icon-folder-add"></i><span class="icon-name">el-icon-folder-add</span></span></li>
+            <li><span><i class="el-icon-folder-remove"></i><span class="icon-name">el-icon-folder-remove</span></span>
+            </li>
+            <li><span><i class="el-icon-folder-delete"></i><span class="icon-name">el-icon-folder-delete</span></span>
+            </li>
+            <li><span><i class="el-icon-folder-checked"></i><span class="icon-name">el-icon-folder-checked</span></span>
+            </li>
+            <li><span><i class="el-icon-tickets"></i><span class="icon-name">el-icon-tickets</span></span></li>
+            <li><span><i class="el-icon-document-remove"></i><span
+                    class="icon-name">el-icon-document-remove</span></span></li>
+            <li><span><i class="el-icon-document-delete"></i><span
+                    class="icon-name">el-icon-document-delete</span></span></li>
+            <li><span><i class="el-icon-document-copy"></i><span class="icon-name">el-icon-document-copy</span></span>
+            </li>
+            <li><span><i class="el-icon-document-checked"></i><span
+                    class="icon-name">el-icon-document-checked</span></span></li>
+            <li><span><i class="el-icon-document"></i><span class="icon-name">el-icon-document</span></span></li>
+            <li><span><i class="el-icon-document-add"></i><span class="icon-name">el-icon-document-add</span></span>
+            </li>
+            <li><span><i class="el-icon-printer"></i><span class="icon-name">el-icon-printer</span></span></li>
+            <li><span><i class="el-icon-paperclip"></i><span class="icon-name">el-icon-paperclip</span></span></li>
+            <li><span><i class="el-icon-takeaway-box"></i><span class="icon-name">el-icon-takeaway-box</span></span>
+            </li>
+            <li><span><i class="el-icon-search"></i><span class="icon-name">el-icon-search</span></span></li>
+            <li><span><i class="el-icon-monitor"></i><span class="icon-name">el-icon-monitor</span></span></li>
+            <li><span><i class="el-icon-attract"></i><span class="icon-name">el-icon-attract</span></span></li>
+            <li><span><i class="el-icon-mobile"></i><span class="icon-name">el-icon-mobile</span></span></li>
+            <li><span><i class="el-icon-scissors"></i><span class="icon-name">el-icon-scissors</span></span></li>
+            <li><span><i class="el-icon-umbrella"></i><span class="icon-name">el-icon-umbrella</span></span></li>
+            <li><span><i class="el-icon-headset"></i><span class="icon-name">el-icon-headset</span></span></li>
+            <li><span><i class="el-icon-brush"></i><span class="icon-name">el-icon-brush</span></span></li>
+            <li><span><i class="el-icon-mouse"></i><span class="icon-name">el-icon-mouse</span></span></li>
+            <li><span><i class="el-icon-coordinate"></i><span class="icon-name">el-icon-coordinate</span></span></li>
+            <li><span><i class="el-icon-magic-stick"></i><span class="icon-name">el-icon-magic-stick</span></span></li>
+            <li><span><i class="el-icon-reading"></i><span class="icon-name">el-icon-reading</span></span></li>
+            <li><span><i class="el-icon-data-line"></i><span class="icon-name">el-icon-data-line</span></span></li>
+            <li><span><i class="el-icon-data-board"></i><span class="icon-name">el-icon-data-board</span></span></li>
+            <li><span><i class="el-icon-pie-chart"></i><span class="icon-name">el-icon-pie-chart</span></span></li>
+            <li><span><i class="el-icon-data-analysis"></i><span class="icon-name">el-icon-data-analysis</span></span>
+            </li>
+            <li><span><i class="el-icon-collection-tag"></i><span class="icon-name">el-icon-collection-tag</span></span>
+            </li>
+            <li><span><i class="el-icon-film"></i><span class="icon-name">el-icon-film</span></span></li>
+            <li><span><i class="el-icon-suitcase"></i><span class="icon-name">el-icon-suitcase</span></span></li>
+            <li><span><i class="el-icon-suitcase-1"></i><span class="icon-name">el-icon-suitcase-1</span></span></li>
+            <li><span><i class="el-icon-receiving"></i><span class="icon-name">el-icon-receiving</span></span></li>
+            <li><span><i class="el-icon-collection"></i><span class="icon-name">el-icon-collection</span></span></li>
+            <li><span><i class="el-icon-files"></i><span class="icon-name">el-icon-files</span></span></li>
+            <li><span><i class="el-icon-notebook-1"></i><span class="icon-name">el-icon-notebook-1</span></span></li>
+            <li><span><i class="el-icon-notebook-2"></i><span class="icon-name">el-icon-notebook-2</span></span></li>
+            <li><span><i class="el-icon-toilet-paper"></i><span class="icon-name">el-icon-toilet-paper</span></span>
+            </li>
+            <li><span><i class="el-icon-office-building"></i><span
+                    class="icon-name">el-icon-office-building</span></span></li>
+            <li><span><i class="el-icon-school"></i><span class="icon-name">el-icon-school</span></span></li>
+            <li><span><i class="el-icon-table-lamp"></i><span class="icon-name">el-icon-table-lamp</span></span></li>
+            <li><span><i class="el-icon-house"></i><span class="icon-name">el-icon-house</span></span></li>
+            <li><span><i class="el-icon-no-smoking"></i><span class="icon-name">el-icon-no-smoking</span></span></li>
+            <li><span><i class="el-icon-smoking"></i><span class="icon-name">el-icon-smoking</span></span></li>
+            <li><span><i class="el-icon-shopping-cart-full"></i><span
+                    class="icon-name">el-icon-shopping-cart-full</span></span></li>
+            <li><span><i class="el-icon-shopping-cart-1"></i><span
+                    class="icon-name">el-icon-shopping-cart-1</span></span></li>
+            <li><span><i class="el-icon-shopping-cart-2"></i><span
+                    class="icon-name">el-icon-shopping-cart-2</span></span></li>
+            <li><span><i class="el-icon-shopping-bag-1"></i><span class="icon-name">el-icon-shopping-bag-1</span></span>
+            </li>
+            <li><span><i class="el-icon-shopping-bag-2"></i><span class="icon-name">el-icon-shopping-bag-2</span></span>
+            </li>
+            <li><span><i class="el-icon-sold-out"></i><span class="icon-name">el-icon-sold-out</span></span></li>
+            <li><span><i class="el-icon-sell"></i><span class="icon-name">el-icon-sell</span></span></li>
+            <li><span><i class="el-icon-present"></i><span class="icon-name">el-icon-present</span></span></li>
+            <li><span><i class="el-icon-box"></i><span class="icon-name">el-icon-box</span></span></li>
+            <li><span><i class="el-icon-bank-card"></i><span class="icon-name">el-icon-bank-card</span></span></li>
+            <li><span><i class="el-icon-money"></i><span class="icon-name">el-icon-money</span></span></li>
+            <li><span><i class="el-icon-coin"></i><span class="icon-name">el-icon-coin</span></span></li>
+            <li><span><i class="el-icon-wallet"></i><span class="icon-name">el-icon-wallet</span></span></li>
+            <li><span><i class="el-icon-discount"></i><span class="icon-name">el-icon-discount</span></span></li>
+            <li><span><i class="el-icon-price-tag"></i><span class="icon-name">el-icon-price-tag</span></span></li>
+            <li><span><i class="el-icon-news"></i><span class="icon-name">el-icon-news</span></span></li>
+            <li><span><i class="el-icon-guide"></i><span class="icon-name">el-icon-guide</span></span></li>
+            <li><span><i class="el-icon-male"></i><span class="icon-name">el-icon-male</span></span></li>
+            <li><span><i class="el-icon-female"></i><span class="icon-name">el-icon-female</span></span></li>
+            <li><span><i class="el-icon-thumb"></i><span class="icon-name">el-icon-thumb</span></span></li>
+            <li><span><i class="el-icon-cpu"></i><span class="icon-name">el-icon-cpu</span></span></li>
+            <li><span><i class="el-icon-link"></i><span class="icon-name">el-icon-link</span></span></li>
+            <li><span><i class="el-icon-connection"></i><span class="icon-name">el-icon-connection</span></span></li>
+            <li><span><i class="el-icon-open"></i><span class="icon-name">el-icon-open</span></span></li>
+            <li><span><i class="el-icon-turn-off"></i><span class="icon-name">el-icon-turn-off</span></span></li>
+            <li><span><i class="el-icon-set-up"></i><span class="icon-name">el-icon-set-up</span></span></li>
+            <li><span><i class="el-icon-chat-round"></i><span class="icon-name">el-icon-chat-round</span></span></li>
+            <li><span><i class="el-icon-chat-line-round"></i><span
+                    class="icon-name">el-icon-chat-line-round</span></span></li>
+            <li><span><i class="el-icon-chat-square"></i><span class="icon-name">el-icon-chat-square</span></span></li>
+            <li><span><i class="el-icon-chat-dot-round"></i><span class="icon-name">el-icon-chat-dot-round</span></span>
+            </li>
+            <li><span><i class="el-icon-chat-dot-square"></i><span
+                    class="icon-name">el-icon-chat-dot-square</span></span></li>
+            <li><span><i class="el-icon-chat-line-square"></i><span
+                    class="icon-name">el-icon-chat-line-square</span></span></li>
+            <li><span><i class="el-icon-message"></i><span class="icon-name">el-icon-message</span></span></li>
+            <li><span><i class="el-icon-postcard"></i><span class="icon-name">el-icon-postcard</span></span></li>
+            <li><span><i class="el-icon-position"></i><span class="icon-name">el-icon-position</span></span></li>
+            <li><span><i class="el-icon-turn-off-microphone"></i><span
+                    class="icon-name">el-icon-turn-off-microphone</span></span></li>
+            <li><span><i class="el-icon-microphone"></i><span class="icon-name">el-icon-microphone</span></span></li>
+            <li><span><i class="el-icon-close-notification"></i><span
+                    class="icon-name">el-icon-close-notification</span></span></li>
+            <li><span><i class="el-icon-bangzhu"></i><span class="icon-name">el-icon-bangzhu</span></span></li>
+            <li><span><i class="el-icon-time"></i><span class="icon-name">el-icon-time</span></span></li>
+            <li><span><i class="el-icon-odometer"></i><span class="icon-name">el-icon-odometer</span></span></li>
+            <li><span><i class="el-icon-crop"></i><span class="icon-name">el-icon-crop</span></span></li>
+            <li><span><i class="el-icon-aim"></i><span class="icon-name">el-icon-aim</span></span></li>
+            <li><span><i class="el-icon-switch-button"></i><span class="icon-name">el-icon-switch-button</span></span>
+            </li>
+            <li><span><i class="el-icon-full-screen"></i><span class="icon-name">el-icon-full-screen</span></span></li>
+            <li><span><i class="el-icon-copy-document"></i><span class="icon-name">el-icon-copy-document</span></span>
+            </li>
+            <li><span><i class="el-icon-mic"></i><span class="icon-name">el-icon-mic</span></span></li>
+            <li><span><i class="el-icon-stopwatch"></i><span class="icon-name">el-icon-stopwatch</span></span></li>
+            <li><span><i class="el-icon-medal-1"></i><span class="icon-name">el-icon-medal-1</span></span></li>
+            <li><span><i class="el-icon-medal"></i><span class="icon-name">el-icon-medal</span></span></li>
+            <li><span><i class="el-icon-trophy"></i><span class="icon-name">el-icon-trophy</span></span></li>
+            <li><span><i class="el-icon-trophy-1"></i><span class="icon-name">el-icon-trophy-1</span></span></li>
+            <li><span><i class="el-icon-first-aid-kit"></i><span class="icon-name">el-icon-first-aid-kit</span></span>
+            </li>
+            <li><span><i class="el-icon-discover"></i><span class="icon-name">el-icon-discover</span></span></li>
+            <li><span><i class="el-icon-place"></i><span class="icon-name">el-icon-place</span></span></li>
+            <li><span><i class="el-icon-location"></i><span class="icon-name">el-icon-location</span></span></li>
+            <li><span><i class="el-icon-location-outline"></i><span
+                    class="icon-name">el-icon-location-outline</span></span></li>
+            <li><span><i class="el-icon-location-information"></i><span
+                    class="icon-name">el-icon-location-information</span></span></li>
+            <li><span><i class="el-icon-add-location"></i><span class="icon-name">el-icon-add-location</span></span>
+            </li>
+            <li><span><i class="el-icon-delete-location"></i><span
+                    class="icon-name">el-icon-delete-location</span></span></li>
+            <li><span><i class="el-icon-map-location"></i><span class="icon-name">el-icon-map-location</span></span>
+            </li>
+            <li><span><i class="el-icon-alarm-clock"></i><span class="icon-name">el-icon-alarm-clock</span></span></li>
+            <li><span><i class="el-icon-timer"></i><span class="icon-name">el-icon-timer</span></span></li>
+            <li><span><i class="el-icon-watch-1"></i><span class="icon-name">el-icon-watch-1</span></span></li>
+            <li><span><i class="el-icon-watch"></i><span class="icon-name">el-icon-watch</span></span></li>
+            <li><span><i class="el-icon-lock"></i><span class="icon-name">el-icon-lock</span></span></li>
+            <li><span><i class="el-icon-unlock"></i><span class="icon-name">el-icon-unlock</span></span></li>
+            <li><span><i class="el-icon-key"></i><span class="icon-name">el-icon-key</span></span></li>
+            <li><span><i class="el-icon-service"></i><span class="icon-name">el-icon-service</span></span></li>
+            <li><span><i class="el-icon-mobile-phone"></i><span class="icon-name">el-icon-mobile-phone</span></span>
+            </li>
+            <li><span><i class="el-icon-bicycle"></i><span class="icon-name">el-icon-bicycle</span></span></li>
+            <li><span><i class="el-icon-truck"></i><span class="icon-name">el-icon-truck</span></span></li>
+            <li><span><i class="el-icon-ship"></i><span class="icon-name">el-icon-ship</span></span></li>
+            <li><span><i class="el-icon-basketball"></i><span class="icon-name">el-icon-basketball</span></span></li>
+            <li><span><i class="el-icon-football"></i><span class="icon-name">el-icon-football</span></span></li>
+            <li><span><i class="el-icon-soccer"></i><span class="icon-name">el-icon-soccer</span></span></li>
+            <li><span><i class="el-icon-baseball"></i><span class="icon-name">el-icon-baseball</span></span></li>
+            <li><span><i class="el-icon-wind-power"></i><span class="icon-name">el-icon-wind-power</span></span></li>
+            <li><span><i class="el-icon-light-rain"></i><span class="icon-name">el-icon-light-rain</span></span></li>
+            <li><span><i class="el-icon-lightning"></i><span class="icon-name">el-icon-lightning</span></span></li>
+            <li><span><i class="el-icon-heavy-rain"></i><span class="icon-name">el-icon-heavy-rain</span></span></li>
+            <li><span><i class="el-icon-sunrise"></i><span class="icon-name">el-icon-sunrise</span></span></li>
+            <li><span><i class="el-icon-sunrise-1"></i><span class="icon-name">el-icon-sunrise-1</span></span></li>
+            <li><span><i class="el-icon-sunset"></i><span class="icon-name">el-icon-sunset</span></span></li>
+            <li><span><i class="el-icon-sunny"></i><span class="icon-name">el-icon-sunny</span></span></li>
+            <li><span><i class="el-icon-cloudy"></i><span class="icon-name">el-icon-cloudy</span></span></li>
+            <li><span><i class="el-icon-partly-cloudy"></i><span class="icon-name">el-icon-partly-cloudy</span></span>
+            </li>
+            <li><span><i class="el-icon-cloudy-and-sunny"></i><span
+                    class="icon-name">el-icon-cloudy-and-sunny</span></span></li>
+            <li><span><i class="el-icon-moon"></i><span class="icon-name">el-icon-moon</span></span></li>
+            <li><span><i class="el-icon-moon-night"></i><span class="icon-name">el-icon-moon-night</span></span></li>
+            <li><span><i class="el-icon-dish"></i><span class="icon-name">el-icon-dish</span></span></li>
+            <li><span><i class="el-icon-dish-1"></i><span class="icon-name">el-icon-dish-1</span></span></li>
+            <li><span><i class="el-icon-food"></i><span class="icon-name">el-icon-food</span></span></li>
+            <li><span><i class="el-icon-chicken"></i><span class="icon-name">el-icon-chicken</span></span></li>
+            <li><span><i class="el-icon-fork-spoon"></i><span class="icon-name">el-icon-fork-spoon</span></span></li>
+            <li><span><i class="el-icon-knife-fork"></i><span class="icon-name">el-icon-knife-fork</span></span></li>
+            <li><span><i class="el-icon-burger"></i><span class="icon-name">el-icon-burger</span></span></li>
+            <li><span><i class="el-icon-tableware"></i><span class="icon-name">el-icon-tableware</span></span></li>
+            <li><span><i class="el-icon-sugar"></i><span class="icon-name">el-icon-sugar</span></span></li>
+            <li><span><i class="el-icon-dessert"></i><span class="icon-name">el-icon-dessert</span></span></li>
+            <li><span><i class="el-icon-ice-cream"></i><span class="icon-name">el-icon-ice-cream</span></span></li>
+            <li><span><i class="el-icon-hot-water"></i><span class="icon-name">el-icon-hot-water</span></span></li>
+            <li><span><i class="el-icon-water-cup"></i><span class="icon-name">el-icon-water-cup</span></span></li>
+            <li><span><i class="el-icon-coffee-cup"></i><span class="icon-name">el-icon-coffee-cup</span></span></li>
+            <li><span><i class="el-icon-cold-drink"></i><span class="icon-name">el-icon-cold-drink</span></span></li>
+            <li><span><i class="el-icon-goblet"></i><span class="icon-name">el-icon-goblet</span></span></li>
+            <li><span><i class="el-icon-goblet-full"></i><span class="icon-name">el-icon-goblet-full</span></span></li>
+            <li><span><i class="el-icon-goblet-square"></i><span class="icon-name">el-icon-goblet-square</span></span>
+            </li>
+            <li><span><i class="el-icon-goblet-square-full"></i><span
+                    class="icon-name">el-icon-goblet-square-full</span></span></li>
+            <li><span><i class="el-icon-refrigerator"></i><span class="icon-name">el-icon-refrigerator</span></span>
+            </li>
+            <li><span><i class="el-icon-grape"></i><span class="icon-name">el-icon-grape</span></span></li>
+            <li><span><i class="el-icon-watermelon"></i><span class="icon-name">el-icon-watermelon</span></span></li>
+            <li><span><i class="el-icon-cherry"></i><span class="icon-name">el-icon-cherry</span></span></li>
+            <li><span><i class="el-icon-apple"></i><span class="icon-name">el-icon-apple</span></span></li>
+            <li><span><i class="el-icon-pear"></i><span class="icon-name">el-icon-pear</span></span></li>
+            <li><span><i class="el-icon-orange"></i><span class="icon-name">el-icon-orange</span></span></li>
+            <li><span><i class="el-icon-coffee"></i><span class="icon-name">el-icon-coffee</span></span></li>
+            <li><span><i class="el-icon-ice-tea"></i><span class="icon-name">el-icon-ice-tea</span></span></li>
+            <li><span><i class="el-icon-ice-drink"></i><span class="icon-name">el-icon-ice-drink</span></span></li>
+            <li><span><i class="el-icon-milk-tea"></i><span class="icon-name">el-icon-milk-tea</span></span></li>
+            <li><span><i class="el-icon-potato-strips"></i><span class="icon-name">el-icon-potato-strips</span></span>
+            </li>
+            <li><span><i class="el-icon-lollipop"></i><span class="icon-name">el-icon-lollipop</span></span></li>
+            <li><span><i class="el-icon-ice-cream-square"></i><span
+                    class="icon-name">el-icon-ice-cream-square</span></span></li>
+            <li><span><i class="el-icon-ice-cream-round"></i><span
+                    class="icon-name">el-icon-ice-cream-round</span></span></li>
+        </ul>
+    </div>
+</template>
+
+<script>
+    export default {
+        name: "ICON"
+    }
+</script>
+
+<style lang="scss">
+    .myicons{
+        ul:not(.timeline) {
+            margin: 10px 0;
+            padding: 0 0 0 20px;
+            font-size: 14px;
+            color: #5e6d82;
+            line-height: 2em;
+        }
+
+        ul.icon-list {
+            overflow: hidden;
+            list-style: none;
+            padding: 0!important;
+            border: 1px solid #eaeefb;
+            border-radius: 4px;
+
+            li {
+                float: left;
+                width: 16.66%;
+                text-align: center;
+                height: 120px;
+                line-height: 120px;
+                color: #666;
+                font-size: 13px;
+                border-right: 1px solid #eee;
+                border-bottom: 1px solid #eee;
+                margin-right: -1px;
+                margin-bottom: -1px;
+            }
+        }
+    }
+</style>
diff --git a/src/components/NavMenu/index.vue b/src/components/NavMenu/index.vue
index 55da6de..ebb908a 100644
--- a/src/components/NavMenu/index.vue
+++ b/src/components/NavMenu/index.vue
@@ -4,7 +4,7 @@
                  background-color="#26384c"
                  text-color="#fff"
                  active-text-color="#ffd04b"
-                 style="overflow-y:scroll"
+                 style="overflow-y:scroll;border-right:none;"
                  @open="handleopen"
                  @close="handleclose"
                  @select="handleselect"
diff --git a/src/routes.js b/src/routes.js
index 88a398e..92266d0 100755
--- a/src/routes.js
+++ b/src/routes.js
@@ -46,9 +46,6 @@ import airlift from './views/nav4/airlift.vue'
 import inquiry from './views/nav4/inquiry.vue'
 import Page6 from './views/nav3/Page6.vue'
 import Page7 from './views/nav3/Page7.vue'
-import Dispatch from './views/nav3/Dispatch.vue'
-import DriverInfo from './views/nav3/DriverInfo.vue'
-import VehicleInfo from './views/nav3/VehicleInfo.vue'
 import importFFMMsg from './views/airRadioMsg/importFFMMsg.vue'
 import importFHLMsg from './views/airRadioMsg/importFHLMsg.vue'
 import importFWBMsg from './views/airRadioMsg/importFWBMsg.vue'
@@ -120,6 +117,12 @@ import Webdialog from './views/bus/Webdialog.vue'
 //国际转运
 import Transport from './views/nav4/Transport.vue'
 
+/* 车辆调度系统 */
+import DriverInfo from "./views/dispatch/DriverInfo";
+import VehicleInfo from "./views/dispatch/VehicleInfo";
+import DispatchNode from "./views/dispatch/DispatchNode";
+import Dispatch from "./views/dispatch/Dispatch";
+
 
 
 let routes = [
@@ -480,6 +483,19 @@ let routes = [
             {path: '/warehouse', component: Warehouse, name: '仓库管理'},
         ]
     },
+    {
+        path: '/',
+        component: Home,
+        name: '车辆调度管理',
+        iconCls: 'el-icon-truck',
+        children: [
+            {path: '/dispatch', component: Dispatch, name: '车辆调度'},
+            {path: '/dispatchNode', component: DispatchNode, name: '调度记录'},
+            {path: '/vehicleInfo', component: VehicleInfo, name: '车辆信息'},
+            {path: '/driverInfo', component: DriverInfo, name: '驾驶员信息'},
+            // {path: '/companyInfo', component: CompanyInfo, name: '公司信息'},
+        ]
+    },
 
     {
         path: '/empt',
diff --git a/src/views/HomeNew.vue b/src/views/HomeNew.vue
index 6e101bd..9a16f56 100755
--- a/src/views/HomeNew.vue
+++ b/src/views/HomeNew.vue
@@ -1,6 +1,6 @@
 <template>
     <el-container>
-        <el-aside style="width:250px;background-color: rgb(238, 241, 246)" id="l-menu">
+        <el-aside style="width:250px;background-color: rgb(38, 56, 76);" id="l-menu">
             <NavMenu :collapsed="collapsed"></NavMenu>
         </el-aside>
 
@@ -39,6 +39,8 @@
     import TabMenu from "@/components/TabMenu"
     import NavMenu from "@/components/NavMenu"
     import loginuserInfo from "@/api/base";
+    import {mapActions, mapGetters} from 'vuex'
+    import jsutil from "@/common/js/util";
 
     export default {
 
@@ -74,6 +76,18 @@
             }
         },
         methods: {
+            ...mapActions( // 语法糖
+                ['setUserInfoStore','setUserMenuStore'] // 相当于this.$store.dispatch('modifyName'),提交这个方法
+            ),
+            initUserInfo:function() {
+                if (jsutil.checkNull(this.getUserInfoStore.username)){
+                    this.sysUserName = this.getUserInfoStore.username || '';
+                    this.sysUserId=this.getUserInfoStore.userId||'';
+                    this.sysUserAvatar = this.getUserInfoStore.userface || '~img/faceDefault.jpg';
+                }else {
+                    this.setUserInfoStore(loginuserInfo);
+                }
+            },
             reload() {
                 this.$nextTick(function () {
                    this.$router.push({
@@ -102,11 +116,21 @@
                 this.$confirm('确认退出吗?', '提示', {
                     //type: 'warning'
                 }).then(() => {
+                    this.$axios.defaults.headers.common['Authorization'] = undefined;
                     sessionStorage.removeItem('user');
                     sessionStorage.removeItem('menu');
+                    //清空菜单
+                    this.setUserMenuStore([]);
+                    this.setUserInfoStore({
+                        userId: 0,
+                        username: '',
+                        companyId: 0,
+                        companyName: '',
+                        realname: '',
+                        userface: ''
+                    });
                     //退出后初始化原来的路由
                     let sysRoutes =  JSON.parse(sessionStorage.getItem('sysMenu'));
-                    console.log(sysRoutes);
                     _this.$router.options.routes = sysRoutes;
 
                     _this.$router.push('/login');
@@ -121,23 +145,19 @@
                 this.collapsed=!this.collapsed;
             }
         },
+        computed: {
+            ...mapGetters(['getUserInfoStore','getUserMenuStore']) // 动态计算属性,相当于this.$store.getters.resturantName
+        },
         mounted() {
-            var _this = this;
-            var user = loginuserInfo;
-            if (user) {
-                this.sysUserName = user.username || '';
-                this.sysUserId=user.userId||'';
-
-                this.sysUserAvatar = user.userface || '~img/faceDefault.jpg';
-            }
             //操作路由,判断本地存储的用户栏目列表是否存在,如果存在则加载路由
             var userRouters = sessionStorage.getItem('menu');
             if (userRouters) {
                 userRouters = JSON.parse(userRouters);
                 _this.$router.options.routes = userRouters;
-                console.log("home:");
-                console.log(_this.$router.options.routes);
             }
+            this.$nextTick(function(){
+                this.initUserInfo();
+            })
         },
         watch: {
             collapsed(value) {
diff --git a/src/views/Login.vue b/src/views/Login.vue
index d093aec..00b4032 100755
--- a/src/views/Login.vue
+++ b/src/views/Login.vue
@@ -6,7 +6,7 @@
         <el-input type="text" v-model="ruleForm2.account" autofocus placeholder="账号"></el-input>
       </el-form-item>
       <el-form-item prop="checkPass">
-        <el-input type="password" v-model="ruleForm2.checkPass"  placeholder="密码" @keyup.enter.native="handleSubmit2"></el-input>
+        <el-input type="password" v-model="ruleForm2.checkPass"  placeholder="密码" @keyup.enter.native="handleSubmit2" show-password></el-input>
       </el-form-item>
 <!--      <el-form-item prop="checkPass">-->
 <!--        <el-input type="password" v-model="ruleForm2.checkPass"  placeholder="密码" @keyup.enter.native="handleSubmit2"></el-input>-->
@@ -38,6 +38,7 @@
   import axios from 'axios'
   import http from '../api/http';
   import {getRandCode} from '../api/user';
+  import {mapActions, mapGetters} from 'vuex'
   //import NProgress from 'nprogress'
   export default {
     data() {
@@ -46,9 +47,9 @@
           fixStyle: '',
           logining: false,
           ruleForm2: {
-          account: 'admin',
+          account: '',
           // checkPass: 'zzairport@kako2020'
-          checkPass: 'vmvnv1v2VV'
+          checkPass: ''
           },
           rules2: {
           account: [
@@ -65,13 +66,16 @@
       };
     },
     methods: {
+      ...mapActions( // 语法糖
+              ['setUserInfoStore'] // 相当于this.$store.dispatch('modifyName'),提交这个方法
+      ),
         canplay() {
             this.vedioCanPlay = true
         },
       handleReset2() {
         this.$refs.ruleForm2.resetFields();
       },
-        handleMenuList : function (router,menu) {
+      handleMenuList : function (router,menu) {
             var _this = this;
             var routerName = "";
             var routerTemp = router.concat();
@@ -132,6 +136,7 @@
                         } else if (token) {
                             sessionStorage.setItem('user', JSON.stringify(authentication));
                             sessionStorage.setItem('token','Bearer '+ token);
+                            this.setUserInfoStore(authentication);
                             //设置token,设置axios 基本配置,但是刷新后 这个登录保存的就没了
                             axios.defaults.headers.common['Authorization'] = 'Bearer '+token;
                             //处理用户menu
@@ -152,7 +157,7 @@
                         }
                     }).catch(error => {
                         this.$message({
-                            message: error.toString(),
+                            message: error.toString()+"-登录验证失败",
                             type: "error"
                         });
                         this.logining = false;
diff --git a/src/views/dispatch/Dispatch.vue b/src/views/dispatch/Dispatch.vue
new file mode 100644
index 0000000..5e7314d
--- /dev/null
+++ b/src/views/dispatch/Dispatch.vue
@@ -0,0 +1,725 @@
+<template>
+    <el-container>
+        <el-main>
+            <el-card style="background-color: #F5F7FA">
+                <!-- 搜素区域 -->
+                <div>
+                    <el-form :model="queryInfo" :rules="queryFormRules" ref="queryFormRef" status-icon>
+                        <el-form-item>
+                            <el-col :span="4">
+                                <el-form-item prop="gmtCreate">
+                                    <el-date-picker v-model="queryInfo.gmtCreate" type="date" value-format="yyyy-MM-dd"
+                                                    placeholder="选择创建调度时间"
+                                                    style="width: 200px"></el-date-picker>
+                                </el-form-item>
+                            </el-col>
+                            <el-col :span="4" style="margin-left: 50px">
+                                <el-form-item prop="dispatchType">
+                                    <el-select v-model="queryInfo.dispatchType" placeholder="请选择业务类型"
+                                               style="width: 200px"
+                                               clearable>
+                                        <el-option
+                                                v-for="item in dispatchTypeList"
+                                                :key="item.value"
+                                                :label="item.label"
+                                                :value="item.value">
+                                        </el-option>
+                                    </el-select>
+                                </el-form-item>
+                            </el-col>
+                            <el-col :span="4" style="margin-left: 50px">
+                                <el-form-item prop="status">
+                                    <el-select v-model="queryInfo.status" placeholder="记录状态" clearable
+                                               style="width:200px;margin-left: 6px">
+                                        <el-option
+                                                v-for="item in statusList"
+                                                :key="item.value"
+                                                :label="item.label"
+                                                :value="item.value">
+                                        </el-option>
+                                    </el-select>
+                                </el-form-item>
+                            </el-col>
+                            <el-button type="primary" style="margin-left: 60px"
+                                       @click="getDispatchNodeList">查询调度记录
+                            </el-button>
+                            <el-button type="success" style="margin-left: 15px" @click="dispatchFormVisible = true">
+                                我要调度车辆
+                            </el-button>
+                        </el-form-item>
+                    </el-form>
+                    <el-row style="margin-top: 20px;">
+                    </el-row>
+                </div>
+                <!--调度记录列表区域-->
+                <div style="margin-top: 20px;">
+                    <el-table :data="DispatchNoteList" border highlight-current-row v-loading="listLoading"
+                              :row-class-name="rowStatus"
+                              element-loading-text="拼命加载中">
+                        <el-table-column type="index" align="center"></el-table-column>
+                        <el-table-column label="用户名称" prop="userName" align="center" width="100"></el-table-column>
+                        <el-table-column label="联系方式" prop="userMobile" align="center" width="120"></el-table-column>
+                        <el-table-column label="状态" prop="status" align="center" width="120">
+                            <template slot-scope="scope">
+                                <span v-if="scope.row.status ==='1'">完成状态</span>
+                                <span v-if="scope.row.status ==='2'">执行状态</span>
+                                <span v-if="scope.row.status ==='3'">取消状态</span>
+                                <span v-if="scope.row.status ==='4'">待执行状态</span>
+                            </template>
+                        </el-table-column>
+                        <el-table-column label="业务类型" prop="dispatchType" align="center" width="120">
+                            <template slot-scope="scope">
+                                <span v-if="scope.row.dispatchType ==='1'">进站送货</span>
+                                <span v-if="scope.row.dispatchType ==='2'">出站提货</span>
+                                <span v-if="scope.row.dispatchType ==='3'">货物调拨</span>
+                                <span v-if="scope.row.dispatchType ==='4'">货物流转</span>
+                            </template>
+                        </el-table-column>
+                        <el-table-column label="车牌号码" prop="licensePlateNumber" align="center"
+                                         width="120"></el-table-column>
+                        <el-table-column label="车辆类型" prop="vehicleType" align="center" width="120">
+                            <template slot-scope="scope">
+                                <span v-if="scope.row.vehicleType ==='1'">重型货车</span>
+                                <span v-if="scope.row.vehicleType ==='2'">中型货车</span>
+                                <span v-if="scope.row.vehicleType ==='3'">轻型货车</span>
+                                <span v-if="scope.row.vehicleType ==='4'">微型货车</span>
+                                <span v-if="scope.row.vehicleType ==='5'">拖车</span>
+                                <span v-if="scope.row.vehicleType ==='6'">叉车</span>
+                            </template>
+                        </el-table-column>
+                        <el-table-column label="场站位置" prop="station" align="center" width="120">
+                            <template slot-scope="scope">
+                                <span v-if="scope.row.station ==='1'">西货站</span>
+                                <span v-if="scope.row.station ==='2'">综保区</span>
+                                <span v-if="scope.row.station ==='3'">军投</span>
+                                <span v-if="scope.row.station ==='4'">快邮</span>
+                            </template>
+                        </el-table-column>
+                        <el-table-column label="创建时间" prop="gmtCreate" align="center" width="160"></el-table-column>
+                        <el-table-column label="开始时间" prop="beginTime" align="center" width="160"></el-table-column>
+                        <el-table-column label="完成时间" prop="endTime" align="center" width="160"></el-table-column>
+                        <el-table-column label="操作" width="220px" fixed="right" align="center">
+                            <template slot-scope="scope">
+                                <!--查看按钮-->
+                                <el-tooltip effect="dark" content="查看" placement="top-start" :enterable="false">
+                                    <el-button type="primary" icon="el-icon-edit" size="mini"
+                                               @click="showDialogVisible(scope.row)">查看
+                                    </el-button>
+                                </el-tooltip>
+                                <!--取消调度按钮-->
+                                <el-tooltip effect="dark" content="取消调度" placement="top-start" :enterable="false">
+                                    <el-button type="danger" icon="el-icon-delete" size="mini"
+                                               :disabled="scope.row.endTime!==null && scope.row.endTime!==''"
+                                               @click="cancelDispatch(scope.row)" :loading="cancelLoading">取消调度
+                                    </el-button>
+                                </el-tooltip>
+                            </template>
+                        </el-table-column>
+                    </el-table>
+                    <!--分页区域-->
+                    <div style="margin-top: 10px">
+                        <el-pagination
+                                @size-change="handleSizeChange"
+                                @current-change="handleCurrentChange"
+                                :current-page="this.queryInfo.pageNum"
+                                :page-sizes="[10,20,30,50]"
+                                :page-size="this.queryInfo.pageSize"
+                                layout="total, sizes, prev, pager, next, jumper"
+                                :total="total">
+                        </el-pagination>
+                    </div>
+                </div>
+            </el-card>
+            <!-- 我要调度车辆,对话框 -->
+            <div>
+                <el-dialog
+                        title="我要调度车辆"
+                        :visible.sync="dispatchFormVisible"
+                        width="50%" @close="dispatchDialogClosed">
+                    <!--  :rules="dispatchFormRules" ref="dispatchFormRef"-->
+                    <el-form :model="dispatchForm" label-width="100px" status-icon
+                             :rules="dispatchFormRules" ref="dispatchFormRef"
+                             style="margin-left:10%;margin-right:10%;background-color: #F5F7FA">
+                        <br>
+                        <el-form-item label="车辆类型:" prop="vehicleType">
+                            <el-select v-model="dispatchForm.vehicleType" style="width: 300px" clearable
+                                       placeholder="请选择车辆类型">
+                                <el-option
+                                        v-for="item in vehicleTypeList"
+                                        :key="item.value"
+                                        :label="item.label"
+                                        :value="item.value">
+                                </el-option>
+                            </el-select>
+                        </el-form-item>
+                        <el-form-item label="车辆数量:" prop="vehicleNumber">
+                            <el-input-number style="width: 200px" v-model="dispatchForm.vehicleNumber"
+                                             :min="1" :max="100" controls-position="right">
+                            </el-input-number>
+                            <span style="margin-left:5px;font-size: 18px">辆</span>
+                        </el-form-item>
+                        <el-form-item label="场站位置:" prop="station">
+                            <el-select v-model="dispatchForm.station" style="width: 300px" clearable
+                                       placeholder="请选择场站位置">
+                                <el-option
+                                        v-for="item in stationList"
+                                        :key="item.value"
+                                        :label="item.label"
+                                        :value="item.value">
+                                </el-option>
+                            </el-select>
+                        </el-form-item>
+                        <el-form-item label="业务类型:" prop="dispatchType">
+                            <el-select v-model="dispatchForm.dispatchType" style="width: 300px;" clearable
+                                       placeholder="请选择业务类型">
+                                <el-option
+                                        v-for="item in dispatchTypeList"
+                                        :key="item.value"
+                                        :label="item.label"
+                                        :value="item.value">
+                                </el-option>
+                            </el-select>
+                        </el-form-item>
+                        <br>
+                    </el-form>
+                    <!--底部按钮区域-->
+                    <span slot="footer" class="dialog-footer">
+                        <el-button @click="dispatchFormVisible = false">取 消</el-button>
+                        <el-button type="primary" @click="dispatchVehicle" :loading="dispatchLoading">确定调度车辆</el-button>
+                    </span>
+                </el-dialog>
+            </div>
+            <!-- 查看调度记录,对话框 -->
+            <div>
+                <el-dialog
+                        style="margin-top: -50px"
+                        title="查看调度记录明细"
+                        :visible.sync="viewDialogVisible"
+                        text-align="center"
+                        width="60%" @close="showDialogClosed">
+                    <!-- 表单显示区域 :rules="dispatchFormRules" -->
+                    <el-form :model="showForm" ref="showFormRef"
+                             :inline="true" align="center"
+                             style="background-color: #F5F7FA;margin-left: 5%;margin-right: 5%">
+                        <div style="margin-top: -15px">
+                            <br>
+                            <el-form-item label="用户名称:" prop="userName">
+                                <el-input v-model="showForm.userName" style="width: 200px;" size="small"
+                                          readonly></el-input>
+                            </el-form-item>
+                            <el-form-item label="联系方式:" prop="userMobile">
+                                <el-input v-model="showForm.userMobile" style="width: 200px;" size="small"
+                                          readonly></el-input>
+                            </el-form-item>
+                            <el-form-item label="车辆类型:" prop="vehicleType">
+                                <el-select v-model="showForm.vehicleType" style="width:200px" size="small" readonly
+                                           placeholder="请选择车辆类型">
+                                    <el-option
+                                            v-for="item in vehicleTypeList"
+                                            :key="item.value"
+                                            :label="item.label"
+                                            :value="item.value">
+                                    </el-option>
+                                </el-select>
+                            </el-form-item>
+                            <el-form-item label="车牌号码:" prop="licensePlateNumber">
+                                <el-input v-model="showForm.licensePlateNumber" style="width: 200px;" size="small"
+                                          readonly></el-input>
+                            </el-form-item>
+                            <el-form-item label="场站位置:" prop="station">
+                                <el-select v-model="showForm.station" style="width:200px" readonly size="small"
+                                           placeholder="请选择场站位置">
+                                    <el-option
+                                            v-for="item in stationList"
+                                            :key="item.value"
+                                            :label="item.label"
+                                            :value="item.value">
+                                    </el-option>
+                                </el-select>
+                            </el-form-item>
+                            <el-form-item label="业务类型:" prop="dispatchType">
+                                <el-select v-model="showForm.dispatchType" style="width:200px" readonly size="small"
+                                           placeholder="请选择业务类型">
+                                    <el-option
+                                            v-for="item in dispatchTypeList"
+                                            :key="item.value"
+                                            :label="item.label"
+                                            :value="item.value">
+                                    </el-option>
+                                </el-select>
+                            </el-form-item>
+                            <el-form-item label="创建时间:" prop="gmtCreate">
+                                <el-input v-model="showForm.gmtCreate" style="width: 200px;" size="small"
+                                          readonly></el-input>
+                            </el-form-item>
+                            <el-form-item label="开始时间:" prop="beginTime">
+                                <el-input v-model="showForm.beginTime" style="width: 200px;" size="small"
+                                          readonly></el-input>
+                            </el-form-item>
+                            <el-form-item label="结束时间:" prop="endTime">
+                                <el-input v-model="showForm.endTime" style="width: 200px;" size="small"
+                                          readonly></el-input>
+                            </el-form-item>
+                            <el-form-item label="记录状态:" prop="status">
+                                <el-select v-model="showForm.status" placeholder="记录状态" style="width:200px" size="small"
+                                           readonly>
+                                    <el-option
+                                            v-for="item in statusList"
+                                            :key="item.value"
+                                            :label="item.label"
+                                            :value="item.value">
+                                    </el-option>
+                                </el-select>
+                            </el-form-item>
+                            <br>
+                        </div>
+                    </el-form>
+                    <!--底部按钮区域-->
+                    <span slot="footer" class="dialog-footer">
+                        <el-button type="primary" @click="viewDialogVisible = false">结束查看</el-button>
+                    </span>
+                </el-dialog>
+            </div>
+        </el-main>
+    </el-container>
+</template>
+
+<script>
+    import {selectDispatchNoteList, dispatch, cancel, getUser} from '../../api/dispatch_api'
+
+    export default {
+        name: 'dispatch_api',
+        created() {
+
+        },
+        data() {
+            /**
+             * 验证手机号的自定义规则
+             */
+            var userMobileValid = (rule, value, callback) => {
+                //验证手机号的正则表达式
+                const regMobile = /^(0|86|17951)?(13[0-9]|15[0123456789]|17[678]|18[0-9]|14[57])[0-9]{8}$/;
+                if (regMobile.test(value)) {
+                    //合法的手机号
+                    return callback();
+                }
+                callback(new Error('请输入合法的手机号'));
+            };
+            return {
+                /**
+                 * 查询列表
+                 */
+                queryInfo: {
+                    //用户姓名
+                    userName: '',
+                    //用户联系方式
+                    userMobile: '',
+                    //记录状态
+                    status: '',
+                    //调度时间
+                    gmtCreate: new Date(),
+                    //业务类型
+                    dispatchType: '',
+                    //当前的页数
+                    pageNum: 1,
+                    //当前每页显示多少条数据
+                    pageSize: 10
+                },
+                /**
+                 * 记录列表,总条数
+                 */
+                total: 0,
+                /**
+                 * 所有,调度记录列表
+                 */
+                DispatchNoteList: [],
+                /**
+                 * 我要调度车辆,表单
+                 */
+                dispatchForm: {
+                    userName: '',
+                    userMobile: '',
+                    //车辆数量
+                    vehicleNumber: 1,
+                    //车辆类型
+                    vehicleType: '2',
+                    //场站位置
+                    station: '1',
+                    //调度业务类型
+                    dispatchType: '1'
+                },
+
+                /**
+                 * 查看记录明细,表单
+                 */
+                showForm: {},
+                /**
+                 * 控制添加用户对话框的显示与隐藏
+                 */
+                dispatchFormVisible: false,
+                /**
+                 * 控制查看调度记录明细,对话框的显示与隐藏
+                 */
+                viewDialogVisible: false,
+                /**
+                 * loading加载
+                 */
+                /* 获取列表时的加载 */
+                listLoading: false,
+                /* 调度车辆时的加载 */
+                dispatchLoading: false,
+                /* 取消调度时的加载 */
+                cancelLoading: false,
+                /**
+                 * 业务类型,选项列表
+                 */
+                dispatchTypeList: [
+                    {
+                        value: '1',
+                        label: '进站送货'
+                    },
+                    {
+                        value: '2',
+                        label: '出站提货'
+                    },
+                    {
+                        value: '3',
+                        label: '货物流转'
+                    },
+                    {
+                        value: '4',
+                        label: '货物调拨'
+                    }
+                ],
+                /**
+                 * 车辆类型,选项列表
+                 */
+                vehicleTypeList: [
+                    {
+                        value: '1',
+                        label: '重型货车'
+                    },
+                    {
+                        value: '2',
+                        label: '中型货车'
+                    },
+                    {
+                        value: '3',
+                        label: '经济货车'
+                    },
+                    {
+                        value: '4',
+                        label: '微型货车'
+                    },
+                    {
+                        value: '5',
+                        label: '拖车'
+                    },
+                    {
+                        value: '6',
+                        label: '叉车'
+                    }
+                ],
+                /**
+                 * 记录状态,列表
+                 */
+                statusList: [
+                    {
+                        value: '1',
+                        label: '完成状态'
+                    },
+                    {
+                        value: '2',
+                        label: '执行状态'
+                    },
+                    {
+                        value: '3',
+                        label: '取消状态'
+                    },
+                    {
+                        value: '4',
+                        label: '待执行状态'
+                    }
+                ],
+
+                /**
+                 * 场站位置,选项列表
+                 */
+                stationList: [
+                    {
+                        value: '1',
+                        label: '西货站'
+                    },
+                    {
+                        value: '2',
+                        label: '综保区'
+                    },
+                    {
+                        value: '3',
+                        label: '军投'
+                    },
+                    {
+                        value: '4',
+                        label: '快邮'
+                    }
+                ],
+
+                queryFormRules: {
+                    userName: [
+                        {required: true, message: '请输入姓名', trigger: ['blur', 'change']},
+                    ],
+                    userMobile: [
+                        {required: true, message: '请输入联系方式', trigger: ['blur', 'change']},
+                        {validator: userMobileValid, trigger: 'blur'}
+                    ],
+                },
+                /**
+                 * 调度车辆表单的验证规则对象
+                 */
+                dispatchFormRules: {
+                    status: [
+                        {required: true, message: '请选择记录状态', trigger: ['blur', 'change']},
+                    ],
+                    gmtCreate: [
+                        {required: true, message: '请选择创建时间', trigger: ['blur', 'change']},
+                    ],
+                    endTime: [
+                        {required: true, message: '请选择结束时间', trigger: ['blur', 'change']},
+                    ],
+                    licensePlateNumber: [
+                        {required: true, message: '请输入车牌号', trigger: ['blur', 'change']},
+                    ],
+                    userName: [
+                        {required: true, message: '请输入姓名', trigger: ['blur', 'change']},
+                    ],
+                    userMobile: [
+                        {required: true, message: '请输入联系方式', trigger: ['blur', 'change']},
+                        {validator: userMobileValid, trigger: 'blur'}
+                    ],
+                    vehicleType: [
+                        {required: true, message: '请选择车辆类型', trigger: ['blur', 'change']},
+
+                    ],
+                    vehicleNumber: [
+                        {required: true, message: '请选择车辆数量', trigger: ['blur', 'change']},
+                    ],
+                    station: [
+                        {required: true, message: '请选择场站位置', trigger: ['blur', 'change']},
+                    ],
+                    dispatchType: [
+                        {required: true, message: '请选择调度业务类型', trigger: ['blur', 'change']},
+                    ],
+                },
+            }
+        },
+        methods: {
+            /**
+             * 监听,调度车辆对话框的关闭事件
+             */
+            dispatchDialogClosed() {
+                //重置对话框
+                this.$refs.dispatchFormRef.resetFields();
+            },
+
+            /**
+             * 监听,查看调度记录对话框的关闭事件
+             */
+            showDialogClosed() {
+                //重置对话框
+                this.$refs.showFormRef.resetFields();
+            },
+
+            /**
+             * 监听pageSize改变的事件
+             */
+            handleSizeChange(newSize) {
+                this.queryInfo.pageSize = newSize;
+                //刷新调度记录列表
+                this.getDispatchNodeList();
+            },
+            /**
+             * 监听当前页码值改变的事件
+             */
+            handleCurrentChange(newPage) {
+                this.queryInfo.pageNum = newPage;
+                //刷新调度记录列表
+                this.getDispatchNodeList();
+            },
+            /**
+             * 打开,查看调度记录明细,对话框
+             * @param row
+             */
+            showDialogVisible(row) {
+                this.showForm = row;
+                this.viewDialogVisible = true;
+            },
+            /**
+             * 用户端,获取车辆调度记录
+             */
+            getDispatchNodeList() {
+                this.listLoading = true;
+                selectDispatchNoteList(this.queryInfo).then((response) => {
+                    let res = response.data;
+                    if (res.code !== '200') {
+                        this.listLoading = false;
+                        return this.$message.error('获取车辆调度列表失败');
+                    }
+                    // 获取车辆调度列表数据
+                    this.DispatchNoteList = res.data.list;
+                    // 获取列表的总记录数
+                    this.total = res.data.total;
+                    this.listLoading = false;
+                    this.$message.success('获取车辆调度列表,成功!');
+                }).catch(error => {
+                    this.listLoading = false;
+                    this.$message.error(error.toString());
+                });
+            },
+            /**
+             * 用户端,我要调度车辆,方法
+             */
+            dispatchVehicle() {
+                this.dispatchLoading = true;
+                dispatch(this.dispatchForm).then((response) => {
+                    let res = response.data;
+                    if (res.code !== '200') {
+                        this.dispatchLoading = false;
+                        return this.$message.error('车辆繁忙,请稍后重试');
+                    }
+                    //关闭加载
+                    this.dispatchLoading = false;
+                    this.$message.success('调度车辆成功!');
+                    //调度成功,隐藏对话框
+                    this.dispatchFormVisible = false;
+                    /* 将调度车辆信息=>查询列表 */
+                    // 用户名称
+                    this.queryInfo.userName = this.dispatchForm.userName;
+                    // 联系方式
+                    this.queryInfo.userMobile = this.dispatchForm.userMobile;
+                    // 调度业务类型
+                    this.queryInfo.dispatchType = this.dispatchForm.dispatchType;
+                    // 创建时间为当前时间(需留意)
+                    this.queryInfo.gmtCreate = new Date();
+                    //刷新车辆调度列表
+                    this.getDispatchNodeList();
+                }).catch(error => {
+                    this.dispatchLoading = false;
+                    this.$message.error(error.toString());
+                });
+            },
+            /**
+             * 用户端,取消调度车辆,方法
+             */
+            cancelDispatch(row) {
+                //弹框询问是否取消车辆调度
+                this.$confirm('此操作将取消该车辆的调度, 是否继续?', '警告', {
+                        confirmButtonText: '确定取消调度',
+                        cancelButtonText: '取消',
+                        type: 'warning'
+                    }
+                ).then(() => {
+                    //开启加载
+                    this.cancelLoading = true;
+                    cancel(row).then((response) => {
+                        let res = response.data;
+                        if (res.code !== '200') {
+                            this.cancelLoading = false;
+                            return this.$message.error('取消车辆调度,失败!请人工介入');
+                        }
+                        //关闭加载
+                        this.cancelLoading = false;
+                        this.$message.success('取消调度车辆,成功!');
+                        //刷新车辆调度列表
+                        this.getDispatchNodeList();
+                    }).catch(error => {
+                        //关闭加载
+                        this.cancelLoading = false;
+                        this.$message.error(error.toString());
+                    });
+                }).catch(() => {
+                });
+            },
+            /**
+             * 获取用户信息
+             */
+            getUserInfo(param) {
+                getUser(param).then((response) => {
+                    let res = response.data;
+                    if (res.code !== '200') {
+                        return this.$message.error('网络异常,请刷新界面!');
+                    }
+                    if (res.data.list.length === 0) {
+                        return this.$message.error('网络异常,请刷新界面!');
+                    }
+                    if (res.data.list[0].mobilephone === null || res.data.list[0].mobilephone === '') {
+                        return this.$message.error('请填写您的手机号码');
+                    }
+                    this.queryInfo.userMobile = res.data.list[0].mobilephone;
+                    this.dispatchForm.userMobile = res.data.list[0].mobilephone;
+                    this.$message.success('欢迎使用,车辆调度系统!');
+                }).catch((error) => {
+                    this.$message.error(error.toString());
+                });
+            },
+            /**
+             * 根据状态的不同区分颜色
+             *
+             * @param row
+             * @param rowIndex
+             */
+            rowStatus({row, rowIndex}) {
+                if (row.status === '1') {
+                    return 'success-row';
+                }
+                if (row.status === '2') {
+                    return 'run-row';
+                }
+                if (row.status === '3') {
+                    return 'cancel-row';
+                }
+                if (row.status === '4') {
+                    return 'await-row';
+                }
+            }
+        },
+        mounted() {
+            var user = sessionStorage.getItem('user');
+            if (user) {
+                user = JSON.parse(user);
+                console.log(user);
+                this.queryInfo.userName = user.username;
+                this.dispatchForm.userName = user.username;
+                let param = {
+                    userName: this.queryInfo.userName
+                };
+                this.getUserInfo(param);
+            }
+            /**
+             * 渲染完成之后,在获取调度记录列表
+             */
+            // this.getDispatchNodeList();
+        }
+    }
+</script>
+
+<style>
+    /* 完成状态 */
+    .el-table .success-row {
+        background: rgba(64, 158, 255, 0.2);
+    }
+
+    /*  执行状态 */
+    .el-table .run-row {
+        background: rgba(103, 194, 58, 0.2);
+    }
+
+    /*  取消状态 */
+    .el-table .cancel-row {
+        background: rgba(144, 147, 153, 0.2);
+    }
+
+    /*  待执行状态 */
+    .el-table .await-row {
+        background: rgba(230, 162, 60, 0.2);
+    }
+</style>
diff --git a/src/views/dispatch/DispatchNode.vue b/src/views/dispatch/DispatchNode.vue
new file mode 100644
index 0000000..7c938b0
--- /dev/null
+++ b/src/views/dispatch/DispatchNode.vue
@@ -0,0 +1,936 @@
+<template>
+    <el-container>
+        <el-main>
+            <!--面包屑导航区域-->
+            <!--            <el-breadcrumb separator-class="el-icon-arrow-right">-->
+            <!--                <el-breadcrumb-item :to="{ path: '/home' }">首页</el-breadcrumb-item>-->
+            <!--                <el-breadcrumb-item>车辆调度</el-breadcrumb-item>-->
+            <!--                <el-breadcrumb-item>调度记录</el-breadcrumb-item>-->
+            <!--            </el-breadcrumb>-->
+
+            <el-card style="background-color: #F5F7FA">
+                <!-- 搜素区域 -->
+                <div>
+                    <el-row :gutter="24">
+                        <el-col :span="5">
+                            <el-input v-model="queryInfo.userName" prefix-icon="el-icon-search"
+                                      placeholder="请输入用户名称" clearable size="small" style="width:180px"></el-input>
+                        </el-col>
+                        <el-col :span="5">
+                            <el-input v-model="queryInfo.userMobile" prefix-icon="el-icon-search"
+                                      placeholder="请输入联系方式" clearable size="small" style="width:180px"></el-input>
+                        </el-col>
+                        <el-col :span="5">
+                            <el-date-picker v-model="queryInfo.gmtCreate" type="date" value-format="yyyy-MM-dd"
+                                            placeholder="调度创建时间" size="small" style="width:180px"></el-date-picker>
+                        </el-col>
+                        <el-col :span="5">
+                            <el-date-picker v-model="queryInfo.endTime" type="date" value-format="yyyy-MM-dd"
+                                            placeholder="调度完成时间" size="small" style="width:180px"></el-date-picker>
+                        </el-col>
+                    </el-row>
+                    <el-row style="margin-top: 8px;">
+                        <el-col :span="5">
+                            <el-select v-model="queryInfo.dispatchType" placeholder="请选择业务类型" size="small" clearable
+                                       style="width:180px">
+                                <el-option
+                                        v-for="item in dispatchTypeList"
+                                        :key="item.value"
+                                        :label="item.label"
+                                        :value="item.value">
+                                </el-option>
+                            </el-select>
+                        </el-col>
+                        <el-col :span="5">
+                            <el-select v-model="queryInfo.status" placeholder="记录状态" size="small" clearable
+                                       style="width:180px;margin-left: 6px">
+                                <el-option
+                                        v-for="item in statusList"
+                                        :key="item.value"
+                                        :label="item.label"
+                                        :value="item.value">
+                                </el-option>
+                            </el-select>
+                        </el-col>
+                        <el-button type="primary" @click="getDispatchNodeList" size="small" style="margin-left:10px;">
+                            查询调度记录
+                        </el-button>
+                        <el-button type="success" @click="addDispatchNodeFormVisible = true" size="small">添加车辆调度记录
+                        </el-button>
+                    </el-row>
+                </div>
+                <!--调度记录列表区域-->
+                <div style="margin-top: 20px;">
+                    <el-table :data="DispatchNoteList" border v-loading="listLoading"
+                              :row-class-name="rowStatus"
+                              @selection-change="selsChange"
+                              element-loading-text="拼命加载中">
+                        <el-table-column type="selection" width="55" :selectable="isSelectable" align="center"></el-table-column>
+                        <el-table-column type="index" align="center"></el-table-column>
+                        <el-table-column label="用户名称" prop="userName" align="center" width="100"></el-table-column>
+                        <el-table-column label="联系方式" prop="userMobile" align="center" width="120"></el-table-column>
+                        <el-table-column label="状态" prop="status" align="center" width="120">
+                            <template slot-scope="scope">
+                                <span v-if="scope.row.status ==='1'">完成状态</span>
+                                <span v-if="scope.row.status ==='2'">执行状态</span>
+                                <span v-if="scope.row.status ==='3'">取消状态</span>
+                                <span v-if="scope.row.status ==='4'">待执行状态</span>
+                            </template>
+                        </el-table-column>
+                        <el-table-column label="业务类型" align="center" prop="dispatchType" width="120">
+                            <template slot-scope="scope">
+                                <span v-if="scope.row.dispatchType ==='1'">进站送货</span>
+                                <span v-if="scope.row.dispatchType ==='2'">出站提货</span>
+                                <span v-if="scope.row.dispatchType ==='3'">货物调拨</span>
+                                <span v-if="scope.row.dispatchType ==='4'">货物流转</span>
+                            </template>
+                        </el-table-column>
+                        <el-table-column label="场站位置" align="center" prop="station" width="120">
+                            <template slot-scope="scope">
+                                <span v-if="scope.row.station ==='1'">西货站</span>
+                                <span v-if="scope.row.station ==='2'">综保区</span>
+                                <span v-if="scope.row.station ==='3'">军投</span>
+                                <span v-if="scope.row.station ==='4'">快邮</span>
+                            </template>
+                        </el-table-column>
+                        <el-table-column label="车辆类型" align="center" prop="vehicleType" width="120">
+                            <template slot-scope="scope">
+                                <span v-if="scope.row.vehicleType ==='1'">重型货车</span>
+                                <span v-if="scope.row.vehicleType ==='2'">中型货车</span>
+                                <span v-if="scope.row.vehicleType ==='3'">轻型货车</span>
+                                <span v-if="scope.row.vehicleType ==='4'">微型货车</span>
+                                <span v-if="scope.row.vehicleType ==='5'">拖车</span>
+                                <span v-if="scope.row.vehicleType ==='6'">叉车</span>
+                            </template>
+                        </el-table-column>
+                        <el-table-column label="车牌号" prop="licensePlateNumber" align="center"
+                                         width="120"></el-table-column>
+                        <el-table-column label="创建时间" prop="gmtCreate" align="center" width="160"></el-table-column>
+                        <el-table-column label="开始时间" prop="beginTime" align="center" width="160"></el-table-column>
+                        <el-table-column label="完成时间" prop="endTime" align="center" width="160"></el-table-column>
+                        <el-table-column label="操作" width="230px" align="center" fixed="right">
+                            <template slot-scope="scope">
+                                <!--编辑按钮-->
+                                <el-tooltip effect="dark" content="编辑" placement="top-start" :enterable="false"
+                                            style="margin-left: 1px;">
+                                    <el-button type="success" icon="el-icon-check" size="mini" style="width:97px"
+                                               @click="showDialogVisible(scope.$index,scope.row)">编辑
+                                    </el-button>
+                                </el-tooltip>
+                                <!--取消调度按钮-->
+                                <el-tooltip effect="dark" content="删除" placement="top-start" :enterable="false"
+                                            style="margin-left: 1px;">
+                                    <el-button type="danger" icon="el-icon-delete" size="mini" style="width:97px"
+                                               :loading="delLoading"
+                                               :disabled="scope.row.status==='2'"
+                                               @click.native.prevent="removeDispatchNode(scope.$index,scope.row)">删除
+                                    </el-button>
+                                </el-tooltip>
+                                <!--开始任务-->
+                                <el-tooltip effect="dark" content="开始任务" placement="top-start" :enterable="false"
+                                            style="margin-left: 1px;">
+                                    <el-button type="warning" icon="el-icon-star-off" size="mini"
+                                               style="margin-top: 3px;"
+                                               :disabled="scope.row.status!=='4' || scope.row.beginTime !==null"
+                                               :loading="beginLoading"
+                                               @click="startDispatch(scope.$index,scope.row)">开始任务
+                                    </el-button>
+                                </el-tooltip>
+                                <!-- 结束任务-->
+                                <el-tooltip effect="dark" content="结束任务" placement="top-start" :enterable="false"
+                                            style="margin-left: 1px;">
+                                    <el-button type="info" icon="el-icon-message" size="mini"
+                                               :disabled="scope.row.endTime !==null && scope.row.endTime !==''"
+                                               :loading="endLoading"
+                                               @click="completeDispatch(scope.$index,scope.row)">结束任务
+                                    </el-button>
+                                </el-tooltip>
+
+                            </template>
+                        </el-table-column>
+                    </el-table>
+                    <!-- 分页区域 -->
+                    <div style="margin-top: 10px">
+                        <el-row :gutter="24">
+                            <el-col :span="5">
+                                <el-button type="danger" icon="el-icon-delete" @click="batchRemove"
+                                           :disabled="this.sels.length===0">批量删除
+                                </el-button>
+                            </el-col>
+                            <el-col :span="10" style="margin-top: 5px">
+                                <el-pagination
+                                        @size-change="handleSizeChange"
+                                        @current-change="handleCurrentChange"
+                                        :current-page="queryInfo.pageNum"
+                                        :page-sizes="[10,15,20,50]"
+                                        :page-size="queryInfo.pageSize"
+                                        layout="total, sizes, prev, pager, next, jumper"
+                                        :total="total">
+                                </el-pagination>
+                            </el-col>
+                        </el-row>
+                    </div>
+                </div>
+            </el-card>
+            <!-- 添加车辆调度记录 -->
+            <div>
+                <el-dialog title="添加车辆调度记录"
+                           :visible.sync="addDispatchNodeFormVisible"
+                           style="margin-top: -50px"
+                           width="60%" text-align="center" @close="dispatchDialogClosed">
+                    <el-form :inline="true" :model="addDispatchNodeForm" label-width="120px" status-icon
+                             :rules="addDispatchNodeFormRules" ref="addDispatchNodeFormRef"
+                             style="background-color: #F5F7FA" align="center">
+                        <br>
+                        <el-form-item label="用户名称:" prop="userName">
+                            <el-input v-model="addDispatchNodeForm.userName" style="width:200px" size="small" clearable
+                                      placeholder="请输入您的用户名称"></el-input>
+                        </el-form-item>
+                        <el-form-item label="联系方式:" prop="userMobile">
+                            <el-input v-model="addDispatchNodeForm.userMobile" style="width:200px" clearable
+                                      size="small"
+                                      placeholder="请输入您的联系方式"></el-input>
+                        </el-form-item>
+                        <el-form-item label="车辆类型:" prop="vehicleType">
+                            <el-select v-model="addDispatchNodeForm.vehicleType" clearable style="width:200px"
+                                       size="small"
+                                       placeholder="请选择车辆类型">
+                                <el-option
+                                        v-for="item in vehicleTypeList"
+                                        :key="item.value"
+                                        :label="item.label"
+                                        :value="item.value">
+                                </el-option>
+                            </el-select>
+                        </el-form-item>
+                        <el-form-item label="车牌号码:" prop="licensePlateNumber">
+                            <el-input v-model="addDispatchNodeForm.licensePlateNumber" clearable
+                                      style="width:200px;margin-left:0px"
+                                      size="small"
+                                      placeholder="请输入车牌号"></el-input>
+                        </el-form-item>
+                        <el-form-item label="场站位置:" prop="station">
+                            <el-select v-model="addDispatchNodeForm.station" clearable style="width:200px" size="small"
+                                       placeholder="">
+                                <el-option
+                                        v-for="item in stationList"
+                                        :key="item.value"
+                                        :label="item.label"
+                                        :value="item.value">
+                                </el-option>
+                            </el-select>
+                        </el-form-item>
+                        <el-form-item label="业务类型:" prop="dispatchType">
+                            <el-select v-model="addDispatchNodeForm.dispatchType" clearable style="width:200px"
+                                       size="small"
+                                       placeholder="">
+                                <el-option
+                                        v-for="item in dispatchTypeList"
+                                        :key="item.value"
+                                        :label="item.label"
+                                        :value="item.value">
+                                </el-option>
+                            </el-select>
+                        </el-form-item>
+                        <el-form-item label="创建时间:" prop="gmtCreate">
+                            <el-date-picker v-model="addDispatchNodeForm.gmtCreate" clearable type="datetime"
+                                            value-format="yyyy-MM-dd HH:mm:ss"
+                                            placeholder="选择日期" size="small" style="width:200px"></el-date-picker>
+                        </el-form-item>
+                        <el-form-item label="开始时间:" prop="beginTime">
+                            <el-date-picker v-model="addDispatchNodeForm.beginTime" clearable type="datetime"
+                                            value-format="yyyy-MM-dd HH:mm:ss"
+                                            placeholder="选择日期" size="small" style="width:200px"></el-date-picker>
+                        </el-form-item>
+                        <el-form-item label="结束时间:" prop="endTime">
+                            <el-date-picker v-model="addDispatchNodeForm.endTime" type="datetime"
+                                            value-format="yyyy-MM-dd HH:mm:ss"
+                                            placeholder="选择日期" size="small" style="width:200px"></el-date-picker>
+                        </el-form-item>
+                        <el-form-item label="记录状态:" prop="status">
+                            <el-select v-model="addDispatchNodeForm.status" clearable placeholder="记录状态"
+                                       style="width:200px"
+                                       size="small">
+                                <el-option
+                                        v-for="item in statusList"
+                                        :key="item.value"
+                                        :label="item.label"
+                                        :value="item.value">
+                                </el-option>
+                            </el-select>
+                        </el-form-item>
+                        <el-form-item label="驾驶人姓名:" prop="driverName">
+                            <el-input v-model="addDispatchNodeForm.driverName" clearable style="width:200px"
+                                      size="small"
+                                      placeholder=""></el-input>
+                        </el-form-item>
+                        <el-form-item label="驾驶人电话:" prop="driverMobile">
+                            <el-input v-model="addDispatchNodeForm.driverMobile" clearable style="width:200px"
+                                      size="small"
+                                      placeholder=""></el-input>
+                        </el-form-item>
+                    </el-form>
+                    <div slot="footer" class="dialog-footer" style="text-align: center">
+                        <el-button @click="addDispatchNodeFormVisible = false" size="medium" style="width: 100px">取消
+                        </el-button>
+                        <el-button type="primary" @click="addDispatchNote" :loading="addLoading" size="medium"
+                                   style="width: 100px">
+                            添加
+                        </el-button>
+                    </div>
+                </el-dialog>
+            </div>
+            <!-- 编辑调度记录,对话框 -->
+            <div>
+                <el-dialog
+                        style="margin-top: -50px"
+                        title="编辑调度记录明细"
+                        :visible.sync="viewDialogVisible"
+                        text-align="center"
+                        width="60%"
+                        @close="editDialogClosed">
+
+                    <el-form :model="editForm" label-width="120px" status-icon
+                             :inline="true"
+                             style="background-color: #F5F7FA;"
+                             :rules="editFormRules" ref="editFormRef">
+                        <div style="margin-left: 40px">
+                            <br>
+                            <el-form-item label="用户名称:" prop="userName">
+                                <el-input v-model="editForm.userName" style="width:200px" clearable size="small"
+                                          placeholder="请输入用户名称"></el-input>
+                            </el-form-item>
+                            <el-form-item label="联系方式:" prop="userMobile">
+                                <el-input v-model="editForm.userMobile" style="width:200px" clearable size="small"
+                                          placeholder="请输入您的联系方式"></el-input>
+                            </el-form-item>
+                            <el-form-item label="车辆类型:" prop="vehicleType">
+                                <el-select v-model="editForm.vehicleType" style="width:200px" clearable size="small"
+                                           placeholder="请选择车辆类型">
+                                    <el-option
+                                            v-for="item in vehicleTypeList"
+                                            :key="item.value"
+                                            :label="item.label"
+                                            :value="item.value">
+                                    </el-option>
+                                </el-select>
+                            </el-form-item>
+                            <el-form-item label="车牌号码:" prop="licensePlateNumber">
+                                <el-input v-model="editForm.licensePlateNumber"
+                                          style="width:200px;margin-left:0px" clearable
+                                          size="small"
+                                          placeholder="请输入车牌号"></el-input>
+                            </el-form-item>
+                            <el-form-item label="场站位置:" prop="station">
+                                <el-select v-model="editForm.station" clearable style="width:200px" size="small"
+                                           placeholder="">
+                                    <el-option
+                                            v-for="item in stationList"
+                                            :key="item.value"
+                                            :label="item.label"
+                                            :value="item.value">
+                                    </el-option>
+                                </el-select>
+                            </el-form-item>
+                            <el-form-item label="业务类型:" prop="dispatchType">
+                                <el-select v-model="editForm.dispatchType" clearable style="width:200px" size="small"
+                                           placeholder="">
+                                    <el-option
+                                            v-for="item in dispatchTypeList"
+                                            :key="item.value"
+                                            :label="item.label"
+                                            :value="item.value">
+                                    </el-option>
+                                </el-select>
+                            </el-form-item>
+                            <el-form-item label="创建时间:" prop="gmtCreate">
+                                <el-date-picker v-model="editForm.gmtCreate" type="datetime"
+                                                value-format="yyyy-MM-dd HH:mm:ss"
+                                                placeholder="选择日期" size="small" style="width:200px"></el-date-picker>
+                            </el-form-item>
+                            <el-form-item label="开始时间:" prop="beginTime">
+                                <el-date-picker v-model="editForm.beginTime" type="datetime"
+                                                value-format="yyyy-MM-dd HH:mm:ss"
+                                                placeholder="选择日期" size="small" style="width:200px"></el-date-picker>
+                            </el-form-item>
+                            <el-form-item label="结束时间:" prop="endTime">
+                                <el-date-picker v-model="editForm.endTime" type="datetime"
+                                                value-format="yyyy-MM-dd HH:mm:ss"
+                                                placeholder="选择日期" size="small" style="width:200px"></el-date-picker>
+                            </el-form-item>
+                            <el-form-item label="记录状态:" prop="status">
+                                <el-select v-model="editForm.status" placeholder="记录状态" clearable style="width:200px"
+                                           size="small">
+                                    <el-option
+                                            v-for="item in statusList"
+                                            :key="item.value"
+                                            :label="item.label"
+                                            :value="item.value">
+                                    </el-option>
+                                </el-select>
+                            </el-form-item>
+                            <el-form-item label="驾驶人姓名:" prop="driverName">
+                                <el-input v-model="editForm.driverName" style="width:200px" clearable size="small"
+                                          placeholder=""></el-input>
+                            </el-form-item>
+                            <el-form-item label="驾驶人电话:" prop="driverMobile">
+                                <el-input v-model="editForm.driverMobile" style="width:200px" clearable size="small"
+                                          placeholder=""></el-input>
+                            </el-form-item>
+                            <br>
+                        </div>
+                    </el-form>
+                    <!--底部按钮区域-->
+                    <span slot="footer" class="dialog-footer">
+                        <el-button style="width: 100px" @click="viewDialogVisible = false">取消</el-button>
+                        <el-button type="primary" size="medium" style="width: 100px"
+                                   :loading="editLoading"
+                                   @click="editDispatchNote">编辑</el-button>
+                    </span>
+                </el-dialog>
+            </div>
+        </el-main>
+    </el-container>
+</template>
+
+<script>
+    import {
+        selectDispatchNoteList,
+        insertDispatchNote,
+        updateDispatchNote,
+        deleteDispatchNote,
+        batchRemoveDispatchNode,
+        startTask,
+        completeTask
+    } from "../../api/dispatch_api";
+
+    export default {
+        name: "dispatch_api",
+        created() {
+            this.getDispatchNodeList();
+        },
+        data() {
+
+            //验证手机号的自定义规则
+            var userMobileValid = (rule, value, callback) => {
+                //验证手机号的正则表达式
+                const regMobile = /^(0|86|17951)?(13[0-9]|15[0123456789]|17[678]|18[0-9]|14[57])[0-9]{8}$/;
+                if (regMobile.test(value)) {
+                    //合法的手机号
+                    return callback();
+                }
+                callback(new Error('请输入合法的手机号'));
+            };
+            return {
+                //搜索区域
+                queryInfo: {
+                    //用户姓名
+                    userName: '',
+                    //用户联系方式
+                    userMobile: '',
+                    //调度时间
+                    gmtCreate: undefined,
+                    //完成时间
+                    endTime: undefined,
+                    //业务类型
+                    dispatchType: '',
+                    //状态
+                    status: '',
+                    //当前的页数
+                    pageNum: 1,
+                    //当前每页显示多少条数据
+                    pageSize: 10
+                },
+                //所有的调度记录列表
+                DispatchNoteList: [],
+                //添加调度记录,表单
+                addDispatchNodeForm: {
+                    userName: '',
+                    userMobile: '',
+                    //车辆类型
+                    vehicleType: '2',
+                    //车牌号
+                    licensePlateNumber: '',
+                    //场站位置
+                    station: '1',
+                    //调度业务类型
+                    dispatchType: '1',
+                    //记录状态
+                    status: '2',
+                    //驾驶人姓名
+                    driverName: '',
+                    //驾驶人联系方式
+                    driverMobile: '',
+                    //开始时间
+                    gmtCreate: '',
+                    //结束时间
+                    endTime: '',
+                },
+                //编辑记录的表单
+                editForm: {},
+                //添加调度记录,表单的验证规则对象
+                addDispatchNodeFormRules: {
+                    userName: [
+                        {required: true, message: '请输入姓名', trigger: ['blur', 'change']},
+                    ],
+                    userMobile: [
+                        {required: true, message: '请输入联系方式', trigger: ['blur', 'change']},
+                        {validator: userMobileValid, trigger: 'blur'}
+                    ],
+                    vehicleType: [
+                        {required: true, message: '请选择车辆类型', trigger: ['blur', 'change']},
+                    ],
+                    licensePlateNumber: [
+                        {required: true, message: '请输入车牌号', trigger: ['blur', 'change']},
+                    ],
+                    vehicleNumber: [
+                        {required: true, message: '请输入车辆数量', trigger: ['blur', 'change']},
+                    ],
+                    station: [
+                        {required: true, message: '请选择场站位置', trigger: ['blur', 'change']},
+                    ],
+                    dispatchType: [
+                        {required: true, message: '请选择业务类型', trigger: ['blur', 'change']},
+                    ],
+                    gmtCreate: [
+                        {required: true, message: '请选择开始时间', trigger: ['blur', 'change']},
+                    ],
+                    // endTime: [
+                    //     {required: true, message: '请选择结束时间', trigger: 'blur'},
+                    // ],
+                    status: [
+                        {required: true, message: '请选择记录状态', trigger: ['blur', 'change']},
+                    ],
+                },
+                //编辑调度记录,表单的验证规则对象
+                editFormRules: {
+                    userName: [
+                        {required: true, message: '请输入姓名', trigger: ['blur', 'change']},
+                    ],
+                    userMobile: [
+                        {required: true, message: '请输入联系方式', trigger: ['blur', 'change']},
+                        {validator: userMobileValid, trigger: 'blur'}
+                    ],
+                    vehicleType: [
+                        {required: true, message: '请选择车辆类型', trigger: ['blur', 'change']},
+                    ],
+                    licensePlateNumber: [
+                        {required: true, message: '请输入车牌号', trigger: ['blur', 'change']},
+                    ],
+                    vehicleNumber: [
+                        {required: true, message: '请输入驾驶人电话', trigger: ['blur', 'change']},
+                    ],
+                    station: [
+                        {required: true, message: '请选择场站位置', trigger: ['blur', 'change']},
+                    ],
+                    dispatchType: [
+                        {required: true, message: '请选择业务类型', trigger: ['blur', 'change']},
+                    ],
+                    // gmtCreate: [
+                    //     {required: true, message: '请选择开始时间', trigger: ['blur', 'change']},
+                    // ],
+                    // endTime: [
+                    //     {required: true, message: '请选择结束时间', trigger: ['blur', 'change']},
+                    // ],
+                    status: [
+                        {required: true, message: '请选择记录状态', trigger: ['blur', 'change']},
+                    ],
+                },
+                //控制添加用户对话框的显示与隐藏
+                addDispatchNodeFormVisible: false,
+                //控制编辑调度记录明细,对话框的显示与隐藏
+                viewDialogVisible: false,
+                //记录的总条数
+                total: 0,
+                /* 批量删除的选中列表 */
+                sels: [],
+                /* 列表加载 */
+                listLoading: false,
+                /* 添加加载 */
+                addLoading: false,
+                /* 编辑加载 */
+                editLoading: false,
+                /* 删除加载 */
+                delLoading: false,
+                /* 开始调度加载 */
+                beginLoading: false,
+                /* 结束调度加载 */
+                endLoading: false,
+                //业务类型  选项列表
+                dispatchTypeList: [
+                    {
+                        value: '1',
+                        label: '进站送货'
+                    },
+                    {
+                        value: '2',
+                        label: '出站提货'
+                    },
+                    {
+                        value: '3',
+                        label: '货物流转'
+                    },
+                    {
+                        value: '4',
+                        label: '货物调拨'
+                    }
+                ],
+                //车辆类型,选项列表
+                vehicleTypeList: [
+                    {
+                        value: '1',
+                        label: '重型货车'
+                    },
+                    {
+                        value: '2',
+                        label: '中型货车'
+                    },
+                    {
+                        value: '3',
+                        label: '经济货车'
+                    },
+                    {
+                        value: '4',
+                        label: '微型货车'
+                    },
+                    {
+                        value: '5',
+                        label: '拖车'
+                    },
+                    {
+                        value: '6',
+                        label: '叉车'
+                    }
+                ],
+                /**
+                 * 场站位置,选项列表
+                 */
+                stationList: [
+                    {
+                        value: '1',
+                        label: '西货站'
+                    },
+                    {
+                        value: '2',
+                        label: '综保区'
+                    },
+                    {
+                        value: '3',
+                        label: '军投'
+                    },
+                    {
+                        value: '4',
+                        label: '快邮'
+                    }
+                ],
+                //记录状态  选项列表
+                statusList: [
+                    {
+                        value: '1',
+                        label: '完成状态'
+                    },
+                    {
+                        value: '2',
+                        label: '执行状态'
+                    },
+                    {
+                        value: '3',
+                        label: '取消状态'
+                    },
+                    {
+                        value: '4',
+                        label: "待执行状态"
+                    }
+                ],
+
+            }
+        },
+        methods: {
+            /**
+             * 管理员端,获取车辆调度记录列表
+             */
+            getDispatchNodeList() {
+                //开启加载
+                this.listLoading = true;
+                selectDispatchNoteList(this.queryInfo).then((response) => {
+                    let res = response.data;
+                    if (res.code !== '200') {
+                        //关闭加载
+                        this.listLoading = false;
+                        return this.$message.error('获取车辆调度列表失败');
+                    }
+                    // 获取车辆调度列表数据
+                    this.DispatchNoteList = res.data.list;
+                    // 获取列表的总记录数
+                    this.total = res.data.total;
+                    //关闭加载
+                    this.listLoading = false;
+                    this.$message.success('获取车辆调度列表,成功');
+                }).catch(error => {
+                    this.listLoading = false;
+                    this.$message.error(error.toString());
+                });
+            },
+            /**
+             * 管理员端,添加车辆调度记录
+             */
+            addDispatchNote() {
+                /*进行表单的预验证*/
+                this.$refs.addDispatchNodeFormRef.validate(valid => {
+                    // 未通过,表单预校验
+                    if (!valid) return;
+                    // 通过,表单预检验,发起添加车辆调度记录的网络请求
+                    this.addLoading = true;
+                    insertDispatchNote(this.addDispatchNodeForm).then((response) => {
+                        let res = response.data;
+                        //添加调度记录信息,失败
+                        if (res.code !== '200'){
+                            //关闭加载
+                            this.addLoading = false;
+                            return this.$message.error('添加调度记录信息,失败');
+                        }
+                        //添加调度记录信息,成功
+                        this.$message.success('添加调度记录信息,成功');
+                        //关闭加载
+                        this.addLoading = false;
+                        //隐藏对话框
+                        this.addDispatchNodeFormVisible = false;
+                        //刷新车辆调度记录列表
+                        this.getDispatchNodeList();
+                    }).catch(error => {
+                        this.addLoading = false;
+                        this.$message.error(error.toString());
+                    });
+                })
+            },
+            /**
+             * 管理员端,删除车辆调度记录
+             */
+            removeDispatchNode(index, row) {
+                //弹框询问是否删除车辆调度记录
+                this.$confirm('此操作永久删除该车辆调度记录, 是否继续?', '警告', {
+                        confirmButtonText: '确定删除',
+                        cancelButtonText: '取消',
+                        type: 'warning'
+                    }
+                ).then(() => {
+                    //开启加载
+                    this.delLoading = true;
+                    deleteDispatchNote(row).then((response) => {
+                        let res = response.data;
+                        if (res.code !== '200') {
+                            this.delLoading = false;
+                            return this.$message.error('删除车辆调度记录,失败');
+                        }
+                        this.$message.success('删除车辆调度记录,成功!');
+                        this.delLoading = false;
+                        //刷新车辆调度记录列表
+                        this.getDispatchNodeList();
+                    }).catch(error => {
+                        this.delLoading = false;
+                        this.$message.error(error.toString());
+                    });
+                }).catch(() => {
+                });
+            },
+            /**
+             * 管理员端,编辑车辆调度记录
+             */
+            editDispatchNote() {
+                /*进行表单的预验证*/
+                this.$refs.editFormRef.validate(valid => {
+                    // 未通过,表单预校验
+                    if (!valid) return;
+                    // 通过,表单预检验,开启加载
+                    this.editLoading = true;
+                    updateDispatchNote(this.editForm).then((response) => {
+                        let res = response.data;
+                        if (res.code !== '200') {
+                            //关闭加载
+                            this.editLoading = false;
+                            return this.$message.error('修改车辆调度记录信息,失败');
+                        }
+                        this.$message.success('修改车辆调度记录信息,成功!');
+                        //关闭加载
+                        this.editLoading = false;
+                        //关闭编辑车辆调度记录对话框
+                        this.viewDialogVisible = false;
+                        //刷新车辆调度列表
+                        this.getDispatchNodeList();
+                    }).catch(error => {
+                        this.editLoading = false;
+                        this.$message.error(error.toString());
+                    });
+                });
+            },
+            /**
+             * 管理员端,手动,开始调度任务
+             */
+            startDispatch(index, row) {
+                //开启加载
+                this.beginLoading = true;
+                startTask(row).then((response) => {
+                    let res = response.data;
+                    if (res.code !== '200') {
+                        //关闭加载
+                        this.beginLoading = false;
+                        return this.$message.error('手动开始调度任务,失败');
+                    }
+                    //关闭加载
+                    this.beginLoading = false;
+                    this.$message.success('手动开始调度任务,成功!');
+                    //刷新车辆调度列表
+                    this.getDispatchNodeList();
+                }).catch(error => {
+                    this.beginLoading = false;
+                    this.$message.error(error.toString());
+                });
+            },
+            /**
+             * 管理员端,手动,完成调度任务
+             */
+            completeDispatch(index, row) {
+                //开启加载
+                this.endLoading = true;
+                completeTask(row).then((response) => {
+                    let res = response.data;
+                    if (res.code !== '200') {
+                        //关闭加载
+                        this.endLoading = false;
+                        return this.$message.error('手动完成调度任务,失败');
+                    }
+                    //关闭加载
+                    this.endLoading = false;
+                    this.$message.success('手动完成调度任务,成功!');
+                    //刷新车辆调度列表
+                    this.getDispatchNodeList();
+                }).catch(error => {
+                    this.endLoading = false;
+                    this.$message.error(error.toString());
+                });
+            },
+            /**
+             * 批量删除,之前的选中
+             */
+            selsChange: function (sels) {
+                this.sels = sels;
+            },
+            /**
+             * 车辆状态为执行状态的时候,无法被选中
+             */
+            isSelectable(row, index) {
+                if (row.status === '2') {
+                    return false;
+                } else {
+                    return true;
+                }
+            },
+            /**
+             * 批量删除功能
+             */
+            batchRemove() {
+                var ids = this.sels.map(item => item.id).toString();
+                console.log(ids);
+                //弹框询问是否批量删除选中的车辆调度记录
+                this.$confirm('此操作永久删除选中的车辆调度记录, 是否继续?', '警告', {
+                        confirmButtonText: '确定删除',
+                        cancelButtonText: '取消',
+                        type: 'warning'
+                    }
+                ).then(() => {
+                    //开启加载
+                    this.listLoading = true;
+                    let params = {ids: ids};
+                    batchRemoveDispatchNode(params).then(response => {
+                        let res = response.data;
+                        if (res.code !== '200') {
+                            this.listLoading = false;
+                            return this.$message.error('删除车辆调度记录,失败');
+                        }
+                        this.$message.success('删除车辆调度记录,成功!');
+                        this.listLoading = false;
+                        //刷新车辆调度记录列表
+                        this.getDispatchNodeList();
+                    }).catch(error => {
+                        this.delLoading = false;
+                        this.$message.error(error.toString());
+                    });
+                }).catch(() => {
+                });
+            },
+            //监听,我要调度车辆,对话框的关闭事件
+            dispatchDialogClosed() {
+                //重置对话框
+                this.$refs.addDispatchNodeFormRef.resetFields();
+            },
+            //监听,编辑调度记录,对话框的关闭事件
+            editDialogClosed() {
+                //重置对话框
+                this.$refs.editFormRef.resetFields();
+            },
+            //监听pageSize改变的事件
+            handleSizeChange(newSize) {
+                this.queryInfo.pageSize = newSize;
+                //刷新车辆调度记录列表
+                this.getDispatchNodeList();
+            },
+            //监听当前页码值改变的事件
+            handleCurrentChange(newPage) {
+                this.queryInfo.pageNum = newPage;
+                //刷新车辆调度记录列表
+                this.getDispatchNodeList();
+            },
+
+            /**
+             * 打开编辑调度记录,对话框
+             * @param index
+             * @param row:该行的数据对象
+             */
+            showDialogVisible(index, row) {
+                this.editForm = Object.assign({}, row);
+                this.viewDialogVisible = true;
+            },
+            /**
+             * 根据状态的不同区分颜色
+             *
+             * @param row
+             * @param rowIndex
+             */
+            rowStatus({row, rowIndex}) {
+                if (row.status === '1') {
+                    return 'success-row';
+                }
+                if (row.status === '2') {
+                    return 'run-row';
+                }
+                if (row.status === '3') {
+                    return 'cancel-row';
+                }
+                if (row.status === '4') {
+                    return 'await-row';
+                }
+            }
+        }
+    }
+</script>
+<style>
+    /* 完成状态 */
+    .el-table .success-row {
+        background: rgba(64, 158, 255, 0.2);
+    }
+
+    /*  执行状态 */
+    .el-table .run-row {
+        background: rgba(103, 194, 58, 0.2);
+    }
+
+    /*  取消状态 */
+    .el-table .cancel-row {
+        background: rgba(144, 147, 153, 0.2);
+    }
+
+    /*  待执行状态 */
+    .el-table .await-row {
+        background: rgba(230, 162, 60, 0.2);
+    }
+</style>
diff --git a/src/views/dispatch/DriverInfo.vue b/src/views/dispatch/DriverInfo.vue
new file mode 100644
index 0000000..7ddbb83
--- /dev/null
+++ b/src/views/dispatch/DriverInfo.vue
@@ -0,0 +1,654 @@
+<template>
+    <el-container>
+        <el-main>
+            <!--面包屑导航区域-->
+            <!--            <div>-->
+            <!--                <el-breadcrumb separator-class="el-icon-arrow-right">-->
+            <!--                    <el-breadcrumb-item :to="{ path: '/' }">首页</el-breadcrumb-item>-->
+            <!--                    <el-breadcrumb-item>车辆调度</el-breadcrumb-item>-->
+            <!--                    <el-breadcrumb-item>驾驶员信息</el-breadcrumb-item>-->
+            <!--                </el-breadcrumb>-->
+            <!--            </div>-->
+            <el-card style="background-color: #F5F7FA">
+                <!--搜索区域-->
+                <div>
+                    <el-row :gutter="24">
+                        <el-col :span="5">
+                            <el-input v-model="queryInfo.driverName" prefix-icon="el-icon-search" clearable
+                                       placeholder="请输入驾驶员姓名"></el-input>
+                        </el-col>
+                        <el-col :span="5">
+                            <el-input v-model="queryInfo.driverMobile" prefix-icon="el-icon-search" clearable
+                                       placeholder="请输入联系方式"></el-input>
+                        </el-col>
+                        <el-col :span="5">
+                            <el-input v-model="queryInfo.driverCompany" prefix-icon="el-icon-search" clearable
+                                      placeholder="请输入公司名称"></el-input>
+                        </el-col>
+                        <el-col :span="5">
+                            <el-select v-model="queryInfo.driverStatus" clearable placeholder="请选择驾驶员状态">
+                                <el-option
+                                        v-for="item in driverStatusList"
+                                        :key="item.value"
+                                        :label="item.label"
+                                        :value="item.value">
+                                </el-option>
+                            </el-select>
+                        </el-col>
+                    </el-row>
+                    <el-row style="margin-top: 20px;">
+                        <el-button type="primary" @click="getDriverInfoList">查询驾驶员信息</el-button>
+                        <el-button type="success" @click="addDriverInfoFormVisible = true">增加驾驶员信息</el-button>
+                    </el-row>
+                </div>
+                <!--驾驶员信息列表区域-->
+                <div style="margin-top: 20px;">
+                    <el-table :data="driverInfoList" border stripe highlight-current-row v-loading="listLoading"
+                              @selection-change="selsChange"
+                              element-loading-text="拼命加载中">
+                        <el-table-column type="selection" width="55" :selectable="isSelectable" align="center"></el-table-column>
+                        <el-table-column type="index" align="center"></el-table-column>
+                        <el-table-column label="姓名" prop="driverName" align="center" width="100"></el-table-column>
+                        <el-table-column label="联系方式" prop="driverMobile" align="center" width="130"></el-table-column>
+                        <el-table-column label="职位" prop="driverPosition" align="center" width="100">
+                            <template slot-scope="scope">
+                                <span v-if="scope.row.driverPosition ==='1'">队长</span>
+                                <span v-if="scope.row.driverPosition ==='2'">班长</span>
+                                <span v-if="scope.row.driverPosition ==='3'">副班长</span>
+                                <span v-if="scope.row.driverPosition ==='4'">员工</span>
+                            </template>
+                        </el-table-column>
+                        <el-table-column label="状态" prop="driverStatus" align="center" width="120">
+                            <template slot-scope="scope">
+                                <span v-if="scope.row.driverStatus ==='1'">空闲状态</span>
+                                <span v-if="scope.row.driverStatus ==='2'">执行状态</span>
+                                <span v-if="scope.row.driverStatus ==='3'">轮休状态</span>
+                                <span v-if="scope.row.driverStatus ==='4'">请假状态</span>
+                            </template>
+                        </el-table-column>
+                        <el-table-column label="驾驶证" prop="driverLicenseNumber" align="center"
+                                         width="200"></el-table-column>
+                        <el-table-column label="工号" prop="jobNumber" align="center" width="150"></el-table-column>
+                        <el-table-column label="公司" prop="driverCompany" align="center" width="160"></el-table-column>
+                        <el-table-column label="操作" width="220px" align="center" fixed="right">
+                            <template slot-scope="scope">
+                                <!--查看按钮-->
+                                <el-tooltip effect="dark" content="编辑" placement="top-start" :enterable="false">
+                                    <el-button type="primary" icon="el-icon-edit" size="mini"
+                                               @click="showEditDialogVisible(scope.$index,scope.row)">编辑
+                                    </el-button>
+                                </el-tooltip>
+                                <!--取消调度按钮-->
+                                <el-tooltip effect="dark" content="删除" placement="top-start" :enterable="false">
+                                    <el-button type="danger" icon="el-icon-delete" size="mini"
+                                               :loading="delLoading"
+                                               :disabled="scope.row.driverStatus==='2'"
+                                               @click="removeDriverInfo(scope.$index,scope.row)">删除
+                                    </el-button>
+                                </el-tooltip>
+                            </template>
+                        </el-table-column>
+                    </el-table>
+                    <!--分页区域-->
+                    <div style="margin-top: 10px">
+                        <el-row :gutter="24">
+                            <el-col :span="5">
+                                <el-button type="danger" icon="el-icon-delete" @click="batchRemove"
+                                           :disabled="this.sels.length===0">批量删除
+                                </el-button>
+                            </el-col>
+                            <el-col :span="10" style="margin-top: 5px">
+                                <el-pagination
+                                        @size-change="handleSizeChange"
+                                        @current-change="handleCurrentChange"
+                                        :current-page="queryInfo.pageNum"
+                                        :page-sizes="[10,20,30,50]"
+                                        :page-size="queryInfo.pageSize"
+                                        layout="total, sizes, prev, pager, next, jumper"
+                                        :total="total">
+                                </el-pagination>
+                            </el-col>
+                        </el-row>
+                    </div>
+                </div>
+            </el-card>
+            <!-- 增加驾驶员信息对话框 -->
+            <div>
+                <el-dialog
+                        style="margin-top: -50px"
+                        title="增加驾驶员信息"
+                        text-align="center"
+                        :visible.sync="addDriverInfoFormVisible"
+                        width="50%" @close="addDriverInfoDialogClosed">
+                    <el-form :model="addDriverInfoForm" label-width="100px" status-icon
+                             :rules="addDriverInfoFormRules" ref="addDriverInfoFormRef"
+                             size="medium" align="center" :inline="true"
+                             style="background-color: #F5F7FA">
+                        <div style="margin-top: -15px">
+                            <br>
+                            <el-form-item label="司机姓名:" prop="driverName">
+                                <el-input v-model="addDriverInfoForm.driverName" style="width: 300px;" clearable
+                                          placeholder="请输入驾驶员姓名"></el-input>
+                            </el-form-item>
+                            <el-form-item label="联系方式:" prop="driverMobile">
+                                <el-input v-model="addDriverInfoForm.driverMobile" style="width: 300px;" clearable
+                                          placeholder="请输入驾驶员联系方式"></el-input>
+                            </el-form-item>
+
+
+                            <el-form-item label="司机状态:" prop="driverStatus">
+                                <el-select v-model="addDriverInfoForm.driverStatus" style="width: 300px" clearable
+                                           placeholder="请选择驾驶员类型">
+                                    <el-option
+                                            v-for="item in driverStatusList"
+                                            :key="item.value"
+                                            :label="item.label"
+                                            :value="item.value">
+                                    </el-option>
+                                </el-select>
+                            </el-form-item>
+                            <el-form-item label="驾驶证号:" prop="driverLicenseNumber">
+                                <el-input v-model="addDriverInfoForm.driverLicenseNumber" style="width: 300px;"
+                                          clearable
+                                          placeholder="请输入驾驶证号码"></el-input>
+                            </el-form-item>
+                            <el-form-item label="工作职位:" prop="driverPosition">
+                                <el-select v-model="addDriverInfoForm.driverPosition" style="width: 300px" clearable
+                                           placeholder="请选择驾驶员类型">
+                                    <el-option
+                                            v-for="item in driverPositionList"
+                                            :key="item.value"
+                                            :label="item.label"
+                                            :value="item.value">
+                                    </el-option>
+                                </el-select>
+                            </el-form-item>
+
+                            <el-form-item label="员工号码:" prop="jobNumber">
+                                <el-input v-model="addDriverInfoForm.jobNumber" style="width: 300px;" clearable
+                                          placeholder="请输入员工号码"></el-input>
+                            </el-form-item>
+                            <el-form-item label="司机公司:" prop="driverCompany">
+                                <el-input v-model="addDriverInfoForm.driverCompany" style="width: 300px;" clearable
+                                          placeholder="请输入驾驶员所属公司"></el-input>
+                            </el-form-item>
+                            <br>
+                        </div>
+                    </el-form>
+                    <!--底部按钮区域-->
+                    <span slot="footer" class="dialog-footer">
+                        <el-button @click="addDriverInfoFormVisible = false">取 消</el-button>
+                        <el-button type="primary" :loading="addLoading" @click="addDriverInfo">增 加</el-button>
+                    </span>
+                </el-dialog>
+            </div>
+            <!-- 编辑驾驶员信息,对话框 -->
+            <div>
+                <el-dialog
+                        style="margin-top: -70px"
+                        title="编辑驾驶员信息"
+                        :visible.sync="editDialogVisible"
+                        text-align="center"
+                        width="50%" @close="editDriverInfoDialogClosed">
+                    <el-form :model="editDriverInfoForm" label-width="100px" status-icon
+                             :rules="editDriverInfoFormRules" ref="editDriverInfoFormRef"
+                             :inline="true" size="medium" align="center"
+                             style="background-color: #F5F7FA">
+                        <div style="margin-top: -15px">
+                            <br>
+                            <el-form-item label="司机姓名:" prop="driverName">
+                                <el-input v-model="editDriverInfoForm.driverName" style="width: 300px;" clearable
+                                          placeholder="请输入驾驶员姓名"></el-input>
+                            </el-form-item>
+                            <el-form-item label="联系方式:" prop="driverMobile">
+                                <el-input v-model="editDriverInfoForm.driverMobile" style="width: 300px;" clearable
+                                          placeholder="请输入驾驶员联系方式"></el-input>
+                            </el-form-item>
+
+
+                            <el-form-item label="司机状态:" prop="driverStatus">
+                                <el-select v-model="editDriverInfoForm.driverStatus" style="width: 300px" clearable
+                                           placeholder="请选择驾驶员类型">
+                                    <el-option
+                                            v-for="item in driverStatusList"
+                                            :key="item.value"
+                                            :label="item.label"
+                                            :value="item.value">
+                                    </el-option>
+                                </el-select>
+                            </el-form-item>
+                            <el-form-item label="驾驶证号:" prop="driverLicenseNumber">
+                                <el-input v-model="editDriverInfoForm.driverLicenseNumber" style="width: 300px;"
+                                          clearable
+                                          placeholder="请输入驾驶证号码"></el-input>
+                            </el-form-item>
+                            <el-form-item label="工作职位:" prop="driverPosition">
+                                <el-select v-model="editDriverInfoForm.driverPosition" style="width: 300px" clearable
+                                           placeholder="请选择驾驶员类型">
+                                    <el-option
+                                            v-for="item in driverPositionList"
+                                            :key="item.value"
+                                            :label="item.label"
+                                            :value="item.value">
+                                    </el-option>
+                                </el-select>
+                            </el-form-item>
+
+                            <el-form-item label="员工号码:" prop="jobNumber">
+                                <el-input v-model="editDriverInfoForm.jobNumber" style="width: 300px;" clearable
+                                          placeholder="请输入员工号码"></el-input>
+                            </el-form-item>
+                            <el-form-item label="司机公司:" prop="driverCompany">
+                                <el-input v-model="editDriverInfoForm.driverCompany" style="width: 300px;" clearable
+                                          placeholder="请输入驾驶员所属公司"></el-input>
+                            </el-form-item>
+                            <br>
+                        </div>
+                    </el-form>
+                    <!--底部按钮区域-->
+                    <span slot="footer" class="dialog-footer">
+                        <el-button @click="editDialogVisible = false">取 消</el-button>
+                        <el-button type="primary" :loading="editLoading" @click="editDriverInfo">编 辑</el-button>
+                    </span>
+                </el-dialog>
+            </div>
+        </el-main>
+    </el-container>
+</template>
+
+<script>
+    import {
+        selectDriverInfoList,
+        insertDriverInfo,
+        updateDriverInfo,
+        batchRemoveDriverInfo,
+        deleteDriverInfo,
+    } from "../../api/dispatch_api";
+
+    export default {
+        name: "dispatch_api",
+        created() {
+            //刷新驾驶员信息列表
+            this.getDriverInfoList();
+        },
+        data() {
+            //验证手机号的自定义规则
+            var driverMobileValid = (rule, value, callback) => {
+                //验证手机号的正则表达式
+                const regMobile = /^(0|86|17951)?(13[0-9]|15[0123456789]|17[678]|18[0-9]|14[57])[0-9]{8}$/;
+                if (regMobile.test(value)) {
+                    //合法的手机号
+                    return callback();
+                }
+                callback(new Error('请输入合法的手机号'));
+            };
+            return {
+                /**
+                 * 查询信息列表
+                 */
+                queryInfo: {
+                    //驾驶员姓名
+                    driverName: '',
+                    //驾驶员联系方式
+                    driverMobile: '',
+                    //驾驶员所属公司
+                    driverCompany: '',
+                    //驾驶员状态
+                    driverStatus: '',
+                    //当前的页数
+                    pageNum: 1,
+                    //当前每页显示多少条数据
+                    pageSize: 10
+                },
+                /**
+                 * 设置,总条数
+                 */
+                total: 0,
+                /**
+                 * 批量删除的选中列表
+                 */
+                sels: [],
+                /**
+                 * 驾驶员信息列表
+                 */
+                driverInfoList: [],
+                /**
+                 * 新增驾驶员信息表单
+                 */
+                addDriverInfoForm: {
+                    driverName: '',
+                    driverLicenseNumber: '',
+                    driverMobile: '',
+                    jobNumber: '',
+                    driverPosition: '1',
+                    driverCompany: '',
+                    driverStatus: '1',
+                },
+                /**
+                 * 编辑驾驶员信息表单
+                 */
+                editDriverInfoForm: {},
+                /**
+                 * 控制,添加驾驶员信息对话框的显示与隐藏
+                 */
+                addDriverInfoFormVisible: false,
+                /**
+                 * 控制,编辑驾驶员信息对话框的显示与隐藏
+                 */
+                editDialogVisible: false,
+                /* 列表加载 */
+                listLoading: false,
+                /* 添加加载 */
+                addLoading: false,
+                /* 编辑加载 */
+                editLoading: false,
+                /* 删除加载 */
+                delLoading: false,
+                /**
+                 * 司机职位,列表
+                 */
+                driverPositionList: [
+                    {
+                        value: '1',
+                        label: '队长'
+                    },
+                    {
+                        value: '2',
+                        label: '班长'
+                    },
+                    {
+                        value: '3',
+                        label: '副班长'
+                    },
+                    {
+                        value: '4',
+                        label: '员工'
+                    },
+                ],
+                /**
+                 * 驾驶员状态,列表
+                 */
+                driverStatusList: [
+                    {
+                        value: '1',
+                        label: '空闲状态'
+                    },
+                    {
+                        value: '2',
+                        label: '执行状态'
+                    },
+                    {
+                        value: '3',
+                        label: '轮休状态'
+                    },
+                    {
+                        value: '4',
+                        label: '请假状态'
+                    },
+                ],
+                /**
+                 * 添加驾驶员信息,表单的验证规则对象
+                 */
+                addDriverInfoFormRules: {
+                    driverName: [
+                        {required: true, message: '请选择驾驶员姓名', trigger: ['blur', 'change']},
+                    ],
+                    driverLicenseNumber: [
+                        {required: true, message: '请输入驾驶证号码', trigger: ['blur', 'change']},
+                    ],
+                    driverMobile: [
+                        {required: true, message: '请输入联系方式', trigger: ['blur', 'change']},
+                        {validator: driverMobileValid, trigger: 'blur'}
+                    ],
+                    jobNumber: [
+                        {required: true, message: '请输入员工号码', trigger: ['blur', 'change']},
+                    ],
+                    driverPosition: [
+                        {required: true, message: '请选择工作职位', trigger: ['blur', 'change']},
+                    ],
+                    driverCompany: [
+                        {required: true, message: '请输入驾驶员所属公司', trigger: ['blur', 'change']},
+                    ],
+                    driverStatus: [
+                        {required: true, message: '请选择驾驶员状态', trigger: ['blur', 'change']},
+                    ],
+                },
+                /**
+                 * 编辑驾驶员信息,表单的验证规则对象
+                 */
+                editDriverInfoFormRules: {
+                    driverName: [
+                        {required: true, message: '请选择驾驶员姓名', trigger: ['blur', 'change']},
+                    ],
+                    driverLicenseNumber: [
+                        {required: true, message: '请输入驾驶证号码', trigger: ['blur', 'change']},
+                    ],
+                    driverMobile: [
+                        {required: true, message: '请输入联系方式', trigger: ['blur', 'change']},
+                        {validator: driverMobileValid, trigger: 'blur'}
+                    ],
+                    jobNumber: [
+                        {required: true, message: '请输入员工号码', trigger: ['blur', 'change']},
+                    ],
+                    driverPosition: [
+                        {required: true, message: '请选择工作职位', trigger: ['blur', 'change']},
+                    ],
+                    driverCompany: [
+                        {required: true, message: '请输入驾驶员所属公司', trigger: ['blur', 'change']},
+                    ],
+                    driverStatus: [
+                        {required: true, message: '请选择驾驶员状态', trigger: ['blur', 'change']},
+                    ],
+                }
+            }
+        },
+        methods: {
+            /**
+             *  获取驾驶员信息列表
+             */
+            getDriverInfoList() {
+                //开启加载
+                this.listLoading = true;
+                selectDriverInfoList(this.queryInfo).then((response) => {
+                    let res = response.data;
+                    if (res.code !== '200'){
+                        //关闭加载
+                        this.listLoading = false;
+                        return this.$message.error('获取驾驶员信息列表,失败');
+                    }
+                    // 获取驾驶员信息列表数据
+                    this.driverInfoList = res.data.list;
+                    // 获取列表的总记录数
+                    this.total = res.data.total;
+                    //关闭加载
+                    this.listLoading = false;
+                    this.$message.success('获取驾驶员信息列表,成功');
+                }).catch(error => {
+                    this.listLoading = false;
+                    this.$message.error(error.toString());
+                });
+
+            },
+            /**
+             *  增加驾驶员信息
+             */
+            addDriverInfo() {
+                /*进行表单的预验证*/
+                this.$refs.addDriverInfoFormRef.validate(valid => {
+                    // 未通过,表单预校验
+                    if (!valid) return;
+                    // 通过,表单预检验,开启加载
+                    this.addLoading = true;
+                    insertDriverInfo(this.addDriverInfoForm).then((response) => {
+                        let res = response.data;
+                        if (res.code !== '200'){
+                            //关闭加载
+                            this.addLoading = false;
+                            return this.$message.error('添加驾驶员信息,失败');
+                        }
+                        //关闭加载
+                        this.addLoading = false;
+                        this.$message.success('添加驾驶员信息,成功');
+                        //关闭对话框
+                        this.addDriverInfoFormVisible = false;
+                        //刷新驾驶员信息列表
+                        this.getDriverInfoList();
+                    }).catch(error => {
+                        this.addLoading = false;
+                        this.$message.error(error.toString());
+                    });
+                })
+            },
+            /**
+             * 删除驾驶员信息
+             */
+            removeDriverInfo(index, row) {
+                //弹框询问是否删除驾驶员信息
+                this.$confirm('此操作永久删除该驾驶员信息, 是否继续?', '警告', {
+                        confirmButtonText: '确定删除',
+                        cancelButtonText: '取消',
+                        type: 'warning'
+                    }
+                ).then(() => {
+                    //开启加载
+                    this.delLoading = true;
+                    deleteDriverInfo(row).then((response) => {
+                        let res = response.data;
+                        if (res.code !== '200') {
+                            //关闭加载
+                            this.delLoading = false;
+                            return this.$message.error('删除驾驶员信息,失败');
+                        }
+                        //关闭加载
+                        this.delLoading = false;
+                        this.$message.success('删除驾驶员信息,成功!');
+                        //刷新驾驶员信息列表
+                        this.getDriverInfoList();
+                    }).catch(error => {
+                        this.delLoading = false;
+                        this.$message.error(error.toString());
+                    });
+                }).catch(() => {
+                });
+            },
+            /**
+             * 批量删除,之前的选中
+             */
+            selsChange: function (sels) {
+                this.sels = sels;
+            },
+            /**
+             * 驾驶员状态为执行状态的时候,无法被选中
+             */
+            isSelectable(row, index) {
+                if (row.driverStatus === '2') {
+                    return false;
+                } else {
+                    return true;
+                }
+            },
+            /**
+             * 批量删除功能
+             */
+            batchRemove() {
+                var ids = this.sels.map(item => item.id).toString();
+                console.log(ids);
+                //弹框询问是否批量删除选中的车辆调度记录
+                this.$confirm('此操作将永久删除,选中的驾驶员信息, 是否继续?', '警告', {
+                        confirmButtonText: '确定删除',
+                        cancelButtonText: '取消',
+                        type: 'warning'
+                    }
+                ).then(() => {
+                    //开启加载
+                    this.listLoading = true;
+                    let params = {ids: ids};
+                    batchRemoveDriverInfo(params).then(response => {
+                        let res = response.data;
+                        if (res.code !== '200') {
+                            this.listLoading = false;
+                            return this.$message.error('批量删除驾驶员信息,失败');
+                        }
+                        this.$message.success('批量删除驶员信息,成功!');
+                        this.listLoading = false;
+                        //刷新驾驶员信息列表
+                        this.getDriverInfoList();
+                    }).catch(error => {
+                        this.delLoading = false;
+                        this.$message.error(error.toString());
+                    });
+                }).catch(() => {
+                });
+            },
+            /**
+             * 编辑驾驶员信息
+             */
+            editDriverInfo() {
+                /*进行表单的预验证*/
+                this.$refs.editDriverInfoFormRef.validate(valid => {
+                    // 未通过,表单预校验
+                    if (!valid) return;
+                    // 通过,表单预检验,开启加载
+                    this.editLoading = true;
+                    updateDriverInfo(this.editDriverInfoForm).then((response) => {
+                        let res = response.data;
+                        if (res.code !== '200') {
+                            //关闭加载
+                            this.editLoading = false;
+                            return this.$message.error('修改驾驶员信息,失败');
+                        }
+                        //关闭加载
+                        this.editLoading = false;
+                        this.$message.success('修改驾驶员信息,成功!');
+                        // 关闭,编辑驾驶员信息对话框
+                        this.editDialogVisible = false;
+                        //刷新驾驶员信息列表
+                        this.getDriverInfoList();
+                    }).catch(error => {
+                        this.editLoading = false;
+                        this.$message.error(error.toString());
+                    });
+                })
+            },
+            /**
+             * 添加驾驶员信息对话框,关闭时,重置对话框
+             */
+            addDriverInfoDialogClosed() {
+                this.$refs.addDriverInfoFormRef.resetFields();
+            },
+            /**
+             * 编辑驾驶员信息对话框,关闭时,重置对话框
+             */
+            editDriverInfoDialogClosed() {
+                this.$refs.editDriverInfoFormRef.resetFields();
+            },
+            /**
+             * 打开编辑驾驶员信息对话框
+             */
+            showEditDialogVisible(index, row) {
+                this.editDriverInfoForm = Object.assign({}, row);
+                this.editDialogVisible = true;
+            },
+            /**
+             * 监听pageSize改变的事件
+             */
+            handleSizeChange(newSize) {
+                this.queryInfo.pageSize = newSize;
+                //刷新驾驶员信息列表
+                this.getDriverInfoList();
+            },
+            /**
+             * 监听当前页码值改变的事件
+             */
+            handleCurrentChange(newPage) {
+                this.queryInfo.pageNum = newPage;
+                //刷新驾驶员信息列表
+                this.getDriverInfoList();
+            },
+        }
+    }
+</script>
+
+<style scoped>
+
+</style>
diff --git a/src/views/dispatch/VehicleInfo.vue b/src/views/dispatch/VehicleInfo.vue
new file mode 100644
index 0000000..7f2c05e
--- /dev/null
+++ b/src/views/dispatch/VehicleInfo.vue
@@ -0,0 +1,704 @@
+<template>
+    <el-container>
+        <el-main>
+            <!--面包屑导航区域-->
+            <!--            <div>-->
+            <!--                <el-breadcrumb separator-class="el-icon-arrow-right">-->
+            <!--                    <el-breadcrumb-item :to="{ path: '/' }">首页</el-breadcrumb-item>-->
+            <!--                    <el-breadcrumb-item>车辆调度</el-breadcrumb-item>-->
+            <!--                    <el-breadcrumb-item>车辆信息</el-breadcrumb-item>-->
+            <!--                </el-breadcrumb>-->
+            <!--            </div>-->
+            <el-card style="background-color: #F5F7FA">
+                <!--搜索区域-->
+                <div>
+                    <el-row :gutter="24">
+                        <el-col :span="5">
+                            <el-input v-model="queryInfo.licensePlateNumber" clearable prefix-icon="el-icon-search"
+                                      placeholder="请输入车牌号码"></el-input>
+                        </el-col>
+                        <el-col :span="5">
+                            <el-input v-model="queryInfo.vehicleCompany" clearable prefix-icon="el-icon-search"
+                                      placeholder="请输入车辆公司"></el-input>
+                        </el-col>
+                        <el-col :span="5">
+                            <el-select v-model="queryInfo.vehicleStatus" clearable placeholder="请选择车辆状态">
+                                <el-option
+                                        v-for="item in vehicleStatusList"
+                                        :key="item.value"
+                                        :label="item.label"
+                                        :value="item.value">
+                                </el-option>
+                            </el-select>
+                        </el-col>
+                        <el-col :span="5">
+                            <el-select v-model="queryInfo.vehicleType" clearable placeholder="请选择车辆类型">
+                                <el-option
+                                        v-for="item in vehicleTypeList"
+                                        :key="item.value"
+                                        :label="item.label"
+                                        :value="item.value">
+                                </el-option>
+                            </el-select>
+                        </el-col>
+                    </el-row>
+                    <el-row style="margin-top: 20px;">
+                        <el-button type="primary" @click="getVehicleInfoList">查询车辆信息</el-button>
+                        <el-button type="success" @click="addVehicleInfoFormVisible = true">增加车辆信息</el-button>
+
+                    </el-row>
+                </div>
+                <!--车辆信息列表区域-->
+                <div style="margin-top: 20px;">
+                    <el-table :data="vehicleInfoList" border stripe highlight-current-row v-loading="listLoading"
+                              @selection-change="selsChange"
+                              element-loading-text="拼命加载中">
+                        <el-table-column type="selection" width="55" :selectable="isSelectable"
+                                         align="center"></el-table-column>
+                        <el-table-column type="index" align="center"></el-table-column>
+                        <el-table-column label="车辆类型" prop="vehicleType" align="center" width="120">
+                            <template slot-scope="scope">
+                                <span v-if="scope.row.vehicleType ==='1'">重型货车</span>
+                                <span v-if="scope.row.vehicleType ==='2'">中型货车</span>
+                                <span v-if="scope.row.vehicleType ==='3'">轻型货车</span>
+                                <span v-if="scope.row.vehicleType ==='4'">微型货车</span>
+                                <span v-if="scope.row.vehicleType ==='5'">拖车</span>
+                                <span v-if="scope.row.vehicleType ==='6'">叉车</span>
+                            </template>
+                        </el-table-column>
+                        <el-table-column label="车牌号码" prop="licensePlateNumber" align="center"
+                                         width="130"></el-table-column>
+                        <el-table-column label="车辆状态" prop="vehicleStatus" align="center" width="100">
+                            <template slot-scope="scope">
+                                <span v-if="scope.row.vehicleStatus ==='1'">空闲状态</span>
+                                <span v-if="scope.row.vehicleStatus ==='2'">执行状态</span>
+                                <span v-if="scope.row.vehicleStatus ==='3'">在修状态</span>
+                                <span v-if="scope.row.vehicleStatus ==='4'">损坏未修</span>
+                                <span v-if="scope.row.vehicleStatus ==='5'">保养状态</span>
+                            </template>
+                        </el-table-column>
+                        <el-table-column label="车辆载重/Kg" prop="vehicleLoad" align="center"
+                                         width="110"></el-table-column>
+                        <el-table-column label="挂车与否" prop="isTrailer" align="center" width="110">
+                            <template slot-scope="scope">
+                                <span v-if="scope.row.isTrailer ==='1'">有挂车</span>
+                                <span v-if="scope.row.isTrailer ==='2'">没有挂车</span>
+                            </template>
+                        </el-table-column>
+                        <el-table-column label="开始空闲时间" prop="freetime" align="center" width="160"></el-table-column>
+
+                        <el-table-column label="车辆公司" prop="vehicleCompany" align="center"
+                                         width="200"></el-table-column>
+                        <el-table-column label="行驶证号" prop="drivingLicenseNumber" align="center"
+                                         width="160"></el-table-column>
+                        <el-table-column label="操作" width="200px" align="center" fixed="right">
+                            <template slot-scope="scope">
+                                <!--查看按钮-->
+                                <el-tooltip effect="dark" content="编辑" placement="top-start" :enterable="false">
+                                    <el-button type="primary" icon="el-icon-edit" size="mini"
+                                               @click="showEditDialogVisible(scope.$index,scope.row)">编辑
+                                    </el-button>
+                                </el-tooltip>
+                                <!--取消调度按钮-->
+                                <el-tooltip effect="dark" content="删除" placement="top-start" :enterable="false">
+                                    <el-button type="danger" icon="el-icon-delete" size="mini"
+                                               :loading="delLoading"
+                                               :disabled="scope.row.vehicleStatus==='2'"
+                                               @click="removeVehicleInfo(scope.$index,scope.row)">删除
+                                    </el-button>
+                                </el-tooltip>
+                            </template>
+                        </el-table-column>
+                    </el-table>
+                    <!--分页区域-->
+                    <div style="margin-top: 10px">
+                        <el-row :gutter="24">
+                            <el-col :span="5">
+                                <el-button type="danger" icon="el-icon-delete" @click="batchRemove"
+                                           :disabled="this.sels.length===0">批量删除
+                                </el-button>
+                            </el-col>
+                            <el-col :span="10" style="margin-top: 5px">
+                                <el-pagination
+                                        @size-change="handleSizeChange"
+                                        @current-change="handleCurrentChange"
+                                        :current-page="queryInfo.pageNum"
+                                        :page-sizes="[10,20,30,50]"
+                                        :page-size="queryInfo.pageSize"
+                                        layout="total, sizes, prev, pager, next, jumper"
+                                        :total="total">
+                                </el-pagination>
+                            </el-col>
+                        </el-row>
+                    </div>
+                </div>
+            </el-card>
+            <!-- 增加车辆信息对话框 -->
+            <div>
+                <el-dialog
+                        style="margin-top: -50px"
+                        title="增加车辆信息"
+                        :visible.sync="addVehicleInfoFormVisible"
+                        width="50%" @close="addVehicleInfoDialogClosed">
+                    <el-form :model="addVehicleInfoForm" label-width="100px" status-icon
+                             :rules="addVehicleInfoFormRules" ref="addVehicleInfoFormRef"
+                             style="margin-left:10%;margin-right:10%;background-color: #F5F7FA">
+                        <div style="margin-left: 30px">
+                            <br>
+                            <el-form-item label="车牌号码:" prop="licensePlateNumber">
+                                <el-input v-model="addVehicleInfoForm.licensePlateNumber" clearable
+                                          style="width: 300px;"
+                                          placeholder="请输入车牌号码"></el-input>
+                            </el-form-item>
+                            <el-form-item label="行驶证号:" prop="drivingLicenseNumber">
+                                <el-input v-model="addVehicleInfoForm.drivingLicenseNumber" clearable
+                                          style="width: 300px;"
+                                          placeholder="请输入车辆行驶证号"></el-input>
+                            </el-form-item>
+                            <el-form-item label="车辆类型:" prop="vehicleType">
+                                <el-select v-model="addVehicleInfoForm.vehicleType" style="width: 300px" clearable
+                                           placeholder="请选择车辆类型">
+                                    <el-option
+                                            v-for="item in vehicleTypeList"
+                                            :key="item.value"
+                                            :label="item.label"
+                                            :value="item.value">
+                                    </el-option>
+                                </el-select>
+                            </el-form-item>
+                            <el-form-item label="车辆载重:" prop="vehicleLoad">
+                                <el-input-number style="width: 200px" v-model="addVehicleInfoForm.vehicleLoad"
+                                                 :min="10" :max="10000" controls-position="right">
+                                </el-input-number>
+                                <span style="margin-left:5px;font-size: 18px">Kg</span>
+                            </el-form-item>
+                            <el-form-item label="有无挂车:" prop="vehicleType">
+                                <el-select v-model="addVehicleInfoForm.isTrailer" style="width: 300px" clearable
+                                           placeholder="请选择有无挂车">
+                                    <el-option
+                                            v-for="item in isTrailerList"
+                                            :key="item.value"
+                                            :label="item.label"
+                                            :value="item.value">
+                                    </el-option>
+                                </el-select>
+                            </el-form-item>
+                            <el-form-item label="车辆公司:" prop="vehicleCompany">
+                                <el-input v-model="addVehicleInfoForm.vehicleCompany" clearable style="width: 300px;"
+                                          placeholder="请输入车辆公司"></el-input>
+                            </el-form-item>
+                            <br>
+                        </div>
+                    </el-form>
+                    <!--底部按钮区域-->
+                    <span slot="footer" class="dialog-footer">
+                        <el-button @click="addVehicleInfoFormVisible = false">取 消</el-button>
+                        <el-button type="primary" :loading="addLoading" @click="addVehicleInfo">增 加</el-button>
+                    </span>
+                </el-dialog>
+            </div>
+            <!-- 编辑车辆信息,对话框 -->
+            <div>
+                <el-dialog
+                        title="编辑车辆信息"
+                        text-align="center"
+                        :visible.sync="editDialogVisible"
+                        width="60%" @close="editVehicleInfoDialogClosed">
+                    <el-form :model="editVehicleInfoForm" label-width="100px" status-icon
+                             :rules="editVehicleInfoFormRules" ref="editVehicleInfoFormRef"
+                             :inline="true" align="center"
+                             style="background-color: #F5F7FA">
+                        <div>
+                            <br>
+                            <el-form-item label="车牌号码:" prop="licensePlateNumber">
+                                <el-input v-model="editVehicleInfoForm.licensePlateNumber" clearable readonly
+                                          style="width:250px"
+                                          placeholder="请输入车牌号码"></el-input>
+                            </el-form-item>
+                            <el-form-item label="行驶证号:" prop="drivingLicenseNumber">
+                                <el-input v-model="editVehicleInfoForm.drivingLicenseNumber" clearable
+                                          style="width:250px"
+                                          placeholder="请输入车辆行驶证号"></el-input>
+                            </el-form-item>
+                            <el-form-item label="车辆类型:" prop="vehicleType">
+                                <el-select v-model="editVehicleInfoForm.vehicleType" clearable
+                                           style="width:250px"
+                                           placeholder="请选择车辆类型">
+                                    <el-option
+                                            v-for="item in vehicleTypeList"
+                                            :key="item.value"
+                                            :label="item.label"
+                                            :value="item.value">
+                                    </el-option>
+                                </el-select>
+                            </el-form-item>
+                            <el-form-item label="车辆载重:" prop="vehicleLoad">
+                                <el-input-number v-model="editVehicleInfoForm.vehicleLoad"
+                                                 clearable style="width:220px"
+                                                 :min="10" :max="10000" controls-position="right">
+                                </el-input-number>
+                                <span style="margin-left:5px;font-size: 18px">Kg</span>
+                            </el-form-item>
+                            <el-form-item label="车辆状态:" prop="vehicleStatus">
+                                <el-select v-model="editVehicleInfoForm.vehicleStatus" clearable
+                                           style="width:250px"
+                                           clearable placeholder="请选择车辆状态">
+                                    <el-option
+                                            v-for="item in vehicleStatusList"
+                                            :key="item.value"
+                                            :label="item.label"
+                                            :value="item.value">
+                                    </el-option>
+                                </el-select>
+                            </el-form-item>
+                            <el-form-item label="有无挂车:" prop="vehicleType">
+                                <el-select v-model="editVehicleInfoForm.isTrailer" clearable
+                                           style="width:250px" clearable
+                                           placeholder="请选择有无挂车">
+                                    <el-option
+                                            v-for="item in isTrailerList"
+                                            :key="item.value"
+                                            :label="item.label"
+                                            :value="item.value">
+                                    </el-option>
+                                </el-select>
+                            </el-form-item>
+                            <el-form-item label="车辆公司:" prop="vehicleCompany">
+                                <el-input v-model="editVehicleInfoForm.vehicleCompany" clearable
+                                          style="width:250px"
+                                          placeholder="请输入车辆公司"></el-input>
+                            </el-form-item>
+                            <el-form-item label="空闲时间:" prop="freetime">
+                                <el-date-picker v-model="editVehicleInfoForm.freetime" type="datetime"
+                                                style="width:250px"
+                                                placeholder="选择调度时间"></el-date-picker>
+                            </el-form-item>
+                            <br>
+                        </div>
+                    </el-form>
+                    <!--底部按钮区域-->
+                    <span slot="footer" class="dialog-footer">
+                        <el-button @click="editDialogVisible = false">取 消</el-button>
+                        <el-button type="primary" :loading="editLoading" @click="editVehicleInfo">编 辑</el-button>
+                    </span>
+                </el-dialog>
+            </div>
+        </el-main>
+    </el-container>
+</template>
+
+<script>
+    import {
+        selectVehicleInfoList,
+        insertVehicleInfo,
+        updateVehicleInfo,
+        batchRemoveVehicleInfo,
+        deleteVehicleInfo, deleteDispatchNote
+    } from "../../api/dispatch_api";
+
+    export default {
+        name: "dispatch_api",
+        created() {
+            //获取车辆信息列表
+            this.getVehicleInfoList();
+        },
+        data() {
+            return {
+                /**
+                 * 查询信息列表
+                 */
+                queryInfo: {
+                    //车牌号
+                    licensePlateNumber: '',
+                    //车辆所属公司
+                    vehicleCompany: '',
+                    //车辆状态
+                    vehicleStatus: '',
+                    //车辆类型
+                    vehicleType: '',
+                    //当前的页数
+                    pageNum: 1,
+                    //当前每页显示多少条数据
+                    pageSize: 10
+                },
+                /**
+                 * 设置,总条数
+                 */
+                total: 0,
+                /**
+                 * 批量删除,选中列表
+                 */
+                sels: [],
+                /**
+                 * 车辆信息列表
+                 */
+                vehicleInfoList: [],
+                /**
+                 * 新增车辆信息表单
+                 */
+                addVehicleInfoForm: {
+                    vehicleType: '2',
+                    licensePlateNumber: '',
+                    vehicleLoad: '',
+                    isTrailer: '2',
+                    vehicleCompany: '',
+                    drivingLicenseNumber: '',
+                },
+                /**
+                 * 编辑车辆信息表单
+                 */
+                editVehicleInfoForm: {},
+                /**
+                 * 控制,添加车辆信息对话框的显示与隐藏
+                 */
+                addVehicleInfoFormVisible: false,
+                /**
+                 * 控制,编辑车辆信息对话框的显示与隐藏
+                 */
+                editDialogVisible: false,
+                /* 列表加载 */
+                listLoading: false,
+                /* 添加加载 */
+                addLoading: false,
+                /* 编辑加载 */
+                editLoading: false,
+                /* 删除加载 */
+                delLoading: false,
+                /**
+                 * 车辆类型,选项列表
+                 */
+                vehicleTypeList: [
+                    {
+                        value: '1',
+                        label: '重型货车'
+                    },
+                    {
+                        value: '2',
+                        label: '中型货车'
+                    },
+                    {
+                        value: '3',
+                        label: '经济货车'
+                    },
+                    {
+                        value: '4',
+                        label: '微型货车'
+                    },
+                    {
+                        value: '5',
+                        label: '拖车'
+                    },
+                    {
+                        value: '6',
+                        label: '叉车'
+                    }
+                ],
+                /**
+                 * 挂车与否,列表
+                 */
+                isTrailerList: [
+                    {
+                        value: '1',
+                        label: '有挂车'
+                    },
+                    {
+                        value: '2',
+                        label: '没有挂车'
+                    },
+                ],
+                /**
+                 * 车辆状态列表
+                 */
+                vehicleStatusList: [
+                    {
+                        value: '1',
+                        label: '空闲状态'
+                    },
+                    {
+                        value: '2',
+                        label: '执行状态'
+                    },
+                    {
+                        value: '3',
+                        label: '在修状态'
+                    },
+                    {
+                        value: '4',
+                        label: '损坏未修状态'
+                    },
+                    {
+                        value: '5',
+                        label: '保养状态'
+                    },
+                ],
+                /**
+                 * 添加车辆信息表单的验证规则对象
+                 */
+                addVehicleInfoFormRules: {
+                    vehicleType: [
+                        {required: true, message: '请选择车辆类型', trigger: ['blur', 'change']},
+                    ],
+                    licensePlateNumber: [
+                        {required: true, message: '请输入车牌号', trigger: ['blur', 'change']},
+                    ],
+                    vehicleLoad: [
+                        {required: true, message: '请输入车辆载重', trigger: ['blur', 'change']},
+                    ],
+                    isTrailer: [
+                        {required: true, message: '请选择有无挂车', trigger: ['blur', 'change']},
+                    ],
+                    vehicleCompany: [
+                        {required: true, message: '请输入车辆公司名称', trigger: ['blur', 'change']},
+                    ],
+                    drivingLicenseNumber: [
+                        {required: true, message: '请输入车辆行驶证号', trigger: ['blur', 'change']},
+                    ],
+                },
+                /**
+                 * 编辑车辆信息表单的验证规则对象
+                 */
+                editVehicleInfoFormRules: {
+                    vehicleStatus: [
+                        {required: true, message: '请选择车辆状态', trigger: ['blur', 'change']},
+                    ],
+                    freetime: [
+                        {required: true, message: '请选择开始空闲时间', trigger: ['blur', 'change']},
+                    ],
+                    vehicleType: [
+                        {required: true, message: '请选择车辆类型', trigger: ['blur', 'change']},
+                    ],
+                    licensePlateNumber: [
+                        {required: true, message: '请输入车牌号', trigger: ['blur', 'change']},
+                    ],
+                    vehicleLoad: [
+                        {required: true, message: '请输入车辆载重', trigger: ['blur', 'change']},
+                    ],
+                    isTrailer: [
+                        {required: true, message: '请选择有无挂车', trigger: ['blur', 'change']},
+                    ],
+                    vehicleCompany: [
+                        {required: true, message: '请输入车辆公司名称', trigger: ['blur', 'change']},
+                    ],
+                    drivingLicenseNumber: [
+                        {required: true, message: '请输入车辆行驶证号', trigger: ['blur', 'change']},
+                    ],
+                }
+            }
+        },
+        methods: {
+            /**
+             * 管理员端,获取车辆信息列表
+             */
+            getVehicleInfoList() {
+                //开启加载
+                this.listLoading = true;
+                selectVehicleInfoList(this.queryInfo).then((response) => {
+                    let res = response.data;
+                    if (res.code !== '200') {
+                        //关闭加载
+                        this.listLoading = false;
+                        return this.$message.error('获取车辆信息列表失败');
+                    }
+                    // 获取车辆信息列表数据
+                    this.vehicleInfoList = res.data.list;
+                    // 获取列表的总记录数
+                    this.total = res.data.total;
+                    //关闭加载
+                    this.listLoading = false;
+                    this.$message.success('获取车辆信息列表,成功');
+                }).catch(error => {
+                    this.listLoading = false;
+                    this.$message.error(error.toString());
+                });
+            },
+            /**
+             * 管理员端,增加车辆信息
+             */
+            addVehicleInfo() {
+                /*进行表单的预验证*/
+                this.$refs.addVehicleInfoFormRef.validate(valid => {
+                    // 未通过,表单预校验
+                    if (!valid) return;
+                    // 通过,表单预检验,发起添加车辆信息的网络请求,开启加载
+                    this.addLoading = true;
+                    insertVehicleInfo(this.addVehicleInfoForm).then((response) => {
+                        let res = response.data;
+                        //添加调度记录信息,失败
+                        if (res.code !== '200') {
+                            //关闭加载
+                            this.addLoading = false;
+                            if(res.code === '406'){
+                                return this.$message.error('该车牌号已存在,请重新填写');
+                            }
+                            return this.$message.error('添加车辆信息,失败');
+                        }
+                        //关闭加载
+                        this.addLoading = false;
+                        this.$message.success('添加调度记录信息,成功');
+                        //隐藏对话框
+                        this.addVehicleInfoFormVisible = false;
+                        //刷新车辆信息列表
+                        this.getVehicleInfoList();
+                    }).catch(error => {
+                        this.addLoading = false;
+                        this.$message.error(error.toString());
+                    });
+
+                })
+            },
+            /**
+             * 管理员端,删除车辆信息
+             */
+            removeVehicleInfo(index, row) {
+                //弹框询问是否删除车辆信息
+                this.$confirm('此操作永久删除该车辆信息, 是否继续?', '警告', {
+                        confirmButtonText: '确定删除',
+                        cancelButtonText: '取消',
+                        type: 'warning'
+                    }
+                ).then(() => {
+                    //开启加载
+                    this.delLoading = true;
+                    deleteVehicleInfo(row).then((response) => {
+                        let res = response.data;
+                        if (res.code !== '200') {
+                            //关闭加载
+                            this.delLoading = false;
+                            return this.$message.error('删除车辆信息,失败');
+                        }
+                        //关闭加载
+                        this.delLoading = false;
+                        this.$message.success('删除车辆信息,成功!');
+                        //刷新车辆信息列表
+                        this.getVehicleInfoList();
+                    }).catch(error => {
+                        this.delLoading = false;
+                        this.$message.error(error.toString());
+                    });
+                }).catch(() => {
+                });
+            },
+
+            /**
+             * 批量删除,之前的选中
+             */
+            selsChange: function (sels) {
+                this.sels = sels;
+            },
+            /**
+             * 车辆状态为执行状态的时候,无法被选中
+             */
+            isSelectable(row, index) {
+                if (row.vehicleStatus === '2') {
+                    return false;
+                } else {
+                    return true;
+                }
+            },
+            /**
+             * 批量删除功能
+             */
+            batchRemove() {
+                var ids = this.sels.map(item => item.id).toString();
+                console.log(ids);
+                //弹框询问是否批量删除选中的车辆调度记录
+                this.$confirm('此操作永久删除选中的车辆信息, 是否继续?', '警告', {
+                        confirmButtonText: '确定删除',
+                        cancelButtonText: '取消',
+                        type: 'warning'
+                    }
+                ).then(() => {
+                    //开启加载
+                    this.listLoading = true;
+                    let params = {ids: ids};
+                    batchRemoveVehicleInfo(params).then(response => {
+                        let res = response.data;
+                        if (res.code !== '200') {
+                            this.listLoading = false;
+                            return this.$message.error('批量删除车辆信息,失败');
+                        }
+                        this.$message.success('批量删除车辆信息,成功!');
+                        this.listLoading = false;
+                        //刷新车辆信息列表
+                        this.getVehicleInfoList();
+                    }).catch(error => {
+                        this.delLoading = false;
+                        this.$message.error(error.toString());
+                    });
+                }).catch(() => {
+                });
+            },
+            /**
+             * 管理员端,编辑车辆信息
+             */
+            editVehicleInfo() {
+                /*进行表单的预验证*/
+                this.$refs.editVehicleInfoFormRef.validate(valid => {
+                    // 未通过,表单预校验
+                    if (!valid) return;
+                    // 通过,表单预校验,开启加载
+                    this.editLoading = true;
+                    updateVehicleInfo(this.editVehicleInfoForm).then((response) => {
+                        let res = response.data;
+                        if (res.code !== '200') {
+                            //关闭加载
+                            this.editLoading = false;
+                            return this.$message.error('修改车辆信息,失败');
+                        }
+                        //关闭加载
+                        this.editLoading = false;
+                        this.$message.success('修改车辆信息,成功!');
+                        //关闭编辑车辆信息对话框
+                        this.editDialogVisible = false;
+                        //刷新车辆信息列表
+                        this.getVehicleInfoList();
+                    }).catch(error => {
+                        this.editLoading = false;
+                        this.$message.error(error.toString());
+                    });
+                })
+            },
+
+            /**
+             * 添加车辆信息对话框,关闭时,重置对话框
+             */
+            addVehicleInfoDialogClosed() {
+                this.$refs.addVehicleInfoFormRef.resetFields();
+            },
+            /**
+             * 编辑车辆信息对话框,关闭时,重置对话框
+             */
+            editVehicleInfoDialogClosed() {
+                this.$refs.editVehicleInfoFormRef.resetFields();
+            },
+            /**
+             * 打开编辑车辆信息对话框
+             */
+            showEditDialogVisible(index, row) {
+                this.editVehicleInfoForm = Object.assign({}, row);
+                this.editDialogVisible = true;
+            },
+            /**
+             * 监听pageSize改变的事件
+             */
+            handleSizeChange(newSize) {
+                this.queryInfo.pageSize = newSize;
+                //刷新车辆信息列表
+                this.getVehicleInfoList();
+
+            },
+            /**
+             * 监听当前页码值改变的事件
+             */
+            handleCurrentChange(newPage) {
+                this.queryInfo.pageNum = newPage;
+                //刷新车辆信息列表
+                this.getVehicleInfoList();
+            },
+        }
+    }
+</script>
+
+<style scoped>
+
+</style>
diff --git a/src/views/nav1/perm.vue b/src/views/nav1/perm.vue
index 2cd908f..930b756 100755
--- a/src/views/nav1/perm.vue
+++ b/src/views/nav1/perm.vue
@@ -4,13 +4,16 @@
 		<el-col :span="24" class="toolbar" style="padding-bottom: 0px;">
 			<el-form :inline="true" :model="filters">
 				<el-form-item>
-					<el-input v-model="filters.name" placeholder="权限名称"></el-input>
+					<el-input v-model="filters.name" placeholder="权限名称">
+						<template slot="prepend">权限名称</template>
+					</el-input>
+
 				</el-form-item>
 				<el-form-item>
-					<el-button type="primary" v-on:click="getTableList()">查询</el-button>
+					<el-button type="primary" v-on:click="getTableList()"  icon="el-icon-search">查&emsp;&emsp;询</el-button>
 				</el-form-item>
 				<el-form-item>
-					<el-button type="primary" @click="handleAdd">新增</el-button>
+					<el-button type="success" @click="handleAdd" icon="el-icon-document">新&emsp;&emsp;增</el-button>
 				</el-form-item>
 			</el-form>
 		</el-col>
@@ -34,18 +37,19 @@
 			</el-table-column>
 			<el-table-column prop="name" label="权限名称" min-width="150" sortable>
 			</el-table-column>
-			<el-table-column prop="description" label="描述" min-width="120" sortable>
-			</el-table-column>
+<!--			<el-table-column prop="description" label="描述" min-width="120" sortable>-->
+<!--			</el-table-column>-->
 			<el-table-column prop="ismenu" label="是否目录" width="100" :formatter="formatState" sortable>
 			</el-table-column>
 			<el-table-column prop="path" label="访问路径" width="300" sortable>
 			</el-table-column>
 			<el-table-column prop="permissionOrder" label="排序" width="100" sortable>
 			</el-table-column>
-			<el-table-column label="操作" min-width="100" fixed="right">
+			<el-table-column label="操作" min-width="150" fixed="right">
 				<template slot-scope="scope">
-					<el-button size="small" @click="handleEdit(scope.$index, scope.row)">编辑</el-button>
-					<el-button type="danger" size="small" @click="handleDel(scope.$index, scope.row)">删除</el-button>
+					<el-button size="mini" @click="handleEdit(scope.$index, scope.row)">编辑</el-button>
+					<el-button type="success" @click="handleEdit(scope.$index, scope.row)">白名单</el-button>
+					<el-button type="danger"  @click="handleDel(scope.$index, scope.row)">删除</el-button>
 				</template>
 			</el-table-column>
 		</el-table>
@@ -84,17 +88,17 @@
 				</el-row>
 				<el-row :gutter="20">
 					<el-col>
-						<el-form-item label="权限总路径" prop="path">
+						<el-form-item label="菜单访问路径" prop="path">
 							<el-input v-model="addForm.path" auto-complete="off" placeholder="设置为前端router的path值"></el-input>
-							<el-cascader-panel
-									v-model="addForm.path"
-									:options="cascaderOptions"
-									:props="pannelProps"
-							></el-cascader-panel>
+<!--							<el-cascader-panel-->
+<!--									v-model="addForm.path"-->
+<!--									:options="cascaderOptions"-->
+<!--									:props="pannelProps"-->
+<!--							></el-cascader-panel>-->
 						</el-form-item>
 					</el-col>
 				</el-row>
-				<el-form-item label="具体访问路径" prop="url">
+				<el-form-item label="接口访问路径" prop="url">
 					<el-input v-model="addForm.url" auto-complete="off" placeholder="设置为后端微服务路径:例如:/cloud-user-center/user/update"></el-input>
 					<el-cascader-panel
 							v-model="addForm.url"
@@ -436,7 +440,7 @@
 				}
 			},
 			tableRowClassName({row, rowIndex}) {
-				if (row.parentId == 0) {
+				if (row.parentId === 0 || row.ismenu) {
 					return 'warning-row';
 				} else {
 					return 'success-row';
diff --git a/src/views/nav1/user.vue b/src/views/nav1/user.vue
index d601775..0033194 100755
--- a/src/views/nav1/user.vue
+++ b/src/views/nav1/user.vue
@@ -4,16 +4,20 @@
 		<el-col :span="24" class="toolbar" style="padding-bottom: 0px;">
 			<el-form :inline="true" :model="filters">
 				<el-form-item>
-					<el-input v-model="filters.realName" placeholder="姓名"></el-input>
+					<el-input v-model="filters.realName" placeholder="真实姓名">
+						<template slot="prepend">姓名</template>
+					</el-input>
 				</el-form-item>
 				<el-form-item>
-					<el-input v-model="filters.userName" placeholder="账号"></el-input>
+					<el-input v-model="filters.userName" placeholder="登录账号">
+						<template slot="prepend">账号</template>
+					</el-input>
 				</el-form-item>
 				<el-form-item>
-					<el-button type="primary" v-on:click="getUsers">查询</el-button>
+					<el-button type="primary" v-on:click="getUsers" icon="el-icon-search">查询</el-button>
 				</el-form-item>
 				<el-form-item>
-					<el-button type="primary" @click="handleAdd">新增</el-button>
+					<el-button type="success" @click="handleAdd" icon="el-icon-document">新增</el-button>
 				</el-form-item>
 			</el-form>
 		</el-col>
@@ -23,7 +27,7 @@
 				  @selection-change="selsChange"
 				  tooltip-effect="dark"
 				  style="border-radius: 10px 10px 0px 0px;line-height: 25px;"
-				  :header-cell-style="{background:'#6F8294',color:'#FFFFFF'}" size="small">
+				  :header-cell-style="{background:'#6F8294',color:'#FFFFFF'}" >
 			<el-table-column type="selection" width="55">
 			</el-table-column>
 			<!--<el-table-column type="index" width="60">-->
@@ -42,17 +46,17 @@
 			</el-table-column>
 			<el-table-column prop="updatetime" label="更新时间" width="170" sortable>
 			</el-table-column>
-			<el-table-column prop="address" label="地址" min-width="180">
-			</el-table-column>
-			<el-table-column prop="email" label="Email" min-width="180">
-			</el-table-column>
+<!--			<el-table-column prop="address" label="地址" min-width="180">-->
+<!--			</el-table-column>-->
+<!--			<el-table-column prop="email" label="Email" min-width="180">-->
+<!--			</el-table-column>-->
 			<el-table-column prop="state" label="启用" width="100" :formatter="formatState" sortable>
 			</el-table-column>
 			<el-table-column label="操作" width="250" fixed="right">
 				<template slot-scope="scope">
-					<el-button size="small" @click="roleEdit(scope.$index, scope.row)">角色配置</el-button>
-					<el-button size="small" @click="handleEdit(scope.$index, scope.row)">编辑</el-button>
-					<el-button type="danger" size="small" @click="handleDel(scope.$index, scope.row)">删除</el-button>
+					<el-button  @click="handleEdit(scope.$index, scope.row)">编辑</el-button>
+					<el-button type="info" @click="roleEdit(scope.$index, scope.row)">角色配置</el-button>
+					<el-button type="danger"  @click="handleDel(scope.$index, scope.row)">删除</el-button>
 				</template>
 			</el-table-column>
 		</el-table>
@@ -64,124 +68,126 @@
 			</el-pagination>
 		</el-col>
 
-		<!--编辑界面-->
-		<el-dialog title="编辑" :visible.sync="editFormVisible" :close-on-click-modal="false">
-			<el-form :model="editForm" label-width="80px" :rules="editFormRules" ref="editForm">
-
-				<el-form-item label="所属公司" prop="companyId">
-					<el-select v-model="editForm.companyId" filterable placeholder="请选择">
-						<el-option
-								v-for="item in options"
-								:key="item.roleId"
-								:label="item.roleName"
-								:value="item.roleId">
-						</el-option>
-					</el-select>
-				</el-form-item>
+		<!--新增界面-->
+		<el-dialog :title="dialogMap[dialogStatus]" :visible.sync="addFormVisible" :close-on-click-modal="false">
+			<el-form :model="addForm" label-width="80px" ref="addForm" class="user-form">
+<!--				<el-form-item label="所属公司" prop="companyId">-->
+<!--					<el-select v-model="addForm.companyId" filterable placeholder="请选择">-->
+<!--						<el-option-->
+<!--								v-for="item in options"-->
+<!--								:key="item.roleId"-->
+<!--								:label="item.roleName"-->
+<!--								:value="item.roleId">-->
+<!--						</el-option>-->
+<!--					</el-select>-->
+<!--				</el-form-item>-->
 				<el-form-item label="ID">
-					<span>{{editForm.userId}}</span>
-				</el-form-item>
-				<el-form-item label="账号">
-					<span>{{editForm.username}}</span>
-				</el-form-item>
-				<el-form-item label="密码" prop="password">
-					<el-input v-model="editForm.password" auto-complete="off"  type="password" show-password></el-input>
-				</el-form-item>
-				<el-form-item label="姓名" prop="realname">
-					<el-input v-model="editForm.realname" auto-complete="off"></el-input>
-				</el-form-item>
-				<el-form-item label="电话" prop="mobilephone">
-					<el-input v-model="editForm.mobilephone" auto-complete="off"></el-input>
-				</el-form-item>
-				<el-form-item label="Email" prop="email">
-					<el-input v-model="editForm.email" auto-complete="off"></el-input>
-				</el-form-item>
-				<el-form-item label="性别">
-					<el-radio-group v-model="editForm.sex">
-						<el-radio class="radio" label="1" >男</el-radio>
-						<el-radio class="radio" label="0" >女</el-radio>
-					</el-radio-group>
-				</el-form-item>
-				<el-form-item label="年龄">
-					<el-input-number v-model="editForm.age" :min="0" :max="200"></el-input-number>
-				</el-form-item>
-				<!--<el-form-item label="创建日期">-->
-					<!--<el-date-picker type="date" placeholder="创建日期" v-model="editForm.creattime" value-format="yyyy-MM-dd HH:mm:ss" format="yyyy-MM-dd HH:mm:ss"></el-date-picker>-->
-				<!--</el-form-item>-->
-				<el-form-item label="地址">
-					<el-input type="textarea" v-model="editForm.address"></el-input>
+					<span>{{addForm.userId}}</span>
 				</el-form-item>
-				<el-form-item label="启用">
-					<el-radio-group v-model="editForm.state">
-						<el-radio class="radio" label="true" >是</el-radio>
-						<el-radio class="radio" label="false" >否</el-radio>
-					</el-radio-group>
-				</el-form-item>
-				<el-form-item lable="头像">
-					<el-upload
-							class="avatar-uploader"
-							action="http://127.0.0.1:7003/upload"
-							:show-file-list="true"
-							accept="image/jpeg,image/jpg,image/png"
-							:on-success="handleAvatarSuccess"
-							:before-upload="beforeAvatarUpload"
+				<el-row>
+					<el-col :span="12">
+						<el-form-item label=" " prop="username" :rules="addFormRules.username">
+							<el-input v-model="addForm.username" aria-placeholder="用户名长度在5-11位,支持英文和数字">
+								<template slot="prepend">账&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;号</template>
+							</el-input>
+						</el-form-item>
+					</el-col>
+					<el-col :span="12">
+						<el-form-item label=" " prop="realname">
+							<el-input v-model="addForm.realname">
+								<template slot="prepend">姓&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;名</template>
+							</el-input>
+						</el-form-item>
+					</el-col>
+				</el-row>
+				<el-row>
+					<el-col :span="12">
+						<el-form-item label=" " prop="password" :rules="dialogStatus==='update'?[{ required: false}]:addFormRules.password">
+							<el-input v-model="addForm.password" type="password" show-password :disabled="dialogStatus==='update'">
+								<template slot="prepend">密&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;码</template>
+							</el-input>
+						</el-form-item>
+					</el-col>
+					<el-col :span="12">
+						<el-form-item label=" " prop="checkPass" :rules="dialogStatus==='update'?[{ required: false}]:addFormRules.checkPass">
+							<el-input v-model="addForm.checkPass" type="password" show-password :disabled="dialogStatus==='update'">
+								<template slot="prepend">确认密码</template>
+							</el-input>
+						</el-form-item>
+					</el-col>
+				</el-row>
+				<el-row>
+					<el-col :span="12">
+						<el-form-item label=" " prop="email">
+							<el-input v-model="addForm.email">
+								<template slot="prepend">Email&nbsp;&nbsp;&nbsp;&nbsp;</template>
+							</el-input>
+						</el-form-item>
+					</el-col>
+					<el-col :span="12">
+						<el-form-item label=" " prop="address">
+							<el-input v-model="addForm.address">
+								<template slot="prepend">地&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;址</template>
+							</el-input>
+						</el-form-item>
+					</el-col>
+				</el-row>
+				<el-row>
+					<el-col :span="12">
+						<el-form-item label=" " prop="mobilephone">
+							<el-input v-model="addForm.mobilephone">
+								<template slot="prepend">电&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;话</template>
+							</el-input>
+						</el-form-item>
+					</el-col>
+				</el-row>
+				<el-divider></el-divider>
+				<el-row>
+					<el-col :span="12">
+						<el-form-item label="性别" prop="sex">
+							<el-radio-group v-model="addForm.sex">
+								<el-radio class="radio" :label="1">男</el-radio>
+								<el-radio class="radio" :label="0">女</el-radio>
+							</el-radio-group>
+						</el-form-item>
+					</el-col>
+					<el-col :span="12">
+						<el-form-item label="启用" prop="state">
+							<el-radio-group v-model="addForm.state">
+								<el-radio class="radio" :label="true" >是</el-radio>
+								<el-radio class="radio" :label="false" >否</el-radio>
+							</el-radio-group>
+						</el-form-item>
+					</el-col>
+				</el-row>
+				<el-row>
+					<el-col :span="24">
+						<el-form-item label="年龄" prop="age">
+							<el-input-number v-model="addForm.age" :min="0" :max="200"></el-input-number>
+						</el-form-item>
+					</el-col>
+				</el-row>
+				<el-row>
+					<el-col :span="24">
+						<el-form-item lable="头像" prop="userface">
+							<el-upload
+									class="avatar-uploader"
+									action="http://127.0.0.1:7003/upload"
+									:show-file-list="true"
+									accept="image/jpeg,image/jpg,image/png"
+									:on-success="handleAvatarSuccess"
+									:before-upload="beforeAvatarUpload"
 							>
-						<img v-if="faceImageUrl" :src="faceImageUrl" class="avatar">
-						<i v-else class="el-icon-plus avatar-uploader-icon"></i>
-					</el-upload>
-				</el-form-item>
-			</el-form>
-			<div slot="footer" class="dialog-footer">
-				<el-button @click.native="editFormVisible = false">取消</el-button>
-				<el-button type="primary" @click.native="editSubmit" :loading="editLoading">提交</el-button>
-			</div>
-		</el-dialog>
-
-		<!--新增界面-->
-		<el-dialog title="新增" :visible.sync="addFormVisible" :close-on-click-modal="false">
-			<el-form :model="addForm" label-width="80px" :rules="addFormRules" ref="addForm">
-
-				<el-form-item label="所属公司" prop="companyId">
-					<el-select v-model="addForm.companyId" filterable placeholder="请选择">
-						<el-option
-								v-for="item in options"
-								:key="item.roleId"
-								:label="item.roleName"
-								:value="item.roleId">
-						</el-option>
-					</el-select>
-				</el-form-item>
-				<el-form-item label="账号" prop="username">
-					<el-input v-model="addForm.username" aria-placeholder="用户名长度在5-11位,支持英文和数字"></el-input>
-				</el-form-item>
-				<el-form-item label="密码" prop="password">
-					<el-input v-model="addForm.password" type="password"></el-input>
-				</el-form-item>
-				<el-form-item label="姓名" prop="realname">
-					<el-input v-model="addForm.realname"></el-input>
-				</el-form-item>
-				<el-form-item label="电话" prop="mobilephone">
-					<el-input v-model="addForm.mobilephone"></el-input>
-				</el-form-item>
-				<el-form-item label="Email" prop="email">
-					<el-input v-model="addForm.email"></el-input>
-				</el-form-item>
-				<el-form-item label="性别">
-					<el-radio-group v-model="addForm.sex">
-						<el-radio class="radio" label="1">男</el-radio>
-						<el-radio class="radio" label="0">女</el-radio>
-					</el-radio-group>
-				</el-form-item>
-				<el-form-item label="年龄" prop="age">
-				<el-input-number v-model="addForm.age" :min="0" :max="200"></el-input-number>
-				</el-form-item>
-				<el-form-item label="地址">
-					<el-input type="textarea" v-model="addForm.address"></el-input>
-				</el-form-item>
+								<img v-if="faceImageUrl" :src="faceImageUrl" class="avatar">
+								<i v-else class="el-icon-plus avatar-uploader-icon"></i>
+							</el-upload>
+						</el-form-item>
+					</el-col>
+				</el-row>
 			</el-form>
 			<div slot="footer" class="dialog-footer">
 				<el-button @click.native="addFormVisible = false">取消</el-button>
-				<el-button type="primary" @click.native="addSubmit" :loading="addLoading">提交</el-button>
+				<el-button type="primary" @click.native="dialogStatus==='create'?addSubmit():editSubmit()" :loading="addLoading">提交</el-button>
 			</div>
 		</el-dialog>
 
@@ -215,6 +221,16 @@
     import moment from 'moment'
 	export default {
 		data() {
+			var validatePass = (rule, value, callback) => {
+				if (value === '') {
+					callback(new Error('请输入密码'));
+				} else {
+					if (this.checkPass !== '') {
+						this.$refs.addForm.validateField('checkPass');
+					}
+					callback();
+				}
+			};
 			return {
 				filters: {
                     userName: '',
@@ -224,6 +240,11 @@
                     children: 'children',
                     label: 'roleName',
                 },
+				dialogMap: {
+					update: '编辑',
+					create: '新增',
+				},
+				dialogStatus: 'create',
 				users: [],
 				total: 0,
                 pageNum: 1,
@@ -232,28 +253,6 @@
 				listLoading: false,
 				sels: [],//列表选中列
 				//编辑界面是否显示
-				editFormVisible: false,
-				editLoading: false,
-				editFormRules: {
-					name: [
-						{ required: true, message: '请输入姓名', trigger: 'blur' }
-					]
-				},
-				//编辑界面数据
-				editForm: {
-                    userId: 1,
-                    username: '',
-					password: '',
-                    sex: 1,
-                    creattime: '',
-                    address: '',
-					realname: '',
-					email:	'',
-					mobilephone: '',
-					state: 'true',
-					companyId:''
-				},
-
 				addFormVisible: false,//新增界面是否显示
 				addLoading: false,
 				addFormRules: {
@@ -263,14 +262,17 @@
 					password: [
 						{ required: true, message: '请输入密码,用户名长度在6-18位,支持英文和数字和非空字符', trigger: 'blur'}
 					],
-					companyId: [
-						{ required: true, message: '请选择所属您的所属公司', trigger: 'blur' },
+					checkPass: [
+						{ required: true, message: '请输入密码,用户名长度在6-18位,支持英文和数字和非空字符', trigger: 'blur'}
 					]
 				},
 				//用户角色配置
                 roleFormVisible: false,
 				//新增界面数据
+
 				addForm: {
+					checkPass:'',
+					userId: 0,
                     username: '',
                     password: '',
                     sex: 1,
@@ -279,7 +281,7 @@
                     email:	'',
                     mobilephone: '',
 					age: 1,
-					companyId:''
+					state: true
 				},
                 roleEditForm: {
                     userId: 1,
@@ -288,8 +290,7 @@
 				},
 				roles: [],
                 roleIds: [],
-				options: []
-
+				options: [],
 			}
 		},
 		methods: {
@@ -367,8 +368,9 @@
              * @param row 为这行的数据对象
              */
 			handleEdit: function (index, row) {
-				this.editFormVisible = true;
-				this.editForm = Object.assign({}, row);
+				this.addFormVisible = true;
+				this.dialogStatus= 'update',
+				this.addForm = Object.assign({}, row);
 			},
             roleEdit: function (index, row) {
                 this.roleFormVisible = true;
@@ -414,30 +416,33 @@
 			//显示新增界面,每次点开初始化数据
 			handleAdd: function () {
 				this.addFormVisible = true;
+				this.dialogStatus= 'create',
 				this.addForm = {
                     username: '',
                     password: '',
+					checkPass: '',
                     sex: 1,
                     address: '',
                     realname: '',
                     email:	'',
                     mobilephone: '',
                     age: 1,
-					companyId:''
+					state: true
 				};
 			},
 			//编辑
 			editSubmit: function () {
-				this.$refs.editForm.validate((valid) => {
+				this.$refs.addForm.validate((valid) => {
 					if (valid) {
 						this.$confirm('确认提交吗?', '提示', {}).then(() => {
 							this.editLoading = true;
 							//NProgress.start();
-							let para = Object.assign({}, this.editForm);
+							let para = Object.assign({}, this.addForm);
 							//不需要提交的 去掉,后端不好接收
 							para.authorities = null;
 							para.permissions = null;
 							para.roles = null;
+							this.$delete(para,'checkPass')
 //							para.birth = (!para.birth || para.birth == '') ? '' : util.formatDate.format(new Date(para.birth), 'yyyy-MM-dd');
                             /*
         					查询之后格式this.filters.column.create_start_date中日期发生变化;
@@ -455,8 +460,8 @@
 									message: '提交成功',
 									type: 'success'
 								});
-								this.$refs['editForm'].resetFields();
-								this.editFormVisible = false;
+								this.$refs['addForm'].resetFields();
+								this.addFormVisible = false;
 								this.getUsers();
 							}).catch(error => alert(error));
 						});
@@ -470,6 +475,7 @@
 						this.$confirm('确认提交吗?', '提示', {}).then(() => {
 							this.addLoading = true;
 							let para = Object.assign({}, this.addForm);
+							this.$delete(para,'checkPass')
 //							para.birth = (!para.birth || para.birth == '') ? '' : util.formatDate.format(new Date(para.birth), 'yyyy-MM-dd');
 							addUser(para).then((res) => {
 								this.addLoading = false;
@@ -557,7 +563,7 @@
 		},
 		mounted() {
 			this.getUsers();
-			this.getCompanyNmae();
+			// this.getCompanyNmae();
 		},
 		computed: {
             hideShow() {//当图片多于一张的时候,就隐藏上传框
@@ -568,6 +574,17 @@
 
 </script>
 
-<style scoped>
+<style lang="scss">
+	.user-form{
+		.el-form-item__label{
+			font-size: 12px;
+		}
+		.el-form-item__content{
+			width: 260px;
+			.el-textarea{
+				width:100%;
+			}
+		}
+	}
 
 </style>
diff --git a/src/views/nav3/Dispatch.vue b/src/views/nav3/Dispatch.vue
deleted file mode 100644
index 09d9f45..0000000
--- a/src/views/nav3/Dispatch.vue
+++ /dev/null
@@ -1,725 +0,0 @@
-<template>
-    <el-container>
-        <el-main>
-            <el-card style="background-color: #F5F7FA">
-                <!-- 搜素区域 -->
-                <div>
-                    <el-form :model="queryInfo" :rules="queryFormRules" ref="queryFormRef" status-icon>
-                        <el-form-item>
-                            <el-col :span="4">
-                                <el-form-item prop="gmtCreate">
-                                    <el-date-picker v-model="queryInfo.gmtCreate" type="date" value-format="yyyy-MM-dd"
-                                                    placeholder="选择创建调度时间"
-                                                    style="width: 200px"></el-date-picker>
-                                </el-form-item>
-                            </el-col>
-                            <el-col :span="4" style="margin-left: 50px">
-                                <el-form-item prop="dispatchType">
-                                    <el-select v-model="queryInfo.dispatchType" placeholder="请选择业务类型"
-                                               style="width: 200px"
-                                               clearable>
-                                        <el-option
-                                                v-for="item in dispatchTypeList"
-                                                :key="item.value"
-                                                :label="item.label"
-                                                :value="item.value">
-                                        </el-option>
-                                    </el-select>
-                                </el-form-item>
-                            </el-col>
-                            <el-col :span="4" style="margin-left: 50px">
-                                <el-form-item prop="status">
-                                    <el-select v-model="queryInfo.status" placeholder="记录状态" clearable
-                                               style="width:200px;margin-left: 6px">
-                                        <el-option
-                                                v-for="item in statusList"
-                                                :key="item.value"
-                                                :label="item.label"
-                                                :value="item.value">
-                                        </el-option>
-                                    </el-select>
-                                </el-form-item>
-                            </el-col>
-                            <el-button type="primary" style="margin-left: 60px"
-                                       @click="getDispatchNodeList">查询调度记录
-                            </el-button>
-                            <el-button type="success" style="margin-left: 15px" @click="dispatchFormVisible = true">
-                                我要调度车辆
-                            </el-button>
-                        </el-form-item>
-                    </el-form>
-                    <el-row style="margin-top: 20px;">
-                    </el-row>
-                </div>
-                <!--调度记录列表区域-->
-                <div style="margin-top: 20px;">
-                    <el-table :data="DispatchNoteList" border highlight-current-row v-loading="listLoading"
-                              :row-class-name="rowStatus"
-                              element-loading-text="拼命加载中">
-                        <el-table-column type="index" align="center"></el-table-column>
-                        <el-table-column label="用户名称" prop="userName" align="center" width="100"></el-table-column>
-                        <el-table-column label="联系方式" prop="userMobile" align="center" width="120"></el-table-column>
-                        <el-table-column label="状态" prop="status" align="center" width="120">
-                            <template slot-scope="scope">
-                                <span v-if="scope.row.status ==='1'">完成状态</span>
-                                <span v-if="scope.row.status ==='2'">执行状态</span>
-                                <span v-if="scope.row.status ==='3'">取消状态</span>
-                                <span v-if="scope.row.status ==='4'">待执行状态</span>
-                            </template>
-                        </el-table-column>
-                        <el-table-column label="业务类型" prop="dispatchType" align="center" width="120">
-                            <template slot-scope="scope">
-                                <span v-if="scope.row.dispatchType ==='1'">进站送货</span>
-                                <span v-if="scope.row.dispatchType ==='2'">出站提货</span>
-                                <span v-if="scope.row.dispatchType ==='3'">货物调拨</span>
-                                <span v-if="scope.row.dispatchType ==='4'">货物流转</span>
-                            </template>
-                        </el-table-column>
-                        <el-table-column label="车牌号码" prop="licensePlateNumber" align="center"
-                                         width="120"></el-table-column>
-                        <el-table-column label="车辆类型" prop="vehicleType" align="center" width="120">
-                            <template slot-scope="scope">
-                                <span v-if="scope.row.vehicleType ==='1'">重型货车</span>
-                                <span v-if="scope.row.vehicleType ==='2'">中型货车</span>
-                                <span v-if="scope.row.vehicleType ==='3'">轻型货车</span>
-                                <span v-if="scope.row.vehicleType ==='4'">微型货车</span>
-                                <span v-if="scope.row.vehicleType ==='5'">拖车</span>
-                                <span v-if="scope.row.vehicleType ==='6'">叉车</span>
-                            </template>
-                        </el-table-column>
-                        <el-table-column label="场站位置" prop="station" align="center" width="120">
-                            <template slot-scope="scope">
-                                <span v-if="scope.row.station ==='1'">西货站</span>
-                                <span v-if="scope.row.station ==='2'">综保区</span>
-                                <span v-if="scope.row.station ==='3'">军投</span>
-                                <span v-if="scope.row.station ==='4'">快邮</span>
-                            </template>
-                        </el-table-column>
-                        <el-table-column label="创建时间" prop="gmtCreate" align="center" width="160"></el-table-column>
-                        <el-table-column label="开始时间" prop="beginTime" align="center" width="160"></el-table-column>
-                        <el-table-column label="完成时间" prop="endTime" align="center" width="160"></el-table-column>
-                        <el-table-column label="操作" width="220px" fixed="right" align="center">
-                            <template slot-scope="scope">
-                                <!--查看按钮-->
-                                <el-tooltip effect="dark" content="查看" placement="top-start" :enterable="false">
-                                    <el-button type="primary" icon="el-icon-edit" size="mini"
-                                               @click="showDialogVisible(scope.row)">查看
-                                    </el-button>
-                                </el-tooltip>
-                                <!--取消调度按钮-->
-                                <el-tooltip effect="dark" content="取消调度" placement="top-start" :enterable="false">
-                                    <el-button type="danger" icon="el-icon-delete" size="mini"
-                                               :disabled="scope.row.endTime!==null && scope.row.endTime!==''"
-                                               @click="cancelDispatch(scope.row)" :loading="cancelLoading">取消调度
-                                    </el-button>
-                                </el-tooltip>
-                            </template>
-                        </el-table-column>
-                    </el-table>
-                    <!--分页区域-->
-                    <div style="margin-top: 10px">
-                        <el-pagination
-                                @size-change="handleSizeChange"
-                                @current-change="handleCurrentChange"
-                                :current-page="this.queryInfo.pageNum"
-                                :page-sizes="[10,20,30,50]"
-                                :page-size="this.queryInfo.pageSize"
-                                layout="total, sizes, prev, pager, next, jumper"
-                                :total="total">
-                        </el-pagination>
-                    </div>
-                </div>
-            </el-card>
-            <!-- 我要调度车辆,对话框 -->
-            <div>
-                <el-dialog
-                        title="我要调度车辆"
-                        :visible.sync="dispatchFormVisible"
-                        width="50%" @close="dispatchDialogClosed">
-                    <!--  :rules="dispatchFormRules" ref="dispatchFormRef"-->
-                    <el-form :model="dispatchForm" label-width="100px" status-icon
-                             :rules="dispatchFormRules" ref="dispatchFormRef"
-                             style="margin-left:10%;margin-right:10%;background-color: #F5F7FA">
-                        <br>
-                        <el-form-item label="车辆类型:" prop="vehicleType">
-                            <el-select v-model="dispatchForm.vehicleType" style="width: 300px" clearable
-                                       placeholder="请选择车辆类型">
-                                <el-option
-                                        v-for="item in vehicleTypeList"
-                                        :key="item.value"
-                                        :label="item.label"
-                                        :value="item.value">
-                                </el-option>
-                            </el-select>
-                        </el-form-item>
-                        <el-form-item label="车辆数量:" prop="vehicleNumber">
-                            <el-input-number style="width: 200px" v-model="dispatchForm.vehicleNumber"
-                                             :min="1" :max="100" controls-position="right">
-                            </el-input-number>
-                            <span style="margin-left:5px;font-size: 18px">辆</span>
-                        </el-form-item>
-                        <el-form-item label="场站位置:" prop="station">
-                            <el-select v-model="dispatchForm.station" style="width: 300px" clearable
-                                       placeholder="请选择场站位置">
-                                <el-option
-                                        v-for="item in stationList"
-                                        :key="item.value"
-                                        :label="item.label"
-                                        :value="item.value">
-                                </el-option>
-                            </el-select>
-                        </el-form-item>
-                        <el-form-item label="业务类型:" prop="dispatchType">
-                            <el-select v-model="dispatchForm.dispatchType" style="width: 300px;" clearable
-                                       placeholder="请选择业务类型">
-                                <el-option
-                                        v-for="item in dispatchTypeList"
-                                        :key="item.value"
-                                        :label="item.label"
-                                        :value="item.value">
-                                </el-option>
-                            </el-select>
-                        </el-form-item>
-                        <br>
-                    </el-form>
-                    <!--底部按钮区域-->
-                    <span slot="footer" class="dialog-footer">
-                        <el-button @click="dispatchFormVisible = false">取 消</el-button>
-                        <el-button type="primary" @click="dispatchVehicle" :loading="dispatchLoading">确定调度车辆</el-button>
-                    </span>
-                </el-dialog>
-            </div>
-            <!-- 查看调度记录,对话框 -->
-            <div>
-                <el-dialog
-                        style="margin-top: -50px"
-                        title="查看调度记录明细"
-                        :visible.sync="viewDialogVisible"
-                        text-align="center"
-                        width="60%" @close="showDialogClosed">
-                    <!-- 表单显示区域 :rules="dispatchFormRules" -->
-                    <el-form :model="showForm" ref="showFormRef"
-                             :inline="true" align="center"
-                             style="background-color: #F5F7FA;margin-left: 5%;margin-right: 5%">
-                        <div style="margin-top: -15px">
-                            <br>
-                            <el-form-item label="用户名称:" prop="userName">
-                                <el-input v-model="showForm.userName" style="width: 200px;" size="small"
-                                          readonly></el-input>
-                            </el-form-item>
-                            <el-form-item label="联系方式:" prop="userMobile">
-                                <el-input v-model="showForm.userMobile" style="width: 200px;" size="small"
-                                          readonly></el-input>
-                            </el-form-item>
-                            <el-form-item label="车辆类型:" prop="vehicleType">
-                                <el-select v-model="showForm.vehicleType" style="width:200px" size="small" readonly
-                                           placeholder="请选择车辆类型">
-                                    <el-option
-                                            v-for="item in vehicleTypeList"
-                                            :key="item.value"
-                                            :label="item.label"
-                                            :value="item.value">
-                                    </el-option>
-                                </el-select>
-                            </el-form-item>
-                            <el-form-item label="车牌号码:" prop="licensePlateNumber">
-                                <el-input v-model="showForm.licensePlateNumber" style="width: 200px;" size="small"
-                                          readonly></el-input>
-                            </el-form-item>
-                            <el-form-item label="场站位置:" prop="station">
-                                <el-select v-model="showForm.station" style="width:200px" readonly size="small"
-                                           placeholder="请选择场站位置">
-                                    <el-option
-                                            v-for="item in stationList"
-                                            :key="item.value"
-                                            :label="item.label"
-                                            :value="item.value">
-                                    </el-option>
-                                </el-select>
-                            </el-form-item>
-                            <el-form-item label="业务类型:" prop="dispatchType">
-                                <el-select v-model="showForm.dispatchType" style="width:200px" readonly size="small"
-                                           placeholder="请选择业务类型">
-                                    <el-option
-                                            v-for="item in dispatchTypeList"
-                                            :key="item.value"
-                                            :label="item.label"
-                                            :value="item.value">
-                                    </el-option>
-                                </el-select>
-                            </el-form-item>
-                            <el-form-item label="创建时间:" prop="gmtCreate">
-                                <el-input v-model="showForm.gmtCreate" style="width: 200px;" size="small"
-                                          readonly></el-input>
-                            </el-form-item>
-                            <el-form-item label="开始时间:" prop="beginTime">
-                                <el-input v-model="showForm.beginTime" style="width: 200px;" size="small"
-                                          readonly></el-input>
-                            </el-form-item>
-                            <el-form-item label="结束时间:" prop="endTime">
-                                <el-input v-model="showForm.endTime" style="width: 200px;" size="small"
-                                          readonly></el-input>
-                            </el-form-item>
-                            <el-form-item label="记录状态:" prop="status">
-                                <el-select v-model="showForm.status" placeholder="记录状态" style="width:200px" size="small"
-                                           readonly>
-                                    <el-option
-                                            v-for="item in statusList"
-                                            :key="item.value"
-                                            :label="item.label"
-                                            :value="item.value">
-                                    </el-option>
-                                </el-select>
-                            </el-form-item>
-                            <br>
-                        </div>
-                    </el-form>
-                    <!--底部按钮区域-->
-                    <span slot="footer" class="dialog-footer">
-                        <el-button type="primary" @click="viewDialogVisible = false">结束查看</el-button>
-                    </span>
-                </el-dialog>
-            </div>
-        </el-main>
-    </el-container>
-</template>
-
-<script>
-    // import {selectDispatchNoteList, dispatch, cancel, getUser} from '../../api/dispatch_api'
-
-    export default {
-        name: 'dispatch_api',
-        created() {
-
-        },
-        data() {
-            /**
-             * 验证手机号的自定义规则
-             */
-            var userMobileValid = (rule, value, callback) => {
-                //验证手机号的正则表达式
-                const regMobile = /^(0|86|17951)?(13[0-9]|15[0123456789]|17[678]|18[0-9]|14[57])[0-9]{8}$/;
-                if (regMobile.test(value)) {
-                    //合法的手机号
-                    return callback();
-                }
-                callback(new Error('请输入合法的手机号'));
-            };
-            return {
-                /**
-                 * 查询列表
-                 */
-                queryInfo: {
-                    //用户姓名
-                    userName: '',
-                    //用户联系方式
-                    userMobile: '',
-                    //记录状态
-                    status: '',
-                    //调度时间
-                    gmtCreate: new Date(),
-                    //业务类型
-                    dispatchType: '',
-                    //当前的页数
-                    pageNum: 1,
-                    //当前每页显示多少条数据
-                    pageSize: 10
-                },
-                /**
-                 * 记录列表,总条数
-                 */
-                total: 0,
-                /**
-                 * 所有,调度记录列表
-                 */
-                DispatchNoteList: [],
-                /**
-                 * 我要调度车辆,表单
-                 */
-                dispatchForm: {
-                    userName: '',
-                    userMobile: '',
-                    //车辆数量
-                    vehicleNumber: 1,
-                    //车辆类型
-                    vehicleType: '2',
-                    //场站位置
-                    station: '1',
-                    //调度业务类型
-                    dispatchType: '1'
-                },
-
-                /**
-                 * 查看记录明细,表单
-                 */
-                showForm: {},
-                /**
-                 * 控制添加用户对话框的显示与隐藏
-                 */
-                dispatchFormVisible: false,
-                /**
-                 * 控制查看调度记录明细,对话框的显示与隐藏
-                 */
-                viewDialogVisible: false,
-                /**
-                 * loading加载
-                 */
-                /* 获取列表时的加载 */
-                listLoading: false,
-                /* 调度车辆时的加载 */
-                dispatchLoading: false,
-                /* 取消调度时的加载 */
-                cancelLoading: false,
-                /**
-                 * 业务类型,选项列表
-                 */
-                dispatchTypeList: [
-                    {
-                        value: '1',
-                        label: '进站送货'
-                    },
-                    {
-                        value: '2',
-                        label: '出站提货'
-                    },
-                    {
-                        value: '3',
-                        label: '货物流转'
-                    },
-                    {
-                        value: '4',
-                        label: '货物调拨'
-                    }
-                ],
-                /**
-                 * 车辆类型,选项列表
-                 */
-                vehicleTypeList: [
-                    {
-                        value: '1',
-                        label: '重型货车'
-                    },
-                    {
-                        value: '2',
-                        label: '中型货车'
-                    },
-                    {
-                        value: '3',
-                        label: '经济货车'
-                    },
-                    {
-                        value: '4',
-                        label: '微型货车'
-                    },
-                    {
-                        value: '5',
-                        label: '拖车'
-                    },
-                    {
-                        value: '6',
-                        label: '叉车'
-                    }
-                ],
-                /**
-                 * 记录状态,列表
-                 */
-                statusList: [
-                    {
-                        value: '1',
-                        label: '完成状态'
-                    },
-                    {
-                        value: '2',
-                        label: '执行状态'
-                    },
-                    {
-                        value: '3',
-                        label: '取消状态'
-                    },
-                    {
-                        value: '4',
-                        label: '待执行状态'
-                    }
-                ],
-
-                /**
-                 * 场站位置,选项列表
-                 */
-                stationList: [
-                    {
-                        value: '1',
-                        label: '西货站'
-                    },
-                    {
-                        value: '2',
-                        label: '综保区'
-                    },
-                    {
-                        value: '3',
-                        label: '军投'
-                    },
-                    {
-                        value: '4',
-                        label: '快邮'
-                    }
-                ],
-
-                queryFormRules: {
-                    userName: [
-                        {required: true, message: '请输入姓名', trigger: ['blur', 'change']},
-                    ],
-                    userMobile: [
-                        {required: true, message: '请输入联系方式', trigger: ['blur', 'change']},
-                        {validator: userMobileValid, trigger: 'blur'}
-                    ],
-                },
-                /**
-                 * 调度车辆表单的验证规则对象
-                 */
-                dispatchFormRules: {
-                    status: [
-                        {required: true, message: '请选择记录状态', trigger: ['blur', 'change']},
-                    ],
-                    gmtCreate: [
-                        {required: true, message: '请选择创建时间', trigger: ['blur', 'change']},
-                    ],
-                    endTime: [
-                        {required: true, message: '请选择结束时间', trigger: ['blur', 'change']},
-                    ],
-                    licensePlateNumber: [
-                        {required: true, message: '请输入车牌号', trigger: ['blur', 'change']},
-                    ],
-                    userName: [
-                        {required: true, message: '请输入姓名', trigger: ['blur', 'change']},
-                    ],
-                    userMobile: [
-                        {required: true, message: '请输入联系方式', trigger: ['blur', 'change']},
-                        {validator: userMobileValid, trigger: 'blur'}
-                    ],
-                    vehicleType: [
-                        {required: true, message: '请选择车辆类型', trigger: ['blur', 'change']},
-
-                    ],
-                    vehicleNumber: [
-                        {required: true, message: '请选择车辆数量', trigger: ['blur', 'change']},
-                    ],
-                    station: [
-                        {required: true, message: '请选择场站位置', trigger: ['blur', 'change']},
-                    ],
-                    dispatchType: [
-                        {required: true, message: '请选择调度业务类型', trigger: ['blur', 'change']},
-                    ],
-                },
-            }
-        },
-        methods: {
-            /**
-             * 监听,调度车辆对话框的关闭事件
-             */
-            dispatchDialogClosed() {
-                //重置对话框
-                this.$refs.dispatchFormRef.resetFields();
-            },
-
-            /**
-             * 监听,查看调度记录对话框的关闭事件
-             */
-            showDialogClosed() {
-                //重置对话框
-                this.$refs.showFormRef.resetFields();
-            },
-
-            /**
-             * 监听pageSize改变的事件
-             */
-            handleSizeChange(newSize) {
-                this.queryInfo.pageSize = newSize;
-                //刷新调度记录列表
-                this.getDispatchNodeList();
-            },
-            /**
-             * 监听当前页码值改变的事件
-             */
-            handleCurrentChange(newPage) {
-                this.queryInfo.pageNum = newPage;
-                //刷新调度记录列表
-                this.getDispatchNodeList();
-            },
-            /**
-             * 打开,查看调度记录明细,对话框
-             * @param row
-             */
-            showDialogVisible(row) {
-                this.showForm = row;
-                this.viewDialogVisible = true;
-            },
-            /**
-             * 用户端,获取车辆调度记录
-             */
-            getDispatchNodeList() {
-                this.listLoading = true;
-                selectDispatchNoteList(this.queryInfo).then((response) => {
-                    let res = response.data;
-                    if (res.code !== '200') {
-                        this.listLoading = false;
-                        return this.$message.error('获取车辆调度列表失败');
-                    }
-                    // 获取车辆调度列表数据
-                    this.DispatchNoteList = res.data.list;
-                    // 获取列表的总记录数
-                    this.total = res.data.total;
-                    this.listLoading = false;
-                    this.$message.success('获取车辆调度列表,成功!');
-                }).catch(error => {
-                    this.listLoading = false;
-                    this.$message.error(error.toString());
-                });
-            },
-            /**
-             * 用户端,我要调度车辆,方法
-             */
-            dispatchVehicle() {
-                this.dispatchLoading = true;
-                dispatch(this.dispatchForm).then((response) => {
-                    let res = response.data;
-                    if (res.code !== '200') {
-                        this.dispatchLoading = false;
-                        return this.$message.error('车辆繁忙,请稍后重试');
-                    }
-                    //关闭加载
-                    this.dispatchLoading = false;
-                    this.$message.success('调度车辆成功!');
-                    //调度成功,隐藏对话框
-                    this.dispatchFormVisible = false;
-                    /* 将调度车辆信息=>查询列表 */
-                    // 用户名称
-                    this.queryInfo.userName = this.dispatchForm.userName;
-                    // 联系方式
-                    this.queryInfo.userMobile = this.dispatchForm.userMobile;
-                    // 调度业务类型
-                    this.queryInfo.dispatchType = this.dispatchForm.dispatchType;
-                    // 创建时间为当前时间(需留意)
-                    this.queryInfo.gmtCreate = new Date();
-                    //刷新车辆调度列表
-                    this.getDispatchNodeList();
-                }).catch(error => {
-                    this.dispatchLoading = false;
-                    this.$message.error(error.toString());
-                });
-            },
-            /**
-             * 用户端,取消调度车辆,方法
-             */
-            cancelDispatch(row) {
-                //弹框询问是否取消车辆调度
-                this.$confirm('此操作将取消该车辆的调度, 是否继续?', '警告', {
-                        confirmButtonText: '确定取消调度',
-                        cancelButtonText: '取消',
-                        type: 'warning'
-                    }
-                ).then(() => {
-                    //开启加载
-                    this.cancelLoading = true;
-                    cancel(row).then((response) => {
-                        let res = response.data;
-                        if (res.code !== '200') {
-                            this.cancelLoading = false;
-                            return this.$message.error('取消车辆调度,失败!请人工介入');
-                        }
-                        //关闭加载
-                        this.cancelLoading = false;
-                        this.$message.success('取消调度车辆,成功!');
-                        //刷新车辆调度列表
-                        this.getDispatchNodeList();
-                    }).catch(error => {
-                        //关闭加载
-                        this.cancelLoading = false;
-                        this.$message.error(error.toString());
-                    });
-                }).catch(() => {
-                });
-            },
-            /**
-             * 获取用户信息
-             */
-            getUserInfo(param) {
-                getUser(param).then((response) => {
-                    let res = response.data;
-                    if (res.code !== '200') {
-                        return this.$message.error('网络异常,请刷新界面!');
-                    }
-                    if (res.data.list.length === 0) {
-                        return this.$message.error('网络异常,请刷新界面!');
-                    }
-                    if (res.data.list[0].mobilephone === null || res.data.list[0].mobilephone === '') {
-                        return this.$message.error('请填写您的手机号码');
-                    }
-                    this.queryInfo.userMobile = res.data.list[0].mobilephone;
-                    this.dispatchForm.userMobile = res.data.list[0].mobilephone;
-                    this.$message.success('欢迎使用,车辆调度系统!');
-                }).catch((error) => {
-                    this.$message.error(error.toString());
-                });
-            },
-            /**
-             * 根据状态的不同区分颜色
-             *
-             * @param row
-             * @param rowIndex
-             */
-            rowStatus({row, rowIndex}) {
-                if (row.status === '1') {
-                    return 'success-row';
-                }
-                if (row.status === '2') {
-                    return 'run-row';
-                }
-                if (row.status === '3') {
-                    return 'cancel-row';
-                }
-                if (row.status === '4') {
-                    return 'await-row';
-                }
-            }
-        },
-        mounted() {
-            var user = sessionStorage.getItem('user');
-            if (user) {
-                user = JSON.parse(user);
-                console.log(user);
-                this.queryInfo.userName = user.username;
-                this.dispatchForm.userName = user.username;
-                let param = {
-                    userName: this.queryInfo.userName
-                };
-                this.getUserInfo(param);
-            }
-            /**
-             * 渲染完成之后,在获取调度记录列表
-             */
-            // this.getDispatchNodeList();
-        }
-    }
-</script>
-
-<style>
-    /* 完成状态 */
-    .el-table .success-row {
-        background: rgba(64, 158, 255, 0.2);
-    }
-
-    /*  执行状态 */
-    .el-table .run-row {
-        background: rgba(103, 194, 58, 0.2);
-    }
-
-    /*  取消状态 */
-    .el-table .cancel-row {
-        background: rgba(144, 147, 153, 0.2);
-    }
-
-    /*  待执行状态 */
-    .el-table .await-row {
-        background: rgba(230, 162, 60, 0.2);
-    }
-</style>
diff --git a/src/views/nav3/DriverInfo.vue b/src/views/nav3/DriverInfo.vue
deleted file mode 100644
index 7ea7f10..0000000
--- a/src/views/nav3/DriverInfo.vue
+++ /dev/null
@@ -1,654 +0,0 @@
-<template>
-    <el-container>
-        <el-main>
-            <!--面包屑导航区域-->
-            <!--            <div>-->
-            <!--                <el-breadcrumb separator-class="el-icon-arrow-right">-->
-            <!--                    <el-breadcrumb-item :to="{ path: '/' }">首页</el-breadcrumb-item>-->
-            <!--                    <el-breadcrumb-item>车辆调度</el-breadcrumb-item>-->
-            <!--                    <el-breadcrumb-item>驾驶员信息</el-breadcrumb-item>-->
-            <!--                </el-breadcrumb>-->
-            <!--            </div>-->
-            <el-card style="background-color: #F5F7FA">
-                <!--搜索区域-->
-                <div>
-                    <el-row :gutter="24">
-                        <el-col :span="5">
-                            <el-input v-model="queryInfo.driverName" prefix-icon="el-icon-search" clearable
-                                       placeholder="请输入驾驶员姓名"></el-input>
-                        </el-col>
-                        <el-col :span="5">
-                            <el-input v-model="queryInfo.driverMobile" prefix-icon="el-icon-search" clearable
-                                       placeholder="请输入联系方式"></el-input>
-                        </el-col>
-                        <el-col :span="5">
-                            <el-input v-model="queryInfo.driverCompany" prefix-icon="el-icon-search" clearable
-                                      placeholder="请输入公司名称"></el-input>
-                        </el-col>
-                        <el-col :span="5">
-                            <el-select v-model="queryInfo.driverStatus" clearable placeholder="请选择驾驶员状态">
-                                <el-option
-                                        v-for="item in driverStatusList"
-                                        :key="item.value"
-                                        :label="item.label"
-                                        :value="item.value">
-                                </el-option>
-                            </el-select>
-                        </el-col>
-                    </el-row>
-                    <el-row style="margin-top: 20px;">
-                        <el-button type="primary" @click="getDriverInfoList">查询驾驶员信息</el-button>
-                        <el-button type="success" @click="addDriverInfoFormVisible = true">增加驾驶员信息</el-button>
-                    </el-row>
-                </div>
-                <!--驾驶员信息列表区域-->
-                <div style="margin-top: 20px;">
-                    <el-table :data="driverInfoList" border stripe highlight-current-row v-loading="listLoading"
-                              @selection-change="selsChange"
-                              element-loading-text="拼命加载中">
-                        <el-table-column type="selection" width="55" :selectable="isSelectable" align="center"></el-table-column>
-                        <el-table-column type="index" align="center"></el-table-column>
-                        <el-table-column label="姓名" prop="driverName" align="center" width="100"></el-table-column>
-                        <el-table-column label="联系方式" prop="driverMobile" align="center" width="130"></el-table-column>
-                        <el-table-column label="职位" prop="driverPosition" align="center" width="100">
-                            <template slot-scope="scope">
-                                <span v-if="scope.row.driverPosition ==='1'">队长</span>
-                                <span v-if="scope.row.driverPosition ==='2'">班长</span>
-                                <span v-if="scope.row.driverPosition ==='3'">副班长</span>
-                                <span v-if="scope.row.driverPosition ==='4'">员工</span>
-                            </template>
-                        </el-table-column>
-                        <el-table-column label="状态" prop="driverStatus" align="center" width="120">
-                            <template slot-scope="scope">
-                                <span v-if="scope.row.driverStatus ==='1'">空闲状态</span>
-                                <span v-if="scope.row.driverStatus ==='2'">执行状态</span>
-                                <span v-if="scope.row.driverStatus ==='3'">轮休状态</span>
-                                <span v-if="scope.row.driverStatus ==='4'">请假状态</span>
-                            </template>
-                        </el-table-column>
-                        <el-table-column label="驾驶证" prop="driverLicenseNumber" align="center"
-                                         width="200"></el-table-column>
-                        <el-table-column label="工号" prop="jobNumber" align="center" width="150"></el-table-column>
-                        <el-table-column label="公司" prop="driverCompany" align="center" width="160"></el-table-column>
-                        <el-table-column label="操作" width="220px" align="center" fixed="right">
-                            <template slot-scope="scope">
-                                <!--查看按钮-->
-                                <el-tooltip effect="dark" content="编辑" placement="top-start" :enterable="false">
-                                    <el-button type="primary" icon="el-icon-edit" size="mini"
-                                               @click="showEditDialogVisible(scope.$index,scope.row)">编辑
-                                    </el-button>
-                                </el-tooltip>
-                                <!--取消调度按钮-->
-                                <el-tooltip effect="dark" content="删除" placement="top-start" :enterable="false">
-                                    <el-button type="danger" icon="el-icon-delete" size="mini"
-                                               :loading="delLoading"
-                                               :disabled="scope.row.driverStatus==='2'"
-                                               @click="removeDriverInfo(scope.$index,scope.row)">删除
-                                    </el-button>
-                                </el-tooltip>
-                            </template>
-                        </el-table-column>
-                    </el-table>
-                    <!--分页区域-->
-                    <div style="margin-top: 10px">
-                        <el-row :gutter="24">
-                            <el-col :span="5">
-                                <el-button type="danger" icon="el-icon-delete" @click="batchRemove"
-                                           :disabled="this.sels.length===0">批量删除
-                                </el-button>
-                            </el-col>
-                            <el-col :span="10" style="margin-top: 5px">
-                                <el-pagination
-                                        @size-change="handleSizeChange"
-                                        @current-change="handleCurrentChange"
-                                        :current-page="queryInfo.pageNum"
-                                        :page-sizes="[10,20,30,50]"
-                                        :page-size="queryInfo.pageSize"
-                                        layout="total, sizes, prev, pager, next, jumper"
-                                        :total="total">
-                                </el-pagination>
-                            </el-col>
-                        </el-row>
-                    </div>
-                </div>
-            </el-card>
-            <!-- 增加驾驶员信息对话框 -->
-            <div>
-                <el-dialog
-                        style="margin-top: -50px"
-                        title="增加驾驶员信息"
-                        text-align="center"
-                        :visible.sync="addDriverInfoFormVisible"
-                        width="50%" @close="addDriverInfoDialogClosed">
-                    <el-form :model="addDriverInfoForm" label-width="100px" status-icon
-                             :rules="addDriverInfoFormRules" ref="addDriverInfoFormRef"
-                             size="medium" align="center" :inline="true"
-                             style="background-color: #F5F7FA">
-                        <div style="margin-top: -15px">
-                            <br>
-                            <el-form-item label="司机姓名:" prop="driverName">
-                                <el-input v-model="addDriverInfoForm.driverName" style="width: 300px;" clearable
-                                          placeholder="请输入驾驶员姓名"></el-input>
-                            </el-form-item>
-                            <el-form-item label="联系方式:" prop="driverMobile">
-                                <el-input v-model="addDriverInfoForm.driverMobile" style="width: 300px;" clearable
-                                          placeholder="请输入驾驶员联系方式"></el-input>
-                            </el-form-item>
-
-
-                            <el-form-item label="司机状态:" prop="driverStatus">
-                                <el-select v-model="addDriverInfoForm.driverStatus" style="width: 300px" clearable
-                                           placeholder="请选择驾驶员类型">
-                                    <el-option
-                                            v-for="item in driverStatusList"
-                                            :key="item.value"
-                                            :label="item.label"
-                                            :value="item.value">
-                                    </el-option>
-                                </el-select>
-                            </el-form-item>
-                            <el-form-item label="驾驶证号:" prop="driverLicenseNumber">
-                                <el-input v-model="addDriverInfoForm.driverLicenseNumber" style="width: 300px;"
-                                          clearable
-                                          placeholder="请输入驾驶证号码"></el-input>
-                            </el-form-item>
-                            <el-form-item label="工作职位:" prop="driverPosition">
-                                <el-select v-model="addDriverInfoForm.driverPosition" style="width: 300px" clearable
-                                           placeholder="请选择驾驶员类型">
-                                    <el-option
-                                            v-for="item in driverPositionList"
-                                            :key="item.value"
-                                            :label="item.label"
-                                            :value="item.value">
-                                    </el-option>
-                                </el-select>
-                            </el-form-item>
-
-                            <el-form-item label="员工号码:" prop="jobNumber">
-                                <el-input v-model="addDriverInfoForm.jobNumber" style="width: 300px;" clearable
-                                          placeholder="请输入员工号码"></el-input>
-                            </el-form-item>
-                            <el-form-item label="司机公司:" prop="driverCompany">
-                                <el-input v-model="addDriverInfoForm.driverCompany" style="width: 300px;" clearable
-                                          placeholder="请输入驾驶员所属公司"></el-input>
-                            </el-form-item>
-                            <br>
-                        </div>
-                    </el-form>
-                    <!--底部按钮区域-->
-                    <span slot="footer" class="dialog-footer">
-                        <el-button @click="addDriverInfoFormVisible = false">取 消</el-button>
-                        <el-button type="primary" :loading="addLoading" @click="addDriverInfo">增 加</el-button>
-                    </span>
-                </el-dialog>
-            </div>
-            <!-- 编辑驾驶员信息,对话框 -->
-            <div>
-                <el-dialog
-                        style="margin-top: -70px"
-                        title="编辑驾驶员信息"
-                        :visible.sync="editDialogVisible"
-                        text-align="center"
-                        width="50%" @close="editDriverInfoDialogClosed">
-                    <el-form :model="editDriverInfoForm" label-width="100px" status-icon
-                             :rules="editDriverInfoFormRules" ref="editDriverInfoFormRef"
-                             :inline="true" size="medium" align="center"
-                             style="background-color: #F5F7FA">
-                        <div style="margin-top: -15px">
-                            <br>
-                            <el-form-item label="司机姓名:" prop="driverName">
-                                <el-input v-model="editDriverInfoForm.driverName" style="width: 300px;" clearable
-                                          placeholder="请输入驾驶员姓名"></el-input>
-                            </el-form-item>
-                            <el-form-item label="联系方式:" prop="driverMobile">
-                                <el-input v-model="editDriverInfoForm.driverMobile" style="width: 300px;" clearable
-                                          placeholder="请输入驾驶员联系方式"></el-input>
-                            </el-form-item>
-
-
-                            <el-form-item label="司机状态:" prop="driverStatus">
-                                <el-select v-model="editDriverInfoForm.driverStatus" style="width: 300px" clearable
-                                           placeholder="请选择驾驶员类型">
-                                    <el-option
-                                            v-for="item in driverStatusList"
-                                            :key="item.value"
-                                            :label="item.label"
-                                            :value="item.value">
-                                    </el-option>
-                                </el-select>
-                            </el-form-item>
-                            <el-form-item label="驾驶证号:" prop="driverLicenseNumber">
-                                <el-input v-model="editDriverInfoForm.driverLicenseNumber" style="width: 300px;"
-                                          clearable
-                                          placeholder="请输入驾驶证号码"></el-input>
-                            </el-form-item>
-                            <el-form-item label="工作职位:" prop="driverPosition">
-                                <el-select v-model="editDriverInfoForm.driverPosition" style="width: 300px" clearable
-                                           placeholder="请选择驾驶员类型">
-                                    <el-option
-                                            v-for="item in driverPositionList"
-                                            :key="item.value"
-                                            :label="item.label"
-                                            :value="item.value">
-                                    </el-option>
-                                </el-select>
-                            </el-form-item>
-
-                            <el-form-item label="员工号码:" prop="jobNumber">
-                                <el-input v-model="editDriverInfoForm.jobNumber" style="width: 300px;" clearable
-                                          placeholder="请输入员工号码"></el-input>
-                            </el-form-item>
-                            <el-form-item label="司机公司:" prop="driverCompany">
-                                <el-input v-model="editDriverInfoForm.driverCompany" style="width: 300px;" clearable
-                                          placeholder="请输入驾驶员所属公司"></el-input>
-                            </el-form-item>
-                            <br>
-                        </div>
-                    </el-form>
-                    <!--底部按钮区域-->
-                    <span slot="footer" class="dialog-footer">
-                        <el-button @click="editDialogVisible = false">取 消</el-button>
-                        <el-button type="primary" :loading="editLoading" @click="editDriverInfo">编 辑</el-button>
-                    </span>
-                </el-dialog>
-            </div>
-        </el-main>
-    </el-container>
-</template>
-
-<script>
-    // import {
-    //     selectDriverInfoList,
-    //     insertDriverInfo,
-    //     updateDriverInfo,
-    //     batchRemoveDriverInfo,
-    //     deleteDriverInfo,
-    // } from "../../api/dispatch_api";
-
-    export default {
-        name: "dispatch_api",
-        created() {
-            //刷新驾驶员信息列表
-            this.getDriverInfoList();
-        },
-        data() {
-            //验证手机号的自定义规则
-            var driverMobileValid = (rule, value, callback) => {
-                //验证手机号的正则表达式
-                const regMobile = /^(0|86|17951)?(13[0-9]|15[0123456789]|17[678]|18[0-9]|14[57])[0-9]{8}$/;
-                if (regMobile.test(value)) {
-                    //合法的手机号
-                    return callback();
-                }
-                callback(new Error('请输入合法的手机号'));
-            };
-            return {
-                /**
-                 * 查询信息列表
-                 */
-                queryInfo: {
-                    //驾驶员姓名
-                    driverName: '',
-                    //驾驶员联系方式
-                    driverMobile: '',
-                    //驾驶员所属公司
-                    driverCompany: '',
-                    //驾驶员状态
-                    driverStatus: '',
-                    //当前的页数
-                    pageNum: 1,
-                    //当前每页显示多少条数据
-                    pageSize: 10
-                },
-                /**
-                 * 设置,总条数
-                 */
-                total: 0,
-                /**
-                 * 批量删除的选中列表
-                 */
-                sels: [],
-                /**
-                 * 驾驶员信息列表
-                 */
-                driverInfoList: [],
-                /**
-                 * 新增驾驶员信息表单
-                 */
-                addDriverInfoForm: {
-                    driverName: '',
-                    driverLicenseNumber: '',
-                    driverMobile: '',
-                    jobNumber: '',
-                    driverPosition: '1',
-                    driverCompany: '',
-                    driverStatus: '1',
-                },
-                /**
-                 * 编辑驾驶员信息表单
-                 */
-                editDriverInfoForm: {},
-                /**
-                 * 控制,添加驾驶员信息对话框的显示与隐藏
-                 */
-                addDriverInfoFormVisible: false,
-                /**
-                 * 控制,编辑驾驶员信息对话框的显示与隐藏
-                 */
-                editDialogVisible: false,
-                /* 列表加载 */
-                listLoading: false,
-                /* 添加加载 */
-                addLoading: false,
-                /* 编辑加载 */
-                editLoading: false,
-                /* 删除加载 */
-                delLoading: false,
-                /**
-                 * 司机职位,列表
-                 */
-                driverPositionList: [
-                    {
-                        value: '1',
-                        label: '队长'
-                    },
-                    {
-                        value: '2',
-                        label: '班长'
-                    },
-                    {
-                        value: '3',
-                        label: '副班长'
-                    },
-                    {
-                        value: '4',
-                        label: '员工'
-                    },
-                ],
-                /**
-                 * 驾驶员状态,列表
-                 */
-                driverStatusList: [
-                    {
-                        value: '1',
-                        label: '空闲状态'
-                    },
-                    {
-                        value: '2',
-                        label: '执行状态'
-                    },
-                    {
-                        value: '3',
-                        label: '轮休状态'
-                    },
-                    {
-                        value: '4',
-                        label: '请假状态'
-                    },
-                ],
-                /**
-                 * 添加驾驶员信息,表单的验证规则对象
-                 */
-                addDriverInfoFormRules: {
-                    driverName: [
-                        {required: true, message: '请选择驾驶员姓名', trigger: ['blur', 'change']},
-                    ],
-                    driverLicenseNumber: [
-                        {required: true, message: '请输入驾驶证号码', trigger: ['blur', 'change']},
-                    ],
-                    driverMobile: [
-                        {required: true, message: '请输入联系方式', trigger: ['blur', 'change']},
-                        {validator: driverMobileValid, trigger: 'blur'}
-                    ],
-                    jobNumber: [
-                        {required: true, message: '请输入员工号码', trigger: ['blur', 'change']},
-                    ],
-                    driverPosition: [
-                        {required: true, message: '请选择工作职位', trigger: ['blur', 'change']},
-                    ],
-                    driverCompany: [
-                        {required: true, message: '请输入驾驶员所属公司', trigger: ['blur', 'change']},
-                    ],
-                    driverStatus: [
-                        {required: true, message: '请选择驾驶员状态', trigger: ['blur', 'change']},
-                    ],
-                },
-                /**
-                 * 编辑驾驶员信息,表单的验证规则对象
-                 */
-                editDriverInfoFormRules: {
-                    driverName: [
-                        {required: true, message: '请选择驾驶员姓名', trigger: ['blur', 'change']},
-                    ],
-                    driverLicenseNumber: [
-                        {required: true, message: '请输入驾驶证号码', trigger: ['blur', 'change']},
-                    ],
-                    driverMobile: [
-                        {required: true, message: '请输入联系方式', trigger: ['blur', 'change']},
-                        {validator: driverMobileValid, trigger: 'blur'}
-                    ],
-                    jobNumber: [
-                        {required: true, message: '请输入员工号码', trigger: ['blur', 'change']},
-                    ],
-                    driverPosition: [
-                        {required: true, message: '请选择工作职位', trigger: ['blur', 'change']},
-                    ],
-                    driverCompany: [
-                        {required: true, message: '请输入驾驶员所属公司', trigger: ['blur', 'change']},
-                    ],
-                    driverStatus: [
-                        {required: true, message: '请选择驾驶员状态', trigger: ['blur', 'change']},
-                    ],
-                }
-            }
-        },
-        methods: {
-            /**
-             *  获取驾驶员信息列表
-             */
-            getDriverInfoList() {
-                //开启加载
-                this.listLoading = true;
-                selectDriverInfoList(this.queryInfo).then((response) => {
-                    let res = response.data;
-                    if (res.code !== '200'){
-                        //关闭加载
-                        this.listLoading = false;
-                        return this.$message.error('获取驾驶员信息列表,失败');
-                    }
-                    // 获取驾驶员信息列表数据
-                    this.driverInfoList = res.data.list;
-                    // 获取列表的总记录数
-                    this.total = res.data.total;
-                    //关闭加载
-                    this.listLoading = false;
-                    this.$message.success('获取驾驶员信息列表,成功');
-                }).catch(error => {
-                    this.listLoading = false;
-                    this.$message.error(error.toString());
-                });
-
-            },
-            /**
-             *  增加驾驶员信息
-             */
-            addDriverInfo() {
-                /*进行表单的预验证*/
-                this.$refs.addDriverInfoFormRef.validate(valid => {
-                    // 未通过,表单预校验
-                    if (!valid) return;
-                    // 通过,表单预检验,开启加载
-                    this.addLoading = true;
-                    insertDriverInfo(this.addDriverInfoForm).then((response) => {
-                        let res = response.data;
-                        if (res.code !== '200'){
-                            //关闭加载
-                            this.addLoading = false;
-                            return this.$message.error('添加驾驶员信息,失败');
-                        }
-                        //关闭加载
-                        this.addLoading = false;
-                        this.$message.success('添加驾驶员信息,成功');
-                        //关闭对话框
-                        this.addDriverInfoFormVisible = false;
-                        //刷新驾驶员信息列表
-                        this.getDriverInfoList();
-                    }).catch(error => {
-                        this.addLoading = false;
-                        this.$message.error(error.toString());
-                    });
-                })
-            },
-            /**
-             * 删除驾驶员信息
-             */
-            removeDriverInfo(index, row) {
-                //弹框询问是否删除驾驶员信息
-                this.$confirm('此操作永久删除该驾驶员信息, 是否继续?', '警告', {
-                        confirmButtonText: '确定删除',
-                        cancelButtonText: '取消',
-                        type: 'warning'
-                    }
-                ).then(() => {
-                    //开启加载
-                    this.delLoading = true;
-                    deleteDriverInfo(row).then((response) => {
-                        let res = response.data;
-                        if (res.code !== '200') {
-                            //关闭加载
-                            this.delLoading = false;
-                            return this.$message.error('删除驾驶员信息,失败');
-                        }
-                        //关闭加载
-                        this.delLoading = false;
-                        this.$message.success('删除驾驶员信息,成功!');
-                        //刷新驾驶员信息列表
-                        this.getDriverInfoList();
-                    }).catch(error => {
-                        this.delLoading = false;
-                        this.$message.error(error.toString());
-                    });
-                }).catch(() => {
-                });
-            },
-            /**
-             * 批量删除,之前的选中
-             */
-            selsChange: function (sels) {
-                this.sels = sels;
-            },
-            /**
-             * 驾驶员状态为执行状态的时候,无法被选中
-             */
-            isSelectable(row, index) {
-                if (row.driverStatus === '2') {
-                    return false;
-                } else {
-                    return true;
-                }
-            },
-            /**
-             * 批量删除功能
-             */
-            batchRemove() {
-                var ids = this.sels.map(item => item.id).toString();
-                console.log(ids);
-                //弹框询问是否批量删除选中的车辆调度记录
-                this.$confirm('此操作将永久删除,选中的驾驶员信息, 是否继续?', '警告', {
-                        confirmButtonText: '确定删除',
-                        cancelButtonText: '取消',
-                        type: 'warning'
-                    }
-                ).then(() => {
-                    //开启加载
-                    this.listLoading = true;
-                    let params = {ids: ids};
-                    batchRemoveDriverInfo(params).then(response => {
-                        let res = response.data;
-                        if (res.code !== '200') {
-                            this.listLoading = false;
-                            return this.$message.error('批量删除驾驶员信息,失败');
-                        }
-                        this.$message.success('批量删除驶员信息,成功!');
-                        this.listLoading = false;
-                        //刷新驾驶员信息列表
-                        this.getDriverInfoList();
-                    }).catch(error => {
-                        this.delLoading = false;
-                        this.$message.error(error.toString());
-                    });
-                }).catch(() => {
-                });
-            },
-            /**
-             * 编辑驾驶员信息
-             */
-            editDriverInfo() {
-                /*进行表单的预验证*/
-                this.$refs.editDriverInfoFormRef.validate(valid => {
-                    // 未通过,表单预校验
-                    if (!valid) return;
-                    // 通过,表单预检验,开启加载
-                    this.editLoading = true;
-                    updateDriverInfo(this.editDriverInfoForm).then((response) => {
-                        let res = response.data;
-                        if (res.code !== '200') {
-                            //关闭加载
-                            this.editLoading = false;
-                            return this.$message.error('修改驾驶员信息,失败');
-                        }
-                        //关闭加载
-                        this.editLoading = false;
-                        this.$message.success('修改驾驶员信息,成功!');
-                        // 关闭,编辑驾驶员信息对话框
-                        this.editDialogVisible = false;
-                        //刷新驾驶员信息列表
-                        this.getDriverInfoList();
-                    }).catch(error => {
-                        this.editLoading = false;
-                        this.$message.error(error.toString());
-                    });
-                })
-            },
-            /**
-             * 添加驾驶员信息对话框,关闭时,重置对话框
-             */
-            addDriverInfoDialogClosed() {
-                this.$refs.addDriverInfoFormRef.resetFields();
-            },
-            /**
-             * 编辑驾驶员信息对话框,关闭时,重置对话框
-             */
-            editDriverInfoDialogClosed() {
-                this.$refs.editDriverInfoFormRef.resetFields();
-            },
-            /**
-             * 打开编辑驾驶员信息对话框
-             */
-            showEditDialogVisible(index, row) {
-                this.editDriverInfoForm = Object.assign({}, row);
-                this.editDialogVisible = true;
-            },
-            /**
-             * 监听pageSize改变的事件
-             */
-            handleSizeChange(newSize) {
-                this.queryInfo.pageSize = newSize;
-                //刷新驾驶员信息列表
-                this.getDriverInfoList();
-            },
-            /**
-             * 监听当前页码值改变的事件
-             */
-            handleCurrentChange(newPage) {
-                this.queryInfo.pageNum = newPage;
-                //刷新驾驶员信息列表
-                this.getDriverInfoList();
-            },
-        }
-    }
-</script>
-
-<style scoped>
-
-</style>
diff --git a/src/views/nav3/VehicleInfo.vue b/src/views/nav3/VehicleInfo.vue
deleted file mode 100644
index b45efbe..0000000
--- a/src/views/nav3/VehicleInfo.vue
+++ /dev/null
@@ -1,704 +0,0 @@
-<template>
-    <el-container>
-        <el-main>
-            <!--面包屑导航区域-->
-            <!--            <div>-->
-            <!--                <el-breadcrumb separator-class="el-icon-arrow-right">-->
-            <!--                    <el-breadcrumb-item :to="{ path: '/' }">首页</el-breadcrumb-item>-->
-            <!--                    <el-breadcrumb-item>车辆调度</el-breadcrumb-item>-->
-            <!--                    <el-breadcrumb-item>车辆信息</el-breadcrumb-item>-->
-            <!--                </el-breadcrumb>-->
-            <!--            </div>-->
-            <el-card style="background-color: #F5F7FA">
-                <!--搜索区域-->
-                <div>
-                    <el-row :gutter="24">
-                        <el-col :span="5">
-                            <el-input v-model="queryInfo.licensePlateNumber" clearable prefix-icon="el-icon-search"
-                                      placeholder="请输入车牌号码"></el-input>
-                        </el-col>
-                        <el-col :span="5">
-                            <el-input v-model="queryInfo.vehicleCompany" clearable prefix-icon="el-icon-search"
-                                      placeholder="请输入车辆公司"></el-input>
-                        </el-col>
-                        <el-col :span="5">
-                            <el-select v-model="queryInfo.vehicleStatus" clearable placeholder="请选择车辆状态">
-                                <el-option
-                                        v-for="item in vehicleStatusList"
-                                        :key="item.value"
-                                        :label="item.label"
-                                        :value="item.value">
-                                </el-option>
-                            </el-select>
-                        </el-col>
-                        <el-col :span="5">
-                            <el-select v-model="queryInfo.vehicleType" clearable placeholder="请选择车辆类型">
-                                <el-option
-                                        v-for="item in vehicleTypeList"
-                                        :key="item.value"
-                                        :label="item.label"
-                                        :value="item.value">
-                                </el-option>
-                            </el-select>
-                        </el-col>
-                    </el-row>
-                    <el-row style="margin-top: 20px;">
-                        <el-button type="primary" @click="getVehicleInfoList">查询车辆信息</el-button>
-                        <el-button type="success" @click="addVehicleInfoFormVisible = true">增加车辆信息</el-button>
-
-                    </el-row>
-                </div>
-                <!--车辆信息列表区域-->
-                <div style="margin-top: 20px;">
-                    <el-table :data="vehicleInfoList" border stripe highlight-current-row v-loading="listLoading"
-                              @selection-change="selsChange"
-                              element-loading-text="拼命加载中">
-                        <el-table-column type="selection" width="55" :selectable="isSelectable"
-                                         align="center"></el-table-column>
-                        <el-table-column type="index" align="center"></el-table-column>
-                        <el-table-column label="车辆类型" prop="vehicleType" align="center" width="120">
-                            <template slot-scope="scope">
-                                <span v-if="scope.row.vehicleType ==='1'">重型货车</span>
-                                <span v-if="scope.row.vehicleType ==='2'">中型货车</span>
-                                <span v-if="scope.row.vehicleType ==='3'">轻型货车</span>
-                                <span v-if="scope.row.vehicleType ==='4'">微型货车</span>
-                                <span v-if="scope.row.vehicleType ==='5'">拖车</span>
-                                <span v-if="scope.row.vehicleType ==='6'">叉车</span>
-                            </template>
-                        </el-table-column>
-                        <el-table-column label="车牌号码" prop="licensePlateNumber" align="center"
-                                         width="130"></el-table-column>
-                        <el-table-column label="车辆状态" prop="vehicleStatus" align="center" width="100">
-                            <template slot-scope="scope">
-                                <span v-if="scope.row.vehicleStatus ==='1'">空闲状态</span>
-                                <span v-if="scope.row.vehicleStatus ==='2'">执行状态</span>
-                                <span v-if="scope.row.vehicleStatus ==='3'">在修状态</span>
-                                <span v-if="scope.row.vehicleStatus ==='4'">损坏未修</span>
-                                <span v-if="scope.row.vehicleStatus ==='5'">保养状态</span>
-                            </template>
-                        </el-table-column>
-                        <el-table-column label="车辆载重/Kg" prop="vehicleLoad" align="center"
-                                         width="110"></el-table-column>
-                        <el-table-column label="挂车与否" prop="isTrailer" align="center" width="110">
-                            <template slot-scope="scope">
-                                <span v-if="scope.row.isTrailer ==='1'">有挂车</span>
-                                <span v-if="scope.row.isTrailer ==='2'">没有挂车</span>
-                            </template>
-                        </el-table-column>
-                        <el-table-column label="开始空闲时间" prop="freetime" align="center" width="160"></el-table-column>
-
-                        <el-table-column label="车辆公司" prop="vehicleCompany" align="center"
-                                         width="200"></el-table-column>
-                        <el-table-column label="行驶证号" prop="drivingLicenseNumber" align="center"
-                                         width="160"></el-table-column>
-                        <el-table-column label="操作" width="200px" align="center" fixed="right">
-                            <template slot-scope="scope">
-                                <!--查看按钮-->
-                                <el-tooltip effect="dark" content="编辑" placement="top-start" :enterable="false">
-                                    <el-button type="primary" icon="el-icon-edit" size="mini"
-                                               @click="showEditDialogVisible(scope.$index,scope.row)">编辑
-                                    </el-button>
-                                </el-tooltip>
-                                <!--取消调度按钮-->
-                                <el-tooltip effect="dark" content="删除" placement="top-start" :enterable="false">
-                                    <el-button type="danger" icon="el-icon-delete" size="mini"
-                                               :loading="delLoading"
-                                               :disabled="scope.row.vehicleStatus==='2'"
-                                               @click="removeVehicleInfo(scope.$index,scope.row)">删除
-                                    </el-button>
-                                </el-tooltip>
-                            </template>
-                        </el-table-column>
-                    </el-table>
-                    <!--分页区域-->
-                    <div style="margin-top: 10px">
-                        <el-row :gutter="24">
-                            <el-col :span="5">
-                                <el-button type="danger" icon="el-icon-delete" @click="batchRemove"
-                                           :disabled="this.sels.length===0">批量删除
-                                </el-button>
-                            </el-col>
-                            <el-col :span="10" style="margin-top: 5px">
-                                <el-pagination
-                                        @size-change="handleSizeChange"
-                                        @current-change="handleCurrentChange"
-                                        :current-page="queryInfo.pageNum"
-                                        :page-sizes="[10,20,30,50]"
-                                        :page-size="queryInfo.pageSize"
-                                        layout="total, sizes, prev, pager, next, jumper"
-                                        :total="total">
-                                </el-pagination>
-                            </el-col>
-                        </el-row>
-                    </div>
-                </div>
-            </el-card>
-            <!-- 增加车辆信息对话框 -->
-            <div>
-                <el-dialog
-                        style="margin-top: -50px"
-                        title="增加车辆信息"
-                        :visible.sync="addVehicleInfoFormVisible"
-                        width="50%" @close="addVehicleInfoDialogClosed">
-                    <el-form :model="addVehicleInfoForm" label-width="100px" status-icon
-                             :rules="addVehicleInfoFormRules" ref="addVehicleInfoFormRef"
-                             style="margin-left:10%;margin-right:10%;background-color: #F5F7FA">
-                        <div style="margin-left: 30px">
-                            <br>
-                            <el-form-item label="车牌号码:" prop="licensePlateNumber">
-                                <el-input v-model="addVehicleInfoForm.licensePlateNumber" clearable
-                                          style="width: 300px;"
-                                          placeholder="请输入车牌号码"></el-input>
-                            </el-form-item>
-                            <el-form-item label="行驶证号:" prop="drivingLicenseNumber">
-                                <el-input v-model="addVehicleInfoForm.drivingLicenseNumber" clearable
-                                          style="width: 300px;"
-                                          placeholder="请输入车辆行驶证号"></el-input>
-                            </el-form-item>
-                            <el-form-item label="车辆类型:" prop="vehicleType">
-                                <el-select v-model="addVehicleInfoForm.vehicleType" style="width: 300px" clearable
-                                           placeholder="请选择车辆类型">
-                                    <el-option
-                                            v-for="item in vehicleTypeList"
-                                            :key="item.value"
-                                            :label="item.label"
-                                            :value="item.value">
-                                    </el-option>
-                                </el-select>
-                            </el-form-item>
-                            <el-form-item label="车辆载重:" prop="vehicleLoad">
-                                <el-input-number style="width: 200px" v-model="addVehicleInfoForm.vehicleLoad"
-                                                 :min="10" :max="10000" controls-position="right">
-                                </el-input-number>
-                                <span style="margin-left:5px;font-size: 18px">Kg</span>
-                            </el-form-item>
-                            <el-form-item label="有无挂车:" prop="vehicleType">
-                                <el-select v-model="addVehicleInfoForm.isTrailer" style="width: 300px" clearable
-                                           placeholder="请选择有无挂车">
-                                    <el-option
-                                            v-for="item in isTrailerList"
-                                            :key="item.value"
-                                            :label="item.label"
-                                            :value="item.value">
-                                    </el-option>
-                                </el-select>
-                            </el-form-item>
-                            <el-form-item label="车辆公司:" prop="vehicleCompany">
-                                <el-input v-model="addVehicleInfoForm.vehicleCompany" clearable style="width: 300px;"
-                                          placeholder="请输入车辆公司"></el-input>
-                            </el-form-item>
-                            <br>
-                        </div>
-                    </el-form>
-                    <!--底部按钮区域-->
-                    <span slot="footer" class="dialog-footer">
-                        <el-button @click="addVehicleInfoFormVisible = false">取 消</el-button>
-                        <el-button type="primary" :loading="addLoading" @click="addVehicleInfo">增 加</el-button>
-                    </span>
-                </el-dialog>
-            </div>
-            <!-- 编辑车辆信息,对话框 -->
-            <div>
-                <el-dialog
-                        title="编辑车辆信息"
-                        text-align="center"
-                        :visible.sync="editDialogVisible"
-                        width="60%" @close="editVehicleInfoDialogClosed">
-                    <el-form :model="editVehicleInfoForm" label-width="100px" status-icon
-                             :rules="editVehicleInfoFormRules" ref="editVehicleInfoFormRef"
-                             :inline="true" align="center"
-                             style="background-color: #F5F7FA">
-                        <div>
-                            <br>
-                            <el-form-item label="车牌号码:" prop="licensePlateNumber">
-                                <el-input v-model="editVehicleInfoForm.licensePlateNumber" clearable readonly
-                                          style="width:250px"
-                                          placeholder="请输入车牌号码"></el-input>
-                            </el-form-item>
-                            <el-form-item label="行驶证号:" prop="drivingLicenseNumber">
-                                <el-input v-model="editVehicleInfoForm.drivingLicenseNumber" clearable
-                                          style="width:250px"
-                                          placeholder="请输入车辆行驶证号"></el-input>
-                            </el-form-item>
-                            <el-form-item label="车辆类型:" prop="vehicleType">
-                                <el-select v-model="editVehicleInfoForm.vehicleType" clearable
-                                           style="width:250px"
-                                           placeholder="请选择车辆类型">
-                                    <el-option
-                                            v-for="item in vehicleTypeList"
-                                            :key="item.value"
-                                            :label="item.label"
-                                            :value="item.value">
-                                    </el-option>
-                                </el-select>
-                            </el-form-item>
-                            <el-form-item label="车辆载重:" prop="vehicleLoad">
-                                <el-input-number v-model="editVehicleInfoForm.vehicleLoad"
-                                                 clearable style="width:220px"
-                                                 :min="10" :max="10000" controls-position="right">
-                                </el-input-number>
-                                <span style="margin-left:5px;font-size: 18px">Kg</span>
-                            </el-form-item>
-                            <el-form-item label="车辆状态:" prop="vehicleStatus">
-                                <el-select v-model="editVehicleInfoForm.vehicleStatus" clearable
-                                           style="width:250px"
-                                           clearable placeholder="请选择车辆状态">
-                                    <el-option
-                                            v-for="item in vehicleStatusList"
-                                            :key="item.value"
-                                            :label="item.label"
-                                            :value="item.value">
-                                    </el-option>
-                                </el-select>
-                            </el-form-item>
-                            <el-form-item label="有无挂车:" prop="vehicleType">
-                                <el-select v-model="editVehicleInfoForm.isTrailer" clearable
-                                           style="width:250px" clearable
-                                           placeholder="请选择有无挂车">
-                                    <el-option
-                                            v-for="item in isTrailerList"
-                                            :key="item.value"
-                                            :label="item.label"
-                                            :value="item.value">
-                                    </el-option>
-                                </el-select>
-                            </el-form-item>
-                            <el-form-item label="车辆公司:" prop="vehicleCompany">
-                                <el-input v-model="editVehicleInfoForm.vehicleCompany" clearable
-                                          style="width:250px"
-                                          placeholder="请输入车辆公司"></el-input>
-                            </el-form-item>
-                            <el-form-item label="空闲时间:" prop="freetime">
-                                <el-date-picker v-model="editVehicleInfoForm.freetime" type="datetime"
-                                                style="width:250px"
-                                                placeholder="选择调度时间"></el-date-picker>
-                            </el-form-item>
-                            <br>
-                        </div>
-                    </el-form>
-                    <!--底部按钮区域-->
-                    <span slot="footer" class="dialog-footer">
-                        <el-button @click="editDialogVisible = false">取 消</el-button>
-                        <el-button type="primary" :loading="editLoading" @click="editVehicleInfo">编 辑</el-button>
-                    </span>
-                </el-dialog>
-            </div>
-        </el-main>
-    </el-container>
-</template>
-
-<script>
-    // import {
-    //     selectVehicleInfoList,
-    //     insertVehicleInfo,
-    //     updateVehicleInfo,
-    //     batchRemoveVehicleInfo,
-    //     deleteVehicleInfo, deleteDispatchNote
-    // } from "../../api/dispatch_api";
-
-    export default {
-        name: "dispatch_api",
-        created() {
-            //获取车辆信息列表
-            this.getVehicleInfoList();
-        },
-        data() {
-            return {
-                /**
-                 * 查询信息列表
-                 */
-                queryInfo: {
-                    //车牌号
-                    licensePlateNumber: '',
-                    //车辆所属公司
-                    vehicleCompany: '',
-                    //车辆状态
-                    vehicleStatus: '',
-                    //车辆类型
-                    vehicleType: '',
-                    //当前的页数
-                    pageNum: 1,
-                    //当前每页显示多少条数据
-                    pageSize: 10
-                },
-                /**
-                 * 设置,总条数
-                 */
-                total: 0,
-                /**
-                 * 批量删除,选中列表
-                 */
-                sels: [],
-                /**
-                 * 车辆信息列表
-                 */
-                vehicleInfoList: [],
-                /**
-                 * 新增车辆信息表单
-                 */
-                addVehicleInfoForm: {
-                    vehicleType: '2',
-                    licensePlateNumber: '',
-                    vehicleLoad: '',
-                    isTrailer: '2',
-                    vehicleCompany: '',
-                    drivingLicenseNumber: '',
-                },
-                /**
-                 * 编辑车辆信息表单
-                 */
-                editVehicleInfoForm: {},
-                /**
-                 * 控制,添加车辆信息对话框的显示与隐藏
-                 */
-                addVehicleInfoFormVisible: false,
-                /**
-                 * 控制,编辑车辆信息对话框的显示与隐藏
-                 */
-                editDialogVisible: false,
-                /* 列表加载 */
-                listLoading: false,
-                /* 添加加载 */
-                addLoading: false,
-                /* 编辑加载 */
-                editLoading: false,
-                /* 删除加载 */
-                delLoading: false,
-                /**
-                 * 车辆类型,选项列表
-                 */
-                vehicleTypeList: [
-                    {
-                        value: '1',
-                        label: '重型货车'
-                    },
-                    {
-                        value: '2',
-                        label: '中型货车'
-                    },
-                    {
-                        value: '3',
-                        label: '经济货车'
-                    },
-                    {
-                        value: '4',
-                        label: '微型货车'
-                    },
-                    {
-                        value: '5',
-                        label: '拖车'
-                    },
-                    {
-                        value: '6',
-                        label: '叉车'
-                    }
-                ],
-                /**
-                 * 挂车与否,列表
-                 */
-                isTrailerList: [
-                    {
-                        value: '1',
-                        label: '有挂车'
-                    },
-                    {
-                        value: '2',
-                        label: '没有挂车'
-                    },
-                ],
-                /**
-                 * 车辆状态列表
-                 */
-                vehicleStatusList: [
-                    {
-                        value: '1',
-                        label: '空闲状态'
-                    },
-                    {
-                        value: '2',
-                        label: '执行状态'
-                    },
-                    {
-                        value: '3',
-                        label: '在修状态'
-                    },
-                    {
-                        value: '4',
-                        label: '损坏未修状态'
-                    },
-                    {
-                        value: '5',
-                        label: '保养状态'
-                    },
-                ],
-                /**
-                 * 添加车辆信息表单的验证规则对象
-                 */
-                addVehicleInfoFormRules: {
-                    vehicleType: [
-                        {required: true, message: '请选择车辆类型', trigger: ['blur', 'change']},
-                    ],
-                    licensePlateNumber: [
-                        {required: true, message: '请输入车牌号', trigger: ['blur', 'change']},
-                    ],
-                    vehicleLoad: [
-                        {required: true, message: '请输入车辆载重', trigger: ['blur', 'change']},
-                    ],
-                    isTrailer: [
-                        {required: true, message: '请选择有无挂车', trigger: ['blur', 'change']},
-                    ],
-                    vehicleCompany: [
-                        {required: true, message: '请输入车辆公司名称', trigger: ['blur', 'change']},
-                    ],
-                    drivingLicenseNumber: [
-                        {required: true, message: '请输入车辆行驶证号', trigger: ['blur', 'change']},
-                    ],
-                },
-                /**
-                 * 编辑车辆信息表单的验证规则对象
-                 */
-                editVehicleInfoFormRules: {
-                    vehicleStatus: [
-                        {required: true, message: '请选择车辆状态', trigger: ['blur', 'change']},
-                    ],
-                    freetime: [
-                        {required: true, message: '请选择开始空闲时间', trigger: ['blur', 'change']},
-                    ],
-                    vehicleType: [
-                        {required: true, message: '请选择车辆类型', trigger: ['blur', 'change']},
-                    ],
-                    licensePlateNumber: [
-                        {required: true, message: '请输入车牌号', trigger: ['blur', 'change']},
-                    ],
-                    vehicleLoad: [
-                        {required: true, message: '请输入车辆载重', trigger: ['blur', 'change']},
-                    ],
-                    isTrailer: [
-                        {required: true, message: '请选择有无挂车', trigger: ['blur', 'change']},
-                    ],
-                    vehicleCompany: [
-                        {required: true, message: '请输入车辆公司名称', trigger: ['blur', 'change']},
-                    ],
-                    drivingLicenseNumber: [
-                        {required: true, message: '请输入车辆行驶证号', trigger: ['blur', 'change']},
-                    ],
-                }
-            }
-        },
-        methods: {
-            /**
-             * 管理员端,获取车辆信息列表
-             */
-            getVehicleInfoList() {
-                //开启加载
-                this.listLoading = true;
-                selectVehicleInfoList(this.queryInfo).then((response) => {
-                    let res = response.data;
-                    if (res.code !== '200') {
-                        //关闭加载
-                        this.listLoading = false;
-                        return this.$message.error('获取车辆信息列表失败');
-                    }
-                    // 获取车辆信息列表数据
-                    this.vehicleInfoList = res.data.list;
-                    // 获取列表的总记录数
-                    this.total = res.data.total;
-                    //关闭加载
-                    this.listLoading = false;
-                    this.$message.success('获取车辆信息列表,成功');
-                }).catch(error => {
-                    this.listLoading = false;
-                    this.$message.error(error.toString());
-                });
-            },
-            /**
-             * 管理员端,增加车辆信息
-             */
-            addVehicleInfo() {
-                /*进行表单的预验证*/
-                this.$refs.addVehicleInfoFormRef.validate(valid => {
-                    // 未通过,表单预校验
-                    if (!valid) return;
-                    // 通过,表单预检验,发起添加车辆信息的网络请求,开启加载
-                    this.addLoading = true;
-                    insertVehicleInfo(this.addVehicleInfoForm).then((response) => {
-                        let res = response.data;
-                        //添加调度记录信息,失败
-                        if (res.code !== '200') {
-                            //关闭加载
-                            this.addLoading = false;
-                            if(res.code === '406'){
-                                return this.$message.error('该车牌号已存在,请重新填写');
-                            }
-                            return this.$message.error('添加车辆信息,失败');
-                        }
-                        //关闭加载
-                        this.addLoading = false;
-                        this.$message.success('添加调度记录信息,成功');
-                        //隐藏对话框
-                        this.addVehicleInfoFormVisible = false;
-                        //刷新车辆信息列表
-                        this.getVehicleInfoList();
-                    }).catch(error => {
-                        this.addLoading = false;
-                        this.$message.error(error.toString());
-                    });
-
-                })
-            },
-            /**
-             * 管理员端,删除车辆信息
-             */
-            removeVehicleInfo(index, row) {
-                //弹框询问是否删除车辆信息
-                this.$confirm('此操作永久删除该车辆信息, 是否继续?', '警告', {
-                        confirmButtonText: '确定删除',
-                        cancelButtonText: '取消',
-                        type: 'warning'
-                    }
-                ).then(() => {
-                    //开启加载
-                    this.delLoading = true;
-                    deleteVehicleInfo(row).then((response) => {
-                        let res = response.data;
-                        if (res.code !== '200') {
-                            //关闭加载
-                            this.delLoading = false;
-                            return this.$message.error('删除车辆信息,失败');
-                        }
-                        //关闭加载
-                        this.delLoading = false;
-                        this.$message.success('删除车辆信息,成功!');
-                        //刷新车辆信息列表
-                        this.getVehicleInfoList();
-                    }).catch(error => {
-                        this.delLoading = false;
-                        this.$message.error(error.toString());
-                    });
-                }).catch(() => {
-                });
-            },
-
-            /**
-             * 批量删除,之前的选中
-             */
-            selsChange: function (sels) {
-                this.sels = sels;
-            },
-            /**
-             * 车辆状态为执行状态的时候,无法被选中
-             */
-            isSelectable(row, index) {
-                if (row.vehicleStatus === '2') {
-                    return false;
-                } else {
-                    return true;
-                }
-            },
-            /**
-             * 批量删除功能
-             */
-            batchRemove() {
-                var ids = this.sels.map(item => item.id).toString();
-                console.log(ids);
-                //弹框询问是否批量删除选中的车辆调度记录
-                this.$confirm('此操作永久删除选中的车辆信息, 是否继续?', '警告', {
-                        confirmButtonText: '确定删除',
-                        cancelButtonText: '取消',
-                        type: 'warning'
-                    }
-                ).then(() => {
-                    //开启加载
-                    this.listLoading = true;
-                    let params = {ids: ids};
-                    batchRemoveVehicleInfo(params).then(response => {
-                        let res = response.data;
-                        if (res.code !== '200') {
-                            this.listLoading = false;
-                            return this.$message.error('批量删除车辆信息,失败');
-                        }
-                        this.$message.success('批量删除车辆信息,成功!');
-                        this.listLoading = false;
-                        //刷新车辆信息列表
-                        this.getVehicleInfoList();
-                    }).catch(error => {
-                        this.delLoading = false;
-                        this.$message.error(error.toString());
-                    });
-                }).catch(() => {
-                });
-            },
-            /**
-             * 管理员端,编辑车辆信息
-             */
-            editVehicleInfo() {
-                /*进行表单的预验证*/
-                this.$refs.editVehicleInfoFormRef.validate(valid => {
-                    // 未通过,表单预校验
-                    if (!valid) return;
-                    // 通过,表单预校验,开启加载
-                    this.editLoading = true;
-                    updateVehicleInfo(this.editVehicleInfoForm).then((response) => {
-                        let res = response.data;
-                        if (res.code !== '200') {
-                            //关闭加载
-                            this.editLoading = false;
-                            return this.$message.error('修改车辆信息,失败');
-                        }
-                        //关闭加载
-                        this.editLoading = false;
-                        this.$message.success('修改车辆信息,成功!');
-                        //关闭编辑车辆信息对话框
-                        this.editDialogVisible = false;
-                        //刷新车辆信息列表
-                        this.getVehicleInfoList();
-                    }).catch(error => {
-                        this.editLoading = false;
-                        this.$message.error(error.toString());
-                    });
-                })
-            },
-
-            /**
-             * 添加车辆信息对话框,关闭时,重置对话框
-             */
-            addVehicleInfoDialogClosed() {
-                this.$refs.addVehicleInfoFormRef.resetFields();
-            },
-            /**
-             * 编辑车辆信息对话框,关闭时,重置对话框
-             */
-            editVehicleInfoDialogClosed() {
-                this.$refs.editVehicleInfoFormRef.resetFields();
-            },
-            /**
-             * 打开编辑车辆信息对话框
-             */
-            showEditDialogVisible(index, row) {
-                this.editVehicleInfoForm = Object.assign({}, row);
-                this.editDialogVisible = true;
-            },
-            /**
-             * 监听pageSize改变的事件
-             */
-            handleSizeChange(newSize) {
-                this.queryInfo.pageSize = newSize;
-                //刷新车辆信息列表
-                this.getVehicleInfoList();
-
-            },
-            /**
-             * 监听当前页码值改变的事件
-             */
-            handleCurrentChange(newPage) {
-                this.queryInfo.pageNum = newPage;
-                //刷新车辆信息列表
-                this.getVehicleInfoList();
-            },
-        }
-    }
-</script>
-
-<style scoped>
-
-</style>
diff --git a/src/views/transit/transit.vue b/src/views/transit/transit.vue
index 5c85e00..83a9d26 100644
--- a/src/views/transit/transit.vue
+++ b/src/views/transit/transit.vue
@@ -110,9 +110,9 @@
                         <el-form-item>
                             <div style="display: inline-block;background-color: #6F8294;color: white;
                             border-top-left-radius: 4px;margin-right: -4px;padding-right: 14px;font-size: 12px;
-                            border-bottom-left-radius:4px;padding-left: 14px">新增时间段</div>
+                            border-bottom-left-radius:4px;padding-left: 14px">申报时间段</div>
                             <el-date-picker
-                                    v-model="formTrn.creattime"
+                                    v-model="searchTime"
                                     type="daterange"
                                     unlink-panels
                                     range-separator="-"
@@ -593,6 +593,8 @@
                     trnmode:'',
                     unloadcode:'',
                     creattime:'',
+                    startDate:'',
+                    endDate:'',
                     pageNum: 1,
                     pageSize: 10
                 },
@@ -617,6 +619,7 @@
                 form: {
                     autoid:'',
                     seqno:'',
+                    ieflag:'E',
                     customscode:'',
                     inputopid: '',
                     inputopname:'',
@@ -710,6 +713,24 @@
                     this.form.arriveno = this.customscode + loadcode + new Date().format('yyMMddHHmmss');
                 }
             },
+            username: function () {
+                var user = loginuserInfo;
+                if (user) {
+                    return  user.username || '';
+                }
+            },
+            searchTime: {
+                get:function () {
+                    return this.formTrn.creattime
+                },
+                set:function (val) {
+                    this.formTrn.creattime = val
+                    if (val && val.length===2){
+                        this.formTrn.startDate = val[0]
+                        this.formTrn.endDate = val[1]
+                    }
+                }
+            }
 
         },
         methods:{
@@ -769,7 +790,9 @@
             // 获取消息标签列表
             trnList() {
                 const _this = this
-                selectTrans(this.formTrn).then((response) => {
+                let para = Object.assign({}, this.formTrn)
+                para.creattime = ''
+                selectTrans(para).then((response) => {
                     const res = response.data
                     if (res.code !== '200') {
                         return _this.$message.error('获取消息收发记录,失败!')
@@ -791,9 +814,12 @@
             },
             // 打开新增
             addTrn() {
+                Object.keys(this.form).forEach(key => (this.form[key] = ''));
                 this.dialogStatus = 'create'
                 this.trn_dialog.addDialog = true
                 this.form.arrivetime = new Date().format('yyyyMMddHHmmss')
+                this.form.username = this.username
+                this.form.ieflag = 'E'
             },
 
             // 新增功能
@@ -855,7 +881,14 @@
                 send(row).then((response) => {
                     const res = response.data
                     if (res.code !== '200') {
-                        return this.$message.error(res.msg);
+                        this.$message({
+                            dangerouslyUseHTMLString: true,
+                            showClose: true,
+                            type:'error',
+                            duration:0,
+                            message: '<strong>'+ res.msg +'</strong><br/>' + '<span>'+ res.error+'</span>'
+                        });
+                        return
                     }
                     this.$message.success('申报成功!');
                     this.trnList();
diff --git a/src/vuex/actions.js b/src/vuex/actions.js
index 19cd820..344a0bd 100755
--- a/src/vuex/actions.js
+++ b/src/vuex/actions.js
@@ -9,3 +9,7 @@ export const decrement = ({commit}) => {
 export const setUserMenuStore = ({commit},menuList) => {
     commit('set_user_menu',menuList)
 }
+
+export const setUserInfoStore = ({commit},info) => {
+    commit('set_user_info',info)
+}
diff --git a/src/vuex/getters.js b/src/vuex/getters.js
index 21c3b75..0feaf08 100755
--- a/src/vuex/getters.js
+++ b/src/vuex/getters.js
@@ -7,3 +7,7 @@ export const getCount = state => {
 export const getUserMenuStore = state => {
    return  state.userMenu
 }
+
+export const getUserInfoStore = state => {
+    return  state.userInfo
+}
diff --git a/src/vuex/store.js b/src/vuex/store.js
index 1f32624..72a4596 100755
--- a/src/vuex/store.js
+++ b/src/vuex/store.js
@@ -8,9 +8,21 @@ Vue.use(Vuex)
 // 应用初始状态
 const state = {
     count: 10,
-    openTab:[],//所有打开的路由
-    activeIndex: '/main',//激活状态,
-    userMenu:[] //用户菜单
+    //所有打开的路由
+    openTab:[],
+    //激活状态,
+    activeIndex: '/main',
+    //用户菜单
+    userMenu:[],
+    userInfo:{
+        userId: 0,
+        username: '',
+        companyId: 0,
+        companyName: '',
+        realname: '',
+        userface: ''
+    }
+
 }
 
 // 定义所需的 mutations
@@ -54,6 +66,10 @@ const mutations = {
     set_user_menu(state, menu){
         this.state.userMenu = menu;
     },
+    //设置用户信息
+    set_user_info(state,info){
+       state.userInfo = info;
+    },
     INCREMENT(state) {
         state.count++
     },
--
libgit2 0.24.0