Merge remote-tracking branch 'origin/lmy20231113' into 相关方关联分公司功能

cmt1.0
zhaoyu 2023-12-14 18:49:17 +08:00
commit 350263c039
6 changed files with 1494 additions and 0 deletions

View File

@ -0,0 +1,381 @@
<template>
<div>
<div id="printTest" class="app-container print-work">
<el-page-header content="审批表详情" class="no-print" @back="goBack"/>
<table class="table-ui">
<thead>
<tr>
<td colspan="4" style="border: none">
<div class="level-title mt-20">
<h1>动火安全作业票</h1>
<div class="level-code">编号:{{ pd.CHECK_NO }}</div>
</div>
</td>
</tr>
</thead>
<tr>
<td class="bbg">作业申请单位</td>
<td>{{ pd.APPLY_DEPARTMENT_NAME }}</td>
<td class="bbg">作业申请时间</td>
<td>{{ pd.CREATTIME }}</td>
</tr>
<tr>
<td class="bbg">作业内容</td>
<td>{{ pd.WORK_CONTENT }}</td>
<td class="bbg">动火地点及动火部位</td>
<td>{{ pd.WORK_PLACE }}</td>
</tr>
<tr>
<td class="bbg">动火作业级别</td>
<td>{{ pd.WORK_LEVEL }}</td>
<td class="bbg">动火方式</td>
<td>{{ pd.WORK_FUNCTION }}</td>
</tr>
<tr>
<td class="bbg">动火人及证书编号</td>
<td colspan="3">{{ pd.WORK_USER }}</td>
</tr>
<tr>
<td class="bbg">作业单位</td>
<td>{{ pd.CONFIRM_DEPARTMENT_NAME }}</td>
<td class="bbg">作业负责人</td>
<td>{{ pd.CONFIRM_USER_NAME }}</td>
</tr>
<template v-for="(item,index) in gasList">
<tr :key="index">
<td class="bbg">气体取样分析时间</td>
<td>{{ item.ANALYZE_TIME }}</td>
<td class="bbg">代表性气体</td>
<td>{{ item.ANALYZE_PLACE }}</td>
</tr>
<tr :key="index">
<td class="bbg">分析结果/%</td>
<td>{{ item.ANALYZE_RESULT }}</td>
<td class="bbg">分析人</td>
<td>{{ item.ANALYZE_USER }}</td>
</tr>
</template>
<tr>
<td class="bbg">关联的其他特殊作业及安全作业票编号</td>
<td colspan="3">{{ pd.SPECIAL_WORK }}</td>
</tr>
<tr>
<td class="bbg">风险辨识结果</td>
<td colspan="3">{{ pd.RISK_IDENTIFICATION }}</td>
</tr>
<tr>
<td class="bbg">动火作业实施时间</td>
<td colspan="3">{{ pd.WORK_START_DATE }}{{ pd.WORK_END_DATE }}</td>
</tr>
<tr>
<td colspan="4">
<table class="table-ui">
<tr>
<td>序号</td>
<td>安全措施</td>
<td>是否涉及</td>
<td>确认人</td>
</tr>
<tr v-for="(item,index) in measuresList" :key="index">
<td>{{ 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>-->
</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>
</tr>
<tr v-if="pd.CONFIRM_USER_MEASURES || pd.LEADER_USER_MEASURES || pd.AUDIT_USER_MEASURES || pd.APPROVE_USER_MEASURES || pd.MONITOR_USER_MEASURES">
<td>{{ measuresList.length + 1 }}</td>
<td colspan="3">
<div v-if="pd.CONFIRM_USER_MEASURES" style="display: flex;justify-content: space-between;">
<span>其他安全措施{{ pd.CONFIRM_USER_MEASURES }}</span>
<span>编制人{{ pd.CONFIRM_USER_NAME }}</span>
</div>
<div v-if="pd.LEADER_USER_MEASURES" style="display: flex;justify-content: space-between;margin-top: 10px;">
<span>其他安全措施{{ pd.LEADER_USER_MEASURES }}</span>
<span>编制人{{ pd.LEADER_USER_NAME }}</span>
</div>
<div v-if="pd.AUDIT_USER_MEASURES" style="display: flex;justify-content: space-between;margin-top: 10px;">
<span>其他安全措施{{ pd.AUDIT_USER_MEASURES }}</span>
<span>编制人{{ pd.AUDIT_USER_NAME }}</span>
</div>
<div v-if="pd.APPROVE_USER_MEASURES" style="display: flex;justify-content: space-between;margin-top: 10px;">
<span>其他安全措施{{ pd.APPROVE_USER_MEASURES }}</span>
<span>编制人{{ pd.APPROVE_USER_NAME }}</span>
</div>
<div v-if="pd.MONITOR_USER_MEASURES" style="display: flex;justify-content: space-between;margin-top: 10px;">
<span>其他安全措施{{ pd.MONITOR_USER_MEASURES }}</span>
<span>编制人{{ pd.MONITOR_USER_NAME }}</span>
</div>
</td>
</tr>
</table>
</td>
</tr>
<tr>
<td class="bbg">安全交底人</td>
<td colspan="10">
<div v-if="pd.CONFESS_USER_SIGNER_PATH" style="text-align: right">
<span>签字</span>
<img v-viewer :src="config.fileUrl + pd.CONFESS_USER_SIGNER_PATH" alt="" width="100" height="100">
<span>{{ pd.CONFESS_USER_SIGNER_TIME }}</span>
</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">
<div v-if="pd.GUARDIAN_USER_SIGNER_PATH" style="text-align: right">
<span>签字</span>
<img v-viewer :src="config.fileUrl + pd.GUARDIAN_USER_SIGNER_PATH" alt="" width="100" height="100">
<span>{{ pd.GUARDIAN_USER_SIGNER_TIME }}</span>
</div>
</td>
</tr>
<tr v-if="pd.CONFIRM_USER_SIGNER_PATH">
<td colspan="6">
<div>作业负责人意见{{ 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">
<span>{{ pd.CONFIRM_USER_SIGNER_TIME }}</span>
</div>
</td>
</tr>
<tr v-if="pd.LEADER_USER_SIGNER_PATH">
<td colspan="6">
<div>所在单位意见{{ 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">
<span>{{ pd.LEADER_USER_SIGNER_TIME }}</span>
</div>
</td>
</tr>
<tr v-if="pd.AUDIT_USER_SIGNER_PATH">
<td colspan="6">
<div>安全管理部门意见{{ 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">
<span>{{ pd.AUDIT_USER_SIGNER_TIME }}</span>
</div>
</td>
</tr>
<tr v-if="pd.APPROVE_USER_SIGNER_PATH">
<td colspan="6">
<div>动火审批人意见{{ 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">
<span>{{ pd.APPROVE_USER_SIGNER_TIME }}</span>
</div>
</td>
</tr>
<tr v-if="pd.MONITOR_USER_SIGNER_PATH">
<td colspan="6">
<div>动火前岗位当班班长验票情况{{ 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">
<span>{{ pd.MONITOR_USER_SIGNER_TIME }}</span>
</div>
</td>
</tr>
<tr v-if="imgList1.length>0">
<td colspan="10">
<div>完工验收{{ 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">
<span>{{ item.ACCEPT_USER_SIGNER_TIME }}</span>
</div>
</td>
</tr>
</table>
</div>
<!-- <div class="ui-height" />-->
<div class="ui-foot">
<!-- <el-button v-print="'#printTest'" v-if="pd.APPLY_STATUS==8"> </el-button>-->
<el-button icon="el-icon-arrow-left" @click="goBack"> </el-button>
</div>
</div>
</template>
<script>
import { requestFN } from '@/utils/request'
import dateformat from '@/utils/dateformat'
export default {
data() {
return {
config: config,
HOTWORK_ID: this.$parent.HOTWORK_ID, // ID
pd: [], //
measuresList: [],
gasList: [],
imgList: [],
imgList1: [],
otherProtectiveMeasures: []
}
},
created() {
this.getData()
},
methods: {
validStr(str) {
if (str != null && str != '' && typeof (str) != 'undefined' && str != 0) { return true }
return false
},
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.HOTWORK_ID
},
getData() {
this.listLoading = true
requestFN(
'/hotwork/cfd/goEdit',
{
HOTWORK_ID: this.HOTWORK_ID
}
).then((data) => {
this.listLoading = false
this.pd = data.pd // map
this.imgList = data.imgList
this.imgList1 = data.imgList1
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 === '二级') {
this.pd.CONFIRM_USER_MEASURES = this.pd.OTHER_PROTECTIVE_MEASURES.split(';_;')[0]
this.pd.LEADER_USER_MEASURES = this.pd.OTHER_PROTECTIVE_MEASURES.split(';_;')[1]
this.pd.MONITOR_USER_MEASURES = this.pd.OTHER_PROTECTIVE_MEASURES.split(';_;')[2]
} else if (this.pd.WORK_LEVEL === '一级') {
this.pd.CONFIRM_USER_MEASURES = this.pd.OTHER_PROTECTIVE_MEASURES.split(';_;')[0]
this.pd.LEADER_USER_MEASURES = this.pd.OTHER_PROTECTIVE_MEASURES.split(';_;')[1]
this.pd.AUDIT_USER_MEASURES = this.pd.OTHER_PROTECTIVE_MEASURES.split(';_;')[2]
this.pd.MONITOR_USER_MEASURES = this.pd.OTHER_PROTECTIVE_MEASURES.split(';_;')[3]
} else {
this.pd.CONFIRM_USER_MEASURES = this.pd.OTHER_PROTECTIVE_MEASURES.split(';_;')[0]
this.pd.LEADER_USER_MEASURES = this.pd.OTHER_PROTECTIVE_MEASURES.split(';_;')[1]
this.pd.AUDIT_USER_MEASURES = this.pd.OTHER_PROTECTIVE_MEASURES.split(';_;')[2]
this.pd.APPROVE_USER_MEASURES = this.pd.OTHER_PROTECTIVE_MEASURES.split(';_;')[3]
this.pd.MONITOR_USER_MEASURES = this.pd.OTHER_PROTECTIVE_MEASURES.split(';_;')[4]
}
}).catch((e) => {
this.listLoading = false
})
},
//
findCharIndex(str, char, num) {
let index = str.indexOf(char)
for (let i = 0; i < num - 1; i++) {
index = str.indexOf(char, index + 1)
}
return index
},
goBack() {
this.$parent.activeName = 'List'
}
}
}
</script>
<style lang="sass" scoped>
.print-approval-p10
padding: 20px 0
span
vertical-align: middle
.bbg
width: 300px
.print-approval-img
width: 200px
height: 97px
display: inline-block
img
width: 100%
height: 100%
</style>
<style scoped lang="scss">
.table-ui td{
line-height: unset;
}
.app-container{
margin-bottom: 50px;
}
.level-title {
display: flex;
justify-content: space-between;
}
.pdf-content[name=pdf-box]{
position: absolute;
left: -999999px;
.level-title {
h1{
font-size: 20px;
}
.level-code{
font-size: 20px;
}
}
td{
font-size: 20px;
}
.bbg {
width: 180px;
}
}
</style>

View File

@ -0,0 +1,401 @@
<template>
<div class="app-container">
<el-form label-width="50px">
<el-row>
<el-col :span="4">
<el-form-item label="编号">
<el-input v-model="KEYWORDS" placeholder="请输入编号"/>
</el-form-item>
</el-col>
<el-col :span="4">
<el-form-item label="状态">
<el-select v-model="STATUS" clearable placeholder="请选择" style="width: 100%;">
<el-option v-for="item in statusList" :key="item.ID" :label="item.NAME" :value="item.ID" />
</el-select>
</el-form-item>
</el-col>
<el-col :span="4">
<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 icon="el-icon-refresh" type="success" @click="goKeyReset">
重置
</el-button>
</el-form-item>
</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="CHECK_NO" label="编号" />
<el-table-column prop="WORK_LEVEL" label="作业级别" />
<el-table-column prop="APPLY_USER_NAME" label="申请人" />
<el-table-column prop="ANALYZE_USER_NAME" label="分析人" />
<el-table-column prop="CONFIRM_USER_NAME" label="作业负责人" />
<el-table-column prop="LEADER_USER_NAME" label="所在单位负责人" />
<el-table-column prop="AUDIT_USER_NAME" label="安全管理部门负责人" show-overflow-tooltip >
<template slot-scope="{row}">
{{ row.AUDIT_USER_NAME || ' 已跳过' }}
</template>
</el-table-column>
<el-table-column prop="APPROVE_USER_NAME" label="动火审批人" show-overflow-tooltip >
<template slot-scope="{row}">
{{ row.APPROVE_USER_NAME || ' 已跳过' }}
</template>
</el-table-column>
<el-table-column prop="MONITOR_USER_NAME" label="动火前在岗班长" />
<el-table-column prop="ACCEPT_USER_NAME" label="验收部门负责人" />
<el-table-column prop="STATUS" label="审核状态">
<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==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==-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==-99">已作废班长未验票</span>
<span v-else-if="row.APPLY_STATUS==-98">已作废未进行气体检测</span>
</template>
</el-table-column>
<el-table-column label="操作" align="center" width="230">
<template slot-scope="{row}">
<el-button type="primary" icon="el-icon-plus" @click="goChart(row)"></el-button>
<el-button type="primary" icon="el-icon-document" size="mini" @click="goDetail(row.HOTWORK_ID)"></el-button>
</template>
</el-table-column>
</el-table>
<div class="page-btn-group">
<div>
<!-- <el-button v-show="add" type="primary" icon="el-icon-plus" @click="handleAdd"></el-button>-->
<!-- <el-button v-show="del" type="danger" icon="el-icon-delete" plain @click="batchDel"></el-button>-->
</div>
<pagination :total="total" :page.sync="listQuery.page" :limit.sync="listQuery.limit" @pagination="getList" />
</div>
<el-dialog :visible.sync="dialogFormShow " :title="dialogType==='add'?'查看流程图':'新增'" width="1550px">
<el-steps :active="getStatus()" :process-status="getProcessStatus()" finish-status="success" align-center>
<el-step title="动火作业提交">
<template slot="description">
<div>{{ getProcessMessage().title }}</div>
<div>{{ getProcessMessage().USER_NAME }}</div>
<div>{{ getProcessMessage().OPERATTIME }}</div>
</template>
</el-step>
<el-step title="作业负责人意见">
<template slot="description">
<div>{{ pd.CONFIRM_USER_NAME }}</div>
<div>{{ pd.CONFIRM_USER_SIGNER_TIME }}</div>
</template>
</el-step>
<el-step title="所在单位意见">
<template slot="description">
<div>{{ pd.LEADER_USER_NAME }}</div>
<div>{{ pd.LEADER_USER_SIGNER_TIME }}</div>
</template>
</el-step>
<el-step title="安全管理部门意见" >
<template slot="description">
<div v-if="getIsPase('AUDIT_USER_NAME')">{{ '' }}</div>
<div v-else>{{ pd.AUDIT_USER_NAME }}</div>
<div>{{ pd.AUDIT_USER_SIGNER_TIME }}</div>
</template>
</el-step>
<el-step title="动火审批人意见">
<template slot="description">
<div v-if="getIsPase('APPROVE_USER_NAME')">{{ '' }}</div>
<div>{{ pd.APPROVE_USER_NAME }}</div>
<div>{{ pd.APPROVE_USER_SIGNER_TIME }}</div>
</template>
</el-step>
<el-step title="班长验票">
<template slot="description">
<div>{{ pd.MONITOR_USER_NAME }}</div>
<div>{{ pd.MONITOR_USER_SIGNER_TIME }}</div>
</template>
</el-step>
<el-step title="完成验收">
<template slot="description">
<div>{{ pd.ACCEPT_USER_NAME }}</div>
<div>{{ pd.ACCEPT_USER_SIGNER_TIME }}</div>
</template>
</el-step>
<el-step title="验收归档">
<template slot="description">
<div>{{ pd.ACCEPT_USER_NAME }}</div>
<div>{{ pd.ACCEPT_USER_SIGNER_TIME }}</div>
</template>
</el-step>
</el-steps>
<div style="margin: 60px 60px 0 60px;display: flex;justify-content: space-between">
<div v-if="pd.GUARDIAN_USER_SIGNER_TIME">
<div style="color: #13ce66">
监护人{{ pd.GUARDIAN_USER_NAME }}已签字
</div>
</div>
<div v-if="!pd.GUARDIAN_USER_SIGNER_TIME">
<div style="color: red">
监护人{{ pd.GUARDIAN_USER_NAME }}未签字
</div>
</div>
<div v-if="pd.CONFESS_USER_SIGNER_TIME">
<div style="color: #13ce66">
安全交底人{{ pd.CONFESS_USER_NAME }}已签字
</div>
</div>
<div v-if="!pd.CONFESS_USER_SIGNER_TIME">
<div style="color: red">
安全交底人{{ pd.CONFESS_USER_NAME }}未签字
</div>
</div>
<div v-if="pd.ACCEPT_CONFESS_USER_SIGNER_TIME">
<div style="color: #13ce66">
接受交底人{{ pd.ACCEPT_CONFESS_USER_NAME }}已签字
</div>
</div>
<div v-if="!pd.ACCEPT_CONFESS_USER_SIGNER_TIME">
<div style="color: red">
接受交底人{{ pd.ACCEPT_CONFESS_USER_NAME }}未签字
</div>
</div>
</div>
<div slot="footer" class="dialog-footer">
<!-- <el-button @click="dialogFormShow = false"> </el-button>-->
<el-button type="primary" @click="dialogFormShow = false"> </el-button>
</div>
</el-dialog>
</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 {
listLoading: true,
add: false,
del: false,
edit: false,
listQuery: {
page: 1,
limit: 10
},
total: 0,
KEYWORDS: '',
varList: [],
pd: [],
multipleSelectionAll: [], //
multipleSelection: [], //
dialogFormShow: false,
dialogFormEdit: false,
dialogType: 'add',
replyVarList: [], // REPLY
replyListQuery: {
page: 1,
limit: 10
},
replyTotal: 0,
dialogFormHuifuShow: false,
statusList: [
{ ID: '', NAME: '请选择' },
{ ID: '0', NAME: '动火作业待提交' },
{ ID: '1', NAME: '作业负责人待审核' },
{ ID: '2', NAME: '所在单位待审核' },
{ ID: '4', NAME: '安全管理部门待审核' },
{ ID: '5', NAME: '动火审批人待审核' },
{ ID: '6', NAME: '班长待验票' },
{ ID: '7', NAME: '待验收' },
{ ID: '8', NAME: '验收归档' },
{ ID: '-2', NAME: '作业负责人审核打回' },
{ ID: '-4', NAME: '所在单位审核打回' },
{ ID: '-5', NAME: '安全管理部门审核打回' },
{ ID: '-6', NAME: '动火审批人审核打回' },
{ ID: '-7', NAME: '班长验票打回' },
{ ID: '-8', NAME: '验收打回' },
{ ID: '-99', NAME: '已作废(班长未验票)' },
{ ID: '-98', NAME: '已作废(未进行气体检测)' }
],
STATUS: '',
DEPTIDS: ''
}
},
created() {
this.getList()
},
methods: {
getRowKey(row) {
return row.HOTWORK_ID
},
//
getQuery() {
this.$refs.multipleTable.clearSelection()
this.getList()
},
goKeyReset() {
this.KEYWORDS = ''
this.STATUS = ''
this.getQuery()
},
//
getList() {
this.listLoading = true
requestFN(
'/hotwork/cfd/list?showCount=' + this.listQuery.limit + '&currentPage=' + this.listQuery.page,
{
KEYWORDS: this.KEYWORDS, APPLY_STATUS: this.STATUS,
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
})
},
goChart(row) {
this.pd = row
this.dialogFormShow = true
},
getStatus() {
if (this.pd.APPLY_STATUS <= '0') {
return 0
}
if (this.pd.APPLY_STATUS == '1') {
return 1
}
if (this.pd.APPLY_STATUS == '2') {
return 2
}
if (this.pd.APPLY_STATUS == '4') {
return 3
}
if (this.pd.APPLY_STATUS == '5') {
return 4
}
if (this.pd.APPLY_STATUS == '6') {
return 5
}
if (this.pd.APPLY_STATUS == '7') {
return 6
}
if (this.pd.APPLY_STATUS == '8') {
return 8
}
},
getProcessStatus() {
if (this.pd.APPLY_STATUS < '0') {
return 'error'
} else {
return 'process'
}
},
getProcessMessage() {
let obj = {}
if (this.pd.APPLY_STATUS >= '0') {
obj = {
title: '',
USER_NAME: this.pd.APPLY_USER_NAME,
OPERATTIME: this.pd.CREATTIME
}
}
if (this.pd.APPLY_STATUS == '-2') {
obj = {
title: '作业负责人审核打回',
USER_NAME: this.pd.CONFIRM_USER_NAME,
OPERATTIME: this.pd.OPERATTIME
}
}
if (this.pd.APPLY_STATUS == '-4') {
obj = {
title: '所在单位审核打回',
USER_NAME: this.pd.LEADER_USER_NAME,
OPERATTIME: this.pd.OPERATTIME
}
}
if (this.pd.APPLY_STATUS == '-5') {
obj = {
title: '安全管理部门审核打回',
USER_NAME: this.pd.AUDIT_USER_NAME,
OPERATTIME: this.pd.OPERATTIME
}
}
if (this.pd.APPLY_STATUS == '-6') {
obj = {
title: '动火审批人审核打回',
USER_NAME: this.pd.APPROVE_USER_NAME,
OPERATTIME: this.pd.OPERATTIME
}
}
if (this.pd.APPLY_STATUS == '-7') {
obj = {
title: '班长验票打回',
USER_NAME: this.pd.MONITOR_USER_NAME,
OPERATTIME: this.pd.OPERATTIME
}
}
if (this.pd.APPLY_STATUS == '-8') {
obj = {
title: '验收打回',
AUSER_NAME: this.pd.ACCEPT_USER_NAME,
OPERATTIME: this.pd.OPERATTIME
}
}
if (this.pd.APPLY_STATUS == '-99') {
obj = {
title: '已作废(班长未验票)',
AUSER_NAME: '',
OPERATTIME: this.pd.OPERATTIME
}
}
if (this.pd.APPLY_STATUS == '-98') {
obj = {
title: '已作废(未进行气体检测)',
AUSER_NAME: '',
OPERATTIME: this.pd.OPERATTIME
}
}
return obj
},
getIsPase(col) {
if (!this.pd[col]) {
return '已跳过'
}
},
goDetail(id) {
this.$parent.activeName = 'Detail'
this.$parent.HOTWORK_ID = id
}
}
}
</script>

View File

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

View File

@ -0,0 +1,454 @@
<template>
<div>
<div id="printTest" class="app-container print-work">
<el-page-header content="审批表详情" class="no-print" @back="goBack"/>
<div v-for="pdf in 2" :key="pdf" :name="pdf === 2 ? 'pdf-box' : ''" class="pdf-content">
<table :class="['table-ui','table-ui' + pdf]">
<tr>
<td colspan="4" style="border: none">
<div class="level-title mt-20">
<h1>动火安全作业票</h1>
<div class="level-code">编号:{{ pd.CHECK_NO }}</div>
</div>
</td>
</tr>
<tr>
<td class="bbg">作业申请单位</td>
<td>{{ pd.APPLY_DEPARTMENT_NAME }}</td>
<td class="bbg">作业申请时间</td>
<td>{{ pd.CREATTIME }}</td>
</tr>
<tr>
<td class="bbg">作业内容</td>
<td>{{ pd.WORK_CONTENT }}</td>
<td class="bbg">动火地点及动火部位</td>
<td>{{ pd.WORK_PLACE }}</td>
</tr>
<tr>
<td class="bbg">动火作业级别</td>
<td>{{ pd.WORK_LEVEL }}</td>
<td class="bbg">动火方式</td>
<td>{{ pd.WORK_FUNCTION }}</td>
</tr>
<tr>
<td class="bbg">动火人及证书编号</td>
<td colspan="3">{{ pd.WORK_USER }}</td>
</tr>
<tr>
<td class="bbg">作业单位</td>
<td>{{ pd.CONFIRM_DEPARTMENT_NAME }}</td>
<td class="bbg">作业负责人</td>
<td>{{ pd.CONFIRM_USER_NAME }}</td>
</tr>
<template v-for="(item,index) in gasList">
<tr :key="index">
<td class="bbg">气体取样分析时间</td>
<td>{{ item.ANALYZE_TIME }}</td>
<td class="bbg">代表性气体</td>
<td>{{ item.ANALYZE_PLACE }}</td>
</tr>
<tr :key="index">
<td class="bbg">分析结果/%</td>
<td>{{ item.ANALYZE_RESULT }}</td>
<td class="bbg">分析人</td>
<td>{{ item.ANALYZE_USER }}</td>
</tr>
</template>
<tr>
<td class="bbg">关联的其他特殊作业及安全作业票编号</td>
<td colspan="3">{{ pd.SPECIAL_WORK }}</td>
</tr>
<tr>
<td class="bbg">风险辨识结果</td>
<td colspan="3">{{ pd.RISK_IDENTIFICATION }}</td>
</tr>
<tr>
<td class="bbg">动火作业实施时间</td>
<td colspan="3">{{ pd.WORK_START_DATE }}{{ pd.WORK_END_DATE }}</td>
</tr>
<tr>
<td colspan="4">
<table class="table-ui">
<tr>
<td>序号</td>
<td>安全措施</td>
<td style="width: 100px;">是否涉及</td>
<td style="width: 100px;">确认人</td>
</tr>
<tr v-for="(item,index) in measuresList" :key="index">
<td>{{ 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>-->
</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>
</tr>
<tr v-if="pd.CONFIRM_USER_MEASURES || pd.LEADER_USER_MEASURES || pd.AUDIT_USER_MEASURES || pd.APPROVE_USER_MEASURES || pd.MONITOR_USER_MEASURES">
<td>{{ measuresList.length + 1 }}</td>
<td colspan="3">
<div v-if="pd.CONFIRM_USER_MEASURES" style="display: flex;justify-content: space-between;">
<span>其他安全措施{{ pd.CONFIRM_USER_MEASURES }}</span>
<span>编制人{{ pd.CONFIRM_USER_NAME }}</span>
</div>
<div v-if="pd.LEADER_USER_MEASURES" style="display: flex;justify-content: space-between;margin-top: 10px;">
<span>其他安全措施{{ pd.LEADER_USER_MEASURES }}</span>
<span>编制人{{ pd.LEADER_USER_NAME }}</span>
</div>
<div v-if="pd.AUDIT_USER_MEASURES" style="display: flex;justify-content: space-between;margin-top: 10px;">
<span>其他安全措施{{ pd.AUDIT_USER_MEASURES }}</span>
<span>编制人{{ pd.AUDIT_USER_NAME }}</span>
</div>
<div v-if="pd.APPROVE_USER_MEASURES" style="display: flex;justify-content: space-between;margin-top: 10px;">
<span>其他安全措施{{ pd.APPROVE_USER_MEASURES }}</span>
<span>编制人{{ pd.APPROVE_USER_NAME }}</span>
</div>
<div v-if="pd.MONITOR_USER_MEASURES" style="display: flex;justify-content: space-between;margin-top: 10px;">
<span>其他安全措施{{ pd.MONITOR_USER_MEASURES }}</span>
<span>编制人{{ pd.MONITOR_USER_NAME }}</span>
</div>
</td>
</tr>
</table>
</td>
</tr>
<tr>
<td class="bbg">安全交底人</td>
<td colspan="10">
<div v-if="pd.CONFESS_USER_SIGNER_PATH" style="text-align: right">
<span>签字</span>
<img v-viewer :src="config.fileUrl + pd.CONFESS_USER_SIGNER_PATH" alt="" width="100" height="100">
<span>{{ pd.CONFESS_USER_SIGNER_TIME }}</span>
</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">
<div v-if="pd.GUARDIAN_USER_SIGNER_PATH" style="text-align: right">
<span>签字</span>
<img v-viewer :src="config.fileUrl + pd.GUARDIAN_USER_SIGNER_PATH" alt="" width="100" height="100">
<span>{{ pd.GUARDIAN_USER_SIGNER_TIME }}</span>
</div>
</td>
</tr>
<tr v-if="pd.CONFIRM_USER_SIGNER_PATH">
<td colspan="6">
<div>作业负责人意见{{ 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">
<span>{{ pd.CONFIRM_USER_SIGNER_TIME }}</span>
</div>
</td>
</tr>
<tr v-if="pd.LEADER_USER_SIGNER_PATH">
<td colspan="6">
<div>所在单位意见{{ 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">
<span>{{ pd.LEADER_USER_SIGNER_TIME }}</span>
</div>
</td>
</tr>
<tr v-if="pd.AUDIT_USER_SIGNER_PATH">
<td colspan="6">
<div>安全管理部门意见{{ 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">
<span>{{ pd.AUDIT_USER_SIGNER_TIME }}</span>
</div>
</td>
</tr>
<tr v-if="pd.APPROVE_USER_SIGNER_PATH">
<td colspan="6">
<div>动火审批人意见{{ 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">
<span>{{ pd.APPROVE_USER_SIGNER_TIME }}</span>
</div>
</td>
</tr>
<tr v-if="pd.MONITOR_USER_SIGNER_PATH">
<td colspan="6">
<div>动火前岗位当班班长验票情况{{ 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">
<span>{{ pd.MONITOR_USER_SIGNER_TIME }}</span>
</div>
</td>
</tr>
<tr v-if="imgList1.length>0">
<td colspan="10">
<div>完工验收{{ 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">
<span>{{ item.ACCEPT_USER_SIGNER_TIME }}</span>
</div>
</td>
</tr>
</table>
</div>
</div>
<!-- <div class="ui-height" />-->
<div class="ui-foot">
<!-- <el-button v-print="'#printTest'" icon="el-icon-printer" type="primary"> </el-button>-->
<el-button type="primary" icon="el-icon-printer" @click="handle2PDF">PDF</el-button>
<el-button icon="el-icon-arrow-left" @click="goBack"> </el-button>
</div>
</div>
</template>
<script>
import { requestFN } from '@/utils/request'
import dateformat from '@/utils/dateformat'
import JsPDF from 'jspdf'
import html2Canvas from 'html2canvas'
export default {
data() {
return {
config: config,
HOTWORK_ID: this.$parent.HOTWORK_ID, // ID
pd: [], //
measuresList: [],
gasList: [],
imgList: [],
imgList1: [],
otherProtectiveMeasures: []
}
},
created() {
this.getData()
},
methods: {
handle2PDF() {
const loading = this.$loading({
lock: true,
text: '正在生成,请稍候...',
spinner: 'el-icon-loading',
background: 'rgba(0, 0, 0, 0.7)'
})
const elements = document.querySelectorAll('div[name="pdf-box"]')
console.log(elements)
this.html2pdf(this.pd.CHECK_NO + '审批表详情', elements, loading)
},
html2pdf(filename, els, loading) {
const flagArr = []
for (let i = 0, len = els.length; i < len; i++) {
flagArr.push(0)
}
console.log(flagArr)
runself(0)
const pdf = new JsPDF('', 'pt', 'a4') // A4
function runself(index) {
const html = els[index]
html2Canvas(html, {
allowTaint: true,
taintTest: false,
logging: false,
useCORS: true,
scale: 2 //
}).then(canvas => {
// eslint-disable-next-line one-var
var ctx = canvas.getContext('2d'),
a4w = 532.28, a4h = 781.89, // A4210mm x 297mm10mm190x277 pt:592.28 * 841.89
renderedHeight = 0
const allTrs = html.querySelectorAll('tr')
while (renderedHeight < canvas.height) {
let imgHeight = Math.floor(a4h * canvas.width / a4w) // A4
for (let i = 0; i < allTrs.length; i++) {
const tr = allTrs[i]
const trHeight = tr.offsetHeight + tr.offsetTop
console.log('offsetHeight:' + tr.offsetHeight + 'offsetTop:' + tr.offsetTop + 'offsetParent:' + tr.offsetParent.offsetTop)
if (trHeight * 2 > (imgHeight + renderedHeight)) {
const btr = allTrs[i - 1]
const btrHeight = btr.offsetHeight + btr.offsetTop
console.log('i:' + (i - 1) + 'btrHeight:' + btrHeight)
imgHeight = btrHeight * 2 - renderedHeight
break
}
}
var page = document.createElement('canvas')
page.width = canvas.width
page.height = Math.min(imgHeight, canvas.height - renderedHeight)//
// getImageDatacanvas
page.getContext('2d').putImageData(ctx.getImageData(0, renderedHeight, canvas.width, Math.min(imgHeight, canvas.height - renderedHeight)), 0, 0)
pdf.addImage(page.toDataURL('image/jpeg', 1.0), 'JPEG', 30, 30, a4w, Math.min(a4h, a4w * page.height / page.width)) // 10mm
renderedHeight += imgHeight
if (renderedHeight < canvas.height) {
pdf.addPage()//
}
}
if (index < els.length - 1) {
pdf.addPage()
}
return 1
}).then(item => {
flagArr[index] = item
if (flagArr.every(f => f === 1)) {
pdf.save(filename)
}
index++
if (index < els.length) {
runself(index)
} else {
loading.close()
}
})
}
},
validStr(str) {
if (str != null && str != '' && typeof (str) != 'undefined' && str != 0) { return true }
return false
},
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.HOTWORK_ID
},
getData() {
this.listLoading = true
requestFN(
'/hotwork/cfd/goEdit',
{
HOTWORK_ID: this.HOTWORK_ID
}
).then((data) => {
this.listLoading = false
this.pd = data.pd // map
console.log(this.pd)
this.imgList = data.imgList
this.imgList1 = data.imgList1
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
this.pd.CONFIRM_USER_MEASURES = this.pd.OTHER_PROTECTIVE_MEASURES.split(';_;')[0]
this.pd.LEADER_USER_MEASURES = this.pd.OTHER_PROTECTIVE_MEASURES.split(';_;')[1]
this.pd.AUDIT_USER_MEASURES = this.pd.OTHER_PROTECTIVE_MEASURES.split(';_;')[2]
this.pd.APPROVE_USER_MEASURES = this.pd.OTHER_PROTECTIVE_MEASURES.split(';_;')[3]
this.pd.MONITOR_USER_MEASURES = this.pd.OTHER_PROTECTIVE_MEASURES.split(';_;')[4]
}).catch((e) => {
this.listLoading = false
})
},
//
findCharIndex(str, char, num) {
let index = str.indexOf(char)
for (let i = 0; i < num - 1; i++) {
index = str.indexOf(char, index + 1)
}
return index
},
goBack() {
this.$parent.activeName = 'List'
}
}
}
</script>
<style lang="sass" scoped>
.print-approval-p10
padding: 20px 0
span
vertical-align: middle
.bbg
width: 300px
.print-approval-img
width: 200px
height: 97px
display: inline-block
img
width: 100%
height: 100%
</style>
<style scoped lang="scss">
.table-ui td{
line-height: unset;
}
.app-container{
margin-bottom: 50px;
}
.level-title {
display: flex;
justify-content: space-between;
}
.pdf-content[name=pdf-box]{
position: absolute;
left: -999999px;
.level-title {
h1{
font-size: 20px;
}
.level-code{
font-size: 20px;
}
}
td{
font-size: 20px;
}
.bbg {
width: 180px;
}
}
</style>

View File

@ -0,0 +1,192 @@
<template>
<div class="app-container">
<el-form label-width="50px">
<el-row>
<el-col :span="4">
<el-form-item label="编号">
<el-input v-model="KEYWORDS" placeholder="请输入编号"/>
</el-form-item>
</el-col>
<el-col :span="4">
<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 icon="el-icon-refresh" type="success" @click="goKeyReset">
重置
</el-button>
</el-form-item>
</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="CHECK_NO" label="编号" />
<el-table-column prop="WORK_LEVEL" label="作业级别" />
<el-table-column prop="APPLY_USER_NAME" label="申请人" />
<el-table-column prop="ANALYZE_USER_NAME" label="分析人" />
<el-table-column prop="CONFIRM_USER_NAME" label="作业单位负责人" />
<el-table-column prop="LEADER_USER_NAME" label="所在单位负责人" />
<el-table-column prop="AUDIT_USER_NAME" label="安全管理部门负责人" show-overflow-tooltip >
<template slot-scope="{row}">
{{ row.AUDIT_USER_NAME || ' 已跳过' }}
</template>
</el-table-column>
<el-table-column prop="APPROVE_USER_NAME" label="动火审批人" show-overflow-tooltip >
<template slot-scope="{row}">
{{ row.APPROVE_USER_NAME || ' 已跳过' }}
</template>
</el-table-column>
<el-table-column prop="MONITOR_USER_NAME" label="动火前在岗部门" />
<el-table-column prop="ACCEPT_USER_NAME" label="验收人" />
<el-table-column prop="STATUS" label="审核状态">
<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==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==-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>
</template>
</el-table-column>
<el-table-column label="操作" align="center" width="130">
<template slot-scope="{row}">
<el-button type="primary" icon="el-icon-document" size="mini" @click="goDetail(row.HOTWORK_ID)"></el-button>
</template>
</el-table-column>
</el-table>
<div class="page-btn-group">
<div>
<!-- <el-button v-show="add" type="primary" icon="el-icon-plus" @click="handleAdd"></el-button>-->
<!-- <el-button v-show="del" type="danger" icon="el-icon-delete" plain @click="batchDel"></el-button>-->
</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 {
listLoading: true,
add: false,
del: false,
edit: false,
listQuery: {
page: 1,
limit: 10
},
total: 0,
KEYWORDS: '',
varList: [],
pd: [],
multipleSelectionAll: [], //
multipleSelection: [], //
dialogFormShow: false,
dialogFormEdit: false,
dialogType: 'add',
replyVarList: [], // REPLY
replyListQuery: {
page: 1,
limit: 10
},
replyTotal: 0,
dialogFormHuifuShow: false,
statusList: [
{ ID: '', NAME: '请选择' },
{ ID: '0', NAME: '待提交' },
{ ID: '1', NAME: '作业人待确认' },
{ ID: '2', NAME: '监护人待确认' },
{ ID: '3', NAME: '车间负责人待确认' },
{ ID: '4', NAME: '安全部门待审核' },
{ ID: '5', NAME: '待审批' },
{ ID: '6', NAME: '班长待验票' },
{ ID: '7', NAME: '待验收' },
{ ID: '8', NAME: '已归档' },
{ ID: '-2', NAME: '作业负责人确认打回' },
{ ID: '-3', NAME: '监护人确认打回' },
{ ID: '-4', NAME: '车间负责人打回' },
{ ID: '-5', NAME: '安全部门打回' },
{ ID: '-6', NAME: '审批打回' },
{ ID: '-7', NAME: '班长验票打回' },
{ ID: '-8', NAME: '验收打回' }
],
STATUS: '',
DEPTIDS: ''
}
},
created() {
this.getList()
},
methods: {
getRowKey(row) {
return row.HOTWORK_ID
},
//
getQuery() {
this.$refs.multipleTable.clearSelection()
this.getList()
},
goKeyReset() {
this.KEYWORDS = ''
this.getQuery()
},
//
getList() {
this.listLoading = true
requestFN(
'/hotwork/cfd/list?showCount=' + this.listQuery.limit + '&currentPage=' + this.listQuery.page,
{
KEYWORDS: this.KEYWORDS, APPLY_STATUS: '8',
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
})
},
goDetail(id) {
this.$parent.activeName = 'Detail'
this.$parent.HOTWORK_ID = id
}
}
}
</script>

View File

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