Showing
15 changed files
with
496 additions
and
65 deletions
@@ -67,7 +67,8 @@ layui.define(['form', 'admin', 'laydate', 'common','sessions','reskpilist'], fun | @@ -67,7 +67,8 @@ layui.define(['form', 'admin', 'laydate', 'common','sessions','reskpilist'], fun | ||
67 | var id = $(this).data("flag"); | 67 | var id = $(this).data("flag"); |
68 | $("#"+id).val('08:00:00 - 19:59:59'); | 68 | $("#"+id).val('08:00:00 - 19:59:59'); |
69 | }); | 69 | }); |
70 | - $('.noticeExpr').unbind('click').on('click', function () { | 70 | + // zhangtianqi 2022-06-22 |
71 | + /*$('.noticeExpr').unbind('click').on('click', function () { | ||
71 | var id = $(this).prop('id'); | 72 | var id = $(this).prop('id'); |
72 | var alarmTimes = ''; | 73 | var alarmTimes = ''; |
73 | if (['seriousExpr', 'importantExpr', 'commonlyExpr'].includes(id)) { | 74 | if (['seriousExpr', 'importantExpr', 'commonlyExpr'].includes(id)) { |
@@ -75,7 +76,7 @@ layui.define(['form', 'admin', 'laydate', 'common','sessions','reskpilist'], fun | @@ -75,7 +76,7 @@ layui.define(['form', 'admin', 'laydate', 'common','sessions','reskpilist'], fun | ||
75 | alarmTimes = $('#' + id + 'Times').val(); | 76 | alarmTimes = $('#' + id + 'Times').val(); |
76 | } | 77 | } |
77 | editNoticeExpr($(this).val(), alarmTimes, id); | 78 | editNoticeExpr($(this).val(), alarmTimes, id); |
78 | - }); | 79 | + });*/ |
79 | //指标信息 | 80 | //指标信息 |
80 | if(data.kpiId){ | 81 | if(data.kpiId){ |
81 | $("#alarm-policy-kpiId").val(data.kpiId); | 82 | $("#alarm-policy-kpiId").val(data.kpiId); |
@@ -86,7 +86,7 @@ layui.define(['table', 'form', 'admin', 'layer', 'common','sessions','xmSelect', | @@ -86,7 +86,7 @@ layui.define(['table', 'form', 'admin', 'layer', 'common','sessions','xmSelect', | ||
86 | policyType:$('#alarmpolicy_policyType').val(), | 86 | policyType:$('#alarmpolicy_policyType').val(), |
87 | resName: resName | 87 | resName: resName |
88 | } | 88 | } |
89 | - , height: 'full-200' | 89 | + , height: 'full-110' |
90 | , page: { | 90 | , page: { |
91 | layout: ['count', 'prev', 'page', 'next', 'limit', 'skip'] | 91 | layout: ['count', 'prev', 'page', 'next', 'limit', 'skip'] |
92 | ,theme: '#1E9FFF'//自定义分页主题颜色 | 92 | ,theme: '#1E9FFF'//自定义分页主题颜色 |
1 | //告警订阅 | 1 | //告警订阅 |
2 | -layui.define(['table', 'form', 'admin', 'layer', 'common','sessions'], function (exports) { | 2 | +layui.define(['table', 'form', 'admin', 'layer', 'common','sessions','tree'], function (exports) { |
3 | var $ = layui.$; | 3 | var $ = layui.$; |
4 | var form = layui.form; | 4 | var form = layui.form; |
5 | var layer = layui.layer; | 5 | var layer = layui.layer; |
@@ -24,6 +24,7 @@ layui.define(['table', 'form', 'admin', 'layer', 'common','sessions'], function | @@ -24,6 +24,7 @@ layui.define(['table', 'form', 'admin', 'layer', 'common','sessions'], function | ||
24 | var accessToken = sessions.getToken()['access_token']; | 24 | var accessToken = sessions.getToken()['access_token']; |
25 | //获得权限列表 | 25 | //获得权限列表 |
26 | var checkList = common.checkPermission(accessToken); | 26 | var checkList = common.checkPermission(accessToken); |
27 | + var tree = layui.tree; | ||
27 | 28 | ||
28 | //回车搜索 | 29 | //回车搜索 |
29 | $('#alarmsubscribekw').keydown(function (e) { | 30 | $('#alarmsubscribekw').keydown(function (e) { |
@@ -205,7 +206,7 @@ layui.define(['table', 'form', 'admin', 'layer', 'common','sessions'], function | @@ -205,7 +206,7 @@ layui.define(['table', 'form', 'admin', 'layer', 'common','sessions'], function | ||
205 | resIdList: resIdList, | 206 | resIdList: resIdList, |
206 | busId: busId | 207 | busId: busId |
207 | } | 208 | } |
208 | - , height: 'full-200' | 209 | + , height: 'full-110' |
209 | , page: { | 210 | , page: { |
210 | layout: ['count', 'prev', 'page', 'next', 'limit', 'skip'] | 211 | layout: ['count', 'prev', 'page', 'next', 'limit', 'skip'] |
211 | ,theme: '#1E9FFF'//自定义分页主题颜色 | 212 | ,theme: '#1E9FFF'//自定义分页主题颜色 |
@@ -265,7 +266,7 @@ layui.define(['table', 'form', 'admin', 'layer', 'common','sessions'], function | @@ -265,7 +266,7 @@ layui.define(['table', 'form', 'admin', 'layer', 'common','sessions'], function | ||
265 | return `<div> | 266 | return `<div> |
266 | <!--<span data-id="${d.subId}" class="layui-table-link view-alarmsubscribe-target">${d.useTotal}</span> / --> | 267 | <!--<span data-id="${d.subId}" class="layui-table-link view-alarmsubscribe-target">${d.useTotal}</span> / --> |
267 | <span data-id="${d.subId}" class="layui-table-link view-alarmsubscribe-resource" lay-tips="资源订阅">${d.resSubTotal}</span> / | 268 | <span data-id="${d.subId}" class="layui-table-link view-alarmsubscribe-resource" lay-tips="资源订阅">${d.resSubTotal}</span> / |
268 | - <span data-id="${d.subId}" class="layui-table-link view-alarmsubscribe-kpi" lay-tips="指标订阅">${d.kpiSubTotal}</span> / | 269 | +<!-- <span data-id="${d.subId}" class="layui-table-link view-alarmsubscribe-kpi" lay-tips="指标订阅">${d.kpiSubTotal}</span> /--> |
269 | <span data-id="${d.subId}" class="layui-table-link view-alarmsubscribe-resType" lay-tips="资源类型">${d.resTypeSubTotal}</span> / | 270 | <span data-id="${d.subId}" class="layui-table-link view-alarmsubscribe-resType" lay-tips="资源类型">${d.resTypeSubTotal}</span> / |
270 | <span data-id="${d.subId}" class="layui-table-link view-alarmsubscribe-busId" lay-tips="业务系统">${d.busSubTotal}</span> | 271 | <span data-id="${d.subId}" class="layui-table-link view-alarmsubscribe-busId" lay-tips="业务系统">${d.busSubTotal}</span> |
271 | </div>`; | 272 | </div>`; |
@@ -310,9 +311,9 @@ layui.define(['table', 'form', 'admin', 'layer', 'common','sessions'], function | @@ -310,9 +311,9 @@ layui.define(['table', 'form', 'admin', 'layer', 'common','sessions'], function | ||
310 | '<div>' + | 311 | '<div>' + |
311 | '<button data-id="{{d.subId}}" lay-tips="删除" type="button" class="layui-btn layui-btn-xs layui-btn-normal delete-alarmsubscribe-btn"><i class="layui-icon layui-icon-delete"></i></button>' + | 312 | '<button data-id="{{d.subId}}" lay-tips="删除" type="button" class="layui-btn layui-btn-xs layui-btn-normal delete-alarmsubscribe-btn"><i class="layui-icon layui-icon-delete"></i></button>' + |
312 | '<button data-id="{{d.subId}}" lay-tips="资源订阅" type="button" class="layui-btn layui-btn-xs layui-btn-normal alarmsubscribe-resource-btn"><i class="iconfont"></i></button>' + | 313 | '<button data-id="{{d.subId}}" lay-tips="资源订阅" type="button" class="layui-btn layui-btn-xs layui-btn-normal alarmsubscribe-resource-btn"><i class="iconfont"></i></button>' + |
313 | - '<button data-id="{{d.subId}}" lay-tips="指标订阅" type="button" class="layui-btn layui-btn-xs layui-btn-normal alarmsubscribe-kpi-btn"><i class="iconfont"></i></button>' + | ||
314 | - '<button data-id="{{d.subId}}" lay-tips="资源类型订阅" type="button" class="layui-btn layui-btn-xs layui-btn-normal alarmsubscribe-resType-btn"><i class="iconfont"></i></button>' + | ||
315 | - '<button data-id="{{d.subId}}" lay-tips="业务类型订阅" type="button" class="layui-btn layui-btn-xs layui-btn-normal alarmsubscribe-busId-btn"><i class="iconfont"></i></button>' + | 314 | + // '<button data-id="{{d.subId}}" lay-tips="指标订阅" type="button" class="layui-btn layui-btn-xs layui-btn-normal alarmsubscribe-kpi-btn"><i class="iconfont"></i></button>' + |
315 | + '<button data-id="{{d.subId}}" lay-tips="设备分类" type="button" class="layui-btn layui-btn-xs layui-btn-normal alarmsubscribe-resType-btn"><i class="iconfont"></i></button>' +//资源类型订阅 | ||
316 | + '<button data-id="{{d.subId}}" lay-tips="业务分类" type="button" class="layui-btn layui-btn-xs layui-btn-normal alarmsubscribe-busId-btn"><i class="iconfont"></i></button>' + //业务类型订阅 | ||
316 | '<button data-id="{{d.subId}}" lay-tips="订阅指标、资源排除配置" type="button" class="layui-btn layui-btn-xs layui-btn-normal alarmsubscribe-exclude-kpi"><i class="layui-icon layui-icon-templeate-1"></i>' + | 317 | '<button data-id="{{d.subId}}" lay-tips="订阅指标、资源排除配置" type="button" class="layui-btn layui-btn-xs layui-btn-normal alarmsubscribe-exclude-kpi"><i class="layui-icon layui-icon-templeate-1"></i>' + |
317 | '</div>' | 318 | '</div>' |
318 | } | 319 | } |
@@ -817,7 +818,8 @@ layui.define(['table', 'form', 'admin', 'layer', 'common','sessions'], function | @@ -817,7 +818,8 @@ layui.define(['table', 'form', 'admin', 'layer', 'common','sessions'], function | ||
817 | } | 818 | } |
818 | var resIds = []; | 819 | var resIds = []; |
819 | $.each(data,function (i,v){ | 820 | $.each(data,function (i,v){ |
820 | - resIds.push(v.resId); | 821 | + // resIds.push(v.resId); |
822 | + resIds.push(v.id); | ||
821 | }) | 823 | }) |
822 | 824 | ||
823 | admin.req({ | 825 | admin.req({ |
@@ -947,7 +949,8 @@ layui.define(['table', 'form', 'admin', 'layer', 'common','sessions'], function | @@ -947,7 +949,8 @@ layui.define(['table', 'form', 'admin', 'layer', 'common','sessions'], function | ||
947 | //找到选择的所有业务 并且订阅 | 949 | //找到选择的所有业务 并且订阅 |
948 | var bustype = layui.bustype({"busIds": list}); | 950 | var bustype = layui.bustype({"busIds": list}); |
949 | var data = bustype.getData(); | 951 | var data = bustype.getData(); |
950 | - insertResTypeOrBusId(data, 1, subId); | 952 | + console.log(data); |
953 | + insertResTypeOrBusId(data, 1, subId); | ||
951 | }); | 954 | }); |
952 | }); | 955 | }); |
953 | 956 | ||
@@ -969,12 +972,12 @@ layui.define(['table', 'form', 'admin', 'layer', 'common','sessions'], function | @@ -969,12 +972,12 @@ layui.define(['table', 'form', 'admin', 'layer', 'common','sessions'], function | ||
969 | 972 | ||
970 | //添加或修改 资源类型订阅或业务订阅 | 973 | //添加或修改 资源类型订阅或业务订阅 |
971 | function insertResTypeOrBusId(data, type, subId, id) { | 974 | function insertResTypeOrBusId(data, type, subId, id) { |
972 | - let targetId = type === 0 ? data.filter(item => item.forbidden === 0).map(item => item.resTypeCode ? item.resTypeCode : item.busId).toString() : data.map(item => item.busId).toString(); | 975 | + //let targetId = type === 0 ? data.filter(item => item.forbidden === 0).map(item => item.resTypeCode ? item.resTypeCode : item.busId).toString() : data.map(item => item.busId).toString(); |
973 | let typeSubscribe = { | 976 | let typeSubscribe = { |
974 | id: id, | 977 | id: id, |
975 | subId: subId, | 978 | subId: subId, |
976 | type: type, | 979 | type: type, |
977 | - targetId: targetId | 980 | + targetId: data |
978 | }; | 981 | }; |
979 | admin.req({ | 982 | admin.req({ |
980 | url: common.domainName + '/api-web/bTypeSubscribe/insertOrChange?access_token=' + accessToken, | 983 | url: common.domainName + '/api-web/bTypeSubscribe/insertOrChange?access_token=' + accessToken, |
@@ -649,6 +649,7 @@ layui.define(['xmSelect', 'md5'], function (exports) { | @@ -649,6 +649,7 @@ layui.define(['xmSelect', 'md5'], function (exports) { | ||
649 | }, | 649 | }, |
650 | //打开弹框 | 650 | //打开弹框 |
651 | openWin: function (url, name, params, btns, fn, cancelfn, area, done, layerParams) { | 651 | openWin: function (url, name, params, btns, fn, cancelfn, area, done, layerParams) { |
652 | + console.log(fn); | ||
652 | if (!name) { | 653 | if (!name) { |
653 | name = "信息"; | 654 | name = "信息"; |
654 | } | 655 | } |
@@ -666,6 +667,7 @@ layui.define(['xmSelect', 'md5'], function (exports) { | @@ -666,6 +667,7 @@ layui.define(['xmSelect', 'md5'], function (exports) { | ||
666 | id: id, | 667 | id: id, |
667 | content: laytpl(res.body).render(JSON.stringify(params)), | 668 | content: laytpl(res.body).render(JSON.stringify(params)), |
668 | success: function (layero, index) { | 669 | success: function (layero, index) { |
670 | + console.log(layero, index); | ||
669 | if(done) { | 671 | if(done) { |
670 | if (typeof done === "function") { | 672 | if (typeof done === "function") { |
671 | done(layero, index); | 673 | done(layero, index); |
1 | //资源列表 | 1 | //资源列表 |
2 | -layui.define(['table', 'form', 'admin', 'layer', 'common','sessions', 'xmSelect'], function (exports) { | 2 | +layui.define(['table', 'form', 'admin', 'layer', 'common','sessions', 'xmSelect', 'cascader'], function (exports) { |
3 | var $ = layui.$; | 3 | var $ = layui.$; |
4 | var form = layui.form; | 4 | var form = layui.form; |
5 | var table = layui.table; | 5 | var table = layui.table; |
6 | - var xmSelect = layui.table; | 6 | + // var xmSelect = layui.table; |
7 | var common = layui.common; | 7 | var common = layui.common; |
8 | var resListSelectIds = []; | 8 | var resListSelectIds = []; |
9 | + let protocolList = []; | ||
10 | + var cascader = layui.cascader; | ||
9 | //对外暴露的接口 | 11 | //对外暴露的接口 |
10 | exports('reslist', function (data) { | 12 | exports('reslist', function (data) { |
11 | var sessions = layui.sessions; | 13 | var sessions = layui.sessions; |
12 | var router = layui.router(); | 14 | var router = layui.router(); |
13 | - var accessToken = sessions.getToken().access_token; | 15 | + var accessToken = '187e56d0-e408-4982-8d9c-fb3d52c5de13' //sessions.getToken().access_token; |
14 | var resType = (data && common.isNotEmpty(data.resType)) ? data.resType : ''; | 16 | var resType = (data && common.isNotEmpty(data.resType)) ? data.resType : ''; |
15 | var table_data = []; | 17 | var table_data = []; |
16 | // 业务类型Id | 18 | // 业务类型Id |
@@ -38,6 +40,87 @@ layui.define(['table', 'form', 'admin', 'layer', 'common','sessions', 'xmSelect' | @@ -38,6 +40,87 @@ layui.define(['table', 'form', 'admin', 'layer', 'common','sessions', 'xmSelect' | ||
38 | if (router.search.resType) { | 40 | if (router.search.resType) { |
39 | resType = router.search.resType; | 41 | resType = router.search.resType; |
40 | } | 42 | } |
43 | + | ||
44 | + // 设备类型 下拉选 | ||
45 | + $.ajax({ | ||
46 | + url: 'http://192.168.0.44:8080/log-access/v1/lm2_logfmt_dirs/queryTreeList?access_token='+ accessToken, | ||
47 | + type: 'get', | ||
48 | + success: function (res) { | ||
49 | + if (res && res.data) { | ||
50 | + res.data.map(item=>{ | ||
51 | + item.label = item.name; | ||
52 | + item.value = item.id; | ||
53 | + }) | ||
54 | + var data = handleTree(res.data,'id','pId','children','label') | ||
55 | + cascader({ | ||
56 | + elem: "#devType", | ||
57 | + data: data, | ||
58 | + showLastLevels: true, | ||
59 | + success: function (valData,labelData) { | ||
60 | + console.log(valData,labelData); | ||
61 | + let data = valData[valData.length-1]; | ||
62 | + reloadTable(data); | ||
63 | + } | ||
64 | + }); | ||
65 | + } | ||
66 | + } | ||
67 | + }) | ||
68 | + | ||
69 | + /** | ||
70 | + * 构造树型结构数据 | ||
71 | + * zhangtianqi | ||
72 | + * @param {*} data 数据源 | ||
73 | + * @param {*} id id字段 默认 'id' | ||
74 | + * @param {*} parentId 父节点字段 默认 'parentId' | ||
75 | + * @param {*} children 孩子节点字段 默认 'children' | ||
76 | + */ | ||
77 | + function handleTree(data, id, parentId, children, title) { | ||
78 | + let config = { | ||
79 | + id: id || 'id', | ||
80 | + parentId: parentId || 'parentId', | ||
81 | + childrenList: children || 'children', | ||
82 | + title: title || 'title' | ||
83 | + }; | ||
84 | + | ||
85 | + var childrenListMap = {}; | ||
86 | + var nodeIds = {}; | ||
87 | + var tree = []; | ||
88 | + | ||
89 | + for (let d of data) { | ||
90 | + let parentId = d[config.parentId]; | ||
91 | + if (childrenListMap[parentId] == null) { | ||
92 | + childrenListMap[parentId] = []; | ||
93 | + } | ||
94 | + nodeIds[d[config.id]] = d; | ||
95 | + childrenListMap[parentId].push(d); | ||
96 | + } | ||
97 | + | ||
98 | + for (let d of data) { | ||
99 | + let parentId = d[config.parentId]; | ||
100 | + if (nodeIds[parentId] == null) { | ||
101 | + tree.push(d); | ||
102 | + } | ||
103 | + } | ||
104 | + | ||
105 | + for (let t of tree) { | ||
106 | + adaptToChildrenList(t); | ||
107 | + } | ||
108 | + | ||
109 | + function adaptToChildrenList(o) { | ||
110 | + if (childrenListMap[o[config.id]] !== null) { | ||
111 | + o[config.childrenList] = childrenListMap[o[config.id]]; | ||
112 | + } | ||
113 | + if (o[config.childrenList]) { | ||
114 | + for (let c of o[config.childrenList]) { | ||
115 | + adaptToChildrenList(c); | ||
116 | + } | ||
117 | + }else{ | ||
118 | + delete o[config.childrenList] | ||
119 | + } | ||
120 | + } | ||
121 | + return tree; | ||
122 | + }; | ||
123 | + | ||
41 | // 如果参数有busId | 124 | // 如果参数有busId |
42 | if(data && common.isNotEmpty(data.busId)){ | 125 | if(data && common.isNotEmpty(data.busId)){ |
43 | busId = data.busId; | 126 | busId = data.busId; |
@@ -49,6 +132,7 @@ layui.define(['table', 'form', 'admin', 'layer', 'common','sessions', 'xmSelect' | @@ -49,6 +132,7 @@ layui.define(['table', 'form', 'admin', 'layer', 'common','sessions', 'xmSelect' | ||
49 | $("#reslist_resListBizTypes").val(busId); | 132 | $("#reslist_resListBizTypes").val(busId); |
50 | form.render("select"); | 133 | form.render("select"); |
51 | }); | 134 | }); |
135 | + | ||
52 | //绑定资源类型下拉选择 | 136 | //绑定资源类型下拉选择 |
53 | common.resTypeXmSelect({ | 137 | common.resTypeXmSelect({ |
54 | el: '#reslist_restype', | 138 | el: '#reslist_restype', |
@@ -77,10 +161,34 @@ layui.define(['table', 'form', 'admin', 'layer', 'common','sessions', 'xmSelect' | @@ -77,10 +161,34 @@ layui.define(['table', 'form', 'admin', 'layer', 'common','sessions', 'xmSelect' | ||
77 | //回车搜索 | 161 | //回车搜索 |
78 | $('#reslist_keyword').keydown(function (e) { | 162 | $('#reslist_keyword').keydown(function (e) { |
79 | if (e.keyCode === 13) { | 163 | if (e.keyCode === 13) { |
80 | - reloadTable(resType); | 164 | + // reloadTable(resType); |
165 | + reloadTable() | ||
81 | } | 166 | } |
82 | }); | 167 | }); |
83 | 168 | ||
169 | + $.ajax({ | ||
170 | + url: `http://192.168.0.44:8080/log-deploy/v1/lm2_protocol?access_token=${accessToken}`, | ||
171 | + method:"get", | ||
172 | + success(res){ | ||
173 | + protocolList = res.data; | ||
174 | + // 设置协议类型 下拉选 | ||
175 | + let options = "<option value=''>=所属业务=</option>"; | ||
176 | + $.each(protocolList, function (i, v) { | ||
177 | + options += '<option value="' + v.id + '">' + v.protocolType + '</option>'; | ||
178 | + }); | ||
179 | + $('#protocolType').html(options); | ||
180 | + }, | ||
181 | + }) | ||
182 | + // 回显表格协议类型字段 | ||
183 | + function agreementType(agreementId) { | ||
184 | + var agreementType = ''; | ||
185 | + protocolList.forEach(v => { | ||
186 | + if (v.id == agreementId) { | ||
187 | + agreementType = v.protocolType; | ||
188 | + } | ||
189 | + }); | ||
190 | + return agreementType; | ||
191 | + }; | ||
84 | 192 | ||
85 | //选择框搜索事件 | 193 | //选择框搜索事件 |
86 | bindSelectEvent(); | 194 | bindSelectEvent(); |
@@ -88,7 +196,7 @@ layui.define(['table', 'form', 'admin', 'layer', 'common','sessions', 'xmSelect' | @@ -88,7 +196,7 @@ layui.define(['table', 'form', 'admin', 'layer', 'common','sessions', 'xmSelect' | ||
88 | resType || (resType = 'all') | 196 | resType || (resType = 'all') |
89 | var reslisTable = table.render({ | 197 | var reslisTable = table.render({ |
90 | elem: '#reslist_resListTable' | 198 | elem: '#reslist_resListTable' |
91 | - , url: common.domainName + '/api-web/home/res-list/' + resType | 199 | + /*, url: common.domainName + '/api-web/home/res-list/' + resType |
92 | , where: { | 200 | , where: { |
93 | access_token: accessToken, | 201 | access_token: accessToken, |
94 | resName: $("#reslist_keyword").val(), | 202 | resName: $("#reslist_keyword").val(), |
@@ -109,6 +217,16 @@ layui.define(['table', 'form', 'admin', 'layer', 'common','sessions', 'xmSelect' | @@ -109,6 +217,16 @@ layui.define(['table', 'form', 'admin', 'layer', 'common','sessions', 'xmSelect' | ||
109 | os:$("#resManageIndexForm").find("select[id='reslist_os']").val(), | 217 | os:$("#resManageIndexForm").find("select[id='reslist_os']").val(), |
110 | collProtocolList:$("#resManageIndexForm").find("select[id='collProtocol']").val(), | 218 | collProtocolList:$("#resManageIndexForm").find("select[id='collProtocol']").val(), |
111 | pageName:'reslist' | 219 | pageName:'reslist' |
220 | + }*/ | ||
221 | + , url: 'http://192.168.0.44:8080/log-access/v1/lm2_join_device' | ||
222 | + ,where:{ | ||
223 | + access_token: accessToken, | ||
224 | + protocolType: '', | ||
225 | + _condition_: undefined, | ||
226 | + _sort_:'-join_time', | ||
227 | + devType: '', | ||
228 | + noType: undefined, | ||
229 | + joinType: undefined, | ||
112 | } | 230 | } |
113 | , height: 'full-350' | 231 | , height: 'full-350' |
114 | , cellMinWidth: 80 | 232 | , cellMinWidth: 80 |
@@ -121,13 +239,38 @@ layui.define(['table', 'form', 'admin', 'layer', 'common','sessions', 'xmSelect' | @@ -121,13 +239,38 @@ layui.define(['table', 'form', 'admin', 'layer', 'common','sessions', 'xmSelect' | ||
121 | , cols: [[ | 239 | , cols: [[ |
122 | {type: 'checkbox'}, | 240 | {type: 'checkbox'}, |
123 | {type: 'numbers', title: '序号', align: 'center'} | 241 | {type: 'numbers', title: '序号', align: 'center'} |
124 | - , {field: 'resName', title: '资源名称', minWidth: 300, align: 'center'} | ||
125 | - , {field: 'ip', title: 'IP地址', align: 'center'} | ||
126 | - , {field: 'os', title: 'os', align: 'center'} | ||
127 | - , {field: 'collProtocol', title: '采集协议', align: 'center'} | ||
128 | - , {field: 'adminName', title: '负责人', align: 'center'} | ||
129 | - , {field: 'resTypeName', title: '资源类型', align: 'center'} | ||
130 | - , {field: 'healthDesc', title: '资源状态', align: 'center'} | 242 | + , {field: 'ipAddr', title: 'IP地址', align: 'center'} |
243 | + , {field: 'devIdent', title: '设备标识', align: 'center'} | ||
244 | + , {field: 'logfmtDirName', title: '设备类型', align: 'center'} | ||
245 | + , {field: 'lm2LogjoinDirDTOS', title: '业务类型', align: 'center', | ||
246 | + templet(e){ | ||
247 | + if (e.lm2LogjoinDirDTOS){ | ||
248 | + let el='' | ||
249 | + $.each(e.lm2LogjoinDirNameStrs,(i,v)=>{ | ||
250 | + el += `<span>${v}</span><br>` | ||
251 | + }) | ||
252 | + return el | ||
253 | + }else{ | ||
254 | + return `` | ||
255 | + } | ||
256 | + } | ||
257 | + } | ||
258 | + , {field: 'protocolType', title: '协议类型', align: 'center', | ||
259 | + templet:function (e){ | ||
260 | + return `${agreementType(e.protocolType)}` | ||
261 | + }} | ||
262 | + , {field: 'joinType', title: '设备来源', align: 'center', | ||
263 | + templet(e){ | ||
264 | + if (e.joinType == 0) { | ||
265 | + return "自动上报" | ||
266 | + } else if (e.joinType == 1) { | ||
267 | + return "手动录入" | ||
268 | + } else { | ||
269 | + return "" | ||
270 | + } | ||
271 | + } | ||
272 | + } | ||
273 | + , {field: 'joinTime', title: '接入时间', align: 'center'} | ||
131 | ]], | 274 | ]], |
132 | done: function (res) { | 275 | done: function (res) { |
133 | table_data = res.data; | 276 | table_data = res.data; |
@@ -156,6 +299,18 @@ layui.define(['table', 'form', 'admin', 'layer', 'common','sessions', 'xmSelect' | @@ -156,6 +299,18 @@ layui.define(['table', 'form', 'admin', 'layer', 'common','sessions', 'xmSelect' | ||
156 | }); | 299 | }); |
157 | //绑定下拉搜索事件 | 300 | //绑定下拉搜索事件 |
158 | function bindSelectEvent() { | 301 | function bindSelectEvent() { |
302 | + //协议类型搜索 | ||
303 | + form.on('select(protocolType)', function(data){ | ||
304 | + // reloadTable(resType); | ||
305 | + reloadTable() | ||
306 | + }); | ||
307 | + //设备来源搜索 | ||
308 | + form.on('select(joinType)', function(data){ | ||
309 | + // reloadTable(resType); | ||
310 | + reloadTable() | ||
311 | + }); | ||
312 | + | ||
313 | + | ||
159 | //选择业务搜索 | 314 | //选择业务搜索 |
160 | form.on('select(reslist_resListBizTypes)', function(data){ | 315 | form.on('select(reslist_resListBizTypes)', function(data){ |
161 | reloadTable(resType); | 316 | reloadTable(resType); |
@@ -197,8 +352,9 @@ layui.define(['table', 'form', 'admin', 'layer', 'common','sessions', 'xmSelect' | @@ -197,8 +352,9 @@ layui.define(['table', 'form', 'admin', 'layer', 'common','sessions', 'xmSelect' | ||
197 | //刷新表格 | 352 | //刷新表格 |
198 | function reloadTable(resType) { | 353 | function reloadTable(resType) { |
199 | reslisTable.reload({ | 354 | reslisTable.reload({ |
200 | - url: common.domainName + '/api-web/home/res-list/' + (resType ? resType : 'all') | ||
201 | - , where: { | 355 | + //url: common.domainName + '/api-web/home/res-list/' + (resType ? resType : 'all') |
356 | + url:"http://192.168.0.44:8080/log-access/v1/lm2_join_device" | ||
357 | + /*, where: { | ||
202 | access_token: accessToken, | 358 | access_token: accessToken, |
203 | resName: $("#reslist_keyword").val(), | 359 | resName: $("#reslist_keyword").val(), |
204 | busId: $("#reslist_resListBizTypes").val(), | 360 | busId: $("#reslist_resListBizTypes").val(), |
@@ -216,8 +372,18 @@ layui.define(['table', 'form', 'admin', 'layer', 'common','sessions', 'xmSelect' | @@ -216,8 +372,18 @@ layui.define(['table', 'form', 'admin', 'layer', 'common','sessions', 'xmSelect' | ||
216 | os:$("#resManageIndexForm").find("select[id='reslist_os']").val(), | 372 | os:$("#resManageIndexForm").find("select[id='reslist_os']").val(), |
217 | collProtocolList:$("#resManageIndexForm").find("select[id='collProtocol']").val(), | 373 | collProtocolList:$("#resManageIndexForm").find("select[id='collProtocol']").val(), |
218 | editMode: 'true' | 374 | editMode: 'true' |
219 | - }, | ||
220 | - page: { | 375 | + },*/ |
376 | + ,where:{ | ||
377 | + currentPage: 1, | ||
378 | + pageLimit: 10, | ||
379 | + protocolType: $('#protocolType').val(), | ||
380 | + _condition_: $('#reslist_keyword').val(), | ||
381 | + _sort_:'-join_time', | ||
382 | + devType: resType?resType:'', | ||
383 | + noType: undefined, | ||
384 | + joinType: $('#joinType').val(), | ||
385 | + } | ||
386 | + ,page: { | ||
221 | curr: 1 //重新从第 1 页开始 | 387 | curr: 1 //重新从第 1 页开始 |
222 | }, | 388 | }, |
223 | done: function (res) { | 389 | done: function (res) { |
1 | // 资源类型管理 | 1 | // 资源类型管理 |
2 | -layui.define(['form', 'admin', 'layer', 'laytpl', 'common', 'view', 'sessions', 'treeTable', 'xmSelect', 'userlist'], function (exports) { | 2 | +layui.define(['form', 'admin', 'layer', 'laytpl', 'common', 'view', 'sessions', 'treeTable', 'xmSelect', 'userlist','tree',], function (exports) { |
3 | var $ = layui.$; | 3 | var $ = layui.$; |
4 | var form = layui.form; | 4 | var form = layui.form; |
5 | var layer = layui.layer; | 5 | var layer = layui.layer; |
@@ -20,8 +20,10 @@ layui.define(['form', 'admin', 'layer', 'laytpl', 'common', 'view', 'sessions', | @@ -20,8 +20,10 @@ layui.define(['form', 'admin', 'layer', 'laytpl', 'common', 'view', 'sessions', | ||
20 | var resource_view = ''; | 20 | var resource_view = ''; |
21 | var biz_view = ''; | 21 | var biz_view = ''; |
22 | var collTypeSelect = ''; | 22 | var collTypeSelect = ''; |
23 | + var tree = layui.tree; | ||
23 | //传递参数 | 24 | //传递参数 |
24 | let resTypes = data && data.resTypes ? data.resTypes : []; | 25 | let resTypes = data && data.resTypes ? data.resTypes : []; |
26 | + console.log(resTypes); | ||
25 | let showType = data && data.showType==0 ? data.showType : 1; | 27 | let showType = data && data.showType==0 ? data.showType : 1; |
26 | if(showType == 0){ | 28 | if(showType == 0){ |
27 | $('#resourceType-forbidden-type option[value="2"]').removeAttr("selected"); | 29 | $('#resourceType-forbidden-type option[value="2"]').removeAttr("selected"); |
@@ -49,6 +51,87 @@ layui.define(['form', 'admin', 'layer', 'laytpl', 'common', 'view', 'sessions', | @@ -49,6 +51,87 @@ layui.define(['form', 'admin', 'layer', 'laytpl', 'common', 'view', 'sessions', | ||
49 | $('.layui-inline-resourceType-forbidden').hide(); | 51 | $('.layui-inline-resourceType-forbidden').hide(); |
50 | } | 52 | } |
51 | initShowType(); | 53 | initShowType(); |
54 | + | ||
55 | + // 设备树 | ||
56 | + $.ajax({ | ||
57 | + url:common.domainName+"/log-access/v1/lm2_logfmt_dirs/queryTreeList?access_token="+accessToken, | ||
58 | + method:"get", | ||
59 | + success(res){ | ||
60 | + if (res.code==200){ | ||
61 | + res.data.map(item=>{ | ||
62 | + item.checked = false | ||
63 | + }) | ||
64 | + let option = handleTree(res.data, 'id', 'pId','children','name'); | ||
65 | + tree.render({ | ||
66 | + elem: '#resmanagetree', | ||
67 | + id:"resmanagetree", | ||
68 | + showLine: false, | ||
69 | + data: option, | ||
70 | + showCheckbox: true, | ||
71 | + }) | ||
72 | + } | ||
73 | + } | ||
74 | + }) | ||
75 | + | ||
76 | + /** | ||
77 | + * 构造树型结构数据 | ||
78 | + * zhangtianqi | ||
79 | + * @param {*} data 数据源 | ||
80 | + * @param {*} id id字段 默认 'id' | ||
81 | + * @param {*} parentId 父节点字段 默认 'parentId' | ||
82 | + * @param {*} children 孩子节点字段 默认 'children' | ||
83 | + */ | ||
84 | + function handleTree(data, id, parentId, children, title) { | ||
85 | + let config = { | ||
86 | + id: id || 'id', | ||
87 | + parentId: parentId || 'parentId', | ||
88 | + childrenList: children || 'children', | ||
89 | + title: title || 'title' | ||
90 | + }; | ||
91 | + | ||
92 | + var childrenListMap = {}; | ||
93 | + var nodeIds = {}; | ||
94 | + var tree = []; | ||
95 | + | ||
96 | + for (let d of data) { | ||
97 | + let parentId = d[config.parentId]; | ||
98 | + let title = d[config.title] | ||
99 | + if (childrenListMap[parentId] == null) { | ||
100 | + childrenListMap[parentId] = []; | ||
101 | + } | ||
102 | + d.title = title; | ||
103 | + nodeIds[d[config.id]] = d; | ||
104 | + childrenListMap[parentId].push(d); | ||
105 | + } | ||
106 | + | ||
107 | + for (let d of data) { | ||
108 | + let parentId = d[config.parentId]; | ||
109 | + let title = d[config.title] | ||
110 | + d.title = title; | ||
111 | + if (nodeIds[parentId] == null) { | ||
112 | + tree.push(d); | ||
113 | + } | ||
114 | + } | ||
115 | + | ||
116 | + for (let t of tree) { | ||
117 | + adaptToChildrenList(t); | ||
118 | + } | ||
119 | + | ||
120 | + function adaptToChildrenList(o) { | ||
121 | + if (childrenListMap[o[config.id]] !== null) { | ||
122 | + o[config.childrenList] = childrenListMap[o[config.id]]; | ||
123 | + } | ||
124 | + if (o[config.childrenList]) { | ||
125 | + for (let c of o[config.childrenList]) { | ||
126 | + adaptToChildrenList(c); | ||
127 | + } | ||
128 | + } | ||
129 | + } | ||
130 | + | ||
131 | + return tree; | ||
132 | + }; | ||
133 | + | ||
134 | + | ||
52 | //获取采集类型字典 | 135 | //获取采集类型字典 |
53 | admin.req({ | 136 | admin.req({ |
54 | url: domainName + '/api-web/manage/ddic/findSucDdics/collType' | 137 | url: domainName + '/api-web/manage/ddic/findSucDdics/collType' |
@@ -1321,13 +1404,38 @@ layui.define(['form', 'admin', 'layer', 'laytpl', 'common', 'view', 'sessions', | @@ -1321,13 +1404,38 @@ layui.define(['form', 'admin', 'layer', 'laytpl', 'common', 'view', 'sessions', | ||
1321 | return cols; | 1404 | return cols; |
1322 | } | 1405 | } |
1323 | function getResTypeChecks() { | 1406 | function getResTypeChecks() { |
1324 | - var res=restypeTable.checkStatus(false); | 1407 | + /*var res=restypeTable.checkStatus(false); |
1325 | $.each(res,function (i,v) { | 1408 | $.each(res,function (i,v) { |
1326 | if(v.resTypeCode=='HOST_X86SERVER'){ | 1409 | if(v.resTypeCode=='HOST_X86SERVER'){ |
1327 | v.showType=$('#resourceType_showType')?$('#resourceType_showType').val():null; | 1410 | v.showType=$('#resourceType_showType')?$('#resourceType_showType').val():null; |
1328 | } | 1411 | } |
1329 | }); | 1412 | }); |
1330 | - return restypeTable.checkStatus(false); | 1413 | + return restypeTable.checkStatus(false);*/ |
1414 | + | ||
1415 | + var data = tree.getChecked('resmanagetree'); | ||
1416 | + var nodeIds = new Array(); | ||
1417 | + nodeIds = getCheckedId(data) | ||
1418 | + return nodeIds; | ||
1419 | + } | ||
1420 | + //获取所有选中的节点id | ||
1421 | + function getCheckedId(data) { | ||
1422 | + var id = ""; | ||
1423 | + $.each(data, function (index, item) { | ||
1424 | + if (id != "") { | ||
1425 | + id = id + "," + item.id; | ||
1426 | + } | ||
1427 | + else { | ||
1428 | + id = item.id; | ||
1429 | + } | ||
1430 | + //item 没有children属性 | ||
1431 | + if (item.children != null) { | ||
1432 | + var i = getCheckedId(item.children); | ||
1433 | + if (i != "") { | ||
1434 | + id = id + "," + i; | ||
1435 | + } | ||
1436 | + } | ||
1437 | + }); | ||
1438 | + return id; | ||
1331 | } | 1439 | } |
1332 | 1440 | ||
1333 | return {getResTypeChecks: getResTypeChecks} | 1441 | return {getResTypeChecks: getResTypeChecks} |
@@ -19,7 +19,8 @@ | @@ -19,7 +19,8 @@ | ||
19 | <input type="text" class="layui-input" lay-verify="required" lay-reqtext="请输入策略名称" name="alarmPolicyName" id="alarmPolicyName"> | 19 | <input type="text" class="layui-input" lay-verify="required" lay-reqtext="请输入策略名称" name="alarmPolicyName" id="alarmPolicyName"> |
20 | </div> | 20 | </div> |
21 | </div> | 21 | </div> |
22 | - <div class="layui-inline"> | 22 | + <!--zhangtianqi 2022-06-22--> |
23 | + <div class="layui-inline hide"> | ||
23 | <label class="layui-form-label">是否默认</label> | 24 | <label class="layui-form-label">是否默认</label> |
24 | <div class="layui-input-inline padding-left-10"> | 25 | <div class="layui-input-inline padding-left-10"> |
25 | <input type="radio" name="policyType" value="1" title="默认"> | 26 | <input type="radio" name="policyType" value="1" title="默认"> |
@@ -66,8 +67,10 @@ | @@ -66,8 +67,10 @@ | ||
66 | <li>严重</li> | 67 | <li>严重</li> |
67 | <li>重要</li> | 68 | <li>重要</li> |
68 | <li>一般</li> | 69 | <li>一般</li> |
69 | - <li>过滤</li> | ||
70 | - <li>消除</li> | 70 | + <!--zhangtianqi 2022-06-22--> |
71 | + <li class="hide">过滤</li> | ||
72 | + <li class="hide">消除</li> | ||
73 | + | ||
71 | <!-- <li>告警内容表达式</li>--> | 74 | <!-- <li>告警内容表达式</li>--> |
72 | </ul> | 75 | </ul> |
73 | <div class="layui-tab-content"> | 76 | <div class="layui-tab-content"> |
@@ -78,7 +81,8 @@ | @@ -78,7 +81,8 @@ | ||
78 | <div class="box-group-right"> | 81 | <div class="box-group-right"> |
79 | <div class="layui-form-item"> | 82 | <div class="layui-form-item"> |
80 | <div class="layui-input-block"> | 83 | <div class="layui-input-block"> |
81 | - <textarea placeholder="请输入内容" class="layui-textarea noticeExpr" readonly id="alarmContentExpr" name="alarmContentExpr"></textarea> | 84 | + <textarea placeholder="请输入内容" class="layui-textarea noticeExpr" id="alarmContentExpr" name="alarmContentExpr"></textarea> |
85 | + <!-- readonly --> <!--zhangtianqi 2022-06-22--> | ||
82 | </div> | 86 | </div> |
83 | </div> | 87 | </div> |
84 | </div> | 88 | </div> |
@@ -12,7 +12,8 @@ | @@ -12,7 +12,8 @@ | ||
12 | <input type="text" id="alarmpolicykw" name="alarmpolicykw" lay-tips="关键字检索包含 </br>策略名称" placeholder="输入关键字,回车搜索" autocomplete="off" class="layui-input"> | 12 | <input type="text" id="alarmpolicykw" name="alarmpolicykw" lay-tips="关键字检索包含 </br>策略名称" placeholder="输入关键字,回车搜索" autocomplete="off" class="layui-input"> |
13 | </div> | 13 | </div> |
14 | </div> | 14 | </div> |
15 | - <div class="layui-inline"> | 15 | + <!-- zhangtianqi 2022-6-22 --> |
16 | + <div class="layui-inline hide"> | ||
16 | <div class="layui-input-inline layui-input-inline--long"> | 17 | <div class="layui-input-inline layui-input-inline--long"> |
17 | <select lay-filter="alarmpolicy_category" id="alarmpolicy_category"> | 18 | <select lay-filter="alarmpolicy_category" id="alarmpolicy_category"> |
18 | <option value="">=指标分类=</option> | 19 | <option value="">=指标分类=</option> |
@@ -32,12 +33,12 @@ | @@ -32,12 +33,12 @@ | ||
32 | </select> | 33 | </select> |
33 | </div> | 34 | </div> |
34 | </div> | 35 | </div> |
35 | - <div class="layui-inline"> | 36 | + <div class="layui-inline hide"> |
36 | <div class="layui-input-inline"> | 37 | <div class="layui-input-inline"> |
37 | <div id="alarmpolicy_kpi_resName"></div> | 38 | <div id="alarmpolicy_kpi_resName"></div> |
38 | </div> | 39 | </div> |
39 | </div> | 40 | </div> |
40 | - <div class="layui-inline"> | 41 | + <div class="layui-inline hide"> |
41 | <div class="layui-input-inline layui-input-inline--long"> | 42 | <div class="layui-input-inline layui-input-inline--long"> |
42 | <select lay-filter="alarmpolicy_policyType" id="alarmpolicy_policyType"> | 43 | <select lay-filter="alarmpolicy_policyType" id="alarmpolicy_policyType"> |
43 | <option value="">=策略类型=</option> | 44 | <option value="">=策略类型=</option> |
@@ -13,9 +13,9 @@ | @@ -13,9 +13,9 @@ | ||
13 | <div class="layui-input-inline"> | 13 | <div class="layui-input-inline"> |
14 | <select name="subType" lay-filter="alarm-subscribe-subype"> | 14 | <select name="subType" lay-filter="alarm-subscribe-subype"> |
15 | <option value="1">告警订阅</option> | 15 | <option value="1">告警订阅</option> |
16 | - <option value="2">报表订阅</option> | ||
17 | - <option value="3">系统通知订阅</option> | ||
18 | - <option value="4">采集器异常订阅</option> | 16 | +<!-- <option value="2">报表订阅</option>--> |
17 | +<!-- <option value="3">系统通知订阅</option>--> | ||
18 | +<!-- <option value="4">采集器异常订阅</option>--> | ||
19 | </select> | 19 | </select> |
20 | </div> | 20 | </div> |
21 | </div> | 21 | </div> |
@@ -120,14 +120,16 @@ | @@ -120,14 +120,16 @@ | ||
120 | <!-- <i class="layui-icon form-btn-icon" lay-tips="订阅绑定用户、部门及组" id="alarmsubscirbe-form-select-users"></i>--> | 120 | <!-- <i class="layui-icon form-btn-icon" lay-tips="订阅绑定用户、部门及组" id="alarmsubscirbe-form-select-users"></i>--> |
121 | </div> | 121 | </div> |
122 | </div> | 122 | </div> |
123 | - <div class="layui-form-item"> | 123 | + |
124 | + <!-- zhangtianqi 2022-6-22 --> | ||
125 | + <div class="layui-form-item hide"> | ||
124 | <label class="layui-form-label">接收部门</label> | 126 | <label class="layui-form-label">接收部门</label> |
125 | <div class="layui-input-block tags-input"> | 127 | <div class="layui-input-block tags-input"> |
126 | <div class="tags" id="selecte_org_content_id"></div> | 128 | <div class="tags" id="selecte_org_content_id"></div> |
127 | <div class="layui-form-mid layui-word-aux" style="padding: 0!important;position: relative;top: -28px;left: 98%"></div> | 129 | <div class="layui-form-mid layui-word-aux" style="padding: 0!important;position: relative;top: -28px;left: 98%"></div> |
128 | </div> | 130 | </div> |
129 | </div> | 131 | </div> |
130 | - <div class="layui-form-item"> | 132 | + <div class="layui-form-item hide"> |
131 | <label class="layui-form-label">接收组</label> | 133 | <label class="layui-form-label">接收组</label> |
132 | <div class="layui-input-block tags-input"> | 134 | <div class="layui-input-block tags-input"> |
133 | <div class="tags" id="selecte_group_content_id"></div> | 135 | <div class="tags" id="selecte_group_content_id"></div> |
@@ -135,7 +137,7 @@ | @@ -135,7 +137,7 @@ | ||
135 | </div> | 137 | </div> |
136 | </div> | 138 | </div> |
137 | 139 | ||
138 | - <div class="layui-form-item"> | 140 | + <div class="layui-form-item hide"> |
139 | <label class="layui-form-label textarea-label">订阅描述</label> | 141 | <label class="layui-form-label textarea-label">订阅描述</label> |
140 | <div class="layui-input-block"> | 142 | <div class="layui-input-block"> |
141 | <textarea class="layui-textarea" name="subDesc"></textarea> | 143 | <textarea class="layui-textarea" name="subDesc"></textarea> |
@@ -13,10 +13,11 @@ | @@ -13,10 +13,11 @@ | ||
13 | </div> | 13 | </div> |
14 | </div> | 14 | </div> |
15 | <!--订阅类型--> | 15 | <!--订阅类型--> |
16 | - <div class="layui-inline"> | 16 | + <div class="layui-inline hide"> |
17 | <div class="layui-input-inline layui-input-inline--long alarmsubscribe_type multi-query"> | 17 | <div class="layui-input-inline layui-input-inline--long alarmsubscribe_type multi-query"> |
18 | </div> | 18 | </div> |
19 | </div> | 19 | </div> |
20 | + | ||
20 | <!-- <div class="layui-inline">--> | 21 | <!-- <div class="layui-inline">--> |
21 | <!-- <div class="layui-input-inline layui-input-inline--long">--> | 22 | <!-- <div class="layui-input-inline layui-input-inline--long">--> |
22 | <!-- <select name="subType" lay-filter="alarmsubscribe_type">--> | 23 | <!-- <select name="subType" lay-filter="alarmsubscribe_type">--> |
@@ -29,10 +30,11 @@ | @@ -29,10 +30,11 @@ | ||
29 | <!-- </div>--> | 30 | <!-- </div>--> |
30 | <!-- </div>--> | 31 | <!-- </div>--> |
31 | <!--通知方式--> | 32 | <!--通知方式--> |
32 | - <div class="layui-inline"> | 33 | + <div class="layui-inline hide"> |
33 | <div class="layui-input-inline layui-input-inline--long alarmsubscribe_noticeway multi-query"> | 34 | <div class="layui-input-inline layui-input-inline--long alarmsubscribe_noticeway multi-query"> |
34 | </div> | 35 | </div> |
35 | </div> | 36 | </div> |
37 | + | ||
36 | <!-- <div class="layui-inline">--> | 38 | <!-- <div class="layui-inline">--> |
37 | <!-- <div class="layui-input-inline layui-input-inline--long">--> | 39 | <!-- <div class="layui-input-inline layui-input-inline--long">--> |
38 | <!-- <select name="subWay" lay-filter="alarmsubscribe_noticeway">--> | 40 | <!-- <select name="subWay" lay-filter="alarmsubscribe_noticeway">--> |
@@ -70,7 +72,7 @@ | @@ -70,7 +72,7 @@ | ||
70 | </select> | 72 | </select> |
71 | </div> | 73 | </div> |
72 | </div> | 74 | </div> |
73 | - <div class="layui-inline"> | 75 | + <div class="layui-inline hide"> |
74 | <div class="layui-input-inline layui-input-inline--long"> | 76 | <div class="layui-input-inline layui-input-inline--long"> |
75 | <select name="alarmsubscribe_noticeway" lay-filter="alarmsubscribe_noticeway"> | 77 | <select name="alarmsubscribe_noticeway" lay-filter="alarmsubscribe_noticeway"> |
76 | <option value="">=报表类型=</option> | 78 | <option value="">=报表类型=</option> |
@@ -2,7 +2,7 @@ | @@ -2,7 +2,7 @@ | ||
2 | <article class="page-container"> | 2 | <article class="page-container"> |
3 | <div class="page-panel"> | 3 | <div class="page-panel"> |
4 | <div class="main"> | 4 | <div class="main"> |
5 | - <div class="layui-card"> | 5 | + <div class="layui-card hide"> |
6 | <div class="layui-card-header"> | 6 | <div class="layui-card-header"> |
7 | <div class="layui-status"> | 7 | <div class="layui-status"> |
8 | <form class="layui-form layui-card-header layuiadmin-card-header-auto"> | 8 | <form class="layui-form layui-card-header layuiadmin-card-header-auto"> |
@@ -53,10 +53,18 @@ | @@ -53,10 +53,18 @@ | ||
53 | <table id="restype-table" lay-filter="restypetable"></table> | 53 | <table id="restype-table" lay-filter="restypetable"></table> |
54 | </div> | 54 | </div> |
55 | </div> | 55 | </div> |
56 | + <div class="layui-card"> | ||
57 | + <div class="layui-card"> | ||
58 | + <div class="layui-card-body"> | ||
59 | + <div id="resmanagetree" class="demo-tree demo-tree-box"></div> | ||
60 | + </div> | ||
61 | + </div> | ||
62 | + </div> | ||
56 | </div> | 63 | </div> |
57 | </div> | 64 | </div> |
58 | </article> | 65 | </article> |
59 | 66 | ||
67 | + | ||
60 | <!--新增/编辑弹出框--> | 68 | <!--新增/编辑弹出框--> |
61 | <script type="text/html" id="resTypeEdit"> | 69 | <script type="text/html" id="resTypeEdit"> |
62 | <form class="layui-form layui-form-pane" action="" lay-filter="form-restype-edit"> | 70 | <form class="layui-form layui-form-pane" action="" lay-filter="form-restype-edit"> |
@@ -9,15 +9,44 @@ | @@ -9,15 +9,44 @@ | ||
9 | <div class="layui-form-item"> | 9 | <div class="layui-form-item"> |
10 | <div class="layui-inline"> | 10 | <div class="layui-inline"> |
11 | <div class="layui-input-inline layui-input-inline--long"> | 11 | <div class="layui-input-inline layui-input-inline--long"> |
12 | - <input id="reslist_keyword" type="text" name="title" placeholder="输入关键字,回车搜索" class="layui-input"> | 12 | + <input id="reslist_keyword" type="text" name="title" placeholder="请输入设备标识/IP地址" class="layui-input"> |
13 | </div> | 13 | </div> |
14 | </div> | 14 | </div> |
15 | <div class="layui-inline"> | 15 | <div class="layui-inline"> |
16 | + <div class="layui-input-inline"> | ||
17 | + <select name="protocolType" id="protocolType" lay-filter="protocolType" lay-verify="required"> | ||
18 | + <option value="">=协议类型=</option> | ||
19 | + </select> | ||
20 | + </div> | ||
21 | + </div> | ||
22 | + <div class="layui-inline"> | ||
23 | + <div class="layui-input-inline"> | ||
24 | + <input type="text" id="devType" class="layui-input" placeholder="请输入设备类型"> | ||
25 | +<!-- <select name="reslist_resStatus" id="devType" lay-filter="reslist_resStatus" lay-verify="required">--> | ||
26 | +<!-- <option value="">=设备类型=</option>--> | ||
27 | +<!-- </select>--> | ||
28 | + </div> | ||
29 | + </div> | ||
30 | + <div class="layui-inline"> | ||
31 | + <div class="layui-input-inline"> | ||
32 | + <select name="joinType" id="joinType" lay-filter="joinType" lay-verify="required"> | ||
33 | + <option value="">=设备来源=</option> | ||
34 | + <option value="0">自动上报</option> | ||
35 | + <option value="1">手动录入</option> | ||
36 | + </select> | ||
37 | + </div> | ||
38 | + </div> | ||
39 | + | ||
40 | + | ||
41 | + | ||
42 | + | ||
43 | + | ||
44 | + <div class="layui-inline hide"> | ||
16 | <div class="layui-input-inline layui-input-inline--long"> | 45 | <div class="layui-input-inline layui-input-inline--long"> |
17 | <div id="reslist_restype"></div> | 46 | <div id="reslist_restype"></div> |
18 | </div> | 47 | </div> |
19 | </div> | 48 | </div> |
20 | - <div class="layui-inline"> | 49 | + <div class="layui-inline hide"> |
21 | <div class="layui-input-inline"> | 50 | <div class="layui-input-inline"> |
22 | <select name="reslist_resStatus" id="reslist_resStatus" lay-filter="reslist_resStatus" lay-verify="required"> | 51 | <select name="reslist_resStatus" id="reslist_resStatus" lay-filter="reslist_resStatus" lay-verify="required"> |
23 | <option value="">=资源健康状态=</option> | 52 | <option value="">=资源健康状态=</option> |
@@ -27,14 +56,14 @@ | @@ -27,14 +56,14 @@ | ||
27 | </select> | 56 | </select> |
28 | </div> | 57 | </div> |
29 | </div> | 58 | </div> |
30 | - <div class="layui-inline"> | 59 | + <div class="layui-inline hide"> |
31 | <div class="layui-input-inline"> | 60 | <div class="layui-input-inline"> |
32 | <select name="label" id="reslist_resListBizTypes" lay-filter="reslist_resListBizTypes" lay-search> | 61 | <select name="label" id="reslist_resListBizTypes" lay-filter="reslist_resListBizTypes" lay-search> |
33 | <option value="">=选择业务=</option> | 62 | <option value="">=选择业务=</option> |
34 | </select> | 63 | </select> |
35 | </div> | 64 | </div> |
36 | </div> | 65 | </div> |
37 | - <div class="layui-inline"> | 66 | + <div class="layui-inline hide"> |
38 | <div class="layui-input-inline"> | 67 | <div class="layui-input-inline"> |
39 | <select name="state" lay-filter="state"> | 68 | <select name="state" lay-filter="state"> |
40 | <option value="">=资源监控状态=</option> | 69 | <option value="">=资源监控状态=</option> |
@@ -45,14 +74,14 @@ | @@ -45,14 +74,14 @@ | ||
45 | </select> | 74 | </select> |
46 | </div> | 75 | </div> |
47 | </div> | 76 | </div> |
48 | - <div class="layui-inline"> | 77 | + <div class="layui-inline hide"> |
49 | <div class="layui-input-inline"> | 78 | <div class="layui-input-inline"> |
50 | <select name="provider" id="reslist_provider" lay-filter="reslist_provider" lay-search> | 79 | <select name="provider" id="reslist_provider" lay-filter="reslist_provider" lay-search> |
51 | <option value="">=选择厂商=</option> | 80 | <option value="">=选择厂商=</option> |
52 | </select> | 81 | </select> |
53 | </div> | 82 | </div> |
54 | </div> | 83 | </div> |
55 | - <div class="layui-inline"> | 84 | + <div class="layui-inline hide"> |
56 | <div class="layui-input-inline"> | 85 | <div class="layui-input-inline"> |
57 | <select name="collectionState" lay-filter="resManageCollectionState"> | 86 | <select name="collectionState" lay-filter="resManageCollectionState"> |
58 | <option value="">=任务绑定状态=</option> | 87 | <option value="">=任务绑定状态=</option> |
@@ -61,14 +90,14 @@ | @@ -61,14 +90,14 @@ | ||
61 | </select> | 90 | </select> |
62 | </div> | 91 | </div> |
63 | </div> | 92 | </div> |
64 | - <div class="layui-inline"> | 93 | + <div class="layui-inline hide"> |
65 | <div class="layui-input-inline"> | 94 | <div class="layui-input-inline"> |
66 | <select id="reslist_os" lay-filter="reslist_os" lay-search> | 95 | <select id="reslist_os" lay-filter="reslist_os" lay-search> |
67 | <option value="">=选择系统=</option> | 96 | <option value="">=选择系统=</option> |
68 | </select> | 97 | </select> |
69 | </div> | 98 | </div> |
70 | </div> | 99 | </div> |
71 | - <div class="layui-inline"> | 100 | + <div class="layui-inline hide"> |
72 | <div class="layui-input-inline"> | 101 | <div class="layui-input-inline"> |
73 | <select id="collProtocol" name="collProtocol" lay-filter="collProtocol"> | 102 | <select id="collProtocol" name="collProtocol" lay-filter="collProtocol"> |
74 | <option value="">=采集协议=</option> | 103 | <option value="">=采集协议=</option> |
@@ -6,7 +6,7 @@ | @@ -6,7 +6,7 @@ | ||
6 | <div class="layui-input-block" style="margin-left: 0px"> | 6 | <div class="layui-input-block" style="margin-left: 0px"> |
7 | <input type="checkbox" lay-filter="type" value="user" name="type" title="用户"> | 7 | <input type="checkbox" lay-filter="type" value="user" name="type" title="用户"> |
8 | <input type="checkbox" lay-filter="type" value="org" name="type" title="部门"> | 8 | <input type="checkbox" lay-filter="type" value="org" name="type" title="部门"> |
9 | - <input type="checkbox" lay-filter="type" value="group" name="type" title="组"> | 9 | +<!-- <input type="checkbox" lay-filter="type" value="group" name="type" title="组">--> |
10 | </div> | 10 | </div> |
11 | </div> | 11 | </div> |
12 | <div class="layui-form-item userDiv hide"> | 12 | <div class="layui-form-item userDiv hide"> |
1 | // 业务类型管理 | 1 | // 业务类型管理 |
2 | -layui.define(['table', 'form', 'admin', 'layer', 'laytpl', 'common', 'view', 'sessions', 'commonDetail', 'treeTable', 'xmSelect', 'userlist', 'reslist'], function (exports) { | 2 | +layui.define(['table', 'form', 'admin', 'layer', 'laytpl', 'common', 'view', 'sessions', 'commonDetail', 'treeTable', 'xmSelect', 'userlist', 'reslist', 'tree'], function (exports) { |
3 | var $ = layui.$; | 3 | var $ = layui.$; |
4 | var form = layui.form; | 4 | var form = layui.form; |
5 | var layer = layui.layer; | 5 | var layer = layui.layer; |
@@ -16,6 +16,7 @@ layui.define(['table', 'form', 'admin', 'layer', 'laytpl', 'common', 'view', 'se | @@ -16,6 +16,7 @@ layui.define(['table', 'form', 'admin', 'layer', 'laytpl', 'common', 'view', 'se | ||
16 | var busTypeTable; | 16 | var busTypeTable; |
17 | // 对外暴露的接口 | 17 | // 对外暴露的接口 |
18 | exports('bustype', function (data) { | 18 | exports('bustype', function (data) { |
19 | + var tree = layui.tree; | ||
19 | var sessions = layui.sessions; | 20 | var sessions = layui.sessions; |
20 | var accessToken = sessions.getToken()['access_token']; | 21 | var accessToken = sessions.getToken()['access_token']; |
21 | 22 | ||
@@ -31,13 +32,91 @@ layui.define(['table', 'form', 'admin', 'layer', 'laytpl', 'common', 'view', 'se | @@ -31,13 +32,91 @@ layui.define(['table', 'form', 'admin', 'layer', 'laytpl', 'common', 'view', 'se | ||
31 | var dataBusType=[]; | 32 | var dataBusType=[]; |
32 | initShowType(); | 33 | initShowType(); |
33 | 34 | ||
35 | + // 业务树 | ||
36 | + $.ajax({ | ||
37 | + url: common.domainName + "/log-access/v1/lm2_logjoin_dirs/queryTreeList?access_token="+accessToken, | ||
38 | + method:"get", | ||
39 | + success(res){ | ||
40 | + if (res.code==200){ | ||
41 | + res.data.map(item=>{ | ||
42 | + item.checked = false | ||
43 | + }) | ||
44 | + let option = handleTree(res.data, 'id', 'pId','children','name'); | ||
45 | + tree.render({ | ||
46 | + elem: '#resmanagetree', | ||
47 | + id:"resmanagetree", | ||
48 | + showLine: false, | ||
49 | + data: option, | ||
50 | + showCheckbox: true, | ||
51 | + }) | ||
52 | + } | ||
53 | + } | ||
54 | + }) | ||
55 | + | ||
56 | + /** | ||
57 | + * 构造树型结构数据 | ||
58 | + * zhangtianqi | ||
59 | + * @param {*} data 数据源 | ||
60 | + * @param {*} id id字段 默认 'id' | ||
61 | + * @param {*} parentId 父节点字段 默认 'parentId' | ||
62 | + * @param {*} children 孩子节点字段 默认 'children' | ||
63 | + */ | ||
64 | + function handleTree(data, id, parentId, children, title) { | ||
65 | + let config = { | ||
66 | + id: id || 'id', | ||
67 | + parentId: parentId || 'parentId', | ||
68 | + childrenList: children || 'children', | ||
69 | + title: title || 'title' | ||
70 | + }; | ||
71 | + | ||
72 | + var childrenListMap = {}; | ||
73 | + var nodeIds = {}; | ||
74 | + var tree = []; | ||
75 | + | ||
76 | + for (let d of data) { | ||
77 | + let parentId = d[config.parentId]; | ||
78 | + let title = d[config.title] | ||
79 | + if (childrenListMap[parentId] == null) { | ||
80 | + childrenListMap[parentId] = []; | ||
81 | + } | ||
82 | + d.title = title; | ||
83 | + nodeIds[d[config.id]] = d; | ||
84 | + childrenListMap[parentId].push(d); | ||
85 | + } | ||
86 | + | ||
87 | + for (let d of data) { | ||
88 | + let parentId = d[config.parentId]; | ||
89 | + let title = d[config.title] | ||
90 | + d.title = title; | ||
91 | + if (nodeIds[parentId] == null) { | ||
92 | + tree.push(d); | ||
93 | + } | ||
94 | + } | ||
95 | + | ||
96 | + for (let t of tree) { | ||
97 | + adaptToChildrenList(t); | ||
98 | + } | ||
99 | + | ||
100 | + function adaptToChildrenList(o) { | ||
101 | + if (childrenListMap[o[config.id]] !== null) { | ||
102 | + o[config.childrenList] = childrenListMap[o[config.id]]; | ||
103 | + } | ||
104 | + if (o[config.childrenList]) { | ||
105 | + for (let c of o[config.childrenList]) { | ||
106 | + adaptToChildrenList(c); | ||
107 | + } | ||
108 | + } | ||
109 | + } | ||
110 | + return tree; | ||
111 | + }; | ||
112 | + | ||
34 | // 查询条件 | 113 | // 查询条件 |
35 | var conditions = {busTypeName: ''}; | 114 | var conditions = {busTypeName: ''}; |
36 | // 加载遮罩 | 115 | // 加载遮罩 |
37 | var loading; | 116 | var loading; |
38 | var checkList = common.checkPermission(accessToken); | 117 | var checkList = common.checkPermission(accessToken); |
39 | 118 | ||
40 | - loadBusTypeTable(); | 119 | + // loadBusTypeTable(); |
41 | // 查询条件框回车查询事件 | 120 | // 查询条件框回车查询事件 |
42 | $('#condition-bustype-name').keydown(function (e) { | 121 | $('#condition-bustype-name').keydown(function (e) { |
43 | if (e.keyCode === 13) { | 122 | if (e.keyCode === 13) { |
@@ -914,7 +993,7 @@ layui.define(['table', 'form', 'admin', 'layer', 'laytpl', 'common', 'view', 'se | @@ -914,7 +993,7 @@ layui.define(['table', 'form', 'admin', 'layer', 'laytpl', 'common', 'view', 'se | ||
914 | } | 993 | } |
915 | //获取选中的数据 | 994 | //获取选中的数据 |
916 | function getCheckData() { | 995 | function getCheckData() { |
917 | - if(mode){ | 996 | + /*if(mode){ |
918 | //获取改变的值 | 997 | //获取改变的值 |
919 | var str=''; | 998 | var str=''; |
920 | var $tr=$('#bustype-table').next().find('tbody tr'); | 999 | var $tr=$('#bustype-table').next().find('tbody tr'); |
@@ -931,8 +1010,33 @@ layui.define(['table', 'form', 'admin', 'layer', 'laytpl', 'common', 'view', 'se | @@ -931,8 +1010,33 @@ layui.define(['table', 'form', 'admin', 'layer', 'laytpl', 'common', 'view', 'se | ||
931 | return str; | 1010 | return str; |
932 | }else{ | 1011 | }else{ |
933 | return busTypeTable.checkStatus(false); | 1012 | return busTypeTable.checkStatus(false); |
934 | - } | 1013 | + }*/ |
1014 | + | ||
1015 | + var data = tree.getChecked('resmanagetree'); | ||
1016 | + var nodeIds = new Array(); | ||
1017 | + nodeIds = getCheckedId(data) | ||
1018 | + return nodeIds; | ||
1019 | + } | ||
935 | 1020 | ||
1021 | + //获取所有选中的节点id | ||
1022 | + function getCheckedId(data) { | ||
1023 | + var id = ""; | ||
1024 | + $.each(data, function (index, item) { | ||
1025 | + if (id != "") { | ||
1026 | + id = id + "," + item.id; | ||
1027 | + } | ||
1028 | + else { | ||
1029 | + id = item.id; | ||
1030 | + } | ||
1031 | + //item 没有children属性 | ||
1032 | + if (item.children != null) { | ||
1033 | + var i = getCheckedId(item.children); | ||
1034 | + if (i != "") { | ||
1035 | + id = id + "," + i; | ||
1036 | + } | ||
1037 | + } | ||
1038 | + }); | ||
1039 | + return id; | ||
936 | } | 1040 | } |
937 | 1041 | ||
938 | return {getData: getCheckData}; | 1042 | return {getData: getCheckData}; |
@@ -4,7 +4,7 @@ | @@ -4,7 +4,7 @@ | ||
4 | <div class="main"> | 4 | <div class="main"> |
5 | <div class="layui-card"> | 5 | <div class="layui-card"> |
6 | <div class="layui-card-header"> | 6 | <div class="layui-card-header"> |
7 | - <div class="layui-status"> | 7 | + <div class="layui-status hide"> |
8 | <form class="layui-card-header layuiadmin-card-header-auto layui-form" lay-filter="bustype-query-form"> | 8 | <form class="layui-card-header layuiadmin-card-header-auto layui-form" lay-filter="bustype-query-form"> |
9 | <div class="layui-form-item"> | 9 | <div class="layui-form-item"> |
10 | <div class="layui-inline"> | 10 | <div class="layui-inline"> |
@@ -22,7 +22,7 @@ | @@ -22,7 +22,7 @@ | ||
22 | </div> | 22 | </div> |
23 | </div> | 23 | </div> |
24 | <div class="layui-card-body"> | 24 | <div class="layui-card-body"> |
25 | - <div class="warn-btns"> | 25 | + <div class="warn-btns hide"> |
26 | <button class="layui-btn layui-btn-sm layui-btn-normal" id="bustype-create"> | 26 | <button class="layui-btn layui-btn-sm layui-btn-normal" id="bustype-create"> |
27 | <i class="layui-icon"></i>新增 | 27 | <i class="layui-icon"></i>新增 |
28 | </button> | 28 | </button> |
@@ -37,7 +37,8 @@ | @@ -37,7 +37,8 @@ | ||
37 | </button> | 37 | </button> |
38 | <span class="auto-flush" id="span-bustype-total">共 0 个业务</span> | 38 | <span class="auto-flush" id="span-bustype-total">共 0 个业务</span> |
39 | </div> | 39 | </div> |
40 | - <table id="bustype-table" lay-filter="bustypetable"></table> | 40 | + <table id="bustype-table" class="hide" lay-filter="bustypetable"></table> |
41 | + <div id="resmanagetree" class="demo-tree demo-tree-box"></div> | ||
41 | </div> | 42 | </div> |
42 | </div> | 43 | </div> |
43 | </div> | 44 | </div> |
-
Please register or login to post a comment