<template>
|
<el-dialog :title="title" :visible.sync="troubleDetailVisible" :modal-append-to-body="false" :close-on-click-modal="false" width="70%">
|
<div class="app-container">
|
<div class="table_content">
|
<el-table
|
v-loading="listLoading"
|
:key="tableKey"
|
:data="troubleDetailData"
|
border
|
fit
|
highlight-current-row
|
style="width: 100%;"
|
>
|
<el-table-column type="index" label="序号" align="center" width="80"/>
|
<el-table-column label="状态" prop="status" align="center" />
|
<el-table-column label="作业编号" prop="taskcode" align="center" />
|
<el-table-column label="隐患等级" prop="level" align="center" >
|
<template slot-scope="scope">
|
<el-tag :type="scope.row.level == '紧急'?'danger':'warning'">{{scope.row.level}}</el-tag>
|
</template>
|
</el-table-column>
|
<el-table-column label="上报人" prop="requestor" align="center" />
|
<el-table-column label="负责人" prop="principal" align="center" />
|
<el-table-column label="整改人" prop="supervisor" align="center" />
|
<el-table-column label="创建时间" prop="createtime" align="center" />
|
<el-table-column label="图片" align="center" >
|
<template slot-scope="scope">
|
<el-popover placement="top-start" trigger="click">
|
<img slot="reference" v-for="(item,index) in scope.row.reportResources" :src="item.url" :key="index" style="width:40px;height:40px;margin-left:10px;cursor:pointer" @click="reportResources(item)"></img>
|
</el-popover>
|
</template>
|
</el-table-column>
|
</el-table>
|
<br>
|
<el-pagination
|
v-show="recordTotal>0"
|
:current-page="currentPage"
|
:page-sizes="[10, 20, 30, 50]"
|
:page-size="pageSize"
|
:total="recordTotal"
|
layout="total, sizes, prev, pager, next, jumper"
|
background
|
style="float:right;"
|
@size-change="handleSizeChange"
|
@current-change="handleCurrentChange"
|
/>
|
<br>
|
</div>
|
<el-dialog :visible.sync="dialogVisible" :append-to-body="true">
|
<img width="100%" :src="dialogImageUrl" alt="">
|
</el-dialog>
|
</div>
|
</el-dialog>
|
</template>
|
|
<script>
|
import { mapGetters } from 'vuex'
|
import { getTroubleDetailList } from '../../../../../api/troubleStatistics'
|
import { computePageCount } from '../../../../../utils'
|
|
export default {
|
name: 'index',
|
filters: {
|
parseMain(type){
|
if(type === 1){
|
return "是"
|
}else if(type === 0){
|
return "否"
|
}
|
},
|
},
|
computed: {
|
...mapGetters([
|
'userType'
|
])
|
},
|
data() {
|
return {
|
tableKey: 0,
|
troubleDetailData: [],
|
listLoading: false,
|
pageSize: 10,
|
recordTotal: 0,
|
currentPage: 1,
|
pageTotal: 0,
|
title:'',
|
company:'',
|
starttime:'',
|
endtime:'',
|
troubleDetailVisible:false,
|
dialogImageUrl:'',
|
dialogVisible:false,
|
}
|
},
|
created() {
|
},
|
methods: {
|
showTroubleDetail(company,starttime,endtime){
|
this.troubleDetailVisible = true
|
this.starttime = starttime
|
this.endtime = endtime
|
this.company = company
|
this.getTroubleData()
|
},
|
async getTroubleData(){
|
this.listLoading = true
|
let params = {}
|
params['pageIndex'] = this.currentPage
|
params['pageSize'] = this.pageSize
|
params['company'] = this.company
|
params['starttime'] = this.starttime
|
params['endtime'] = this.endtime
|
let res = await getTroubleDetailList(params)
|
if(res.data.code === '200'){
|
this.recordTotal = res.data.result.totalCount
|
this.pageSize = res.data.result.pageSize
|
this.pageTotal = computePageCount(res.data.result.totalCount, res.data.result.pageSize)
|
this.currentPage = res.data.result.pageIndex
|
this.troubleDetailData = res.data.result.result
|
for(let i=0;i<this.troubleDetailData.length;i++){
|
if(this.troubleDetailData[i].reportResources.length != 0) {
|
for (let j = 0; j < this.troubleDetailData[i].reportResources.length; j++) {
|
this.troubleDetailData[i].reportResources[j].url = process.env.IMG_API + this.troubleDetailData[i].reportResources[j].url
|
}
|
}
|
}
|
}else{
|
}
|
this.listLoading = false
|
},
|
reportResources(file){
|
this.dialogImageUrl = file.url;
|
this.dialogVisible = true;
|
},
|
handleSizeChange(val){
|
this.pageSize = val
|
this.getTroubleData()
|
},
|
handleCurrentChange(val){
|
this.currentPage = val
|
this.getTroubleData()
|
},
|
}
|
}
|
</script>
|
<style scoped>
|
.basic_search{
|
display:inline-block;
|
padding-bottom: 10px;
|
}
|
</style>
|