From 195c2e87ab1d456b1cbfd28057836c42152ce7de Mon Sep 17 00:00:00 2001
From: shuishen <1109946754@qq.com>
Date: Thu, 12 Aug 2021 11:08:24 +0800
Subject: [PATCH] Merge branch 'master' of http://s16s652780.51mypc.cn:49896/r/zhba_enterprises
---
src/views/securityEquipment/equipments.js | 8
src/views/applyexam/index.vue | 305 ++
public/securityPrint.html | 271 ++
vue.config.js | 8
src/router/views/index.js | 1686 ++++++++--------
src/views/securityGuard/securityGuard.vue | 81
src/api/trainingRegistration/trainingRegistration.js | 11
src/views/securityApply/index.vue | 144 +
src/views/securityEquipment/gun.vue | 8
src/views/people/expression.vue | 39
public/papersApply.html | 156 +
src/api/talk/talk.js | 50
src/views/applydetailed/index.vue | 1263 ++++++------
src/views/dispatch/dispatchChildoperable.vue | 28
src/views/resource/uploadNotice.vue | 8
src/views/securityUnitChild/index.vue | 246 +
src/views/talk/talk.vue | 266 ++
src/views/securityUnitChild/data.js | 4
src/views/people/job.vue | 8
src/views/exam/performance.vue | 48
src/views/securityEquipment/car.vue | 77
src/views/securityGuard/securityGuardDetail.vue | 22
src/api/system/user.js | 4
src/views/securityUnit/index.vue | 71
public/img/security.png | 0
src/views/traincompany/index.vue | 63
src/views/securityEquipment/gun.js | 6
src/views/exam/papers.vue | 39
src/views/securityUnit/data.js | 12
src/views/applyexam/papers.vue | 2
src/views/desk/notice.vue | 1
src/views/companyApply/index.vue | 634 ++++++
src/views/securityEquipment/equipments.vue | 77
src/views/securityEquipment/car.js | 18
src/views/dispatch/dispatchChildoperableSee.vue | 31
src/api/examapi/applyexam.js | 35
public/img/bazbj.png | 0
src/api/securityGuard/securityGuard.js | 21
src/api/performance/performance.js | 27
src/views/applydetailed/papers.vue | 40
src/views/exam/singleperformance.vue | 81
41 files changed, 4,154 insertions(+), 1,745 deletions(-)
diff --git a/public/img/bazbj.png b/public/img/bazbj.png
new file mode 100644
index 0000000..7ffef78
--- /dev/null
+++ b/public/img/bazbj.png
Binary files differ
diff --git a/public/img/security.png b/public/img/security.png
new file mode 100644
index 0000000..7a77f79
--- /dev/null
+++ b/public/img/security.png
Binary files differ
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..f03c34a
--- /dev/null
+++ b/public/securityPrint.html
@@ -0,0 +1,271 @@
+<!DOCTYPE html>
+<html lang="en">
+
+<head>
+ <meta charset="UTF-8">
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
+ <style>
+ .fo {
+ width: 100%;
+ height: 800px;
+ position: absolute;
+ /* display: flex; */
+ align-items: center;
+ justify-content: center;
+ background-color: #666666;
+ }
+
+ .print {
+ position: absolute;
+ left: 20px;
+ top: 10px;
+ }
+
+ #table {
+ margin-left: 35%;
+ color: #000;
+ position: fixed;
+ align-items: center;
+ justify-content: center;
+ flex-direction: column;
+ width: 400px;
+ height: 250px;
+ border-radius: 7px;
+ margin-top: -250px;
+ background: url(./img/bazbj.png) no-repeat;
+ background-size: 100% 100%;
+ }
+
+ #table1 {
+ margin-left: 35%;
+ color: #000;
+ width: 400px;
+ height: 250px;
+ background-color: #fff;
+ border-radius: 7px;
+ margin-top: 200px;
+ }
+
+ .user-info-table {
+ margin-top: 30px;
+ width: 90%;
+ height: 90%;
+ border: 1px solid #000;
+ background-color: #fff;
+ }
+
+ .table-top {
+ width: 100%;
+ height: 20%;
+ margin-top: 20px;
+ text-align: center;
+ font-size: 32px;
+ letter-spacing: 10px;
+ }
+
+ .table-center {
+ font-size: 14px;
+ width: 100%;
+ height: 60%;
+ }
+
+ .table-center-right {
+ width: 70px;
+ height: 70px;
+ line-height: 70px;
+ margin-left: 290px;
+ margin-top: -100px;
+ border-radius: 100px;
+ /* border: 1px solid; */
+ text-align: center;
+ }
+
+ .table-center-right img {
+ width: 70px;
+ display: inline-block;
+ vertical-align: middle;
+ }
+
+ .security-info {
+ margin-left: 20px;
+ margin-top: 18px;
+ }
+
+ .table-down {
+ font-size: 14px;
+ width: 100%;
+ margin-top: -40px;
+ }
+
+ .paper-unit {
+ margin-left: 20px;
+ float: left;
+ }
+
+ .paper-date {
+ margin-left: 215px;
+ }
+
+ .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 class="fo">
+ <div>
+ <button onclick="preview(1)" class="print">打印</button>
+ </div>
+
+ <!--startprint-->
+ <div id="print">
+ <!-- <div id="table1"></div>
+ <div id="table">
+ <div class="table-top">
+ <span>保安员证</span>
+ </div>
+ <div class="table-center">
+ <div class="table-center-left">
+ <div class="security-info">
+ <span>姓名:</span>
+ <span>张易得</span>
+ </div>
+ <div class="security-info">
+ <span>性别:</span>
+ <span>男</span>
+ </div>
+ <div class="security-info">
+ <span>编号:</span>
+ <span>赣洪202100001</span>
+ </div>
+ </div>
+ <div class="table-center-right">
+ <img src="./img/security.png">
+ </div>
+ </div>
+ <div class="table-down">
+ <div class="paper-unit">
+ <span>发证机关:</span>
+ <span>南昌市公安局</span>
+ </div>
+ <div class="paper-date">
+ <span>发证日期:</span>
+ <span>2021年8月1日</span>
+ </div>
+ </div>
+ </div>
+ </div> -->
+ <!--endprint-->
+ </div>
+
+
+ </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")).userId;
+ var name = JSON.parse(getData("data")).name;
+ console.log(getData("data"), 123);
+ var securityName = JSON.parse(getData("data")).securityName;
+ // console.log(JSON.parse(getData("data")), 111);
+
+ axios.get('http://localhost:81/apply/userDetail?id=' + id).then(function(res) {
+ var data = res.data.data;
+ var str = `<div id="table1"></div>
+ <div id="table">
+ <div class="table-top">
+ <span>保安员证</span>
+ </div>
+ <div class="table-center">
+ <div class="table-center-left">
+ <div class="security-info">
+ <span>姓名:</span>
+ <span> ${data.realName}</span>
+ </div>
+ <div class="security-info">
+ <span>性别:</span>
+ <span> ${data.sex==1?"男":(data.sex==2?"女":"")}</span>
+ </div>
+ <div class="security-info">
+ <span>编号:</span>
+ <span> ${data.securitynumber}</span>
+ </div>
+ </div>
+ <div class="table-center-right">
+ <img src="${data.myPicture}">
+ </div>
+ </div>
+ <div class="table-down">
+ <div class="paper-unit">
+ <span>发证机关:</span>
+ <span> 南昌市公安局</span>
+ </div>
+ <div class="paper-date">
+ <span>发证日期:</span>
+ <span> </span>
+ </div>
+ </div>
+ </div>
+ </div>`
+
+ var dom = $('#print');
+ 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>
+
+</html>
\ No newline at end of file
diff --git a/src/api/examapi/applyexam.js b/src/api/examapi/applyexam.js
index c2f48aa..20143fb 100644
--- a/src/api/examapi/applyexam.js
+++ b/src/api/examapi/applyexam.js
@@ -15,7 +15,16 @@
export const addApply = (row) => {
return request({
- url: '/api/apply/submit',
+ url: '/api/apply/save',
+ method: 'post',
+ data: row
+ })
+}
+
+
+export const cancelApply = (row) => {
+ return request({
+ url: '/api/apply/cancelApply',
method: 'post',
data: row
})
@@ -41,6 +50,19 @@
})
}
+export const addExam = (ids, examTime, startTime, endTime) => {
+ return request({
+ url: '/api/apply/batchExam',
+ method: 'post',
+ params: {
+ ids,
+ examTime,
+ startTime,
+ endTime
+ }
+ })
+}
+
@@ -52,4 +74,15 @@
id,
}
})
+}
+
+export const getSecurityApplyInfo = (id, userId) => {
+ return request({
+ url: '/api/apply/getSecurityApplyDetail',
+ method: 'get',
+ params: {
+ id,
+ userId
+ }
+ })
}
\ No newline at end of file
diff --git a/src/api/performance/performance.js b/src/api/performance/performance.js
index accb99b..1082fb3 100644
--- a/src/api/performance/performance.js
+++ b/src/api/performance/performance.js
@@ -11,16 +11,25 @@
}
})
}
+// export const getPerformanceInfo = (securityid) => {
+// return request({
+// url: '/api/performance/page',
+// method: 'get',
+// params: {
+// securityid
+// }
+// })
+// }
-export const getPerformanceInfo = (id) => {
- return request({
- url: '/api/performance/detail',
- method: 'get',
- params: {
- id
- }
- })
-}
+// export const getPerformanceInfo = (securityid) => {
+// return request({
+// url: '/api/performance/detail',
+// method: 'get',
+// params: {
+// securityid
+// }
+// })
+// }
export const add = (row) => {
return request({
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/system/user.js b/src/api/system/user.js
index 7cb2d0f..147dd73 100644
--- a/src/api/system/user.js
+++ b/src/api/system/user.js
@@ -80,12 +80,12 @@
})
}
-export const getUserPractitionersInfo = (cardid) => {
+export const getUserPractitionersInfo = (securityid) => {
return request({
url: '/api/experience/selectExperienceInfo',
method: 'get',
params: {
- cardid,
+ securityid,
}
})
}
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/api/trainingRegistration/trainingRegistration.js b/src/api/trainingRegistration/trainingRegistration.js
index 3bded6f..fa1b1fb 100644
--- a/src/api/trainingRegistration/trainingRegistration.js
+++ b/src/api/trainingRegistration/trainingRegistration.js
@@ -14,7 +14,16 @@
export const adddata = (row) => {
return request({
- url: '/api/trainingRegistration/submit',
+ url: '/api/trainingRegistration/save',
+ method: 'post',
+ data: row
+ })
+}
+
+
+export const cancelTrain = (row) => {
+ return request({
+ url: '/api/trainingRegistration/cancelTrain',
method: 'post',
data: row
})
diff --git a/src/router/views/index.js b/src/router/views/index.js
index 6be1856..dae37b2 100644
--- a/src/router/views/index.js
+++ b/src/router/views/index.js
@@ -1,829 +1,873 @@
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'
- },
+ 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: '/talk/talk',
+ children: [{
+ path: 'index',
+ name: '心里咨询',
+ meta: {
+ i18n: 'dict'
+ },
+ component: () =>
+ import ( /* webpackChunkName: "views" */ '@/views/talk/talk')
+ }]
+ },
+ {
+ path: '/workreport',
+ component: Layout,
+ redirect: '/workreport/workreport',
+ children: [{
+ path: 'workreport',
+ name: '发起的汇报',
+ meta: {
+ i18n: 'dict'
+ },
+ component: () =>
+ import ( /* webpackChunkName: "views" */ '@/views/workreport/workreport')
+ }]
+ },
+ {
+ path: '/workreport',
+ component: Layout,
+ redirect: '/workreport/workreply',
+ children: [{
+ path: 'workreply',
+ name: '接收的汇报',
+ meta: {
+ i18n: 'dict'
+ },
+ component: () =>
+ import ( /* webpackChunkName: "views" */ '@/views/workreport/workreply')
+ }]
+ }, {
+ path: '/resource',
+ component: Layout,
+ redirect: '/resource/attachCopy',
+ children: [{
+ path: 'attachCopy',
+ name: '保安单位附件上传',
+ meta: {
+ i18n: 'dict'
+ },
+ component: () =>
+ import ( /* webpackChunkName: "views" */ '@/views/resource/attachCopy')
+ }]
+ },
+ // {
+ // path: '/dispatch',
+ // component: Layout,
+ // redirect: '/dispatch/dispatch',
+ // children: [{
+ // path: 'dispatch',
+ // name: '派遣单位管理',
+ // meta: {
+ // i18n: 'dispatch'
+ // },
+ // component: () =>
+ // import( /* webpackChunkName: "views" */ '@/views/dispatch/dispatch')
+ // }, {
+ // path: 'dispatchChildoperable',
+ // name: '派遣记录管理',
+ // meta: {
+ // i18n: 'dispatch'
+ // },
+ // component: () =>
+ // import( /* webpackChunkName: "views" */ '@/views/dispatch/dispatchChildoperable')
+ // }]
+ // },
+ // {
+ // path: '/dispatchChild',
+ // component: Layout,
+ // redirect: '/dispatchChild/index',
+ // children: [{
+ // path: 'index',
+ // name: '派遣服务记录',
+ // meta: {
+ // i18n: 'dict'
+ // },
+ // component: () =>
+ // import( /* webpackChunkName: "views" */ '@/views/dispatchChild/index')
+ // }]
+ // },
+ // {
+ // path: '/equipments',
+ // component: Layout,
+ // redirect: '/equipments/index',
+ // children: [{
+ // path: 'index',
+ // name: '保安公司装备管理',
+ // meta: {
+ // i18n: 'dict'
+ // },
+ // component: () =>
+ // import( /* webpackChunkName: "views" */ '@/views/equipments/index')
+ // }]
+ // }, {
+ // path: '/car',
+ // component: Layout,
+ // redirect: '/car/index',
+ // children: [{
+ // path: 'index',
+ // name: '保安公司车辆管理',
+ // meta: {
+ // i18n: 'dict'
+ // },
+ // component: () =>
+ // import( /* webpackChunkName: "views" */ '@/views/car/index')
+ // }]
+ // }, {
+ // path: '/gun',
+ // component: Layout,
+ // redirect: '/gun/index',
+ // children: [{
+ // path: 'index',
+ // name: '保安公司枪支管理',
+ // meta: {
+ // i18n: 'dict'
+ // },
+ // component: () =>
+ // import( /* webpackChunkName: "views" */ '@/views/gun/index')
+ // }]
+ // },
+ // {
+ // path: '/securityEquipment',
+ // component: Layout,
+ // redirect: '/securityEquipment',
+ // children: [{
+ // path: 'equipments',
+ // name: '装备管理',
+ // meta: {
+ // i18n: 'securityEquipment'
+ // },
+ // component: () =>
+ // import( /* webpackChunkName: "views" */ '@/views/securityEquipment/equipments')
+ // }, {
+ // path: 'car',
+ // name: '车辆管理',
+ // meta: {
+ // i18n: 'car'
+ // },
+ // component: () =>
+ // import( /* webpackChunkName: "views" */ '@/views/securityEquipment/car')
+ // }, {
+ // path: 'gun',
+ // name: '车辆管理',
+ // meta: {
+ // i18n: 'gun'
+ // },
+ // component: () =>
+ // import( /* webpackChunkName: "views" */ '@/views/securityEquipment/gun')
+ // }]
+ // },
+ // {
+ // path: '/trainingRegistration',
+ // component: Layout,
+ // redirect: '/trainingRegistration/index',
+ // children: [{
+ // path: 'index',
+ // name: '保安培训报名管理',
+ // meta: {
+ // i18n: 'dict'
+ // },
+ // component: () =>
+ // import ( /* webpackChunkName: "views" */ '@/views/trainingRegistration/index')
+ // }]
+ // },
+ {
+ path: '/securityAnalysis',
+ component: Layout,
+ redirect: '/securityAnalysis/index',
+ children: [{
+ path: 'index',
+ name: '保安单位情况智能分析',
+ meta: {
+ i18n: 'dict'
+ },
+ component: () =>
+ import ( /* webpackChunkName: "views" */ '@/views/securityAnalysis/index')
+ }]
+ }, {
+ path: '/recruitmentManagement',
+ component: Layout,
+ redirect: '/recruitmentManagement/index',
+ children: [{
+ path: 'index',
+ name: '招聘管理',
+ meta: {
+ i18n: 'dict'
+ },
+ component: () =>
+ import ( /* webpackChunkName: "views" */ '@/views/recruitmentManagement/index')
+ }]
+ }, {
+ path: '/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/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/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')
+ }]
+ }
+]
\ No newline at end of file
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..0a1789a 100644
--- a/src/views/applyexam/index.vue
+++ b/src/views/applyexam/index.vue
@@ -57,13 +57,34 @@
@click="questionBankHandleDelete">删 除
</el-button>
</template> -->
+ <!-- 自定义按钮 -->
+ <template slot="menuLeft">
+ <el-button
+ type="primary"
+ size="small"
+ plain
+ icon="el-icon-folder-checked"
+ @click="handleBatchExam"
+
+ >生成考试
+ </el-button>
+ <!-- v-if="examPersission" -->
+ <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 +122,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>
@@ -112,8 +170,9 @@
import {
getApplyList,
addApply,
- updateApply,
+ cancelApply,
remove,
+ addExam
} from "@/api/examapi/applyexam";
import { mapState } from "vuex";
@@ -134,7 +193,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 +277,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 +351,7 @@
//tree 默认展开
defaultExpandAll: true,
// 操作栏宽度
- menuWidth: 200,
+ menuWidth: 300,
column: [
{
@@ -222,7 +359,6 @@
prop: "userId",
type: "tree",
dicUrl: "",
- search: true,
hide: true,
slot: true,
searchSpan: 4,
@@ -234,8 +370,10 @@
addDetail: false,
// 表单编辑时是否禁止
editDisabled: true,
+ viewDisabled: false,
// 表单编辑时是否可见
editDisplay: true,
+ viewDisplay: false,
// 表单编辑时是否为查看模式
editDetail: false,
props: {
@@ -253,7 +391,9 @@
},
{
label: "保安姓名",
- prop: "name",
+ prop: "realName",
+ searchSpan: 4,
+ search: true,
// 表单新增时是否禁止
addDisabled: false,
// 表单新增时是否可见
@@ -316,7 +456,7 @@
prop: "deptName",
search: true,
slot: true,
- searchSpan: 4,
+ searchSpan: 6,
// 表单新增时是否禁止
addDisabled: false,
// 表单新增时是否可见
@@ -473,48 +613,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 +732,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 +831,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: "确定",
@@ -723,7 +894,7 @@
})
.then(() => {
row.applyStatus = 4;
- return updateApply(row);
+ return cancelApply(row);
})
.then(() => {
this.questionBankOnLoad(this.questionBankPage);
@@ -760,6 +931,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/desk/notice.vue b/src/views/desk/notice.vue
index be2d2d3..cbf19fb 100644
--- a/src/views/desk/notice.vue
+++ b/src/views/desk/notice.vue
@@ -90,6 +90,7 @@
excelBtn: false,
addBtnText:"发布",
addTitle:"发布",
+ saveBtnText:'发布',
menuWidth: 320,
dialogClickModal: false,
column: [
diff --git a/src/views/dispatch/dispatchChildoperable.vue b/src/views/dispatch/dispatchChildoperable.vue
index 6b1bb8a..cf1bf5f 100644
--- a/src/views/dispatch/dispatchChildoperable.vue
+++ b/src/views/dispatch/dispatchChildoperable.vue
@@ -200,8 +200,8 @@
{
label: "派遣单位",
prop: "dispatcherCompany",
- addDisplay: false,
- editDisplay: false,
+ // addDisplay: false,
+ // editDisplay: false,
},
// {
// label: "派遣单位",
@@ -229,13 +229,9 @@
{
label: "保安公司",
prop: "deptId",
- labelWidth: 120,
search: true,
- overHidden: true,
- type: "tree",
- searchSpan: 4,
- cascaderItem: ["name"],
- // cascaderItem: ["city", "area"],
+ type: "select",
+ cascaderItem: ["securityName"],
props: {
label: "title",
value: "id",
@@ -250,19 +246,17 @@
],
},
{
- width: 120,
label: "保安员",
- prop: "name",
- labelWidth: 120,
- type: "tree",
+ prop: "securityName",
+ type: "select",
search: true,
- searchSpan: 4,
- cell: true,
+ // cell: true,
+ // hide: true,
props: {
label: "realName",
value: "id",
},
- dicUrl: `/api/blade-user/page-security-unit?deptId={{deptId}}`,
+ dicUrl: `/api/blade-user/page-security-units?deptId={{key}}`,
rules: [
{
required: true,
@@ -271,6 +265,7 @@
},
],
},
+
// {
// width: 120,
// label: "保安人名称",
@@ -767,8 +762,9 @@
const data = res.data.data;
this.page1.total = data.total;
this.data1 = data.records;
- console.log(this.data1, 1);
+ console.log(this.data1, 1111111111111111111111111);
this.loading1 = false;
+ this.$nextTick(() => this.$refs.crudrec1.dicInit("cascader"));
});
},
//派遣记录
diff --git a/src/views/dispatch/dispatchChildoperableSee.vue b/src/views/dispatch/dispatchChildoperableSee.vue
index 77bb38a..d7ff409 100644
--- a/src/views/dispatch/dispatchChildoperableSee.vue
+++ b/src/views/dispatch/dispatchChildoperableSee.vue
@@ -743,21 +743,22 @@
// console.log(page);
console.log(this.userInfo, "userInfo");
var values;
- const { releaseTimeRange } = this.query1;
- if (releaseTimeRange) {
- values = {
- ...params,
- beginTime: releaseTimeRange[0],
- overTime: releaseTimeRange[1],
- ...this.query,
- };
- values.releaseTimeRange = null;
- } else {
- values = {
- ...params,
- ...this.query,
- };
- }
+ // const { releaseTimeRange } = this.query1;
+ // if (releaseTimeRange) {
+ values = {
+ ...params,
+ // beginTime: releaseTimeRange[0],
+ // overTime: releaseTimeRange[1],
+ userIds: this.userInfo.user_id,
+ ...this.query,
+ };
+ // values.releaseTimeRange = null;
+ // } else {
+ // values = {
+ // ...params,
+ // ...this.query,
+ // };
+ // }
// values
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/people/expression.vue b/src/views/people/expression.vue
index 0b173bc..dc6c443 100644
--- a/src/views/people/expression.vue
+++ b/src/views/people/expression.vue
@@ -79,8 +79,8 @@
trackRecordColumn,
} from "./data";
import { getUserPractitionersInfo } from "@/api/system/user";
-import { add, update, page, remove } from "@/api/performance/performance";
import { mapGetters } from "vuex";
+import { add, update, page, remove } from "@/api/performance/performance";
export default {
data() {
let baseUrl = "https://cli.avuejs.com/api/area";
@@ -461,7 +461,7 @@
return "";
},
//
- onLoad1(page, params = {}) {
+ onLoad1(page1, params = {}) {
this.loading1 = true;
// params["cardid"] = this.cardid;
// params["name"] = this.name;
@@ -486,20 +486,31 @@
// };
// }
var cardid = this.userInfo.user_id;
- console.log(this.userInfo, "111111111111");
- getPerformancePageInfo(cardid).then((res) => {
- // // page.currentPage,
- // // page.pageSize,
- // // Object.assign(params, this.query)
- // // values
- console.log(res);
- // const data = res.data.data;
- // this.page1.total = data.total;
- // this.data1 = data.records;
- // console.log(this.data1, 1);
- // this.loading1 = false;
+ // console.log(this.userInfo, "111111111111");
+ // getPerformancePageInfo(cardid).then((res) => {
+ // // // page.currentPage,
+ // // // page.pageSize,
+ // // // Object.assign(params, this.query)
+ // // // values
+ // // const data = res.data.data;
+ // // this.page1.total = data.total;
+ // // this.data1 = data;
+ // console.log(res, 1231131);
+ // // console.log(this.data1, 1);
+ // // this.loading1 = false;
+ // });
+ var param = {
+ securityid: cardid,
+ };
+ page(this.current, this.size, param).then((res2) => {
+ const data = res2.data.data;
+ this.page1.total = data.total;
+ this.data1 = data.records;
+ console.log(this.data1, 1);
+ this.loading1 = false;
});
},
+
//派遣记录
// saveLock(name, val) {
// localStorage.setItem(name, val);
diff --git a/src/views/people/job.vue b/src/views/people/job.vue
index 1d777d1..b432bd9 100644
--- a/src/views/people/job.vue
+++ b/src/views/people/job.vue
@@ -491,11 +491,11 @@
// // Object.assign(params, this.query)
// // values
console.log(res);
- // const data = res.data.data;
+ const data = res.data.data;
// this.page1.total = data.total;
- // this.data1 = data.records;
- // console.log(this.data1, 1);
- // this.loading1 = false;
+ this.data1 = data;
+ console.log(this.data1, 1);
+ this.loading1 = false;
});
},
//派遣记录
diff --git a/src/views/resource/uploadNotice.vue b/src/views/resource/uploadNotice.vue
index 89f1d96..bbebdbd 100644
--- a/src/views/resource/uploadNotice.vue
+++ b/src/views/resource/uploadNotice.vue
@@ -97,6 +97,7 @@
searchMenuSpan: 6,
border: false,
index: true,
+ // align: center,
stripe: true,
viewBtn: true,
selection: true,
@@ -148,6 +149,12 @@
trigger: "blur",
},
],
+ },
+ {
+ label: "预览图",
+ prop: "link",
+ dataType: "string",
+ type: "img",
},
{
label: "附件拓展名",
@@ -333,6 +340,7 @@
const data = res.data.data;
this.page.total = data.total;
this.data = data.records;
+ console.log(this.data);
this.loading = false;
this.selectionClear();
});
diff --git a/src/views/securityApply/index.vue b/src/views/securityApply/index.vue
new file mode 100644
index 0000000..5092399
--- /dev/null
+++ b/src/views/securityApply/index.vue
@@ -0,0 +1,144 @@
+<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,
+ getSecurityApplyInfo
+} from "@/api/examapi/applyexam";
+
+export default {
+ data() {
+ return {
+ status:null,
+ id:null,
+ form:{}
+ };
+ },
+ computed: {
+ ...mapState({
+ userInfo: state => state.user.userInfo
+ }),
+ },
+ mounted() {
+ //查询保安人员报名信息
+ this.getSecurityApplyInfo(null);
+ },
+ methods:{
+ getSecurityApplyInfo(id){
+ getSecurityApplyInfo(id,this.userInfo.user_id).then((res) => {
+ this.form = res.data;
+ if(res.data.id!=-1){
+ this.id = res.data.id;
+ }
+ if(res.data.isApply==-1 || res.data.isApply==2){
+ this.status = "尚未报名";
+ }
+ if(res.data.isApply==1){
+ this.status = "已报名";
+ }
+ });
+ },
+ 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: "报名成功",
+ });
+ this.getSecurityApplyInfo(null);
+ }
+ },
+ (error) => {
+ window.console.log(error);
+ }
+ );
+ },
+ cancelApply(){
+ cancelApply({
+ id:this.id,
+ userId: this.userInfo.user_id
+ }).then(
+ (res) => {
+ if (res.data.data == 201) {
+ this.$message({
+ type: "warning",
+ message: "尚未报名",
+ });
+ } else {
+ this.$message({
+ type: "success",
+ message: "取消报名成功",
+ });
+ this.getSecurityApplyInfo(null);
+ }
+ },
+ (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/securityEquipment/car.js b/src/views/securityEquipment/car.js
index 5a25dc3..4807633 100644
--- a/src/views/securityEquipment/car.js
+++ b/src/views/securityEquipment/car.js
@@ -9,13 +9,13 @@
]
export var column = [
- {
- label: "id",
- prop: "id",
- hide: true,
- editDisplay: false,
- addDisplay: false
- },
+ // {
+ // label: "id",
+ // prop: "id",
+ // hide: true,
+ // editDisplay: false,
+ // addDisplay: false
+ // },
{
label: "车牌号码",
prop: "carNumber",
@@ -64,7 +64,7 @@
},
{
label: "保安公司",
- prop: "tenantName",
+ prop: "deptId",
rules: [{
required: true,
message: "请输入保安公司",
@@ -117,7 +117,7 @@
// search: true,
type: "date",
format: "yyyy-MM-dd",
- valueFormat: "timestamp",
+ valueFormat: "yyyy-MM-dd",
searchSpan: 4,
overHidden: true,
rules: [{
diff --git a/src/views/securityEquipment/car.vue b/src/views/securityEquipment/car.vue
index 9d99626..ebb96b4 100644
--- a/src/views/securityEquipment/car.vue
+++ b/src/views/securityEquipment/car.vue
@@ -18,6 +18,14 @@
>
<template slot="menuLeft">
<el-button
+ type="success"
+ size="small"
+ plain
+ icon="el-icon-upload2"
+ @click="handleImport"
+ >批量导入
+ </el-button>
+ <el-button
type="danger"
size="small"
plain
@@ -27,6 +35,24 @@
</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>
</basic-container>
</template>
@@ -38,6 +64,34 @@
export default {
data() {
return {
+ excelBox: false,
+ 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/car/import-examSubject",
+ },
+ {
+ label: "模板下载",
+ prop: "excelTemplate",
+ formslot: true,
+ span: 24,
+ },
+ ],
+ },
+
loading: true,
selectionList: [],
page: {
@@ -71,6 +125,18 @@
},
},
methods: {
+ handleImport() {
+ this.excelBox = true;
+ },
+ uploadAfter(res, done, loading, column) {
+ window.console.log(column);
+ this.excelBox = false;
+ this.refreshChange();
+ done();
+ },
+ handleTemplate() {
+ window.open(`/api/car/export-template`);
+ },
sizeChange(val) {
this.page1.currentPage = 1;
this.page1.pageSize = val;
@@ -88,8 +154,9 @@
// delete form.id;
// for (var k = 0; k < 13; k++) {
// console.log
- form["deptId"] = form.tenantName;
- delete form.tenantName;
+ // form["deptId"] = form.tenantName;
+ // delete form.tenantName;
+ // console.log(form);
adddata(form).then(
(res) => {
this.onLoad(this.page);
@@ -117,9 +184,9 @@
this.onLoad(this.page);
},
rowUpdate(row, index, done, loading) {
- console.log(row);
- row["deptId"] = row.tenantName;
- delete row.tenantName;
+ // console.log(row);
+ // row["deptId"] = row.tenantName;
+ // delete row.tenantName;
update(row).then(
() => {
this.onLoad(this.page);
diff --git a/src/views/securityEquipment/equipments.js b/src/views/securityEquipment/equipments.js
index cad65f0..d54209a 100644
--- a/src/views/securityEquipment/equipments.js
+++ b/src/views/securityEquipment/equipments.js
@@ -62,7 +62,7 @@
},
{
label: "保安公司",
- prop: "tenantName",
+ prop: "deptId",
rules: [{
required: true,
message: "请输入组织机构",
@@ -112,11 +112,11 @@
{
label: "出厂日期",
prop: "dateForProduction",
- // search: true,
type: "date",
- format: "yyyy-MM-dd",
- valueFormat: "timestamp",
+ format: 'yyyy-MM-dd',
searchSpan: 4,
+ // span:8,
+ valueFormat: 'yyyy-MM-dd',
overHidden: true,
rules: [{
required: true,
diff --git a/src/views/securityEquipment/equipments.vue b/src/views/securityEquipment/equipments.vue
index 2373581..399fed4 100644
--- a/src/views/securityEquipment/equipments.vue
+++ b/src/views/securityEquipment/equipments.vue
@@ -18,6 +18,14 @@
>
<template slot="menuLeft">
<el-button
+ type="success"
+ size="small"
+ plain
+ icon="el-icon-upload2"
+ @click="handleImport"
+ >批量导入
+ </el-button>
+ <el-button
type="danger"
size="small"
plain
@@ -27,6 +35,24 @@
</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>
</basic-container>
</template>
@@ -38,6 +64,34 @@
export default {
data() {
return {
+ excelBox: false,
+ 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/examSubjectChoices/import-examSubject",
+ },
+ {
+ label: "模板下载",
+ prop: "excelTemplate",
+ formslot: true,
+ span: 24,
+ },
+ ],
+ },
+
loading: true,
selectionList: [],
page: {
@@ -71,6 +125,18 @@
},
},
methods: {
+ handleImport() {
+ this.excelBox = true;
+ },
+ uploadAfter(res, done, loading, column) {
+ window.console.log(column);
+ this.excelBox = false;
+ this.refreshChange();
+ done();
+ },
+ handleTemplate() {
+ window.open(`/api/examSubjectChoices/export-template`);
+ },
sizeChange(val) {
this.page1.currentPage = 1;
this.page1.pageSize = val;
@@ -87,8 +153,9 @@
// var form = this.data[0];
// delete form.id;
// for (var k = 0; k < 13; k++) {
- form["deptId"] = form.tenantName;
- delete form.tenantName;
+ console.log(form, "12135");
+ // form["deptId"] = form.tenantName;
+ // delete form.tenantName;
adddata(form).then(
(res) => {
this.onLoad(this.page);
@@ -116,9 +183,9 @@
this.onLoad(this.page);
},
rowUpdate(row, index, done, loading) {
- // console.log(row);
- row["deptId"] = row.tenantName;
- delete row.tenantName;
+ // row["deptId"] = row.tenantName;
+ // delete row.tenantName;
+ console.log(row.deptId);
update(row).then(
() => {
this.onLoad(this.page);
diff --git a/src/views/securityEquipment/gun.js b/src/views/securityEquipment/gun.js
index 3ad2692..c3dceef 100644
--- a/src/views/securityEquipment/gun.js
+++ b/src/views/securityEquipment/gun.js
@@ -70,7 +70,7 @@
},
{
label: "保安公司",
- prop: "tenantName",
+ prop: "deptId",
labelWidth: 160,
rules: [{
required: true,
@@ -112,7 +112,7 @@
// search: true,
type: "date",
format: "yyyy-MM-dd",
- valueFormat: "timestamp",
+ valueFormat: "yyyy-MM-dd",
// width: 110,
// overHidden: true,
// search: true,
@@ -129,7 +129,7 @@
// search: true,
type: "date",
format: "yyyy-MM-dd",
- valueFormat: "timestamp",
+ valueFormat: "yyyy-MM-dd",
searchSpan: 4,
overHidden: true,
rules: [{
diff --git a/src/views/securityEquipment/gun.vue b/src/views/securityEquipment/gun.vue
index 2eec3f4..85e30ab 100644
--- a/src/views/securityEquipment/gun.vue
+++ b/src/views/securityEquipment/gun.vue
@@ -87,8 +87,8 @@
// var form = this.data[0];
// delete form.id;
// for (var k = 0; k < 13; k++) {
- form["deptId"] = form.tenantName;
- delete form.tenantName;
+ // form["deptId"] = form.tenantName;
+ // delete form.tenantName;
adddata(form).then(
(res) => {
this.onLoad(this.page);
@@ -117,8 +117,8 @@
},
rowUpdate(row, index, done, loading) {
// console.log(row);
- row["deptId"] = row.tenantName;
- delete row.tenantName;
+ // row["deptId"] = row.tenantName;
+ // delete row.tenantName;
update(row).then(
() => {
this.onLoad(this.page);
diff --git a/src/views/securityGuard/securityGuard.vue b/src/views/securityGuard/securityGuard.vue
index 5a1b00b..0b0f7c1 100644
--- a/src/views/securityGuard/securityGuard.vue
+++ b/src/views/securityGuard/securityGuard.vue
@@ -39,6 +39,14 @@
>
<template slot="menuLeft">
<el-button
+ type="success"
+ size="small"
+ plain
+ icon="el-icon-upload2"
+ @click="handleImport1"
+ >批量导入
+ </el-button>
+ <el-button
type="danger"
style="display: none"
size="small"
@@ -208,6 +216,24 @@
</template>
</avue-crud>
</el-dialog>
+ <el-dialog
+ title="保安员导入"
+ append-to-body
+ :visible.sync="excelBox1"
+ width="555px"
+ >
+ <avue-form
+ :option="excelOption1"
+ v-model="excelForm1"
+ :upload-after="uploadAfter1"
+ >
+ <template slot="excelTemplate">
+ <el-button type="primary" @click="handleTemplate1">
+ 点击下载<i class="el-icon-download el-icon--right"></i>
+ </el-button>
+ </template>
+ </avue-form>
+ </el-dialog>
</basic-container>
</el-col>
</el-row>
@@ -254,6 +280,34 @@
}
};
return {
+ excelBox1: false,
+ excelForm1: {},
+ excelOption1: {
+ submitBtn: false,
+ emptyBtn: false,
+ column: [
+ {
+ label: "文件上传",
+ prop: "excelFile",
+ type: "upload",
+ drag: true,
+ loadText: "文件上传中,请稍等",
+ span: 24,
+ propsHttp: {
+ res: "data",
+ },
+ tip: "请上传 .xls,.xlsx 标准格式文件",
+ action: "/api/blade-user/import-user",
+ },
+ {
+ label: "模板下载",
+ prop: "excelTemplate",
+ formslot: true,
+ span: 24,
+ },
+ ],
+ },
+
form: {},
search: {},
roleBox: false,
@@ -871,6 +925,19 @@
}
},
methods: {
+ handleImport1() {
+ this.excelBox1 = true;
+ },
+ uploadAfter1(res, done, loading, column) {
+ window.console.log(column);
+ this.excelBox1 = false;
+ // this.refreshChange();
+ done();
+ },
+ handleTemplate1() {
+ window.open(`/api/examSubjectChoices/export-template`);
+ },
+
//行点击事件
rowClick(row) {
this.$router.push({
@@ -929,18 +996,18 @@
entryTime: item.entryTime,
name: row.realName,
leaving: item.leaving,
- cardid: row.cardid,
+ securityid: row.id,
post: item.post,
responsibilities: item.responsibilities,
};
userPractitionersList.push(info);
});
}
- var IdCardNo = row.cardid;
+ var IdCardNo = row.id;
add(row).then(
() => {
const experience = {
- cardid: IdCardNo,
+ securityid: IdCardNo,
userPractitionersInfo: userPractitionersList,
};
//新增从业信息
@@ -979,20 +1046,20 @@
entryTime: item.entryTime,
name: row.realName,
leaving: item.leaving,
- cardid: row.cardid,
+ securityid: row.id,
post: item.post,
responsibilities: item.responsibilities,
};
userPractitionersList.push(info);
});
}
- var IdCardNo = row.cardid;
+ var IdCardNo = row.id;
//值替换,education 放在页面会卡死
row.education = row.education1;
update(row).then(
() => {
const experience = {
- cardid: IdCardNo,
+ securityid: IdCardNo,
userPractitionersInfo: userPractitionersList,
};
//更新从业信息
@@ -1167,7 +1234,7 @@
}
var userInfo = res.data.data;
//获取用户从业信息
- getUserPractitionersInfo(userInfo.cardid).then((res1) => {
+ getUserPractitionersInfo(userInfo.id).then((res1) => {
that.form.UserPractitionersInfo = res1.data.data;
});
});
diff --git a/src/views/securityGuard/securityGuardDetail.vue b/src/views/securityGuard/securityGuardDetail.vue
index 398bdaa..aae9a3f 100644
--- a/src/views/securityGuard/securityGuardDetail.vue
+++ b/src/views/securityGuard/securityGuardDetail.vue
@@ -37,7 +37,13 @@
trackRecordColumn,
} from "./data";
import { getUserPractitionersInfo } from "@/api/system/user";
-import { add, update, page, remove } from "@/api/performance/performance";
+import {
+ getPerformanceInfo,
+ add,
+ update,
+ page,
+ remove,
+} from "@/api/performance/performance";
export default {
data() {
return {
@@ -154,16 +160,20 @@
getPractitionersPageInfo() {
var that = this;
//获取用户从业信息
- console.log(this.cardid, "cid");
- getUserPractitionersInfo(this.cardid).then((res1) => {
+ console.log(this.id, "cid");
+ getUserPractitionersInfo(this.id).then((res1) => {
that.data1 = res1.data.data;
});
},
//查询当前保安员的现实表现记录信息
getPerformancePageInfo() {
//获取现实表现信息
+ // getPerformanceInfo(this.id).then((res) => {
+ // that.data2 = res1.data.data;
+ // console.log(that.data2, 1);
+ // });
var param = {
- cardid: this.cardid,
+ securityid: this.id,
};
page(this.current, this.size, param).then((res2) => {
const data = res2.data.data;
@@ -174,7 +184,7 @@
});
},
rowSave2(form, done, loading) {
- form.cardid = this.cardid;
+ form.securityid = this.id;
add(form).then(
(res) => {
this.getPerformancePageInfo(this.page2);
@@ -192,7 +202,7 @@
// }
},
rowUpdate2(row, index, done, loading) {
- row.cardid = this.cardid;
+ row.securityid = this.id;
update(row).then(
() => {
this.getPerformancePageInfo(this.page2);
diff --git a/src/views/securityUnit/data.js b/src/views/securityUnit/data.js
index 37e3c96..4f3d31f 100644
--- a/src/views/securityUnit/data.js
+++ b/src/views/securityUnit/data.js
@@ -93,7 +93,7 @@
// {
// label: "登记状态",
// prop: "regstsat",
- // // addDisplay: true,
+ // // addDisplay: true,
// // editDisplay: true,
// // viewDisplay: true,
// // searchSpan: 4,
@@ -111,7 +111,7 @@
// // // }],
// },
{
- label: "成立日期",
+ label: "注册时间",
prop: "establishtime",
labelWidth: 160,
width: 130,
@@ -189,7 +189,7 @@
// // rules: [{
// // required: false,
// // message: "请选择单位规模",
- // // trigger: "blur"
+ // // trigger: "blur"
// // }],
},
// {
@@ -391,7 +391,7 @@
// }]
// },
{
- label: "成立日期",
+ label: "注册时间",
prop: "establishtime",
labelWidth: w,
span: s,
@@ -400,7 +400,7 @@
valueFormat: "timestamp",
rules: [{
required: true,
- message: "请输入成立日期",
+ message: "请输入注册时间",
trigger: "blur"
}]
},
@@ -598,7 +598,7 @@
// prop: "beneficial",
// labelWidth: w,
// span: s
- // },
+ // },
{
label: "出资金额",
prop: "capital2",
diff --git a/src/views/securityUnit/index.vue b/src/views/securityUnit/index.vue
index 5526813..624bc9d 100644
--- a/src/views/securityUnit/index.vue
+++ b/src/views/securityUnit/index.vue
@@ -35,6 +35,14 @@
@click.stop="rowSave"
>新增</el-button
>
+ <el-button
+ type="success"
+ size="small"
+ plain
+ icon="el-icon-upload2"
+ @click="handleImport1"
+ >批量导入
+ </el-button>
</template>
<template slot="menuLeft">
<el-button
@@ -100,8 +108,26 @@
</div>
</div>
</div>
+ <el-dialog
+ title="保安单位导入"
+ append-to-body
+ :visible.sync="excelBox1"
+ width="555px"
+ >
+ <avue-form
+ :option="excelOption1"
+ v-model="excelForm1"
+ :upload-after="uploadAfter1"
+ >
+ <template slot="excelTemplate">
+ <el-button type="primary" @click="handleTemplate1">
+ 点击下载<i class="el-icon-download el-icon--right"></i>
+ </el-button>
+ </template>
+ </avue-form>
+ </el-dialog>
</basic-container>
-</template>
+</template>
<script>
import { column, column0, column1, column2 } from "./data";
@@ -120,6 +146,34 @@
var w = 160,
s = 12;
return {
+ excelBox1: false,
+ excelForm1: {},
+ excelOption1: {
+ submitBtn: false,
+ emptyBtn: false,
+ column: [
+ {
+ label: "文件上传",
+ prop: "excelFile",
+ type: "upload",
+ drag: true,
+ loadText: "文件上传中,请稍等",
+ span: 24,
+ propsHttp: {
+ res: "data",
+ },
+ tip: "请上传 .xls,.xlsx 标准格式文件",
+ action: "/api/information/import-informaton",
+ },
+ {
+ label: "模板下载",
+ prop: "excelTemplate",
+ formslot: true,
+ span: 24,
+ },
+ ],
+ },
+
loading: true, //保安单位基本信息
selectionList: [],
page: {
@@ -266,6 +320,19 @@
},
},
methods: {
+ handleImport1() {
+ this.excelBox1 = true;
+ },
+ uploadAfter1(res, done, loading, column) {
+ window.console.log(column);
+ this.excelBox1 = false;
+ // this.refreshChange();
+ done();
+ },
+ handleTemplate1() {
+ window.open(`/api/examSubjectChoices/export-template`);
+ },
+
// handleChangeTABS(column) {
// this.typeTABS = column;
// // this.$message.success(JSON.stringify(column));
@@ -644,4 +711,4 @@
.el-collapse {
border-top: 1px solid transparent !important;
}
-</style>
\ No newline at end of file
+</style>
diff --git a/src/views/securityUnitChild/data.js b/src/views/securityUnitChild/data.js
index 7c4e691..452ca96 100644
--- a/src/views/securityUnitChild/data.js
+++ b/src/views/securityUnitChild/data.js
@@ -42,7 +42,7 @@
disabled: true,
},
{
- label: "成立日期",
+ label: "注册时间",
prop: "establishtime",
span: 11,
labelWidth: 130,
@@ -155,6 +155,7 @@
}, {
label: "股东",
prop: "shareholder",
+ searchLabelWidth: 55,
search: true,
labelWidth: w,
span: s,
@@ -224,6 +225,7 @@
prop: "name",
search: true,
labelWidth: w,
+ searchLabelWidth: 55,
span: s,
}, {
label: "职务",
diff --git a/src/views/securityUnitChild/index.vue b/src/views/securityUnitChild/index.vue
index accac2a..3a6ff7c 100644
--- a/src/views/securityUnitChild/index.vue
+++ b/src/views/securityUnitChild/index.vue
@@ -29,67 +29,127 @@
</template>
</avue-crud>-->
<!-- 表单组件 -->
- <avue-form ref="form" v-model="obj0" :option="option0">
- <!-- <template slot-scope="scope" slot="menuForm">
+ <basic-container>
+ <avue-form ref="form" v-model="obj0" :option="option0">
+ <!-- <template slot-scope="scope" slot="menuForm">
<el-button @click="tip">自定义按钮</el-button>
</template> -->
- </avue-form>
+ </avue-form>
+ </basic-container>
</span>
<span v-else-if="typeTABS.prop === 'tab2'">
<!-- <span v-if="typeTABS.prop === 'tab2'"> -->
- <avue-crud
- :option="option1"
- :data="data1"
- :page.sync="page1"
- ref="crudrec1"
- :table-loading="loading1"
- @row-save="rowSave1"
- @search-change="searchChange1"
- @search-reset="searchReset1"
- @row-update="rowUpdate1"
- @row-del="rowDel1"
- @selection-change="selectionChange1"
- @refresh-change="refreshChange1"
- >
- <template slot="menuLeft">
- <el-button
- type="danger"
- size="small"
- plain
- icon="el-icon-delete"
- @click="handleDelete1"
- >删 除
- </el-button>
- </template>
- </avue-crud>
+ <basic-container>
+ <avue-crud
+ :option="option1"
+ :data="data1"
+ :page.sync="page1"
+ ref="crudrec1"
+ :table-loading="loading1"
+ @row-save="rowSave1"
+ @search-change="searchChange1"
+ @search-reset="searchReset1"
+ @row-update="rowUpdate1"
+ @row-del="rowDel1"
+ @selection-change="selectionChange1"
+ @refresh-change="refreshChange1"
+ >
+ <template slot="menuLeft">
+ <el-button
+ type="success"
+ size="small"
+ plain
+ icon="el-icon-upload2"
+ @click="handleImport"
+ >批量导入
+ </el-button>
+ <el-button
+ type="danger"
+ size="small"
+ plain
+ icon="el-icon-delete"
+ @click="handleDelete1"
+ >删 除
+ </el-button>
+ </template>
+ </avue-crud>
+ </basic-container>
</span>
<span v-else-if="typeTABS.prop === 'tab3'">
- <avue-crud
- :option="option2"
- :data="data2"
- :page.sync="page2"
- ref="crudrec2"
- :table-loading="loading2"
- @row-save="rowSave2"
- @search-change="searchChange2"
- @search-reset="searchReset2"
- @row-update="rowUpdate2"
- @row-del="rowDel2"
- @selection-change="selectionChange2"
- @refresh-change="refreshChange2"
+ <basic-container>
+ <avue-crud
+ :option="option2"
+ :data="data2"
+ :page.sync="page2"
+ ref="crudrec2"
+ :table-loading="loading2"
+ @row-save="rowSave2"
+ @search-change="searchChange2"
+ @search-reset="searchReset2"
+ @row-update="rowUpdate2"
+ @row-del="rowDel2"
+ @selection-change="selectionChange2"
+ @refresh-change="refreshChange2"
+ >
+ <template slot="menuLeft">
+ <el-button
+ type="success"
+ size="small"
+ plain
+ icon="el-icon-upload2"
+ @click="handleImport1"
+ >批量导入
+ </el-button>
+ <el-button
+ type="danger"
+ size="small"
+ plain
+ icon="el-icon-delete"
+ @click="handleDelete2"
+ >删 除
+ </el-button>
+ </template>
+ </avue-crud>
+ </basic-container>
+ </span>
+
+ <el-dialog
+ title="出资人导入"
+ append-to-body
+ :visible.sync="excelBox"
+ width="555px"
+ >
+ <avue-form
+ :option="excelOption"
+ v-model="excelForm"
+ :upload-after="uploadAfter"
>
- <template slot="menuLeft">
- <el-button
- type="danger"
- size="small"
- plain
- icon="el-icon-delete"
- @click="handleDelete2"
- >删 除
+ <template slot="excelTemplate">
+ <el-button type="primary" @click="handleTemplate">
+ 点击下载<i class="el-icon-download el-icon--right"></i>
</el-button>
</template>
- </avue-crud>
- </span>
+ </avue-form>
+ </el-dialog>
+
+ <el-dialog
+ title="管理人导入"
+ append-to-body
+ :visible.sync="excelBox1"
+ width="555px"
+ >
+ <avue-form
+ :option="excelOption1"
+ v-model="excelForm1"
+ :upload-after="uploadAfter1"
+ >
+ <template slot="excelTemplate">
+ <el-button type="primary" @click="handleTemplate1">
+ 点击下载<i class="el-icon-download el-icon--right"></i>
+ </el-button>
+ </template>
+ </avue-form>
+ </el-dialog>
</div>
</template>
@@ -137,6 +197,62 @@
],
};
return {
+ excelBox: false, //出资人
+ 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/car/import-examSubject",
+ },
+ {
+ label: "模板下载",
+ prop: "excelTemplate",
+ formslot: true,
+ span: 24,
+ },
+ ],
+ },
+
+ excelBox1: false, //管理人
+ excelForm1: {},
+ excelOption1: {
+ submitBtn: false,
+ emptyBtn: false,
+ column: [
+ {
+ label: "文件上传",
+ prop: "excelFile",
+ type: "upload",
+ drag: true,
+ loadText: "文件上传中,请稍等",
+ span: 24,
+ propsHttp: {
+ res: "data",
+ },
+ tip: "请上传 .xls,.xlsx 标准格式文件",
+ action: "/api/examSubjectChoices/import-examSubject",
+ },
+ {
+ label: "模板下载",
+ prop: "excelTemplate",
+ formslot: true,
+ span: 24,
+ },
+ ],
+ },
+
typeTABS: {}, //标签页
optionTABS: {
column: [
@@ -262,6 +378,34 @@
},
},
methods: {
+ handleImport() {
+ //出资人
+ this.excelBox = true;
+ },
+ uploadAfter(res, done, loading, column) {
+ window.console.log(column);
+ this.excelBox = false;
+ this.refreshChange();
+ done();
+ },
+ handleTemplate() {
+ window.open(`/api/car/export-template`);
+ },
+
+ handleImport1() {
+ //管理人
+ this.excelBox1 = true;
+ },
+ uploadAfter1(res, done, loading, column) {
+ window.console.log(column);
+ this.excelBox1 = false;
+ // this.refreshChange();
+ done();
+ },
+ handleTemplate1() {
+ window.open(`/api/examSubjectChoices/export-template`);
+ },
+
handleChangeTABS(column) {
this.typeTABS = column;
// this.$message.success(JSON.stringify(column));
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>
diff --git a/src/views/traincompany/index.vue b/src/views/traincompany/index.vue
index 617b60a..1a2384b 100644
--- a/src/views/traincompany/index.vue
+++ b/src/views/traincompany/index.vue
@@ -30,14 +30,21 @@
>
<template slot-scope="{ type,row }" slot="menu">
- <el-button
- :type="type"
- size="small"
- icon="el-icon-edit"
- @click="handleTrainApply(row)"
- >报名
- </el-button>
- </template>
+ <el-button
+ :type="type"
+ size="small"
+ icon="el-icon-edit"
+ @click="handleTrainApply(row)"
+ >报名
+ </el-button>
+ <el-button
+ :type="type"
+ size="small"
+ icon="el-icon-edit"
+ @click="handleTrainApplyBatch(row)"
+ >批量报名
+ </el-button>
+ </template>
</avue-crud>
<el-dialog
@@ -64,7 +71,7 @@
import { mapState } from 'vuex';
export default {
-
+
data() {
return {
form: {},
@@ -115,7 +122,7 @@
width: 120,
},
{
- label: "成立日期",
+ label: "注册时间",
prop: "establishtime",
type: "date",
format: "yyyy-MM-dd",
@@ -240,7 +247,7 @@
trigger: "blur"
}],
},
-
+
],
},
data: [],
@@ -268,13 +275,45 @@
})
},
methods: {
- handleTrainApply(row){
+ //保安公司批量报名
+ handleTrainApplyBatch(row){
this.dialogDisable = true;
this.optionTrainApply.column.trainingUnitId = row.departmentid;
this.formTrainApply = {
trainingUnitId: row.departmentid
}
},
+ //未持证保安人员报名
+ handleTrainApply(row,done,loading){
+ row['userId'] = this.userInfo.user_id;
+ row['trainingUnitId'] = row.departmentid;
+ adddata(row).then(
+ (res) => {
+ // this.onLoad(this.page);
+ 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();
+ }
+ );
+ },
//关闭窗口清除数据
closeDialog(){
this.$refs.formTrainApply.resetFields();
diff --git a/vue.config.js b/vue.config.js
index f3063ef..ef3b4fa 100644
--- a/vue.config.js
+++ b/vue.config.js
@@ -1,6 +1,6 @@
module.exports = {
//路径前缀
- publicPath: "/enterprises/",
+ publicPath: "/",
lintOnSave: true,
productionSourceMap: false,
chainWebpack: (config) => {
@@ -28,10 +28,10 @@
'/api': {
//本地服务接口地址
// target: 'http://localhost',
- // target: 'http://192.168.0.114:81',//钟W
+ target: 'http://192.168.0.109:81',//钟W
// target: 'http://localhost:81',//原W
- target: 'http://192.168.0.108:81',//原W
- // target: 'http://192.168.0.104:80',//唐N
+ // target: 'http://192.168.0.108:81',//原W
+ // target: 'http://192.168.0.109:81',//唐N
//远程演示服务地址,可用于直接启动项目
// target: 'https://saber.bladex.vip/api',
ws: true,
--
Gitblit v1.9.3