Authored by 王涛

Merge branch 'master-500-prod-joke-new' into 'master-500-prod'

500-dev指标组页面优化及页面指标管理页面新增

500-dev指标组页面优化及页面指标管理页面新增

See merge request !754
@@ -321,7 +321,8 @@ layui.define(['xmSelect', 'md5'], function (exports) { @@ -321,7 +321,8 @@ layui.define(['xmSelect', 'md5'], function (exports) {
321 resTypeSelect: function (targtetId, callback, ajaxParams) { 321 resTypeSelect: function (targtetId, callback, ajaxParams) {
322 var options = "<option value=''>=资源类型=</option>"; 322 var options = "<option value=''>=资源类型=</option>";
323 admin.req(Object.assign({ 323 admin.req(Object.assign({
324 - url: this.domainName + '/api-web/home/restype/getAllResType' 324 + url: this.domainName + '/api-web/home/restype/getAllResType',
  325 + async: false
325 }, ajaxParams)).done(function (res) { 326 }, ajaxParams)).done(function (res) {
326 var reslist = res.data; 327 var reslist = res.data;
327 $.each(reslist, function (i, v) { 328 $.each(reslist, function (i, v) {
@@ -446,6 +447,7 @@ layui.define(['xmSelect', 'md5'], function (exports) { @@ -446,6 +447,7 @@ layui.define(['xmSelect', 'md5'], function (exports) {
446 var accessToken = sessions.getToken()['access_token']; 447 var accessToken = sessions.getToken()['access_token'];
447 $.ajax({ 448 $.ajax({
448 url: obj.domainName + '/api-web/manage/protocol/page?page=1&limit=10000&access_token=' + accessToken, 449 url: obj.domainName + '/api-web/manage/protocol/page?page=1&limit=10000&access_token=' + accessToken,
  450 + async: false,
449 success: function (res) { 451 success: function (res) {
450 if (res && res.data) { 452 if (res && res.data) {
451 res.data.forEach(function (v) { 453 res.data.forEach(function (v) {
1 -layui.define(['table', 'form', 'admin', 'layer', 'common', 'sessions', "commonDetail"], function (exports) { 1 +layui.define(['table', 'form', 'admin', 'layer', 'common', 'sessions', "commonDetail", 'xmSelect'], function (exports) {
2 var $ = layui.$; 2 var $ = layui.$;
3 var form = layui.form; 3 var form = layui.form;
4 var layer = layui.layer; 4 var layer = layui.layer;
5 var admin = layui.admin; 5 var admin = layui.admin;
6 var table = layui.table; 6 var table = layui.table;
  7 + var xmSelect = layui.xmSelect;
7 var common = layui.common; 8 var common = layui.common;
8 var domainName = common.domainName; 9 var domainName = common.domainName;
9 10
@@ -13,12 +14,20 @@ layui.define(['table', 'form', 'admin', 'layer', 'common', 'sessions', "commonDe @@ -13,12 +14,20 @@ layui.define(['table', 'form', 'admin', 'layer', 'common', 'sessions', "commonDe
13 var accessToken = sessions.getToken()['access_token']; 14 var accessToken = sessions.getToken()['access_token'];
14 var checkList = common.checkPermission(accessToken); 15 var checkList = common.checkPermission(accessToken);
15 16
  17 + form.render();
  18 +
16 //回车事件 19 //回车事件
17 $('#kpiflag_keyword').keydown(function (e) { 20 $('#kpiflag_keyword').keydown(function (e) {
18 if (e.keyCode === 13) { 21 if (e.keyCode === 13) {
19 reloadTable(); 22 reloadTable();
20 } 23 }
21 }); 24 });
  25 + $("#kpiflagQueryBtn").unbind().on("click", function () {
  26 + reloadTable();
  27 + })
  28 + form.on('select(change)', function (data) {
  29 + reloadTable();
  30 + })
22 $("#addkpiflag").unbind().on("click", function () { 31 $("#addkpiflag").unbind().on("click", function () {
23 if ($.inArray('back:kpiflag:save', checkList) == -1) { 32 if ($.inArray('back:kpiflag:save', checkList) == -1) {
24 layer.msg('暂无权限!', {icon: 7, time: 3000}); 33 layer.msg('暂无权限!', {icon: 7, time: 3000});
@@ -44,29 +53,50 @@ layui.define(['table', 'form', 'admin', 'layer', 'common', 'sessions', "commonDe @@ -44,29 +53,50 @@ layui.define(['table', 'form', 'admin', 'layer', 'common', 'sessions', "commonDe
44 , where: { 53 , where: {
45 access_token: accessToken, 54 access_token: accessToken,
46 keyWord: $("#kpiflag_keyword").val(), 55 keyWord: $("#kpiflag_keyword").val(),
  56 + dimension: $('select[name="dimension"]').val()
47 } 57 }
48 - , height: 'full-340' 58 + , height: 'full-200'
49 , cellMinWidth: 80 59 , cellMinWidth: 80
50 , page: { 60 , page: {
51 layout: ['count', 'prev', 'page', 'next', 'limit', 'skip'] 61 layout: ['count', 'prev', 'page', 'next', 'limit', 'skip']
52 , theme: '#1E9FFF' 62 , theme: '#1E9FFF'
53 } 63 }
54 - , limit: 10  
55 , even: true 64 , even: true
56 , cols: [[ 65 , cols: [[
57 {type: 'checkbox'} 66 {type: 'checkbox'}
  67 + , {field: 'index', title: '序号', align: 'center', type: 'numbers'}
58 , { 68 , {
59 field: 'name', title: '名称', align: 'center', sort: true, 69 field: 'name', title: '名称', align: 'center', sort: true,
60 - templet: '<div><span kpiflag-data-edit="{{d.id}}" data-flag="{{d.flag}}" class="layui-table-link">{{d.name}}</span></div>' 70 + templet: '<div>' +
  71 + '<span kpiflag-data-edit="{{d.id}}" data-flag="{{d.flag}}" class="layui-table-link">{{d.name}}</span>' +
  72 + '</div>'
61 } 73 }
62 , {field: 'flag', title: '标识', align: 'center', sort: true} 74 , {field: 'flag', title: '标识', align: 'center', sort: true}
63 - , {field: 'remark', title: '备注', align: 'center'} 75 + , { field: 'dimension', title: '维度', align: 'center', width: 80, templet: `
  76 + <div>
  77 + {{#
  78 + if (d.dimension == '1D') {
  79 + }} <span>一维</span> {{#
  80 + }else{
  81 + }} <span>二维</span> {{#
  82 + }
  83 + }}
  84 + </div>
  85 + `
  86 + }
  87 + , {field: 'kpis', title: '绑定指标', align: 'left'}
  88 + , {field: 'restypes', title: '绑定资源类型', align: 'left'}
  89 + , {field: 'createUser', title: '创建人',width: 100, align: 'center'}
  90 + , {field: 'createTime', title: '创建时间', align: 'center'}
  91 + , {field: 'remark', title: '备注', align: 'left'}
64 , { 92 , {
65 title: '操作', 93 title: '操作',
66 align: 'center', 94 align: 'center',
67 fixed: 'right', 95 fixed: 'right',
68 - width: 120,  
69 - templet: '<div><span kpiflag-data-delete="{{d.id}}" data-flag="{{d.flag}}" class="layui-table-link">删除</span>' 96 + width: 100,
  97 + templet: '<div>' +
  98 + '<button kpiflag-data-delete="{{d.id}}" data-flag="{{d.flag}}" class="layui-btn layui-btn-xs layui-btn-normal link-restypepage-delete" lay-tips="删除"><i class="layui-icon layui-icon-delete"></i></button>' +
  99 + '</div>'
70 } 100 }
71 ]], 101 ]],
72 done: function (res, curr, count) { 102 done: function (res, curr, count) {
@@ -112,7 +142,7 @@ layui.define(['table', 'form', 'admin', 'layer', 'common', 'sessions', "commonDe @@ -112,7 +142,7 @@ layui.define(['table', 'form', 'admin', 'layer', 'common', 'sessions', "commonDe
112 return; 142 return;
113 } 143 }
114 //确认提示框 144 //确认提示框
115 - layer.confirm('确认删除当前采集协议及协议参数吗?', { 145 + layer.confirm('确认删除数据吗?', {
116 btn: ['确定', '取消'] //按钮 146 btn: ['确定', '取消'] //按钮
117 }, function () { 147 }, function () {
118 admin.req({ 148 admin.req({
@@ -142,6 +172,7 @@ layui.define(['table', 'form', 'admin', 'layer', 'common', 'sessions', "commonDe @@ -142,6 +172,7 @@ layui.define(['table', 'form', 'admin', 'layer', 'common', 'sessions', "commonDe
142 , where: { 172 , where: {
143 access_token: accessToken, 173 access_token: accessToken,
144 keyWord: $("#kpiflag_keyword").val(), 174 keyWord: $("#kpiflag_keyword").val(),
  175 + dimension: $('select[name="dimension"]').val()
145 } 176 }
146 }); 177 });
147 } 178 }
  1 +/** 指标组新增 */
  2 +layui.define(['table', 'form', 'laydate', 'common', 'sessions', 'laydate', 'element', 'admin', 'kpiIndex', 'resourcetype'], function (exports) {
  3 + var $ = layui.$;
  4 + var form = layui.form;
  5 + var table = layui.table;
  6 + var common = layui.common;
  7 + var admin = layui.admin;
  8 + var view = layui.view;
  9 + var element = layui.element;
  10 +
  11 + // 对外暴露的接口
  12 + exports('restypepageEdit', function (data) {
  13 + var id = data.id ? data.id : '';
  14 + var sessions = layui.sessions;
  15 + var accessToken = sessions.getToken().access_token;
  16 + var domainName = common.domainName;
  17 + // 表格数据
  18 + var restypepageKpiTableData = [];
  19 + // 指标自定义类型数据组装option
  20 + var restypekpitype;
  21 + //指标表格
  22 + var restypepageKpiTable;
  23 + // 加载遮罩
  24 + var loading;
  25 + // 如果是编辑,回显数据
  26 + var restypePageData = {
  27 + id: '',
  28 + resType: '',
  29 + os: '',
  30 + provider: '',
  31 + model: '',
  32 + protocol: ''
  33 + };
  34 +
  35 + //初始化下拉框数据
  36 + initSelect();
  37 + //进入页面后第一次加载指标表格数据
  38 + loadRestypepageKpiFlagTable();
  39 + //获取指标自定义类型字典数据
  40 + getRestypePageKpiTypes();
  41 +
  42 + /**
  43 + * 初始化下拉框数据
  44 + *
  45 + * */
  46 + function initSelect() {
  47 + common.resTypeSelect("restypepagekpi_select_resType", function () {
  48 + form.render("select");
  49 + });
  50 + common.renderCollProtocolSelect('restypepagekpiCollProtocol', function () {
  51 + form.render("select");
  52 + });
  53 + common.renderCollProtocolSelect('restypepagekpiCollProtocol');
  54 + //绑定厂商下拉选择
  55 + common.providerSelect("restypepagekpiProvider", function () {
  56 + form.render("select");
  57 + });
  58 + common.renderDdicSelect('restypepagekpiOs', 'os', function () {
  59 + form.render("select");
  60 + }, "=操作系统=");
  61 + // 根据id查询资源类型页面配置信息,在下拉框加载完成后,防止因未加载完成,造成回填异常
  62 + getrestypePageInfo(id);
  63 + }
  64 +
  65 +
  66 + /**
  67 + * 获取指标自定义类型字典数据
  68 + *
  69 + * */
  70 + function getRestypePageKpiTypes() {
  71 + var options = '';
  72 + admin.req({
  73 + url: common.domainName + '/api-web/manage/ddic/findSucDdics/restypepage_kpi_type',
  74 + type: 'POST',
  75 + async: false,
  76 + }).done(function (res) {
  77 + var list = res.data;
  78 + $.each(list, function (i, v) {
  79 + options += '<option value="' + v.ddicCode + '">' + v.ddicName + '</option>';
  80 + });
  81 + restypekpitype = options;
  82 + }).error(function (error) {
  83 + console.error(error);
  84 + });
  85 + }
  86 +
  87 + /**
  88 + * 根据id查询资源类型页面配置信息
  89 + *
  90 + * */
  91 + function getrestypePageInfo(id) {
  92 + if (id){
  93 + $.ajax({
  94 + url: common.domainName + '/api-web/manage/restypePage/getById?access_token=' + accessToken + '&id=' + id,
  95 + type: 'get',
  96 + success: function (res) {
  97 + restypePageData = res.object;
  98 + form.val('form-restypepage-edit', res.object);
  99 + restypepageKpiTableData = res.object.restypePageKpis;
  100 + reloadRestypepageKpiFlagTable();
  101 + }
  102 + });
  103 + }
  104 + }
  105 +
  106 + element.render('collapse');
  107 + form.render();
  108 +
  109 + /**
  110 + * 加载指标表格数据
  111 + *
  112 + * */
  113 + function loadRestypepageKpiFlagTable(){
  114 + restypepageKpiTable = table.render({
  115 + elem: '#restypepage-edit-table'
  116 + , cellMinWidth: 80
  117 + , limit: 10
  118 + , even: true
  119 + , data: restypepageKpiTableData
  120 + , cols: [[
  121 + {field: 'index', title: '序号', align: 'center', type: 'numbers'},
  122 + {field: 'kpiName', title: '指标名称', align: 'center'},
  123 + {
  124 + field: 'kpiIdent', title: '指标分类', align: 'center',
  125 + templet: function (d) {
  126 + switch (d.kpiIdent) {
  127 + case '0':
  128 + return '基本指标';
  129 + case '1':
  130 + return '性能指标';
  131 + case '2':
  132 + return '状态指标';
  133 + case '3':
  134 + return '告警指标';
  135 + default:
  136 + return '';
  137 + }
  138 + }
  139 + },
  140 + {
  141 + title: '类型', align: 'center',
  142 + templet: function (d) {
  143 + var selectDom = $('<select class="typeSel" lay-search="" class="layui-select" data-index="' + (d.LAY_INDEX-1) + '" lay-filter="select-restypepagekpi-table-type">' +
  144 + restypekpitype +
  145 + '</select>');
  146 + var index = (d.LAY_INDEX-1);
  147 + var type = restypepageKpiTableData[index].type;
  148 + selectDom.find('option[value="'+type+'"]').attr('selected', 'selected');
  149 + return selectDom.prop('outerHTML');
  150 + }
  151 + }, {
  152 + field: 'id', title: 'id', align: 'center' , hide: true, templet: function (d) {
  153 + 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">');
  154 + var index = (d.LAY_INDEX-1);
  155 + var id = restypepageKpiTableData[index].id;
  156 + if (id != '' && id != null) {
  157 + inputDom.attr("value", id);
  158 + }
  159 + return inputDom.prop('outerHTML');
  160 + }
  161 + }
  162 + , {
  163 + field: 'sort', title: '排序', align: 'center',
  164 + templet: function (d) {
  165 + 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">');
  166 + if (d.sort != null) {
  167 + inputDom.attr("value", restypepageKpiTableData[(d.LAY_INDEX-1)].sort);
  168 + }
  169 + return inputDom.prop('outerHTML');
  170 + }
  171 + }, {
  172 + title: '操作',
  173 + width: 100,
  174 + align: 'center',
  175 + templet: '<div><span data-index="{{(d.LAY_INDEX-1)}}" class="link link-restypepagekpi-delete">' +
  176 + '<a class="layui-btn layui-btn-xs layui-btn-normal" title="删除"><i class="layui-icon"></i></a></span>'
  177 + }]],
  178 + done: function (res, curr, count) {
  179 + form.render();
  180 + $(".restypepage-edit-table .layui-table-body,.restypepage-edit-table .layui-table-box,.restypepage-edit-table .layui-table-cell").css('overflow', 'visible');
  181 + // 排序下拉框改变事件
  182 + form.on('select(select-restypepagekpi-table-type)', function (data) {
  183 + var index = $(data.elem).data('index');
  184 + restypepageKpiTableData[index].type = data.value;
  185 + });
  186 + // 排序输入框输入事件
  187 + $('.txt-restypepagekpi-table-sort').change(function () {
  188 + restypepageKpiTableData[$(this).data('index')].sort = $(this).val();
  189 + });
  190 + // 删除事件
  191 + $('.link-restypepagekpi-delete').click(function () {
  192 + restypepageKpiTableData.splice($(this).data('index'), 1);
  193 + reloadRestypepageKpiFlagTable();
  194 + });
  195 + }
  196 + });
  197 + }
  198 +
  199 + // 刷新指标表格
  200 + function reloadRestypepageKpiFlagTable() {
  201 + restypepageKpiTable.reload({
  202 + page: {curr: 1},
  203 + data: restypepageKpiTableData
  204 + });
  205 + }
  206 +
  207 + // 表单提交事件
  208 + form.on('submit(form-restypepage-edit)', function (data) {
  209 + loading = layer.load(2);
  210 + var restypePage = {
  211 + id: id,
  212 + resType: '',
  213 + os: '',
  214 + provider: '',
  215 + model: '',
  216 + protocol: '',
  217 + remark: '',
  218 + restypePageKpis: restypepageKpiTableData
  219 + };
  220 + Object.assign(restypePage, form.val('form-restypepage-edit'));
  221 + admin.req({
  222 + url: common.domainName + '/api-web/manage/restypePage/saveRestypePage?access_token=' + accessToken,
  223 + type: 'POST',
  224 + contentType: 'application/json',
  225 + data: JSON.stringify(restypePage),
  226 + error: function () {
  227 + layer.close(loading);
  228 + }
  229 + }).done(function (response) {
  230 + layer.close(loading);
  231 + if (response.success) {
  232 + layer.msg('保存成功', {icon: 1, timeout: 3000});
  233 + layer.closeAll('page');
  234 + table.reload('table-restypepage-list', {
  235 + page: {
  236 + curr: 1
  237 + }
  238 + , where: {
  239 + access_token: accessToken,
  240 + keyword: $("#restypepageQueryForm").find("input[name='keyword']").val(),
  241 + resType: $("#restypepageQueryForm").find("select[name='restypepageresType']").val(),
  242 + os: $("#restypepageQueryForm").find("select[name='restypepageos']").val(),
  243 + protocol: $("#restypepageQueryForm").find("select[name='restypepagecollProtocol']").val(),
  244 + provider: $("#restypepageQueryForm").find("select[name='restypepageprovider']").val(),
  245 + }
  246 + });
  247 + } else {
  248 + layer.msg('保存失败', {icon: 2, timeout: 3000});
  249 + }
  250 + });
  251 + return false;
  252 + });
  253 +
  254 + // 选择指标
  255 + $('#btn-restypepage-kpi-bind').click(function () {
  256 + $('[lay-id="/baseconfig/kpi/index"]').find('.layui-tab-close').trigger('click');
  257 + layer.open({
  258 + title: '选择指标',
  259 + id: 'restypepageKpiIndexChooseHtml',
  260 + type: 1,
  261 + area: ['90%', '800px'],
  262 + btn: ['确定', '取消'],
  263 + scrollbar: true,
  264 + success: function () {
  265 + view(this.id).render('/baseconfig/kpi/index', {});
  266 + },
  267 + yes: function (index, layero) {
  268 + var kpiIndex = layui.kpiIndex({});
  269 + var data = kpiIndex.getData();
  270 + if (data.length > 0) {
  271 + $.each(data, function (i, e) {
  272 + var flag = true;
  273 + $.each(restypepageKpiTableData, function (j, k) {
  274 + if (e.kpiId == k.kpiId) {
  275 + flag = false;
  276 + }
  277 + });
  278 + if (flag == true) {
  279 + restypepageKpiTableData.push({
  280 + id: '',
  281 + pageId: id,
  282 + resType: restypePageData.resType,
  283 + kpiId: e.kpiId,
  284 + kpiName: e.kpiName,
  285 + kpiIdent: e.kpiIdent,
  286 + type: 'base',
  287 + sort: i
  288 + });
  289 + }
  290 + });
  291 + layer.close(index);
  292 + reloadRestypepageKpiFlagTable();
  293 + } else {
  294 + layer.msg("无选中的数据", {offset: '15px', icon: 7, time: 2000})
  295 + return false;
  296 + }
  297 + }
  298 + });
  299 + form.render();
  300 + });
  301 + });
  302 +});
  1 +layui.define(['table', 'form', 'admin', 'layer', 'common', 'sessions', 'treeTable', 'xmSelect'], function (exports) {
  2 + var $ = layui.$;
  3 + var form = layui.form;
  4 + var layer = layui.layer;
  5 + var admin = layui.admin;
  6 + var table = layui.table;
  7 + var common = layui.common;
  8 + var treeTable = layui.treeTable;
  9 + var xmSelect = layui.xmSelect;
  10 +
  11 + exports('restypepageIndex', function () {
  12 + var sessions = layui.sessions;
  13 + var accessToken = sessions.getToken()['access_token'];
  14 + var domainName = common.domainName;
  15 + var restypepageTable;
  16 + //加载权限列表
  17 + var checkList = common.checkPermission(accessToken);
  18 +
  19 + //初始化下拉框
  20 + initSelect();
  21 + //初始化事件
  22 + initEvent()
  23 + //初次加载表格
  24 + loadTable();
  25 +
  26 +
  27 + /**
  28 + * 初初始化事件
  29 + *
  30 + * */
  31 + function initEvent() {
  32 + // 回车搜索
  33 + $('form[lay-filter="form-restypepage-condition"] input').keydown(function (e) {
  34 + if (e.keyCode === 13) {
  35 + reloadTable();
  36 + }
  37 + });
  38 + //查询按钮点击事件
  39 + $("#restypepageQueryBtn").unbind().on("click", function () {
  40 + reloadTable();
  41 + })
  42 + //搜索下拉框change事件监听
  43 + form.on('select(change)', function (data) {
  44 + reloadTable();
  45 + })
  46 + // 添加资源类型页面配置信息
  47 + $('#btn-restypepage-add').click(function () {
  48 + if ($.inArray('back:restypepage:add', checkList) == -1) {
  49 + layer.msg('暂无权限!', {icon: 7, time: 3000});
  50 + return;
  51 + }
  52 + openEditHtml();
  53 + });
  54 + // 删除事件
  55 + $('#btn-restypepage-delete').click(function () {
  56 + var checks = table.checkStatus('table-restypepage-list').data;
  57 + var ids = $.map(checks, function (item) {
  58 + return item.id;
  59 + });
  60 + deleteByIds(ids);
  61 + });
  62 + }
  63 +
  64 +
  65 + /**
  66 + * 初始化下拉框数据
  67 + *
  68 + * */
  69 + function initSelect() {
  70 + common.renderCollProtocolSelect('restypepageCollProtocol', function () {
  71 + form.render("select");
  72 + });
  73 + // common.renderCollProtocolSelect('restypepageCollProtocol');
  74 + //绑定厂商下拉选择
  75 + common.providerSelect("restypepageProvider", function () {
  76 + form.render("select");
  77 + });
  78 +
  79 + common.renderDdicSelect('restypepageOs', 'os', function () {
  80 + form.render("select");
  81 + }, "=操作系统=");
  82 + //资源类型下拉框
  83 + common.resTypeSelect("restypepage_select_resType",function () {
  84 + form.render("select");
  85 + });
  86 + }
  87 + /**
  88 + * 将查询条件作为方法
  89 + *
  90 + * */
  91 + function whereSearch() {
  92 + form.render();
  93 + var $from = $("#restypepageQueryForm")
  94 + var search = {
  95 + access_token: accessToken,
  96 + keyword: $from.find("input[name='keyword']").val(),
  97 + resType: $from.find("select[name='restypepageresType']").val(),
  98 + os: $from.find("select[name='restypepageos']").val(),
  99 + protocol: $from.find("select[name='restypepagecollProtocol']").val(),
  100 + provider: $from.find("select[name='restypepageprovider']").val(),
  101 + }
  102 + return search;
  103 + }
  104 +
  105 + // 加载表格
  106 + function loadTable() {
  107 + restypepageTable = table.render({
  108 + elem: '#table-restypepage-list',
  109 + url: domainName + '/api-web/manage/restypePage/page',
  110 + where: whereSearch(),
  111 + height: 'full-200',
  112 + limit: common.limit,
  113 + limits: common.limits,
  114 + page: {
  115 + layout: ['count', 'prev', 'page', 'next', 'limit', 'skip'],
  116 + theme: '#1E9FFF'
  117 + },
  118 + cols: [[
  119 + { type: 'checkbox' }
  120 + , {field: 'index', title: '序号', align: 'center', type: 'numbers'}
  121 + , { field: 'resTypeName', title: '资源类型', align: 'center'}
  122 + , { field: 'osName', title: '操作系统', align: 'center'}
  123 + , { field: 'provderName', title: '厂商', align: 'center'}
  124 + , { field: 'protocolName', title: '采集协议', align: 'center'}
  125 + , { field: 'model', title: '型号', align: 'center'}
  126 + , { field: 'keyword', title: '辅助关键字', align: 'center'}
  127 + , { field: 'kpis', title: '配置指标', align: 'left',width: 300}
  128 + , { field: 'remark', title: '备注', align: 'left',width: 300}
  129 + , {
  130 + title: '操作', align: 'center', width: 100,
  131 + templet:
  132 + '<div>' +
  133 + '<button data-id="{{d.id}}" class="layui-btn layui-btn-xs layui-btn-normal link-restypepage-edit" lay-tips="编辑"><i class="layui-icon layui-icon-edit"></i></button>'+
  134 + '<button data-id="{{d.id}}" class="layui-btn layui-btn-xs layui-btn-normal link-restypepage-delete" lay-tips="删除"><i class="layui-icon layui-icon-delete"></i></button>' +
  135 + '</div>'
  136 + }]],
  137 + done: function (res) {
  138 + // 点击编辑事件
  139 + $('.link-restypepage-edit').click(function () {
  140 + if ($.inArray('back:restypepage:add', checkList) == -1) {
  141 + layer.msg('暂无权限!', {icon: 7, time: 3000});
  142 + return;
  143 + }
  144 + openEditHtml($(this).data('id'));
  145 + });
  146 + // 点击删除事件
  147 + $('.link-restypepage-delete').click(function () {
  148 + deleteByIds([$(this).data('id')]);
  149 + });
  150 + }
  151 + });
  152 + }
  153 +
  154 + //刷新表格
  155 + function reloadTable() {
  156 + restypepageTable.reload({
  157 + page: {
  158 + curr: 1
  159 + }
  160 + , where: whereSearch()
  161 + });
  162 + }
  163 +
  164 + // 新增或编辑资源类型页面配置信息
  165 + function openEditHtml(id) {
  166 + common.openWin('/baseconfig/restypepage/add', `<a class="layui-icon layui-icon-edit win_title_icon"></a>` + id ? '编辑' : '新增',
  167 + {id: id}, ['保存', '取消'], function () {
  168 + $('#btn-restypepage-submit').click();
  169 + }, null, ['80%', '90%'], null, {resize: false});
  170 + form.render();
  171 + }
  172 +
  173 + // 根据id删除字典信息
  174 + function deleteByIds(ids) {
  175 + if ($.inArray('back:restypepage:delete', checkList) == -1) {
  176 + layer.msg('暂无权限!', {icon: 7, time: 3000});
  177 + return;
  178 + }
  179 + if (ids.length == 0) {
  180 + layer.msg('请至少选择一条数据', {icon: 0, time: 3000});
  181 + return;
  182 + }
  183 + layer.confirm('确认要删除数据吗?', {icon: 3}, function () {
  184 + layer.load(2);
  185 + admin.req({
  186 + url: domainName + '/api-web/manage/restypePage/deleteByIds',
  187 + data: {
  188 + ids: ids
  189 + }
  190 + }).done(function (response) {
  191 + layer.closeAll('loading');
  192 + if (response.success) {
  193 + layer.msg('删除成功!', {icon: 1, time: 3000});
  194 + reloadTable();
  195 + } else {
  196 + layer.msg('删除失败!', {icon: 2, time: 3000});
  197 + }
  198 + }).error(function () {
  199 + layer.closeAll('loading');
  200 + });
  201 + });
  202 + }
  203 + });
  204 +});
@@ -17,6 +17,10 @@ @@ -17,6 +17,10 @@
17 <input style="display: none" type="text"> 17 <input style="display: none" type="text">
18 </div> 18 </div>
19 </div> 19 </div>
  20 + <button class="layui-btn layui-btn-normal" id="kpiflagQueryBtn" type="button">
  21 + <!--lsq 查询按钮取消掉图标 2022-06-30-->
  22 + 查询
  23 + </button>
20 </div> 24 </div>
21 </form> 25 </form>
22 </div> 26 </div>
  1 +<article>
  2 + <form class="layui-form layui-form-pane" action="" lay-filter="form-restypepage-edit">
  3 + <fieldset class="layui-elem-field layui-field-title">
  4 + <legend>基本信息</legend>
  5 + </fieldset>
  6 + <div class="layui-form-item">
  7 + <div class="inline-half layui-inline">
  8 + <label class="layui-form-label">资源类型<span style="color: red">*</span></label>
  9 + <div class="layui-input-inline">
  10 + <select name="resType" lay-verify="required" lay-search="" id="restypepagekpi_select_resType" class="layui-select">
  11 + <option value="">=资源类型=</option>
  12 + </select>
  13 + </div>
  14 + </div>
  15 + <div class="inline-half layui-inline">
  16 + <label class="layui-form-label">操作系统</label>
  17 + <div class="layui-input-inline">
  18 + <select name="os" id="restypepagekpiOs" lay-search="" class="layui-select">
  19 + <option value="">=操作系统=</option>
  20 + </select>
  21 + </div>
  22 + </div>
  23 + </div>
  24 + <div class="layui-form-item">
  25 + <div class="inline-half layui-inline">
  26 + <label class="layui-form-label">厂商</label>
  27 + <div class="layui-input-inline">
  28 + <select name="provider" id="restypepagekpiProvider" lay-search="" class="layui-select">
  29 + <option value="">=厂商=</option>
  30 + </select>
  31 + </div>
  32 + </div>
  33 + <div class="inline-half layui-inline">
  34 + <label class="layui-form-label">采集协议</label>
  35 + <div class="layui-input-inline">
  36 + <select name="protocol" id="restypepagekpiCollProtocol" lay-search="" class="layui-select">
  37 + <option value="">=采集协议=</option>
  38 + </select>
  39 + </div>
  40 + </div>
  41 + </div>
  42 + <div class="layui-form-item">
  43 + <div class="inline-half layui-inline">
  44 + <label class="layui-form-label">型号</label>
  45 + <div class="layui-input-inline">
  46 + <input type="text" name="model" placeholder="请输入型号" class="layui-input">
  47 + </div>
  48 + </div>
  49 + <div class="inline-half layui-inline">
  50 + <label class="layui-form-label">排序<span style="color: red">*</span></label>
  51 + <div class="layui-input-inline">
  52 + <input class="layui-input" lay-verify="required" name="sort" value="1" placeholder="请输入排序" type="number">
  53 + </div>
  54 + </div>
  55 + </div>
  56 + <div class="layui-form-item">
  57 + <div class="inline-half layui-inline">
  58 + <label class="layui-form-label">辅助关键字</label>
  59 + <div class="layui-input-inline">
  60 + <input type="text" name="keyword" placeholder="请输入辅助关键字" class="layui-input">
  61 + </div>
  62 + </div>
  63 + </div>
  64 + <div class="layui-form-item">
  65 + <label class="layui-form-label textarea-label">备注</label>
  66 + <div class="layui-input-block">
  67 + <textarea name="remark" placeholder="请输入备注" class="layui-textarea"></textarea>
  68 + </div>
  69 + </div>
  70 + <button id="btn-restypepage-submit" class="hide" lay-submit lay-filter="kpi-flag-submit">提交</button>
  71 + </form>
  72 + <form class="layui-form layui-form-pane" onsubmit="return false">
  73 + <fieldset class="layui-elem-field layui-field-title">
  74 + <legend>选择指标&nbsp;&nbsp;
  75 + <button class="layui-btn layui-btn-xs layui-btn-normal fieldset-btn" id="btn-restypepage-kpi-bind"><i class="layui-icon">&#xe624;</i></button>
  76 + </legend>
  77 + </fieldset>
  78 + <div class="layui-form-item layui-form-item-flex restypepage-edit-table">
  79 + <table id="restypepage-edit-table" class="input-flex-1"></table>
  80 + </div>
  81 + </form>
  82 +</article>
  83 +<script>
  84 + layui.use('restypepageEdit', function (fn) {
  85 + fn({{d}});
  86 + });
  87 +</script>
  88 +<style>
  89 + [lay-id="restypepage-edit-table"] .layui-table-cell {
  90 + height: auto !important;
  91 + }
  92 +</style>
  1 +<title>资源类型页面配置</title>
  2 +<article class="page-container">
  3 + <div class="page-panel">
  4 + <div class="main commonDiv">
  5 + <div class="layui-card">
  6 + <div class="layui-card-header">
  7 + <div class="layui-status">
  8 + <form class="layui-card-header layuiadmin-card-header-auto layui-form"
  9 + lay-filter="form-restypepage-condition" id="restypepageQueryForm">
  10 + <div class="layui-form-item">
  11 + <div class="layui-inline">
  12 + <div class="layui-input-inline layui-input-inline--long">
  13 + <input autocomplete="off" class="layui-input" name="keyword" placeholder="输入关键字,回车搜索" lay-tips="关键字检索包含:</br>型号</br>关键字</br>备注</br>绑定指标"
  14 + type="text">
  15 + </div>
  16 + </div>
  17 + <div class="layui-inline">
  18 + <div class="layui-input-inline">
  19 + <select name="restypepageresType" id="restypepage_select_resType" lay-search="" lay-filter="change">
  20 + <option value="">=资源类型=</option>
  21 + </select>
  22 + </div>
  23 + </div>
  24 + <div class="layui-inline">
  25 + <div class="layui-input-inline">
  26 + <select id="restypepageCollProtocol" lay-search="" name="restypepagecollProtocol" lay-filter="change">
  27 + <option value="">=采集协议=</option>
  28 + </select>
  29 + </div>
  30 + </div>
  31 + <div class="layui-inline">
  32 + <div class="layui-input-inline">
  33 + <select id="restypepageOs" lay-search="" name="restypepageos" lay-filter="change">
  34 + <option value="">=操作系统=</option>
  35 + </select>
  36 + </div>
  37 + </div>
  38 + <div class="layui-inline">
  39 + <div class="layui-input-inline">
  40 + <select id="restypepageProvider" lay-search="" name="restypepageprovider" lay-filter="change">
  41 + <option value="">=厂商=</option>
  42 + </select>
  43 + </div>
  44 + </div>
  45 + <button class="layui-btn layui-btn-normal" id="restypepageQueryBtn" type="button">
  46 + <!--lsq 查询按钮取消掉图标 2022-06-30-->
  47 + 查询
  48 + </button>
  49 + </div>
  50 + </form>
  51 + </div>
  52 + </div>
  53 + <div class="layui-card-body">
  54 + <div class="warn-btns">
  55 + <button class="layui-btn layui-btn-sm layui-btn-normal" id="btn-restypepage-add">
  56 + <i class="layui-icon layui-icon-add-1"></i>新增
  57 + </button>
  58 + <button class="layui-btn layui-btn-sm layui-btn-normal" id="btn-restypepage-delete">
  59 + <i class="layui-icon layui-icon-delete"></i>删除
  60 + </button>
  61 + </div>
  62 + <table id="table-restypepage-list" lay-filter="table-restypepage-list"></table>
  63 + </div>
  64 + </div>
  65 + </div>
  66 + </div>
  67 +</article>
  68 +<script>
  69 + layui.use('restypepageIndex', function (fn) {
  70 + fn();
  71 + });
  72 +</script>