Authored by 王涛

Merge branch 'master-v32-xwx' into 'master'

告警模板绑定之后后修改状态为未同步



See merge request !690
@@ -9,7 +9,7 @@ layui.define(['table', 'form', 'admin', 'layer', 'common','sessions','xmSelect', @@ -9,7 +9,7 @@ layui.define(['table', 'form', 'admin', 'layer', 'common','sessions','xmSelect',
9 var xmSelect = layui.xmSelect; 9 var xmSelect = layui.xmSelect;
10 var treeTable = layui.treeTable; 10 var treeTable = layui.treeTable;
11 var domainName = common.domainName; 11 var domainName = common.domainName;
12 - 12 + var resListSelectIds = [];
13 //对外暴露的接口 13 //对外暴露的接口
14 exports('alarmpolicyIndex', function (data) { 14 exports('alarmpolicyIndex', function (data) {
15 var sessions = layui.sessions; 15 var sessions = layui.sessions;
@@ -17,7 +17,8 @@ layui.define(['table', 'form', 'admin', 'layer', 'common','sessions','xmSelect', @@ -17,7 +17,8 @@ layui.define(['table', 'form', 'admin', 'layer', 'common','sessions','xmSelect',
17 //获得权限列表 17 //获得权限列表
18 var checkList = common.checkPermission(accessToken); 18 var checkList = common.checkPermission(accessToken);
19 var resName = ''; 19 var resName = '';
20 - 20 + resListSelectIds = [];
  21 + var table_data = [];
21 if (data && data.type == 'alarmTemplate') { 22 if (data && data.type == 'alarmTemplate') {
22 $('#alarmpolicy_policyType').val('0'); 23 $('#alarmpolicy_policyType').val('0');
23 $('#alarmpolicy_policyType').attr('disabled','disabled'); 24 $('#alarmpolicy_policyType').attr('disabled','disabled');
@@ -96,7 +97,7 @@ layui.define(['table', 'form', 'admin', 'layer', 'common','sessions','xmSelect', @@ -96,7 +97,7 @@ layui.define(['table', 'form', 'admin', 'layer', 'common','sessions','xmSelect',
96 } 97 }
97 , even: true 98 , even: true
98 , cols: [[ 99 , cols: [[
99 - {type: 'checkbox'} 100 + {type: 'checkbox',field: 'checkbox'}
100 , {field: 'policyType', title: '策略类型', align: 'center', sort: true, width:120, 101 , {field: 'policyType', title: '策略类型', align: 'center', sort: true, width:120,
101 templet: function(d){ 102 templet: function(d){
102 var checked = ''; 103 var checked = '';
@@ -157,7 +158,8 @@ layui.define(['table', 'form', 'admin', 'layer', 'common','sessions','xmSelect', @@ -157,7 +158,8 @@ layui.define(['table', 'form', 'admin', 'layer', 'common','sessions','xmSelect',
157 '</div>' 158 '</div>'
158 } 159 }
159 ]], 160 ]],
160 - done:function () { 161 + done:function (res) {
  162 + table_data = res.data;
161 //设置默认 163 //设置默认
162 form.on('switch(switchPolicyType)', function(obj){ 164 form.on('switch(switchPolicyType)', function(obj){
163 var alarmPolicyId = obj.elem.id; 165 var alarmPolicyId = obj.elem.id;
@@ -204,9 +206,61 @@ layui.define(['table', 'form', 'admin', 'layer', 'common','sessions','xmSelect', @@ -204,9 +206,61 @@ layui.define(['table', 'form', 'admin', 'layer', 'common','sessions','xmSelect',
204 var id = $(this).data("id"); 206 var id = $(this).data("id");
205 deleteAlarmPolicy(id) 207 deleteAlarmPolicy(id)
206 }); 208 });
  209 +
  210 + //回显
  211 + if(data && data.oldData){
  212 + resListSelectIds = data.oldData;
  213 + $.each(res.data,function (i,e) {
  214 + $.each(data.oldData,function (j,k) {
  215 + if(e.alarmPolicyId === k){
  216 + var index= e.LAY_TABLE_INDEX;
  217 + $("[lay-id='alarmpolicyTable']").find('tr[data-index=' + index + '] input[name="layTableCheckbox"]').next().click();
  218 + }
  219 + })
  220 + })
  221 + }
207 } 222 }
208 }); 223 });
  224 + //监听ckecked选中事件
  225 + table.on('checkbox(alarmpolicyTable)', function(obj){
  226 + if (obj.checked == true) {
  227 + if (obj.type == 'one' && resListSelectIds.indexOf(obj.data.resId) === -1) {//勾选单条
  228 + resListSelectIds.push(obj.data.alarmPolicyId);
  229 + }
  230 + if (obj.type == 'all') {//勾选全部
  231 + for (var i = 0; i < table_data.length; i++) {
  232 + if (resListSelectIds.indexOf(obj.data.alarmPolicyId) === -1) {
  233 + resListSelectIds.push(table_data[i].alarmPolicyId);
  234 + }
  235 + }
  236 + }
  237 + } else {
  238 + if (obj.type == 'one') {
  239 + for (var i = 0; i < resListSelectIds.length; i++) {
  240 + if (resListSelectIds[i] == obj.data.resId) {
  241 + resListSelectIds = resListSelectIds.filter(function (item) {
  242 + return item != resListSelectIds[i];
  243 + });
  244 + }
  245 + }
  246 + } else {
  247 + for (var i = 0; i < resListSelectIds.length; i++) {
  248 + for (var j = 0; j < table_data.length; j++) {
  249 + if (resListSelectIds[i] == table_data[j].resId) {
  250 + resListSelectIds = resListSelectIds.filter(function (item) {
  251 + return item != resListSelectIds[i];
  252 + });
  253 + }
  254 + }
  255 + }
  256 + }
  257 + }
  258 +
  259 + // 跨域发送信息,不能删除
  260 + obj.data["checked"] = obj.checked;
  261 + window.top.postMessage({res:obj.data},"*");
209 262
  263 + })
210 //同步策略 264 //同步策略
211 function syncAlarmPolicy(alarmPolicyId){ 265 function syncAlarmPolicy(alarmPolicyId){
212 if (typeof (alarmPolicyId) != "string") { 266 if (typeof (alarmPolicyId) != "string") {
@@ -59,59 +59,47 @@ layui.define(['table', 'form', 'admin', 'layer', 'common','reslist','sessions',' @@ -59,59 +59,47 @@ layui.define(['table', 'form', 'admin', 'layer', 'common','reslist','sessions','
59 return; 59 return;
60 } 60 }
61 var tempData = table.checkStatus('alarmtemplateTable').data; 61 var tempData = table.checkStatus('alarmtemplateTable').data;
62 - if(tempData && tempData.length > 0){  
63 - $('[lay-id="/baseconfig/alarmpolicy/index"]').find('.layui-tab-close').trigger('click');  
64 - var url = 'baseconfig/alarmpolicy/index';  
65 - var params = {type:'alarmTemplate'};  
66 - view('commonViewModel').render(url,params).then(function (res) {  
67 - layer.open({  
68 - title: ["配置策略", 'font-size:18px;'],  
69 - type: 1,  
70 - area: ['90%', '90%'],  
71 - resize: false,  
72 - content: laytpl(res.body).render(JSON.stringify(params)),  
73 - btn: ["选择","取消"],  
74 - id:'alarm_template_Table_tactics',//设定一个id,防止重复弹出  
75 - success: function (index, layero) { 62 + var oldAlarmPolicyIdList = [];
  63 + if (tempData.length<=1){
  64 + admin.req({
  65 + url: common.domainName + '/api-web/alarmPolicy/getbytempId/'+tempData[0].alarmTempId,
  66 + async: false,
  67 + error: function () {
  68 + layer.close(loading);
  69 + }
  70 + }).done(function (response) {
  71 + if (response) {
  72 + oldAlarmPolicyIdList = response.data.map(item => item.alarmPolicyId)
  73 + }
  74 + });
  75 + }
76 76
77 - },  
78 - yes: function (index, layero) {  
79 - var policyData = layui.alarmpolicyIndex().getData();  
80 - if(policyData && policyData.length > 0){  
81 - var tempIds = [],policyIds=[];  
82 - $.each(tempData,function (i,v){  
83 - tempIds.push(v.alarmTempId);  
84 - })  
85 - $.each(policyData,function (i,v){  
86 - policyIds.push(v.alarmPolicyId);  
87 - })  
88 - admin.req({  
89 - url : domainName + '/api-web/alarmtemplate/config/policy'  
90 - ,type:'post'  
91 - ,data:{ tempIds:tempIds.toString(),policyIds:policyIds.toString() }  
92 - ,done:function (res){  
93 - if(res.success){  
94 - layer.msg(res.msg, { offset: '15px' , icon: 1 , time: 1000 },function (){  
95 - layer.closeAll();  
96 - reloadalarmtemplateTable();  
97 - });  
98 - }else{  
99 - layer.msg(res.msg, { offset: '15px' , icon: 7 , time: 1000 });  
100 - }  
101 - } 77 + if(tempData && tempData.length > 0){
  78 + common.openWin("baseconfig/alarmpolicy/index","选择策略",{oldData:oldAlarmPolicyIdList},["选择","取消"], function () {
  79 + var policyData = layui.alarmpolicyIndex().getData();
  80 + var tempIds = [],policyIds=[];
  81 + $.each(tempData,function (i,v){
  82 + tempIds.push(v.alarmTempId);
  83 + })
  84 + $.each(policyData,function (i,v){
  85 + policyIds.push(v.alarmPolicyId);
  86 + })
  87 + admin.req({
  88 + url : domainName + '/api-web/alarmtemplate/config/policy'
  89 + ,type:'post'
  90 + ,data:{ tempIds:tempIds.toString(),policyIds:policyIds.toString() }
  91 + ,done:function (res){
  92 + if(res.success){
  93 + layer.msg(res.msg, { offset: '15px' , icon: 1 , time: 1000 },function (){
  94 + layer.closeAll();
  95 + reloadalarmtemplateTable();
102 }); 96 });
103 }else{ 97 }else{
104 - layer.msg("请至少选择一条策略", { offset: '15px' , icon: 7 , time: 1000 });  
105 - return false; 98 + layer.msg(res.msg, { offset: '15px' , icon: 7 , time: 1000 });
106 } 99 }
107 - return true;  
108 } 100 }
109 - })  
110 - })  
111 -  
112 - // common.openWin("baseconfig/alarmpolicy/index","配置策略",{type:'alarmTemplate'},["选择","取消"], function () {  
113 - //  
114 - // }); 101 + });
  102 + });
115 }else{ 103 }else{
116 layer.msg("请至少选择一条数据!", { offset: '15px' , icon: 7 , time: 1000 }); 104 layer.msg("请至少选择一条数据!", { offset: '15px' , icon: 7 , time: 1000 });
117 } 105 }
@@ -135,7 +123,24 @@ layui.define(['table', 'form', 'admin', 'layer', 'common','reslist','sessions',' @@ -135,7 +123,24 @@ layui.define(['table', 'form', 'admin', 'layer', 'common','reslist','sessions','
135 layer.msg('请选择一条要配置的数据',{icon: 7,time:2000}); 123 layer.msg('请选择一条要配置的数据',{icon: 7,time:2000});
136 return; 124 return;
137 } 125 }
138 - common.openWin("template/res/reslist","配置资源",{},["选择","取消"], function () { 126 + var oldResIdList = [];
  127 + if (tempIds.length<=1){
  128 + admin.req({
  129 + url: common.domainName + '/api-web/alarmtemplate/getResIdByTempId',
  130 + async: false,
  131 + data: {
  132 + tempId:tempIds.toString(),
  133 + },
  134 + error: function () {
  135 + layer.close(loading);
  136 + }
  137 + }).done(function (response) {
  138 + if (response) {
  139 + oldResIdList = response.data.map(item => item.resId)
  140 + }
  141 + });
  142 + }
  143 + common.openWin("template/res/reslist","配置资源",{oldData:oldResIdList},["选择","取消"], function () {
139 var resObj = layui.reslist().getData(); 144 var resObj = layui.reslist().getData();
140 if(resObj && resObj.length > 0){ 145 if(resObj && resObj.length > 0){
141 var resIds = []; 146 var resIds = [];
@@ -84,13 +84,25 @@ @@ -84,13 +84,25 @@
84 </div> 84 </div>
85 </div> 85 </div>
86 </article> 86 </article>
87 -<script template lay-done="layui.data.sendParams(d.params)">  
88 -  
89 -</script> 87 +<textarea id="alarm_policyIndex_id" style="display: none;">{{d}}</textarea>
90 <script> 88 <script>
91 - layui.data.sendParams = function (params) {  
92 - layui.use('alarmpolicyIndex', function (fn) {  
93 - fn(params);  
94 - });  
95 - };  
96 -</script>  
  89 + layui.use('alarmpolicyIndex', function (fn) {
  90 + var $ = layui.$;
  91 + var param = $("#alarm_policyIndex_id").val();
  92 + if(param.indexOf('{{d') != -1){
  93 + fn();
  94 + }else{
  95 + fn(JSON.parse(param));
  96 + }
  97 + });
  98 +</script>
  99 +<!--<script template lay-done="layui.data.sendParams(d.params)">-->
  100 +
  101 +<!--</script>-->
  102 +<!--<script>-->
  103 +<!-- layui.data.sendParams = function (params) {-->
  104 +<!-- layui.use('alarmpolicyIndex', function (fn) {-->
  105 +<!-- fn(params);-->
  106 +<!-- });-->
  107 +<!-- };-->
  108 +<!--</script>-->