706 lines
20 KiB
Vue

<template>
<div class="dangerousBigProject">
<div>
<div class="search-box">
<el-form :inline="true" :model="formInline" class="demo-form-inline" size="small">
<el-form-item label="企业">
<el-select v-model="formInline.enterpriseId" filterable placeholder="请选择企业">
<el-option :label="item.enterpriseName" :value="item.id"
v-for="(item, index) in responsibilityList2" :key="index">
</el-option>
</el-select>
</el-form-item>
<!-- <el-form-item label="企业">
<el-input placeholder="请输入企业名称" v-model="formInline.enterpriseName" clearable
style="width: 200px">
</el-input>
</el-form-item> -->
<!-- <el-form-item label="报警时间">
<el-date-picker v-model="formInline.time" type="daterange" range-separator="至"
start-placeholder="开始日期" end-placeholder="结束日期">
</el-date-picker>
</el-form-item> -->
<el-form-item>
<el-button type="primary" @click="onSubmit" plain>{{
$t('message.quality.inquire')
}}</el-button>
</el-form-item>
<el-form-item>
<el-button type="warning" @click="onRefresh" plain>刷新</el-button>
</el-form-item>
<!-- <el-form-item>
<el-button type="primary" @click="addEmergencyType(1)">新增</el-button>
</el-form-item> -->
</el-form>
</div>
<div class="table-box">
<!-- @cell-click="previewDetail" -->
<!-- @selection-change="handleSelectionChange" -->
<el-table class="tables" :data="tableData" size="small" :header-cell-style="{ 'text-align': 'center' }">
<!-- <el-table-column type="selection" align="center" width="60px"></el-table-column> -->
<el-table-column label="序号" type="index" align="center"></el-table-column>
<el-table-column align="center" label="企业名称" show-overflow-tooltip>
<!-- 所属企业 -->
<template slot-scope="scope">
{{ scope.row.enterpriseName }}
</template>
</el-table-column>
<el-table-column align="center" label="应急责任人" prop="emergencyManagerName"
show-overflow-tooltip></el-table-column>
<!-- 操作 -->
<el-table-column align="center" :label="$t('message.dangerousBigProject.operation')">
<template slot-scope="scope">
<!-- <el-button @click.native.prevent="viewData(scope.$index, tableData)" type="text"
size="small">
<i class="el-icon-s-order"></i>
查看详情
</el-button> -->
<el-button @click.native.prevent="addEmergencyType(scope.row)" type="text" size="small"
v-permission="{key: 'emergencyPush_set', menuPath: '/project/emergencyDisposal/emergencyPush'}">
<i class="el-icon-setting"></i>
设置责任人
</el-button>
<!-- v-permission="{key: 'wdgc_delete', menuPath: '/project/dangerousBigProject/parameter'}" -->
<!-- <el-button @click.stop="deleteRow(scope.$index, tableData)" type="text" size="small">
<i class="el-icon-delete"></i>
删除
</el-button> -->
</template>
</el-table-column>
</el-table>
<el-pagination class="pagerBox" background @size-change="handleSizeChange"
@current-change="handleCurrentChange" :current-page.sync="pageNo" layout="sizes, prev, pager, next"
:page-sizes="[10, 20, 30, 40]" :page-size="pageSize" :total="Number(total)">
</el-pagination>
</div>
<!-- 提示 -->
<el-dialog :modal-append-to-body="false" :title="$t('message.dangerousBigProject.hint')"
:visible.sync="deleteDialog" width="30%">
<span>
<!-- 是否确定删除该条记录? -->
{{ $t('message.dangerousBigProject.hintContent') }}
</span>
<span slot="footer" class="dialog-footer">
<el-button @click="deleteDialog = false">
<!-- 取 消 -->
{{ $t('message.dangerousBigProject.cancel') }}
</el-button>
<el-button type="primary" @click="checkDelete">
<!-- 确 定 -->
{{ $t('message.dangerousBigProject.confirm') }}
</el-button>
</span>
</el-dialog>
</div>
<el-dialog :title="emergencyTypeDetail.title" :visible.sync="dialogVisible">
<el-form class="form-box" :model="emergencyTypeDetail" :rules="rules" ref="ruleForm">
<el-form-item label="企业名称:" :label-width="formLabelWidth">
{{ emergencyTypeDetail.enterpriseName }}
</el-form-item>
<el-form-item label="应急负责人:" :label-width="formLabelWidth" prop="enterpriseIdList">
<el-select v-model="emergencyTypeDetail.enterpriseIdList" filterable multiple collapse-tags
placeholder="请选择人员">
<el-option :label="item.workerName" :value="item.userId"
v-for="(item, index) in responsibilityList" :key="index">
</el-option>
</el-select>
</el-form-item>
</el-form>
<span slot="footer" class="dialog-footer">
<el-button @click="dialogVisible = false"> </el-button>
<el-button type="primary" @click="getEmergencyPushSave('ruleForm')"> </el-button>
</span>
</el-dialog>
</div>
</template>
<script>
import moment from 'moment'
// import addPlan from './addPlan.vue'
import {
getFireSafetyPageApi,
getEnterpriseInfoListApi,
getFireSafetyQueryByIdApi,
getFireSafetydeleteApi,
} from "@/assets/js/api/specialWork"
import {
getEmergencyPushPageApi,
getEmergencyPushSaveApi,
getWorkerInfoApi,
} from "@/assets/js/api/emergencyDisposal"
import { getCooperatorListApi } from "@/assets/js/api/cooperationUnit";
export default {
components: {
// addPlan,
// detail,
// editPlan
},
data() {
return {
emergencyTypeDetail: {
title: "",
typeName: "",
remark: "",
fileList1: [],
fileList2: [],
enterpriseIdList: [],
},
formLabelWidth: "110px",
dialogVisible: false,
deleteDialog: false,
rules: {
enterpriseIdList: [
{ required: true, message: '请选择负责人', trigger: 'change' }
],
},
formInline: {
firemanName: '',
enterpriseId: '',
workTicketCode: "",
time: "",
enterpriseName: "",
},
formLabelWidthDetail: "270px",
detailData: {},
responsibilityList: [],
responsibilityList2: [],
planDate: "",
pickerOptions: {
disabledDate(time) {
return time.getTime() < Date.now() - 8.64e7;
},
},
isDisabledDetail: true,
workDetail: {},
operateTitle: "新增",
isAdd: false,
isEdit: false,
isDisabled: false,
engineeringName: "",
detailId: "",
isSuperDanger: false,
tableData: [],
dialogFormVisible: true,
multipleSelection: [],
addForm: {
name: "",
category: "",
points: "",
describe: "",
address: "",
date: [],
people: "",
unit: []
},
props: {
multiple: true
},
typeOptions: [],
describeOptions: [],
options: [{
label: 111,
value: 12
}],
safeStatus: false,
safeStatus2: false,
safeStatus3: false,
fileList: [],
fileList2: [],
fileList3: [],
dialogTitle: "",
pageNo: 1,
pageSize: 10,
total: 10,
projectSn: "",
enterpriseTypeId: 1,
cooperatorList: [],
}
},
created() {
this.projectSn = this.$store.state.projectSn
this.styleType = this.$store.state.userInfo.styleType;
// this.getCooperatorList()
// this.getType()
this.initData();
this.getEnterpriseInfoList();
},
mounted() {
},
methods: {
handleAvatarSuccess(res, file) {
this.form.loginLogo = this.$store.state.FILEURL + res.data[0].imageUrl
this.fileList = [{ name: '', url: this.form.loginLogo }]
if (this.fileList.length >= 1) {
this.upload_btn1 = true; // 隐藏上传按钮
}
},
handlePictureCardPreview(file) {
this.dialogImageUrl = file.url
// this.dialogVisible = true
},
handleDelete(file, fileList) {
this.upload_btn1 = false;
this.fileList = fileList
},
// 添加
getEmergencyPushSave(formName) {
this.$refs[formName].validate((valid) => {
if (valid) {
getEmergencyPushSaveApi({
projectSn: this.projectSn,
id: this.emergencyTypeDetail.id,
enterpriseId: this.emergencyTypeDetail.enterpriseId,
emergencyManagerId: this.emergencyTypeDetail.enterpriseIdList.join(','),
}).then((res) => {
if (res.code) {
console.log(res.result, 1)
this.$message.success(res.message)
this.initData()
this.dialogVisible = false;
// this.responsibilityList = res.result;
}
})
} else {
return false;
}
});
},
addEmergencyType(row) {
console.log(11111111111111, row)
this.emergencyTypeDetail.title = "设置责任人";
this.emergencyTypeDetail.enterpriseIdList = [];
getWorkerInfoApi({
projectSn: this.projectSn,
enterpriseId: row.enterpriseId,
// pageNo:1,
// pageSize:99999,
// inserviceType: 1,
}).then((res) => {
if (res.result) {
console.log(res.result, 1)
this.responsibilityList = res.result;
}
}).finally(() => {
this.emergencyTypeDetail = {
...this.emergencyTypeDetail,
...row,
enterpriseIdList: row.emergencyManagerId ? row.emergencyManagerId.split(',') : [],
}
this.$refs['ruleForm'] && this.$refs['ruleForm'].resetFields()
this.dialogVisible = true;
})
},
onSubmit() {
this.pageNo = 1;
this.initData();
},
onRefresh() {
this.formInline.enterpriseId = "";
this.formInline.firemanName = "";
this.formInline.enterpriseId = "";
this.pageNo = 1;
this.initData();
},
getEnterpriseInfoList() {
getEnterpriseInfoListApi({
projectSn: this.projectSn
}).then((res) => {
if (res.result) {
console.log(res.result, 1)
this.responsibilityList2 = res.result;
}
})
},
initData() {
// this.tableData = [{}]
let data = {
enterpriseId: this.formInline.enterpriseId,
pageNo: this.pageNo,
pageSize: this.pageSize,
projectSn: this.projectSn,
// assignmentPersonInCharge: this.$store.state.userInfo.accountType == 6 ? this.$store.state.userInfo.userId : '',
}
getEmergencyPushPageApi(data).then((res) => {
if (res.result) {
console.log(res.result.records, 1)
this.tableData = res.result.records;
this.total = res.result.total;
}
});
},
handleSizeChange(e) {
this.pageSize = e;
this.initData()
},
handleCurrentChange() {
this.initData()
},
checkDelete() {
getFireSafetydeleteApi({ id: this.deleteId }).then((res) => {
console.log(res)
if (res.code == 200) {
this.$message.success(res.message)
this.initData()
}
})
this.deleteDialog = false
},
}
}
</script>
<style lang="less" scoped>
/deep/.el-dialog__footer {
text-align: center;
}
/deep/ .el-dialog__body {
padding: 10px 20px 30px;
}
/deep/ .el-upload-dragger {
height: 40px;
position: relative;
display: flex;
justify-content: center;
.el-upload__text {
position: absolute;
top: 50%;
transform: translateY(-50%);
}
.el-icon-upload {
font-size: 20px;
margin: 0;
line-height: 15px;
position: absolute;
left: 17%;
top: 50%;
transform: translateY(-50%);
}
}
/deep/ .el-upload--picture-card {
width: 66px;
height: 62px;
position: relative;
i {
position: absolute;
left: 50%;
top: 50%;
transform: translate(-50%, -50%);
}
}
/deep/ .el-upload-list__item {
width: 66px;
height: 62px;
margin-bottom: 0
}
.el-icon-setting,
.el-icon-map-location {
color: #5181F6;
}
.el-button--text {
color: #262d47;
}
.form-box {
width: 90%;
display: flex;
justify-content: center;
flex-wrap: wrap;
/deep/.el-form-item {
width: 85%;
padding-right: 10px;
box-sizing: border-box;
}
// /deep/.el-col-12{
// padding-left: 20px;
// }
/deep/.el-input__inner {
width: 100%;
}
/deep/.el-select {
width: 100%;
}
/deep/.el-cascader {
width: 100%;
}
}
.gasanalysis-table {
padding: 10px 20px;
.el-row:first-child .el-col {
background-color: #E9E9E9;
}
.el-row {
font-size: 14px;
color: #000;
.el-col:first-child {
background-color: #E9E9E9;
}
.el-col {
height: 40px;
display: flex;
align-items: center;
justify-content: center;
border: 1px solid #E1E1E1;
}
}
}
.dangerousBigProject {
padding-bottom: 20px;
height: 100%;
background: #fff;
padding: 0 10px;
padding-top: 20px;
box-sizing: border-box;
>div {
height: 100%;
.search-box {
display: flex;
margin-bottom: 20px;
.search-input {
width: 260px;
margin-right: 20px;
}
}
}
}
.el-icon-delete {
color: #f56c6c;
}
.table-box {
display: flex;
flex-direction: column;
height: calc(100% - 72px);
.tables {
margin-bottom: auto;
}
}
.table-item {
display: flex;
flex-direction: column;
align-items: flex-start;
p {
width: 100%;
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
}
// .item-status {
// background: #f56c6c;
// display: block;
// color: #fff;
// border-radius: 4px;
// padding: 0 4px;
// height: 20px;
// }
.item-status {
display: flex;
align-items: center;
img {
width: 15px;
height: 15px;
}
span {
font-size: 14px;
color: #EA3941;
}
}
.status-none {
height: 20px;
}
.item-title {
font-weight: 600;
}
}
.table-category-item {
display: flex;
p {
width: 100%;
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
}
// .item-status {
// background: #f56c6c;
// display: block;
// color: #fff;
// border-radius: 4px;
// padding: 0 4px;
// height: 20px;
// }
.item-status {
display: flex;
align-items: center;
margin-right: 3px;
img {
width: 15px;
height: 15px;
margin-right: 3px;
}
span {
font-size: 14px;
color: #EA3941;
}
}
.status-none {
height: 20px;
}
.item-title {
font-weight: 600;
}
}
.add-dialog {
/deep/ .el-dialog {
width: 80%;
}
.form-title {
margin-bottom: 20px;
}
/deep/ .el-form-item__label {
text-align: left;
white-space: nowrap;
}
/deep/ .el-form {
padding-left: 36px;
padding-right: 26px;
margin-bottom: 20px;
}
/deep/ .el-select {
width: 100%;
}
/deep/ .el-date-editor.el-input {
width: 100%;
}
/deep/ .el-date-editor {
width: 100%;
}
/deep/ .el-cascader {
width: 100%;
}
.upload-item {
display: flex;
margin-bottom: 10px;
align-items: center;
span {
margin-right: 16px;
}
.switch-check {
margin-left: 8px;
color: #409eff;
line-height: 20px;
}
.switch-uncheck {
margin-left: 8px;
line-height: 20px;
}
}
.upload-file {
width: 50%;
padding-left: 26px;
box-sizing: border-box;
margin-bottom: 20px;
a {
color: #409eff;
text-decoration: none;
margin-left: 6px;
}
}
.upload-box {
display: flex;
flex-wrap: wrap;
}
}
.el-pagination {
display: flex;
justify-content: center;
// margin-top: 20px;
}
.backText {
padding: 8px 0;
padding-left: 10px;
/deep/.el-page-header__content {
font-size: 14px;
}
}
.dark {
/deep/.el-page-header__content {
color: #fff;
}
/deep/ .print-btn {
background: none;
color: #262d47;
font-size: 14px;
}
}
</style>