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) { export function getEmailInfo(query) {
return request({ return request({
url: '/system/email/getInfo?deviceId=' + query, url: '/system/email/getInfo',
method: 'get', method: 'get',
params: query
}) })
} }

View File

@ -3,7 +3,7 @@
<base-dialog :title="prop.title" width="60%" :visible="prop.visible" :autoHeight="false" @open="handleOpen" <base-dialog :title="prop.title" width="60%" :visible="prop.visible" :autoHeight="false" @open="handleOpen"
@handleConfirm="handleConfirm" @close="handleClose"> @handleConfirm="handleConfirm" @close="handleClose">
<div class="body"> <div class="body">
<el-form :model="prop.form" label-width="120px"> <el-form :model="form" label-width="120px">
<el-form-item> <el-form-item>
<template #label> <template #label>
<span> <span>
@ -13,21 +13,21 @@
发送邮箱 发送邮箱
</span> </span>
</template> </template>
<el-input v-model="prop.form.email" placeholder="邮箱" /> <el-input v-model="form.email" placeholder="邮箱" />
</el-form-item> </el-form-item>
<el-form-item label="设备类型"> <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 value="" label="请选择"></el-option>
<el-option v-for="item in monitorList" :key="item.value" :label="item.label" :value="item.value" /> <el-option v-for="item in monitorList" :key="item.value" :label="item.label" :value="item.value" />
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="监控列表"> <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-option v-for="item in optionsList" :key="item.value" :label="item.label" :value="item.value" />
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="邮件标题"> <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>
<el-form-item> <el-form-item>
<template #label> <template #label>
@ -38,10 +38,14 @@
邮件内容 邮件内容
</span> </span>
</template> </template>
<el-input v-model="prop.form.email_content" placeholder="备注" /> <el-input v-model="form.content" placeholder="备注" />
</el-form-item> </el-form-item>
<el-form-item label="备注"> <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-item>
</el-form> </el-form>
</div> </div>
@ -52,7 +56,7 @@
import { ref, watch, getCurrentInstance,onMounted } from 'vue' import { ref, watch, getCurrentInstance,onMounted } from 'vue'
import { Check, Close } from '@element-plus/icons-vue' import { Check, Close } from '@element-plus/icons-vue'
import { getDeptList } from '@/api/big/dept' 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 { getDeviceTypeList } from '@/api/big/deviceType'
import { getDeviceList } from '@/api/big/device' import { getDeviceList } from '@/api/big/device'
@ -69,18 +73,18 @@ const prop = defineProps({
type: String, type: String,
default: 'add', default: 'add',
}, },
form: {
type: Object, })
default: {
let form = ref({
email: undefined, email: undefined,
typeId: undefined, typeId: undefined,
ids: undefined, ids: undefined,
email_title: false, title: '',
email_content: undefined, content: undefined,
remark: undefined, remark: undefined,
}, enable: '启用',
} })
})
let monitorList = ref() let monitorList = ref()
// //
function remoteMethodTypeId() { function remoteMethodTypeId() {
@ -95,9 +99,9 @@ function remoteMethodTypeId() {
} }
}) })
} }
//
function typeChange(val) { function typeChange(val) {
emit('clearIds') form.value.ids = []
DeviceList(val) DeviceList(val)
} }
const optionsList = ref([]) const optionsList = ref([])
@ -106,11 +110,36 @@ const { proxy: ctx } = getCurrentInstance()
const handleClose = () => { const handleClose = () => {
//baseFormRef.value.reset() //baseFormRef.value.reset()
form.value = {
email: undefined,
typeId: undefined,
ids: undefined,
title: '',
content: undefined,
remark: undefined,
enable: '启用',
}
emit('closeDialog') emit('closeDialog')
emit('refreshTable') emit('refreshTable')
} }
// //
const handleOpen = () => { 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() // getAddFormOptions()
} }
@ -120,10 +149,11 @@ const emit = defineEmits(['refreshTable', 'closeDialog','clearIds'])
// / // /
async function addDeductionInfo() { async function addDeductionInfo() {
emit('closeDialog') emit('closeDialog')
return
// //
if (prop.type == 'add') { 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({ ctx.$message({
type: code === 200 ? 'success' : 'warning', type: code === 200 ? 'success' : 'warning',
message: msg, message: msg,
@ -134,7 +164,7 @@ async function addDeductionInfo() {
emit('closeDialog') emit('closeDialog')
} }
} else { // } else { //
let { code, msg } = await updateScreen(prop.form) let { code, msg } = await EditEmailAlarm(form)
ctx.$message({ ctx.$message({
type: code === 200 ? 'success' : 'warning', type: code === 200 ? 'success' : 'warning',
message: msg, message: msg,

View File

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