This commit is contained in:
骆乐 2022-06-09 16:46:48 +08:00
commit 525483bb98
8 changed files with 296 additions and 48 deletions

21
package-lock.json generated
View File

@ -2214,7 +2214,6 @@
"merge-source-map": "^1.1.0",
"postcss": "^7.0.14",
"postcss-selector-parser": "^6.0.2",
"prettier": "^1.18.2",
"source-map": "~0.6.1",
"vue-template-es2015-compiler": "^1.9.0"
},
@ -4730,7 +4729,6 @@
"dependencies": {
"anymatch": "~3.1.1",
"braces": "~3.0.2",
"fsevents": "~2.1.2",
"glob-parent": "~5.1.0",
"is-binary-path": "~2.1.0",
"is-glob": "~4.0.1",
@ -9589,9 +9587,6 @@
"resolved": "https://registry.npm.taobao.org/jsonfile/download/jsonfile-4.0.0.tgz",
"integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=",
"dev": true,
"dependencies": {
"graceful-fs": "^4.1.6"
},
"optionalDependencies": {
"graceful-fs": "^4.1.6"
}
@ -9667,13 +9662,6 @@
"integrity": "sha1-FX5t0ypohp34hZMUrTjnAhGvOrQ=",
"dev": true,
"dependencies": {
"errno": "^0.1.1",
"graceful-fs": "^4.1.2",
"image-size": "~0.5.0",
"make-dir": "^2.1.0",
"mime": "^1.4.1",
"native-request": "^1.0.5",
"source-map": "~0.6.0",
"tslib": "^1.10.0"
},
"bin": {
@ -10532,7 +10520,6 @@
"resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-1.4.1.tgz",
"integrity": "sha512-CGH1eblLq26Y15+Azk7ey4xh0J/XfJfrCox5LDJiKqI2Q2iwOLOKrlmIaODiSQS8d18jalF6y2K2ePUm0CmShw==",
"dependencies": {
"encoding": "^0.1.12",
"minipass": "^3.1.0",
"minipass-sized": "^1.0.3",
"minizlib": "^2.0.0"
@ -17144,7 +17131,6 @@
"anymatch": "^2.0.0",
"async-each": "^1.0.1",
"braces": "^2.3.2",
"fsevents": "^1.2.7",
"glob-parent": "^3.1.0",
"inherits": "^2.0.3",
"is-binary-path": "^1.0.0",
@ -18514,7 +18500,6 @@
"integrity": "sha1-KcVzMUgFe7Th913zW3qcty5qWd0=",
"dependencies": {
"source-map": "~0.5.1",
"uglify-to-browserify": "~1.0.0",
"yargs": "~3.10.0"
},
"bin": {
@ -19136,10 +19121,8 @@
"resolved": "https://registry.npm.taobao.org/watchpack/download/watchpack-1.7.4.tgz?cache=0&sync_timestamp=1595633550112&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fwatchpack%2Fdownload%2Fwatchpack-1.7.4.tgz",
"integrity": "sha1-bp2lOzyAuy1lCBiPWyAEEIZs0ws=",
"dependencies": {
"chokidar": "^3.4.1",
"graceful-fs": "^4.1.2",
"neo-async": "^2.5.0",
"watchpack-chokidar2": "^2.0.0"
"neo-async": "^2.5.0"
},
"optionalDependencies": {
"chokidar": "^3.4.1",
@ -19199,7 +19182,6 @@
"anymatch": "^2.0.0",
"async-each": "^1.0.1",
"braces": "^2.3.2",
"fsevents": "^1.2.7",
"glob-parent": "^3.1.0",
"inherits": "^2.0.3",
"is-binary-path": "^1.0.0",
@ -19516,7 +19498,6 @@
"anymatch": "^2.0.0",
"async-each": "^1.0.1",
"braces": "^2.3.2",
"fsevents": "^1.2.7",
"glob-parent": "^3.1.0",
"inherits": "^2.0.3",
"is-binary-path": "^1.0.0",

View File

@ -767,12 +767,13 @@ export default {
safetyEducation: '安全教育',
trainingDate: '培训日期',
trainingType: '培训类型',
schoolEducation: '培训学校培训',
level3Education: '入场三级教育',
regularSafetyEducation: '定期安全教育',
safetyAndTechnology: '安全技术交底',
VRSafetyEducation: 'VR安全教育',
trainingTopic: '培训主题',
courseHours: '培训时',
courseHours: '培训',
trainingScore: '培训得分',
qualifiedOrNot: '是否合格',
qualified: '合格',

View File

@ -84,6 +84,9 @@ export const workerSafeEducationDeleteApi = data => post('xmgl/workerSafeEducati
export const workerSafeEducationDetailApi = data => post('xmgl/workerSafeEducation/queryById', data);
export const workerSafeEducationDetailApi2 = data => post('xmgl/workerSafeEducation/selectAnswerWorkerPage', data);
//项目下人员安全教育记录
export const selectSafeEducationWorkerPageApi = data => post('xmgl/workerSafeEducationWorker/selectSafeEducationWorkerPage', data);
//黑名单管理
export const workerBlacklistListApi = data => post('xmgl/workerBlacklist/list', data);

View File

@ -37,9 +37,9 @@ if (process.env.NODE_ENV == 'development') {
// axios.defaults.baseURL = 'https://zhgd-uat.logan.com.cn/'
// axios.defaults.baseURL = 'http://36.137.53.203:9090/'; // 南昌地铁 17512009894 123456789 gdjt 123456789
axios.defaults.baseURL = 'http://124.71.178.44:100/'
// axios.defaults.baseURL = 'http://124.71.178.44:100/'
// tag: 本地
// axios.defaults.baseURL = 'http://192.168.34.125:6023/'; //本地 http/1.1
axios.defaults.baseURL = 'http://192.168.34.125:6023/'; //本地 http/1.1
// axios.defaults.baseURL = 'http://182.90.224.237:7000/'; // 广西

View File

@ -284,6 +284,11 @@ const routes2 = [{
name: '劳务管理_安全培训管理',
component: () => import('@/views/projectFront/laborManage/safetyTrainManage.vue'),
},
{
path: '/project/labor/safeeducation',
name: '劳务管理_人员安全培训记录',
component: () => import('@/views/projectFront/laborManage/safeeducation/index.vue'),
},
{
path: '/project/labor/blackList',
name: '劳务管理_黑名单管理',

View File

@ -1716,40 +1716,24 @@
prop="eduTime"
:label="$t('message.laborMange.trainingDate')"
></el-table-column>
<el-table-column
prop="eduType"
:label="$t('message.laborMange.trainingType')"
>
<template slot-scope="scope">
{{
scope.row.eduType == 1
? $t("message.laborMange.level3Education")
: scope.row.eduType == 2
? $t("message.laborMange.regularSafetyEducation")
: scope.row.eduType == 3
? $t("message.laborMange.safetyAndTechnology")
: scope.row.eduType == 4
? $t("message.laborMange.VRSafetyEducation")
: ""
}}
</template>
</el-table-column>
<el-table-column
prop="eduCourseName"
:label="$t('message.laborMange.trainingTopic')"
>
</el-table-column>
<el-table-column
prop="eduClasshour"
<!-- <el-table-column
prop="eduTime"
:label="$t('message.laborMange.courseHours')"
>
</el-table-column>
<el-table-column
</el-table-column> -->
<!-- <el-table-column
prop="score"
:label="$t('message.laborMange.trainingScore')"
>
</el-table-column>
<el-table-column
</el-table-column> -->
<!-- <el-table-column
prop="isQualified"
:label="$t('message.laborMange.qualifiedOrNot')"
>
@ -1760,7 +1744,7 @@
: $t("message.laborMange.disqualification")
}}
</template>
</el-table-column>
</el-table-column> -->
</el-table>
</div>

View File

@ -0,0 +1,24 @@
// 人员类型选项
export const personTypeOptions = [
{
label: '全部',
value: "",
},
{
label: '培训学校培训',
value: 0,
},
{
label: '入场三级教育',
value: 1,
}, {
label: '定期安全教育',
value: 2,
}, {
label: '安全技术交底',
value: 3,
}, {
label: 'VR安全教育',
value: 4,
}
]

View File

@ -0,0 +1,250 @@
/* 人员培训记录 */
<template>
<div class="epidemicPrevention">
<div class="query">
<el-form ref="eduType" :model="queryParams" :inline="true" label-width="120px">
<el-form-item label="培训类型" prop="personType">
<el-select v-model="queryParams.eduType" placeholder="请选择培训类型" clearable
:style="{width: '100%'}">
<el-option v-for="item in personTypeOptions" :key="item.value" :label="item.label" :value="item.value" />
</el-select>
</el-form-item>
<el-form-item label="姓名" prop="workerName">
<el-input v-model="queryParams.workerName" placeholder="请输入姓名" clearable :style="{width: '100%'}">
</el-input>
</el-form-item>
<el-form-item>
<el-button @click="handleQuery">查询</el-button>
</el-form-item>
</el-form>
</div>
<div class="content">
<vue-scroll>
<div class="scroll">
<el-table v-loading="loading" :data="userList">
<el-table-column align="center"
prop="eduCourseName"
label="培训类型"
width="180">
</el-table-column>
<el-table-column align="center"
label="是否合格">
<template slot-scope="scope">
<span v-if="scope.row.isQualified == 1">合格</span>
<span v-else>不合格</span>
</template>
</el-table-column>
<el-table-column align="center"
prop="teamName"
label="班组名称"
width="180">
</el-table-column>
<el-table-column align="center"
prop="workerName"
label="人员姓名">
</el-table-column>
<el-table-column align="center"
prop="idCard"
label="身份证号">
</el-table-column>
<el-table-column align="center"
prop="age"
label="年龄">
</el-table-column>
<el-table-column align="center"
prop="studyTime"
label="培训时间">
</el-table-column>
</el-table>
<el-row type="flex" justify="center">
<pagination
v-show="total > 0"
:total="total"
:page.sync="queryParams.pageNo"
:limit.sync="queryParams.pageSize"
@pagination="getList"
layout="total, prev, pager, next, jumper"
/>
</el-row>
</div>
</vue-scroll>
</div>
</div>
</template>
<script>
import { selectSafeEducationWorkerPageApi } from '@/assets/js/api/laborPerson'
//
import {
personTypeOptions
} from "./data";
export default {
components: {},
data: () => ({
personTypeOptions:personTypeOptions,
// SN
projectSn: '',
loading:false,
//
queryParams: {
pageNo: 1,
pageSize: 10,
projectSn: undefined, // SN
workerName: undefined, //
eduType: undefined // 01234VR
},
}),
computed: {
headers() {
return { Authorization: this.$store.state.userInfo.token }
}
},
created() {
this.projectSn = this.$store.state.projectSn;
this.getList()
},
methods: {
/** 查询用户数据 */
getList() {
this.userList=[];
this.loading = true;
this.queryParams.projectSn = this.projectSn;
selectSafeEducationWorkerPageApi(this.queryParams).then(res => {
this.userList = res.result.records;
this.total = res.result.total
this.loading = false;
})
},
/** 查询 */
handleQuery() {
this.queryParams.pageNo = 1;
this.getList();
},
}
}
</script>
<style lang="scss" scoped>
.epidemicPrevention {
display: flex;
flex-direction: column;
height: 100%;
background-color: #fff;
.query {
box-sizing: border-box;
padding: 20px;
width: 100%;
height: 85px;
background-color: #fff;
border-bottom: 2px solid #f3f5fd;
}
.content {
flex: 1;
height: calc(100% - 155px);
.cell-height {
height: 80px !important;
}
.label {
color: #737996;
font-size: 14px;
}
.value {
color: #2A2E3F;
font-size: 14px;
}
//
.user-info {
display: flex;
justify-content: space-around;
height: 100%;
//
.el-image {
width: 60px;
height: 80px;
border-radius: 4px;
margin-right: 10px;
cursor: pointer
}
//
.user-info-right {
width: 120px;
display: flex;
flex-direction: column;
justify-content: space-around;
.top {
box-sizing: border-box;
display: flex;
justify-content: space-between;
align-items: center;
padding-left: 10px;
.user-name {
font-size: 15px;
font-weight: bold;
white-space: nowrap;
color: #5181F6;
}
.health-code {
display: grid;
place-items: center;
width: 42px;
height: 25px;
&.empty-code {
background-color: #f0f0f0;
color: #999;
}
&.green-code {
background-color: #edf7e8;
color: #58B024;
}
&.yellow-code {
background-color: #fcf7e5;
color: #FFCA00;
}
&.red-code {
background-color: #fbecec;
color: #B02424;
}
}
}
.user-info-bottom {
display: flex;
justify-content: space-between;
align-items: center;
font-size: 14px;
color: #737996;
}
}
}
//
.space-around {
display: flex;
flex-direction: column;
justify-content: space-around;
height: 100%;
}
}
}
/* 查询表单 按钮样式 */
.query ::v-deep .el-button,
::v-deep .border-btn.el-button {
border-color: #4E7CFF;
color: #4E7CFF;
}
.scroll {
overflow-y: auto;
}
::v-deep .el-input__inner {
height: 40px !important;
}
</style>