<template>
|
<div class="system-edit-user-container">
|
<el-dialog
|
:title="titles"
|
v-model="isShowDialog"
|
width="769px"
|
draggable
|
:fullscreen="full"
|
>
|
<el-button @click="toggleFullscreen" size="small" class="pot" :icon="FullScreen"></el-button>
|
<el-form
|
ref="ruleFormRef"
|
:model="ruleForm"
|
size="default"
|
label-width="120px"
|
:disabled="disabled"
|
>
|
<el-row :gutter="35">
|
<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
|
<el-form-item label="整改标题" prop="emergencyPlanName">
|
<el-input v-model="ruleForm.emergencyPlanName" placeholder="请填写队伍名称"></el-input>
|
</el-form-item>
|
</el-col>
|
<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
|
<el-form-item label="整改单编号" prop="teamName">
|
<el-input v-model="ruleForm.teamName" placeholder="请填写队伍名称"></el-input>
|
</el-form-item>
|
</el-col>
|
<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
|
<el-form-item label="整改来源" prop="teamLeader">
|
<el-select v-model="ruleForm.teamLevel" class="w100" placeholder="请选择">
|
<el-option label="演练评价等" value="admin"></el-option>
|
<el-option label="现场处置方案" value="common"></el-option>
|
<el-option label="专项应急预案" value="common"></el-option>
|
<el-option label="其他预案" value="common"></el-option>
|
</el-select>
|
</el-form-item>
|
</el-col>
|
<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
|
<el-form-item label="整改对象名称" prop="teamLeader">
|
<el-input v-model="ruleForm.teamName" placeholder="请填写整改对象名称"></el-input>
|
</el-form-item>
|
</el-col>
|
<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
|
<el-form-item label="不合格因素" prop="teamLevel">
|
<el-input v-model="ruleForm.name" class="textarea" type="textarea"></el-input>
|
</el-form-item>
|
</el-col>
|
<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
|
<el-form-item label="整改要求" prop="teamLevel">
|
<el-input v-model="ruleForm.name" class="textarea" type="textarea"></el-input>
|
</el-form-item>
|
</el-col>
|
<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
|
<el-form-item label="隐患等级" prop="teamLeader">
|
<el-select v-model="ruleForm.teamLevel" class="w100" placeholder="请选择">
|
<el-option label="一般">一般</el-option>
|
<el-option label="重大">重大</el-option>
|
</el-select>
|
</el-form-item>
|
</el-col>
|
<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
|
<el-form-item label="隐患后果" prop="teamLeader">
|
<el-select v-model="ruleForm.teamLevel" class="w100" placeholder="请选择">
|
<el-option label="死亡">死亡</el-option>
|
<el-option label="重伤">重伤</el-option>
|
<el-option label="轻伤">轻伤</el-option>
|
<el-option label="火灾">火灾</el-option>
|
<el-option label="交通事故">交通事故</el-option>
|
<el-option label="财产损失">财产损失</el-option>
|
<el-option label="其它">其它</el-option>
|
</el-select>
|
</el-form-item>
|
</el-col>
|
<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
|
<el-form-item label="隐患类型" prop="teamLeader">
|
<el-select v-model="ruleForm.teamLevel" class="w100" placeholder="请选择">
|
<el-option label="化学品管理" value="admin"></el-option>
|
<el-option label="管理制度缺陷" value="common"></el-option>
|
<el-option label="设计缺陷" value="admin"></el-option>
|
<el-option label="其它" value="common"></el-option>
|
<el-option label="现场管理" value="admin"></el-option>
|
<el-option label="消防安全" value="common"></el-option>
|
<el-option label="消防安全" value="common"></el-option>
|
</el-select>
|
</el-form-item>
|
</el-col>
|
<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
|
<el-form-item label="区域名称" prop="telephone">
|
<el-input
|
v-model="ruleForm.teamLeader"
|
placeholder="请选择"
|
class="input-with-select"
|
>
|
<template #append>
|
<el-button :icon="Search" @click="regionsDialog"/>
|
</template>
|
</el-input>
|
</el-form-item>
|
</el-col>
|
<!-- <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">-->
|
<!-- <el-form-item label="隐患照片" prop="telephone">-->
|
<!-- <el-upload-->
|
<!-- class="avatar-uploader"-->
|
<!-- action="https://run.mocky.io/v3/9d059bf9-4660-45f2-925d-ce80ad6c4d15"-->
|
<!-- :show-file-list="false"-->
|
<!-- :on-success="handleAvatarSuccess"-->
|
<!-- :before-upload="beforeAvatarUpload"-->
|
<!-- >-->
|
<!-- <img v-if="imageUrl" :src="imageUrl" class="avatar" />-->
|
<!-- <el-icon v-else class="avatar-uploader-icon"><Plus /></el-icon>-->
|
<!-- </el-upload>-->
|
<!-- </el-form-item>-->
|
<!-- </el-col>-->
|
<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
|
<el-form-item label="发现人" prop="telephone" >
|
<el-input
|
v-model="ruleForm.teamLeader"
|
placeholder="请选择"
|
class="input-with-select"
|
>
|
<template #append>
|
<el-button :icon="Search" @click="openUser"/>
|
</template>
|
</el-input>
|
</el-form-item>
|
</el-col>
|
<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
|
<el-form-item label="发现日期" prop="telephone">
|
<el-date-picker
|
v-model="value1"
|
class="w100"
|
type="datetime"
|
placeholder="选择日期时间"
|
/>
|
</el-form-item>
|
</el-col>
|
<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
|
<el-form-item label="填报人" prop="telephone" >
|
<el-input
|
v-model="ruleForm.teamLeader"
|
placeholder="请选择"
|
class="input-with-select"
|
>
|
<template #append>
|
<el-button :icon="Search" @click="openUser"/>
|
</template>
|
</el-input>
|
</el-form-item>
|
</el-col>
|
<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
|
<el-form-item label="填报日期" prop="telephone">
|
<el-date-picker
|
v-model="value1"
|
class="w100"
|
type="datetime"
|
placeholder="选择日期时间"
|
/>
|
</el-form-item>
|
</el-col>
|
<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
|
<el-form-item label="填报人部门" placeholder="请选择">
|
<el-tree-select
|
v-model="ruleForm.responsibleDepartment"
|
:data="data" class="w100"
|
placeholder="请选择"/>
|
</el-form-item>
|
</el-col>
|
<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
|
<el-form-item label="现场整改" prop="teamPhone">
|
<el-select v-model="ruleForm.teamLevel" class="w100" placeholder="请选择">
|
<el-option label="是" value="admin"></el-option>
|
<el-option label="否" value="common"></el-option>
|
</el-select>
|
</el-form-item>
|
</el-col>
|
<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
|
<el-form-item label="责任部门" placeholder="请选择">
|
<el-tree-select
|
v-model="ruleForm.responsibleDepartment"
|
:data="data" class="w100"
|
placeholder="请选择"/>
|
</el-form-item>
|
</el-col>
|
<el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
|
<el-tabs v-model="activeName" class="demo-tabs" @tab-click="handleClick">
|
<el-tab-pane label="组织整改" name="first">
|
<el-row style="margin: 0">
|
<el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20" style="padding-left: 17.5px;padding-right: 17.5px;">
|
<el-form-item label="整改意见" prop="teamLevel">
|
<el-input v-model="ruleForm.name" class="textarea" type="textarea" placeholder="请填写整改意见"></el-input>
|
</el-form-item>
|
</el-col>
|
<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20" style="padding-left: 17.5px;padding-right: 17.5px;">
|
<el-form-item label="整改期限" prop="telephone">
|
<el-date-picker
|
v-model="value1"
|
class="w100"
|
type="datetime"
|
placeholder="选择日期时间"
|
/>
|
</el-form-item>
|
</el-col>
|
<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20" style="padding-left: 17.5px;padding-right: 17.5px;">
|
<el-form-item label="填报人" prop="telephone" >
|
<el-input
|
v-model="ruleForm.teamLeader"
|
placeholder="请选择"
|
class="input-with-select"
|
>
|
<template #append>
|
<el-button :icon="Search" @click="openUser"/>
|
</template>
|
</el-input>
|
</el-form-item>
|
</el-col>
|
<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20" style="padding-left: 17.5px;padding-right: 17.5px;">
|
<el-form-item label="填报日期" prop="telephone">
|
<el-date-picker
|
v-model="value1"
|
class="w100"
|
type="datetime"
|
placeholder="选择日期时间"
|
/>
|
</el-form-item>
|
</el-col>
|
</el-row>
|
</el-tab-pane>
|
</el-tabs>
|
</el-col>
|
</el-row>
|
</el-form>
|
<template #footer>
|
<span class="dialog-footer">
|
<el-button @click="resetForm(ruleFormRef)" size="default">关闭</el-button>
|
<el-button size="default" v-if="disabled == true ? false : true" type="primary" @click="submitForm(titles, ruleFormRef)">确定</el-button>
|
</span>
|
</template>
|
</el-dialog>
|
<CheckTemplate ref="Shows"/>
|
<userSelections ref="userRef"/>
|
<RegionsDialog ref="openRef"/>
|
</div>
|
</template>
|
|
<script lang="ts">
|
import {
|
reactive,
|
ref,
|
defineComponent
|
} from 'vue';
|
import {
|
ElMessage
|
}
|
from 'element-plus'
|
import type {
|
TabsPaneContext,
|
FormInstance,
|
UploadProps,
|
} from 'element-plus'
|
import {
|
Search,
|
Plus,
|
FullScreen
|
} from '@element-plus/icons-vue'
|
import UserSelections from "/@/components/userSelections/index.vue"
|
import CheckTemplate from '/@/components/checkTemplate/index.vue'
|
import RegionsDialog from '/@/components/regionsDialog/index.vue'
|
import {releaseDrillPlanApi} from "/@/api/contingencyManagement/emergencyDrillPlan";
|
import {emergencyDrillEvaluationApi} from "/@/api/contingencyManagement/emergencyDrillEvaluation";
|
|
export default defineComponent({
|
name: 'rectificationDialog',
|
components: {
|
CheckTemplate,
|
UserSelections,
|
RegionsDialog,
|
},
|
setup(props, { emit }) {
|
const isShowDialog = ref(false)
|
|
const ruleFormRef = ref<FormInstance>()
|
//定义表单
|
const ruleForm = reactive({
|
id: '',
|
drillPlanId: '',
|
suitable: '',
|
sufficient: '',
|
arrival: '',
|
supplies: '',
|
protection: '',
|
whole: '',
|
division: '',
|
effect: '',
|
report: '',
|
safety: '',
|
rescue: '',
|
evacuate: '',
|
needModify: '',
|
questionAndImprove: '',
|
modifyContent: '',
|
fileList: [
|
{
|
fileName: 'name',
|
fileUrl: 'url',
|
}
|
],
|
userList: [
|
{
|
userUid: ''
|
},
|
{
|
userUid: ''
|
}
|
]
|
});
|
const titles = ref();
|
const disabled = ref();
|
// 打开弹窗
|
const openDialog = (title: string, id: number, type: boolean) => {
|
isShowDialog.value = true;
|
titles.value = title;
|
disabled.value = type;
|
// if (title == '查看演练实施评价' || title == '修改演练实施评价') {
|
// releaseDrillPlanApi()
|
// .seeReleaseDrillPlan(id)
|
// .then((res) => {
|
// if (res.data.code == 200) {
|
// ruleForm.value = res.data.data;
|
// }
|
// });
|
// }
|
};
|
// 关闭弹窗
|
const closeDialog = () => {
|
isShowDialog.value = false;
|
};
|
// 取消
|
const onCancel = () => {
|
closeDialog();
|
};
|
//日期选择器
|
const value1 = ref('')
|
// 可选择树
|
const treeSelect = ref()
|
const tree = [
|
{
|
value: '1',
|
label: 'Level one 1',
|
children: [
|
{
|
value: '11',
|
label: 'Level two 1-1',
|
children: [
|
{
|
value: '111',
|
label: 'Level three 1-1-1',
|
},
|
],
|
},
|
],
|
},
|
{
|
value: '2',
|
label: 'Level one 2',
|
children: [
|
{
|
value: '21',
|
label: 'Level two 2-1',
|
children: [
|
{
|
value: '211',
|
label: 'Level three 2-1-1',
|
},
|
],
|
},
|
{
|
value: '22',
|
label: 'Level two 2-2',
|
children: [
|
{
|
value: '221',
|
label: 'Level three 2-2-1',
|
},
|
],
|
},
|
],
|
},
|
{
|
value: '3',
|
label: 'Level one 3',
|
children: [
|
{
|
value: '31',
|
label: 'Level two 3-1',
|
children: [
|
{
|
value: '311',
|
label: 'Level three 3-1-1',
|
},
|
],
|
},
|
{
|
value: '32',
|
label: 'Level two 3-2',
|
children: [
|
{
|
value: '321',
|
label: 'Level three 3-2-1',
|
},
|
],
|
},
|
],
|
},
|
]
|
//定义树形下拉框
|
const responsibleDepartment = ref()
|
const data = [
|
{
|
value: '1',
|
label: '广汇能源综合物流发展有限责任公司',
|
children: [
|
{
|
value: '11',
|
label: '经营班子',
|
children: [],
|
},
|
],
|
},
|
{
|
value: '2',
|
label: '生产运行部',
|
children: [
|
{
|
value: '21',
|
label: '灌装一班',
|
children: []
|
},
|
{
|
value: '22',
|
label: '工艺四班',
|
children: [],
|
},
|
],
|
},
|
{
|
value: '3',
|
label: '设备部',
|
children: [
|
{
|
value: '31',
|
label: '仪表班',
|
children: [],
|
},
|
{
|
value: '32',
|
label: '机修班',
|
children: [],
|
},
|
],
|
},
|
]
|
// 必填项提示
|
// const rules = reactive<FormRules>({
|
// teamName: [
|
// {
|
// required: true,
|
// message: '队伍名称不能为空',
|
// trigger: 'change',
|
// },
|
// ],
|
// teamLevel: [
|
// {
|
// required: true,
|
// message: '队伍级别不能为空',
|
// trigger: 'change',
|
// },
|
// ],
|
// teamLeader: [
|
// {
|
// required: true,
|
// message: '队伍负责人不能为空',
|
// trigger: 'change',
|
// },
|
// ],
|
// responsibleDepartment: [
|
// {
|
// required: true,
|
// message: '负责人部门不能为空',
|
// trigger: 'change',
|
// },
|
// ],
|
// teamPhone: [
|
// {
|
// required: true,
|
// message: '负责人手机不能为空',
|
// trigger: 'change',
|
// },
|
// ],
|
// telephone: [
|
// {
|
// required: true,
|
// message: '固定电话不能为空',
|
// trigger: 'change',
|
// },
|
// ],
|
// })
|
// 应急队伍弹窗
|
// 表单提交验证必填项
|
const submitForm = async (title: string, formEl: FormInstance | undefined) => {
|
if (title == '查看演练实施评价') {
|
if (!formEl) return;
|
await formEl.validate((valid, fields) => {
|
if (valid) {
|
isShowDialog.value = false;
|
emergencyDrillEvaluationApi()
|
.addEmergencyDrillEvaluation(ruleForm.value)
|
.then((res) => {
|
if (res.data.code == 200) {
|
ElMessage({
|
showClose: true,
|
message: res.data.msg,
|
type: 'success',
|
});
|
emit('myAdd', true);
|
} else {
|
ElMessage({
|
showClose: true,
|
message: res.data.msg,
|
type: 'error',
|
});
|
emit('myAdd', true);
|
}
|
formEl.resetFields();
|
});
|
} else {
|
console.log('error submit!', fields);
|
}
|
});
|
}
|
else if (title == '修改演练实施评价') {
|
if (!formEl) return;
|
await formEl.validate((valid, fields) => {
|
if (valid) {
|
isShowDialog.value = false;
|
emergencyDrillEvaluationApi()
|
.editEmergencyDrillEvaluation(ruleForm.value)
|
.then((res) => {
|
if (res.data.code == 200) {
|
ElMessage({
|
showClose: true,
|
message: '修改成功',
|
type: 'success',
|
});
|
emit('myAdd', true);
|
} else {
|
ElMessage({
|
showClose: true,
|
message: res.data.msg,
|
type: 'error',
|
});
|
emit('myAdd', true);
|
}
|
formEl.resetFields();
|
});
|
} else {
|
console.log('error submit!', fields);
|
}
|
});
|
formEl.resetFields();
|
ruleForm.value = {
|
id: '',
|
drillPlanId: '',
|
suitable: '',
|
sufficient: '',
|
arrival: '',
|
supplies: '',
|
protection: '',
|
whole: '',
|
division: '',
|
effect: '',
|
report: '',
|
safety: '',
|
rescue: '',
|
evacuate: '',
|
needModify: '',
|
questionAndImprove: '',
|
modifyContent: '',
|
fileList: [
|
{
|
fileName: 'name',
|
fileUrl: 'url',
|
}
|
],
|
userList: [
|
{
|
userUid: ''
|
},
|
{
|
userUid: ''
|
}
|
]
|
};
|
}
|
}
|
const resetForm = (formEl: FormInstance | undefined) => {
|
isShowDialog.value = false;
|
if (!formEl) return;
|
formEl.resetFields();
|
};
|
const Shows=ref()
|
const daiInpt=()=>{
|
Shows.value.openDailog()
|
}
|
// 选择区域弹窗
|
const openRef=ref()
|
const regionsDialog=()=>{
|
openRef.value.openDailog()
|
}
|
// 打开用户选择弹窗
|
const userRef = ref();
|
const openUser = () => {
|
userRef.value.openDialog();
|
};
|
const activeName = ref('first')
|
|
const handleClick = (tab: TabsPaneContext, event: Event) => {
|
console.log(tab, event)
|
}
|
// 上传图片
|
const imageUrl = ref('')
|
|
const handleAvatarSuccess: UploadProps['onSuccess'] = (
|
response,
|
uploadFile
|
) => {
|
imageUrl.value = URL.createObjectURL(uploadFile.raw!)
|
}
|
|
const beforeAvatarUpload: UploadProps['beforeUpload'] = (rawFile) => {
|
if (rawFile.type !== 'image/jpeg') {
|
ElMessage.error('Avatar picture must be JPG format!')
|
return false
|
} else if (rawFile.size / 1024 / 1024 > 2) {
|
ElMessage.error('Avatar picture size can not exceed 2MB!')
|
return false
|
}
|
return true
|
}
|
//全屏
|
const full = ref(false);
|
const toggleFullscreen = () => {
|
if (full.value == false) {
|
full.value = true;
|
} else {
|
full.value = false;
|
}
|
};
|
return {
|
openDialog,
|
closeDialog,
|
isShowDialog,
|
onCancel,
|
responsibleDepartment,
|
data,
|
Search,
|
ruleForm,
|
value1,
|
treeSelect,
|
tree,
|
daiInpt,
|
Shows,
|
ruleFormRef,
|
// rules,
|
openUser,
|
userRef,
|
regionsDialog,
|
openRef,
|
activeName,
|
handleClick,
|
handleAvatarSuccess,
|
beforeAvatarUpload,
|
Plus,
|
toggleFullscreen,
|
FullScreen,
|
full,
|
submitForm,
|
emit,
|
titles,
|
disabled,
|
resetForm,
|
};
|
},
|
});
|
</script>
|
<style scoped lang="scss">
|
.el-form .el-form-item{
|
margin-bottom: 18px !important;
|
}
|
::v-deep .el-form-item--default .el-form-item__label{
|
text-align: right;
|
height: 100%;
|
}
|
.textarea{
|
height: 50px!important;
|
}
|
.textarea ::v-deep .el-textarea__inner{
|
height: 50px!important;
|
}
|
::v-deep .el-table__cell {
|
font-weight: 400;
|
}
|
.el-divider--horizontal{
|
height: 0;
|
margin: 0;
|
border-top: transparent;
|
}
|
.el-select{
|
width: 100%;
|
}
|
.el-divider--horizontal {
|
display: block;
|
height: 1px;
|
width: 100%;
|
margin: 24px 0;
|
background-color: #dcdfe6;
|
position: relative;
|
}
|
.el-divider__text {
|
position: absolute;
|
background-color: #fff;
|
padding: 0 20px;
|
color: #303133;
|
left: 50%;
|
font-weight: 500;
|
font-size: 14px;
|
}
|
////上传图片
|
//.avatar-uploader .avatar {
|
// width: 178px;
|
// height: 178px;
|
// display: block;
|
//}
|
|
</style>
|
|
<!--<style scoped>-->
|
<!--.avatar-uploader .avatar {-->
|
<!-- width: 178px;-->
|
<!-- height: 178px;-->
|
<!-- display: block;-->
|
<!--}-->
|
<!--</style>-->
|
<!--<style>-->
|
<!--.avatar-uploader .el-upload {-->
|
<!-- border: 1px dashed var(--el-border-color);-->
|
<!-- border-radius: 6px;-->
|
<!-- cursor: pointer;-->
|
<!-- position: relative;-->
|
<!-- overflow: hidden;-->
|
<!-- transition: var(--el-transition-duration-fast);-->
|
<!--}-->
|
|
<!--.avatar-uploader .el-upload:hover {-->
|
<!-- border-color: var(--el-color-primary);-->
|
<!--}-->
|
|
<!--.el-icon.avatar-uploader-icon {-->
|
<!-- font-size: 28px;-->
|
<!-- color: #8c939d;-->
|
<!-- width: 178px;-->
|
<!-- height: 178px;-->
|
<!-- text-align: center;-->
|
<!--}-->
|
<!--</style>-->
|