|
|
//告警策略
|
|
|
layui.define(['form', 'admin', 'laydate', 'common','sessions','reskpilist'], function (exports) {
|
|
|
layui.define(['form', 'admin', 'laydate', 'common','sessions','reskpilist','table','xmSelect'], function (exports) {
|
|
|
var $ = layui.$;
|
|
|
var form = layui.form;
|
|
|
var laydate = layui.laydate;
|
|
|
var admin = layui.admin;
|
|
|
var common = layui.common;
|
|
|
var domainName = common.domainName;
|
|
|
var table = layui.table;
|
|
|
var xmSelect = layui.xmSelect;
|
|
|
|
|
|
//对外暴露的接口
|
|
|
exports('alarmpolicyAdd', function (data) {
|
|
|
var sessions = layui.sessions;
|
|
|
var accessToken = sessions.getToken()['access_token'];
|
|
|
console.log(data)
|
|
|
var seriousInkeySelect ;
|
|
|
var options = '';
|
|
|
var defaultoptions = '';
|
|
|
var conditionoptions = "<option value=\"2\">等于</option>\n" +
|
|
|
" <option value=\"6\">包含</option>\n" +
|
|
|
" <option value=\"9\">不包含</option>";
|
|
|
var seriousresIds = [];
|
|
|
var importantresIds = [];
|
|
|
var commonlyresIds = [];
|
|
|
var seriousresTypes = [];
|
|
|
var importantresTypes = [];
|
|
|
var commonlyresTypes = [];
|
|
|
var seriousJoinTypes = [];
|
|
|
var importantJoinTypes = [];
|
|
|
var commonlyJoinTypes = [];
|
|
|
var seriousInkeys = '';
|
|
|
var importantInkeys = '';
|
|
|
var commonlyInkeys = '';
|
|
|
var policyConfigItems = [];
|
|
|
form.render(null, 'add-alarmpolicy-form');
|
|
|
//初始化日期组件
|
|
|
laydate.render({
|
...
|
...
|
@@ -29,7 +49,6 @@ layui.define(['form', 'admin', 'laydate', 'common','sessions','reskpilist'], fun |
|
|
,type: 'time'
|
|
|
,range: true
|
|
|
});
|
|
|
var resType = localStorage.getItem("currentResType");
|
|
|
//编辑
|
|
|
if(data && data.id){
|
|
|
admin.req({
|
...
|
...
|
@@ -42,10 +61,144 @@ layui.define(['form', 'admin', 'laydate', 'common','sessions','reskpilist'], fun |
|
|
exprToChar(res.object, 'seriousExpr');
|
|
|
form.val("add-alarmpolicy-form",res.object);
|
|
|
$("#alarm-policy-kpiName").val(res.object.kpiId +" "+ res.object.kpiName);
|
|
|
$("#serious_policy_param_val").val(res.object.kpiId);
|
|
|
$("#important_policy_param_val").val(res.object.kpiId);
|
|
|
$("#commonly_policy_param_val").val(res.object.kpiId);
|
|
|
$("#seriousTimes").val(res.object.seriousTimes);
|
|
|
$("#importantTimes").val(res.object.importantTimes);
|
|
|
$("#commonlyTimes").val(res.object.commonlyTimes);
|
|
|
$("#alarmPolicyType").val(res.object.policyType);
|
|
|
if(res.data && res.data.length>0){
|
|
|
let seriousItems = res.data.filter(item=>item.policyFlag === 'serious');
|
|
|
let importantItems = res.data.filter(item=>item.policyFlag === 'important');
|
|
|
let commonlyItems = res.data.filter(item=>item.policyFlag === 'commonly');
|
|
|
seriouspolicyItems =seriousItems;
|
|
|
importantpolicyItems = importantItems;
|
|
|
commonlypolicyItems = commonlyItems;
|
|
|
if(seriousItems && seriousItems.length>0){
|
|
|
|
|
|
var timeobj ={}
|
|
|
for (let i = 0; i < seriousItems.length; i++) {
|
|
|
var times = new Date().getTime();
|
|
|
timeobj['time'+i] =times;
|
|
|
var cond = '';
|
|
|
if(seriousItems[i].relationSymbol && seriousItems[i].relationSymbol == '0'){
|
|
|
cond = `<div class="layui-form-item cont-base" id="serious-policy-box-${times}-condition">
|
|
|
<input type="checkbox" lay-skin="switch" lay-text="或|且" value="是">
|
|
|
</div>`;
|
|
|
}else if(seriousItems[i].relationSymbol && seriousItems[i].relationSymbol == '1'){
|
|
|
cond = `<div class="layui-form-item cont-base" id="serious-policy-box-${times}-condition">
|
|
|
<input type="checkbox" lay-skin="switch" lay-text="或|且" checked value="否">
|
|
|
</div>`;
|
|
|
}
|
|
|
var clone = ""
|
|
|
if(i<seriousItems.length-1) {
|
|
|
clone = $(`#serious-policy-box`).clone();
|
|
|
clone.attr("id", "serious-policy-box-" + times).find("i.policy-input-add").addClass("hide")
|
|
|
.parent().parent().find("i.policy-input-del").attr("data-id", "serious-policy-box-" + times).removeClass("hide")
|
|
|
.parent().parent().find("div.paramval").addClass("hide")
|
|
|
.parent().parent().find("input.layui-input").val("");
|
|
|
clone.find("select.policyparam").html(options);
|
|
|
clone.find("select.condition").html(conditionoptions);
|
|
|
clone.find("input[type=tel]").val('');
|
|
|
}
|
|
|
if(i==0) {
|
|
|
$(`#serious-policy-box`).after(clone).after(cond);
|
|
|
$("#serious-policy-box select.condition").val(seriousItems[0].operatorSymbol);
|
|
|
$("#serious-policy-box input[type=tel]").val(seriousItems[0].operatorValue);
|
|
|
}else{
|
|
|
var timestr =timeobj['time'+(i-1)];
|
|
|
$(`#serious-policy-box-${timestr}`).after(clone).after(cond);
|
|
|
$(`#serious-policy-box-${timestr} select.policyparam`).val(seriousItems[i].confNo);
|
|
|
$(`#serious-policy-box-${timestr} select.condition`).val(seriousItems[i].operatorSymbol);
|
|
|
$(`#serious-policy-box-${timestr} input[type=tel]`).val(seriousItems[i].operatorValue);
|
|
|
}
|
|
|
form.render();
|
|
|
}
|
|
|
}
|
|
|
if(importantItems && importantItems.length>0){
|
|
|
var timeobj ={}
|
|
|
for (let i = 0; i < importantItems.length; i++) {
|
|
|
var times = new Date().getTime();
|
|
|
timeobj['time'+i] =times;
|
|
|
var cond = '';
|
|
|
if(importantItems[i].relationSymbol && importantItems[i].relationSymbol == '0'){
|
|
|
cond = `<div class="layui-form-item cont-base" id="important-policy-box-${times}-condition">
|
|
|
<input type="checkbox" lay-skin="switch" lay-text="或|且" value="是">
|
|
|
</div>`;
|
|
|
}else if(importantItems[i].relationSymbol && importantItems[i].relationSymbol == '1'){
|
|
|
cond = `<div class="layui-form-item cont-base" id="important-policy-box-${times}-condition">
|
|
|
<input type="checkbox" checked lay-skin="switch" lay-text="或|且" value="否">
|
|
|
</div>`;
|
|
|
}
|
|
|
var clone = ""
|
|
|
if(i<importantItems.length-1) {
|
|
|
clone = $(`#important-policy-box`).clone();
|
|
|
clone.attr("id", "important-policy-box-" + times).find("i.policy-input-add").addClass("hide")
|
|
|
.parent().parent().find("i.policy-input-del").attr("data-id", "important-policy-box-" + times).removeClass("hide")
|
|
|
.parent().parent().find("div.paramval").addClass("hide")
|
|
|
.parent().parent().find("input.layui-input").val("");
|
|
|
clone.find("select.policyparam").html(options);
|
|
|
clone.find("select.condition").html(conditionoptions);
|
|
|
clone.find("input[type=tel]").val('');
|
|
|
}
|
|
|
if(i==0) {
|
|
|
$(`#important-policy-box`).after(clone).after(cond);
|
|
|
$("#important-policy-box select.condition").val(importantItems[0].operatorSymbol);
|
|
|
$("#important-policy-box input[type=tel]").val(importantItems[0].operatorValue);
|
|
|
}else{
|
|
|
var timestr =timeobj['time'+(i-1)];
|
|
|
$(`#important-policy-box-${timestr}`).after(clone).after(cond);
|
|
|
$(`#important-policy-box-${timestr} select.policyparam`).val(importantItems[i].confNo);
|
|
|
$(`#important-policy-box-${timestr} select.condition`).val(importantItems[i].operatorSymbol);
|
|
|
$(`#important-policy-box-${timestr} input[type=tel]`).val(importantItems[i].operatorValue);
|
|
|
}
|
|
|
form.render();
|
|
|
}
|
|
|
}
|
|
|
if(commonlyItems && commonlyItems.length>0){
|
|
|
var timeobj ={}
|
|
|
for (let i = 0; i < commonlyItems.length; i++) {
|
|
|
var times = new Date().getTime();
|
|
|
timeobj['time'+i] =times;
|
|
|
var cond = '';
|
|
|
if(commonlyItems[i].relationSymbol && commonlyItems[i].relationSymbol == '0'){
|
|
|
cond = `<div class="layui-form-item cont-base" id="commonly-policy-box-${times}-condition">
|
|
|
<input type="checkbox" lay-skin="switch" lay-text="或|且" value="是">
|
|
|
</div>`;
|
|
|
}else if(commonlyItems[i].relationSymbol && commonlyItems[i].relationSymbol == '1'){
|
|
|
cond = `<div class="layui-form-item cont-base" id="commonly-policy-box-${times}-condition">
|
|
|
<input type="checkbox" checked lay-skin="switch" lay-text="或|且" value="否">
|
|
|
</div>`;
|
|
|
}
|
|
|
var clone = ""
|
|
|
if(i<commonlyItems.length-1) {
|
|
|
clone = $(`#commonly-policy-box`).clone();
|
|
|
clone.attr("id", "commonly-policy-box-" + times).find("i.policy-input-add").addClass("hide")
|
|
|
.parent().parent().find("i.policy-input-del").attr("data-id", "commonly-policy-box-" + times).removeClass("hide")
|
|
|
.parent().parent().find("div.paramval").addClass("hide")
|
|
|
.parent().parent().find("input.layui-input").val("");
|
|
|
clone.find("select.policyparam").html(options);
|
|
|
clone.find("select.condition").html(conditionoptions);
|
|
|
clone.find("input[type=tel]").val('');
|
|
|
}
|
|
|
if(i==0) {
|
|
|
$(`#commonly-policy-box`).after(clone).after(cond);
|
|
|
$("#commonly-policy-box select.condition").val(commonlyItems[0].operatorSymbol);
|
|
|
$("#commonly-policy-box input[type=tel]").val(commonlyItems[0].operatorValue);
|
|
|
}else{
|
|
|
var timestr =timeobj['time'+(i-1)];
|
|
|
$(`#commonly-policy-box-${timestr}`).after(clone).after(cond);
|
|
|
$(`#commonly-policy-box-${timestr} select.policyparam`).val(commonlyItems[i].confNo);
|
|
|
$(`#commonly-policy-box-${timestr} select.condition`).val(commonlyItems[i].operatorSymbol);
|
|
|
$(`#commonly-policy-box-${timestr} input[type=tel]`).val(commonlyItems[i].operatorValue);
|
|
|
}
|
|
|
|
|
|
form.render();
|
|
|
}
|
|
|
}
|
|
|
|
|
|
}
|
|
|
}
|
|
|
});
|
|
|
}else{
|
...
|
...
|
@@ -67,21 +220,376 @@ layui.define(['form', 'admin', 'laydate', 'common','sessions','reskpilist'], fun |
|
|
var id = $(this).data("flag");
|
|
|
$("#"+id).val('08:00:00 - 19:59:59');
|
|
|
});
|
|
|
// zhangtianqi 2022-06-22
|
|
|
/*$('.noticeExpr').unbind('click').on('click', function () {
|
|
|
var id = $(this).prop('id');
|
|
|
var alarmTimes = '';
|
|
|
if (['seriousExpr', 'importantExpr', 'commonlyExpr'].includes(id)) {
|
|
|
id = id.substring(0, id.length - 4);
|
|
|
alarmTimes = $('#' + id + 'Times').val();
|
|
|
}
|
|
|
editNoticeExpr($(this).val(), alarmTimes, id);
|
|
|
});*/
|
|
|
//指标信息
|
|
|
if(data.kpiId){
|
|
|
$("#alarm-policy-kpiId").val(data.kpiId);
|
|
|
$("#alarm-policy-kpiName").val(data.kpiId + " " + data.name);
|
|
|
}
|
|
|
initpolicyParam();
|
|
|
function initpolicyParam() {
|
|
|
admin.req({
|
|
|
url: `${domainName}/api-web/manage/ddic/findSucDdics/alarmpolicy_param?access_token=${accessToken}`,
|
|
|
method: 'POST',
|
|
|
async: false,
|
|
|
success: function (res) {
|
|
|
var ddiclist = res.data;
|
|
|
$.each(ddiclist, function (i, v) {
|
|
|
if(v.ddicCode=="current_kpi") {
|
|
|
defaultoptions += '<option value="' + v.ddicCode + '">' + v.ddicName + '</option>';
|
|
|
$('select[name=serious_policy_param]').html(defaultoptions);
|
|
|
$('select[name=important_policy_param]').html(defaultoptions);
|
|
|
$('select[name=commonly_policy_param]').html(defaultoptions);
|
|
|
|
|
|
}else {
|
|
|
options += '<option value="' + v.ddicCode + '">' + v.ddicName + '</option>';
|
|
|
}
|
|
|
});
|
|
|
form.render('select');
|
|
|
}
|
|
|
});
|
|
|
}
|
|
|
form.on('select(serious_policy_param)', function(data){
|
|
|
if (data.value != ''){
|
|
|
//加载对应的参数
|
|
|
if(data.value == "device_id"){
|
|
|
var device_id = $(this).closest(".cont-base").find("input[type=tel]");
|
|
|
$(this).closest(".cont-base").find("input[type=tel]").unbind('click').on("click",function () {
|
|
|
common.openWin("template/res/reslist", "选择设备", {oldData: seriousresIds}, ["选择"], function () {
|
|
|
var data = table.checkStatus('reslist_resListTable').data;
|
|
|
if (data.length == 0) {
|
|
|
layer.msg("请至少选择一条数据!", {icon: 7, time: 3000});
|
|
|
return false;
|
|
|
}
|
|
|
seriousresIds = [];
|
|
|
var device = ''
|
|
|
$.each(data, function (i, v) {
|
|
|
seriousresIds.push(v.id);
|
|
|
device +=v.id + ',';
|
|
|
|
|
|
})
|
|
|
if(device.length>0){
|
|
|
device = device.substring(0,device.length-1)
|
|
|
}
|
|
|
console.log(device_id)
|
|
|
device_id.val(device);
|
|
|
return device;
|
|
|
})
|
|
|
})
|
|
|
|
|
|
}else if(data.value== "dev_type"){
|
|
|
var dev_type = $(this).closest(".cont-base").find("input[type=tel]");
|
|
|
$(this).closest(".cont-base").find("input[type=tel]").unbind('click').on("click",function () {
|
|
|
//回填数据
|
|
|
common.openWin("baseconfig/resourcetype/index", "选择设备类型",
|
|
|
{
|
|
|
"resTypes": seriousresTypes
|
|
|
}, ["选择"], function () {
|
|
|
//找到选择的资源类型 并且订阅
|
|
|
var resourcetype = layui.resourcetype({"resTypes": seriousresTypes});
|
|
|
var data = resourcetype.getResTypeChecks();
|
|
|
var resTypes = ''
|
|
|
seriousresTypes = [];
|
|
|
if(data.length>0){
|
|
|
resTypes = data.substring(1,data.length)
|
|
|
}
|
|
|
seriousresTypes.push(resTypes.split(",")[0])
|
|
|
dev_type.val(resTypes);
|
|
|
return resTypes;
|
|
|
});
|
|
|
});
|
|
|
}else if(data.value == "join_type"){
|
|
|
var join_type= $(this).closest(".cont-base").find("input[type=tel]");
|
|
|
$(this).closest(".cont-base").find("input[type=tel]").unbind('click').on("click",function () {
|
|
|
//回填数据
|
|
|
common.openWin("baseconfig/bustype/index", "选择业务类型",
|
|
|
{
|
|
|
"busIds": seriousJoinTypes
|
|
|
}, ["选择"], function () {
|
|
|
//找到选择的所有业务 并且订阅
|
|
|
var bustype = layui.bustype({"busIds": seriousJoinTypes});
|
|
|
var data = bustype.getData();
|
|
|
var joinTypes = ''
|
|
|
seriousJoinTypes = [];
|
|
|
if(data.length>0){
|
|
|
joinTypes = data.substring(1,data.length)
|
|
|
}
|
|
|
seriousJoinTypes.push(joinTypes.split(",")[0]);
|
|
|
join_type.val(joinTypes);
|
|
|
return joinTypes
|
|
|
});
|
|
|
});
|
|
|
}else if(data.value == "inKey"){
|
|
|
//绑定资源类型下拉选择
|
|
|
$(this).closest(".cont-base").find("input[type=tel]").before('<div id="seriousvalue" class="xm-select-demo"></div>');
|
|
|
var inkeys= $(this).closest(".cont-base").find("input[type=tel]");
|
|
|
var seriousvalue =$(this).closest(".cont-base").find("div#seriousvalue");
|
|
|
//inkeys.hide();
|
|
|
$(this).closest(".cont-base").find("input[type=tel]").unbind('click').on("click",function () {
|
|
|
admin.req({
|
|
|
url: 'http://192.168.0.44:8080' + '/log-access/v1/lm2_logjoin_info_views?access_token=' + accessToken,
|
|
|
async: false,
|
|
|
success: function (res) {
|
|
|
// 资源类型下拉框
|
|
|
var logjoinList = res.data;
|
|
|
xmSelect.render({
|
|
|
el: '#seriousvalue',
|
|
|
tips: '=inKey=',
|
|
|
filterable: true,
|
|
|
//radio: false,
|
|
|
clickClose: false,
|
|
|
initValue: [seriousInkeys.split(",")[0]],
|
|
|
layVerify: 'required',
|
|
|
autoRow: true,
|
|
|
toolbar: {
|
|
|
show: true,
|
|
|
list: ['CLEAR']
|
|
|
},
|
|
|
height: '300px',
|
|
|
data: logjoinList,
|
|
|
on: function (data) {
|
|
|
seriousInkeys = data.arr.map(item => item.inKey).join(',');
|
|
|
inkeys.val(seriousInkeys);
|
|
|
if(data && data.isAdd) {
|
|
|
seriousvalue.remove();
|
|
|
inkeys.show();
|
|
|
}
|
|
|
return seriousInkeys
|
|
|
}
|
|
|
});
|
|
|
}
|
|
|
});
|
|
|
})
|
|
|
}
|
|
|
}
|
|
|
});
|
|
|
form.on('select(important_policy_param)', function(data){
|
|
|
if (data.value != ''){
|
|
|
//加载对应的参数
|
|
|
if(data.value == "device_id"){
|
|
|
var device_id = $(this).closest(".cont-base").find("input[type=tel]");
|
|
|
$(this).closest(".cont-base").find("input[type=tel]").unbind('click').on("click",function () {
|
|
|
common.openWin("template/res/reslist", "选择设备", {oldData: importantresIds}, ["选择"], function () {
|
|
|
var data = table.checkStatus('reslist_resListTable').data;
|
|
|
if (data.length == 0) {
|
|
|
layer.msg("请至少选择一条数据!", {icon: 7, time: 3000});
|
|
|
return false;
|
|
|
}
|
|
|
importantresIds = [];
|
|
|
var device = ''
|
|
|
$.each(data, function (i, v) {
|
|
|
importantresIds.push(v.id);
|
|
|
device +=v.id + ',';
|
|
|
|
|
|
})
|
|
|
if(device.length>0){
|
|
|
device = device.substring(0,device.length-1)
|
|
|
}
|
|
|
console.log(device_id)
|
|
|
device_id.val(device);
|
|
|
return device;
|
|
|
})
|
|
|
})
|
|
|
|
|
|
}else if(data.value== "dev_type"){
|
|
|
var dev_type = $(this).closest(".cont-base").find("input[type=tel]");
|
|
|
$(this).closest(".cont-base").find("input[type=tel]").unbind('click').on("click",function () {
|
|
|
//回填数据
|
|
|
common.openWin("baseconfig/resourcetype/index", "选择设备类型",
|
|
|
{
|
|
|
"resTypes": importantresTypes
|
|
|
}, ["选择"], function () {
|
|
|
//找到选择的资源类型 并且订阅
|
|
|
var resourcetype = layui.resourcetype({"resTypes": importantresTypes});
|
|
|
var data = resourcetype.getResTypeChecks();
|
|
|
var resTypes = ''
|
|
|
importantresTypes = [];
|
|
|
if(data.length>0){
|
|
|
resTypes = data.substring(1,data.length)
|
|
|
}
|
|
|
importantresTypes.push(resTypes.split(",")[0])
|
|
|
dev_type.val(resTypes);
|
|
|
return resTypes;
|
|
|
});
|
|
|
});
|
|
|
}else if(data.value == "join_type"){
|
|
|
var join_type= $(this).closest(".cont-base").find("input[type=tel]");
|
|
|
$(this).closest(".cont-base").find("input[type=tel]").unbind('click').on("click",function () {
|
|
|
//回填数据
|
|
|
common.openWin("baseconfig/bustype/index", "选择业务类型",
|
|
|
{
|
|
|
"busIds": importantJoinTypes
|
|
|
}, ["选择"], function () {
|
|
|
//找到选择的所有业务 并且订阅
|
|
|
var bustype = layui.bustype({"busIds": importantJoinTypes});
|
|
|
var data = bustype.getData();
|
|
|
var joinTypes = ''
|
|
|
importantJoinTypes = [];
|
|
|
if(data.length>0){
|
|
|
joinTypes = data.substring(1,data.length)
|
|
|
}
|
|
|
importantJoinTypes.push(joinTypes.split(",")[0]);
|
|
|
join_type.val(joinTypes);
|
|
|
return joinTypes
|
|
|
});
|
|
|
});
|
|
|
}else if(data.value == "inKey"){
|
|
|
//绑定资源类型下拉选择
|
|
|
$(this).closest(".cont-base").find("input[type=tel]").before('<div id="importantvalue" class="xm-select-demo"></div>');
|
|
|
var inkeys= $(this).closest(".cont-base").find("input[type=tel]");
|
|
|
var importantvalue =$(this).closest(".cont-base").find("div#importantvalue");
|
|
|
//inkeys.hide();
|
|
|
$(this).closest(".cont-base").find("input[type=tel]").unbind('click').on("click",function () {
|
|
|
admin.req({
|
|
|
url: 'http://192.168.0.44:8080' + '/log-access/v1/lm2_logjoin_info_views?access_token=' + accessToken,
|
|
|
async: false,
|
|
|
success: function (res) {
|
|
|
// 资源类型下拉框
|
|
|
var logjoinList = res.data;
|
|
|
xmSelect.render({
|
|
|
el: '#importantvalue',
|
|
|
tips: '=inKey=',
|
|
|
filterable: true,
|
|
|
//radio: false,
|
|
|
clickClose: false,
|
|
|
initValue: [importantInkeys.split(",")[0]],
|
|
|
layVerify: 'required',
|
|
|
autoRow: true,
|
|
|
toolbar: {
|
|
|
show: true,
|
|
|
list: [ 'CLEAR']
|
|
|
},
|
|
|
height: '300px',
|
|
|
data: logjoinList,
|
|
|
on: function (data) {
|
|
|
importantInkeys = data.arr.map(item => item.inKey).join(',');
|
|
|
inkeys.val(importantInkeys);
|
|
|
if(data && data.isAdd) {
|
|
|
importantvalue.remove();
|
|
|
inkeys.show();
|
|
|
}
|
|
|
return importantInkeys
|
|
|
}
|
|
|
});
|
|
|
}
|
|
|
});
|
|
|
})
|
|
|
}
|
|
|
}
|
|
|
});
|
|
|
form.on('select(commonly_policy_param)', function(data){
|
|
|
if (data.value != ''){
|
|
|
//加载对应的参数
|
|
|
if(data.value == "device_id"){
|
|
|
var device_id = $(this).closest(".cont-base").find("input[type=tel]");
|
|
|
$(this).closest(".cont-base").find("input[type=tel]").unbind('click').on("click",function () {
|
|
|
common.openWin("template/res/reslist", "选择设备", {oldData: commonlyresIds}, ["选择"], function () {
|
|
|
var data = table.checkStatus('reslist_resListTable').data;
|
|
|
if (data.length == 0) {
|
|
|
layer.msg("请至少选择一条数据!", {icon: 7, time: 3000});
|
|
|
return false;
|
|
|
}
|
|
|
commonlyresIds = [];
|
|
|
var device = ''
|
|
|
$.each(data, function (i, v) {
|
|
|
commonlyresIds.push(v.id);
|
|
|
device +=v.id + ',';
|
|
|
|
|
|
})
|
|
|
if(device.length>0){
|
|
|
device = device.substring(0,device.length-1)
|
|
|
}
|
|
|
//console.log(device_id)
|
|
|
device_id.val(device);
|
|
|
return device;
|
|
|
})
|
|
|
})
|
|
|
|
|
|
}else if(data.value== "dev_type"){
|
|
|
var dev_type = $(this).closest(".cont-base").find("input[type=tel]");
|
|
|
$(this).closest(".cont-base").find("input[type=tel]").unbind('click').on("click",function () {
|
|
|
//回填数据
|
|
|
common.openWin("baseconfig/resourcetype/index", "选择设备类型",
|
|
|
{
|
|
|
"resTypes": commonlyresTypes
|
|
|
}, ["选择"], function () {
|
|
|
//找到选择的资源类型 并且订阅
|
|
|
var resourcetype = layui.resourcetype({"resTypes": commonlyresTypes});
|
|
|
var data = resourcetype.getResTypeChecks();
|
|
|
var resTypes = ''
|
|
|
commonlyresTypes = [];
|
|
|
if(data.length>0){
|
|
|
resTypes = data.substring(1,data.length)
|
|
|
}
|
|
|
commonlyresTypes.push(resTypes.split(",")[0])
|
|
|
dev_type.val(resTypes);
|
|
|
return resTypes;
|
|
|
});
|
|
|
});
|
|
|
}else if(data.value == "join_type"){
|
|
|
var join_type= $(this).closest(".cont-base").find("input[type=tel]");
|
|
|
$(this).closest(".cont-base").find("input[type=tel]").unbind('click').on("click",function () {
|
|
|
//回填数据
|
|
|
common.openWin("baseconfig/bustype/index", "选择业务类型",
|
|
|
{
|
|
|
"busIds": commonlyJoinTypes
|
|
|
}, ["选择"], function () {
|
|
|
//找到选择的所有业务 并且订阅
|
|
|
var bustype = layui.bustype({"busIds": commonlyJoinTypes});
|
|
|
var data = bustype.getData();
|
|
|
var joinTypes = ''
|
|
|
commonlyJoinTypes = [];
|
|
|
if(data.length>0){
|
|
|
joinTypes = data.substring(1,data.length)
|
|
|
}
|
|
|
commonlyJoinTypes.push(joinTypes.split(",")[0]);
|
|
|
join_type.val(joinTypes);
|
|
|
return joinTypes
|
|
|
});
|
|
|
});
|
|
|
}else if(data.value == "inKey"){
|
|
|
//绑定资源类型下拉选择
|
|
|
$(this).closest(".cont-base").find("input[type=tel]").before('<div id="commonlyvalue" class="xm-select-demo"></div>');
|
|
|
var inkeys= $(this).closest(".cont-base").find("input[type=tel]");
|
|
|
var commonlyvalue =$(this).closest(".cont-base").find("div#commonlyvalue");
|
|
|
//inkeys.hide();
|
|
|
$(this).closest(".cont-base").find("input[type=tel]").unbind('click').on("click",function () {
|
|
|
admin.req({
|
|
|
url: 'http://192.168.0.44:8080' + '/log-access/v1/lm2_logjoin_info_views?access_token=' + accessToken,
|
|
|
async: false,
|
|
|
success: function (res) {
|
|
|
// 资源类型下拉框
|
|
|
var logjoinList = res.data;
|
|
|
xmSelect.render({
|
|
|
el: '#commonlyvalue',
|
|
|
tips: '=inKey=',
|
|
|
filterable: true,
|
|
|
//radio: false,
|
|
|
clickClose: false,
|
|
|
initValue: [commonlyInkeys.split(",")[0]],
|
|
|
layVerify: 'required',
|
|
|
autoRow: true,
|
|
|
toolbar: {
|
|
|
show: true,
|
|
|
list: ['CLEAR']
|
|
|
},
|
|
|
height: '300px',
|
|
|
data: logjoinList,
|
|
|
on: function (data) {
|
|
|
commonlyInkeys = data.arr.map(item => item.inKey).join(',');
|
|
|
inkeys.val(commonlyInkeys);
|
|
|
if(data && data.isAdd) {
|
|
|
commonlyvalue.remove();
|
|
|
inkeys.show();
|
|
|
}
|
|
|
return commonlyInkeys
|
|
|
}
|
|
|
});
|
|
|
}
|
|
|
});
|
|
|
})
|
|
|
}
|
|
|
}
|
|
|
});
|
|
|
|
|
|
//告警规则类型切换事件
|
|
|
form.on('radio(alarm-policy-rule-type)', function (data) {
|
...
|
...
|
@@ -105,7 +613,9 @@ layui.define(['form', 'admin', 'laydate', 'common','sessions','reskpilist'], fun |
|
|
$("#alarm-policy-kpiId").val(data[0].kpiId);
|
|
|
$("#alarm-policy-kpiName").val(data[0].kpiId + " " + data[0].kpiName);
|
|
|
$("#alarmPolicyName").val(data[0].kpiName + "告警策略");
|
|
|
|
|
|
$("#serious_policy_param_val").val(data[0].kpiId);
|
|
|
$("#important_policy_param_val").val(data[0].kpiId);
|
|
|
$("#commonly_policy_param_val").val(data[0].kpiId);
|
|
|
var arry = [ "base", "cpu", "mem"];
|
|
|
return true;
|
|
|
}
|
...
|
...
|
@@ -123,7 +633,9 @@ layui.define(['form', 'admin', 'laydate', 'common','sessions','reskpilist'], fun |
|
|
$(`#${id}`).remove();
|
|
|
});
|
|
|
|
|
|
|
|
|
var seriouspolicyItems = [];
|
|
|
var importantpolicyItems = [];
|
|
|
var commonlypolicyItems = [];
|
|
|
//生成策略
|
|
|
$("a.createpolicybtn").on("click",function (){
|
|
|
var kpiId = $("#alarm-policy-kpiId").val();
|
...
|
...
|
@@ -135,27 +647,200 @@ layui.define(['form', 'admin', 'laydate', 'common','sessions','reskpilist'], fun |
|
|
return false;
|
|
|
}
|
|
|
var policyFlag = $(this).data("flag");
|
|
|
var conOjb = {"0":">","1":"<","2":"=","3":">=","4":"<=","5":"equals","6":"contains","7":"startsWith","8":"endsWith"};
|
|
|
var conOjb = {"0":">","1":"<","2":"=","3":">=","4":"<=","5":"equals","6":"contains","7":"startsWith","8":"endsWith","9":"nocontains"};
|
|
|
var doms = $(`[id^=${policyFlag}-policy-box]`);
|
|
|
var policyStr = '';
|
|
|
$(doms).each(function(i,v){
|
|
|
var domId = $(v).attr("id");
|
|
|
if(domId.indexOf("condition") != -1){//条件
|
|
|
var open = $(v).find('.layui-form-switch').hasClass("layui-form-onswitch");
|
|
|
if(open){ policyStr += "||" }else{ policyStr += "&&" }
|
|
|
}else{ //值
|
|
|
var conditon = $(v).find("."+policyFlag+"_condition").val();
|
|
|
var cls = policyFlag +"_value";
|
|
|
var conval = $(v).find('[flag="'+cls+'"]').val().trim();
|
|
|
if(conval){
|
|
|
if(conditon < 5){ //数字类的
|
|
|
policyStr += `Double.parseDouble([${kpiId},kpiValue])${conOjb[conditon]}${conval}`;
|
|
|
}else{ //字符串类的
|
|
|
policyStr += `[${kpiId},kpiValue].${conOjb[conditon]}("${conval}")`;
|
|
|
var relationobj = {"1": 0,"3":1,"5":2,"7":3,"9":4,"11":5,"13":6,"15":7}
|
|
|
if(policyFlag.indexOf("serious")!=-1) {
|
|
|
seriouspolicyItems = [];
|
|
|
$(doms).each(function (i, v) {
|
|
|
var domId = $(v).attr("id");
|
|
|
if (domId.indexOf("condition") != -1) {//条件
|
|
|
var j = relationobj[''+i+''];
|
|
|
console.log(j);
|
|
|
var open = $(v).find('.layui-form-switch').hasClass("layui-form-onswitch");
|
|
|
if (open) {
|
|
|
policyStr += "||"
|
|
|
|
|
|
seriouspolicyItems[j].relationSymbol= "1"
|
|
|
} else {
|
|
|
policyStr += "&&"
|
|
|
seriouspolicyItems[j].relationSymbol= "0"
|
|
|
}
|
|
|
} else { //值
|
|
|
var conditon = $(v).find(".condition").val();
|
|
|
var cls = policyFlag + "_value";
|
|
|
var paramflag = policyFlag + "_policy_param"
|
|
|
var conval = $(v).find('[flag="' + cls + '"]').val().trim();
|
|
|
var param = $(v).find('[name="' + paramflag + '"]').val().trim();
|
|
|
if (conval && param) {
|
|
|
if (param == "current_kpi") {
|
|
|
var itemObj = {
|
|
|
"confNo":kpiId,
|
|
|
"kpiId" :kpiId,
|
|
|
"type":param,
|
|
|
"operatorSymbol":conditon,
|
|
|
'operatorValue':conval,
|
|
|
"relationSymbol": '',
|
|
|
"isTermOver": 0,
|
|
|
"sort": 0,
|
|
|
"policyFlag":policyFlag
|
|
|
}
|
|
|
seriouspolicyItems.push(itemObj);
|
|
|
if (conditon < 5) { //数字类的
|
|
|
policyStr += `Double.parseDouble([${kpiId},kpiValue])${conOjb[conditon]}${conval}`;
|
|
|
} else { //字符串类的
|
|
|
policyStr += `[${kpiId},kpiValue]${conOjb[conditon]}("${conval}")`;
|
|
|
}
|
|
|
} else {
|
|
|
var itemObj = {
|
|
|
"confNo":param,
|
|
|
"kpiId" :kpiId,
|
|
|
"type":param,
|
|
|
"operatorSymbol":conditon,
|
|
|
'operatorValue':conval,
|
|
|
"relationSymbol": '',
|
|
|
"isTermOver": 0,
|
|
|
"sort": i-1,
|
|
|
"policyFlag":policyFlag
|
|
|
}
|
|
|
seriouspolicyItems.push(itemObj);
|
|
|
if (conditon < 5) {
|
|
|
policyStr += `[${param}]${conOjb[conditon]}"${conval}"`;
|
|
|
} else {
|
|
|
policyStr += `[${param}]${conOjb[conditon]}("${conval}")`;
|
|
|
}
|
|
|
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
});
|
|
|
});
|
|
|
}else if(policyFlag.indexOf("important")!=-1){
|
|
|
importantpolicyItems = [];
|
|
|
$(doms).each(function (i, v) {
|
|
|
var domId = $(v).attr("id");
|
|
|
if (domId.indexOf("condition") != -1) {//条件
|
|
|
var j = relationobj[''+i+''];
|
|
|
var open = $(v).find('.layui-form-switch').hasClass("layui-form-onswitch");
|
|
|
if (open) {
|
|
|
policyStr += "||"
|
|
|
importantpolicyItems[j].relationSymbol= "1"
|
|
|
} else {
|
|
|
policyStr += "&&"
|
|
|
importantpolicyItems[j].relationSymbol= "0"
|
|
|
}
|
|
|
} else { //值
|
|
|
var conditon = $(v).find(".condition").val();
|
|
|
var cls = policyFlag + "_value";
|
|
|
var paramflag = policyFlag + "_policy_param"
|
|
|
var conval = $(v).find('[flag="' + cls + '"]').val().trim();
|
|
|
var param = $(v).find('[name="' + paramflag + '"]').val().trim();
|
|
|
if (conval && param) {
|
|
|
if (param == "current_kpi") {
|
|
|
var itemObj = {
|
|
|
"confNo":kpiId,
|
|
|
"kpiId" :kpiId,
|
|
|
"type":param,
|
|
|
"operatorSymbol": conditon,
|
|
|
'operatorValue': conval,
|
|
|
"relationSymbol": '',
|
|
|
"isTermOver": 0,
|
|
|
"sort": 0,
|
|
|
"policyFlag":policyFlag
|
|
|
}
|
|
|
importantpolicyItems.push(itemObj);
|
|
|
if (conditon < 5) { //数字类的
|
|
|
policyStr += `Double.parseDouble([${kpiId},kpiValue])${conOjb[conditon]}${conval}`;
|
|
|
} else { //字符串类的
|
|
|
policyStr += `[${kpiId},kpiValue]${conOjb[conditon]}("${conval}")`;
|
|
|
}
|
|
|
} else {
|
|
|
var itemObj = {
|
|
|
"confNo":param,
|
|
|
"kpiId" :kpiId,
|
|
|
"type":param,
|
|
|
"operatorSymbol": conditon,
|
|
|
'operatorValue': conval,
|
|
|
"relationSymbol": '',
|
|
|
"isTermOver": 0,
|
|
|
"sort": i-1,
|
|
|
"policyFlag":policyFlag
|
|
|
}
|
|
|
importantpolicyItems.push(itemObj);
|
|
|
if (conditon < 5) {
|
|
|
policyStr += `[${param}]${conOjb[conditon]}"${conval}"`;
|
|
|
} else {
|
|
|
policyStr += `[${param}]${conOjb[conditon]}("${conval}")`;
|
|
|
}
|
|
|
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
});
|
|
|
|
|
|
}else if(policyFlag.indexOf("commonly")!=-1){
|
|
|
commonlypolicyItems = [];
|
|
|
$(doms).each(function (i, v) {
|
|
|
var domId = $(v).attr("id");
|
|
|
if (domId.indexOf("condition") != -1) {//条件
|
|
|
var j = relationobj[''+i+''];
|
|
|
var open = $(v).find('.layui-form-switch').hasClass("layui-form-onswitch");
|
|
|
if (open) {
|
|
|
policyStr += "||"
|
|
|
commonlypolicyItems[j].relationSymbol= "1";
|
|
|
} else {
|
|
|
policyStr += "&&"
|
|
|
commonlypolicyItems[j].relationSymbol= "0";
|
|
|
}
|
|
|
} else { //值
|
|
|
var conditon = $(v).find(".condition").val();
|
|
|
var cls = policyFlag + "_value";
|
|
|
var paramflag = policyFlag + "_policy_param"
|
|
|
var conval = $(v).find('[flag="' + cls + '"]').val().trim();
|
|
|
var param = $(v).find('[name="' + paramflag + '"]').val().trim();
|
|
|
if (conval && param) {
|
|
|
if (param == "current_kpi") {
|
|
|
var itemObj = {
|
|
|
"confNo":kpiId,
|
|
|
"kpiId" :kpiId,
|
|
|
"type":param,
|
|
|
"operatorSymbol":conditon,
|
|
|
'operatorValue':conval,
|
|
|
"relationSymbol": '',
|
|
|
"isTermOver": 0,
|
|
|
"sort": 0,
|
|
|
"policyFlag":policyFlag
|
|
|
}
|
|
|
commonlypolicyItems.push(itemObj);
|
|
|
if (conditon < 5) { //数字类的
|
|
|
policyStr += `Double.parseDouble([${kpiId},kpiValue])${conOjb[conditon]}${conval}`;
|
|
|
} else { //字符串类的
|
|
|
policyStr += `[${kpiId},kpiValue]${conOjb[conditon]}("${conval}")`;
|
|
|
}
|
|
|
} else {
|
|
|
var itemObj = {
|
|
|
"confNo":param,
|
|
|
"kpiId" :kpiId,
|
|
|
"type":param,
|
|
|
"operatorSymbol":conditon,
|
|
|
'operatorValue': conval,
|
|
|
"relationSymbol": '',
|
|
|
"isTermOver": 0,
|
|
|
"sort": i-1,
|
|
|
"policyFlag":policyFlag
|
|
|
}
|
|
|
commonlypolicyItems.push(itemObj);
|
|
|
if (conditon < 5) {
|
|
|
policyStr += `[${param}]${conOjb[conditon]}"${conval}"`;
|
|
|
} else {
|
|
|
policyStr += `[${param}]${conOjb[conditon]}("${conval}")`;
|
|
|
}
|
|
|
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
});
|
|
|
}
|
|
|
if(policyStr){
|
|
|
$(`#${policyFlag}Policy`).val(policyStr);
|
|
|
}else{
|
...
|
...
|
@@ -186,11 +871,33 @@ layui.define(['form', 'admin', 'laydate', 'common','sessions','reskpilist'], fun |
|
|
charToExpr(data, 'commonlyExpr');
|
|
|
charToExpr(data, 'importantExpr');
|
|
|
charToExpr(data, 'seriousExpr');
|
|
|
|
|
|
var params = {};
|
|
|
var policyConfigObj ={}
|
|
|
policyConfigObj.seriousPolicyDesc = data["seriousPolicy"];
|
|
|
policyConfigObj.importantPolicyDesc = data["importantPolicy"];
|
|
|
policyConfigObj.commonlyPolicyDesc = data["commonlyPolicy"];
|
|
|
if(seriouspolicyItems.length>0) {
|
|
|
for (let i = 0; i < seriouspolicyItems.length; i++) {
|
|
|
policyConfigItems.push(seriouspolicyItems[i]);
|
|
|
}
|
|
|
}
|
|
|
if(importantpolicyItems.length>0){
|
|
|
for (let i = 0; i < importantpolicyItems.length; i++) {
|
|
|
policyConfigItems.push(importantpolicyItems[i]);
|
|
|
}
|
|
|
}
|
|
|
if(commonlypolicyItems.length>0){
|
|
|
for (let i = 0; i < commonlypolicyItems.length; i++) {
|
|
|
policyConfigItems.push(commonlypolicyItems[i]);
|
|
|
}
|
|
|
}
|
|
|
params.data = JSON.stringify(data);
|
|
|
params.policyConfigObj =JSON.stringify(policyConfigObj);
|
|
|
params.policyConfigItems = policyConfigItems;
|
|
|
form.on('submit(add-alarmpolicy-form)',function () {
|
|
|
admin.req({
|
|
|
url : domainName + '/api-web/alarmPolicy/save?access_token='+accessToken
|
|
|
,data:JSON.stringify(data)
|
|
|
,data:JSON.stringify(params)
|
|
|
,type:'post'
|
|
|
,contentType: "application/json; charset=utf-8"
|
|
|
,done:function (res){
|
...
|
...
|
@@ -198,9 +905,9 @@ layui.define(['form', 'admin', 'laydate', 'common','sessions','reskpilist'], fun |
|
|
localStorage.setItem("detailPageOfcustomPolicyId",res.str)
|
|
|
layer.msg(res.msg, { offset: '15px' , icon: 1 , time: 1000 },function (){
|
|
|
localStorage.removeItem("currentResType");
|
|
|
if(layui.alarmpolicyIndex && layui.alarmpolicyIndex()){
|
|
|
layui.alarmpolicyIndex().reloadAlarmPolicy()
|
|
|
}
|
|
|
// if(layui.alarmpolicyIndex && layui.alarmpolicyIndex()){
|
|
|
// layui.alarmpolicyIndex().reloadAlarmPolicy()
|
|
|
// }
|
|
|
});
|
|
|
}else{
|
|
|
layer.msg(res.msg, { offset: '15px' , icon: 7 , time: 1000 });
|
...
|
...
|
@@ -221,9 +928,13 @@ layui.define(['form', 'admin', 'laydate', 'common','sessions','reskpilist'], fun |
|
|
var clone = $(`#${id}`).clone();
|
|
|
clone.attr("id",id+"-"+times).find("i.policy-input-add").addClass("hide")
|
|
|
.parent().parent().find("i.policy-input-del").attr("data-id",id + "-"+times).removeClass("hide")
|
|
|
.parent().parent().find("div.paramval").addClass("hide")
|
|
|
.parent().parent().find("input.layui-input").val("");
|
|
|
//console.log(clone.find("select.policyparam").html(options))
|
|
|
clone.find("select.policyparam").html(options);
|
|
|
clone.find("select.condition").html(conditionoptions);
|
|
|
clone.find("input[type=tel]").val('');
|
|
|
$(`#${id}`).after(clone).after(cond);
|
|
|
|
|
|
form.render();
|
|
|
//渲染新增事件
|
|
|
$("i.policy-input-add").off("click").on("click",function (){
|
...
|
...
|
|