This commit is contained in:
hzz 2024-02-19 17:03:34 +08:00
parent 34eda2a916
commit 4520d7d612
3 changed files with 72 additions and 60 deletions

View File

@ -14,8 +14,9 @@ export function getEmailList(query) {
//获取监控列表详情
export function getEmailInfo(query) {
return request({
url: '/system/email/getInfo?deviceId=' + query,
url: '/system/email/getInfo',
method: 'get',
params: query
})
}

View File

@ -3,7 +3,7 @@
<base-dialog :title="prop.title" width="60%" :visible="prop.visible" :autoHeight="false" @open="handleOpen"
@handleConfirm="handleConfirm" @close="handleClose">
<div class="body">
<el-form :model="prop.form" label-width="120px">
<el-form :model="form" label-width="120px">
<el-form-item>
<template #label>
<span>
@ -13,21 +13,21 @@
发送邮箱
</span>
</template>
<el-input v-model="prop.form.email" placeholder="邮箱" />
<el-input v-model="form.email" placeholder="邮箱" />
</el-form-item>
<el-form-item label="设备类型">
<el-select v-model="prop.form.typeId" @change="typeChange" filterable placeholder="选择设备类型">
<el-select v-model="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>
</el-form-item>
<el-form-item label="监控列表">
<el-select v-model="prop.form.ids" multiple filterable placeholder="Select" style="width: 240px">
<el-select v-model="form.ids" :multiple="prop.type == 'add'?true:false" filterable placeholder="Select" style="width: 240px">
<el-option v-for="item in optionsList" :key="item.value" :label="item.label" :value="item.value" />
</el-select>
</el-form-item>
<el-form-item label="邮件标题">
<el-input v-model="prop.form.email_title" placeholder="备注" />
<el-input v-model="form.title" placeholder="备注" />
</el-form-item>
<el-form-item>
<template #label>
@ -38,10 +38,14 @@
邮件内容
</span>
</template>
<el-input v-model="prop.form.email_content" placeholder="备注" />
<el-input v-model="form.content" placeholder="备注" />
</el-form-item>
<el-form-item label="备注">
<el-input v-model="prop.form.remark" placeholder="备注" />
<el-input v-model="form.remark" placeholder="备注" />
</el-form-item>
<el-form-item label="是否启用">
<el-switch v-model="form.enable" size="large" style="margin-left: 24px" inline-prompt
:active-icon="Check" :inactive-icon="Close" active-value="启用" inactive-value="未启用" />
</el-form-item>
</el-form>
</div>
@ -52,7 +56,7 @@
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 {getEmailInfo,AddEmailAlarm,EditEmailAlarm,DeleteEmailAlarm} from '@/api/alarm/index'
import { getDeviceTypeList } from '@/api/big/deviceType'
import { getDeviceList } from '@/api/big/device'
@ -69,18 +73,18 @@ const prop = defineProps({
type: String,
default: 'add',
},
form: {
type: Object,
default: {
})
let form = ref({
email: undefined,
typeId: undefined,
ids: undefined,
email_title: false,
email_content: undefined,
title: '',
content: undefined,
remark: undefined,
},
}
})
enable: '启用',
})
let monitorList = ref()
//
function remoteMethodTypeId() {
@ -95,9 +99,9 @@ function remoteMethodTypeId() {
}
})
}
//
function typeChange(val) {
emit('clearIds')
form.value.ids = []
DeviceList(val)
}
const optionsList = ref([])
@ -106,11 +110,36 @@ const { proxy: ctx } = getCurrentInstance()
const handleClose = () => {
//baseFormRef.value.reset()
form.value = {
email: undefined,
typeId: undefined,
ids: undefined,
title: '',
content: undefined,
remark: undefined,
enable: '启用',
}
emit('closeDialog')
emit('refreshTable')
}
//
const handleOpen = () => {
if(prop.type == 'add') {
form.value = {
email: undefined,
typeId: undefined,
ids: undefined,
title: '',
content: undefined,
remark: undefined,
enable: '启用',
}
} else {
getEmailInfo({deviceId: prop.type}).then(res => {
form.value = res.data
form.value.ids = res.data.ids.split(',')
})
}
// getAddFormOptions()
}
@ -120,10 +149,11 @@ const emit = defineEmits(['refreshTable', 'closeDialog','clearIds'])
// /
async function addDeductionInfo() {
emit('closeDialog')
return
//
if (prop.type == 'add') {
let { code, msg } = await addScreen(prop.form)
let return_form = JSON.parse(JSON.stringify(form.value))
return_form.ids = return_form.ids.join(',')
let { code, msg } = await AddEmailAlarm(return_form)
ctx.$message({
type: code === 200 ? 'success' : 'warning',
message: msg,
@ -134,7 +164,7 @@ async function addDeductionInfo() {
emit('closeDialog')
}
} else { //
let { code, msg } = await updateScreen(prop.form)
let { code, msg } = await EditEmailAlarm(form)
ctx.$message({
type: code === 200 ? 'success' : 'warning',
message: msg,

View File

@ -30,14 +30,14 @@
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button type="primary" plain icon="Plus" @click="handleAdd"
v-hasPermi="['big:device:add']">新增</el-button>
v-hasPermi="['alarm:send:add']">新增</el-button>
</el-col>
<el-col :span="1.5">
<el-button type="success" plain icon="Edit" :disabled="single" v-hasPermi="['big:device:update']"
<!-- <el-col :span="1.5">
<el-button type="success" plain icon="Edit" :disabled="single" v-hasPermi="['alarm:send:update']"
@click="handleUpdate(ids[0])">修改</el-button>
</el-col>
</el-col> -->
<el-col :span="1.5">
<el-button type="danger" plain icon="Delete" :disabled="multiple" v-hasPermi="['big:device:del']"
<el-button type="danger" plain icon="Delete" :disabled="multiple" v-hasPermi="['alarm:send:del']"
@click="handleDelete">删除</el-button>
</el-col>
<right-toolbar v-model:showSearch="showSearch" @queryTable="getList"></right-toolbar>
@ -60,12 +60,12 @@
</el-table-column>
<el-table-column label="操作" align="center" class-name="small-padding fixed-width" width="150">
<template #default="scope">
<el-tooltip content="修改" placement="top" v-if="scope.row.roleId !== 1">
<el-button link type="primary" v-hasPermi="['big:device:update']" icon="Edit"
@click="handleUpdate(scope.row.id)"></el-button>
</el-tooltip>
<!-- <el-tooltip content="修改" placement="top" v-if="scope.row.roleId !== 1">
<el-button link type="primary" v-hasPermi="['alarm:send:update']" icon="Edit"
@click="handleUpdate(scope.row.deviceId)"></el-button>
</el-tooltip> -->
<el-tooltip content="删除" placement="top" v-if="scope.row.userId !== 1">
<el-button link type="primary" icon="Delete" v-hasPermi="['big:device:del']"
<el-button link type="primary" icon="Delete" v-hasPermi="['alarm:send:del']"
@click="handleDelete(scope.row)"></el-button>
</el-tooltip>
</template>
@ -75,8 +75,8 @@
<pagination v-show="total > 0" :total="total" v-model:page="queryParams.pageNum"
v-model:limit="queryParams.pageSize" @pagination="getList" />
<add_edit @closeDialog="open = false" :type="type" :title="title" :form="form" :visible="open"
@refreshTable="getList" @clearIds="clearIds" />
<add_edit @closeDialog="open = false" :type="type" :title="title" :visible="open"
@refreshTable="getList" />
<!-- <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" />
@ -149,36 +149,17 @@ function resetQuery() {
proxy.resetForm("queryRef");
handleQuery();
}
function clearIds() {
form.value.ids = []
}
/** 添加部门 */
/** 添加 */
function handleAdd() {
title.value = "添加发送计划";
form.value = {
email: undefined,
typeId: undefined,
ids: undefined,
email_title: undefined,
email_content: undefined,
remark: undefined,
};
file_list.value = []
type.value = "add";
open.value = true;
}
/** 修改部门 */
/** 修改 */
function handleUpdate(id) {
title.value = "修改设备类型";
// deviceList.value.find(item => {
// if (item.id == id) {
// form.value = item;
// }
// })
type.value = "update";
// console.log(form.value, 'form.value');
type.value = id;
open.value = true;
}
@ -187,11 +168,11 @@ function handleUpdate(id) {
/** 删除按钮操作 */
function handleDelete(row) {
let rows = deviceList.value.filter(item => ids.value.includes(item.id));
let rows = deviceList.value.filter(item => ids.value.includes(item.deviceId));
const names = row.name || rows.map(item => item.name).join(',');
const deviceTypeIds = row.id || ids.value.join(',');
const deviceTypeIds = row.deviceId || ids.value.join(',');
proxy.$modal.confirm('是否确认删除名称为"' + names + '"的数据项?').then(function () {
return delDevice(deviceTypeIds);
return DeleteEmailAlarm(deviceTypeIds);
}).then(() => {
getList();
proxy.$modal.msgSuccess("删除成功");
@ -200,7 +181,7 @@ function handleDelete(row) {
}
function handleSelectionChange(selection) {
ids.value = selection.map(item => item.id);
ids.value = selection.map(item => item.deviceId);
single.value = selection.length != 1;
multiple.value = !selection.length;
}