Compare commits

...

25 Commits

Author SHA1 Message Date
huangyuxuan bc423bc2ae Merge remote-tracking branch 'origin/pet' into pet 2024-11-19 15:11:22 +08:00
huangyuxuan c53f89a02f [问题修复](pet)
修复  继承清单时 节假日类型的清单继承不了的问题
2024-11-19 15:11:10 +08:00
guoyuepeng 0e657bb5c6 Merge remote-tracking branch 'origin/pet' into pet 2024-11-19 14:24:33 +08:00
guoyuepeng 71fded8e8a 1.隐患整改页面操作样式修改 2024-11-19 14:24:21 +08:00
shanao edcfbd9553 【bug修改】
1. 一般隐患台账重置无效
2. 动火台账和流程图名称统一
2024-11-19 14:09:21 +08:00
shanao d3ef2ada45 Merge remote-tracking branch 'origin/pet' into pet 2024-11-18 17:46:52 +08:00
shanao a6a6b9470d 【bug修改】
1. 隐患详情整改类型
2. 安全环保检查暂存
2024-11-18 17:46:40 +08:00
fufeifei c31e89f4f7 1、删除口门门禁管理模块 2024-11-18 16:25:21 +08:00
fufeifei 21c25f27f8 1、添加口门门禁管理模块 2024-11-18 16:22:45 +08:00
huangyuxuan cade3c5a7e [问题修复](pet)
修复筛选项失效问题
2024-11-14 11:39:50 +08:00
fufeifei 32351bf48a 1、隐患整改中临时安全措施多了一个提示框,去掉了 2024-11-14 09:38:36 +08:00
shanao 5208846fc7 【bug修改】
1. 安全环保检查暂存再次提交
2. pc端无法再次验收
3. 消防检查打回没反应
4. 打回的输入框 加判空以及判空的红星
5. 文件服务器密码更新
2024-11-13 16:46:46 +08:00
shanao eb042f8116 Merge remote-tracking branch 'origin/pet' into pet 2024-11-12 17:21:00 +08:00
shanao 58bad470c9 【bug修改】
1. 安全环保检查新增暂存后再次暂存
2. 隐患整改类型添加立即整改
3. 修改消防检查打回为必填
2024-11-12 17:20:32 +08:00
huangyuxuan 565df5ed49 [问题修复](pet)
修复筛选项失效问题
2024-11-12 16:20:20 +08:00
fufeifei e5dba3b4d0 1、隐患整改中临时安全措施bug修复 2024-11-11 18:13:01 +08:00
fufeifei 2388ecf612 1、安全、环保检查管理中导出列表的路径错了,修改bug 2024-11-06 17:17:12 +08:00
shanao eaeb44860d Merge remote-tracking branch 'origin/dev-shanao' into pet 2024-11-06 15:24:57 +08:00
shanao e558432295 添加 消防检查记录打回功能 2024-11-06 14:59:48 +08:00
shanao ca9ae7aa8b 添加 一般隐患排查搜索项 整改部门 2024-11-05 16:27:55 +08:00
shanao dc18edd445 安全环保检查暂存第二版 2024-11-05 10:49:05 +08:00
shanao f006206da8 Merge remote-tracking branch 'origin/dev' into dev-shanao 2024-11-05 09:18:12 +08:00
shanao ccfd198041 增加安全环保检查暂存,增加动火强制结束后查询页面 2024-11-05 09:16:59 +08:00
fufeifei d2fb289704 1、隐患整改中添加临时安全措施 2024-11-01 16:30:20 +08:00
fufeifei 3939ff0487 1、安全环保检查导出excel表格的前端页面代码 2024-11-01 16:29:26 +08:00
16 changed files with 1475 additions and 45 deletions

View File

@ -67,9 +67,8 @@
<el-row v-if="form.TYPE=='listType0005'">
<el-col :span="8">
<el-form-item label="排查日期:" prop="CheckTime">
<el-date-picker
v-model="dates"
v-model="form.dates"
type="daterange"
range-separator="至"
start-placeholder="开始日期"
@ -278,14 +277,13 @@ export default {
components: { Pagination, SelectTree },
directives: { waves },
data() { //
var self = this
var createCheckTime = (rule, value, callback) => {
if (value === '') {
callback(new Error('请选择排查日期')) //
} else {
console.info(this.dates)
if (this.dates == null || this.dates.length < 1) {
console.log(self.form.dates)
if (self.form.dates == null || self.form.dates.length < 1) {
callback(new Error('请选择排查日期'))
}
} else {
callback()
}
}
return {
@ -441,6 +439,7 @@ export default {
return false
}
this.$refs.form.validate(valid => {
console.log(valid)
if (valid) {
this.listLoading = true
requestFN(

View File

@ -77,6 +77,7 @@
<th>检查情况</th>
<th>点位检查照片</th>
<!-- <th>点位合格照片</th>-->
<th>操作</th>
</tr>
<template v-if="varList.length !== 0">
<tr v-for="(data,index) in varList" :key="index">
@ -108,6 +109,11 @@
<a style="text-decoration: underline" @click="qualified(data.EQUIPMENT_POINT_ID,14)"></a>
</td>
</template>
<template>
<td class="text-center" >
<a style="text-decoration: underline" @click="hitBackFunction(data.EQUIPMENT_RECORD_ID, data.ISCHECKED)">{{ data.ISCHECKED !== 2 ? '打回' : '已打回' }}</a>
</td>
</template>
<!-- <template>-->
<!-- <td v-if="data.INDEX_F == '1'" :rowspan="data.ROWSPAN" class="text-center">-->
<!-- <a style="text-decoration: underline" @click="qualified(data.QUALIFIED_PHOTOS_ID,115)"></a>-->
@ -201,6 +207,18 @@
<el-button @click="dialogImgVisible = false"> </el-button>
</div>
</el-dialog>
<!-- 打回 -->
<el-dialog :visible.sync="hitBack" title="打回" width="80%">
<el-form ref="form" :rules="rules">
<el-form-item label="说明" prop="hitBackReason" >
<el-input v-model="hitBackReason" clearable autocomplete="off"/>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button @click="hitBack = false"> </el-button>
<el-button type="primary" @click="hitBackOK"> </el-button>
</div>
</el-dialog>
<information ref="information"/>
<div v-html="styleText" />
</div>
@ -228,6 +246,12 @@ export default {
qualifiedImgs: [],
qualifiedFiles: [],
dialogImgVisible: false,
//
hitBack: false,
// id
EQUIPMENT_POINT_ID: '',
//
hitBackReason: '',
defaultProps: {
value: 'id',
children: 'nodes',
@ -249,10 +273,14 @@ export default {
disabledDate(time) {
return time.getTime() > Date.now() // -8.64e7
}
},
rules: {
hitBackReason: [
{ required: true, message: '请输入打回说明', trigger: 'blur' }
]
}
}
},
created() {
this.FIRE_CHECK_ID = this.$parent.FIRE_CHECK_ID
this.FIRE_RECORD_ID = this.$parent.FIRE_RECORD_ID
@ -349,8 +377,48 @@ export default {
}).catch((e) => {
this.listLoading = false
})
},
hitBackFunction(id, ISCHECKED) {
if (ISCHECKED === 2) {
this.$message.warning('已打回的不能再打回')
return
}
console.log(id)
this.EQUIPMENT_POINT_ID = id
this.hitBack = true
},
hitBackOK() {
this.$confirm('确定要打回吗?', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
if (this.hitBackReason == null || this.hitBackReason === '') {
this.$message.warning('请填写打回说明')
return
}
requestFN(
'/fireRecord/cancel',
{
id: this.EQUIPMENT_POINT_ID,
reason: this.hitBackReason
}
).then((data) => {
this.listLoading = false
this.getData()
}).catch((e) => {
this.listLoading = false
})
// this.FIRE_CHECK_ID = this.$parent.FIRE_CHECK_ID
// this.FIRE_RECORD_ID = this.$parent.FIRE_RECORD_ID
// this.SHOW_OR_EDIT = this.$parent.SHOW_OR_EDIT
// this.recordBase = Object.assign({}, this.$parent.row)
// this.getData()
// this.getSignImgs(this.FIRE_RECORD_ID)
})
this.hitBack = false
}
}
}
</script>

View File

@ -360,25 +360,26 @@ export default {
},
//
goKeyReset() {
this.KEYWORDS = ''
this.STATE = ''
this.SOURCE = ''
this.RECTIFICATIONORNAME = ''
this.HIDDENFIND_NAME = ''
this.CHECKNAME = ''
this.confirmUserName = ''
this.keyFindUserDept = ''
this.keyHiddenPart = ''
this.DEPARTMENT_ID = ''
this.dates = []
this.DISPOSESTATE = ''
this.ISQUALIFIED = ''
this.$refs.deptTree_Select3.clearHandle()
this.$refs.deptTree_Select.clearHandle()
this.$refs.hlTree_Select.clearHandle()
this.HIDDENLEVEL = ''
this.$refs.hiddenPart_Select.clearHandle()
this.getQuery()
// this.KEYWORDS = ''
// this.STATE = ''
// this.SOURCE = ''
// this.RECTIFICATIONORNAME = ''
// this.HIDDENFIND_NAME = ''
// this.CHECKNAME = ''
// this.confirmUserName = ''
// this.keyFindUserDept = ''
// this.keyHiddenPart = ''
// this.DEPARTMENT_ID = ''
// this.dates = []
// this.DISPOSESTATE = ''
// this.ISQUALIFIED = ''
// this.$refs.deptTree_Select3.clearHandle()
// this.$refs.deptTree_Select.clearHandle()
// this.$refs.hlTree_Select.clearHandle()
// this.HIDDENLEVEL = ''
// this.$refs.hiddenPart_Select.clearHandle()
this.$refs.multipleTable.clearSelection()
this.getList()
},
//
getTreeData1() {

View File

@ -33,6 +33,9 @@
<el-form-item :rules="form.IS_NORMAL =='1' ?formRule.RECTIFICATIONTIME:[{required: false}]" label="整改时间" prop="RECTIFICATIONTIME">
<el-date-picker v-model="form.RECTIFICATIONTIME" value-format="yyyy-MM-dd HH:mm:ss" type="datetime" placeholder="选择日期" />
</el-form-item>
<el-form-item :rules="DAYNUM >= 1 ?formRule.TEMPORARY_SAFE_MEASURE:[{required: false}]" label="临时安全措施" prop="TEMPORARY_SAFE_MEASURE" >
<el-input :rows="3" v-model="form.TEMPORARY_SAFE_MEASURE" type="textarea" placeholder="请在此处输入临时安全措施..."/>
</el-form-item>
<el-form-item :rules="[{required: true}]" label="整改后图片" label-width="100px">
<el-upload
ref="zhenggaiupload"
@ -192,7 +195,8 @@ export default {
disposalPlan: '', //
RECTIFYDESCR: '', //
INVESTMENT_FUNDS: '', //
RECTIFICATIONTIME: ''//
RECTIFICATIONTIME: '', //
TEMPORARY_SAFE_MEASURE: '' //
},
rectify_files: [],
hideUpload: false, //
@ -215,7 +219,8 @@ export default {
TIMELIMITFOR: [{ required: true, message: '请输入时限要求', trigger: 'blur' }],
JOBREQUIREMENT: [{ required: true, message: '请输入工作要求', trigger: 'blur' }],
OTHERBUSINESS: [{ required: true, message: '请输入其他事项', trigger: 'blur' }],
disposalPlan: [{ required: true, message: '请输入无法整改原因', trigger: 'blur' }]
disposalPlan: [{ required: true, message: '请输入无法整改原因', trigger: 'blur' }],
TEMPORARY_SAFE_MEASURE: [{ required: true, message: '请输入临时安全措施', trigger: 'blur' }]
},
defaultProps: {
value: 'id',
@ -226,7 +231,9 @@ export default {
defaultNodes: [],
ys_userList: [],
other: [], //
otherUserList: []
otherUserList: [],
DAYNUM: 0,
TEMP_SAFE_MEASURE: ''
}
},
watch: {
@ -273,6 +280,9 @@ export default {
if (data.result == 'success') {
this.data = data
this.pd = data.hidden
this.DAYNUM = Number(this.pd.DAYNUM)
this.form.TEMPORARY_SAFE_MEASURE = this.pd.TEMP_SAFE_MEASURE != undefined ? this.pd.TEMP_SAFE_MEASURE : ''
this.TEMP_SAFE_MEASURE = this.pd.TEMP_SAFE_MEASURE
if (this.pd.HIDDENLEVEL == 'hiddenLevel0002') {
this.getqyData()
}
@ -414,6 +424,14 @@ export default {
},
saveRectify() { //
this.loading = true
if (this.DAYNUM >= 1 && this.form.TEMPORARY_SAFE_MEASURE == '') {
this.$message({
message: '请先输入临时安全措施!!!',
type: 'error'
})
this.loading = false
return false
}
if (this.$refs.zhenggaiupload.uploadFiles.length < 1) {
this.$message({
message: '请上传整改后照片',
@ -457,6 +475,7 @@ export default {
formdata.append('CHECKDEPT', this.form.DEPARTMENT_ID) //
formdata.append('CHECKOR', this.form.USER_ID) //
formdata.append('OTHER', JSON.stringify(this.other)) //
formdata.append('TEMPORARY_SAFE_MEASURE', this.form.TEMPORARY_SAFE_MEASURE) //
if (this.form.USER_ID == this.loginUserid) {
this.$message({
message: '验收人和整改人不能是同一个人!',

View File

@ -116,6 +116,10 @@
<td class="tbg">是否相关方</td>
<td>{{ pd.ISRELEVANT=='1'?'是':'否' }}</td>
</tr>
<tr>
<td class="tbg">临时安全措施</td>
<td>{{ pd.TEMP_SAFE_MEASURE !== undefined ? pd.TEMP_SAFE_MEASURE : '' }}</td>
</tr>
<template v-if="repulsecause">
<tr v-for="item in repulsecause" :key="item.USER_ID">
<td class="tbg">打回原因</td>

View File

@ -18,7 +18,7 @@
<el-form-item label="发现部门" prop="keyFindUserDept">
<SelectTree
ref="deptTree_Select"
:clearable="false"
:clearable="true"
:options="hiddenCreatorDeptList"
:props="defaultProps"
v-model="condform.creatorUserDept"
@ -43,7 +43,7 @@
<SelectTree
v-if="hiddenlevelList.length !== 0"
ref="hlTree_Select"
:clearable="false"
:clearable="true"
:options="hiddenlevelList"
:props="defaultProps"
v-model="condform.hiddenlevel"
@ -81,18 +81,28 @@
<el-input v-model="condform.rectificationorName" placeholder="请输入关键字"/>
</el-form-item>
</el-col>
<el-col :span="4">
<el-form-item label="整改部门" prop="reorganizeDept">
<el-cascader
ref="deptTree_Select10"
:options="hiddenCreatorDeptList"
:props="defaultProps1"
v-model="condform.reorganizeDept"
clearable/>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col v-if="hiddenVueType !='ignore'" :span="4" >
<el-form-item label="验收人">
<el-input v-model="condform.checkrecordName" placeholder="请输入关键字"/>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="4">
<el-form-item label="隐患部位">
<SelectTree
ref="hiddenPart_Select"
:clearable="false"
:clearable="true"
:options="hiddenPartList"
:props="defaultProps"
v-model="condform.hiddenpart"
@ -176,9 +186,10 @@
<template v-if="row.checkNames != ''"><span>{{ row.checkNames }}</span></template>
</template>
</el-table-column>
<el-table-column prop="" label="操作" width="200" align="center">
<el-table-column prop="" label="操作" width="400" align="center">
<template slot-scope="{row}">
<el-button v-if="hasButtenAllMap.buttenTypeGoView" icon="el-icon-view" size="mini" @click="goView(row.HIDDEN_ID)"></el-button>
<el-button v-if="hasButtenAllMap.buttenTypeRectify" type="success" icon="el-icon-document" size="mini" @click="addTempSafeMeasureBtn(row.DAYNUM, row.HIDDEN_ID, row.TEMP_SAFE_MEASURE)"></el-button>
<el-button v-if="hasButtenAllMap.buttenTypeConfirm" :disabled="row.STATE !='-2'" type="success" icon="el-icon-check" size="mini" @click="confirm(row.HIDDEN_ID)"></el-button>
<el-button v-if="hasButtenAllMap.buttenTypeRectify" :disabled="!row.STATE =='1' || !row.STATE =='10'" type="danger" icon="el-icon-document" size="mini" @click="goRectify(row.HIDDEN_ID)"></el-button>
<el-button v-if="hasButtenAllMap.buttenTypePostpone" :disabled="!((row.STATE =='-1' || row.STATE =='1' || row.STATE =='10') && row.exaCount === 0 )" type="warning" icon="el-icon-document" size="mini" @click="goApplyDelay(row)"></el-button>
@ -235,6 +246,17 @@
<el-button @click="dialogVisibleshow = false"> </el-button>
</span>
</el-dialog>
<el-dialog :visible.sync="addTempSafeMeasureDialogForm" title="添加临时安全措施" width="600px">
<el-form ref="AddTempSafeMeasureForm" :model="addSafeMeasureForm" :rules="rules" label-width="110px" style="width: 500px;">
<el-form-item :rules="dayNum >= 1 ?addSafeMeasureFormRule.TEMPORARY_SAFE_MEASURE:[{required: false}]" label="临时安全措施" label-width="110px" prop="TEMPORARY_SAFE_MEASURE" >
<el-input :rows="9" v-model="addSafeMeasureForm.TEMPORARY_SAFE_MEASURE" type="textarea" placeholder="请在此处输入临时安全措施..."/>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button @click="addTempSafeMeasureDialogForm = false"> </el-button>
<el-button type="primary" @click="AddTempSafeMeasureClick"> </el-button>
</div>
</el-dialog>
<div v-if="dialogdProgress" class="mark"><dProgress :percentage ="percentageVar" ptype="circle" /></div>
<!-- <el-dialog v-if="dialogdProgress" :visible.sync="dialogdProgress" width="70%" height="70%" >-->
<!-- <dProgress :percentage ="percentageVar" ptype="circle" />-->
@ -279,7 +301,8 @@ export default {
hiddenpart: '', //
hiddenType: '', //
creatorUserDept: '', //
isrelevant: '' //
isrelevant: '', //
reorganizeDept: [] //
},
/** 条件中的字段,没有放在form表单中,是因为怕动态加载中出现问题 **/
sourceList: [
@ -306,6 +329,7 @@ export default {
{ ID: '16', NAME: '确认打回' },
{ ID: '10', NAME: '验收打回' }
],
defaultProps1: { value: 'id', children: 'nodes', label: 'name', multiple: true, emitPath: false, checkStrictly: true },
defaultProps: { value: 'id', children: 'nodes', label: 'name', multiple: true, emitPath: false },
pickerOptions0: { disabledDate(time) { return time.getTime() < Date.now() - 8.64e6 } },
hiddenlevelList: [], //
@ -347,7 +371,18 @@ export default {
zhenggaiList: [],
yanshouList: [],
dialogdProgress: false,
percentageVar: 0
percentageVar: 0,
addTempSafeMeasureDialogForm: false, //
//
addSafeMeasureForm: {
TEMPORARY_SAFE_MEASURE: '' //
},
//
addSafeMeasureFormRule: {
TEMPORARY_SAFE_MEASURE: [{ required: true, message: '请输入临时安全措施', trigger: 'blur' }]
},
dayNum: 0,
HIDDEN_ID: ''
}
},
// BI ,
@ -382,11 +417,17 @@ export default {
//
getList() {
this.listLoading = true
const reorganizeDept = this.condform.reorganizeDept
let deptIds = ''
if (reorganizeDept != null && reorganizeDept.length > 0) {
reorganizeDept.forEach(item => { deptIds = deptIds + ',' + item })
}
requestFN(
'/hiddenApi/getList?showCount=' + this.listQuery.limit + '&currentPage=' + this.listQuery.page,
{
...this.condform,
hiddenVueType: this.hiddenVueType,
reorganizeDept: deptIds,
STARTTIME: this.condform.creatTime[0],
ENDTIME: this.condform.creatTime[1]
}
@ -430,10 +471,10 @@ export default {
hiddenType: '', //
creatorUserDept: ''//
}
this.$refs.deptTree_Select3.clearHandle()
this.$refs.deptTree_Select.clearHandle()
this.$refs.hlTree_Select.clearHandle()
this.$refs.hiddenPart_Select.clearHandle()
// this.$refs.deptTree_Select3.clearHandle()
this.getList()
},
//
@ -723,6 +764,69 @@ export default {
encodeURIComponent(JSON.stringify(rows)) + '&STARTTIME=' + this.condform.creatTime[0] + '&ENDTIME=' + this.condform.creatTime[1])
this.dialogVisibleshow = false
},
//
addTempSafeMeasureBtn(dayNum, HIDDEN_ID, TEMP_SAFE_MEASURE) {
requestFN(
'/hiddenApi/findTempSafeMeasureByHiddenId',
{
HIDDEN_ID: HIDDEN_ID
}
).then((data) => {
if (data.result == 'success') {
this.addTempSafeMeasureDialogForm = true
this.addSafeMeasureForm.TEMPORARY_SAFE_MEASURE = data.tempSafeMeasure != null ? data.tempSafeMeasure : ''
} else {
this.addTempSafeMeasureDialogForm = false
}
})
this.dayNum = Number(dayNum) //
this.HIDDEN_ID = HIDDEN_ID
},
//
AddTempSafeMeasureClick() {
if (!this.addSafeMeasureForm.TEMPORARY_SAFE_MEASURE) {
if (this.dayNum >= 1) {
this.$message({
message: '请填写临时安全措施',
type: 'error'
})
this.loading = false
return false
} else {
this.addSafeMeasureForm.TEMPORARY_SAFE_MEASURE = ''
}
}
const loading = this.$loading({
lock: true,
text: '加载中......',
background: 'rgba(0,0,0,0.5)'
})
requestFN(
'/hiddenApi/addTempSafeMeasure',
{
TEMPORARY_SAFE_MEASURE: this.addSafeMeasureForm.TEMPORARY_SAFE_MEASURE,
HIDDEN_ID: this.HIDDEN_ID
}
).then((data) => {
loading.close()
if (data.result == 'success') {
this.addTempSafeMeasureDialogForm = false
this.$message({
message: '添加成功',
type: 'success'
})
} else {
this.$message({
message: data.exception,
type: '添加失败'
})
this.loading = false
}
}).catch((e) => {
this.listLoading = false
})
},
getHiddenNames() {
requestFN(
'/hidden/getHiddenNames',

View File

@ -103,7 +103,7 @@
<td class="tbg">整改类型</td>
<td>
<template>
限期整改
{{ pd.RECTIFICATIONTYPE === '1' ? '立即整改' : '限期整改' }}
</template>
</td>
</tr>

View File

@ -0,0 +1,148 @@
<template>
<div>
<div id="printTest" class="app-container print-work">
<div class="level-title">
<h1>动火安全作业票</h1>
</div>
<table class="table-ui"/>
<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 :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="TIME" label="时间" />
<el-table-column prop="WORK_LEVEL" label="照片" >
<template slot-scope="{row}">
<viewer>
<img :src="config.fileUrl + row.FILEPATH" width="100" height="100">
</viewer>
</template>
</el-table-column>
</el-table>
</div>
<div class="ui-height" />
<div class="ui-foot">
<el-button type="primary" @click="goBack"> </el-button>
</div>
</div>
</template>
<script>
import { requestFN } from '@/utils/request'
import dateformat from '@/utils/dateformat'
import SelectTree from '@/components/SelectTree'
export default {
components: { SelectTree },
data() {
return {
config: config,
HOTWORKAPPLICATION_ID: this.$parent.HOTWORKAPPLICATION_ID, // ID
HOTWORKAPPLICATION_TYPE: this.$parent.HOTWORKAPPLICATION_TYPE,
pd: [], //
measuresList: [],
form: {},
rules: {},
myUserInfo: {},
varList: [],
defaultProps: {
value: 'id',
children: 'nodes',
label: 'name',
checkStrictly: true
},
rectificationDeptList: [],
rectificationUserList: [],
hImgs: [],
hotUserList: [],
dialogFormDelayed: false
}
},
created() {
this.getListAllMeasures()
this.getDelayed()
},
methods: {
formatTime(date, column) {
if (date) {
return dateformat(date, 'YYYY年MM月DD日HH时mm分')
} else {
return ''
}
},
formatDate(date, column) {
if (date) {
return dateformat(date, 'YYYY-MM-DD')
} else {
return ''
}
},
getRowKey(row) {
return row.HOTWORKAPPLICATION_ID
},
getData() {
this.listLoading = true
requestFN(
'/hotworkapplication/goEdit',
{
HOTWORKAPPLICATION_ID: this.HOTWORKAPPLICATION_ID
}
).then((data) => {
this.listLoading = false
this.pd = data.pd // map
}).catch((e) => {
this.listLoading = false
})
},
getDelayed() {
this.listLoading = true
requestFN(
'/hotworkapplicationdelayed/list',
{
HOTWORKAPPLICATION_ID: this.HOTWORKAPPLICATION_ID
}
).then((data) => {
this.listLoading = false
this.varList = data.varList // map
}).catch((e) => {
this.listLoading = false
})
},
getListAllMeasures() {
this.listLoading = true
requestFN(
'/app/hotworkapplication/listAllMeasures',
{
HOTWORKAPPLICATION_ID: this.HOTWORKAPPLICATION_ID
}
).then((data) => {
this.listLoading = false
this.measuresList = data.varList // map
}).catch((e) => {
this.listLoading = false
})
},
goDetail() {
this.dialogFormDelayed = true
},
goBack() {
this.$parent.activeName = 'List'
}
}
}
</script>
<style lang="sass" scoped>
.print-approval-p10
padding: 20px 0
span
vertical-align: middle
.print-approval-img
width: 200px
height: 97px
display: inline-block
img
width: 100%
height: 100%
</style>

View File

@ -0,0 +1,570 @@
<template>
<div>
<div id="printContent" class="app-container print-work">
<div>
<table class="table-ui">
<thead>
<tr>
<td colspan="6" style="border: none">
<div class="no-print">
<div class="level-title">
<h1>动火申请审批许可证</h1>
</div>
</div>
<h3 class="no-show" style="text-align: center">动火申请审批许可证</h3>
</td>
</tr>
</thead>
<tbody>
<tr>
<td class="tbg" rowspan="2">动火申请人</td>
<td rowspan="2">{{ pd.APPLY_USER_NAME }}</td>
<td class="tbg" rowspan="2">动火申请单位/部门</td>
<td rowspan="2">{{ pd.APPLY_DEPARTMENT_NAME }}</td>
<td class="tbg" colspan="2" style="text-align: center;">动火许可证编号</td>
</tr>
<tr>
<td colspan="2" style="text-align: center;">{{ pd.JOB_NUMBER }}</td>
</tr>
<tr>
<td class="tbg">动火部位</td>
<td>{{ pd.HOT_WORK_POSITION }}</td>
<td class="tbg">动火方法</td>
<td>{{ pd.HOT_WORK_METHOD_NAME }}</td>
<td class="tbg">动火等级</td>
<td>
<template v-if="pd.HOT_WORK_LEVEL_INDEX == '0'"></template>
<template v-else-if="pd.HOT_WORK_LEVEL_INDEX == '1'">一级</template>
<template v-else-if="pd.HOT_WORK_LEVEL_INDEX == '2'">二级</template>
<template v-else-if="pd.HOT_WORK_LEVEL_INDEX == '3'">三级</template>
</td>
</tr>
<tr>
<td class="tbg">作业内容</td>
<td colspan="5">{{ pd.JOB_CONTENT }}</td>
</tr>
<tr>
<td class="tbg" rowspan="2">现场负责人</td>
<td>姓名{{ pd.SITE_LEADER_NAME }}</td>
<td class="tbg" rowspan="2">动火操作人</td>
<td rowspan="2">{{ pd.HOT_WORK_OPERATOR_NAME }}</td>
<td class="tbg" rowspan="2">动火监火人</td>
<td rowspan="2">{{ pd.SUPERVISOR_OF_HOT_WORK_UNIT }}</td>
</tr>
<tr>
<td>电话:{{ pd.SITE_LEADER_PHONE }}</td>
</tr>
<tr>
<td class="tbg">动火时间</td>
<td colspan="5">{{ pd.HOT_WORK_TIME_START }} {{ pd.HOT_WORK_TIME_END }}</td>
</tr>
<tr>
<td class="tbg">
动火要求<br>
安全措施<br>
安全提示
</td>
<td colspan="5">
<table class="table-vi">
<tr v-for="item in measuresList" :key="item.BUS_HOTWORK_MEASURES_ID">
<td>
{{ item.PROTECTIVE_MEASURES }}
<template v-if="item.ANSWER1">({{ item.ANSWER1 }}){{ item.QUESTION1 }}</template>
<template v-if="item.QUESTION2">
{{ item.QUESTION2 }}({{ item.ANSWER2 }}) {{ item.QUESTION3 }}({{ item.ANSWER3 }}) {{ item.QUESTION4 }}({{ item.ANSWER4 }})
</template>
</td>
</tr>
<tr v-for="item in safetymethodrecordList" :key="item.HOTWORKSAFETYMETHODRECORD_ID">
<td>{{ item.CONTENT }}</td>
</tr>
</table>
</td>
</tr>
<tr>
<td class="tbg">动火单位(部门)负责人意见</td>
<td colspan="2">
<img v-viewer v-if="pd.HOT_WORK_USER_PRINCIPAL" :src="config.fileUrl+pd.HOT_WORK_USER_PRINCIPAL" width="50px" height="50px">
</td>
<td class="tbg">项目发包单位(部门)人员意见</td>
<td colspan="2">
<img v-viewer v-if="pd.PROJECT_UNIT_LEADER_PRINCIPAL" :src="config.fileUrl+pd.PROJECT_UNIT_LEADER_PRINCIPAL" width="50px" height="50px">
</td>
</tr>
<tr>
<td class="tbg">现场管辖单位(部门)负责人意见</td>
<td colspan="2">
<img v-viewer v-if="pd.UNIT_LEADER_PRINCIPAL" :src="config.fileUrl+pd.UNIT_LEADER_PRINCIPAL" width="50px" height="50px">
</td>
<td class="tbg">动火许可证签发单位意见</td>
<td colspan="2">
<img v-viewer v-if="pd.ISSUING_PRINCIPAL" :src="config.fileUrl+pd.ISSUING_PRINCIPAL" width="50px" height="50px">
</td>
</tr>
<tr>
<td class="tbg" rowspan="2">动火前管辖单位现场人员许可</td>
<td colspan="2">
姓名
<img v-viewer v-if="pd.HOT_WORK_PERSON_PRINCIPAL" :src="config.fileUrl+pd.HOT_WORK_PERSON_PRINCIPAL" width="50px" height="50px">
</td>
<td class="tbg" rowspan="2">动火后管辖单位现场人员验收</td>
<td colspan="2">
姓名
<img v-viewer v-if="pd.HOT_WORK_AFTER_PRINCIPAL" :src="config.fileUrl+pd.HOT_WORK_AFTER_PRINCIPAL" width="50px" height="50px">
</td>
</tr>
<tr>
<td colspan="2">时间{{ pd.HOT_WORK_PERSON_PRINCIPAL == ''?'':pd.HOT_WORK_PERSON_PRINCIPAL_TIME }}</td>
<td colspan="2">时间{{ pd.HOT_WORK_AFTER_PRINCIPAL == ''?'':pd.HOT_WORK_AFTER_PRINCIPAL_TIME }}</td>
</tr>
<tr>
<td class="tbg">延时监火记录</td>
<td colspan="5">
<table class="table-vi">
<tr>
<td>监火人</td>
<td>时间</td>
<td>照片</td>
</tr>
<tr v-for="item in delayedList" :key="item.HOTWORKAPPLICATIONDELAYED_ID">
<td>{{ item.userName }}</td>
<td>{{ item.TIME }}</td>
<td>
<viewer>
<img v-viewer v-if="item.FILEPATH" :src="config.fileUrl+item.FILEPATH" width="50px" height="50px">
</viewer>
</td>
</tr>
</table>
</td>
</tr>
</tbody>
</table>
</div>
<!--<div v-if="pd.HOT_WORK_LEVEL_INDEX =='0'">
<table class="table-ui">
<thead>
<tr>
<td colspan="6" style="border: none">
<div class="no-print">
<div class="level-title">
<h1>动火申请审批许可证</h1>
</div>
</div>
<h3 class="no-show" style="text-align: center">动火申请审批许可证</h3>
</td>
</tr>
</thead>
<tbody>
<tr>
<td colspan="4" style="padding: 0;">
<table class="table-vi">
<tr>
<td class="bbg">申请单位</td>
<td>{{ pd.APPLY_DEPARTMENT_NAME }}</td>
<td class="bbg">申请人</td>
<td>{{ pd.APPLY_USER_NAME }}</td>
</tr>
<tr>
<td class="bbg">作业证编号</td>
<td>{{ pd.JOB_NUMBER }}</td>
</tr>
<tr>
<td class="bbg">申请日期</td>
<td>{{ formatTime(pd.APPLICATION_DATE) }}</td>
<td class="bbg">作业类型</td>
<td>{{ pd.JOB_TYPE_NAME }}</td>
</tr>
<tr>
<td class="bbg">动火部位</td>
<td>{{ pd.HOT_WORK_POSITION }}</td>
<td class="bbg">动火方法</td>
<td>{{ pd.HOT_WORK_METHOD_NAME }}</td>
</tr>
<tr>
<td class="bbg">动火作业级别</td>
<td>{{ pd.HOT_WORK_LEVEL_NAME }}</td>
<td class="bbg">动火时间</td>
<td>{{ pd.HOT_WORK_TIME }}</td>
</tr>
<tr>
<td class="bbg">作业内容</td>
<td>{{ pd.JOB_CONTENT }}</td>
</tr>
<tr>
<td class="bbg">动火操作人</td>
<td>{{ pd.HOT_WORK_OPERATOR_NAME }}</td>
</tr>
<tr v-if="pd.IS_GAS_TESTING =='1'">
<td class="bbg">气体检测人</td>
<td>{{ pd.GAS_TESTING_USER_NAME }}</td>
</tr>
<tr>
<td class="bbg">延时监火</td>
<td>{{ pd.HOT_WORK_OPERATOR_NAME }}</td>
</tr>
</table>
</td>
</tr>
<tr>
<td colspan="4" style="padding: 0;">
<table class="table-vi">
<tr>
<th>主要安全措施</th>
&lt;!&ndash; <th class="tcenter select">选项</th>&ndash;&gt;
</tr>
<tr v-for="item in measuresList" :key="item.BUS_HOTWORK_MEASURES_ID">
<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 }}) {{ item.QUESTION4 }}({{ item.ANSWER4 }})
</template>
</td>
</tr>
</table>
</td>
</tr>
<template v-if="HOTWORKAPPLICATION_TYPE=='see'">
<tr>
<td colspan="4">
<div><span>动火单位负责人{{ pd.HOT_WORK_USER_NAME }}</span>
</div>
<span class="print-approval-img">
<img v-if="pd.HOT_WORK_USER_PRINCIPAL" :src="config.fileUrl+pd.HOT_WORK_USER_PRINCIPAL">
</span>
<span v-if="pd.HOT_WORK_USER_PRINCIPAL_TIME">{{ formatTime(pd.HOT_WORK_USER_PRINCIPAL_TIME) }}</span>
</td>
</tr>
<tr v-if="pd.JOB_TYPE_INDEX == '1'">
<td colspan="4">
<div><span>项目发包单位负责人</span>
<span>
{{ pd.PROJECT_UNIT_LEADER_NAME }}
</span>
</div>
<span class="print-approval-img">
<img v-if="pd.PROJECT_UNIT_LEADER_PRINCIPAL" :src="config.fileUrl+pd.PROJECT_UNIT_LEADER_PRINCIPAL">
</span>
<span v-if="pd.PROJECT_UNIT_LEADER_PRINCIPAL_TIME">{{ formatTime(pd.PROJECT_UNIT_LEADER_PRINCIPAL_TIME) }}</span>
</td>
</tr>
<tr>
<td colspan="4">
<div><span>现场管辖单位负责人</span>
<span>
{{ pd.UNIT_LEADER_NAME }}
</span>
</div>
<span class="print-approval-img">
<img v-if="pd.UNIT_LEADER_PRINCIPAL" :src="config.fileUrl+pd.UNIT_LEADER_PRINCIPAL">
</span>
<span v-if="pd.UNIT_LEADER_PRINCIPAL_TIME">{{ formatTime(pd.UNIT_LEADER_PRINCIPAL_TIME) }}</span>
</td>
</tr>
<tr>
<td colspan="4">
<div><span>动火许可签发单位负责人</span>
<span>
{{ pd.ISSUING_USER_NAME }}
</span>
</div>
<span class="print-approval-img">
<img v-if="pd.ISSUING_PRINCIPAL" :src="config.fileUrl+pd.ISSUING_PRINCIPAL">
</span>
<span v-if="pd.ISSUING_PRINCIPAL_TIME">{{ formatTime(pd.ISSUING_PRINCIPAL_TIME) }}</span>
</td>
</tr>
<tr>
<td v-if="pd.IS_SAFETY_DIRECTOR =='1'" colspan="4">
<div><span>安全总监负责人</span>
<span>
{{ pd.SAFETY_DIRECTOR_USER_NAME }}
</span>
</div>
<span class="print-approval-img">
<img v-if="pd.SAFETY_DIRECTOR_PRINCIPAL" :src="config.fileUrl+pd.SAFETY_DIRECTOR_PRINCIPAL">
</span>
<span v-if="pd.SAFETY_DIRECTOR_PRINCIPAL_TIME">{{ formatTime(pd.SAFETY_DIRECTOR_PRINCIPAL_TIME) }}</span>
</td>
</tr>
<tr>
<td colspan="4">
<div><span>现场负责人接收负责人</span>
<span>
{{ pd.SITE_LEADER_NAME }}
</span>
</div>
<span class="print-approval-img">
<img v-if="pd.SITE_DIRECTOR_PRINCIPAL" :src="config.fileUrl+pd.SITE_DIRECTOR_PRINCIPAL">
</span>
<span v-if="pd.SITE_DIRECTOR_PRINCIPAL_TIME">{{ formatTime(pd.SITE_DIRECTOR_PRINCIPAL_TIME) }}</span>
</td>
</tr>
<tr>
<td colspan="4">
<div><span>动火前现场管辖单位确认</span>
<span>
{{ pd.HOT_WORK_PERSON_USER_NAME }}
</span>
</div>
<span class="print-approval-img">
<img v-if="pd.HOT_WORK_PERSON_PRINCIPAL" :src="config.fileUrl+pd.HOT_WORK_PERSON_PRINCIPAL">
</span>
<span v-if="pd.HOT_WORK_PERSON_PRINCIPAL_TIME">{{ formatTime(pd.HOT_WORK_PERSON_PRINCIPAL_TIME) }}</span>
</td>
</tr>
<tr>
<td colspan="4">
<div><span>现场负责人确认</span>
<span>
{{ pd.PERSON_CONFIRM_USER_NAME }}
</span>
</div>
<span class="print-approval-img">
<img v-if="pd.PERSON_CONFIRM_PRINCIPAL" :src="config.fileUrl+pd.PERSON_CONFIRM_PRINCIPAL">
</span>
<span v-if="pd.PERSON_CONFIRM_PRINCIPAL_TIME">{{ formatTime(pd.PERSON_CONFIRM_PRINCIPAL_TIME) }}</span>
</td>
</tr>
<tr>
<td colspan="4">
<div><span>动火后现场管辖人</span>
<span>
{{ pd.HOT_WORK_AFTER_USER_NAME }}
</span>
</div>
<span class="print-approval-img">
<img v-if="pd.HOT_WORK_AFTER_PRINCIPAL" :src="config.fileUrl+pd.HOT_WORK_AFTER_PRINCIPAL">
</span>
<span v-if="pd.HOT_WORK_AFTER_PRINCIPAL_TIME">{{ formatTime(pd.HOT_WORK_AFTER_PRINCIPAL_TIME) }}</span>
</td>
</tr>
<tr>
<td class="tbg">延时监火</td>
<td class="img-select">
&lt;!&ndash; <viewer :images="hImgs">&ndash;&gt;
&lt;!&ndash; <img v-for="item in hImgs" :src="config.fileUrl + item.FILEPATH" :key="item.HOTWORKAPPLICATIONDELAYED_ID" width="100" height="100">&ndash;&gt;
&lt;!&ndash; </viewer>&ndash;&gt;
<el-button type="primary" icon="el-icon-document" size="mini" @click="goDetail(pd.HOTWORKAPPLICATION_ID)"></el-button>
</td>
</tr>
</template>
<tr>
<td colspan="4">
<div class="level-title">
<h1>分公司动火审批</h1>
</div>
<div class="mb-20">
<table class="table-ui">
<tr>
<td class="abg">动火负责确认人部门</td>
<td >{{ pd.projectCompetent_DEPT_NAME }}</td>
<td class="abg">动火负责确认人</td>
<td >{{ pd.projectCompetent_USER_NAME }}</td>
<td class="abg">审批结果</td>
<td >{{ pd.projectCompetent_TYPE=='2'?'通过':'未通过' }}</td>
<td class="abg">审批时间</td>
<td colspan="2">{{ pd.projectCompetent_OPERATTIME }}</td>
</tr>
<tr>
<td class="abg">项目主管初审人员部门</td>
<td v-if="pd.projectCompetent_DEPT_NAME">{{ pd.projectCompetent_DEPT_NAME }}</td>
<td class="abg">项目主管初审人员</td>
<td >{{ pd.projectSupervisor_USER_NAME }}</td>
<td class="abg">审批结果</td>
<td >{{ pd.projectSupervisor_TYPE=='2'?'通过':'未通过' }}</td>
<td class="abg">审批时间</td>
<td colspan="2">{{ pd.projectCompetent_OPERATTIME }}</td>
</tr>
<tr>
<td class="abg">项目主管负责人部门</td>
<td >{{ pd.projectPreliminarily_DEPT_NAME }}</td>
<td class="abg">项目主管负责人</td>
<td >{{ pd.projectPreliminarily_USER_NAME }}</td>
<td class="abg">审批结果</td>
<td >{{ pd.projectPreliminarily_TYPE=='2'?'通过':'未通过' }}</td>
<td class="abg">审批时间</td>
<td >{{ pd.projectPreliminarily_OPERATTIME }}</td>
<td v-if="pd.projectPreliminarily_PRINCIPAL">
<span class="print-approval-img">
<img v-if="pd.projectPreliminarily_PRINCIPAL" :src="config.fileUrl+pd.projectPreliminarily_PRINCIPAL">
</span>
</td>
</tr>
<tr>
<td class="abg">分公司安全总监部门</td>
<td >{{ pd.inspectorGeneral_DEPT_NAME }}</td>
<td class="abg">分公司安全总监人员</td>
<td >{{ pd.inspectorGeneral_USER_NAME }}</td>
<td class="abg">审批结果</td>
<td >{{ pd.inspectorGeneral_TYPE=='2'?'通过':'未通过' }}</td>
<td class="abg">审批时间</td>
<td >{{ pd.inspectorGeneral_OPERATTIME }}</td>
<td v-if="pd.inspectorGeneral_PRINCIPAL">
<span class="print-approval-img">
<img :src="config.fileUrl+pd.inspectorGeneral_PRINCIPAL">
</span>
</td>
</tr>
<tr>
<td class="abg">分公司主要负责人</td>
<td >{{ pd.OFFICE_RESPOMSIBLE_DEPT_NAME }}</td>
<td class="abg">分公司主要负责人</td>
<td >{{ pd.OFFICE_RESPOMSIBLE_USER_NAME }}</td>
<td class="abg">审批结果</td>
<td >{{ pd.OFFICE_RESPOMSIBLE_TYPE=='2'?'通过':'未通过' }}</td>
<td class="abg">审批时间</td>
<td >{{ pd.OFFICE_RESPOMSIBLE_OPERATTIME }}</td>
<td v-if="pd.OFFICE_RESPOMSIBLE_PRINCIPAL">
<span class="print-approval-img">
<img :src="config.fileUrl+pd.OFFICE_RESPOMSIBLE_PRINCIPAL">
</span>
</td>
</tr>
</table>
</div>
</td>
</tr>
</tbody>
</table>
</div>-->
</div>
<div class="ui-height" />
<div class="ui-foot">
<el-button @click="goBack"> </el-button>
<el-button v-print="'#printContent'" type="primary"></el-button>
</div>
</div>
</template>
<script>
import { requestFN } from '@/utils/request'
import dateformat from '@/utils/dateformat'
import SelectTree from '@/components/SelectTree'
export default {
components: { SelectTree },
data() {
return {
config: config,
HOTWORKAPPLICATION_ID: this.$parent.HOTWORKAPPLICATION_ID, // ID
HOTWORKAPPLICATION_TYPE: this.$parent.HOTWORKAPPLICATION_TYPE,
pd: [], //
measuresList: [],
form: {},
rules: {},
myUserInfo: {},
defaultProps: {
value: 'id',
children: 'nodes',
label: 'name',
checkStrictly: true
},
rectificationDeptList: [],
rectificationUserList: [],
hImgs: [],
hotUserList: [],
safetymethodrecordList: [],
delayedList: []
}
},
created() {
this.getData()
this.getListAllMeasures()
this.getDelayed()
},
methods: {
formatTime(date, column) {
if (date) {
return dateformat(date, 'YYYY年MM月DD日HH时mm分')
} else {
return ''
}
},
formatDate(date, column) {
if (date) {
return dateformat(date, 'YYYY-MM-DD')
} else {
return ''
}
},
getRowKey(row) {
return row.HOTWORKAPPLICATION_ID
},
getData() {
this.listLoading = true
requestFN(
'/hotworkapplication/goEdit',
{
HOTWORKAPPLICATION_ID: this.HOTWORKAPPLICATION_ID
}
).then((data) => {
this.listLoading = false
if (data.pd && data.pd.HOT_WORK_OPERATOR_NAME && data.pd.HOT_WORK_OPERATOR_NAME.length > 0) {
data.pd.HOT_WORK_OPERATOR_NAME = data.pd.HOT_WORK_OPERATOR_NAME.substring(0, data.pd.HOT_WORK_OPERATOR_NAME.length - 1)
}
this.pd = data.pd // map
this.safetymethodrecordList = data.safetymethodrecordList
this.delayedList = data.delayedList
}).catch((e) => {
this.listLoading = false
})
},
getDelayed() {
this.listLoading = true
requestFN(
'/hotworkapplicationdelayed/list',
{
HOTWORKAPPLICATION_ID: this.HOTWORKAPPLICATION_ID
}
).then((data) => {
this.listLoading = false
this.hImgs = data.varList // map
}).catch((e) => {
this.listLoading = false
})
},
getListAllMeasures() {
this.listLoading = true
requestFN(
'/app/hotworkapplication/listAllMeasures',
{
HOTWORKAPPLICATION_ID: this.HOTWORKAPPLICATION_ID
}
).then((data) => {
this.listLoading = false
this.measuresList = data.varList // map
}).catch((e) => {
this.listLoading = false
})
},
goDetail(id) {
console.log(id)
this.$parent.HOTWORKAPPLICATION_ID = id
this.$parent.activeName = 'Delayed'
},
goBack() {
this.$parent.activeName = 'List'
}
}
}
</script>
<style lang="sass" scoped>
.print-approval-p10
padding: 20px 0
span
vertical-align: middle
.print-approval-img
width: 200px
height: 97px
display: inline-block
img
width: 100%
height: 100%
</style>

View File

@ -0,0 +1,279 @@
<template>
<div class="app-container">
<el-form ref="searchForm" :model="searchForm" label-width="80px">
<el-row>
<el-col :span="6">
<el-form-item label="作业编号" prop="keySource">
<el-input v-model="searchForm.keyJobNumber" placeholder="请输入作业编号" class="filter-item" />
</el-form-item>
</el-col>
<!-- <el-col :span="6">-->
<!-- <el-form-item label="特级动火审批状态" prop="keyHiddenDescr" label-width="130px">-->
<!-- <el-select v-model="searchForm.keyState" placeholder="请选择">-->
<!-- <el-option v-for="item in statusSuperList" :key="item.id" :label="item.name" :value="item.id" />-->
<!-- </el-select>-->
<!-- </el-form-item>-->
<!-- </el-col>-->
<el-col :span="6">
<el-form-item label="动火等级" prop="HOT_WORK_LEVEL_INDEX" >
<el-select v-model="searchForm.HOT_WORK_LEVEL_INDEX" placeholder="请选择" style="width: 80%">
<el-option v-for="item in hotworklevelList" :key="item.id" :label="item.name" :value="item.id" />
</el-select>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="动火内容" prop="keySource">
<el-input v-model="searchForm.JOB_CONTENT" placeholder="请输入动火内容" class="filter-item" />
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="动火部位" prop="keySource">
<el-input v-model="searchForm.HOT_WORK_POSITION" placeholder="请输入动火部位" class="filter-item" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="6">
<el-form-item label="动火区域管辖单位" prop="keySource" label-width="130px">
<SelectTree
ref="deptTree_Inspected"
:clearable="false"
:options="treeData"
:props="defaultProps"
v-model="searchForm.UNIT_LEADER_DEPARTMENT_ID"
placeholder="请选择动火区域管辖单位"
/>
</el-form-item>
</el-col>
<el-col :span="6">
<el-button v-waves class="filter-item" type="primary" icon="el-icon-search" @click="getList">
搜索
</el-button>
<el-button v-waves class="filter-item" type="success" icon="el-icon-refresh" @click="chongzhi">
重置
</el-button>
</el-col>
</el-row>
</el-form>
<el-table v-loading="listLoading" ref="multipleTable" :data="varList" :row-key="getRowKey" :header-cell-style="{'font-weight': 'bold','color': '#000'}" tooltip-effect="dark" border fit highlight-current-row>
<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="JOB_NUMBER" label="作业编号" />
<el-table-column prop="JOB_TYPE_INDEX" label="作业类型" >
<template slot-scope="{row}">
{{ translate(row.JOB_TYPE_INDEX, jobTypeList) }}
</template>
</el-table-column>
<el-table-column prop="HOT_WORK_LEVEL_NAME" label="动火等级" />
<el-table-column prop="JOB_CONTENT" label="动火内容" />
<el-table-column prop="HOT_WORK_POSITION" label="动火部位" />
<el-table-column prop="UNIT_LEADER_DEPARTMENT_NAME" label="动火区域管辖单位" />
<el-table-column prop="WORK_LEVEL" label="申请单位" >
<template slot-scope="{row}">
{{ getUserName('deptName', row.HOT_WORK_APPLICATION_List) }}
</template>
</el-table-column>
<el-table-column prop="APPLY_USER_NAME" label="申请人" />
<el-table-column prop="APPLY_USER_NAME" label="申请时间" >
<template slot-scope="{row}">
{{ getUserName('OPERATTIME', row.HOT_WORK_APPLICATION_List) }}
</template>
</el-table-column>
<el-table-column prop="STATE" label="审核状态" >
<template slot-scope="{row}">
{{ translate(row.STATE.toString(), statusList) }}
</template>
</el-table-column>
<el-table-column label="操作" align="center" width="120">
<template slot-scope="{row}">
<el-button icon="el-icon-view" size="mini" @click="goDetail(row.HOTWORKAPPLICATION_ID,'see')"></el-button>
</template>
</el-table-column>
</el-table>
<div class="page-btn-group">
<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
import SelectTree from '@/components/SelectTree'
export default {
components: { Pagination, SelectTree },
directives: { waves },
data() {
return {
listLoading: true,
add: false,
del: false,
edit: false,
listQuery: {
page: 1,
limit: 20
},
total: 0,
KEYWORDS: '',
varList: [],
pd: [],
multipleSelectionAll: [], //
multipleSelection: [], //
treeData: [], //
dialogFormShow: false,
dialogFormEdit: false,
dialogType: 'add',
replyListQuery: {
page: 1,
limit: 20
},
jobTypeList: [
{ id: '0', name: '内部作业' },
{ id: '1', name: '相关方作业' }
],
statusList: [
{ id: '0', name: '请选择' },
{ id: '11', name: '已归档' },
{ id: '-3', name: '关闭归档' }
],
statusSuperList: [
{ id: '0', name: '请选择' },
{ id: '1', name: '待提交' },
{ id: '2', name: '待审批' },
{ id: '3', name: '审批通过' },
{ id: '4', name: '已打回' }
],
hotworklevelList: [
{ id: '0', name: '特级' },
{ id: '1', name: '一级' },
{ id: '2', name: '二级' },
{ id: '3', name: '三级' }
],
defaultProps: {
value: 'id',
children: 'nodes',
label: 'name'
},
STATUS: '0',
DEPTIDS: '',
searchForm: {
keyJobNumber: '',
keyState: '',
keyApplyUserName: '',
keyApproveUserName: '',
keyApproveTime: '',
HOT_WORK_LEVEL_INDEX: '',
JOB_CONTENT: '',
HOT_WORK_POSITION: '',
UNIT_LEADER_DEPARTMENT_ID: ''
}
}
},
created() {
this.getList()
this.getDictTreeData()
},
methods: {
getRowKey(row) {
return row.HOTWORK_ID
},
//
getQuery() {
this.$refs.multipleTable.clearSelection()
this.getList()
},
//
getList() {
this.listLoading = true
requestFN(
'/hotworkapplication/hotWorkData?showCount=' + this.listQuery.limit + '&currentPage=' + this.listQuery.page,
{
...this.searchForm,
keyState: 11,
isForceBack: 2,
DEPTIDS: this.DEPTIDS, tm: new Date().getTime()
}
).then((data) => {
this.listLoading = false
this.varList = data.varList
this.total = data.page.totalResult
this.hasButton()
}).catch((e) => {
this.listLoading = false
})
},
//
hasButton() {
var keys = 'hotwork:add,hotwork:del,hotwork:edit,toExcel'
requestFN(
'/head/hasButton',
{
keys: keys
}
).then((data) => {
this.add = data.hotworkfhadminadd //
this.del = data.hotworkfhadmindel //
this.edit = data.hotworkfhadminedit //
}).catch((e) => {
this.listLoading = false
})
},
translate(id, list) {
for (let i = 0; i < list.length; i++) {
if (list[i].BIANMA === id || list[i].value === id || list[i].id === id) return list[i].NAME || list[i].label || list[i].name
}
},
getUserName(keyName, list) {
var keyVal = ''
for (let i = 0; i < list.length; i++) {
if (list[i][keyName]) {
keyVal += list[i][keyName] + ','
}
}
return keyVal.substring(0, (keyVal.length - 1))
},
goDetail(id, type) {
this.$parent.activeName = 'Detail'
this.$parent.HOTWORKAPPLICATION_ID = id
this.$parent.HOTWORKAPPLICATION_TYPE = type
},
getDictTreeData() {
return new Promise((resolve) => {
requestFN(
'/department/listTreeCorpDept',
{}
).then((data) => {
this.treeData = this.listTransTree(JSON.parse(data.zTreeNodes), 'id', 'pId', 'nodes')
resolve('ok')
}).catch((e) => {
})
})
},
chongzhi() {
this.searchForm = {
stateConfirm: '',
keySource: '',
keyHiddenDescr: '',
keyFindUserName: '',
keyFindUserDept: '',
keyHiddenType: '',
keyHiddenPart: '',
keyHiddenlevel: '',
keyFindTime: [],
keyFindStateTime: '',
keyFindEndTime: '',
keyConfirmUser: '',
HOT_WORK_LEVEL_INDEX: '',
JOB_CONTENT: '',
HOT_WORK_POSITION: ''
}
this.$refs.deptTree_Inspected.clearHandle()
this.$refs.searchForm.resetFields()
this.getList()
}
}
}
</script>

View File

@ -0,0 +1,37 @@
<template>
<div>
<List v-show="activeName==='List'" ref="list" />
<Detail v-if="activeName==='Detail'"/>
<Delayed v-if="activeName==='Delayed'"/>
</div>
</template>
<script>
import List from './components/list'
import Detail from './components/detail'
import Delayed from './components/delayed'
export default {
components: {
List: List,
Detail: Detail,
Delayed: Delayed
},
data() {
return {
activeName: 'List',
HOTWORKAPPLICATION_ID: '',
HOTWORKAPPLICATION_TYPE: ''
}
},
watch: {
activeName(val) {
if (val === 'List') {
this.$refs.list.getList()
}
}
}
}
</script>
<style scoped>
</style>

View File

@ -44,7 +44,7 @@
<td colspan="5">{{ pd.JOB_CONTENT }}</td>
</tr>
<tr>
<td class="tbg" rowspan="2">现场负责</td>
<td class="tbg" rowspan="2">现场管辖</td>
<td>姓名{{ pd.SITE_LEADER_NAME }}</td>
<td class="tbg" rowspan="2">动火操作人</td>
<td rowspan="2">{{ pd.HOT_WORK_OPERATOR_NAME }}</td>

View File

@ -182,6 +182,7 @@
<div class="ui-foot">
<el-button v-print="'#printContent'" type="primary" icon="el-icon-printer" size="mini"></el-button>
<el-button plain type="info" @click="goBack"> </el-button>
<el-button type="primary" icon="el-icon-printer" size="mini" @click="goExport"></el-button>
</div>
</div>
@ -351,6 +352,25 @@ export default {
goBack() {
this.$parent.INSPECTION_ID = ''
this.$parent.activeName = 'List'
},
formatDate(dateStr) {
// Date
const date = new Date(dateStr)
//
const year = date.getFullYear()
const month = String(date.getMonth() + 1).padStart(2, '0') // 01
const day = String(date.getDate()).padStart(2, '0')
const hours = String(date.getHours()).padStart(2, '0')
const minutes = String(date.getMinutes()).padStart(2, '0')
// const seconds = String(date.getSeconds()).padStart(2, '0')
//
// return `${year}${month}${day}${hours}${minutes}${seconds}`
return `${year}${month}${day}${hours}${minutes}`
},
//
goExport() {
var dataStr = '?INSPECTION_ID=' + encodeURIComponent(this.$parent.INSPECTION_ID)
window.location.href = config.httpurl + '/safetyenvironmental/exportInfo' + dataStr
}
}
}

View File

@ -376,6 +376,7 @@
<div class="ui-height" />
<div class="ui-foot">
<el-button type="primary" @click="confirm"> </el-button>
<el-button type="success" @click="staging"> </el-button>
<el-button @click="goBack"> </el-button>
</div>
</div>
@ -1173,6 +1174,89 @@ export default {
this.form.CONFIRM_MESSAGE_SIGN = information.INSPECTION_USER_SIGN_IMG
this.form.CONFIRM_MESSAGE_TIME = information.INSPECTION_USER_SIGN_TIME
this.$forceUpdate()
},
/**
* 先缓存
*/
staging() {
let flag = false
this.form.situationList.forEach(item => {
if (!this.validStr(item.SITUATION)) {
flag = true
return
}
})
if (flag) {
this.$message({
message: '检查情况不能为空',
type: 'warning'
})
return false
}
flag = false
this.form.inspectorList.forEach(item => {
if (!this.validStr(item.INSPECTION_USER_ID)) {
flag = true
return
}
})
if (flag) {
this.$message({
message: '检查人员不能为空',
type: 'warning'
})
return false
}
this.$refs.form.validate(valid => {
if (valid) {
const loading = this.$loading({
lock: true,
text: '数据保存中...',
spinner: 'el-icon-loading',
background: 'rgba(0, 0, 0, 0.7)'
})
for (var x in this.form.inspectorList) {
var vector = 0
for (var y in this.form.inspectorList) {
if (this.form.inspectorList[y].INSPECTION_USER_ID === this.form.inspectorList[x].INSPECTION_USER_ID) vector++
}
if (vector > 1) {
this.$message.error('检查人重复!请检查相关数据')
return
}
}
const index = this.form.inspectorList.findIndex(item => item.INSPECTION_USER_ID === JSON.parse(sessionStorage.getItem('user')).USER_ID)
if (index < 0) {
this.form.inspectorList.push({ INSPECTION_INSPECTOR_ID: '', INSPECTION_DEPARTMENT_ID: JSON.parse(sessionStorage.getItem('user')).DEPARTMENT_ID, INSPECTION_USER_ID: JSON.parse(sessionStorage.getItem('user')).USER_ID })
}
this.$set(this.form, 'INSPECTORJSON', JSON.stringify(this.form.inspectorList))
this.$set(this.form, 'SITUATIONJSON', JSON.stringify(this.form.situationList))
this.$set(this.form, 'HIDDENJSON', JSON.stringify(this.form.hiddenList))
this.listLoading = true
requestFN(
'/safetyenvironmental/' + this.dialogType,
{ ...this.form, INSPECTION_STATUS: '99' }
).then((data) => {
for (let i = 0; i < data.pd.hiddenList.length; i++) {
this.uploadImg(this.hdFile[i]['fileHdImgList'], data.pd.hiddenList[i].HIDDEN_ID)
this.uploadVideo(this.hdFile[i]['fileVideoList'], data.pd.hiddenList[i].HIDDEN_ID)
}
this.$message({
message: '保存成功',
type: 'success'
})
this.listLoading = false
loading.close()
this.goBack()
}).catch((e) => {
this.listLoading = false
loading.close()
})
} else {
return false
}
})
}
}
}

View File

@ -361,6 +361,7 @@
<div class="ui-height" />
<div v-loading="loading" class="ui-foot">
<el-button type="primary" @click="confirm"> </el-button>
<el-button type="success" @click="staging"> </el-button>
<el-button @click="goBack"> </el-button>
</div>
</div>
@ -906,6 +907,7 @@ export default {
this.$set(this.form, 'delHiddens', this.delHiddens.join(','))
this.$set(this.form, 'delHiddenFiles', this.delHiddenFiles.join(','))
this.listLoading = true
this.form.INSPECTION_STATUS = '0'
requestFN(
'/safetyenvironmental/' + this.dialogType,
{ ...this.form }
@ -1141,6 +1143,81 @@ export default {
this.form.CONFIRM_MESSAGE_SIGN = information.INSPECTION_USER_SIGN_IMG
this.form.CONFIRM_MESSAGE_TIME = information.INSPECTION_USER_SIGN_TIME
this.$forceUpdate()
},
/**
* 暂存
*/
staging() {
let flag = false
this.form.situationList.forEach(item => {
if (!this.validStr(item.SITUATION)) {
flag = true
return
}
})
if (flag) {
this.$message({
message: '检查情况不能为空',
type: 'warning'
})
return false
}
flag = false
this.form.inspectorList.forEach(item => {
if (!this.validStr(item.INSPECTION_USER_ID)) {
flag = true
return
}
})
if (flag) {
this.$message({
message: '检查人员不能为空',
type: 'warning'
})
return false
}
this.$refs.form.validate(valid => {
if (valid) {
const loading = this.$loading({
lock: true,
text: '数据保存中...',
spinner: 'el-icon-loading',
background: 'rgba(0, 0, 0, 0.7)'
})
// console.info(this.form.hiddenList[index])
this.$set(this.form, 'INSPECTORJSON', JSON.stringify(this.form.inspectorList))
this.$set(this.form, 'SITUATIONJSON', JSON.stringify(this.form.situationList))
this.$set(this.form, 'HIDDENJSON', JSON.stringify(this.form.hiddenList))
this.$set(this.form, 'delInspectors', this.delInspectors.join(','))
this.$set(this.form, 'delSituations', this.delSituations.join(','))
this.$set(this.form, 'delHiddens', this.delHiddens.join(','))
this.$set(this.form, 'delHiddenFiles', this.delHiddenFiles.join(','))
this.form.INSPECTION_STATUS = '99'
this.listLoading = true
requestFN(
'/safetyenvironmental/' + this.dialogType,
{ ...this.form }
).then((data) => {
for (let i = 0; i < data.pd.hiddenList.length; i++) {
this.uploadImg(this.hdFile[i]['fileHdImgList'], data.pd.hiddenList[i].HIDDEN_ID)
this.uploadVideo(this.hdFile[i]['fileVideoList'], data.pd.hiddenList[i].HIDDEN_ID)
}
this.$message({
message: '保存成功',
type: 'success'
})
this.listLoading = false
loading.close()
this.goBack()
}).catch((e) => {
this.listLoading = false
loading.close()
})
} else {
return false
}
})
}
}
}

View File

@ -98,6 +98,9 @@
<el-button v-waves type="success" icon="el-icon-refresh" @click="goKeyReset">
重置
</el-button>
<el-button v-waves plain type="info" icon="el-icon-right" @click="goExportExcel">
导出
</el-button>
</el-form-item>
</el-col>
</el-row>
@ -164,7 +167,7 @@
<el-button icon="el-icon-view" size="mini" @click="goDetail(row)"></el-button>
<el-button type="success" icon="el-icon-view" size="mini" @click="checkFlow(row)"></el-button>
<el-button
v-show="edit && ( row.INSPECTION_STATUS == '-1')"
v-show="edit && ( row.INSPECTION_STATUS == '-1' || row.INSPECTION_STATUS === '99')"
type="primary"
icon="el-icon-edit"
size="mini"
@ -292,7 +295,8 @@ export default {
{ ID: '7', NAME: '检查已验收' },
{ ID: '8', NAME: '已归档' },
{ ID: '-1', NAME: '检查人核实打回' },
{ ID: '-2', NAME: '被检查人申辩' }
{ ID: '-2', NAME: '被检查人申辩' },
{ ID: '99', NAME: '暂存' }
],
INSPECTION_SUBJECT_LIST: [
{ ID: '安全', NAME: '安全' },
@ -371,6 +375,22 @@ export default {
this.$refs.deptTree_Select1.clearHandle()
this.$refs.deptTree_Select2.clearHandle()
},
// Excel
goExportExcel() {
var dataStr = '?HIDDENDESCR=' + encodeURIComponent(this.search.HIDDENDESCR)
dataStr += '&INSPECTED_DEPARTMENT_ID=' + encodeURIComponent(this.search.INSPECTED_DEPARTMENT_ID) //
dataStr += '&INSPECTION_DEPARTMENT_ID=' + encodeURIComponent(this.search.INSPECTION_DEPARTMENT_ID) //
dataStr += '&INSPECTION_ORIGINATOR_NAME=' + encodeURIComponent(this.search.INSPECTION_ORIGINATOR_NAME) //
dataStr += '&INSPECTION_TYPE=' + encodeURIComponent(this.search.INSPECTION_TYPE) //
dataStr += '&INSPECTION_USER_NAME=' + encodeURIComponent(this.search.INSPECTION_USER_NAME) //
dataStr += '&INSPECTION_USER_PHONE=' + encodeURIComponent(this.search.INSPECTION_USER_PHONE) //
dataStr += '&INSPECTION_CASE=' + encodeURIComponent(this.search.INSPECTION_CASE) //
dataStr += '&INSPECTION_STATUS=' + encodeURIComponent(this.search.INSPECTION_STATUS) //
dataStr += '&INSPECTION_SUBJECT=' + encodeURIComponent(this.search.INSPECTION_SUBJECT) //
dataStr += '&INSPECTION_TIME_START=' + encodeURIComponent(this.search.INSPECTION_TIME[0]) //
dataStr += '&INSPECTION_TIME_END=' + encodeURIComponent(this.search.INSPECTION_TIME[1]) //
window.location.href = config.httpurl + '/safetyenvironmental/exportexcel' + dataStr
},
//
getList() {
this.listLoading = true