add:对接设备告警 对接设备告警 设备类型 设备名称 设备点位

This commit is contained in:
zhaohy
2024-07-09 15:56:18 +08:00
parent fb1980d73a
commit 50ca1daca4
14 changed files with 1674 additions and 438 deletions

View File

@@ -2,7 +2,8 @@
<ns-drawer
v-model:visible="visible"
width="520"
:title="infoObject?.id ? '修改告警功能' : '新增告警'"
:title="infoObject?.id ? '修改设备告警' : '新增设备告警'"
:footer-style="{ textAlign: 'right' }"
:ok="btnClick"
:cancel="handleClose"
placement="right">
@@ -10,10 +11,10 @@
<div style="margin-left: 52px">
应用规则:
<a-switch
v-model:checked="infoObject.isUse"
:checked="infoObject?.enableRules === 1 ? true : false"
:class="{
'blue-background': infoObject.isUse,
'grey-background': !infoObject.isUse,
'blue-background': infoObject?.enableRules === 1 ? true : false,
'grey-background': infoObject?.enableRules === 1 ? false : true,
}"
style="margin-left: 6px"
@change="changeSwitch" />
@@ -23,23 +24,29 @@
<script lang="ts" setup>
import { ref } from 'vue';
import { NsMessage } from '/nerv-lib/component';
import { http } from '/nerv-lib/util';
import { deviceAlarms } from '/@/api/alarmSettings/deviceAlarms';
const visible = ref(false);
//表单数据
const infoObject = ref({});
const infoObject = ref({
id: null,
accountNo: null,
enableRules: 0,
});
const formRef = ref();
const emit = defineEmits(['editObject']);
const toggle = (value) => {
const toggle = (value: any) => {
//判断 是新增 还是修改
if (value) {
infoObject.value = value;
} else {
infoObject.value = {
id: null,
accountNo: null,
enableRules: 0,
};
}
console.log('xxxx');
visible.value = !visible.value;
};
const schemas = [
@@ -52,7 +59,7 @@
componentProps: {
schemas: [
{
field: 'accountNo',
field: 'alarmTitle',
label: '告警标题',
component: 'NsInput',
rules: [
@@ -68,7 +75,7 @@
},
},
{
field: 'select',
field: 'repetitions',
label: '重复次数',
rules: [
{
@@ -85,31 +92,31 @@
options: [
{
label: '单次',
value: 0,
},
{
label: '重复',
value: 1,
},
{
label: '累计',
label: '重复',
value: 2,
},
{
label: '累计',
value: 3,
},
],
},
},
{
field: 'accountNo',
field: 'monitorTime',
label: '检测时长',
component: 'NsInputNumber',
rules: [
{
required: true,
validator: (rules, value, cbfn) => {
validator: (rules: any, value: any, cbfn: any) => {
if (value && /^[0-9]*$/.test(value)) {
cbfn();
} else {
cbfn('请输入正确的测时长');
cbfn('请输入正确的测时长');
}
},
trigger: 'change',
@@ -121,7 +128,7 @@
},
},
{
field: 'danwei',
field: 'monitorTimeUnit',
label: '监测时长单位',
component: 'NsSelect',
rules: [
@@ -151,7 +158,7 @@
},
},
{
field: 'select',
field: 'priority',
label: '优先级',
component: 'NsSelect',
rules: [
@@ -184,36 +191,32 @@
},
},
];
//开关
const changeSwitch = () => {
console.log(infoObject.value.selectSwitch, '开关');
switch (infoObject.value.enableRules) {
case 1:
infoObject.value.enableRules = 0;
break;
case 0:
infoObject.value.enableRules = 1;
break;
}
};
const btnClick = () => {
//表单校验
formRef.value.triggerSubmit().then((data: any) => {
console.log('校验成功');
console.log('data', infoObject.value);
visible.value = false;
NsMessage.success('操作成功');
emit('editObject', null);
formRef.value.triggerSubmit().then(() => {
//调用接口
// http
// .post(props.api, data)
// .then(() => {
// isLoading.value = false;
// NsMessage.success('操作成功', 1, () => {
// navigateBack();
// });
// })
// .catch(() => {
// isLoading.value = false;
// });
http.post(deviceAlarms.addOrUpNewData, infoObject.value).then(() => {
NsMessage.success('操作成功');
visible.value = false;
emit('editObject', null);
});
});
};
const handleClose = () => {
// 清楚校验错误信息
formRef.value.formElRef.clearValidate();
console.log(infoObject.value);
infoObject.value = {};
visible.value = false;
NsMessage.success('操作成功');
};