报警邮件设置 未完成

This commit is contained in:
hzz 2024-02-18 17:03:29 +08:00
parent 674198c8b8
commit 34eda2a916
3 changed files with 96 additions and 111 deletions

46
src/api/alarm/index.js Normal file
View File

@ -0,0 +1,46 @@
import request from '@/utils/request'
//big/getScreen
//监控列表
export function getEmailList(query) {
return request({
url: '/system/email/list',
method: 'get',
params: query
})
}
//获取监控列表详情
export function getEmailInfo(query) {
return request({
url: '/system/email/getInfo?deviceId=' + query,
method: 'get',
})
}
//添加监控列表
export function AddEmailAlarm(query) {
return request({
url: '/system/email/add',
method: 'post',
params: query
})
}
//修改监控列表
export function EditEmailAlarm(query) {
return request({
url: '/system/email/edit',
method: 'put',
params: query
})
}
//删除监控列表
export function DeleteEmailAlarm(query) {
return request({
url: '/system/email/remove?deviceId=' + query,
method: 'delete',
})
}

View File

@ -15,8 +15,8 @@
</template>
<el-input v-model="prop.form.email" placeholder="邮箱" />
</el-form-item>
<el-form-item label="监控类型">
<el-select v-model="prop.form.typeId" @change="typeChange" filterable placeholder="选择监控类型">
<el-form-item label="设备类型">
<el-select v-model="prop.form.typeId" @change="typeChange" filterable placeholder="选择设备类型">
<el-option value="" label="请选择"></el-option>
<el-option v-for="item in monitorList" :key="item.value" :label="item.label" :value="item.value" />
</el-select>
@ -49,8 +49,9 @@
</template>
<script setup>
import { ref, watch, getCurrentInstance } from 'vue'
import { ref, watch, getCurrentInstance,onMounted } from 'vue'
import { Check, Close } from '@element-plus/icons-vue'
import { getDeptList } from '@/api/big/dept'
import { addScreen, updateScreen } from '@/api/big/screen'
import { getDeviceTypeList } from '@/api/big/deviceType'
import { getDeviceList } from '@/api/big/device'
@ -80,21 +81,24 @@ const prop = defineProps({
},
}
})
let monitorList = ref([
{ label: '设备', value: 1 },
{ label: '类型', value: 2 }
])
let monitorList = ref()
//
function remoteMethodTypeId() {
getDeviceTypeList({ pageSize: 100 }).then(res => {
if (res.code === 200) {
monitorList.value = res.rows.map(item => {
return {
label: item.desc,
value: item.desc
}
})
}
})
}
function typeChange(val) {
prop.form.ids = undefined
if (val == 1) {
DeviceList()
} else if(val == 2) {
remoteMethodTypeId()
} else {
optionsList.value = []
}
emit('clearIds')
DeviceList(val)
}
const optionsList = ref([])
const { proxy: ctx } = getCurrentInstance()
@ -112,7 +116,7 @@ const handleOpen = () => {
//
const emit = defineEmits(['refreshTable', 'closeDialog'])
const emit = defineEmits(['refreshTable', 'closeDialog','clearIds'])
// /
async function addDeductionInfo() {
emit('closeDialog')
@ -150,9 +154,9 @@ const handleConfirm = () => {
}
/** 查询设备列表 */
function DeviceList() {
function DeviceList(type) {
// console.log(JSON.stringify(queryParams.value));
getDeviceList({userId: 1}).then(res => {
getDeviceList({userId: 1,type}).then(res => {
optionsList.value = res.rows.map(item => {
return {
label: item.name,
@ -160,22 +164,11 @@ function DeviceList() {
}
})
});
}
//
function remoteMethodTypeId() {
getDeviceTypeList({ pageSize: 100 }).then(res => {
if (res.code === 200) {
optionsList.value = res.rows.map(item => {
return {
label: item.desc,
value: item.id
}
onMounted(() => {
remoteMethodTypeId()
})
}
})
}
</script>

View File

@ -1,12 +1,4 @@
<!--
* @FilePath: \code\Goats-Cloud-ui\src\views\big\device\index.vue
* @Author: 王路平
* @文件版本: V1.0.0
* @Date: 2023-06-17 08:22:57
* @Description:
*
* 版权信息 : 2023 by ${再登软件}, All Rights Reserved.
-->
<template>
<div class="app-container">
<el-form :model="queryParams" ref="queryRef" :inline="true" v-show="showSearch">
@ -26,10 +18,10 @@
<el-option v-for="item in typeList" :key="item.value" :label="item.label" :value="item.label" />
</el-select>
</el-form-item>
<el-form-item label="部门名称" prop="dept">
<!-- <el-form-item label="部门名称" prop="dept">
<el-input v-model="queryParams.dept" placeholder="请输入部门名称" clearable style="width: 200px"
@keyup.enter="handleQuery" />
</el-form-item>
</el-form-item> -->
<el-form-item>
<el-button type="primary" icon="Search" @click="handleQuery">搜索</el-button>
<el-button icon="Refresh" @click="resetQuery">重置</el-button>
@ -57,14 +49,13 @@
<el-table-column label="序号" type="index" width="120" />
<!-- <el-table-column label="部门id" prop="id" width="120" /> -->
<el-table-column label="设备名称" prop="name" :show-overflow-tooltip="true" />
<el-table-column label="机架号" prop="label" :show-overflow-tooltip="true" />
<el-table-column label="类型" prop="type" :show-overflow-tooltip="true" />
<el-table-column label="型号" prop="model" align="center" :show-overflow-tooltip="true" />
<el-table-column label="所属部门" prop="deptName" align="center" :show-overflow-tooltip="true" />
<el-table-column label="状态" align="center" :show-overflow-tooltip="true">
<el-table-column label="邮箱" prop="email" :show-overflow-tooltip="true" />
<!-- <el-table-column label="类型" prop="type" :show-overflow-tooltip="true" />
<el-table-column label="型号" prop="model" align="center" :show-overflow-tooltip="true" /> -->
<el-table-column label="是否启用" align="center" :show-overflow-tooltip="true">
<template #default="scope">
<el-tag v-if="scope.row.status == 'true'" type="success">在线</el-tag>
<el-tag v-else type="warning">离线</el-tag>
<el-tag v-if="scope.row.enable == '启用'" type="success">启用</el-tag>
<el-tag v-else type="warning">未启用</el-tag>
</template>
</el-table-column>
<el-table-column label="操作" align="center" class-name="small-padding fixed-width" width="150">
@ -85,7 +76,7 @@
v-model:limit="queryParams.pageSize" @pagination="getList" />
<add_edit @closeDialog="open = false" :type="type" :title="title" :form="form" :visible="open"
@refreshTable="getList" />
@refreshTable="getList" @clearIds="clearIds" />
<!-- <assemblyVue @closeDialog="assemblyOpen = false" :form="assemblyForm" :title="assemblyTitle" :visible="assemblyOpen"></assemblyVue>
<el-dialog v-model="imgDialogVisible">
<img w-full :src="dialogImageUrl" alt="Preview Image" class="img-preview" />
@ -98,15 +89,12 @@
import { ref, reactive, toRefs, getCurrentInstance, onMounted } from 'vue'
import { Picture as IconPicture } from '@element-plus/icons-vue'
import { getDeviceList, delDevice } from '@/api/big/device'
import { getDeptList } from '@/api/big/dept'
import { getDeviceTypeList } from '@/api/big/deviceType'
import { getEmailList, getEmailInfo,AddEmailAlarm,EditEmailAlarm,DeleteEmailAlarm} from '@/api/alarm/index'
import useDeviceStore from '@/store/modules/device'
import add_edit from './components/add_edit.vue'
import useUserStore from '@/store/modules/user'
// import assemblyVue from './components/assembly'
// import devInfo from './components/devInfo.vue'
const store = useDeviceStore()
const userStore = useUserStore()
const { proxy } = getCurrentInstance();
const data = reactive({
form: {},
@ -142,13 +130,13 @@ const type = ref("add");
const typeList = ref([])
/** 查询设备列表 */
function getList() {
// loading.value = true;
loading.value = true;
// console.log(JSON.stringify(queryParams.value));
// getDeviceList(queryParams.value).then(res => {
// loading.value = false;
// deviceList.value = res.rows;
// total.value = res.total;
// });
getEmailList(queryParams.value).then(res => {
loading.value = false;
deviceList.value = res.rows;
total.value = res.total;
});
}
@ -161,6 +149,9 @@ function resetQuery() {
proxy.resetForm("queryRef");
handleQuery();
}
function clearIds() {
form.value.ids = []
}
/** 添加部门 */
function handleAdd() {
@ -218,59 +209,14 @@ function handleSelectionChange(selection) {
//
function remoteMethodTypeId() {
getDeviceTypeList({ pageSize: 100 }).then(res => {
if (res.code === 200) {
typeList.value = res.rows.map(item => {
return {
label: item.desc,
value: item.id
}
})
store.setTypeList(typeList.value)
}
})
}
//
function remoteMethodDeptId() {
getDeptList({ pageSize: 100 }).then(res => {
if (res.code === 200) {
let deptList = res.rows.map(item => {
return {
label: item.deptName,
value: String(item.deptId)
}
})
store.setDeptList(deptList)
}
})
}
//
function remoteMethodGetwayId() {
getDeviceList({ pageNum: 1,pageSize: 100, type: '网关',userId:1 }).then(res => {
if (res.code === 200) {
let getwayList = res.rows.map(item => {
return {
label: item.name,
value: item.id
}
})
store.setGetwayList(getwayList)
}
})
}
//
function getAddFormOptions() {
remoteMethodTypeId()
remoteMethodDeptId()
remoteMethodGetwayId()
}
onMounted(() => {
getList();
getAddFormOptions()
})
</script>