作者 小范

Merge remote-tracking branch 'origin/master'

@@ -7,10 +7,10 @@ function getusername(){ @@ -7,10 +7,10 @@ function getusername(){
7 let user = JSON.parse(sessionStorage.getItem('user')); 7 let user = JSON.parse(sessionStorage.getItem('user'));
8 return user; 8 return user;
9 }else { 9 }else {
10 - Message({  
11 - message:"未查询到用户缓存名称",  
12 - type:"error",  
13 - }); 10 + // Message({
  11 + // message:"未查询到用户缓存名称",
  12 + // type:"error",
  13 + // });
14 return { 14 return {
15 username:"" 15 username:""
16 }; 16 };
  1 +import http from './http.js'
  2 +
  3 +let baseUrl = 'dispatch-system/dispatch'
  4 +// let baseUrl = 'http://127.0.0.1:9999/dispatch'
  5 +/*用户端,调度车辆*/
  6 +export const dispatch = params =>{return http.post(`${baseUrl}/dispatch`, params);};
  7 +/*用户端,取消车辆调度*/
  8 +export const cancel = params =>{return http.put(`${baseUrl}/cancel`, params);};
  9 +/*用户端,获取用户信息*/
  10 +export const getUser = params =>{return http.get(`${baseUrl}/user/getUser`, params);};
  11 +
  12 +/* 管理员端,调度记录,开始任务 */
  13 +export const startTask = params =>{return http.put(`${baseUrl}/startTask`, params);};
  14 +/* 管理员端,调度记录,结束任务 */
  15 +export const completeTask = params =>{return http.put(`${baseUrl}/completeTask`, params);};
  16 +
  17 +/*用户端,管理员端调度记录,查询车辆调度记录*/
  18 +export const selectDispatchNoteList = params =>{return http.get(`${baseUrl}/dispatchNote/selectDispatchNoteList`, params);};
  19 +/*管理员端,调度记录,增加车辆调度记录*/
  20 +export const insertDispatchNote = params =>{return http.post(`${baseUrl}/dispatchNote/insertDispatchNote`, params);};
  21 +/*管理员端,调度记录,编辑车辆调度记录*/
  22 +export const updateDispatchNote = params =>{return http.put(`${baseUrl}/dispatchNote/updateDispatchNote`, params);};
  23 +/*管理员端,调度记录,删除车辆调度记录*/
  24 +export const deleteDispatchNote = params =>{return http.del(`${baseUrl}/dispatchNote/deleteDispatchNote`, params);};
  25 +/*管理员端,调度记录,批量删除车辆调度记录*/
  26 +export const batchRemoveDispatchNode = params =>{return http.get(`${baseUrl}/dispatchNote/batchRemove`, params);};
  27 +
  28 +/*管理员端,车辆信息,查询车辆信息*/
  29 +export const selectVehicleInfoList = params =>{return http.get(`${baseUrl}/vehicleInfo/selectVehicleInfoList`, params);};
  30 +/*管理员端,车辆信息,新增车辆信息*/
  31 +export const insertVehicleInfo = params =>{return http.post(`${baseUrl}/vehicleInfo/insertVehicleInfo`, params);};
  32 +/*管理员端,车辆信息,修改车辆信息*/
  33 +export const updateVehicleInfo = params =>{return http.put(`${baseUrl}/vehicleInfo/updateVehicleInfo`, params);};
  34 +/*管理员端,车辆信息,删除车辆信息*/
  35 +export const deleteVehicleInfo = params =>{return http.del(`${baseUrl}/vehicleInfo/deleteVehicleInfo`, params);};
  36 +/*管理员端,车辆信息,批量删除车辆信息*/
  37 +export const batchRemoveVehicleInfo= params =>{return http.get(`${baseUrl}/vehicleInfo/batchRemove`, params);};
  38 +
  39 +/*管理员端,驾驶员信息,查询驾驶员信息*/
  40 +export const selectDriverInfoList = params =>{return http.get(`${baseUrl}/driverInfo/selectDriverInfoList`, params);};
  41 +/*管理员端,驾驶员信息,新增驾驶员信息*/
  42 +export const insertDriverInfo = params =>{return http.post(`${baseUrl}/driverInfo/insertDriverInfo`, params);};
  43 +/*管理员端,驾驶员信息,修改驾驶员信息*/
  44 +export const updateDriverInfo = params =>{return http.put(`${baseUrl}/driverInfo/updateDriverInfo`, params);};
  45 +/*管理员端,驾驶员信息,删除驾驶员信息*/
  46 +export const deleteDriverInfo = params =>{return http.del(`${baseUrl}/driverInfo/deleteDriverInfo`, params);};
  47 +/*管理员端,驾驶员信息,批量删除驾驶员信息*/
  48 +export const batchRemoveDriverInfo= params =>{return http.get(`${baseUrl}/driverInfo/batchRemove`, params);};
@@ -12,4 +12,6 @@ export const selectCustomcode=params=>{return http.get(`${baseUrl}/selectCustomc @@ -12,4 +12,6 @@ export const selectCustomcode=params=>{return http.get(`${baseUrl}/selectCustomc
12 12
13 export const sendCreateMt1201=params=>{return http.post(`${baseUrl}/sendCreateMt1201`, params);}; 13 export const sendCreateMt1201=params=>{return http.post(`${baseUrl}/sendCreateMt1201`, params);};
14 export const sendEditeMt1201=params=>{return http.post(`${baseUrl}/sendEditeMt1201`, params);}; 14 export const sendEditeMt1201=params=>{return http.post(`${baseUrl}/sendEditeMt1201`, params);};
15 -export const sendRemoveMt1201=params=>{return http.post(`${baseUrl}/sendRemoveMt1201`, params);};  
  15 +export const sendRemoveMt1201=params=>{return http.post(`${baseUrl}/sendRemoveMt1201`, params);};
  16 +export const sendBatchDelMt1201=params=>{return http.post(`${baseUrl}/sendBatchDelMt1201`, params);};
  17 +export const sendBatchApllyMt1201=params=>{return http.post(`${baseUrl}/sendBatchApllyMt1201`, params);};
@@ -11,4 +11,8 @@ export const sendCreateMt520x=params=>{return http.post(`${baseUrl}/sendCreateMt @@ -11,4 +11,8 @@ export const sendCreateMt520x=params=>{return http.post(`${baseUrl}/sendCreateMt
11 export const sendRemoveMt520x=params=>{return http.post(`${baseUrl}/sendRemoveMt520x`, params);}; 11 export const sendRemoveMt520x=params=>{return http.post(`${baseUrl}/sendRemoveMt520x`, params);};
12 export const selectCustomcode=params=>{return http.get(`${baseUrl2}/selectCustomcode`, params);}; 12 export const selectCustomcode=params=>{return http.get(`${baseUrl2}/selectCustomcode`, params);};
13 13
  14 +export const sendbatchRemoveMt5201=params=>{return http.post(`${baseUrl}/sendbatchRemoveMt5201`, params);};
  15 +export const sendbatchCreateMt5201=params=>{return http.post(`${baseUrl}/sendbatchCreateMt5201`, params);};
  16 +
  17 +
14 18
@@ -91,6 +91,7 @@ var axois_init = { @@ -91,6 +91,7 @@ var axois_init = {
91 sessionStorage.removeItem('user'); 91 sessionStorage.removeItem('user');
92 sessionStorage.removeItem('menu'); 92 sessionStorage.removeItem('menu');
93 sessionStorage.removeItem('token'); 93 sessionStorage.removeItem('token');
  94 + axios.defaults.headers.common['Authorization'] = undefined;
94 next() 95 next()
95 }else{ 96 }else{
96 let user = JSON.parse(sessionStorage.getItem('user')); 97 let user = JSON.parse(sessionStorage.getItem('user'));
  1 +<template>
  2 + <div class="myicons">
  3 + <ul class="icon-list">
  4 + <li><span><i class="el-icon-platform-eleme"></i><span class="icon-name">el-icon-platform-eleme</span></span>
  5 + </li>
  6 + <li><span><i class="el-icon-eleme"></i><span class="icon-name">el-icon-eleme</span></span></li>
  7 + <li><span><i class="el-icon-delete-solid"></i><span class="icon-name">el-icon-delete-solid</span></span>
  8 + </li>
  9 + <li><span><i class="el-icon-delete"></i><span class="icon-name">el-icon-delete</span></span></li>
  10 + <li><span><i class="el-icon-s-tools"></i><span class="icon-name">el-icon-s-tools</span></span></li>
  11 + <li><span><i class="el-icon-setting"></i><span class="icon-name">el-icon-setting</span></span></li>
  12 + <li><span><i class="el-icon-user-solid"></i><span class="icon-name">el-icon-user-solid</span></span></li>
  13 + <li><span><i class="el-icon-user"></i><span class="icon-name">el-icon-user</span></span></li>
  14 + <li><span><i class="el-icon-phone"></i><span class="icon-name">el-icon-phone</span></span></li>
  15 + <li><span><i class="el-icon-phone-outline"></i><span class="icon-name">el-icon-phone-outline</span></span>
  16 + </li>
  17 + <li><span><i class="el-icon-more"></i><span class="icon-name">el-icon-more</span></span></li>
  18 + <li><span><i class="el-icon-more-outline"></i><span class="icon-name">el-icon-more-outline</span></span>
  19 + </li>
  20 + <li><span><i class="el-icon-star-on"></i><span class="icon-name">el-icon-star-on</span></span></li>
  21 + <li><span><i class="el-icon-star-off"></i><span class="icon-name">el-icon-star-off</span></span></li>
  22 + <li><span><i class="el-icon-s-goods"></i><span class="icon-name">el-icon-s-goods</span></span></li>
  23 + <li><span><i class="el-icon-goods"></i><span class="icon-name">el-icon-goods</span></span></li>
  24 + <li><span><i class="el-icon-warning"></i><span class="icon-name">el-icon-warning</span></span></li>
  25 + <li><span><i class="el-icon-warning-outline"></i><span
  26 + class="icon-name">el-icon-warning-outline</span></span></li>
  27 + <li><span><i class="el-icon-question"></i><span class="icon-name">el-icon-question</span></span></li>
  28 + <li><span><i class="el-icon-info"></i><span class="icon-name">el-icon-info</span></span></li>
  29 + <li><span><i class="el-icon-remove"></i><span class="icon-name">el-icon-remove</span></span></li>
  30 + <li><span><i class="el-icon-circle-plus"></i><span class="icon-name">el-icon-circle-plus</span></span></li>
  31 + <li><span><i class="el-icon-success"></i><span class="icon-name">el-icon-success</span></span></li>
  32 + <li><span><i class="el-icon-error"></i><span class="icon-name">el-icon-error</span></span></li>
  33 + <li><span><i class="el-icon-zoom-in"></i><span class="icon-name">el-icon-zoom-in</span></span></li>
  34 + <li><span><i class="el-icon-zoom-out"></i><span class="icon-name">el-icon-zoom-out</span></span></li>
  35 + <li><span><i class="el-icon-remove-outline"></i><span class="icon-name">el-icon-remove-outline</span></span>
  36 + </li>
  37 + <li><span><i class="el-icon-circle-plus-outline"></i><span
  38 + class="icon-name">el-icon-circle-plus-outline</span></span></li>
  39 + <li><span><i class="el-icon-circle-check"></i><span class="icon-name">el-icon-circle-check</span></span>
  40 + </li>
  41 + <li><span><i class="el-icon-circle-close"></i><span class="icon-name">el-icon-circle-close</span></span>
  42 + </li>
  43 + <li><span><i class="el-icon-s-help"></i><span class="icon-name">el-icon-s-help</span></span></li>
  44 + <li><span><i class="el-icon-help"></i><span class="icon-name">el-icon-help</span></span></li>
  45 + <li><span><i class="el-icon-minus"></i><span class="icon-name">el-icon-minus</span></span></li>
  46 + <li><span><i class="el-icon-plus"></i><span class="icon-name">el-icon-plus</span></span></li>
  47 + <li><span><i class="el-icon-check"></i><span class="icon-name">el-icon-check</span></span></li>
  48 + <li><span><i class="el-icon-close"></i><span class="icon-name">el-icon-close</span></span></li>
  49 + <li><span><i class="el-icon-picture"></i><span class="icon-name">el-icon-picture</span></span></li>
  50 + <li><span><i class="el-icon-picture-outline"></i><span
  51 + class="icon-name">el-icon-picture-outline</span></span></li>
  52 + <li><span><i class="el-icon-picture-outline-round"></i><span
  53 + class="icon-name">el-icon-picture-outline-round</span></span></li>
  54 + <li><span><i class="el-icon-upload"></i><span class="icon-name">el-icon-upload</span></span></li>
  55 + <li><span><i class="el-icon-upload2"></i><span class="icon-name">el-icon-upload2</span></span></li>
  56 + <li><span><i class="el-icon-download"></i><span class="icon-name">el-icon-download</span></span></li>
  57 + <li><span><i class="el-icon-camera-solid"></i><span class="icon-name">el-icon-camera-solid</span></span>
  58 + </li>
  59 + <li><span><i class="el-icon-camera"></i><span class="icon-name">el-icon-camera</span></span></li>
  60 + <li><span><i class="el-icon-video-camera-solid"></i><span
  61 + class="icon-name">el-icon-video-camera-solid</span></span></li>
  62 + <li><span><i class="el-icon-video-camera"></i><span class="icon-name">el-icon-video-camera</span></span>
  63 + </li>
  64 + <li><span><i class="el-icon-message-solid"></i><span class="icon-name">el-icon-message-solid</span></span>
  65 + </li>
  66 + <li><span><i class="el-icon-bell"></i><span class="icon-name">el-icon-bell</span></span></li>
  67 + <li><span><i class="el-icon-s-cooperation"></i><span class="icon-name">el-icon-s-cooperation</span></span>
  68 + </li>
  69 + <li><span><i class="el-icon-s-order"></i><span class="icon-name">el-icon-s-order</span></span></li>
  70 + <li><span><i class="el-icon-s-platform"></i><span class="icon-name">el-icon-s-platform</span></span></li>
  71 + <li><span><i class="el-icon-s-fold"></i><span class="icon-name">el-icon-s-fold</span></span></li>
  72 + <li><span><i class="el-icon-s-unfold"></i><span class="icon-name">el-icon-s-unfold</span></span></li>
  73 + <li><span><i class="el-icon-s-operation"></i><span class="icon-name">el-icon-s-operation</span></span></li>
  74 + <li><span><i class="el-icon-s-promotion"></i><span class="icon-name">el-icon-s-promotion</span></span></li>
  75 + <li><span><i class="el-icon-s-home"></i><span class="icon-name">el-icon-s-home</span></span></li>
  76 + <li><span><i class="el-icon-s-release"></i><span class="icon-name">el-icon-s-release</span></span></li>
  77 + <li><span><i class="el-icon-s-ticket"></i><span class="icon-name">el-icon-s-ticket</span></span></li>
  78 + <li><span><i class="el-icon-s-management"></i><span class="icon-name">el-icon-s-management</span></span>
  79 + </li>
  80 + <li><span><i class="el-icon-s-open"></i><span class="icon-name">el-icon-s-open</span></span></li>
  81 + <li><span><i class="el-icon-s-shop"></i><span class="icon-name">el-icon-s-shop</span></span></li>
  82 + <li><span><i class="el-icon-s-marketing"></i><span class="icon-name">el-icon-s-marketing</span></span></li>
  83 + <li><span><i class="el-icon-s-flag"></i><span class="icon-name">el-icon-s-flag</span></span></li>
  84 + <li><span><i class="el-icon-s-comment"></i><span class="icon-name">el-icon-s-comment</span></span></li>
  85 + <li><span><i class="el-icon-s-finance"></i><span class="icon-name">el-icon-s-finance</span></span></li>
  86 + <li><span><i class="el-icon-s-claim"></i><span class="icon-name">el-icon-s-claim</span></span></li>
  87 + <li><span><i class="el-icon-s-custom"></i><span class="icon-name">el-icon-s-custom</span></span></li>
  88 + <li><span><i class="el-icon-s-opportunity"></i><span class="icon-name">el-icon-s-opportunity</span></span>
  89 + </li>
  90 + <li><span><i class="el-icon-s-data"></i><span class="icon-name">el-icon-s-data</span></span></li>
  91 + <li><span><i class="el-icon-s-check"></i><span class="icon-name">el-icon-s-check</span></span></li>
  92 + <li><span><i class="el-icon-s-grid"></i><span class="icon-name">el-icon-s-grid</span></span></li>
  93 + <li><span><i class="el-icon-menu"></i><span class="icon-name">el-icon-menu</span></span></li>
  94 + <li><span><i class="el-icon-share"></i><span class="icon-name">el-icon-share</span></span></li>
  95 + <li><span><i class="el-icon-d-caret"></i><span class="icon-name">el-icon-d-caret</span></span></li>
  96 + <li><span><i class="el-icon-caret-left"></i><span class="icon-name">el-icon-caret-left</span></span></li>
  97 + <li><span><i class="el-icon-caret-right"></i><span class="icon-name">el-icon-caret-right</span></span></li>
  98 + <li><span><i class="el-icon-caret-bottom"></i><span class="icon-name">el-icon-caret-bottom</span></span>
  99 + </li>
  100 + <li><span><i class="el-icon-caret-top"></i><span class="icon-name">el-icon-caret-top</span></span></li>
  101 + <li><span><i class="el-icon-bottom-left"></i><span class="icon-name">el-icon-bottom-left</span></span></li>
  102 + <li><span><i class="el-icon-bottom-right"></i><span class="icon-name">el-icon-bottom-right</span></span>
  103 + </li>
  104 + <li><span><i class="el-icon-back"></i><span class="icon-name">el-icon-back</span></span></li>
  105 + <li><span><i class="el-icon-right"></i><span class="icon-name">el-icon-right</span></span></li>
  106 + <li><span><i class="el-icon-bottom"></i><span class="icon-name">el-icon-bottom</span></span></li>
  107 + <li><span><i class="el-icon-top"></i><span class="icon-name">el-icon-top</span></span></li>
  108 + <li><span><i class="el-icon-top-left"></i><span class="icon-name">el-icon-top-left</span></span></li>
  109 + <li><span><i class="el-icon-top-right"></i><span class="icon-name">el-icon-top-right</span></span></li>
  110 + <li><span><i class="el-icon-arrow-left"></i><span class="icon-name">el-icon-arrow-left</span></span></li>
  111 + <li><span><i class="el-icon-arrow-right"></i><span class="icon-name">el-icon-arrow-right</span></span></li>
  112 + <li><span><i class="el-icon-arrow-down"></i><span class="icon-name">el-icon-arrow-down</span></span></li>
  113 + <li><span><i class="el-icon-arrow-up"></i><span class="icon-name">el-icon-arrow-up</span></span></li>
  114 + <li><span><i class="el-icon-d-arrow-left"></i><span class="icon-name">el-icon-d-arrow-left</span></span>
  115 + </li>
  116 + <li><span><i class="el-icon-d-arrow-right"></i><span class="icon-name">el-icon-d-arrow-right</span></span>
  117 + </li>
  118 + <li><span><i class="el-icon-video-pause"></i><span class="icon-name">el-icon-video-pause</span></span></li>
  119 + <li><span><i class="el-icon-video-play"></i><span class="icon-name">el-icon-video-play</span></span></li>
  120 + <li><span><i class="el-icon-refresh"></i><span class="icon-name">el-icon-refresh</span></span></li>
  121 + <li><span><i class="el-icon-refresh-right"></i><span class="icon-name">el-icon-refresh-right</span></span>
  122 + </li>
  123 + <li><span><i class="el-icon-refresh-left"></i><span class="icon-name">el-icon-refresh-left</span></span>
  124 + </li>
  125 + <li><span><i class="el-icon-finished"></i><span class="icon-name">el-icon-finished</span></span></li>
  126 + <li><span><i class="el-icon-sort"></i><span class="icon-name">el-icon-sort</span></span></li>
  127 + <li><span><i class="el-icon-sort-up"></i><span class="icon-name">el-icon-sort-up</span></span></li>
  128 + <li><span><i class="el-icon-sort-down"></i><span class="icon-name">el-icon-sort-down</span></span></li>
  129 + <li><span><i class="el-icon-rank"></i><span class="icon-name">el-icon-rank</span></span></li>
  130 + <li><span><i class="el-icon-loading"></i><span class="icon-name">el-icon-loading</span></span></li>
  131 + <li><span><i class="el-icon-view"></i><span class="icon-name">el-icon-view</span></span></li>
  132 + <li><span><i class="el-icon-c-scale-to-original"></i><span
  133 + class="icon-name">el-icon-c-scale-to-original</span></span></li>
  134 + <li><span><i class="el-icon-date"></i><span class="icon-name">el-icon-date</span></span></li>
  135 + <li><span><i class="el-icon-edit"></i><span class="icon-name">el-icon-edit</span></span></li>
  136 + <li><span><i class="el-icon-edit-outline"></i><span class="icon-name">el-icon-edit-outline</span></span>
  137 + </li>
  138 + <li><span><i class="el-icon-folder"></i><span class="icon-name">el-icon-folder</span></span></li>
  139 + <li><span><i class="el-icon-folder-opened"></i><span class="icon-name">el-icon-folder-opened</span></span>
  140 + </li>
  141 + <li><span><i class="el-icon-folder-add"></i><span class="icon-name">el-icon-folder-add</span></span></li>
  142 + <li><span><i class="el-icon-folder-remove"></i><span class="icon-name">el-icon-folder-remove</span></span>
  143 + </li>
  144 + <li><span><i class="el-icon-folder-delete"></i><span class="icon-name">el-icon-folder-delete</span></span>
  145 + </li>
  146 + <li><span><i class="el-icon-folder-checked"></i><span class="icon-name">el-icon-folder-checked</span></span>
  147 + </li>
  148 + <li><span><i class="el-icon-tickets"></i><span class="icon-name">el-icon-tickets</span></span></li>
  149 + <li><span><i class="el-icon-document-remove"></i><span
  150 + class="icon-name">el-icon-document-remove</span></span></li>
  151 + <li><span><i class="el-icon-document-delete"></i><span
  152 + class="icon-name">el-icon-document-delete</span></span></li>
  153 + <li><span><i class="el-icon-document-copy"></i><span class="icon-name">el-icon-document-copy</span></span>
  154 + </li>
  155 + <li><span><i class="el-icon-document-checked"></i><span
  156 + class="icon-name">el-icon-document-checked</span></span></li>
  157 + <li><span><i class="el-icon-document"></i><span class="icon-name">el-icon-document</span></span></li>
  158 + <li><span><i class="el-icon-document-add"></i><span class="icon-name">el-icon-document-add</span></span>
  159 + </li>
  160 + <li><span><i class="el-icon-printer"></i><span class="icon-name">el-icon-printer</span></span></li>
  161 + <li><span><i class="el-icon-paperclip"></i><span class="icon-name">el-icon-paperclip</span></span></li>
  162 + <li><span><i class="el-icon-takeaway-box"></i><span class="icon-name">el-icon-takeaway-box</span></span>
  163 + </li>
  164 + <li><span><i class="el-icon-search"></i><span class="icon-name">el-icon-search</span></span></li>
  165 + <li><span><i class="el-icon-monitor"></i><span class="icon-name">el-icon-monitor</span></span></li>
  166 + <li><span><i class="el-icon-attract"></i><span class="icon-name">el-icon-attract</span></span></li>
  167 + <li><span><i class="el-icon-mobile"></i><span class="icon-name">el-icon-mobile</span></span></li>
  168 + <li><span><i class="el-icon-scissors"></i><span class="icon-name">el-icon-scissors</span></span></li>
  169 + <li><span><i class="el-icon-umbrella"></i><span class="icon-name">el-icon-umbrella</span></span></li>
  170 + <li><span><i class="el-icon-headset"></i><span class="icon-name">el-icon-headset</span></span></li>
  171 + <li><span><i class="el-icon-brush"></i><span class="icon-name">el-icon-brush</span></span></li>
  172 + <li><span><i class="el-icon-mouse"></i><span class="icon-name">el-icon-mouse</span></span></li>
  173 + <li><span><i class="el-icon-coordinate"></i><span class="icon-name">el-icon-coordinate</span></span></li>
  174 + <li><span><i class="el-icon-magic-stick"></i><span class="icon-name">el-icon-magic-stick</span></span></li>
  175 + <li><span><i class="el-icon-reading"></i><span class="icon-name">el-icon-reading</span></span></li>
  176 + <li><span><i class="el-icon-data-line"></i><span class="icon-name">el-icon-data-line</span></span></li>
  177 + <li><span><i class="el-icon-data-board"></i><span class="icon-name">el-icon-data-board</span></span></li>
  178 + <li><span><i class="el-icon-pie-chart"></i><span class="icon-name">el-icon-pie-chart</span></span></li>
  179 + <li><span><i class="el-icon-data-analysis"></i><span class="icon-name">el-icon-data-analysis</span></span>
  180 + </li>
  181 + <li><span><i class="el-icon-collection-tag"></i><span class="icon-name">el-icon-collection-tag</span></span>
  182 + </li>
  183 + <li><span><i class="el-icon-film"></i><span class="icon-name">el-icon-film</span></span></li>
  184 + <li><span><i class="el-icon-suitcase"></i><span class="icon-name">el-icon-suitcase</span></span></li>
  185 + <li><span><i class="el-icon-suitcase-1"></i><span class="icon-name">el-icon-suitcase-1</span></span></li>
  186 + <li><span><i class="el-icon-receiving"></i><span class="icon-name">el-icon-receiving</span></span></li>
  187 + <li><span><i class="el-icon-collection"></i><span class="icon-name">el-icon-collection</span></span></li>
  188 + <li><span><i class="el-icon-files"></i><span class="icon-name">el-icon-files</span></span></li>
  189 + <li><span><i class="el-icon-notebook-1"></i><span class="icon-name">el-icon-notebook-1</span></span></li>
  190 + <li><span><i class="el-icon-notebook-2"></i><span class="icon-name">el-icon-notebook-2</span></span></li>
  191 + <li><span><i class="el-icon-toilet-paper"></i><span class="icon-name">el-icon-toilet-paper</span></span>
  192 + </li>
  193 + <li><span><i class="el-icon-office-building"></i><span
  194 + class="icon-name">el-icon-office-building</span></span></li>
  195 + <li><span><i class="el-icon-school"></i><span class="icon-name">el-icon-school</span></span></li>
  196 + <li><span><i class="el-icon-table-lamp"></i><span class="icon-name">el-icon-table-lamp</span></span></li>
  197 + <li><span><i class="el-icon-house"></i><span class="icon-name">el-icon-house</span></span></li>
  198 + <li><span><i class="el-icon-no-smoking"></i><span class="icon-name">el-icon-no-smoking</span></span></li>
  199 + <li><span><i class="el-icon-smoking"></i><span class="icon-name">el-icon-smoking</span></span></li>
  200 + <li><span><i class="el-icon-shopping-cart-full"></i><span
  201 + class="icon-name">el-icon-shopping-cart-full</span></span></li>
  202 + <li><span><i class="el-icon-shopping-cart-1"></i><span
  203 + class="icon-name">el-icon-shopping-cart-1</span></span></li>
  204 + <li><span><i class="el-icon-shopping-cart-2"></i><span
  205 + class="icon-name">el-icon-shopping-cart-2</span></span></li>
  206 + <li><span><i class="el-icon-shopping-bag-1"></i><span class="icon-name">el-icon-shopping-bag-1</span></span>
  207 + </li>
  208 + <li><span><i class="el-icon-shopping-bag-2"></i><span class="icon-name">el-icon-shopping-bag-2</span></span>
  209 + </li>
  210 + <li><span><i class="el-icon-sold-out"></i><span class="icon-name">el-icon-sold-out</span></span></li>
  211 + <li><span><i class="el-icon-sell"></i><span class="icon-name">el-icon-sell</span></span></li>
  212 + <li><span><i class="el-icon-present"></i><span class="icon-name">el-icon-present</span></span></li>
  213 + <li><span><i class="el-icon-box"></i><span class="icon-name">el-icon-box</span></span></li>
  214 + <li><span><i class="el-icon-bank-card"></i><span class="icon-name">el-icon-bank-card</span></span></li>
  215 + <li><span><i class="el-icon-money"></i><span class="icon-name">el-icon-money</span></span></li>
  216 + <li><span><i class="el-icon-coin"></i><span class="icon-name">el-icon-coin</span></span></li>
  217 + <li><span><i class="el-icon-wallet"></i><span class="icon-name">el-icon-wallet</span></span></li>
  218 + <li><span><i class="el-icon-discount"></i><span class="icon-name">el-icon-discount</span></span></li>
  219 + <li><span><i class="el-icon-price-tag"></i><span class="icon-name">el-icon-price-tag</span></span></li>
  220 + <li><span><i class="el-icon-news"></i><span class="icon-name">el-icon-news</span></span></li>
  221 + <li><span><i class="el-icon-guide"></i><span class="icon-name">el-icon-guide</span></span></li>
  222 + <li><span><i class="el-icon-male"></i><span class="icon-name">el-icon-male</span></span></li>
  223 + <li><span><i class="el-icon-female"></i><span class="icon-name">el-icon-female</span></span></li>
  224 + <li><span><i class="el-icon-thumb"></i><span class="icon-name">el-icon-thumb</span></span></li>
  225 + <li><span><i class="el-icon-cpu"></i><span class="icon-name">el-icon-cpu</span></span></li>
  226 + <li><span><i class="el-icon-link"></i><span class="icon-name">el-icon-link</span></span></li>
  227 + <li><span><i class="el-icon-connection"></i><span class="icon-name">el-icon-connection</span></span></li>
  228 + <li><span><i class="el-icon-open"></i><span class="icon-name">el-icon-open</span></span></li>
  229 + <li><span><i class="el-icon-turn-off"></i><span class="icon-name">el-icon-turn-off</span></span></li>
  230 + <li><span><i class="el-icon-set-up"></i><span class="icon-name">el-icon-set-up</span></span></li>
  231 + <li><span><i class="el-icon-chat-round"></i><span class="icon-name">el-icon-chat-round</span></span></li>
  232 + <li><span><i class="el-icon-chat-line-round"></i><span
  233 + class="icon-name">el-icon-chat-line-round</span></span></li>
  234 + <li><span><i class="el-icon-chat-square"></i><span class="icon-name">el-icon-chat-square</span></span></li>
  235 + <li><span><i class="el-icon-chat-dot-round"></i><span class="icon-name">el-icon-chat-dot-round</span></span>
  236 + </li>
  237 + <li><span><i class="el-icon-chat-dot-square"></i><span
  238 + class="icon-name">el-icon-chat-dot-square</span></span></li>
  239 + <li><span><i class="el-icon-chat-line-square"></i><span
  240 + class="icon-name">el-icon-chat-line-square</span></span></li>
  241 + <li><span><i class="el-icon-message"></i><span class="icon-name">el-icon-message</span></span></li>
  242 + <li><span><i class="el-icon-postcard"></i><span class="icon-name">el-icon-postcard</span></span></li>
  243 + <li><span><i class="el-icon-position"></i><span class="icon-name">el-icon-position</span></span></li>
  244 + <li><span><i class="el-icon-turn-off-microphone"></i><span
  245 + class="icon-name">el-icon-turn-off-microphone</span></span></li>
  246 + <li><span><i class="el-icon-microphone"></i><span class="icon-name">el-icon-microphone</span></span></li>
  247 + <li><span><i class="el-icon-close-notification"></i><span
  248 + class="icon-name">el-icon-close-notification</span></span></li>
  249 + <li><span><i class="el-icon-bangzhu"></i><span class="icon-name">el-icon-bangzhu</span></span></li>
  250 + <li><span><i class="el-icon-time"></i><span class="icon-name">el-icon-time</span></span></li>
  251 + <li><span><i class="el-icon-odometer"></i><span class="icon-name">el-icon-odometer</span></span></li>
  252 + <li><span><i class="el-icon-crop"></i><span class="icon-name">el-icon-crop</span></span></li>
  253 + <li><span><i class="el-icon-aim"></i><span class="icon-name">el-icon-aim</span></span></li>
  254 + <li><span><i class="el-icon-switch-button"></i><span class="icon-name">el-icon-switch-button</span></span>
  255 + </li>
  256 + <li><span><i class="el-icon-full-screen"></i><span class="icon-name">el-icon-full-screen</span></span></li>
  257 + <li><span><i class="el-icon-copy-document"></i><span class="icon-name">el-icon-copy-document</span></span>
  258 + </li>
  259 + <li><span><i class="el-icon-mic"></i><span class="icon-name">el-icon-mic</span></span></li>
  260 + <li><span><i class="el-icon-stopwatch"></i><span class="icon-name">el-icon-stopwatch</span></span></li>
  261 + <li><span><i class="el-icon-medal-1"></i><span class="icon-name">el-icon-medal-1</span></span></li>
  262 + <li><span><i class="el-icon-medal"></i><span class="icon-name">el-icon-medal</span></span></li>
  263 + <li><span><i class="el-icon-trophy"></i><span class="icon-name">el-icon-trophy</span></span></li>
  264 + <li><span><i class="el-icon-trophy-1"></i><span class="icon-name">el-icon-trophy-1</span></span></li>
  265 + <li><span><i class="el-icon-first-aid-kit"></i><span class="icon-name">el-icon-first-aid-kit</span></span>
  266 + </li>
  267 + <li><span><i class="el-icon-discover"></i><span class="icon-name">el-icon-discover</span></span></li>
  268 + <li><span><i class="el-icon-place"></i><span class="icon-name">el-icon-place</span></span></li>
  269 + <li><span><i class="el-icon-location"></i><span class="icon-name">el-icon-location</span></span></li>
  270 + <li><span><i class="el-icon-location-outline"></i><span
  271 + class="icon-name">el-icon-location-outline</span></span></li>
  272 + <li><span><i class="el-icon-location-information"></i><span
  273 + class="icon-name">el-icon-location-information</span></span></li>
  274 + <li><span><i class="el-icon-add-location"></i><span class="icon-name">el-icon-add-location</span></span>
  275 + </li>
  276 + <li><span><i class="el-icon-delete-location"></i><span
  277 + class="icon-name">el-icon-delete-location</span></span></li>
  278 + <li><span><i class="el-icon-map-location"></i><span class="icon-name">el-icon-map-location</span></span>
  279 + </li>
  280 + <li><span><i class="el-icon-alarm-clock"></i><span class="icon-name">el-icon-alarm-clock</span></span></li>
  281 + <li><span><i class="el-icon-timer"></i><span class="icon-name">el-icon-timer</span></span></li>
  282 + <li><span><i class="el-icon-watch-1"></i><span class="icon-name">el-icon-watch-1</span></span></li>
  283 + <li><span><i class="el-icon-watch"></i><span class="icon-name">el-icon-watch</span></span></li>
  284 + <li><span><i class="el-icon-lock"></i><span class="icon-name">el-icon-lock</span></span></li>
  285 + <li><span><i class="el-icon-unlock"></i><span class="icon-name">el-icon-unlock</span></span></li>
  286 + <li><span><i class="el-icon-key"></i><span class="icon-name">el-icon-key</span></span></li>
  287 + <li><span><i class="el-icon-service"></i><span class="icon-name">el-icon-service</span></span></li>
  288 + <li><span><i class="el-icon-mobile-phone"></i><span class="icon-name">el-icon-mobile-phone</span></span>
  289 + </li>
  290 + <li><span><i class="el-icon-bicycle"></i><span class="icon-name">el-icon-bicycle</span></span></li>
  291 + <li><span><i class="el-icon-truck"></i><span class="icon-name">el-icon-truck</span></span></li>
  292 + <li><span><i class="el-icon-ship"></i><span class="icon-name">el-icon-ship</span></span></li>
  293 + <li><span><i class="el-icon-basketball"></i><span class="icon-name">el-icon-basketball</span></span></li>
  294 + <li><span><i class="el-icon-football"></i><span class="icon-name">el-icon-football</span></span></li>
  295 + <li><span><i class="el-icon-soccer"></i><span class="icon-name">el-icon-soccer</span></span></li>
  296 + <li><span><i class="el-icon-baseball"></i><span class="icon-name">el-icon-baseball</span></span></li>
  297 + <li><span><i class="el-icon-wind-power"></i><span class="icon-name">el-icon-wind-power</span></span></li>
  298 + <li><span><i class="el-icon-light-rain"></i><span class="icon-name">el-icon-light-rain</span></span></li>
  299 + <li><span><i class="el-icon-lightning"></i><span class="icon-name">el-icon-lightning</span></span></li>
  300 + <li><span><i class="el-icon-heavy-rain"></i><span class="icon-name">el-icon-heavy-rain</span></span></li>
  301 + <li><span><i class="el-icon-sunrise"></i><span class="icon-name">el-icon-sunrise</span></span></li>
  302 + <li><span><i class="el-icon-sunrise-1"></i><span class="icon-name">el-icon-sunrise-1</span></span></li>
  303 + <li><span><i class="el-icon-sunset"></i><span class="icon-name">el-icon-sunset</span></span></li>
  304 + <li><span><i class="el-icon-sunny"></i><span class="icon-name">el-icon-sunny</span></span></li>
  305 + <li><span><i class="el-icon-cloudy"></i><span class="icon-name">el-icon-cloudy</span></span></li>
  306 + <li><span><i class="el-icon-partly-cloudy"></i><span class="icon-name">el-icon-partly-cloudy</span></span>
  307 + </li>
  308 + <li><span><i class="el-icon-cloudy-and-sunny"></i><span
  309 + class="icon-name">el-icon-cloudy-and-sunny</span></span></li>
  310 + <li><span><i class="el-icon-moon"></i><span class="icon-name">el-icon-moon</span></span></li>
  311 + <li><span><i class="el-icon-moon-night"></i><span class="icon-name">el-icon-moon-night</span></span></li>
  312 + <li><span><i class="el-icon-dish"></i><span class="icon-name">el-icon-dish</span></span></li>
  313 + <li><span><i class="el-icon-dish-1"></i><span class="icon-name">el-icon-dish-1</span></span></li>
  314 + <li><span><i class="el-icon-food"></i><span class="icon-name">el-icon-food</span></span></li>
  315 + <li><span><i class="el-icon-chicken"></i><span class="icon-name">el-icon-chicken</span></span></li>
  316 + <li><span><i class="el-icon-fork-spoon"></i><span class="icon-name">el-icon-fork-spoon</span></span></li>
  317 + <li><span><i class="el-icon-knife-fork"></i><span class="icon-name">el-icon-knife-fork</span></span></li>
  318 + <li><span><i class="el-icon-burger"></i><span class="icon-name">el-icon-burger</span></span></li>
  319 + <li><span><i class="el-icon-tableware"></i><span class="icon-name">el-icon-tableware</span></span></li>
  320 + <li><span><i class="el-icon-sugar"></i><span class="icon-name">el-icon-sugar</span></span></li>
  321 + <li><span><i class="el-icon-dessert"></i><span class="icon-name">el-icon-dessert</span></span></li>
  322 + <li><span><i class="el-icon-ice-cream"></i><span class="icon-name">el-icon-ice-cream</span></span></li>
  323 + <li><span><i class="el-icon-hot-water"></i><span class="icon-name">el-icon-hot-water</span></span></li>
  324 + <li><span><i class="el-icon-water-cup"></i><span class="icon-name">el-icon-water-cup</span></span></li>
  325 + <li><span><i class="el-icon-coffee-cup"></i><span class="icon-name">el-icon-coffee-cup</span></span></li>
  326 + <li><span><i class="el-icon-cold-drink"></i><span class="icon-name">el-icon-cold-drink</span></span></li>
  327 + <li><span><i class="el-icon-goblet"></i><span class="icon-name">el-icon-goblet</span></span></li>
  328 + <li><span><i class="el-icon-goblet-full"></i><span class="icon-name">el-icon-goblet-full</span></span></li>
  329 + <li><span><i class="el-icon-goblet-square"></i><span class="icon-name">el-icon-goblet-square</span></span>
  330 + </li>
  331 + <li><span><i class="el-icon-goblet-square-full"></i><span
  332 + class="icon-name">el-icon-goblet-square-full</span></span></li>
  333 + <li><span><i class="el-icon-refrigerator"></i><span class="icon-name">el-icon-refrigerator</span></span>
  334 + </li>
  335 + <li><span><i class="el-icon-grape"></i><span class="icon-name">el-icon-grape</span></span></li>
  336 + <li><span><i class="el-icon-watermelon"></i><span class="icon-name">el-icon-watermelon</span></span></li>
  337 + <li><span><i class="el-icon-cherry"></i><span class="icon-name">el-icon-cherry</span></span></li>
  338 + <li><span><i class="el-icon-apple"></i><span class="icon-name">el-icon-apple</span></span></li>
  339 + <li><span><i class="el-icon-pear"></i><span class="icon-name">el-icon-pear</span></span></li>
  340 + <li><span><i class="el-icon-orange"></i><span class="icon-name">el-icon-orange</span></span></li>
  341 + <li><span><i class="el-icon-coffee"></i><span class="icon-name">el-icon-coffee</span></span></li>
  342 + <li><span><i class="el-icon-ice-tea"></i><span class="icon-name">el-icon-ice-tea</span></span></li>
  343 + <li><span><i class="el-icon-ice-drink"></i><span class="icon-name">el-icon-ice-drink</span></span></li>
  344 + <li><span><i class="el-icon-milk-tea"></i><span class="icon-name">el-icon-milk-tea</span></span></li>
  345 + <li><span><i class="el-icon-potato-strips"></i><span class="icon-name">el-icon-potato-strips</span></span>
  346 + </li>
  347 + <li><span><i class="el-icon-lollipop"></i><span class="icon-name">el-icon-lollipop</span></span></li>
  348 + <li><span><i class="el-icon-ice-cream-square"></i><span
  349 + class="icon-name">el-icon-ice-cream-square</span></span></li>
  350 + <li><span><i class="el-icon-ice-cream-round"></i><span
  351 + class="icon-name">el-icon-ice-cream-round</span></span></li>
  352 + </ul>
  353 + </div>
  354 +</template>
  355 +
  356 +<script>
  357 + export default {
  358 + name: "ICON"
  359 + }
  360 +</script>
  361 +
  362 +<style lang="scss">
  363 + .myicons{
  364 + ul:not(.timeline) {
  365 + margin: 10px 0;
  366 + padding: 0 0 0 20px;
  367 + font-size: 14px;
  368 + color: #5e6d82;
  369 + line-height: 2em;
  370 + }
  371 +
  372 + ul.icon-list {
  373 + overflow: hidden;
  374 + list-style: none;
  375 + padding: 0!important;
  376 + border: 1px solid #eaeefb;
  377 + border-radius: 4px;
  378 +
  379 + li {
  380 + float: left;
  381 + width: 16.66%;
  382 + text-align: center;
  383 + height: 120px;
  384 + line-height: 120px;
  385 + color: #666;
  386 + font-size: 13px;
  387 + border-right: 1px solid #eee;
  388 + border-bottom: 1px solid #eee;
  389 + margin-right: -1px;
  390 + margin-bottom: -1px;
  391 + }
  392 + }
  393 + }
  394 +</style>
@@ -4,7 +4,7 @@ @@ -4,7 +4,7 @@
4 background-color="#26384c" 4 background-color="#26384c"
5 text-color="#fff" 5 text-color="#fff"
6 active-text-color="#ffd04b" 6 active-text-color="#ffd04b"
7 - style="overflow-y:scroll" 7 + style="overflow-y:scroll;border-right:none;"
8 @open="handleopen" 8 @open="handleopen"
9 @close="handleclose" 9 @close="handleclose"
10 @select="handleselect" 10 @select="handleselect"
@@ -46,9 +46,6 @@ import airlift from './views/nav4/airlift.vue' @@ -46,9 +46,6 @@ import airlift from './views/nav4/airlift.vue'
46 import inquiry from './views/nav4/inquiry.vue' 46 import inquiry from './views/nav4/inquiry.vue'
47 import Page6 from './views/nav3/Page6.vue' 47 import Page6 from './views/nav3/Page6.vue'
48 import Page7 from './views/nav3/Page7.vue' 48 import Page7 from './views/nav3/Page7.vue'
49 -import Dispatch from './views/nav3/Dispatch.vue'  
50 -import DriverInfo from './views/nav3/DriverInfo.vue'  
51 -import VehicleInfo from './views/nav3/VehicleInfo.vue'  
52 import importFFMMsg from './views/airRadioMsg/importFFMMsg.vue' 49 import importFFMMsg from './views/airRadioMsg/importFFMMsg.vue'
53 import importFHLMsg from './views/airRadioMsg/importFHLMsg.vue' 50 import importFHLMsg from './views/airRadioMsg/importFHLMsg.vue'
54 import importFWBMsg from './views/airRadioMsg/importFWBMsg.vue' 51 import importFWBMsg from './views/airRadioMsg/importFWBMsg.vue'
@@ -120,6 +117,12 @@ import Webdialog from './views/bus/Webdialog.vue' @@ -120,6 +117,12 @@ import Webdialog from './views/bus/Webdialog.vue'
120 //国际转运 117 //国际转运
121 import Transport from './views/nav4/Transport.vue' 118 import Transport from './views/nav4/Transport.vue'
122 119
  120 +/* 车辆调度系统 */
  121 +import DriverInfo from "./views/dispatch/DriverInfo";
  122 +import VehicleInfo from "./views/dispatch/VehicleInfo";
  123 +import DispatchNode from "./views/dispatch/DispatchNode";
  124 +import Dispatch from "./views/dispatch/Dispatch";
  125 +
123 126
124 127
125 let routes = [ 128 let routes = [
@@ -480,6 +483,19 @@ let routes = [ @@ -480,6 +483,19 @@ let routes = [
480 {path: '/warehouse', component: Warehouse, name: '仓库管理'}, 483 {path: '/warehouse', component: Warehouse, name: '仓库管理'},
481 ] 484 ]
482 }, 485 },
  486 + {
  487 + path: '/',
  488 + component: Home,
  489 + name: '车辆调度管理',
  490 + iconCls: 'el-icon-truck',
  491 + children: [
  492 + {path: '/dispatch', component: Dispatch, name: '车辆调度'},
  493 + {path: '/dispatchNode', component: DispatchNode, name: '调度记录'},
  494 + {path: '/vehicleInfo', component: VehicleInfo, name: '车辆信息'},
  495 + {path: '/driverInfo', component: DriverInfo, name: '驾驶员信息'},
  496 + // {path: '/companyInfo', component: CompanyInfo, name: '公司信息'},
  497 + ]
  498 + },
483 499
484 { 500 {
485 path: '/empt', 501 path: '/empt',
1 <template> 1 <template>
2 <el-container> 2 <el-container>
3 - <el-aside style="width:250px;background-color: rgb(238, 241, 246)" id="l-menu"> 3 + <el-aside style="width:250px;background-color: rgb(38, 56, 76);" id="l-menu">
4 <NavMenu :collapsed="collapsed"></NavMenu> 4 <NavMenu :collapsed="collapsed"></NavMenu>
5 </el-aside> 5 </el-aside>
6 6
@@ -39,6 +39,8 @@ @@ -39,6 +39,8 @@
39 import TabMenu from "@/components/TabMenu" 39 import TabMenu from "@/components/TabMenu"
40 import NavMenu from "@/components/NavMenu" 40 import NavMenu from "@/components/NavMenu"
41 import loginuserInfo from "@/api/base"; 41 import loginuserInfo from "@/api/base";
  42 + import {mapActions, mapGetters} from 'vuex'
  43 + import jsutil from "@/common/js/util";
42 44
43 export default { 45 export default {
44 46
@@ -74,6 +76,18 @@ @@ -74,6 +76,18 @@
74 } 76 }
75 }, 77 },
76 methods: { 78 methods: {
  79 + ...mapActions( // 语法糖
  80 + ['setUserInfoStore','setUserMenuStore'] // 相当于this.$store.dispatch('modifyName'),提交这个方法
  81 + ),
  82 + initUserInfo:function() {
  83 + if (jsutil.checkNull(this.getUserInfoStore.username)){
  84 + this.sysUserName = this.getUserInfoStore.username || '';
  85 + this.sysUserId=this.getUserInfoStore.userId||'';
  86 + this.sysUserAvatar = this.getUserInfoStore.userface || '~img/faceDefault.jpg';
  87 + }else {
  88 + this.setUserInfoStore(loginuserInfo);
  89 + }
  90 + },
77 reload() { 91 reload() {
78 this.$nextTick(function () { 92 this.$nextTick(function () {
79 this.$router.push({ 93 this.$router.push({
@@ -102,11 +116,21 @@ @@ -102,11 +116,21 @@
102 this.$confirm('确认退出吗?', '提示', { 116 this.$confirm('确认退出吗?', '提示', {
103 //type: 'warning' 117 //type: 'warning'
104 }).then(() => { 118 }).then(() => {
  119 + this.$axios.defaults.headers.common['Authorization'] = undefined;
105 sessionStorage.removeItem('user'); 120 sessionStorage.removeItem('user');
106 sessionStorage.removeItem('menu'); 121 sessionStorage.removeItem('menu');
  122 + //清空菜单
  123 + this.setUserMenuStore([]);
  124 + this.setUserInfoStore({
  125 + userId: 0,
  126 + username: '',
  127 + companyId: 0,
  128 + companyName: '',
  129 + realname: '',
  130 + userface: ''
  131 + });
107 //退出后初始化原来的路由 132 //退出后初始化原来的路由
108 let sysRoutes = JSON.parse(sessionStorage.getItem('sysMenu')); 133 let sysRoutes = JSON.parse(sessionStorage.getItem('sysMenu'));
109 - console.log(sysRoutes);  
110 _this.$router.options.routes = sysRoutes; 134 _this.$router.options.routes = sysRoutes;
111 135
112 _this.$router.push('/login'); 136 _this.$router.push('/login');
@@ -121,23 +145,19 @@ @@ -121,23 +145,19 @@
121 this.collapsed=!this.collapsed; 145 this.collapsed=!this.collapsed;
122 } 146 }
123 }, 147 },
  148 + computed: {
  149 + ...mapGetters(['getUserInfoStore','getUserMenuStore']) // 动态计算属性,相当于this.$store.getters.resturantName
  150 + },
124 mounted() { 151 mounted() {
125 - var _this = this;  
126 - var user = loginuserInfo;  
127 - if (user) {  
128 - this.sysUserName = user.username || '';  
129 - this.sysUserId=user.userId||'';  
130 -  
131 - this.sysUserAvatar = user.userface || '~img/faceDefault.jpg';  
132 - }  
133 //操作路由,判断本地存储的用户栏目列表是否存在,如果存在则加载路由 152 //操作路由,判断本地存储的用户栏目列表是否存在,如果存在则加载路由
134 var userRouters = sessionStorage.getItem('menu'); 153 var userRouters = sessionStorage.getItem('menu');
135 if (userRouters) { 154 if (userRouters) {
136 userRouters = JSON.parse(userRouters); 155 userRouters = JSON.parse(userRouters);
137 _this.$router.options.routes = userRouters; 156 _this.$router.options.routes = userRouters;
138 - console.log("home:");  
139 - console.log(_this.$router.options.routes);  
140 } 157 }
  158 + this.$nextTick(function(){
  159 + this.initUserInfo();
  160 + })
141 }, 161 },
142 watch: { 162 watch: {
143 collapsed(value) { 163 collapsed(value) {
@@ -6,7 +6,7 @@ @@ -6,7 +6,7 @@
6 <el-input type="text" v-model="ruleForm2.account" autofocus placeholder="账号"></el-input> 6 <el-input type="text" v-model="ruleForm2.account" autofocus placeholder="账号"></el-input>
7 </el-form-item> 7 </el-form-item>
8 <el-form-item prop="checkPass"> 8 <el-form-item prop="checkPass">
9 - <el-input type="password" v-model="ruleForm2.checkPass" placeholder="密码" @keyup.enter.native="handleSubmit2"></el-input> 9 + <el-input type="password" v-model="ruleForm2.checkPass" placeholder="密码" @keyup.enter.native="handleSubmit2" show-password></el-input>
10 </el-form-item> 10 </el-form-item>
11 <!-- <el-form-item prop="checkPass">--> 11 <!-- <el-form-item prop="checkPass">-->
12 <!-- <el-input type="password" v-model="ruleForm2.checkPass" placeholder="密码" @keyup.enter.native="handleSubmit2"></el-input>--> 12 <!-- <el-input type="password" v-model="ruleForm2.checkPass" placeholder="密码" @keyup.enter.native="handleSubmit2"></el-input>-->
@@ -38,6 +38,7 @@ @@ -38,6 +38,7 @@
38 import axios from 'axios' 38 import axios from 'axios'
39 import http from '../api/http'; 39 import http from '../api/http';
40 import {getRandCode} from '../api/user'; 40 import {getRandCode} from '../api/user';
  41 + import {mapActions, mapGetters} from 'vuex'
41 //import NProgress from 'nprogress' 42 //import NProgress from 'nprogress'
42 export default { 43 export default {
43 data() { 44 data() {
@@ -46,9 +47,9 @@ @@ -46,9 +47,9 @@
46 fixStyle: '', 47 fixStyle: '',
47 logining: false, 48 logining: false,
48 ruleForm2: { 49 ruleForm2: {
49 - account: 'admin', 50 + account: '',
50 // checkPass: 'zzairport@kako2020' 51 // checkPass: 'zzairport@kako2020'
51 - checkPass: 'vmvnv1v2VV' 52 + checkPass: ''
52 }, 53 },
53 rules2: { 54 rules2: {
54 account: [ 55 account: [
@@ -65,13 +66,16 @@ @@ -65,13 +66,16 @@
65 }; 66 };
66 }, 67 },
67 methods: { 68 methods: {
  69 + ...mapActions( // 语法糖
  70 + ['setUserInfoStore'] // 相当于this.$store.dispatch('modifyName'),提交这个方法
  71 + ),
68 canplay() { 72 canplay() {
69 this.vedioCanPlay = true 73 this.vedioCanPlay = true
70 }, 74 },
71 handleReset2() { 75 handleReset2() {
72 this.$refs.ruleForm2.resetFields(); 76 this.$refs.ruleForm2.resetFields();
73 }, 77 },
74 - handleMenuList : function (router,menu) { 78 + handleMenuList : function (router,menu) {
75 var _this = this; 79 var _this = this;
76 var routerName = ""; 80 var routerName = "";
77 var routerTemp = router.concat(); 81 var routerTemp = router.concat();
@@ -132,6 +136,7 @@ @@ -132,6 +136,7 @@
132 } else if (token) { 136 } else if (token) {
133 sessionStorage.setItem('user', JSON.stringify(authentication)); 137 sessionStorage.setItem('user', JSON.stringify(authentication));
134 sessionStorage.setItem('token','Bearer '+ token); 138 sessionStorage.setItem('token','Bearer '+ token);
  139 + this.setUserInfoStore(authentication);
135 //设置token,设置axios 基本配置,但是刷新后 这个登录保存的就没了 140 //设置token,设置axios 基本配置,但是刷新后 这个登录保存的就没了
136 axios.defaults.headers.common['Authorization'] = 'Bearer '+token; 141 axios.defaults.headers.common['Authorization'] = 'Bearer '+token;
137 //处理用户menu 142 //处理用户menu
@@ -152,7 +157,7 @@ @@ -152,7 +157,7 @@
152 } 157 }
153 }).catch(error => { 158 }).catch(error => {
154 this.$message({ 159 this.$message({
155 - message: error.toString(), 160 + message: error.toString()+"-登录验证失败",
156 type: "error" 161 type: "error"
157 }); 162 });
158 this.logining = false; 163 this.logining = false;
@@ -285,7 +285,7 @@ @@ -285,7 +285,7 @@
285 </template> 285 </template>
286 286
287 <script> 287 <script>
288 - // import {selectDispatchNoteList, dispatch, cancel, getUser} from '../../api/dispatch_api' 288 + import {selectDispatchNoteList, dispatch, cancel, getUser} from '../../api/dispatch_api'
289 289
290 export default { 290 export default {
291 name: 'dispatch_api', 291 name: 'dispatch_api',
  1 +<template>
  2 + <el-container>
  3 + <el-main>
  4 + <!--面包屑导航区域-->
  5 + <!-- <el-breadcrumb separator-class="el-icon-arrow-right">-->
  6 + <!-- <el-breadcrumb-item :to="{ path: '/home' }">首页</el-breadcrumb-item>-->
  7 + <!-- <el-breadcrumb-item>车辆调度</el-breadcrumb-item>-->
  8 + <!-- <el-breadcrumb-item>调度记录</el-breadcrumb-item>-->
  9 + <!-- </el-breadcrumb>-->
  10 +
  11 + <el-card style="background-color: #F5F7FA">
  12 + <!-- 搜素区域 -->
  13 + <div>
  14 + <el-row :gutter="24">
  15 + <el-col :span="5">
  16 + <el-input v-model="queryInfo.userName" prefix-icon="el-icon-search"
  17 + placeholder="请输入用户名称" clearable size="small" style="width:180px"></el-input>
  18 + </el-col>
  19 + <el-col :span="5">
  20 + <el-input v-model="queryInfo.userMobile" prefix-icon="el-icon-search"
  21 + placeholder="请输入联系方式" clearable size="small" style="width:180px"></el-input>
  22 + </el-col>
  23 + <el-col :span="5">
  24 + <el-date-picker v-model="queryInfo.gmtCreate" type="date" value-format="yyyy-MM-dd"
  25 + placeholder="调度创建时间" size="small" style="width:180px"></el-date-picker>
  26 + </el-col>
  27 + <el-col :span="5">
  28 + <el-date-picker v-model="queryInfo.endTime" type="date" value-format="yyyy-MM-dd"
  29 + placeholder="调度完成时间" size="small" style="width:180px"></el-date-picker>
  30 + </el-col>
  31 + </el-row>
  32 + <el-row style="margin-top: 8px;">
  33 + <el-col :span="5">
  34 + <el-select v-model="queryInfo.dispatchType" placeholder="请选择业务类型" size="small" clearable
  35 + style="width:180px">
  36 + <el-option
  37 + v-for="item in dispatchTypeList"
  38 + :key="item.value"
  39 + :label="item.label"
  40 + :value="item.value">
  41 + </el-option>
  42 + </el-select>
  43 + </el-col>
  44 + <el-col :span="5">
  45 + <el-select v-model="queryInfo.status" placeholder="记录状态" size="small" clearable
  46 + style="width:180px;margin-left: 6px">
  47 + <el-option
  48 + v-for="item in statusList"
  49 + :key="item.value"
  50 + :label="item.label"
  51 + :value="item.value">
  52 + </el-option>
  53 + </el-select>
  54 + </el-col>
  55 + <el-button type="primary" @click="getDispatchNodeList" size="small" style="margin-left:10px;">
  56 + 查询调度记录
  57 + </el-button>
  58 + <el-button type="success" @click="addDispatchNodeFormVisible = true" size="small">添加车辆调度记录
  59 + </el-button>
  60 + </el-row>
  61 + </div>
  62 + <!--调度记录列表区域-->
  63 + <div style="margin-top: 20px;">
  64 + <el-table :data="DispatchNoteList" border v-loading="listLoading"
  65 + :row-class-name="rowStatus"
  66 + @selection-change="selsChange"
  67 + element-loading-text="拼命加载中">
  68 + <el-table-column type="selection" width="55" :selectable="isSelectable" align="center"></el-table-column>
  69 + <el-table-column type="index" align="center"></el-table-column>
  70 + <el-table-column label="用户名称" prop="userName" align="center" width="100"></el-table-column>
  71 + <el-table-column label="联系方式" prop="userMobile" align="center" width="120"></el-table-column>
  72 + <el-table-column label="状态" prop="status" align="center" width="120">
  73 + <template slot-scope="scope">
  74 + <span v-if="scope.row.status ==='1'">完成状态</span>
  75 + <span v-if="scope.row.status ==='2'">执行状态</span>
  76 + <span v-if="scope.row.status ==='3'">取消状态</span>
  77 + <span v-if="scope.row.status ==='4'">待执行状态</span>
  78 + </template>
  79 + </el-table-column>
  80 + <el-table-column label="业务类型" align="center" prop="dispatchType" width="120">
  81 + <template slot-scope="scope">
  82 + <span v-if="scope.row.dispatchType ==='1'">进站送货</span>
  83 + <span v-if="scope.row.dispatchType ==='2'">出站提货</span>
  84 + <span v-if="scope.row.dispatchType ==='3'">货物调拨</span>
  85 + <span v-if="scope.row.dispatchType ==='4'">货物流转</span>
  86 + </template>
  87 + </el-table-column>
  88 + <el-table-column label="场站位置" align="center" prop="station" width="120">
  89 + <template slot-scope="scope">
  90 + <span v-if="scope.row.station ==='1'">西货站</span>
  91 + <span v-if="scope.row.station ==='2'">综保区</span>
  92 + <span v-if="scope.row.station ==='3'">军投</span>
  93 + <span v-if="scope.row.station ==='4'">快邮</span>
  94 + </template>
  95 + </el-table-column>
  96 + <el-table-column label="车辆类型" align="center" prop="vehicleType" width="120">
  97 + <template slot-scope="scope">
  98 + <span v-if="scope.row.vehicleType ==='1'">重型货车</span>
  99 + <span v-if="scope.row.vehicleType ==='2'">中型货车</span>
  100 + <span v-if="scope.row.vehicleType ==='3'">轻型货车</span>
  101 + <span v-if="scope.row.vehicleType ==='4'">微型货车</span>
  102 + <span v-if="scope.row.vehicleType ==='5'">拖车</span>
  103 + <span v-if="scope.row.vehicleType ==='6'">叉车</span>
  104 + </template>
  105 + </el-table-column>
  106 + <el-table-column label="车牌号" prop="licensePlateNumber" align="center"
  107 + width="120"></el-table-column>
  108 + <el-table-column label="创建时间" prop="gmtCreate" align="center" width="160"></el-table-column>
  109 + <el-table-column label="开始时间" prop="beginTime" align="center" width="160"></el-table-column>
  110 + <el-table-column label="完成时间" prop="endTime" align="center" width="160"></el-table-column>
  111 + <el-table-column label="操作" width="230px" align="center" fixed="right">
  112 + <template slot-scope="scope">
  113 + <!--编辑按钮-->
  114 + <el-tooltip effect="dark" content="编辑" placement="top-start" :enterable="false"
  115 + style="margin-left: 1px;">
  116 + <el-button type="success" icon="el-icon-check" size="mini" style="width:97px"
  117 + @click="showDialogVisible(scope.$index,scope.row)">编辑
  118 + </el-button>
  119 + </el-tooltip>
  120 + <!--取消调度按钮-->
  121 + <el-tooltip effect="dark" content="删除" placement="top-start" :enterable="false"
  122 + style="margin-left: 1px;">
  123 + <el-button type="danger" icon="el-icon-delete" size="mini" style="width:97px"
  124 + :loading="delLoading"
  125 + :disabled="scope.row.status==='2'"
  126 + @click.native.prevent="removeDispatchNode(scope.$index,scope.row)">删除
  127 + </el-button>
  128 + </el-tooltip>
  129 + <!--开始任务-->
  130 + <el-tooltip effect="dark" content="开始任务" placement="top-start" :enterable="false"
  131 + style="margin-left: 1px;">
  132 + <el-button type="warning" icon="el-icon-star-off" size="mini"
  133 + style="margin-top: 3px;"
  134 + :disabled="scope.row.status!=='4' || scope.row.beginTime !==null"
  135 + :loading="beginLoading"
  136 + @click="startDispatch(scope.$index,scope.row)">开始任务
  137 + </el-button>
  138 + </el-tooltip>
  139 + <!-- 结束任务-->
  140 + <el-tooltip effect="dark" content="结束任务" placement="top-start" :enterable="false"
  141 + style="margin-left: 1px;">
  142 + <el-button type="info" icon="el-icon-message" size="mini"
  143 + :disabled="scope.row.endTime !==null && scope.row.endTime !==''"
  144 + :loading="endLoading"
  145 + @click="completeDispatch(scope.$index,scope.row)">结束任务
  146 + </el-button>
  147 + </el-tooltip>
  148 +
  149 + </template>
  150 + </el-table-column>
  151 + </el-table>
  152 + <!-- 分页区域 -->
  153 + <div style="margin-top: 10px">
  154 + <el-row :gutter="24">
  155 + <el-col :span="5">
  156 + <el-button type="danger" icon="el-icon-delete" @click="batchRemove"
  157 + :disabled="this.sels.length===0">批量删除
  158 + </el-button>
  159 + </el-col>
  160 + <el-col :span="10" style="margin-top: 5px">
  161 + <el-pagination
  162 + @size-change="handleSizeChange"
  163 + @current-change="handleCurrentChange"
  164 + :current-page="queryInfo.pageNum"
  165 + :page-sizes="[10,15,20,50]"
  166 + :page-size="queryInfo.pageSize"
  167 + layout="total, sizes, prev, pager, next, jumper"
  168 + :total="total">
  169 + </el-pagination>
  170 + </el-col>
  171 + </el-row>
  172 + </div>
  173 + </div>
  174 + </el-card>
  175 + <!-- 添加车辆调度记录 -->
  176 + <div>
  177 + <el-dialog title="添加车辆调度记录"
  178 + :visible.sync="addDispatchNodeFormVisible"
  179 + style="margin-top: -50px"
  180 + width="60%" text-align="center" @close="dispatchDialogClosed">
  181 + <el-form :inline="true" :model="addDispatchNodeForm" label-width="120px" status-icon
  182 + :rules="addDispatchNodeFormRules" ref="addDispatchNodeFormRef"
  183 + style="background-color: #F5F7FA" align="center">
  184 + <br>
  185 + <el-form-item label="用户名称:" prop="userName">
  186 + <el-input v-model="addDispatchNodeForm.userName" style="width:200px" size="small" clearable
  187 + placeholder="请输入您的用户名称"></el-input>
  188 + </el-form-item>
  189 + <el-form-item label="联系方式:" prop="userMobile">
  190 + <el-input v-model="addDispatchNodeForm.userMobile" style="width:200px" clearable
  191 + size="small"
  192 + placeholder="请输入您的联系方式"></el-input>
  193 + </el-form-item>
  194 + <el-form-item label="车辆类型:" prop="vehicleType">
  195 + <el-select v-model="addDispatchNodeForm.vehicleType" clearable style="width:200px"
  196 + size="small"
  197 + placeholder="请选择车辆类型">
  198 + <el-option
  199 + v-for="item in vehicleTypeList"
  200 + :key="item.value"
  201 + :label="item.label"
  202 + :value="item.value">
  203 + </el-option>
  204 + </el-select>
  205 + </el-form-item>
  206 + <el-form-item label="车牌号码:" prop="licensePlateNumber">
  207 + <el-input v-model="addDispatchNodeForm.licensePlateNumber" clearable
  208 + style="width:200px;margin-left:0px"
  209 + size="small"
  210 + placeholder="请输入车牌号"></el-input>
  211 + </el-form-item>
  212 + <el-form-item label="场站位置:" prop="station">
  213 + <el-select v-model="addDispatchNodeForm.station" clearable style="width:200px" size="small"
  214 + placeholder="">
  215 + <el-option
  216 + v-for="item in stationList"
  217 + :key="item.value"
  218 + :label="item.label"
  219 + :value="item.value">
  220 + </el-option>
  221 + </el-select>
  222 + </el-form-item>
  223 + <el-form-item label="业务类型:" prop="dispatchType">
  224 + <el-select v-model="addDispatchNodeForm.dispatchType" clearable style="width:200px"
  225 + size="small"
  226 + placeholder="">
  227 + <el-option
  228 + v-for="item in dispatchTypeList"
  229 + :key="item.value"
  230 + :label="item.label"
  231 + :value="item.value">
  232 + </el-option>
  233 + </el-select>
  234 + </el-form-item>
  235 + <el-form-item label="创建时间:" prop="gmtCreate">
  236 + <el-date-picker v-model="addDispatchNodeForm.gmtCreate" clearable type="datetime"
  237 + value-format="yyyy-MM-dd HH:mm:ss"
  238 + placeholder="选择日期" size="small" style="width:200px"></el-date-picker>
  239 + </el-form-item>
  240 + <el-form-item label="开始时间:" prop="beginTime">
  241 + <el-date-picker v-model="addDispatchNodeForm.beginTime" clearable type="datetime"
  242 + value-format="yyyy-MM-dd HH:mm:ss"
  243 + placeholder="选择日期" size="small" style="width:200px"></el-date-picker>
  244 + </el-form-item>
  245 + <el-form-item label="结束时间:" prop="endTime">
  246 + <el-date-picker v-model="addDispatchNodeForm.endTime" type="datetime"
  247 + value-format="yyyy-MM-dd HH:mm:ss"
  248 + placeholder="选择日期" size="small" style="width:200px"></el-date-picker>
  249 + </el-form-item>
  250 + <el-form-item label="记录状态:" prop="status">
  251 + <el-select v-model="addDispatchNodeForm.status" clearable placeholder="记录状态"
  252 + style="width:200px"
  253 + size="small">
  254 + <el-option
  255 + v-for="item in statusList"
  256 + :key="item.value"
  257 + :label="item.label"
  258 + :value="item.value">
  259 + </el-option>
  260 + </el-select>
  261 + </el-form-item>
  262 + <el-form-item label="驾驶人姓名:" prop="driverName">
  263 + <el-input v-model="addDispatchNodeForm.driverName" clearable style="width:200px"
  264 + size="small"
  265 + placeholder=""></el-input>
  266 + </el-form-item>
  267 + <el-form-item label="驾驶人电话:" prop="driverMobile">
  268 + <el-input v-model="addDispatchNodeForm.driverMobile" clearable style="width:200px"
  269 + size="small"
  270 + placeholder=""></el-input>
  271 + </el-form-item>
  272 + </el-form>
  273 + <div slot="footer" class="dialog-footer" style="text-align: center">
  274 + <el-button @click="addDispatchNodeFormVisible = false" size="medium" style="width: 100px">取消
  275 + </el-button>
  276 + <el-button type="primary" @click="addDispatchNote" :loading="addLoading" size="medium"
  277 + style="width: 100px">
  278 + 添加
  279 + </el-button>
  280 + </div>
  281 + </el-dialog>
  282 + </div>
  283 + <!-- 编辑调度记录,对话框 -->
  284 + <div>
  285 + <el-dialog
  286 + style="margin-top: -50px"
  287 + title="编辑调度记录明细"
  288 + :visible.sync="viewDialogVisible"
  289 + text-align="center"
  290 + width="60%"
  291 + @close="editDialogClosed">
  292 +
  293 + <el-form :model="editForm" label-width="120px" status-icon
  294 + :inline="true"
  295 + style="background-color: #F5F7FA;"
  296 + :rules="editFormRules" ref="editFormRef">
  297 + <div style="margin-left: 40px">
  298 + <br>
  299 + <el-form-item label="用户名称:" prop="userName">
  300 + <el-input v-model="editForm.userName" style="width:200px" clearable size="small"
  301 + placeholder="请输入用户名称"></el-input>
  302 + </el-form-item>
  303 + <el-form-item label="联系方式:" prop="userMobile">
  304 + <el-input v-model="editForm.userMobile" style="width:200px" clearable size="small"
  305 + placeholder="请输入您的联系方式"></el-input>
  306 + </el-form-item>
  307 + <el-form-item label="车辆类型:" prop="vehicleType">
  308 + <el-select v-model="editForm.vehicleType" style="width:200px" clearable size="small"
  309 + placeholder="请选择车辆类型">
  310 + <el-option
  311 + v-for="item in vehicleTypeList"
  312 + :key="item.value"
  313 + :label="item.label"
  314 + :value="item.value">
  315 + </el-option>
  316 + </el-select>
  317 + </el-form-item>
  318 + <el-form-item label="车牌号码:" prop="licensePlateNumber">
  319 + <el-input v-model="editForm.licensePlateNumber"
  320 + style="width:200px;margin-left:0px" clearable
  321 + size="small"
  322 + placeholder="请输入车牌号"></el-input>
  323 + </el-form-item>
  324 + <el-form-item label="场站位置:" prop="station">
  325 + <el-select v-model="editForm.station" clearable style="width:200px" size="small"
  326 + placeholder="">
  327 + <el-option
  328 + v-for="item in stationList"
  329 + :key="item.value"
  330 + :label="item.label"
  331 + :value="item.value">
  332 + </el-option>
  333 + </el-select>
  334 + </el-form-item>
  335 + <el-form-item label="业务类型:" prop="dispatchType">
  336 + <el-select v-model="editForm.dispatchType" clearable style="width:200px" size="small"
  337 + placeholder="">
  338 + <el-option
  339 + v-for="item in dispatchTypeList"
  340 + :key="item.value"
  341 + :label="item.label"
  342 + :value="item.value">
  343 + </el-option>
  344 + </el-select>
  345 + </el-form-item>
  346 + <el-form-item label="创建时间:" prop="gmtCreate">
  347 + <el-date-picker v-model="editForm.gmtCreate" type="datetime"
  348 + value-format="yyyy-MM-dd HH:mm:ss"
  349 + placeholder="选择日期" size="small" style="width:200px"></el-date-picker>
  350 + </el-form-item>
  351 + <el-form-item label="开始时间:" prop="beginTime">
  352 + <el-date-picker v-model="editForm.beginTime" type="datetime"
  353 + value-format="yyyy-MM-dd HH:mm:ss"
  354 + placeholder="选择日期" size="small" style="width:200px"></el-date-picker>
  355 + </el-form-item>
  356 + <el-form-item label="结束时间:" prop="endTime">
  357 + <el-date-picker v-model="editForm.endTime" type="datetime"
  358 + value-format="yyyy-MM-dd HH:mm:ss"
  359 + placeholder="选择日期" size="small" style="width:200px"></el-date-picker>
  360 + </el-form-item>
  361 + <el-form-item label="记录状态:" prop="status">
  362 + <el-select v-model="editForm.status" placeholder="记录状态" clearable style="width:200px"
  363 + size="small">
  364 + <el-option
  365 + v-for="item in statusList"
  366 + :key="item.value"
  367 + :label="item.label"
  368 + :value="item.value">
  369 + </el-option>
  370 + </el-select>
  371 + </el-form-item>
  372 + <el-form-item label="驾驶人姓名:" prop="driverName">
  373 + <el-input v-model="editForm.driverName" style="width:200px" clearable size="small"
  374 + placeholder=""></el-input>
  375 + </el-form-item>
  376 + <el-form-item label="驾驶人电话:" prop="driverMobile">
  377 + <el-input v-model="editForm.driverMobile" style="width:200px" clearable size="small"
  378 + placeholder=""></el-input>
  379 + </el-form-item>
  380 + <br>
  381 + </div>
  382 + </el-form>
  383 + <!--底部按钮区域-->
  384 + <span slot="footer" class="dialog-footer">
  385 + <el-button style="width: 100px" @click="viewDialogVisible = false">取消</el-button>
  386 + <el-button type="primary" size="medium" style="width: 100px"
  387 + :loading="editLoading"
  388 + @click="editDispatchNote">编辑</el-button>
  389 + </span>
  390 + </el-dialog>
  391 + </div>
  392 + </el-main>
  393 + </el-container>
  394 +</template>
  395 +
  396 +<script>
  397 + import {
  398 + selectDispatchNoteList,
  399 + insertDispatchNote,
  400 + updateDispatchNote,
  401 + deleteDispatchNote,
  402 + batchRemoveDispatchNode,
  403 + startTask,
  404 + completeTask
  405 + } from "../../api/dispatch_api";
  406 +
  407 + export default {
  408 + name: "dispatch_api",
  409 + created() {
  410 + this.getDispatchNodeList();
  411 + },
  412 + data() {
  413 +
  414 + //验证手机号的自定义规则
  415 + var userMobileValid = (rule, value, callback) => {
  416 + //验证手机号的正则表达式
  417 + const regMobile = /^(0|86|17951)?(13[0-9]|15[0123456789]|17[678]|18[0-9]|14[57])[0-9]{8}$/;
  418 + if (regMobile.test(value)) {
  419 + //合法的手机号
  420 + return callback();
  421 + }
  422 + callback(new Error('请输入合法的手机号'));
  423 + };
  424 + return {
  425 + //搜索区域
  426 + queryInfo: {
  427 + //用户姓名
  428 + userName: '',
  429 + //用户联系方式
  430 + userMobile: '',
  431 + //调度时间
  432 + gmtCreate: undefined,
  433 + //完成时间
  434 + endTime: undefined,
  435 + //业务类型
  436 + dispatchType: '',
  437 + //状态
  438 + status: '',
  439 + //当前的页数
  440 + pageNum: 1,
  441 + //当前每页显示多少条数据
  442 + pageSize: 10
  443 + },
  444 + //所有的调度记录列表
  445 + DispatchNoteList: [],
  446 + //添加调度记录,表单
  447 + addDispatchNodeForm: {
  448 + userName: '',
  449 + userMobile: '',
  450 + //车辆类型
  451 + vehicleType: '2',
  452 + //车牌号
  453 + licensePlateNumber: '',
  454 + //场站位置
  455 + station: '1',
  456 + //调度业务类型
  457 + dispatchType: '1',
  458 + //记录状态
  459 + status: '2',
  460 + //驾驶人姓名
  461 + driverName: '',
  462 + //驾驶人联系方式
  463 + driverMobile: '',
  464 + //开始时间
  465 + gmtCreate: '',
  466 + //结束时间
  467 + endTime: '',
  468 + },
  469 + //编辑记录的表单
  470 + editForm: {},
  471 + //添加调度记录,表单的验证规则对象
  472 + addDispatchNodeFormRules: {
  473 + userName: [
  474 + {required: true, message: '请输入姓名', trigger: ['blur', 'change']},
  475 + ],
  476 + userMobile: [
  477 + {required: true, message: '请输入联系方式', trigger: ['blur', 'change']},
  478 + {validator: userMobileValid, trigger: 'blur'}
  479 + ],
  480 + vehicleType: [
  481 + {required: true, message: '请选择车辆类型', trigger: ['blur', 'change']},
  482 + ],
  483 + licensePlateNumber: [
  484 + {required: true, message: '请输入车牌号', trigger: ['blur', 'change']},
  485 + ],
  486 + vehicleNumber: [
  487 + {required: true, message: '请输入车辆数量', trigger: ['blur', 'change']},
  488 + ],
  489 + station: [
  490 + {required: true, message: '请选择场站位置', trigger: ['blur', 'change']},
  491 + ],
  492 + dispatchType: [
  493 + {required: true, message: '请选择业务类型', trigger: ['blur', 'change']},
  494 + ],
  495 + gmtCreate: [
  496 + {required: true, message: '请选择开始时间', trigger: ['blur', 'change']},
  497 + ],
  498 + // endTime: [
  499 + // {required: true, message: '请选择结束时间', trigger: 'blur'},
  500 + // ],
  501 + status: [
  502 + {required: true, message: '请选择记录状态', trigger: ['blur', 'change']},
  503 + ],
  504 + },
  505 + //编辑调度记录,表单的验证规则对象
  506 + editFormRules: {
  507 + userName: [
  508 + {required: true, message: '请输入姓名', trigger: ['blur', 'change']},
  509 + ],
  510 + userMobile: [
  511 + {required: true, message: '请输入联系方式', trigger: ['blur', 'change']},
  512 + {validator: userMobileValid, trigger: 'blur'}
  513 + ],
  514 + vehicleType: [
  515 + {required: true, message: '请选择车辆类型', trigger: ['blur', 'change']},
  516 + ],
  517 + licensePlateNumber: [
  518 + {required: true, message: '请输入车牌号', trigger: ['blur', 'change']},
  519 + ],
  520 + vehicleNumber: [
  521 + {required: true, message: '请输入驾驶人电话', trigger: ['blur', 'change']},
  522 + ],
  523 + station: [
  524 + {required: true, message: '请选择场站位置', trigger: ['blur', 'change']},
  525 + ],
  526 + dispatchType: [
  527 + {required: true, message: '请选择业务类型', trigger: ['blur', 'change']},
  528 + ],
  529 + // gmtCreate: [
  530 + // {required: true, message: '请选择开始时间', trigger: ['blur', 'change']},
  531 + // ],
  532 + // endTime: [
  533 + // {required: true, message: '请选择结束时间', trigger: ['blur', 'change']},
  534 + // ],
  535 + status: [
  536 + {required: true, message: '请选择记录状态', trigger: ['blur', 'change']},
  537 + ],
  538 + },
  539 + //控制添加用户对话框的显示与隐藏
  540 + addDispatchNodeFormVisible: false,
  541 + //控制编辑调度记录明细,对话框的显示与隐藏
  542 + viewDialogVisible: false,
  543 + //记录的总条数
  544 + total: 0,
  545 + /* 批量删除的选中列表 */
  546 + sels: [],
  547 + /* 列表加载 */
  548 + listLoading: false,
  549 + /* 添加加载 */
  550 + addLoading: false,
  551 + /* 编辑加载 */
  552 + editLoading: false,
  553 + /* 删除加载 */
  554 + delLoading: false,
  555 + /* 开始调度加载 */
  556 + beginLoading: false,
  557 + /* 结束调度加载 */
  558 + endLoading: false,
  559 + //业务类型 选项列表
  560 + dispatchTypeList: [
  561 + {
  562 + value: '1',
  563 + label: '进站送货'
  564 + },
  565 + {
  566 + value: '2',
  567 + label: '出站提货'
  568 + },
  569 + {
  570 + value: '3',
  571 + label: '货物流转'
  572 + },
  573 + {
  574 + value: '4',
  575 + label: '货物调拨'
  576 + }
  577 + ],
  578 + //车辆类型,选项列表
  579 + vehicleTypeList: [
  580 + {
  581 + value: '1',
  582 + label: '重型货车'
  583 + },
  584 + {
  585 + value: '2',
  586 + label: '中型货车'
  587 + },
  588 + {
  589 + value: '3',
  590 + label: '经济货车'
  591 + },
  592 + {
  593 + value: '4',
  594 + label: '微型货车'
  595 + },
  596 + {
  597 + value: '5',
  598 + label: '拖车'
  599 + },
  600 + {
  601 + value: '6',
  602 + label: '叉车'
  603 + }
  604 + ],
  605 + /**
  606 + * 场站位置,选项列表
  607 + */
  608 + stationList: [
  609 + {
  610 + value: '1',
  611 + label: '西货站'
  612 + },
  613 + {
  614 + value: '2',
  615 + label: '综保区'
  616 + },
  617 + {
  618 + value: '3',
  619 + label: '军投'
  620 + },
  621 + {
  622 + value: '4',
  623 + label: '快邮'
  624 + }
  625 + ],
  626 + //记录状态 选项列表
  627 + statusList: [
  628 + {
  629 + value: '1',
  630 + label: '完成状态'
  631 + },
  632 + {
  633 + value: '2',
  634 + label: '执行状态'
  635 + },
  636 + {
  637 + value: '3',
  638 + label: '取消状态'
  639 + },
  640 + {
  641 + value: '4',
  642 + label: "待执行状态"
  643 + }
  644 + ],
  645 +
  646 + }
  647 + },
  648 + methods: {
  649 + /**
  650 + * 管理员端,获取车辆调度记录列表
  651 + */
  652 + getDispatchNodeList() {
  653 + //开启加载
  654 + this.listLoading = true;
  655 + selectDispatchNoteList(this.queryInfo).then((response) => {
  656 + let res = response.data;
  657 + if (res.code !== '200') {
  658 + //关闭加载
  659 + this.listLoading = false;
  660 + return this.$message.error('获取车辆调度列表失败');
  661 + }
  662 + // 获取车辆调度列表数据
  663 + this.DispatchNoteList = res.data.list;
  664 + // 获取列表的总记录数
  665 + this.total = res.data.total;
  666 + //关闭加载
  667 + this.listLoading = false;
  668 + this.$message.success('获取车辆调度列表,成功');
  669 + }).catch(error => {
  670 + this.listLoading = false;
  671 + this.$message.error(error.toString());
  672 + });
  673 + },
  674 + /**
  675 + * 管理员端,添加车辆调度记录
  676 + */
  677 + addDispatchNote() {
  678 + /*进行表单的预验证*/
  679 + this.$refs.addDispatchNodeFormRef.validate(valid => {
  680 + // 未通过,表单预校验
  681 + if (!valid) return;
  682 + // 通过,表单预检验,发起添加车辆调度记录的网络请求
  683 + this.addLoading = true;
  684 + insertDispatchNote(this.addDispatchNodeForm).then((response) => {
  685 + let res = response.data;
  686 + //添加调度记录信息,失败
  687 + if (res.code !== '200'){
  688 + //关闭加载
  689 + this.addLoading = false;
  690 + return this.$message.error('添加调度记录信息,失败');
  691 + }
  692 + //添加调度记录信息,成功
  693 + this.$message.success('添加调度记录信息,成功');
  694 + //关闭加载
  695 + this.addLoading = false;
  696 + //隐藏对话框
  697 + this.addDispatchNodeFormVisible = false;
  698 + //刷新车辆调度记录列表
  699 + this.getDispatchNodeList();
  700 + }).catch(error => {
  701 + this.addLoading = false;
  702 + this.$message.error(error.toString());
  703 + });
  704 + })
  705 + },
  706 + /**
  707 + * 管理员端,删除车辆调度记录
  708 + */
  709 + removeDispatchNode(index, row) {
  710 + //弹框询问是否删除车辆调度记录
  711 + this.$confirm('此操作永久删除该车辆调度记录, 是否继续?', '警告', {
  712 + confirmButtonText: '确定删除',
  713 + cancelButtonText: '取消',
  714 + type: 'warning'
  715 + }
  716 + ).then(() => {
  717 + //开启加载
  718 + this.delLoading = true;
  719 + deleteDispatchNote(row).then((response) => {
  720 + let res = response.data;
  721 + if (res.code !== '200') {
  722 + this.delLoading = false;
  723 + return this.$message.error('删除车辆调度记录,失败');
  724 + }
  725 + this.$message.success('删除车辆调度记录,成功!');
  726 + this.delLoading = false;
  727 + //刷新车辆调度记录列表
  728 + this.getDispatchNodeList();
  729 + }).catch(error => {
  730 + this.delLoading = false;
  731 + this.$message.error(error.toString());
  732 + });
  733 + }).catch(() => {
  734 + });
  735 + },
  736 + /**
  737 + * 管理员端,编辑车辆调度记录
  738 + */
  739 + editDispatchNote() {
  740 + /*进行表单的预验证*/
  741 + this.$refs.editFormRef.validate(valid => {
  742 + // 未通过,表单预校验
  743 + if (!valid) return;
  744 + // 通过,表单预检验,开启加载
  745 + this.editLoading = true;
  746 + updateDispatchNote(this.editForm).then((response) => {
  747 + let res = response.data;
  748 + if (res.code !== '200') {
  749 + //关闭加载
  750 + this.editLoading = false;
  751 + return this.$message.error('修改车辆调度记录信息,失败');
  752 + }
  753 + this.$message.success('修改车辆调度记录信息,成功!');
  754 + //关闭加载
  755 + this.editLoading = false;
  756 + //关闭编辑车辆调度记录对话框
  757 + this.viewDialogVisible = false;
  758 + //刷新车辆调度列表
  759 + this.getDispatchNodeList();
  760 + }).catch(error => {
  761 + this.editLoading = false;
  762 + this.$message.error(error.toString());
  763 + });
  764 + });
  765 + },
  766 + /**
  767 + * 管理员端,手动,开始调度任务
  768 + */
  769 + startDispatch(index, row) {
  770 + //开启加载
  771 + this.beginLoading = true;
  772 + startTask(row).then((response) => {
  773 + let res = response.data;
  774 + if (res.code !== '200') {
  775 + //关闭加载
  776 + this.beginLoading = false;
  777 + return this.$message.error('手动开始调度任务,失败');
  778 + }
  779 + //关闭加载
  780 + this.beginLoading = false;
  781 + this.$message.success('手动开始调度任务,成功!');
  782 + //刷新车辆调度列表
  783 + this.getDispatchNodeList();
  784 + }).catch(error => {
  785 + this.beginLoading = false;
  786 + this.$message.error(error.toString());
  787 + });
  788 + },
  789 + /**
  790 + * 管理员端,手动,完成调度任务
  791 + */
  792 + completeDispatch(index, row) {
  793 + //开启加载
  794 + this.endLoading = true;
  795 + completeTask(row).then((response) => {
  796 + let res = response.data;
  797 + if (res.code !== '200') {
  798 + //关闭加载
  799 + this.endLoading = false;
  800 + return this.$message.error('手动完成调度任务,失败');
  801 + }
  802 + //关闭加载
  803 + this.endLoading = false;
  804 + this.$message.success('手动完成调度任务,成功!');
  805 + //刷新车辆调度列表
  806 + this.getDispatchNodeList();
  807 + }).catch(error => {
  808 + this.endLoading = false;
  809 + this.$message.error(error.toString());
  810 + });
  811 + },
  812 + /**
  813 + * 批量删除,之前的选中
  814 + */
  815 + selsChange: function (sels) {
  816 + this.sels = sels;
  817 + },
  818 + /**
  819 + * 车辆状态为执行状态的时候,无法被选中
  820 + */
  821 + isSelectable(row, index) {
  822 + if (row.status === '2') {
  823 + return false;
  824 + } else {
  825 + return true;
  826 + }
  827 + },
  828 + /**
  829 + * 批量删除功能
  830 + */
  831 + batchRemove() {
  832 + var ids = this.sels.map(item => item.id).toString();
  833 + console.log(ids);
  834 + //弹框询问是否批量删除选中的车辆调度记录
  835 + this.$confirm('此操作永久删除选中的车辆调度记录, 是否继续?', '警告', {
  836 + confirmButtonText: '确定删除',
  837 + cancelButtonText: '取消',
  838 + type: 'warning'
  839 + }
  840 + ).then(() => {
  841 + //开启加载
  842 + this.listLoading = true;
  843 + let params = {ids: ids};
  844 + batchRemoveDispatchNode(params).then(response => {
  845 + let res = response.data;
  846 + if (res.code !== '200') {
  847 + this.listLoading = false;
  848 + return this.$message.error('删除车辆调度记录,失败');
  849 + }
  850 + this.$message.success('删除车辆调度记录,成功!');
  851 + this.listLoading = false;
  852 + //刷新车辆调度记录列表
  853 + this.getDispatchNodeList();
  854 + }).catch(error => {
  855 + this.delLoading = false;
  856 + this.$message.error(error.toString());
  857 + });
  858 + }).catch(() => {
  859 + });
  860 + },
  861 + //监听,我要调度车辆,对话框的关闭事件
  862 + dispatchDialogClosed() {
  863 + //重置对话框
  864 + this.$refs.addDispatchNodeFormRef.resetFields();
  865 + },
  866 + //监听,编辑调度记录,对话框的关闭事件
  867 + editDialogClosed() {
  868 + //重置对话框
  869 + this.$refs.editFormRef.resetFields();
  870 + },
  871 + //监听pageSize改变的事件
  872 + handleSizeChange(newSize) {
  873 + this.queryInfo.pageSize = newSize;
  874 + //刷新车辆调度记录列表
  875 + this.getDispatchNodeList();
  876 + },
  877 + //监听当前页码值改变的事件
  878 + handleCurrentChange(newPage) {
  879 + this.queryInfo.pageNum = newPage;
  880 + //刷新车辆调度记录列表
  881 + this.getDispatchNodeList();
  882 + },
  883 +
  884 + /**
  885 + * 打开编辑调度记录,对话框
  886 + * @param index
  887 + * @param row:该行的数据对象
  888 + */
  889 + showDialogVisible(index, row) {
  890 + this.editForm = Object.assign({}, row);
  891 + this.viewDialogVisible = true;
  892 + },
  893 + /**
  894 + * 根据状态的不同区分颜色
  895 + *
  896 + * @param row
  897 + * @param rowIndex
  898 + */
  899 + rowStatus({row, rowIndex}) {
  900 + if (row.status === '1') {
  901 + return 'success-row';
  902 + }
  903 + if (row.status === '2') {
  904 + return 'run-row';
  905 + }
  906 + if (row.status === '3') {
  907 + return 'cancel-row';
  908 + }
  909 + if (row.status === '4') {
  910 + return 'await-row';
  911 + }
  912 + }
  913 + }
  914 + }
  915 +</script>
  916 +<style>
  917 + /* 完成状态 */
  918 + .el-table .success-row {
  919 + background: rgba(64, 158, 255, 0.2);
  920 + }
  921 +
  922 + /* 执行状态 */
  923 + .el-table .run-row {
  924 + background: rgba(103, 194, 58, 0.2);
  925 + }
  926 +
  927 + /* 取消状态 */
  928 + .el-table .cancel-row {
  929 + background: rgba(144, 147, 153, 0.2);
  930 + }
  931 +
  932 + /* 待执行状态 */
  933 + .el-table .await-row {
  934 + background: rgba(230, 162, 60, 0.2);
  935 + }
  936 +</style>
@@ -257,13 +257,13 @@ @@ -257,13 +257,13 @@
257 </template> 257 </template>
258 258
259 <script> 259 <script>
260 - // import {  
261 - // selectDriverInfoList,  
262 - // insertDriverInfo,  
263 - // updateDriverInfo,  
264 - // batchRemoveDriverInfo,  
265 - // deleteDriverInfo,  
266 - // } from "../../api/dispatch_api"; 260 + import {
  261 + selectDriverInfoList,
  262 + insertDriverInfo,
  263 + updateDriverInfo,
  264 + batchRemoveDriverInfo,
  265 + deleteDriverInfo,
  266 + } from "../../api/dispatch_api";
267 267
268 export default { 268 export default {
269 name: "dispatch_api", 269 name: "dispatch_api",
@@ -288,13 +288,13 @@ @@ -288,13 +288,13 @@
288 </template> 288 </template>
289 289
290 <script> 290 <script>
291 - // import {  
292 - // selectVehicleInfoList,  
293 - // insertVehicleInfo,  
294 - // updateVehicleInfo,  
295 - // batchRemoveVehicleInfo,  
296 - // deleteVehicleInfo, deleteDispatchNote  
297 - // } from "../../api/dispatch_api"; 291 + import {
  292 + selectVehicleInfoList,
  293 + insertVehicleInfo,
  294 + updateVehicleInfo,
  295 + batchRemoveVehicleInfo,
  296 + deleteVehicleInfo, deleteDispatchNote
  297 + } from "../../api/dispatch_api";
298 298
299 export default { 299 export default {
300 name: "dispatch_api", 300 name: "dispatch_api",
@@ -4,13 +4,16 @@ @@ -4,13 +4,16 @@
4 <el-col :span="24" class="toolbar" style="padding-bottom: 0px;"> 4 <el-col :span="24" class="toolbar" style="padding-bottom: 0px;">
5 <el-form :inline="true" :model="filters"> 5 <el-form :inline="true" :model="filters">
6 <el-form-item> 6 <el-form-item>
7 - <el-input v-model="filters.name" placeholder="权限名称"></el-input> 7 + <el-input v-model="filters.name" placeholder="权限名称">
  8 + <template slot="prepend">权限名称</template>
  9 + </el-input>
  10 +
8 </el-form-item> 11 </el-form-item>
9 <el-form-item> 12 <el-form-item>
10 - <el-button type="primary" v-on:click="getTableList()">查询</el-button> 13 + <el-button type="primary" v-on:click="getTableList()" icon="el-icon-search">查&emsp;&emsp;询</el-button>
11 </el-form-item> 14 </el-form-item>
12 <el-form-item> 15 <el-form-item>
13 - <el-button type="primary" @click="handleAdd">新增</el-button> 16 + <el-button type="success" @click="handleAdd" icon="el-icon-document">新&emsp;&emsp;增</el-button>
14 </el-form-item> 17 </el-form-item>
15 </el-form> 18 </el-form>
16 </el-col> 19 </el-col>
@@ -34,18 +37,19 @@ @@ -34,18 +37,19 @@
34 </el-table-column> 37 </el-table-column>
35 <el-table-column prop="name" label="权限名称" min-width="150" sortable> 38 <el-table-column prop="name" label="权限名称" min-width="150" sortable>
36 </el-table-column> 39 </el-table-column>
37 - <el-table-column prop="description" label="描述" min-width="120" sortable>  
38 - </el-table-column> 40 +<!-- <el-table-column prop="description" label="描述" min-width="120" sortable>-->
  41 +<!-- </el-table-column>-->
39 <el-table-column prop="ismenu" label="是否目录" width="100" :formatter="formatState" sortable> 42 <el-table-column prop="ismenu" label="是否目录" width="100" :formatter="formatState" sortable>
40 </el-table-column> 43 </el-table-column>
41 <el-table-column prop="path" label="访问路径" width="300" sortable> 44 <el-table-column prop="path" label="访问路径" width="300" sortable>
42 </el-table-column> 45 </el-table-column>
43 <el-table-column prop="permissionOrder" label="排序" width="100" sortable> 46 <el-table-column prop="permissionOrder" label="排序" width="100" sortable>
44 </el-table-column> 47 </el-table-column>
45 - <el-table-column label="操作" min-width="100" fixed="right"> 48 + <el-table-column label="操作" min-width="150" fixed="right">
46 <template slot-scope="scope"> 49 <template slot-scope="scope">
47 - <el-button size="small" @click="handleEdit(scope.$index, scope.row)">编辑</el-button>  
48 - <el-button type="danger" size="small" @click="handleDel(scope.$index, scope.row)">删除</el-button> 50 + <el-button size="mini" @click="handleEdit(scope.$index, scope.row)">编辑</el-button>
  51 + <el-button type="success" @click="handleEdit(scope.$index, scope.row)">白名单</el-button>
  52 + <el-button type="danger" @click="handleDel(scope.$index, scope.row)">删除</el-button>
49 </template> 53 </template>
50 </el-table-column> 54 </el-table-column>
51 </el-table> 55 </el-table>
@@ -84,17 +88,17 @@ @@ -84,17 +88,17 @@
84 </el-row> 88 </el-row>
85 <el-row :gutter="20"> 89 <el-row :gutter="20">
86 <el-col> 90 <el-col>
87 - <el-form-item label="权限总路径" prop="path"> 91 + <el-form-item label="菜单访问路径" prop="path">
88 <el-input v-model="addForm.path" auto-complete="off" placeholder="设置为前端router的path值"></el-input> 92 <el-input v-model="addForm.path" auto-complete="off" placeholder="设置为前端router的path值"></el-input>
89 - <el-cascader-panel  
90 - v-model="addForm.path"  
91 - :options="cascaderOptions"  
92 - :props="pannelProps"  
93 - ></el-cascader-panel> 93 +<!-- <el-cascader-panel-->
  94 +<!-- v-model="addForm.path"-->
  95 +<!-- :options="cascaderOptions"-->
  96 +<!-- :props="pannelProps"-->
  97 +<!-- ></el-cascader-panel>-->
94 </el-form-item> 98 </el-form-item>
95 </el-col> 99 </el-col>
96 </el-row> 100 </el-row>
97 - <el-form-item label="具体访问路径" prop="url"> 101 + <el-form-item label="接口访问路径" prop="url">
98 <el-input v-model="addForm.url" auto-complete="off" placeholder="设置为后端微服务路径:例如:/cloud-user-center/user/update"></el-input> 102 <el-input v-model="addForm.url" auto-complete="off" placeholder="设置为后端微服务路径:例如:/cloud-user-center/user/update"></el-input>
99 <el-cascader-panel 103 <el-cascader-panel
100 v-model="addForm.url" 104 v-model="addForm.url"
@@ -436,7 +440,7 @@ @@ -436,7 +440,7 @@
436 } 440 }
437 }, 441 },
438 tableRowClassName({row, rowIndex}) { 442 tableRowClassName({row, rowIndex}) {
439 - if (row.parentId == 0) { 443 + if (row.parentId === 0 || row.ismenu) {
440 return 'warning-row'; 444 return 'warning-row';
441 } else { 445 } else {
442 return 'success-row'; 446 return 'success-row';
@@ -4,16 +4,20 @@ @@ -4,16 +4,20 @@
4 <el-col :span="24" class="toolbar" style="padding-bottom: 0px;"> 4 <el-col :span="24" class="toolbar" style="padding-bottom: 0px;">
5 <el-form :inline="true" :model="filters"> 5 <el-form :inline="true" :model="filters">
6 <el-form-item> 6 <el-form-item>
7 - <el-input v-model="filters.realName" placeholder="姓名"></el-input> 7 + <el-input v-model="filters.realName" placeholder="真实姓名">
  8 + <template slot="prepend">姓名</template>
  9 + </el-input>
8 </el-form-item> 10 </el-form-item>
9 <el-form-item> 11 <el-form-item>
10 - <el-input v-model="filters.userName" placeholder="账号"></el-input> 12 + <el-input v-model="filters.userName" placeholder="登录账号">
  13 + <template slot="prepend">账号</template>
  14 + </el-input>
11 </el-form-item> 15 </el-form-item>
12 <el-form-item> 16 <el-form-item>
13 - <el-button type="primary" v-on:click="getUsers">查询</el-button> 17 + <el-button type="primary" v-on:click="getUsers" icon="el-icon-search">查询</el-button>
14 </el-form-item> 18 </el-form-item>
15 <el-form-item> 19 <el-form-item>
16 - <el-button type="primary" @click="handleAdd">新增</el-button> 20 + <el-button type="success" @click="handleAdd" icon="el-icon-document">新增</el-button>
17 </el-form-item> 21 </el-form-item>
18 </el-form> 22 </el-form>
19 </el-col> 23 </el-col>
@@ -23,7 +27,7 @@ @@ -23,7 +27,7 @@
23 @selection-change="selsChange" 27 @selection-change="selsChange"
24 tooltip-effect="dark" 28 tooltip-effect="dark"
25 style="border-radius: 10px 10px 0px 0px;line-height: 25px;" 29 style="border-radius: 10px 10px 0px 0px;line-height: 25px;"
26 - :header-cell-style="{background:'#6F8294',color:'#FFFFFF'}" size="small"> 30 + :header-cell-style="{background:'#6F8294',color:'#FFFFFF'}" >
27 <el-table-column type="selection" width="55"> 31 <el-table-column type="selection" width="55">
28 </el-table-column> 32 </el-table-column>
29 <!--<el-table-column type="index" width="60">--> 33 <!--<el-table-column type="index" width="60">-->
@@ -42,17 +46,17 @@ @@ -42,17 +46,17 @@
42 </el-table-column> 46 </el-table-column>
43 <el-table-column prop="updatetime" label="更新时间" width="170" sortable> 47 <el-table-column prop="updatetime" label="更新时间" width="170" sortable>
44 </el-table-column> 48 </el-table-column>
45 - <el-table-column prop="address" label="地址" min-width="180">  
46 - </el-table-column>  
47 - <el-table-column prop="email" label="Email" min-width="180">  
48 - </el-table-column> 49 +<!-- <el-table-column prop="address" label="地址" min-width="180">-->
  50 +<!-- </el-table-column>-->
  51 +<!-- <el-table-column prop="email" label="Email" min-width="180">-->
  52 +<!-- </el-table-column>-->
49 <el-table-column prop="state" label="启用" width="100" :formatter="formatState" sortable> 53 <el-table-column prop="state" label="启用" width="100" :formatter="formatState" sortable>
50 </el-table-column> 54 </el-table-column>
51 <el-table-column label="操作" width="250" fixed="right"> 55 <el-table-column label="操作" width="250" fixed="right">
52 <template slot-scope="scope"> 56 <template slot-scope="scope">
53 - <el-button size="small" @click="roleEdit(scope.$index, scope.row)">角色配置</el-button>  
54 - <el-button size="small" @click="handleEdit(scope.$index, scope.row)">编辑</el-button>  
55 - <el-button type="danger" size="small" @click="handleDel(scope.$index, scope.row)">删除</el-button> 57 + <el-button @click="handleEdit(scope.$index, scope.row)">编辑</el-button>
  58 + <el-button type="info" @click="roleEdit(scope.$index, scope.row)">角色配置</el-button>
  59 + <el-button type="danger" @click="handleDel(scope.$index, scope.row)">删除</el-button>
56 </template> 60 </template>
57 </el-table-column> 61 </el-table-column>
58 </el-table> 62 </el-table>
@@ -64,124 +68,126 @@ @@ -64,124 +68,126 @@
64 </el-pagination> 68 </el-pagination>
65 </el-col> 69 </el-col>
66 70
67 - <!--编辑界面-->  
68 - <el-dialog title="编辑" :visible.sync="editFormVisible" :close-on-click-modal="false">  
69 - <el-form :model="editForm" label-width="80px" :rules="editFormRules" ref="editForm">  
70 -  
71 - <el-form-item label="所属公司" prop="companyId">  
72 - <el-select v-model="editForm.companyId" filterable placeholder="请选择">  
73 - <el-option  
74 - v-for="item in options"  
75 - :key="item.roleId"  
76 - :label="item.roleName"  
77 - :value="item.roleId">  
78 - </el-option>  
79 - </el-select>  
80 - </el-form-item> 71 + <!--新增界面-->
  72 + <el-dialog :title="dialogMap[dialogStatus]" :visible.sync="addFormVisible" :close-on-click-modal="false">
  73 + <el-form :model="addForm" label-width="80px" ref="addForm" class="user-form">
  74 +<!-- <el-form-item label="所属公司" prop="companyId">-->
  75 +<!-- <el-select v-model="addForm.companyId" filterable placeholder="请选择">-->
  76 +<!-- <el-option-->
  77 +<!-- v-for="item in options"-->
  78 +<!-- :key="item.roleId"-->
  79 +<!-- :label="item.roleName"-->
  80 +<!-- :value="item.roleId">-->
  81 +<!-- </el-option>-->
  82 +<!-- </el-select>-->
  83 +<!-- </el-form-item>-->
81 <el-form-item label="ID"> 84 <el-form-item label="ID">
82 - <span>{{editForm.userId}}</span>  
83 - </el-form-item>  
84 - <el-form-item label="账号">  
85 - <span>{{editForm.username}}</span>  
86 - </el-form-item>  
87 - <el-form-item label="密码" prop="password">  
88 - <el-input v-model="editForm.password" auto-complete="off" type="password" show-password></el-input>  
89 - </el-form-item>  
90 - <el-form-item label="姓名" prop="realname">  
91 - <el-input v-model="editForm.realname" auto-complete="off"></el-input>  
92 - </el-form-item>  
93 - <el-form-item label="电话" prop="mobilephone">  
94 - <el-input v-model="editForm.mobilephone" auto-complete="off"></el-input>  
95 - </el-form-item>  
96 - <el-form-item label="Email" prop="email">  
97 - <el-input v-model="editForm.email" auto-complete="off"></el-input>  
98 - </el-form-item>  
99 - <el-form-item label="性别">  
100 - <el-radio-group v-model="editForm.sex">  
101 - <el-radio class="radio" label="1" >男</el-radio>  
102 - <el-radio class="radio" label="0" >女</el-radio>  
103 - </el-radio-group>  
104 - </el-form-item>  
105 - <el-form-item label="年龄">  
106 - <el-input-number v-model="editForm.age" :min="0" :max="200"></el-input-number>  
107 - </el-form-item>  
108 - <!--<el-form-item label="创建日期">-->  
109 - <!--<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>-->  
110 - <!--</el-form-item>-->  
111 - <el-form-item label="地址">  
112 - <el-input type="textarea" v-model="editForm.address"></el-input> 85 + <span>{{addForm.userId}}</span>
113 </el-form-item> 86 </el-form-item>
114 - <el-form-item label="启用">  
115 - <el-radio-group v-model="editForm.state">  
116 - <el-radio class="radio" label="true" >是</el-radio>  
117 - <el-radio class="radio" label="false" >否</el-radio>  
118 - </el-radio-group>  
119 - </el-form-item>  
120 - <el-form-item lable="头像">  
121 - <el-upload  
122 - class="avatar-uploader"  
123 - action="http://127.0.0.1:7003/upload"  
124 - :show-file-list="true"  
125 - accept="image/jpeg,image/jpg,image/png"  
126 - :on-success="handleAvatarSuccess"  
127 - :before-upload="beforeAvatarUpload" 87 + <el-row>
  88 + <el-col :span="12">
  89 + <el-form-item label=" " prop="username" :rules="addFormRules.username">
  90 + <el-input v-model="addForm.username" aria-placeholder="用户名长度在5-11位,支持英文和数字">
  91 + <template slot="prepend">账&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;号</template>
  92 + </el-input>
  93 + </el-form-item>
  94 + </el-col>
  95 + <el-col :span="12">
  96 + <el-form-item label=" " prop="realname">
  97 + <el-input v-model="addForm.realname">
  98 + <template slot="prepend">姓&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;名</template>
  99 + </el-input>
  100 + </el-form-item>
  101 + </el-col>
  102 + </el-row>
  103 + <el-row>
  104 + <el-col :span="12">
  105 + <el-form-item label=" " prop="password" :rules="dialogStatus==='update'?[{ required: false}]:addFormRules.password">
  106 + <el-input v-model="addForm.password" type="password" show-password :disabled="dialogStatus==='update'">
  107 + <template slot="prepend">密&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;码</template>
  108 + </el-input>
  109 + </el-form-item>
  110 + </el-col>
  111 + <el-col :span="12">
  112 + <el-form-item label=" " prop="checkPass" :rules="dialogStatus==='update'?[{ required: false}]:addFormRules.checkPass">
  113 + <el-input v-model="addForm.checkPass" type="password" show-password :disabled="dialogStatus==='update'">
  114 + <template slot="prepend">确认密码</template>
  115 + </el-input>
  116 + </el-form-item>
  117 + </el-col>
  118 + </el-row>
  119 + <el-row>
  120 + <el-col :span="12">
  121 + <el-form-item label=" " prop="email">
  122 + <el-input v-model="addForm.email">
  123 + <template slot="prepend">Email&nbsp;&nbsp;&nbsp;&nbsp;</template>
  124 + </el-input>
  125 + </el-form-item>
  126 + </el-col>
  127 + <el-col :span="12">
  128 + <el-form-item label=" " prop="address">
  129 + <el-input v-model="addForm.address">
  130 + <template slot="prepend">地&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;址</template>
  131 + </el-input>
  132 + </el-form-item>
  133 + </el-col>
  134 + </el-row>
  135 + <el-row>
  136 + <el-col :span="12">
  137 + <el-form-item label=" " prop="mobilephone">
  138 + <el-input v-model="addForm.mobilephone">
  139 + <template slot="prepend">电&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;话</template>
  140 + </el-input>
  141 + </el-form-item>
  142 + </el-col>
  143 + </el-row>
  144 + <el-divider></el-divider>
  145 + <el-row>
  146 + <el-col :span="12">
  147 + <el-form-item label="性别" prop="sex">
  148 + <el-radio-group v-model="addForm.sex">
  149 + <el-radio class="radio" :label="1">男</el-radio>
  150 + <el-radio class="radio" :label="0">女</el-radio>
  151 + </el-radio-group>
  152 + </el-form-item>
  153 + </el-col>
  154 + <el-col :span="12">
  155 + <el-form-item label="启用" prop="state">
  156 + <el-radio-group v-model="addForm.state">
  157 + <el-radio class="radio" :label="true" >是</el-radio>
  158 + <el-radio class="radio" :label="false" >否</el-radio>
  159 + </el-radio-group>
  160 + </el-form-item>
  161 + </el-col>
  162 + </el-row>
  163 + <el-row>
  164 + <el-col :span="24">
  165 + <el-form-item label="年龄" prop="age">
  166 + <el-input-number v-model="addForm.age" :min="0" :max="200"></el-input-number>
  167 + </el-form-item>
  168 + </el-col>
  169 + </el-row>
  170 + <el-row>
  171 + <el-col :span="24">
  172 + <el-form-item lable="头像" prop="userface">
  173 + <el-upload
  174 + class="avatar-uploader"
  175 + action="http://127.0.0.1:7003/upload"
  176 + :show-file-list="true"
  177 + accept="image/jpeg,image/jpg,image/png"
  178 + :on-success="handleAvatarSuccess"
  179 + :before-upload="beforeAvatarUpload"
128 > 180 >
129 - <img v-if="faceImageUrl" :src="faceImageUrl" class="avatar">  
130 - <i v-else class="el-icon-plus avatar-uploader-icon"></i>  
131 - </el-upload>  
132 - </el-form-item>  
133 - </el-form>  
134 - <div slot="footer" class="dialog-footer">  
135 - <el-button @click.native="editFormVisible = false">取消</el-button>  
136 - <el-button type="primary" @click.native="editSubmit" :loading="editLoading">提交</el-button>  
137 - </div>  
138 - </el-dialog>  
139 -  
140 - <!--新增界面-->  
141 - <el-dialog title="新增" :visible.sync="addFormVisible" :close-on-click-modal="false">  
142 - <el-form :model="addForm" label-width="80px" :rules="addFormRules" ref="addForm">  
143 -  
144 - <el-form-item label="所属公司" prop="companyId">  
145 - <el-select v-model="addForm.companyId" filterable placeholder="请选择">  
146 - <el-option  
147 - v-for="item in options"  
148 - :key="item.roleId"  
149 - :label="item.roleName"  
150 - :value="item.roleId">  
151 - </el-option>  
152 - </el-select>  
153 - </el-form-item>  
154 - <el-form-item label="账号" prop="username">  
155 - <el-input v-model="addForm.username" aria-placeholder="用户名长度在5-11位,支持英文和数字"></el-input>  
156 - </el-form-item>  
157 - <el-form-item label="密码" prop="password">  
158 - <el-input v-model="addForm.password" type="password"></el-input>  
159 - </el-form-item>  
160 - <el-form-item label="姓名" prop="realname">  
161 - <el-input v-model="addForm.realname"></el-input>  
162 - </el-form-item>  
163 - <el-form-item label="电话" prop="mobilephone">  
164 - <el-input v-model="addForm.mobilephone"></el-input>  
165 - </el-form-item>  
166 - <el-form-item label="Email" prop="email">  
167 - <el-input v-model="addForm.email"></el-input>  
168 - </el-form-item>  
169 - <el-form-item label="性别">  
170 - <el-radio-group v-model="addForm.sex">  
171 - <el-radio class="radio" label="1">男</el-radio>  
172 - <el-radio class="radio" label="0">女</el-radio>  
173 - </el-radio-group>  
174 - </el-form-item>  
175 - <el-form-item label="年龄" prop="age">  
176 - <el-input-number v-model="addForm.age" :min="0" :max="200"></el-input-number>  
177 - </el-form-item>  
178 - <el-form-item label="地址">  
179 - <el-input type="textarea" v-model="addForm.address"></el-input>  
180 - </el-form-item> 181 + <img v-if="faceImageUrl" :src="faceImageUrl" class="avatar">
  182 + <i v-else class="el-icon-plus avatar-uploader-icon"></i>
  183 + </el-upload>
  184 + </el-form-item>
  185 + </el-col>
  186 + </el-row>
181 </el-form> 187 </el-form>
182 <div slot="footer" class="dialog-footer"> 188 <div slot="footer" class="dialog-footer">
183 <el-button @click.native="addFormVisible = false">取消</el-button> 189 <el-button @click.native="addFormVisible = false">取消</el-button>
184 - <el-button type="primary" @click.native="addSubmit" :loading="addLoading">提交</el-button> 190 + <el-button type="primary" @click.native="dialogStatus==='create'?addSubmit():editSubmit()" :loading="addLoading">提交</el-button>
185 </div> 191 </div>
186 </el-dialog> 192 </el-dialog>
187 193
@@ -215,6 +221,16 @@ @@ -215,6 +221,16 @@
215 import moment from 'moment' 221 import moment from 'moment'
216 export default { 222 export default {
217 data() { 223 data() {
  224 + var validatePass = (rule, value, callback) => {
  225 + if (value === '') {
  226 + callback(new Error('请输入密码'));
  227 + } else {
  228 + if (this.checkPass !== '') {
  229 + this.$refs.addForm.validateField('checkPass');
  230 + }
  231 + callback();
  232 + }
  233 + };
218 return { 234 return {
219 filters: { 235 filters: {
220 userName: '', 236 userName: '',
@@ -224,6 +240,11 @@ @@ -224,6 +240,11 @@
224 children: 'children', 240 children: 'children',
225 label: 'roleName', 241 label: 'roleName',
226 }, 242 },
  243 + dialogMap: {
  244 + update: '编辑',
  245 + create: '新增',
  246 + },
  247 + dialogStatus: 'create',
227 users: [], 248 users: [],
228 total: 0, 249 total: 0,
229 pageNum: 1, 250 pageNum: 1,
@@ -232,28 +253,6 @@ @@ -232,28 +253,6 @@
232 listLoading: false, 253 listLoading: false,
233 sels: [],//列表选中列 254 sels: [],//列表选中列
234 //编辑界面是否显示 255 //编辑界面是否显示
235 - editFormVisible: false,  
236 - editLoading: false,  
237 - editFormRules: {  
238 - name: [  
239 - { required: true, message: '请输入姓名', trigger: 'blur' }  
240 - ]  
241 - },  
242 - //编辑界面数据  
243 - editForm: {  
244 - userId: 1,  
245 - username: '',  
246 - password: '',  
247 - sex: 1,  
248 - creattime: '',  
249 - address: '',  
250 - realname: '',  
251 - email: '',  
252 - mobilephone: '',  
253 - state: 'true',  
254 - companyId:''  
255 - },  
256 -  
257 addFormVisible: false,//新增界面是否显示 256 addFormVisible: false,//新增界面是否显示
258 addLoading: false, 257 addLoading: false,
259 addFormRules: { 258 addFormRules: {
@@ -263,14 +262,17 @@ @@ -263,14 +262,17 @@
263 password: [ 262 password: [
264 { required: true, message: '请输入密码,用户名长度在6-18位,支持英文和数字和非空字符', trigger: 'blur'} 263 { required: true, message: '请输入密码,用户名长度在6-18位,支持英文和数字和非空字符', trigger: 'blur'}
265 ], 264 ],
266 - companyId: [  
267 - { required: true, message: '请选择所属您的所属公司', trigger: 'blur' }, 265 + checkPass: [
  266 + { required: true, message: '请输入密码,用户名长度在6-18位,支持英文和数字和非空字符', trigger: 'blur'}
268 ] 267 ]
269 }, 268 },
270 //用户角色配置 269 //用户角色配置
271 roleFormVisible: false, 270 roleFormVisible: false,
272 //新增界面数据 271 //新增界面数据
  272 +
273 addForm: { 273 addForm: {
  274 + checkPass:'',
  275 + userId: 0,
274 username: '', 276 username: '',
275 password: '', 277 password: '',
276 sex: 1, 278 sex: 1,
@@ -279,7 +281,7 @@ @@ -279,7 +281,7 @@
279 email: '', 281 email: '',
280 mobilephone: '', 282 mobilephone: '',
281 age: 1, 283 age: 1,
282 - companyId:'' 284 + state: true
283 }, 285 },
284 roleEditForm: { 286 roleEditForm: {
285 userId: 1, 287 userId: 1,
@@ -288,8 +290,7 @@ @@ -288,8 +290,7 @@
288 }, 290 },
289 roles: [], 291 roles: [],
290 roleIds: [], 292 roleIds: [],
291 - options: []  
292 - 293 + options: [],
293 } 294 }
294 }, 295 },
295 methods: { 296 methods: {
@@ -367,8 +368,9 @@ @@ -367,8 +368,9 @@
367 * @param row 为这行的数据对象 368 * @param row 为这行的数据对象
368 */ 369 */
369 handleEdit: function (index, row) { 370 handleEdit: function (index, row) {
370 - this.editFormVisible = true;  
371 - this.editForm = Object.assign({}, row); 371 + this.addFormVisible = true;
  372 + this.dialogStatus= 'update',
  373 + this.addForm = Object.assign({}, row);
372 }, 374 },
373 roleEdit: function (index, row) { 375 roleEdit: function (index, row) {
374 this.roleFormVisible = true; 376 this.roleFormVisible = true;
@@ -414,30 +416,33 @@ @@ -414,30 +416,33 @@
414 //显示新增界面,每次点开初始化数据 416 //显示新增界面,每次点开初始化数据
415 handleAdd: function () { 417 handleAdd: function () {
416 this.addFormVisible = true; 418 this.addFormVisible = true;
  419 + this.dialogStatus= 'create',
417 this.addForm = { 420 this.addForm = {
418 username: '', 421 username: '',
419 password: '', 422 password: '',
  423 + checkPass: '',
420 sex: 1, 424 sex: 1,
421 address: '', 425 address: '',
422 realname: '', 426 realname: '',
423 email: '', 427 email: '',
424 mobilephone: '', 428 mobilephone: '',
425 age: 1, 429 age: 1,
426 - companyId:'' 430 + state: true
427 }; 431 };
428 }, 432 },
429 //编辑 433 //编辑
430 editSubmit: function () { 434 editSubmit: function () {
431 - this.$refs.editForm.validate((valid) => { 435 + this.$refs.addForm.validate((valid) => {
432 if (valid) { 436 if (valid) {
433 this.$confirm('确认提交吗?', '提示', {}).then(() => { 437 this.$confirm('确认提交吗?', '提示', {}).then(() => {
434 this.editLoading = true; 438 this.editLoading = true;
435 //NProgress.start(); 439 //NProgress.start();
436 - let para = Object.assign({}, this.editForm); 440 + let para = Object.assign({}, this.addForm);
437 //不需要提交的 去掉,后端不好接收 441 //不需要提交的 去掉,后端不好接收
438 para.authorities = null; 442 para.authorities = null;
439 para.permissions = null; 443 para.permissions = null;
440 para.roles = null; 444 para.roles = null;
  445 + this.$delete(para,'checkPass')
441 // para.birth = (!para.birth || para.birth == '') ? '' : util.formatDate.format(new Date(para.birth), 'yyyy-MM-dd'); 446 // para.birth = (!para.birth || para.birth == '') ? '' : util.formatDate.format(new Date(para.birth), 'yyyy-MM-dd');
442 /* 447 /*
443 查询之后格式this.filters.column.create_start_date中日期发生变化; 448 查询之后格式this.filters.column.create_start_date中日期发生变化;
@@ -455,8 +460,8 @@ @@ -455,8 +460,8 @@
455 message: '提交成功', 460 message: '提交成功',
456 type: 'success' 461 type: 'success'
457 }); 462 });
458 - this.$refs['editForm'].resetFields();  
459 - this.editFormVisible = false; 463 + this.$refs['addForm'].resetFields();
  464 + this.addFormVisible = false;
460 this.getUsers(); 465 this.getUsers();
461 }).catch(error => alert(error)); 466 }).catch(error => alert(error));
462 }); 467 });
@@ -470,6 +475,7 @@ @@ -470,6 +475,7 @@
470 this.$confirm('确认提交吗?', '提示', {}).then(() => { 475 this.$confirm('确认提交吗?', '提示', {}).then(() => {
471 this.addLoading = true; 476 this.addLoading = true;
472 let para = Object.assign({}, this.addForm); 477 let para = Object.assign({}, this.addForm);
  478 + this.$delete(para,'checkPass')
473 // para.birth = (!para.birth || para.birth == '') ? '' : util.formatDate.format(new Date(para.birth), 'yyyy-MM-dd'); 479 // para.birth = (!para.birth || para.birth == '') ? '' : util.formatDate.format(new Date(para.birth), 'yyyy-MM-dd');
474 addUser(para).then((res) => { 480 addUser(para).then((res) => {
475 this.addLoading = false; 481 this.addLoading = false;
@@ -557,7 +563,7 @@ @@ -557,7 +563,7 @@
557 }, 563 },
558 mounted() { 564 mounted() {
559 this.getUsers(); 565 this.getUsers();
560 - this.getCompanyNmae(); 566 + // this.getCompanyNmae();
561 }, 567 },
562 computed: { 568 computed: {
563 hideShow() {//当图片多于一张的时候,就隐藏上传框 569 hideShow() {//当图片多于一张的时候,就隐藏上传框
@@ -568,6 +574,17 @@ @@ -568,6 +574,17 @@
568 574
569 </script> 575 </script>
570 576
571 -<style scoped> 577 +<style lang="scss">
  578 + .user-form{
  579 + .el-form-item__label{
  580 + font-size: 12px;
  581 + }
  582 + .el-form-item__content{
  583 + width: 260px;
  584 + .el-textarea{
  585 + width:100%;
  586 + }
  587 + }
  588 + }
572 589
573 </style> 590 </style>
@@ -134,7 +134,7 @@ @@ -134,7 +134,7 @@
134 this.tableData=response.list; 134 this.tableData=response.list;
135 this.tableloading=false; 135 this.tableloading=false;
136 this.total=response.total; 136 this.total=response.total;
137 - this.listLoading = false; 137 + this.listLoading = false;
138 }); 138 });
139 }, 139 },
140 /*原始舱单跳转*/ 140 /*原始舱单跳转*/
@@ -597,7 +597,12 @@ @@ -597,7 +597,12 @@
597 </el-col> 597 </el-col>
598 <el-col :span="2.5" class="pub"> 598 <el-col :span="2.5" class="pub">
599 <div class="grid-content"> 599 <div class="grid-content">
600 - <el-button type="primary" size="mini">批量发送删除报</el-button> 600 + <el-button type="primary" size="mini" :disabled="batich" @click="batchdel()">批量发送删除报</el-button>
  601 + </div>
  602 + </el-col>
  603 + <el-col :span="2.5" class="pub">
  604 + <div class="grid-content">
  605 + <el-button type="primary" size="mini" :disabled="batich" @click="batchaplly()">批量申请</el-button>
601 </div> 606 </div>
602 </el-col> 607 </el-col>
603 <el-col :span="2" class="pub"> 608 <el-col :span="2" class="pub">
@@ -726,7 +731,7 @@ @@ -726,7 +731,7 @@
726 </style> 731 </style>
727 732
728 <script> 733 <script>
729 - import { getMt1201List,addMt1201,ediMt1201,getFenList,getCountryCode,selectCustomcode,sendCreateMt1201,sendEditeMt1201,sendRemoveMt1201 } from '../../api/mt1201' 734 + import { getMt1201List,addMt1201,ediMt1201,getFenList,getCountryCode,selectCustomcode,sendCreateMt1201,sendEditeMt1201,sendRemoveMt1201,sendBatchDelMt1201,sendBatchApllyMt1201 } from '../../api/mt1201'
730 import{addResponse,selectResponseList} from "../../api/InResponse"; 735 import{addResponse,selectResponseList} from "../../api/InResponse";
731 import FileSaver from "file-saver"; 736 import FileSaver from "file-saver";
732 import XLSX from "xlsx"; 737 import XLSX from "xlsx";
@@ -899,7 +904,10 @@ @@ -899,7 +904,10 @@
899 dialogTableVisible:false, 904 dialogTableVisible:false,
900 gridData:[], 905 gridData:[],
901 tableloading:true, 906 tableloading:true,
902 - htmlTitle:'' 907 + htmlTitle:'',
  908 + batich:true,
  909 + batichboolean:false,
  910 + uuids:[],
903 } 911 }
904 }, 912 },
905 methods: { 913 methods: {
@@ -991,10 +999,44 @@ @@ -991,10 +999,44 @@
991 return false; 999 return false;
992 } 1000 }
993 }, 1001 },
994 - /*多选框功能*/ 1002 + /*多选框功能批量选择*/
995 handleSelectionChange(val) { 1003 handleSelectionChange(val) {
996 this.multipleSelection = val; 1004 this.multipleSelection = val;
997 - console.log(val) 1005 + if(this.multipleSelection!=null && this.multipleSelection!=""){
  1006 + this.batich=false;
  1007 + }else{
  1008 + this.batich=true;
  1009 + }
  1010 +
  1011 + },
  1012 + //批量删除
  1013 + batchdel(){
  1014 + let ids=[];
  1015 + this.multipleSelection.forEach(function (item) {
  1016 + ids.push(item.uuid);
  1017 + })
  1018 + this.uuids=ids;
  1019 + this.udStatus='delete';
  1020 + this.dialogFormVisible=true;
  1021 + this.batichboolean=true;
  1022 + },
  1023 + //批量申请
  1024 + batchaplly(){
  1025 + let ids=[];
  1026 + this.multipleSelection.forEach(function (item) {
  1027 + ids.push(item.uuid);
  1028 + })
  1029 + sendBatchApllyMt1201(ids).then(res=>{
  1030 + let response=res.data;
  1031 + this.code=response.code;
  1032 + if(this.code=='200'){
  1033 + this.centerDialogVisible=true;
  1034 + this.msg=response.msg;
  1035 + }else{
  1036 + this.centerDialogVisible=true;
  1037 + this.msg=response.msg;
  1038 + }
  1039 + });
998 }, 1040 },
999 /*编辑主单信息*/ 1041 /*编辑主单信息*/
1000 handleEdit(index, row){ 1042 handleEdit(index, row){
@@ -1064,40 +1106,56 @@ @@ -1064,40 +1106,56 @@
1064 row.flightno=row.flightno.substring(2); 1106 row.flightno=row.flightno.substring(2);
1065 } 1107 }
1066 this.temprows= row; 1108 this.temprows= row;
  1109 + this.batichboolean=false;
1067 }, 1110 },
1068 //提交发送舱单删除报表单 1111 //提交发送舱单删除报表单
1069 deleteUdForm(formName){ 1112 deleteUdForm(formName){
1070 this.$refs[formName].validate((valid) => { 1113 this.$refs[formName].validate((valid) => {
1071 if (valid) { 1114 if (valid) {
1072 - const map = {'flightNo':this.temprows.flightno,  
1073 - 'flightDate':this.temprows.flightdate,  
1074 - 'awba':this.temprows.awba,  
1075 - 'content':'',  
1076 - 'customCode':this.temprows.customcode,  
1077 - 'awbh':this.temprows.awbh,  
1078 - 'reason' :this.Udform.operreason,  
1079 - 'contactName':this.Udform.operperson,  
1080 - 'contactTel':this.Udform.opertel,  
1081 - 'carrier':this.Udform.carrier,  
1082 - 'username':loginUserInfo.username}  
1083 - sendRemoveMt1201(map).then(res=>{  
1084 - let response=res.data;  
1085 - //console.log(res);  
1086 - this.code=response.code;  
1087 - if(this.code=='200'){  
1088 - this.temprows.status='24';  
1089 - this.temprows.customText='舱单删除报发送成功';  
1090 - this.dialogFormVisible=false;  
1091 - this.outerVisible = false;  
1092 - this.centerDialogVisible=true;  
1093 - this.msg=response.msg;  
1094 - }else{  
1095 - this.dialogFormVisible=false;  
1096 - this.outerVisible = false;  
1097 - this.centerDialogVisible=true;  
1098 - this.msg=response.msg;  
1099 - }  
1100 - }); 1115 + if(this.batichboolean){
  1116 + let arr={ids:this.uuids,reason:this.Udform.operreason,contactName:loginUserInfo.username,contactTel:this.Udform.opertel,content:''}
  1117 + sendBatchDelMt1201(arr).then(res=>{
  1118 + let response=res.data;
  1119 + this.code=response.code;
  1120 + if(this.code=='200'){
  1121 + this.centerDialogVisible=true;
  1122 + this.msg=response.msg;
  1123 + }else{
  1124 + this.centerDialogVisible=true;
  1125 + this.msg=response.msg;
  1126 + }
  1127 + });
  1128 + }else{
  1129 + const map = {'flightNo':this.temprows.flightno,
  1130 + 'flightDate':this.temprows.flightdate,
  1131 + 'awba':this.temprows.awba,
  1132 + 'content':'',
  1133 + 'customCode':this.temprows.customcode,
  1134 + 'awbh':this.temprows.awbh,
  1135 + 'reason' :this.Udform.operreason,
  1136 + 'contactName':this.Udform.operperson,
  1137 + 'contactTel':this.Udform.opertel,
  1138 + 'carrier':this.Udform.carrier,
  1139 + 'username':loginUserInfo.username}
  1140 + sendRemoveMt1201(map).then(res=>{
  1141 + let response=res.data;
  1142 + //console.log(res);
  1143 + this.code=response.code;
  1144 + if(this.code=='200'){
  1145 + this.temprows.status='24';
  1146 + this.temprows.customText='舱单删除报发送成功';
  1147 + this.dialogFormVisible=false;
  1148 + this.outerVisible = false;
  1149 + this.centerDialogVisible=true;
  1150 + this.msg=response.msg;
  1151 + }else{
  1152 + this.dialogFormVisible=false;
  1153 + this.outerVisible = false;
  1154 + this.centerDialogVisible=true;
  1155 + this.msg=response.msg;
  1156 + }
  1157 + });
  1158 + }
1101 } else { 1159 } else {
1102 console.log('error submit!!'); 1160 console.log('error submit!!');
1103 return false; 1161 return false;
@@ -1329,6 +1387,7 @@ @@ -1329,6 +1387,7 @@
1329 this.$router.push({name:'分拨运抵',params:{carrier:row.carrier,flightno:row.flightno,awba:row.awba,flightdate:row.flightdate, 1387 this.$router.push({name:'分拨运抵',params:{carrier:row.carrier,flightno:row.flightno,awba:row.awba,flightdate:row.flightdate,
1330 turnpiece:row.awbinfo.pcs,turnweight:row.awbinfo.weight,customcode:row.customcode,goodsname:row.goodsname}}); 1388 turnpiece:row.awbinfo.pcs,turnweight:row.awbinfo.weight,customcode:row.customcode,goodsname:row.goodsname}});
1331 }, 1389 },
  1390 +
1332 //返回上一层 1391 //返回上一层
1333 back(){ 1392 back(){
1334 this.$router.go(-1); 1393 this.$router.go(-1);
@@ -352,7 +352,8 @@ @@ -352,7 +352,8 @@
352 <!--底部按钮及理货信息--> 352 <!--底部按钮及理货信息-->
353 <el-row style="margin-top: 20px"> 353 <el-row style="margin-top: 20px">
354 <el-col :span="2.5"><div class="grid-content"><el-button type="primary" v-on:click="addTally" size="mini">新增进港理货</el-button></div></el-col> 354 <el-col :span="2.5"><div class="grid-content"><el-button type="primary" v-on:click="addTally" size="mini">新增进港理货</el-button></div></el-col>
355 - <el-col :span="2.5"><div class="grid-content"><el-button type="primary" size="mini">批量发送删除报</el-button></div></el-col> 355 + <el-col :span="2.5"><div class="grid-content"><el-button type="primary" size="mini" :disabled="batich" @click="batchdel()">批量发送删除报</el-button></div></el-col>
  356 + <el-col :span="2.5"><div class="grid-content"><el-button type="primary" size="mini" :disabled="batich" @click="batchaplly()">批量申请</el-button></div></el-col>
356 <el-col :span="2"><div class="grid-content"><el-button type="primary" @click="back" size="mini">返回</el-button></div></el-col> 357 <el-col :span="2"><div class="grid-content"><el-button type="primary" @click="back" size="mini">返回</el-button></div></el-col>
357 <el-col :span="2.5"><div class="grid-content"><span>主单数:{{sumNmmsCount}}</span></div></el-col> 358 <el-col :span="2.5"><div class="grid-content"><span>主单数:{{sumNmmsCount}}</span></div></el-col>
358 <el-col :span="3.5"><div class="grid-content"><span>理货总件数:{{sumNmmsPrice}}</span></div></el-col> 359 <el-col :span="3.5"><div class="grid-content"><span>理货总件数:{{sumNmmsPrice}}</span></div></el-col>
@@ -443,8 +444,9 @@ @@ -443,8 +444,9 @@
443 444
444 <script> 445 <script>
445 import{addResponse,selectResponseList} from "../../api/InResponse"; 446 import{addResponse,selectResponseList} from "../../api/InResponse";
446 - import { getMt5201List,addMt5201,ediMt5201,delMt5201,sendCreateMt520x,sendRemoveMt520x,selectCustomcode} from '../../api/mt5201' 447 + import { getMt5201List,addMt5201,ediMt5201,delMt5201,sendCreateMt520x,sendRemoveMt520x,selectCustomcode,sendbatchRemoveMt5201,sendbatchCreateMt5201} from '../../api/mt5201'
447 import loginUserInfo from '@/api/base' 448 import loginUserInfo from '@/api/base'
  449 + import {sendBatchApllyMt1201, sendBatchDelMt1201} from "../../api/mt1201";
448 export default { 450 export default {
449 data() { 451 data() {
450 return { 452 return {
@@ -539,7 +541,10 @@ @@ -539,7 +541,10 @@
539 loading:false, 541 loading:false,
540 dialogTableVisible:false, 542 dialogTableVisible:false,
541 gridData:[], 543 gridData:[],
542 - tableLoading:false 544 + tableLoading:false,
  545 + batich:true,
  546 + batichboolean:false,
  547 + uuids:[],
543 } 548 }
544 }, 549 },
545 methods: { 550 methods: {
@@ -660,41 +665,58 @@ @@ -660,41 +665,58 @@
660 row.awbh=""; 665 row.awbh="";
661 } 666 }
662 this.rows=row; 667 this.rows=row;
  668 + this.batichboolean=false;
663 }, 669 },
664 //发送理化删除报提交表单 670 //发送理化删除报提交表单
665 deleteUdForm(formName){ 671 deleteUdForm(formName){
666 this.$refs[formName].validate((valid) => { 672 this.$refs[formName].validate((valid) => {
667 if (valid) { 673 if (valid) {
668 - const map = {'flightNo':this.rows.flightno,  
669 - 'flightDate':this.rows.flightdate,  
670 - 'awba':this.rows.awba,  
671 - 'content':'',  
672 - 'customCode':this.rows.customcode,  
673 - 'awbh':this.rows.awbh,  
674 - 'reason' :this.Udform.operreason,  
675 - 'contactName':this.Udform.operperson,  
676 - 'contactTel':this.Udform.opertel,  
677 - 'rcfdep':this.rows.rcfdep,  
678 - 'carrier':this.rows.carrier,  
679 - 'username':loginUserInfo.username}  
680 - sendRemoveMt520x(map).then(res=>{  
681 - let response=res.data;  
682 - //console.log(res);  
683 - this.code=response.code;  
684 - if(this.code=='200'){  
685 - this.rows.status='24';  
686 - this.rows.ext5='理货删除报发送成功';  
687 - this.dialogFormVisible=false;  
688 - this.outerVisible = false;  
689 - this.centerDialogVisible=true;  
690 - this.msg=response.msg;  
691 - }else{  
692 - this.dialogFormVisible=false;  
693 - this.outerVisible = false;  
694 - this.centerDialogVisible=true;  
695 - this.msg=response.msg;  
696 - }  
697 - }); 674 + if(this.batichboolean){
  675 + let arr={ids:this.uuids,reason:this.Udform.operreason,contactName:loginUserInfo.username,contactTel:this.Udform.opertel,content:''}
  676 + sendbatchRemoveMt5201(arr).then(res=>{
  677 + let response=res.data;
  678 + this.code=response.code;
  679 + if(this.code=='200'){
  680 + this.centerDialogVisible=true;
  681 + this.msg=response.msg;
  682 + }else{
  683 + this.centerDialogVisible=true;
  684 + this.msg=response.msg;
  685 + }
  686 + });
  687 + }else{
  688 + const map = {'flightNo':this.rows.flightno,
  689 + 'flightDate':this.rows.flightdate,
  690 + 'awba':this.rows.awba,
  691 + 'content':'',
  692 + 'customCode':this.rows.customcode,
  693 + 'awbh':this.rows.awbh,
  694 + 'reason' :this.Udform.operreason,
  695 + 'contactName':this.Udform.operperson,
  696 + 'contactTel':this.Udform.opertel,
  697 + 'rcfdep':this.rows.rcfdep,
  698 + 'carrier':this.rows.carrier,
  699 + 'username':loginUserInfo.username}
  700 + sendRemoveMt520x(map).then(res=>{
  701 + let response=res.data;
  702 + //console.log(res);
  703 + this.code=response.code;
  704 + if(this.code=='200'){
  705 + this.rows.status='24';
  706 + this.rows.ext5='理货删除报发送成功';
  707 + this.dialogFormVisible=false;
  708 + this.outerVisible = false;
  709 + this.centerDialogVisible=true;
  710 + this.msg=response.msg;
  711 + }else{
  712 + this.dialogFormVisible=false;
  713 + this.outerVisible = false;
  714 + this.centerDialogVisible=true;
  715 + this.msg=response.msg;
  716 + }
  717 + });
  718 + }
  719 +
698 } else { 720 } else {
699 console.log('error submit!!'); 721 console.log('error submit!!');
700 return false; 722 return false;
@@ -705,6 +727,40 @@ @@ -705,6 +727,40 @@
705 //批量选中事件 727 //批量选中事件
706 handleSelectionChange(val) { 728 handleSelectionChange(val) {
707 this.multipleSelection = val; 729 this.multipleSelection = val;
  730 + if(this.multipleSelection!=null && this.multipleSelection!=""){
  731 + this.batich=false;
  732 + }else{
  733 + this.batich=true;
  734 + }
  735 + },
  736 + //批量申请
  737 + batchaplly(){
  738 + let ids=[];
  739 + this.multipleSelection.forEach(function (item) {
  740 + ids.push(item.uuid);
  741 + })
  742 + sendbatchCreateMt5201(ids).then(res=>{
  743 + let response=res.data;
  744 + this.code=response.code;
  745 + if(this.code=='200'){
  746 + this.centerDialogVisible=true;
  747 + this.msg=response.msg;
  748 + }else{
  749 + this.centerDialogVisible=true;
  750 + this.msg=response.msg;
  751 + }
  752 + });
  753 + },
  754 + //批量删除
  755 + batchdel(){
  756 + let ids=[];
  757 + this.multipleSelection.forEach(function (item) {
  758 + ids.push(item.uuid);
  759 + })
  760 + this.uuids=ids;
  761 + this.udStatus='delete';
  762 + this.dialogFormVisible=true;
  763 + this.batichboolean=true;
708 }, 764 },
709 //编辑主单 765 //编辑主单
710 handleMain(index,row){ 766 handleMain(index,row){
@@ -110,9 +110,9 @@ @@ -110,9 +110,9 @@
110 <el-form-item> 110 <el-form-item>
111 <div style="display: inline-block;background-color: #6F8294;color: white; 111 <div style="display: inline-block;background-color: #6F8294;color: white;
112 border-top-left-radius: 4px;margin-right: -4px;padding-right: 14px;font-size: 12px; 112 border-top-left-radius: 4px;margin-right: -4px;padding-right: 14px;font-size: 12px;
113 - border-bottom-left-radius:4px;padding-left: 14px">新增时间段</div> 113 + border-bottom-left-radius:4px;padding-left: 14px">申报时间段</div>
114 <el-date-picker 114 <el-date-picker
115 - v-model="formTrn.creattime" 115 + v-model="searchTime"
116 type="daterange" 116 type="daterange"
117 unlink-panels 117 unlink-panels
118 range-separator="-" 118 range-separator="-"
@@ -593,6 +593,8 @@ @@ -593,6 +593,8 @@
593 trnmode:'', 593 trnmode:'',
594 unloadcode:'', 594 unloadcode:'',
595 creattime:'', 595 creattime:'',
  596 + startDate:'',
  597 + endDate:'',
596 pageNum: 1, 598 pageNum: 1,
597 pageSize: 10 599 pageSize: 10
598 }, 600 },
@@ -617,6 +619,7 @@ @@ -617,6 +619,7 @@
617 form: { 619 form: {
618 autoid:'', 620 autoid:'',
619 seqno:'', 621 seqno:'',
  622 + ieflag:'E',
620 customscode:'', 623 customscode:'',
621 inputopid: '', 624 inputopid: '',
622 inputopname:'', 625 inputopname:'',
@@ -710,6 +713,24 @@ @@ -710,6 +713,24 @@
710 this.form.arriveno = this.customscode + loadcode + new Date().format('yyMMddHHmmss'); 713 this.form.arriveno = this.customscode + loadcode + new Date().format('yyMMddHHmmss');
711 } 714 }
712 }, 715 },
  716 + username: function () {
  717 + var user = loginuserInfo;
  718 + if (user) {
  719 + return user.username || '';
  720 + }
  721 + },
  722 + searchTime: {
  723 + get:function () {
  724 + return this.formTrn.creattime
  725 + },
  726 + set:function (val) {
  727 + this.formTrn.creattime = val
  728 + if (val && val.length===2){
  729 + this.formTrn.startDate = val[0]
  730 + this.formTrn.endDate = val[1]
  731 + }
  732 + }
  733 + }
713 734
714 }, 735 },
715 methods:{ 736 methods:{
@@ -769,7 +790,9 @@ @@ -769,7 +790,9 @@
769 // 获取消息标签列表 790 // 获取消息标签列表
770 trnList() { 791 trnList() {
771 const _this = this 792 const _this = this
772 - selectTrans(this.formTrn).then((response) => { 793 + let para = Object.assign({}, this.formTrn)
  794 + para.creattime = ''
  795 + selectTrans(para).then((response) => {
773 const res = response.data 796 const res = response.data
774 if (res.code !== '200') { 797 if (res.code !== '200') {
775 return _this.$message.error('获取消息收发记录,失败!') 798 return _this.$message.error('获取消息收发记录,失败!')
@@ -791,9 +814,12 @@ @@ -791,9 +814,12 @@
791 }, 814 },
792 // 打开新增 815 // 打开新增
793 addTrn() { 816 addTrn() {
  817 + Object.keys(this.form).forEach(key => (this.form[key] = ''));
794 this.dialogStatus = 'create' 818 this.dialogStatus = 'create'
795 this.trn_dialog.addDialog = true 819 this.trn_dialog.addDialog = true
796 this.form.arrivetime = new Date().format('yyyyMMddHHmmss') 820 this.form.arrivetime = new Date().format('yyyyMMddHHmmss')
  821 + this.form.username = this.username
  822 + this.form.ieflag = 'E'
797 }, 823 },
798 824
799 // 新增功能 825 // 新增功能
@@ -855,7 +881,14 @@ @@ -855,7 +881,14 @@
855 send(row).then((response) => { 881 send(row).then((response) => {
856 const res = response.data 882 const res = response.data
857 if (res.code !== '200') { 883 if (res.code !== '200') {
858 - return this.$message.error(res.msg); 884 + this.$message({
  885 + dangerouslyUseHTMLString: true,
  886 + showClose: true,
  887 + type:'error',
  888 + duration:0,
  889 + message: '<strong>'+ res.msg +'</strong><br/>' + '<span>'+ res.error+'</span>'
  890 + });
  891 + return
859 } 892 }
860 this.$message.success('申报成功!'); 893 this.$message.success('申报成功!');
861 this.trnList(); 894 this.trnList();
@@ -9,3 +9,7 @@ export const decrement = ({commit}) => { @@ -9,3 +9,7 @@ export const decrement = ({commit}) => {
9 export const setUserMenuStore = ({commit},menuList) => { 9 export const setUserMenuStore = ({commit},menuList) => {
10 commit('set_user_menu',menuList) 10 commit('set_user_menu',menuList)
11 } 11 }
  12 +
  13 +export const setUserInfoStore = ({commit},info) => {
  14 + commit('set_user_info',info)
  15 +}
@@ -7,3 +7,7 @@ export const getCount = state => { @@ -7,3 +7,7 @@ export const getCount = state => {
7 export const getUserMenuStore = state => { 7 export const getUserMenuStore = state => {
8 return state.userMenu 8 return state.userMenu
9 } 9 }
  10 +
  11 +export const getUserInfoStore = state => {
  12 + return state.userInfo
  13 +}
@@ -8,9 +8,21 @@ Vue.use(Vuex) @@ -8,9 +8,21 @@ Vue.use(Vuex)
8 // 应用初始状态 8 // 应用初始状态
9 const state = { 9 const state = {
10 count: 10, 10 count: 10,
11 - openTab:[],//所有打开的路由  
12 - activeIndex: '/main',//激活状态,  
13 - userMenu:[] //用户菜单 11 + //所有打开的路由
  12 + openTab:[],
  13 + //激活状态,
  14 + activeIndex: '/main',
  15 + //用户菜单
  16 + userMenu:[],
  17 + userInfo:{
  18 + userId: 0,
  19 + username: '',
  20 + companyId: 0,
  21 + companyName: '',
  22 + realname: '',
  23 + userface: ''
  24 + }
  25 +
14 } 26 }
15 27
16 // 定义所需的 mutations 28 // 定义所需的 mutations
@@ -54,6 +66,10 @@ const mutations = { @@ -54,6 +66,10 @@ const mutations = {
54 set_user_menu(state, menu){ 66 set_user_menu(state, menu){
55 this.state.userMenu = menu; 67 this.state.userMenu = menu;
56 }, 68 },
  69 + //设置用户信息
  70 + set_user_info(state,info){
  71 + state.userInfo = info;
  72 + },
57 INCREMENT(state) { 73 INCREMENT(state) {
58 state.count++ 74 state.count++
59 }, 75 },