|
|
/** 指标组新增 */
|
|
|
layui.define(['table', 'form', 'laydate', 'common', 'sessions', 'laydate', 'element', 'admin', 'kpiIndex', 'resourcetype'], function (exports) {
|
|
|
var $ = layui.$;
|
|
|
var form = layui.form;
|
|
|
var table = layui.table;
|
|
|
var common = layui.common;
|
|
|
var admin = layui.admin;
|
|
|
var view = layui.view;
|
|
|
var element = layui.element;
|
|
|
|
|
|
// 对外暴露的接口
|
|
|
exports('restypepageEdit', function (data) {
|
|
|
var id = data.id ? data.id : '';
|
|
|
var sessions = layui.sessions;
|
|
|
var accessToken = sessions.getToken().access_token;
|
|
|
var domainName = common.domainName;
|
|
|
// 表格数据
|
|
|
var restypepageKpiTableData = [];
|
|
|
// 指标自定义类型数据组装option
|
|
|
var restypekpitype;
|
|
|
//指标表格
|
|
|
var restypepageKpiTable;
|
|
|
// 加载遮罩
|
|
|
var loading;
|
|
|
// 如果是编辑,回显数据
|
|
|
var restypePageData = {
|
|
|
id: '',
|
|
|
resType: '',
|
|
|
os: '',
|
|
|
provider: '',
|
|
|
model: '',
|
|
|
protocol: ''
|
|
|
};
|
|
|
|
|
|
//初始化下拉框数据
|
|
|
initSelect();
|
|
|
//进入页面后第一次加载指标表格数据
|
|
|
loadRestypepageKpiFlagTable();
|
|
|
//获取指标自定义类型字典数据
|
|
|
getRestypePageKpiTypes();
|
|
|
|
|
|
/**
|
|
|
* 初始化下拉框数据
|
|
|
*
|
|
|
* */
|
|
|
function initSelect() {
|
|
|
common.resTypeSelect("restypepagekpi_select_resType", function () {
|
|
|
form.render("select");
|
|
|
});
|
|
|
common.renderCollProtocolSelect('restypepagekpiCollProtocol', function () {
|
|
|
form.render("select");
|
|
|
});
|
|
|
common.renderCollProtocolSelect('restypepagekpiCollProtocol');
|
|
|
//绑定厂商下拉选择
|
|
|
common.providerSelect("restypepagekpiProvider", function () {
|
|
|
form.render("select");
|
|
|
});
|
|
|
common.renderDdicSelect('restypepagekpiOs', 'os', function () {
|
|
|
form.render("select");
|
|
|
}, "=操作系统=");
|
|
|
// 根据id查询资源类型页面配置信息,在下拉框加载完成后,防止因未加载完成,造成回填异常
|
|
|
getrestypePageInfo(id);
|
|
|
}
|
|
|
|
|
|
|
|
|
/**
|
|
|
* 获取指标自定义类型字典数据
|
|
|
*
|
|
|
* */
|
|
|
function getRestypePageKpiTypes() {
|
|
|
var options = '';
|
|
|
admin.req({
|
|
|
url: common.domainName + '/api-web/manage/ddic/findSucDdics/restypepage_kpi_type',
|
|
|
type: 'POST',
|
|
|
async: false,
|
|
|
}).done(function (res) {
|
|
|
var list = res.data;
|
|
|
$.each(list, function (i, v) {
|
|
|
options += '<option value="' + v.ddicCode + '">' + v.ddicName + '</option>';
|
|
|
});
|
|
|
restypekpitype = options;
|
|
|
}).error(function (error) {
|
|
|
console.error(error);
|
|
|
});
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 根据id查询资源类型页面配置信息
|
|
|
*
|
|
|
* */
|
|
|
function getrestypePageInfo(id) {
|
|
|
if (id){
|
|
|
$.ajax({
|
|
|
url: common.domainName + '/api-web/manage/restypePage/getById?access_token=' + accessToken + '&id=' + id,
|
|
|
type: 'get',
|
|
|
success: function (res) {
|
|
|
restypePageData = res.object;
|
|
|
form.val('form-restypepage-edit', res.object);
|
|
|
restypepageKpiTableData = res.object.restypePageKpis;
|
|
|
reloadRestypepageKpiFlagTable();
|
|
|
}
|
|
|
});
|
|
|
}
|
|
|
}
|
|
|
|
|
|
element.render('collapse');
|
|
|
form.render();
|
|
|
|
|
|
/**
|
|
|
* 加载指标表格数据
|
|
|
*
|
|
|
* */
|
|
|
function loadRestypepageKpiFlagTable(){
|
|
|
restypepageKpiTable = table.render({
|
|
|
elem: '#restypepage-edit-table'
|
|
|
, cellMinWidth: 80
|
|
|
, limit: 10
|
|
|
, even: true
|
|
|
, data: restypepageKpiTableData
|
|
|
, cols: [[
|
|
|
{field: 'index', title: '序号', align: 'center', type: 'numbers'},
|
|
|
{field: 'kpiName', title: '指标名称', align: 'center'},
|
|
|
{
|
|
|
field: 'kpiIdent', title: '指标分类', align: 'center',
|
|
|
templet: function (d) {
|
|
|
switch (d.kpiIdent) {
|
|
|
case '0':
|
|
|
return '基本指标';
|
|
|
case '1':
|
|
|
return '性能指标';
|
|
|
case '2':
|
|
|
return '状态指标';
|
|
|
case '3':
|
|
|
return '告警指标';
|
|
|
default:
|
|
|
return '';
|
|
|
}
|
|
|
}
|
|
|
},
|
|
|
{
|
|
|
title: '类型', align: 'center',
|
|
|
templet: function (d) {
|
|
|
var selectDom = $('<select class="typeSel" lay-search="" class="layui-select" data-index="' + (d.LAY_INDEX-1) + '" lay-filter="select-restypepagekpi-table-type">' +
|
|
|
restypekpitype +
|
|
|
'</select>');
|
|
|
var index = (d.LAY_INDEX-1);
|
|
|
var type = restypepageKpiTableData[index].type;
|
|
|
selectDom.find('option[value="'+type+'"]').attr('selected', 'selected');
|
|
|
return selectDom.prop('outerHTML');
|
|
|
}
|
|
|
}, {
|
|
|
field: 'id', title: 'id', align: 'center' , hide: true, templet: function (d) {
|
|
|
var inputDom = $('<input id="txt-restypepagekpi-table-id-' + (d.LAY_INDEX-1) + '" data-index="' + (d.LAY_INDEX-1) + '" autocomplete="off" class="layui-input txt-restypepagekpi-table-id">');
|
|
|
var index = (d.LAY_INDEX-1);
|
|
|
var id = restypepageKpiTableData[index].id;
|
|
|
if (id != '' && id != null) {
|
|
|
inputDom.attr("value", id);
|
|
|
}
|
|
|
return inputDom.prop('outerHTML');
|
|
|
}
|
|
|
}
|
|
|
, {
|
|
|
field: 'sort', title: '排序', align: 'center',
|
|
|
templet: function (d) {
|
|
|
var inputDom = $('<input id="txt-restypepagekpi-table-sort-' + (d.LAY_INDEX-1) + '" data-index="' + (d.LAY_INDEX-1) + '" type="number" autocomplete="off" class="layui-input txt-restypepagekpi-table-sort">');
|
|
|
if (d.sort != null) {
|
|
|
inputDom.attr("value", restypepageKpiTableData[(d.LAY_INDEX-1)].sort);
|
|
|
}
|
|
|
return inputDom.prop('outerHTML');
|
|
|
}
|
|
|
}, {
|
|
|
title: '操作',
|
|
|
width: 100,
|
|
|
align: 'center',
|
|
|
templet: '<div><span data-index="{{(d.LAY_INDEX-1)}}" class="link link-restypepagekpi-delete">' +
|
|
|
'<a class="layui-btn layui-btn-xs layui-btn-normal" title="删除"><i class="layui-icon"></i></a></span>'
|
|
|
}]],
|
|
|
done: function (res, curr, count) {
|
|
|
form.render();
|
|
|
$(".restypepage-edit-table .layui-table-body,.restypepage-edit-table .layui-table-box,.restypepage-edit-table .layui-table-cell").css('overflow', 'visible');
|
|
|
// 排序下拉框改变事件
|
|
|
form.on('select(select-restypepagekpi-table-type)', function (data) {
|
|
|
var index = $(data.elem).data('index');
|
|
|
restypepageKpiTableData[index].type = data.value;
|
|
|
});
|
|
|
// 排序输入框输入事件
|
|
|
$('.txt-restypepagekpi-table-sort').change(function () {
|
|
|
restypepageKpiTableData[$(this).data('index')].sort = $(this).val();
|
|
|
});
|
|
|
// 删除事件
|
|
|
$('.link-restypepagekpi-delete').click(function () {
|
|
|
restypepageKpiTableData.splice($(this).data('index'), 1);
|
|
|
reloadRestypepageKpiFlagTable();
|
|
|
});
|
|
|
}
|
|
|
});
|
|
|
}
|
|
|
|
|
|
// 刷新指标表格
|
|
|
function reloadRestypepageKpiFlagTable() {
|
|
|
restypepageKpiTable.reload({
|
|
|
page: {curr: 1},
|
|
|
data: restypepageKpiTableData
|
|
|
});
|
|
|
}
|
|
|
|
|
|
// 表单提交事件
|
|
|
form.on('submit(form-restypepage-edit)', function (data) {
|
|
|
loading = layer.load(2);
|
|
|
var restypePage = {
|
|
|
id: id,
|
|
|
resType: '',
|
|
|
os: '',
|
|
|
provider: '',
|
|
|
model: '',
|
|
|
protocol: '',
|
|
|
remark: '',
|
|
|
restypePageKpis: restypepageKpiTableData
|
|
|
};
|
|
|
Object.assign(restypePage, form.val('form-restypepage-edit'));
|
|
|
admin.req({
|
|
|
url: common.domainName + '/api-web/manage/restypePage/saveRestypePage?access_token=' + accessToken,
|
|
|
type: 'POST',
|
|
|
contentType: 'application/json',
|
|
|
data: JSON.stringify(restypePage),
|
|
|
error: function () {
|
|
|
layer.close(loading);
|
|
|
}
|
|
|
}).done(function (response) {
|
|
|
layer.close(loading);
|
|
|
if (response.success) {
|
|
|
layer.msg('保存成功', {icon: 1, timeout: 3000});
|
|
|
layer.closeAll('page');
|
|
|
table.reload('table-restypepage-list', {
|
|
|
page: {
|
|
|
curr: 1
|
|
|
}
|
|
|
, where: {
|
|
|
access_token: accessToken,
|
|
|
keyword: $("#restypepageQueryForm").find("input[name='keyword']").val(),
|
|
|
resType: $("#restypepageQueryForm").find("select[name='restypepageresType']").val(),
|
|
|
os: $("#restypepageQueryForm").find("select[name='restypepageos']").val(),
|
|
|
protocol: $("#restypepageQueryForm").find("select[name='restypepagecollProtocol']").val(),
|
|
|
provider: $("#restypepageQueryForm").find("select[name='restypepageprovider']").val(),
|
|
|
}
|
|
|
});
|
|
|
} else {
|
|
|
layer.msg('保存失败', {icon: 2, timeout: 3000});
|
|
|
}
|
|
|
});
|
|
|
return false;
|
|
|
});
|
|
|
|
|
|
// 选择指标
|
|
|
$('#btn-restypepage-kpi-bind').click(function () {
|
|
|
$('[lay-id="/baseconfig/kpi/index"]').find('.layui-tab-close').trigger('click');
|
|
|
layer.open({
|
|
|
title: '选择指标',
|
|
|
id: 'restypepageKpiIndexChooseHtml',
|
|
|
type: 1,
|
|
|
area: ['90%', '800px'],
|
|
|
btn: ['确定', '取消'],
|
|
|
scrollbar: true,
|
|
|
success: function () {
|
|
|
view(this.id).render('/baseconfig/kpi/index', {});
|
|
|
},
|
|
|
yes: function (index, layero) {
|
|
|
var kpiIndex = layui.kpiIndex({});
|
|
|
var data = kpiIndex.getData();
|
|
|
if (data.length > 0) {
|
|
|
$.each(data, function (i, e) {
|
|
|
var flag = true;
|
|
|
$.each(restypepageKpiTableData, function (j, k) {
|
|
|
if (e.kpiId == k.kpiId) {
|
|
|
flag = false;
|
|
|
}
|
|
|
});
|
|
|
if (flag == true) {
|
|
|
restypepageKpiTableData.push({
|
|
|
id: '',
|
|
|
pageId: id,
|
|
|
resType: restypePageData.resType,
|
|
|
kpiId: e.kpiId,
|
|
|
kpiName: e.kpiName,
|
|
|
kpiIdent: e.kpiIdent,
|
|
|
type: 'base',
|
|
|
sort: i
|
|
|
});
|
|
|
}
|
|
|
});
|
|
|
layer.close(index);
|
|
|
reloadRestypepageKpiFlagTable();
|
|
|
} else {
|
|
|
layer.msg("无选中的数据", {offset: '15px', icon: 7, time: 2000})
|
|
|
return false;
|
|
|
}
|
|
|
}
|
|
|
});
|
|
|
form.render();
|
|
|
});
|
|
|
});
|
|
|
}); |
|
|
\ No newline at end of file |
...
|
...
|
|