forked from integrated_whb/integrated_whb_vue
init
parent
04f28b4acc
commit
7724a93c30
File diff suppressed because it is too large
Load Diff
|
|
@ -91,7 +91,7 @@
|
||||||
.el-menu-item {
|
.el-menu-item {
|
||||||
&:hover, &.is-active {
|
&:hover, &.is-active {
|
||||||
//background: #1d3f77;
|
//background: #1d3f77;
|
||||||
background-image: linear-gradient(to right, #1e499a, rgba(0,0,0,0));
|
background-image: linear-gradient(to right, #1e499a, rgba(0, 0, 0, 0));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -122,7 +122,7 @@
|
||||||
width: 100% !important;
|
width: 100% !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
.el-textarea.is-disabled .el-textarea__inner {
|
.el-textarea.is-disabled .el-textarea__inner, .el-select {
|
||||||
--el-disabled-border-color: var(--el-border-color);
|
--el-disabled-border-color: var(--el-border-color);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Binary file not shown.
|
After Width: | Height: | Size: 6.4 KiB |
|
|
@ -2041,6 +2041,109 @@ export default [
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
path: "/major_hazard_sources/monitoring_type_management",
|
||||||
|
meta: { title: "监测类型管理", isSubMenu: false },
|
||||||
|
component: "major_hazard_sources/monitoring_type_management/index",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
path: "/major_hazard_sources/data_collection_threshold_setting",
|
||||||
|
meta: { title: "数据采集阈值设定", isSubMenu: false },
|
||||||
|
component: "children",
|
||||||
|
children: [
|
||||||
|
{
|
||||||
|
path: "",
|
||||||
|
component:
|
||||||
|
"major_hazard_sources/data_collection_threshold_setting/index",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
path: "/major_hazard_sources/data_collection_threshold_setting/threshold_setting",
|
||||||
|
meta: {
|
||||||
|
title: "阈值设定",
|
||||||
|
activeMenu:
|
||||||
|
"/major_hazard_sources/data_collection_threshold_setting",
|
||||||
|
},
|
||||||
|
component:
|
||||||
|
"major_hazard_sources/data_collection_threshold_setting/threshold_setting",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
path: "/major_hazard_sources/data_collection_threshold_setting/view",
|
||||||
|
meta: {
|
||||||
|
title: "查看",
|
||||||
|
activeMenu:
|
||||||
|
"/major_hazard_sources/data_collection_threshold_setting",
|
||||||
|
},
|
||||||
|
component:
|
||||||
|
"major_hazard_sources/data_collection_threshold_setting/view",
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
{
|
||||||
|
path: "/major_hazard_sources/real_time_data_monitoring",
|
||||||
|
meta: { title: "实时数据监测", isSubMenu: false },
|
||||||
|
component: "children",
|
||||||
|
children: [
|
||||||
|
{
|
||||||
|
path: "",
|
||||||
|
component: "major_hazard_sources/real_time_data_monitoring/index",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
path: "/major_hazard_sources/real_time_data_monitoring/view",
|
||||||
|
meta: {
|
||||||
|
title: "查看",
|
||||||
|
activeMenu: "/major_hazard_sources/real_time_data_monitoring",
|
||||||
|
},
|
||||||
|
component: "children",
|
||||||
|
children: [
|
||||||
|
{
|
||||||
|
path: "",
|
||||||
|
component:
|
||||||
|
"major_hazard_sources/real_time_data_monitoring/view",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
path: "/major_hazard_sources/real_time_data_monitoring/view/emergency_handling_record",
|
||||||
|
meta: {
|
||||||
|
title: "应急处理记录",
|
||||||
|
activeMenu: "/major_hazard_sources/real_time_data_monitoring",
|
||||||
|
},
|
||||||
|
component: "children",
|
||||||
|
children: [
|
||||||
|
{
|
||||||
|
path: "",
|
||||||
|
component:
|
||||||
|
"major_hazard_sources/real_time_data_monitoring/emergency_handling_record",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
path: "/major_hazard_sources/real_time_data_monitoring/view/emergency_handling_record/view",
|
||||||
|
meta: {
|
||||||
|
title: "查看",
|
||||||
|
activeMenu:
|
||||||
|
"/major_hazard_sources/real_time_data_monitoring",
|
||||||
|
},
|
||||||
|
component:
|
||||||
|
"major_hazard_sources/real_time_data_monitoring/emergency_handling_record_view",
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
{
|
||||||
|
path: "/three_institutional_libraries",
|
||||||
|
redirect:
|
||||||
|
"/three_institutional_libraries/safety_production_responsibility_system",
|
||||||
|
meta: { title: "三项制度库", model: MODEL["5"] },
|
||||||
|
component: "children",
|
||||||
|
children: [
|
||||||
|
{
|
||||||
|
path: "/three_institutional_libraries/safety_production_responsibility_system",
|
||||||
|
meta: { title: "安全生产责任制", isSubMenu: false },
|
||||||
|
component:
|
||||||
|
"three_institutional_libraries/safety_production_responsibility_system/index",
|
||||||
|
},
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
];
|
];
|
||||||
|
|
|
||||||
|
|
@ -251,6 +251,13 @@ export const layoutFnGetMajorHazardSourceType = async () => {
|
||||||
});
|
});
|
||||||
return ref(resData.list);
|
return ref(resData.list);
|
||||||
};
|
};
|
||||||
|
// 监测数据类型
|
||||||
|
export const layoutFnGetEquipmentType = async () => {
|
||||||
|
const resData = await getLevelsCorp({
|
||||||
|
DICTIONARIES_ID: "6a724d36c3ad416fad22049d932c1987",
|
||||||
|
});
|
||||||
|
return ref(resData.list);
|
||||||
|
};
|
||||||
// 部门树
|
// 部门树
|
||||||
export const layoutFnGetDepartmentTree = async (params) => {
|
export const layoutFnGetDepartmentTree = async (params) => {
|
||||||
const resData = await getDepartmentTree(params);
|
const resData = await getDepartmentTree(params);
|
||||||
|
|
|
||||||
|
|
@ -62,7 +62,5 @@ export const setRealTimeDataMonitoringEquipmentEdit = (params) =>
|
||||||
post("/majordangersourcedisposal/edit", params); // 实时数据监测设备应急处置修改
|
post("/majordangersourcedisposal/edit", params); // 实时数据监测设备应急处置修改
|
||||||
export const getEmergencyHandlingRecordList = (params) =>
|
export const getEmergencyHandlingRecordList = (params) =>
|
||||||
post("/majordangersourcedisposal/list", params); // 应急处理记录列表
|
post("/majordangersourcedisposal/list", params); // 应急处理记录列表
|
||||||
export const setEmergencyHandlingRecordFalseAlarm = (params) =>
|
|
||||||
post("/majordangersourcedisposal/editAlarmFalse", params); // 应急处理记录设置成误报
|
|
||||||
export const getEmergencyHandlingRecordView = (params) =>
|
export const getEmergencyHandlingRecordView = (params) =>
|
||||||
post("/majordangersourcedisposal/goShow", params); // 应急处理记录查看
|
post("/majordangersourcedisposal/goShow", params); // 应急处理记录查看
|
||||||
|
|
|
||||||
|
|
@ -11,7 +11,7 @@
|
||||||
<div class="title">{{ item.title }}</div>
|
<div class="title">{{ item.title }}</div>
|
||||||
</div>
|
</div>
|
||||||
<div :class="['child_container', { active: item.check }]">
|
<div :class="['child_container', { active: item.check }]">
|
||||||
<div class="child_options">
|
<div :class="['child_options', item.type]">
|
||||||
<div
|
<div
|
||||||
class="child_option"
|
class="child_option"
|
||||||
v-for="(item1, index1) in item.list"
|
v-for="(item1, index1) in item.list"
|
||||||
|
|
@ -422,6 +422,10 @@ const fnBottomChildOptionsListChange = (index, item1, index1) => {
|
||||||
color: #28b9fe;
|
color: #28b9fe;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
&.workSafely {
|
||||||
|
left: 100%;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,116 @@
|
||||||
|
<template>
|
||||||
|
<el-dialog v-model="visible" title="设备停用" :on-close="fnClose">
|
||||||
|
<el-form ref="formRef" :rules="rules" :model="form" label-width="150px">
|
||||||
|
<el-form-item label="停用状态" prop="DISABLE_STATUS">
|
||||||
|
<el-select v-model="form.DISABLE_STATUS">
|
||||||
|
<el-option
|
||||||
|
v-for="item in [
|
||||||
|
{ ID: '2', NAME: '停用' },
|
||||||
|
{ ID: '3', NAME: '检修' },
|
||||||
|
]"
|
||||||
|
:key="item.ID"
|
||||||
|
:label="item.NAME"
|
||||||
|
:value="item.ID"
|
||||||
|
/>
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="停用开始时间" prop="DISABLE_TIME_START">
|
||||||
|
<el-date-picker
|
||||||
|
v-model="form.DISABLE_TIME_START"
|
||||||
|
format="YYYY-MM-DD HH:mm"
|
||||||
|
value-format="YYYY-MM-DD HH:mm"
|
||||||
|
type="datetime"
|
||||||
|
/>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="停用结束时间" prop="DISABLE_TIME_END">
|
||||||
|
<el-date-picker
|
||||||
|
v-model="form.DISABLE_TIME_END"
|
||||||
|
format="YYYY-MM-DD HH:mm"
|
||||||
|
value-format="YYYY-MM-DD HH:mm"
|
||||||
|
type="datetime"
|
||||||
|
/>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="停用原因" prop="DISABLE_REASON">
|
||||||
|
<el-input
|
||||||
|
v-model="form.DISABLE_REASON"
|
||||||
|
:autosize="{ minRows: 3 }"
|
||||||
|
type="textarea"
|
||||||
|
/>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="停用人" prop="DISABLE_USER">
|
||||||
|
<el-input v-model="form.DISABLE_USER" />
|
||||||
|
</el-form-item>
|
||||||
|
</el-form>
|
||||||
|
<template #footer>
|
||||||
|
<el-button @click="fnClose">取消</el-button>
|
||||||
|
<el-button type="primary" @click="fnSubmit"> 确定 </el-button>
|
||||||
|
</template>
|
||||||
|
</el-dialog>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script setup>
|
||||||
|
import { ref } from "vue";
|
||||||
|
import { useVModels } from "@vueuse/core";
|
||||||
|
import { debounce } from "throttle-debounce";
|
||||||
|
import useFormValidate from "@/assets/js/useFormValidate.js";
|
||||||
|
import { setDataCollectionThresholdSettingDeactivate } from "@/request/major_hazard_sources.js";
|
||||||
|
import { ElMessage } from "element-plus";
|
||||||
|
|
||||||
|
const props = defineProps({
|
||||||
|
visible: {
|
||||||
|
type: Boolean,
|
||||||
|
required: true,
|
||||||
|
default: false,
|
||||||
|
},
|
||||||
|
form: {
|
||||||
|
type: Object,
|
||||||
|
required: true,
|
||||||
|
default: () => ({}),
|
||||||
|
},
|
||||||
|
id: {
|
||||||
|
type: String,
|
||||||
|
required: true,
|
||||||
|
default: "",
|
||||||
|
},
|
||||||
|
});
|
||||||
|
const emits = defineEmits(["update:visible", "update:form", "get-data"]);
|
||||||
|
const { visible, form } = useVModels(props, emits);
|
||||||
|
const rules = {
|
||||||
|
DISABLE_STATUS: [
|
||||||
|
{ required: true, message: "停用状态不能为空", trigger: "blur" },
|
||||||
|
],
|
||||||
|
DISABLE_TIME_START: [
|
||||||
|
{ required: true, message: "请选择停用开始时间", trigger: "blur" },
|
||||||
|
],
|
||||||
|
DISABLE_TIME_END: [
|
||||||
|
{ required: true, message: "请选择停用结束时间", trigger: "blur" },
|
||||||
|
],
|
||||||
|
DISABLE_REASON: [
|
||||||
|
{ required: true, message: "停用原因不能为空", trigger: "blur" },
|
||||||
|
],
|
||||||
|
DISABLE_USER: [
|
||||||
|
{ required: true, message: "停用人不能为空", trigger: "blur" },
|
||||||
|
],
|
||||||
|
};
|
||||||
|
const formRef = ref(null);
|
||||||
|
const fnClose = () => {
|
||||||
|
formRef.value.resetFields();
|
||||||
|
visible.value = false;
|
||||||
|
};
|
||||||
|
const fnSubmit = debounce(
|
||||||
|
1000,
|
||||||
|
async () => {
|
||||||
|
await useFormValidate(formRef);
|
||||||
|
await setDataCollectionThresholdSettingDeactivate({
|
||||||
|
...form.value,
|
||||||
|
MAJORDANGERSOURCE_ID: props.id,
|
||||||
|
});
|
||||||
|
ElMessage.success("停用成功");
|
||||||
|
fnClose();
|
||||||
|
emits("get-data");
|
||||||
|
},
|
||||||
|
{ atBegin: true }
|
||||||
|
);
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style scoped lang="scss"></style>
|
||||||
|
|
@ -0,0 +1,294 @@
|
||||||
|
<template>
|
||||||
|
<el-dialog
|
||||||
|
v-model="visible"
|
||||||
|
:title="type === 'add' ? '添加' : '修改'"
|
||||||
|
:on-close="fnClose"
|
||||||
|
>
|
||||||
|
<el-form ref="formRef" :rules="rules" :model="form" label-width="110px">
|
||||||
|
<el-row>
|
||||||
|
<el-col :span="24">
|
||||||
|
<el-form-item label="监测数据类型" prop="MONITORINGDEVICESENSOR_TYPE">
|
||||||
|
<el-select
|
||||||
|
v-model="form.MONITORINGDEVICESENSOR_TYPE"
|
||||||
|
:disabled="type === 'edit'"
|
||||||
|
>
|
||||||
|
<el-option
|
||||||
|
v-for="item in equipmentTypeList"
|
||||||
|
:key="item.BIANMA"
|
||||||
|
:label="item.NAME"
|
||||||
|
:value="item.BIANMA"
|
||||||
|
/>
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="12">
|
||||||
|
<el-form-item label="量程下限" prop="RANGE_MIN">
|
||||||
|
<el-input-number
|
||||||
|
v-model="form.RANGE_MIN"
|
||||||
|
:precision="2"
|
||||||
|
:step="0.01"
|
||||||
|
:mix="0"
|
||||||
|
/>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="12">
|
||||||
|
<el-form-item label="量程上限" prop="RANGE_MAX">
|
||||||
|
<el-input-number
|
||||||
|
v-model="form.RANGE_MAX"
|
||||||
|
:precision="2"
|
||||||
|
:step="0.01"
|
||||||
|
:mix="0"
|
||||||
|
/>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="12">
|
||||||
|
<el-form-item label="一级预警下限" prop="RANGE1_MIN">
|
||||||
|
<el-input-number
|
||||||
|
v-model="form.RANGE1_MIN"
|
||||||
|
:precision="2"
|
||||||
|
:step="0.01"
|
||||||
|
:mix="0"
|
||||||
|
/>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="12">
|
||||||
|
<el-form-item label="一级预警上限" prop="RANGE1_MAX">
|
||||||
|
<el-input-number
|
||||||
|
v-model="form.RANGE1_MAX"
|
||||||
|
:precision="2"
|
||||||
|
:step="0.01"
|
||||||
|
:mix="0"
|
||||||
|
/>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="12">
|
||||||
|
<el-form-item label="二级预警下限" prop="RANGE2_MIN">
|
||||||
|
<el-input-number
|
||||||
|
v-model="form.RANGE2_MIN"
|
||||||
|
:precision="2"
|
||||||
|
:step="0.01"
|
||||||
|
:mix="0"
|
||||||
|
/>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="12">
|
||||||
|
<el-form-item label="二级预警上限" prop="RANGE2_MAX">
|
||||||
|
<el-input-number
|
||||||
|
v-model="form.RANGE2_MAX"
|
||||||
|
:precision="2"
|
||||||
|
:step="0.01"
|
||||||
|
:mix="0"
|
||||||
|
/>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="12">
|
||||||
|
<el-form-item label="三级预警下限" prop="RANGE3_MIN">
|
||||||
|
<el-input-number
|
||||||
|
v-model="form.RANGE3_MIN"
|
||||||
|
:precision="2"
|
||||||
|
:step="0.01"
|
||||||
|
:mix="0"
|
||||||
|
/>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="12">
|
||||||
|
<el-form-item label="三级预警上限" prop="RANGE3_MAX">
|
||||||
|
<el-input-number
|
||||||
|
v-model="form.RANGE3_MAX"
|
||||||
|
:precision="2"
|
||||||
|
:step="0.01"
|
||||||
|
:mix="0"
|
||||||
|
/>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="12">
|
||||||
|
<el-form-item label="四级预警下限" prop="RANGE4_MIN">
|
||||||
|
<el-input-number
|
||||||
|
v-model="form.RANGE4_MIN"
|
||||||
|
:precision="2"
|
||||||
|
:step="0.01"
|
||||||
|
:mix="0"
|
||||||
|
/>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="12">
|
||||||
|
<el-form-item label="四级预警上限" prop="RANGE4_MAX">
|
||||||
|
<el-input-number
|
||||||
|
v-model="form.RANGE4_MAX"
|
||||||
|
:precision="2"
|
||||||
|
:step="0.01"
|
||||||
|
:mix="0"
|
||||||
|
/>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
</el-form>
|
||||||
|
<template #footer>
|
||||||
|
<el-button @click="fnClose">取消</el-button>
|
||||||
|
<el-button type="primary" @click="fnSubmit"> 确定 </el-button>
|
||||||
|
</template>
|
||||||
|
</el-dialog>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script setup>
|
||||||
|
import { useVModels } from "@vueuse/core";
|
||||||
|
import { ref } from "vue";
|
||||||
|
import { debounce } from "throttle-debounce";
|
||||||
|
import useFormValidate from "@/assets/js/useFormValidate.js";
|
||||||
|
import {
|
||||||
|
setDataCollectionThresholdSettingThresholdSettingAdd,
|
||||||
|
setDataCollectionThresholdSettingThresholdSettingEdit,
|
||||||
|
} from "@/request/major_hazard_sources.js";
|
||||||
|
import { ElMessage } from "element-plus";
|
||||||
|
|
||||||
|
const props = defineProps({
|
||||||
|
visible: {
|
||||||
|
type: Boolean,
|
||||||
|
required: true,
|
||||||
|
default: false,
|
||||||
|
},
|
||||||
|
form: {
|
||||||
|
type: Object,
|
||||||
|
required: true,
|
||||||
|
default: () => {},
|
||||||
|
},
|
||||||
|
type: {
|
||||||
|
type: String,
|
||||||
|
required: true,
|
||||||
|
default: "",
|
||||||
|
},
|
||||||
|
id: {
|
||||||
|
type: String,
|
||||||
|
required: true,
|
||||||
|
default: "",
|
||||||
|
},
|
||||||
|
equipmentTypeList: {
|
||||||
|
type: Array,
|
||||||
|
required: true,
|
||||||
|
default: () => [],
|
||||||
|
},
|
||||||
|
});
|
||||||
|
const emits = defineEmits(["update:visible", "update:form", "get-data"]);
|
||||||
|
const { visible, form } = useVModels(props, emits);
|
||||||
|
const rules = {
|
||||||
|
MONITORINGDEVICESENSOR_TYPE: [
|
||||||
|
{ required: true, message: "监测数据类型不能为空", trigger: "blur" },
|
||||||
|
],
|
||||||
|
RANGE_MIN: [
|
||||||
|
{
|
||||||
|
required: true,
|
||||||
|
pattern:
|
||||||
|
/(^[1-9]([0-9]+)?(\.[0-9]{1,2})?$)|(^(0){1}$)|(^[0-9]\.[0-9]([0-9])?$)/,
|
||||||
|
message: "请输入正确格式,可保留两位小数",
|
||||||
|
trigger: "blur",
|
||||||
|
},
|
||||||
|
],
|
||||||
|
RANGE_MAX: [
|
||||||
|
{
|
||||||
|
required: true,
|
||||||
|
pattern:
|
||||||
|
/(^[1-9]([0-9]+)?(\.[0-9]{1,2})?$)|(^(0){1}$)|(^[0-9]\.[0-9]([0-9])?$)/,
|
||||||
|
message: "请输入正确格式,可保留两位小数",
|
||||||
|
trigger: "blur",
|
||||||
|
},
|
||||||
|
],
|
||||||
|
RANGE1_MIN: [
|
||||||
|
{
|
||||||
|
required: true,
|
||||||
|
pattern:
|
||||||
|
/(^[1-9]([0-9]+)?(\.[0-9]{1,2})?$)|(^(0){1}$)|(^[0-9]\.[0-9]([0-9])?$)/,
|
||||||
|
message: "请输入正确格式,可保留两位小数",
|
||||||
|
trigger: "blur",
|
||||||
|
},
|
||||||
|
],
|
||||||
|
RANGE1_MAX: [
|
||||||
|
{
|
||||||
|
required: true,
|
||||||
|
pattern:
|
||||||
|
/(^[1-9]([0-9]+)?(\.[0-9]{1,2})?$)|(^(0){1}$)|(^[0-9]\.[0-9]([0-9])?$)/,
|
||||||
|
message: "请输入正确格式,可保留两位小数",
|
||||||
|
trigger: "blur",
|
||||||
|
},
|
||||||
|
],
|
||||||
|
RANGE2_MIN: [
|
||||||
|
{
|
||||||
|
required: true,
|
||||||
|
pattern:
|
||||||
|
/(^[1-9]([0-9]+)?(\.[0-9]{1,2})?$)|(^(0){1}$)|(^[0-9]\.[0-9]([0-9])?$)/,
|
||||||
|
message: "请输入正确格式,可保留两位小数",
|
||||||
|
trigger: "blur",
|
||||||
|
},
|
||||||
|
],
|
||||||
|
RANGE2_MAX: [
|
||||||
|
{
|
||||||
|
required: true,
|
||||||
|
pattern:
|
||||||
|
/(^[1-9]([0-9]+)?(\.[0-9]{1,2})?$)|(^(0){1}$)|(^[0-9]\.[0-9]([0-9])?$)/,
|
||||||
|
message: "请输入正确格式,可保留两位小数",
|
||||||
|
trigger: "blur",
|
||||||
|
},
|
||||||
|
],
|
||||||
|
RANGE3_MIN: [
|
||||||
|
{
|
||||||
|
required: true,
|
||||||
|
pattern:
|
||||||
|
/(^[1-9]([0-9]+)?(\.[0-9]{1,2})?$)|(^(0){1}$)|(^[0-9]\.[0-9]([0-9])?$)/,
|
||||||
|
message: "请输入正确格式,可保留两位小数",
|
||||||
|
trigger: "blur",
|
||||||
|
},
|
||||||
|
],
|
||||||
|
RANGE3_MAX: [
|
||||||
|
{
|
||||||
|
required: true,
|
||||||
|
pattern:
|
||||||
|
/(^[1-9]([0-9]+)?(\.[0-9]{1,2})?$)|(^(0){1}$)|(^[0-9]\.[0-9]([0-9])?$)/,
|
||||||
|
message: "请输入正确格式,可保留两位小数",
|
||||||
|
trigger: "blur",
|
||||||
|
},
|
||||||
|
],
|
||||||
|
RANGE4_MIN: [
|
||||||
|
{
|
||||||
|
required: true,
|
||||||
|
pattern:
|
||||||
|
/(^[1-9]([0-9]+)?(\.[0-9]{1,2})?$)|(^(0){1}$)|(^[0-9]\.[0-9]([0-9])?$)/,
|
||||||
|
message: "请输入正确格式,可保留两位小数",
|
||||||
|
trigger: "blur",
|
||||||
|
},
|
||||||
|
],
|
||||||
|
RANGE4_MAX: [
|
||||||
|
{
|
||||||
|
required: true,
|
||||||
|
pattern:
|
||||||
|
/(^[1-9]([0-9]+)?(\.[0-9]{1,2})?$)|(^(0){1}$)|(^[0-9]\.[0-9]([0-9])?$)/,
|
||||||
|
message: "请输入正确格式,可保留两位小数",
|
||||||
|
trigger: "blur",
|
||||||
|
},
|
||||||
|
],
|
||||||
|
};
|
||||||
|
const formRef = ref(null);
|
||||||
|
const fnClose = () => {
|
||||||
|
formRef.value.resetFields();
|
||||||
|
visible.value = false;
|
||||||
|
};
|
||||||
|
const fnSubmit = debounce(
|
||||||
|
1000,
|
||||||
|
async () => {
|
||||||
|
await useFormValidate(formRef);
|
||||||
|
props.type === "add"
|
||||||
|
? await setDataCollectionThresholdSettingThresholdSettingAdd({
|
||||||
|
...form.value,
|
||||||
|
MAJORDANGERSOURCE_ID: props.id,
|
||||||
|
})
|
||||||
|
: await setDataCollectionThresholdSettingThresholdSettingEdit({
|
||||||
|
...form.value,
|
||||||
|
MAJORDANGERSOURCE_ID: props.id,
|
||||||
|
});
|
||||||
|
fnClose();
|
||||||
|
ElMessage.success("保存成功");
|
||||||
|
emits("get-data");
|
||||||
|
},
|
||||||
|
{ atBegin: true }
|
||||||
|
);
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style scoped lang="scss"></style>
|
||||||
|
|
@ -2,19 +2,19 @@
|
||||||
<div>
|
<div>
|
||||||
<el-card>
|
<el-card>
|
||||||
<el-form
|
<el-form
|
||||||
:model="data.searchForm"
|
:model="searchForm"
|
||||||
label-width="120px"
|
label-width="120px"
|
||||||
@submit.prevent="fnResetPagination"
|
@submit.prevent="fnResetPagination"
|
||||||
>
|
>
|
||||||
<el-row>
|
<el-row>
|
||||||
<el-col :span="5">
|
<el-col :span="5">
|
||||||
<el-form-item label="重大危险源名称" prop="KEYWORDS">
|
<el-form-item label="重大危险源名称" prop="MAJORDANGERSOURCE_NAME">
|
||||||
<el-input v-model="data.searchForm.KEYWORDS" />
|
<el-input v-model="searchForm.MAJORDANGERSOURCE_NAME" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="5">
|
<el-col :span="5">
|
||||||
<el-form-item label="重大危险源类型" prop="MAJORDANGERSOURCE_TYPE">
|
<el-form-item label="重大危险源类型" prop="MAJORDANGERSOURCE_TYPE">
|
||||||
<el-select v-model="data.searchForm.MAJORDANGERSOURCE_TYPE">
|
<el-select v-model="searchForm.MAJORDANGERSOURCE_TYPE">
|
||||||
<el-option
|
<el-option
|
||||||
v-for="item in majorHazardSourceTypeList"
|
v-for="item in majorHazardSourceTypeList"
|
||||||
:key="item.BIANMA"
|
:key="item.BIANMA"
|
||||||
|
|
@ -29,7 +29,7 @@
|
||||||
label="重大危险源状态"
|
label="重大危险源状态"
|
||||||
prop="MAJORDANGERSOURCE_STATUS"
|
prop="MAJORDANGERSOURCE_STATUS"
|
||||||
>
|
>
|
||||||
<el-select v-model="data.searchForm.MAJORDANGERSOURCE_STATUS">
|
<el-select v-model="searchForm.MAJORDANGERSOURCE_STATUS">
|
||||||
<el-option
|
<el-option
|
||||||
v-for="item in majorHazardSourceStateList"
|
v-for="item in majorHazardSourceStateList"
|
||||||
:key="item.ID"
|
:key="item.ID"
|
||||||
|
|
@ -45,7 +45,7 @@
|
||||||
prop="RESPONSIBLE_PERSON_NAME"
|
prop="RESPONSIBLE_PERSON_NAME"
|
||||||
label-width="70px"
|
label-width="70px"
|
||||||
>
|
>
|
||||||
<el-input v-model="data.searchForm.RESPONSIBLE_PERSON_NAME" />
|
<el-input v-model="searchForm.RESPONSIBLE_PERSON_NAME" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="4">
|
<el-col :span="4">
|
||||||
|
|
@ -61,13 +61,13 @@
|
||||||
</el-card>
|
</el-card>
|
||||||
<layout-card>
|
<layout-card>
|
||||||
<layout-table
|
<layout-table
|
||||||
:data="data.list"
|
:data="list"
|
||||||
@get-data="fnGetData"
|
@get-data="fnGetData"
|
||||||
v-model:pagination="data.pagination"
|
v-model:pagination="pagination"
|
||||||
>
|
>
|
||||||
<el-table-column label="序号" width="60">
|
<el-table-column label="序号" width="60">
|
||||||
<template #default="{ $index }">
|
<template #default="{ $index }">
|
||||||
{{ serialNumber(data.pagination, $index) }}
|
{{ serialNumber(pagination, $index) }}
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column prop="MAJORDANGERSOURCE_NAME" label="重大危险源名称" />
|
<el-table-column prop="MAJORDANGERSOURCE_NAME" label="重大危险源名称" />
|
||||||
|
|
@ -83,11 +83,11 @@
|
||||||
prop="MAJORDANGERSOURCE_ADDRESS"
|
prop="MAJORDANGERSOURCE_ADDRESS"
|
||||||
label="重大危险源地址"
|
label="重大危险源地址"
|
||||||
/>
|
/>
|
||||||
<el-table-column prop="RESPONSIBLE_PERSON" label="责任人" />
|
<el-table-column prop="RESPONSIBLE_PERSON_NAME" label="责任人" />
|
||||||
<el-table-column label="状态">
|
<el-table-column label="状态">
|
||||||
<template v-slot="{ row }">
|
<template v-slot="{ row }">
|
||||||
{{
|
{{
|
||||||
fnTranslationStatus(
|
translationStatus(
|
||||||
row.MAJORDANGERSOURCE_STATUS,
|
row.MAJORDANGERSOURCE_STATUS,
|
||||||
majorHazardSourceStateList
|
majorHazardSourceStateList
|
||||||
)
|
)
|
||||||
|
|
@ -151,90 +151,39 @@
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
</layout-table>
|
</layout-table>
|
||||||
</layout-card>
|
</layout-card>
|
||||||
<el-dialog v-model="data.deactivateDialog.visible" title="设备停用">
|
<deactivate
|
||||||
<el-form
|
v-model:visible="data.deactivateDialog.visible"
|
||||||
ref="deactivateDialogFormRef"
|
v-model:form="data.deactivateDialog.form"
|
||||||
:rules="data.deactivateDialog.rules"
|
:id="data.deactivateDialog.MAJORDANGERSOURCE_ID"
|
||||||
:model="data.deactivateDialog.form"
|
@get-data="fnResetPagination"
|
||||||
label-width="150px"
|
/>
|
||||||
>
|
|
||||||
<el-form-item label="停用状态" prop="DISABLE_STATUS">
|
|
||||||
<el-select v-model="data.deactivateDialog.form.DISABLE_STATUS">
|
|
||||||
<el-option
|
|
||||||
v-for="item in [
|
|
||||||
{ ID: '2', NAME: '停用' },
|
|
||||||
{ ID: '3', NAME: '检修' },
|
|
||||||
]"
|
|
||||||
:key="item.ID"
|
|
||||||
:label="item.NAME"
|
|
||||||
:value="item.ID"
|
|
||||||
/>
|
|
||||||
</el-select>
|
|
||||||
</el-form-item>
|
|
||||||
<el-form-item label="停用开始时间" prop="DISABLE_TIME_START">
|
|
||||||
<el-date-picker
|
|
||||||
v-model="data.deactivateDialog.form.DISABLE_TIME_START"
|
|
||||||
format="YYYY-MM-DD HH:mm"
|
|
||||||
value-format="YYYY-MM-DD HH:mm"
|
|
||||||
type="datetime"
|
|
||||||
/>
|
|
||||||
</el-form-item>
|
|
||||||
<el-form-item label="停用结束时间" prop="DISABLE_TIME_END">
|
|
||||||
<el-date-picker
|
|
||||||
v-model="data.deactivateDialog.form.DISABLE_TIME_END"
|
|
||||||
format="YYYY-MM-DD HH:mm"
|
|
||||||
value-format="YYYY-MM-DD HH:mm"
|
|
||||||
type="datetime"
|
|
||||||
/>
|
|
||||||
</el-form-item>
|
|
||||||
<el-form-item label="停用原因" prop="DISABLE_REASON">
|
|
||||||
<el-input
|
|
||||||
v-model="data.deactivateDialog.form.DISABLE_REASON"
|
|
||||||
autosize
|
|
||||||
type="textarea"
|
|
||||||
/>
|
|
||||||
</el-form-item>
|
|
||||||
<el-form-item label="停用人" prop="DISABLE_USER">
|
|
||||||
<el-input v-model="data.deactivateDialog.form.DISABLE_USER" />
|
|
||||||
</el-form-item>
|
|
||||||
</el-form>
|
|
||||||
<template #footer>
|
|
||||||
<el-button @click="fnDeactivateDialogChangeShow">取消</el-button>
|
|
||||||
<el-button type="primary" @click="fnDeactivateDialogSubmit">
|
|
||||||
确定
|
|
||||||
</el-button>
|
|
||||||
</template>
|
|
||||||
</el-dialog>
|
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup>
|
<script setup>
|
||||||
import { nextTick, reactive, ref } from "vue";
|
import { nextTick, reactive } from "vue";
|
||||||
import { fnTranslationStatus, serialNumber } from "@/assets/js/utils";
|
import { translationStatus, serialNumber } from "@/assets/js/utils";
|
||||||
import {
|
import {
|
||||||
getDataCollectionThresholdSettingList,
|
getDataCollectionThresholdSettingList,
|
||||||
setDataCollectionThresholdSettingDeactivate,
|
|
||||||
setDataCollectionThresholdSettingEnable,
|
setDataCollectionThresholdSettingEnable,
|
||||||
} from "@/request/major_hazard_sources";
|
} from "@/request/major_hazard_sources";
|
||||||
import { layoutFnButtonJurisdiction } from "@/assets/js/button_jurisdiction";
|
import useButtonJurisdiction from "@/assets/js/useButtonJurisdiction.js";
|
||||||
import { layoutFnGetMajorHazardSourceType } from "@/assets/js/data_dictionary.js";
|
import { layoutFnGetMajorHazardSourceType } from "@/assets/js/data_dictionary.js";
|
||||||
import { debounce } from "throttle-debounce";
|
import { debounce } from "throttle-debounce";
|
||||||
import { useUserStore } from "@/pinia/user.js";
|
import { useUserStore } from "@/pinia/user.js";
|
||||||
import { ElMessage, ElMessageBox } from "element-plus";
|
import { ElMessage, ElMessageBox } from "element-plus";
|
||||||
import { useRouter } from "vue-router";
|
import { useRouter } from "vue-router";
|
||||||
import useFormValidate from "@/assets/js/useFormValidate.js";
|
import useListData from "@/assets/js/useListData.js";
|
||||||
|
import Deactivate from "./components/deactivate.vue";
|
||||||
|
|
||||||
const userStore = useUserStore();
|
const userStore = useUserStore();
|
||||||
const router = useRouter();
|
const router = useRouter();
|
||||||
const deactivateDialogFormRef = ref(null);
|
const majorHazardSourceStateList = [
|
||||||
|
{ ID: "1", NAME: "正常" },
|
||||||
|
{ ID: "2", NAME: "停用" },
|
||||||
|
{ ID: "3", NAME: "检修" },
|
||||||
|
];
|
||||||
const data = reactive({
|
const data = reactive({
|
||||||
list: [],
|
|
||||||
pagination: {
|
|
||||||
currentPage: 1,
|
|
||||||
pageSize: 10,
|
|
||||||
total: 0,
|
|
||||||
},
|
|
||||||
searchForm: {},
|
|
||||||
deactivateDialog: {
|
deactivateDialog: {
|
||||||
visible: false,
|
visible: false,
|
||||||
MAJORDANGERSOURCE_ID: "",
|
MAJORDANGERSOURCE_ID: "",
|
||||||
|
|
@ -245,76 +194,17 @@ const data = reactive({
|
||||||
DISABLE_REASON: "",
|
DISABLE_REASON: "",
|
||||||
DISABLE_USER: userStore.getUserInfo.NAME,
|
DISABLE_USER: userStore.getUserInfo.NAME,
|
||||||
},
|
},
|
||||||
rules: {
|
|
||||||
DISABLE_STATUS: [
|
|
||||||
{ required: true, message: "停用状态不能为空", trigger: "blur" },
|
|
||||||
],
|
|
||||||
DISABLE_TIME_START: [
|
|
||||||
{ required: true, message: "请选择停用开始时间", trigger: "blur" },
|
|
||||||
],
|
|
||||||
DISABLE_TIME_END: [
|
|
||||||
{ required: true, message: "请选择停用结束时间", trigger: "blur" },
|
|
||||||
],
|
|
||||||
DISABLE_REASON: [
|
|
||||||
{ required: true, message: "停用原因不能为空", trigger: "blur" },
|
|
||||||
],
|
|
||||||
DISABLE_USER: [
|
|
||||||
{ required: true, message: "停用人不能为空", trigger: "blur" },
|
|
||||||
],
|
|
||||||
},
|
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
const fnGetData = async () => {
|
const { list, pagination, searchForm, fnResetPagination, fnGetData } =
|
||||||
const resData = await getDataCollectionThresholdSettingList({
|
useListData(getDataCollectionThresholdSettingList);
|
||||||
currentPage: data.pagination.currentPage,
|
const buttonJurisdiction = await useButtonJurisdiction("majordangersource");
|
||||||
showCount: data.pagination.pageSize,
|
|
||||||
...data.searchForm,
|
|
||||||
});
|
|
||||||
data.list = resData.varList;
|
|
||||||
data.pagination.total = resData.page.totalResult;
|
|
||||||
};
|
|
||||||
fnGetData();
|
|
||||||
const buttonJurisdiction = await layoutFnButtonJurisdiction(
|
|
||||||
"majordangersource"
|
|
||||||
);
|
|
||||||
const majorHazardSourceTypeList = await layoutFnGetMajorHazardSourceType();
|
const majorHazardSourceTypeList = await layoutFnGetMajorHazardSourceType();
|
||||||
const majorHazardSourceStateList = [
|
|
||||||
{ ID: "1", NAME: "正常" },
|
|
||||||
{ ID: "2", NAME: "停用" },
|
|
||||||
{ ID: "3", NAME: "检修" },
|
|
||||||
];
|
|
||||||
const fnResetPagination = () => {
|
|
||||||
data.pagination = {
|
|
||||||
currentPage: 1,
|
|
||||||
pageSize: 10,
|
|
||||||
total: 0,
|
|
||||||
};
|
|
||||||
fnGetData();
|
|
||||||
};
|
|
||||||
const fnDeactivateDialogChangeShow = () => {
|
|
||||||
data.deactivateDialog.visible = !data.deactivateDialog.visible;
|
|
||||||
};
|
|
||||||
const fnDeactivate = async (MAJORDANGERSOURCE_ID) => {
|
const fnDeactivate = async (MAJORDANGERSOURCE_ID) => {
|
||||||
fnDeactivateDialogChangeShow();
|
data.deactivateDialog.visible = true;
|
||||||
data.deactivateDialog.MAJORDANGERSOURCE_ID = MAJORDANGERSOURCE_ID;
|
data.deactivateDialog.MAJORDANGERSOURCE_ID = MAJORDANGERSOURCE_ID;
|
||||||
await nextTick();
|
await nextTick();
|
||||||
deactivateDialogFormRef.value.resetFields();
|
|
||||||
};
|
};
|
||||||
const fnDeactivateDialogSubmit = debounce(
|
|
||||||
1000,
|
|
||||||
async () => {
|
|
||||||
await useFormValidate(deactivateDialogFormRef);
|
|
||||||
const { form, MAJORDANGERSOURCE_ID } = data.deactivateDialog;
|
|
||||||
await setDataCollectionThresholdSettingDeactivate({
|
|
||||||
...form,
|
|
||||||
MAJORDANGERSOURCE_ID,
|
|
||||||
});
|
|
||||||
fnDeactivateDialogChangeShow();
|
|
||||||
ElMessage.success("停用成功");
|
|
||||||
fnResetPagination();
|
|
||||||
},
|
|
||||||
{ atBegin: true }
|
|
||||||
);
|
|
||||||
const fnEnable = debounce(
|
const fnEnable = debounce(
|
||||||
1000,
|
1000,
|
||||||
async (MAJORDANGERSOURCE_ID) => {
|
async (MAJORDANGERSOURCE_ID) => {
|
||||||
|
|
|
||||||
|
|
@ -4,14 +4,14 @@
|
||||||
<layout-table
|
<layout-table
|
||||||
ref="tableRef"
|
ref="tableRef"
|
||||||
row-key="MONITORINGDEVICESENSOR_ID"
|
row-key="MONITORINGDEVICESENSOR_ID"
|
||||||
:data="data.list"
|
:data="list"
|
||||||
@get-data="fnGetData"
|
@get-data="fnGetData"
|
||||||
v-model:pagination="data.pagination"
|
v-model:pagination="pagination"
|
||||||
>
|
>
|
||||||
<el-table-column reserve-selection type="selection" width="55" />
|
<el-table-column reserve-selection type="selection" width="55" />
|
||||||
<el-table-column label="序号" width="60">
|
<el-table-column label="序号" width="60">
|
||||||
<template #default="{ $index }">
|
<template #default="{ $index }">
|
||||||
{{ serialNumber(data.pagination, $index) }}
|
{{ serialNumber(pagination, $index) }}
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column
|
<el-table-column
|
||||||
|
|
@ -38,7 +38,7 @@
|
||||||
<el-table-column prop="RANGE4_MIN" label="下限" />
|
<el-table-column prop="RANGE4_MIN" label="下限" />
|
||||||
<el-table-column prop="RANGE4_MAX" label="上限" />
|
<el-table-column prop="RANGE4_MAX" label="上限" />
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="操作" width="200">
|
<el-table-column label="操作" width="100">
|
||||||
<template v-slot="{ row }">
|
<template v-slot="{ row }">
|
||||||
<el-button
|
<el-button
|
||||||
v-if="buttonJurisdiction.edit"
|
v-if="buttonJurisdiction.edit"
|
||||||
|
|
@ -78,144 +78,14 @@
|
||||||
</template>
|
</template>
|
||||||
</layout-table>
|
</layout-table>
|
||||||
</layout-card>
|
</layout-card>
|
||||||
<el-dialog
|
<threshold-setting-add
|
||||||
v-model="data.addOrEditDialog.visible"
|
v-model:visible="data.addOrEditDialog.visible"
|
||||||
:title="data.addOrEditDialog.type === 'add' ? '添加' : '修改'"
|
v-model:form="data.addOrEditDialog.form"
|
||||||
>
|
:type="data.addOrEditDialog.type"
|
||||||
<el-form
|
:id="MAJORDANGERSOURCE_ID"
|
||||||
ref="addOrEditDialogFormRef"
|
:equipment-type-list="equipmentTypeList"
|
||||||
:rules="data.addOrEditDialog.rules"
|
@get-data="fnResetPagination"
|
||||||
:model="data.addOrEditDialog.form"
|
/>
|
||||||
label-width="110px"
|
|
||||||
>
|
|
||||||
<el-row>
|
|
||||||
<el-col :span="24">
|
|
||||||
<el-form-item
|
|
||||||
label="监测数据类型"
|
|
||||||
prop="MONITORINGDEVICESENSOR_TYPE"
|
|
||||||
>
|
|
||||||
<el-select
|
|
||||||
v-model="data.addOrEditDialog.form.MONITORINGDEVICESENSOR_TYPE"
|
|
||||||
:disabled="data.addOrEditDialog.type === 'edit'"
|
|
||||||
>
|
|
||||||
<el-option
|
|
||||||
v-for="item in data.addOrEditDialog.equipmentTypeList"
|
|
||||||
:key="item.BIANMA"
|
|
||||||
:label="item.NAME"
|
|
||||||
:value="item.BIANMA"
|
|
||||||
/>
|
|
||||||
</el-select>
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
<el-col :span="12">
|
|
||||||
<el-form-item label="量程下限" prop="RANGE_MIN">
|
|
||||||
<el-input-number
|
|
||||||
v-model="data.addOrEditDialog.form.RANGE_MIN"
|
|
||||||
:precision="2"
|
|
||||||
:step="0.01"
|
|
||||||
:mix="0"
|
|
||||||
/>
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
<el-col :span="12">
|
|
||||||
<el-form-item label="量程上限" prop="RANGE_MAX">
|
|
||||||
<el-input-number
|
|
||||||
v-model="data.addOrEditDialog.form.RANGE_MAX"
|
|
||||||
:precision="2"
|
|
||||||
:step="0.01"
|
|
||||||
:mix="0"
|
|
||||||
/>
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
<el-col :span="12">
|
|
||||||
<el-form-item label="一级预警下限" prop="RANGE1_MIN">
|
|
||||||
<el-input-number
|
|
||||||
v-model="data.addOrEditDialog.form.RANGE1_MIN"
|
|
||||||
:precision="2"
|
|
||||||
:step="0.01"
|
|
||||||
:mix="0"
|
|
||||||
/>
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
<el-col :span="12">
|
|
||||||
<el-form-item label="一级预警上限" prop="RANGE1_MAX">
|
|
||||||
<el-input-number
|
|
||||||
v-model="data.addOrEditDialog.form.RANGE1_MAX"
|
|
||||||
:precision="2"
|
|
||||||
:step="0.01"
|
|
||||||
:mix="0"
|
|
||||||
/>
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
<el-col :span="12">
|
|
||||||
<el-form-item label="二级预警下限" prop="RANGE2_MIN">
|
|
||||||
<el-input-number
|
|
||||||
v-model="data.addOrEditDialog.form.RANGE2_MIN"
|
|
||||||
:precision="2"
|
|
||||||
:step="0.01"
|
|
||||||
:mix="0"
|
|
||||||
/>
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
<el-col :span="12">
|
|
||||||
<el-form-item label="二级预警上限" prop="RANGE2_MAX">
|
|
||||||
<el-input-number
|
|
||||||
v-model="data.addOrEditDialog.form.RANGE2_MAX"
|
|
||||||
:precision="2"
|
|
||||||
:step="0.01"
|
|
||||||
:mix="0"
|
|
||||||
/>
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
<el-col :span="12">
|
|
||||||
<el-form-item label="三级预警下限" prop="RANGE3_MIN">
|
|
||||||
<el-input-number
|
|
||||||
v-model="data.addOrEditDialog.form.RANGE3_MIN"
|
|
||||||
:precision="2"
|
|
||||||
:step="0.01"
|
|
||||||
:mix="0"
|
|
||||||
/>
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
<el-col :span="12">
|
|
||||||
<el-form-item label="三级预警上限" prop="RANGE3_MAX">
|
|
||||||
<el-input-number
|
|
||||||
v-model="data.addOrEditDialog.form.RANGE3_MAX"
|
|
||||||
:precision="2"
|
|
||||||
:step="0.01"
|
|
||||||
:mix="0"
|
|
||||||
/>
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
<el-col :span="12">
|
|
||||||
<el-form-item label="四级预警下限" prop="RANGE4_MIN">
|
|
||||||
<el-input-number
|
|
||||||
v-model="data.addOrEditDialog.form.RANGE4_MIN"
|
|
||||||
:precision="2"
|
|
||||||
:step="0.01"
|
|
||||||
:mix="0"
|
|
||||||
/>
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
<el-col :span="12">
|
|
||||||
<el-form-item label="四级预警上限" prop="RANGE4_MAX">
|
|
||||||
<el-input-number
|
|
||||||
v-model="data.addOrEditDialog.form.RANGE4_MAX"
|
|
||||||
:precision="2"
|
|
||||||
:step="0.01"
|
|
||||||
:mix="0"
|
|
||||||
/>
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
</el-row>
|
|
||||||
</el-form>
|
|
||||||
<template #footer>
|
|
||||||
<el-button @click="fnAddOrEditDialogChangeShow">取消</el-button>
|
|
||||||
<el-button type="primary" @click="fnAddOrEditDialogSubmit">
|
|
||||||
确定
|
|
||||||
</el-button>
|
|
||||||
</template>
|
|
||||||
</el-dialog>
|
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
|
@ -225,34 +95,23 @@ import { serialNumber } from "@/assets/js/utils";
|
||||||
import {
|
import {
|
||||||
getDataCollectionThresholdSettingThresholdSettingList,
|
getDataCollectionThresholdSettingThresholdSettingList,
|
||||||
getDataCollectionThresholdSettingThresholdSettingView,
|
getDataCollectionThresholdSettingThresholdSettingView,
|
||||||
setDataCollectionThresholdSettingThresholdSettingAdd,
|
|
||||||
setDataCollectionThresholdSettingThresholdSettingDelete,
|
setDataCollectionThresholdSettingThresholdSettingDelete,
|
||||||
setDataCollectionThresholdSettingThresholdSettingDeleteMultiple,
|
setDataCollectionThresholdSettingThresholdSettingDeleteMultiple,
|
||||||
setDataCollectionThresholdSettingThresholdSettingEdit,
|
|
||||||
} from "@/request/major_hazard_sources";
|
} from "@/request/major_hazard_sources";
|
||||||
import { debounce } from "throttle-debounce";
|
import { debounce } from "throttle-debounce";
|
||||||
import { ElMessage, ElMessageBox } from "element-plus";
|
import { ElMessage, ElMessageBox } from "element-plus";
|
||||||
import { layoutFnButtonJurisdiction } from "@/assets/js/button_jurisdiction.js";
|
import useButtonJurisdiction from "@/assets/js/useButtonJurisdiction.js";
|
||||||
import { useRoute } from "vue-router";
|
import { useRoute } from "vue-router";
|
||||||
import { layoutFnGetEquipmentTypeCorp } from "@/assets/js/data_dictionary.js";
|
import useListData from "@/assets/js/useListData.js";
|
||||||
import CloneDeep from "lodash-es/cloneDeep.js";
|
import ThresholdSettingAdd from "./components/threshold_setting_add.vue";
|
||||||
import useFormValidate from "@/assets/js/useFormValidate.js";
|
import { layoutFnGetEquipmentType } from "@/assets/js/data_dictionary.js";
|
||||||
|
|
||||||
const route = useRoute();
|
const route = useRoute();
|
||||||
const { MAJORDANGERSOURCE_ID } = route.query;
|
const { MAJORDANGERSOURCE_ID } = route.query;
|
||||||
const tableRef = ref(null);
|
|
||||||
const addOrEditDialogFormRef = ref(null);
|
|
||||||
const data = reactive({
|
const data = reactive({
|
||||||
list: [],
|
|
||||||
pagination: {
|
|
||||||
currentPage: 1,
|
|
||||||
pageSize: 10,
|
|
||||||
total: 0,
|
|
||||||
},
|
|
||||||
addOrEditDialog: {
|
addOrEditDialog: {
|
||||||
visible: false,
|
visible: false,
|
||||||
type: "",
|
type: "",
|
||||||
equipmentTypeList: [],
|
|
||||||
form: {
|
form: {
|
||||||
MONITORINGDEVICESENSOR_TYPE: "",
|
MONITORINGDEVICESENSOR_TYPE: "",
|
||||||
RANGE_MIN: 0,
|
RANGE_MIN: 0,
|
||||||
|
|
@ -266,135 +125,36 @@ const data = reactive({
|
||||||
RANGE4_MIN: 0,
|
RANGE4_MIN: 0,
|
||||||
RANGE4_MAX: 0,
|
RANGE4_MAX: 0,
|
||||||
},
|
},
|
||||||
rules: {
|
|
||||||
MONITORINGDEVICESENSOR_TYPE: [
|
|
||||||
{ required: true, message: "监测数据类型不能为空", trigger: "blur" },
|
|
||||||
],
|
|
||||||
RANGE_MIN: [
|
|
||||||
{
|
|
||||||
required: true,
|
|
||||||
pattern:
|
|
||||||
/(^[1-9]([0-9]+)?(\.[0-9]{1,2})?$)|(^(0){1}$)|(^[0-9]\.[0-9]([0-9])?$)/,
|
|
||||||
message: "请输入正确格式,可保留两位小数",
|
|
||||||
trigger: "blur",
|
|
||||||
},
|
|
||||||
],
|
|
||||||
RANGE_MAX: [
|
|
||||||
{
|
|
||||||
required: true,
|
|
||||||
pattern:
|
|
||||||
/(^[1-9]([0-9]+)?(\.[0-9]{1,2})?$)|(^(0){1}$)|(^[0-9]\.[0-9]([0-9])?$)/,
|
|
||||||
message: "请输入正确格式,可保留两位小数",
|
|
||||||
trigger: "blur",
|
|
||||||
},
|
|
||||||
],
|
|
||||||
RANGE1_MIN: [
|
|
||||||
{
|
|
||||||
required: true,
|
|
||||||
pattern:
|
|
||||||
/(^[1-9]([0-9]+)?(\.[0-9]{1,2})?$)|(^(0){1}$)|(^[0-9]\.[0-9]([0-9])?$)/,
|
|
||||||
message: "请输入正确格式,可保留两位小数",
|
|
||||||
trigger: "blur",
|
|
||||||
},
|
|
||||||
],
|
|
||||||
RANGE1_MAX: [
|
|
||||||
{
|
|
||||||
required: true,
|
|
||||||
pattern:
|
|
||||||
/(^[1-9]([0-9]+)?(\.[0-9]{1,2})?$)|(^(0){1}$)|(^[0-9]\.[0-9]([0-9])?$)/,
|
|
||||||
message: "请输入正确格式,可保留两位小数",
|
|
||||||
trigger: "blur",
|
|
||||||
},
|
|
||||||
],
|
|
||||||
RANGE2_MIN: [
|
|
||||||
{
|
|
||||||
required: true,
|
|
||||||
pattern:
|
|
||||||
/(^[1-9]([0-9]+)?(\.[0-9]{1,2})?$)|(^(0){1}$)|(^[0-9]\.[0-9]([0-9])?$)/,
|
|
||||||
message: "请输入正确格式,可保留两位小数",
|
|
||||||
trigger: "blur",
|
|
||||||
},
|
|
||||||
],
|
|
||||||
RANGE2_MAX: [
|
|
||||||
{
|
|
||||||
required: true,
|
|
||||||
pattern:
|
|
||||||
/(^[1-9]([0-9]+)?(\.[0-9]{1,2})?$)|(^(0){1}$)|(^[0-9]\.[0-9]([0-9])?$)/,
|
|
||||||
message: "请输入正确格式,可保留两位小数",
|
|
||||||
trigger: "blur",
|
|
||||||
},
|
|
||||||
],
|
|
||||||
RANGE3_MIN: [
|
|
||||||
{
|
|
||||||
required: true,
|
|
||||||
pattern:
|
|
||||||
/(^[1-9]([0-9]+)?(\.[0-9]{1,2})?$)|(^(0){1}$)|(^[0-9]\.[0-9]([0-9])?$)/,
|
|
||||||
message: "请输入正确格式,可保留两位小数",
|
|
||||||
trigger: "blur",
|
|
||||||
},
|
|
||||||
],
|
|
||||||
RANGE3_MAX: [
|
|
||||||
{
|
|
||||||
required: true,
|
|
||||||
pattern:
|
|
||||||
/(^[1-9]([0-9]+)?(\.[0-9]{1,2})?$)|(^(0){1}$)|(^[0-9]\.[0-9]([0-9])?$)/,
|
|
||||||
message: "请输入正确格式,可保留两位小数",
|
|
||||||
trigger: "blur",
|
|
||||||
},
|
|
||||||
],
|
|
||||||
RANGE4_MIN: [
|
|
||||||
{
|
|
||||||
required: true,
|
|
||||||
pattern:
|
|
||||||
/(^[1-9]([0-9]+)?(\.[0-9]{1,2})?$)|(^(0){1}$)|(^[0-9]\.[0-9]([0-9])?$)/,
|
|
||||||
message: "请输入正确格式,可保留两位小数",
|
|
||||||
trigger: "blur",
|
|
||||||
},
|
|
||||||
],
|
|
||||||
RANGE4_MAX: [
|
|
||||||
{
|
|
||||||
required: true,
|
|
||||||
pattern:
|
|
||||||
/(^[1-9]([0-9]+)?(\.[0-9]{1,2})?$)|(^(0){1}$)|(^[0-9]\.[0-9]([0-9])?$)/,
|
|
||||||
message: "请输入正确格式,可保留两位小数",
|
|
||||||
trigger: "blur",
|
|
||||||
},
|
|
||||||
],
|
|
||||||
},
|
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
const fnGetData = async () => {
|
const equipmentTypeList = ref([]);
|
||||||
const resData = await getDataCollectionThresholdSettingThresholdSettingList({
|
const fnEquipmentTypeListDeduplication = async (list) => {
|
||||||
currentPage: data.pagination.currentPage,
|
const cloneEquipmentTypeList = await layoutFnGetEquipmentType();
|
||||||
showCount: data.pagination.pageSize,
|
for (let i = 0; i < cloneEquipmentTypeList.value.length; i++) {
|
||||||
MAJORDANGERSOURCE_ID,
|
for (let j = 0; j < list.length; j++) {
|
||||||
|
if (
|
||||||
|
cloneEquipmentTypeList.value[i].BIANMA ===
|
||||||
|
list[j].MONITORINGDEVICESENSOR_TYPE
|
||||||
|
) {
|
||||||
|
cloneEquipmentTypeList.value[i] = "";
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
equipmentTypeList.value = cloneEquipmentTypeList.value.filter(Boolean);
|
||||||
|
};
|
||||||
|
const { list, pagination, fnGetData, fnResetPagination, tableRef } =
|
||||||
|
useListData(getDataCollectionThresholdSettingThresholdSettingList, {
|
||||||
|
otherParams: { MAJORDANGERSOURCE_ID },
|
||||||
|
callbackFn: (list) => {
|
||||||
|
fnEquipmentTypeListDeduplication(list);
|
||||||
|
},
|
||||||
});
|
});
|
||||||
data.list = resData.varList;
|
const buttonJurisdiction = await useButtonJurisdiction("majordangersource");
|
||||||
data.pagination.total = resData.page.totalResult;
|
|
||||||
};
|
|
||||||
fnGetData();
|
|
||||||
const buttonJurisdiction = await layoutFnButtonJurisdiction(
|
|
||||||
"majordangersource"
|
|
||||||
);
|
|
||||||
const equipmentTypeList = await layoutFnGetEquipmentTypeCorp();
|
|
||||||
const fnResetPagination = () => {
|
|
||||||
data.pagination = {
|
|
||||||
currentPage: 1,
|
|
||||||
pageSize: 10,
|
|
||||||
total: 0,
|
|
||||||
};
|
|
||||||
tableRef.value.clearSelection();
|
|
||||||
fnGetData();
|
|
||||||
};
|
|
||||||
const fnAddOrEditDialogChangeShow = () => {
|
|
||||||
data.addOrEditDialog.visible = !data.addOrEditDialog.visible;
|
|
||||||
};
|
|
||||||
const fnAddOrEdit = async (MONITORINGDEVICESENSOR_ID, type) => {
|
const fnAddOrEdit = async (MONITORINGDEVICESENSOR_ID, type) => {
|
||||||
fnAddOrEditDialogChangeShow();
|
data.addOrEditDialog.visible = true;
|
||||||
fnEquipmentTypeListDeduplication();
|
|
||||||
data.addOrEditDialog.type = type;
|
|
||||||
await nextTick();
|
await nextTick();
|
||||||
addOrEditDialogFormRef.value.resetFields();
|
data.addOrEditDialog.type = type;
|
||||||
if (type === "edit") {
|
if (type === "edit") {
|
||||||
const resData = await getDataCollectionThresholdSettingThresholdSettingView(
|
const resData = await getDataCollectionThresholdSettingThresholdSettingView(
|
||||||
{ MONITORINGDEVICESENSOR_ID }
|
{ MONITORINGDEVICESENSOR_ID }
|
||||||
|
|
@ -402,43 +162,6 @@ const fnAddOrEdit = async (MONITORINGDEVICESENSOR_ID, type) => {
|
||||||
data.addOrEditDialog.form = resData.pd;
|
data.addOrEditDialog.form = resData.pd;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
const fnEquipmentTypeListDeduplication = () => {
|
|
||||||
const cloneEquipmentTypeList = CloneDeep(equipmentTypeList.value);
|
|
||||||
for (let i = 0; i < cloneEquipmentTypeList.length; i++) {
|
|
||||||
for (let j = 0; j < data.list.length; j++) {
|
|
||||||
if (
|
|
||||||
cloneEquipmentTypeList[i].BIANMA ===
|
|
||||||
data.list[j].MONITORINGDEVICESENSOR_TYPE
|
|
||||||
) {
|
|
||||||
cloneEquipmentTypeList[i] = "";
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
data.addOrEditDialog.equipmentTypeList =
|
|
||||||
cloneEquipmentTypeList.filter(Boolean);
|
|
||||||
};
|
|
||||||
const fnAddOrEditDialogSubmit = debounce(
|
|
||||||
1000,
|
|
||||||
async () => {
|
|
||||||
await useFormValidate(addOrEditDialogFormRef);
|
|
||||||
const { form, type } = data.addOrEditDialog;
|
|
||||||
if (type === "add")
|
|
||||||
await setDataCollectionThresholdSettingThresholdSettingAdd({
|
|
||||||
...form,
|
|
||||||
MAJORDANGERSOURCE_ID,
|
|
||||||
});
|
|
||||||
if (type === "edit")
|
|
||||||
await setDataCollectionThresholdSettingThresholdSettingEdit({
|
|
||||||
...form,
|
|
||||||
MAJORDANGERSOURCE_ID,
|
|
||||||
});
|
|
||||||
fnAddOrEditDialogChangeShow();
|
|
||||||
ElMessage.success("保存成功");
|
|
||||||
fnResetPagination();
|
|
||||||
},
|
|
||||||
{ atBegin: true }
|
|
||||||
);
|
|
||||||
const fnDelete = debounce(
|
const fnDelete = debounce(
|
||||||
1000,
|
1000,
|
||||||
async (MONITORINGDEVICESENSOR_ID) => {
|
async (MONITORINGDEVICESENSOR_ID) => {
|
||||||
|
|
|
||||||
|
|
@ -3,106 +3,98 @@
|
||||||
<el-divider content-position="left">设备信息</el-divider>
|
<el-divider content-position="left">设备信息</el-divider>
|
||||||
<el-descriptions :column="2" border>
|
<el-descriptions :column="2" border>
|
||||||
<el-descriptions-item label="重大危险源名称">
|
<el-descriptions-item label="重大危险源名称">
|
||||||
{{ data.info.MAJORDANGERSOURCE_NAME }}
|
{{ info.MAJORDANGERSOURCE_NAME }}
|
||||||
</el-descriptions-item>
|
</el-descriptions-item>
|
||||||
<el-descriptions-item label="重大危险源编号">
|
<el-descriptions-item label="重大危险源编号">
|
||||||
{{ data.info.MAJORDANGERSOURCE_NUMBER }}
|
{{ info.MAJORDANGERSOURCE_NUMBER }}
|
||||||
</el-descriptions-item>
|
|
||||||
<el-descriptions-item label="重大危险源类型">
|
|
||||||
{{ data.info.MAJORDANGERSOURCE_TYPE_NAME }}
|
|
||||||
</el-descriptions-item>
|
|
||||||
<el-descriptions-item label="申报等级">
|
|
||||||
{{ data.info.DECLARATION_LEVEL_NAME }}
|
|
||||||
</el-descriptions-item>
|
|
||||||
<el-descriptions-item label="投入使用日期">
|
|
||||||
{{ data.info.USE_DATE }}
|
|
||||||
</el-descriptions-item>
|
</el-descriptions-item>
|
||||||
<el-descriptions-item label="重大危险源地址">
|
<el-descriptions-item label="重大危险源地址">
|
||||||
{{ data.info.MAJORDANGERSOURCE_ADDRESS }}
|
{{ info.MAJORDANGERSOURCE_ADDRESS }}
|
||||||
|
</el-descriptions-item>
|
||||||
|
<el-descriptions-item label="重大危险源类型">
|
||||||
|
{{ info.MAJORDANGERSOURCE_TYPE_NAME }}
|
||||||
|
</el-descriptions-item>
|
||||||
|
<el-descriptions-item label="投入使用日期">
|
||||||
|
{{ info.USE_DATE }}
|
||||||
|
</el-descriptions-item>
|
||||||
|
<el-descriptions-item label="申报等级">
|
||||||
|
{{ info.DECLARATION_LEVEL_NAME }}
|
||||||
</el-descriptions-item>
|
</el-descriptions-item>
|
||||||
<el-descriptions-item label="实际储存量">
|
<el-descriptions-item label="实际储存量">
|
||||||
{{ data.info.STORAGE_ACTUAL }}
|
{{ info.STORAGE_ACTUAL }}
|
||||||
</el-descriptions-item>
|
</el-descriptions-item>
|
||||||
<el-descriptions-item label="最大储量">
|
<el-descriptions-item label="最大储量">
|
||||||
{{ data.info.STORAGE_MAX }}
|
{{ info.STORAGE_MAX }}
|
||||||
</el-descriptions-item>
|
</el-descriptions-item>
|
||||||
<el-descriptions-item label="管控措施" :span="2">
|
<el-descriptions-item label="管控措施" :span="2">
|
||||||
{{ data.info.CONTROL_MEASURES }}
|
{{ info.CONTROL_MEASURES }}
|
||||||
</el-descriptions-item>
|
</el-descriptions-item>
|
||||||
<el-descriptions-item label="误报审核人">
|
<el-descriptions-item label="责任人">
|
||||||
{{ data.info.ALARM_REVIEWER_NAME }}
|
{{ info.RESPONSIBLE_PERSON_NAME }}
|
||||||
</el-descriptions-item>
|
</el-descriptions-item>
|
||||||
<el-descriptions-item label="联系方式">
|
<el-descriptions-item label="联系方式">
|
||||||
{{ data.info.ALARM_REVIEWER_PHONE }}
|
{{ info.RESPONSIBLE_PERSON_PHONE }}
|
||||||
</el-descriptions-item>
|
</el-descriptions-item>
|
||||||
<template
|
|
||||||
v-for="item in data.info.responsibleList"
|
|
||||||
:key="item.MAJORDANGERSOURCE_RESPONSIBLE_ID"
|
|
||||||
>
|
|
||||||
<el-descriptions-item label="责任人">
|
|
||||||
{{ item.RESPONSIBLE_USER_NAME }}
|
|
||||||
</el-descriptions-item>
|
|
||||||
<el-descriptions-item label="联系方式">
|
|
||||||
{{ item.RESPONSIBLE_PERSON_PHONE }}
|
|
||||||
</el-descriptions-item>
|
|
||||||
</template>
|
|
||||||
<el-descriptions-item
|
<el-descriptions-item
|
||||||
label="分公司应急预案"
|
label="分公司应急预案"
|
||||||
v-if="data.info.BRANCHEMERGENCYPLAN_FILEPATH"
|
v-if="info.BRANCHEMERGENCYPLAN_FILEPATH"
|
||||||
>
|
>
|
||||||
{{ data.info.BRANCHEMERGENCYPLAN_NAME }}
|
{{ info.BRANCHEMERGENCYPLAN_NAME }}
|
||||||
<el-button
|
<el-button
|
||||||
class="ml"
|
class="ml-10"
|
||||||
type="primary"
|
type="primary"
|
||||||
@click="fnDownloadFile(data.info.MAJORDANGERSOURCE_ID)"
|
@click="
|
||||||
|
useDownloadFile(
|
||||||
|
info.BRANCHEMERGENCYPLAN_FILEPATH,
|
||||||
|
info.BRANCHEMERGENCYPLAN_NAME
|
||||||
|
)
|
||||||
|
"
|
||||||
>
|
>
|
||||||
下载
|
下载
|
||||||
</el-button>
|
</el-button>
|
||||||
</el-descriptions-item>
|
</el-descriptions-item>
|
||||||
<el-descriptions-item label="重大危险源位置">
|
<el-descriptions-item label="重大危险源位置">
|
||||||
<el-button circle @click="data.mapDialogVisible = true">
|
<el-button circle @click="mapDialogVisible = true">
|
||||||
<el-icon>
|
<el-icon>
|
||||||
<Place />
|
<Place />
|
||||||
</el-icon>
|
</el-icon>
|
||||||
</el-button>
|
</el-button>
|
||||||
经度:{{ data.info.MAJORDANGERSOURCE_LONGITUDE }} , 纬度:{{
|
经度:{{ info.MAJORDANGERSOURCE_LONGITUDE }} , 纬度:{{
|
||||||
data.info.MAJORDANGERSOURCE_LATITUDE
|
info.MAJORDANGERSOURCE_LATITUDE
|
||||||
}}
|
}}
|
||||||
</el-descriptions-item>
|
</el-descriptions-item>
|
||||||
</el-descriptions>
|
</el-descriptions>
|
||||||
<el-divider content-position="left">阈值设定信息</el-divider>
|
<el-divider content-position="left">阈值设定信息</el-divider>
|
||||||
<layout-table :data="data.info.SENSORLIST" :show-pagination="false">
|
<layout-table :data="info.SENSORLIST" :show-pagination="false">
|
||||||
<el-table-column label="序号" width="60" type="index">
|
<el-table-column
|
||||||
<el-table-column
|
prop="MONITORINGDEVICESENSOR_TYPE_NAME"
|
||||||
prop="MONITORINGDEVICESENSOR_TYPE_NAME"
|
label="监测数据类型"
|
||||||
label="监测数据类型"
|
/>
|
||||||
/>
|
<el-table-column label="量程">
|
||||||
<el-table-column label="量程">
|
<el-table-column prop="RANGE_MIN" label="下限" />
|
||||||
<el-table-column prop="RANGE_MIN" label="下限" />
|
<el-table-column prop="RANGE_MAX" label="上限" />
|
||||||
<el-table-column prop="RANGE_MAX" label="上限" />
|
</el-table-column>
|
||||||
</el-table-column>
|
<el-table-column label="一级预警">
|
||||||
<el-table-column label="一级预警">
|
<el-table-column prop="RANGE1_MIN" label="下限" />
|
||||||
<el-table-column prop="RANGE1_MIN" label="下限" />
|
<el-table-column prop="RANGE1_MAX" label="上限" />
|
||||||
<el-table-column prop="RANGE1_MAX" label="上限" />
|
</el-table-column>
|
||||||
</el-table-column>
|
<el-table-column label="二级预警">
|
||||||
<el-table-column label="二级预警">
|
<el-table-column prop="RANGE2_MIN" label="下限" />
|
||||||
<el-table-column prop="RANGE2_MIN" label="下限" />
|
<el-table-column prop="RANGE2_MAX" label="上限" />
|
||||||
<el-table-column prop="RANGE2_MAX" label="上限" />
|
</el-table-column>
|
||||||
</el-table-column>
|
<el-table-column label="三级预警">
|
||||||
<el-table-column label="三级预警">
|
<el-table-column prop="RANGE3_MIN" label="下限" />
|
||||||
<el-table-column prop="RANGE3_MIN" label="下限" />
|
<el-table-column prop="RANGE3_MAX" label="上限" />
|
||||||
<el-table-column prop="RANGE3_MAX" label="上限" />
|
</el-table-column>
|
||||||
</el-table-column>
|
<el-table-column label="四级预警">
|
||||||
<el-table-column label="四级预警">
|
<el-table-column prop="RANGE4_MIN" label="下限" />
|
||||||
<el-table-column prop="RANGE4_MIN" label="下限" />
|
<el-table-column prop="RANGE4_MAX" label="上限" />
|
||||||
<el-table-column prop="RANGE4_MAX" label="上限" />
|
|
||||||
</el-table-column>
|
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
</layout-table>
|
</layout-table>
|
||||||
<layout-map
|
<map-dialog
|
||||||
:latitude="data.info.MAJORDANGERSOURCE_LATITUDE"
|
v-model:visible="mapDialogVisible"
|
||||||
:longitude="data.info.MAJORDANGERSOURCE_LONGITUDE"
|
:latitude="info.MAJORDANGERSOURCE_LATITUDE"
|
||||||
v-model:visible="data.mapDialogVisible"
|
:longitude="info.MAJORDANGERSOURCE_LONGITUDE"
|
||||||
type="view"
|
type="view"
|
||||||
/>
|
/>
|
||||||
</layout-card>
|
</layout-card>
|
||||||
|
|
@ -110,32 +102,23 @@
|
||||||
|
|
||||||
<script setup>
|
<script setup>
|
||||||
import { useRoute } from "vue-router";
|
import { useRoute } from "vue-router";
|
||||||
import { reactive } from "vue";
|
import { ref } from "vue";
|
||||||
import { getDataCollectionThresholdSettingView } from "@/request/major_hazard_sources";
|
import { getDataCollectionThresholdSettingView } from "@/request/major_hazard_sources";
|
||||||
import { ElMessageBox } from "element-plus";
|
|
||||||
import { Place } from "@element-plus/icons-vue";
|
import { Place } from "@element-plus/icons-vue";
|
||||||
import LayoutMap from "@/components/map/index.vue";
|
import useDownloadFile from "@/assets/js/useDownloadFile.js";
|
||||||
|
import MapDialog from "../major_hazard_management/components/map.vue";
|
||||||
|
|
||||||
const route = useRoute();
|
const route = useRoute();
|
||||||
const MAJORDANGERSOURCE_ID = route.query.MAJORDANGERSOURCE_ID;
|
const { MAJORDANGERSOURCE_ID } = route.query;
|
||||||
const data = reactive({
|
const info = ref({});
|
||||||
info: {},
|
const mapDialogVisible = ref(false);
|
||||||
mapDialogVisible: false,
|
|
||||||
});
|
|
||||||
const fnGetData = async () => {
|
const fnGetData = async () => {
|
||||||
const resData = await getDataCollectionThresholdSettingView({
|
const resData = await getDataCollectionThresholdSettingView({
|
||||||
MAJORDANGERSOURCE_ID,
|
MAJORDANGERSOURCE_ID,
|
||||||
});
|
});
|
||||||
data.info = resData.pd;
|
info.value = resData.pd;
|
||||||
};
|
};
|
||||||
fnGetData();
|
fnGetData();
|
||||||
const fnDownloadFile = async (MAJORDANGERSOURCE_ID) => {
|
|
||||||
await ElMessageBox.confirm("确定要下载此文件吗?", { type: "warning" });
|
|
||||||
window.open(
|
|
||||||
"/api/majordangersource/download?MAJORDANGERSOURCE_ID=" +
|
|
||||||
MAJORDANGERSOURCE_ID
|
|
||||||
);
|
|
||||||
};
|
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style scoped lang="scss">
|
<style scoped lang="scss">
|
||||||
|
|
|
||||||
|
|
@ -2,31 +2,26 @@
|
||||||
<div>
|
<div>
|
||||||
<el-card>
|
<el-card>
|
||||||
<el-form
|
<el-form
|
||||||
:model="data.searchForm"
|
:model="searchForm"
|
||||||
label-width="90px"
|
label-width="90px"
|
||||||
@submit.prevent="fnResetPagination"
|
@submit.prevent="fnResetPagination"
|
||||||
>
|
>
|
||||||
<el-row>
|
<el-row>
|
||||||
<el-col :span="6">
|
<el-col :span="6">
|
||||||
<el-form-item label="报警级别" prop="ALARM_LEVEL">
|
<el-form-item label="报警级别" prop="ALARM_LEVEL">
|
||||||
<el-select v-model="data.searchForm.ALARM_LEVEL">
|
<el-select v-model="searchForm.ALARM_LEVEL">
|
||||||
<el-option
|
<el-option
|
||||||
v-for="item in [
|
v-for="item in levelList"
|
||||||
{ VALUE: '1', NAME: '一级' },
|
:key="item.ID"
|
||||||
{ VALUE: '2', NAME: '二级' },
|
|
||||||
{ VALUE: '3', NAME: '三级' },
|
|
||||||
{ VALUE: '4', NAME: '四级' },
|
|
||||||
]"
|
|
||||||
:key="item.VALUE"
|
|
||||||
:label="item.NAME"
|
:label="item.NAME"
|
||||||
:value="item.VALUE"
|
:value="item.ID"
|
||||||
/>
|
/>
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="6">
|
<el-col :span="6">
|
||||||
<el-form-item label="处置状态" prop="DISPOSAL_STATUS">
|
<el-form-item label="处置状态" prop="DISPOSAL_STATUS">
|
||||||
<el-select v-model="data.searchForm.DISPOSAL_STATUS">
|
<el-select v-model="searchForm.DISPOSAL_STATUS">
|
||||||
<el-option
|
<el-option
|
||||||
v-for="item in stateList"
|
v-for="item in stateList"
|
||||||
:key="item.ID"
|
:key="item.ID"
|
||||||
|
|
@ -49,45 +44,33 @@
|
||||||
</el-card>
|
</el-card>
|
||||||
<layout-card>
|
<layout-card>
|
||||||
<layout-table
|
<layout-table
|
||||||
:data="data.list"
|
:data="list"
|
||||||
@get-data="fnGetData"
|
@get-data="fnGetData"
|
||||||
v-model:pagination="data.pagination"
|
v-model:pagination="pagination"
|
||||||
>
|
>
|
||||||
<el-table-column label="序号" width="60">
|
<el-table-column label="序号" width="60">
|
||||||
<template #default="{ $index }">
|
<template #default="{ $index }">
|
||||||
{{ serialNumber(data.pagination, $index) }}
|
{{ serialNumber(pagination, $index) }}
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column prop="MAJORDANGERSOURCE_NUMBER" label="危险源编号" />
|
<el-table-column prop="MAJORDANGERSOURCE_NUMBER" label="油罐编号" />
|
||||||
<el-table-column prop="ALARM_TYPE_NAME" label="报警类型" width="80" />
|
<el-table-column prop="ALARM_TYPE_NAME" label="报警类型" />
|
||||||
<el-table-column prop="ALARM_VALUE" label="报警值" />
|
<el-table-column prop="ALARM_VALUE" label="报警值" />
|
||||||
<el-table-column label="报警级别" width="100">
|
<el-table-column label="报警级别">
|
||||||
<template v-slot="{ row }">
|
<template v-slot="{ row }">
|
||||||
<span v-if="row.ALARM_LEVEL === '1'">一级</span>
|
{{ translationStatus(row.ALARM_LEVEL, levelList) }}
|
||||||
<span v-else-if="row.ALARM_LEVEL === '2'">二级</span>
|
|
||||||
<span v-else-if="row.ALARM_LEVEL === '3'">三级</span>
|
|
||||||
<span v-else-if="row.ALARM_LEVEL === '4'">四级</span>
|
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column
|
<el-table-column prop="ALARM_RANGE_MIN" label="报警阈值下限" />
|
||||||
prop="ALARM_RANGE_MIN"
|
<el-table-column prop="ALARM_RANGE_MAX" label="报警阈值上限" />
|
||||||
label="报警阈值下限"
|
|
||||||
width="120"
|
|
||||||
/>
|
|
||||||
<el-table-column
|
|
||||||
prop="ALARM_RANGE_MAX"
|
|
||||||
label="报警阈值上限"
|
|
||||||
width="120"
|
|
||||||
/>
|
|
||||||
<el-table-column label="处置状态">
|
<el-table-column label="处置状态">
|
||||||
<template v-slot="{ row }">
|
<template v-slot="{ row }">
|
||||||
{{ fnTranslationStatus(row.ALARM_LEVEL, stateList) }}
|
{{ translationStatus(row.DISPOSAL_STATUS, stateList) }}
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column prop="DISPOSAL_TIME" label="时间" />
|
|
||||||
<el-table-column prop="DISPOSAL_PERSON" label="处置人" />
|
<el-table-column prop="DISPOSAL_PERSON" label="处置人" />
|
||||||
<el-table-column prop="DISPOSAL_METHOD" label="处置方式" />
|
<el-table-column prop="DISPOSAL_METHOD" label="处置方式" />
|
||||||
<el-table-column label="操作" width="150">
|
<el-table-column label="操作" width="100">
|
||||||
<template v-slot="{ row }">
|
<template v-slot="{ row }">
|
||||||
<el-button
|
<el-button
|
||||||
type="primary"
|
type="primary"
|
||||||
|
|
@ -107,18 +90,6 @@
|
||||||
>
|
>
|
||||||
查看
|
查看
|
||||||
</el-button>
|
</el-button>
|
||||||
<el-button
|
|
||||||
type="primary"
|
|
||||||
text
|
|
||||||
link
|
|
||||||
v-if="
|
|
||||||
row.ALARM_REVIEWER_ID === userStore.getUserInfo.USER_ID &&
|
|
||||||
row.DISPOSAL_STATUS === '-1'
|
|
||||||
"
|
|
||||||
@click="fnFalseAlarmHandling(row.MAJORDANGERSOURCE_DISPOSAL_ID)"
|
|
||||||
>
|
|
||||||
误报处置
|
|
||||||
</el-button>
|
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
</layout-table>
|
</layout-table>
|
||||||
|
|
@ -127,69 +98,29 @@
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup>
|
<script setup>
|
||||||
import { reactive } from "vue";
|
import { translationStatus, serialNumber } from "@/assets/js/utils";
|
||||||
import { fnTranslationStatus, serialNumber } from "@/assets/js/utils";
|
import { getEmergencyHandlingRecordList } from "@/request/major_hazard_sources";
|
||||||
import {
|
|
||||||
getEmergencyHandlingRecordList,
|
|
||||||
setEmergencyHandlingRecordFalseAlarm,
|
|
||||||
} from "@/request/major_hazard_sources";
|
|
||||||
import { useRouter, useRoute } from "vue-router";
|
import { useRouter, useRoute } from "vue-router";
|
||||||
import { useUserStore } from "@/pinia/user.js";
|
import useListData from "@/assets/js/useListData.js";
|
||||||
import { debounce } from "throttle-debounce";
|
|
||||||
import { ElMessage, ElMessageBox } from "element-plus";
|
|
||||||
|
|
||||||
const router = useRouter();
|
const router = useRouter();
|
||||||
const route = useRoute();
|
const route = useRoute();
|
||||||
const { MAJORDANGERSOURCE_ID } = route.query;
|
const { MAJORDANGERSOURCE_ID } = route.query;
|
||||||
const userStore = useUserStore();
|
const levelList = [
|
||||||
|
{ ID: "1", NAME: "一级" },
|
||||||
|
{ ID: "2", NAME: "二级" },
|
||||||
|
{ ID: "3", NAME: "三级" },
|
||||||
|
{ ID: "4", NAME: "四级" },
|
||||||
|
];
|
||||||
const stateList = [
|
const stateList = [
|
||||||
{ ID: "-2", NAME: "误报" },
|
|
||||||
{ ID: "-1", NAME: "未处置" },
|
{ ID: "-1", NAME: "未处置" },
|
||||||
{ ID: "0", NAME: "报警升级" },
|
{ ID: "0", NAME: "报警升级" },
|
||||||
{ ID: "1", NAME: "处置完成" },
|
{ ID: "1", NAME: "处置完成" },
|
||||||
];
|
];
|
||||||
const data = reactive({
|
const { list, searchForm, pagination, fnResetPagination, fnGetData } =
|
||||||
list: [],
|
useListData(getEmergencyHandlingRecordList, {
|
||||||
pagination: {
|
otherParams: { MAJORDANGERSOURCE_ID },
|
||||||
currentPage: 1,
|
|
||||||
pageSize: 10,
|
|
||||||
total: 0,
|
|
||||||
},
|
|
||||||
searchForm: {},
|
|
||||||
});
|
|
||||||
const fnGetData = async () => {
|
|
||||||
const resData = await getEmergencyHandlingRecordList({
|
|
||||||
currentPage: data.pagination.currentPage,
|
|
||||||
showCount: data.pagination.pageSize,
|
|
||||||
...data.searchForm,
|
|
||||||
MAJORDANGERSOURCE_ID,
|
|
||||||
});
|
});
|
||||||
data.list = resData.varList;
|
|
||||||
data.pagination.total = resData.page.totalResult;
|
|
||||||
};
|
|
||||||
fnGetData();
|
|
||||||
const fnResetPagination = () => {
|
|
||||||
data.pagination = {
|
|
||||||
currentPage: 1,
|
|
||||||
pageSize: 10,
|
|
||||||
total: 0,
|
|
||||||
};
|
|
||||||
fnGetData();
|
|
||||||
};
|
|
||||||
const fnFalseAlarmHandling = debounce(
|
|
||||||
1000,
|
|
||||||
async (MAJORDANGERSOURCE_DISPOSAL_ID) => {
|
|
||||||
await ElMessageBox.confirm("确定要将此报警记录设置成误报吗?", {
|
|
||||||
type: "warning",
|
|
||||||
});
|
|
||||||
await setEmergencyHandlingRecordFalseAlarm({
|
|
||||||
MAJORDANGERSOURCE_DISPOSAL_ID,
|
|
||||||
});
|
|
||||||
ElMessage.success("设置成功");
|
|
||||||
fnResetPagination();
|
|
||||||
},
|
|
||||||
{ atBegin: true }
|
|
||||||
);
|
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style scoped></style>
|
<style scoped></style>
|
||||||
|
|
|
||||||
|
|
@ -3,90 +3,87 @@
|
||||||
<el-divider content-position="left">重大危险源信息</el-divider>
|
<el-divider content-position="left">重大危险源信息</el-divider>
|
||||||
<el-descriptions :column="2" border>
|
<el-descriptions :column="2" border>
|
||||||
<el-descriptions-item label="危险源编号">
|
<el-descriptions-item label="危险源编号">
|
||||||
{{ data.info.MAJORDANGERSOURCE_NUMBER }}
|
{{ info.MAJORDANGERSOURCE_NUMBER }}
|
||||||
</el-descriptions-item>
|
</el-descriptions-item>
|
||||||
<el-descriptions-item label="报警类型">
|
<el-descriptions-item label="报警类型">
|
||||||
{{ data.info.ALARM_TYPE_NAME }}
|
{{ info.ALARM_TYPE_NAME }}
|
||||||
</el-descriptions-item>
|
</el-descriptions-item>
|
||||||
<el-descriptions-item label="报警值">
|
<el-descriptions-item label="报警值">
|
||||||
{{ data.info.ALARM_VALUE }}
|
{{ info.ALARM_VALUE }}
|
||||||
</el-descriptions-item>
|
</el-descriptions-item>
|
||||||
<el-descriptions-item label="报警级别">
|
<el-descriptions-item label="报警级别">
|
||||||
<span v-if="data.info.ALARM_LEVEL === '1'">一级</span>
|
{{ translationStatus(info.ALARM_LEVEL, levelList) }}
|
||||||
<span v-else-if="data.info.ALARM_LEVEL === '2'">二级</span>
|
|
||||||
<span v-else-if="data.info.ALARM_LEVEL === '3'">三级</span>
|
|
||||||
<span v-else-if="data.info.ALARM_LEVEL === '4'">四级</span>
|
|
||||||
</el-descriptions-item>
|
</el-descriptions-item>
|
||||||
<el-descriptions-item label="阈值下限">
|
<el-descriptions-item label="阈值下限">
|
||||||
{{ data.info.ALARM_RANGE_MIN }}
|
{{ info.ALARM_RANGE_MIN }}
|
||||||
</el-descriptions-item>
|
</el-descriptions-item>
|
||||||
<el-descriptions-item label="阈值上限">
|
<el-descriptions-item label="阈值上限">
|
||||||
{{ data.info.ALARM_RANGE_MAX }}
|
{{ info.ALARM_RANGE_MAX }}
|
||||||
</el-descriptions-item>
|
</el-descriptions-item>
|
||||||
<el-descriptions-item label="处置人">
|
<el-descriptions-item label="处置人">
|
||||||
{{ data.info.DISPOSAL_PERSON }}
|
{{ info.DISPOSAL_PERSON }}
|
||||||
</el-descriptions-item>
|
</el-descriptions-item>
|
||||||
<el-descriptions-item label="处置方式">
|
<el-descriptions-item label="处置方式">
|
||||||
{{ data.info.DISPOSAL_METHOD }}
|
{{ info.DISPOSAL_METHOD }}
|
||||||
</el-descriptions-item>
|
</el-descriptions-item>
|
||||||
<el-descriptions-item label="处置描述" :span="2">
|
<el-descriptions-item label="处置描述" :span="2">
|
||||||
{{ data.info.DISPOSAL_DESC }}
|
{{ info.DISPOSAL_DESC }}
|
||||||
</el-descriptions-item>
|
</el-descriptions-item>
|
||||||
<el-descriptions-item label="处置前图片" :span="2">
|
<el-descriptions-item label="处置前图片" :span="2">
|
||||||
<img
|
<img
|
||||||
v-viewer
|
v-viewer
|
||||||
v-for="item in data.info.disposalBeforeFile"
|
v-for="item in info.disposalBeforeFile"
|
||||||
:key="item.FILEPATH"
|
:key="item.FILEPATH"
|
||||||
:src="item.url"
|
:src="item.url"
|
||||||
alt=""
|
alt=""
|
||||||
class="ml"
|
class="ml-10"
|
||||||
/>
|
/>
|
||||||
</el-descriptions-item>
|
</el-descriptions-item>
|
||||||
<el-descriptions-item label="处置后图片" :span="2">
|
<el-descriptions-item label="处置后图片" :span="2">
|
||||||
<img
|
<img
|
||||||
v-viewer
|
v-viewer
|
||||||
v-for="item in data.info.disposalAfterFile"
|
v-for="item in info.disposalAfterFile"
|
||||||
:key="item.FILEPATH"
|
:key="item.FILEPATH"
|
||||||
:src="item.url"
|
:src="item.url"
|
||||||
alt=""
|
alt=""
|
||||||
class="ml"
|
class="ml-10"
|
||||||
/>
|
/>
|
||||||
</el-descriptions-item>
|
</el-descriptions-item>
|
||||||
<el-descriptions-item label="处置完成时间" :span="2">
|
<el-descriptions-item label="处置完成时间" :span="2">
|
||||||
{{ data.info.DISPOSAL_TIME_OVER }}
|
{{ info.DISPOSAL_TIME_OVER }}
|
||||||
</el-descriptions-item>
|
</el-descriptions-item>
|
||||||
</el-descriptions>
|
</el-descriptions>
|
||||||
</layout-card>
|
</layout-card>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup>
|
<script setup>
|
||||||
import { reactive } from "vue";
|
import { ref } from "vue";
|
||||||
import { getEmergencyHandlingRecordView } from "@/request/major_hazard_sources.js";
|
import { getEmergencyHandlingRecordView } from "@/request/major_hazard_sources.js";
|
||||||
import { useRoute } from "vue-router";
|
import { useRoute } from "vue-router";
|
||||||
import { fnAddingPrefixToFile } from "@/assets/js/utils.js";
|
import { addingPrefixToFile, translationStatus } from "@/assets/js/utils.js";
|
||||||
|
|
||||||
const route = useRoute();
|
const route = useRoute();
|
||||||
const { MAJORDANGERSOURCE_DISPOSAL_ID } = route.query;
|
const { MAJORDANGERSOURCE_DISPOSAL_ID } = route.query;
|
||||||
const data = reactive({
|
const levelList = [
|
||||||
info: {},
|
{ ID: "1", NAME: "一级" },
|
||||||
});
|
{ ID: "2", NAME: "二级" },
|
||||||
|
{ ID: "3", NAME: "三级" },
|
||||||
|
{ ID: "4", NAME: "四级" },
|
||||||
|
];
|
||||||
|
const info = ref({});
|
||||||
const fnGetData = async () => {
|
const fnGetData = async () => {
|
||||||
const resData = await getEmergencyHandlingRecordView({
|
const resData = await getEmergencyHandlingRecordView({
|
||||||
MAJORDANGERSOURCE_DISPOSAL_ID,
|
MAJORDANGERSOURCE_DISPOSAL_ID,
|
||||||
});
|
});
|
||||||
data.info = resData.pd;
|
info.value = resData.pd;
|
||||||
data.info.disposalBeforeFile = fnAddingPrefixToFile(
|
info.value.disposalBeforeFile = addingPrefixToFile(
|
||||||
resData.pd.disposalBeforeFile
|
resData.pd.disposalBeforeFile
|
||||||
);
|
);
|
||||||
data.info.disposalAfterFile = fnAddingPrefixToFile(
|
info.value.disposalAfterFile = addingPrefixToFile(
|
||||||
resData.pd.disposalAfterFile
|
resData.pd.disposalAfterFile
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
fnGetData();
|
fnGetData();
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style lang="scss" scoped>
|
<style lang="scss" scoped></style>
|
||||||
.ml:first-child {
|
|
||||||
margin-left: 0;
|
|
||||||
}
|
|
||||||
</style>
|
|
||||||
|
|
|
||||||
|
|
@ -1,74 +1,94 @@
|
||||||
<template>
|
<template>
|
||||||
<layout-card>
|
<div>
|
||||||
<layout-table
|
<el-card>
|
||||||
:data="data.list"
|
<el-form
|
||||||
@get-data="fnGetData"
|
:model="searchForm"
|
||||||
v-model:pagination="data.pagination"
|
label-width="80px"
|
||||||
>
|
@submit.prevent="fnResetPagination"
|
||||||
<el-table-column label="序号" width="60">
|
>
|
||||||
<template #default="{ $index }">
|
<el-row>
|
||||||
{{ serialNumber(data.pagination, $index) }}
|
<el-col :span="6">
|
||||||
</template>
|
<el-form-item
|
||||||
</el-table-column>
|
label="重大危险源名称"
|
||||||
<el-table-column prop="MAJORDANGERSOURCE_NAME" label="重大危险源名称" />
|
prop="MAJORDANGERSOURCE_NAME"
|
||||||
<el-table-column
|
label-width="130px"
|
||||||
prop="MAJORDANGERSOURCE_TYPE_NAME"
|
>
|
||||||
label="重大危险源类型"
|
<el-input v-model="searchForm.MAJORDANGERSOURCE_NAME" />
|
||||||
/>
|
</el-form-item>
|
||||||
<el-table-column
|
</el-col>
|
||||||
prop="MAJORDANGERSOURCE_ADDRESS"
|
<el-col :span="6">
|
||||||
label="重大危险源地址"
|
<el-form-item label="责任人" prop="RESPONSIBLE_PERSON_NAME">
|
||||||
/>
|
<el-input v-model="searchForm.RESPONSIBLE_PERSON_NAME" />
|
||||||
<el-table-column prop="USER_NAME" label="变更人" />
|
</el-form-item>
|
||||||
<el-table-column prop="CREATTIME" label="变更时间" />
|
</el-col>
|
||||||
<el-table-column label="操作" width="80">
|
<el-col :span="6">
|
||||||
<template v-slot="{ row }">
|
<el-form-item label-width="10px">
|
||||||
<el-button
|
<el-button type="primary" native-type="submit">搜索</el-button>
|
||||||
type="primary"
|
<el-button native-type="reset" @click="fnResetPagination">
|
||||||
text
|
重置
|
||||||
link
|
</el-button>
|
||||||
@click="
|
</el-form-item>
|
||||||
router.push({
|
</el-col>
|
||||||
path: '/major_hazard_sources/major_hazard_management/change_record/view',
|
</el-row>
|
||||||
query: { CREATTIME: row.CREATTIME, MAJORDANGERSOURCE_ID },
|
</el-form>
|
||||||
})
|
</el-card>
|
||||||
"
|
<layout-card>
|
||||||
>
|
<layout-table
|
||||||
查看
|
:data="list"
|
||||||
</el-button>
|
@get-data="fnGetData"
|
||||||
</template>
|
v-model:pagination="pagination"
|
||||||
</el-table-column>
|
>
|
||||||
</layout-table>
|
<el-table-column label="序号" width="60">
|
||||||
</layout-card>
|
<template #default="{ $index }">
|
||||||
|
{{ serialNumber(pagination, $index) }}
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column prop="MAJORDANGERSOURCE_NAME" label="重大危险源名称" />
|
||||||
|
<el-table-column
|
||||||
|
prop="MAJORDANGERSOURCE_TYPE_NAME"
|
||||||
|
label="重大危险源类型"
|
||||||
|
/>
|
||||||
|
<el-table-column
|
||||||
|
prop="MAJORDANGERSOURCE_ADDRESS"
|
||||||
|
label="重大危险源地址"
|
||||||
|
/>
|
||||||
|
<el-table-column prop="USER_NAME" label="变更人" />
|
||||||
|
<el-table-column prop="CREATTIME" label="变更时间" />
|
||||||
|
<el-table-column label="操作" width="80">
|
||||||
|
<template v-slot="{ row }">
|
||||||
|
<el-button
|
||||||
|
type="primary"
|
||||||
|
text
|
||||||
|
link
|
||||||
|
@click="
|
||||||
|
router.push({
|
||||||
|
path: '/major_hazard_sources/major_hazard_management/change_record/view',
|
||||||
|
query: { CREATTIME: row.CREATTIME, MAJORDANGERSOURCE_ID },
|
||||||
|
})
|
||||||
|
"
|
||||||
|
>
|
||||||
|
查看
|
||||||
|
</el-button>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
</layout-table>
|
||||||
|
</layout-card>
|
||||||
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup>
|
<script setup>
|
||||||
import { reactive } from "vue";
|
|
||||||
import { serialNumber } from "@/assets/js/utils";
|
import { serialNumber } from "@/assets/js/utils";
|
||||||
import { getMajorHazardManagementChangeRecordList } from "@/request/major_hazard_sources";
|
import { getMajorHazardManagementChangeRecordList } from "@/request/major_hazard_sources";
|
||||||
import { useRouter, useRoute } from "vue-router";
|
import { useRouter, useRoute } from "vue-router";
|
||||||
|
import useListData from "@/assets/js/useListData.js";
|
||||||
|
|
||||||
const router = useRouter();
|
const router = useRouter();
|
||||||
const route = useRoute();
|
const route = useRoute();
|
||||||
const { MAJORDANGERSOURCE_ID } = route.query;
|
const { MAJORDANGERSOURCE_ID } = route.query;
|
||||||
const data = reactive({
|
const { list, pagination, searchForm, fnGetData, fnResetPagination } =
|
||||||
list: [],
|
useListData(getMajorHazardManagementChangeRecordList, {
|
||||||
pagination: {
|
otherParams: { MAJORDANGERSOURCE_ID },
|
||||||
currentPage: 1,
|
|
||||||
pageSize: 10,
|
|
||||||
total: 0,
|
|
||||||
},
|
|
||||||
});
|
|
||||||
const fnGetData = async () => {
|
|
||||||
const resData = await getMajorHazardManagementChangeRecordList({
|
|
||||||
currentPage: data.pagination.currentPage,
|
|
||||||
showCount: data.pagination.pageSize,
|
|
||||||
MAJORDANGERSOURCE_ID,
|
|
||||||
});
|
});
|
||||||
data.list = resData.varList;
|
|
||||||
data.pagination.total = resData.page.totalResult;
|
|
||||||
};
|
|
||||||
fnGetData();
|
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style scoped></style>
|
<style scoped></style>
|
||||||
|
|
|
||||||
|
|
@ -6,7 +6,7 @@
|
||||||
<span class="title">变更时间</span>
|
<span class="title">变更时间</span>
|
||||||
<span>{{ data.info.OPERATTIME }}</span>
|
<span>{{ data.info.OPERATTIME }}</span>
|
||||||
</div>
|
</div>
|
||||||
<table class="mt">
|
<table class="mt-10">
|
||||||
<tr>
|
<tr>
|
||||||
<td class="title" />
|
<td class="title" />
|
||||||
<td
|
<td
|
||||||
|
|
@ -72,7 +72,11 @@
|
||||||
经度:{{ data.info.MAJORDANGERSOURCE_LONGITUDE }} , 纬度:{{
|
经度:{{ data.info.MAJORDANGERSOURCE_LONGITUDE }} , 纬度:{{
|
||||||
data.info.MAJORDANGERSOURCE_LATITUDE
|
data.info.MAJORDANGERSOURCE_LATITUDE
|
||||||
}}
|
}}
|
||||||
<el-button class="ml" circle @click="data.mapDialogVisible = true">
|
<el-button
|
||||||
|
class="ml-10"
|
||||||
|
circle
|
||||||
|
@click="data.mapDialogVisible = true"
|
||||||
|
>
|
||||||
<el-icon>
|
<el-icon>
|
||||||
<Place />
|
<Place />
|
||||||
</el-icon>
|
</el-icon>
|
||||||
|
|
@ -85,7 +89,7 @@
|
||||||
data.oldInfo.MAJORDANGERSOURCE_LATITUDE
|
data.oldInfo.MAJORDANGERSOURCE_LATITUDE
|
||||||
}}
|
}}
|
||||||
<el-button
|
<el-button
|
||||||
class="ml"
|
class="ml-10"
|
||||||
circle
|
circle
|
||||||
@click="data.oldMapDialogVisible = true"
|
@click="data.oldMapDialogVisible = true"
|
||||||
>
|
>
|
||||||
|
|
@ -201,9 +205,14 @@
|
||||||
{{ data.info.BRANCHEMERGENCYPLAN_NAME }}
|
{{ data.info.BRANCHEMERGENCYPLAN_NAME }}
|
||||||
</span>
|
</span>
|
||||||
<el-button
|
<el-button
|
||||||
class="ml"
|
class="ml-10"
|
||||||
type="primary"
|
type="primary"
|
||||||
@click="fnDownloadFile(data.info.MAJORDANGERSOURCELOG_ID)"
|
@click="
|
||||||
|
useDownloadFile(
|
||||||
|
data.info.BRANCHEMERGENCYPLAN_FILEPATH,
|
||||||
|
data.info.BRANCHEMERGENCYPLAN_NAME
|
||||||
|
)
|
||||||
|
"
|
||||||
>
|
>
|
||||||
下载
|
下载
|
||||||
</el-button>
|
</el-button>
|
||||||
|
|
@ -212,25 +221,30 @@
|
||||||
<td>
|
<td>
|
||||||
<span>{{ data.oldInfo.BRANCHEMERGENCYPLAN_NAME }}</span>
|
<span>{{ data.oldInfo.BRANCHEMERGENCYPLAN_NAME }}</span>
|
||||||
<el-button
|
<el-button
|
||||||
class="ml"
|
class="ml-10"
|
||||||
type="primary"
|
type="primary"
|
||||||
@click="fnDownloadFile(data.oldInfo.MAJORDANGERSOURCELOG_ID)"
|
@click="
|
||||||
|
useDownloadFile(
|
||||||
|
data.oldInfo.BRANCHEMERGENCYPLAN_FILEPATH,
|
||||||
|
data.oldInfo.BRANCHEMERGENCYPLAN_NAME
|
||||||
|
)
|
||||||
|
"
|
||||||
>
|
>
|
||||||
下载
|
下载
|
||||||
</el-button>
|
</el-button>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
<layout-map
|
<map-dialog
|
||||||
|
v-model:visible="data.mapDialogVisible"
|
||||||
:latitude="data.info.MAJORDANGERSOURCE_LATITUDE"
|
:latitude="data.info.MAJORDANGERSOURCE_LATITUDE"
|
||||||
:longitude="data.info.MAJORDANGERSOURCE_LONGITUDE"
|
:longitude="data.info.MAJORDANGERSOURCE_LONGITUDE"
|
||||||
v-model:visible="data.mapDialogVisible"
|
|
||||||
type="view"
|
type="view"
|
||||||
/>
|
/>
|
||||||
<layout-map
|
<map-dialog
|
||||||
|
v-model:visible="data.oldMapDialogVisible"
|
||||||
:latitude="data.oldInfo.MAJORDANGERSOURCE_LATITUDE"
|
:latitude="data.oldInfo.MAJORDANGERSOURCE_LATITUDE"
|
||||||
:longitude="data.oldInfo.MAJORDANGERSOURCE_LONGITUDE"
|
:longitude="data.oldInfo.MAJORDANGERSOURCE_LONGITUDE"
|
||||||
v-model:visible="data.oldMapDialogVisible"
|
|
||||||
type="view"
|
type="view"
|
||||||
/>
|
/>
|
||||||
</layout-card>
|
</layout-card>
|
||||||
|
|
@ -238,11 +252,11 @@
|
||||||
|
|
||||||
<script setup>
|
<script setup>
|
||||||
import { reactive } from "vue";
|
import { reactive } from "vue";
|
||||||
import { ElMessageBox } from "element-plus";
|
|
||||||
import { getMajorHazardManagementChangeRecordView } from "@/request/major_hazard_sources.js";
|
import { getMajorHazardManagementChangeRecordView } from "@/request/major_hazard_sources.js";
|
||||||
import { useRoute } from "vue-router";
|
import { useRoute } from "vue-router";
|
||||||
import LayoutMap from "@/components/map/index.vue";
|
|
||||||
import { Place } from "@element-plus/icons-vue";
|
import { Place } from "@element-plus/icons-vue";
|
||||||
|
import useDownloadFile from "@/assets/js/useDownloadFile.js";
|
||||||
|
import MapDialog from "@/views/major_hazard_sources/major_hazard_management/components/map.vue";
|
||||||
|
|
||||||
const route = useRoute();
|
const route = useRoute();
|
||||||
const { MAJORDANGERSOURCE_ID, CREATTIME } = route.query;
|
const { MAJORDANGERSOURCE_ID, CREATTIME } = route.query;
|
||||||
|
|
@ -263,13 +277,6 @@ const fnGetData = async () => {
|
||||||
if (resData.varList.length > 1) data.oldInfo = resData.varList[1];
|
if (resData.varList.length > 1) data.oldInfo = resData.varList[1];
|
||||||
};
|
};
|
||||||
fnGetData();
|
fnGetData();
|
||||||
const fnDownloadFile = async (MAJORDANGERSOURCELOG_ID) => {
|
|
||||||
await ElMessageBox.confirm("确定要下载此文件吗?", { type: "warning" });
|
|
||||||
window.open(
|
|
||||||
"/api/majordangersourcelog/download?MAJORDANGERSOURCELOG_ID=" +
|
|
||||||
MAJORDANGERSOURCELOG_ID
|
|
||||||
);
|
|
||||||
};
|
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style lang="scss" scoped>
|
<style lang="scss" scoped>
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,95 @@
|
||||||
|
<template>
|
||||||
|
<el-dialog
|
||||||
|
v-model="visible"
|
||||||
|
:title="type === 'edit' ? '修改' : '新增'"
|
||||||
|
:on-close="fnClose"
|
||||||
|
>
|
||||||
|
<el-form ref="formRef" :model="form" :rules="rules" label-width="120px">
|
||||||
|
<el-form-item label="监测类型名称" prop="NAME">
|
||||||
|
<el-input v-model="form.NAME" />
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="排序" prop="ORDER_BY">
|
||||||
|
<el-input v-model.number="form.ORDER_BY" />
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="备注" prop="BZ">
|
||||||
|
<el-input
|
||||||
|
v-model="form.BZ"
|
||||||
|
type="textarea"
|
||||||
|
:autosize="{ minRows: 3 }"
|
||||||
|
/>
|
||||||
|
</el-form-item>
|
||||||
|
</el-form>
|
||||||
|
<template #footer>
|
||||||
|
<el-button @click="fnClose">取消</el-button>
|
||||||
|
<el-button type="primary" @click="fnSubmit"> 确定 </el-button>
|
||||||
|
</template>
|
||||||
|
</el-dialog>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script setup>
|
||||||
|
import { ref } from "vue";
|
||||||
|
import { useVModels } from "@vueuse/core";
|
||||||
|
import { debounce } from "throttle-debounce";
|
||||||
|
import useFormValidate from "@/assets/js/useFormValidate.js";
|
||||||
|
import {
|
||||||
|
setMonitoringTypeManagementAdd,
|
||||||
|
setMonitoringTypeManagementEdit,
|
||||||
|
} from "@/request/major_hazard_sources.js";
|
||||||
|
import { ElMessage } from "element-plus";
|
||||||
|
|
||||||
|
const props = defineProps({
|
||||||
|
visible: {
|
||||||
|
type: Boolean,
|
||||||
|
required: true,
|
||||||
|
default: false,
|
||||||
|
},
|
||||||
|
form: {
|
||||||
|
type: Object,
|
||||||
|
required: true,
|
||||||
|
default: () => ({}),
|
||||||
|
},
|
||||||
|
type: {
|
||||||
|
type: String,
|
||||||
|
required: true,
|
||||||
|
default: "",
|
||||||
|
},
|
||||||
|
});
|
||||||
|
const emits = defineEmits(["update:visible", "update:form", "get-data"]);
|
||||||
|
const { visible, form } = useVModels(props, emits);
|
||||||
|
const rules = {
|
||||||
|
NAME: [
|
||||||
|
{ required: true, message: "字典名称不能为空", trigger: "change" },
|
||||||
|
{ min: 2, max: 30, message: "长度在 2 到 30 个字符", trigger: "blur" },
|
||||||
|
],
|
||||||
|
ORDER_BY: [
|
||||||
|
{ required: true, message: "字典序号名称不能为空", trigger: "change" },
|
||||||
|
{ type: "number", message: "字典序号必须为数字" },
|
||||||
|
],
|
||||||
|
};
|
||||||
|
const formRef = ref(null);
|
||||||
|
const fnClose = () => {
|
||||||
|
formRef.value.resetFields();
|
||||||
|
visible.value = false;
|
||||||
|
};
|
||||||
|
const fnSubmit = debounce(
|
||||||
|
1000,
|
||||||
|
async () => {
|
||||||
|
await useFormValidate(formRef);
|
||||||
|
const params = {
|
||||||
|
...form.value,
|
||||||
|
BIANMA: "MONITORINGEQUIPMENTTYPE",
|
||||||
|
YNDEL: "no",
|
||||||
|
PARENT_ID: "6a724d36c3ad416fad22049d932c1987",
|
||||||
|
};
|
||||||
|
props.type === "add"
|
||||||
|
? await setMonitoringTypeManagementAdd(params)
|
||||||
|
: await setMonitoringTypeManagementEdit(params);
|
||||||
|
ElMessage.success("保存成功");
|
||||||
|
fnClose();
|
||||||
|
emits("get-data");
|
||||||
|
},
|
||||||
|
{ atBegin: true }
|
||||||
|
);
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style scoped lang="scss"></style>
|
||||||
|
|
@ -2,14 +2,14 @@
|
||||||
<div>
|
<div>
|
||||||
<el-card>
|
<el-card>
|
||||||
<el-form
|
<el-form
|
||||||
:model="data.searchForm"
|
:model="searchForm"
|
||||||
label-width="100px"
|
label-width="100px"
|
||||||
@submit.prevent="fnResetPagination"
|
@submit.prevent="fnResetPagination"
|
||||||
>
|
>
|
||||||
<el-row>
|
<el-row>
|
||||||
<el-col :span="6">
|
<el-col :span="6">
|
||||||
<el-form-item label="监测类型名称" prop="KEYWORDS">
|
<el-form-item label="监测类型名称" prop="KEYWORDS">
|
||||||
<el-input v-model="data.searchForm.KEYWORDS" />
|
<el-input v-model="searchForm.KEYWORDS" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="6">
|
<el-col :span="6">
|
||||||
|
|
@ -27,14 +27,14 @@
|
||||||
<layout-table
|
<layout-table
|
||||||
ref="tableRef"
|
ref="tableRef"
|
||||||
row-key="DICTIONARIES_ID"
|
row-key="DICTIONARIES_ID"
|
||||||
:data="data.list"
|
:data="list"
|
||||||
@get-data="fnGetData"
|
@get-data="fnGetData"
|
||||||
v-model:pagination="data.pagination"
|
v-model:pagination="pagination"
|
||||||
>
|
>
|
||||||
<el-table-column reserve-selection type="selection" width="55" />
|
<el-table-column reserve-selection type="selection" width="55" />
|
||||||
<el-table-column label="序号" width="60">
|
<el-table-column label="序号" width="60">
|
||||||
<template #default="{ $index }">
|
<template #default="{ $index }">
|
||||||
{{ serialNumber(data.pagination, $index) }}
|
{{ serialNumber(pagination, $index) }}
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column prop="NAME" label="监测类型名称" />
|
<el-table-column prop="NAME" label="监测类型名称" />
|
||||||
|
|
@ -80,66 +80,35 @@
|
||||||
</template>
|
</template>
|
||||||
</layout-table>
|
</layout-table>
|
||||||
</layout-card>
|
</layout-card>
|
||||||
<el-dialog
|
<add
|
||||||
v-model="data.addOrEditDialog.visible"
|
v-model:visible="data.addOrEditDialog.visible"
|
||||||
:title="data.addOrEditDialog.type === 'edit' ? '修改' : '新增'"
|
v-model:form="data.addOrEditDialog.form"
|
||||||
>
|
:type="data.addOrEditDialog.type"
|
||||||
<el-form
|
@get-data="fnResetPagination"
|
||||||
ref="addOrEditDialogFormRef"
|
/>
|
||||||
:model="data.addOrEditDialog.form"
|
|
||||||
:rules="data.addOrEditDialog.rules"
|
|
||||||
label-width="120px"
|
|
||||||
>
|
|
||||||
<el-form-item label="监测类型名称" prop="NAME">
|
|
||||||
<el-input v-model="data.addOrEditDialog.form.NAME" />
|
|
||||||
</el-form-item>
|
|
||||||
<el-form-item label="排序" prop="ORDER_BY">
|
|
||||||
<el-input v-model.number="data.addOrEditDialog.form.ORDER_BY" />
|
|
||||||
</el-form-item>
|
|
||||||
<el-form-item label="备注" prop="BZ">
|
|
||||||
<el-input
|
|
||||||
v-model="data.addOrEditDialog.form.BZ"
|
|
||||||
type="textarea"
|
|
||||||
autosize
|
|
||||||
/>
|
|
||||||
</el-form-item>
|
|
||||||
</el-form>
|
|
||||||
<template #footer>
|
|
||||||
<el-button @click="fnAddOrEditDialogChangeShow">取消</el-button>
|
|
||||||
<el-button type="primary" @click="fnAddOrEditDialogSubmit">
|
|
||||||
确定
|
|
||||||
</el-button>
|
|
||||||
</template>
|
|
||||||
</el-dialog>
|
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup>
|
<script setup>
|
||||||
import { nextTick, reactive, ref } from "vue";
|
import { nextTick, reactive } from "vue";
|
||||||
import { serialNumber } from "@/assets/js/utils";
|
import { serialNumber } from "@/assets/js/utils";
|
||||||
import {
|
import {
|
||||||
getMonitoringTypeManagementList,
|
getMonitoringTypeManagementList,
|
||||||
setMonitoringTypeManagementAdd,
|
|
||||||
setMonitoringTypeManagementDelete,
|
setMonitoringTypeManagementDelete,
|
||||||
setMonitoringTypeManagementDeleteMultiple,
|
setMonitoringTypeManagementDeleteMultiple,
|
||||||
setMonitoringTypeManagementEdit,
|
|
||||||
} from "@/request/major_hazard_sources";
|
} from "@/request/major_hazard_sources";
|
||||||
import { layoutFnButtonJurisdiction } from "@/assets/js/button_jurisdiction";
|
import useButtonJurisdiction from "@/assets/js/useButtonJurisdiction.js";
|
||||||
import { debounce } from "throttle-debounce";
|
import { debounce } from "throttle-debounce";
|
||||||
import { ElMessage, ElMessageBox } from "element-plus";
|
import { ElMessage, ElMessageBox } from "element-plus";
|
||||||
import { cloneDeep } from "lodash-es";
|
import { cloneDeep } from "lodash-es";
|
||||||
import useFormValidate from "@/assets/js/useFormValidate.js";
|
import useListData from "@/assets/js/useListData.js";
|
||||||
|
import Add from "./components/add.vue";
|
||||||
|
|
||||||
const tableRef = ref(null);
|
const { list, searchForm, pagination, fnGetData, fnResetPagination, tableRef } =
|
||||||
const addOrEditDialogFormRef = ref(null);
|
useListData(getMonitoringTypeManagementList, {
|
||||||
|
otherParams: { DICTIONARIES_ID: "6a724d36c3ad416fad22049d932c1987" },
|
||||||
|
});
|
||||||
const data = reactive({
|
const data = reactive({
|
||||||
list: [],
|
|
||||||
pagination: {
|
|
||||||
currentPage: 1,
|
|
||||||
pageSize: 10,
|
|
||||||
total: 0,
|
|
||||||
},
|
|
||||||
searchForm: {},
|
|
||||||
addOrEditDialog: {
|
addOrEditDialog: {
|
||||||
visible: false,
|
visible: false,
|
||||||
type: "",
|
type: "",
|
||||||
|
|
@ -148,39 +117,9 @@ const data = reactive({
|
||||||
ORDER_BY: "",
|
ORDER_BY: "",
|
||||||
BZ: "",
|
BZ: "",
|
||||||
},
|
},
|
||||||
rules: {
|
|
||||||
NAME: [
|
|
||||||
{ required: true, message: "字典名称不能为空", trigger: "change" },
|
|
||||||
{ min: 2, max: 30, message: "长度在 2 到 30 个字符", trigger: "blur" },
|
|
||||||
],
|
|
||||||
ORDER_BY: [
|
|
||||||
{ required: true, message: "字典序号名称不能为空", trigger: "change" },
|
|
||||||
{ type: "number", message: "字典序号必须为数字" },
|
|
||||||
],
|
|
||||||
},
|
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
const fnGetData = async () => {
|
const buttonJurisdiction = await useButtonJurisdiction("dictionaries");
|
||||||
const resData = await getMonitoringTypeManagementList({
|
|
||||||
currentPage: data.pagination.currentPage,
|
|
||||||
showCount: data.pagination.pageSize,
|
|
||||||
...data.searchForm,
|
|
||||||
DICTIONARIES_ID: "6a724d36c3ad416fad22049d932c1987",
|
|
||||||
});
|
|
||||||
data.list = resData.varList;
|
|
||||||
data.pagination.total = resData.page.totalResult;
|
|
||||||
};
|
|
||||||
fnGetData();
|
|
||||||
const buttonJurisdiction = await layoutFnButtonJurisdiction("dictionaries");
|
|
||||||
const fnResetPagination = () => {
|
|
||||||
data.pagination = {
|
|
||||||
currentPage: 1,
|
|
||||||
pageSize: 10,
|
|
||||||
total: 0,
|
|
||||||
};
|
|
||||||
tableRef.value.clearSelection();
|
|
||||||
fnGetData();
|
|
||||||
};
|
|
||||||
const fnDelete = debounce(
|
const fnDelete = debounce(
|
||||||
1000,
|
1000,
|
||||||
async (DICTIONARIES_ID) => {
|
async (DICTIONARIES_ID) => {
|
||||||
|
|
@ -209,35 +148,12 @@ const fnDeleteAll = debounce(
|
||||||
},
|
},
|
||||||
{ atBegin: true }
|
{ atBegin: true }
|
||||||
);
|
);
|
||||||
const fnAddOrEditDialogChangeShow = () => {
|
|
||||||
data.addOrEditDialog.visible = !data.addOrEditDialog.visible;
|
|
||||||
};
|
|
||||||
const fnAddOrEdit = async (row, type) => {
|
const fnAddOrEdit = async (row, type) => {
|
||||||
data.addOrEditDialog.type = type;
|
data.addOrEditDialog.visible = true;
|
||||||
fnAddOrEditDialogChangeShow();
|
|
||||||
await nextTick();
|
await nextTick();
|
||||||
addOrEditDialogFormRef.value.resetFields();
|
data.addOrEditDialog.type = type;
|
||||||
if (type === "edit") data.addOrEditDialog.form = cloneDeep(row);
|
if (type === "edit") data.addOrEditDialog.form = cloneDeep(row);
|
||||||
};
|
};
|
||||||
const fnAddOrEditDialogSubmit = debounce(
|
|
||||||
1000,
|
|
||||||
async () => {
|
|
||||||
await useFormValidate(addOrEditDialogFormRef);
|
|
||||||
const { type, form } = data.addOrEditDialog;
|
|
||||||
const params = {
|
|
||||||
...form,
|
|
||||||
BIANMA: "MONITORINGEQUIPMENTTYPE",
|
|
||||||
YNDEL: "no",
|
|
||||||
PARENT_ID: "6a724d36c3ad416fad22049d932c1987",
|
|
||||||
};
|
|
||||||
if (type === "add") await setMonitoringTypeManagementAdd(params);
|
|
||||||
if (type === "edit") await setMonitoringTypeManagementEdit(params);
|
|
||||||
ElMessage.success("保存成功");
|
|
||||||
fnAddOrEditDialogChangeShow();
|
|
||||||
fnResetPagination();
|
|
||||||
},
|
|
||||||
{ atBegin: true }
|
|
||||||
);
|
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style scoped></style>
|
<style scoped></style>
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,196 @@
|
||||||
|
<template>
|
||||||
|
<el-dialog v-model="visible" title="应急处置" :on-close="fnClose">
|
||||||
|
<el-form ref="formRef" :rules="rules" :model="form" label-width="110px">
|
||||||
|
<el-row :gutter="20">
|
||||||
|
<el-col :span="12">
|
||||||
|
<el-form-item label="储罐编号" prop="MAJORDANGERSOURCE_NUMBER">
|
||||||
|
<el-input :model-value="info.MAJORDANGERSOURCE_NUMBER" disabled />
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="12">
|
||||||
|
<el-form-item label="报警类型" prop="ALARM_TYPE">
|
||||||
|
<el-select v-model="form.ALARM_TYPE" disabled>
|
||||||
|
<el-option
|
||||||
|
v-for="item in equipmentTypeList"
|
||||||
|
:key="item.BIANMA"
|
||||||
|
:label="item.NAME"
|
||||||
|
:value="item.BIANMA"
|
||||||
|
/>
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="12">
|
||||||
|
<el-form-item label="报警级别" prop="ALARM_LEVEL">
|
||||||
|
<el-select v-model="form.ALARM_LEVEL" disabled>
|
||||||
|
<el-option
|
||||||
|
v-for="item in equipmentLevelList"
|
||||||
|
:key="item.VALUE"
|
||||||
|
:label="item.NAME"
|
||||||
|
:value="item.VALUE"
|
||||||
|
/>
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="12">
|
||||||
|
<el-form-item label="报警值" prop="ALARM_VALUE">
|
||||||
|
<el-input v-model="form.ALARM_VALUE" disabled />
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="12">
|
||||||
|
<el-form-item label="阈值下限" prop="ALARM_RANGE_MIN">
|
||||||
|
<el-input v-model="form.ALARM_RANGE_MIN" disabled />
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="12">
|
||||||
|
<el-form-item label="阈值上限" prop="ALARM_RANGE_MAX">
|
||||||
|
<el-input v-model="form.ALARM_RANGE_MAX" disabled />
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
<el-form-item label="处置人" prop="DISPOSAL_PERSON">
|
||||||
|
<el-input v-model="form.DISPOSAL_PERSON" />
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="处置方式" prop="DISPOSAL_METHOD">
|
||||||
|
<el-input v-model="form.DISPOSAL_METHOD" />
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="处置描述" prop="DISPOSAL_DESC">
|
||||||
|
<el-input v-model="form.DISPOSAL_DESC" autosize type="textarea" />
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="处置前图片" prop="disposalBeforeFile">
|
||||||
|
<layout-upload
|
||||||
|
v-model:file-list="form.disposalBeforeFile"
|
||||||
|
accept=".jpg,.jpeg,.png"
|
||||||
|
list-type="picture-card"
|
||||||
|
:limit="99"
|
||||||
|
/>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="处置后图片" prop="disposalAfterFile">
|
||||||
|
<layout-upload
|
||||||
|
v-model:file-list="form.disposalAfterFile"
|
||||||
|
accept=".jpg,.jpeg,.png"
|
||||||
|
list-type="picture-card"
|
||||||
|
:limit="99"
|
||||||
|
/>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="处置完成时间" prop="DISPOSAL_TIME_OVER">
|
||||||
|
<el-date-picker
|
||||||
|
v-model="form.DISPOSAL_TIME_OVER"
|
||||||
|
format="YYYY-MM-DD HH:mm"
|
||||||
|
value-format="YYYY-MM-DD HH:mm"
|
||||||
|
type="datetime"
|
||||||
|
/>
|
||||||
|
</el-form-item>
|
||||||
|
</el-form>
|
||||||
|
<template #footer>
|
||||||
|
<el-button @click="fnClose">取消</el-button>
|
||||||
|
<el-button type="primary" @click="fnSubmit"> 确定 </el-button>
|
||||||
|
</template>
|
||||||
|
</el-dialog>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script setup>
|
||||||
|
import LayoutUpload from "@/components/upload/index.vue";
|
||||||
|
import { layoutFnGetEquipmentType } from "@/assets/js/data_dictionary.js";
|
||||||
|
import { debounce } from "throttle-debounce";
|
||||||
|
import useFormValidate from "@/assets/js/useFormValidate.js";
|
||||||
|
import { setRealTimeDataMonitoringEquipmentEdit } from "@/request/major_hazard_sources.js";
|
||||||
|
import { ElMessage } from "element-plus";
|
||||||
|
import { ref } from "vue";
|
||||||
|
import { useVModels } from "@vueuse/core";
|
||||||
|
import { setUploadImg } from "@/request/api.js";
|
||||||
|
|
||||||
|
const props = defineProps({
|
||||||
|
visible: {
|
||||||
|
type: Boolean,
|
||||||
|
required: true,
|
||||||
|
default: false,
|
||||||
|
},
|
||||||
|
form: {
|
||||||
|
type: Object,
|
||||||
|
required: true,
|
||||||
|
default: () => ({}),
|
||||||
|
},
|
||||||
|
info: {
|
||||||
|
type: Object,
|
||||||
|
required: true,
|
||||||
|
default: () => ({}),
|
||||||
|
},
|
||||||
|
id: {
|
||||||
|
type: String,
|
||||||
|
required: true,
|
||||||
|
default: "",
|
||||||
|
},
|
||||||
|
});
|
||||||
|
const emits = defineEmits(["update:visible", "update:form"]);
|
||||||
|
const { visible, form } = useVModels(props, emits);
|
||||||
|
const rules = {
|
||||||
|
ALARM_TYPE: [{ required: true, message: "请选择报警类型", trigger: "blur" }],
|
||||||
|
ALARM_VALUE: [{ required: true, message: "报警值不能为空", trigger: "blur" }],
|
||||||
|
ALARM_LEVEL: [
|
||||||
|
{ required: true, message: "报警级别不能为空", trigger: "blur" },
|
||||||
|
],
|
||||||
|
ALARM_RANGE_MIN: [
|
||||||
|
{ required: true, message: "报警阈值下限不能为空", trigger: "blur" },
|
||||||
|
],
|
||||||
|
ALARM_RANGE_MAX: [
|
||||||
|
{ required: true, message: "报警阈值上限不能为空", trigger: "blur" },
|
||||||
|
],
|
||||||
|
disposalBeforeFile: [
|
||||||
|
{ required: true, message: "处置前图片不能为空", trigger: "blur" },
|
||||||
|
],
|
||||||
|
disposalAfterFile: [
|
||||||
|
{ required: true, message: "处置后图片不能为空", trigger: "blur" },
|
||||||
|
],
|
||||||
|
DISPOSAL_PERSON: [
|
||||||
|
{ required: true, message: "处置人不能为空", trigger: "blur" },
|
||||||
|
],
|
||||||
|
DISPOSAL_METHOD: [
|
||||||
|
{ required: true, message: "处置方式不能为空", trigger: "blur" },
|
||||||
|
],
|
||||||
|
DISPOSAL_DESC: [
|
||||||
|
{ required: true, message: "处置描述不能为空", trigger: "blur" },
|
||||||
|
],
|
||||||
|
DISPOSAL_TIME_OVER: [
|
||||||
|
{ required: true, message: "请选择处置完成时间", trigger: "blur" },
|
||||||
|
],
|
||||||
|
};
|
||||||
|
const formRef = ref(null);
|
||||||
|
const equipmentTypeList = await layoutFnGetEquipmentType();
|
||||||
|
const equipmentLevelList = [
|
||||||
|
{ VALUE: "1", NAME: "一级" },
|
||||||
|
{ VALUE: "2", NAME: "二级" },
|
||||||
|
{ VALUE: "3", NAME: "三级" },
|
||||||
|
{ VALUE: "4", NAME: "四级" },
|
||||||
|
];
|
||||||
|
const fnClose = () => {
|
||||||
|
formRef.value.resetFields();
|
||||||
|
visible.value = false;
|
||||||
|
};
|
||||||
|
const fnSubmit = debounce(
|
||||||
|
1000,
|
||||||
|
async () => {
|
||||||
|
await useFormValidate(formRef);
|
||||||
|
await fnUploadImg("disposalBeforeFile", 20);
|
||||||
|
await fnUploadImg("disposalAfterFile", 21);
|
||||||
|
await setRealTimeDataMonitoringEquipmentEdit({
|
||||||
|
...form.value,
|
||||||
|
DISPOSAL_STATUS: "1",
|
||||||
|
MAJORDANGERSOURCE_ID: props.id,
|
||||||
|
});
|
||||||
|
fnClose();
|
||||||
|
ElMessage.success("保存成功");
|
||||||
|
},
|
||||||
|
{ atBegin: true }
|
||||||
|
);
|
||||||
|
const fnUploadImg = async (file, TYPE) => {
|
||||||
|
for (let i = 0; i < form.value[file].length; i++) {
|
||||||
|
const formData = new FormData();
|
||||||
|
formData.append("FFILE", form.value[file][i].raw);
|
||||||
|
formData.append("FOREIGN_KEY", form.value.MAJORDANGERSOURCE_DISPOSAL_ID);
|
||||||
|
formData.append("TYPE", TYPE);
|
||||||
|
await setUploadImg(formData);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style scoped lang="scss"></style>
|
||||||
|
|
@ -2,7 +2,7 @@
|
||||||
<layout-card>
|
<layout-card>
|
||||||
<div class="container">
|
<div class="container">
|
||||||
<div
|
<div
|
||||||
v-for="(item, index) in data.list"
|
v-for="(item, index) in list"
|
||||||
:key="index"
|
:key="index"
|
||||||
class="item"
|
class="item"
|
||||||
@click="
|
@click="
|
||||||
|
|
@ -35,19 +35,14 @@
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup>
|
<script setup>
|
||||||
import { reactive } from "vue";
|
|
||||||
import { getRealTimeDataMonitoringEquipment } from "@/request/major_hazard_sources.js";
|
import { getRealTimeDataMonitoringEquipment } from "@/request/major_hazard_sources.js";
|
||||||
import { useRouter } from "vue-router";
|
import { useRouter } from "vue-router";
|
||||||
|
import useListData from "@/assets/js/useListData.js";
|
||||||
|
|
||||||
const router = useRouter();
|
const router = useRouter();
|
||||||
const data = reactive({
|
const { list } = useListData(getRealTimeDataMonitoringEquipment, {
|
||||||
list: [],
|
usePagination: false,
|
||||||
});
|
});
|
||||||
const fnGetData = async () => {
|
|
||||||
const resData = await getRealTimeDataMonitoringEquipment();
|
|
||||||
data.list = resData.varList;
|
|
||||||
};
|
|
||||||
fnGetData();
|
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style lang="scss" scoped>
|
<style lang="scss" scoped>
|
||||||
|
|
@ -59,6 +54,7 @@ fnGetData();
|
||||||
flex-basis: 20%;
|
flex-basis: 20%;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
|
margin: 10px 0;
|
||||||
|
|
||||||
.img {
|
.img {
|
||||||
margin-top: 10px;
|
margin-top: 10px;
|
||||||
|
|
@ -66,8 +62,11 @@ fnGetData();
|
||||||
}
|
}
|
||||||
|
|
||||||
.info {
|
.info {
|
||||||
|
display: flex;
|
||||||
|
justify-content: center;
|
||||||
|
|
||||||
div {
|
div {
|
||||||
display: inline-block;
|
width: 40%;
|
||||||
border: 1px solid var(--el-border-color);
|
border: 1px solid var(--el-border-color);
|
||||||
padding: 8px 20px;
|
padding: 8px 20px;
|
||||||
font-size: 14px;
|
font-size: 14px;
|
||||||
|
|
|
||||||
|
|
@ -54,7 +54,7 @@
|
||||||
>
|
>
|
||||||
应急处置
|
应急处置
|
||||||
</el-button>
|
</el-button>
|
||||||
<div style="margin-top: 14px">
|
<div class="mt-14">
|
||||||
<el-button
|
<el-button
|
||||||
type="primary"
|
type="primary"
|
||||||
@click="
|
@click="
|
||||||
|
|
@ -166,127 +166,12 @@
|
||||||
</el-tabs>
|
</el-tabs>
|
||||||
</div>
|
</div>
|
||||||
</layout-card>
|
</layout-card>
|
||||||
<el-dialog v-model="data.emergencyResponseDialog.visible" title="应急处置">
|
<emergency-response
|
||||||
<el-form
|
v-model:visible="data.emergencyResponseDialog.visible"
|
||||||
ref="emergencyResponseDialogFormRef"
|
v-model:form="data.emergencyResponseDialog.form"
|
||||||
:rules="data.emergencyResponseDialog.rules"
|
:id="MAJORDANGERSOURCE_ID"
|
||||||
:model="data.emergencyResponseDialog.form"
|
:info="data.info"
|
||||||
label-width="110px"
|
/>
|
||||||
>
|
|
||||||
<el-row :gutter="20">
|
|
||||||
<el-col :span="12">
|
|
||||||
<el-form-item label="储罐编号" prop="MAJORDANGERSOURCE_NUMBER">
|
|
||||||
<el-input v-model="data.info.MAJORDANGERSOURCE_NUMBER" disabled />
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
<el-col :span="12">
|
|
||||||
<el-form-item label="报警类型" prop="ALARM_TYPE">
|
|
||||||
<el-select
|
|
||||||
v-model="data.emergencyResponseDialog.form.ALARM_TYPE"
|
|
||||||
disabled
|
|
||||||
>
|
|
||||||
<el-option
|
|
||||||
v-for="item in equipmentTypeList"
|
|
||||||
:key="item.BIANMA"
|
|
||||||
:label="item.NAME"
|
|
||||||
:value="item.BIANMA"
|
|
||||||
/>
|
|
||||||
</el-select>
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
<el-col :span="12">
|
|
||||||
<el-form-item label="报警级别" prop="ALARM_LEVEL">
|
|
||||||
<el-select
|
|
||||||
v-model="data.emergencyResponseDialog.form.ALARM_LEVEL"
|
|
||||||
disabled
|
|
||||||
>
|
|
||||||
<el-option
|
|
||||||
v-for="item in equipmentLevelList"
|
|
||||||
:key="item.VALUE"
|
|
||||||
:label="item.NAME"
|
|
||||||
:value="item.VALUE"
|
|
||||||
/>
|
|
||||||
</el-select>
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
<el-col :span="12">
|
|
||||||
<el-form-item label="报警值" prop="ALARM_VALUE">
|
|
||||||
<el-input
|
|
||||||
v-model="data.emergencyResponseDialog.form.ALARM_VALUE"
|
|
||||||
disabled
|
|
||||||
/>
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
<el-col :span="12">
|
|
||||||
<el-form-item label="阈值下限" prop="ALARM_RANGE_MIN">
|
|
||||||
<el-input
|
|
||||||
v-model="data.emergencyResponseDialog.form.ALARM_RANGE_MIN"
|
|
||||||
disabled
|
|
||||||
/>
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
<el-col :span="12">
|
|
||||||
<el-form-item label="阈值上限" prop="ALARM_RANGE_MAX">
|
|
||||||
<el-input
|
|
||||||
v-model="data.emergencyResponseDialog.form.ALARM_RANGE_MAX"
|
|
||||||
disabled
|
|
||||||
/>
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
</el-row>
|
|
||||||
<el-form-item label="处置人" prop="DISPOSAL_PERSON">
|
|
||||||
<el-input
|
|
||||||
v-model="data.emergencyResponseDialog.form.DISPOSAL_PERSON"
|
|
||||||
/>
|
|
||||||
</el-form-item>
|
|
||||||
<el-form-item label="处置方式" prop="DISPOSAL_METHOD">
|
|
||||||
<el-input
|
|
||||||
v-model="data.emergencyResponseDialog.form.DISPOSAL_METHOD"
|
|
||||||
/>
|
|
||||||
</el-form-item>
|
|
||||||
<el-form-item label="处置描述" prop="DISPOSAL_DESC">
|
|
||||||
<el-input
|
|
||||||
v-model="data.emergencyResponseDialog.form.DISPOSAL_DESC"
|
|
||||||
autosize
|
|
||||||
type="textarea"
|
|
||||||
/>
|
|
||||||
</el-form-item>
|
|
||||||
<el-form-item label="处置前图片" prop="disposalBeforeFile">
|
|
||||||
<layout-upload
|
|
||||||
v-model:file-list="
|
|
||||||
data.emergencyResponseDialog.form.disposalBeforeFile
|
|
||||||
"
|
|
||||||
accept=".jpg,.jpeg,.png"
|
|
||||||
list-type="picture-card"
|
|
||||||
:limit="99"
|
|
||||||
/>
|
|
||||||
</el-form-item>
|
|
||||||
<el-form-item label="处置后图片" prop="disposalAfterFile">
|
|
||||||
<layout-upload
|
|
||||||
v-model:file-list="
|
|
||||||
data.emergencyResponseDialog.form.disposalAfterFile
|
|
||||||
"
|
|
||||||
accept=".jpg,.jpeg,.png"
|
|
||||||
list-type="picture-card"
|
|
||||||
:limit="99"
|
|
||||||
/>
|
|
||||||
</el-form-item>
|
|
||||||
<el-form-item label="处置完成时间" prop="DISPOSAL_TIME_OVER">
|
|
||||||
<el-date-picker
|
|
||||||
v-model="data.emergencyResponseDialog.form.DISPOSAL_TIME_OVER"
|
|
||||||
format="YYYY-MM-DD HH:mm"
|
|
||||||
value-format="YYYY-MM-DD HH:mm"
|
|
||||||
type="datetime"
|
|
||||||
/>
|
|
||||||
</el-form-item>
|
|
||||||
</el-form>
|
|
||||||
<template #footer>
|
|
||||||
<el-button @click="fnEmergencyResponseDialogChangeShow">取消</el-button>
|
|
||||||
<el-button type="primary" @click="fnEmergencyResponseDialogSubmit">
|
|
||||||
确定
|
|
||||||
</el-button>
|
|
||||||
</template>
|
|
||||||
</el-dialog>
|
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
|
@ -298,16 +183,11 @@ import {
|
||||||
getRealTimeDataMonitoringEquipmentDisposal,
|
getRealTimeDataMonitoringEquipmentDisposal,
|
||||||
getRealTimeDataMonitoringEquipmentData,
|
getRealTimeDataMonitoringEquipmentData,
|
||||||
getRealTimeDataMonitoringEquipmentLogList,
|
getRealTimeDataMonitoringEquipmentLogList,
|
||||||
setRealTimeDataMonitoringEquipmentEdit,
|
|
||||||
} from "@/request/major_hazard_sources.js";
|
} from "@/request/major_hazard_sources.js";
|
||||||
import { ElMessage } from "element-plus";
|
import { ElMessage } from "element-plus";
|
||||||
import * as echarts from "echarts";
|
import * as echarts from "echarts";
|
||||||
import LayoutUpload from "@/components/upload/index.vue";
|
|
||||||
import { cloneDeep } from "lodash-es";
|
import { cloneDeep } from "lodash-es";
|
||||||
import { layoutFnGetEquipmentTypeCorp } from "@/assets/js/data_dictionary.js";
|
import EmergencyResponse from "./components/emergency_response.vue";
|
||||||
import { debounce } from "throttle-debounce";
|
|
||||||
import { setUploadImg } from "@/request/api.js";
|
|
||||||
import useFormValidate from "@/assets/js/useFormValidate.js";
|
|
||||||
|
|
||||||
const route = useRoute();
|
const route = useRoute();
|
||||||
const { MAJORDANGERSOURCE_ID } = route.query;
|
const { MAJORDANGERSOURCE_ID } = route.query;
|
||||||
|
|
@ -316,26 +196,25 @@ const Echarts1 = null;
|
||||||
const Echarts2 = null;
|
const Echarts2 = null;
|
||||||
let timer = null;
|
let timer = null;
|
||||||
const tabsActive = ref("first");
|
const tabsActive = ref("first");
|
||||||
const emergencyResponseDialogFormRef = ref(null);
|
const disposalNew = {};
|
||||||
|
let disposal = {};
|
||||||
|
const chartData = {
|
||||||
|
LIQUIDLEVEL: {
|
||||||
|
dataX: ["15:14:00", "15:14:05", "15:14:10", "15:14:15", "15:14:20"],
|
||||||
|
legend: ["液位"],
|
||||||
|
color: ["#3888FA"],
|
||||||
|
dataY: [[13.172, 13.171, 13.173, 13.171, 13.175]],
|
||||||
|
},
|
||||||
|
TEMPERATURE: {
|
||||||
|
dataX: ["15:14:00", "15:14:05", "15:14:10", "15:14:15", "15:14:20"],
|
||||||
|
legend: ["温度"],
|
||||||
|
color: ["#3888FA"],
|
||||||
|
dataY: [[26.6, 26.3, 26.5, 26.6, 26.2]],
|
||||||
|
},
|
||||||
|
};
|
||||||
const data = reactive({
|
const data = reactive({
|
||||||
info: {},
|
info: {},
|
||||||
disposalNew: {},
|
|
||||||
disposal: {},
|
|
||||||
logList: [],
|
logList: [],
|
||||||
chartData: {
|
|
||||||
LIQUIDLEVEL: {
|
|
||||||
dataX: ["15:14:00", "15:14:05", "15:14:10", "15:14:15", "15:14:20"],
|
|
||||||
legend: ["液位"],
|
|
||||||
color: ["#3888FA"],
|
|
||||||
dataY: [[13.172, 13.171, 13.173, 13.171, 13.175]],
|
|
||||||
},
|
|
||||||
TEMPERATURE: {
|
|
||||||
dataX: ["15:14:00", "15:14:05", "15:14:10", "15:14:15", "15:14:20"],
|
|
||||||
legend: ["温度"],
|
|
||||||
color: ["#3888FA"],
|
|
||||||
dataY: [[26.6, 26.3, 26.5, 26.6, 26.2]],
|
|
||||||
},
|
|
||||||
},
|
|
||||||
hasDisposal: false,
|
hasDisposal: false,
|
||||||
emergencyResponseDialog: {
|
emergencyResponseDialog: {
|
||||||
visible: false,
|
visible: false,
|
||||||
|
|
@ -353,108 +232,69 @@ const data = reactive({
|
||||||
disposalBeforeFile: [],
|
disposalBeforeFile: [],
|
||||||
disposalAfterFile: [],
|
disposalAfterFile: [],
|
||||||
},
|
},
|
||||||
rules: {
|
|
||||||
ALARM_TYPE: [
|
|
||||||
{ required: true, message: "请选择报警类型", trigger: "blur" },
|
|
||||||
],
|
|
||||||
ALARM_VALUE: [
|
|
||||||
{ required: true, message: "报警值不能为空", trigger: "blur" },
|
|
||||||
],
|
|
||||||
ALARM_LEVEL: [
|
|
||||||
{ required: true, message: "报警级别不能为空", trigger: "blur" },
|
|
||||||
],
|
|
||||||
ALARM_RANGE_MIN: [
|
|
||||||
{ required: true, message: "报警阈值下限不能为空", trigger: "blur" },
|
|
||||||
],
|
|
||||||
ALARM_RANGE_MAX: [
|
|
||||||
{ required: true, message: "报警阈值上限不能为空", trigger: "blur" },
|
|
||||||
],
|
|
||||||
disposalBeforeFile: [
|
|
||||||
{ required: true, message: "处置前图片不能为空", trigger: "blur" },
|
|
||||||
],
|
|
||||||
disposalAfterFile: [
|
|
||||||
{ required: true, message: "处置后图片不能为空", trigger: "blur" },
|
|
||||||
],
|
|
||||||
DISPOSAL_PERSON: [
|
|
||||||
{ required: true, message: "处置人不能为空", trigger: "blur" },
|
|
||||||
],
|
|
||||||
DISPOSAL_METHOD: [
|
|
||||||
{ required: true, message: "处置方式不能为空", trigger: "blur" },
|
|
||||||
],
|
|
||||||
DISPOSAL_DESC: [
|
|
||||||
{ required: true, message: "处置描述不能为空", trigger: "blur" },
|
|
||||||
],
|
|
||||||
DISPOSAL_TIME_OVER: [
|
|
||||||
{ required: true, message: "请选择处置完成时间", trigger: "blur" },
|
|
||||||
],
|
|
||||||
},
|
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
const fnGetDisposal = async () => {
|
const fnGetDisposal = async () => {
|
||||||
const resData = await getRealTimeDataMonitoringEquipmentDisposal({
|
const resData = await getRealTimeDataMonitoringEquipmentDisposal({
|
||||||
MAJORDANGERSOURCE_ID,
|
MAJORDANGERSOURCE_ID,
|
||||||
});
|
});
|
||||||
data.disposal = resData.varList.length > 0 ? resData.varList[0] : {};
|
disposal = resData.pd;
|
||||||
let message = "";
|
let message = "";
|
||||||
let type = "";
|
let type = "";
|
||||||
// 当前监测数据等级 高于 库里报警数据等级,升级报警信息
|
// 当前监测数据等级 高于 库里报警数据等级,升级报警信息
|
||||||
if (
|
if (
|
||||||
data.disposal.MAJORDANGERSOURCE_DISPOSAL_ID &&
|
disposal.MAJORDANGERSOURCE_DISPOSAL_ID &&
|
||||||
Number(data.disposal.ALARM_LEVEL) >
|
Number(disposal.ALARM_LEVEL) >
|
||||||
Number(
|
Number(disposalNew.ALARM_LEVEL === "" ? "10" : disposalNew.ALARM_LEVEL)
|
||||||
data.disposalNew.ALARM_LEVEL === ""
|
|
||||||
? "10"
|
|
||||||
: data.disposalNew.ALARM_LEVEL
|
|
||||||
)
|
|
||||||
) {
|
) {
|
||||||
data.disposal = { ...data.disposal, ...data.disposalNew };
|
disposal = { ...disposal, ...disposalNew };
|
||||||
message =
|
message =
|
||||||
data.info.MAJORDANGERSOURCE_NAME +
|
data.info.MAJORDANGERSOURCE_NAME +
|
||||||
"【" +
|
"【" +
|
||||||
(data.disposalNew.ALARM_TYPE === "MONITORINGEQUIPMENTTYPE001"
|
(disposalNew.ALARM_TYPE === "MONITORINGEQUIPMENTTYPE001"
|
||||||
? "液位"
|
? "液位"
|
||||||
: "温度") +
|
: "温度") +
|
||||||
"】已升级为";
|
"】已升级为";
|
||||||
if (data.disposalNew.ALARM_LEVEL === "1") {
|
if (disposalNew.ALARM_LEVEL === "1") {
|
||||||
message += "一级";
|
message += "一级";
|
||||||
type = "error";
|
type = "error";
|
||||||
} else if (data.disposalNew.ALARM_LEVEL === "2") {
|
} else if (disposalNew.ALARM_LEVEL === "2") {
|
||||||
message += "二级";
|
message += "二级";
|
||||||
type = "warning";
|
type = "warning";
|
||||||
} else if (data.disposalNew.ALARM_LEVEL === "3") {
|
} else if (disposalNew.ALARM_LEVEL === "3") {
|
||||||
message += "三级";
|
message += "三级";
|
||||||
type = "warning";
|
type = "warning";
|
||||||
} else if (data.disposalNew.ALARM_LEVEL === "4") {
|
} else if (disposalNew.ALARM_LEVEL === "4") {
|
||||||
message += "四级";
|
message += "四级";
|
||||||
type = "info";
|
type = "info";
|
||||||
}
|
}
|
||||||
message += "预警,请尽快处理";
|
message += "预警,请尽快处理";
|
||||||
} else {
|
} else {
|
||||||
// 新增报警数据
|
// 新增报警数据
|
||||||
data.disposal = { ...data.disposal, ...data.disposalNew };
|
disposal = { ...disposal, ...disposalNew };
|
||||||
message =
|
message =
|
||||||
data.info.MAJORDANGERSOURCE_NAME +
|
data.info.MAJORDANGERSOURCE_NAME +
|
||||||
"【" +
|
"【" +
|
||||||
(data.disposalNew.ALARM_TYPE === "MONITORINGEQUIPMENTTYPE001"
|
(disposalNew.ALARM_TYPE === "MONITORINGEQUIPMENTTYPE001"
|
||||||
? "液位"
|
? "液位"
|
||||||
: "温度") +
|
: "温度") +
|
||||||
"】已达";
|
"】已达";
|
||||||
if (data.disposalNew.ALARM_LEVEL === "1") {
|
if (disposalNew.ALARM_LEVEL === "1") {
|
||||||
message += "一级";
|
message += "一级";
|
||||||
type = "error";
|
type = "error";
|
||||||
} else if (data.disposalNew.ALARM_LEVEL === "2") {
|
} else if (disposalNew.ALARM_LEVEL === "2") {
|
||||||
message += "二级";
|
message += "二级";
|
||||||
type = "warning";
|
type = "warning";
|
||||||
} else if (data.disposalNew.ALARM_LEVEL === "3") {
|
} else if (disposalNew.ALARM_LEVEL === "3") {
|
||||||
message += "三级";
|
message += "三级";
|
||||||
type = "warning";
|
type = "warning";
|
||||||
} else if (data.disposalNew.ALARM_LEVEL === "4") {
|
} else if (disposalNew.ALARM_LEVEL === "4") {
|
||||||
message += "四级";
|
message += "四级";
|
||||||
type = "info";
|
type = "info";
|
||||||
}
|
}
|
||||||
message += "预警,请尽快处理";
|
message += "预警,请尽快处理";
|
||||||
}
|
}
|
||||||
if (type) {
|
if (message) {
|
||||||
data.hasDisposal = true;
|
data.hasDisposal = true;
|
||||||
messageExample && messageExample.close();
|
messageExample && messageExample.close();
|
||||||
messageExample = null;
|
messageExample = null;
|
||||||
|
|
@ -493,8 +333,8 @@ const fnGetStorageTankData = async () => {
|
||||||
data.info.LIQUIDLEVEL_RANGEMAX = item.RANGE1_MAX;
|
data.info.LIQUIDLEVEL_RANGEMAX = item.RANGE1_MAX;
|
||||||
if (ALARM_LEVEL > 1) {
|
if (ALARM_LEVEL > 1) {
|
||||||
ALARM_LEVEL = 1;
|
ALARM_LEVEL = 1;
|
||||||
data.disposalNew.ALARM_TYPE = item.MONITORINGDEVICESENSOR_TYPE;
|
disposalNew.ALARM_TYPE = item.MONITORINGDEVICESENSOR_TYPE;
|
||||||
data.disposalNew.ALARM_LEVEL = "1";
|
disposalNew.ALARM_LEVEL = "1";
|
||||||
}
|
}
|
||||||
} else if (
|
} else if (
|
||||||
Number(item.RANGE2_MIN) <= Number(liquidLevel) &&
|
Number(item.RANGE2_MIN) <= Number(liquidLevel) &&
|
||||||
|
|
@ -505,8 +345,8 @@ const fnGetStorageTankData = async () => {
|
||||||
data.info.LIQUIDLEVEL_RANGEMAX = item.RANGE2_MAX;
|
data.info.LIQUIDLEVEL_RANGEMAX = item.RANGE2_MAX;
|
||||||
if (ALARM_LEVEL > 2) {
|
if (ALARM_LEVEL > 2) {
|
||||||
ALARM_LEVEL = 2;
|
ALARM_LEVEL = 2;
|
||||||
data.disposalNew.ALARM_TYPE = item.MONITORINGDEVICESENSOR_TYPE;
|
disposalNew.ALARM_TYPE = item.MONITORINGDEVICESENSOR_TYPE;
|
||||||
data.disposalNew.ALARM_LEVEL = "2";
|
disposalNew.ALARM_LEVEL = "2";
|
||||||
}
|
}
|
||||||
} else if (
|
} else if (
|
||||||
Number(item.RANGE3_MIN) <= Number(liquidLevel) &&
|
Number(item.RANGE3_MIN) <= Number(liquidLevel) &&
|
||||||
|
|
@ -517,8 +357,8 @@ const fnGetStorageTankData = async () => {
|
||||||
data.info.LIQUIDLEVEL_RANGEMAX = item.RANGE3_MAX;
|
data.info.LIQUIDLEVEL_RANGEMAX = item.RANGE3_MAX;
|
||||||
if (ALARM_LEVEL > 3) {
|
if (ALARM_LEVEL > 3) {
|
||||||
ALARM_LEVEL = 3;
|
ALARM_LEVEL = 3;
|
||||||
data.disposalNew.ALARM_TYPE = item.MONITORINGDEVICESENSOR_TYPE;
|
disposalNew.ALARM_TYPE = item.MONITORINGDEVICESENSOR_TYPE;
|
||||||
data.disposalNew.ALARM_LEVEL = "3";
|
disposalNew.ALARM_LEVEL = "3";
|
||||||
}
|
}
|
||||||
} else if (
|
} else if (
|
||||||
Number(item.RANGE4_MIN) <= Number(liquidLevel) &&
|
Number(item.RANGE4_MIN) <= Number(liquidLevel) &&
|
||||||
|
|
@ -529,8 +369,8 @@ const fnGetStorageTankData = async () => {
|
||||||
data.info.LIQUIDLEVEL_RANGEMAX = item.RANGE4_MAX;
|
data.info.LIQUIDLEVEL_RANGEMAX = item.RANGE4_MAX;
|
||||||
if (ALARM_LEVEL > 4) {
|
if (ALARM_LEVEL > 4) {
|
||||||
ALARM_LEVEL = 4;
|
ALARM_LEVEL = 4;
|
||||||
data.disposalNew.ALARM_TYPE = item.MONITORINGDEVICESENSOR_TYPE;
|
disposalNew.ALARM_TYPE = item.MONITORINGDEVICESENSOR_TYPE;
|
||||||
data.disposalNew.ALARM_LEVEL = "4";
|
disposalNew.ALARM_LEVEL = "4";
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
data.info.LIQUIDLEVELCLASS = "green";
|
data.info.LIQUIDLEVELCLASS = "green";
|
||||||
|
|
@ -539,11 +379,11 @@ const fnGetStorageTankData = async () => {
|
||||||
}
|
}
|
||||||
if (
|
if (
|
||||||
ALARM_LEVEL < 10 &&
|
ALARM_LEVEL < 10 &&
|
||||||
data.disposalNew.ALARM_TYPE === item.MONITORINGDEVICESENSOR_TYPE
|
disposalNew.ALARM_TYPE === item.MONITORINGDEVICESENSOR_TYPE
|
||||||
) {
|
) {
|
||||||
data.disposalNew.ALARM_VALUE = liquidLevel;
|
disposalNew.ALARM_VALUE = liquidLevel;
|
||||||
data.disposalNew.ALARM_RANGE_MIN = data.info.LIQUIDLEVEL_RANGEMIN;
|
disposalNew.ALARM_RANGE_MIN = data.info.LIQUIDLEVEL_RANGEMIN;
|
||||||
data.disposalNew.ALARM_RANGE_MAX = data.info.LIQUIDLEVEL_RANGEMAX;
|
disposalNew.ALARM_RANGE_MAX = data.info.LIQUIDLEVEL_RANGEMAX;
|
||||||
}
|
}
|
||||||
} else if (
|
} else if (
|
||||||
item.MONITORINGDEVICESENSOR_TYPE === "MONITORINGEQUIPMENTTYPE002"
|
item.MONITORINGDEVICESENSOR_TYPE === "MONITORINGEQUIPMENTTYPE002"
|
||||||
|
|
@ -558,8 +398,8 @@ const fnGetStorageTankData = async () => {
|
||||||
data.info.TEMPERATURE_RANGEMAX = item.RANGE1_MAX;
|
data.info.TEMPERATURE_RANGEMAX = item.RANGE1_MAX;
|
||||||
if (ALARM_LEVEL > 1) {
|
if (ALARM_LEVEL > 1) {
|
||||||
ALARM_LEVEL = 1;
|
ALARM_LEVEL = 1;
|
||||||
data.disposalNew.ALARM_TYPE = item.MONITORINGDEVICESENSOR_TYPE;
|
disposalNew.ALARM_TYPE = item.MONITORINGDEVICESENSOR_TYPE;
|
||||||
data.disposalNew.ALARM_LEVEL = "1";
|
disposalNew.ALARM_LEVEL = "1";
|
||||||
}
|
}
|
||||||
} else if (
|
} else if (
|
||||||
Number(item.RANGE2_MIN) <= Number(temperature) &&
|
Number(item.RANGE2_MIN) <= Number(temperature) &&
|
||||||
|
|
@ -570,8 +410,8 @@ const fnGetStorageTankData = async () => {
|
||||||
data.info.TEMPERATURE_RANGEMAX = item.RANGE2_MAX;
|
data.info.TEMPERATURE_RANGEMAX = item.RANGE2_MAX;
|
||||||
if (ALARM_LEVEL > 2) {
|
if (ALARM_LEVEL > 2) {
|
||||||
ALARM_LEVEL = 2;
|
ALARM_LEVEL = 2;
|
||||||
data.disposalNew.ALARM_TYPE = item.MONITORINGDEVICESENSOR_TYPE;
|
disposalNew.ALARM_TYPE = item.MONITORINGDEVICESENSOR_TYPE;
|
||||||
data.disposalNew.ALARM_LEVEL = "2";
|
disposalNew.ALARM_LEVEL = "2";
|
||||||
}
|
}
|
||||||
} else if (
|
} else if (
|
||||||
Number(item.RANGE3_MIN) <= Number(temperature) &&
|
Number(item.RANGE3_MIN) <= Number(temperature) &&
|
||||||
|
|
@ -582,8 +422,8 @@ const fnGetStorageTankData = async () => {
|
||||||
data.info.TEMPERATURE_RANGEMAX = item.RANGE3_MAX;
|
data.info.TEMPERATURE_RANGEMAX = item.RANGE3_MAX;
|
||||||
if (ALARM_LEVEL > 3) {
|
if (ALARM_LEVEL > 3) {
|
||||||
ALARM_LEVEL = 3;
|
ALARM_LEVEL = 3;
|
||||||
data.disposalNew.ALARM_TYPE = item.MONITORINGDEVICESENSOR_TYPE;
|
disposalNew.ALARM_TYPE = item.MONITORINGDEVICESENSOR_TYPE;
|
||||||
data.disposalNew.ALARM_LEVEL = "3";
|
disposalNew.ALARM_LEVEL = "3";
|
||||||
}
|
}
|
||||||
} else if (
|
} else if (
|
||||||
Number(item.RANGE4_MIN) <= Number(temperature) &&
|
Number(item.RANGE4_MIN) <= Number(temperature) &&
|
||||||
|
|
@ -594,8 +434,8 @@ const fnGetStorageTankData = async () => {
|
||||||
data.info.TEMPERATURE_RANGEMAX = item.RANGE4_MAX;
|
data.info.TEMPERATURE_RANGEMAX = item.RANGE4_MAX;
|
||||||
if (ALARM_LEVEL > 4) {
|
if (ALARM_LEVEL > 4) {
|
||||||
ALARM_LEVEL = 4;
|
ALARM_LEVEL = 4;
|
||||||
data.disposalNew.ALARM_TYPE = item.MONITORINGDEVICESENSOR_TYPE;
|
disposalNew.ALARM_TYPE = item.MONITORINGDEVICESENSOR_TYPE;
|
||||||
data.disposalNew.ALARM_LEVEL = "4";
|
disposalNew.ALARM_LEVEL = "4";
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
data.info.TEMPERATURECLASS = "green";
|
data.info.TEMPERATURECLASS = "green";
|
||||||
|
|
@ -604,11 +444,11 @@ const fnGetStorageTankData = async () => {
|
||||||
}
|
}
|
||||||
if (
|
if (
|
||||||
ALARM_LEVEL < 10 &&
|
ALARM_LEVEL < 10 &&
|
||||||
data.disposalNew.ALARM_TYPE === item.MONITORINGDEVICESENSOR_TYPE
|
disposalNew.ALARM_TYPE === item.MONITORINGDEVICESENSOR_TYPE
|
||||||
) {
|
) {
|
||||||
data.disposalNew.ALARM_VALUE = temperature;
|
disposalNew.ALARM_VALUE = temperature;
|
||||||
data.disposalNew.ALARM_RANGE_MIN = data.info.TEMPERATURE_RANGEMIN;
|
disposalNew.ALARM_RANGE_MIN = data.info.TEMPERATURE_RANGEMIN;
|
||||||
data.disposalNew.ALARM_RANGE_MAX = data.info.TEMPERATURE_RANGEMAX;
|
disposalNew.ALARM_RANGE_MAX = data.info.TEMPERATURE_RANGEMAX;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
@ -694,21 +534,21 @@ const fnGetStorageTankLogList = async () => {
|
||||||
item[
|
item[
|
||||||
"STORAGETANK" + data.info.MAJORDANGERSOURCE_STORAGETANK + "_OPERATTIME"
|
"STORAGETANK" + data.info.MAJORDANGERSOURCE_STORAGETANK + "_OPERATTIME"
|
||||||
];
|
];
|
||||||
data.chartData.LIQUIDLEVEL.dataX[j] =
|
chartData.LIQUIDLEVEL.dataX[j] =
|
||||||
datatime.length > 11 ? datatime.substring(11) : datatime;
|
datatime.length > 11 ? datatime.substring(11) : datatime;
|
||||||
data.chartData.TEMPERATURE.dataX[j] =
|
chartData.TEMPERATURE.dataX[j] =
|
||||||
datatime.length > 11 ? datatime.substring(11) : datatime;
|
datatime.length > 11 ? datatime.substring(11) : datatime;
|
||||||
data.chartData.LIQUIDLEVEL.dataY[0][j] =
|
chartData.LIQUIDLEVEL.dataY[0][j] =
|
||||||
item[
|
item[
|
||||||
"STORAGETANK" + data.info.MAJORDANGERSOURCE_STORAGETANK + "_LIQUIDLEVEL"
|
"STORAGETANK" + data.info.MAJORDANGERSOURCE_STORAGETANK + "_LIQUIDLEVEL"
|
||||||
];
|
];
|
||||||
data.chartData.TEMPERATURE.dataY[0][j] =
|
chartData.TEMPERATURE.dataY[0][j] =
|
||||||
item[
|
item[
|
||||||
"STORAGETANK" + data.info.MAJORDANGERSOURCE_STORAGETANK + "_TEMPERATURE"
|
"STORAGETANK" + data.info.MAJORDANGERSOURCE_STORAGETANK + "_TEMPERATURE"
|
||||||
];
|
];
|
||||||
});
|
});
|
||||||
fnInitEcharts(data.chartData.LIQUIDLEVEL, Echarts1, "#echarts1");
|
fnInitEcharts(chartData.LIQUIDLEVEL, Echarts1, "#echarts1");
|
||||||
fnInitEcharts(data.chartData.TEMPERATURE, Echarts2, "#echarts2");
|
fnInitEcharts(chartData.TEMPERATURE, Echarts2, "#echarts2");
|
||||||
};
|
};
|
||||||
const fnGetData = async () => {
|
const fnGetData = async () => {
|
||||||
const resData = await getRealTimeDataMonitoringEquipmentInfo({
|
const resData = await getRealTimeDataMonitoringEquipmentInfo({
|
||||||
|
|
@ -723,50 +563,10 @@ const fnGetData = async () => {
|
||||||
}, 5000);
|
}, 5000);
|
||||||
};
|
};
|
||||||
fnGetData();
|
fnGetData();
|
||||||
const equipmentTypeList = await layoutFnGetEquipmentTypeCorp();
|
|
||||||
const equipmentLevelList = [
|
|
||||||
{ VALUE: "1", NAME: "一级" },
|
|
||||||
{ VALUE: "2", NAME: "二级" },
|
|
||||||
{ VALUE: "3", NAME: "三级" },
|
|
||||||
{ VALUE: "4", NAME: "四级" },
|
|
||||||
];
|
|
||||||
const fnEmergencyResponseDialogChangeShow = () => {
|
|
||||||
data.emergencyResponseDialog.visible = !data.emergencyResponseDialog.visible;
|
|
||||||
};
|
|
||||||
const fnEmergencyResponse = async () => {
|
const fnEmergencyResponse = async () => {
|
||||||
fnEmergencyResponseDialogChangeShow();
|
data.emergencyResponseDialog.visible = true;
|
||||||
await nextTick();
|
await nextTick();
|
||||||
emergencyResponseDialogFormRef.value.resetFields();
|
data.emergencyResponseDialog.form = cloneDeep(disposal);
|
||||||
data.emergencyResponseDialog.form = cloneDeep(data.disposal);
|
|
||||||
};
|
|
||||||
const fnEmergencyResponseDialogSubmit = debounce(
|
|
||||||
1000,
|
|
||||||
async () => {
|
|
||||||
await useFormValidate(emergencyResponseDialogFormRef);
|
|
||||||
const { form } = data.emergencyResponseDialog;
|
|
||||||
await fnUploadImg("disposalBeforeFile", 20);
|
|
||||||
await fnUploadImg("disposalAfterFile", 21);
|
|
||||||
await setRealTimeDataMonitoringEquipmentEdit({
|
|
||||||
...form,
|
|
||||||
DISPOSAL_STATUS: "1",
|
|
||||||
MAJORDANGERSOURCE_ID,
|
|
||||||
MAJORDANGERSOURCE_DISPOSAL_ID:
|
|
||||||
data.disposal.MAJORDANGERSOURCE_DISPOSAL_ID,
|
|
||||||
});
|
|
||||||
fnEmergencyResponseDialogChangeShow();
|
|
||||||
ElMessage.success("保存成功");
|
|
||||||
},
|
|
||||||
{ atBegin: true }
|
|
||||||
);
|
|
||||||
const fnUploadImg = async (file, TYPE) => {
|
|
||||||
const { form } = data.emergencyResponseDialog;
|
|
||||||
for (let i = 0; i < form[file].length; i++) {
|
|
||||||
const formData = new FormData();
|
|
||||||
formData.append("FFILE", form[file][i].raw);
|
|
||||||
formData.append("FOREIGN_KEY", data.disposal.MAJORDANGERSOURCE_DISPOSAL_ID);
|
|
||||||
formData.append("TYPE", TYPE);
|
|
||||||
await setUploadImg(formData);
|
|
||||||
}
|
|
||||||
};
|
};
|
||||||
onBeforeUnmount(() => {
|
onBeforeUnmount(() => {
|
||||||
messageExample && messageExample.close();
|
messageExample && messageExample.close();
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue