<template>
|
<div class="app-container">
|
<div class="filter-container">
|
<div class="basic_search">
|
<span>开始时间:</span>
|
<el-date-picker value-format="yyyy-MM-dd HH:mm" placeholder="请选择开始时间" type="datetime" v-model="listQuery.starttime" style="width:200px">
|
</el-date-picker>
|
</div>
|
<div class="basic_search">
|
<span>结束时间:</span>
|
<el-date-picker value-format="yyyy-MM-dd HH:mm" placeholder="请选择结束时间" type="datetime" v-model="listQuery.endtime" style="width:200px">
|
</el-date-picker>
|
</div>
|
<div class="basic_search">
|
<span>部门:</span>
|
<el-input v-model="listQuery.department" style="width:200px">
|
</el-input>
|
</div>
|
<div class="basic_search">
|
<span>施工单位:</span>
|
<el-input v-model="listQuery.constructionunit" style="width:200px">
|
</el-input>
|
</div>
|
<div class="basic_search">
|
<span>作业类型:</span>
|
<el-select v-model="listQuery.level" clearable style="width:200px">
|
<el-option
|
v-for="item in taskTypeList"
|
:key="item.id"
|
:value="item.id"
|
:label="item.name"
|
></el-option>
|
</el-select>
|
</div>
|
<div class="basic_search">
|
<span>审批状态:</span>
|
<el-select v-model="listQuery.status" clearable style="width:200px">
|
<el-option
|
v-for="item in statusList"
|
:key="item.id"
|
:value="item.id"
|
:label="item.name"
|
></el-option>
|
</el-select>
|
</div>
|
<div class="basic_search">
|
<span>作业状态:</span>
|
<el-select v-model="listQuery.flag" clearable style="width:200px">
|
<el-option
|
v-for="item in flagList"
|
:key="item.id"
|
:value="item.id"
|
:label="item.name"
|
></el-option>
|
</el-select>
|
</div>
|
<el-button style="margin-left: 10px;" type="primary" icon="el-icon-refresh" @click="refreshHandle">搜索</el-button>
|
<el-button style="margin-left: 10px;" type="primary" icon="el-icon-plus" @click="showTaskInfo('','新增')">新增</el-button>
|
</div>
|
<div class="table_content">
|
<el-table
|
v-loading="listLoading"
|
:key="tableKey"
|
:data="taskData"
|
border
|
fit
|
highlight-current-row
|
style="width: 100%;"
|
@sort-change="sortChange"
|
>
|
<el-table-column label="单位名称" prop="unit" align="center" sortable="custom">
|
</el-table-column>
|
<el-table-column label="单位代码" prop="code" align="center" sortable="custom">
|
</el-table-column>
|
<el-table-column label="申请人" prop="applicant" align="center" sortable="custom">
|
</el-table-column>
|
<el-table-column label="施工单位" prop="constructionunit" align="center" sortable="custom">
|
</el-table-column>
|
<el-table-column label="作业内容" prop="area" align="center" sortable="custom">
|
</el-table-column>
|
<el-table-column label="开始时间" prop="starttime" align="center" sortable="custom">
|
</el-table-column>
|
<el-table-column label="结束时间" prop="endtime" align="center" sortable="custom">
|
</el-table-column>
|
<el-table-column label="作业级别" prop="level" align="center" sortable="custom">
|
<template slot-scope="scope">
|
<div v-for="item in levelList">
|
<div v-if="scope.row.level === item.id">
|
<span>{{item.name}}</span>
|
<!-- <el-tag v-if="scope.row.level ===0" type="success">{{item.name}}</el-tag>-->
|
<!-- <el-tag v-if="scope.row.level ===1" type="warning">{{item.name}}</el-tag>-->
|
<!-- <el-tag v-if="scope.row.level ===2" type="danger">{{item.name}}</el-tag>-->
|
</div>
|
</div>
|
</template>
|
</el-table-column>
|
<el-table-column label="任务审批状态" prop="status" align="center" sortable="custom">
|
<template slot-scope="scope">
|
<div v-for="item in statusList">
|
<div v-if="scope.row.status === item.id">
|
<span>{{item.name}}</span>
|
</div>
|
</div>
|
</template>
|
</el-table-column>
|
<el-table-column label="作业状态" prop="flag" align="center" sortable="custom">
|
<template slot-scope="scope">
|
<div v-for="item in flagList">
|
<div v-if="scope.row.flag === item.id">
|
<span>{{item.name}}</span>
|
</div>
|
</div>
|
</template>
|
</el-table-column>
|
<el-table-column label="创建时间" prop="createdat" align="center" sortable="custom">
|
</el-table-column>
|
<el-table-column label="最近修改时间" prop="modifiedat" align="center" sortable="custom">
|
</el-table-column>
|
<el-table-column label="操作" align="center" width="280" class-name="small-padding fixed-width">
|
<template slot-scope="scope">
|
<el-button type="text" @click="showReviewInfo(scope.row)" v-if="scope.row.status !== 7 && scope.row.taskReviews.length !== 0">查看审批</el-button>
|
<el-button type="text" @click="downloadFile(scope.row)" v-if="scope.row.status === 7">下载</el-button>
|
<!-- <el-button type="text" @click="showTaskInfo(scope.row,'主管领导审批')" v-if="scope.row.status === 6 && scope.row.level === 2">主管领导审批</el-button>-->
|
<!-- <el-button type="text" @click="showTaskInfo(scope.row,'安全部门审批')" v-if="scope.row.status === 5 && (scope.row.level === 1 || scope.row.level === 2)">安全部门审批</el-button>-->
|
<!-- <el-button type="text" @click="showTaskInfo(scope.row,'相关部门审批')" v-if="scope.row.status === 4 &&(scope.row.level === 1 || scope.row.level === 2)">相关部门审批</el-button>-->
|
<!-- <el-button type="text" @click="showTaskInfo(scope.row,'动火部位审批')" v-if="scope.row.status === 3">动火部位审批</el-button>-->
|
<el-button type="text" @click="showTaskInfo(scope.row,'施工单位确认')" v-if="scope.row.status === 2 && loginForm.iscompany === 1">施工单位确认</el-button>
|
<el-button type="text" @click="submitTask(scope.row)" v-if="scope.row.status === 1 || scope.row.status === 0">提交</el-button>
|
<el-button type="text" @click="showTaskInfo(scope.row,'编辑')" v-if="scope.row.status === 1 || scope.row.status === 0">编辑</el-button>
|
<el-button type="text" @click="showTaskInfo(scope.row,'复制')">复制</el-button>
|
<el-button type="text" style="color: red" @click="deleteById(scope.row)" v-if="(scope.row.applicant === loginForm.realname) && scope.row.status === 2">撤销</el-button>
|
</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>
|
<task-create ref="taskCreate" @getinfo="getTaskData"></task-create>
|
<review-info ref="reviewInfo"></review-info>
|
</div>
|
</template>
|
|
<script>
|
import { mapGetters } from 'vuex'
|
import { computePageCount } from '../../../utils'
|
import { getTaskList, submitTask } from '../../../api/task'
|
import Cookies from 'js-cookie'
|
import TaskCreate from './components/taskCreate'
|
import reviewInfo from './components/reviewInfo/index'
|
|
export default {
|
name: 'index',
|
filters: {
|
},
|
computed: {
|
...mapGetters([
|
'userType'
|
])
|
},
|
data() {
|
return {
|
tableKey: 0,
|
taskData: [],
|
companyList:[],
|
listLoading: false,
|
pageSize: 10,
|
recordTotal: 0,
|
currentPage: 1,
|
pageTotal: 0,
|
title:'',
|
orderValue:'',
|
sortValue:'',
|
levelList:[{id:2,name:'特级'},{id:1,name:'一级'},{id:0,name:'二级'},],
|
taskTypeList:[
|
{id:0,name:'受限空间作业'},
|
{id:1,name:'吊装作业'},
|
{id:2,name:'动土作业'},
|
{id:3,name:'断路作业'},
|
{id:4,name:'高处作业'},
|
{id:5,name:'临时用电作业'},
|
{id:6,name:'盲板抽堵作业'},
|
{id:7,name:'动火作业'},
|
],
|
statusList:[
|
{id:0,name:'已驳回'},
|
{id:1,name:'待提交'},
|
{id:2,name:'已提交'},
|
{id:3,name:'施工单位已确认'},
|
{id:4,name:'动火部位负责人审批通过'},
|
{id:5,name:'相关部门审批通过'},
|
{id:6,name:'安全部门审批通过'},
|
{id:7,name:'审批通过'},
|
],
|
flagList:[
|
{id:0,name:'待提交'},
|
{id:1,name:'作业中止'},
|
{id:2,name:'等待检查'},
|
{id:3,name:'等待开始'},
|
{id:4,name:'作业中'},
|
{id:5,name:'作业完成'},
|
],
|
listQuery:{
|
starttime:'',
|
endtime:'',
|
department:'',
|
constructionunit:'',
|
level:'',
|
status:'',
|
flag:'',
|
},
|
loginForm:{}
|
}
|
},
|
components:{
|
TaskCreate,
|
reviewInfo
|
},
|
mounted() {
|
this.getTaskData()
|
},
|
methods: {
|
async getTaskData(){
|
debugger
|
this.loginForm = JSON.parse(Cookies.get('loginForm'))
|
this.listLoading = true
|
let params = {}
|
params['pageIndex'] = this.currentPage
|
params['pageSize'] = this.pageSize
|
params['order'] = this.orderValue
|
params['sort'] = this.sortValue
|
for (const i in this.listQuery) {
|
console.log(i)
|
params[i] = this.listQuery[i]
|
}
|
let res = await getTaskList(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.taskData = res.data.result.result
|
}else{
|
this.$message({
|
message:res.data.message,
|
type:'warning'
|
})
|
}
|
this.listLoading = false
|
},
|
showTaskInfo(value,title){
|
this.$refs.taskCreate.openTaskInfo(value,title)
|
},
|
showReviewInfo(value){
|
this.$refs.reviewInfo.openReviewInfo(value)
|
},
|
downloadFile(val){
|
if(val.path === null || val.path === ''){
|
this.$message({
|
type:'warning',
|
message:'文件未生成'
|
})
|
}else{
|
window.open(process.env.IMG_API + val.path,'_blank')
|
}
|
},
|
submitTask(row){
|
this.$confirm('提交此条任务,是否继续','提示',{
|
confirmButtonText:'确定',
|
cancelButtonText:'取消',
|
type:'warning',
|
}).then(()=> {
|
submitTask({id:row.id}).then( (res)=>{
|
if(res.data.code === '200'){
|
this.getTaskData()
|
this.$notify({
|
title:'成功',
|
message:'提交成功',
|
type:'success',
|
duration:2000,
|
})
|
}else{
|
this.$message({
|
type:'warning',
|
message:res.data.message
|
})
|
}
|
|
})
|
})
|
},
|
deleteById(val){
|
this.$confirm('删除此条信息,是否继续','提示',{
|
confirmButtonText:'确定',
|
cancelButtonText:'取消',
|
type:'warning',
|
}).then(()=> {
|
deleteUnit({id:val.id}).then( ()=>{
|
this.getUnitForm()
|
this.$notify({
|
title:'成功',
|
message:'删除成功',
|
type:'success',
|
duration:2000,
|
})
|
})
|
})
|
},
|
refreshHandle(){
|
this.getTaskData()
|
},
|
handleSizeChange(val){
|
this.pageSize = val
|
this.getTaskData()
|
},
|
handleCurrentChange(val){
|
this.currentPage = val
|
this.getTaskData()
|
},
|
sortChange(params){
|
this.sortValue = params.sort
|
this.orderValue = params.order
|
this.getTaskData()
|
}
|
|
}
|
}
|
</script>
|
<style scoped>
|
.basic_search{
|
display:inline-block;
|
padding-bottom: 10px;
|
}
|
</style>
|