Authored by XuHaoJie

通用-订阅管理优化-添加业务系统和资源类型订阅

@@ -251,9 +251,11 @@ layui.define(['table', 'form', 'admin', 'layer', 'common','sessions'], function @@ -251,9 +251,11 @@ layui.define(['table', 'form', 'admin', 'layer', 'common','sessions'], function
251 return '<div class="small-icon small-icon-msg"></div>' 251 return '<div class="small-icon small-icon-msg"></div>'
252 break; 252 break;
253 } 253 }
254 - }}  
255 - , {field: 'alarmTempTotal', title: '订阅对象', align: 'center', sort: true, width:120,  
256 - templet:function (d){ 254 + }
  255 + }
  256 + , {
  257 + field: 'alarmTempTotal', title: '订阅对象', align: 'center', sort: true, minWidth: 140,
  258 + templet: function (d) {
257 // if(d.useTotal != '0'){ 259 // if(d.useTotal != '0'){
258 // return `<div><span data-id="${d.subId}" class="layui-table-link view-alarmsubscribe-target">${d.useTotal}</span></div>`; 260 // return `<div><span data-id="${d.subId}" class="layui-table-link view-alarmsubscribe-target">${d.useTotal}</span></div>`;
259 // }else{ 261 // }else{
@@ -263,7 +265,9 @@ layui.define(['table', 'form', 'admin', 'layer', 'common','sessions'], function @@ -263,7 +265,9 @@ layui.define(['table', 'form', 'admin', 'layer', 'common','sessions'], function
263 return `<div> 265 return `<div>
264 <!--<span data-id="${d.subId}" class="layui-table-link view-alarmsubscribe-target">${d.useTotal}</span> / --> 266 <!--<span data-id="${d.subId}" class="layui-table-link view-alarmsubscribe-target">${d.useTotal}</span> / -->
265 <span data-id="${d.subId}" class="layui-table-link view-alarmsubscribe-resource" lay-tips="资源订阅">${d.resSubTotal}</span> / 267 <span data-id="${d.subId}" class="layui-table-link view-alarmsubscribe-resource" lay-tips="资源订阅">${d.resSubTotal}</span> /
266 - <span data-id="${d.subId}" class="layui-table-link view-alarmsubscribe-kpi" lay-tips="指标订阅">${d.kpiSubTotal}</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-resType" lay-tips="资源类型">${d.resTypeSubTotal}</span> /
  270 + <span data-id="${d.subId}" class="layui-table-link view-alarmsubscribe-busId" lay-tips="业务系统">${d.busSubTotal}</span>
267 </div>`; 271 </div>`;
268 272
269 }} 273 }}
@@ -304,9 +308,11 @@ layui.define(['table', 'form', 'admin', 'layer', 'common','sessions'], function @@ -304,9 +308,11 @@ layui.define(['table', 'form', 'admin', 'layer', 'common','sessions'], function
304 } 308 }
305 , {title: '操作', align: 'center',width:200,fixed: 'right', toolbar: 309 , {title: '操作', align: 'center',width:200,fixed: 'right', toolbar:
306 '<div>' + 310 '<div>' +
307 - '<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>'+  
308 - '<button data-id="{{d.subId}}" lay-tips="资源订阅" type="button" class="layui-btn layui-btn-xs layui-btn-normal alarmsubscribe-resource-btn"><i class="layui-icon layui-icon-star"></i></button>'+  
309 - '<button data-id="{{d.subId}}" lay-tips="指标订阅" type="button" class="layui-btn layui-btn-xs layui-btn-normal alarmsubscribe-kpi-btn"><i class="layui-icon layui-icon-star-fill"></i></button>'+ 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 alarmsubscribe-resource-btn"><i class="layui-icon layui-icon-star"></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="layui-icon layui-icon-star-fill"></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="layui-icon layui-icon-star-fill"></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="layui-icon layui-icon-star-fill"></i></button>' +
310 '</div>' 316 '</div>'
311 } 317 }
312 ]], 318 ]],
@@ -475,7 +481,8 @@ layui.define(['table', 'form', 'admin', 'layer', 'common','sessions'], function @@ -475,7 +481,8 @@ layui.define(['table', 'form', 'admin', 'layer', 'common','sessions'], function
475 ,data:{ 481 ,data:{
476 subId:subId, 482 subId:subId,
477 busId:busId, 483 busId:busId,
478 - resTypeCode:resTypeCode 484 + resTypeCode:resTypeCode,
  485 + keyword:$('#condition-resType-keyword').val()
479 } 486 }
480 ,done:function (res){ 487 ,done:function (res){
481 layer.closeAll('loading'); 488 layer.closeAll('loading');
@@ -613,6 +620,15 @@ layui.define(['table', 'form', 'admin', 'layer', 'common','sessions'], function @@ -613,6 +620,15 @@ layui.define(['table', 'form', 'admin', 'layer', 'common','sessions'], function
613 }); 620 });
614 } 621 }
615 }); 622 });
  623 +
  624 + //回车搜索
  625 + $('#condition-resType-keyword').keydown(function (e) {
  626 + if (e.keyCode === 13) {
  627 + var bus = xmSelect.get('#dyglResListBusType', true);
  628 + var resType = xmSelect.get('#dyglResListResType', true);
  629 + reloadTbody(bus.getValue('valueStr'),resType.getValue('valueStr'));
  630 + }
  631 + });
616 } 632 }
617 }); 633 });
618 634
@@ -658,7 +674,6 @@ layui.define(['table', 'form', 'admin', 'layer', 'common','sessions'], function @@ -658,7 +674,6 @@ layui.define(['table', 'form', 'admin', 'layer', 'common','sessions'], function
658 } 674 }
659 675
660 function reloadData(res) { 676 function reloadData(res) {
661 -  
662 var trs = ''; 677 var trs = '';
663 $.each(res.data,function (i,v){ 678 $.each(res.data,function (i,v){
664 trs += `<tr><td>${i+1}</td><td>${v.resName}</td><td>${v.ip}</td><td>${v.adminName}</td> 679 trs += `<tr><td>${i+1}</td><td>${v.resName}</td><td>${v.ip}</td><td>${v.adminName}</td>
@@ -668,6 +683,11 @@ layui.define(['table', 'form', 'admin', 'layer', 'common','sessions'], function @@ -668,6 +683,11 @@ layui.define(['table', 'form', 'admin', 'layer', 'common','sessions'], function
668 <form class="layui-form layui-card-header layuiadmin-card-header-auto" lay-filter="dyglTools-form"> 683 <form class="layui-form layui-card-header layuiadmin-card-header-auto" lay-filter="dyglTools-form">
669 <div class="layui-form-item"> 684 <div class="layui-form-item">
670 <div class="layui-inline"> 685 <div class="layui-inline">
  686 + <div class="layui-input-inline layui-input-inline--long">
  687 + <input type="text" id="condition-resType-keyword" placeholder="输入名称,回车搜索" autocomplete="off"
  688 + lay-tips="关键字检索包含: </br>IP地址</br>资源名称</br>负责人"
  689 + class="layui-input">
  690 + </div>
671 <div class="layui-input-inline layui-input-inline--long multi-query" id="dyglResListBusType"> 691 <div class="layui-input-inline layui-input-inline--long multi-query" id="dyglResListBusType">
672 </div> 692 </div>
673 <div class="layui-input-inline layui-input-inline--long multi-query" id="dyglResListResType"> 693 <div class="layui-input-inline layui-input-inline--long multi-query" id="dyglResListResType">
@@ -742,8 +762,8 @@ layui.define(['table', 'form', 'admin', 'layer', 'common','sessions'], function @@ -742,8 +762,8 @@ layui.define(['table', 'form', 'admin', 'layer', 'common','sessions'], function
742 reloadalarmsubscribeTable(); 762 reloadalarmsubscribeTable();
743 }); 763 });
744 $("#"+id).parent().parent().remove(); 764 $("#"+id).parent().parent().remove();
745 - }else{  
746 - layer.msg("删除失败,请与管理员联系",{icon:7,time:3000}); 765 + } else {
  766 + layer.msg("删除失败,请与管理员联系", {icon: 7, time: 3000});
747 } 767 }
748 } 768 }
749 }); 769 });
@@ -752,16 +772,37 @@ layui.define(['table', 'form', 'admin', 'layer', 'common','sessions'], function @@ -752,16 +772,37 @@ layui.define(['table', 'form', 'admin', 'layer', 'common','sessions'], function
752 } 772 }
753 }); 773 });
754 }); 774 });
755 - 775 + //查看资源类型订阅列表
  776 + $(".view-alarmsubscribe-resType").on("click", function () {
  777 + var subId = $(this).data("id");
  778 + common.openWin("template/res/typeSubscribeList", "选择资源类型", {
  779 + subId: subId,
  780 + type: 0
  781 + }, ["返回"], function () {
  782 + reloadalarmsubscribeTable();
  783 + return true;
  784 + });
  785 + });
  786 + //查看业务类型订阅列表
  787 + $(".view-alarmsubscribe-busId").on("click", function () {
  788 + var subId = $(this).data("id");
  789 + common.openWin("template/res/typeSubscribeList", "选择业务系统", {
  790 + subId: subId,
  791 + type: 1
  792 + }, ["返回"], function () {
  793 + reloadalarmsubscribeTable();
  794 + return true;
  795 + });
  796 + });
756 //资源订阅 797 //资源订阅
757 - $(".alarmsubscribe-resource-btn").on("click",function (){ 798 + $(".alarmsubscribe-resource-btn").on("click", function () {
758 if ($.inArray('back:alarmsubscribe:resource', checkList) == -1) { 799 if ($.inArray('back:alarmsubscribe:resource', checkList) == -1) {
759 layer.msg('暂无权限!', {icon: 7, time: 3000}); 800 layer.msg('暂无权限!', {icon: 7, time: 3000});
760 return; 801 return;
761 } 802 }
762 var subId = $(this).data("id"); 803 var subId = $(this).data("id");
763 - var oldData = getResOrKpiBySubId(subId,'res');  
764 - oldData = $.map(oldData,function (item) { 804 + var oldData = getResOrKpiBySubId(subId, 'res');
  805 + oldData = $.map(oldData, function (item) {
765 return item.resId; 806 return item.resId;
766 }) 807 })
767 common.openWin("template/res/reslist","选择资源",{oldData:oldData},["选择"], function () { 808 common.openWin("template/res/reslist","选择资源",{oldData:oldData},["选择"], function () {
@@ -873,17 +914,65 @@ layui.define(['table', 'form', 'admin', 'layer', 'common','sessions'], function @@ -873,17 +914,65 @@ layui.define(['table', 'form', 'admin', 'layer', 'common','sessions'], function
873 return true; 914 return true;
874 }); 915 });
875 }); 916 });
  917 + //资源类型订阅
  918 + $(".alarmsubscribe-resType-btn").on("click", function () {
  919 + var subId = $(this).data("id");
  920 + var list = getResTypeOrBusId(subId, 0);
  921 + //回填数据
  922 + common.openWin("baseconfig/resourcetype/index", "选择资源类型", {"resTypes": list,"showType":0}, ["选择"], function () {
  923 + //找到选择的资源类型 并且订阅
  924 + var resourcetype = layui.resourcetype({"resTypes": list});
  925 + var data = resourcetype.getResTypeChecks();
  926 + insertResTypeOrBusId(data, 0, subId);
  927 + });
  928 + });
  929 + //业务类型订阅
  930 + $(".alarmsubscribe-busId-btn").on("click", function () {
  931 + var subId = $(this).data("id");
  932 + var list = getResTypeOrBusId(subId, 1);
  933 + //回填数据
  934 + common.openWin("baseconfig/bustype/index", "选择业务类型", {busIds: list}, ["选择"], function () {
  935 + //找到选择的所有业务 并且订阅
  936 + var bustype = layui.bustype({"busIds": list});
  937 + var data = bustype.getData();
  938 + insertResTypeOrBusId(data, 1, subId);
  939 + });
  940 + });
876 } 941 }
877 }); 942 });
878 943
  944 + //添加或修改 资源类型订阅或业务订阅
  945 + function insertResTypeOrBusId(data, type, subId, id) {
  946 + let typeCode = data.map(item => item.resTypeCode ? item.resTypeCode : item.busId).toString();
  947 + let typeSubscribe = {
  948 + id: id,
  949 + subId: subId,
  950 + subType: type,
  951 + typeCode: typeCode
  952 + };
  953 + admin.req({
  954 + url: common.domainName + '/api-web/bTypeSubscribe/insertOrChange?access_token=' + accessToken,
  955 + type: 'post',
  956 + contentType: 'application/json',
  957 + data: JSON.stringify(typeSubscribe),
  958 + success: function (response) {
  959 + if (response.success) {
  960 + layer.closeAll();
  961 + layer.msg(!id ? '添加成功' : '修改成功', {icon: 1, time: 3000});
  962 + reloadalarmsubscribeTable();
  963 + }
  964 + },
  965 + });
  966 + }
  967 +
879 //根据订阅id获取订阅的资源或指标 968 //根据订阅id获取订阅的资源或指标
880 - function getResOrKpiBySubId(subId,type) { 969 + function getResOrKpiBySubId(subId, type) {
881 var oldData = []; 970 var oldData = [];
882 var url = ''; 971 var url = '';
883 if (type == 'res') { 972 if (type == 'res') {
884 - url = common.domainName+'/api-web/manage/resource/getResIdsBySubId?subId=' + subId; 973 + url = common.domainName + '/api-web/manage/resource/getResIdsBySubId?subId=' + subId;
885 } else if (type == 'kpi') { 974 } else if (type == 'kpi') {
886 - url = common.domainName+'/api-web/alarmsubscribe/getResAndKpiBySubId?subId=' + subId; 975 + url = common.domainName + '/api-web/alarmsubscribe/getResAndKpiBySubId?subId=' + subId;
887 } 976 }
888 admin.req({ 977 admin.req({
889 url: url, 978 url: url,
@@ -896,13 +985,28 @@ layui.define(['table', 'form', 'admin', 'layer', 'common','sessions'], function @@ -896,13 +985,28 @@ layui.define(['table', 'form', 'admin', 'layer', 'common','sessions'], function
896 } 985 }
897 986
898 //打开告警订阅窗口 987 //打开告警订阅窗口
899 - function openAlarmsubscribeForm(id){  
900 - var title = id?"编辑告警订阅":"新增告警订阅";  
901 - title = `<a class="layui-icon layui-icon-edit win_title_icon"></a>${title}`;  
902 - common.openWin('baseconfig/alarmsubscribe/add',title, {id:id},['保存','取消'],function () { 988 + function openAlarmsubscribeForm(id) {
  989 + var title = id ? "编辑告警订阅" : "新增告警订阅";
  990 + title = `<a class="layui-icon layui-icon-edit win_title_icon"></a>${title}`;
  991 + common.openWin('baseconfig/alarmsubscribe/add', title, {id: id}, ['保存', '取消'], function () {
903 $("#alarmsubscribe-form-save-id").trigger("click"); 992 $("#alarmsubscribe-form-save-id").trigger("click");
904 return false; 993 return false;
905 - },null,['60%','80%'],null,null); 994 + }, null, ['60%', '80%'], null, null);
  995 + }
  996 +
  997 + //根据busId获取业务类型或资源的订阅
  998 + function getResTypeOrBusId(subId, type) {
  999 + let list = [];
  1000 + admin.req({
  1001 + url: common.domainName + '/api-web/bTypeSubscribe/subscribeList?subId=' + subId + '&subType=' + type,
  1002 + async: false,
  1003 + success: function (response) {
  1004 + if (response.success) {
  1005 + list = response.data.map(item => item.typeCode);
  1006 + }
  1007 + },
  1008 + });
  1009 + return list;
906 } 1010 }
907 1011
908 1012
@@ -910,9 +1014,9 @@ layui.define(['table', 'form', 'admin', 'layer', 'common','sessions'], function @@ -910,9 +1014,9 @@ layui.define(['table', 'form', 'admin', 'layer', 'common','sessions'], function
910 function reloadalarmsubscribeTable() { 1014 function reloadalarmsubscribeTable() {
911 var conditions = form.val('alarmsubscribe-form'); 1015 var conditions = form.val('alarmsubscribe-form');
912 alarmsubscribeTable.reload({ 1016 alarmsubscribeTable.reload({
913 - where:{  
914 - access_token:accessToken,  
915 - policyId:policyId, 1017 + where: {
  1018 + access_token: accessToken,
  1019 + policyId: policyId,
916 subName: conditions.subName, 1020 subName: conditions.subName,
917 subType: subTypeSelect.getValue('valueStr'), 1021 subType: subTypeSelect.getValue('valueStr'),
918 subWay: noticeWaySelect.getValue("valueStr"), 1022 subWay: noticeWaySelect.getValue("valueStr"),
@@ -1019,10 +1123,9 @@ layui.define(['table', 'form', 'admin', 'layer', 'common','sessions'], function @@ -1019,10 +1123,9 @@ layui.define(['table', 'form', 'admin', 'layer', 'common','sessions'], function
1019 } 1123 }
1020 } 1124 }
1021 }); 1125 });
1022 -  
1023 //获取选中的数据 1126 //获取选中的数据
1024 function getCheckSubscribeData() { 1127 function getCheckSubscribeData() {
1025 - return table.checkStatus('alarmsubscribeTable').data; 1128 + return table.checkStatus('alarmsubscTable').data;
1026 } 1129 }
1027 1130
1028 return { getSubscribeData: getCheckSubscribeData,reloadsubscribe:reloadalarmsubscribeTable}; 1131 return { getSubscribeData: getCheckSubscribeData,reloadsubscribe:reloadalarmsubscribeTable};
@@ -26,6 +26,7 @@ layui.define(['table', 'form', 'admin', 'layer', 'laytpl', 'common', 'view', 'se @@ -26,6 +26,7 @@ layui.define(['table', 'form', 'admin', 'layer', 'laytpl', 'common', 'view', 'se
26 } 26 }
27 var mode = (data && data.mode) ? data.mode : ''; 27 var mode = (data && data.mode) ? data.mode : '';
28 var username = (data && data.username) ? data.username : ''; 28 var username = (data && data.username) ? data.username : '';
  29 + let busIds = data.busIds ? data.busIds : [];
29 //展示类型 30 //展示类型
30 var showTypeList=[]; 31 var showTypeList=[];
31 var dataBusType=[]; 32 var dataBusType=[];
@@ -257,7 +258,11 @@ layui.define(['table', 'form', 'admin', 'layer', 'laytpl', 'common', 'view', 'se @@ -257,7 +258,11 @@ layui.define(['table', 'form', 'admin', 'layer', 'laytpl', 'common', 'view', 'se
257 }) 258 })
258 } 259 }
259 } 260 }
260 - 261 + //回填数据
  262 + if(data && data.busIds){
  263 + //第一次进来回填数据
  264 + busTypeTable.setChecked(busIds);
  265 + }
261 // 点击编号编辑事件 266 // 点击编号编辑事件
262 $('.btn-bustype-edit').click(function () { 267 $('.btn-bustype-edit').click(function () {
263 if ($.inArray('back:bustype:update', checkList) == -1) { 268 if ($.inArray('back:bustype:update', checkList) == -1) {
@@ -17,23 +17,31 @@ layui.define(['form', 'admin', 'layer', 'laytpl', 'common', 'view', 'sessions', @@ -17,23 +17,31 @@ layui.define(['form', 'admin', 'layer', 'laytpl', 'common', 'view', 'sessions',
17 var sessions = layui.sessions; 17 var sessions = layui.sessions;
18 var accessToken = sessions.getToken()['access_token']; 18 var accessToken = sessions.getToken()['access_token'];
19 var router = layui.router(); 19 var router = layui.router();
20 - var resource_view='';  
21 - var biz_view='';  
22 - var collTypeSelect=''; 20 + var resource_view = '';
  21 + var biz_view = '';
  22 + var collTypeSelect = '';
  23 + //传递参数
  24 + let resTypes = data && data.resTypes ? data.resTypes : [];
  25 + let showType = data && data.showType==0 ? data.showType : 1;
  26 + if(showType == 0){
  27 + $('#resourceType-forbidden-type option[value="2"]').removeAttr("selected");
  28 + $('#resourceType-forbidden-type option[value="0"]').attr("selected", true);
  29 + form.render();
  30 + }
23 // 查询条件 31 // 查询条件
24 - var conditions = {resTypeName: '',userAccount:''} 32 + var conditions = {resTypeName: '', userAccount: ''}
25 // 加载遮罩 33 // 加载遮罩
26 var loading; 34 var loading;
27 //获取权限列表 35 //获取权限列表
28 var checkList = common.checkPermission(accessToken); 36 var checkList = common.checkPermission(accessToken);
29 - var ddicCollType=[]; 37 + var ddicCollType = [];
30 //保存子节点 38 //保存子节点
31 - var arr=[];  
32 - var fun=undefined; 39 + var arr = [];
  40 + var fun = undefined;
33 //展示类型 41 //展示类型
34 var showTypeList=[]; 42 var showTypeList=[];
35 //展示类型是否展示 获取页面参数 43 //展示类型是否展示 获取页面参数
36 - var sign=typeof (data.sign) != 'undefined'?data.sign:true; 44 + var sign=data && typeof (data.sign) != 'undefined'?data.sign:true;
37 //获取连接 45 //获取连接
38 var loginName = localStorage.getItem('lgn'); 46 var loginName = localStorage.getItem('lgn');
39 if (loginName != 'admin') { 47 if (loginName != 'admin') {
@@ -788,6 +796,9 @@ layui.define(['form', 'admin', 'layer', 'laytpl', 'common', 'view', 'sessions', @@ -788,6 +796,9 @@ layui.define(['form', 'admin', 'layer', 'laytpl', 'common', 'view', 'sessions',
788 }; 796 };
789 //设置禁用或启用 797 //设置禁用或启用
790 form.on('switch(switchResourceTypeForbidden)', function(obj){ 798 form.on('switch(switchResourceTypeForbidden)', function(obj){
  799 + if(data && showType == 0){//点击事件不生效
  800 + return ;
  801 + }
791 var resTypeCode = obj.elem.id; 802 var resTypeCode = obj.elem.id;
792 //找到当前父节点的行 803 //找到当前父节点的行
793 var $res = $('.ew-tree-table').find('table tbody tr[data-id="' + resTypeCode + '"]').eq(0); 804 var $res = $('.ew-tree-table').find('table tbody tr[data-id="' + resTypeCode + '"]').eq(0);
@@ -969,7 +980,7 @@ layui.define(['form', 'admin', 'layer', 'laytpl', 'common', 'view', 'sessions', @@ -969,7 +980,7 @@ layui.define(['form', 'admin', 'layer', 'laytpl', 'common', 'view', 'sessions',
969 function loadResTypeTable() { 980 function loadResTypeTable() {
970 loading = layer.load(2) 981 loading = layer.load(2)
971 conditions.resTypeName = $('#condition-restype-name').val(); 982 conditions.resTypeName = $('#condition-restype-name').val();
972 - conditions.userAccount = data.username && data.username[0] ? data.username[0] : ''; 983 + conditions.userAccount = data && data.username && data.username[0] ? data.username[0] : '';
973 admin.req({ 984 admin.req({
974 url: domainName + '/api-web/manage/restype/listAll' 985 url: domainName + '/api-web/manage/restype/listAll'
975 , data: conditions 986 , data: conditions
@@ -1148,19 +1159,32 @@ layui.define(['form', 'admin', 'layer', 'laytpl', 'common', 'view', 'sessions', @@ -1148,19 +1159,32 @@ layui.define(['form', 'admin', 'layer', 'laytpl', 'common', 'view', 'sessions',
1148 }); 1159 });
1149 //回填数据 1160 //回填数据
1150 if (data && data.username) { 1161 if (data && data.username) {
1151 - if (data.username.length == 1) {  
1152 - $.ajax({  
1153 - type: "get",  
1154 - url: domainName + "/api-web/manage/restype/getResTypeByUser?access_token=" + accessToken + "&username=" + data.username[0],  
1155 - success: function (res) {  
1156 - if (res && res.success) {  
1157 - var resTypeData = res.data;  
1158 - restypeTable.setChecked(resTypeData.map(item => item.resType))  
1159 - }  
1160 - },  
1161 - }) 1162 + if (data.username.length == 1) {
  1163 + $.ajax({
  1164 + type: "get",
  1165 + url: domainName + "/api-web/manage/restype/getResTypeByUser?access_token=" + accessToken + "&username=" + data.username[0],
  1166 + success: function (res) {
  1167 + if (res && res.success) {
  1168 + var resTypeData = res.data;
  1169 + restypeTable.setChecked(resTypeData.map(item => item.resType))
  1170 + }
  1171 + },
  1172 + })
  1173 + }
  1174 + }
  1175 + //回填数据
  1176 + if(data && data.resTypes){
  1177 + //第一次进来回填数据
  1178 + restypeTable.setChecked(resTypes);
  1179 + }
  1180 + //启用禁用不可点
  1181 + if(data && showType == 0){
  1182 + //隐藏下拉框
  1183 + $('.layui-inline-resourceType-forbidden').hide();
  1184 + $.each($('.main td[data-field="forbidden"]'),function (i,v) {
  1185 + $(this).find('.layui-unselect').addClass("layui-notClick");//设为不可点击
  1186 + });
1162 } 1187 }
1163 - }  
1164 //默认全部展开 1188 //默认全部展开
1165 restypeTable.expandAll(); 1189 restypeTable.expandAll();
1166 // 删除按钮事件 1190 // 删除按钮事件
  1 +//资源指标列表
  2 +layui.define(['table', 'form', 'sessions', 'common'], function (exports) {
  3 + var $ = layui.$;
  4 + var form = layui.form;
  5 + var table = layui.table;
  6 + var common = layui.common;
  7 + var layer = layui.layer;
  8 + var admin = layui.admin;
  9 +
  10 + //对外暴露的接口
  11 + exports('typeSubscribeList', function (data) {
  12 + var sessions = layui.sessions;
  13 + var accessToken = sessions.getToken().access_token;
  14 + var subType = data.type ? data.type : 0;//默认为资源类型
  15 + var subId = data.subId ? data.subId : '';
  16 + //回车搜索
  17 + $('#type_subscribe_list_keyword').keydown(function (e) {
  18 + if (e.keyCode === 13) {
  19 + reloadTypeSubscribeTable();
  20 + }
  21 + });
  22 +
  23 + var cols = [];
  24 + if (subType) {//业务类型
  25 + cols = [[
  26 + {type: 'checkbox'},
  27 + {type: 'numbers', title: '序号', align: 'center'}
  28 + , {field: 'busTypeName', title: '业务名称', minWidth: 200, align: 'center'}
  29 + , {field: 'busTypeDesc', title: '业务备注', minWidth: 350, align: 'center'}
  30 + , {field: 'subName', title: '订阅名称', minWidth: 170, align: 'center'}
  31 + , {field: 'createTime', title: '订阅时间', minWidth: 150, align: 'center'}
  32 + , {
  33 + title: '操作', align: 'center', minWidth: 150,
  34 + templet: '<div><span data-subId="{{d.subId}}" data-id="{{d.id}}" data-typeCode="{{d.typeCode}}" class="layui-table-link typeSubscribe-btn-delete">删除</span>'
  35 + }
  36 + ]]
  37 + } else {//资源类型
  38 + cols = [[
  39 + {type: 'checkbox'},
  40 + {type: 'numbers', title: '序号', align: 'center'}
  41 + , {field: 'typeCode', title: '编码', minWidth: 400, align: 'center'}
  42 + , {field: 'resTypeName', title: '资源类型名称', minWidth: 140, align: 'center'}
  43 + , {field: 'resTypeDesc', title: '资源类型备注', minWidth: 200, align: 'center'}
  44 + , {field: 'subName', title: '订阅名称', minWidth: 140, align: 'center'}
  45 + , {field: 'createTime', title: '订阅时间', minWidth: 140, align: 'center'}
  46 + , {
  47 + title: '操作', align: 'center', minWidth: 150,
  48 + templet: '<div><span data-subId="{{d.subId}}" data-id="{{d.id}}" data-typeCode="{{d.typeCode}}" class="layui-table-link typeSubscribe-btn-delete">删除</span>'
  49 + }
  50 + ]]
  51 + }
  52 + //渲染表格
  53 + var typeSubscribeListable = table.render({
  54 + elem: '#type_subscribe_list_table'
  55 + , url: common.domainName + '/api-web/bTypeSubscribe/typeSubscribeList'
  56 + , where: {
  57 + access_token: accessToken,
  58 + keyword: $("#type_subscribe_list_keyword").val(),
  59 + subType: subType,
  60 + subId: subId
  61 + }
  62 + , height: 'full'
  63 + , cellMinWidth: 80
  64 + , page: {
  65 + layout: ['count', 'prev', 'page', 'next', 'limit', 'skip']
  66 + }
  67 + , cols: cols
  68 + , done: function () {
  69 + //删除
  70 + $(".typeSubscribe-btn-delete").on("click", function () {
  71 + var $this = $(this);
  72 + var id = $this.data('id');
  73 + var ids = new Array(id);
  74 + deleteTypeSubscribe(ids);
  75 + });
  76 + }
  77 + });
  78 +
  79 + //删除数据
  80 + function deleteTypeSubscribe(ids) {
  81 + layer.confirm('数据删除后将无法恢复,您确定要删除吗?', {
  82 + btn: ['确定', '取消'] //按钮
  83 + }, function () {
  84 + admin.req({
  85 + url: common.domainName + '/api-web/bTypeSubscribe/deleteTypeSubscribe?access_token=' + accessToken
  86 + , type: "POST"
  87 + , traditional: true
  88 + , dataType: "json"
  89 + , data: {ids: ids}
  90 + }).done(function (res) {
  91 + if (res.success) {
  92 + layer.msg('删除成功', {
  93 + offset: '15px'
  94 + , icon: 1
  95 + , time: 1000
  96 + }, function () {
  97 + reloadTypeSubscribeTable();
  98 + });
  99 + }
  100 + }).error(function (error) {
  101 + console.log(error);
  102 + });
  103 + });
  104 + }
  105 +
  106 + //删除
  107 + $("#typeSubscribe_delete").on("click", function () {
  108 + //获取选中数据
  109 + var li = getCheckKpiData();
  110 + deleteTypeSubscribe(li.map(item => item.id));
  111 + });
  112 +
  113 + //刷新表格
  114 + function reloadTypeSubscribeTable() {
  115 + typeSubscribeListable.reload({
  116 + where: {
  117 + keyword: $("#type_subscribe_list_keyword").val(),
  118 + subType: subType,
  119 + subId: subId,
  120 + access_token: accessToken
  121 + }
  122 + });
  123 + }
  124 +
  125 + //获取选中的数据
  126 + function getCheckKpiData() {
  127 + return table.checkStatus('type_subscribe_list_table').data;
  128 + }
  129 +
  130 + return {getData: getCheckKpiData};
  131 + });
  132 +});
@@ -7885,4 +7885,8 @@ form[lay-filter="activewarning-form"] .layui-inline { @@ -7885,4 +7885,8 @@ form[lay-filter="activewarning-form"] .layui-inline {
7885 } 7885 }
7886 .detail_menubox li{ 7886 .detail_menubox li{
7887 font-size: 12px !important; 7887 font-size: 12px !important;
  7888 +}
  7889 +.layui-notClick{
  7890 + pointer-events: none!important;
  7891 + cursor:not-allowed!important;
7888 } 7892 }
@@ -94,12 +94,23 @@ @@ -94,12 +94,23 @@
94 </div> 94 </div>
95 </div> 95 </div>
96 </script> 96 </script>
97 -  
98 -<script template lay-done="layui.data.sendParams(d.params)"></script> 97 +<textarea id="bustype_param_id" style="display: none;">{{d}}</textarea>
99 <script> 98 <script>
100 - layui.data.sendParams = function (params) {  
101 - layui.use('bustype', function (fn) {  
102 - fn(params);  
103 - });  
104 - };  
105 -</script>  
  99 + layui.use('bustype', function (fn) {
  100 + var $ = layui.$;
  101 + var param = $("#bustype_param_id").val();
  102 + if(param.indexOf('{{d') != -1){
  103 + fn();
  104 + }else{
  105 + fn(JSON.parse(param));
  106 + }
  107 + });
  108 +</script>
  109 +<!--<script template lay-done="layui.data.sendParams(d.params)"></script>-->
  110 +<!--<script>-->
  111 +<!-- layui.data.sendParams = function (params) {-->
  112 +<!-- layui.use('bustype', function (fn) {-->
  113 +<!-- fn(params);-->
  114 +<!-- });-->
  115 +<!-- };-->
  116 +<!--</script>-->
@@ -155,11 +155,26 @@ @@ -155,11 +155,26 @@
155 </button> 155 </button>
156 </div> 156 </div>
157 </script> 157 </script>
158 -<script template lay-done="layui.data.sendParams(d.params)"></script> 158 +<textarea id="resourcetype_param_id" style="display: none;">{{d}}</textarea>
159 <script> 159 <script>
160 - layui.data.sendParams = function (params) {  
161 - layui.use('resourcetype', function (fn) {  
162 - fn(params);  
163 - });  
164 - };  
165 -</script>  
  160 + layui.use('resourcetype', function (fn) {
  161 + var $ = layui.$;
  162 + var param = $("#resourcetype_param_id").val();
  163 + if(param.indexOf('{{d') != -1){
  164 + fn();
  165 + }else{
  166 + fn(JSON.parse(param));
  167 + }
  168 + });
  169 +</script>
  170 +
  171 +<!--<script template lay-done="layui.data.sendParams(d)"></script>-->
  172 +<!--<script>-->
  173 +<!-- layui.data.sendParams = function (d) {-->
  174 +<!-- console.log(d);-->
  175 +<!-- console.log(d.params);-->
  176 +<!-- layui.use('resourcetype', function (fn) {-->
  177 +<!-- fn(d.params);-->
  178 +<!-- });-->
  179 +<!-- };-->
  180 +<!--</script>-->
  1 +<title>资源类型订阅列表</title>
  2 +<article class="page-container">
  3 + <div class="page-panel">
  4 + <div class="main">
  5 + <div class="layui-card">
  6 + <div class="layui-card-header">
  7 + <div class="layui-status">
  8 + <form class="layui-form layui-card-header layuiadmin-card-header-auto" lay-filter="res-list-query-form">
  9 + <div class="layui-form-item">
  10 + <div class="layui-inline">
  11 + <div class="layui-input-inline layui-input-inline--long">
  12 + <input id="type_subscribe_list_keyword" type="text" placeholder="输入关键字,回车搜索" lay-tips='关键字检索包括:<br>名称</br>编码</br>备注' name="keyword" class="layui-input">
  13 + </div>
  14 + </div>
  15 + </div>
  16 + </form>
  17 + </div>
  18 + </div>
  19 + <div class="layui-card-body">
  20 + <div class="layui-btn-container">
  21 + <button class="layui-btn layui-btn-sm layui-btn-normal" id="typeSubscribe_delete">
  22 + <i class="layui-icon">&#xe640;</i>删除</button>
  23 + </div>
  24 + <table id="type_subscribe_list_table"></table>
  25 + </div>
  26 + </div>
  27 + </div>
  28 + </div>
  29 +</article>
  30 +
  31 +<textarea class="hide" id="typeSubscribeList-params">{{d}}</textarea>
  32 +<script>
  33 + var params = document.getElementById("typeSubscribeList-params").value;
  34 + layui.use('typeSubscribeList', function (fn) {
  35 + if (params.indexOf("{{d") !== -1) {
  36 + fn();
  37 + } else {
  38 + fn(JSON.parse(params));
  39 + }
  40 + });
  41 +
  42 +</script>