qa-regulatory-gwj-vue/src/views/map/dialog/zhong_da_info.vue

755 lines
28 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

<template>
<div class="dialog_body">
<div class="top">
<div class="top_left">
<div class="title">
<div>{{ pd.MAJORDANGERSOURCE_NUMBER }}{{ pd.MAJORDANGERSOURCE_NAME }}</div>
<div>{{ pd.MAJORDANGERSOURCE_TYPE_NAME }}</div>
</div>
<div class="img">
<img :src="imgUrl">
</div>
</div>
<div class="top_center">
<table>
<tr>
<td/>
<td>当前值</td>
<td>低预警值</td>
<td>高预警值</td>
</tr>
<tr>
<td>液位</td>
<td>{{ pd.STORAGETANK_LIQUIDLEVEL }}</td>
<td>{{ pd.LIQUIDLEVEL_RANGEMIN }}</td>
<td>{{ pd.LIQUIDLEVEL_RANGEMAX }}</td>
</tr>
<tr>
<td>温度</td>
<td>{{ pd.STORAGETANK_TEMPERATURE }}</td>
<td>{{ pd.TEMPERATURE_RANGEMIN }}</td>
<td>{{ pd.TEMPERATURE_RANGEMAX }}</td>
</tr>
</table>
</div>
<div class="liquid-btns"/>
</div>
<div class="center">
<line-chart id="main4" ref="CHART_LIQUIDLEVEL" :chart-data="chartData.LIQUIDLEVEL" />
</div>
<div class="center">
<line-chart id="main5" ref="CHART_TEMPERATURE" :chart-data="chartData.TEMPERATURE" />
</div>
<div class="bottom">
<div class="tabs">
<div v-for="item in tabs" :class="['tab',{active:item === tabName}]" :key="item" @click="changeTab(item)">
{{ item }}
</div>
</div>
<table>
<tr>
<td>油罐编号</td>
<td>数据日期</td>
<td>数据时间</td>
<td>存储介质</td>
<td>数值</td>
</tr>
<template v-if="logList.length !== 0">
<tr v-for="(item,index) in logList" :key="index">
<td>{{ pd.MAJORDANGERSOURCE_NUMBER }}</td>
<td>{{ item['STORAGETANK' + pd.MAJORDANGERSOURCE_STORAGETANK + '_OPERATTIME'].substr(0, 10) }}</td>
<td>{{ item['STORAGETANK' + pd.MAJORDANGERSOURCE_STORAGETANK + '_OPERATTIME'].substr(11) }}</td>
<td v-if="['1#','2#','3#','4#','5#','6#','7#','8#','9#'].indexOf(pd.MAJORDANGERSOURCE_NUMBER)>-1"></td>
<td v-if="['51#','52#','53#','54#'].indexOf(pd.MAJORDANGERSOURCE_NUMBER)>-1"></td>
<td v-if="['1#','2#','3#','4#','5#','6#','7#','8#','9#','51#','52#','53#','54#'].indexOf(pd.MAJORDANGERSOURCE_NUMBER)===-1"></td>
<td v-show="tabName === '液位'">{{ item['STORAGETANK' + pd.MAJORDANGERSOURCE_STORAGETANK + '_LIQUIDLEVEL'] }}</td>
<td v-show="tabName === '温度'">{{ item['STORAGETANK' + pd.MAJORDANGERSOURCE_STORAGETANK + '_TEMPERATURE'] }}</td>
</tr>
</template>
<template v-else>
<tr>
<td colspan="5" style="text-align: center"></td>
</tr>
</template>
</table>
</div>
</div>
</template>
<script>
import { requestFN } from '@/utils/request'
import LineChart from '../../echarts/linechartBI'
import { upload } from '@/utils/upload'
const lineChartData = {
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]]
}
}
export default {
components: {
LineChart
},
props: {
id: {
type: String,
default() {
return ''
}
},
type: {
type: String,
default() {
return ''
}
},
gangkou: {
type: String,
default: ''
}
},
data() {
return {
tabs: ['液位', '温度'],
tabName: '液位',
chartData: lineChartData,
listLoading: true,
activeName: 'first',
imgUrl: require('@/assets/images/tanks.png'),
pd: {
MAJORDANGERSOURCE_NAME: '', // 重大危险源名称
MAJORDANGERSOURCE_TYPE_NAME: '', // 重大危险源类型
MAJORDANGERSOURCE_ADDRESS: '', // 重大危险源地址
MAJORDANGERSOURCE_LONGITUDE: '', // 重大危险源位置经度
MAJORDANGERSOURCE_LATITUDE: '', // 重大危险源位置纬度
MAJORDANGERSOURCE_NUMBER: '', // 重大危险源编号
USE_DATE: '', // 投入使用日期
DECLARATION_LEVEL_NAME: '', // 申报等级
STORAGE_ACTUAL: '', // 实际储存量
STORAGE_MAX: '', // 最大储量
CONTROL_MEASURES: '', // 管控措施
BRANCHEMERGENCYPLAN_NAME: '', // 分公司应急预案名称
BRANCHEMERGENCYPLAN_FILEPATH: '', // 分公司应急预案文件
RESPONSIBLE_PERSON_NAME: '', // 责任人姓名
RESPONSIBLE_PERSON_PHONE: ''// 联系方式
},
storageTankData: {}, // 监测数据
hasDisposal: false,
disposalNew: { // 报警信息(待创建)
MAJORDANGERSOURCE_ID: this.id,
ALARM_TYPE: '', // 报警类型
ALARM_VALUE: '', // 报警值
ALARM_LEVEL: '', // 报警级别1.一级 2.二级 3.三级 4.四级)
ALARM_RANGE_MIN: '', // 报警阈值下限
ALARM_RANGE_MAX: '' // 报警阈值上限
},
ALARM_TYPE_List: [], // 数据字典
ALARM_LEVEL_List: [{ VALUE: '1', NAME: '一级' }, { VALUE: '2', NAME: '二级' }, { VALUE: '3', NAME: '三级' }, { VALUE: '4', NAME: '四级' }],
disposal: { // 报警信息
MAJORDANGERSOURCE_DISPOSAL_ID: '',
MAJORDANGERSOURCE_ID: this.id,
ALARM_TYPE: '', // 报警类型
ALARM_VALUE: '', // 报警值
ALARM_LEVEL: '', // 报警级别1.一级 2.二级 3.三级 4.四级)
ALARM_RANGE_MIN: '', // 报警阈值下限
ALARM_RANGE_MAX: '', // 报警阈值上限
DISPOSAL_TIME: '', // 处置生成时间
DISPOSAL_PERSON: '', // 处置人
DISPOSAL_METHOD: '', // 处置方式
DISPOSAL_DESC: '', // 处置描述
DISPOSAL_TIME_OVER: '', // 处置完成时间
disposalBeforeFile: [], // 处置前照片
disposalAfterFile: [] // 处置后照片
},
dialogFormEdit: false,
dialogImageUrl: '',
dialogVisible: false,
rules: {
ALARM_TYPE: [{ required: true, message: '请选择报警类型', trigger: 'blur' }],
ALARM_VALUE: [{ required: true, message: '报警值不能为空', trigger: 'blur' }],
ALARM_LEVEL: [{ required: true, message: '报警级别1.一级 2.二级 3.三级 4.四级)不能为空', trigger: 'blur' }],
ALARM_RANGE_MIN: [{ required: true, message: '报警阈值下限不能为空', trigger: 'blur' }],
ALARM_RANGE_MAX: [{ required: true, message: '报警阈值上限不能为空', trigger: 'blur' }]
},
total: 0,
logList: [],
timer: null,
msg: null
}
},
created() {
this.getDict()
this.getData()
},
beforeDestroy() {
if (this.timer) {
clearInterval(this.timer)
this.timer = null
}
if (this.msg) {
this.msg.close()
this.msg = null
}
},
methods: {
changeTab(tabName) {
this.tabName = tabName
},
getData() {
requestFN(
'/homemajor/getMajordangersourceInfo',
{
MAJORDANGERSOURCE_ID: this.id,
GANGKOU: this.gangkou
}
).then((data) => {
this.pd = Object.assign({}, data.pd) // copy obj
this.getStorageTankData()
this.getStorageTankLogList()
this.listLoading = false
}).catch((e) => {
this.listLoading = false
})
},
handleClick(tab, event) {
console.log(tab, event)
},
cancleDisposal() {
this.dialogFormEdit = false
this.timer = setInterval(this.handleTimerOperation, 5000)
},
handleDisposal() {
// console.info(this.disposal)
this.rules.DISPOSAL_PERSON = [{ required: true, message: '处置人不能为空', trigger: 'blur' }]
this.rules.DISPOSAL_METHOD = [{ required: true, message: '处置方式不能为空', trigger: 'blur' }]
this.rules.DISPOSAL_DESC = [{ required: true, message: '处置描述不能为空', trigger: 'blur' }]
this.rules.DISPOSAL_TIME_OVER = [{ required: true, message: '请选择处置完成时间', trigger: 'blur' }]
this.dialogFormEdit = true
if (this.timer) {
clearInterval(this.timer)
this.timer = null
}
},
handlePicturePreview(file) {
this.dialogImageUrl = file.url
this.dialogVisible = true
},
handleBeforeUploadDisposalBefore(file) {
const types = ['image/jpeg', 'image/jpg', 'image/png']
const isImage = types.includes(file.type)
if (!isImage) {
this.$message.error('上传图片只能是 JPG、JPEG、PNG 格式!')
return false
} else {
this.disposal.disposalBeforeFile.push(file)
}
},
handleBeforeUploadDisposalAfter(file) {
const types = ['image/jpeg', 'image/jpg', 'image/png']
const isImage = types.includes(file.type)
if (!isImage) {
this.$message.error('上传图片只能是 JPG、JPEG、PNG 格式!')
return false
} else {
this.disposal.disposalAfterFile.push(file)
}
},
// 保存
confirm(methodName) {
if (methodName == 'add') {
this.rules.DISPOSAL_PERSON = [{ required: false, message: '处置人不能为空', trigger: 'blur' }]
this.rules.DISPOSAL_METHOD = [{ required: false, message: '处置方式不能为空', trigger: 'blur' }]
this.rules.DISPOSAL_DESC = [{ required: false, message: '处置描述不能为空', trigger: 'blur' }]
this.rules.DISPOSAL_TIME_OVER = [{ required: false, message: '请选择处置完成时间', trigger: 'blur' }]
this.listLoading = true
requestFN(
'/majordangersourcedisposal/' + methodName,
this.disposal
).then((data) => {
this.listLoading = false
this.disposal.MAJORDANGERSOURCE_DISPOSAL_ID = data.pd.MAJORDANGERSOURCE_DISPOSAL_ID
this.disposal.DISPOSAL_TIME = data.pd.DISPOSAL_TIME
console.info(this.disposal)
// this.dialogFormEdit = false
// this.hasDisposal = false
}).catch((e) => {
this.listLoading = false
})
} else if (methodName == 'up') {
this.rules.DISPOSAL_PERSON = [{ required: false, message: '处置人不能为空', trigger: 'blur' }]
this.rules.DISPOSAL_METHOD = [{ required: false, message: '处置方式不能为空', trigger: 'blur' }]
this.rules.DISPOSAL_DESC = [{ required: false, message: '处置描述不能为空', trigger: 'blur' }]
this.rules.DISPOSAL_TIME_OVER = [{ required: false, message: '请选择处置完成时间', trigger: 'blur' }]
this.listLoading = true
requestFN(
'/majordangersourcedisposal/' + methodName,
this.disposal
).then((data) => {
this.listLoading = false
this.disposal.MAJORDANGERSOURCE_DISPOSAL_ID = data.pd.MAJORDANGERSOURCE_DISPOSAL_ID
this.disposal.DISPOSAL_TIME = data.pd.DISPOSAL_TIME
// this.dialogFormEdit = false
// this.hasDisposal = false
}).catch((e) => {
this.listLoading = false
})
} else {
this.$refs.form.validate(valid => {
if (valid) {
if (this.$refs.disposalBeforeUpload.uploadFiles.length < 1) {
this.$message({
message: '请上传处置前照片',
type: 'error'
})
return false
}
if (this.$refs.disposalAfterUpload.uploadFiles.length < 1) {
this.$message({
message: '请上传处置后照片',
type: 'error'
})
return false
}
this.uploadDisposalBeforeFile()
this.uploadDisposalAfterFile()
this.listLoading = true
this.disposal.DISPOSAL_STATUS = '1'
console.info(this.disposal)
requestFN(
'/majordangersourcedisposal/' + methodName,
this.disposal
).then((data) => {
this.listLoading = false
this.dialogFormEdit = false
this.hasDisposal = false
this.resetDisposal()
console.info(this.disposal)
this.timer = setInterval(this.handleTimerOperation, 5000)
}).catch((e) => {
this.listLoading = false
})
} else {
return false
}
})
}
},
uploadDisposalBeforeFile() {
this.$refs.disposalBeforeUpload.submit()
const formData = new FormData()
for (var i = 0; i < this.disposal.disposalBeforeFile.length; i++) {
if (this.disposal.disposalBeforeFile[i]) {
formData.append('FFILE', this.disposal.disposalBeforeFile[i])
}
}
// formData.append('FFILE', this.disposal.disposalBeforeFile)
console.info(this.disposal.MAJORDANGERSOURCE_DISPOSAL_ID)
formData.append('FOREIGN_KEY', this.disposal.MAJORDANGERSOURCE_DISPOSAL_ID)
formData.append('TYPE', 20)
this.uploadFileSubmit(formData, '处置前照片上传完成')
},
uploadDisposalAfterFile() {
this.$refs.disposalAfterUpload.submit()
const formData = new FormData()
for (var i = 0; i < this.disposal.disposalAfterFile.length; i++) {
if (this.disposal.disposalAfterFile[i]) {
formData.append('FFILE', this.disposal.disposalAfterFile[i])
}
}
// formData.append('FFILE', this.disposal.disposalAfterFile)
console.info(this.disposal.MAJORDANGERSOURCE_DISPOSAL_ID)
formData.append('FOREIGN_KEY', this.disposal.MAJORDANGERSOURCE_DISPOSAL_ID)
formData.append('TYPE', 21)
this.uploadFileSubmit(formData, '处置后照片上传完成')
},
uploadFileSubmit(formData, str) {
upload(
'/imgfiles/add',
formData
).then((data) => {
console.info(str)
}).catch((e) => {
})
},
handleTimerOperation() {
this.getStorageTankData()
this.getStorageTankLogList()
},
// 获取监测数据实时数据
getStorageTankData() {
// var _this = this
// storagetank/goEdit
requestFN(
'/homemajor/getStoragetankInfo',
{
MAJORDANGERSOURCE_STORAGETANK_ID: '1'
}
).then((data) => {
this.storageTankData = Object.assign({}, data.pd) // copy obj
const liquidLevel = this.storageTankData['STORAGETANK' + this.pd.MAJORDANGERSOURCE_STORAGETANK + '_LIQUIDLEVEL']
const temperature = this.storageTankData['STORAGETANK' + this.pd.MAJORDANGERSOURCE_STORAGETANK + '_TEMPERATURE']
this.$set(this.pd, 'STORAGETANK_LIQUIDLEVEL', liquidLevel)
this.$set(this.pd, 'STORAGETANK_TEMPERATURE', temperature)
// eslint-disable-next-line no-unused-vars
var ALARM_LEVEL = 10
this.pd.SENSORLIST.forEach(item => {
// eslint-disable-next-line no-constant-condition,no-cond-assign
if (item.MONITORINGDEVICESENSOR_TYPE == 'MONITORINGEQUIPMENTTYPE001') { // 液位
if (Number(item.RANGE1_MIN) <= Number(liquidLevel) && Number(liquidLevel) <= Number(item.RANGE1_MAX)) {
this.$set(this.pd, 'LIQUIDLEVELCLASS', 'red')
this.$set(this.pd, 'LIQUIDLEVEL_RANGEMIN', item.RANGE1_MIN)
this.$set(this.pd, 'LIQUIDLEVEL_RANGEMAX', item.RANGE1_MAX)
if (ALARM_LEVEL > 1) {
ALARM_LEVEL = 1
this.disposalNew.ALARM_TYPE = item.MONITORINGDEVICESENSOR_TYPE
this.disposalNew.ALARM_LEVEL = '1'
}
} else if (Number(item.RANGE2_MIN) <= Number(liquidLevel) && Number(liquidLevel) <= Number(item.RANGE2_MAX)) {
this.$set(this.pd, 'LIQUIDLEVELCLASS', 'orange')
this.$set(this.pd, 'LIQUIDLEVEL_RANGEMIN', item.RANGE2_MIN)
this.$set(this.pd, 'LIQUIDLEVEL_RANGEMAX', item.RANGE2_MAX)
if (ALARM_LEVEL > 2) {
ALARM_LEVEL = 2
this.disposalNew.ALARM_TYPE = item.MONITORINGDEVICESENSOR_TYPE
this.disposalNew.ALARM_LEVEL = '2'
}
} else if (Number(item.RANGE3_MIN) <= Number(liquidLevel) && Number(liquidLevel) <= Number(item.RANGE3_MAX)) {
this.$set(this.pd, 'LIQUIDLEVELCLASS', 'yellow')
this.$set(this.pd, 'LIQUIDLEVEL_RANGEMIN', item.RANGE3_MIN)
this.$set(this.pd, 'LIQUIDLEVEL_RANGEMAX', item.RANGE3_MAX)
if (ALARM_LEVEL > 3) {
ALARM_LEVEL = 3
this.disposalNew.ALARM_TYPE = item.MONITORINGDEVICESENSOR_TYPE
this.disposalNew.ALARM_LEVEL = '3'
}
} else if (Number(item.RANGE4_MIN) <= Number(liquidLevel) && Number(liquidLevel) <= Number(item.RANGE4_MAX)) {
this.$set(this.pd, 'LIQUIDLEVELCLASS', 'blue')
this.$set(this.pd, 'LIQUIDLEVEL_RANGEMIN', item.RANGE4_MIN)
this.$set(this.pd, 'LIQUIDLEVEL_RANGEMAX', item.RANGE4_MAX)
if (ALARM_LEVEL > 4) {
ALARM_LEVEL = 4
this.disposalNew.ALARM_TYPE = item.MONITORINGDEVICESENSOR_TYPE
this.disposalNew.ALARM_LEVEL = '4'
}
} else {
this.$set(this.pd, 'LIQUIDLEVELCLASS', 'green')
this.$set(this.pd, 'LIQUIDLEVEL_RANGEMIN', '-')
this.$set(this.pd, 'LIQUIDLEVEL_RANGEMAX', '-')
}
if (ALARM_LEVEL < 10 && this.disposalNew.ALARM_TYPE == item.MONITORINGDEVICESENSOR_TYPE) {
this.disposalNew.ALARM_VALUE = liquidLevel
this.disposalNew.ALARM_RANGE_MIN = this.pd.LIQUIDLEVEL_RANGEMIN
this.disposalNew.ALARM_RANGE_MAX = this.pd.LIQUIDLEVEL_RANGEMAX
}
// eslint-disable-next-line no-constant-condition,no-cond-assign
} else if (item.MONITORINGDEVICESENSOR_TYPE == 'MONITORINGEQUIPMENTTYPE002') { // 温度
if (Number(item.RANGE1_MIN) <= Number(temperature) && Number(temperature) <= Number(item.RANGE1_MAX)) {
this.$set(this.pd, 'TEMPERATURECLASS', 'red')
this.$set(this.pd, 'TEMPERATURE_RANGEMIN', item.RANGE1_MIN)
this.$set(this.pd, 'TEMPERATURE_RANGEMAX', item.RANGE1_MAX)
if (ALARM_LEVEL > 1) {
ALARM_LEVEL = 1
this.disposalNew.ALARM_TYPE = item.MONITORINGDEVICESENSOR_TYPE
this.disposalNew.ALARM_LEVEL = '1'
}
} else if (Number(item.RANGE2_MIN) <= Number(temperature) && Number(temperature) <= Number(item.RANGE2_MAX)) {
this.$set(this.pd, 'TEMPERATURECLASS', 'orange')
this.$set(this.pd, 'TEMPERATURE_RANGEMIN', item.RANGE2_MIN)
this.$set(this.pd, 'TEMPERATURE_RANGEMAX', item.RANGE2_MAX)
if (ALARM_LEVEL > 2) {
ALARM_LEVEL = 2
this.disposalNew.ALARM_TYPE = item.MONITORINGDEVICESENSOR_TYPE
this.disposalNew.ALARM_LEVEL = '2'
}
} else if (Number(item.RANGE3_MIN) <= Number(temperature) && Number(temperature) <= Number(item.RANGE3_MAX)) {
this.$set(this.pd, 'TEMPERATURECLASS', 'yellow')
this.$set(this.pd, 'TEMPERATURE_RANGEMIN', item.RANGE3_MIN)
this.$set(this.pd, 'TEMPERATURE_RANGEMAX', item.RANGE3_MAX)
if (ALARM_LEVEL > 3) {
ALARM_LEVEL = 3
this.disposalNew.ALARM_TYPE = item.MONITORINGDEVICESENSOR_TYPE
this.disposalNew.ALARM_LEVEL = '3'
}
} else if (Number(item.RANGE4_MIN) <= Number(temperature) && Number(temperature) <= Number(item.RANGE4_MAX)) {
this.$set(this.pd, 'TEMPERATURECLASS', 'blue')
this.$set(this.pd, 'TEMPERATURE_RANGEMIN', item.RANGE4_MIN)
this.$set(this.pd, 'TEMPERATURE_RANGEMAX', item.RANGE4_MAX)
if (ALARM_LEVEL > 4) {
ALARM_LEVEL = 4
this.disposalNew.ALARM_TYPE = item.MONITORINGDEVICESENSOR_TYPE
this.disposalNew.ALARM_LEVEL = '4'
}
} else {
this.$set(this.pd, 'TEMPERATURECLASS', 'green')
this.$set(this.pd, 'TEMPERATURE_RANGEMIN', '-')
this.$set(this.pd, 'TEMPERATURE_RANGEMAX', '-')
}
if (ALARM_LEVEL < 10 && this.disposalNew.ALARM_TYPE == item.MONITORINGDEVICESENSOR_TYPE) {
this.disposalNew.ALARM_VALUE = temperature
this.disposalNew.ALARM_RANGE_MIN = this.pd.TEMPERATURE_RANGEMIN
this.disposalNew.ALARM_RANGE_MAX = this.pd.TEMPERATURE_RANGEMAX
}
}
})
// this.getDisplsal(_this)
this.listLoading = false
}).catch((e) => {
this.listLoading = false
})
},
// 获取最新的有效报警数据
getDisplsal(_this) {
this.listLoading = true
requestFN(
'/majordangersourcedisposal/findValidateData',
{
MAJORDANGERSOURCE_ID: this.pd.MAJORDANGERSOURCE_ID
}
).then((data) => {
this.listLoading = false
_this.disposal = Object.assign(_this.disposal, data.varList.length > 0 ? data.varList[0] : {}) // copy obj
// eslint-disable-next-line one-var
let message = '', type = ''
// 当前监测数据等级 高于 库里linechartBI报警数据等级升级报警信息
if (_this.disposal.MAJORDANGERSOURCE_DISPOSAL_ID &&
Number(_this.disposal.ALARM_LEVEL) > Number(_this.disposalNew.ALARM_LEVEL == '' ? '10' : _this.disposalNew.ALARM_LEVEL)) {
_this.disposal = Object.assign(_this.disposal, _this.disposalNew)
message = _this.pd.MAJORDANGERSOURCE_NAME + '【' + (_this.disposalNew.ALARM_TYPE == 'MONITORINGEQUIPMENTTYPE001' ? '液位' : '温度') + '】已升级为'
if (_this.disposalNew.ALARM_LEVEL == '1') {
message += '一级'
type = 'error'
} else if (_this.disposalNew.ALARM_LEVEL == '2') {
message += '二级'
type = 'warning'
} else if (_this.disposalNew.ALARM_LEVEL == '3') {
message += '三级'
type = 'warning'
} else if (_this.disposalNew.ALARM_LEVEL == '4') {
message += '四级'
type = 'info'
}
message += '预警,请尽快处理'
// _this.confirm('up')
} else { // 新增报警数据
_this.disposal = Object.assign(_this.disposal, _this.disposalNew)
message = _this.pd.MAJORDANGERSOURCE_NAME + '【' + (_this.disposalNew.ALARM_TYPE == 'MONITORINGEQUIPMENTTYPE001' ? '液位' : '温度') + '】已达'
if (_this.disposalNew.ALARM_LEVEL == '1') {
message += '一级'
type = 'error'
} else if (_this.disposalNew.ALARM_LEVEL == '2') {
message += '二级'
type = 'warning'
} else if (_this.disposalNew.ALARM_LEVEL == '3') {
message += '三级'
type = 'warning'
} else if (_this.disposalNew.ALARM_LEVEL == '4') {
message += '四级'
type = 'info'
}
message += '预警,请尽快处理'
}
if (type) {
if (!_this.disposal.MAJORDANGERSOURCE_DISPOSAL_ID) {
// _this.confirm('add')
}
_this.$set(_this, 'hasDisposal', true)
if (_this.msg) {
_this.msg.close()
_this.msg = null
}
_this.msg = this.$message({
message: message,
type: type,
showClose: false,
duration: 0
})
}
}).catch((e) => {
this.listLoading = false
})
},
// 获取监测数据对接记录最近30条
getStorageTankLogList() {
this.listLoading = true
// storagetanklog/list
requestFN(
'/homemajor/listStoragetankLog?showCount=5&currentPage=1',
{
STORAGETANK_OPERATTIME: 'STORAGETANK' + this.pd.MAJORDANGERSOURCE_STORAGETANK + '_OPERATTIME'
}
).then((data) => {
this.logList = data.varList
for (let i = this.logList.length - 1; i >= 0; i--) {
var item = this.logList[i]
var j = this.logList.length - 1 - i
const datatime = item['STORAGETANK' + this.pd.MAJORDANGERSOURCE_STORAGETANK + '_OPERATTIME']
this.chartData.LIQUIDLEVEL.dataX[j] = datatime.length > 11 ? datatime.substr(11) : datatime
this.chartData.TEMPERATURE.dataX[j] = datatime.length > 11 ? datatime.substr(11) : datatime
this.chartData.LIQUIDLEVEL.dataY[0][j] = item['STORAGETANK' + this.pd.MAJORDANGERSOURCE_STORAGETANK + '_LIQUIDLEVEL']
this.chartData.TEMPERATURE.dataY[0][j] = item['STORAGETANK' + this.pd.MAJORDANGERSOURCE_STORAGETANK + '_TEMPERATURE']
}
this.$refs.CHART_LIQUIDLEVEL.renewOption(this.chartData.LIQUIDLEVEL)
this.$refs.CHART_TEMPERATURE.renewOption(this.chartData.TEMPERATURE)
this.listLoading = false
}).catch((e) => {
this.listLoading = false
})
},
// 查看
goDisposalList() {
this.$parent.activeName = 'DisposalList'
},
// 获取数据字典数据
getDict: function() {
requestFN(
'/dictionariesCorp/getLevels',
{
DICTIONARIES_ID: '6a724d36c3ad416fad22049d932c1987'
}
).then((data) => {
this.ALARM_TYPE_List = data.list
}).catch((e) => {
})
},
resetDisposal() {
this.disposal = { // 报警信息
MAJORDANGERSOURCE_DISPOSAL_ID: '',
MAJORDANGERSOURCE_ID: this.id,
ALARM_TYPE: '', // 报警类型
ALARM_VALUE: '', // 报警值
ALARM_LEVEL: '', // 报警级别1.一级 2.二级 3.三级 4.四级)
ALARM_RANGE_MIN: '', // 报警阈值下限
ALARM_RANGE_MAX: '', // 报警阈值上限
DISPOSAL_TIME: '', // 处置生成时间
DISPOSAL_PERSON: '', // 处置人
DISPOSAL_METHOD: '', // 处置方式
DISPOSAL_DESC: '', // 处置描述
DISPOSAL_TIME_OVER: '', // 处置完成时间
disposalBeforeFile: [], // 处置前照片
disposalAfterFile: [] // 处置后照片
}
}
}
}
</script>
<style lang="scss" scoped>
@mixin table() {
table {
width: 100%;
border-collapse: collapse;
text-align: center;
tr {
td {
width: 20%;
border: 2px solid #b1ccec;
padding: 1.601vh 0;
}
}
}
}
.dialog_body {
width: 100%;
.top {
display: flex;
padding-bottom: 1.601vh;
border-bottom: 2px solid #316b8b;
.top_left {
flex-basis: 10%;
display: flex;
align-items: center;
flex-wrap: wrap;
.title {
text-align: center;
flex-basis: 100%;
}
img {
height: 10.672vh;
flex-basis: 100%;
}
}
.top_center {
flex: 1;
margin-left: 50px;
@include table();
}
.top_right {
margin-left: 15px;
flex-basis: 15%;
button {
width: 100%;
cursor: pointer;
background-color: rgba(49, 188, 211, 0.7);
color: #fff;
border: none;
border-radius: 3px;
padding: 1.301vh 0;
margin: 0.3vh 0;
}
}
}
.center {
display: flex;
justify-content: space-around;
padding-top: 1.601vh;
padding-bottom: 1.601vh;
border-bottom: 2px solid #316b8b;
#main4, #main5 {
flex-basis: 80%;
height: 15.97vh;
}
}
.bottom {
padding-top: 1.601vh;
padding-bottom: 1.601vh;
border-bottom: 2px solid #316b8b;
.tabs {
display: flex;
font-size: 14px;
margin-bottom: 0.534vh;
.tab {
background-color: rgba(58, 78, 115, 0.6);
padding: 1.5vh 60px;
border-radius: 3px;
margin-right: 0.534vh;
cursor: pointer;
&.active, &:hover {
background-color: rgba(45, 143, 173, 0.6);
}
}
}
@include table();
}
}
</style>