From 0d4ee670658f44b92935ffd93f2d9b6aeafbf527 Mon Sep 17 00:00:00 2001
From: liuyg <376836862@qq.com>
Date: Wed, 11 Aug 2021 11:29:57 +0800
Subject: [PATCH] Merge branch 'master' of http://192.168.0.105:10010/r/zhba_enterprises
---
src/views/applyexam/index.vue | 300 ++
public/securityPrint.html | 156 +
src/router/views/index.js | 1676 ++++++++++---------
src/views/exam/papers.vue | 39
src/views/securityApply/index.vue | 121 +
src/views/applyexam/papers.vue | 2
public/papersApply.html | 156 +
src/api/talk/talk.js | 50
src/views/applydetailed/index.vue | 1263 +++++++-------
src/views/companyApply/index.vue | 634 +++++++
src/api/examapi/applyexam.js | 22
src/api/securityGuard/securityGuard.js | 21
src/views/talk/talk.vue | 266 +++
src/views/applydetailed/papers.vue | 40
src/views/exam/performance.vue | 48
src/views/exam/singleperformance.vue | 81
16 files changed, 3,317 insertions(+), 1,558 deletions(-)
diff --git a/public/papersApply.html b/public/papersApply.html
new file mode 100644
index 0000000..2df373c
--- /dev/null
+++ b/public/papersApply.html
@@ -0,0 +1,156 @@
+<!DOCTYPE html>
+<html lang="en">
+
+<head>
+ <meta charset="UTF-8">
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
+ <style>
+ #table {
+ color: #000;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ flex-direction: column;
+ }
+
+ .user-info-table {
+ margin-top: 30px;
+ width: 90%;
+ height: 90%;
+ border: 1px solid #000;
+ background-color: #fff;
+ }
+
+ .user-info-tr {
+ height: 50px;
+ font-size: 14px;
+ }
+
+ .avatar {
+ width: 140px;
+ height: 190px;
+ }
+
+ .title {
+ margin-top: 20px;
+ font-size: 28px;
+ font-weight: 500;
+ }
+
+ .avatar {
+ width: 140px;
+ height: 190px;
+ }
+
+ .my-picture {
+ width: 150px;
+ /* height: 200px; */
+ }
+ </style>
+ <script src="https://unpkg.com/axios/dist/axios.min.js"></script>
+ <script src="https://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js"></script>
+</head>
+
+
+<body>
+ <div>
+ <div>
+ <button onclick="preview(1)">打印</button>
+ </div>
+ <!--startprint-->
+ <div id="table">
+ <!-- <span class="title">准考证信息</span>
+ <table class="user-info-table" border="1px" align="center" cellspacing="0" cellpadding="10">
+ </table>
+ </div> -->
+ <!--endprint-->
+
+ </div>
+ <script>
+ var getData = function(name) {
+ var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)");
+ var r = window.location.search.substr(1).match(reg);
+ if (r != null) return unescape(r[2]);
+ return null;
+ };
+ var id = JSON.parse(getData("data")).examId;
+ var name = JSON.parse(getData("data")).name;
+ // console.log(JSON.parse(getData("data")), 111);
+
+ axios.get('http://localhost:81/apply/getApplyDetailList?examId=' + id).then(function(res) {
+ var data = res.data;
+ var list = data.applyList;
+ console.log(data, 123);
+ var str = `<span class="title">${data.examName}</span>
+ <table class="user-info-table" border="1px" align="center" cellspacing="0" cellpadding="10">
+ <tr class="user-info-tr">
+ <td width="80px">姓名</td>
+ <td width="60px">性别</td>
+ <td width="120px">准考证号</td>
+ <td width="160px">身份证号</td>
+ <td width="300px">单位名称</td>
+ <td width="100px">报考证件</td>
+ <td width="200px">报名时间</td>
+ </tr>`
+
+ for (var k in list) {
+ str += `
+ <tr class="user-info-tr">
+ <td>${list[k].realName}</td>
+ <td>${list[k].sex==1?"男":(data.sex==2?"女":"")}</td>
+ <td>${list[k].candidateNo}</td>
+ <td>${list[k].idCardNo}</td>
+ <td>${list[k].deptName}</td>
+ <td>${list[k].applyCard}</td>
+ <td>${list[k].applyTime}</td>
+ </tr>
+ `
+ }
+
+ // <tr class="user-info-tr">
+ // <td></td>
+ // <td></td>
+ // <td></td>
+ // <td></td>
+ // <td></td>
+ // <td></td>
+ // <td></td>
+ // </tr>
+
+ str += ` <tr class="user-info-tr">
+ <td>总人数</td>
+ <td colspan="6">${data.num}人</td>
+ </tr>
+
+ </table>
+ </div>`
+
+ var dom = $('#table');
+ dom.empty();
+ dom.append(str);
+ })
+
+ function preview(oper) {
+ if (oper < 10) {
+ bdhtml = window.document.body.innerHTML;
+ // 打印开始的标志
+ sprnstr = "<!--startprint-->";
+ // 打印结束的标志
+ eprnstr = "<!--endprint-->";
+ // 从打印开始的位置截取到末尾
+ prnhtml = bdhtml.substr(bdhtml.indexOf(sprnstr));
+ // 从开始截取到打印结束的位置
+ prnhtml = prnhtml.substring(0, prnhtml.indexOf(eprnstr));
+ // 替换html
+ window.document.body.innerHTML = prnhtml;
+ // 打印
+ window.print();
+ window.document.body.innerHTML = bdhtml;
+ } else {
+ window.print();
+ }
+ }
+ </script>
+</body>
+
+</html>
\ No newline at end of file
diff --git a/public/securityPrint.html b/public/securityPrint.html
new file mode 100644
index 0000000..2df373c
--- /dev/null
+++ b/public/securityPrint.html
@@ -0,0 +1,156 @@
+<!DOCTYPE html>
+<html lang="en">
+
+<head>
+ <meta charset="UTF-8">
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
+ <style>
+ #table {
+ color: #000;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ flex-direction: column;
+ }
+
+ .user-info-table {
+ margin-top: 30px;
+ width: 90%;
+ height: 90%;
+ border: 1px solid #000;
+ background-color: #fff;
+ }
+
+ .user-info-tr {
+ height: 50px;
+ font-size: 14px;
+ }
+
+ .avatar {
+ width: 140px;
+ height: 190px;
+ }
+
+ .title {
+ margin-top: 20px;
+ font-size: 28px;
+ font-weight: 500;
+ }
+
+ .avatar {
+ width: 140px;
+ height: 190px;
+ }
+
+ .my-picture {
+ width: 150px;
+ /* height: 200px; */
+ }
+ </style>
+ <script src="https://unpkg.com/axios/dist/axios.min.js"></script>
+ <script src="https://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js"></script>
+</head>
+
+
+<body>
+ <div>
+ <div>
+ <button onclick="preview(1)">打印</button>
+ </div>
+ <!--startprint-->
+ <div id="table">
+ <!-- <span class="title">准考证信息</span>
+ <table class="user-info-table" border="1px" align="center" cellspacing="0" cellpadding="10">
+ </table>
+ </div> -->
+ <!--endprint-->
+
+ </div>
+ <script>
+ var getData = function(name) {
+ var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)");
+ var r = window.location.search.substr(1).match(reg);
+ if (r != null) return unescape(r[2]);
+ return null;
+ };
+ var id = JSON.parse(getData("data")).examId;
+ var name = JSON.parse(getData("data")).name;
+ // console.log(JSON.parse(getData("data")), 111);
+
+ axios.get('http://localhost:81/apply/getApplyDetailList?examId=' + id).then(function(res) {
+ var data = res.data;
+ var list = data.applyList;
+ console.log(data, 123);
+ var str = `<span class="title">${data.examName}</span>
+ <table class="user-info-table" border="1px" align="center" cellspacing="0" cellpadding="10">
+ <tr class="user-info-tr">
+ <td width="80px">姓名</td>
+ <td width="60px">性别</td>
+ <td width="120px">准考证号</td>
+ <td width="160px">身份证号</td>
+ <td width="300px">单位名称</td>
+ <td width="100px">报考证件</td>
+ <td width="200px">报名时间</td>
+ </tr>`
+
+ for (var k in list) {
+ str += `
+ <tr class="user-info-tr">
+ <td>${list[k].realName}</td>
+ <td>${list[k].sex==1?"男":(data.sex==2?"女":"")}</td>
+ <td>${list[k].candidateNo}</td>
+ <td>${list[k].idCardNo}</td>
+ <td>${list[k].deptName}</td>
+ <td>${list[k].applyCard}</td>
+ <td>${list[k].applyTime}</td>
+ </tr>
+ `
+ }
+
+ // <tr class="user-info-tr">
+ // <td></td>
+ // <td></td>
+ // <td></td>
+ // <td></td>
+ // <td></td>
+ // <td></td>
+ // <td></td>
+ // </tr>
+
+ str += ` <tr class="user-info-tr">
+ <td>总人数</td>
+ <td colspan="6">${data.num}人</td>
+ </tr>
+
+ </table>
+ </div>`
+
+ var dom = $('#table');
+ dom.empty();
+ dom.append(str);
+ })
+
+ function preview(oper) {
+ if (oper < 10) {
+ bdhtml = window.document.body.innerHTML;
+ // 打印开始的标志
+ sprnstr = "<!--startprint-->";
+ // 打印结束的标志
+ eprnstr = "<!--endprint-->";
+ // 从打印开始的位置截取到末尾
+ prnhtml = bdhtml.substr(bdhtml.indexOf(sprnstr));
+ // 从开始截取到打印结束的位置
+ prnhtml = prnhtml.substring(0, prnhtml.indexOf(eprnstr));
+ // 替换html
+ window.document.body.innerHTML = prnhtml;
+ // 打印
+ window.print();
+ window.document.body.innerHTML = bdhtml;
+ } else {
+ window.print();
+ }
+ }
+ </script>
+</body>
+
+</html>
\ No newline at end of file
diff --git a/src/api/examapi/applyexam.js b/src/api/examapi/applyexam.js
index c2f48aa..fb228e7 100644
--- a/src/api/examapi/applyexam.js
+++ b/src/api/examapi/applyexam.js
@@ -21,6 +21,15 @@
})
}
+
+export const cancelApply = (row) => {
+ return request({
+ url: '/api/apply/cancelApply',
+ method: 'post',
+ data: row
+ })
+}
+
export const updateApply = (row) => {
return request({
url: '/api/apply/submit',
@@ -41,6 +50,19 @@
})
}
+export const addExam = (ids, examTime, startTime, endTime) => {
+ return request({
+ url: '/api/apply/batchExam',
+ method: 'post',
+ params: {
+ ids,
+ examTime,
+ startTime,
+ endTime
+ }
+ })
+}
+
diff --git a/src/api/securityGuard/securityGuard.js b/src/api/securityGuard/securityGuard.js
index 6e8dfc4..b9a409b 100644
--- a/src/api/securityGuard/securityGuard.js
+++ b/src/api/securityGuard/securityGuard.js
@@ -12,6 +12,18 @@
})
}
+export const getListApply = (current, size, params) => {
+ return request({
+ url: '/api/blade-user/page-security-apply',
+ method: 'get',
+ params: {
+ ...params,
+ current,
+ size
+ }
+ })
+}
+
export const remove = (ids) => {
return request({
url: '/api/blade-user/remove',
@@ -30,6 +42,15 @@
})
}
+
+export const addBatchApply = (row) => {
+ return request({
+ url: '/api/apply/batchApply',
+ method: 'post',
+ data: row
+ })
+}
+
export const update = (row) => {
return request({
url: '/api/blade-user/update',
diff --git a/src/api/talk/talk.js b/src/api/talk/talk.js
new file mode 100644
index 0000000..58088fb
--- /dev/null
+++ b/src/api/talk/talk.js
@@ -0,0 +1,50 @@
+import request from '@/router/axios';
+
+export const getList = (current, size, params) => {
+ return request({
+ url: '/api/blade-talk/talk/page',
+ method: 'get',
+ params: {
+ ...params,
+ current,
+ size,
+ }
+ })
+}
+
+export const getDetail = (id) => {
+ return request({
+ url: '/api/blade-talk/talk/detail',
+ method: 'get',
+ params: {
+ id
+ }
+ })
+}
+
+export const remove = (ids) => {
+ return request({
+ url: '/api/blade-talk/talk/remove',
+ method: 'post',
+ params: {
+ ids,
+ }
+ })
+}
+
+export const add = (row) => {
+ return request({
+ url: '/api/blade-talk/talk/submit',
+ method: 'post',
+ data: row
+ })
+}
+
+export const update = (row) => {
+ return request({
+ url: '/api/blade-talk/talk/submit',
+ method: 'post',
+ data: row
+ })
+}
+
diff --git a/src/router/views/index.js b/src/router/views/index.js
index 6be1856..583156f 100644
--- a/src/router/views/index.js
+++ b/src/router/views/index.js
@@ -1,829 +1,871 @@
import Layout from '@/page/index/'
export default [{
- path: '/wel',
- component: Layout,
- redirect: '/wel/index',
- children: [{
- path: 'index',
- name: '首页',
- meta: {
- i18n: 'dashboard'
- },
- component: () =>
- import( /* webpackChunkName: "views" */ '@/views/wel/index')
+ path: '/wel',
+ component: Layout,
+ redirect: '/wel/index',
+ children: [{
+ path: 'index',
+ name: '首页',
+ meta: {
+ i18n: 'dashboard'
+ },
+ component: () =>
+ import ( /* webpackChunkName: "views" */ '@/views/wel/index')
+ }, {
+ path: 'dashboard',
+ name: '控制台',
+ meta: {
+ i18n: 'dashboard',
+ menu: false,
+ },
+ component: () =>
+ import ( /* webpackChunkName: "views" */ '@/views/wel/dashboard')
+ }]
}, {
- path: 'dashboard',
- name: '控制台',
- meta: {
- i18n: 'dashboard',
- menu: false,
- },
- component: () =>
- import( /* webpackChunkName: "views" */ '@/views/wel/dashboard')
- }]
-}, {
- path: '/test',
- component: Layout,
- redirect: '/test/index',
- children: [{
- path: 'index',
- name: '测试页',
- meta: {
- i18n: 'test'
- },
- component: () =>
- import( /* webpackChunkName: "views" */ '@/views/util/test')
- }]
-}, {
- path: '/dict-horizontal',
- component: Layout,
- redirect: '/dict-horizontal/index',
- children: [{
- path: 'index',
- name: '字典管理',
- meta: {
- i18n: 'dict'
- },
- component: () =>
- import( /* webpackChunkName: "views" */ '@/views/util/demo/dict-horizontal')
- }]
-}, {
- path: '/dict-vertical',
- component: Layout,
- redirect: '/dict-vertical/index',
- children: [{
- path: 'index',
- name: '字典管理',
- meta: {
- i18n: 'dict'
- },
- component: () =>
- import( /* webpackChunkName: "views" */ '@/views/util/demo/dict-vertical')
- }]
-}, {
- path: '/info',
- component: Layout,
- redirect: '/info/index',
- children: [{
- path: 'index',
- name: '个人信息',
- meta: {
- i18n: 'info'
- },
- component: () =>
- import( /* webpackChunkName: "views" */ '@/views/system/userinfo')
- }]
-}, {
- path: '/work/process/leave',
- component: Layout,
- redirect: '/work/process/leave/form',
- children: [{
- path: 'form/:processDefinitionId',
- name: '请假流程',
- meta: {
- i18n: 'work'
- },
- component: () =>
- import( /* webpackChunkName: "views" */ '@/views/work/process/leave/form')
+ path: '/test',
+ component: Layout,
+ redirect: '/test/index',
+ children: [{
+ path: 'index',
+ name: '测试页',
+ meta: {
+ i18n: 'test'
+ },
+ component: () =>
+ import ( /* webpackChunkName: "views" */ '@/views/util/test')
+ }]
}, {
- path: 'handle/:taskId/:processInstanceId/:businessId',
- name: '处理请假流程',
- meta: {
- i18n: 'work'
- },
- component: () =>
- import( /* webpackChunkName: "views" */ '@/views/work/process/leave/handle')
+ path: '/dict-horizontal',
+ component: Layout,
+ redirect: '/dict-horizontal/index',
+ children: [{
+ path: 'index',
+ name: '字典管理',
+ meta: {
+ i18n: 'dict'
+ },
+ component: () =>
+ import ( /* webpackChunkName: "views" */ '@/views/util/demo/dict-horizontal')
+ }]
}, {
- path: 'detail/:processInstanceId/:businessId',
- name: '请假流程详情',
- meta: {
- i18n: 'work'
- },
- component: () =>
- import( /* webpackChunkName: "views" */ '@/views/work/process/leave/detail')
- }]
-}, {
- path: '/securityAnalysis',
- component: Layout,
- redirect: '/securityAnalysis/index',
- children: [{
- path: 'index',
- name: '保安单位情况智能分析',
- meta: {
- i18n: 'dict'
- },
- component: () =>
- import( /* webpackChunkName: "views" */ '@/views/securityAnalysis/index')
- }]
-}, {
- path: '/recruitmentManagement',
- component: Layout,
- redirect: '/recruitmentManagement/index',
- children: [{
- path: 'index',
- name: '招聘管理',
- meta: {
- i18n: 'dict'
- },
- component: () =>
- import( /* webpackChunkName: "views" */ '@/views/recruitmentManagement/index')
- }]
-}, {
- path: '/securityUnit',
- component: Layout,
- redirect: '/securityUnit/index',
- children: [{
- path: 'index',
- name: '保安单位信息',
- meta: {
- i18n: 'dict'
- },
- component: () =>
- import( /* webpackChunkName: "views" */ '@/views/securityUnit/index')
- }]
-}, {
- path: '/securityGuard',
- component: Layout,
- redirect: '/securityGuard/securityGuard',
- children: [{
- path: 'index',
- name: '保安员查询',
- meta: {
- i18n: 'dict'
- },
- component: () =>
- import( /* webpackChunkName: "views" */ '@/views/securityGuard/securityGuard')
- }]
-}, {
- path: '/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: '/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: '/securityUnit',
- component: Layout,
- redirect: '/securityUnit/index',
- children: [{
- path: 'index',
- name: '保安单位信息',
- meta: {
- i18n: 'dict'
- },
- component: () =>
- import( /* webpackChunkName: "views" */ '@/views/securityUnit/index')
- }]
-}, {
- path: '/securityGuard',
- component: Layout,
- redirect: '/securityGuard/securityGuard',
- children: [{
- path: 'index',
- name: '保安员查询',
- meta: {
- i18n: 'dict'
- },
- component: () =>
- import( /* webpackChunkName: "views" */ '@/views/securityGuard/securityGuard')
- }]
-}, {
- path: '/securityGuardDetail',
- component: Layout,
- redirect: '/securityGuardDetail/index',
- children: [{
- path: 'index',
- name: '保安员详情',
- meta: {
- i18n: 'dict'
- },
- component: () =>
- import( /* webpackChunkName: "views" */ '@/views/securityGuard/securityGuardDetail')
- }]
-}, {
- path: '/resource',
- component: Layout,
- redirect: '/resource/attach',
- children: [{
- path: 'attach',
- name: '附件上传',
- meta: {
- i18n: 'dict'
- },
- component: () =>
- import( /* webpackChunkName: "views" */ '@/views/resource/attach')
- }]
-}, {
- path: '/securityUnitChild',
- component: Layout,
- redirect: '/securityUnitChild/index',
- children: [{
- path: 'index',
- name: '保安单位详情',
- meta: {
- i18n: 'dict'
- },
- component: () =>
- import( /* webpackChunkName: "views" */ '@/views/securityUnitChild/index')
- }]
-}, {
- path: '/securityGuard',
- component: Layout,
- redirect: '/securityGuard/securityGuard',
- children: [{
- path: 'index',
- name: '保安员管理',
- meta: {
- i18n: 'dict'
- },
- component: () =>
- import( /* webpackChunkName: "views" */ '@/views/securityGuard/securityGuard')
- }]
-},
-// {
-// path: '/dispatch/dispatch',
-// component: Layout,
-// redirect: '/dispatch/dispatch',
-// children: [{
-// path: 'index',
-// name: '派遣服务管理',
-// meta: {
-// i18n: 'dict'
-// },
-// component: () =>
-// import( /* webpackChunkName: "views" */ '@/views/dispatch/dispatch')
-// }]
-// },
-{
- path: '/desk',
- component: Layout,
- redirect: '/desk/notice',
- children: [{
- path: 'index',
- name: '通知公告',
- meta: {
- i18n: 'dict'
- },
- component: () =>
- import( /* webpackChunkName: "views" */ '@/views/desk/notice')
- }]
-}, {
- path: '/dispatch',
- component: Layout,
- redirect: '/dispatch/dispatch',
- children: [{
- path: 'dispatch',
- name: '派遣单位管理',
- meta: {
- i18n: 'dispatch'
- },
- component: () =>
- import( /* webpackChunkName: "views" */ '@/views/dispatch/dispatch')
+ path: '/dict-vertical',
+ component: Layout,
+ redirect: '/dict-vertical/index',
+ children: [{
+ path: 'index',
+ name: '字典管理',
+ meta: {
+ i18n: 'dict'
+ },
+ component: () =>
+ import ( /* webpackChunkName: "views" */ '@/views/util/demo/dict-vertical')
+ }]
}, {
- path: 'dispatchChildoperable',
- name: '派遣记录管理',
- meta: {
- i18n: 'dispatch'
- },
- component: () =>
- import( /* webpackChunkName: "views" */ '@/views/dispatch/dispatchChildoperable')
- }]
-}, {
- path: '/dispatchChild',
+ path: '/info',
+ component: Layout,
+ redirect: '/info/index',
+ children: [{
+ path: 'index',
+ name: '个人信息',
+ meta: {
+ i18n: 'info'
+ },
+ component: () =>
+ import ( /* webpackChunkName: "views" */ '@/views/system/userinfo')
+ }]
+ }, {
+ path: '/work/process/leave',
+ component: Layout,
+ redirect: '/work/process/leave/form',
+ children: [{
+ path: 'form/:processDefinitionId',
+ name: '请假流程',
+ meta: {
+ i18n: 'work'
+ },
+ component: () =>
+ import ( /* webpackChunkName: "views" */ '@/views/work/process/leave/form')
+ }, {
+ path: 'handle/:taskId/:processInstanceId/:businessId',
+ name: '处理请假流程',
+ meta: {
+ i18n: 'work'
+ },
+ component: () =>
+ import ( /* webpackChunkName: "views" */ '@/views/work/process/leave/handle')
+ }, {
+ path: 'detail/:processInstanceId/:businessId',
+ name: '请假流程详情',
+ meta: {
+ i18n: 'work'
+ },
+ component: () =>
+ import ( /* webpackChunkName: "views" */ '@/views/work/process/leave/detail')
+ }]
+ }, {
+ path: '/securityAnalysis',
+ component: Layout,
+ redirect: '/securityAnalysis/index',
+ children: [{
+ path: 'index',
+ name: '保安单位情况智能分析',
+ meta: {
+ i18n: 'dict'
+ },
+ component: () =>
+ import ( /* webpackChunkName: "views" */ '@/views/securityAnalysis/index')
+ }]
+ }, {
+ path: '/recruitmentManagement',
+ component: Layout,
+ redirect: '/recruitmentManagement/index',
+ children: [{
+ path: 'index',
+ name: '招聘管理',
+ meta: {
+ i18n: 'dict'
+ },
+ component: () =>
+ import ( /* webpackChunkName: "views" */ '@/views/recruitmentManagement/index')
+ }]
+ }, {
+ path: '/securityUnit',
+ component: Layout,
+ redirect: '/securityUnit/index',
+ children: [{
+ path: 'index',
+ name: '保安单位信息',
+ meta: {
+ i18n: 'dict'
+ },
+ component: () =>
+ import ( /* webpackChunkName: "views" */ '@/views/securityUnit/index')
+ }]
+ }, {
+ path: '/securityGuard',
+ component: Layout,
+ redirect: '/securityGuard/securityGuard',
+ children: [{
+ path: 'index',
+ name: '保安员查询',
+ meta: {
+ i18n: 'dict'
+ },
+ component: () =>
+ import ( /* webpackChunkName: "views" */ '@/views/securityGuard/securityGuard')
+ }]
+ }, {
+ path: '/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: '/dispatchChild/index',
+ redirect: '/talk/talk',
children: [{
- path: 'index',
- name: '派遣服务记录',
- meta: {
- i18n: 'dict'
- },
- component: () =>
- import( /* webpackChunkName: "views" */ '@/views/dispatchChild/index')
+ path: 'index',
+ name: '心里咨询',
+ meta: {
+ i18n: 'dict'
+ },
+ component: () =>
+ import( /* webpackChunkName: "views" */ '@/views/talk/talk')
}]
-}, {
- path: '/applyexam',
- redirect: '/applyexam/papers',
- component: Layout,
- children: [{
- path: 'papers',
- name: '准考证信息',
- meta: {
- i18n: 'index',
- },
+ },
+ {
+ 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: '/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,
+ 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/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,
- 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')
- }]
-}
+ 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')
+ }]
+ }
]
diff --git a/src/views/applydetailed/index.vue b/src/views/applydetailed/index.vue
index 8fd3d19..813d19a 100644
--- a/src/views/applydetailed/index.vue
+++ b/src/views/applydetailed/index.vue
@@ -6,655 +6,656 @@
* menu-name 报名考试
*/
<template>
- <el-row class="morpheus-box-apply-exam-1">
- <el-col :span="24" class="hasButOne">
- <el-card>
- <div class="exam-card-body">
+ <el-row class="morpheus-box-apply-exam-1">
+ <el-col :span="24" class="hasButOne">
+ <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"
+ ref="questionBankCrud"
+ :page.sync="questionBankPage"
+ @on-load="questionBankOnLoad"
+ @selection-change="questionBankSelectionChange"
+ @search-change="questionBankSearchChange"
+ @search-reset="questionBankSearchReset"
+ @current-change="questionBankCurrentChange"
+ @size-change="questionBankSizeChange"
+ @row-save="questionBankRowSave"
+ @row-del="questionBankRowDel"
+ >
+ <!-- 自定义按钮 -->
+ <template slot="menuLeft">
+ <el-button
+ type="warning"
+ size="small"
+ plain
+ icon="el-icon-download"
+ @click="handleExport"
+ >清册生成
+ </el-button>
+ <el-button
+ style="display:none"
+ type="success"
+ size="small"
+ plain
+ icon="el-icon-receiving"
+ @click="handleImport"
+ >清册打印
+ </el-button>
+ </template>
- <avue-crud v-model="obj"
- class="company-box"
- :option="questionBankOption"
- :search.sync="questionBankSearch"
- :table-loading="questionBankLoading"
- :data="questionBankData"
- ref="questionBankCrud"
- :page.sync="questionBankPage"
- @on-load="questionBankOnLoad"
- @selection-change="questionBankSelectionChange"
- @search-change="questionBankSearchChange"
- @search-reset="questionBankSearchReset"
- @current-change="questionBankCurrentChange"
- @size-change="questionBankSizeChange"
- @row-save="questionBankRowSave"
- @row-del="questionBankRowDel">
+ <template slot-scope="{ type, row }" slot="menu">
+ <el-button
+ :type="type"
+ size="small"
+ icon="el-icon-receiving"
+ :disabled="row.applyStatus == 4"
+ @click="handlePrint(row)"
+ >准考证打印
+ </el-button>
+ </template>
+ </avue-crud>
- <!-- 自定义按钮 -->
- <template slot="menuLeft">
- <el-button
- type="warning"
- size="small"
- plain
- icon="el-icon-download"
- @click="handleExport"
- >导出
- </el-button>
- <el-button
- type="success"
- size="small"
- plain
- icon="el-icon-upload2"
- @click="handleImport"
- >导入
- </el-button>
- </template>
-
- <template slot-scope="{ type,row }" slot="menu">
- <el-button
- :type="type"
- size="small"
- icon="el-icon-receiving"
- :disabled="row.applyStatus==4"
- @click="handlePrint(row)"
- >准考证打印
- </el-button>
- </template>
-
- </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-row>
+ <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-row>
</template>
<script>
-
-import {
- getApplyList,
- addApply,
- remove
-} from "@/api/examapi/applyexam";
-import { mapState } from 'vuex'
-
+import { getApplyList, addApply, remove } from "@/api/examapi/applyexam";
+import { mapState } from "vuex";
var DIC = {
- applyStatus: [{
- label: '已报名',
- value: 2
- }, {
- label: '已取消',
- value: 4
- }]
-}
+ applyStatus: [
+ {
+ label: "已报名",
+ value: 2,
+ },
+ {
+ label: "已取消",
+ value: 4,
+ },
+ ],
+};
export default {
- data () {
+ data() {
+ return {
+ obj: {
+ name: "张三",
+ },
+ excelBox: false,
+ questionBankOption: {
+ // 操作栏多余按钮去除
+ delBtn: false,
+ editBtn: false,
+ addBtn: false,
+ selection: true,
+ menu: true,
+ // 导出按钮
+ // excelBtn: true,
+ viewBtn: false,
- return {
- obj: {
- name: '张三',
+ // title: '题库',
+
+ align: "center",
+ height: "auto",
+ calcHeight: 80,
+ tip: false,
+ searchShow: true,
+ searchMenuSpan: 4,
+ index: true,
+ indexLabel: "序号",
+ //dialogType: 'drawer',
+ dialogClickModal: false,
+ // 操作栏宽度
+ menuWidth: 200,
+
+ column: [
+ {
+ label: "保安姓名",
+ prop: "userId",
+ type: "tree",
+ dicUrl: "",
+ hide: true,
+ slot: true,
+ searchSpan: 4,
+ // 表单新增时是否禁止
+ addDisabled: false,
+ // 表单新增时是否可见
+ addDisplay: true,
+ // 表单新增时是否为查看模式
+ addDetail: false,
+ // 表单编辑时是否禁止
+ editDisabled: true,
+ viewDisabled: false,
+ // 表单编辑时是否可见
+ editDisplay: true,
+ viewDisplay: false,
+ // 表单编辑时是否为查看模式
+ editDetail: false,
+ props: {
+ label: "title",
+ value: "id",
},
- excelBox: false,
- questionBankOption: {
- // 操作栏多余按钮去除
- delBtn: false,
- editBtn: false,
- addBtn: false,
- selection: true,
- menu: true,
- // 导出按钮
- // excelBtn: true,
- viewBtn: false,
-
- // title: '题库',
-
- align: 'center',
- height: 'auto',
- calcHeight: 80,
- tip: false,
- searchShow: true,
- searchMenuSpan: 4,
- index: true,
- indexLabel: '序号',
- //dialogType: 'drawer',
- dialogClickModal: false,
- // 操作栏宽度
- menuWidth: 200,
-
- column: [
- {
- label: "保安姓名",
- prop: "userId",
- type: 'tree',
- dicUrl: '',
- search: true,
- hide:true,
- slot: true,
- // 表单新增时是否禁止
- addDisabled: false,
- // 表单新增时是否可见
- addDisplay: true,
- // 表单新增时是否为查看模式
- addDetail: false,
- // 表单编辑时是否禁止
- editDisabled: true,
- // 表单编辑时是否可见
- editDisplay: true,
- // 表单编辑时是否为查看模式
- editDetail: false,
- props: {
- label: "title",
- value: "id",
- },
- rules: [{
- required: true,
- message: "请选择保安姓名",
- trigger: "blur"
- }]
- },
- {
- label: "保安姓名",
- prop: "name",
- // 表单新增时是否禁止
- addDisabled: false,
- // 表单新增时是否可见
- addDisplay: false,
- // 表单新增时是否为查看模式
- addDetail: false,
- // 表单编辑时是否禁止
- editDisabled: false,
- // 表单编辑时是否可见
- editDisplay: false,
- // 表单编辑时是否为查看模式
- editDetail: false,
- viewDisplay:true,
- props: {
- label: "title",
- value: "id",
- },
- rules: [{
- required: true,
- message: "请选择保安姓名",
- trigger: "blur"
- }]
- },
- {
- label: "考试名称",
- prop: "examName",
- type: 'tree',
- dicUrl: '/api/exampaper/page-tree',
- // search: true,
- slot: true,
- // 表单新增时是否禁止
- addDisabled: false,
- // 表单新增时是否可见
- addDisplay: true,
- // 表单新增时是否为查看模式
- addDetail: false,
- // 表单编辑时是否禁止
- editDisabled: true,
- // 表单编辑时是否可见
- editDisplay: true,
- // 表单编辑时是否为查看模式
- editDetail: false,
- props: {
- label: "examName",
- value: "id",
- },
- rules: [{
- required: true,
- message: "请选择试卷名称",
- trigger: "blur"
- }],
- width: 220
- },
- {
- label: "所属公司",
- prop: "deptName",
- search: true,
- slot: true,
- // 表单新增时是否禁止
- addDisabled: false,
- // 表单新增时是否可见
- addDisplay: false,
- // 表单新增时是否为查看模式
- addDetail: false,
- // 表单编辑时是否禁止
- editDisabled: true,
- // 表单编辑时是否可见
- editDisplay: true,
- // 表单编辑时是否为查看模式
- editDetail: false,
- rules: [{
- required: true,
- message: "请选择所属公司",
- trigger: "blur"
- }],
- width: 220
- },
- {
- label: "准考证号",
- prop: "candidateNo",
- slot: true,
- // 表单新增时是否禁止
- addDisabled: false,
- // 表单新增时是否可见
- addDisplay: false,
- // 表单新增时是否为查看模式
- addDetail: false,
- // 表单编辑时是否禁止
- editDisabled: false,
- // 表单编辑时是否可见
- editDisplay: true,
- // 表单编辑时是否为查看模式
- editDetail: false,
- rules: [{
- required: true,
- message: "请选择准考证号",
- trigger: "blur"
- }],
- width:100
- },
- {
- label: "身份证号",
- prop: "idCardNo",
- slot: true,
- // 表单新增时是否禁止
- addDisabled: false,
- // 表单新增时是否可见
- addDisplay: false,
- // 表单新增时是否为查看模式
- addDetail: false,
- // 表单编辑时是否禁止
- editDisabled: false,
- // 表单编辑时是否可见
- editDisplay: true,
- // 表单编辑时是否为查看模式
- editDetail: false,
- rules: [{
- required: true,
- message: "请选择准考证号",
- trigger: "blur"
- }],
- width: 200
- },
- {
- label: "报考证件",
- prop: "applyCard",
- slot: true,
- // 表单新增时是否禁止
- addDisabled: false,
- // 表单新增时是否可见
- addDisplay: false,
- // 表单新增时是否为查看模式
- addDetail: false,
- // 表单编辑时是否禁止
- editDisabled: false,
- // 表单编辑时是否可见
- editDisplay: true,
- // 表单编辑时是否为查看模式
- editDetail: false,
- rules: [{
- required: true,
- message: "请选择准考证号",
- trigger: "blur"
- }],
- },
- // {
- // label: "试卷分数",
- // prop: "paperScore",
- // slot: true,
- // // 表单新增时是否禁止
- // addDisabled: false,
- // // 表单新增时是否可见
- // addDisplay: false,
- // // 表单新增时是否为查看模式
- // addDetail: false,
- // // 表单编辑时是否禁止
- // editDisabled: true,
- // // 表单编辑时是否可见
- // editDisplay: true,
- // // 表单编辑时是否为查看模式
- // editDetail: false
- // },
- {
- label: "报名时间",
- prop: "applyTime",
- type: "datetime",
- // span: 24,
- format: 'yyyy-MM-dd HH:mm:ss',
- valueFormat: 'yyyy-MM-dd HH:mm:ss',
- // 表单新增时是否禁止
- addDisabled: true,
- // 表单新增时是否可见
- addDisplay: true,
- // 表单新增时是否为查看模式
- addDetail: false,
- // 表单编辑时是否禁止
- editDisabled: true,
- // 表单编辑时是否可见
- editDisplay: true,
- // 表单编辑时是否为查看模式
- editDetail: false,
- value: (new Date().getFullYear() + '-' + (new Date().getMonth() + 1 < 10
- ? "0" + (new Date().getMonth() + 1)
- : new Date().getMonth() + 1) + '-' + (new Date().getDate() < 10
- ? "0" + new Date().getDate()
- : new Date().getDate()) + ' ' + (new Date().getHours() < 10
- ? "0" + new Date().getHours()
- : new Date().getHours()) + ':' + (new Date().getMinutes() < 10
- ? "0" + new Date().getMinutes()
- : new Date().getMinutes()) + ':' + (new Date().getSeconds() < 10
- ? "0" + new Date().getSeconds()
- : new Date().getSeconds())),
-
- width: 160
- },
- {
- label: "考试时间",
- prop: "examTime",
- type: "datetime",
- // span: 24,
- format: 'yyyy-MM-dd HH:mm:ss',
- valueFormat: 'yyyy-MM-dd HH:mm:ss',
- // 表单新增时是否禁止
- addDisabled: false,
- // 表单新增时是否可见
- addDisplay: false,
- // 表单新增时是否为查看模式
- addDetail: false,
- // 表单编辑时是否禁止
- editDisabled: false,
- // 表单编辑时是否可见
- editDisplay: true,
- // 表单编辑时是否为查看模式
- editDetail: false,
- width: 160
- },{
- label: "报名状态",
- prop: "applyStatus",
- slot: true,
- // 表单新增时是否禁止
- addDisabled: false,
- // 表单新增时是否可见
- addDisplay: false,
- // 表单新增时是否为查看模式
- addDetail: false,
- // 表单编辑时是否禁止
- editDisabled: false,
- // 表单编辑时是否可见
- editDisplay: true,
- // 表单编辑时是否为查看模式
- editDetail: false,
- dicData:DIC.applyStatus,
- search:true,
- type:"select"
- },
- ]
- },
- questionBankSearch: {},
- questionBankLoading: true,
- questionBankData: [
-
+ rules: [
+ {
+ required: true,
+ message: "请选择保安姓名",
+ trigger: "blur",
+ },
],
- questionBankPage: {
- pageSize: 10,
- currentPage: 1,
- total: 16
+ width: 80,
+ },
+ {
+ label: "保安姓名",
+ prop: "realName",
+ searchSpan: 4,
+ search: true,
+ // 表单新增时是否禁止
+ addDisabled: false,
+ // 表单新增时是否可见
+ addDisplay: false,
+ // 表单新增时是否为查看模式
+ addDetail: false,
+ // 表单编辑时是否禁止
+ editDisabled: false,
+ // 表单编辑时是否可见
+ editDisplay: false,
+ // 表单编辑时是否为查看模式
+ editDetail: false,
+ viewDisplay: true,
+ props: {
+ label: "title",
+ value: "id",
},
- 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/apply/import-apply",
- },
- {
- label: "模板下载",
- prop: "excelTemplate",
- formslot: true,
- span: 24,
- },
- ],
+ rules: [
+ {
+ required: true,
+ message: "请选择保安姓名",
+ trigger: "blur",
+ },
+ ],
+ },
+ {
+ label: "考试名称",
+ prop: "examName",
+ type: "tree",
+ dicUrl: "/api/exampaper/page-tree",
+ // search: true,
+ slot: true,
+ // 表单新增时是否禁止
+ addDisabled: false,
+ // 表单新增时是否可见
+ addDisplay: true,
+ // 表单新增时是否为查看模式
+ addDetail: false,
+ // 表单编辑时是否禁止
+ editDisabled: true,
+ // 表单编辑时是否可见
+ editDisplay: true,
+ // 表单编辑时是否为查看模式
+ editDetail: false,
+ props: {
+ label: "examName",
+ value: "id",
},
- }
- },
+ rules: [
+ {
+ required: true,
+ message: "请选择试卷名称",
+ trigger: "blur",
+ },
+ ],
+ width: 220,
+ },
+ {
+ label: "所属公司",
+ prop: "deptName",
+ search: true,
+ slot: true,
+ // 表单新增时是否禁止
+ addDisabled: false,
+ // 表单新增时是否可见
+ addDisplay: false,
+ // 表单新增时是否为查看模式
+ addDetail: false,
+ // 表单编辑时是否禁止
+ editDisabled: true,
+ // 表单编辑时是否可见
+ editDisplay: true,
+ // 表单编辑时是否为查看模式
+ editDetail: false,
+ rules: [
+ {
+ required: true,
+ message: "请选择所属公司",
+ trigger: "blur",
+ },
+ ],
+ width: 220,
+ },
+ {
+ label: "准考证号",
+ prop: "candidateNo",
+ slot: true,
+ // 表单新增时是否禁止
+ addDisabled: false,
+ // 表单新增时是否可见
+ addDisplay: false,
+ // 表单新增时是否为查看模式
+ addDetail: false,
+ // 表单编辑时是否禁止
+ editDisabled: false,
+ // 表单编辑时是否可见
+ editDisplay: true,
+ // 表单编辑时是否为查看模式
+ editDetail: false,
+ rules: [
+ {
+ required: true,
+ message: "请选择准考证号",
+ trigger: "blur",
+ },
+ ],
+ width: 100,
+ },
+ {
+ label: "身份证号",
+ prop: "idCardNo",
+ slot: true,
+ // 表单新增时是否禁止
+ addDisabled: false,
+ // 表单新增时是否可见
+ addDisplay: false,
+ // 表单新增时是否为查看模式
+ addDetail: false,
+ // 表单编辑时是否禁止
+ editDisabled: false,
+ // 表单编辑时是否可见
+ editDisplay: true,
+ // 表单编辑时是否为查看模式
+ editDetail: false,
+ rules: [
+ {
+ required: true,
+ message: "请选择准考证号",
+ trigger: "blur",
+ },
+ ],
+ width: 200,
+ },
+ {
+ label: "报考证件",
+ prop: "applyCard",
+ slot: true,
+ // 表单新增时是否禁止
+ addDisabled: false,
+ // 表单新增时是否可见
+ addDisplay: false,
+ // 表单新增时是否为查看模式
+ addDetail: false,
+ // 表单编辑时是否禁止
+ editDisabled: false,
+ // 表单编辑时是否可见
+ editDisplay: true,
+ // 表单编辑时是否为查看模式
+ editDetail: false,
+ rules: [
+ {
+ required: true,
+ message: "请选择准考证号",
+ trigger: "blur",
+ },
+ ],
+ },
+ // {
+ // label: "试卷分数",
+ // prop: "paperScore",
+ // slot: true,
+ // // 表单新增时是否禁止
+ // addDisabled: false,
+ // // 表单新增时是否可见
+ // addDisplay: false,
+ // // 表单新增时是否为查看模式
+ // addDetail: false,
+ // // 表单编辑时是否禁止
+ // editDisabled: true,
+ // // 表单编辑时是否可见
+ // editDisplay: true,
+ // // 表单编辑时是否为查看模式
+ // editDetail: false
+ // },
+ {
+ label: "报名时间",
+ prop: "applyTime",
+ type: "datetime",
+ // span: 24,
+ format: "yyyy-MM-dd HH:mm:ss",
+ valueFormat: "yyyy-MM-dd HH:mm:ss",
+ // 表单新增时是否禁止
+ addDisabled: true,
+ // 表单新增时是否可见
+ addDisplay: true,
+ // 表单新增时是否为查看模式
+ addDetail: false,
+ // 表单编辑时是否禁止
+ editDisabled: true,
+ // 表单编辑时是否可见
+ editDisplay: true,
+ // 表单编辑时是否为查看模式
+ editDetail: false,
+ value:
+ new Date().getFullYear() +
+ "-" +
+ (new Date().getMonth() + 1 < 10
+ ? "0" + (new Date().getMonth() + 1)
+ : new Date().getMonth() + 1) +
+ "-" +
+ (new Date().getDate() < 10
+ ? "0" + new Date().getDate()
+ : new Date().getDate()) +
+ " " +
+ (new Date().getHours() < 10
+ ? "0" + new Date().getHours()
+ : new Date().getHours()) +
+ ":" +
+ (new Date().getMinutes() < 10
+ ? "0" + new Date().getMinutes()
+ : new Date().getMinutes()) +
+ ":" +
+ (new Date().getSeconds() < 10
+ ? "0" + new Date().getSeconds()
+ : new Date().getSeconds()),
- watch: {
- "form.examname": {
- // form是表单或者表格绑定的数据集,v-model='form'
- handler (val) {
- if (val) {
- //地址截取,从县/区开始截取,并且取从县区第一个出现的位置开始
- var address = val.formattedAddress.toString();
- if (address.search("县") != -1) {
- this.form.address = address.substring(
- address.indexOf("县") + 1,
- address.length
- );
- }
- if (address.search("区") != -1) {
- this.form.address = address.substring(
- address.indexOf("区") + 1,
- address.length
- );
- }
- }
+ width: 160,
+ },
+ // {
+ // label: "考试时间",
+ // prop: "examTime",
+ // type: "datetime",
+ // // span: 24,
+ // format: 'yyyy-MM-dd HH:mm:ss',
+ // valueFormat: 'yyyy-MM-dd HH:mm:ss',
+ // // 表单新增时是否禁止
+ // addDisabled: false,
+ // // 表单新增时是否可见
+ // addDisplay: false,
+ // // 表单新增时是否为查看模式
+ // addDetail: false,
+ // // 表单编辑时是否禁止
+ // editDisabled: false,
+ // // 表单编辑时是否可见
+ // editDisplay: true,
+ // // 表单编辑时是否为查看模式
+ // editDetail: false,
+ // width: 160
+ // },{
+ // label: "报名状态",
+ // prop: "applyStatus",
+ // slot: true,
+ // // 表单新增时是否禁止
+ // addDisabled: false,
+ // // 表单新增时是否可见
+ // addDisplay: false,
+ // // 表单新增时是否为查看模式
+ // addDetail: false,
+ // // 表单编辑时是否禁止
+ // editDisabled: false,
+ // // 表单编辑时是否可见
+ // editDisplay: true,
+ // // 表单编辑时是否为查看模式
+ // editDetail: false,
+ // dicData:DIC.applyStatus,
+ // search:true,
+ // type:"select"
+ // },
+ ],
+ },
+ 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",
},
- immediate: true,
- },
- },
- created () {
+ tip: "请上传 .xls,.xlsx 标准格式文件",
+ action: "/api/apply/import-apply",
+ },
+ {
+ label: "模板下载",
+ prop: "excelTemplate",
+ formslot: true,
+ span: 24,
+ },
+ ],
+ },
+ };
+ },
+ created() {
+ console.log(this.userInfo);
- console.log(this.userInfo)
-
- if (this.userInfo.role_name.indexOf('ksxtadmin') != -1) {
-
- this.questionBankOption.column[0].dicUrl = "/api/blade-system/dept/lazy-tree-user?parentId="
- } else {
- this.questionBankOption.column[0].dicUrl = "/api/blade-system/dept/lazy-tree-user?parentId=" + this.userInfo.dept_id
-
- }
-
-
-
-
-
- },
- mounted() {
- var flag = false,
- i = 0,
- ind = null;
- this.$store.state.tags.tagList.forEach((item, index) => {
- if (item.label == "报名清册") {
- if (flag == false) {
- ind = index;
- flag = true;
- }
- i++;
- }
- });
- if (i > 1) {
- this.$store.state.tags.tagList.splice(ind, 1);
- }
- },
- computed: {
- ...mapState({
- userInfo: state => state.user.userInfo
- }),
- ids () {
- let ids = [];
- this.questionBankSelectionList.forEach(ele => {
- ids.push(ele.id);
- });
- return ids.join(",");
- },
- },
- methods: {
- //准考证查看
- handlePrint(row) {
- var obj = row;
- obj["name"] = "准考证信息";
- this.$router.push({
- path: `/applyexam/papers`,
- query: obj,
- });
- },
- questionBankOnLoad (page, params = {}) {
- // debugger;
- params['examId'] = this.$route.query.id;
- this.questionBankLoading = false;
- getApplyList(page.currentPage, page.pageSize, Object.assign(params, this.questionBankQuery)).then(res => {
- const data = res.data.data;
- this.questionBankPage.total = data.total;
- this.questionBankData = data.records;
- this.questionBankLoading = false;
- this.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;
- },
-
- // 新增
- questionBankRowSave (row, done, loading) {
-
- addApply({ userId: row.name, examId: row.examName, applyTime: row.applyTime }).then(() => {
- this.questionBankOnLoad(this.questionBankPage);
- this.$message({
- type: "success",
- message: "操作成功!"
- });
- done();
- }, error => {
- window.console.log(error);
- loading();
- });
- },
-
- questionBankRowDel (row) {
- this.$confirm("确定将选择数据删除?", {
- confirmButtonText: "确定",
- cancelButtonText: "取消",
- type: "warning"
- })
- .then(() => {
- return remove(row.id);
- })
- .then(() => {
- this.questionBankOnLoad(this.questionBankPage);
- this.$message({
- type: "success",
- message: "操作成功!"
- });
- });
- },
-
- questionBankHandleDelete () {
- if (this.questionBankSelectionList.length === 0) {
- this.$message.warning("请选择至少一条数据");
- return;
- }
- this.$confirm("确定将选择数据删除?", {
- confirmButtonText: "确定",
- cancelButtonText: "取消",
- type: "warning"
- })
- .then(() => {
- return remove(this.ids);
- })
- .then(() => {
- this.questionBankOnLoad(this.questionBankPage);
- this.$message({
- type: "success",
- message: "操作成功!"
- });
- this.$refs.questionBankCrud.toggleSelection();
- });
- },
-
- //导出数据
- handleExport() {
- this.$confirm("是否导出清册数据?", "提示", {
- confirmButtonText: "确定",
- cancelButtonText: "取消",
- type: "warning",
- }).then(() => {
- window.open(`/api/apply/export-apply?examId=${this.$route.query.id}`);
- });
- },
- handleImport() {
- this.excelBox = true;
- },
- handleTemplate() {
- window.open(
- `/api/apply/export-template`
- );
- },
- uploadAfter(res, done, loading, column) {
- window.console.log(column);
- this.excelBox = false;
- this.refreshChange();
- done();
- },
- refreshChange() {
- this.questionBankOnLoad(this.page, this.query);
- },
+ if (this.userInfo.role_name.indexOf("ksxtadmin") != -1) {
+ this.questionBankOption.column[0].dicUrl =
+ "/api/blade-system/dept/lazy-tree-user?parentId=";
+ } else {
+ this.questionBankOption.column[0].dicUrl =
+ "/api/blade-system/dept/lazy-tree-user?parentId=" +
+ this.userInfo.dept_id;
}
-}
+ },
+ mounted() {
+ var flag = false,
+ i = 0,
+ ind = null;
+ this.$store.state.tags.tagList.forEach((item, index) => {
+ if (item.label == "报名清册") {
+ if (flag == false) {
+ ind = index;
+ flag = true;
+ }
+ i++;
+ }
+ });
+ if (i > 1) {
+ this.$store.state.tags.tagList.splice(ind, 1);
+ }
+ },
+ computed: {
+ ...mapState({
+ userInfo: (state) => state.user.userInfo,
+ }),
+ ids() {
+ let ids = [];
+ this.questionBankSelectionList.forEach((ele) => {
+ ids.push(ele.id);
+ });
+ return ids.join(",");
+ },
+ },
+ methods: {
+ //准考证查看
+ handlePrint(row) {
+ var obj = row;
+ obj["name"] = "准考证信息";
+ this.$router.push({
+ path: `/applyexam/papers`,
+ query: obj,
+ });
+ },
+ //清册生成
+ handleExport() {
+ var obj ={};
+ obj["name"] = "报名清册信息";
+ obj["examId"] = this.$route.query.id;
+ this.$router.push({
+ path: `/applydetailed/papers`,
+ query: obj,
+ });
+ },
+ questionBankOnLoad(page, params = {}) {
+ // debugger;
+ params["examId"] = this.$route.query.id;
+ this.questionBankLoading = false;
+ getApplyList(
+ page.currentPage,
+ page.pageSize,
+ Object.assign(params, this.questionBankQuery)
+ ).then((res) => {
+ const data = res.data.data;
+ this.questionBankPage.total = data.total;
+ this.questionBankData = data.records;
+ this.questionBankLoading = false;
+ this.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;
+ },
+
+ // 新增
+ questionBankRowSave(row, done, loading) {
+ addApply({
+ userId: row.name,
+ examId: row.examName,
+ applyTime: row.applyTime,
+ }).then(
+ () => {
+ this.questionBankOnLoad(this.questionBankPage);
+ this.$message({
+ type: "success",
+ message: "操作成功!",
+ });
+ done();
+ },
+ (error) => {
+ window.console.log(error);
+ loading();
+ }
+ );
+ },
+
+ questionBankRowDel(row) {
+ this.$confirm("确定将选择数据删除?", {
+ confirmButtonText: "确定",
+ cancelButtonText: "取消",
+ type: "warning",
+ })
+ .then(() => {
+ return remove(row.id);
+ })
+ .then(() => {
+ this.questionBankOnLoad(this.questionBankPage);
+ this.$message({
+ type: "success",
+ message: "操作成功!",
+ });
+ });
+ },
+
+ questionBankHandleDelete() {
+ if (this.questionBankSelectionList.length === 0) {
+ this.$message.warning("请选择至少一条数据");
+ return;
+ }
+ this.$confirm("确定将选择数据删除?", {
+ confirmButtonText: "确定",
+ cancelButtonText: "取消",
+ type: "warning",
+ })
+ .then(() => {
+ return remove(this.ids);
+ })
+ .then(() => {
+ this.questionBankOnLoad(this.questionBankPage);
+ this.$message({
+ type: "success",
+ message: "操作成功!",
+ });
+ this.$refs.questionBankCrud.toggleSelection();
+ });
+ },
+
+
+ handleImport() {
+ this.excelBox = true;
+ },
+ handleTemplate() {
+ window.open(`/api/apply/export-template`);
+ },
+ uploadAfter(res, done, loading, column) {
+ window.console.log(column);
+ this.excelBox = false;
+ this.refreshChange();
+ done();
+ },
+ refreshChange() {
+ this.questionBankOnLoad(this.page, this.query);
+ },
+ },
+};
</script>
<style lang="scss" scoped>
diff --git a/src/views/applydetailed/papers.vue b/src/views/applydetailed/papers.vue
new file mode 100644
index 0000000..af8060a
--- /dev/null
+++ b/src/views/applydetailed/papers.vue
@@ -0,0 +1,40 @@
+<template>
+ <!-- <iframe src="http://124.71.113.22/map/index.html?openid=PatrolManagement" style="width: 100%;height: 100%" frameborder="0"></iframe> -->
+ <iframe :src="url" style="width: 100%; height: 100%" frameborder="0"></iframe>
+</template>
+
+<script>
+//占位路由 巡逻管理
+export default {
+ data() {
+ return {
+ url: "/papersApply.html",
+ };
+ },
+ created(){
+ var d = this.$route.query;
+ this.url += "?data=" + JSON.stringify(d);
+ console.log(d,11);
+ },
+ mounted() {
+ var flag = false,
+ i = 0,
+ ind = null;
+ this.$store.state.tags.tagList.forEach((item, index) => {
+ if (item.label == "准考证信息") {
+ if (flag == false) {
+ ind = index;
+ flag = true;
+ }
+ i++;
+ }
+ });
+ if (i > 1) {
+ this.$store.state.tags.tagList.splice(ind, 1);
+ }
+ },
+};
+</script>
+
+<style>
+</style>
\ No newline at end of file
diff --git a/src/views/applyexam/index.vue b/src/views/applyexam/index.vue
index c7c9488..2472e7d 100644
--- a/src/views/applyexam/index.vue
+++ b/src/views/applyexam/index.vue
@@ -57,13 +57,33 @@
@click="questionBankHandleDelete">删 除
</el-button>
</template> -->
+ <!-- 自定义按钮 -->
+ <template slot="menuLeft">
+ <el-button
+ type="primary"
+ size="small"
+ plain
+ icon="el-icon-folder-checked"
+ @click="handleBatchExam"
+ v-if="examPersission"
+ >生成考试
+ </el-button>
+ <el-button
+ type="primary"
+ size="small"
+ plain
+ icon="el-icon-folder-checked"
+ @click="handleImport"
+ >清册导入
+ </el-button>
+ </template>
<template slot-scope="{ type, row }" slot="menu">
<el-button
:type="type"
size="small"
icon="el-icon-refresh-left"
- :disabled="row.applyStatus == 4"
+ :disabled="row.isApply == 2"
@click="handleCancel(row)"
>取消报名
</el-button>
@@ -101,6 +121,43 @@
@reset-change="emptytChange"
@submit="submit"
></avue-form>
+
+ </el-dialog>
+
+ <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>
+
+
+ <el-dialog
+ title="考试生成"
+ append-to-body
+ :visible.sync="dialogExamFormVisible"
+ width="1000px"
+ @close='closeDialog'
+ >
+ <avue-form
+ ref="formExamApply"
+ v-model="examApply"
+ :option="optionExamApply"
+ @reset-change="emptytChange"
+ @submit="submitExamApply"
+ ></avue-form>
</el-dialog>
</div>
</el-card>
@@ -114,6 +171,7 @@
addApply,
updateApply,
remove,
+ addExam
} from "@/api/examapi/applyexam";
import { mapState } from "vuex";
@@ -134,7 +192,37 @@
data() {
return {
dialogFormVisible: false,
+ dialogExamFormVisible: false,
+ examPersission:false,
+ applyExport:false,
+ excelBox:false,
Audit: {},
+ 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/apply/import-apply",
+ },
+ {
+ label: "模板下载",
+ prop: "excelTemplate",
+ formslot: true,
+ span: 24,
+ },
+ ],
+ },
optionAudit: {
height: "auto",
calcHeight: 30,
@@ -188,16 +276,64 @@
},
],
},
+ optionExamApply: {
+ height: "auto",
+ filterBtn: true,
+ calcHeight: 30,
+ dialogWidth: 950,
+ tip: false,
+ searchShow: true,
+ searchMenuSpan: 6,
+ border: false,
+ index: true,
+ stripe: true,
+ viewBtn: true,
+ selection: true,
+ excelBtn: false,
+ menuWidth: 380,
+ dialogClickModal: false,
+ column: [
+ {
+ label: "考试时间",
+ prop: "examTime",
+ type: "daterange",
+ format: "yyyy-MM-dd HH:mm:ss",
+ valueFormat: "yyyy-MM-dd HH:mm:ss",
+ startPlaceholder: "考试开始时间",
+ endPlaceholder: "考试结束时间",
+ // 表单新增时是否禁止
+ addDisabled: false,
+ // 表单新增时是否可见
+ addDisplay: true,
+ // 表单新增时是否为查看模式
+ addDetail: false,
+ // 表单编辑时是否禁止
+ editDisabled: false,
+ // 表单编辑时是否可见
+ editDisplay: true,
+ // 表单编辑时是否为查看模式
+ editDetail: false,
+ rules: [
+ {
+ required: true,
+ message: "请选择考试时间",
+ trigger: "blur",
+ },
+ ],
+ span: 24,
+ },
+ ],
+ },
questionBankOption: {
// 操作栏多余按钮去除
delBtn: false,
editBtn: false,
- addBtn: true,
+ addBtn: false,
selection: true,
menu: true,
// 导出按钮
// excelBtn: true,
- viewBtn: false,
+ viewBtn: true,
// title: '题库',
@@ -214,7 +350,7 @@
//tree 默认展开
defaultExpandAll: true,
// 操作栏宽度
- menuWidth: 200,
+ menuWidth: 300,
column: [
{
@@ -222,7 +358,6 @@
prop: "userId",
type: "tree",
dicUrl: "",
- search: true,
hide: true,
slot: true,
searchSpan: 4,
@@ -234,8 +369,10 @@
addDetail: false,
// 表单编辑时是否禁止
editDisabled: true,
+ viewDisabled: false,
// 表单编辑时是否可见
editDisplay: true,
+ viewDisplay: false,
// 表单编辑时是否为查看模式
editDetail: false,
props: {
@@ -253,7 +390,9 @@
},
{
label: "保安姓名",
- prop: "name",
+ prop: "realName",
+ searchSpan: 4,
+ search: true,
// 表单新增时是否禁止
addDisabled: false,
// 表单新增时是否可见
@@ -316,7 +455,7 @@
prop: "deptName",
search: true,
slot: true,
- searchSpan: 4,
+ searchSpan: 6,
// 表单新增时是否禁止
addDisabled: false,
// 表单新增时是否可见
@@ -473,48 +612,48 @@
width: 150,
},
- {
- label: "考试时间",
- prop: "examTime",
- type: "datetime",
- // span: 24,
- format: "yyyy-MM-dd HH:mm:ss",
- valueFormat: "yyyy-MM-dd HH:mm:ss",
- // 表单新增时是否禁止
- addDisabled: false,
- // 表单新增时是否可见
- addDisplay: false,
- // 表单新增时是否为查看模式
- addDetail: false,
- // 表单编辑时是否禁止
- editDisabled: false,
- // 表单编辑时是否可见
- editDisplay: true,
- // 表单编辑时是否为查看模式
- editDetail: false,
- width: 150,
- },
- {
- label: "报名状态",
- prop: "applyStatus",
- slot: true,
- searchSpan: 4,
- // 表单新增时是否禁止
- addDisabled: false,
- // 表单新增时是否可见
- addDisplay: false,
- // 表单新增时是否为查看模式
- addDetail: false,
- // 表单编辑时是否禁止
- editDisabled: false,
- // 表单编辑时是否可见
- editDisplay: true,
- // 表单编辑时是否为查看模式
- editDetail: false,
- dicData: DIC.applyStatus,
- search: true,
- type: "select",
- },
+ // {
+ // label: "考试时间",
+ // prop: "examTime",
+ // type: "datetime",
+ // // span: 24,
+ // format: "yyyy-MM-dd HH:mm:ss",
+ // valueFormat: "yyyy-MM-dd HH:mm:ss",
+ // // 表单新增时是否禁止
+ // addDisabled: false,
+ // // 表单新增时是否可见
+ // addDisplay: false,
+ // // 表单新增时是否为查看模式
+ // addDetail: false,
+ // // 表单编辑时是否禁止
+ // editDisabled: false,
+ // // 表单编辑时是否可见
+ // editDisplay: true,
+ // // 表单编辑时是否为查看模式
+ // editDetail: false,
+ // width: 150,
+ // },
+ // {
+ // label: "报名状态",
+ // prop: "applyStatus",
+ // slot: true,
+ // searchSpan: 4,
+ // // 表单新增时是否禁止
+ // addDisabled: false,
+ // // 表单新增时是否可见
+ // addDisplay: false,
+ // // 表单新增时是否为查看模式
+ // addDetail: false,
+ // // 表单编辑时是否禁止
+ // editDisabled: false,
+ // // 表单编辑时是否可见
+ // editDisplay: true,
+ // // 表单编辑时是否为查看模式
+ // editDetail: false,
+ // dicData: DIC.applyStatus,
+ // search: true,
+ // type: "select",
+ // },
// {
// label: "审核状态",
// prop: "examinationType",
@@ -592,12 +731,7 @@
console.log(this.userInfo);
if (this.userInfo.role_name.indexOf("ksxtadmin") != -1) {
- this.questionBankOption.column[0].dicUrl =
- "/api/blade-system/dept/lazy-tree-user?parentId=";
- } else {
- this.questionBankOption.column[0].dicUrl =
- "/api/blade-system/dept/lazy-tree-user?parentId=" +
- this.userInfo.dept_id;
+ this.examPersission = true;
}
},
mounted() {},
@@ -696,6 +830,42 @@
);
},
+ //生成考试弹窗
+ handleBatchExam(){
+ this.dialogExamFormVisible = true;
+ if (this.questionBankSelectionList.length === 0) {
+ this.ids = "";
+ }
+ },
+ //生成考试
+ submitExamApply(row, done, loading){
+ var that = this;
+ var startTime = row.examTime[0];
+ var endTime = row.examTime[1];
+ var examTime = JSON.stringify(row.examTime);
+ console.log(this.ids,111);
+ addExam(this.ids, examTime, startTime, endTime).then(
+ () => {
+ this.questionBankOnLoad(this.questionBankPage);
+ this.$message({
+ type: "success",
+ message: "操作成功!",
+ });
+ that.$refs.formExamApply.resetFields();
+ that.dialogExamFormVisible = false;
+ done();
+ },
+ (error) => {
+ window.console.log(error);
+ loading();
+ }
+ );
+ },
+ //关闭窗口清除数据
+ closeDialog(){
+ this.$refs.formExamApply.resetFields();
+ },
+
questionBankRowDel(row) {
this.$confirm("确定将选择数据删除?", {
confirmButtonText: "确定",
@@ -760,6 +930,26 @@
this.dialogFormVisible = true;
this.Audit = row;
},
+
+ handleImport() {
+ this.excelBox = true;
+ },
+
+ handleTemplate() {
+ window.open(
+ `/api/apply/export-template`
+ );
+ },
+ uploadAfter(res, done, loading, column) {
+ window.console.log(column);
+ this.excelBox = false;
+ this.refreshChange();
+ done();
+ },
+
+ refreshChange() {
+ this.questionBankOnLoad(this.page, this.query);
+ },
},
};
</script>
diff --git a/src/views/applyexam/papers.vue b/src/views/applyexam/papers.vue
index 70fee4a..7c54248 100644
--- a/src/views/applyexam/papers.vue
+++ b/src/views/applyexam/papers.vue
@@ -21,7 +21,7 @@
i = 0,
ind = null;
this.$store.state.tags.tagList.forEach((item, index) => {
- if (item.label == "准考证信息") {
+ if (item.label == "报名清册信息") {
if (flag == false) {
ind = index;
flag = true;
diff --git a/src/views/companyApply/index.vue b/src/views/companyApply/index.vue
new file mode 100644
index 0000000..01b9afb
--- /dev/null
+++ b/src/views/companyApply/index.vue
@@ -0,0 +1,634 @@
+/*
+ * @Author: Morpheus
+ * @Date: 2021-07-05 16:31:54
+ * @Last Modified by: Morpheus
+ * @Last Modified time: 2021-07-19 19:39:45
+ * menu-name 报名考试
+ */
+<template>
+ <el-row class="morpheus-box-apply-exam">
+ <el-col :span="24" class="hasButOne">
+ <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"
+ ref="questionBankCrud"
+ :page.sync="questionBankPage"
+ @on-load="questionBankOnLoad"
+ @selection-change="questionBankSelectionChange"
+ @search-change="questionBankSearchChange"
+ @search-reset="questionBankSearchReset"
+ @current-change="questionBankCurrentChange"
+ @size-change="questionBankSizeChange"
+ @row-save="questionBankRowSave"
+ @row-del="questionBankRowDel"
+ >
+ <!-- 自定义按钮 -->
+ <template slot="menuLeft">
+ <el-button
+ type="primary"
+ size="small"
+ plain
+ icon="el-icon-folder-checked"
+ @click="handleBatchApply"
+ >批量报名
+ </el-button>
+ </template>
+
+ <template slot-scope="{ type, row }" slot="menu">
+ <el-button
+ :type="type"
+ size="small"
+ icon="el-icon-refresh-left"
+ :disabled="row.isApply == 2 || row.isApply == -1"
+ @click="handleCancel(row)"
+ >取消报名
+ </el-button>
+ <el-button
+ :type="type"
+ size="small"
+ icon="el-icon-folder-checked"
+ @click="questionBankRowSave(row)"
+ >报名
+ </el-button>
+ <el-button
+ :type="type"
+ style="display: none"
+ size="small"
+ icon="el-icon-receiving"
+ :disabled="row.isApply == 2"
+ @click="handlePrint(row)"
+ >准考证打印
+ </el-button>
+ </template>
+ </avue-crud>
+
+ <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-dialog
+ title="报名"
+ append-to-body
+ :visible.sync="dialogBatchFormVisible"
+ width="1000px"
+ @close='closeDialog'
+ >
+ <avue-form
+ ref="formBatchApply"
+ v-model="BatchApply"
+ :option="optionBatchApply"
+ @reset-change="emptytChange"
+ @submit="submitBatchApply"
+ ></avue-form>
+ </el-dialog>
+ </div>
+ </el-card>
+ </el-col>
+ </el-row>
+</template>
+
+<script>
+import { addApply, updateApply, remove } from "@/api/examapi/applyexam";
+import { getListApply,addBatchApply } from "@/api/securityGuard/securityGuard";
+import { mapState } from "vuex";
+
+var DIC = {
+ applyStatus: [
+ {
+ label: "已报名",
+ value: 1,
+ },
+ {
+ label: "已取消",
+ value: 2,
+ },
+ ],
+};
+
+export default {
+ data() {
+ return {
+ dialogFormVisible: false,
+ dialogBatchFormVisible: false,
+ Audit: {},
+ BatchApply: {},
+ optionAudit: {
+ height: "auto",
+ calcHeight: 30,
+ dialogWidth: 1000,
+ tip: false,
+ searchShow: true,
+ searchMenuSpan: 6,
+ border: false,
+ index: true,
+ stripe: true,
+ viewBtn: false,
+ addBtn: false,
+ selection: true,
+ excelBtn: false,
+ menuWidth: 230,
+ dialogClickModal: false,
+ column: [
+ {
+ label: "审核状态",
+ search: true,
+ searchSpan: 5,
+ span: 24,
+ prop: "auditStatus",
+ slot: true,
+ editDisplay: false,
+ addDisplay: false,
+ type: "select",
+ rules: [
+ {
+ required: true,
+ message: "请选择审核类型",
+ trigger: "blur",
+ },
+ ],
+ dicData: [
+ {
+ label: "审核通过",
+ value: 2,
+ },
+ {
+ label: "不通过",
+ value: 3,
+ },
+ ],
+ },
+ {
+ label: "审核明细",
+ span: 24,
+ type: "textarea",
+ prop: "auditDetail",
+ },
+ ],
+ },
+ optionBatchApply: {
+ height: "auto",
+ filterBtn: true,
+ calcHeight: 30,
+ dialogWidth: 950,
+ tip: false,
+ searchShow: true,
+ searchMenuSpan: 6,
+ border: false,
+ index: true,
+ stripe: true,
+ viewBtn: true,
+ selection: true,
+ excelBtn: false,
+ menuWidth: 320,
+ dialogClickModal: false,
+ column: [
+ {
+ label: "姓名",
+ prop: "userId",
+ type: "tree",
+ hide: true,
+ // dicUrl: "/api/blade-user/page-security-unit?deptId="+this.deptId,
+ props: {
+ label: "name",
+ value: "id",
+ },
+ //不包含父节点值
+ leafOnly:true,
+ multiple: true,
+ searchSpan: 5,
+ rules: [
+ {
+ required: true,
+ message: "请输入姓名",
+ trigger: "blur",
+ },
+ ],
+ span: 24,
+ },
+ ],
+ },
+ questionBankOption: {
+ // 操作栏多余按钮去除
+ delBtn: false,
+ editBtn: false,
+ addBtn: false,
+ selection: true,
+ menu: true,
+ // 导出按钮
+ // excelBtn: true,
+ viewBtn: false,
+
+ // title: '题库',
+
+ align: "center",
+ height: "auto",
+ calcHeight: 80,
+ tip: false,
+ searchShow: true,
+ searchMenuSpan: 4,
+ index: true,
+ indexLabel: "#",
+ //dialogType: 'drawer',
+ dialogClickModal: false,
+ //tree 默认展开
+ defaultExpandAll: true,
+ // 操作栏宽度
+ menuWidth: 200,
+
+ column: [
+ {
+ label: "姓名",
+ prop: "realName",
+ search: true,
+ searchSpan: 4,
+ searchLabelWidth: 50,
+ display: false,
+ },
+ {
+ label: "性别",
+ prop: "sex",
+ type: "select",
+ dicData: [
+ {
+ label: "男",
+ value: 1,
+ },
+ {
+ label: "女",
+ value: 2,
+ },
+ {
+ label: "未知",
+ value: 3,
+ },
+ {
+ label: " ",
+ value: -1,
+ },
+ ],
+ display: false,
+ },
+
+ {
+ label: "籍贯",
+ prop: "nativeplace",
+ display: false,
+ },
+ {
+ label: "联系电话",
+ prop: "phone",
+ display: false,
+ },
+ {
+ label: "入职时间",
+ prop: "rtime",
+ display: false,
+ },
+ {
+ label: "保安公司名称",
+ searchLabelWidth: "110",
+ // prop: "deptName",
+ prop: "deptId",
+ type: "tree",
+ dicUrl:
+ "/api/blade-system/dept/security_lazy-tree?parentId=1413470343230877697",
+ props: {
+ label: "title",
+ value: "id",
+ },
+ slot: true,
+ searchSpan: 4,
+ display: false,
+ search: false,
+ width: 260,
+ },
+ {
+ label: "是否持证",
+ prop: "hold",
+ slot: true,
+ display: false,
+ dicUrl: "/api/blade-system/dict-biz/dictionary?code=equipage",
+ props: {
+ label: "dictValue",
+ value: "dictKey",
+ },
+ type: "select",
+ rules: [
+ {
+ required: true,
+ message: "请选择",
+ trigger: "blur",
+ },
+ ],
+ },
+ {
+ label: "在职状态",
+ prop: "status",
+ type: "select",
+ dicUrl: "/api/blade-system/dict-biz/dictionary?code=workerState",
+ props: {
+ label: "dictValue",
+ value: "dictKey",
+ },
+ dataType: "number",
+ display: false,
+ searchSpan: 4,
+ search: true,
+ rules: [
+ {
+ required: true,
+ message: "请选择在职状态",
+ trigger: "blur",
+ },
+ ],
+ },
+ {
+ label: "是否报名",
+ prop: "isApply",
+ type: "select",
+ dicData: [
+ {
+ label: "是",
+ value: 1,
+ },
+ {
+ label: "已取消",
+ value: 2,
+ },
+ {
+ label: "",
+ value: -1,
+ },
+ ],
+ dataType: "number",
+ display: false,
+ searchSpan: 4,
+ search: true,
+ rules: [
+ {
+ required: true,
+ message: "请选择在职状态",
+ trigger: "blur",
+ },
+ ],
+ },
+ ],
+ },
+ questionBankSearch: {},
+ questionBankLoading: true,
+ questionBankData: [],
+ questionBankPage: {
+ pageSize: 10,
+ currentPage: 1,
+ total: 16,
+ },
+ questionBankQuery: {},
+ questionBankSelectionList: [],
+ };
+ },
+ created() {
+ console.log(this.userInfo);
+
+ if (this.userInfo.role_name.indexOf("ksxtadmin") != -1) {
+ this.questionBankOption.column[0].dicUrl =
+ "/api/blade-system/dept/lazy-tree-user?parentId=";
+ } else {
+ this.questionBankOption.column[0].dicUrl =
+ "/api/blade-system/dept/lazy-tree-user?parentId=" +
+ this.userInfo.dept_id;
+ }
+
+ this.optionBatchApply.column[0].dicUrl =
+ "/api/blade-user/security-apply-tree?deptId=" +
+ this.userInfo.dept_id;
+ },
+ mounted() {
+
+ },
+ computed: {
+ ...mapState({
+ userInfo: (state) => state.user.userInfo,
+ }),
+ ids() {
+ let ids = [];
+ this.questionBankSelectionList.forEach((ele) => {
+ ids.push(ele.id);
+ });
+ return ids.join(",");
+ },
+ },
+ methods: {
+ //准考证查看
+ handlePrint(row) {
+ var obj = row;
+ obj["name"] = "准考证信息";
+ this.$router.push({
+ path: `/applyexam/papers`,
+ query: obj,
+ });
+ },
+ questionBankOnLoad(page, params = {}) {
+ this.questionBankLoading = false;
+ params["deptId"] = this.userInfo.dept_id;
+ getListApply(
+ page.currentPage,
+ page.pageSize,
+ Object.assign(params, this.questionBankQuery)
+ ).then((res) => {
+ const data = res.data.data;
+ this.questionBankPage.total = data.total;
+ this.questionBankData = data.records;
+ this.questionBankLoading = false;
+ this.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;
+ },
+
+ // 新增
+ questionBankRowSave(row, done, loading) {
+ // debugger;
+ addApply({
+ userId: row.id,
+ }).then(
+ (res) => {
+ this.questionBankOnLoad(this.questionBankPage);
+ if (res.data.data == 201) {
+ this.$message({
+ type: "warning",
+ message: "已报名,不能重复报名",
+ });
+ } else if (res.data.data == 201) {
+ this.$message({
+ type: "warning",
+ message: "报名失败",
+ });
+ } else {
+ this.$message({
+ type: "success",
+ message: "报名成功",
+ });
+ }
+ done();
+ },
+ (error) => {
+ window.console.log(error);
+ loading();
+ }
+ );
+ },
+
+ questionBankRowDel(row) {
+ this.$confirm("确定将选择数据删除?", {
+ confirmButtonText: "确定",
+ cancelButtonText: "取消",
+ type: "warning",
+ })
+ .then(() => {
+ return remove(row.id);
+ })
+ .then(() => {
+ this.questionBankOnLoad(this.questionBankPage);
+ this.$message({
+ type: "success",
+ message: "操作成功!",
+ });
+ });
+ },
+
+ //取消报名
+ handleCancel(row) {
+ this.$confirm("确定取消报名?", {
+ confirmButtonText: "确定",
+ cancelButtonText: "取消",
+ type: "warning",
+ })
+ .then(() => {
+ var apply = {
+ applyStatus: 4,
+ id: row.applyId,
+ };
+ return updateApply(apply);
+ })
+ .then(() => {
+ this.questionBankOnLoad(this.questionBankPage);
+ this.$message({
+ type: "success",
+ message: "操作成功!",
+ });
+ });
+ },
+
+ //批量报名
+ handleBatchApply() {
+ this.dialogBatchFormVisible = true;
+ },
+
+ //批量报名提交
+ submitBatchApply(){
+ addBatchApply({
+ userIds: this.BatchApply.userId.join(","),
+ }).then(
+ (res) => {
+ this.questionBankOnLoad(this.questionBankPage);
+ if (res.data.data == 201) {
+ this.$message({
+ type: "warning",
+ message: "已报名,不能重复报名",
+ });
+ } else if (res.data.data == 201) {
+ this.$message({
+ type: "warning",
+ message: "报名失败",
+ });
+ } else {
+ this.$message({
+ type: "success",
+ message: "报名成功",
+ });
+ this.$refs.formBatchApply.resetFields();
+ this.dialogBatchFormVisible = false;
+ }
+ },
+ (error) => {
+ window.console.log(error);
+ }
+ );
+ },
+
+ //关闭窗口清除数据
+ closeDialog(){
+ this.$refs.formBatchApply.resetFields();
+ },
+
+ questionBankHandleDelete() {
+ if (this.questionBankSelectionList.length === 0) {
+ this.$message.warning("请选择至少一条数据");
+ return;
+ }
+ this.$confirm("确定将选择数据删除?", {
+ confirmButtonText: "确定",
+ cancelButtonText: "取消",
+ type: "warning",
+ })
+ .then(() => {
+ return remove(this.ids);
+ })
+ .then(() => {
+ this.questionBankOnLoad(this.questionBankPage);
+ this.$message({
+ type: "success",
+ message: "操作成功!",
+ });
+ this.$refs.questionBankCrud.toggleSelection();
+ });
+ },
+ handleAudit(row) {
+ this.dialogFormVisible = true;
+ this.Audit = row;
+ },
+ },
+};
+</script>
+
+<style lang="scss" scoped>
+</style>
diff --git a/src/views/exam/papers.vue b/src/views/exam/papers.vue
new file mode 100644
index 0000000..5bdc6c1
--- /dev/null
+++ b/src/views/exam/papers.vue
@@ -0,0 +1,39 @@
+<template>
+ <!-- <iframe src="http://124.71.113.22/map/index.html?openid=PatrolManagement" style="width: 100%;height: 100%" frameborder="0"></iframe> -->
+ <iframe :src="url" style="width: 100%; height: 100%" frameborder="0"></iframe>
+</template>
+
+<script>
+export default {
+ data() {
+ return {
+ url: "/securityPrint.html",
+ };
+ },
+ created(){
+ var d = this.$route.query;
+ this.url += "?data=" + JSON.stringify(d);
+ console.log(d,11);
+ },
+ mounted() {
+ var flag = false,
+ i = 0,
+ ind = null;
+ this.$store.state.tags.tagList.forEach((item, index) => {
+ if (item.label == "保安证") {
+ if (flag == false) {
+ ind = index;
+ flag = true;
+ }
+ i++;
+ }
+ });
+ if (i > 1) {
+ this.$store.state.tags.tagList.splice(ind, 1);
+ }
+ },
+};
+</script>
+
+<style>
+</style>
\ No newline at end of file
diff --git a/src/views/exam/performance.vue b/src/views/exam/performance.vue
index fb366a7..603838e 100644
--- a/src/views/exam/performance.vue
+++ b/src/views/exam/performance.vue
@@ -275,30 +275,30 @@
{ validator: validatePass, required: true, trigger: "blur" },
],
},
- // {
- // label: "总成绩",
- // prop: "allGrade",
- // slot: true,
- // hide:true,
- // // 表单新增时是否禁止
- // addDisabled: false,
- // viewDisplay:false,
- // // 表单新增时是否可见
- // addDisplay: false,
- // // 表单新增时是否为查看模式
- // addDetail: false,
- // // 表单编辑时是否禁止
- // editDisabled: false,
- // // 表单编辑时是否可见
- // editDisplay: false,
- // // 表单编辑时是否为查看模式
- // editDetail: false,
- // rules: [{
- // required: true,
- // message: "请输入考试名称",
- // trigger: "blur"
- // }]
- // },
+ {
+ label: "总成绩",
+ prop: "allGrade",
+ slot: true,
+ hide:true,
+ // 表单新增时是否禁止
+ addDisabled: false,
+ viewDisplay:false,
+ // 表单新增时是否可见
+ addDisplay: false,
+ // 表单新增时是否为查看模式
+ addDetail: false,
+ // 表单编辑时是否禁止
+ editDisabled: false,
+ // 表单编辑时是否可见
+ editDisplay: false,
+ // 表单编辑时是否为查看模式
+ editDetail: false,
+ rules: [{
+ required: true,
+ message: "请输入考试名称",
+ trigger: "blur"
+ }]
+ },
{
label: "是否合格",
prop: "qualified",
diff --git a/src/views/exam/singleperformance.vue b/src/views/exam/singleperformance.vue
index 68a707a..805626d 100644
--- a/src/views/exam/singleperformance.vue
+++ b/src/views/exam/singleperformance.vue
@@ -3,7 +3,7 @@
* @Date: 2021-07-05 16:31:54
* @Last Modified by: Morpheus
* @Last Modified time: 2021-07-18 21:02:10
- * menu-name 成绩管理
+ * menu-name 成绩查看
*/
<template>
<el-row class="morpheus-box-score">
@@ -29,6 +29,18 @@
>
<template slot-scope="{ row }" slot="learnGrade">
{{ row.learnGrade == -1 ? "暂未录入" : row.learnGrade }}
+ </template>
+
+ <template slot-scope="{ row }" slot="menu">
+ <el-button
+ type="text"
+ size="mini"
+ icon="el-icon-collection"
+ class="start-kaoshi"
+ :disabled="row.qualified==1"
+ @click="securityPrint(row)"
+ >保安证打印
+ </el-button>
</template>
<!-- 自定义按钮 -->
@@ -87,13 +99,13 @@
questionBankOption: {
// 操作栏多余按钮去除
delBtn: false,
- editBtn: true,
+ editBtn: false,
addBtn: false,
selection: false,
// 导出按钮
excelBtn: true,
excelBtnText: "成绩导出",
- viewBtn: true,
+ viewBtn: false,
// title: '成绩',
align: "center",
@@ -107,17 +119,17 @@
//dialogType: 'drawer',
dialogClickModal: false,
// 操作栏宽度
- menu: false,
+ menu: true,
menuWidth: 136,
labelWidth: 120,
-
column: [
{
- label: "试卷名称",
+ label: "考试名称",
prop: "examName",
search: true,
searchSpan: 4,
slot: true,
+ viewDisplay:false,
// 表单新增时是否禁止
addDisabled: false,
// 表单新增时是否可见
@@ -125,9 +137,9 @@
// 表单新增时是否为查看模式
addDetail: false,
// 表单编辑时是否禁止
- editDisabled: true,
+ editDisabled: false,
// 表单编辑时是否可见
- editDisplay: true,
+ editDisplay: false,
// 表单编辑时是否为查看模式
editDetail: false,
rules: [
@@ -254,28 +266,28 @@
{ validator: validatePass, required: true, trigger: "blur" },
],
},
- // {
- // label: "总成绩",
- // prop: "allGrade",
- // slot: true,
- // // 表单新增时是否禁止
- // addDisabled: false,
- // // 表单新增时是否可见
- // addDisplay: true,
- // // 表单新增时是否为查看模式
- // addDetail: false,
- // // 表单编辑时是否禁止
- // editDisabled: true,
- // // 表单编辑时是否可见
- // editDisplay: true,
- // // 表单编辑时是否为查看模式
- // editDetail: false,
- // rules: [{
- // required: true,
- // message: "请输入考试名称",
- // trigger: "blur"
- // }]
- // },
+ {
+ label: "总成绩",
+ prop: "allGrade",
+ slot: true,
+ // 表单新增时是否禁止
+ addDisabled: false,
+ // 表单新增时是否可见
+ addDisplay: true,
+ // 表单新增时是否为查看模式
+ addDetail: false,
+ // 表单编辑时是否禁止
+ editDisabled: true,
+ // 表单编辑时是否可见
+ editDisplay: true,
+ // 表单编辑时是否为查看模式
+ editDetail: false,
+ rules: [{
+ required: true,
+ message: "请输入考试名称",
+ trigger: "blur"
+ }]
+ },
{
label: "是否合格",
prop: "qualified",
@@ -334,6 +346,15 @@
created() {},
mounted() {},
methods: {
+ //保安证证查看
+ securityPrint(row) {
+ var obj = row;
+ obj["name"] = "保安证";
+ this.$router.push({
+ path: `/exam/papers`,
+ query: obj,
+ });
+ },
questionBankOnLoad(page, params = {}) {
this.questionBankLoading = false;
getList(
diff --git a/src/views/securityApply/index.vue b/src/views/securityApply/index.vue
new file mode 100644
index 0000000..cf80cae
--- /dev/null
+++ b/src/views/securityApply/index.vue
@@ -0,0 +1,121 @@
+<template>
+ <div>
+ <div class="security-apply">
+ <div class = "security-title">
+ <span>2021 保安证考试报名</span>
+ </div>
+ <div>
+ <button class="security-btn" @click="applySubmit">报 名</button>
+ <button class="security-btn" @click="cancelApply">取 消 报 名</button>
+ </div>
+ <!-- <div class = "apply-status">
+ <span>{{status}}</span>
+ </div> -->
+ </div>
+ </div>
+</template>
+
+<script>
+import { mapState } from 'vuex';
+import {
+ addApply,
+ cancelApply
+} from "@/api/examapi/applyexam";
+
+export default {
+ data() {
+ return {
+ status:"未报名"
+ };
+ },
+ computed: {
+ ...mapState({
+ userInfo: state => state.user.userInfo
+ }),
+ },
+ mounted() {},
+ methods:{
+ applySubmit(){
+ addApply({
+ userId: this.userInfo.user_id
+ }).then(
+ (res) => {
+ if (res.data.data == 201) {
+ this.$message({
+ type: "warning",
+ message: "已报名,不能重复报名",
+ });
+ } else if (res.data.data == 202) {
+ this.$message({
+ type: "warning",
+ message: "报名失败",
+ });
+ } else {
+ this.$message({
+ type: "success",
+ message: "报名成功",
+ });
+ }
+ },
+ (error) => {
+ window.console.log(error);
+ }
+ );
+ },
+ cancelApply(){
+ cancelApply({
+ userId: this.userInfo.user_id
+ }).then(
+ (res) => {
+ if (res.data.data == 201) {
+ this.$message({
+ type: "warning",
+ message: "尚未报名",
+ });
+ } else {
+ this.$message({
+ type: "success",
+ message: "取消报名成功",
+ });
+ }
+ },
+ (error) => {
+ window.console.log(error);
+ }
+ );
+ }
+ }
+};
+</script>
+
+<style lang="scss">
+ .security-apply{
+ width: 100%;
+ height: 100%;
+ margin-top: 250px;
+
+ .security-title{
+ width: 30%;
+ font-size: 28px;
+ margin-left: 35%;
+ text-align: center;
+ color: cadetblue;
+ }
+
+ .security-btn{
+ width: 10%;
+ margin-left: 45%;
+ text-align: center;
+ margin-top: 20px;
+ }
+
+ .apply-status{
+ width: 10%;
+ margin-left: 45%;
+ text-align: center;
+ margin-top: 20px;
+ }
+ }
+
+
+</style>
diff --git a/src/views/talk/talk.vue b/src/views/talk/talk.vue
new file mode 100644
index 0000000..5a14376
--- /dev/null
+++ b/src/views/talk/talk.vue
@@ -0,0 +1,266 @@
+<template>
+ <basic-container>
+ <avue-crud :option="option"
+ :table-loading="loading"
+ :data="data"
+ :page.sync="page"
+ :permission="permissionList"
+ :before-open="beforeOpen"
+ v-model="form"
+ ref="crud"
+ @row-update="rowUpdate"
+ @row-save="rowSave"
+ @row-del="rowDel"
+ @search-change="searchChange"
+ @search-reset="searchReset"
+ @selection-change="selectionChange"
+ @current-change="currentChange"
+ @size-change="sizeChange"
+ @refresh-change="refreshChange"
+ @on-load="onLoad">
+ <template slot="menuLeft">
+ <el-button type="danger"
+ size="small"
+ icon="el-icon-delete"
+ plain
+ v-if="permission.talk_delete"
+ @click="handleDelete">删 除
+ </el-button>
+ </template>
+ </avue-crud>
+ </basic-container>
+</template>
+
+<script>
+ import {getList, getDetail, add, update, remove} from "@/api/talk/talk";
+ import {mapGetters} from "vuex";
+
+ export default {
+ data() {
+ return {
+ form: {},
+ query: {},
+ loading: true,
+ page: {
+ pageSize: 10,
+ currentPage: 1,
+ total: 0
+ },
+ selectionList: [],
+ option: {
+ height:'auto',
+ calcHeight: 30,
+ tip: false,
+ searchShow: true,
+ searchMenuSpan: 6,
+ border: true,
+ index: true,
+ viewBtn: true,
+ selection: true,
+ dialogClickModal: false,
+ column: [
+ {
+ label: "标题",
+ prop: "title",
+ search: true,
+ rules: [{
+ required: true,
+ message: "请输入标题",
+ trigger: "blur"
+ }]
+ },
+ {
+ label: "谈话对象",
+ search: true,
+ prop: "realName",
+ type: "tree",
+ props: {
+ label: "realName",
+ value: "id",
+ },
+ dicUrl: `/api/blade-user/selectInr?deptid=`+this.$store.getters.userInfo.dept_id,
+ rules: [{
+ required: true,
+ message: "请输入谈话对象",
+ trigger: "blur"
+ }]
+ },
+ {
+ label: "谈话内容",
+ prop: "talkcontent",
+ rules: [{
+ required: true,
+ message: "请输入谈话内容",
+ trigger: "blur"
+ }]
+ },
+ {
+ label: "谈话时间",
+ prop: "talktime",
+ type: "date",
+ format: "yyyy-MM-dd hh:mm:ss",
+ valueFormat: "yyyy-MM-dd hh:mm:ss",
+ rules: [{
+ required: true,
+ message: "请输入谈话时间",
+ trigger: "blur"
+ }]
+ },
+ {
+ label: "结论",
+ prop: "conclusion",
+ rules: [{
+ required: true,
+ message: "请输入结论",
+ trigger: "blur"
+ }]
+ },
+ {
+ label: "评价",
+ prop: "evaluate",
+ rules: [{
+ required: true,
+ message: "请输入评价",
+ trigger: "blur"
+ }]
+ },
+ ]
+ },
+ data: []
+ };
+ },
+ computed: {
+ ...mapGetters(["permission", "userInfo"]),
+ permissionList() {
+ return {
+ addBtn: this.vaildData(this.permission.talk_add, false),
+ viewBtn: this.vaildData(this.permission.talk_view, false),
+ delBtn: this.vaildData(this.permission.talk_delete, false),
+ editBtn: this.vaildData(this.permission.talk_edit, false)
+ };
+ },
+ ids() {
+ let ids = [];
+ this.selectionList.forEach(ele => {
+ ids.push(ele.id);
+ });
+ return ids.join(",");
+ }
+ },
+ methods: {
+ rowSave(row, done, loading) {
+ add(row).then(() => {
+ row.deptid=this.$store.getters.userInfo.dept_id
+ this.onLoad(this.page);
+ this.$message({
+ type: "success",
+ message: "操作成功!"
+ });
+ done();
+ }, error => {
+ loading();
+ window.console.log(error);
+ });
+ },
+ rowUpdate(row, index, done, loading) {
+ update(row).then(() => {
+ this.onLoad(this.page);
+ this.$message({
+ type: "success",
+ message: "操作成功!"
+ });
+ done();
+ }, error => {
+ loading();
+ console.log(error);
+ });
+ },
+ rowDel(row) {
+ this.$confirm("确定将选择数据删除?", {
+ confirmButtonText: "确定",
+ cancelButtonText: "取消",
+ type: "warning"
+ })
+ .then(() => {
+ return remove(row.id);
+ })
+ .then(() => {
+ this.onLoad(this.page);
+ this.$message({
+ type: "success",
+ message: "操作成功!"
+ });
+ });
+ },
+ handleDelete() {
+ if (this.selectionList.length === 0) {
+ this.$message.warning("请选择至少一条数据");
+ return;
+ }
+ this.$confirm("确定将选择数据删除?", {
+ confirmButtonText: "确定",
+ cancelButtonText: "取消",
+ type: "warning"
+ })
+ .then(() => {
+ return remove(this.ids);
+ })
+ .then(() => {
+ this.onLoad(this.page);
+ this.$message({
+ type: "success",
+ message: "操作成功!"
+ });
+ this.$refs.crud.toggleSelection();
+ });
+ },
+ beforeOpen(done, type) {
+ if (["edit", "view"].includes(type)) {
+ getDetail(this.form.id).then(res => {
+ this.form = res.data.data;
+ });
+ }
+ done();
+ },
+ searchReset() {
+ this.query = {};
+ this.onLoad(this.page);
+ },
+ searchChange(params, done) {
+ this.query = params;
+ this.page.currentPage = 1;
+ this.onLoad(this.page, params);
+ done();
+ },
+ selectionChange(list) {
+ this.selectionList = list;
+ },
+ selectionClear() {
+ this.selectionList = [];
+ this.$refs.crud.toggleSelection();
+ },
+ currentChange(currentPage){
+ this.page.currentPage = currentPage;
+ },
+ sizeChange(pageSize){
+ this.page.pageSize = pageSize;
+ },
+ refreshChange() {
+ this.onLoad(this.page, this.query);
+ },
+ onLoad(page, params = {}) {
+ this.loading = true;
+ getList(page.currentPage, page.pageSize, Object.assign(params, this.query)).then(res => {
+ const data = res.data.data;
+ this.page.total = data.total;
+ this.data = data.records;
+ this.loading = false;
+ this.selectionClear();
+ });
+ }
+ }
+ };
+</script>
+
+<style>
+</style>
--
Gitblit v1.9.3