fix:对接通知管理接口 进行联调测试
This commit is contained in:
@@ -0,0 +1,5 @@
|
|||||||
|
export enum notificationManagementApi {
|
||||||
|
getTableList = '/carbon-smart/api/AlarmContactInformation/selectAlarmContactInformation', //通知管理分页
|
||||||
|
upData = '/carbon-smart/api/AlarmContactInformation/update', //通知管理 修改
|
||||||
|
findById = '/carbon-smart/api/AlarmContactInformation/findById', //通知管理 查询详情
|
||||||
|
}
|
@@ -177,6 +177,25 @@
|
|||||||
],
|
],
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
label: '是否创建工单',
|
||||||
|
field: 'createWorkOrder',
|
||||||
|
component: 'NsRadioGroup',
|
||||||
|
rules: [
|
||||||
|
{
|
||||||
|
required: true,
|
||||||
|
message: '是否创建工单不能为空',
|
||||||
|
trigger: 'change',
|
||||||
|
},
|
||||||
|
],
|
||||||
|
componentProps: {
|
||||||
|
radioType: 'radio',
|
||||||
|
options: [
|
||||||
|
{ label: '是', value: 1 },
|
||||||
|
{ label: '否', value: 0 },
|
||||||
|
],
|
||||||
|
},
|
||||||
|
},
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
@@ -195,6 +195,25 @@
|
|||||||
],
|
],
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
label: '是否创建工单',
|
||||||
|
field: 'createWorkOrder',
|
||||||
|
component: 'NsRadioGroup',
|
||||||
|
rules: [
|
||||||
|
{
|
||||||
|
required: true,
|
||||||
|
message: '是否创建工单不能为空',
|
||||||
|
trigger: 'change',
|
||||||
|
},
|
||||||
|
],
|
||||||
|
componentProps: {
|
||||||
|
radioType: 'radio',
|
||||||
|
options: [
|
||||||
|
{ label: '是', value: 1 },
|
||||||
|
{ label: '否', value: 0 },
|
||||||
|
],
|
||||||
|
},
|
||||||
|
},
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
@@ -4,21 +4,27 @@
|
|||||||
<a-tab-pane key="1" tab="通知管理">
|
<a-tab-pane key="1" tab="通知管理">
|
||||||
<ns-view-list-table v-bind="notificationConfig" ref="mainRef">
|
<ns-view-list-table v-bind="notificationConfig" ref="mainRef">
|
||||||
<template #bodyCell="{ record, column }">
|
<template #bodyCell="{ record, column }">
|
||||||
<template v-if="column.dataIndex === 'enableRules'">
|
<template v-if="column.dataIndex === 'enableNotifications'">
|
||||||
<a-switch
|
<a-switch
|
||||||
:checked="record.enableRules === 1 ? true : false"
|
:checked="record.enableNotifications === 1 ? true : false"
|
||||||
:class="{
|
:class="{
|
||||||
'blue-background': record.enableRules === 1 ? true : false,
|
'blue-background': record.enableNotifications === 1 ? true : false,
|
||||||
'grey-background': record.enableRules === 1 ? false : true,
|
'grey-background': record.enableNotifications === 1 ? false : true,
|
||||||
}"
|
}"
|
||||||
@change="
|
@change="
|
||||||
clickSwitch({ type: 1, enableRules: record.enableRules, record: record })
|
clickSwitch({ type: 1, enableRules: record.enableRules, record: record })
|
||||||
" />
|
" />
|
||||||
</template>
|
</template>
|
||||||
|
<template v-if="column.dataIndex === 'prioritys'">
|
||||||
|
{{ record.priority ? record.priority.label : '' }}
|
||||||
|
</template>
|
||||||
|
<template v-if="column.dataIndex === 'notificationMethod'">
|
||||||
|
{{ getNotificationMethod(record.notificationMethod) }}
|
||||||
|
</template>
|
||||||
</template>
|
</template>
|
||||||
</ns-view-list-table>
|
</ns-view-list-table>
|
||||||
<!-- 联系方式 -->
|
<!-- 联系方式 -->
|
||||||
<notificationManagement ref="notificationManagements" @editObject="editObject" />
|
<notificationManagement ref="notificationManagements" @updNotification="updNotification" />
|
||||||
</a-tab-pane>
|
</a-tab-pane>
|
||||||
<a-tab-pane key="2" tab="设备告警" force-render>
|
<a-tab-pane key="2" tab="设备告警" force-render>
|
||||||
<ns-view-list-table
|
<ns-view-list-table
|
||||||
@@ -49,7 +55,7 @@
|
|||||||
{{ record.repetitions.label }}
|
{{ record.repetitions.label }}
|
||||||
</template>
|
</template>
|
||||||
<template v-if="column.dataIndex === 'prioritys'">
|
<template v-if="column.dataIndex === 'prioritys'">
|
||||||
{{ record.priority.label }}
|
{{ record.priority ? record.priority.label : '-' }}
|
||||||
</template>
|
</template>
|
||||||
</template>
|
</template>
|
||||||
</ns-view-list-table>
|
</ns-view-list-table>
|
||||||
@@ -90,7 +96,7 @@
|
|||||||
{{ record.repetitions.label }}
|
{{ record.repetitions.label }}
|
||||||
</template>
|
</template>
|
||||||
<template v-if="column.dataIndex === 'prioritys'">
|
<template v-if="column.dataIndex === 'prioritys'">
|
||||||
{{ record.priority.label }}
|
{{ record.priority ? record.priority.label : '-' }}
|
||||||
</template>
|
</template>
|
||||||
</template>
|
</template>
|
||||||
</ns-view-list-table>
|
</ns-view-list-table>
|
||||||
@@ -124,6 +130,7 @@
|
|||||||
import { deviceAlarms } from '/@/api/alarmSettings/deviceAlarms';
|
import { deviceAlarms } from '/@/api/alarmSettings/deviceAlarms';
|
||||||
import { energyAlarms } from '/@/api/alarmSettings/energyAlarm';
|
import { energyAlarms } from '/@/api/alarmSettings/energyAlarm';
|
||||||
import { ExclamationCircleOutlined } from '@ant-design/icons-vue';
|
import { ExclamationCircleOutlined } from '@ant-design/icons-vue';
|
||||||
|
import { notificationManagementApi } from '/@/api/alarmSettings/notificationManagements';
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: 'AlarmSettingsIndex',
|
name: 'AlarmSettingsIndex',
|
||||||
@@ -146,6 +153,22 @@
|
|||||||
const equipmentAlarm = ref(true);
|
const equipmentAlarm = ref(true);
|
||||||
const energyAlarm = ref(true);
|
const energyAlarm = ref(true);
|
||||||
const notificationConfig = notificationtableConfig(notificationManagements);
|
const notificationConfig = notificationtableConfig(notificationManagements);
|
||||||
|
//获取 通知方式
|
||||||
|
const getNotificationMethod = (data: any) => {
|
||||||
|
if (!data) return '';
|
||||||
|
const methods = [];
|
||||||
|
const notifications = data.split(',');
|
||||||
|
|
||||||
|
notifications.forEach((notification) => {
|
||||||
|
if (notification === '1') {
|
||||||
|
methods.push('站内信息');
|
||||||
|
} else if (notification === '2') {
|
||||||
|
methods.push('邮件');
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
return methods.join('/');
|
||||||
|
};
|
||||||
//能源告警配置
|
//能源告警配置
|
||||||
const energyAlarmConfig = energyAlarmConfigs(
|
const energyAlarmConfig = energyAlarmConfigs(
|
||||||
editeEnergyAlarm,
|
editeEnergyAlarm,
|
||||||
@@ -169,6 +192,10 @@
|
|||||||
energyAlarm.value = !energyAlarm.value;
|
energyAlarm.value = !energyAlarm.value;
|
||||||
configureEnergyAlarms.value.show = false;
|
configureEnergyAlarms.value.show = false;
|
||||||
};
|
};
|
||||||
|
//通知 修改成功
|
||||||
|
const updNotification = () => {
|
||||||
|
mainRef.value?.nsTableRef.reload();
|
||||||
|
};
|
||||||
const clickSwitch = (data: any) => {
|
const clickSwitch = (data: any) => {
|
||||||
NsModal.confirm({
|
NsModal.confirm({
|
||||||
title: '启用状态',
|
title: '启用状态',
|
||||||
@@ -182,12 +209,14 @@
|
|||||||
if (data.type === 1) {
|
if (data.type === 1) {
|
||||||
//通知方式
|
//通知方式
|
||||||
http
|
http
|
||||||
.post(deviceAlarms.addOrUpNewData, {
|
.post(notificationManagementApi.upData, {
|
||||||
id: data.record.id,
|
id: data.record.id,
|
||||||
enableRules: data.record.enableRules === 1 ? 0 : 1,
|
enableNotifications: data.record.enableNotifications === 1 ? 0 : 1,
|
||||||
})
|
})
|
||||||
.then(() => {
|
.then(() => {
|
||||||
NsMessage.success(data.record.enableRules === 1 ? '通知已关闭' : '通知已启用');
|
NsMessage.success(
|
||||||
|
data.record.enableNotifications === 1 ? '通知已关闭' : '通知已启用',
|
||||||
|
);
|
||||||
mainRef.value?.nsTableRef.reload();
|
mainRef.value?.nsTableRef.reload();
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@@ -232,6 +261,8 @@
|
|||||||
equipmentAlarmConfig,
|
equipmentAlarmConfig,
|
||||||
editObject,
|
editObject,
|
||||||
editeEnergyAlarm,
|
editeEnergyAlarm,
|
||||||
|
updNotification,
|
||||||
|
getNotificationMethod,
|
||||||
clickSwitch,
|
clickSwitch,
|
||||||
editEquipmentAlarm,
|
editEquipmentAlarm,
|
||||||
notificationManagements,
|
notificationManagements,
|
||||||
|
@@ -10,10 +10,10 @@
|
|||||||
@close="handleClose">
|
@close="handleClose">
|
||||||
<div style="width: 100%; overflow: hidden; overflow-y: hidden; height: 100%">
|
<div style="width: 100%; overflow: hidden; overflow-y: hidden; height: 100%">
|
||||||
<a-form ref="formRef" :model="infoObject" :rules="rules" style="width: 80%">
|
<a-form ref="formRef" :model="infoObject" :rules="rules" style="width: 80%">
|
||||||
<a-form-item ref="notification" label="通知方式" name="notification">
|
<a-form-item ref="notificationMethod" label="通知方式" name="notificationMethod">
|
||||||
<a-select
|
<a-select
|
||||||
ref="select"
|
ref="select"
|
||||||
v-model:value="infoObject.notification"
|
v-model:value="infoObject.notificationMethod"
|
||||||
style="width: 100%"
|
style="width: 100%"
|
||||||
mode="multiple"
|
mode="multiple"
|
||||||
:options="devicePointData"
|
:options="devicePointData"
|
||||||
@@ -24,34 +24,18 @@
|
|||||||
</a-form-item>
|
</a-form-item>
|
||||||
<a-form-item label="启用规则">
|
<a-form-item label="启用规则">
|
||||||
<a-switch
|
<a-switch
|
||||||
:checked="infoObject.enableRules === 1 ? true : false"
|
:checked="infoObject.enableNotifications === 1 ? true : false"
|
||||||
:class="{
|
:class="{
|
||||||
'blue-background': infoObject.enableRules === 1 ? true : false,
|
'blue-background': infoObject.enableNotifications === 1 ? true : false,
|
||||||
'grey-background': infoObject.enableRules === 1 ? false : true,
|
'grey-background': infoObject.enableNotifications === 1 ? false : true,
|
||||||
}"
|
}"
|
||||||
@click="clickSwitch" />
|
@click="clickSwitch" />
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
</a-form>
|
</a-form>
|
||||||
<div style="width: 100%; height: 765px; overflow-y: auto">
|
<div style="width: 100%; height: 765px; overflow-y: auto">
|
||||||
<div style="margin-bottom: 8px">
|
<div style="margin-bottom: 8px">
|
||||||
<div style="width: 100%; display: flex; position: relative">
|
<div style="width: 100%; display: flex; position: relative" class="ns-title-extra-box">
|
||||||
<div
|
<span style="margin-left: 12px; color: #333333">联系人名单</span>
|
||||||
style="
|
|
||||||
border-width: 0px;
|
|
||||||
position: absolute;
|
|
||||||
left: 0px;
|
|
||||||
top: 5px;
|
|
||||||
width: 5px;
|
|
||||||
height: 15px;
|
|
||||||
background: inherit;
|
|
||||||
background-color: #2778ff;
|
|
||||||
border: none;
|
|
||||||
border-radius: 5px;
|
|
||||||
-moz-box-shadow: none;
|
|
||||||
-webkit-box-shadow: none;
|
|
||||||
box-shadow: none;
|
|
||||||
"></div>
|
|
||||||
<span style="margin-left: 24px; color: #333333">联系人名单</span>
|
|
||||||
</div>
|
</div>
|
||||||
<img
|
<img
|
||||||
style="width: 100%; margin-top: -10px"
|
style="width: 100%; margin-top: -10px"
|
||||||
@@ -67,10 +51,10 @@
|
|||||||
:pagination="pagination">
|
:pagination="pagination">
|
||||||
<template #bodyCell="{ record, column }">
|
<template #bodyCell="{ record, column }">
|
||||||
<template v-if="column.dataIndex === 'address'">
|
<template v-if="column.dataIndex === 'address'">
|
||||||
{{ record.userRoleInfos?.[0].deptRoleInfoList }}
|
{{ record?.deptRoleInfoList || record.userRoleInfos?.[0].deptRoleInfoList }}
|
||||||
</template>
|
</template>
|
||||||
<template v-if="column.dataIndex === 'operation'">
|
<template v-if="column.dataIndex === 'operation'">
|
||||||
<a style="color: rgb(210, 0, 5)" @click="remove(record)">移除</a>
|
<a style="color: #2778ff" @click="remove(record)">移除</a>
|
||||||
</template>
|
</template>
|
||||||
</template>
|
</template>
|
||||||
</a-table>
|
</a-table>
|
||||||
@@ -85,12 +69,12 @@
|
|||||||
</template>
|
</template>
|
||||||
<script lang="ts" setup>
|
<script lang="ts" setup>
|
||||||
import { ref } from 'vue';
|
import { ref } from 'vue';
|
||||||
// import { NsMessage } from '/nerv-lib/component';
|
import { NsMessage } from '/nerv-lib/component';
|
||||||
// import { http } from '/nerv-lib/util';
|
import { http } from '/nerv-lib/util';
|
||||||
// import { number } from 'vue-types';
|
|
||||||
import linkPeople from './linkPeople/index.vue';
|
import linkPeople from './linkPeople/index.vue';
|
||||||
|
import { notificationManagementApi } from '/@/api/alarmSettings/notificationManagements';
|
||||||
// import { deviceAlarms } from '/@/api/alarmSettings/deviceAlarms';
|
import { async } from '@antv/x6/lib/registry/marker/async';
|
||||||
|
import { info } from 'node_modules/loglevel';
|
||||||
|
|
||||||
//table 数据
|
//table 数据
|
||||||
const columns = [
|
const columns = [
|
||||||
@@ -125,6 +109,8 @@
|
|||||||
title: '部门',
|
title: '部门',
|
||||||
dataIndex: 'address',
|
dataIndex: 'address',
|
||||||
key: 'address',
|
key: 'address',
|
||||||
|
width: 200,
|
||||||
|
textEllipsis: true,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: '操作',
|
title: '操作',
|
||||||
@@ -160,7 +146,7 @@
|
|||||||
dataSource.value.forEach((item) => {
|
dataSource.value.forEach((item) => {
|
||||||
ids.push(item.userId);
|
ids.push(item.userId);
|
||||||
});
|
});
|
||||||
linkPeoples.value.getData({ id: ids, data: dataSource });
|
linkPeoples.value.getData({ id: ids, data: dataSource.value });
|
||||||
};
|
};
|
||||||
//取消弹窗
|
//取消弹窗
|
||||||
const handleCancel = () => {
|
const handleCancel = () => {
|
||||||
@@ -173,7 +159,7 @@
|
|||||||
};
|
};
|
||||||
//表单数据
|
//表单数据
|
||||||
const infoObject = ref({
|
const infoObject = ref({
|
||||||
enableRules: 0,
|
enableNotifications: 0,
|
||||||
});
|
});
|
||||||
//设备点位搜索
|
//设备点位搜索
|
||||||
const filterDevicePoint = (input: string, option: any) => {
|
const filterDevicePoint = (input: string, option: any) => {
|
||||||
@@ -181,45 +167,47 @@
|
|||||||
};
|
};
|
||||||
//开关
|
//开关
|
||||||
const clickSwitch = () => {
|
const clickSwitch = () => {
|
||||||
if (infoObject.value.enableRules === 1) {
|
if (infoObject.value.enableNotifications === 1) {
|
||||||
infoObject.value.enableRules = 0;
|
infoObject.value.enableNotifications = 0;
|
||||||
} else {
|
} else {
|
||||||
infoObject.value.enableRules = 1;
|
infoObject.value.enableNotifications = 1;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
// 通知信息
|
// 通知信息
|
||||||
const devicePointData = ref([
|
const devicePointData = ref([
|
||||||
{ label: '站内信息', value: 1 },
|
{ label: '站内信息', value: '1' },
|
||||||
{ label: '邮件', value: 2 },
|
{ label: '邮件', value: '2' },
|
||||||
]);
|
]);
|
||||||
|
|
||||||
const rules = {
|
const rules = {
|
||||||
notification: [{ required: true, message: '请选择通知方式', trigger: 'change' }],
|
notificationMethod: [{ required: true, message: '请选择通知方式', trigger: 'change' }],
|
||||||
user: [{ required: true, message: '请选择通知人', trigger: 'change' }],
|
user: [{ required: true, message: '请选择通知人', trigger: 'change' }],
|
||||||
};
|
};
|
||||||
const formRef = ref();
|
const formRef = ref();
|
||||||
const emit = defineEmits(['editObject']);
|
const emit = defineEmits(['updNotification']);
|
||||||
const toggle = (value: any) => {
|
const toggle = async (value: any) => {
|
||||||
//判断 是新增 还是修改
|
//判断 是新增 还是修改
|
||||||
if (value) {
|
if (value) {
|
||||||
// 获取接口
|
// // 获取接口
|
||||||
infoObject.value = {
|
await http
|
||||||
enableRules: 0,
|
.post(notificationManagementApi.findById, {
|
||||||
};
|
id: value.id,
|
||||||
// await http
|
})
|
||||||
// .post(group.queryDeviceGroupTree, {
|
.then((res) => {
|
||||||
// pageNum: 1,
|
infoObject.value = res.data;
|
||||||
// pageSize: 999,
|
if (infoObject.value.notificationMethod) {
|
||||||
// energyType: selectedOptions[0].dicKey,
|
infoObject.value.notificationMethod = infoObject.value.notificationMethod.split(',');
|
||||||
// orgId: orgId.value,
|
} else {
|
||||||
// })
|
infoObject.value.notificationMethod = [];
|
||||||
// .then((res) => {
|
}
|
||||||
// jdTreeData.value = res.data;
|
dataSource.value = res.data.hxAlarmNotifyUserList;
|
||||||
// });
|
});
|
||||||
} else {
|
} else {
|
||||||
infoObject.value = {
|
infoObject.value = {
|
||||||
enableRules: 0,
|
enableNotifications: 0,
|
||||||
|
notificationMethod: [],
|
||||||
};
|
};
|
||||||
|
dataSource.value = [];
|
||||||
}
|
}
|
||||||
visible.value = !visible.value;
|
visible.value = !visible.value;
|
||||||
};
|
};
|
||||||
@@ -233,24 +221,36 @@
|
|||||||
dataSource.value = [...dataSource.value];
|
dataSource.value = [...dataSource.value];
|
||||||
};
|
};
|
||||||
const btnClick = () => {
|
const btnClick = () => {
|
||||||
console.log(infoObject.value);
|
if (dataSource.value.length === 0) {
|
||||||
//发送请求数据
|
NsMessage.warn('请选择联系人');
|
||||||
let obj = {};
|
return;
|
||||||
obj.selectList = [];
|
}
|
||||||
dataSource.value.forEach((item) => {
|
|
||||||
obj.selectList.push({
|
|
||||||
userId: item.userId,
|
|
||||||
});
|
|
||||||
});
|
|
||||||
console.log(obj, '数据');
|
|
||||||
//表单校验
|
//表单校验
|
||||||
formRef.value.validate().then(() => {
|
formRef.value.validate().then(() => {
|
||||||
|
//发送请求数据
|
||||||
|
let obj = {
|
||||||
|
id: null,
|
||||||
|
notificationMethod: null,
|
||||||
|
hxAlarmNotifyUserList: [],
|
||||||
|
enableNotifications: 0,
|
||||||
|
};
|
||||||
|
obj.notificationMethod = infoObject.value.notificationMethod.toString();
|
||||||
|
obj.id = infoObject.value.id;
|
||||||
|
obj.enableNotifications = infoObject.value.enableNotifications;
|
||||||
|
dataSource.value.forEach((item) => {
|
||||||
|
obj.hxAlarmNotifyUserList.push({
|
||||||
|
userId: item.userId,
|
||||||
|
contactInformationId: infoObject.value.id,
|
||||||
|
});
|
||||||
|
});
|
||||||
//调用接口
|
//调用接口
|
||||||
// http.post(deviceAlarms.addOrUpNewData, infoObject.value).then(() => {
|
http.post(notificationManagementApi.upData, obj).then((res) => {
|
||||||
// NsMessage.success('操作成功');
|
if (res.msg === 'success') {
|
||||||
// visible.value = false;
|
NsMessage.success('操作成功');
|
||||||
// emit('editObject', null);
|
visible.value = false;
|
||||||
// });
|
emit('updNotification', null);
|
||||||
|
}
|
||||||
|
});
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
const handleClose = () => {
|
const handleClose = () => {
|
||||||
|
@@ -1,22 +0,0 @@
|
|||||||
import { department } from '/@/api/origanizemanage';
|
|
||||||
|
|
||||||
export const editTreeConfig = (orgId) => ({
|
|
||||||
selectedKeys: ['0-0'],
|
|
||||||
defaultExpandAll: true,
|
|
||||||
api: department.queryDeptTree,
|
|
||||||
params: { orgId },
|
|
||||||
resultField: 'data.orgInfos',
|
|
||||||
fieldNames: { title: 'orgName', key: 'orgId' },
|
|
||||||
formConfig: {
|
|
||||||
schemas: [
|
|
||||||
{
|
|
||||||
field: 'orgName',
|
|
||||||
component: 'NsInput',
|
|
||||||
autoSubmit: true,
|
|
||||||
componentProps: {
|
|
||||||
placeholder: '请输入企业名称',
|
|
||||||
},
|
|
||||||
},
|
|
||||||
],
|
|
||||||
},
|
|
||||||
});
|
|
@@ -8,9 +8,8 @@
|
|||||||
@cancel="handleCancel">
|
@cancel="handleCancel">
|
||||||
<div class="box">
|
<div class="box">
|
||||||
<div class="box-left">
|
<div class="box-left">
|
||||||
<div style="width: 100%; display: flex; position: relative">
|
<div style="width: 100%; display: flex; position: relative" class="ns-title-extra-box">
|
||||||
<div class="border-card"></div>
|
<span style="margin-left: 12px; color: #333333">联系人名单</span>
|
||||||
<span style="margin-left: 24px; color: #333333">联系人名单</span>
|
|
||||||
</div>
|
</div>
|
||||||
<img
|
<img
|
||||||
style="width: 100%; height: 2px"
|
style="width: 100%; height: 2px"
|
||||||
@@ -31,9 +30,8 @@
|
|||||||
/></div>
|
/></div>
|
||||||
</div>
|
</div>
|
||||||
<div class="box-right">
|
<div class="box-right">
|
||||||
<div style="width: 100%; display: flex; position: relative">
|
<div style="width: 100%; display: flex; position: relative" class="ns-title-extra-box">
|
||||||
<div class="border-card"></div>
|
<span style="margin-left: 12px; color: #333333">人员列表 </span>
|
||||||
<span style="margin-left: 24px; color: #333333">人员列表 </span>
|
|
||||||
<a-input-search
|
<a-input-search
|
||||||
v-model:value="realName"
|
v-model:value="realName"
|
||||||
style="margin-bottom: 8px; width: 280px; position: absolute; right: 20px"
|
style="margin-bottom: 8px; width: 280px; position: absolute; right: 20px"
|
||||||
@@ -191,6 +189,7 @@
|
|||||||
orgId: selectOrgId.value,
|
orgId: selectOrgId.value,
|
||||||
deptId: selectDeptId.value,
|
deptId: selectDeptId.value,
|
||||||
realName: realName.value,
|
realName: realName.value,
|
||||||
|
userStatus: 0,
|
||||||
})
|
})
|
||||||
.then((res) => {
|
.then((res) => {
|
||||||
dataSource.value = res.data.records;
|
dataSource.value = res.data.records;
|
||||||
@@ -206,7 +205,25 @@
|
|||||||
|
|
||||||
const onSelectChange = (selectedRowKeys: any, selectedRows: any) => {
|
const onSelectChange = (selectedRowKeys: any, selectedRows: any) => {
|
||||||
selectedRowKey.value = selectedRowKeys;
|
selectedRowKey.value = selectedRowKeys;
|
||||||
selectedRow.value = selectedRows;
|
// 使用 forEach 循环遍历 selectedRows 数组
|
||||||
|
let newSelectRows = [];
|
||||||
|
selectedRows.forEach((item, index) => {
|
||||||
|
if (item) {
|
||||||
|
newSelectRows.push(item);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
// 添加新选中的行的 userId 到 selectedRow.value
|
||||||
|
selectedRow.value = [
|
||||||
|
...selectedRow.value,
|
||||||
|
...newSelectRows.filter(
|
||||||
|
(newRow: any) =>
|
||||||
|
!selectedRow.value.some((existingRow) => existingRow.userId === newRow.userId),
|
||||||
|
),
|
||||||
|
];
|
||||||
|
// 移除取消选中的行的 userId
|
||||||
|
selectedRow.value = selectedRow.value.filter((existingRow: any) =>
|
||||||
|
selectedRowKeys.includes(existingRow.userId),
|
||||||
|
);
|
||||||
};
|
};
|
||||||
const pagination = ref({
|
const pagination = ref({
|
||||||
total: 0,
|
total: 0,
|
||||||
@@ -252,6 +269,8 @@
|
|||||||
pagination.value.current = 1;
|
pagination.value.current = 1;
|
||||||
realName.value = null;
|
realName.value = null;
|
||||||
searchValue.value = '';
|
searchValue.value = '';
|
||||||
|
selectDeptId.value = '';
|
||||||
|
selectOrgId.value = orgId.value;
|
||||||
};
|
};
|
||||||
const getData = (data: any) => {
|
const getData = (data: any) => {
|
||||||
selectedRow.value = data.data;
|
selectedRow.value = data.data;
|
||||||
@@ -265,10 +284,13 @@
|
|||||||
const show = ref(false);
|
const show = ref(false);
|
||||||
const handleCancel = () => {
|
const handleCancel = () => {
|
||||||
// 处理取消按钮的逻辑
|
// 处理取消按钮的逻辑
|
||||||
pagination.value.current = 1;
|
|
||||||
realName.value = null;
|
|
||||||
emit('handleCancel', null);
|
emit('handleCancel', null);
|
||||||
show.value = false;
|
show.value = false;
|
||||||
|
pagination.value.current = 1;
|
||||||
|
realName.value = null;
|
||||||
|
searchValue.value = '';
|
||||||
|
selectDeptId.value = '';
|
||||||
|
selectOrgId.value = orgId.value;
|
||||||
};
|
};
|
||||||
watch(searchValue, (value) => {
|
watch(searchValue, (value) => {
|
||||||
const expanded = dataList
|
const expanded = dataList
|
||||||
@@ -317,21 +339,6 @@
|
|||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
<style scoped lang="less">
|
<style scoped lang="less">
|
||||||
.border-card {
|
|
||||||
border-width: 0px;
|
|
||||||
position: absolute;
|
|
||||||
left: 0px;
|
|
||||||
top: 5px;
|
|
||||||
width: 5px;
|
|
||||||
height: 15px;
|
|
||||||
background: inherit;
|
|
||||||
background-color: @primary-color;
|
|
||||||
border: none;
|
|
||||||
border-radius: 5px;
|
|
||||||
-moz-box-shadow: none;
|
|
||||||
-webkit-box-shadow: none;
|
|
||||||
box-shadow: none;
|
|
||||||
}
|
|
||||||
.box {
|
.box {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
height: 500px;
|
height: 500px;
|
||||||
|
@@ -1,9 +1,7 @@
|
|||||||
import data from '../notificationManagementMock.json';
|
|
||||||
import { http } from '/nerv-lib/util';
|
import { http } from '/nerv-lib/util';
|
||||||
import { NsMessage } from '/nerv-lib/component';
|
import { NsMessage } from '/nerv-lib/component';
|
||||||
import { deviceAlarms } from '/@/api/alarmSettings/deviceAlarms';
|
import { deviceAlarms } from '/@/api/alarmSettings/deviceAlarms';
|
||||||
|
|
||||||
import { ref } from 'vue';
|
|
||||||
const tableKeyMap = [
|
const tableKeyMap = [
|
||||||
{
|
{
|
||||||
title: '序号',
|
title: '序号',
|
||||||
@@ -37,7 +35,6 @@ const tableKeyMap = [
|
|||||||
dataIndex: 'enableRules',
|
dataIndex: 'enableRules',
|
||||||
},
|
},
|
||||||
];
|
];
|
||||||
const mockData = ref(data.listData);
|
|
||||||
const doWnload = (url: any) => {
|
const doWnload = (url: any) => {
|
||||||
const a = document.createElement('a');
|
const a = document.createElement('a');
|
||||||
document.body.appendChild(a);
|
document.body.appendChild(a);
|
||||||
@@ -57,7 +54,6 @@ export const equipmentAlarmTableConfig = (
|
|||||||
return {
|
return {
|
||||||
title: '告警规则',
|
title: '告警规则',
|
||||||
api: deviceAlarms.getTableList,
|
api: deviceAlarms.getTableList,
|
||||||
value: mockData.value,
|
|
||||||
headerActions: [
|
headerActions: [
|
||||||
{
|
{
|
||||||
label: '新增',
|
label: '新增',
|
||||||
|
@@ -1,7 +1,8 @@
|
|||||||
import { dateUtil } from '/nerv-lib/util/date-util';
|
import { dateUtil } from '/nerv-lib/util/date-util';
|
||||||
import data from '../notificationManagementMock.json';
|
|
||||||
import { http } from '/nerv-lib/util';
|
import { http } from '/nerv-lib/util';
|
||||||
|
import { notificationManagementApi } from '/@/api/alarmSettings/notificationManagements';
|
||||||
import { ref } from 'vue';
|
import { ref } from 'vue';
|
||||||
|
|
||||||
const tableKeyMap = [
|
const tableKeyMap = [
|
||||||
{
|
{
|
||||||
title: '序号',
|
title: '序号',
|
||||||
@@ -12,43 +13,41 @@ const tableKeyMap = [
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: '优先级',
|
title: '优先级',
|
||||||
dataIndex: 'id',
|
dataIndex: 'prioritys',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: '告警类型',
|
title: '告警类型',
|
||||||
dataIndex: 'deviceCode',
|
dataIndex: 'alarmTypeName',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: '告警标题',
|
title: '告警标题',
|
||||||
dataIndex: 'deviceName',
|
dataIndex: 'alarmTitle',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: '错误码',
|
title: '错误码',
|
||||||
dataIndex: 'position',
|
dataIndex: 'errorCode',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: '通知名单',
|
title: '通知名单',
|
||||||
dataIndex: 'position',
|
dataIndex: 'notificationList',
|
||||||
|
width: 150,
|
||||||
textEllipsis: true,
|
textEllipsis: true,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: '通知方式',
|
title: '通知方式',
|
||||||
dataIndex: 'position',
|
dataIndex: 'notificationMethod',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: '启用通知',
|
title: '启用通知',
|
||||||
dataIndex: 'enableRules',
|
dataIndex: 'enableNotifications',
|
||||||
},
|
},
|
||||||
];
|
];
|
||||||
const mockData = ref(data.listData);
|
|
||||||
export const notificationtableConfig = (notificationManagements: any) => {
|
export const notificationtableConfig = (notificationManagements: any) => {
|
||||||
return {
|
return {
|
||||||
title: '告警规则',
|
title: '告警规则',
|
||||||
// api: '/carbon_emission/device/getDeviceList',
|
api: notificationManagementApi.getTableList,
|
||||||
value: mockData.value,
|
headerActions: [],
|
||||||
headerActions: [{}],
|
|
||||||
columns: tableKeyMap,
|
columns: tableKeyMap,
|
||||||
// rowSelection: null, 选择按钮
|
|
||||||
columnActions: {
|
columnActions: {
|
||||||
title: '操作',
|
title: '操作',
|
||||||
actions: [
|
actions: [
|
||||||
@@ -66,70 +65,75 @@ export const notificationtableConfig = (notificationManagements: any) => {
|
|||||||
formConfig: {
|
formConfig: {
|
||||||
schemas: [
|
schemas: [
|
||||||
{
|
{
|
||||||
field: 'name',
|
field: 'alarmType',
|
||||||
label: '告警类型',
|
label: '告警类型',
|
||||||
component: 'NsSelect',
|
component: 'NsSelect',
|
||||||
componentProps: {
|
componentProps: {
|
||||||
placeholder: '请选告警类型',
|
placeholder: '请选告警类型',
|
||||||
|
allowClear: true,
|
||||||
options: [
|
options: [
|
||||||
{
|
{
|
||||||
label: '设备告警',
|
label: '设备告警',
|
||||||
value: '1',
|
value: 1,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: '网关告警',
|
label: '网关告警',
|
||||||
value: '2',
|
value: 2,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: '能耗告警',
|
label: '能耗告警',
|
||||||
value: '3',
|
value: 3,
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
field: 'provider',
|
field: 'priority',
|
||||||
label: '告警优先级',
|
label: '告警优先级',
|
||||||
component: 'NsSelect',
|
component: 'NsSelect',
|
||||||
componentProps: {
|
componentProps: {
|
||||||
placeholder: '请选择告警优先级',
|
placeholder: '请选择告警优先级',
|
||||||
|
allowClear: true,
|
||||||
options: [
|
options: [
|
||||||
{
|
{
|
||||||
label: '紧急',
|
label: '紧急',
|
||||||
value: '1',
|
value: 1,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: '重要',
|
label: '重要',
|
||||||
value: '1',
|
value: 2,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: '一般',
|
label: '一般',
|
||||||
value: '2',
|
value: 3,
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
field: 'provider',
|
field: 'alarmTitle',
|
||||||
label: '告警标题',
|
label: '告警标题',
|
||||||
component: 'NsInput',
|
component: 'NsInput',
|
||||||
componentProps: {
|
componentProps: {
|
||||||
|
allowClear: true,
|
||||||
placeholder: '请输入告警标题关键字',
|
placeholder: '请输入告警标题关键字',
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
field: 'provider',
|
field: 'errorCode',
|
||||||
label: '错误码',
|
label: '错误码',
|
||||||
component: 'NsInput',
|
component: 'NsInput',
|
||||||
componentProps: {
|
componentProps: {
|
||||||
|
allowClear: true,
|
||||||
placeholder: '请输入告警错误码',
|
placeholder: '请输入告警错误码',
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
field: 'payWay',
|
field: 'enableNotifications',
|
||||||
label: '启用状态',
|
label: '启用状态',
|
||||||
component: 'NsSelect',
|
component: 'NsSelect',
|
||||||
componentProps: {
|
componentProps: {
|
||||||
|
allowClear: true,
|
||||||
placeholder: '请选择启用状态',
|
placeholder: '请选择启用状态',
|
||||||
options: [
|
options: [
|
||||||
{
|
{
|
||||||
|
Reference in New Issue
Block a user