Authored by 张凯

chore:停机管理屏蔽影响业务及资源

@@ -69,18 +69,18 @@ layui.define(['table', 'form', 'laydate', 'common', 'sessions', 'xmSelect', 'vie @@ -69,18 +69,18 @@ layui.define(['table', 'form', 'laydate', 'common', 'sessions', 'xmSelect', 'vie
69 height: '300px', 69 height: '300px',
70 data: [] 70 data: []
71 }); 71 });
72 - affectedResIdSelect = xmSelect.render({  
73 - el: '#shutdown_plan_add_affected_res',  
74 - name: 'affectedResIds',  
75 - autoRow: true,  
76 - filterable: true,  
77 - toolbar: {  
78 - show: true,  
79 - list: ['ALL', 'REVERSE', 'CLEAR']  
80 - },  
81 - height: '300px',  
82 - data: []  
83 - }); 72 + // affectedResIdSelect = xmSelect.render({
  73 + // el: '#shutdown_plan_add_affected_res',
  74 + // name: 'affectedResIds',
  75 + // autoRow: true,
  76 + // filterable: true,
  77 + // toolbar: {
  78 + // show: true,
  79 + // list: ['ALL', 'REVERSE', 'CLEAR']
  80 + // },
  81 + // height: '300px',
  82 + // data: []
  83 + // });
84 // 影响业务下拉框 84 // 影响业务下拉框
85 busIdSelect = xmSelect.render({ 85 busIdSelect = xmSelect.render({
86 el: '#shutdown_plan_add_biz', 86 el: '#shutdown_plan_add_biz',
@@ -108,8 +108,8 @@ layui.define(['table', 'form', 'laydate', 'common', 'sessions', 'xmSelect', 'vie @@ -108,8 +108,8 @@ layui.define(['table', 'form', 'laydate', 'common', 'sessions', 'xmSelect', 'vie
108 busIdList = data.arr.map(item => item.value); 108 busIdList = data.arr.map(item => item.value);
109 renderResSelectByBusIdList(busIdList, resIdSelect, initResIdList); 109 renderResSelectByBusIdList(busIdList, resIdSelect, initResIdList);
110 initResIdList = []; 110 initResIdList = [];
111 - var busIds = [...new Set([...affectedBusIdList, ...busIdList])];  
112 - renderResSelectByBusIdList(busIds, affectedResIdSelect); 111 + // var busIds = [...new Set([...affectedBusIdList, ...busIdList])];
  112 + // renderResSelectByBusIdList(busIds, affectedResIdSelect);
113 // 把业务负责人放入接收用户 113 // 把业务负责人放入接收用户
114 var userIdList = userSelect.getValue('value'); 114 var userIdList = userSelect.getValue('value');
115 115
@@ -121,33 +121,33 @@ layui.define(['table', 'form', 'laydate', 'common', 'sessions', 'xmSelect', 'vie @@ -121,33 +121,33 @@ layui.define(['table', 'form', 'laydate', 'common', 'sessions', 'xmSelect', 'vie
121 form.render('select'); 121 form.render('select');
122 } 122 }
123 }); 123 });
124 - affectedBusIdSelect = xmSelect.render({  
125 - el: '#shutdown_plan_add_affected_biz',  
126 - name: 'affectedBusIds',  
127 - autoRow: true,  
128 - filterable: true,  
129 - toolbar: {  
130 - show: true,  
131 - list: ['ALL', 'REVERSE', 'CLEAR']  
132 - },  
133 - height: '300px',  
134 - tree: {  
135 - //是否显示树状结构  
136 - show: true,  
137 - //是否展示三角图标  
138 - showFolderIcon: true,  
139 - //是否显示虚线  
140 - showLine: false,  
141 - //是否严格遵守父子模式  
142 - strict: true  
143 - },  
144 - data: bizTree,  
145 - on: function (data) {  
146 - var busIds = [...new Set([...data.arr.map(item => item.value), ...busIdList])];  
147 - renderResSelectByBusIdList(busIds, affectedResIdSelect, initAffectedResIdList);  
148 - initAffectedResIdList = [];  
149 - }  
150 - }); 124 + // affectedBusIdSelect = xmSelect.render({
  125 + // el: '#shutdown_plan_add_affected_biz',
  126 + // name: 'affectedBusIds',
  127 + // autoRow: true,
  128 + // filterable: true,
  129 + // toolbar: {
  130 + // show: true,
  131 + // list: ['ALL', 'REVERSE', 'CLEAR']
  132 + // },
  133 + // height: '300px',
  134 + // tree: {
  135 + // //是否显示树状结构
  136 + // show: true,
  137 + // //是否展示三角图标
  138 + // showFolderIcon: true,
  139 + // //是否显示虚线
  140 + // showLine: false,
  141 + // //是否严格遵守父子模式
  142 + // strict: true
  143 + // },
  144 + // data: bizTree,
  145 + // on: function (data) {
  146 + // var busIds = [...new Set([...data.arr.map(item => item.value), ...busIdList])];
  147 + // renderResSelectByBusIdList(busIds, affectedResIdSelect, initAffectedResIdList);
  148 + // initAffectedResIdList = [];
  149 + // }
  150 + // });
151 } else { 151 } else {
152 layer.msg('获取业务失败', {icon: 2}); 152 layer.msg('获取业务失败', {icon: 2});
153 } 153 }
@@ -156,12 +156,11 @@ layui.define(['table', 'form', 'laydate', 'common', 'sessions', 'xmSelect', 'vie @@ -156,12 +156,11 @@ layui.define(['table', 'form', 'laydate', 'common', 'sessions', 'xmSelect', 'vie
156 layer.msg('获取业务失败', {icon: 2}); 156 layer.msg('获取业务失败', {icon: 2});
157 } 157 }
158 }); 158 });
159 -  
160 $.ajax({ 159 $.ajax({
161 - url: domainName + '/api-user/users/getAll?access_token=' + accessToken, 160 + url: domainName + '/mj/user/page?username=&nickname=&enabled=&perPage=10000&page=1&accessToken=' + common.getMjToken(),
162 async: false, 161 async: false,
163 success: function (response) { 162 success: function (response) {
164 - var userlist = response.map(item => { 163 + var userlist = response.data.rows.map(item => {
165 return { 164 return {
166 name: item.nickname, 165 name: item.nickname,
167 value: item.username 166 value: item.username
@@ -187,7 +186,7 @@ layui.define(['table', 'form', 'laydate', 'common', 'sessions', 'xmSelect', 'vie @@ -187,7 +186,7 @@ layui.define(['table', 'form', 'laydate', 'common', 'sessions', 'xmSelect', 'vie
187 form.render(); 186 form.render();
188 if (cutoverId) { 187 if (cutoverId) {
189 var url = common.domainName + '/api-web/manage/cutover/findById'; 188 var url = common.domainName + '/api-web/manage/cutover/findById';
190 - $.get(url, {'cutoverId': cutoverId, 'access_token': accessToken}, function (res) { 189 + $.get(url, {'cutoverId': cutoverId, 'accessToken': common.getMjToken()}, function (res) {
191 if (res.object) { 190 if (res.object) {
192 var bean = res.object; 191 var bean = res.object;
193 form.val("shutdownplan-add-form", bean); 192 form.val("shutdownplan-add-form", bean);
@@ -201,10 +200,10 @@ layui.define(['table', 'form', 'laydate', 'common', 'sessions', 'xmSelect', 'vie @@ -201,10 +200,10 @@ layui.define(['table', 'form', 'laydate', 'common', 'sessions', 'xmSelect', 'vie
201 }) 200 })
202 } else { 201 } else {
203 $.ajax({ 202 $.ajax({
204 - url: domainName + '/api-user/users/current?access_token=' + accessToken, 203 + url: domainName + '/mj/sys/auth/getCurrenUser?token='+common.getMjToken(),
205 success: function (response) { 204 success: function (response) {
206 - acceptUserName = response.nickname;  
207 - userSelect.setValue([response.username]); 205 + acceptUserName = response.data.user.nickname;
  206 + userSelect.setValue([response.data.user.username]);
208 } 207 }
209 }); 208 });
210 if (resId) { 209 if (resId) {
@@ -227,12 +226,12 @@ layui.define(['table', 'form', 'laydate', 'common', 'sessions', 'xmSelect', 'vie @@ -227,12 +226,12 @@ layui.define(['table', 'form', 'laydate', 'common', 'sessions', 'xmSelect', 'vie
227 var bean = data.field; 226 var bean = data.field;
228 bean.acceptUserName = acceptUserName; 227 bean.acceptUserName = acceptUserName;
229 var loading = layer.load(2); 228 var loading = layer.load(2);
230 - $.ajax({ 229 + admin.req({
  230 + url: common.domainName + '/api-web/manage/cutover/save',
231 type: 'post', 231 type: 'post',
232 - url: common.domainName + '/api-web/manage/cutover/save?access_token=' + accessToken,  
233 data: JSON.stringify(bean), 232 data: JSON.stringify(bean),
234 contentType: "application/json; charset=utf-8", 233 contentType: "application/json; charset=utf-8",
235 - success: function (res) { 234 + success(res) {
236 layer.close(loading); 235 layer.close(loading);
237 if (res && res.success) { 236 if (res && res.success) {
238 layer.msg('保存成功', {icon: 1}); 237 layer.msg('保存成功', {icon: 1});
@@ -256,11 +255,45 @@ layui.define(['table', 'form', 'laydate', 'common', 'sessions', 'xmSelect', 'vie @@ -256,11 +255,45 @@ layui.define(['table', 'form', 'laydate', 'common', 'sessions', 'xmSelect', 'vie
256 layer.msg('保存失败!', {icon: 2}); 255 layer.msg('保存失败!', {icon: 2});
257 } 256 }
258 }, 257 },
259 - error: function (res) { 258 + error(res){
260 layer.close(loading); 259 layer.close(loading);
261 layer.msg('服务异常', {icon: 7}); 260 layer.msg('服务异常', {icon: 7});
262 } 261 }
263 - }) 262 + });
  263 + // $.ajax({
  264 + // type: 'post',
  265 + // url: common.domainName + '/api-web/manage/cutover/save?access_token=' + accessToken,
  266 + // data: JSON.stringify(bean),
  267 + // contentType: "application/json; charset=utf-8",
  268 + // success: function (res) {
  269 + // layer.close(loading);
  270 + // if (res && res.success) {
  271 + // layer.msg('保存成功', {icon: 1});
  272 + //
  273 + // layer.closeAll();
  274 + // table.reload('shutdownplan_table', {
  275 + // page: {
  276 + // curr: 1
  277 + // },
  278 + // where: {
  279 + // access_token: accessToken,
  280 + // cutoverName: $("#shutdownplanSearchForm").find("input[name='cutoverName']").val(),
  281 + // cutoverMode: $("#shutdownplanSearchForm").find("select[name='cutoverMode']").val(),
  282 + // startTime: $("#shutdownplanStartTime").val(),
  283 + // endTime: $("#shutdownplanEndTime").val(),
  284 + // createStart: $("#shutdownplanCreateStart").val(),
  285 + // createEnd: $("#shutdownplanCreateEnd").val()
  286 + // }
  287 + // });
  288 + // } else {
  289 + // layer.msg('保存失败!', {icon: 2});
  290 + // }
  291 + // },
  292 + // error: function (res) {
  293 + // layer.close(loading);
  294 + // layer.msg('服务异常', {icon: 7});
  295 + // }
  296 + // })
264 }); 297 });
265 298
266 /** 299 /**
@@ -83,8 +83,7 @@ layui.define(['table', 'form', 'laydate', 'admin', 'layer', 'laytpl', 'common', @@ -83,8 +83,7 @@ layui.define(['table', 'form', 'laydate', 'admin', 'layer', 'laytpl', 'common',
83 83
84 84
85 $("#addshutdownplan").unbind().on("click", function () { 85 $("#addshutdownplan").unbind().on("click", function () {
86 - if ($.inArray('back:cutover:save', checkList) == -1) {  
87 - layer.msg('暂无权限!', {icon: 7, time: 3000}); 86 + if (!common.hasPermission('back:cutover:save')){
88 return; 87 return;
89 } 88 }
90 openEditHtml(undefined); 89 openEditHtml(undefined);
@@ -94,8 +93,7 @@ layui.define(['table', 'form', 'laydate', 'admin', 'layer', 'laytpl', 'common', @@ -94,8 +93,7 @@ layui.define(['table', 'form', 'laydate', 'admin', 'layer', 'laytpl', 'common',
94 * 暂停 93 * 暂停
95 */ 94 */
96 $('#btn-shutdown-pause').unbind('click').on('click', function () { 95 $('#btn-shutdown-pause').unbind('click').on('click', function () {
97 - if ($.inArray('back:cutover:synchronization', checkList) == -1) {  
98 - layer.msg('暂无权限!', {icon: 7, time: 3000}); 96 + if (!common.hasPermission('back:cutover:synchronization')){
99 return; 97 return;
100 } 98 }
101 var data = table.checkStatus('shutdownplan_table').data; 99 var data = table.checkStatus('shutdownplan_table').data;
@@ -114,8 +112,7 @@ layui.define(['table', 'form', 'laydate', 'admin', 'layer', 'laytpl', 'common', @@ -114,8 +112,7 @@ layui.define(['table', 'form', 'laydate', 'admin', 'layer', 'laytpl', 'common',
114 * 恢复 112 * 恢复
115 */ 113 */
116 $('#btn-shutdown-recover').unbind('click').on('click', function () { 114 $('#btn-shutdown-recover').unbind('click').on('click', function () {
117 - if ($.inArray('back:cutover:synchronization', checkList) == -1) {  
118 - layer.msg('暂无权限!', {icon: 7, time: 3000}); 115 + if (!common.hasPermission('back:cutover:synchronization')){
119 return; 116 return;
120 } 117 }
121 var data = table.checkStatus('shutdownplan_table').data; 118 var data = table.checkStatus('shutdownplan_table').data;
@@ -168,7 +165,7 @@ layui.define(['table', 'form', 'laydate', 'admin', 'layer', 'laytpl', 'common', @@ -168,7 +165,7 @@ layui.define(['table', 'form', 'laydate', 'admin', 'layer', 'laytpl', 'common',
168 createEnd: $("#shutdownplanCreateEnd").val() 165 createEnd: $("#shutdownplanCreateEnd").val()
169 } 166 }
170 , height: 'full-210' 167 , height: 'full-210'
171 - , cellMinWidth: 80 168 + , cellMinWidth: 100
172 , page: { 169 , page: {
173 layout: ['count', 'prev', 'page', 'next', 'limit', 'skip'] 170 layout: ['count', 'prev', 'page', 'next', 'limit', 'skip']
174 , theme: '#1E9FFF' 171 , theme: '#1E9FFF'
@@ -179,7 +176,7 @@ layui.define(['table', 'form', 'laydate', 'admin', 'layer', 'laytpl', 'common', @@ -179,7 +176,7 @@ layui.define(['table', 'form', 'laydate', 'admin', 'layer', 'laytpl', 'common',
179 , cols: [[{ 176 , cols: [[{
180 type: 'checkbox' 177 type: 'checkbox'
181 }, { 178 }, {
182 - field: 'cutoverName', title: '计划名称', align: 'center', width: 230, 179 + field: 'cutoverName', title: '计划名称', align: 'center', width: 300,
183 templet: '<div><span shutdownplan-data-edit="{{d.cutoverId}}" class="layui-table-link">{{d.cutoverName}}</span></div>' 180 templet: '<div><span shutdownplan-data-edit="{{d.cutoverId}}" class="layui-table-link">{{d.cutoverName}}</span></div>'
184 }, { 181 }, {
185 field: 'busNum', 182 field: 'busNum',
@@ -193,20 +190,23 @@ layui.define(['table', 'form', 'laydate', 'admin', 'layer', 'laytpl', 'common', @@ -193,20 +190,23 @@ layui.define(['table', 'form', 'laydate', 'admin', 'layer', 'laytpl', 'common',
193 align: 'center', 190 align: 'center',
194 width: 120, 191 width: 120,
195 templet: '<div><span shutdownplan-data-res="{{d.cutoverId}}" data-haveNum="{{d.resNum}}" data-type="res" class="layui-table-link">{{d.resNum}}</span>' 192 templet: '<div><span shutdownplan-data-res="{{d.cutoverId}}" data-haveNum="{{d.resNum}}" data-type="res" class="layui-table-link">{{d.resNum}}</span>'
196 - }, {  
197 - field: 'affectedBusNum',  
198 - title: '受影响的业务',  
199 - align: 'center',  
200 - width: 120,  
201 - templet: '<div><span shutdownplan-data-bus="{{d.cutoverId}}" data-haveNum="{{d.affectedBusNum}}" data-type="affectedBiz" class="layui-table-link">{{d.affectedBusNum}}</span>'  
202 - }, {  
203 - field: 'affectedResNum',  
204 - title: '受影响的资源',  
205 - align: 'center',  
206 - width: 120,  
207 - templet: '<div><span shutdownplan-data-res="{{d.cutoverId}}" data-haveNum="{{d.affectedResNum}}" data-type="affectedRes" class="layui-table-link">{{d.affectedResNum}}</span>'  
208 - }, {  
209 - field: 'startTime', title: '说明', align: 'center', width: 320, templet: function (d) { 193 + },
  194 + //根据鹏军要求,去除受影响的业务与资源字段
  195 + // {
  196 + // field: 'affectedBusNum',
  197 + // title: '受影响的业务',
  198 + // align: 'center',
  199 + // width: 120,
  200 + // templet: '<div><span shutdownplan-data-bus="{{d.cutoverId}}" data-haveNum="{{d.affectedBusNum}}" data-type="affectedBiz" class="layui-table-link">{{d.affectedBusNum}}</span>'
  201 + // }, {
  202 + // field: 'affectedResNum',
  203 + // title: '受影响的资源',
  204 + // align: 'center',
  205 + // width: 120,
  206 + // templet: '<div><span shutdownplan-data-res="{{d.cutoverId}}" data-haveNum="{{d.affectedResNum}}" data-type="affectedRes" class="layui-table-link">{{d.affectedResNum}}</span>'
  207 + // },
  208 + {
  209 + field: 'startTime', title: '说明', align: 'center', templet: function (d) {
210 return layui.util.toDateString(d.startTime, "yyyy-MM-dd HH:mm:ss") + ' 至 ' + layui.util.toDateString(d.endTime, "yyyy-MM-dd HH:mm:ss") 210 return layui.util.toDateString(d.startTime, "yyyy-MM-dd HH:mm:ss") + ' 至 ' + layui.util.toDateString(d.endTime, "yyyy-MM-dd HH:mm:ss")
211 } 211 }
212 }, { 212 }, {
@@ -261,7 +261,7 @@ layui.define(['table', 'form', 'laydate', 'admin', 'layer', 'laytpl', 'common', @@ -261,7 +261,7 @@ layui.define(['table', 'form', 'laydate', 'admin', 'layer', 'laytpl', 'common',
261 return html 261 return html
262 } 262 }
263 }, { 263 }, {
264 - title: '操作', fixed: 'right', align: 'center', minWidth: 100, templet: function (d) { 264 + title: '操作', fixed: 'right', align: 'center', width: 100, templet: function (d) {
265 var html = '<div><button shutdownplan-data-delete="' + d.cutoverId + '" class="layui-btn layui-btn-normal layui-btn-xs" lay-tips="删除"><i class="layui-icon layui-icon-delete"></i></button>'; 265 var html = '<div><button shutdownplan-data-delete="' + d.cutoverId + '" class="layui-btn layui-btn-normal layui-btn-xs" lay-tips="删除"><i class="layui-icon layui-icon-delete"></i></button>';
266 if (d.stopStatus == '2') { 266 if (d.stopStatus == '2') {
267 html += '<button shutdownplan-data-stop="' + d.cutoverId + '" class="layui-btn layui-btn-normal layui-btn-xs" lay-tips="暂停"><i class="layui-icon layui-icon-pause"></i></button>' 267 html += '<button shutdownplan-data-stop="' + d.cutoverId + '" class="layui-btn layui-btn-normal layui-btn-xs" lay-tips="暂停"><i class="layui-icon layui-icon-pause"></i></button>'
@@ -275,8 +275,7 @@ layui.define(['table', 'form', 'laydate', 'admin', 'layer', 'laytpl', 'common', @@ -275,8 +275,7 @@ layui.define(['table', 'form', 'laydate', 'admin', 'layer', 'laytpl', 'common',
275 done: function (res, curr, count) { 275 done: function (res, curr, count) {
276 //点击名称 进行编辑 276 //点击名称 进行编辑
277 $('[shutdownplan-data-edit]').on('click', function () { 277 $('[shutdownplan-data-edit]').on('click', function () {
278 - if ($.inArray('back:cutover:update', checkList) == -1) {  
279 - layer.msg('暂无权限!', {icon: 7, time: 3000}); 278 + if (!common.hasPermission('back:cutover:update')){
280 return; 279 return;
281 } 280 }
282 openEditHtml($(this).attr("shutdownplan-data-edit")); 281 openEditHtml($(this).attr("shutdownplan-data-edit"));
@@ -332,8 +331,7 @@ layui.define(['table', 'form', 'laydate', 'admin', 'layer', 'laytpl', 'common', @@ -332,8 +331,7 @@ layui.define(['table', 'form', 'laydate', 'admin', 'layer', 'laytpl', 'common',
332 }); 331 });
333 332
334 $("#syncshutdownplan").unbind().on("click", function () { 333 $("#syncshutdownplan").unbind().on("click", function () {
335 - if ($.inArray('back:cutover:synchronization', checkList) == -1) {  
336 - layer.msg('暂无权限!', {icon: 7, time: 3000}); 334 + if (!common.hasPermission('back:cutover:synchronization')){
337 return; 335 return;
338 } 336 }
339 var data = table.checkStatus('shutdownplan_table').data; 337 var data = table.checkStatus('shutdownplan_table').data;
@@ -460,8 +458,7 @@ layui.define(['table', 'form', 'laydate', 'admin', 'layer', 'laytpl', 'common', @@ -460,8 +458,7 @@ layui.define(['table', 'form', 'laydate', 'admin', 'layer', 'laytpl', 'common',
460 } 458 }
461 459
462 function deleteByIds(ids) { 460 function deleteByIds(ids) {
463 - if ($.inArray('back:cutover:delete', checkList) == -1) {  
464 - layer.msg('暂无权限!', {icon: 7, time: 3000}); 461 + if (!common.hasPermission('back:cutover:delete')){
465 return; 462 return;
466 } 463 }
467 //确认提示框 464 //确认提示框
@@ -60,23 +60,23 @@ @@ -60,23 +60,23 @@
60 </div> 60 </div>
61 </div> 61 </div>
62 </div> 62 </div>
63 - <div class="layui-form-item">  
64 - <div class="layui-inline layui-inline-xm-select">  
65 - <label class="layui-form-label"  
66 - style="min-width: 120px!important;max-width: 120px!important;">影响业务:</label>  
67 - <div class="layui-input-inline">  
68 - <div class="xm-select-demo" id="shutdown_plan_add_affected_biz"></div>  
69 - </div>  
70 - </div>  
71 - <div class="layui-inline layui-inline-xm-select">  
72 - <label class="layui-form-label"  
73 - style="min-width: 120px!important;max-width: 120px!important;">影响资源:</label>  
74 - <div class="layui-input-inline">  
75 - <div class="xm-select-demo" id="shutdown_plan_add_affected_res"  
76 - lay-tips="影响资源必须是停机业务或影响业务下的资源"></div>  
77 - </div>  
78 - </div>  
79 - </div> 63 +<!-- <div class="layui-form-item">-->
  64 +<!-- <div class="layui-inline layui-inline-xm-select">-->
  65 +<!-- <label class="layui-form-label"-->
  66 +<!-- style="min-width: 120px!important;max-width: 120px!important;">影响业务:</label>-->
  67 +<!-- <div class="layui-input-inline">-->
  68 +<!-- <div class="xm-select-demo" id="shutdown_plan_add_affected_biz"></div>-->
  69 +<!-- </div>-->
  70 +<!-- </div>-->
  71 +<!-- <div class="layui-inline layui-inline-xm-select">-->
  72 +<!-- <label class="layui-form-label"-->
  73 +<!-- style="min-width: 120px!important;max-width: 120px!important;">影响资源:</label>-->
  74 +<!-- <div class="layui-input-inline">-->
  75 +<!-- <div class="xm-select-demo" id="shutdown_plan_add_affected_res"-->
  76 +<!-- lay-tips="影响资源必须是停机业务或影响业务下的资源"></div>-->
  77 +<!-- </div>-->
  78 +<!-- </div>-->
  79 +<!-- </div>-->
80 <div class="layui-form-item"> 80 <div class="layui-form-item">
81 <div class="layui-inline layui-inline-xm-select"> 81 <div class="layui-inline layui-inline-xm-select">
82 <label class="layui-form-label" 82 <label class="layui-form-label"