增加安全环保检查暂存,增加动火强制结束后查询页面

dev-shanao
shanao 2024-11-05 09:16:59 +08:00
parent 82d63b32db
commit ccfd198041
5 changed files with 1121 additions and 0 deletions

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-row>
<el-row>
<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-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

@ -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,92 @@ 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/staging',
{ ...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
}
})
}
}
}