492 lines
17 KiB
Vue
492 lines
17 KiB
Vue
<template>
|
|
<div class="app-container">
|
|
<el-form :model="searchForm" label-width="100px">
|
|
<el-row>
|
|
<el-col :span="4">
|
|
<el-form-item label="隐患描述">
|
|
<el-input v-model="searchForm.hiddendescr" placeholder="请输入关键字"/>
|
|
</el-form-item>
|
|
</el-col>
|
|
<el-col :span="4">
|
|
<el-form-item label="隐患来源">
|
|
<el-select v-model="searchForm.SOURCE" style="width: 100%;">
|
|
<el-option value="1" label="隐患快报"/>
|
|
<el-option value="2" label="清单排查"/>
|
|
<!-- <el-option value="3" label="清单排查"/>-->
|
|
<el-option value="4" label="安全环保检查(监管端)"/>
|
|
<el-option value="5" label="安全环保检查(企业端)"/>
|
|
<el-option value="6" label="消防点检"/>
|
|
</el-select>
|
|
</el-form-item>
|
|
</el-col>
|
|
<el-col :span="4">
|
|
<el-form-item label="发现部门">
|
|
<Treeselect
|
|
:options="treeData"
|
|
:normalizer="normalizer"
|
|
v-model="searchForm.DEPARTMENT_ID"
|
|
placeholder="请选择发现部门"
|
|
no-options-text="暂无数据"
|
|
no-children-text="暂无数据"
|
|
/>
|
|
</el-form-item>
|
|
</el-col>
|
|
<el-col :span="4">
|
|
<el-form-item label="隐患发现人 ">
|
|
<el-input v-model="searchForm.KEYWORDS"/>
|
|
</el-form-item>
|
|
</el-col>
|
|
|
|
<el-col :span="8">
|
|
<el-form-item label="隐患发现时间">
|
|
<el-date-picker
|
|
v-model="searchForm.dates"
|
|
format="yyyy-MM-dd"
|
|
value-format="yyyy-MM-dd"
|
|
type="daterange"
|
|
range-separator="至"
|
|
start-placeholder="开始日期"
|
|
end-placeholder="结束日期"
|
|
style="width: 100%;"/>
|
|
</el-form-item>
|
|
</el-col>
|
|
</el-row>
|
|
<el-row>
|
|
<el-col :span="4">
|
|
<el-form-item label="考评状态">
|
|
<el-select v-model="searchForm.STATE" style="width: 100%;">
|
|
<el-option value="1" label="是"/>
|
|
<el-option value="2" label="否"/>
|
|
<el-option value="3" label="考评合格"/>
|
|
<el-option value="4" label="考评不合格"/>
|
|
</el-select>
|
|
</el-form-item>
|
|
</el-col>
|
|
<el-col :span="4">
|
|
<el-form-item label="隐患类型">
|
|
<Treeselect
|
|
:options="hiddenTypeList"
|
|
:normalizer="normalizer"
|
|
v-model="searchForm.HIDDENTYPE"
|
|
placeholder="请选择隐患类型"
|
|
no-options-text="暂无数据"
|
|
no-children-text="暂无数据"
|
|
/>
|
|
</el-form-item>
|
|
</el-col>
|
|
<el-col :span="4">
|
|
<el-form-item label="本人是否考评">
|
|
<el-select v-model="searchForm.userIs" clearable style="width: 100%;">
|
|
<el-option value="1" label="是"/>
|
|
<el-option value="2" label="否"/>
|
|
</el-select>
|
|
</el-form-item>
|
|
</el-col>
|
|
<el-col :span="8" v-if="searchForm.userIs == '1'">
|
|
<el-form-item label="本人考评时间">
|
|
<el-date-picker
|
|
v-model="searchForm.userIsDate"
|
|
format="yyyy-MM-dd"
|
|
value-format="yyyy-MM-dd"
|
|
type="daterange"
|
|
range-separator="至"
|
|
start-placeholder="开始日期"
|
|
end-placeholder="结束日期"
|
|
style="width: 100%;"/>
|
|
</el-form-item>
|
|
</el-col>
|
|
<el-col :span="4">
|
|
<el-form-item label-width="10px">
|
|
<el-button v-waves type="primary" icon="el-icon-search" @click="getList">
|
|
搜索
|
|
</el-button>
|
|
<el-button v-waves type="success" icon="el-icon-refresh" native-type="reset" @click="goKeyReset">
|
|
重置
|
|
</el-button>
|
|
</el-form-item>
|
|
</el-col>
|
|
</el-row>
|
|
</el-form>
|
|
<el-table
|
|
v-loading="listLoading"
|
|
:data="varList"
|
|
border
|
|
tooltip-effect="dark"
|
|
style="width: 100%">
|
|
<el-table-column type="index" label="序号" width="55" align="center"/>
|
|
<el-table-column label="隐患来源">
|
|
<template slot-scope="{row}">
|
|
<span v-if="row.SOURCE=='1'">
|
|
隐患快报
|
|
</span>
|
|
<span v-else-if="row.SOURCE=='2'">
|
|
清单排查
|
|
</span>
|
|
<span v-else-if="row.SOURCE=='3'">
|
|
清单排查
|
|
</span>
|
|
<span v-else-if="row.SOURCE=='4'">
|
|
安全环保检查(监管端)
|
|
</span>
|
|
<span v-else-if="row.SOURCE=='5'">
|
|
安全环保检查(企业端)
|
|
</span>
|
|
<span v-else-if="row.SOURCE=='6'">
|
|
消防点检
|
|
</span>
|
|
</template>
|
|
</el-table-column>
|
|
<el-table-column prop="HIDDENDESCR" label="隐患描述"/>
|
|
<el-table-column prop="DISCOVERYTIME" label="隐患发现时间"/>
|
|
<el-table-column prop="CREATOR_NAME" label="隐患发现人"/>
|
|
<el-table-column label="隐患状态">已验收</el-table-column>
|
|
<el-table-column prop="CHECKOR_NAME" label="隐患验收人">
|
|
<template slot-scope="{row}">
|
|
<span v-if="row.RECTIFICATIONTYPE=='1'">
|
|
--
|
|
</span>
|
|
<span v-else>
|
|
{{ row.CHECKOR_NAME }}
|
|
</span>
|
|
</template>
|
|
</el-table-column>
|
|
<el-table-column prop="CHECK_USER" label="已考评组成员"/>
|
|
<el-table-column prop="UN_CHECK_USER" label="待考评组成员"/>
|
|
<el-table-column prop="PASS_STATUS" label="考评结果">
|
|
<template slot-scope="{row}">
|
|
<template v-if="row.CHECK_COUNT !== 5">
|
|
<span>考核未完成</span>
|
|
</template>
|
|
<template v-else>
|
|
<template v-if="row.PASS_COUNT > 2">
|
|
<span>考核合格</span>
|
|
</template>
|
|
<template v-else>
|
|
<span>考核不合格</span>
|
|
</template>
|
|
</template>
|
|
</template>
|
|
</el-table-column>
|
|
<el-table-column prop="userIsTime" label="本人考评时间" v-if="searchForm.userIsDate != undefined && searchForm.userIsDate != '' && searchForm.userIsDate[0]">
|
|
<template slot-scope="{row}">
|
|
<template>
|
|
<span>{{ row.userIsTime }}</span>
|
|
</template>
|
|
</template>
|
|
</el-table-column>
|
|
<el-table-column label="操作" width="400px">
|
|
<template slot-scope="{row}">
|
|
<el-button type="info" icon="el-icon-view" @click="fnViewHidden(row.HIDDEN_ID)">查看隐患详情</el-button>
|
|
<el-button type="primary" icon="el-icon-view" @click="fnEvaluation(row.HIDDEN_ID,row.SOURCE, row.CREATOR,'view')">考评详情</el-button>
|
|
<el-button
|
|
v-if="isEvaluationShowButton(row.UN_CHECK_USER_ID)"
|
|
type="success"
|
|
icon="el-icon-view"
|
|
@click="fnEvaluation(row.HIDDEN_ID,row.SOURCE, row.CREATOR,'edit')">考评
|
|
</el-button>
|
|
<el-button
|
|
v-if="USER_ID=='1'"
|
|
type="danger"
|
|
icon="el-icon-view"
|
|
@click="fnDelvaluation(row)">重置考评
|
|
</el-button>
|
|
</template>
|
|
</el-table-column>
|
|
</el-table>
|
|
<div class="page-btn-group">
|
|
<div>
|
|
<el-button icon="el-icon-arrow-left" @click="goBack">返回</el-button>
|
|
</div>
|
|
<pagination :total="total" :page.sync="listQuery.page" :limit.sync="listQuery.limit" @pagination="getList"/>
|
|
</div>
|
|
<el-dialog :visible.sync="evaluationDialog.visible" title="考评">
|
|
<table class="table-ui">
|
|
<template v-for="item in evaluationDialog.list">
|
|
<tr :key="item.CONFIG_USER_ID">
|
|
<td class="tbg">考评人员</td>
|
|
<td>{{ item.USER_NAME }}</td>
|
|
<td class="tbg">考评时间</td>
|
|
<td>{{ item.CREATTIME ? item.CREATTIME : "暂未考评" }}</td>
|
|
<td class="tbg">是否符合</td>
|
|
<td>
|
|
<span v-if="item.RESULT === 1">符合</span>
|
|
<span v-if="item.RESULT === 2">不符合</span>
|
|
<span v-if="!item.RESULT">未考评</span>
|
|
</td>
|
|
</tr>
|
|
<tr v-if="item.RESULT === 2" :key="item.CONFIG_USER_ID">
|
|
<td class="tbg">不符合原因</td>
|
|
<td colspan="3">{{ item.DESCR }}</td>
|
|
</tr>
|
|
</template>
|
|
</table>
|
|
<el-form
|
|
v-if="evaluationDialog.type === 'edit'"
|
|
ref="evaluationDialogForm"
|
|
:model="evaluationDialog.form"
|
|
:rules="evaluationDialog.rules"
|
|
label-width="100px"
|
|
class="mt-20">
|
|
<el-form-item label="考评人员">
|
|
<el-input v-model="evaluationDialog.form.USER_NAME" disabled/>
|
|
</el-form-item>
|
|
<el-form-item label="是否符合" prop="RESULT">
|
|
<el-select v-model="evaluationDialog.form.RESULT" style="width: 100%;">
|
|
<el-option value="1" label="符合"/>
|
|
<el-option value="2" label="不符合"/>
|
|
</el-select>
|
|
</el-form-item>
|
|
<el-form-item v-if="evaluationDialog.form.RESULT === '2'" label="不符合原因" prop="DESCR">
|
|
<el-input v-model="evaluationDialog.form.DESCR" type="textarea" autosize/>
|
|
</el-form-item>
|
|
</el-form>
|
|
<template slot="footer">
|
|
<el-button @click="fnEvaluationDialogChangeShow">关闭</el-button>
|
|
<el-button v-if="evaluationDialog.type === 'edit'" type="primary" @click="fnEvaluationDialogSubmit">确认</el-button>
|
|
</template>
|
|
</el-dialog>
|
|
<hidden-info v-if="visible" :visible.sync="visible" :id="HIDDEN_ID"/>
|
|
</div>
|
|
</template>
|
|
|
|
<script>
|
|
import Pagination from '@/components/Pagination'
|
|
import { requestFN } from '@/utils/request'
|
|
import waves from '@/directive/waves'
|
|
import Treeselect from '@riophae/vue-treeselect'
|
|
import '@riophae/vue-treeselect/dist/vue-treeselect.css'
|
|
import hiddenInfo from './hidden_info.vue'
|
|
|
|
export default {
|
|
components: { Pagination, Treeselect, hiddenInfo },
|
|
directives: { waves },
|
|
data() {
|
|
return {
|
|
total: 0,
|
|
varList: [],
|
|
USER_ID: JSON.parse(sessionStorage.getItem('user')).USER_ID,
|
|
listQuery: {
|
|
page: 1,
|
|
limit: 20
|
|
},
|
|
normalizer(node) {
|
|
return {
|
|
id: node.id,
|
|
label: node.name,
|
|
children: node.nodes
|
|
}
|
|
},
|
|
treeData: [],
|
|
hiddenTypeList: [],
|
|
listLoading: false, // 加载状态
|
|
searchForm: {
|
|
KEYWORDS: '',
|
|
SOURCE: '',
|
|
HIDDENTYPE: null,
|
|
dates: [],
|
|
DEPARTMENT_ID: null,
|
|
STATE: '',
|
|
hiddendescr: '',
|
|
userIs: '',
|
|
userIsDate : []
|
|
},
|
|
evaluationDialog: {
|
|
visible: false,
|
|
type: '',
|
|
HIDDEN_ID: '',
|
|
SOURCE: '',
|
|
CREATOR: '',
|
|
form: {
|
|
EVALUATIONCONFIGINFO_ID: '',
|
|
USER_NAME: '',
|
|
DESCR: '',
|
|
RESULT: ''
|
|
},
|
|
rules: {
|
|
RESULT: [{ required: true, message: '请选择是否符合', trigger: 'change' }],
|
|
DESCR: [{ required: true, message: '请输入不符合原因', trigger: 'blur' }]
|
|
},
|
|
list: []
|
|
},
|
|
visible: false,
|
|
HIDDEN_ID: ''
|
|
}
|
|
},
|
|
created() {
|
|
this.getList()
|
|
this.getTreeData()
|
|
},
|
|
methods: {
|
|
// 获得部门树
|
|
getTreeData() {
|
|
requestFN(
|
|
'/corpDepartment/listTreeManageAndCorp',
|
|
{}
|
|
).then((data) => {
|
|
const treeData = this.listTransTree(JSON.parse(data.zTreeNodes), 'id', 'pId', 'nodes')
|
|
this.treeData = this.removeEmptyChildren(treeData)
|
|
}).catch((e) => {
|
|
})
|
|
|
|
requestFN(
|
|
'/dictionaries/listSelectTree',
|
|
{
|
|
DICTIONARIES_ID: '3babc15144444bdc8d763d0af2bdfff6'
|
|
}
|
|
).then((data) => {
|
|
this.hiddenTypeList = this.removeEmptyChildren(JSON.parse(data.zTreeNodes))
|
|
})
|
|
},
|
|
goKeyReset() {
|
|
this.searchForm.KEYWORDS = ''
|
|
this.searchForm.SOURCE = ''
|
|
this.searchForm.HIDDENTYPE = null
|
|
this.searchForm.dates = []
|
|
this.searchForm.DEPARTMENT_ID = null
|
|
this.searchForm.STATE = ''
|
|
this.searchForm.hiddendescr = ''
|
|
this.searchForm.userIs = ''
|
|
this.searchForm.userIsDate = ''
|
|
this.getList()
|
|
},
|
|
// 获取列表
|
|
getList() {
|
|
this.listLoading = true
|
|
requestFN(
|
|
'/hiddenevaluationrecord/hiddenList?showCount=' + this.listQuery.limit + '¤tPage=' + this.listQuery.page,
|
|
{
|
|
...this.searchForm,
|
|
START_TIME: this.searchForm.dates && this.searchForm.dates[0],
|
|
END_TIME: this.searchForm.dates && this.searchForm.dates[1],
|
|
USER_IS_START_TIME: this.searchForm.userIsDate && this.searchForm.userIsDate[0],
|
|
USER_IS_END_TIME: this.searchForm.userIsDate && this.searchForm.userIsDate[1],
|
|
CORPINFO_ID: this.$parent.CORPINFO_ID,
|
|
EVALUATIONCONFIG_ID: this.$parent.EVALUATIONCONFIG_ID,
|
|
TYPE: this.$parent.TYPE
|
|
}
|
|
).then((data) => {
|
|
this.listLoading = false
|
|
this.varList = data.varList
|
|
this.total = data.page.totalResult
|
|
}).catch((e) => {
|
|
this.listLoading = false
|
|
})
|
|
},
|
|
isEvaluationShowButton(UN_CHECK_USER_ID) {
|
|
if (!UN_CHECK_USER_ID) return false
|
|
else {
|
|
return UN_CHECK_USER_ID.split(',').indexOf(this.USER_ID) !== -1
|
|
}
|
|
},
|
|
goBack() {
|
|
this.$parent.activeName = 'List'
|
|
},
|
|
fnViewHidden(HIDDEN_ID) {
|
|
this.visible = true
|
|
this.HIDDEN_ID = HIDDEN_ID
|
|
// this.$parent.HIDDEN_ID = HIDDEN_ID
|
|
// this.$parent.activeName = 'HiddenInfo'
|
|
},
|
|
fnEvaluationDialogChangeShow() {
|
|
this.evaluationDialog.visible = !this.evaluationDialog.visible
|
|
},
|
|
fnEvaluation(HIDDEN_ID, SOURCE, CREATOR, type) {
|
|
this.evaluationDialog.HIDDEN_ID = HIDDEN_ID
|
|
this.evaluationDialog.SOURCE = SOURCE
|
|
this.evaluationDialog.CREATOR = CREATOR
|
|
this.evaluationDialog.type = type
|
|
this.evaluationDialog.list = []
|
|
this.fnEvaluationDialogChangeShow()
|
|
if (type === 'edit') {
|
|
this.$nextTick(() => {
|
|
this.$refs.evaluationDialogForm.resetFields()
|
|
})
|
|
}
|
|
requestFN(
|
|
'/hiddenevaluationrecord/goEdit',
|
|
{
|
|
HIDDEN_ID,
|
|
EVALUATIONCONFIG_ID: this.$parent.EVALUATIONCONFIG_ID
|
|
}
|
|
).then((data) => {
|
|
const list = []
|
|
for (let i = 0; i < data.varList.length; i++) {
|
|
if (type === 'edit') {
|
|
if (data.varList[i].CONFIG_USER_ID !== this.USER_ID) {
|
|
list.push(data.varList[i])
|
|
} else {
|
|
this.evaluationDialog.form.EVALUATIONCONFIGINFO_ID = data.varList[i].CONFIG_EVALUATIONCONFIGINFO_ID
|
|
this.evaluationDialog.form.USER_NAME = data.varList[i].USER_NAME
|
|
this.evaluationDialog.form.DESCR = ''
|
|
this.evaluationDialog.form.RESULT = ''
|
|
}
|
|
} else {
|
|
list.push(data.varList[i])
|
|
}
|
|
}
|
|
this.evaluationDialog.list = list
|
|
}).catch((e) => {
|
|
})
|
|
},
|
|
fnEvaluationDialogSubmit() {
|
|
this.$refs.evaluationDialogForm.validate((valid) => {
|
|
if (valid) {
|
|
requestFN(
|
|
'/hiddenevaluationrecord/add',
|
|
{
|
|
CORPINFO_ID: this.$parent.CORPINFO_ID,
|
|
HIDDENTYPE: this.$parent.TYPE,
|
|
EVALUATIONCONFIG_ID: this.$parent.EVALUATIONCONFIG_ID,
|
|
SOURCE: this.evaluationDialog.SOURCE,
|
|
USER_ID: this.evaluationDialog.CREATOR,
|
|
HIDDEN_ID: this.evaluationDialog.HIDDEN_ID,
|
|
...this.evaluationDialog.form
|
|
}
|
|
).then((data) => {
|
|
if (data.result === 'success') {
|
|
this.$message.success('保存成功')
|
|
this.fnEvaluationDialogChangeShow()
|
|
this.getList()
|
|
}
|
|
}).catch((e) => {
|
|
})
|
|
}
|
|
})
|
|
},
|
|
fnDelvaluation(row) {
|
|
this.$confirm('确定要重置选中的评审记录吗?', {
|
|
confirmButtonText: '确定',
|
|
cancelButtonText: '取消',
|
|
type: 'warning'
|
|
}).then(() => {
|
|
this.listLoading = true
|
|
requestFN(
|
|
'/hiddenevaluationrecord/deleteEvaluation',
|
|
{
|
|
HIDDEN_ID: row.HIDDEN_ID,
|
|
USER_ID: row.CREATOR
|
|
}
|
|
).then((data) => {
|
|
this.listLoading = false
|
|
if (data.result === 'success') {
|
|
this.$message.success('删除成功')
|
|
this.getList()
|
|
} else {
|
|
this.$message({
|
|
message: data.message,
|
|
type: 'error'
|
|
})
|
|
}
|
|
}).catch((e) => {
|
|
})
|
|
}).catch(() => {
|
|
})
|
|
}
|
|
}
|
|
}
|
|
|
|
</script>
|
|
|
|
<style lang="sass" scoped>
|
|
</style>
|