From 3f572e4e6114775c3c6918ba8380657c0ade91f4 Mon Sep 17 00:00:00 2001
From: liuyg <376836862@qq.com>
Date: Thu, 21 Oct 2021 15:55:28 +0800
Subject: [PATCH] Merge branch 'master' of http://192.168.0.105:10010/r/zhba_enterprises

---
 src/router/views/index.js                 | 1906 ++++++++++++++++++++++++------------------------
 src/views/securityGuard/securityGuard.vue |  210 ++--
 src/views/trainExam/performance.vue       |   80 +
 src/router/axios.js                       |   39 
 src/views/trainExam/singleperformance.vue |   84 ++
 5 files changed, 1,244 insertions(+), 1,075 deletions(-)

diff --git a/src/router/axios.js b/src/router/axios.js
index 7b0a00d..15c6d44 100644
--- a/src/router/axios.js
+++ b/src/router/axios.js
@@ -8,33 +8,34 @@
 import axios from 'axios';
 import store from '@/store/';
 import router from '@/router/router';
-import {serialize} from '@/util/util';
-import {getToken} from '@/util/auth';
-import {Message} from 'element-ui';
+import { serialize } from '@/util/util';
+import { getToken } from '@/util/auth';
+// import { Message } from 'element-ui';
+import { MessageBox } from 'element-ui';
 import website from '@/config/website';
-import {Base64} from 'js-base64';
+import { Base64 } from 'js-base64';
 import NProgress from 'nprogress';
 import 'nprogress/nprogress.css';
 
 //默认超时时间
-axios.defaults.timeout = 10000;
+axios.defaults.timeout = 60000;
 //返回其他状态码
-axios.defaults.validateStatus = function (status) {
-  return status >= 200 && status <= 500;
+axios.defaults.validateStatus = function(status) {
+    return status >= 200 && status <= 500;
 };
 //跨域请求,允许保存cookie
 axios.defaults.withCredentials = true;
 // NProgress 配置
 NProgress.configure({
-  showSpinner: false
+    showSpinner: false
 });
 //http request拦截
 axios.interceptors.request.use(config => {
-  //开启 progress bar
-  NProgress.start();
-  const meta = (config.meta || {});
-  const isToken = meta.isToken === false;
-  config.headers['Authorization'] = `Basic ${Base64.encode(`${website.clientId}:${website.clientSecret}`)}`;
+            //开启 progress bar
+            NProgress.start();
+            const meta = (config.meta || {});
+            const isToken = meta.isToken === false;
+            config.headers['Authorization'] = `Basic ${Base64.encode(`${website.clientId}:${website.clientSecret}`)}`;
   //让每个请求携带token
   if (getToken() && !isToken) {
     config.headers[website.tokenHeader] = 'bearer ' + getToken()
@@ -65,10 +66,12 @@
   if (status === 401) store.dispatch('FedLogOut').then(() => router.push({path: '/login'}));
   // 如果请求为非200否者默认统一处理
   if (status !== 200) {
-    Message({
-      message: message,
-      type: 'error'
-    });
+    // Message({
+    //   message: message,
+    //   type: 'error'
+    // });
+    MessageBox.alert(message);
+    // alert(message);
     return Promise.reject(new Error(message))
   }
   return res;
@@ -77,4 +80,4 @@
   return Promise.reject(new Error(error));
 });
 
-export default axios;
+export default axios;
\ No newline at end of file
diff --git a/src/router/views/index.js b/src/router/views/index.js
index d9cfe2e..80d9da6 100644
--- a/src/router/views/index.js
+++ b/src/router/views/index.js
@@ -1,952 +1,972 @@
 import Layout from '@/page/index/'
 
 export default [{
-    path: '/wel',
-    component: Layout,
-    redirect: '/wel/index',
-    children: [{
-        path: 'index',
-        name: '首页',
-        meta: {
-            i18n: 'dashboard'
-        },
-        component: () =>
-            import( /* webpackChunkName: "views" */ '@/views/wel/index')
+        path: '/wel',
+        component: Layout,
+        redirect: '/wel/index',
+        children: [{
+            path: 'index',
+            name: '首页',
+            meta: {
+                i18n: 'dashboard'
+            },
+            component: () =>
+                import ( /* webpackChunkName: "views" */ '@/views/wel/index')
+        }, {
+            path: 'dashboard',
+            name: '控制台',
+            meta: {
+                i18n: 'dashboard',
+                menu: false,
+            },
+            component: () =>
+                import ( /* webpackChunkName: "views" */ '@/views/wel/dashboard')
+        }]
     }, {
-        path: 'dashboard',
-        name: '控制台',
-        meta: {
-            i18n: 'dashboard',
-            menu: false,
-        },
-        component: () =>
-            import( /* webpackChunkName: "views" */ '@/views/wel/dashboard')
-    }]
-}, {
-    path: '/test',
-    component: Layout,
-    redirect: '/test/index',
-    children: [{
-        path: 'index',
-        name: '测试页',
-        meta: {
-            i18n: 'test'
-        },
-        component: () =>
-            import( /* webpackChunkName: "views" */ '@/views/util/test')
-    }]
-}, {
-    path: '/dict-horizontal',
-    component: Layout,
-    redirect: '/dict-horizontal/index',
-    children: [{
-        path: 'index',
-        name: '字典管理',
-        meta: {
-            i18n: 'dict'
-        },
-        component: () =>
-            import( /* webpackChunkName: "views" */ '@/views/util/demo/dict-horizontal')
-    }]
-}, {
-    path: '/dict-vertical',
-    component: Layout,
-    redirect: '/dict-vertical/index',
-    children: [{
-        path: 'index',
-        name: '字典管理',
-        meta: {
-            i18n: 'dict'
-        },
-        component: () =>
-            import( /* webpackChunkName: "views" */ '@/views/util/demo/dict-vertical')
-    }]
-}, {
-    path: '/info',
-    component: Layout,
-    redirect: '/info/index',
-    children: [{
-        path: 'index',
-        name: '个人信息',
-        meta: {
-            i18n: 'info'
-        },
-        component: () =>
-            import( /* webpackChunkName: "views" */ '@/views/system/userinfo')
-    }]
-}, {
-    path: '/work/process/leave',
-    component: Layout,
-    redirect: '/work/process/leave/form',
-    children: [{
-        path: 'form/:processDefinitionId',
-        name: '请假流程',
-        meta: {
-            i18n: 'work'
-        },
-        component: () =>
-            import( /* webpackChunkName: "views" */ '@/views/work/process/leave/form')
+        path: '/test',
+        component: Layout,
+        redirect: '/test/index',
+        children: [{
+            path: 'index',
+            name: '测试页',
+            meta: {
+                i18n: 'test'
+            },
+            component: () =>
+                import ( /* webpackChunkName: "views" */ '@/views/util/test')
+        }]
     }, {
-        path: 'handle/:taskId/:processInstanceId/:businessId',
-        name: '处理请假流程',
-        meta: {
-            i18n: 'work'
-        },
-        component: () =>
-            import( /* webpackChunkName: "views" */ '@/views/work/process/leave/handle')
+        path: '/dict-horizontal',
+        component: Layout,
+        redirect: '/dict-horizontal/index',
+        children: [{
+            path: 'index',
+            name: '字典管理',
+            meta: {
+                i18n: 'dict'
+            },
+            component: () =>
+                import ( /* webpackChunkName: "views" */ '@/views/util/demo/dict-horizontal')
+        }]
     }, {
-        path: 'detail/:processInstanceId/:businessId',
-        name: '请假流程详情',
-        meta: {
-            i18n: 'work'
-        },
-        component: () =>
-            import( /* webpackChunkName: "views" */ '@/views/work/process/leave/detail')
-    }]
-}, {
-    path: '/securityAnalysis',
-    component: Layout,
-    redirect: '/securityAnalysis/index',
-    children: [{
-        path: 'index',
-        name: '保安单位情况智能分析',
-        meta: {
-            i18n: 'dict'
-        },
-        component: () =>
-            import( /* webpackChunkName: "views" */ '@/views/securityAnalysis/index')
-    }]
-}, {
-    path: '/recruitmentManagement',
-    component: Layout,
-    redirect: '/recruitmentManagement/index',
-    children: [{
-        path: 'index',
-        name: '招聘管理',
-        meta: {
-            i18n: 'dict'
-        },
-        component: () =>
-            import( /* webpackChunkName: "views" */ '@/views/recruitmentManagement/index')
-    }]
-}, {
-    path: '/securityUnit',
-    component: Layout,
-    redirect: '/securityUnit/index',
-    children: [{
-        path: 'index',
-        name: '保安单位信息',
-        meta: {
-            i18n: 'dict'
-        },
-        component: () =>
-            import( /* webpackChunkName: "views" */ '@/views/securityUnit/index')
-    }]
-}, {
-    path: '/securityGuard',
-    component: Layout,
-    redirect: '/securityGuard/securityGuard',
-    children: [{
-        path: 'index',
-        name: '保安员管理',
-        meta: {
-            i18n: 'dict'
-        },
-        component: () =>
-            import( /* webpackChunkName: "views" */ '@/views/securityGuard/securityGuard')
-    }]
-}, {
-    path: '/securityGuardOnce',
-    component: Layout,
-    redirect: '/securityGuard/securityGuardOnce',
-    children: [{
-        path: 'index',
-        name: '保安员查询',
-        meta: {
-            i18n: 'dict'
-        },
-        component: () =>
-            import( /* webpackChunkName: "views" */ '@/views/securityGuard/securityGuardOnce')
-    }]
-}, {
-    path: '/securityGuardDetail',
-    component: Layout,
-    redirect: '/securityGuardDetail/index',
-    children: [{
-        path: 'index',
-        name: '保安员详情',
-        meta: {
-            i18n: 'dict'
-        },
-        component: () =>
-            import( /* webpackChunkName: "views" */ '@/views/securityGuard/securityGuardDetail')
-    }]
-}, {
-    path: '/resource',
-    component: Layout,
-    redirect: '/resource/attach',
-    children: [{
-        path: 'attach',
-        name: '附件上传',
-        meta: {
-            i18n: 'dict'
-        },
-        component: () =>
-            import( /* webpackChunkName: "views" */ '@/views/resource/attach')
-    }]
-}, {
-    path: '/securityUnitChild',
-    component: Layout,
-    redirect: '/securityUnitChild/index',
-    children: [{
-        path: 'index',
-        name: '保安单位详情',
-        meta: {
-            i18n: 'dict'
-        },
-        component: () =>
-            import( /* webpackChunkName: "views" */ '@/views/securityUnitChild/index')
-    }]
-}, {
-    path: '/securityGuard',
-    component: Layout,
-    redirect: '/securityGuard/securityGuard',
-    children: [{
-        path: 'index',
-        name: '保安员管理',
-        meta: {
-            i18n: 'dict'
-        },
-        component: () =>
-            import( /* webpackChunkName: "views" */ '@/views/securityGuard/securityGuard')
-    }]
-},
-// {
-//     path: '/dispatch/dispatch',
-//     component: Layout,
-//     redirect: '/dispatch/dispatch',
-//     children: [{
-//         path: 'index',
-//         name: '派遣服务管理',
-//         meta: {
-//             i18n: 'dict'
-//         },
-//         component: () =>
-//             import( /* webpackChunkName: "views" */ '@/views/dispatch/dispatch')
-//     }]
-// },
-{
-    path: '/desk',
-    component: Layout,
-    redirect: '/desk/notice',
-    children: [{
-        path: 'index',
-        name: '通知公告',
-        meta: {
-            i18n: 'dict'
-        },
-        component: () =>
-            import( /* webpackChunkName: "views" */ '@/views/desk/notice')
-    }]
-},
-{
-    path: '/talk',
-    component: Layout,
-    redirect: '/talk/talk',
-    children: [{
-        path: 'index',
-        name: '心理咨询',
-        meta: {
-            i18n: 'dict'
-        },
-        component: () =>
-            import( /* webpackChunkName: "views" */ '@/views/talk/talk')
-    }]
-},
-{
-    path: '/workreport',
-    component: Layout,
-    redirect: '/workreport/workreport',
-    children: [{
-        path: 'workreport',
-        name: '发起的汇报',
-        meta: {
-            i18n: 'dict'
-        },
-        component: () =>
-            import( /* webpackChunkName: "views" */ '@/views/workreport/workreport')
-    }]
-},
-{
-    path: '/workreport',
-    component: Layout,
-    redirect: '/workreport/workreply',
-    children: [{
-        path: 'workreply',
-        name: '接收的汇报',
-        meta: {
-            i18n: 'dict'
-        },
-        component: () =>
-            import( /* webpackChunkName: "views" */ '@/views/workreport/workreply')
-    }]
-}, {
-    path: '/resource',
-    component: Layout,
-    redirect: '/resource/attachCopy',
-    children: [{
-        path: 'attachCopy',
-        name: '保安单位附件上传',
-        meta: {
-            i18n: 'dict'
-        },
-        component: () =>
-            import( /* webpackChunkName: "views" */ '@/views/resource/attachCopy')
-    }]
-},
-// {
-//     path: '/dispatch',
-//     component: Layout,
-//     redirect: '/dispatch/dispatch',
-//     children: [{
-//         path: 'dispatch',
-//         name: '派遣单位管理',
-//         meta: {
-//             i18n: 'dispatch'
-//         },
-//         component: () =>
-//             import( /* webpackChunkName: "views" */ '@/views/dispatch/dispatch')
-//     }, {
-//         path: 'dispatchChildoperable',
-//         name: '派遣记录管理',
-//         meta: {
-//             i18n: 'dispatch'
-//         },
-//         component: () =>
-//             import( /* webpackChunkName: "views" */ '@/views/dispatch/dispatchChildoperable')
-//     }]
-// },
-// {
-//     path: '/dispatchChild',
-//     component: Layout,
-//     redirect: '/dispatchChild/index',
-//     children: [{
-//         path: 'index',
-//         name: '派遣服务记录',
-//         meta: {
-//             i18n: 'dict'
-//         },
-//         component: () =>
-//             import( /* webpackChunkName: "views" */ '@/views/dispatchChild/index')
-//     }]
-// },
-// {
-//     path: '/equipments',
-//     component: Layout,
-//     redirect: '/equipments/index',
-//     children: [{
-//         path: 'index',
-//         name: '保安公司装备管理',
-//         meta: {
-//             i18n: 'dict'
-//         },
-//         component: () =>
-//             import( /* webpackChunkName: "views" */ '@/views/equipments/index')
-//     }]
-// }, {
-//     path: '/car',
-//     component: Layout,
-//     redirect: '/car/index',
-//     children: [{
-//         path: 'index',
-//         name: '保安公司车辆管理',
-//         meta: {
-//             i18n: 'dict'
-//         },
-//         component: () =>
-//             import( /* webpackChunkName: "views" */ '@/views/car/index')
-//     }]
-// }, {
-//     path: '/gun',
-//     component: Layout,
-//     redirect: '/gun/index',
-//     children: [{
-//         path: 'index',
-//         name: '保安公司枪支管理',
-//         meta: {
-//             i18n: 'dict'
-//         },
-//         component: () =>
-//             import( /* webpackChunkName: "views" */ '@/views/gun/index')
-//     }]
-// },
-// {
-//     path: '/securityEquipment',
-//     component: Layout,
-//     redirect: '/securityEquipment',
-//     children: [{
-//         path: 'equipments',
-//         name: '装备管理',
-//         meta: {
-//             i18n: 'securityEquipment'
-//         },
-//         component: () =>
-//             import( /* webpackChunkName: "views" */ '@/views/securityEquipment/equipments')
-//     }, {
-//         path: 'car',
-//         name: '车辆管理',
-//         meta: {
-//             i18n: 'car'
-//         },
-//         component: () =>
-//             import( /* webpackChunkName: "views" */ '@/views/securityEquipment/car')
-//     }, {
-//         path: 'gun',
-//         name: '车辆管理',
-//         meta: {
-//             i18n: 'gun'
-//         },
-//         component: () =>
-//             import( /* webpackChunkName: "views" */ '@/views/securityEquipment/gun')
-//     }]
-// },
-// {
-//     path: '/trainingRegistration',
-//     component: Layout,
-//     redirect: '/trainingRegistration/index',
-//     children: [{
-//         path: 'index',
-//         name: '保安培训报名管理',
-//         meta: {
-//             i18n: 'dict'
-//         },
-//         component: () =>
-//             import ( /* webpackChunkName: "views" */ '@/views/trainingRegistration/index')
-//     }]
-// },
-{
-    path: '/securityAnalysis',
-    component: Layout,
-    redirect: '/securityAnalysis/index',
-    children: [{
-        path: 'index',
-        name: '保安单位情况智能分析',
-        meta: {
-            i18n: 'dict'
-        },
-        component: () =>
-            import( /* webpackChunkName: "views" */ '@/views/securityAnalysis/index')
-    }]
-}, {
-    path: '/recruitmentManagement',
-    component: Layout,
-    redirect: '/recruitmentManagement/index',
-    children: [{
-        path: 'index',
-        name: '招聘管理',
-        meta: {
-            i18n: 'dict'
-        },
-        component: () =>
-            import( /* webpackChunkName: "views" */ '@/views/recruitmentManagement/index')
-    }]
-}, {
-    path: '/ownerFeedback',
-    component: Layout,
-    redirect: '/ownerFeedback/index',
-    children: [{
-        path: 'index',
-        name: '业主反馈',
-        meta: {
-            i18n: 'dict'
-        },
-        component: () =>
-            import( /* webpackChunkName: "views" */ '@/views/ownerFeedback/owner')
-    }]
-}, {
-    path: '/securityUnit',
-    component: Layout,
-    redirect: '/securityUnit/index',
-    children: [{
-        path: 'index',
-        name: '保安单位信息',
-        meta: {
-            i18n: 'dict'
-        },
-        component: () =>
-            import( /* webpackChunkName: "views" */ '@/views/securityUnit/index')
-    }]
-}, {
-    path: '/securityGuard',
-    component: Layout,
-    redirect: '/securityGuard/securityGuard',
-    children: [{
-        path: 'index',
-        name: '保安员查询',
-        meta: {
-            i18n: 'dict'
-        },
-        component: () =>
-            import( /* webpackChunkName: "views" */ '@/views/securityGuard/securityGuard')
-    }]
-}, {
-    path: '/securityGuardDetail',
-    component: Layout,
-    redirect: '/securityGuardDetail/index',
-    children: [{
-        path: 'index',
-        name: '保安员详情',
-        meta: {
-            i18n: 'dict'
-        },
-        component: () =>
-            import( /* webpackChunkName: "views" */ '@/views/securityGuard/securityGuardDetail')
-    }]
-}, {
-    path: '/resource',
-    component: Layout,
-    redirect: '/resource/attach',
-    children: [{
-        path: 'attach',
-        name: '附件上传',
-        meta: {
-            i18n: 'dict'
-        },
-        component: () =>
-            import( /* webpackChunkName: "views" */ '@/views/resource/attach')
-    }]
-}, {
-    path: '/securityUnitChild',
-    component: Layout,
-    redirect: '/securityUnitChild/index',
-    children: [{
-        path: 'index',
-        name: '保安单位详情',
-        meta: {
-            i18n: 'dict'
-        },
-        component: () =>
-            import( /* webpackChunkName: "views" */ '@/views/securityUnitChild/index')
-    }]
-}, {
-    path: '/securityGuard',
-    component: Layout,
-    redirect: '/securityGuard/securityGuard',
-    children: [{
-        path: 'index',
-        name: '保安员管理',
-        meta: {
-            i18n: 'dict'
-        },
-        component: () =>
-            import( /* webpackChunkName: "views" */ '@/views/securityGuard/securityGuard')
-    }]
-},
-// {
-//     path: '/dispatch/dispatch',
-//     component: Layout,
-//     redirect: '/dispatch/dispatch',
-//     children: [{
-//         path: 'index',
-//         name: '派遣服务管理',
-//         meta: {
-//             i18n: 'dict'
-//         },
-//         component: () =>
-//             import( /* webpackChunkName: "views" */ '@/views/dispatch/dispatch')
-//     }]
-// },
-{
-    path: '/desk',
-    component: Layout,
-    redirect: '/desk/notice',
-    children: [{
-        path: 'index',
-        name: '通知公告',
-        meta: {
-            i18n: 'dict'
-        },
-        component: () =>
-            import( /* webpackChunkName: "views" */ '@/views/desk/notice')
-    }]
-}, {
-    path: '/dispatch',
-    component: Layout,
-    redirect: '/dispatch/dispatch',
-    children: [{
-        path: 'dispatch',
-        name: '派遣单位管理',
-        meta: {
-            i18n: 'dispatch'
-        },
-        component: () =>
-            import( /* webpackChunkName: "views" */ '@/views/dispatch/dispatch')
+        path: '/dict-vertical',
+        component: Layout,
+        redirect: '/dict-vertical/index',
+        children: [{
+            path: 'index',
+            name: '字典管理',
+            meta: {
+                i18n: 'dict'
+            },
+            component: () =>
+                import ( /* webpackChunkName: "views" */ '@/views/util/demo/dict-vertical')
+        }]
     }, {
-        path: 'dispatchChildoperable',
-        name: '派遣记录管理',
-        meta: {
-            i18n: 'dispatch'
-        },
+        path: '/info',
+        component: Layout,
+        redirect: '/info/index',
+        children: [{
+            path: 'index',
+            name: '个人信息',
+            meta: {
+                i18n: 'info'
+            },
+            component: () =>
+                import ( /* webpackChunkName: "views" */ '@/views/system/userinfo')
+        }]
+    }, {
+        path: '/work/process/leave',
+        component: Layout,
+        redirect: '/work/process/leave/form',
+        children: [{
+            path: 'form/:processDefinitionId',
+            name: '请假流程',
+            meta: {
+                i18n: 'work'
+            },
+            component: () =>
+                import ( /* webpackChunkName: "views" */ '@/views/work/process/leave/form')
+        }, {
+            path: 'handle/:taskId/:processInstanceId/:businessId',
+            name: '处理请假流程',
+            meta: {
+                i18n: 'work'
+            },
+            component: () =>
+                import ( /* webpackChunkName: "views" */ '@/views/work/process/leave/handle')
+        }, {
+            path: 'detail/:processInstanceId/:businessId',
+            name: '请假流程详情',
+            meta: {
+                i18n: 'work'
+            },
+            component: () =>
+                import ( /* webpackChunkName: "views" */ '@/views/work/process/leave/detail')
+        }]
+    }, {
+        path: '/securityAnalysis',
+        component: Layout,
+        redirect: '/securityAnalysis/index',
+        children: [{
+            path: 'index',
+            name: '保安单位情况智能分析',
+            meta: {
+                i18n: 'dict'
+            },
+            component: () =>
+                import ( /* webpackChunkName: "views" */ '@/views/securityAnalysis/index')
+        }]
+    }, {
+        path: '/recruitmentManagement',
+        component: Layout,
+        redirect: '/recruitmentManagement/index',
+        children: [{
+            path: 'index',
+            name: '招聘管理',
+            meta: {
+                i18n: 'dict'
+            },
+            component: () =>
+                import ( /* webpackChunkName: "views" */ '@/views/recruitmentManagement/index')
+        }]
+    }, {
+        path: '/securityUnit',
+        component: Layout,
+        redirect: '/securityUnit/index',
+        children: [{
+            path: 'index',
+            name: '保安单位信息',
+            meta: {
+                i18n: 'dict'
+            },
+            component: () =>
+                import ( /* webpackChunkName: "views" */ '@/views/securityUnit/index')
+        }]
+    }, {
+        path: '/securityGuard',
+        component: Layout,
+        redirect: '/securityGuard/securityGuard',
+        children: [{
+            path: 'index',
+            name: '保安员管理',
+            meta: {
+                i18n: 'dict'
+            },
+            component: () =>
+                import ( /* webpackChunkName: "views" */ '@/views/securityGuard/securityGuard')
+        }]
+    }, {
+        path: '/securityGuardOnce',
+        component: Layout,
+        redirect: '/securityGuard/securityGuardOnce',
+        children: [{
+            path: 'index',
+            name: '保安员查询',
+            meta: {
+                i18n: 'dict'
+            },
+            component: () =>
+                import ( /* webpackChunkName: "views" */ '@/views/securityGuard/securityGuardOnce')
+        }]
+    }, {
+        path: '/securityGuardDetail',
+        component: Layout,
+        redirect: '/securityGuardDetail/index',
+        children: [{
+            path: 'index',
+            name: '保安员详情',
+            meta: {
+                i18n: 'dict'
+            },
+            component: () =>
+                import ( /* webpackChunkName: "views" */ '@/views/securityGuard/securityGuardDetail')
+        }]
+    }, {
+        path: '/resource',
+        component: Layout,
+        redirect: '/resource/attach',
+        children: [{
+            path: 'attach',
+            name: '附件上传',
+            meta: {
+                i18n: 'dict'
+            },
+            component: () =>
+                import ( /* webpackChunkName: "views" */ '@/views/resource/attach')
+        }]
+    }, {
+        path: '/securityUnitChild',
+        component: Layout,
+        redirect: '/securityUnitChild/index',
+        children: [{
+            path: 'index',
+            name: '保安单位详情',
+            meta: {
+                i18n: 'dict'
+            },
+            component: () =>
+                import ( /* webpackChunkName: "views" */ '@/views/securityUnitChild/index')
+        }]
+    }, {
+        path: '/securityGuard',
+        component: Layout,
+        redirect: '/securityGuard/securityGuard',
+        children: [{
+            path: 'index',
+            name: '保安员管理',
+            meta: {
+                i18n: 'dict'
+            },
+            component: () =>
+                import ( /* webpackChunkName: "views" */ '@/views/securityGuard/securityGuard')
+        }]
+    },
+    // {
+    //     path: '/dispatch/dispatch',
+    //     component: Layout,
+    //     redirect: '/dispatch/dispatch',
+    //     children: [{
+    //         path: 'index',
+    //         name: '派遣服务管理',
+    //         meta: {
+    //             i18n: 'dict'
+    //         },
+    //         component: () =>
+    //             import( /* webpackChunkName: "views" */ '@/views/dispatch/dispatch')
+    //     }]
+    // },
+    {
+        path: '/desk',
+        component: Layout,
+        redirect: '/desk/notice',
+        children: [{
+            path: 'index',
+            name: '通知公告',
+            meta: {
+                i18n: 'dict'
+            },
+            component: () =>
+                import ( /* webpackChunkName: "views" */ '@/views/desk/notice')
+        }]
+    },
+    {
+        path: '/talk',
+        component: Layout,
+        redirect: '/talk/talk',
+        children: [{
+            path: 'index',
+            name: '心理咨询',
+            meta: {
+                i18n: 'dict'
+            },
+            component: () =>
+                import ( /* webpackChunkName: "views" */ '@/views/talk/talk')
+        }]
+    },
+    {
+        path: '/workreport',
+        component: Layout,
+        redirect: '/workreport/workreport',
+        children: [{
+            path: 'workreport',
+            name: '发起的汇报',
+            meta: {
+                i18n: 'dict'
+            },
+            component: () =>
+                import ( /* webpackChunkName: "views" */ '@/views/workreport/workreport')
+        }]
+    },
+    {
+        path: '/workreport',
+        component: Layout,
+        redirect: '/workreport/workreply',
+        children: [{
+            path: 'workreply',
+            name: '接收的汇报',
+            meta: {
+                i18n: 'dict'
+            },
+            component: () =>
+                import ( /* webpackChunkName: "views" */ '@/views/workreport/workreply')
+        }]
+    }, {
+        path: '/resource',
+        component: Layout,
+        redirect: '/resource/attachCopy',
+        children: [{
+            path: 'attachCopy',
+            name: '保安单位附件上传',
+            meta: {
+                i18n: 'dict'
+            },
+            component: () =>
+                import ( /* webpackChunkName: "views" */ '@/views/resource/attachCopy')
+        }]
+    },
+    // {
+    //     path: '/dispatch',
+    //     component: Layout,
+    //     redirect: '/dispatch/dispatch',
+    //     children: [{
+    //         path: 'dispatch',
+    //         name: '派遣单位管理',
+    //         meta: {
+    //             i18n: 'dispatch'
+    //         },
+    //         component: () =>
+    //             import( /* webpackChunkName: "views" */ '@/views/dispatch/dispatch')
+    //     }, {
+    //         path: 'dispatchChildoperable',
+    //         name: '派遣记录管理',
+    //         meta: {
+    //             i18n: 'dispatch'
+    //         },
+    //         component: () =>
+    //             import( /* webpackChunkName: "views" */ '@/views/dispatch/dispatchChildoperable')
+    //     }]
+    // },
+    // {
+    //     path: '/dispatchChild',
+    //     component: Layout,
+    //     redirect: '/dispatchChild/index',
+    //     children: [{
+    //         path: 'index',
+    //         name: '派遣服务记录',
+    //         meta: {
+    //             i18n: 'dict'
+    //         },
+    //         component: () =>
+    //             import( /* webpackChunkName: "views" */ '@/views/dispatchChild/index')
+    //     }]
+    // },
+    // {
+    //     path: '/equipments',
+    //     component: Layout,
+    //     redirect: '/equipments/index',
+    //     children: [{
+    //         path: 'index',
+    //         name: '保安公司装备管理',
+    //         meta: {
+    //             i18n: 'dict'
+    //         },
+    //         component: () =>
+    //             import( /* webpackChunkName: "views" */ '@/views/equipments/index')
+    //     }]
+    // }, {
+    //     path: '/car',
+    //     component: Layout,
+    //     redirect: '/car/index',
+    //     children: [{
+    //         path: 'index',
+    //         name: '保安公司车辆管理',
+    //         meta: {
+    //             i18n: 'dict'
+    //         },
+    //         component: () =>
+    //             import( /* webpackChunkName: "views" */ '@/views/car/index')
+    //     }]
+    // }, {
+    //     path: '/gun',
+    //     component: Layout,
+    //     redirect: '/gun/index',
+    //     children: [{
+    //         path: 'index',
+    //         name: '保安公司枪支管理',
+    //         meta: {
+    //             i18n: 'dict'
+    //         },
+    //         component: () =>
+    //             import( /* webpackChunkName: "views" */ '@/views/gun/index')
+    //     }]
+    // },
+    // {
+    //     path: '/securityEquipment',
+    //     component: Layout,
+    //     redirect: '/securityEquipment',
+    //     children: [{
+    //         path: 'equipments',
+    //         name: '装备管理',
+    //         meta: {
+    //             i18n: 'securityEquipment'
+    //         },
+    //         component: () =>
+    //             import( /* webpackChunkName: "views" */ '@/views/securityEquipment/equipments')
+    //     }, {
+    //         path: 'car',
+    //         name: '车辆管理',
+    //         meta: {
+    //             i18n: 'car'
+    //         },
+    //         component: () =>
+    //             import( /* webpackChunkName: "views" */ '@/views/securityEquipment/car')
+    //     }, {
+    //         path: 'gun',
+    //         name: '车辆管理',
+    //         meta: {
+    //             i18n: 'gun'
+    //         },
+    //         component: () =>
+    //             import( /* webpackChunkName: "views" */ '@/views/securityEquipment/gun')
+    //     }]
+    // },
+    // {
+    //     path: '/trainingRegistration',
+    //     component: Layout,
+    //     redirect: '/trainingRegistration/index',
+    //     children: [{
+    //         path: 'index',
+    //         name: '保安培训报名管理',
+    //         meta: {
+    //             i18n: 'dict'
+    //         },
+    //         component: () =>
+    //             import ( /* webpackChunkName: "views" */ '@/views/trainingRegistration/index')
+    //     }]
+    // },
+    {
+        path: '/securityAnalysis',
+        component: Layout,
+        redirect: '/securityAnalysis/index',
+        children: [{
+            path: 'index',
+            name: '保安单位情况智能分析',
+            meta: {
+                i18n: 'dict'
+            },
+            component: () =>
+                import ( /* webpackChunkName: "views" */ '@/views/securityAnalysis/index')
+        }]
+    }, {
+        path: '/recruitmentManagement',
+        component: Layout,
+        redirect: '/recruitmentManagement/index',
+        children: [{
+            path: 'index',
+            name: '招聘管理',
+            meta: {
+                i18n: 'dict'
+            },
+            component: () =>
+                import ( /* webpackChunkName: "views" */ '@/views/recruitmentManagement/index')
+        }]
+    }, {
+        path: '/ownerFeedback',
+        component: Layout,
+        redirect: '/ownerFeedback/index',
+        children: [{
+            path: 'index',
+            name: '业主反馈',
+            meta: {
+                i18n: 'dict'
+            },
+            component: () =>
+                import ( /* webpackChunkName: "views" */ '@/views/ownerFeedback/owner')
+        }]
+    }, {
+        path: '/securityUnit',
+        component: Layout,
+        redirect: '/securityUnit/index',
+        children: [{
+            path: 'index',
+            name: '保安单位信息',
+            meta: {
+                i18n: 'dict'
+            },
+            component: () =>
+                import ( /* webpackChunkName: "views" */ '@/views/securityUnit/index')
+        }]
+    }, {
+        path: '/securityGuard',
+        component: Layout,
+        redirect: '/securityGuard/securityGuard',
+        children: [{
+            path: 'index',
+            name: '保安员查询',
+            meta: {
+                i18n: 'dict'
+            },
+            component: () =>
+                import ( /* webpackChunkName: "views" */ '@/views/securityGuard/securityGuard')
+        }]
+    }, {
+        path: '/securityGuardDetail',
+        component: Layout,
+        redirect: '/securityGuardDetail/index',
+        children: [{
+            path: 'index',
+            name: '保安员详情',
+            meta: {
+                i18n: 'dict'
+            },
+            component: () =>
+                import ( /* webpackChunkName: "views" */ '@/views/securityGuard/securityGuardDetail')
+        }]
+    }, {
+        path: '/resource',
+        component: Layout,
+        redirect: '/resource/attach',
+        children: [{
+            path: 'attach',
+            name: '附件上传',
+            meta: {
+                i18n: 'dict'
+            },
+            component: () =>
+                import ( /* webpackChunkName: "views" */ '@/views/resource/attach')
+        }]
+    }, {
+        path: '/securityUnitChild',
+        component: Layout,
+        redirect: '/securityUnitChild/index',
+        children: [{
+            path: 'index',
+            name: '保安单位详情',
+            meta: {
+                i18n: 'dict'
+            },
+            component: () =>
+                import ( /* webpackChunkName: "views" */ '@/views/securityUnitChild/index')
+        }]
+    }, {
+        path: '/securityGuard',
+        component: Layout,
+        redirect: '/securityGuard/securityGuard',
+        children: [{
+            path: 'index',
+            name: '保安员管理',
+            meta: {
+                i18n: 'dict'
+            },
+            component: () =>
+                import ( /* webpackChunkName: "views" */ '@/views/securityGuard/securityGuard')
+        }]
+    },
+    // {
+    //     path: '/dispatch/dispatch',
+    //     component: Layout,
+    //     redirect: '/dispatch/dispatch',
+    //     children: [{
+    //         path: 'index',
+    //         name: '派遣服务管理',
+    //         meta: {
+    //             i18n: 'dict'
+    //         },
+    //         component: () =>
+    //             import( /* webpackChunkName: "views" */ '@/views/dispatch/dispatch')
+    //     }]
+    // },
+    {
+        path: '/desk',
+        component: Layout,
+        redirect: '/desk/notice',
+        children: [{
+            path: 'index',
+            name: '通知公告',
+            meta: {
+                i18n: 'dict'
+            },
+            component: () =>
+                import ( /* webpackChunkName: "views" */ '@/views/desk/notice')
+        }]
+    }, {
+        path: '/dispatch',
+        component: Layout,
+        redirect: '/dispatch/dispatch',
+        children: [{
+            path: 'dispatch',
+            name: '派遣单位管理',
+            meta: {
+                i18n: 'dispatch'
+            },
+            component: () =>
+                import ( /* webpackChunkName: "views" */ '@/views/dispatch/dispatch')
+        }, {
+            path: 'dispatchChildoperable',
+            name: '派遣记录管理',
+            meta: {
+                i18n: 'dispatch'
+            },
+            component: () =>
+                import ( /* webpackChunkName: "views" */ '@/views/dispatch/dispatchChildoperable')
+        }]
+    }, {
+        path: '/dispatchChild',
+        component: Layout,
+        redirect: '/dispatchChild/index',
+        children: [{
+            path: 'index',
+            name: '派遣服务记录',
+            meta: {
+                i18n: 'dict'
+            },
+            component: () =>
+                import ( /* webpackChunkName: "views" */ '@/views/dispatchChild/index')
+        }]
+    }, {
+        path: '/applyexam',
+        redirect: '/applyexam/papers',
+        component: Layout,
+        children: [{
+            path: 'papers',
+            name: '准考证信息',
+            meta: {
+                i18n: 'index',
+            },
+            component: () =>
+                import ( /* webpackChunkName: "views" */ '@/views/applyexam/papers')
+        }]
+    },
+    // {
+    //     path: '/equipments',
+    //     component: Layout,
+    //     redirect: '/equipments/index',
+    //     children: [{
+    //         path: 'index',
+    //         name: '保安公司装备管理',
+    //         meta: {
+    //             i18n: 'dict'
+    //         },
+    //         component: () =>
+    //             import( /* webpackChunkName: "views" */ '@/views/equipments/index')
+    //     }]
+    // }, {
+    //     path: '/car',
+    //     component: Layout,
+    //     redirect: '/car/index',
+    //     children: [{
+    //         path: 'index',
+    //         name: '保安公司车辆管理',
+    //         meta: {
+    //             i18n: 'dict'
+    //         },
+    //         component: () =>
+    //             import( /* webpackChunkName: "views" */ '@/views/car/index')
+    //     }]
+    // }, {
+    //     path: '/gun',
+    //     component: Layout,
+    //     redirect: '/gun/index',
+    //     children: [{
+    //         path: 'index',
+    //         name: '保安公司枪支管理',
+    //         meta: {
+    //             i18n: 'dict'
+    //         },
+    //         component: () =>
+    //             import( /* webpackChunkName: "views" */ '@/views/gun/index')
+    //     }]
+    // },
+    // {
+    //     path: '/securityEquipment',
+    //     component: Layout,
+    //     redirect: '/securityEquipment',
+    //     children: [{
+    //         path: 'equipments',
+    //         name: '装备管理',
+    //         meta: {
+    //             i18n: 'securityEquipment'
+    //         },
+    //         component: () =>
+    //             import( /* webpackChunkName: "views" */ '@/views/securityEquipment/equipments')
+    //     }, {
+    //         path: 'car',
+    //         name: '车辆管理',
+    //         meta: {
+    //             i18n: 'car'
+    //         },
+    //         component: () =>
+    //             import( /* webpackChunkName: "views" */ '@/views/securityEquipment/car')
+    //     }, {
+    //         path: 'gun',
+    //         name: '车辆管理',
+    //         meta: {
+    //             i18n: 'gun'
+    //         },
+    //         component: () =>
+    //             import( /* webpackChunkName: "views" */ '@/views/securityEquipment/gun')
+    //     }]
+    // },
+    {
+        path: '/trainingRegistration',
+        component: Layout,
+        peixun: true,
+        redirect: '/trainingRegistration/index',
+        children: [{
+            path: 'index',
+            name: '培训报名列表',
+            meta: {
+                i18n: 'dict'
+            },
+            component: () =>
+                import ( /* webpackChunkName: "views" */ '@/views/trainingRegistration/index')
+        }]
+    },
+    // {
+    //     path: '/trainExam',
+    //     component: Layout,
+    //     redirect: '/trainExam/index',
+    //     children: [{
+    //         path: 'index',
+    //         name: '考试申请',
+    //         meta: {
+    //             i18n: 'dict'
+    //         },
+    //         component: () =>
+    //             import ( /* webpackChunkName: "views" */ '@/views/trainExam/index')
+    //     }]
+    // },
+    // {
+    //     path: '/applyexam',
+    //     redirect: '/applyexam/index',
+    //     component: Layout,
+    //     children: [{
+    //         path: 'index',
+    //         name: '报名考试',
+    //         meta: {
+    //             i18n: 'index',
+    //         },
+    //         component: () =>
+    //             import( /* webpackChunkName: "views" */ '@/views/applyexam/index')
+    //     }]
+    // },
+    {
+        path: '/applydetailed',
+        redirect: '/applydetailed/index',
+        component: Layout,
+        children: [{
+            path: 'index',
+            name: '报名清册',
+            meta: {
+                i18n: 'index',
+            },
+            component: () =>
+                import ( /* webpackChunkName: "views" */ '@/views/applydetailed/index')
+        }]
+    },
+    {
+        path: '/trainApply',
+        redirect: '/trainApply/index',
+        component: Layout,
+        children: [{
+            path: 'index',
+            name: '报名清册',
+            meta: {
+                i18n: 'index',
+            },
+            component: () =>
+                import ( /* webpackChunkName: "views" */ '@/views/trainApply/index')
+        }]
+    },
+    {
+        path: '/startexam',
+        redirect: '/startexam/index',
+        component: Layout,
+        children: [{
+            path: 'index',
+            name: '开始考试',
+            meta: {
+                i18n: 'index',
+            },
+            component: () =>
+                import ( /* webpackChunkName: "views" */ '@/views/startexam/index')
+        }]
+    },
+    {
+        path: '/titleDetails',
         component: () =>
-            import( /* webpackChunkName: "views" */ '@/views/dispatch/dispatchChildoperable')
-    }]
-}, {
-    path: '/dispatchChild',
-    component: Layout,
-    redirect: '/dispatchChild/index',
-    children: [{
-        path: 'index',
-        name: '派遣服务记录',
-        meta: {
-            i18n: 'dict'
-        },
-        component: () =>
-            import( /* webpackChunkName: "views" */ '@/views/dispatchChild/index')
-    }]
-}, {
-    path: '/applyexam',
-    redirect: '/applyexam/papers',
-    component: Layout,
-    children: [{
-        path: 'papers',
-        name: '准考证信息',
-        meta: {
-            i18n: 'index',
-        },
-        component: () =>
-            import( /* webpackChunkName: "views" */ '@/views/applyexam/papers')
-    }]
-},
-// {
-//     path: '/equipments',
-//     component: Layout,
-//     redirect: '/equipments/index',
-//     children: [{
-//         path: 'index',
-//         name: '保安公司装备管理',
-//         meta: {
-//             i18n: 'dict'
-//         },
-//         component: () =>
-//             import( /* webpackChunkName: "views" */ '@/views/equipments/index')
-//     }]
-// }, {
-//     path: '/car',
-//     component: Layout,
-//     redirect: '/car/index',
-//     children: [{
-//         path: 'index',
-//         name: '保安公司车辆管理',
-//         meta: {
-//             i18n: 'dict'
-//         },
-//         component: () =>
-//             import( /* webpackChunkName: "views" */ '@/views/car/index')
-//     }]
-// }, {
-//     path: '/gun',
-//     component: Layout,
-//     redirect: '/gun/index',
-//     children: [{
-//         path: 'index',
-//         name: '保安公司枪支管理',
-//         meta: {
-//             i18n: 'dict'
-//         },
-//         component: () =>
-//             import( /* webpackChunkName: "views" */ '@/views/gun/index')
-//     }]
-// },
-// {
-//     path: '/securityEquipment',
-//     component: Layout,
-//     redirect: '/securityEquipment',
-//     children: [{
-//         path: 'equipments',
-//         name: '装备管理',
-//         meta: {
-//             i18n: 'securityEquipment'
-//         },
-//         component: () =>
-//             import( /* webpackChunkName: "views" */ '@/views/securityEquipment/equipments')
-//     }, {
-//         path: 'car',
-//         name: '车辆管理',
-//         meta: {
-//             i18n: 'car'
-//         },
-//         component: () =>
-//             import( /* webpackChunkName: "views" */ '@/views/securityEquipment/car')
-//     }, {
-//         path: 'gun',
-//         name: '车辆管理',
-//         meta: {
-//             i18n: 'gun'
-//         },
-//         component: () =>
-//             import( /* webpackChunkName: "views" */ '@/views/securityEquipment/gun')
-//     }]
-// },
-{
-    path: '/trainingRegistration',
-    component: Layout,
-    peixun: true,
-    redirect: '/trainingRegistration/index',
-    children: [{
-        path: 'index',
-        name: '培训报名列表',
-        meta: {
-            i18n: 'dict'
-        },
-        component: () =>
-            import( /* webpackChunkName: "views" */ '@/views/trainingRegistration/index')
-    }]
-},
-// {
-//     path: '/trainExam',
-//     component: Layout,
-//     redirect: '/trainExam/index',
-//     children: [{
-//         path: 'index',
-//         name: '考试申请',
-//         meta: {
-//             i18n: 'dict'
-//         },
-//         component: () =>
-//             import ( /* webpackChunkName: "views" */ '@/views/trainExam/index')
-//     }]
-// },
-// {
-//     path: '/applyexam',
-//     redirect: '/applyexam/index',
-//     component: Layout,
-//     children: [{
-//         path: 'index',
-//         name: '报名考试',
-//         meta: {
-//             i18n: 'index',
-//         },
-//         component: () =>
-//             import( /* webpackChunkName: "views" */ '@/views/applyexam/index')
-//     }]
-// },
-{
-    path: '/applydetailed',
-    redirect: '/applydetailed/index',
-    component: Layout,
-    children: [{
-        path: 'index',
-        name: '报名清册',
-        meta: {
-            i18n: 'index',
-        },
-        component: () =>
-            import( /* webpackChunkName: "views" */ '@/views/applydetailed/index')
-    }]
-},
-{
-    path: '/trainApply',
-    redirect: '/trainApply/index',
-    component: Layout,
-    children: [{
-        path: 'index',
-        name: '报名清册',
-        meta: {
-            i18n: 'index',
-        },
-        component: () =>
-            import( /* webpackChunkName: "views" */ '@/views/trainApply/index')
-    }]
-},
-{
-    path: '/startexam',
-    redirect: '/startexam/index',
-    component: Layout,
-    children: [{
-        path: 'index',
-        name: '开始考试',
-        meta: {
-            i18n: 'index',
-        },
-        component: () =>
-            import( /* webpackChunkName: "views" */ '@/views/startexam/index')
-    }]
-},
-{
-    path: '/titleDetails',
-    component: () =>
-        import( /* webpackChunkName: "views" */ '@/views/exam/topicDetails')
-},
-{
-    path: '',
-    component: Layout,
-    children: [{
-        path: '/exam/subjects/:id',
-        component: () =>
-            import('@/views/exam/examSubjects'),
-        name: '题目管理',
-        title: '题目管理',
-        noCache: true
-    }]
-},
-{
-    path: '',
-    component: Layout,
-    children: [{
-        path: '/startexam/:id',
-        component: () =>
-            import('@/views/startexam/index'),
-        name: '开始考试',
-        title: '开始考试',
-        noCache: true
-    }]
-},
-// {
-//     path: '/traincompany',
-//     component: Layout,
-//     redirect: '/traincompany/index',
-//     children: [{
-//         path: 'index',
-//         name: '培训公司查询',
-//         meta: {
-//             i18n: 'dict'
-//         },
-//         component: () =>
-//             import ( /* webpackChunkName: "views" */ '@/views/traincompany/index')
-//     }]
-// },
-{
-    path: '/dispatchChildoperableSee',
-    component: Layout,
-    redirect: '/dispatchChildoperableSee/index',
-    children: [{
-        path: 'index',
-        name: '派遣记录',
-        meta: {
-            i18n: 'index'
-        },
-        component: () =>
-            import( /* webpackChunkName: "views" */ '@/views/dispatch/dispatchChildoperableSee')
-    }]
-},
-{
-    path: '/expression',
-    component: Layout,
-    redirect: '/expression/index',
-    children: [{
-        path: 'index',
-        name: '表现记录',
-        meta: {
-            i18n: 'index'
-        },
-        component: () =>
-            import( /* webpackChunkName: "views" */ '@/views/people/expression')
-    }]
-}, {
-    path: '/job',
-    component: Layout,
-    redirect: '/job/index',
-    children: [{
-        path: 'index',
-        name: '从业记录',
-        meta: {
-            i18n: 'index'
-        },
-        component: () =>
-            import( /* webpackChunkName: "views" */ '@/views/people/job')
-    }]
-}, {
-    path: '/resource',
-    redirect: '/resource/uploadNotice',
-    component: Layout,
-    children: [{
-        path: 'uploadNotice',
-        name: '通知公告>附件上传',
-        meta: {
-            i18n: 'index',
-        },
-        component: () =>
-            import( /* webpackChunkName: "views" */ '@/views/resource/uploadNotice')
-    }]
-},
-{
-    path: '/applydetailed',
-    redirect: '/applydetailed/papers',
-    component: Layout,
-    children: [{
-        path: 'papers',
-        name: '报名清册信息',
-        meta: {
-            i18n: 'index',
-        },
-        component: () =>
-            import( /* webpackChunkName: "views" */ '@/views/applydetailed/papers')
-    }]
-},
-{
-    path: '/exam',
-    redirect: '/exam/papers',
-    component: Layout,
-    children: [{
-        path: 'papers',
-        name: '保安证',
-        meta: {
-            i18n: 'index',
-        },
-        component: () =>
-            import( /* webpackChunkName: "views" */ '@/views/exam/papers')
-    }]
-}, {
-    path: '/resource',
-    redirect: '/resource/uploadPolicyRelease',
-    component: Layout,
-    children: [{
-        path: 'uploadPolicyRelease',
-        name: '政策发布>附件上传',
-        meta: {
-            i18n: 'index',
-        },
-        component: () =>
-            import( /* webpackChunkName: "views" */ '@/views/resource/uploadPolicyRelease')
-    }]
-}, {
-    path: '/securityMan',
-    redirect: '/securityMan/index',
-    component: Layout,
-    children: [{
-        path: 'index',
-        name: '保安员信息',
-        meta: {
-            i18n: 'index',
-        },
-        component: () =>
-            import( /* webpackChunkName: "views" */ '@/views/securityMan/index')
-    }]
-}, {
-    path: '/attachOnce',
-    redirect: '/resource/attachOnce',
-    component: Layout,
-    children: [{
-        path: 'index',
-        name: '附件查看',
-        meta: {
-            i18n: 'index',
-        },
-        component: () =>
-            import( /* webpackChunkName: "views" */ '@/views/resource/attachOnce')
-    }]
-}, {
-    path: '/resource',
-    redirect: '/resource/uploadNotification',
-    component: Layout,
-    children: [{
-        path: 'uploadNotification',
-        name: '通知通报>附件上传',
-        meta: {
-            i18n: 'index',
-        },
-        component: () =>
-            import( /* webpackChunkName: "views" */ '@/views/resource/uploadNotification')
-    }]
-},
+            import ( /* webpackChunkName: "views" */ '@/views/exam/topicDetails')
+    },
+    {
+        path: '',
+        component: Layout,
+        children: [{
+            path: '/exam/subjects/:id',
+            component: () =>
+                import ('@/views/exam/examSubjects'),
+            name: '题目管理',
+            title: '题目管理',
+            noCache: true
+        }]
+    },
+    {
+        path: '',
+        component: Layout,
+        children: [{
+            path: '/startexam/:id',
+            component: () =>
+                import ('@/views/startexam/index'),
+            name: '开始考试',
+            title: '开始考试',
+            noCache: true
+        }]
+    },
+    // {
+    //     path: '/traincompany',
+    //     component: Layout,
+    //     redirect: '/traincompany/index',
+    //     children: [{
+    //         path: 'index',
+    //         name: '培训公司查询',
+    //         meta: {
+    //             i18n: 'dict'
+    //         },
+    //         component: () =>
+    //             import ( /* webpackChunkName: "views" */ '@/views/traincompany/index')
+    //     }]
+    // },
+    {
+        path: '/dispatchChildoperableSee',
+        component: Layout,
+        redirect: '/dispatchChildoperableSee/index',
+        children: [{
+            path: 'index',
+            name: '派遣记录',
+            meta: {
+                i18n: 'index'
+            },
+            component: () =>
+                import ( /* webpackChunkName: "views" */ '@/views/dispatch/dispatchChildoperableSee')
+        }]
+    },
+    {
+        path: '/expression',
+        component: Layout,
+        redirect: '/expression/index',
+        children: [{
+            path: 'index',
+            name: '表现记录',
+            meta: {
+                i18n: 'index'
+            },
+            component: () =>
+                import ( /* webpackChunkName: "views" */ '@/views/people/expression')
+        }]
+    }, {
+        path: '/job',
+        component: Layout,
+        redirect: '/job/index',
+        children: [{
+            path: 'index',
+            name: '从业记录',
+            meta: {
+                i18n: 'index'
+            },
+            component: () =>
+                import ( /* webpackChunkName: "views" */ '@/views/people/job')
+        }]
+    }, {
+        path: '/resource',
+        redirect: '/resource/uploadNotice',
+        component: Layout,
+        children: [{
+            path: 'uploadNotice',
+            name: '通知公告>附件上传',
+            meta: {
+                i18n: 'index',
+            },
+            component: () =>
+                import ( /* webpackChunkName: "views" */ '@/views/resource/uploadNotice')
+        }]
+    },
+    {
+        path: '/applydetailed',
+        redirect: '/applydetailed/papers',
+        component: Layout,
+        children: [{
+            path: 'papers',
+            name: '报名清册信息',
+            meta: {
+                i18n: 'index',
+            },
+            component: () =>
+                import ( /* webpackChunkName: "views" */ '@/views/applydetailed/papers')
+        }]
+    },
+    {
+        path: '/exam',
+        redirect: '/exam/papers',
+        component: Layout,
+        children: [{
+            path: 'papers',
+            name: '保安证',
+            meta: {
+                i18n: 'index',
+            },
+            component: () =>
+                import ( /* webpackChunkName: "views" */ '@/views/exam/papers')
+        }]
+    }, {
+        path: '/resource',
+        redirect: '/resource/uploadPolicyRelease',
+        component: Layout,
+        children: [{
+            path: 'uploadPolicyRelease',
+            name: '政策发布>附件上传',
+            meta: {
+                i18n: 'index',
+            },
+            component: () =>
+                import ( /* webpackChunkName: "views" */ '@/views/resource/uploadPolicyRelease')
+        }]
+    }, {
+        path: '/securityMan',
+        redirect: '/securityMan/index',
+        component: Layout,
+        children: [{
+            path: 'index',
+            name: '保安员信息',
+            meta: {
+                i18n: 'index',
+            },
+            component: () =>
+                import ( /* webpackChunkName: "views" */ '@/views/securityMan/index')
+        }]
+    }, {
+        path: '/attachOnce',
+        redirect: '/resource/attachOnce',
+        component: Layout,
+        children: [{
+            path: 'index',
+            name: '附件查看',
+            meta: {
+                i18n: 'index',
+            },
+            component: () =>
+                import ( /* webpackChunkName: "views" */ '@/views/resource/attachOnce')
+        }]
+    }, {
+        path: '/resource',
+        redirect: '/resource/uploadNotification',
+        component: Layout,
+        children: [{
+            path: 'uploadNotification',
+            name: '通知通报>附件上传',
+            meta: {
+                i18n: 'index',
+            },
+            component: () =>
+                import ( /* webpackChunkName: "views" */ '@/views/resource/uploadNotification')
+        }]
+    }, {
+        path: '/trainExam',
+        component: Layout,
+        children: [{
+            path: 'check',
+            name: '培训考试审核',
+            meta: {
+                i18n: 'index',
+            },
+            component: () =>
+                import ( /* webpackChunkName: "views" */ '@/views/trainExam/index')
+        }, {
+            path: 'query',
+            name: '培训申请查询',
+            meta: {
+                i18n: 'index',
+            },
+            component: () =>
+                import ( /* webpackChunkName: "views" */ '@/views/trainExam/index')
+        }]
+    }
 ]
\ No newline at end of file
diff --git a/src/views/securityGuard/securityGuard.vue b/src/views/securityGuard/securityGuard.vue
index f6580bc..3cf9e0d 100644
--- a/src/views/securityGuard/securityGuard.vue
+++ b/src/views/securityGuard/securityGuard.vue
@@ -46,7 +46,7 @@
               icon="el-icon-upload2"
               v-if="permission.securityGuard_import"
               @click="handleImport1"
-              >批量导入
+              >保安员批量导入
             </el-button>
             <el-button
               type="success"
@@ -311,30 +311,30 @@
 
 export default {
   data() {
-    const validatePass = (rule, value, callback) => {
-      if (value === "") {
-        callback(new Error("请输入密码"));
-      } else {
-        callback();
-      }
-    };
-    const validatePass2 = (rule, value, callback) => {
-      if (value === "") {
-        callback(new Error("请再次输入密码"));
-      } else if (value !== this.form.password) {
-        callback(new Error("两次输入密码不一致!"));
-      } else {
-        callback();
-      }
-    };
-    const validatePassNumber = (rule, value, callback) => {
-      var test = /^[0-9]*$/gm;
-      if (!test.test(value)) {
-        callback(new Error("请输入数字"));
-      } else {
-        callback();
-      }
-    };
+    // const validatePass = (rule, value, callback) => {
+    //   if (value === "") {
+    //     callback(new Error("请输入密码"));
+    //   } else {
+    //     callback();
+    //   }
+    // };
+    // const validatePass2 = (rule, value, callback) => {
+    //   if (value === "") {
+    //     callback(new Error("请再次输入密码"));
+    //   } else if (value !== this.form.password) {
+    //     callback(new Error("两次输入密码不一致!"));
+    //   } else {
+    //     callback();
+    //   }
+    // };
+    // const validatePassNumber = (rule, value, callback) => {
+    //   var test = /^[0-9]*$/gm;
+    //   if (!test.test(value)) {
+    //     callback(new Error("请输入数字"));
+    //   } else {
+    //     callback();
+    //   }
+    // };
     const validatePassCardid = (rule, value, callback) => {
       var test = /(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/g;
       if (!test.test(value) && value.length < 17) {
@@ -514,49 +514,6 @@
                 ],
               },
               {
-                label: "登录账号",
-                prop: "account",
-                editDisabled: true,
-                rules: [
-                  {
-                    required: true,
-                    message: "请输入登录账号",
-                    trigger: "blur",
-                  },
-                ],
-                // disabled: true,
-              },
-              {
-                label: "密码",
-                prop: "password",
-                type: "password",
-                hide: true,
-                editDisplay: false,
-                viewDisplay: false,
-                rules: [
-                  { required: true, validator: validatePass, trigger: "blur" },
-                ],
-              },
-              {
-                label: "确认密码",
-                prop: "password2",
-                type: "password",
-                hide: true,
-                editDisplay: false,
-                viewDisplay: false,
-                rules: [
-                  { required: true, validator: validatePass2, trigger: "blur" },
-                ],
-              },
-            ],
-          },
-          {
-            label: "详细信息",
-            prop: "detailInfo",
-            labelWidth: "110",
-            icon: "el-icon-s-order",
-            column: [
-              {
                 label: "姓名",
                 prop: "realName",
                 rules: [
@@ -572,10 +529,88 @@
                   },
                 ],
               },
+              // {
+              //   label: "登录账号",
+              //   prop: "account",
+              //   editDisabled: true,
+              //   rules: [
+              //     {
+              //       required: true,
+              //       message: "请输入登录账号",
+              //       trigger: "blur",
+              //     },
+              //   ],
+              //   // disabled: true,
+              // },
+              // {
+              //   label: "密码",
+              //   prop: "password",
+              //   type: "password",
+              //   hide: true,
+              //   editDisplay: false,
+              //   viewDisplay: false,
+              //   rules: [
+              //     { required: true, validator: validatePass, trigger: "blur" },
+              //   ],
+              // },
+              // {
+              //   label: "确认密码",
+              //   prop: "password2",
+              //   type: "password",
+              //   hide: true,
+              //   editDisplay: false,
+              //   viewDisplay: false,
+              //   rules: [
+              //     { required: true, validator: validatePass2, trigger: "blur" },
+              //   ],
+              // },
+            ],
+          },
+          {
+            label: "详细信息",
+            prop: "detailInfo",
+            labelWidth: "110",
+            icon: "el-icon-s-order",
+            column: [
               {
-                label: "昵称",
-                prop: "name",
+                label: "身份证号",
+                prop: "cardid",
+                hide: true,
+                overHidden: true,
+                rules: [
+                  {
+                    required: true,
+                    message: "请输入身份证号",
+                    trigger: "blur",
+                  },
+                  {
+                    required: true,
+                    validator: validatePassCardid,
+                    trigger: "blur",
+                  },
+                ],
               },
+              {
+                label: "手机号码",
+                prop: "phone",
+                overHidden: true,
+                rules: [
+                  {
+                    required: true,
+                    message: "请输入手机号",
+                    trigger: "blur",
+                  },
+                  {
+                    required: true,
+                    validator: validatePassPhone,
+                    trigger: "blur",
+                  },
+                ],
+              },
+              // {
+              //   label: "昵称",
+              //   prop: "name",
+              // },
               {
                 label: "个人照片",
                 type: "upload",
@@ -647,41 +682,6 @@
                 label: "保安员证编号",
                 prop: "securitynumber",
                 hide: true,
-              },
-              {
-                label: "身份证号",
-                prop: "cardid",
-                hide: true,
-                overHidden: true,
-                rules: [
-                  {
-                    required: true,
-                    message: "请输入身份证号",
-                    trigger: "blur",
-                  },
-                  {
-                    required: true,
-                    validator: validatePassCardid,
-                    trigger: "blur",
-                  },
-                ],
-              },
-              {
-                label: "手机号码",
-                prop: "phone",
-                overHidden: true,
-                rules: [
-                  {
-                    required: true,
-                    message: "请输入手机号",
-                    trigger: "blur",
-                  },
-                  {
-                    required: true,
-                    validator: validatePassPhone,
-                    trigger: "blur",
-                  },
-                ],
               },
               {
                 label: "电子邮箱",
diff --git a/src/views/trainExam/performance.vue b/src/views/trainExam/performance.vue
index f66c85d..f993d5c 100644
--- a/src/views/trainExam/performance.vue
+++ b/src/views/trainExam/performance.vue
@@ -75,6 +75,15 @@
                 @click="handleImport"
                 >实操成绩导入
               </el-button>
+              <el-button
+                type="warning"
+                size="small"
+                plain
+                icon="el-icon-download"
+                v-if="permission.trainExam_performance_export"
+                @click="handleExport"
+                >成绩导出
+              </el-button>
             </template>
 
             <template slot-scope="{ type, size, row }" slot="menu">
@@ -116,6 +125,7 @@
 import { getList, update, updateAbsent } from "@/api/examapi/performance";
 import { mapGetters } from "vuex";
 import { getRoleDetail } from "@/api/system/role";
+import Qs from 'qs';
 export default {
   data() {
     var validatePass = (rule, value, callback) => {
@@ -146,8 +156,8 @@
         addBtn: false,
         selection: false,
         // 导出按钮
-        excelBtn: true,
-        excelBtnText: "成绩导出",
+        // excelBtn: true,
+        // excelBtnText: "成绩导出",
         viewBtn: true,
         // title: '成绩',
         align: "center",
@@ -164,13 +174,37 @@
         menu: true,
         menuWidth: 215,
         labelWidth: 120,
-
         column: [
+          {
+            label: "考试时间",
+            prop: "examDate",
+            type: "date",
+            hide: true,
+            format: "yyyy-MM-dd",
+            valueFormat: "yyyy-MM-dd",
+            width: 140,
+            slot: true,
+            search: true,
+            searchSpan: 4,
+            // 表单新增时是否禁止
+            addDisabled: false,
+            // 表单新增时是否可见
+            addDisplay: false,
+            // 表单新增时是否为查看模式
+            addDetail: false,
+            // 表单编辑时是否禁止
+            editDisabled: false,
+            // 表单编辑时是否可见
+            editDisplay: false,
+            // 表单编辑时是否为查看模式
+            editDetail: false,
+            viewDisplay: false,
+          },
           {
             label: "考试名称",
             prop: "examName",
             search: true,
-            searchSpan: 4,
+            searchSpan: 5,
             slot: true,
             viewDisplay: true,
             // 表单新增时是否禁止
@@ -680,6 +714,44 @@
     refreshChange() {
       this.questionBankOnLoad(this.questionBankPage, this.questionBankQuery);
     },
+    //成绩导出
+    handleExport() {
+      this.$confirm("是否导出成绩数据?", "提示", {
+        confirmButtonText: "确定",
+        cancelButtonText: "取消",
+        type: "warning",
+      }).then(() => {
+        //获取查询条件
+        console.log(this.questionBankSearch,456);
+        var data = {
+          account: this.questionBankSearch.account,
+          companyName: this.questionBankSearch.companyName,
+          examDate: this.questionBankSearch.examDate,
+          isExam: this.questionBankSearch.isExam,
+          qualified: this.questionBankSearch.qualified,
+          securityName: this.questionBankSearch.securityName,
+          examName: this.questionBankSearch.examName,
+        };
+        //导出
+        if (
+          this.userInfo.role_name == "保安公司管理员" ||
+          this.userInfo.role_name == "保安"
+        ) {
+          //如果是保安公司管理员
+          data["deptId"] = this.userInfo.dept_id;
+        }
+        if (this.userInfo.role_name == "培训公司管理员") {
+          //如果是培训公司管理员
+          data["trainUnitId"] = this.userInfo.dept_id;
+        }
+        data["examType"] = 2;
+        //序列号url形式,用&拼接
+        data = Qs.stringify(data);
+        window.open(
+          `/api/examScore/export-examScore?` + data
+        );
+      });
+    },
   },
 };
 </script>
diff --git a/src/views/trainExam/singleperformance.vue b/src/views/trainExam/singleperformance.vue
index 35a3aa1..c08fff2 100644
--- a/src/views/trainExam/singleperformance.vue
+++ b/src/views/trainExam/singleperformance.vue
@@ -52,6 +52,18 @@
               }}
             </template>
 
+            <!-- 自定义按钮 -->
+            <template slot="menuLeft">
+              <el-button
+                type="warning"
+                size="small"
+                plain
+                icon="el-icon-download"
+                v-if="permission.trainExam_singleperformance_export"
+                @click="handleExport"
+                >成绩导出
+              </el-button>
+            </template>
             <template slot-scope="{ row }" slot="menu">
               <el-button
                 type="text"
@@ -96,7 +108,7 @@
 import { getList, update } from "@/api/examapi/performance";
 import { mapGetters } from "vuex";
 import { getRoleDetail } from "@/api/system/role";
-
+import Qs from 'qs';
 export default {
   data() {
     var validatePass = (rule, value, callback) => {
@@ -126,11 +138,10 @@
         addBtn: false,
         selection: false,
         // 导出按钮
-        excelBtn: true,
-        excelBtnText: "成绩导出",
+        // excelBtn: true,
+        // excelBtnText: "成绩导出",
         viewBtn: false,
         // title: '成绩',
-
         align: "center",
         height: "auto",
         calcHeight: 80,
@@ -147,10 +158,35 @@
         labelWidth: 120,
         column: [
           {
+            label: "考试时间",
+            prop: "examDate",
+            type: "date",
+            hide: true,
+            format: "yyyy-MM-dd",
+            valueFormat: "yyyy-MM-dd",
+            width: 140,
+            slot: true,
+            search: true,
+            searchSpan: 4,
+            // 表单新增时是否禁止
+            addDisabled: false,
+            // 表单新增时是否可见
+            addDisplay: false,
+            // 表单新增时是否为查看模式
+            addDetail: false,
+            // 表单编辑时是否禁止
+            editDisabled: false,
+            // 表单编辑时是否可见
+            editDisplay: false,
+            // 表单编辑时是否为查看模式
+            editDetail: false,
+            viewDisplay: false,
+          },
+          {
             label: "考试名称",
             prop: "examName",
             search: true,
-            searchSpan: 4,
+            searchSpan: 5,
             slot: true,
             viewDisplay: false,
             // 表单新增时是否禁止
@@ -573,6 +609,44 @@
     refreshChange() {
       this.questionBankOnLoad(this.questionBankPage, this.questionBankQuery);
     },
+    //成绩导出
+    handleExport() {
+      this.$confirm("是否导出成绩数据?", "提示", {
+        confirmButtonText: "确定",
+        cancelButtonText: "取消",
+        type: "warning",
+      }).then(() => {
+        //获取查询条件
+        // console.log(this.questionBankSearch,456);
+        var data = {
+          account: this.questionBankSearch.account,
+          companyName: this.questionBankSearch.companyName,
+          examDate: this.questionBankSearch.examDate,
+          isExam: this.questionBankSearch.isExam,
+          qualified: this.questionBankSearch.qualified,
+          securityName: this.questionBankSearch.securityName,
+          examName: this.questionBankSearch.examName,
+        };
+        //导出
+        if (
+          this.userInfo.role_name == "保安公司管理员" ||
+          this.userInfo.role_name == "保安"
+        ) {
+          //如果是保安公司管理员
+          data["deptId"] = this.userInfo.dept_id;
+        }
+        if (this.userInfo.role_name == "培训公司管理员") {
+          //如果是培训公司管理员
+          data["trainUnitId"] = this.userInfo.dept_id;
+        }
+        data["examType"] = 2;
+        //序列号url形式,用&拼接
+        data = Qs.stringify(data);
+        window.open(
+          `/api/examScore/export-examScore?` + data
+        );
+      });
+    },
   },
 };
 </script>

--
Gitblit v1.9.3