Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
梦中观雨
cat
提交
a2f7b1f5
C
cat
项目概览
梦中观雨
/
cat
与 Fork 源项目一致
从无法访问的项目Fork
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
C
cat
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
a2f7b1f5
编写于
9月 16, 2015
作者:
Y
youyong205
浏览文件
操作
浏览文件
下载
差异文件
Merge pull request #879 from youyong205/master
refactor code
上级
061f9f55
f689c0a1
变更
13
隐藏空白更改
内联
并排
Showing
13 changed file
with
273 addition
and
22 deletion
+273
-22
cat-client/src/main/java/com/dianping/cat/status/StatusExtensionRegister.java
...java/com/dianping/cat/status/StatusExtensionRegister.java
+10
-4
cat-consumer/src/main/java/com/dianping/cat/consumer/heartbeat/HeartbeatAnalyzer.java
...om/dianping/cat/consumer/heartbeat/HeartbeatAnalyzer.java
+5
-1
cat-consumer/src/main/java/com/dianping/cat/consumer/metric/MetricConfigManager.java
...com/dianping/cat/consumer/metric/MetricConfigManager.java
+19
-0
cat-core/src/main/java/com/dianping/cat/service/IpService.java
...ore/src/main/java/com/dianping/cat/service/IpService.java
+0
-1
cat-home/src/main/java/com/dianping/cat/report/page/cross/Handler.java
...main/java/com/dianping/cat/report/page/cross/Handler.java
+11
-0
cat-home/src/main/java/com/dianping/cat/system/page/config/Action.java
...main/java/com/dianping/cat/system/page/config/Action.java
+2
-0
cat-home/src/main/java/com/dianping/cat/system/page/config/Handler.java
...ain/java/com/dianping/cat/system/page/config/Handler.java
+1
-0
cat-home/src/main/java/com/dianping/cat/system/page/config/JspViewer.java
...n/java/com/dianping/cat/system/page/config/JspViewer.java
+1
-1
cat-home/src/main/java/com/dianping/cat/system/page/config/processor/MetricConfigProcessor.java
...t/system/page/config/processor/MetricConfigProcessor.java
+4
-1
cat-home/src/main/java/com/dianping/cat/system/page/router/config/RouterConfigHandler.java
...ng/cat/system/page/router/config/RouterConfigHandler.java
+2
-2
cat-home/src/main/java/com/dianping/cat/system/page/router/config/RouterConfigManager.java
...ng/cat/system/page/router/config/RouterConfigManager.java
+26
-12
cat-home/src/main/webapp/WEB-INF/web-core.tld
cat-home/src/main/webapp/WEB-INF/web-core.tld
+191
-0
cat-home/src/main/webapp/js/baseGraph.js
cat-home/src/main/webapp/js/baseGraph.js
+1
-0
未找到文件。
cat-client/src/main/java/com/dianping/cat/status/StatusExtensionRegister.java
浏览文件 @
a2f7b1f5
...
...
@@ -5,14 +5,14 @@ import java.util.List;
public
class
StatusExtensionRegister
{
private
List
<
StatusExtension
>
m_extensions
=
new
ArrayList
<
StatusExtension
>();
public
static
StatusExtensionRegister
s_register
=
new
StatusExtensionRegister
();
public
static
StatusExtensionRegister
getInstance
()
{
return
s_register
;
}
private
List
<
StatusExtension
>
m_extensions
=
new
ArrayList
<
StatusExtension
>();
public
static
StatusExtensionRegister
s_register
=
new
StatusExtensionRegister
();
private
StatusExtensionRegister
()
{
}
...
...
@@ -27,4 +27,10 @@ public class StatusExtensionRegister {
m_extensions
.
add
(
monitor
);
}
}
public
void
unregister
(
StatusExtension
monitor
)
{
synchronized
(
this
)
{
m_extensions
.
remove
(
monitor
);
}
}
}
cat-consumer/src/main/java/com/dianping/cat/consumer/heartbeat/HeartbeatAnalyzer.java
浏览文件 @
a2f7b1f5
...
...
@@ -135,7 +135,11 @@ public class HeartbeatAnalyzer extends AbstractMessageAnalyzer<HeartbeatReport>
Period
period
=
buildHeartBeatInfo
(
machine
,
heartbeat
,
heartbeat
.
getTimestamp
());
if
(
period
!=
null
)
{
machine
.
getPeriods
().
add
(
period
);
List
<
Period
>
periods
=
machine
.
getPeriods
();
if
(
periods
.
size
()
<=
60
)
{
machine
.
getPeriods
().
add
(
period
);
}
}
}
...
...
cat-consumer/src/main/java/com/dianping/cat/consumer/metric/MetricConfigManager.java
浏览文件 @
a2f7b1f5
...
...
@@ -62,6 +62,25 @@ public class MetricConfigManager implements Initializable, LogEnabled {
return
domain
+
":"
+
type
+
":"
+
metricKey
;
}
public
boolean
deleteBatchDomainConfig
(
String
domain
)
{
Set
<
String
>
keys
=
new
HashSet
<
String
>();
Map
<
String
,
MetricItemConfig
>
metricItemConfigs
=
getMetricConfig
().
getMetricItemConfigs
();
for
(
Entry
<
String
,
MetricItemConfig
>
entry
:
metricItemConfigs
.
entrySet
())
{
String
currentKey
=
entry
.
getKey
();
if
(
currentKey
.
startsWith
(
domain
+
":Metric:"
))
{
keys
.
add
(
currentKey
);
}
}
for
(
String
key
:
keys
)
{
getMetricConfig
().
removeMetricItemConfig
(
key
);
}
return
storeConfig
();
}
public
boolean
deleteDomainConfig
(
String
key
)
{
getMetricConfig
().
removeMetricItemConfig
(
key
);
return
storeConfig
();
...
...
cat-core/src/main/java/com/dianping/cat/service/IpService.java
浏览文件 @
a2f7b1f5
...
...
@@ -263,7 +263,6 @@ public class IpService implements Initializable {
initForeignAreaMap
(
foreignAreaFile
);
initForeignIpTable
(
foreignIpFile
);
}
public
void
initIpTable
(
InputStream
ipFile
)
{
...
...
cat-home/src/main/java/com/dianping/cat/report/page/cross/Handler.java
浏览文件 @
a2f7b1f5
package
com.dianping.cat.report.page.cross
;
import
java.io.File
;
import
java.io.IOException
;
import
java.util.Date
;
import
javax.servlet.ServletException
;
import
org.unidal.helper.Files
;
import
org.unidal.lookup.annotation.Inject
;
import
org.unidal.lookup.util.StringUtils
;
import
org.unidal.web.mvc.PageHandler
;
import
org.unidal.web.mvc.annotation.InboundActionMeta
;
import
org.unidal.web.mvc.annotation.OutboundActionMeta
;
import
org.unidal.web.mvc.annotation.PayloadMeta
;
import
org.xml.sax.SAXException
;
import
com.dianping.cat.consumer.cross.CrossAnalyzer
;
import
com.dianping.cat.consumer.cross.model.entity.CrossReport
;
import
com.dianping.cat.consumer.cross.model.transform.DefaultSaxParser
;
import
com.dianping.cat.mvc.PayloadNormalizer
;
import
com.dianping.cat.report.ReportPage
;
import
com.dianping.cat.report.page.cross.display.HostInfo
;
...
...
@@ -51,6 +55,13 @@ public class Handler implements PageHandler<Context> {
ModelResponse
<
CrossReport
>
response
=
m_service
.
invoke
(
request
);
CrossReport
report
=
response
.
getModel
();
try
{
String
xml
=
Files
.
forIO
().
readFrom
(
new
File
(
"/Users/youyong/Desktop/cross.xml"
),
"utf-8"
);
report
=
DefaultSaxParser
.
parse
(
xml
);
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
}
return
report
;
}
else
{
throw
new
RuntimeException
(
"Internal error: no eligable cross service registered for "
+
request
+
"!"
);
...
...
cat-home/src/main/java/com/dianping/cat/system/page/config/Action.java
浏览文件 @
a2f7b1f5
...
...
@@ -62,6 +62,8 @@ public enum Action implements org.unidal.web.mvc.Action {
METRIC_RULE_ADD_OR_UPDATE_SUBMIT
(
"metricRuleAddSubmit"
),
METRIC_CONFIG_DELETE
(
"metricConfigDelete"
),
METRIC_CONFIG_BATCH_DELETE
(
"metricConfigBatchDelete"
),
METRIC_RULE_CONFIG_UPDATE
(
"metricRuleConfigUpdate"
),
...
...
cat-home/src/main/java/com/dianping/cat/system/page/config/Handler.java
浏览文件 @
a2f7b1f5
...
...
@@ -174,6 +174,7 @@ public class Handler implements PageHandler<Context> {
case
METRIC_RULE_ADD_OR_UPDATE_SUBMIT:
case
METRIC_CONFIG_LIST:
case
METRIC_CONFIG_DELETE:
case
METRIC_CONFIG_BATCH_DELETE:
case
METRIC_RULE_CONFIG_UPDATE:
m_metricConfigProcessor
.
process
(
action
,
payload
,
model
);
break
;
...
...
cat-home/src/main/java/com/dianping/cat/system/page/config/JspViewer.java
浏览文件 @
a2f7b1f5
...
...
@@ -69,8 +69,8 @@ public class JspViewer extends BaseJspViewer<SystemPage, Action, Context, Model>
case
METRIC_CONFIG_ADD_OR_UPDATE_SUBMIT:
return
JspFile
.
METRIC_CONFIG_ADD_OR_UPDATE_SUBMIT
.
getPath
();
case
METRIC_CONFIG_LIST:
return
JspFile
.
METRIC_CONFIG_LIST
.
getPath
();
case
METRIC_CONFIG_DELETE:
case
METRIC_CONFIG_BATCH_DELETE:
return
JspFile
.
METRIC_CONFIG_LIST
.
getPath
();
case
METRIC_RULE_CONFIG_UPDATE:
return
JspFile
.
METRIC_RULE_CONFIG_UPDATE
.
getPath
();
...
...
cat-home/src/main/java/com/dianping/cat/system/page/config/processor/MetricConfigProcessor.java
浏览文件 @
a2f7b1f5
...
...
@@ -157,6 +157,10 @@ public class MetricConfigProcessor extends BaseProcesser {
payload
.
getDomain
(),
payload
.
getType
(),
payload
.
getMetricKey
())));
metricConfigList
(
payload
,
model
);
break
;
case
METRIC_CONFIG_BATCH_DELETE:
model
.
setOpState
(
m_metricConfigManager
.
deleteBatchDomainConfig
(
payload
.
getDomain
()));
metricConfigList
(
payload
,
model
);
break
;
case
METRIC_RULE_CONFIG_UPDATE:
String
domainMetricRuleConfig
=
payload
.
getContent
();
if
(!
StringUtils
.
isEmpty
(
domainMetricRuleConfig
))
{
...
...
@@ -170,5 +174,4 @@ public class MetricConfigProcessor extends BaseProcesser {
throw
new
RuntimeException
(
"Error action name "
+
action
.
getName
());
}
}
}
cat-home/src/main/java/com/dianping/cat/system/page/router/config/RouterConfigHandler.java
浏览文件 @
a2f7b1f5
...
...
@@ -118,8 +118,8 @@ public class RouterConfigHandler implements LogEnabled {
processBackServer
(
servers
,
routerConfig
,
numbers
);
routerConfig
.
setStartTime
(
en
d
);
routerConfig
.
setEndTime
(
new
Date
(
end
.
getTime
()
+
TimeHelper
.
ONE_DAY
)
);
routerConfig
.
setStartTime
(
perio
d
);
routerConfig
.
setEndTime
(
end
);
return
routerConfig
;
}
...
...
cat-home/src/main/java/com/dianping/cat/system/page/router/config/RouterConfigManager.java
浏览文件 @
a2f7b1f5
...
...
@@ -186,20 +186,34 @@ public class RouterConfigManager implements Initializable, LogEnabled {
refreshReportInfo
();
}
private
void
refreshReportInfo
()
throws
DalException
,
SAXException
,
IO
Exception
{
private
void
refreshReportInfo
()
throws
Exception
{
Date
period
=
TimeHelper
.
getCurrentDay
(-
1
);
long
time
=
period
.
getTime
();
DailyReport
report
=
m_dailyReportDao
.
findByDomainNamePeriod
(
Constants
.
CAT
,
RouterConfigBuilder
.
ID
,
period
,
DailyReportEntity
.
READSET_FULL
);
long
modifyTime
=
report
.
getCreationDate
().
getTime
();
Pair
<
RouterConfig
,
Long
>
pair
=
m_routerConfigs
.
get
(
time
);
if
(
pair
==
null
||
modifyTime
>
pair
.
getValue
())
{
DailyReportContent
reportContent
=
m_dailyReportContentDao
.
findByPK
(
report
.
getId
(),
DailyReportContentEntity
.
READSET_FULL
);
RouterConfig
routerConfig
=
DefaultNativeParser
.
parse
(
reportContent
.
getContent
());
m_routerConfigs
.
put
(
time
,
new
Pair
<
RouterConfig
,
Long
>(
routerConfig
,
modifyTime
));
try
{
DailyReport
report
=
m_dailyReportDao
.
findByDomainNamePeriod
(
Constants
.
CAT
,
RouterConfigBuilder
.
ID
,
period
,
DailyReportEntity
.
READSET_FULL
);
long
modifyTime
=
report
.
getCreationDate
().
getTime
();
Pair
<
RouterConfig
,
Long
>
pair
=
m_routerConfigs
.
get
(
time
);
if
(
pair
==
null
||
modifyTime
>
pair
.
getValue
())
{
try
{
DailyReportContent
reportContent
=
m_dailyReportContentDao
.
findByPK
(
report
.
getId
(),
DailyReportContentEntity
.
READSET_FULL
);
RouterConfig
routerConfig
=
DefaultNativeParser
.
parse
(
reportContent
.
getContent
());
m_routerConfigs
.
put
(
time
,
new
Pair
<
RouterConfig
,
Long
>(
routerConfig
,
modifyTime
));
Cat
.
logEvent
(
"ReloadConfig"
,
"router"
);
}
catch
(
DalNotFoundException
e
)
{
// ignore
}
catch
(
Exception
e
)
{
throw
e
;
}
}
}
catch
(
DalNotFoundException
e
)
{
// ignore
}
catch
(
Exception
e
)
{
throw
e
;
}
}
...
...
cat-home/src/main/webapp/WEB-INF/web-core.tld
0 → 100644
浏览文件 @
a2f7b1f5
<?xml version="1.0" encoding="utf-8"?>
<taglib
xmlns=
"http://java.sun.com/xml/ns/javaee"
xmlns:xsi=
"http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation=
"http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-jsptaglibrary_2_1.xsd"
version=
"2.1"
>
<description>
web-core JSP tag library
</description>
<display-name>
web-core
</display-name>
<tlib-version>
1.2
</tlib-version>
<short-name>
w
</short-name>
<uri>
http://www.unidal.org/web/core
</uri>
<tag>
<description>
Errors tag of MVC framework.
</description>
<name>
errors
</name>
<tag-class>
org.unidal.web.jsp.tag.ErrorsTag
</tag-class>
<body-content>
JSP
</body-content>
<attribute>
<description></description>
<name>
bundle
</name>
<required>
false
</required>
<rtexprvalue>
true
</rtexprvalue>
<type>
class java.lang.String
</type>
</attribute>
<dynamic-attributes>
false
</dynamic-attributes>
</tag>
<tag>
<description>
Error tag of MVC framework.
</description>
<name>
error
</name>
<tag-class>
org.unidal.web.jsp.tag.ErrorTag
</tag-class>
<body-content>
JSP
</body-content>
<attribute>
<description></description>
<name>
code
</name>
<required>
true
</required>
<rtexprvalue>
true
</rtexprvalue>
<type>
class java.lang.String
</type>
</attribute>
<attribute>
<description></description>
<name>
enabled
</name>
<required>
false
</required>
<rtexprvalue>
true
</rtexprvalue>
<type>
boolean
</type>
</attribute>
<dynamic-attributes>
false
</dynamic-attributes>
</tag>
<function>
<description>
Min value of field value of list elements
</description>
<name>
min
</name>
<function-class>
org.unidal.web.jsp.function.CalculatorFunction
</function-class>
<function-signature>
int min(java.util.List, java.lang.String)
</function-signature>
<example>
${w:min(list, 'count')}
</example>
</function>
<function>
<description>
Max value of field value of list elements
</description>
<name>
max
</name>
<function-class>
org.unidal.web.jsp.function.CalculatorFunction
</function-class>
<function-signature>
int max(java.util.List, java.lang.String)
</function-signature>
<example>
${w:max(list, 'count')}
</example>
</function>
<function>
<description>
Sum of field value of list elements
</description>
<name>
sum
</name>
<function-class>
org.unidal.web.jsp.function.CalculatorFunction
</function-class>
<function-signature>
double sum(java.util.List, java.lang.String)
</function-signature>
<example>
${w:sum(list, 'amount')}
</example>
</function>
<function>
<description>
HTML encode
</description>
<name>
htmlEncode
</name>
<function-class>
org.unidal.web.jsp.function.CodecFunction
</function-class>
<function-signature>
java.lang.String htmlEncode(java.lang.String)
</function-signature>
<example>
${w:htmlEncode(str)}
</example>
</function>
<function>
<description>
URL decode
</description>
<name>
urlDecode
</name>
<function-class>
org.unidal.web.jsp.function.CodecFunction
</function-class>
<function-signature>
java.lang.String urlDecode(java.lang.String)
</function-signature>
<example>
${w:urlDecode(str)}
</example>
</function>
<function>
<description>
URL encode
</description>
<name>
urlEncode
</name>
<function-class>
org.unidal.web.jsp.function.CodecFunction
</function-class>
<function-signature>
java.lang.String urlEncode(java.lang.String)
</function-signature>
<example>
${w:urlEncode(str)}
</example>
</function>
<function>
<description>
Show checkbox from an object's properties in a form
</description>
<name>
showCheckbox
</name>
<function-class>
org.unidal.web.jsp.function.FormFunction
</function-class>
<function-signature>
java.lang.String showCheckbox(java.lang.String, java.lang.Object, java.lang.Object, java.lang.String, java.lang.String)
</function-signature>
<example>
${w:showCheckbox('groupBy', groupBy, payload.groupBy, 'name', 'description')}
</example>
</function>
<function>
<description>
Show multiple checkboxes from a list or array object's properties in a form
</description>
<name>
showCheckboxes
</name>
<function-class>
org.unidal.web.jsp.function.FormFunction
</function-class>
<function-signature>
java.lang.String showCheckboxes(java.lang.String, java.lang.Object, java.lang.Object, java.lang.String, java.lang.String)
</function-signature>
<example>
${w:showCheckboxes('groupBy', groupBys, payload.groupBy, 'name', 'description')}
</example>
</function>
<function>
<description>
Show select option from an object's properties in a form
</description>
<name>
showOption
</name>
<function-class>
org.unidal.web.jsp.function.FormFunction
</function-class>
<function-signature>
java.lang.String showOption(java.lang.Object, java.lang.Object, java.lang.String, java.lang.String)
</function-signature>
<example>
${w:showOption(groupBy, payload.groupBy, 'name', 'description')}
</example>
</function>
<function>
<description>
Show multiple select options from a list or array object's properties in a form
</description>
<name>
showOptions
</name>
<function-class>
org.unidal.web.jsp.function.FormFunction
</function-class>
<function-signature>
java.lang.String showOptions(java.lang.Object, java.lang.Object, java.lang.String, java.lang.String)
</function-signature>
<example>
${w:showOptions(groupBys, payload.groupBy, 'name', 'description')}
</example>
</function>
<function>
<description>
Show radio from an object's properties in a form
</description>
<name>
showRadio
</name>
<function-class>
org.unidal.web.jsp.function.FormFunction
</function-class>
<function-signature>
java.lang.String showRadio(java.lang.String, java.lang.Object, java.lang.Object, java.lang.String, java.lang.String)
</function-signature>
<example>
${w:showRadio('groupBy', groupBy, payload.groupBy, 'name', 'description')}
</example>
</function>
<function>
<description>
Show multiple radios from a list or array object's properties in a form
</description>
<name>
showRadios
</name>
<function-class>
org.unidal.web.jsp.function.FormFunction
</function-class>
<function-signature>
java.lang.String showRadios(java.lang.String, java.lang.Object, java.lang.Object, java.lang.String, java.lang.String)
</function-signature>
<example>
${w:showRadios('groupBy', groupBys, payload.groupBy, 'name', 'description')}
</example>
</function>
<function>
<description>
Show selected result of checkbox, radio or option from an object's properties in a form
</description>
<name>
showResult
</name>
<function-class>
org.unidal.web.jsp.function.FormFunction
</function-class>
<function-signature>
java.lang.Object showResult(java.lang.Object, java.lang.Object, java.lang.String, java.lang.String)
</function-signature>
<example>
${w:showResult(groupBys, payload.groupBy, 'name', 'description')}
</example>
</function>
<function>
<description>
Format object using message pattern
</description>
<name>
format
</name>
<function-class>
org.unidal.web.jsp.function.FormatFunction
</function-class>
<function-signature>
java.lang.String format(java.lang.Object, java.lang.String)
</function-signature>
<example>
${w:format(payload.dateFrom,'yyyy-MM-dd')}
</example>
</function>
<function>
<description>
Format number with message pattern with auto scaling
</description>
<name>
formatNumber
</name>
<function-class>
org.unidal.web.jsp.function.FormatFunction
</function-class>
<function-signature>
java.lang.String formatNumber(java.lang.Number, java.lang.String, java.lang.String)
</function-signature>
<example>
${w:formatNumber(12345, '0.#', 'B')}
</example>
</function>
<function>
<description>
Format number in percentage
</description>
<name>
percentage
</name>
<function-class>
org.unidal.web.jsp.function.FormatFunction
</function-class>
<function-signature>
java.lang.String percentage(int, int, int)
</function-signature>
<example>
${w:percentage(4, 11, 2)}
</example>
</function>
<function>
<description>
Shorten a message
</description>
<name>
shorten
</name>
<function-class>
org.unidal.web.jsp.function.FormatFunction
</function-class>
<function-signature>
java.lang.String shorten(java.lang.String, int)
</function-signature>
<example>
${w:shorten('123456789', 5)} will be '1...9'
</example>
</function>
<function>
<description>
Translate code based on a mapping table
</description>
<name>
translate
</name>
<function-class>
org.unidal.web.jsp.function.MappingFunction
</function-class>
<function-signature>
java.lang.String translate(java.lang.String, java.lang.String, java.lang.String, java.lang.String)
</function-signature>
<example>
${w:translate('2', '1|2|3', 'one|two|three', 'not found')}
</example>
</function>
<function>
<description>
Length of String, or array
</description>
<name>
length
</name>
<function-class>
org.unidal.web.jsp.function.ObjectFunction
</function-class>
<function-signature>
java.lang.Object length(java.lang.Object)
</function-signature>
<example>
${w:length(obj)}
</example>
</function>
<function>
<description>
size of colection, or map
</description>
<name>
size
</name>
<function-class>
org.unidal.web.jsp.function.ObjectFunction
</function-class>
<function-signature>
java.lang.Object size(java.lang.Object)
</function-signature>
<example>
${w:size(obj)}
</example>
</function>
<function>
<description>
Check if the value is equal or is one of value in the given values.
</description>
<name>
in
</name>
<function-class>
org.unidal.web.jsp.function.ObjectFunction
</function-class>
<function-signature>
boolean in(java.lang.Object, java.lang.Object)
</function-signature>
<example>
${w:in(values, value)}
</example>
</function>
</taglib>
cat-home/src/main/webapp/js/baseGraph.js
浏览文件 @
a2f7b1f5
...
...
@@ -249,6 +249,7 @@ function graphMetricChartForDay(container, data, datePair) {
}
return
Highcharts
.
dateFormat
(
'
%Y-%m-%d %H:%M
'
,
this
.
x
*
300000
+
Date
.
parse
(
datePair
[
this
.
series
.
name
]))
+
'
~
'
+
Highcharts
.
dateFormat
(
'
%H:%M
'
,
(
this
.
x
+
1
)
*
300000
+
Date
.
parse
(
datePair
[
this
.
series
.
name
]))
+
'
<br/>[
'
+
this
.
series
.
name
+
'
]
'
+
'
<b>
'
+
number
+
'
</b>
'
;
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录