Merge remote-tracking branch 'origin/liujun-2024-06-06-相关方新需求' into pet

pet-人员中台对接-xuyifeng-7.24
liujun 2024-07-02 15:09:29 +08:00
commit 2ccd92f1c3
12 changed files with 909 additions and 218 deletions

View File

@ -121,7 +121,7 @@
size="mini"
@click="getUserInfo(row)">查看
</el-button>
<el-button v-if="form.CLASS_STATUS === '1'" icon="el-icon-s-open" type="primary" @click="updatePhoto(row)"></el-button>
<el-button icon="el-icon-s-open" type="primary" @click="updatePhoto(row)"></el-button>
<el-button
v-if="row.STATUS === '0' && form.CLASS_STATUS === '1'"
type="primary"

View File

@ -1,7 +1,14 @@
<template>
<el-dialog v-loading="loading" :visible.sync="visible" :title="title" :before-close="close" width="90%" top="50px">
<el-dialog
v-loading="loading"
:visible.sync="visible"
:title="title"
:fullscreen="fullscreenFlag"
:before-close="close"
width="90%"
top="50px">
<el-row>
<el-col :span="18">
<el-col :span="12">
<el-form ref="form" :rules="rules" :model="form" label-width="110px">
<el-row :gutter="10">
<el-col :span="8">
@ -52,7 +59,12 @@
</el-col>
<el-col :span="8">
<el-form-item label="班级容量" prop="CLASS_SIZE">
<el-select v-model="form.CLASS_SIZE" :disabled="isShow" placeholder="请选择" style="width: 100%" @change="changePeopleList">
<el-select
v-model="form.CLASS_SIZE"
:disabled="isShow"
placeholder="请选择"
style="width: 100%"
@change="changePeopleList">
<el-option
v-for="item in warehouse.classSizeList"
:key="item.DICTIONARIES_ID"
@ -61,27 +73,21 @@
</el-select>
</el-form-item>
</el-col>
<el-col v-if="false" :span="8">
<el-form-item v-if="false" label="培训有效期" prop="VALIDITY_PERIOD">
<el-date-picker
v-model="form.VALIDITY_PERIOD"
:disabled="isShow"
type="daterange"
value-format="yyyy-MM-dd"
range-separator="至"
start-placeholder="开始日期"
end-placeholder="结束日期"
style="width: 100%"/>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<div style="font-size: 10px; color: red">{{ '温馨提示1、输入名称、电话、身份证号按回车或让输入框失去焦点即可搜索。2、双击人员列可直接添加' }}</div>
<el-divider content-position="center">搜索条件</el-divider>
</el-col>
<el-col :span="12">
<el-form-item label="归属企业">
<el-select v-model="util.BELONG_TO_CORP" :disabled="isShow" filterable placeholder="请选择" style="width: 100%" @change="getPeopleList">
<el-select
v-model="util.BELONG_TO_CORP"
:disabled="isShow"
filterable
placeholder="请选择"
style="width: 100%"
@change="getPeopleList">
<el-option
v-for="item in warehouse.companyList"
:key="item.BELONG_TO_CORP"
@ -90,6 +96,39 @@
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="姓名">
<el-input
v-model="util.NAME"
:disabled="isShow"
style="width: 100%"
maxlength="50"
placeholder="这里输入..."
@change="getPeopleList"/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="联系电话">
<el-input
v-model="util.PHONE"
:disabled="isShow"
style="width: 100%"
maxlength="50"
placeholder="这里输入..."
@change="getPeopleList"/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="身份证号">
<el-input
v-model="util.CARD_ID"
:disabled="isShow"
style="width: 100%"
maxlength="50"
placeholder="这里输入..."
@change="getPeopleList"/>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
@ -102,59 +141,68 @@
tooltip-effect="dark"
height="450px"
border
fit
highlight-current-row
@row-dblclick="clickAddSelect"
@selection-change="updateSelect"
>
<el-table-column :reserve-selection="true" type="selection" width="55" align="center"/>
<el-table-column type="index" label="序号" width="50" align="center"/>
<el-table-column prop="USERNAME" label="用户名"/>
<el-table-column prop="NAME" label="姓名"/>
<el-table-column :reserve-selection="true" fixed type="selection" width="55" align="center"/>
<el-table-column fixed type="index" label="序号" width="50" align="center"/>
<el-table-column prop="USERNAME" width="200px" label="用户名"/>
<el-table-column prop="NAME" width="150px" label="姓名"/>
<el-table-column prop="CARD_ID" label="身份证号" width="150px"/>
<el-table-column prop="BELONG_TO_CORP_NAME" width="300px" label="所属企业"/>
<el-table-column prop="DEPARTMENT_NAME" width="300px" label="部门"/>
<el-table-column prop="SEX" width="50px" label="性别">
<template slot-scope="{row}">
{{ row.SEX === '0' ? '男' : '女' }}
</template>
</el-table-column>
<el-table-column prop="CARD_ID" label="身份证号" width="150px"/>
<el-table-column prop="BELONG_TO_CORP_NAME" label="所属企业"/>
<el-table-column prop="DEPARTMENT_NAME" label="部门"/>
<el-table-column prop="PHOTO" label="免冠照片" width="120px">
<template slot-scope="{row}">
<el-image v-if="getShowPicture(row)" :src="config.fileUrl+row.PHOTO" :preview-src-list="[config.fileUrl+row.PHOTO]" :z-index="9999" style="width: 100px; height: 100px"/>
<img v-if="!getShowPicture(row)" src="../../../../assets/images/peopleHead.png" alt="" style="width: 100px; height: 100px">
<el-image
v-if="getShowPicture(row)"
:src="config.fileUrl+row.PHOTO"
:preview-src-list="[config.fileUrl+row.PHOTO]"
:z-index="9999"
style="width: 100px; height: 100px"/>
<img
v-if="!getShowPicture(row)"
src="../../../../assets/images/peopleHead.png"
alt=""
style="width: 100px; height: 100px">
</template>
</el-table-column>
<el-table-column prop="PHONE" label="联系电话"/>
<el-table-column prop="STATUS" label="培训结果">
<el-table-column prop="PHONE" width="200px" label="联系电话"/>
<el-table-column v-if="false" prop="STATUS" label="培训结果">
<template slot-scope="{row}">
<template v-if="row.STATUS === '0'"></template>
<template v-else-if="row.STATUS === '1'">合格</template>
</template>
</el-table-column>
<el-table-column label="操作" align="center" width="200">
<el-table-column fixed="right" label="操作" align="center" width="100">
<template slot-scope="{row}">
<el-button
v-if="form.CLASS_STATUS === '2' && row.STATUS === '1'"
type="primary"
icon="el-icon-edit"
size="mini"
@click="getUserInfo(row)">查看
</el-button>
<el-button
v-if="row.STATUS === '0' && form.CLASS_STATUS === '1'"
type="primary"
icon="el-icon-edit"
size="mini"
@click="changFlag(row,'1')">合格
</el-button>
<el-button
v-if="row.STATUS == '1' && form.CLASS_STATUS === '1'"
type="danger"
icon="el-icon-delete"
size="mini"
@click="changFlag(row,'0')">不合格
</el-button>
<el-tooltip class="item" effect="dark" content="加入本次课程" placement="top-start">
<el-button
v-if="!row.isSelect"
type="warning"
icon="el-icon-plus"
circle
@click="addSelect(row)"/>
</el-tooltip>
<el-tooltip class="item" effect="dark" content="已加入本次课程" placement="top-start">
<el-button
v-if="row.isSelect"
type="success"
icon="el-icon-check"
circle/>
</el-tooltip>
<el-tooltip class="item" effect="dark" content="详情" placement="top-start">
<el-button
type="primary"
icon="el-icon-info"
circle
@click="viewUserInfo(row)"/>
</el-tooltip>
</template>
</el-table-column>
</el-table>
@ -162,44 +210,56 @@
</el-row>
</el-form>
</el-col>
<el-col :span="6">
<el-col :span="12">
<div style="margin-left: 10px">
<div>已选择人员数量{{ ($refs.multipleTable && $refs.multipleTable.selection)?$refs.multipleTable.selection.length:0 }}</div>
<div>已选择人员数量{{
(selectPeopleList && selectPeopleList.length) ? selectPeopleList.length : 0
}}
</div>
<div class="el-form-item__label">已选择人员名称</div>
<el-table
:data="selectPeopleList"
border
height="600px"
height="642px"
style="width: 100%;margin-left: 10px">
<el-table-column prop="NAME" fixed label="姓名" width="150px" style="width: 150px"/>
<el-table-column prop="NAME" fixed label="姓名" width="100px" style="width: 150px"/>
<el-table-column prop="USERNAME" label="用户名" width="150px" style="width: 150px"/>
<el-table-column prop="BELONG_TO_CORP_NAME" label="所属企业" width="150px" style="width: 150px"/>
<el-table-column prop="CARD_ID" label="身份证号" width="150px"/>
<el-table-column prop="BELONG_TO_CORP_NAME" label="所属企业" width="200px" style="width: 150px"/>
<el-table-column prop="CARD_ID" label="身份证号" width="200px"/>
<el-table-column fixed="right" label="操作" align="center">
<template slot-scope="{row}">
<el-tooltip class="item" effect="dark" content="删除" placement="top-start">
<el-button type="danger" icon="el-icon-delete" circle @click="deleteSelect(row)"/>
</el-tooltip>
<el-tooltip class="item" effect="dark" content="详情" placement="top-start">
<el-button type="primary" icon="el-icon-info" circle @click="viewUserInfo(row)"/>
</el-tooltip>
</template>
</el-table-column>
</el-table>
</div>
</el-col>
</el-row>
<div slot="footer" class="dialog-footer">
<el-button @click="close"> </el-button>
<el-button v-if="!form.CLASS_STATUS || form.CLASS_STATUS === ''" type="primary" @click="confirm"> </el-button>
<el-button v-if="form.CLASS_STATUS === '0' || form.CLASS_STATUS === '1'" type="primary" @click="getExcel(form.CLASS_MESSAGE_ID)">excel</el-button>
<el-button v-if="form.CLASS_STATUS === '1'" type="primary" @click="graduation(form.CLASS_MESSAGE_ID)"></el-button>
<el-button v-if="form.CLASS_STATUS === '2'" type="primary" @click="getCertificate(form.CLASS_MESSAGE_ID)"></el-button>
<el-button @click="fullscreen">{{ fullscreenFlag ? '' : ' ' }}</el-button>
<el-button type="primary" @click="confirm"> </el-button>
</div>
<user ref="userInfo" append-to-body/>
<user_pdf ref="userPdf" append-to-body/>
<user-info ref="userInfos" append-to-body/>
</el-dialog>
</template>
<script>
import Pagination from '@/components/Pagination' // el-pagination
import { requestFN } from '@/utils/request'
import waves from '@/directive/waves' // waves directive
import axios from 'axios'
import dayjs from 'dayjs' // waves directive
import user from './user.vue'
import User_pdf from './user_pdf.vue'
import UserInfo from '../../../xgf/flow_audit/userInfo.vue'
export default {
components: { User_pdf, Pagination, user },
components: { UserInfo, User_pdf, Pagination, user },
directives: { waves },
props: {
title: {
@ -224,10 +284,16 @@ export default {
CLASS_SIZE: '', //
CLASS_STATUS: '', // 0-1-2-
VALIDITY_PERIOD: [],
CLASS_MESSAGE_ID: ''
CLASS_MESSAGE_ID: '',
peopleList: []
},
util: {
BELONG_TO_CORP: ''
BELONG_TO_CORP: '',
NAME: '',
PHONE: '',
CARD_ID: '',
EDIT_FLAG: '',
CLASS_MESSAGE_ID: ''
},
warehouse: {
placeList: [],
@ -254,7 +320,9 @@ export default {
VALIDITY_PERIOD: [{ trigger: 'blur', required: true, message: '请选择时间区间' }]
},
peopleList: [],
selectPeopleList: []
selectPeopleList: [],
fullscreenFlag: false,
lock: false
}
},
created() {
@ -264,6 +332,8 @@ export default {
this.loading = true
this.visible = true
if (e && e.CLASS_MESSAGE_ID && e.CLASS_MESSAGE_ID !== '') {
this.util.EDIT_FLAG = '1'
this.util.CLASS_MESSAGE_ID = e.CLASS_MESSAGE_ID
this.getInformation(e)
} else {
this.getPeopleList()
@ -282,10 +352,16 @@ export default {
return
}
this.selectPeopleList = rows
for (let i = 0; i < this.selectPeopleList.length; i++) {
this.selectPeopleList[i].isSelect = true
}
if (!this.lock) {
this.getPeopleList()
}
}
},
confirm() {
const list = this.$refs.multipleTable.selection
const list = this.selectPeopleList
if (!list || !list.length || list.length === 0) {
this.$message.error('没有人员数据')
return
@ -317,6 +393,7 @@ export default {
})
},
close() {
console.log('清理缓存')
this.visible = false
this.form = {
CLASS_NAME: '', //
@ -327,7 +404,14 @@ export default {
CLASS_STATUS: ''// 0-1-2-
}
this.selectPeopleList = []
this.util.BELONG_TO_CORP = ''
this.util = {
BELONG_TO_CORP: '',
NAME: '',
PHONE: '',
CARD_ID: '',
EDIT_FLAG: '',
CLASS_MESSAGE_ID: ''
}
this.$refs.multipleTable.clearSelection()
},
getDic() {
@ -379,8 +463,17 @@ export default {
} else {
pageSize = this.form.CLASS_SIZE
}
requestFN('/classMessage/getPeopleList?showCount=' + pageSize + '&currentPage=1', { BELONG_TO_CORP: this.util.BELONG_TO_CORP }).then((data) => {
this.peopleList = data.varList
requestFN('/classMessage/getPeopleList?showCount=' + pageSize + '&currentPage=1', this.util).then((data) => {
const _peopleList = data.varList
if (data.varList && data.varList.length > 0) {
_peopleList.forEach((item) => {
const list = this.selectPeopleList.filter(ver => ver.USER_ID === item.USER_ID)
if (list && list.length > 0) {
item.isSelect = true
}
})
}
this.peopleList = _peopleList
this.loading = false
}).catch((e) => {
this.loading = false
@ -392,7 +485,12 @@ export default {
if (data.code === '0') {
this.form = data.pd
this.form.VALIDITY_PERIOD = [this.form.VALIDITY_PERIOD_START, this.form.VALIDITY_PERIOD_END]
this.peopleList = this.form.peopleList
this.selectPeopleList = this.form.peopleList
this.$refs.multipleTable.selection = this.form.peopleList
this.form.peopleList.forEach(row => {
this.$refs.multipleTable.toggleRowSelection(row)
})
this.getPeopleList()
} else {
this.$message.error('数据异常')
}
@ -401,82 +499,10 @@ export default {
this.loading = false
})
},
getExcel(id) {
const loading = this.$loading({
lock: true,
text: '加载中...',
spinner: 'el-icon-loading',
background: 'rgba(0, 0, 0, 0.7)'
})
axios.get(config.httpurl + '/classMessage/excel?CLASS_MESSAGE_ID=' + id, {
responseType: 'blob'
}).then(res => {
setTimeout(() => {
const blob = new Blob([res.data], { type: 'application/vnd.ms-excel' })
const downloadElement = document.createElement('a')
const href = window.URL.createObjectURL(blob)
downloadElement.style.display = 'none'
downloadElement.href = href
downloadElement.download = dayjs().format('YYYY-MM-DD HH:mm:ss')
document.body.appendChild(downloadElement)
downloadElement.click()
document.body.removeChild(downloadElement)
window.URL.revokeObjectURL(href)
this.$emit('getResult', '')
loading.close()
this.close()
}, 2000)
}).catch((e) => {
console.log(e)
loading.close()
this.$message.error('导出失败,或未查询到隐患')
})
},
changFlag(row, flag) {
row.STATUS = flag
requestFN('/classMessage/enterGrades', { CLASS_INFO_ID: row.CLASS_INFO_ID, STATUS: flag })
.then((data) => {
this.$message({
type: 'success',
message: '操作成功'
})
this.$emit('getResult', '')
}).catch((e) => {
})
},
graduation(id) {
this.$confirm('确定要结业吗, 结业后成绩将无法更改', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
requestFN('/classMessage/graduation', { CLASS_MESSAGE_ID: id })
.then((data) => {
this.$message({
type: 'success',
message: '操作成功'
})
this.visible = false
this.loading = false
this.close()
this.$emit('getResult', '')
}).catch((e) => {
this.loading = false
})
}).catch(() => {
this.$message({
type: 'info',
message: '已取操作'
})
})
},
getUserInfo(row) {
console.log(row)
this.$refs.userInfo.init(row)
},
getCertificate(CLASS_MESSAGE_ID) {
this.$refs.userPdf.init({ CLASS_MESSAGE_ID: CLASS_MESSAGE_ID })
},
changePeopleList() {
requestFN('/classMessage/getPeopleList?showCount=' + this.form.CLASS_SIZE + '&currentPage=1',
{ BELONG_TO_CORP: this.util.BELONG_TO_CORP }
@ -492,8 +518,52 @@ export default {
},
getShowPicture(row) {
return row.PHOTO && row.PHOTO !== ''
},
fullscreen() {
this.fullscreenFlag = !this.fullscreenFlag
},
addSelect(row) {
if (this.form.CLASS_SIZE === '' || !this.form.CLASS_SIZE) {
this.$message.error('请先选择班级容量')
this.$refs.multipleTable.clearSelection()
return
}
this.selectPeopleList.push(row)
this.$refs.multipleTable.toggleRowSelection(row)
},
clickAddSelect(row, column, event) {
if (!row.isSelect) {
this.addSelect(row)
}
},
deleteSelect(row) {
this.selectPeopleList = this.selectPeopleList.filter(ver => ver.USER_ID !== row.USER_ID)
this.form.peopleList = this.form.peopleList.filter(ver => ver.USER_ID !== row.USER_ID)
//
this.$refs.multipleTable.clearSelection()
this.lock = true
this.form.peopleList.forEach(row => {
this.$refs.multipleTable.toggleRowSelection(row)
})
this.getPeopleList()
this.lock = false
},
viewUserInfo(row) {
this.$refs.userInfos.init({ XGF_USER_ID: row.USER_ID })
}
}
}
</script>
<style lang="scss" scoped>
/* 设置默认高度-滚动条高度 */
.el-table__fixed {
height: calc(100% - 15px) !important;
}
/* 用于消除固定列下方的伪元素边框线 */
.el-table__fixed:before {
height: 0px;
}
</style>

View File

@ -71,12 +71,19 @@
{{ row.CLASS_STATUS === '0'?'待开班':(row.CLASS_STATUS === '1'?'已开班':'完成') }}
</template>
</el-table-column>
<el-table-column label="操作" align="center" width="400" fixed="right">
<el-table-column label="操作" align="center" width="360" fixed="right">
<template slot-scope="{row}">
<el-button type="primary" icon="el-icon-edit" size="mini" @click="handleEdit(row.CLASS_MESSAGE_ID)"></el-button>
<el-button v-show=" row.CLASS_STATUS === '0'" type="danger" icon="el-icon-delete" size="mini" @click="handleDelete(row.CLASS_MESSAGE_ID)"></el-button>
<el-button v-show=" row.CLASS_STATUS === '1'" type="primary" size="mini" @click="uploadExcel(row)"></el-button>
<el-button v-show=" row.CLASS_STATUS === '0'" type="primary" icon="el-icon-edit" size="mini" @click="changeName(row)"></el-button>
<el-row>
<el-col :span="24" style="margin-bottom: 10px">
<el-button type="primary" icon="el-icon-edit" size="mini" @click="handleEdit(row.CLASS_MESSAGE_ID)"></el-button>
<el-button v-if=" row.CLASS_STATUS === '0'" type="primary" icon="el-icon-edit" size="mini" @click="handleInit(row.CLASS_MESSAGE_ID)"></el-button>
<el-button v-if=" row.CLASS_STATUS === '0'" type="danger" icon="el-icon-delete" size="mini" @click="handleDelete(row.CLASS_MESSAGE_ID)"></el-button>
</el-col>
<el-col :span="24">
<el-button v-if=" row.CLASS_STATUS === '1'" type="primary" size="mini" @click="uploadExcel(row)"></el-button>
<el-button v-if=" row.CLASS_STATUS === '0'" type="primary" icon="el-icon-edit" size="mini" @click="changeName(row)"></el-button>
</el-col>
</el-row>
</template>
</el-table-column>
</el-table>
@ -193,6 +200,11 @@ export default {
this.isShow = true
this.$refs.edit.init({ CLASS_MESSAGE_ID: ID })
},
handleInit(ID) {
this.title = '详情'
this.isShow = false
this.$refs.initClass.init({ CLASS_MESSAGE_ID: ID })
},
handleDelete(id) {
this.$confirm('确定要删除吗?', {
confirmButtonText: '确定',

View File

@ -75,6 +75,22 @@
<td class="bbg">动火作业实施时间</td>
<td colspan="3">{{ pd.WORK_START_DATE }}{{ pd.WORK_END_DATE }}</td>
</tr>
<tr v-if="pd.FIRE_COMPLETED === '1' && pd.SITE_CLEANED === '1'">
<td class="bbg">动火是否完成</td>
<td>
<span>已完成</span>
</td>
<td class="bbg">动火是否完成</td>
<td>
<span>已清理</span>
</td>
</tr>
<tr v-if="pd.NO_REMAINING_EMBERS === '1'">
<td class="bbg">是否存在遗留火种</td>
<td>
<span>无遗留火种</span>
</td>
</tr>
<tr>
<td colspan="4">
<table class="table-ui">
@ -146,13 +162,25 @@
<tr>
<td class="bbg">接受交底人</td>
<td colspan="10">
<div v-for="item in imgList" :key="item.ACCEPT_CONFESS_ID" style="text-align: right">
<span>签字</span>
<img v-viewer :src="config.fileUrl + item.ACCEPT_CONFESS_USER_SIGNER_PATH" alt="" width="100" height="100">
<span>{{ item.ACCEPT_CONFESS_USER_SIGNER_TIME }}</span>
<div v-for="item in acceptConfessList" :key="item.USER_ID">
<div v-for="(signature, index) in item.APPROVAL_SIGNATURE" :key="index" style="text-align: right">
<span>签字</span>
<img v-viewer :src="config.fileUrl + signature.trim()" alt="" width="100" height="100">
<span>{{ item.APPROVAL_SIGNATURE_TIME.split(',')[0] }}</span>
</div>
</div>
</td>
</tr>
<!-- <tr>-->
<!-- <td class="bbg">接受交底人</td>-->
<!-- <td colspan="10">-->
<!-- <div v-for="item in imgList" :key="item.ACCEPT_CONFESS_ID" style="text-align: right">-->
<!-- <span>签字</span>-->
<!-- <img v-viewer :src="config.fileUrl + item.ACCEPT_CONFESS_USER_SIGNER_PATH" alt="" width="100" height="100">-->
<!-- <span>{{ item.ACCEPT_CONFESS_USER_SIGNER_TIME }}</span>-->
<!-- </div>-->
<!-- </td>-->
<!-- </tr>-->
<tr>
<td class="bbg">监护人</td>
<td colspan="3">
@ -175,7 +203,7 @@
</tr>
<tr v-if="pd.CONFIRM_USER_SIGNER_PATH">
<td colspan="6">
<div>作业负责人意见{{ pd.CONFIRM_CONTENT }}</div>
<div>作业负责人意见{{ pd.CONFIRM_CONTENT === '无' ? '同意' : pd.CONFIRM_CONTENT }}</div>
<div style="text-align: right">
<span>签字</span>
<img v-viewer :src="config.fileUrl + pd.CONFIRM_USER_SIGNER_PATH" alt="" width="100" height="100">
@ -185,7 +213,7 @@
</tr>
<tr v-if="pd.BELONGING_SIGNATURE">
<td colspan="6">
<div>项目主管部门负责人意见{{ pd.BELONGING_OPINIONS }}</div>
<div>项目主管部门负责人意见{{ pd.BELONGING_OPINIONS === '' ? '同意' : pd.BELONGING_OPINIONS }}</div>
<div style="text-align: right">
<span>签字</span>
<img v-viewer :src="config.fileUrl + pd.BELONGING_SIGNATURE" alt="" width="100" height="100">
@ -195,7 +223,7 @@
</tr>
<tr v-if="pd.LEADER_USER_SIGNER_PATH">
<td colspan="6">
<div>所在单位意见{{ pd.LEADER_CONTENT }}</div>
<div>属地监管单位意见{{ pd.LEADER_CONTENT === '无' ? '同意' : pd.LEADER_CONTENT }}</div>
<div style="text-align: right">
<span>签字</span>
<img v-viewer :src="config.fileUrl + pd.LEADER_USER_SIGNER_PATH" alt="" width="100" height="100">
@ -205,7 +233,7 @@
</tr>
<tr v-if="pd.AUDIT_USER_SIGNER_PATH">
<td colspan="6">
<div>安全管理部门意见{{ pd.AUDIT_CONTENT }}</div>
<div>安全管理部门意见{{ pd.AUDIT_CONTENT === '无' ? '同意' : pd.AUDIT_CONTENT }}</div>
<div style="text-align: right">
<span>签字</span>
<img v-viewer :src="config.fileUrl + pd.AUDIT_USER_SIGNER_PATH" alt="" width="100" height="100">
@ -215,7 +243,7 @@
</tr>
<tr v-if="pd.APPROVE_USER_SIGNER_PATH">
<td colspan="6">
<div>动火审批人意见{{ pd.APPROVE_CONTENT }}</div>
<div>动火审批人意见{{ pd.APPROVE_CONTENT === '无' ? '同意' : pd.APPROVE_CONTENT }}</div>
<div style="text-align: right">
<span>签字</span>
<img v-viewer :src="config.fileUrl + pd.APPROVE_USER_SIGNER_PATH" alt="" width="100" height="100">
@ -225,7 +253,7 @@
</tr>
<tr v-if="pd.MONITOR_USER_SIGNER_PATH">
<td colspan="6">
<div>动火前验票负责人{{ pd.MONITOR_CONTENT }}</div>
<div>动火前验票负责人{{ pd.MONITOR_CONTENT === '无' ? '同意' : pd.MONITOR_CONTENT }}</div>
<div style="text-align: right">
<span>签字</span>
<img v-viewer :src="config.fileUrl + pd.MONITOR_USER_SIGNER_PATH" alt="" width="100" height="100">
@ -235,7 +263,7 @@
</tr>
<tr v-if="imgList1.length>0">
<td colspan="10">
<div>完工验收{{ pd.ACCEPT_CONTENT }}</div>
<div>完工验收{{ pd.ACCEPT_CONTENT === '无' ? '同意' : pd.ACCEPT_CONTENT }}</div>
<div v-for="item in imgList1" :key="item.ACCEPT_CONFESS_ID" style="text-align: right">
<span>签字</span>
<img v-viewer :src="config.fileUrl + item.ACCEPT_USER_SIGNER_PATH" alt="" width="100" height="100">
@ -267,6 +295,7 @@ export default {
imgList: [],
imgList1: [],
otherProtectiveMeasures: [],
acceptConfessList: [],
confessList: []
}
},
@ -312,23 +341,37 @@ export default {
this.confessList.push(item)
}
})
for (let i = 0; i < data.measuresList.length; i++) {
//
const PROTECTIVE_MEASURES = data.measuresList[i].PROTECTIVE_MEASURES.split('')
for (let j = 1; j <= 3; j++) {
//
if (this.findCharIndex(PROTECTIVE_MEASURES, '', j) !== -1) {
//
PROTECTIVE_MEASURES.splice(
this.findCharIndex(PROTECTIVE_MEASURES, '', j) + 1,
0,
data.measuresList[i]['ANSWER' + j]
)
}
// data.pd.acceptConfessList.forEach(item => {
// if (item.APPROVAL_SIGNATURE_TIME !== undefined && item.APPROVAL_SIGNATURE_TIME.trim() !== '') {
// this.acceptConfessList.push(item)
// }
// })
data.pd.acceptConfessList.forEach(item => {
// APPROVAL_SIGNATURE
if (item.APPROVAL_SIGNATURE) {
item.APPROVAL_SIGNATURE = item.APPROVAL_SIGNATURE.split(';')
}
//
data.measuresList[i].PROTECTIVE_MEASURES = PROTECTIVE_MEASURES.join('')
}
if (item.APPROVAL_SIGNATURE_TIME !== undefined && item.APPROVAL_SIGNATURE_TIME.trim() !== '') {
this.acceptConfessList.push(item)
}
})
// for (let i = 0; i < data.measuresList.length; i++) {
// //
// const PROTECTIVE_MEASURES = data.measuresList[i].PROTECTIVE_MEASURES.split('')
// for (let j = 1; j <= 3; j++) {
// //
// if (this.findCharIndex(PROTECTIVE_MEASURES, '', j) !== -1) {
// //
// PROTECTIVE_MEASURES.splice(
// this.findCharIndex(PROTECTIVE_MEASURES, '', j) + 1,
// 0,
// data.measuresList[i]['ANSWER' + j]
// )
// }
// }
// //
// data.measuresList[i].PROTECTIVE_MEASURES = PROTECTIVE_MEASURES.join('')
// }
this.measuresList = data.measuresList // map
this.gasList = data.gasList // map
if (this.pd.WORK_LEVEL === '二级') {

View File

@ -52,14 +52,14 @@
<template slot-scope="{row}">
<span v-if="row.APPLY_STATUS==0"></span>
<span v-else-if="row.APPLY_STATUS==1">作业负责人待审核</span>
<span v-else-if="row.APPLY_STATUS==1.5">项目负责人待审核</span>
<span v-else-if="row.APPLY_STATUS==1.5">项目主管部门待审核</span>
<span v-else-if="row.APPLY_STATUS==2">属地监管单位待审核</span>
<span v-else-if="row.APPLY_STATUS==4">安全管理部门待审核</span>
<span v-else-if="row.APPLY_STATUS==5">动火审批人待审核</span>
<span v-else-if="row.APPLY_STATUS==6">班长待验票</span>
<span v-else-if="row.APPLY_STATUS==7">待验收</span>
<span v-else-if="row.APPLY_STATUS==8">验收归档</span>
<span v-else-if="row.APPLY_STATUS==-1.5">项目负责人审核打回</span>
<span v-else-if="row.APPLY_STATUS==-1.5">项目主管部门审核打回</span>
<span v-else-if="row.APPLY_STATUS==-2">作业负责人审核打回</span>
<span v-else-if="row.APPLY_STATUS==-4">所在单位审核打回</span>
<span v-else-if="row.APPLY_STATUS==-5">安全管理部门审核打回</span>

View File

@ -73,27 +73,31 @@
<tr>
<td>序号</td>
<td>安全措施</td>
<td style="width: 80px; text-align: center">是否涉及</td>
<td style="width: 80px; text-align: center">确认人</td>
<td style="width: 80px; text-align: center;">是否涉及</td>
<td style="width: 80px; text-align: center;">确认人</td>
</tr>
<tr v-for="(item,index) in measuresList" :key="index">
<td>{{ index + 1 }}</td>
<tr v-for="(item, index) in measuresList" :key="index">
<td style="text-align: center;">{{ index + 1 }}</td>
<td>
{{ item.PROTECTIVE_MEASURES }}
<!-- <template v-if="item.QUESTION1">-->
<!-- {{ item.QUESTION1 }}({{ item.ANSWER1 }})-->
<!-- </template>-->
<!-- <template v-if="item.QUESTION2">-->
<!-- {{ item.QUESTION2 }}({{ item.ANSWER2 }}) {{ item.QUESTION3 }}({{ item.ANSWER3 }})-->
<!-- </template>-->
<!--
<template v-if="item.QUESTION1">
{{ item.QUESTION1 }}({{ item.ANSWER1 }})
</template>
<template v-if="item.QUESTION2">
{{ item.QUESTION2 }}({{ item.ANSWER2 }}) {{ item.QUESTION3 }}({{ item.ANSWER3 }})
</template>
-->
</td>
<td>
<span v-if="item.STATUS=='1'"><input type="radio" disabled checked>&nbsp;&nbsp;&nbsp;</span>
<span v-if="item.STATUS=='-1'"><input type="radio" disabled checked>不涉及</span>
</td>
<td>
{{ item.CONFIRM_NAME }}
<td style="text-align: center;">
<span v-if="item.STATUS == '1'">
<input type="radio" disabled checked>&nbsp;&nbsp;&nbsp;
</span>
<span v-if="item.STATUS == '-1'">
<input type="radio" disabled checked>不涉及
</span>
</td>
<td style="text-align: center;">{{ item.CONFIRM_NAME }}</td>
</tr>
<tr v-if="pd.SAFETY_USER_MEASURES || pd.CONFIRM_OTHER_CONTENT || pd.BELONGING_USER_MEASURES || pd.GUARDIAN_USER_MEASURES || pd.LEADER_USER_MEASURES
|| pd.AUDIT_USER_MEASURES || pd.APPROVE_USER_MEASURES || pd.MONITOR_USER_MEASURES">
@ -141,13 +145,25 @@
<tr>
<td class="bbg-transparent">接受交底人</td>
<td colspan="10">
<div v-for="item in imgList" :key="item.ACCEPT_CONFESS_ID" style="text-align: right">
<span>签字</span>
<img v-viewer :src="config.fileUrl + item.ACCEPT_CONFESS_USER_SIGNER_PATH" alt="" width="100" height="100">
<span>{{ item.ACCEPT_CONFESS_USER_SIGNER_TIME }}</span>
<div v-for="item in acceptConfessList" :key="item.USER_ID">
<div v-for="(signature, index) in item.APPROVAL_SIGNATURE" :key="index" style="text-align: right">
<span>签字</span>
<img v-viewer :src="config.fileUrl + signature.trim()" alt="" width="100" height="100">
<span>{{ item.APPROVAL_SIGNATURE_TIME.split(',')[0] }}</span>
</div>
</div>
</td>
</tr>
<!-- <tr>-->
<!-- <td class="bbg-transparent">接受交底人</td>-->
<!-- <td colspan="10">-->
<!-- <div v-for="item in imgList" :key="item.ACCEPT_CONFESS_ID" style="text-align: right">-->
<!-- <span>签字</span>-->
<!-- <img v-viewer :src="config.fileUrl + item.ACCEPT_CONFESS_USER_SIGNER_PATH" alt="" width="100" height="100">-->
<!-- <span>{{ item.ACCEPT_CONFESS_USER_SIGNER_TIME }}</span>-->
<!-- </div>-->
<!-- </td>-->
<!-- </tr>-->
<tr>
<td class="bbg-transparent">监护人</td>
<td colspan="3">
@ -170,7 +186,7 @@
</tr>
<tr v-if="pd.CONFIRM_USER_SIGNER_PATH">
<td colspan="6">
<div>作业负责人意见{{ pd.CONFIRM_CONTENT }}</div>
<div>作业负责人意见{{ pd.CONFIRM_CONTENT === '无' ? '同意' : pd.CONFIRM_CONTENT }}</div>
<div style="text-align: right">
<span>签字</span>
<img v-viewer :src="config.fileUrl + pd.CONFIRM_USER_SIGNER_PATH" alt="" width="100" height="100">
@ -180,7 +196,7 @@
</tr>
<tr v-if="pd.BELONGING_SIGNATURE">
<td colspan="6">
<div>项目主管部门负责人意见{{ pd.BELONGING_OPINIONS }}</div>
<div>项目主管部门负责人意见{{ pd.BELONGING_OPINIONS === '' ? '同意' : pd.BELONGING_OPINIONS }}</div>
<div style="text-align: right">
<span>签字</span>
<img v-viewer :src="config.fileUrl + pd.BELONGING_SIGNATURE" alt="" width="100" height="100">
@ -190,7 +206,7 @@
</tr>
<tr v-if="pd.LEADER_USER_SIGNER_PATH">
<td colspan="6">
<div>属地监管单位意见{{ pd.LEADER_CONTENT }}</div>
<div>属地监管单位意见{{ pd.LEADER_CONTENT === '无' ? '同意' : pd.LEADER_CONTENT }}</div>
<div style="text-align: right">
<span>签字</span>
<img v-viewer :src="config.fileUrl + pd.LEADER_USER_SIGNER_PATH" alt="" width="100" height="100">
@ -200,7 +216,7 @@
</tr>
<tr v-if="pd.AUDIT_USER_SIGNER_PATH">
<td colspan="6">
<div>安全管理部门意见{{ pd.AUDIT_CONTENT }}</div>
<div>安全管理部门意见{{ pd.AUDIT_CONTENT === '无' ? '同意' : pd.AUDIT_CONTENT}}</div>
<div style="text-align: right">
<span>签字</span>
<img v-viewer :src="config.fileUrl + pd.AUDIT_USER_SIGNER_PATH" alt="" width="100" height="100">
@ -210,7 +226,7 @@
</tr>
<tr v-if="pd.APPROVE_USER_SIGNER_PATH">
<td colspan="6">
<div>动火审批人意见{{ pd.APPROVE_CONTENT }}</div>
<div>动火审批人意见{{ pd.APPROVE_CONTENT === '无' ? '同意' : pd.APPROVE_CONTENT}}</div>
<div style="text-align: right">
<span>签字</span>
<img v-viewer :src="config.fileUrl + pd.APPROVE_USER_SIGNER_PATH" alt="" width="100" height="100">
@ -220,7 +236,7 @@
</tr>
<tr v-if="pd.MONITOR_USER_SIGNER_PATH">
<td colspan="6">
<div>动火前验票负责人{{ pd.MONITOR_CONTENT }}</div>
<div>动火前验票负责人{{ pd.MONITOR_CONTENT === '无' ? '同意' : pd.MONITOR_CONTENT}}</div>
<div style="text-align: right">
<span>签字</span>
<img v-viewer :src="config.fileUrl + pd.MONITOR_USER_SIGNER_PATH" alt="" width="100" height="100">
@ -230,7 +246,7 @@
</tr>
<tr v-if="imgList1.length>0">
<td colspan="10">
<div>完工验收{{ pd.ACCEPT_CONTENT }}</div>
<div>完工验收{{ pd.ACCEPT_CONTENT === '无' ? '同意' : pd.ACCEPT_CONTENT}}</div>
<div v-for="item in imgList1" :key="item.ACCEPT_CONFESS_ID" style="text-align: right">
<span>签字</span>
<img v-viewer :src="config.fileUrl + item.ACCEPT_USER_SIGNER_PATH" alt="" width="100" height="100">
@ -273,6 +289,7 @@ export default {
imgList: [],
imgList1: [],
otherProtectiveMeasures: [],
acceptConfessList: [],
confessList: []
}
},
@ -320,6 +337,20 @@ export default {
this.confessList.push(item)
}
})
// data.pd.acceptConfessList.forEach(item => {
// if (item.APPROVAL_SIGNATURE_TIME !== undefined && item.APPROVAL_SIGNATURE_TIME.trim() !== '') {
// this.acceptConfessList.push(item)
// }
// })
data.pd.acceptConfessList.forEach(item => {
// APPROVAL_SIGNATURE
if (item.APPROVAL_SIGNATURE) {
item.APPROVAL_SIGNATURE = item.APPROVAL_SIGNATURE.split(';')
}
if (item.APPROVAL_SIGNATURE_TIME !== undefined && item.APPROVAL_SIGNATURE_TIME.trim() !== '') {
this.acceptConfessList.push(item)
}
})
for (let i = 0; i < data.measuresList.length; i++) {
//
const PROTECTIVE_MEASURES = data.measuresList[i].PROTECTIVE_MEASURES.split('')

View File

@ -0,0 +1,257 @@
<template>
<div class="app-container">
<el-form :model="ruleForm" :rules="rules" label-width="130px">
<el-row>
<el-col :span="6">
<el-form-item label="人员名称" prop="name" class="input-width">
<el-input v-model="ruleForm.name" placeholder="请输入人员名称"/>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="身份证号" prop="cardId">
<el-input v-model="ruleForm.cardId" placeholder="请输入身份证号"/>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label-width="10px">
<el-button v-waves class="filter-item" type="primary" icon="el-icon-search" @click="getQuery">
搜索
</el-button>
<el-button v-waves class="filter-item" type="success" icon="el-icon-refresh" @click="goKeyReset">
重置
</el-button>
</el-form-item>
</el-col>
</el-row>
</el-form>
<el-table
ref="multipleTable"
:data="varList"
:header-cell-style="{'font-weight': 'bold','color': '#000'}"
tooltip-effect="dark"
border
fit
highlight-current-row>
<el-table-column :selectable="handleSelectWithDifferentStatus" type="selection" width="55" align="center"/>
<el-table-column type="index" label="序号" width="50" align="center"/>
<el-table-column prop="username" label="用户名" align="center"/>
<el-table-column prop="cardId" label="身份证号" align="center"/>
<el-table-column prop="name" label="人员名称" align="center"/>
<el-table-column prop="corpName" label="企业名称" align="center"/>
<el-table-column label="操作" align="center" width="250">
<template slot-scope="{row}">
<el-button type="primary" icon="el-icon-s-claim" size="mini" @click="dosubmit([row])"></el-button>
</template>
</el-table-column>
</el-table>
<el-dialog
:visible.sync="dialogVisible"
title="请选择入住企业"
width="30%">
<el-select
v-model="corpinfoId"
:remote-method="remoteMethod"
:loading="loading"
filterable
remote
reserve-keyword
placeholder="请选择入住企业">
<el-option
v-for="item in options"
:key="item.value"
:label="item.label"
:value="item.value"/>
</el-select>
<span slot="footer" class="dialog-footer">
<el-button @click="dialogVisible = false"> </el-button>
<el-button type="primary" @click="doCheckIn"> </el-button>
</span>
</el-dialog>
<div class="page-btn-group">
<div/>
<pagination :total="total" :page.sync="listQuery.page" :limit.sync="listQuery.limit" @pagination="getList"/>
</div>
</div>
</template>
<script>
import Pagination from '@/components/Pagination' // el-pagination
import { requestFN } from '@/utils/request'
import waves from '@/directive/waves' // waves directive
export default {
components: { Pagination },
directives: { waves },
data() {
return {
rules: {
name: [{ required: true, message: '姓名不能为空', trigger: 'blur' }],
cardId: [{ required: true, message: '身份证号不能为空', trigger: 'blur' }]
},
ruleForm: { name: '', cardId: '' },
config: config,
listQuery: {
page: 1,
limit: 10
},
total: 0,
varList: [],
dialogVisible: false,
rowuser: {},
corpinfoId: '',
loading: false,
options: []
}
},
created() {
// this.getDict()
// this.getList()
this.remoteMethod('河北')
},
methods: {
handleSelectWithDifferentStatus(row, rowIndex) {
return true
},
getQuery() {
if (this.ruleForm.name === '') {
this.$message.error('请填写人员名称')
return false
}
if (this.ruleForm.cardId === '') {
this.$message.error('请填写身份证号')
return false
}
if (this.$refs.multipleTable) {
this.$refs.multipleTable.clearSelection()
}
this.listQuery = {
page: 1,
limit: 10
}
this.getList()
},
goKeyReset() {
this.ruleForm.cardId = ''
this.ruleForm.name = ''
this.varList = []
},
getList() {
this.listLoading = true
requestFN(
'/xgf/coerce/getUserListByIdCardAndName?showCount=' + this.listQuery.limit + '&currentPage=' + this.listQuery.page,
{
cardId: this.ruleForm.cardId,
name: this.ruleForm.name,
UN_EMPLOY_FLAG: '0'
}
).then((data) => {
this.listLoading = false
this.varList = data.varList
if (this.varList.length === 0) {
this.$message.error('没有相关人员信息')
}
this.total = data.page.totalResult
})
.catch((e) => {
this.listLoading = false
})
},
remoteMethod(query) {
if (query !== '') {
// this.loading = true
/* setTimeout(() => {
this.loading = false
this.options = this.list.filter(item => {
return item.label.toLowerCase()
.indexOf(query.toLowerCase()) > -1
})
}, 200) */
requestFN(
'/xgf/coerce/findModuleList',
{
keyword: query
}
).then((data) => {
// this.loading = false
this.options = []
data.varList.forEach(v => {
const obj = {
value: v.CORPINFO_ID,
label: v.RELEVANT_UNIT_NAME
}
this.options.push(obj)
})
})
.catch((e) => {
// this.loading = false
})
} else {
this.options = []
this.remoteMethod('河北')
}
},
dosubmit(row) {
this.rowuser = {
name: row[0].name,
userId: row[0].userId
}
/* if (this.corpinfoId === '') {
this.dialogVisible = true
} else {
this.doCheckIn()
} */
this.dialogVisible = true
},
doCheckIn() {
if (this.corpinfoId === '') {
this.$message({
message: '请选择入住企业',
type: 'warning'
})
return
}
this.dialogVisible = false
this.$confirm('确定要将 ' + this.rowuser.name + ' 拉入企业吗?', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
this.listLoading = true
requestFN(
'/xgf/coerce/doCoerceCheckIn',
{
userId: this.rowuser.userId,
corpinfoId: this.corpinfoId
}
).then((e) => {
console.log(e)
if (e.msg === '1') {
this.$message({
message: '当前人员已经在企业中',
type: 'warning'
})
} else {
this.$message({
message: '拉入成功',
type: 'success'
})
this.getQuery()
}
this.listLoading = false
}).catch((e) => {
this.listLoading = false
})
}).catch(() => {})
}
}
}
</script>

View File

@ -0,0 +1,21 @@
<template>
<component :is="activeName" />
</template>
<script>
import List from './components/list'
export default {
components: {
List: List
},
data() {
return {
activeName: 'List',
SUPERVISE_CORPINFO_ID: ''
}
}
}
</script>
<style scoped>
</style>

View File

@ -0,0 +1,102 @@
<template>
<div class="app-container">
<el-form label-width="130px">
<el-row>
<el-col :span="6">
<el-form-item label="用户名">
<el-input v-model="NAME" placeholder="请输入用户名"/>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label-width="10px">
<el-button v-waves class="filter-item" type="primary" icon="el-icon-search" @click="getQuery">
搜索
</el-button>
<el-button v-waves class="filter-item" type="success" icon="el-icon-refresh" @click="goKeyReset">
重置
</el-button>
</el-form-item>
</el-col>
</el-row>
</el-form>
<el-table
ref="multipleTable"
:data="varList"
:header-cell-style="{'font-weight': 'bold','color': '#000'}"
tooltip-effect="dark"
border
fit
highlight-current-row>
<el-table-column type="index" label="序号" width="50" align="center"/>
<el-table-column prop="NAME" label="姓名" align="center"/>
<el-table-column prop="RELEVANT_UNIT_NAME_HIS" label="原企业" align="center"/>
<el-table-column prop="RELEVANT_UNIT_NAME_NOW" label="入住企业" align="center"/>
<el-table-column prop="OPERNAME" label="操作人" align="center"/>
<el-table-column prop="CREATETIME" label="入住时间" align="center"/>
</el-table>
<div class="page-btn-group">
<div/>
<pagination :total="total" :page.sync="listQuery.page" :limit.sync="listQuery.limit" @pagination="getList"/>
</div>
</div>
</template>
<script>
import Pagination from '@/components/Pagination' // el-pagination
import { requestFN } from '@/utils/request'
import waves from '@/directive/waves' // waves directive
export default {
components: { Pagination },
directives: { waves },
data() {
return {
config: config,
listQuery: {
page: 1,
limit: 10
},
total: 0,
varList: [],
NAME: ''
}
},
created() {
this.getList()
},
methods: {
getQuery() {
if (this.$refs.multipleTable) {
this.$refs.multipleTable.clearSelection()
}
this.listQuery = {
page: 1,
limit: 10
}
this.getList()
},
goKeyReset() {
this.NAME = ''
this.getQuery()
},
getList() {
this.listLoading = true
requestFN(
'/xgf/coerce/getCoerceIntakeLoglistPage?showCount=' + this.listQuery.limit + '&currentPage=' + this.listQuery.page,
{
NAME: this.NAME
}
).then((data) => {
this.listLoading = false
this.varList = data.varList
this.total = data.page.totalResult
})
.catch((e) => {
this.listLoading = false
})
}
}
}
</script>

View File

@ -0,0 +1,21 @@
<template>
<component :is="activeName" />
</template>
<script>
import List from './components/list'
export default {
components: {
List: List
},
data() {
return {
activeName: 'List',
SUPERVISE_CORPINFO_ID: ''
}
}
}
</script>
<style scoped>
</style>

View File

@ -1,6 +1,13 @@
<template>
<div>
<el-dialog v-loading = "loading" :visible.sync="visible" :append-to-body="appendToBody" :before-close="beforeClose" title="审批" width="1200px" destroy-on-close>
<el-dialog
v-loading="loading"
:visible.sync="visible"
:append-to-body="appendToBody"
:before-close="beforeClose"
title="审批"
width="1200px"
destroy-on-close>
<el-form ref="form" :model="form" :rules="rules" label-width="200px" label-position="right" type="flex">
<el-row :gutter="12">
<el-col :span="12">
@ -33,16 +40,86 @@
<el-input v-model="form.OPINION" :rows="2" type="textarea" placeholder="填写审批意见"/>
</el-form-item>
</el-col>
<el-col v-if="form.STATUS === '0' && showStepFlag" :span="24">
<el-form-item v-if="form.STATUS === '0'" prop="BACK_NAME" label="打回至:">
<div>{{ form.BACK_NAME }}</div>
</el-form-item>
</el-col>
<el-col v-if="form.STATUS === '0' && showStepFlag" :span="24">
<el-steps :space="200" :active="+step" finish-status="success">
<el-step>
<template slot="description">
<el-card
class="box-card"
style="margin-top: 10px"
@click.native="backPoint('-1',info.BELONG_TO_CORP_NAME)">
<div icon="el-icon-aim"/>
<div slot="header" class="clearfix">
<span>相关方端</span>
</div>
<div>
企业名称{{ info.BELONG_TO_CORP_NAME }}
</div>
</el-card>
</template>
</el-step>
<el-step v-for="item in list" :key="item.INDEX" :value="item.INDEX">
<template slot="description">
<el-card
class="box-card"
style="margin-top: 10px"
@click.native="backPoint(item.INDEX, item.APPOINT_USER_NAME)">
<div slot="header" class="clearfix">
<span>审批节点</span>
</div>
<div>
<el-row>
<el-col>
审批人{{ item.APPOINT_USER_NAME }}
</el-col>
<el-col v-if="item.INDEX !== step">
审批人公司{{ item.APPOINT_CORP_NAME }}
</el-col>
<el-col>
审批人部门{{ item.APPOINT_DEPARTMENT_NAME }}
</el-col>
<el-col v-if="item.INDEX !== step">
审批状态{{
item.APPOINT_STATUS === '1' ? '同意' : item.APPOINT_STATUS === '0' ? '不同意' : ''
}}
</el-col>
<el-col v-if="item.INDEX !== step">
审批时间{{ item.APPOINT_TIME }}
</el-col>
<el-col v-if="item.APPOINT_OPINION && item.INDEX !== step">
审批意见{{ item.APPOINT_OPINION }}
</el-col>
</el-row>
</div>
</el-card>
</template>
</el-step>
</el-steps>
</el-col>
<el-col v-if="form.STATUS === '1' && !form.STEP " :span="12">
<el-form-item v-if="form.STATUS === '1'" prop="APPOINT_USER_ID" label="指定监管部门审批人:">
<el-select v-model="form.user" style="width: 300px" placeholder="请选择" @change="chooseUser">
<el-option v-for="item in peopleList" :key="item.USER_ID" :value="JSON.stringify(item)" :label="item.NAME"/>
<el-option
v-for="item in peopleList"
:key="item.USER_ID"
:value="JSON.stringify(item)"
:label="item.NAME"/>
</el-select>
</el-form-item>
</el-col>
<el-col v-if="form.STATUS === '1' && !form.STEP " :span="12">
<el-form-item v-if="form.STATUS === '1'" prop="LIMIT_END_TIME" label="指定培训有效截至时间:">
<el-date-picker v-model="form.LIMIT_END_TIME" value-format="yyyy-MM-dd" type="date" placeholder="选择日期" style="width:300px "/>
<el-date-picker
v-model="form.LIMIT_END_TIME"
value-format="yyyy-MM-dd"
type="date"
placeholder="选择日期"
style="width:300px "/>
</el-form-item>
</el-col>
<el-col v-if="form.STATUS === '1' && form.TYPE === '2'" :span="12">
@ -103,7 +180,9 @@ export default {
list: [],
isShow: true,
info: {},
TYPE: null
TYPE: null,
BACK_NAME: '',
BACK_STEP: ''
},
rules: {
STATUS: [
@ -120,6 +199,9 @@ export default {
],
LIMIT_END_TIME: [
{ required: true, message: '请选择指定培训有效截至时间', trigger: 'change' }
],
BACK_NAME: [
{ required: true, message: '请填选择回节点', trigger: 'change' }
]
},
heirloom: {},
@ -133,7 +215,15 @@ export default {
},
departmentTree: [],
peopleList: []
peopleList: [],
info: {},
list: [
{
INDEX: '-1'
}
],
step: 0,
showStepFlag: false
}
},
methods: {
@ -142,6 +232,14 @@ export default {
this.visible = true
this.heirloom = JSON.stringify(e)
this.form.list = JSON.stringify(e)
const list = JSON.parse(this.heirloom)
if (list.length === 1) {
this.info = JSON.parse(this.heirloom)[0]
this.form.BACK_NAME = this.info.BELONG_TO_CORP_NAME
this.form.BACK_STEP = '-1'
this.showStepFlag = true
}
// turefalse
this.form.STEP = (e[0].FLOWS_STEP === 2) || (e[0].FLOWS_STEP === 1 && e[0].FLOWS_TYPE === '2')
this.form.TYEP = e[0].FLOWS_TYPE
@ -157,10 +255,15 @@ export default {
this.loading = true
requestFN('/xgf/user/approveMax', this.form)
.then((data) => {
this.$message.success('推送成功')
this.visible = false
this.$emit('refresh', '')
this.handleClose()
if (data.code === '0') {
this.$message.success('推送成功')
this.visible = false
this.$emit('refresh', '')
this.handleClose()
} else {
this.$message.error(data.errorMessage)
}
this.loading = false
})
.catch((e) => {
@ -250,6 +353,7 @@ export default {
tm: new Date().getTime()
}
this.visible = false
this.showStepFlag = false
},
beforeClose() {
this.visible = false
@ -272,6 +376,36 @@ export default {
this.form.APPOINT_USER_NAME = ''
this.form.OPINION = ''
this.form.user = ''
if (this.form.STATUS === '0') {
this.getInfo()
}
},
getInfo() {
const info = JSON.parse(this.heirloom)[0]
requestFN(
'/xgf/user/getApproveInfo', { XGF_USER_ID: info.XGF_USER_ID }
).then((data) => {
this.list = data.flow.info
this.step = data.flow.STEP
if (data.flow.endFlag === '1') {
this.title = '审批中'
}
if (data.flow.endFlag === '2') {
this.title = '审批结束'
}
if (data.flow.endFlag === '-2') {
this.title = '审批驳回'
}
this.visible = true
this.loading = false
}).catch((e) => {
console.log(e)
})
},
backPoint(num, name) {
this.form.BACK_STEP = num
this.form.BACK_NAME = name
this.$forceUpdate()
}
}
}

View File

@ -1,7 +1,7 @@
// eslint-disable-next-line no-unused-vars
const config = {
weburl: 'http://192.168.0.45:8082/', // 前台地址
httpurl: 'http://192.168.151.43:8092/', // 后台地址
weburl: 'http://192.168.0.49:8092/', // 前台地址
httpurl: 'http://192.168.0.49:8092/', // 后台地址
qyurl: 'http://192.168.0.45:8080/', // 企业前台
fileUrl: 'http://192.168.192.201:8991/file/', // 附件服务器地址
publicKey: 'MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC2zCyUYSD0pNrbtaYdvGfHfWoRV+fo/2N9O2PLLz/jZvMkigkq4eAq4JO+Ek0wDHI9WxP6iTSLYCHhIOs9CQTPvyldJFm8riZtQZlBTD8Plkb3rjrgwTqbBi3w3+HKYdkSvGFXJIdSOPbpXnj5BzN8vlVaybs24R/vpUzG9178lwIDAQAB',