预警告警

This commit is contained in:
jjLv 2024-09-20 14:34:45 +08:00
parent ad93fb05eb
commit 81aa7eb50b
10 changed files with 293 additions and 20 deletions

18
src/api/base/warnAlert.js Normal file
View File

@ -0,0 +1,18 @@
/**
* 预警告警页面 API
*/
import request from '@/utils/request'
/** 预警告警列表查询 */
export const queryWarnAlertListApi = (data) => {
return request.get('/base/tbDevAttribute/list', {
params: data
})
}
/** 预警告警列表查询 */
export const handleWarnAlertApi = (data) => {
// return request.post('/base/tbDevAttribute/handle',data)
return request.post('/base/tbDevAttribute/handle', data)
}

View File

@ -64,6 +64,7 @@
style="width: 240px" style="width: 240px"
value-format="yyyy-MM-dd" value-format="yyyy-MM-dd"
type="date" type="date"
:placeholder="`请输入${item.f_label}`"
/> />
<el-date-picker <el-date-picker
v-if="item.f_type === 'dateRange'" v-if="item.f_type === 'dateRange'"

View File

@ -76,7 +76,7 @@
</TableModelTwo> </TableModelTwo>
<el-form-item label="审核意见" prop="remarks"> <el-form-item label="审核意见" prop="remarks">
<!-- <textarea id="remarks" v-model="projectParams.remarks" class="el-textarea" placeholder="请输入审核意见" disabled></textarea>--> <!-- <textarea id="remarks" v-model="projectParams.remarks" class="el-textarea" placeholder="请输入审核意见" disabled></textarea>-->
<el-input :rows="4" type="textarea" v-model="projectParams.remarks" placeholder="请输入" disabled/> <el-input :rows="4" type="textarea" v-model="projectParams.remarks" placeholder="请输入审核意见" disabled/>
</el-form-item> </el-form-item>
<el-row type="flex" justify="space-between" :gutter="24"> <el-row type="flex" justify="space-between" :gutter="24">
<el-col :span="12"> <el-col :span="12">
@ -319,7 +319,7 @@ export default {
let res = await approveEdgeDeviceApi(this.projectParams) let res = await approveEdgeDeviceApi(this.projectParams)
if(res.code === 200) { if(res.code === 200) {
this.$modal.msgSuccess('操作成功') this.$modal.msgSuccess('操作成功')
this.$emit('closeDialogApprove', true) this.$emit('closeDialogAll', true)
} }
} }
@ -333,7 +333,7 @@ export default {
let res = await approveEdgeDeviceApi(this.projectParams) let res = await approveEdgeDeviceApi(this.projectParams)
if(res.code === 200) { if(res.code === 200) {
this.$modal.msgSuccess('操作成功') this.$modal.msgSuccess('操作成功')
this.$emit('closeDialogApprove', true) this.$emit('closeDialogAll', true)
} }
} }
}) })

View File

@ -75,8 +75,8 @@
> >
</TableModelTwo> </TableModelTwo>
<el-form-item label="审核意见" prop="remarks"> <el-form-item label="审核意见" prop="remarks">
<textarea id="remarks" v-model="projectParams.remarks" class="el-textarea" placeholder="请输入审核意见" ></textarea> <!-- <textarea id="remarks" v-model="projectParams.remarks" class="el-textarea" placeholder="请输入审核意见" disabled></textarea>-->
<!-- <el-input v-model="projectParams.relUser" placeholder="请输入" disabled/> --> <el-input :rows="4" type="textarea" v-model="projectParams.remarks" placeholder="请输入审核意见" />
</el-form-item> </el-form-item>
</el-form> </el-form>

View File

@ -1,10 +1,4 @@
export const formLabelAll = [
{ f_label: '边代名称', f_model: 'departName', f_type: 'ipt' },
{ f_label: '边代编号', f_model: 'departName', f_type: 'ipt' },
{ f_label: '工程名称', f_model: 'headUser', f_type: 'ipt' },
{ f_label: '杆塔编号', f_model: 'headUser', f_type: 'ipt' },
{ f_label: '绑定时间', f_model: 'headUser', f_type: 'date' },
]
export const columnsListAll = [ export const columnsListAll = [
{ t_props: 'departName', t_label: '申请项目部', }, { t_props: 'departName', t_label: '申请项目部', },
{ t_props: 'proName', t_label: '工程名称' }, { t_props: 'proName', t_label: '工程名称' },

View File

@ -1,9 +1,8 @@
export const formLabel = [ export const formLabel = [
{ f_label: '边代名称', f_model: 'departName', f_type: 'ipt' }, { f_label: '项目部名称', f_model: 'departName', f_type: 'ipt' },
{ f_label: '边代编号', f_model: 'departName', f_type: 'ipt' }, { f_label: '工程名称', f_model: 'proName', f_type: 'ipt' },
{ f_label: '工程名称', f_model: 'headUser', f_type: 'ipt' }, { f_label: '申请人', f_model: 'relUser', f_type: 'ipt' },
{ f_label: '杆塔编号', f_model: 'headUser', f_type: 'ipt' }, { f_label: '申请时间', f_model: 'auditStatus', f_type: 'date', },
{ f_label: '绑定时间', f_model: 'headUser', f_type: 'date' },
] ]
export const columnsList = [ export const columnsList = [
{ t_props: 'departName', t_label: '申请项目部', }, { t_props: 'departName', t_label: '申请项目部', },
@ -12,7 +11,7 @@ export const columnsList = [
{ t_props: 'relUser', t_label: '申请人', }, { t_props: 'relUser', t_label: '申请人', },
{ t_props: 'relPhone', t_label: '联系方式', t_slot: 'relPhone' }, { t_props: 'relPhone', t_label: '联系方式', t_slot: 'relPhone' },
{ t_props: 'createTime', t_label: '申请时间', }, { t_props: 'createTime', t_label: '申请时间', },
{ t_props: 'auditStatus', t_label: '申请状态', t_slot: 'auditStatus' }, { t_props: 'auditStatus', t_label: '审核状态', t_slot: 'auditStatus' },
] ]
export const dialogConfig = { export const dialogConfig = {

View File

@ -0,0 +1,117 @@
<template>
<!-- 工程管理 新增编辑 表单组件 -->
<div >
<el-form
label-width="100px"
size="medium"
ref="warnAlertParamsRef"
:model="warnAlertParams"
:rules="warnAlertParamsRules"
>
<el-form-item label="预警处置" prop="remarks">
<el-input v-model="warnAlertParams.remarks" :maxlength="15" placeholder="请输入预警处置内容" />
</el-form-item>
<el-form-item>
<el-button type="success" @click="onSubmit">确认</el-button>
<el-button
@click="
() => {
this.$emit('closeDialog')
}
"
>取消</el-button
>
</el-form-item>
</el-form>
</div>
</template>
<script>
import {
handleWarnAlertApi
} from '@/api/base/warnAlert'
export default {
name: 'FormWarnAlert',
props: {
editParams: {
type: Object,
default: () => null,
},
},
components: { },
created() {
},
async mounted() {
console.log(this.editParams)
if (this.editParams) {
await Object.assign(this.warnAlertParams, this.editParams)
console.log(this.warnAlertParams)
this.subSort = 2
} else {
this.subSort = 1
}
},
data() {
return {
subSort: '', // 1 / 2
open: false,
warnAlertParams: {
id: undefined, // id
isWarn: 0, //
remarks: undefined, //
},
//
warnAlertParamsRules: {
},
}
},
methods: {
/** 改变树结构 */
changeTree(leaf) {
leaf.map(item => {
item.value = item.id
if(item.children) {
this.changeTree(item.children)
}
})
return leaf
},
/** 级联选择器改变 */
handleCas(e) {
this.warnAlertParams.impUnit = e[e.length - 1]
},
/** 确认按钮 */
onSubmit() {
console.log(this.warnAlertParams)
this.$refs.warnAlertParamsRef.validate(valid => {
if (valid) {
this.warnAlertParams.isWarn = 0
// console.log(this.warnAlertParams+'-----------------------')
handleWarnAlertApi(this.warnAlertParams).then(res => {
this.$modal.msgSuccess('操作成功')
// 2.
this.$emit('closeDialog', true)
}).catch(err => {
console.log(err)
})
}
})
},
},
}
</script>
<style scoped>
::v-deep .el-select {
width: 100%;
}
::v-deep .el-form-item__label{
font-weight: normal;
}
</style>

View File

@ -0,0 +1,36 @@
import {
queryDeviceTypeApi
} from '@/api/base/device'
export const queryDeviceTypes = () => {
queryDeviceTypeApi({'dictType':'dev_type'}).then(res => {
formLabel[1].f_selList = res.data.map(item => {
return {
label: item.dictLabel,
value: item.dictCode
}
})
}).catch(err => {})
}
export const formLabel = [
{ f_label: '设备名称', f_model: 'devName', f_type: 'ipt' },
{ f_label: '设备类型', f_model: 'devType', f_type: 'sel',f_selList: [] },
{ f_label: '预警日期', f_model: 'startTime', f_type: 'dateRange' },
]
export const columnsList = [
{ t_props: 'devTypeName', t_label: '预警设备类型' },
{ t_props: 'devName', t_label: '预警设备名称', },
{ t_props: 'devCode', t_label: '预警设备编号', },
{ t_props: 'warnName', t_label: '预警内容', t_slot: 'warnName' },
{ t_props: 'jcTime', t_label: '预警时间', },
{ t_props: 'status', t_label: '状态', },
{ t_props: 'remarks', t_label: '预警处置',t_slot: 'remarks'},
]
export const dialogConfig = {
outerWidth: '40%',
outerTitle: '',
outerVisible: false,
};

View File

@ -0,0 +1,108 @@
<template>
<!-- 工程管理页面 -->
<div class="app-container">
<!-- 表格 -->
<TableModel
:formLabel="formLabel"
:columnsList="columnsList"
:request-api="queryWarnAlertListApi"
ref="tableRef"
>
<template slot="btn" slot-scope="{ queryParams }">
<el-button
@click="handleExportData(
exportList,
'base/tbDevAttribute/export',
'异常记录',
queryParams
)"
icon="el-icon-upload2"
size="mini"
>导出数据</el-button
>
</template>
<template slot="handle" slot-scope="{ data }">
<el-button
type="primary"
size="mini"
v-if="data.status === '未处置'"
@click="handleWarnData(data)"
>处理</el-button
>
</template>
<template slot="warnName" slot-scope="{ data }">
<span
v-if="data.warnName == null || data.warnName === ''"
></span
>
<span v-else>{{ data.warnName }}</span>
</template>
<template slot="remarks" slot-scope="{ data }">
<span
v-if="data.remarks == null || data.remarks === ''"
></span
>
<span v-else>{{ data.remarks }}</span>
</template>
</TableModel>
<!-- 处理时的弹框 -->
<DialogModel
:dialogConfig="dialogConfig"
@closeDialogOuter="closeDialogOuter"
>
<template slot="outerContent">
<!-- 新增以及修改数据的表单组件 -->
<FormWarnAlert
:editParams="editParams"
@closeDialog="closeDialog"
/>
</template>
</DialogModel>
</div>
</template>
<script>
import { formLabel, columnsList,dialogConfig,queryDeviceTypes } from './config'
import { commonMixin } from '../mixins/common'
import {
queryWarnAlertListApi
} from '@/api/base/warnAlert'
import FormWarnAlert from './components/form-warnAlert.vue'
export default {
name: 'WarnAlert',
methods: {
queryWarnAlertListApi,
handleWarnData(v) {
this.editParams = v
this.dialogConfig.outerVisible = true
this.dialogConfig.outerTitle = '处理异常记录'
// this.dialogConfig.dialogWidth = '50%'
// this.dialogConfig.dialogHeight = '50%'
// this.dialogConfig.dialogType = 'exam'
},
},
mixins: [commonMixin],
components: {
FormWarnAlert
},
created() {
queryDeviceTypes()
},
data() {
return {
//
formLabel,
// id
dialogConfig,
exportList: [],
//
columnsList,
//
}
},
}
</script>