From e0001b944ebd202e0640d164d7f1fb439193f7d4 Mon Sep 17 00:00:00 2001
From: shuishen <1109946754@qq.com>
Date: Thu, 04 Nov 2021 18:55:18 +0800
Subject: [PATCH] 培训考试成绩修改相关

---
 src/router/views/index.js              | 1964 +++++++++++++-------------
 src/views/trainExam/performance.vue    | 1757 +++++++++++++----------
 src/api/examapi/modifiedGrades.js      |   21 
 src/api/examapi/performance.js         |   49 
 src/views/trainExam/modifiedGrades.vue |  627 ++++++++
 5 files changed, 2,631 insertions(+), 1,787 deletions(-)

diff --git a/src/api/examapi/modifiedGrades.js b/src/api/examapi/modifiedGrades.js
new file mode 100644
index 0000000..5737b8d
--- /dev/null
+++ b/src/api/examapi/modifiedGrades.js
@@ -0,0 +1,21 @@
+import request from '@/router/axios';
+
+export const getList = (current, size, params) => {
+  return request({
+    url: '/api/scoreAuditRecords/page',
+    method: 'get',
+    params: {
+      ...params,
+      current,
+      size
+    }
+  })
+}
+
+export const update = (row) => {
+  return request({
+    url: '/api/scoreAuditRecords/update',
+    method: 'post',
+    data: row
+  })
+}
diff --git a/src/api/examapi/performance.js b/src/api/examapi/performance.js
index 36582a6..0c71146 100644
--- a/src/api/examapi/performance.js
+++ b/src/api/examapi/performance.js
@@ -1,30 +1,37 @@
 import request from '@/router/axios';
 
 export const getList = (current, size, params) => {
-    return request({
-        url: '/api/examScore/page',
-        method: 'get',
-        params: {
-            ...params,
-            current,
-            size
-        }
-    })
+  return request({
+    url: '/api/examScore/page',
+    method: 'get',
+    params: {
+      ...params,
+      current,
+      size
+    }
+  })
 }
 
 export const update = (row) => {
-    return request({
-        url: '/api/examScore/updateExamScore',
-        method: 'post',
-        data: row
-    })
+  return request({
+    url: '/api/examScore/updateExamScore',
+    method: 'post',
+    data: row
+  })
 }
 
-
 export const updateAbsent = (row) => {
-    return request({
-        url: '/api/examScore/updateAbsent',
-        method: 'post',
-        data: row
-    })
-}
\ No newline at end of file
+  return request({
+    url: '/api/examScore/updateAbsent',
+    method: 'post',
+    data: row
+  })
+}
+
+export const updateGrade = (row) => {
+  return request({
+    url: '/api/scoreAuditRecords/scoreUpdateApply',
+    method: 'post',
+    data: row
+  })
+}
diff --git a/src/router/views/index.js b/src/router/views/index.js
index 416d68a..95ac4b4 100644
--- a/src/router/views/index.js
+++ b/src/router/views/index.js
@@ -1,986 +1,998 @@
 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: 'dashboard',
-            name: '控制台',
-            meta: {
-                i18n: 'dashboard',
-                menu: false,
-            },
-            component: () =>
-                import ( /* webpackChunkName: "views" */ '@/views/wel/dashboard')
-        }]
+    path: '/wel',
+    component: Layout,
+    redirect: '/wel/index',
+    children: [{
+      path: 'index',
+      name: '首页',
+      meta: {
+        i18n: 'dashboard'
+      },
+      component: () =>
+        import( /* webpackChunkName: "views" */ '@/views/wel/index')
     }, {
-        path: '/test',
-        component: Layout,
-        redirect: '/test/index',
-        children: [{
-            path: 'index',
-            name: '测试页',
-            meta: {
-                i18n: 'test'
-            },
-            component: () =>
-                import ( /* webpackChunkName: "views" */ '@/views/util/test')
-        }]
+      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: '/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: 'handle/:taskId/:processInstanceId/:businessId',
+      name: '处理请假流程',
+      meta: {
+        i18n: 'work'
+      },
+      component: () =>
+        import( /* webpackChunkName: "views" */ '@/views/work/process/leave/handle')
     }, {
-        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: '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: '/info',
-        component: Layout,
-        redirect: '/info/index',
-        children: [{
-            path: 'index',
-            name: '个人信息',
-            meta: {
-                i18n: 'info'
-            },
-            component: () =>
-                import ( /* webpackChunkName: "views" */ '@/views/system/userinfo')
-        }]
+      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/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: '/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: 'query',
+      name: '培训申请查询',
+      meta: {
+        i18n: 'index',
+      },
+      component: () =>
+        import( /* webpackChunkName: "views" */ '@/views/trainExam/index')
     },
     {
-        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/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')
-        }]
-    },
-    {
-        path: '/accreditationRecords',
-        component: Layout,
-        redirect: '/accreditationRecords/accreditationRecords',
-        children: [{
-            path: 'index',
-            name: '制证管理',
-            meta: {
-                i18n: 'index'
-            },
-            component: () =>
-                import ( /* webpackChunkName: "views" */ '@/views/accreditationRecords/accreditationRecords')
-        }]
-    }
-]
\ No newline at end of file
+      path: 'modifiedGrades',
+      name: '修改成绩管理',
+      meta: {
+        i18n: 'modifiedGrades'
+      },
+      component: () =>
+        import( /* webpackChunkName: "views" */ '@/views/trainExam/modifiedGrades')
+    }]
+  },
+
+  {
+    path: '/accreditationRecords',
+    component: Layout,
+    redirect: '/accreditationRecords/accreditationRecords',
+    children: [{
+      path: 'index',
+      name: '制证管理',
+      meta: {
+        i18n: 'index'
+      },
+      component: () =>
+        import( /* webpackChunkName: "views" */ '@/views/accreditationRecords/accreditationRecords')
+    }]
+  }
+]
diff --git a/src/views/trainExam/modifiedGrades.vue b/src/views/trainExam/modifiedGrades.vue
new file mode 100644
index 0000000..961c14f
--- /dev/null
+++ b/src/views/trainExam/modifiedGrades.vue
@@ -0,0 +1,627 @@
+/*
+ * @Author: Morpheus
+ * @Date: 2021-07-05 16:31:54
+ * @Last Modified by: Morpheus
+ * @Last Modified time: 2021-11-04 18:54:44
+ * menu-name 成绩管理
+ */
+<template>
+    <el-row class="morpheus-box">
+        <el-col :span="24"
+                class="recruitmentManagement">
+            <el-card>
+                <div class="exam-card-body">
+                    <avue-crud v-model="obj"
+                               class="company-box"
+                               :option="questionBankOption"
+                               :search.sync="questionBankSearch"
+                               :table-loading="questionBankLoading"
+                               :data="questionBankData"
+                               :permission="permissionList"
+                               ref="questionBankCrud"
+                               :page.sync="questionBankPage"
+                               @on-load="questionBankOnLoad"
+                               @selection-change="questionBankSelectionChange"
+                               @search-change="questionBankSearchChange"
+                               @search-reset="questionBankSearchReset"
+                               @current-change="questionBankCurrentChange"
+                               @size-change="questionBankSizeChange"
+                               @row-update="questionBankRowUpdate"
+                               @refresh-change="refreshChange">
+
+                        <!-- 自定义按钮 -->
+                        <template slot="menuLeft">
+                            <!-- <el-button type="danger"
+                                       size="mini"
+                                       icon="el-icon-delete"
+                                       plain
+                                       @click="handleDelete">新增
+                            </el-button> -->
+                            <!-- <el-button type="danger"
+                                       size="mini"
+                                       icon="el-icon-delete"
+                                       plain
+                                       @click="handleDelete">删除
+                            </el-button> -->
+
+                        </template>
+
+                        <template slot-scope="{ type, size, row }"
+                                  slot="menu">
+
+                            <el-button :type="type"
+                                       :size="size"
+                                       icon="el-icon-folder-checked"
+                                       v-if="permission.trainExam_check"
+                                       @click="handleAudit(row)">审核
+                            </el-button>
+                        </template>
+
+                    </avue-crud>
+
+                </div>
+            </el-card>
+        </el-col>
+
+        <el-dialog title="成绩修改审核"
+                   :visible.sync="dialogFormVisible"
+                   modal-append-to-body="false"
+                   append-to-body="true"
+                   :close-on-click-model="true">
+            <avue-form ref="formAudit"
+                       v-model="Audit"
+                       :option="optionAudit"
+                       @reset-change="emptytChange"
+                       @submit="submit"></avue-form>
+        </el-dialog>
+
+    </el-row>
+</template>
+
+<script>
+import { getList, update } from "@/api/examapi/modifiedGrades";
+import { mapGetters } from "vuex";
+import { getRoleDetail } from "@/api/system/role";
+export default {
+
+    data () {
+
+        return {
+            Audit: {},
+            dialogFormVisible: false,
+            optionAudit: {
+                height: "auto",
+                calcHeight: 30,
+                dialogWidth: 1000,
+                tip: false,
+                searchShow: true,
+                searchMenuSpan: 6,
+                border: true, //liu
+                index: true,
+                stripe: true,
+                viewBtn: false,
+                addBtn: false,
+                editBtn: false,
+                selection: true,
+                excelBtn: false,
+                menuWidth: 230,
+                dialogClickModal: false,
+                column: [{
+                    label: "审核状态",
+                    search: true,
+                    searchSpan: 5,
+                    span: 24,
+                    prop: "status",
+                    slot: true,
+                    editDisplay: false,
+                    addDisplay: false,
+                    type: "select",
+                    rules: [{
+                        required: true,
+                        message: "请选择审核类型",
+                        trigger: "blur"
+                    }],
+                    dicData: [{
+                        label: "待审核",
+                        value: 1,
+                    },
+                    {
+                        label: "审核通过",
+                        value: 2,
+                    },
+                    {
+                        label: "审核不通过",
+                        value: 3,
+                    }
+                    ]
+                },
+                {
+                    label: "审核明细",
+                    span: 24,
+                    type: "textarea",
+                    prop: "auditDetail"
+                }
+                ],
+            },
+            obj: {
+                name: "张三",
+            },
+            questionBankOption: {
+                // 操作栏多余按钮去除
+                delBtn: false,
+                editBtn: true,
+                addBtn: false,
+                selection: false,
+                // 导出按钮
+                // excelBtn: true,
+                // excelBtnText: "成绩导出",
+                viewBtn: true,
+                // title: '成绩',
+                align: "center",
+                height: "auto",
+                calcHeight: 80,
+                tip: false,
+                searchShow: true,
+                searchMenuSpan: 4,
+                index: true,
+                indexLabel: "序号",
+                //dialogType: 'drawer',
+                dialogClickModal: false,
+                // 操作栏宽度
+                menu: true,
+                menuWidth: 295,
+                labelWidth: 120,
+                column: [
+                    {
+                        label: "考试名称",
+                        prop: "examName",
+                        search: true,
+                        searchSpan: 5,
+                        slot: true,
+                        viewDisplay: true,
+                        // 表单新增时是否禁止
+                        addDisabled: false,
+                        // 表单新增时是否可见
+                        addDisplay: true,
+                        // 表单新增时是否为查看模式
+                        addDetail: false,
+                        // 表单编辑时是否禁止
+                        editDisabled: true,
+                        viewDisabled: true,
+                        // 表单编辑时是否可见
+                        editDisplay: true,
+                        // 表单编辑时是否为查看模式
+                        editDetail: false,
+                        rules: [
+                            {
+                                required: true,
+                                message: "请输入试卷名称",
+                                trigger: "blur",
+                            },
+                        ],
+                        width: 210,
+                        // overHidden:true,
+                    },
+
+                    {
+                        label: "姓名",
+                        prop: "realName",
+                        search: true,
+                        searchSpan: 3,
+                        slot: true,
+                        viewDisplay: true,
+                        // 表单新增时是否禁止
+                        addDisabled: false,
+                        // 表单新增时是否可见
+                        addDisplay: true,
+                        // 表单新增时是否为查看模式
+                        addDetail: false,
+                        // 表单编辑时是否禁止
+                        editDisabled: true,
+                        viewDisabled: true,
+                        // 表单编辑时是否可见
+                        editDisplay: true,
+                        // 表单编辑时是否为查看模式
+                        editDetail: false,
+                        rules: [
+                            {
+                                required: true,
+                                message: "请输入试卷名称",
+                                trigger: "blur",
+                            },
+                        ],
+                        width: 80,
+                        // overHidden:true,
+                    },
+
+                    {
+                        label: "所属公司",
+                        prop: "deptName",
+                        search: true,
+                        searchSpan: 4,
+                        // dicUrl: '/api/blade-system/dept/tree',
+                        // props: {
+                        //     label: "title",
+                        //     value: "id",
+                        // },
+                        slot: true,
+                        // 表单新增时是否禁止
+                        addDisabled: false,
+                        // 表单新增时是否可见
+                        addDisplay: true,
+                        // 表单新增时是否为查看模式
+                        addDetail: false,
+                        // 表单编辑时是否禁止
+                        editDisabled: true,
+                        // 表单编辑时是否可见
+                        editDisplay: true,
+                        // 表单编辑时是否为查看模式
+                        editDetail: false,
+                        rules: [
+                            {
+                                required: true,
+                                message: "请输入所属公司",
+                                trigger: "blur",
+                            },
+                        ],
+                        width: 230,
+                    },
+
+                    {
+                        label: "身份证号",
+                        prop: "idCardNo",
+                        search: true,
+                        searchSpan: 4,
+                        slot: true,
+                        // 表单新增时是否禁止
+                        addDisabled: false,
+                        // 表单新增时是否可见
+                        addDisplay: true,
+                        // 表单新增时是否为查看模式
+                        addDetail: false,
+                        // 表单编辑时是否禁止
+                        editDisabled: true,
+                        // 表单编辑时是否可见
+                        editDisplay: true,
+                        // 表单编辑时是否为查看模式
+                        editDetail: false,
+                        rules: [
+                            {
+                                required: true,
+                                message: "请输入保安姓名",
+                                trigger: "blur",
+                            },
+                        ],
+                        width: 140,
+                    },
+
+                    {
+                        label: "原理论成绩",
+                        prop: "oldScore",
+                        slot: true,
+                        // 表单新增时是否禁止
+                        addDisabled: false,
+                        // 表单新增时是否可见
+                        addDisplay: true,
+                        // 表单新增时是否为查看模式
+                        addDetail: false,
+                        // 表单编辑时是否禁止
+                        editDisabled: true,
+                        // 表单编辑时是否可见
+                        editDisplay: true,
+                        // 表单编辑时是否为查看模式
+                        editDetail: false,
+                        width: 88
+                    },
+
+                    {
+                        label: "现理论成绩",
+                        prop: "newScore",
+                        slot: true,
+                        // 表单新增时是否禁止
+                        addDisabled: false,
+                        // 表单新增时是否可见
+                        addDisplay: true,
+                        // 表单新增时是否为查看模式
+                        addDetail: false,
+                        // 表单编辑时是否禁止
+                        editDisabled: false,
+                        // 表单编辑时是否可见
+                        editDisplay: true,
+                        // 表单编辑时是否为查看模式
+                        editDetail: false,
+                        width: 88
+                    },
+
+                    {
+                        label: "申请理由",
+                        prop: "applyCause",
+                        slot: true,
+                        // 表单新增时是否禁止
+                        addDisabled: false,
+                        // 表单新增时是否可见
+                        addDisplay: true,
+                        // 表单新增时是否为查看模式
+                        addDetail: false,
+                        // 表单编辑时是否禁止
+                        editDisabled: true,
+                        // 表单编辑时是否可见
+                        editDisplay: true,
+                        // 表单编辑时是否为查看模式
+                        editDetail: false,
+                    },
+
+                    {
+                        label: "修改申请时间",
+                        prop: "createTime",
+                        type: "date",
+                        format: "yyyy-MM-dd",
+                        valueFormat: "yyyy-MM-dd",
+                        slot: true,
+                        searchSpan: 4,
+                        // 表单新增时是否禁止
+                        addDisabled: false,
+                        // 表单新增时是否可见
+                        addDisplay: false,
+                        // 表单新增时是否为查看模式
+                        addDetail: false,
+                        // 表单编辑时是否禁止
+                        editDisabled: false,
+                        // 表单编辑时是否可见
+                        editDisplay: false,
+                        // 表单编辑时是否为查看模式
+                        editDetail: false,
+                        viewDisplay: false,
+                        width: 120
+                    },
+
+                    {
+                        label: "审核时间",
+                        prop: "auditTime",
+                        type: "date",
+                        format: "yyyy-MM-dd",
+                        valueFormat: "yyyy-MM-dd",
+                        slot: true,
+                        searchSpan: 4,
+                        // 表单新增时是否禁止
+                        addDisabled: false,
+                        // 表单新增时是否可见
+                        addDisplay: false,
+                        // 表单新增时是否为查看模式
+                        addDetail: false,
+                        // 表单编辑时是否禁止
+                        editDisabled: false,
+                        // 表单编辑时是否可见
+                        editDisplay: false,
+                        // 表单编辑时是否为查看模式
+                        editDetail: false,
+                        viewDisplay: false,
+                        width: 120
+                    },
+
+                    {
+                        label: "审核状态",
+                        prop: "status",
+                        type: "select",
+                        slot: true,
+                        search: true,
+                        searchSpan: 3,
+                        dicData: [
+                            {
+                                label: "待审核",
+                                value: 1,
+                            },
+                            {
+                                label: "审核通过",
+                                value: 2,
+                            },
+                            {
+                                label: "审核不通过",
+                                value: 3,
+                            }
+                        ],
+                        // 表单新增时是否禁止
+                        addDisabled: false,
+                        // 表单新增时是否可见
+                        addDisplay: true,
+                        // 表单新增时是否为查看模式
+                        addDetail: false,
+                        // 表单编辑时是否禁止
+                        editDisabled: true,
+                        // 表单编辑时是否可见
+                        editDisplay: true,
+                        // 表单编辑时是否为查看模式
+                        editDetail: false,
+                        width: 96
+                    },
+
+                    {
+                        label: "审核明细",
+                        prop: "auditDetail",
+                        slot: true,
+                        // 表单新增时是否禁止
+                        addDisabled: false,
+                        // 表单新增时是否可见
+                        addDisplay: true,
+                        // 表单新增时是否为查看模式
+                        addDetail: false,
+                        // 表单编辑时是否禁止
+                        editDisabled: true,
+                        // 表单编辑时是否可见
+                        editDisplay: true,
+                        // 表单编辑时是否为查看模式
+                        editDetail: false,
+                        width: 68,
+                    }
+                ],
+            },
+            questionBankSearch: {},
+            questionBankLoading: true,
+            questionBankData: [],
+            questionBankPage: {
+                pageSize: 10,
+                currentPage: 1,
+                total: 16,
+            },
+            questionBankQuery: {},
+            questionBankSelectionList: [],
+
+        };
+    },
+    created () { },
+    mounted () { },
+    computed: {
+        ...mapGetters(["userInfo", "permission"]),
+        permissionList () {
+            return {
+                addBtn: this.vaildData(null, false),
+                viewBtn: this.vaildData(
+                    this.permission.trainExam_performance_view,
+                    false
+                ),
+                delBtn: this.vaildData(null, false),
+                editBtn: this.vaildData(
+                    this.permission.trainExam_performance_edit,
+                    false
+                ),
+                excelBtn: this.vaildData(
+                    this.permission.trainExam_performance_export,
+                    false
+                ),
+            };
+        },
+    },
+    methods: {
+        getNewTime () {
+            var nowTime = new Date()
+
+            var oneHoursAgo = new Date(new Date(nowTime).getTime() - 1 * 60 * 60 * 1000)
+            var oneHoursAgoY = oneHoursAgo.getFullYear()
+            var oneHoursAgoM = oneHoursAgo.getMonth() + 1 < 10 ? '0' + (oneHoursAgo.getMonth() + 1) : oneHoursAgo.getMonth() + 1
+            var oneHoursAgoD = oneHoursAgo.getDate() < 10 ? '0' + oneHoursAgo.getDate() : oneHoursAgo.getDate()
+            var oneHoursAgoH = oneHoursAgo.getHours() < 10 ? '0' + oneHoursAgo.getHours() : oneHoursAgo.getHours()
+            var oneHoursAgom = oneHoursAgo.getMinutes() < 10 ? '0' + oneHoursAgo.getMinutes() : oneHoursAgo.getMinutes()
+            var oneHoursAgos = oneHoursAgo.getSeconds() < 10 ? '0' + oneHoursAgo.getSeconds() : oneHoursAgo.getSeconds()
+
+            /**
+             * @return 返回1小时,2小时,3小时,4小时,24小时
+             */
+            return oneHoursAgoY + '-' + oneHoursAgoM + '-' + oneHoursAgoD + ' ' + oneHoursAgoH + ':' + oneHoursAgom + ':' + oneHoursAgos
+        },
+
+        handleAudit (row) {
+            this.dialogFormVisible = true;
+            this.Audit = row;
+        },
+        //审核
+        submit (row, done, loading) {
+
+            row.auditTime = this.getNewTime()
+
+            update(row).then(
+                () => {
+                    this.dialogFormVisible = false;
+                    this.questionBankOnLoad(this.questionBankPage);
+                    this.$message({
+                        type: "success",
+                        message: "操作成功!",
+                    });
+                    done();
+                },
+                (error) => {
+                    window.console.log(error);
+                    loading();
+                }
+            );
+        },
+
+        questionBankOnLoad (page, params = {}) {
+            //判断角色,如果是保安公司管理员或保安,只能查看当前公司的考试成绩
+            var that = this;
+            //获取当前登录人员的角色信息
+            var roleIds = this.userInfo.role_id.split(",");
+            roleIds.forEach((roleId) => {
+                getRoleDetail(roleId).then((res) => {
+                    var roleAlias = res.data.data.roleAlias;
+                    if (roleAlias == "保安公司管理员" || roleAlias == "保安") {
+                        //如果是保安公司管理员
+                        params["deptId"] = that.userInfo.dept_id;
+                    }
+                    if (roleAlias == "培训公司管理员") {
+                        //如果是培训公司管理员
+                        params["trainUnitId"] = that.userInfo.dept_id;
+                    }
+                    that.questionBankLoading = false;
+                    params["examType"] = 2;
+                    getList(
+                        page.currentPage,
+                        page.pageSize,
+                        Object.assign(params, this.questionBankQuery)
+                    ).then((res) => {
+                        const data = res.data.data;
+                        that.questionBankPage.total = data.total;
+                        that.questionBankData = data.records;
+                        that.questionBankLoading = false;
+                        that.questionBankSelectionClear();
+                    });
+                });
+            });
+        },
+
+        questionBankSelectionClear () {
+            this.questionBankSelectionList = [];
+            this.$refs.questionBankCrud.toggleSelection();
+        },
+        questionBankSelectionChange (list) {
+            this.questionBankSelectionList = list;
+        },
+        questionBankSearchChange (params, done) {
+            this.questionBankQuery = params;
+            this.questionBankPage.currentPage = 1;
+            this.questionBankOnLoad(this.questionBankPage, params);
+            done();
+        },
+        questionBankSearchReset () {
+            this.questionBankQuery = {};
+            this.questionBankOnLoad(this.questionBankPage);
+        },
+        questionBankCurrentChange (currentPage) {
+            this.questionBankPage.currentPage = currentPage;
+        },
+        questionBankSizeChange (pageSize) {
+            this.questionBankPage.pageSize = pageSize;
+        },
+
+        questionBankRowUpdate (row, index, done, loading) {
+            update({
+                id: row.id,
+                newScore: row.newScore
+            }).then(
+                () => {
+                    this.questionBankOnLoad(this.questionBankPage);
+                    this.$message({
+                        type: "success",
+                        message: "操作成功!",
+                    });
+                    done();
+                },
+                (error) => {
+                    window.console.log(error);
+                    loading();
+                }
+            );
+        },
+
+        refreshChange () {
+            this.questionBankOnLoad(this.questionBankPage, this.questionBankQuery);
+        },
+
+    },
+};
+</script>
+
+<style lang="scss" scoped>
+.morpheus-box {
+    position: relative;
+}
+</style>
diff --git a/src/views/trainExam/performance.vue b/src/views/trainExam/performance.vue
index bd5c09c..6ef70be 100644
--- a/src/views/trainExam/performance.vue
+++ b/src/views/trainExam/performance.vue
@@ -1,45 +1,48 @@
 /*
  * @Author: Morpheus
  * @Date: 2021-07-05 16:31:54
- * @Last Modified by: liu
- * @Last Modified time: 2021-10-26 15:44:52
+ * @Last Modified by: Morpheus
+ * @Last Modified time: 2021-11-04 16:18:32
  * menu-name 成绩管理
  */
 <template>
-  <el-row class="morpheus-box">
-    <el-col :span="24" class="recruitmentManagement">
-      <el-card>
-        <div class="exam-card-body">
-          <avue-crud
-            v-model="obj"
-            class="company-box"
-            :option="questionBankOption"
-            :search.sync="questionBankSearch"
-            :table-loading="questionBankLoading"
-            :data="questionBankData"
-            :permission="permissionList"
-            ref="questionBankCrud"
-            :page.sync="questionBankPage"
-            @on-load="questionBankOnLoad"
-            @selection-change="questionBankSelectionChange"
-            @search-change="questionBankSearchChange"
-            @search-reset="questionBankSearchReset"
-            @current-change="questionBankCurrentChange"
-            @size-change="questionBankSizeChange"
-            @row-update="questionBankRowUpdate"
-            @refresh-change="refreshChange"
-          >
-            <template slot-scope="{ row }" slot="theoryGrade">
-              {{ row.theoryGrade == -1 ? "" : row.theoryGrade }}
-            </template>
-            <template slot-scope="{ row }" slot="learnGrade">
-              {{ row.learnGrade == -1 ? "暂未录入" : row.learnGrade }}
-            </template>
-            <template slot-scope="{ row }" slot="allGrade">
-              {{ row.allGrade == -1 ? "" : row.allGrade }}
-            </template>
-            <template slot-scope="{ row }" slot="qualified">
-              {{
+    <el-row class="morpheus-box">
+        <el-col :span="24"
+                class="recruitmentManagement">
+            <el-card>
+                <div class="exam-card-body">
+                    <avue-crud v-model="obj"
+                               class="company-box"
+                               :option="questionBankOption"
+                               :search.sync="questionBankSearch"
+                               :table-loading="questionBankLoading"
+                               :data="questionBankData"
+                               :permission="permissionList"
+                               ref="questionBankCrud"
+                               :page.sync="questionBankPage"
+                               @on-load="questionBankOnLoad"
+                               @selection-change="questionBankSelectionChange"
+                               @search-change="questionBankSearchChange"
+                               @search-reset="questionBankSearchReset"
+                               @current-change="questionBankCurrentChange"
+                               @size-change="questionBankSizeChange"
+                               @row-update="questionBankRowUpdate"
+                               @refresh-change="refreshChange">
+                        <template slot-scope="{ row }"
+                                  slot="theoryGrade">
+                            {{ row.theoryGrade == -1 ? "" : row.theoryGrade }}
+                        </template>
+                        <template slot-scope="{ row }"
+                                  slot="learnGrade">
+                            {{ row.learnGrade == -1 ? "暂未录入" : row.learnGrade }}
+                        </template>
+                        <template slot-scope="{ row }"
+                                  slot="allGrade">
+                            {{ row.allGrade == -1 ? "" : row.allGrade }}
+                        </template>
+                        <template slot-scope="{ row }"
+                                  slot="qualified">
+                            {{
                 row.qualified == -1
                   ? ""
                   : row.qualified == 0
@@ -50,794 +53,968 @@
                   ? "缺考,成绩无效"
                   : ""
               }}
-            </template>
+                        </template>
 
-            <!-- 自定义按钮 -->
-            <template slot="menuLeft">
-              <!-- <el-button type="danger"
+                        <!-- 自定义按钮 -->
+                        <template slot="menuLeft">
+                            <!-- <el-button type="danger"
                                        size="mini"
                                        icon="el-icon-delete"
                                        plain
                                        @click="handleDelete">新增
                             </el-button> -->
-              <!-- <el-button type="danger"
+                            <!-- <el-button type="danger"
                                        size="mini"
                                        icon="el-icon-delete"
                                        plain
                                        @click="handleDelete">删除
                             </el-button> -->
-              <el-button
-                type="success"
-                size="small"
-                plain
-                icon="el-icon-upload2"
-                v-if="permission.trainExam_performance_import"
-                @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>
+                            <el-button type="success"
+                                       size="small"
+                                       plain
+                                       icon="el-icon-upload2"
+                                       v-if="permission.trainExam_performance_import"
+                                       @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">
-              <el-button
-                icon="el-icon-s-flag"
-                @click="absent(row)"
-                :size="size"
-                :type="type"
-                >缺考标记</el-button
-              >
-              <el-button
-                icon="el-icon-s-promotion"
-                @click="openzhengjian(row)"
-                :disabled="row.qualified != 0"
-                :size="size"
-                :type="type"
-                >查看证件</el-button
-              >
-            </template>
-          </avue-crud>
+                        <template slot-scope="{ type, size, row }"
+                                  slot="menu">
+                            <el-button icon="el-icon-s-flag"
+                                       @click="absent(row)"
+                                       :size="size"
+                                       :type="type">缺考标记</el-button>
+                            <el-button icon="el-icon-s-promotion"
+                                       @click="openzhengjian(row)"
+                                       :disabled="row.qualified != 0"
+                                       :size="size"
+                                       :type="type">查看证件</el-button>
+                            <el-button icon="el-icon-edit"
+                                       @click="modifiedGrades(row)"
+                                       :size="size"
+                                       :type="type">申请修改成绩</el-button>
+                        </template>
 
-          <el-dialog
-            title="实操成绩导入"
-            append-to-body
-            :visible.sync="excelBox"
-            width="555px"
-          >
-            <avue-form
-              :option="excelOption"
-              v-model="excelForm"
-              :upload-after="uploadAfter"
-            >
-              <template slot="excelTemplate">
-                <el-button type="primary" @click="handleTemplate">
-                  点击下载<i class="el-icon-download el-icon--right"></i>
-                </el-button>
-              </template>
-            </avue-form>
-          </el-dialog>
-        </div>
-      </el-card>
-    </el-col>
-    <!-- <el-dialog
+                    </avue-crud>
+
+                    <el-dialog title="实操成绩导入"
+                               append-to-body
+                               :visible.sync="excelBox"
+                               width="555px">
+                        <avue-form :option="excelOption"
+                                   v-model="excelForm"
+                                   :upload-after="uploadAfter">
+                            <template slot="excelTemplate">
+                                <el-button type="primary"
+                                           @click="handleTemplate">
+                                    点击下载<i class="el-icon-download el-icon--right"></i>
+                                </el-button>
+                            </template>
+                        </avue-form>
+                    </el-dialog>
+                </div>
+            </el-card>
+        </el-col>
+
+        <el-dialog title="申请修改成绩"
+                   :visible.sync="gradeBoxVisible"
+                   width="width"
+                   :modal='true'
+                   :modal-append-to-body='true'
+                   :append-to-body='true'
+                   :close-on-click-modal='false'
+                   :close-on-press-escape='false'
+                   :before-close="dialogBeforeClose">
+
+            <div>
+                <el-form ref="gradeForm"
+                         :model="gradeForm"
+                         :rules="rules"
+                         label-width="80px"
+                         label-position="left">
+
+                    <el-row :gutter="24">
+                        <el-col :span="12">
+                            <el-form-item label="考试名称"
+                                          label-width="108px">
+                                <el-input v-model="gradeForm.examName"
+                                          disabled></el-input>
+                            </el-form-item>
+                        </el-col>
+                        <el-col :span="12">
+                            <el-form-item label="姓名"
+                                          label-width="108px">
+                                <el-input v-model="gradeForm.securityName"
+                                          disabled></el-input>
+                            </el-form-item>
+                        </el-col>
+                    </el-row>
+
+                    <el-row :gutter="24">
+                        <el-col :span="12">
+                            <el-form-item label="身份证号"
+                                          label-width="108px">
+                                <el-input v-model="gradeForm.account"
+                                          disabled></el-input>
+                            </el-form-item>
+                        </el-col>
+                        <el-col :span="12">
+                            <el-form-item label="准考证号"
+                                          label-width="108px">
+                                <el-input v-model="gradeForm.candidateNo"
+                                          disabled></el-input>
+                            </el-form-item>
+                        </el-col>
+                    </el-row>
+
+                    <el-row :gutter="24">
+                        <el-col :span="12">
+                            <el-form-item label="原理论成绩"
+                                          label-width="108px">
+                                <el-input v-model="gradeForm.theoryGrade"
+                                          disabled></el-input>
+                            </el-form-item>
+                        </el-col>
+                        <el-col :span="12">
+                            <el-form-item label="修改考试成绩"
+                                          label-width="108px"
+                                          prop='editGrades'>
+                                <el-input v-model.number="gradeForm.editGrades"
+                                          autocomplete="off"></el-input>
+                            </el-form-item>
+                        </el-col>
+                    </el-row>
+
+                    <el-row :gutter="24">
+                        <el-col :span="12">
+                            <el-form-item label="实操成绩"
+                                          label-width="108px">
+                                <el-input v-model="gradeForm.learnGrade"
+                                          disabled></el-input>
+                            </el-form-item>
+                        </el-col>
+                        <el-col :span="12">
+                            <el-form-item label="总成绩"
+                                          label-width="108px">
+                                <el-input v-model="gradeForm.allGrade"
+                                          disabled></el-input>
+                            </el-form-item>
+                        </el-col>
+                    </el-row>
+
+                    <el-form-item label="修改理由"
+                                  label-width="108px">
+                        <el-input type='textarea'
+                                  :rows="3"
+                                  placeholder="请输入修改理由"
+                                  resize='none'
+                                  v-model="gradeForm.editReason"></el-input>
+                    </el-form-item>
+
+                    <el-form-item style="text-align: center;"
+                                  label-width="0">
+                        <el-button type="primary"
+                                   @click="uploadGrade('gradeForm')">确 定</el-button>
+                        <el-button @click="gradeBoxVisible = false">取 消</el-button>
+                    </el-form-item>
+
+                </el-form>
+            </div>
+
+        </el-dialog>
+
+        <!-- <el-dialog
       title="打印证件"
       :visible.sync="dialogVisiblezhengjian"
       :modal-append-to-body="false"
     > -->
-    <div class="dialogVisiblezhengjian" v-if="dialogVisiblezhengjian">
-      <baoanz
-        :data="baoanzdata"
-        :close="1"
-        @close="closezhengjian"
-        :closePrint="1"
-      ></baoanz>
-    </div>
-    <!-- </el-dialog> -->
-  </el-row>
+        <div class="dialogVisiblezhengjian"
+             v-if="dialogVisiblezhengjian">
+            <baoanz :data="baoanzdata"
+                    :close="1"
+                    @close="closezhengjian"
+                    :closePrint="1"></baoanz>
+        </div>
+        <!-- </el-dialog> -->
+    </el-row>
 </template>
 
 <script>
 import baoanz from "../securityGuard/baoanz.vue";
-import { getList, update, updateAbsent } from "@/api/examapi/performance";
+import { getList, update, updateAbsent, updateGrade } from "@/api/examapi/performance";
 import { mapGetters } from "vuex";
 import { getRoleDetail } from "@/api/system/role";
 import Qs from "qs";
 export default {
-  components: {
-    baoanz,
-  },
-  data() {
-    var validatePass = (rule, value, callback) => {
-      console.log(value);
-      if (value == undefined || value == "") {
-        callback(new Error("请输入实操成绩"));
-        return;
-      } else if (value !== "" && isNaN(value) == true) {
-        callback(new Error("请输入数字"));
-      } else if (value <= 0) {
-        callback(new Error("分数设置请大于0"));
-      } else if (value > 100) {
-        callback(new Error("分数设置请小于100"));
-      } else {
-        callback();
-      }
-    };
-
-    return {
-      dialogVisiblezhengjian: false,
-      baoanzdata: {},
-      obj: {
-        name: "张三",
-      },
-      excelBox: false,
-      questionBankOption: {
-        // 操作栏多余按钮去除
-        delBtn: false,
-        editBtn: true,
-        addBtn: false,
-        selection: false,
-        // 导出按钮
-        // excelBtn: true,
-        // excelBtnText: "成绩导出",
-        viewBtn: true,
-        // title: '成绩',
-        align: "center",
-        height: "auto",
-        calcHeight: 80,
-        tip: false,
-        searchShow: true,
-        searchMenuSpan: 4,
-        index: true,
-        indexLabel: "序号",
-        //dialogType: 'drawer',
-        dialogClickModal: false,
-        // 操作栏宽度
-        menu: true,
-        menuWidth: 295,
-        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: 5,
-            slot: true,
-            viewDisplay: true,
-            // 表单新增时是否禁止
-            addDisabled: false,
-            // 表单新增时是否可见
-            addDisplay: true,
-            // 表单新增时是否为查看模式
-            addDetail: false,
-            // 表单编辑时是否禁止
-            editDisabled: true,
-            viewDisabled: true,
-            // 表单编辑时是否可见
-            editDisplay: true,
-            // 表单编辑时是否为查看模式
-            editDetail: false,
-            rules: [
-              {
-                required: true,
-                message: "请输入试卷名称",
-                trigger: "blur",
-              },
-            ],
-            width: 210,
-            // overHidden:true,
-          },
-          {
-            label: "姓名",
-            prop: "securityName",
-            search: true,
-            searchSpan: 3,
-            slot: true,
-            viewDisplay: true,
-            // 表单新增时是否禁止
-            addDisabled: false,
-            // 表单新增时是否可见
-            addDisplay: true,
-            // 表单新增时是否为查看模式
-            addDetail: false,
-            // 表单编辑时是否禁止
-            editDisabled: true,
-            viewDisabled: true,
-            // 表单编辑时是否可见
-            editDisplay: true,
-            // 表单编辑时是否为查看模式
-            editDetail: false,
-            rules: [
-              {
-                required: true,
-                message: "请输入试卷名称",
-                trigger: "blur",
-              },
-            ],
-            width: 80,
-            // overHidden:true,
-          },
-          {
-            label: "身份证号",
-            prop: "account",
-            search: true,
-            searchSpan: 4,
-            slot: true,
-            // 表单新增时是否禁止
-            addDisabled: false,
-            // 表单新增时是否可见
-            addDisplay: true,
-            // 表单新增时是否为查看模式
-            addDetail: false,
-            // 表单编辑时是否禁止
-            editDisabled: true,
-            // 表单编辑时是否可见
-            editDisplay: true,
-            // 表单编辑时是否为查看模式
-            editDetail: false,
-            rules: [
-              {
-                required: true,
-                message: "请输入保安姓名",
-                trigger: "blur",
-              },
-            ],
-            width: 140,
-          },
-          {
-            label: "准考证号",
-            prop: "candidateNo",
-            search: true,
-            searchSpan: 4,
-            slot: true,
-            // 表单新增时是否禁止
-            addDisabled: false,
-            // 表单新增时是否可见
-            addDisplay: true,
-            // 表单新增时是否为查看模式
-            addDetail: false,
-            // 表单编辑时是否禁止
-            editDisabled: true,
-            // 表单编辑时是否可见
-            editDisplay: true,
-            // 表单编辑时是否为查看模式
-            editDetail: false,
-            rules: [
-              {
-                required: true,
-                message: "请输入保安姓名",
-                trigger: "blur",
-              },
-            ],
-            width: 140,
-          },
-          {
-            label: "所属公司",
-            prop: "companyName",
-            search: true,
-            searchSpan: 4,
-            // dicUrl: '/api/blade-system/dept/tree',
-            // props: {
-            //     label: "title",
-            //     value: "id",
-            // },
-            slot: true,
-            // 表单新增时是否禁止
-            addDisabled: false,
-            // 表单新增时是否可见
-            addDisplay: true,
-            // 表单新增时是否为查看模式
-            addDetail: false,
-            // 表单编辑时是否禁止
-            editDisabled: true,
-            // 表单编辑时是否可见
-            editDisplay: true,
-            // 表单编辑时是否为查看模式
-            editDetail: false,
-            rules: [
-              {
-                required: true,
-                message: "请输入所属公司",
-                trigger: "blur",
-              },
-            ],
-            width: 230,
-          },
-          {
-            label: "考试开始时间",
-            prop: "examTime",
-            type: "datetime",
-            // span: 24,
-            format: "yyyy-MM-dd HH:mm:ss",
-            valueFormat: "yyyy-MM-dd HH:mm:ss",
-            width: 140,
-            slot: true,
-            // 表单新增时是否禁止
-            addDisabled: false,
-            // 表单新增时是否可见
-            addDisplay: true,
-            // 表单新增时是否为查看模式
-            addDetail: false,
-            // 表单编辑时是否禁止
-            editDisabled: true,
-            // 表单编辑时是否可见
-            editDisplay: true,
-            // 表单编辑时是否为查看模式
-            editDetail: false,
-          },
-          {
-            label: "考试结束时间",
-            prop: "examEndTime",
-            type: "datetime",
-            // span: 24,
-            format: "yyyy-MM-dd HH:mm:ss",
-            valueFormat: "yyyy-MM-dd HH:mm:ss",
-            width: 140,
-            slot: true,
-            // 表单新增时是否禁止
-            addDisabled: false,
-            // 表单新增时是否可见
-            addDisplay: true,
-            // 表单新增时是否为查看模式
-            addDetail: false,
-            // 表单编辑时是否禁止
-            editDisabled: true,
-            // 表单编辑时是否可见
-            editDisplay: true,
-            // 表单编辑时是否为查看模式
-            editDetail: false,
-          },
-          {
-            label: "状态",
-            prop: "isExam",
-            type: "select",
-            slot: true,
-            search: true,
-            searchSpan: 3,
-            width: 60,
-            dicData: [
-              {
-                label: "发布成绩",
-                value: 2,
-              },
-              {
-                label: "考试中",
-                value: 3,
-              },
-            ],
-            // 表单新增时是否禁止
-            addDisabled: false,
-            // 表单新增时是否可见
-            addDisplay: true,
-            // 表单新增时是否为查看模式
-            addDetail: false,
-            // 表单编辑时是否禁止
-            editDisabled: true,
-            // 表单编辑时是否可见
-            editDisplay: true,
-            // 表单编辑时是否为查看模式
-            editDetail: false,
-            rules: [
-              {
-                required: true,
-                message: "请输入考试名称",
-                trigger: "blur",
-              },
-            ],
-          },
-          {
-            label: "理论成绩",
-            prop: "theoryGrade",
-            slot: true,
-            // 表单新增时是否禁止
-            addDisabled: false,
-            // 表单新增时是否可见
-            addDisplay: true,
-            // 表单新增时是否为查看模式
-            addDetail: false,
-            // 表单编辑时是否禁止
-            editDisabled: true,
-            // 表单编辑时是否可见
-            editDisplay: true,
-            // 表单编辑时是否为查看模式
-            editDetail: false,
-            width: 68,
-          },
-          {
-            label: "实操成绩",
-            prop: "learnGrade",
-            slot: true,
-            // 表单新增时是否禁止
-            addDisabled: false,
-            // 表单新增时是否可见
-            addDisplay: true,
-            // 表单新增时是否为查看模式
-            addDetail: false,
-            // 表单编辑时是否禁止
-            editDisabled: false,
-            // 表单编辑时是否可见
-            editDisplay: true,
-            // 表单编辑时是否为查看模式
-            editDetail: false,
-            width: 68,
-            rules: [
-              { validator: validatePass, required: true, trigger: "blur" },
-            ],
-          },
-          {
-            label: "总成绩",
-            prop: "allGrade",
-            slot: true,
-            // 表单新增时是否禁止
-            addDisabled: false,
-            // 表单新增时是否可见
-            addDisplay: true,
-            // 表单新增时是否为查看模式
-            addDetail: false,
-            // 表单编辑时是否禁止
-            editDisabled: true,
-            // 表单编辑时是否可见
-            editDisplay: true,
-            // 表单编辑时是否为查看模式
-            editDetail: false,
-            width: 58,
-            rules: [
-              {
-                required: true,
-                message: "请输入考试名称",
-                trigger: "blur",
-              },
-            ],
-          },
-          {
-            label: "是否合格",
-            prop: "qualified",
-            type: "select",
-            slot: true,
-            search: true,
-            searchSpan: 3,
-            width: 68,
-            dicData: [
-              {
-                label: "合格",
-                value: 0,
-              },
-              {
-                label: "不合格",
-                value: 1,
-              },
-              {
-                label: "暂未录实操成绩",
-                value: 2,
-              },
-              {
-                label: "缺考,成绩无效",
-                value: 3,
-              },
-            ],
-            // 表单新增时是否禁止
-            addDisabled: false,
-            // 表单新增时是否可见
-            addDisplay: true,
-            // 表单新增时是否为查看模式
-            addDetail: false,
-            // 表单编辑时是否禁止
-            editDisabled: true,
-            // 表单编辑时是否可见
-            editDisplay: true,
-            // 表单编辑时是否为查看模式
-            editDetail: false,
-            rules: [
-              {
-                required: true,
-                message: "请输入考试名称",
-                trigger: "blur",
-              },
-            ],
-          },
-        ],
-      },
-      questionBankSearch: {},
-      questionBankLoading: true,
-      questionBankData: [],
-      questionBankPage: {
-        pageSize: 10,
-        currentPage: 1,
-        total: 16,
-      },
-      questionBankQuery: {},
-      questionBankSelectionList: [],
-      excelForm: {},
-      excelOption: {
-        submitBtn: false,
-        emptyBtn: false,
-        column: [
-          {
-            label: "模板上传",
-            prop: "excelFile",
-            type: "upload",
-            drag: true,
-            loadText: "模板上传中,请稍等",
-            span: 24,
-            propsHttp: {
-              res: "data",
-            },
-            tip: "请上传 .xls,.xlsx 标准格式文件",
-            action: "/api/examScore/import-examScore",
-          },
-          // {
-          //     label: "数据覆盖",
-          //     prop: "isCovered",
-          //     type: "switch",
-          //     align: "center",
-          //     width: 80,
-          //     dicData: [
-          //     {
-          //         label: "否",
-          //         value: 0,
-          //     },
-          //     {
-          //         label: "是",
-          //         value: 1,
-          //     },
-          //     ],
-          //     value: 0,
-          //     slot: true,
-          //     rules: [
-          //     {
-          //         required: true,
-          //         message: "请选择是否覆盖",
-          //         trigger: "blur",
-          //     },
-          //     ],
-          // },
-          {
-            label: "模板下载",
-            prop: "excelTemplate",
-            formslot: true,
-            span: 24,
-          },
-        ],
-      },
-    };
-  },
-  created() {},
-  mounted() {},
-  computed: {
-    ...mapGetters(["userInfo", "permission"]),
-    permissionList() {
-      return {
-        addBtn: this.vaildData(null, false),
-        viewBtn: this.vaildData(
-          this.permission.trainExam_performance_view,
-          false
-        ),
-        delBtn: this.vaildData(null, false),
-        editBtn: this.vaildData(
-          this.permission.trainExam_performance_edit,
-          false
-        ),
-        excelBtn: this.vaildData(
-          this.permission.trainExam_performance_export,
-          false
-        ),
-      };
+    components: {
+        baoanz,
     },
-  },
-  methods: {
-    openzhengjian(row) {
-      this.baoanzdata = {
-        realName: row.securityName,
-        $sex: row.sex == 1 ? "男" : "女",
-        securitynumber: row.securityNumber,
-        paperTime: row.paperTime,
-        avatar: row.avatar,
-      };
-      this.dialogVisiblezhengjian = true;
-    },
-    closezhengjian() {
-      this.dialogVisiblezhengjian = false;
-    },
-    questionBankOnLoad(page, params = {}) {
-      //判断角色,如果是保安公司管理员或保安,只能查看当前公司的考试成绩
-      var that = this;
-      //获取当前登录人员的角色信息
-      var roleIds = this.userInfo.role_id.split(",");
-      roleIds.forEach((roleId) => {
-        getRoleDetail(roleId).then((res) => {
-          var roleAlias = res.data.data.roleAlias;
-          if (roleAlias == "保安公司管理员" || roleAlias == "保安") {
-            //如果是保安公司管理员
-            params["deptId"] = that.userInfo.dept_id;
-          }
-          if (roleAlias == "培训公司管理员") {
-            //如果是培训公司管理员
-            params["trainUnitId"] = that.userInfo.dept_id;
-          }
-          that.questionBankLoading = false;
-          params["examType"] = 2;
-          getList(
-            page.currentPage,
-            page.pageSize,
-            Object.assign(params, this.questionBankQuery)
-          ).then((res) => {
-            const data = res.data.data;
-            that.questionBankPage.total = data.total;
-            that.questionBankData = data.records;
-            that.questionBankLoading = false;
-            that.questionBankSelectionClear();
-          });
-        });
-      });
-    },
-    //缺考标记
-    absent(row, done, loading) {
-      this.$confirm("确定缺考标记?", {
-        confirmButtonText: "确定",
-        cancelButtonText: "取消",
-        type: "warning",
-      }).then(() => {
-        row.qualified = 3;
-        updateAbsent(row).then(
-          () => {
-            this.onLoad(this.page);
-            this.$message({
-              type: "success",
-              message: "操作成功!",
-            });
-            done();
-          },
-          (error) => {
-            window.console.log(error);
-            loading();
-          }
-        );
-      });
-    },
-    questionBankSelectionClear() {
-      this.questionBankSelectionList = [];
-      this.$refs.questionBankCrud.toggleSelection();
-    },
-    questionBankSelectionChange(list) {
-      this.questionBankSelectionList = list;
-    },
-    questionBankSearchChange(params, done) {
-      this.questionBankQuery = params;
-      this.questionBankPage.currentPage = 1;
-      this.questionBankOnLoad(this.questionBankPage, params);
-      done();
-    },
-    questionBankSearchReset() {
-      this.questionBankQuery = {};
-      this.questionBankOnLoad(this.questionBankPage);
-    },
-    questionBankCurrentChange(currentPage) {
-      this.questionBankPage.currentPage = currentPage;
-    },
-    questionBankSizeChange(pageSize) {
-      this.questionBankPage.pageSize = pageSize;
-    },
-
-    questionBankRowUpdate(row, index, done, loading) {
-      update({
-        theoryGrade: row.theoryGrade,
-        learnGrade: row.learnGrade,
-        examId: row.examId,
-        id: row.id,
-      }).then(
-        () => {
-          this.questionBankOnLoad(this.questionBankPage);
-          this.$message({
-            type: "success",
-            message: "操作成功!",
-          });
-          done();
-        },
-        (error) => {
-          window.console.log(error);
-          loading();
-        }
-      );
-    },
-    handleTemplate() {
-      window.open(`/api/examScore/export-template`);
-    },
-    handleImport() {
-      this.excelBox = true;
-    },
-    uploadAfter(res, done, loading, column) {
-      window.console.log(column);
-      this.excelBox = false;
-      // this.$message({
-      //   type: "success",
-      //   message: "操作成功!",
-      // });
-      this.refreshChange();
-      done();
-    },
-    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,
+    data () {
+        var validatePass = (rule, value, callback) => {
+            if (value == undefined || value == "") {
+                callback(new Error("请输入实操成绩"));
+                return;
+            } else if (value !== "" && isNaN(value) == true) {
+                callback(new Error("请输入数字"));
+            } else if (value <= 0) {
+                callback(new Error("分数设置请大于0"));
+            } else if (value > 100) {
+                callback(new Error("分数设置请小于100"));
+            } else {
+                callback();
+            }
         };
-        //导出
-        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);
-      });
+
+        return {
+            rules: {
+                editGrades: [
+                    { validator: validatePass, required: true, trigger: "blur" },
+                ]
+            },
+            gradeForm: {
+                id: null,
+                examName: '',
+                securityName: '',
+                account: '',
+                candidateNo: '',
+                theoryGrade: '',
+                learnGrade: '',
+                allGrade: '',
+                editGrades: '',
+                editReason: ''
+            },
+            gradeBoxVisible: false,
+            dialogVisiblezhengjian: false,
+            baoanzdata: {},
+            obj: {
+                name: "张三",
+            },
+            excelBox: false,
+            questionBankOption: {
+                // 操作栏多余按钮去除
+                delBtn: false,
+                editBtn: true,
+                addBtn: false,
+                selection: false,
+                // 导出按钮
+                // excelBtn: true,
+                // excelBtnText: "成绩导出",
+                viewBtn: true,
+                // title: '成绩',
+                align: "center",
+                height: "auto",
+                calcHeight: 80,
+                tip: false,
+                searchShow: true,
+                searchMenuSpan: 4,
+                index: true,
+                indexLabel: "序号",
+                //dialogType: 'drawer',
+                dialogClickModal: false,
+                // 操作栏宽度
+                menu: true,
+                menuWidth: 295,
+                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: 5,
+                        slot: true,
+                        viewDisplay: true,
+                        // 表单新增时是否禁止
+                        addDisabled: false,
+                        // 表单新增时是否可见
+                        addDisplay: true,
+                        // 表单新增时是否为查看模式
+                        addDetail: false,
+                        // 表单编辑时是否禁止
+                        editDisabled: true,
+                        viewDisabled: true,
+                        // 表单编辑时是否可见
+                        editDisplay: true,
+                        // 表单编辑时是否为查看模式
+                        editDetail: false,
+                        rules: [
+                            {
+                                required: true,
+                                message: "请输入试卷名称",
+                                trigger: "blur",
+                            },
+                        ],
+                        width: 210,
+                        // overHidden:true,
+                    },
+                    {
+                        label: "姓名",
+                        prop: "securityName",
+                        search: true,
+                        searchSpan: 3,
+                        slot: true,
+                        viewDisplay: true,
+                        // 表单新增时是否禁止
+                        addDisabled: false,
+                        // 表单新增时是否可见
+                        addDisplay: true,
+                        // 表单新增时是否为查看模式
+                        addDetail: false,
+                        // 表单编辑时是否禁止
+                        editDisabled: true,
+                        viewDisabled: true,
+                        // 表单编辑时是否可见
+                        editDisplay: true,
+                        // 表单编辑时是否为查看模式
+                        editDetail: false,
+                        rules: [
+                            {
+                                required: true,
+                                message: "请输入试卷名称",
+                                trigger: "blur",
+                            },
+                        ],
+                        width: 80,
+                        // overHidden:true,
+                    },
+                    {
+                        label: "身份证号",
+                        prop: "account",
+                        search: true,
+                        searchSpan: 4,
+                        slot: true,
+                        // 表单新增时是否禁止
+                        addDisabled: false,
+                        // 表单新增时是否可见
+                        addDisplay: true,
+                        // 表单新增时是否为查看模式
+                        addDetail: false,
+                        // 表单编辑时是否禁止
+                        editDisabled: true,
+                        // 表单编辑时是否可见
+                        editDisplay: true,
+                        // 表单编辑时是否为查看模式
+                        editDetail: false,
+                        rules: [
+                            {
+                                required: true,
+                                message: "请输入保安姓名",
+                                trigger: "blur",
+                            },
+                        ],
+                        width: 140,
+                    },
+                    {
+                        label: "准考证号",
+                        prop: "candidateNo",
+                        search: true,
+                        searchSpan: 4,
+                        slot: true,
+                        // 表单新增时是否禁止
+                        addDisabled: false,
+                        // 表单新增时是否可见
+                        addDisplay: true,
+                        // 表单新增时是否为查看模式
+                        addDetail: false,
+                        // 表单编辑时是否禁止
+                        editDisabled: true,
+                        // 表单编辑时是否可见
+                        editDisplay: true,
+                        // 表单编辑时是否为查看模式
+                        editDetail: false,
+                        rules: [
+                            {
+                                required: true,
+                                message: "请输入保安姓名",
+                                trigger: "blur",
+                            },
+                        ],
+                        width: 140,
+                    },
+                    {
+                        label: "所属公司",
+                        prop: "companyName",
+                        search: true,
+                        searchSpan: 4,
+                        // dicUrl: '/api/blade-system/dept/tree',
+                        // props: {
+                        //     label: "title",
+                        //     value: "id",
+                        // },
+                        slot: true,
+                        // 表单新增时是否禁止
+                        addDisabled: false,
+                        // 表单新增时是否可见
+                        addDisplay: true,
+                        // 表单新增时是否为查看模式
+                        addDetail: false,
+                        // 表单编辑时是否禁止
+                        editDisabled: true,
+                        // 表单编辑时是否可见
+                        editDisplay: true,
+                        // 表单编辑时是否为查看模式
+                        editDetail: false,
+                        rules: [
+                            {
+                                required: true,
+                                message: "请输入所属公司",
+                                trigger: "blur",
+                            },
+                        ],
+                        width: 230,
+                    },
+                    {
+                        label: "考试开始时间",
+                        prop: "examTime",
+                        type: "datetime",
+                        // span: 24,
+                        format: "yyyy-MM-dd HH:mm:ss",
+                        valueFormat: "yyyy-MM-dd HH:mm:ss",
+                        width: 140,
+                        slot: true,
+                        // 表单新增时是否禁止
+                        addDisabled: false,
+                        // 表单新增时是否可见
+                        addDisplay: true,
+                        // 表单新增时是否为查看模式
+                        addDetail: false,
+                        // 表单编辑时是否禁止
+                        editDisabled: true,
+                        // 表单编辑时是否可见
+                        editDisplay: true,
+                        // 表单编辑时是否为查看模式
+                        editDetail: false,
+                    },
+                    {
+                        label: "考试结束时间",
+                        prop: "examEndTime",
+                        type: "datetime",
+                        // span: 24,
+                        format: "yyyy-MM-dd HH:mm:ss",
+                        valueFormat: "yyyy-MM-dd HH:mm:ss",
+                        width: 140,
+                        slot: true,
+                        // 表单新增时是否禁止
+                        addDisabled: false,
+                        // 表单新增时是否可见
+                        addDisplay: true,
+                        // 表单新增时是否为查看模式
+                        addDetail: false,
+                        // 表单编辑时是否禁止
+                        editDisabled: true,
+                        // 表单编辑时是否可见
+                        editDisplay: true,
+                        // 表单编辑时是否为查看模式
+                        editDetail: false,
+                    },
+                    {
+                        label: "状态",
+                        prop: "isExam",
+                        type: "select",
+                        slot: true,
+                        search: true,
+                        searchSpan: 3,
+                        width: 60,
+                        dicData: [
+                            {
+                                label: "发布成绩",
+                                value: 2,
+                            },
+                            {
+                                label: "考试中",
+                                value: 3,
+                            },
+                        ],
+                        // 表单新增时是否禁止
+                        addDisabled: false,
+                        // 表单新增时是否可见
+                        addDisplay: true,
+                        // 表单新增时是否为查看模式
+                        addDetail: false,
+                        // 表单编辑时是否禁止
+                        editDisabled: true,
+                        // 表单编辑时是否可见
+                        editDisplay: true,
+                        // 表单编辑时是否为查看模式
+                        editDetail: false,
+                        rules: [
+                            {
+                                required: true,
+                                message: "请输入考试名称",
+                                trigger: "blur",
+                            },
+                        ],
+                    },
+                    {
+                        label: "理论成绩",
+                        prop: "theoryGrade",
+                        slot: true,
+                        // 表单新增时是否禁止
+                        addDisabled: false,
+                        // 表单新增时是否可见
+                        addDisplay: true,
+                        // 表单新增时是否为查看模式
+                        addDetail: false,
+                        // 表单编辑时是否禁止
+                        editDisabled: true,
+                        // 表单编辑时是否可见
+                        editDisplay: true,
+                        // 表单编辑时是否为查看模式
+                        editDetail: false,
+                        width: 68,
+                    },
+                    {
+                        label: "实操成绩",
+                        prop: "learnGrade",
+                        slot: true,
+                        // 表单新增时是否禁止
+                        addDisabled: false,
+                        // 表单新增时是否可见
+                        addDisplay: true,
+                        // 表单新增时是否为查看模式
+                        addDetail: false,
+                        // 表单编辑时是否禁止
+                        editDisabled: false,
+                        // 表单编辑时是否可见
+                        editDisplay: true,
+                        // 表单编辑时是否为查看模式
+                        editDetail: false,
+                        width: 68,
+                        rules: [
+                            { validator: validatePass, required: true, trigger: "blur" },
+                        ],
+                    },
+                    {
+                        label: "总成绩",
+                        prop: "allGrade",
+                        slot: true,
+                        // 表单新增时是否禁止
+                        addDisabled: false,
+                        // 表单新增时是否可见
+                        addDisplay: true,
+                        // 表单新增时是否为查看模式
+                        addDetail: false,
+                        // 表单编辑时是否禁止
+                        editDisabled: true,
+                        // 表单编辑时是否可见
+                        editDisplay: true,
+                        // 表单编辑时是否为查看模式
+                        editDetail: false,
+                        width: 58,
+                        rules: [
+                            {
+                                required: true,
+                                message: "请输入考试名称",
+                                trigger: "blur",
+                            },
+                        ],
+                    },
+                    {
+                        label: "是否合格",
+                        prop: "qualified",
+                        type: "select",
+                        slot: true,
+                        search: true,
+                        searchSpan: 3,
+                        width: 68,
+                        dicData: [
+                            {
+                                label: "合格",
+                                value: 0,
+                            },
+                            {
+                                label: "不合格",
+                                value: 1,
+                            },
+                            {
+                                label: "暂未录实操成绩",
+                                value: 2,
+                            },
+                            {
+                                label: "缺考,成绩无效",
+                                value: 3,
+                            },
+                        ],
+                        // 表单新增时是否禁止
+                        addDisabled: false,
+                        // 表单新增时是否可见
+                        addDisplay: true,
+                        // 表单新增时是否为查看模式
+                        addDetail: false,
+                        // 表单编辑时是否禁止
+                        editDisabled: true,
+                        // 表单编辑时是否可见
+                        editDisplay: true,
+                        // 表单编辑时是否为查看模式
+                        editDetail: false,
+                        rules: [
+                            {
+                                required: true,
+                                message: "请输入考试名称",
+                                trigger: "blur",
+                            },
+                        ],
+                    },
+                ],
+            },
+            questionBankSearch: {},
+            questionBankLoading: true,
+            questionBankData: [],
+            questionBankPage: {
+                pageSize: 10,
+                currentPage: 1,
+                total: 16,
+            },
+            questionBankQuery: {},
+            questionBankSelectionList: [],
+            excelForm: {},
+            excelOption: {
+                submitBtn: false,
+                emptyBtn: false,
+                column: [
+                    {
+                        label: "模板上传",
+                        prop: "excelFile",
+                        type: "upload",
+                        drag: true,
+                        loadText: "模板上传中,请稍等",
+                        span: 24,
+                        propsHttp: {
+                            res: "data",
+                        },
+                        tip: "请上传 .xls,.xlsx 标准格式文件",
+                        action: "/api/examScore/import-examScore",
+                    },
+                    // {
+                    //     label: "数据覆盖",
+                    //     prop: "isCovered",
+                    //     type: "switch",
+                    //     align: "center",
+                    //     width: 80,
+                    //     dicData: [
+                    //     {
+                    //         label: "否",
+                    //         value: 0,
+                    //     },
+                    //     {
+                    //         label: "是",
+                    //         value: 1,
+                    //     },
+                    //     ],
+                    //     value: 0,
+                    //     slot: true,
+                    //     rules: [
+                    //     {
+                    //         required: true,
+                    //         message: "请选择是否覆盖",
+                    //         trigger: "blur",
+                    //     },
+                    //     ],
+                    // },
+                    {
+                        label: "模板下载",
+                        prop: "excelTemplate",
+                        formslot: true,
+                        span: 24,
+                    },
+                ],
+            },
+        };
     },
-  },
+    created () { },
+    mounted () { },
+    computed: {
+        ...mapGetters(["userInfo", "permission"]),
+        permissionList () {
+            return {
+                addBtn: this.vaildData(null, false),
+                viewBtn: this.vaildData(
+                    this.permission.trainExam_performance_view,
+                    false
+                ),
+                delBtn: this.vaildData(null, false),
+                editBtn: this.vaildData(
+                    this.permission.trainExam_performance_edit,
+                    false
+                ),
+                excelBtn: this.vaildData(
+                    this.permission.trainExam_performance_export,
+                    false
+                ),
+            };
+        },
+    },
+    methods: {
+        openzhengjian (row) {
+            this.baoanzdata = {
+                realName: row.securityName,
+                $sex: row.sex == 1 ? "男" : "女",
+                securitynumber: row.securityNumber,
+                paperTime: row.paperTime,
+                avatar: row.avatar,
+            };
+            this.dialogVisiblezhengjian = true;
+        },
+        closezhengjian () {
+            this.dialogVisiblezhengjian = false;
+        },
+        questionBankOnLoad (page, params = {}) {
+            //判断角色,如果是保安公司管理员或保安,只能查看当前公司的考试成绩
+            var that = this;
+            //获取当前登录人员的角色信息
+            var roleIds = this.userInfo.role_id.split(",");
+            roleIds.forEach((roleId) => {
+                getRoleDetail(roleId).then((res) => {
+                    var roleAlias = res.data.data.roleAlias;
+                    if (roleAlias == "保安公司管理员" || roleAlias == "保安") {
+                        //如果是保安公司管理员
+                        params["deptId"] = that.userInfo.dept_id;
+                    }
+                    if (roleAlias == "培训公司管理员") {
+                        //如果是培训公司管理员
+                        params["trainUnitId"] = that.userInfo.dept_id;
+                    }
+                    that.questionBankLoading = false;
+                    params["examType"] = 2;
+                    getList(
+                        page.currentPage,
+                        page.pageSize,
+                        Object.assign(params, this.questionBankQuery)
+                    ).then((res) => {
+                        const data = res.data.data;
+                        that.questionBankPage.total = data.total;
+                        that.questionBankData = data.records;
+                        that.questionBankLoading = false;
+                        that.questionBankSelectionClear();
+                    });
+                });
+            });
+        },
+        //缺考标记
+        absent (row, done, loading) {
+            this.$confirm("确定缺考标记?", {
+                confirmButtonText: "确定",
+                cancelButtonText: "取消",
+                type: "warning",
+            }).then(() => {
+                row.qualified = 3;
+                updateAbsent(row).then(
+                    () => {
+                        this.questionBankOnLoad(this.questionBankPage);
+                        this.$message({
+                            type: "success",
+                            message: "操作成功!",
+                        });
+                        done();
+                    },
+                    (error) => {
+                        window.console.log(error);
+                        loading();
+                    }
+                );
+            });
+        },
+
+        // 修改考试成绩
+        modifiedGrades (row) {
+
+            var { id, examName, securityName, account, candidateNo, theoryGrade, learnGrade, allGrade } = row
+
+            this.gradeForm.examName = examName
+            this.gradeForm.securityName = securityName
+            this.gradeForm.account = account
+            this.gradeForm.candidateNo = candidateNo
+            this.gradeForm.theoryGrade = theoryGrade
+            this.gradeForm.learnGrade = learnGrade
+            this.gradeForm.allGrade = allGrade
+            this.gradeForm.editGrades = ''
+            this.gradeForm.editReason = ''
+            this.gradeForm.id = id
+
+            this.gradeBoxVisible = true
+
+        },
+
+
+        uploadGrade (formName) {
+
+            var that = this
+
+            this.$refs[formName].validate((valid) => {
+
+                if (valid) {
+                    var obj = {}
+                    obj.oldScore = this.gradeForm.theoryGrade
+                    obj.newScore = this.gradeForm.editGrades
+                    obj.applyCause = this.gradeForm.editReason
+                    obj.examScoreId = this.gradeForm.id
+                    obj.createUser = this.userInfo.Id
+
+                    updateGrade(obj).then(
+                        () => {
+                            that.questionBankOnLoad(that.questionBankPage)
+                            that.$message({
+                                type: "success",
+                                message: "操作成功!",
+                            })
+
+                            that.gradeBoxVisible = false
+                        },
+                        (error) => {
+                            window.console.log(error)
+                        }
+                    );
+
+                }
+
+            })
+
+        },
+
+        questionBankSelectionClear () {
+            this.questionBankSelectionList = [];
+            this.$refs.questionBankCrud.toggleSelection();
+        },
+        questionBankSelectionChange (list) {
+            this.questionBankSelectionList = list;
+        },
+        questionBankSearchChange (params, done) {
+            this.questionBankQuery = params;
+            this.questionBankPage.currentPage = 1;
+            this.questionBankOnLoad(this.questionBankPage, params);
+            done();
+        },
+        questionBankSearchReset () {
+            this.questionBankQuery = {};
+            this.questionBankOnLoad(this.questionBankPage);
+        },
+        questionBankCurrentChange (currentPage) {
+            this.questionBankPage.currentPage = currentPage;
+        },
+        questionBankSizeChange (pageSize) {
+            this.questionBankPage.pageSize = pageSize;
+        },
+
+        questionBankRowUpdate (row, index, done, loading) {
+            update({
+                theoryGrade: row.theoryGrade,
+                learnGrade: row.learnGrade,
+                examId: row.examId,
+                id: row.id,
+            }).then(
+                () => {
+                    this.questionBankOnLoad(this.questionBankPage);
+                    this.$message({
+                        type: "success",
+                        message: "操作成功!",
+                    });
+                    done();
+                },
+                (error) => {
+                    window.console.log(error);
+                    loading();
+                }
+            );
+        },
+        handleTemplate () {
+            window.open(`/api/examScore/export-template`);
+        },
+        handleImport () {
+            this.excelBox = true;
+        },
+        uploadAfter (res, done, loading, column) {
+            window.console.log(column);
+            this.excelBox = false;
+            // this.$message({
+            //   type: "success",
+            //   message: "操作成功!",
+            // });
+            this.refreshChange();
+            done();
+        },
+        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>
 
 <style lang="scss" scoped>
 .morpheus-box {
-  position: relative;
+    position: relative;
 }
 .dialogVisiblezhengjian {
-  position: absolute;
-  background-color: #fff;
-  width: 100%;
-  height: 100%;
-  z-index: 10000 !important;
+    position: absolute;
+    background-color: #fff;
+    width: 100%;
+    height: 100%;
+    z-index: 10000 !important;
 }
 </style>

--
Gitblit v1.9.3