项目

一般

简介

admin.war 当中间件没有任何应用时,登录管控一直跳转回登录页面 » preview.jsp

he shancai, 2022-02-28 08:03

 
1
<%@ page language="java" contentType="text/html; charset=UTF-8"
2
    pageEncoding="UTF-8"%>
3
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
4
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
5
<html>
6
<head>
7
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
8
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
9
<title>Apusic应用服务器监控概览</title>
10
<c:set var="contextPath" value="${pageContext.request.contextPath}" />
11
<c:set var="resBase" value="${contextPath}/res" />
12
<script type="text/javascript" src="${resBase}/scripts/jquery.min.js"></script>
13
<script type="text/javascript" src="${resBase}/scripts/common.js"></script>
14
<%@ include file="/WEB-INF/common-monitor/jqplot-js.jsp"%>
15
<link rel="stylesheet" type="text/css" href="${resBase}/css/om-ui/om-apusic.css" />
16
<link rel="stylesheet" type="text/css" href="${resBase}/css/common.css" />
17
<link rel="stylesheet" type="text/css" href="${resBase}/css/preview.css" />
18
<%@ include file="/WEB-INF/common-monitor/jqplot-css.jsp"%>
19
<script>
20

    
21
$(function() {
22
	init();
23
	showIntervalChart();
24
	// 非堆内存(不需要重绘)
25
	showNonHeapChart();
26
	setInterval("showIntervalChart()", 4000);
27
});
28

    
29
window.onresize = function(){setTimeout('init()', 100);}
30

    
31
function init() {
32
    var len = $(".welcome-basic-info")[0].offsetWidth;   
33
    var basicLen = len - 73 - 8;
34
    var authLen = len - 100 - 8;
35
    $('.welcome-basic-info').find("dd").css("width",basicLen); 
36
    $('.welcome-auth-info').find("dd").css("width",authLen); 
37
    $('.welcome-basic-info').find("dd").css("display","block"); 
38
    $('.welcome-auth-info').find("dd").css("display","block"); 
39
    
40
    // 定义全局变量
41
    isRunning = false;
42
}
43

    
44
function showIntervalChart() {
45
	// 当前连接数
46
	if(!isRunning) {
47
		isRunning = true;
48
		showAppSessionChart();
49
		showHttpConnectChart();
50
		showThreadPoolChart();
51
		showCpuChart();
52
		showMemoryChart();
53
		showJtaChart();
54
		isRunning = false;
55
	}
56
}
57

    
58
function getAppSessionData(url, data) {
59
	var json = getAjaxJsonData(url, data);
60
	var ret = {};
61
	if(json && json != "" && json != "null") {
62
		var appName = new Array();
63
		var xyData = new Array();
64
		$(json).each(function(i, v){
65
			appName.push(v.appName);
66
			xyData.push(v.data);
67
		});
68
		ret.legend = appName;
69
		ret.data = xyData;
70
	} else {
71
		ret.legend = [];
72
		ret.data = [];
73
	}
74
	return ret;
75
}
76

    
77
/**
78
 * 多条折线图
79
 * 数据格式:
80
 * [[
81
 *      // 第一条折线图
82
 *      ["x轴数据1", "y轴数据1"],
83
 *      ["x轴数据2", "y轴数据2"],
84
 *      ["x轴数据3", "y轴数据3"]
85
 * ],[
86
 *      // 第二条折线图
87
 *      ["x轴数据1", "y轴数据1"],
88
 *      ["x轴数据2", "y轴数据2"],
89
 *      ["x轴数据3", "y轴数据3"]
90
 * ]]
91
 *  图例格式为:["图例1", "图例2"]
92
 */
93
function showAppSessionChart() {
94
	var url = "${contextPath}/protect/monitor/appsession/statisticsJson";
95
	var data = getAppSessionData(url, {});
96
	var count = 0;
97
	try {
98
		if(appSessionChart) {
99
			appSessionChart.destroy();
100
		}
101
	} catch (e) {
102
		
103
	}
104
	if(data.data.length == 0) {
105
		showChartNoData("#app-chart-inner");
106
		return;
107
	} else {
108
		$("#app-chart-inner").empty();
109
	}
110
	var numberRows = data.legend.length/5, numberColumns = 5;
111
	if(numberRows == 0) {
112
		numberRows = 1;
113
	}
114
	for(var i=0; i<data.legend.length; i++) {
115
		if(data.legend[i].length > 10) {
116
			data.legend[i] = data.legend[i].substring(0, 10) + "...";
117
		}
118
	}
119
	appSessionChart = $.jqplot('app-chart-inner', data.data, $.extend(true, getDefaultOptions(), {
120
  		axes: {
121
            xaxis: {
122
            	tickOptions: {
123
            		formatter: function(format, val) {
124
            			count++;
125
            			if((count)%3 == 0) {
126
            				return val;
127
            			}
128
            			return " ";
129
            		}
130
            	}
131
            }
132
        },
133
        legend: {
134
            renderer: $.jqplot.EnhancedLegendRenderer, 
135
            show: true,
136
            location: 's',
137
            placement: 'outsideGrid',
138
            // 图例单独指定
139
            labels: data.legend,
140
            shrinkGrid: true,
141
            rendererOptions: {
142
            	numberRows : numberRows,
143
            	numberColumns : numberColumns
144
            }
145
        }
146
	}));
147
}
148

    
149
function getHttpConnectData(url, data) {
150
	var json = getAjaxJsonData(url, data);
151
	var ret = {};
152
	if(json && json != "" && json != "null") {
153
		ret.data = json;
154
	} else {
155
		ret.data = [];
156
	}
157
	return ret;
158
}
159

    
160
/**
161
 * 柱状图(单层)
162
 * 数据格式:
163
 * [[["x轴第1根柱子名称", "y轴数据"],["x轴第2根柱子名称", y轴数据]]]
164
 */
165
function showHttpConnectChart() {
166
	var url = "${contextPath}/protect/monitor/http/currentHttpConnectJson";
167
	var data = getHttpConnectData(url, {});
168
	try {
169
		if(httpConnectChart) {
170
			httpConnectChart.destroy();
171
		}
172
	} catch (e) {
173
		
174
	}
175
	if(data.data.length == 0) {
176
		showChartNoData("#http-chart-inner");
177
		return;
178
	} else {
179
		$("#http-chart-inner").empty();
180
	}
181
	httpConnectChart = $.jqplot('http-chart-inner', data.data, $.extend(true, getDefaultOptions(), {
182
		 seriesDefaults: {
183
             renderer: $.jqplot.BarRenderer,
184
             rendererOptions: {
185
   				varyBarColor: true,
186
   				barWidth: 45,
187
   				highlightMouseDown: false
188
   			 },
189
             pointLabels: {
190
                 show: true
191
             },
192
             showLabel: true
193
         }
194
	}));
195
}
196

    
197
function getThreadPoolData(url, data) {
198
	var json = getAjaxJsonData(url, data);
199
	var ret = {};
200
	if(json && json != "" && json != "null") {
201
		ret.data = json.data;
202
		ret.ticks = json.ticks;
203
	} else {
204
		ret.data = [];
205
	}
206
	return ret;
207
}
208

    
209
/**
210
 * 柱状图(多层)
211
 * 数据格式:
212
 * [[
213
 *   ["第1根柱子第1层y轴值", "第2根柱子第1层y轴值", 第3根柱子第1层y轴值],
214
 *   ["第1根柱子第2层y轴值", "第2根柱子第2层y轴值", 第3根柱子第2层y轴值]
215
 * ]]
216
 * x轴坐标格式:
217
 * ["第1根柱子x轴坐标值", "第2根柱子x轴坐标值", "第3根柱子x轴坐标值"]
218
 */
219
function showThreadPoolChart() {
220
	var url = "${contextPath}/protect/monitor/thread/refreshThreadPoolJson";
221
	var data = getThreadPoolData(url, {});
222
	try {
223
		if(httpThreadPoolChart) {
224
			httpThreadPoolChart.destroy();
225
		}
226
	} catch (e) {
227
		
228
	}
229
	if(data.data.length == 0) {
230
		showChartNoData("#thread-chart-inner");
231
		return;
232
	} else {
233
		$("#thread-chart-inner").empty();
234
	}
235
	httpThreadPoolChart = $.jqplot('thread-chart-inner', data.data, $.extend(true, getDefaultOptions(), {
236
		seriesColors:['#a50c64', '#5a82d0', "#953579", "#4b5de4", "#C7754C"],
237
		stackSeries: true, 
238
		axes: {
239
            xaxis: {
240
            	// 图例
241
            	ticks: data.ticks,
242
            	renderer: $.jqplot.CategoryAxisRenderer
243
            }
244
		},
245
		seriesDefaults: {
246
             renderer: $.jqplot.BarRenderer,
247
             rendererOptions: {
248
   				varyBarColor: true,
249
   				barWidth: 45,
250
   				highlightMouseDown: false
251
   			 },
252
             pointLabels: {
253
                 show: true
254
             },
255
             showLabel: true
256
         },
257
         legend: {
258
             renderer: $.jqplot.EnhancedLegendRenderer, 
259
             show: true,
260
             location: 's',
261
             placement: 'outsideGrid',
262
             labels: ["活动线程", "空闲线程"],
263
             shrinkGrid: true,
264
             rendererOptions: {
265
             	numberRows : 1
266
             }
267
         }
268
	}));
269
}
270

    
271
/**
272
 * 仪表盘
273
 * 数据格式:
274
 * [["具体数据"]]
275
 */
276
function showNonHeapChart() {
277
	var value = 0, max = 0, step = 0;
278
	if(!isNaN(parseInt("${nonHeapMem}"))) {
279
		value = parseInt("${nonHeapMem}");
280
	}
281
	if(!isNaN(parseInt("${maxNonHeapMem}"))) {
282
		max = parseInt("${maxNonHeapMem}");
283
		step = max/3;
284
	}
285
	if(max <= value) {
286
		max = value * 3;
287
		step = max/3;
288
	}
289
	if(max == 0) {
290
		max = 500;
291
		step = max/3;
292
	}
293
	try {
294
		if(nonHeapChart) {
295
			httpThreadPoolChart.destroy()
296
		}
297
	} catch (e) {
298
		
299
	}
300
	if(isNaN(parseInt("${nonHeapMem}"))) {
301
		showChartNoData("#non-heap-chart");
302
		return;
303
	} else {
304
		$("#non-heap-chart").empty();
305
	}
306
	nonHeapChart = $.jqplot('non-heap-chart', [[value]], {
307
		grid: {
308
            drawBorder: false, 
309
            drawGridlines: false,
310
            background: '#C8E9FA',
311
            shadow: false
312
        },
313
		seriesDefaults: {
314
			renderer: $.jqplot.MeterGaugeRenderer,
315
			rendererOptions: {
316
				// 最外层颜色
317
				ringColor: "#cfe2f3",
318
				max: max,
319
				label: 'MB',
320
                labelHeightAdjust: -5,
321
                intervals: [step, step*2, step*3],
322
                // 里面分半圆直径
323
                intervalOuterRadius: 65,
324
                intervalColors:['#66cc66', '#93b75f', '#CC6666']
325
            }
326
		}
327
	});
328
}
329

    
330
function getCpuData(url, data) {
331
	var json = getAjaxJsonData(url, data);
332
	var ret = {};
333
	if(json && json != "" && json != "null") {
334
		ret.data = json;
335
	} else {
336
		ret.data = [];
337
	}
338
	return ret;
339
}
340

    
341
/**
342
 * 柱状图(单层)
343
 * 数据格式:
344
 * [[["x轴第1根柱子名称", "y轴数据"],["x轴第2根柱子名称", y轴数据]]]
345
 */
346
function showCpuChart() {
347
	var url = "${contextPath}/protect/monitor/cpu/currentMonitorJsonData";
348
	var data = getCpuData(url, {});
349
	try {
350
		if(apuChart) {
351
			apuChart.destroy();
352
		}
353
	} catch (e) {
354
		
355
	}
356
	if(data.data.length == 0) {
357
		showChartNoData("#cpu-chart-inner");
358
		return;
359
	} else {
360
		$("#cpu-chart-inner").empty();
361
	}
362
	apuChart = $.jqplot("cpu-chart-inner", data.data, $.extend(true, getDefaultOptions(), {
363
		seriesDefaults: {
364
             renderer: $.jqplot.BarRenderer,
365
             rendererOptions: {
366
            	// 每个柱子都显示不同颜色
367
   				varyBarColor: true,
368
   				barWidth: 45,
369
   				highlightMouseDown: false
370
   			 },
371
             pointLabels: {
372
            	 // 是否显示柱子上的数字
373
                 show: true
374
             },
375
             showLabel: true
376
        },
377
        axes: {
378
        	yaxis : {
379
        		tickOptions: {
380
                	formatString: '%.2f',
381
                	formatter: function(format, val) {
382
                		if (!format) {
383
                            format = $.jqplot.config.defaultTickFormatString;
384
                        } 
385
                        return $.jqplot.sprintf(format, val);
386
                	}
387
            	}
388
        	}
389
        }
390
	}));
391
}
392

    
393
function getMemoryData(url, data) {
394
	var json = getAjaxJsonData(url, data);
395
	var ret = {};
396
	if(json && json != "" && json != "null") {
397
		ret.data = json;
398
	} else {
399
		ret.data = [];
400
		window.location.href="${contextPath}/login";
401
	}
402
	return ret;
403
}
404

    
405
/**
406
 * 单条折线图
407
 * 数据格式:
408
 * [[
409
 *      ["x轴数据1", "y轴数据1"],
410
 *      ["x轴数据2", "y轴数据2"],
411
 *      ["x轴数据3", "y轴数据3"]
412
 * ]]
413
 */
414
function showMemoryChart() {
415
	var url = "${contextPath}/protect/monitor/memory/refreshJsonDate";
416
	var data = getMemoryData(url, {});
417
	var count = 0;
418
	try {
419
		if(memoryChart) {
420
			memoryChart.destroy();
421
		}
422
	} catch (e) {
423
		
424
	}
425
	if(data.data.length == 0) {
426
		showChartNoData("#memory-chart-inner");
427
		return;
428
	} else {
429
		$("#memory-chart-inner").empty();
430
	}
431
	memoryChart = $.jqplot('memory-chart-inner', data.data, $.extend(true, getDefaultOptions(), {
432
		seriesColors:['#17BDB8'],
433
		axes: {
434
            xaxis: {
435
            	tickOptions: {
436
            		// 输出x轴坐标值
437
            		formatter: function(format, val) {
438
            			count++;
439
            			if((count)%3 == 0) {
440
            				return val;
441
            			}
442
            			return " ";
443
            		}
444
            	}
445
            },
446
            yaxis : {
447
            	tickOptions: {
448
            		// 输出y轴坐标值
449
            		formatter: function(format, val) {
450
            			return val+"M";
451
            		}
452
            	}
453
            }
454
        },
455
        seriesDefaults:{
456
        	// 是否填充模式(填充模式会把线到x轴之间填充)
457
            fill: true,
458
            fillAndStroke: true,
459
            fillAlpha: 0.5,
460
            shadow: false
461
        }
462
	}));
463
}
464

    
465
function getJtaData(url, data) {
466
	var json = getAjaxJsonData(url, data);
467
	var ret = {};
468
	if(json && json != "" && json != "null") {
469
		ret.data = json;
470
	} else {
471
		ret.data = [];
472
	}
473
	return ret;
474
}
475

    
476
/**
477
 * 饼状图
478
 * 数据格式:
479
 * [[
480
 *      ["图例1", "数据1"],
481
 *      ["图例2", "数据2"],
482
 *      ["图例3", "数据3"]
483
 * ]]
484
 */
485
function showJtaChart() {
486
	var url = "${contextPath}/protect/monitor/jta/refreshJsonData";
487
	var data = getJtaData(url, {});
488
	var count = 0;
489
	try {
490
		if(jtaChart) {
491
			jtaChart.destroy();
492
		}
493
	} catch (e) {
494
		
495
	}
496
	if(data.data.length == 0) {
497
		showChartNoData("#jta-chart-inner");
498
		return;
499
	} else {
500
		$("#jta-chart-inner").empty();
501
	}
502
	jtaChart = $.jqplot('jta-chart-inner', data.data, {
503
		grid: {
504
            drawBorder: false, 
505
            drawGridlines: false,
506
            background: '#C8E9FA',
507
            shadow: false
508
        },
509
		seriesColors: ["#4bb2c5", "#C5B47F", "#CC6666"],
510
		seriesDefaults:{
511
			renderer:$.jqplot.PieRenderer,
512
		    rendererOptions: {
513
		    	sliceMargin: 8,
514
		    	// 距离表格边框大小,间接影响饼状图圆大小
515
		    	padding: 5,
516
		    	startAngle: 180,
517
		      	sliceMargin: 4,
518
		      	showDataLabels: true,
519
		      	dataLabels: "value"
520
		    }
521
		},
522
		legend: {
523
            show: true,
524
            // 图例显示方向
525
            location: 's',
526
            // 显示位置(inside,outside)
527
            placement: 'outsideGrid',
528
            shrinkGrid: true,
529
            rendererOptions: {
530
            	// 图例显示为一行
531
            	numberRows : 1
532
            }
533
        }
534
	});
535
}
536

    
537

    
538
</script>
539
</head>
540
<body style="width: 100%; height: 100%;">
541
    <table class="grid" cellpadding="0" cellspacing="0">
542
        <tr>
543
            <td rowspan="2" width="25%" class="welcome-grid-cell-rowspan">
544
                <div class="welcome-grid-cell">
545
                    <div class="welcome-grid-cell-border-left">
546
                        <div class="welcome-grid-cell-border-right">
547
                            <div class="welcome-grid-cell-content">
548
                                <div class="welcome-grid-cell-title">
549
                                    <div class="welcome-grid-cell-title-text">基本信息</div>
550
                                    <div class="welcome-grid-cell-title-bar">
551
                                        <div class="welcome-grid-cell-title-icon">I</div>
552
                                    </div>
553
                                </div>
554
                                <div class="welcome-server-name">
555
                                	<div class="welcome-server-name-label">
556
	                                    <div class="welcome-server-name-label-content">主机名</div>
557
	                                    <div class="welcome-server-name-label-content" title="${osConfig.hostName}">${osConfig.hostName}</div>
558
                                    </div>
559
                                </div>
560
                                <dl class="welcome-basic-info">
561
                                    <dt>产品名称</dt>
562
                                    <dd title="${server.productName}">:${server.productName}</dd>
563
                                    <dt>产品版本</dt>
564
                                    <dd title="${server.productVersion}">:${server.productVersion}</dd>
565
                                    <dt>提供商</dt>
566
                                    <dd title="${server.vendor}"><a href="${server.vendorUrl}" target="_blank">${server.vendor}</a></dd>
567
                                    <dt>连接串</dt>
568
                                    <dd title="iiop://${server.host}:${server.port}">:iiop://${server.host}:${server.port}</dd>
569
                                    <dt>Domain 位置</dt>
570
                                    <dd title="${server.serverHome}">:${server.serverHome}</dd>
571
                                </dl>
572
                                <dl class="welcome-auth-info">
573
                                    <dt>客户名称</dt>
574
                                    <dd title="${server.licensee}">:${server.licensee}</dd>
575
                                    <dt>生产编号</dt>
576
                                    <dd title="${server.productNumber}">:${server.productNumber}</dd>
577
                                    <dt>CPU 授权数量</dt>
578
                                    <dd>:${server.cpuAmount == 0 ? '无限制' : server.cpuAmount}</dd>
579
                                    <dt>连接数授权数量</dt>
580
                                    <dd>:${server.connections == 0 ? '无限制' : server.connections}</dd>
581
                                    <dt>授权日期</dt>
582
                                    <dd title="${server.endDate == null ? '' : dateFmt.format(server.startDate) + '至' + dateFmt.format(server.endDate)}">:${server.endDate == null ? '无限制' : dateFmt.format(server.startDate) + '至' + dateFmt.format(server.endDate)}</dd>
583
                                </dl>
584
                            </div>
585
                        </div>
586
                    </div>
587
                </div>
588
            </td>
589
            <td width="50%">
590
                <div class="welcome-grid-cell">
591
                    <div class="welcome-grid-cell-border-left">
592
                        <div class="welcome-grid-cell-border-right">
593
                            <div class="welcome-grid-cell-content">
594
                                <div class="welcome-grid-cell-title">
595
                                    <div class="welcome-grid-cell-title-text">应用会话数</div>
596
                                    <div class="welcome-grid-cell-title-bar">
597
                                        <div class="welcome-grid-cell-title-icon">A</div>
598
                                    </div>
599
                                </div>
600
                              <div id="app-chart-inner" style="height:85%"><span>没有数据</span></div>
601
                            </div>
602
                        </div>
603
                    </div>
604
                </div>
605
            </td>
606
            <td width="25%">
607
                <div class="welcome-grid-cell">
608
                    <div class="welcome-grid-cell-border-left">
609
                        <div class="welcome-grid-cell-border-right">
610
                            <div class="welcome-grid-cell-content">
611
                                <div class="welcome-grid-cell-title">
612
                                    <div class="welcome-grid-cell-title-text">当前连接数</div>
613
                                    <div class="welcome-grid-cell-title-bar">
614
                                        <div class="welcome-grid-cell-title-icon">L</div>
615
                                    </div>
616
                                </div>
617
                                 <div id="http-chart-inner" style="height:80%"></div>
618
                            </div>
619
                        </div>
620
                    </div>
621
                </div>
622
            </td>
623
        </tr>
624
        <tr>
625
            <td>
626
                <div class="welcome-grid-cell">
627
                    <div class="welcome-grid-cell-border-left">
628
                        <div class="welcome-grid-cell-border-right">
629
                            <div class="welcome-grid-cell-content">
630
                                <div class="welcome-grid-cell-title">
631
                                    <div class="welcome-grid-cell-title-text">线程池</div>
632
                                    <div class="welcome-grid-cell-title-bar">
633
                                        <div class="welcome-grid-cell-title-icon">T</div>
634
                                    </div>
635
                                </div>
636
                                 <div id="thread-chart-inner" style="height:85%"></div>
637
                            </div>
638
                        </div>
639
                    </div>
640
                </div>
641
            </td>
642
            <td>
643
                <div class="welcome-grid-cell">
644
                    <div class="welcome-grid-cell-border-left">
645
                        <div class="welcome-grid-cell-border-right">
646
                            <div class="welcome-grid-cell-content">
647
                                <div class="welcome-grid-cell-title">
648
                                    <div class="welcome-grid-cell-title-text">内存·非堆</div>
649
                                    <div class="welcome-grid-cell-title-bar">
650
                                          <div class="welcome-grid-cell-title-icon">N</div>
651
                                    </div>
652
                                </div>
653
                                  <div id="non-heap-chart" style="height:85%"></div>
654
                            </div>
655
                        </div>
656
                    </div>
657
                </div>
658
            </td>
659
        </tr>
660
        <tr>
661
            <td>
662
                <div class="welcome-grid-cell">
663
                    <div class="welcome-grid-cell-border-left">
664
                        <div class="welcome-grid-cell-border-right">
665
                            <div class="welcome-grid-cell-content">
666
                                <div class="welcome-grid-cell-title">
667
                                    <div class="welcome-grid-cell-title-text">CPU</div>
668
                                    <div class="welcome-grid-cell-title-bar">
669
                                        <div class="welcome-grid-cell-title-icon">C</div>
670
                                    </div>
671
                                </div>
672
                                <div id="cpu-chart-inner" style="height:78%"></div>
673
                            </div>
674
                        </div>
675
                    </div>
676
                </div>
677
            </td>
678
            <td>
679
                <div class="welcome-grid-cell">
680
                    <div class="welcome-grid-cell-border-left">
681
                        <div class="welcome-grid-cell-border-right">
682
                            <div class="welcome-grid-cell-content">
683
                                <div class="welcome-grid-cell-title">
684
                                    <div class="welcome-grid-cell-title-text">内存·堆</div>
685
                                    <div class="welcome-grid-cell-title-bar">
686
                                        <div class="welcome-grid-cell-title-icon">H</div>
687
                                    </div>
688
                                </div>
689
                                <div id="memory-chart-inner" style="height:85%"></div>
690
                            </div>
691
                        </div>
692
                    </div>
693
                </div>
694
            </td>
695
            <td>
696
                <div class="welcome-grid-cell">
697
                    <div class="welcome-grid-cell-border-left">
698
                        <div class="welcome-grid-cell-border-right">
699
                            <div class="welcome-grid-cell-content">
700
                                <div class="welcome-grid-cell-title">
701
                                    <div class="welcome-grid-cell-title-text">事务</div>
702
                                    <div class="welcome-grid-cell-title-bar">
703
                                       <div class="welcome-grid-cell-title-icon">O</div>
704
                                    </div>
705
                                </div>
706
                                 <div id="jta-chart-inner" style="height:85%"></div>
707
                            </div>
708
                        </div>
709
                    </div>
710
                </div>
711
            </td>
712
        </tr>
713
    </table>
714
</body>
715
</html>
    (1-1/1)