Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
S
sunac_report
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
java-sunac-report
sunac_report
Commits
0a550977
Commit
0a550977
authored
Sep 14, 2017
by
mengxy
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
工作台代码
parent
d9aafc3f
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
916 additions
and
0 deletions
+916
-0
WorkbenchBean.java
src/main/java/com/ejweb/modules/workbench/Bean/WorkbenchBean.java
+275
-0
WorkbenchService.java
src/main/java/com/ejweb/modules/workbench/service/WorkbenchService.java
+143
-0
WorkbenchController.java
src/main/java/com/ejweb/modules/workbench/web/WorkbenchController.java
+147
-0
workbench.jsp
src/main/webapp/WEB-INF/views/modules/workbench/workbench.jsp
+322
-0
exporting.js
src/main/webapp/assets/highcharts/exporting.js
+27
-0
highcharts-zh_CN.js
src/main/webapp/assets/highcharts/highcharts-zh_CN.js
+2
-0
highcharts.js
src/main/webapp/assets/highcharts/highcharts.js
+0
-0
No files found.
src/main/java/com/ejweb/modules/workbench/Bean/WorkbenchBean.java
0 → 100644
View file @
0a550977
package
com
.
ejweb
.
modules
.
workbench
.
Bean
;
/**
* Created by mengxy on 2017/9/11.
*/
public
class
WorkbenchBean
{
//是否管理员
private
String
isAdmin
;
//处理状态
private
String
processStatus
;
//时间段
private
String
startDate
;
private
String
endDate
;
//举报状态
private
int
repStatusTotal
=
0
;
private
int
unProcess
=
0
;
private
int
processing
=
0
;
private
int
processed
=
0
;
//举报结果
private
int
repResultTotal
=
0
;
private
int
invalid
=
0
;
private
int
complainNum
=
0
;
private
int
verified
=
0
;
//总体
private
int
total
=
0
;
private
int
weChat
=
0
;
private
int
oa
=
0
;
private
int
supplier
=
0
;
private
int
web
=
0
;
private
int
offline
=
0
;
private
int
email
=
0
;
private
int
sunacE
=
0
;
private
int
phone
=
0
;
//举报类型
private
int
sale
=
0
;
private
int
project
=
0
;
private
int
cost
=
0
;
private
int
forMining
=
0
;
private
int
manpower
=
0
;
private
int
tenement
=
0
;
private
int
complain
=
0
;
public
WorkbenchBean
()
{
}
public
int
getRepStatusTotal
()
{
return
repStatusTotal
;
}
public
int
getSupplier
()
{
return
supplier
;
}
public
void
setSupplier
(
int
supplier
)
{
this
.
supplier
=
supplier
;
}
public
int
getOffline
()
{
return
offline
;
}
public
void
setOffline
(
int
offline
)
{
this
.
offline
=
offline
;
}
public
int
getSunacE
()
{
return
sunacE
;
}
public
void
setSunacE
(
int
sunacE
)
{
this
.
sunacE
=
sunacE
;
}
public
void
setRepStatusTotal
(
int
repStatusTotal
)
{
this
.
repStatusTotal
=
repStatusTotal
;
}
public
int
getUnProcess
()
{
return
unProcess
;
}
public
void
setUnProcess
(
int
unProcess
)
{
this
.
unProcess
=
unProcess
;
}
public
int
getProcessing
()
{
return
processing
;
}
public
void
setProcessing
(
int
processing
)
{
this
.
processing
=
processing
;
}
public
int
getProcessed
()
{
return
processed
;
}
public
void
setProcessed
(
int
processed
)
{
this
.
processed
=
processed
;
}
public
int
getRepResultTotal
()
{
return
repResultTotal
;
}
public
void
setRepResultTotal
(
int
repResultTotal
)
{
this
.
repResultTotal
=
repResultTotal
;
}
public
int
getInvalid
()
{
return
invalid
;
}
public
void
setInvalid
(
int
invalid
)
{
this
.
invalid
=
invalid
;
}
public
int
getComplainNum
()
{
return
complainNum
;
}
public
void
setComplainNum
(
int
complainNum
)
{
this
.
complainNum
=
complainNum
;
}
public
int
getVerified
()
{
return
verified
;
}
public
void
setVerified
(
int
verified
)
{
this
.
verified
=
verified
;
}
public
int
getTotal
()
{
return
total
;
}
public
void
setTotal
(
int
total
)
{
this
.
total
=
total
;
}
public
int
getWeChat
()
{
return
weChat
;
}
public
void
setWeChat
(
int
weChat
)
{
this
.
weChat
=
weChat
;
}
public
int
getOa
()
{
return
oa
;
}
public
void
setOa
(
int
oa
)
{
this
.
oa
=
oa
;
}
public
int
getWeb
()
{
return
web
;
}
public
void
setWeb
(
int
web
)
{
this
.
web
=
web
;
}
public
int
getEmail
()
{
return
email
;
}
public
void
setEmail
(
int
email
)
{
this
.
email
=
email
;
}
public
int
getPhone
()
{
return
phone
;
}
public
void
setPhone
(
int
phone
)
{
this
.
phone
=
phone
;
}
public
int
getSale
()
{
return
sale
;
}
public
void
setSale
(
int
sale
)
{
this
.
sale
=
sale
;
}
public
int
getProject
()
{
return
project
;
}
public
void
setProject
(
int
project
)
{
this
.
project
=
project
;
}
public
int
getCost
()
{
return
cost
;
}
public
void
setCost
(
int
cost
)
{
this
.
cost
=
cost
;
}
public
int
getForMining
()
{
return
forMining
;
}
public
void
setForMining
(
int
forMining
)
{
this
.
forMining
=
forMining
;
}
public
int
getManpower
()
{
return
manpower
;
}
public
void
setManpower
(
int
manpower
)
{
this
.
manpower
=
manpower
;
}
public
int
getTenement
()
{
return
tenement
;
}
public
void
setTenement
(
int
tenement
)
{
this
.
tenement
=
tenement
;
}
public
int
getComplain
()
{
return
complain
;
}
public
void
setComplain
(
int
complain
)
{
this
.
complain
=
complain
;
}
public
String
getStartDate
()
{
return
startDate
;
}
public
void
setStartDate
(
String
startDate
)
{
this
.
startDate
=
startDate
;
}
public
String
getEndDate
()
{
return
endDate
;
}
public
void
setEndDate
(
String
endDate
)
{
this
.
endDate
=
endDate
;
}
public
String
getIsAdmin
()
{
return
isAdmin
;
}
public
void
setIsAdmin
(
String
isAdmin
)
{
this
.
isAdmin
=
isAdmin
;
}
public
String
getProcessStatus
()
{
return
processStatus
;
}
public
void
setProcessStatus
(
String
processStatus
)
{
this
.
processStatus
=
processStatus
;
}
}
src/main/java/com/ejweb/modules/workbench/service/WorkbenchService.java
0 → 100644
View file @
0a550977
package
com
.
ejweb
.
modules
.
workbench
.
service
;
import
com.ejweb.core.service.CrudService
;
import
com.ejweb.core.utils.DateUtils
;
import
com.ejweb.modules.report.dao.ReportDao
;
import
com.ejweb.modules.report.entity.ReportEntity
;
import
com.ejweb.modules.workbench.Bean.WorkbenchBean
;
import
org.apache.commons.lang3.StringUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
java.text.DateFormat
;
import
java.text.SimpleDateFormat
;
import
java.util.Calendar
;
import
java.util.HashMap
;
import
java.util.List
;
/**
* Created by mengxy on 2017/9/11.
*/
@Service
public
class
WorkbenchService
extends
CrudService
<
ReportDao
,
ReportEntity
>
{
@Autowired
private
ReportDao
reportDao
;
public
WorkbenchBean
getWorkbench
(
WorkbenchBean
workbench
)
throws
Exception
{
// WorkbenchBean workbench = new WorkbenchBean();
if
(
StringUtils
.
isBlank
(
workbench
.
getStartDate
())
&&
StringUtils
.
isBlank
(
workbench
.
getEndDate
())){
workbench
.
setEndDate
(
DateUtils
.
getDate
());
DateFormat
df
=
new
SimpleDateFormat
(
"yyyy-MM-dd"
);
Calendar
c
=
Calendar
.
getInstance
();
c
.
setTime
(
df
.
parse
(
workbench
.
getEndDate
()));
c
.
set
(
Calendar
.
DATE
,
c
.
get
(
Calendar
.
DATE
)-
30
);
String
startDate
=
df
.
format
(
c
.
getTime
());
workbench
.
setStartDate
(
startDate
);
}
else
if
(
StringUtils
.
isNotBlank
(
workbench
.
getStartDate
())
&&
StringUtils
.
isBlank
(
workbench
.
getEndDate
())){
workbench
.
setEndDate
(
DateUtils
.
getDate
());
}
else
if
(
StringUtils
.
isBlank
(
workbench
.
getStartDate
())
&&
StringUtils
.
isNotBlank
(
workbench
.
getEndDate
())){
workbench
.
setStartDate
(
"2017-09-12"
);
}
List
<
HashMap
>
results
=
reportDao
.
getReportResult
(
workbench
);
//举报结果
for
(
HashMap
res:
results
)
{
if
(
StringUtils
.
isNotBlank
((
String
)
res
.
get
(
"deal_result"
))){
if
(
"1"
.
equals
((
String
)
res
.
get
(
"deal_result"
))){
//投诉
workbench
.
setComplainNum
(
Integer
.
valueOf
(
String
.
valueOf
(
res
.
get
(
"COUNT(deal_result)"
))));
}
else
if
(
"2"
.
equals
((
String
)
res
.
get
(
"deal_result"
))){
//无效
workbench
.
setInvalid
(
Integer
.
valueOf
(
String
.
valueOf
(
res
.
get
(
"COUNT(deal_result)"
))));
}
else
if
(
"3"
.
equals
((
String
)
res
.
get
(
"deal_result"
))){
//属实
workbench
.
setVerified
(
Integer
.
valueOf
(
String
.
valueOf
(
res
.
get
(
"COUNT(deal_result)"
))));
}
}
}
workbench
.
setRepResultTotal
(
workbench
.
getComplainNum
()+
workbench
.
getInvalid
()+
workbench
.
getVerified
());
List
<
HashMap
>
statusList
=
reportDao
.
getReportStatus
(
workbench
);
//举报状态
for
(
HashMap
status:
statusList
){
if
(
StringUtils
.
isNotBlank
((
String
)
status
.
get
(
"report_status"
))){
if
(
"1"
.
equals
(
String
.
valueOf
(
status
.
get
(
"report_status"
)))){
//处理中
workbench
.
setProcessing
(
Integer
.
valueOf
(
String
.
valueOf
(
status
.
get
(
"COUNT(report_status)"
))));
}
else
if
(
"2"
.
equals
(
String
.
valueOf
(
status
.
get
(
"report_status"
)))){
//已处理
workbench
.
setProcessed
(
Integer
.
valueOf
(
String
.
valueOf
(
status
.
get
(
"COUNT(report_status)"
))));
}
else
if
(
"0"
.
equals
(
String
.
valueOf
(
status
.
get
(
"report_status"
)))){
//未处理
workbench
.
setUnProcess
(
Integer
.
valueOf
(
String
.
valueOf
(
status
.
get
(
"COUNT(report_status)"
))));
}
}
}
workbench
.
setRepStatusTotal
(
workbench
.
getUnProcess
()+
workbench
.
getProcessing
()+
workbench
.
getProcessed
());
List
<
HashMap
>
types
=
reportDao
.
getReportType
(
workbench
);
for
(
HashMap
type:
types
){
if
(
StringUtils
.
isNotBlank
((
String
)
type
.
get
(
"supplement_type"
))){
if
(
"1"
.
equals
((
String
)
type
.
get
(
"supplement_type"
))){
//营销
workbench
.
setSale
(
Integer
.
valueOf
(
String
.
valueOf
(
type
.
get
(
"COUNT(supplement_type)"
))));
}
else
if
(
"2"
.
equals
((
String
)
type
.
get
(
"supplement_type"
))){
//工程
workbench
.
setProject
(
Integer
.
valueOf
(
String
.
valueOf
(
type
.
get
(
"COUNT(supplement_type)"
))));
}
else
if
(
"3"
.
equals
(
String
.
valueOf
(
type
.
get
(
"supplement_type"
)))){
//成本
workbench
.
setCost
(
Integer
.
valueOf
(
String
.
valueOf
(
type
.
get
(
"COUNT(supplement_type)"
))));
}
else
if
(
"4"
.
equals
(
String
.
valueOf
(
type
.
get
(
"supplement_type"
)))){
//招采
workbench
.
setForMining
(
Integer
.
valueOf
(
String
.
valueOf
(
type
.
get
(
"COUNT(supplement_type)"
))));
}
else
if
(
"5"
.
equals
(
String
.
valueOf
(
type
.
get
(
"supplement_type"
)))){
//人力
workbench
.
setManpower
(
Integer
.
valueOf
(
String
.
valueOf
(
type
.
get
(
"COUNT(supplement_type)"
))));
}
else
if
(
"6"
.
equals
(
String
.
valueOf
(
type
.
get
(
"supplement_type"
)))){
//物业
workbench
.
setTenement
(
Integer
.
valueOf
(
String
.
valueOf
(
type
.
get
(
"COUNT(supplement_type)"
))));
}
else
if
(
"7"
.
equals
(
String
.
valueOf
(
type
.
get
(
"supplement_type"
)))){
//投诉
workbench
.
setComplain
(
Integer
.
valueOf
(
String
.
valueOf
(
type
.
get
(
"COUNT(supplement_type)"
))));
}
}
}
List
<
HashMap
>
totals
=
reportDao
.
getTotal
(
workbench
);
for
(
HashMap
total:
totals
){
if
(
StringUtils
.
isNotBlank
((
String
)
total
.
get
(
"report_source"
))){
if
(
"web"
.
equals
((
String
)
total
.
get
(
"report_source"
))){
//官网
workbench
.
setWeb
(
Integer
.
valueOf
(
String
.
valueOf
(
total
.
get
(
"COUNT(report_source)"
))));
}
else
if
(
"oa"
.
equals
((
String
)
total
.
get
(
"report_source"
))){
//融创oa
workbench
.
setOa
(
Integer
.
valueOf
(
String
.
valueOf
(
total
.
get
(
"COUNT(report_source)"
))));
}
else
if
(
"supplier"
.
equals
(
String
.
valueOf
(
total
.
get
(
"report_source"
)))){
//供应商
workbench
.
setSupplier
(
Integer
.
valueOf
(
String
.
valueOf
(
total
.
get
(
"COUNT(report_source)"
))));
}
else
if
(
"wechat"
.
equals
(
String
.
valueOf
(
total
.
get
(
"report_source"
)))){
//微信公众号
workbench
.
setWeChat
(
Integer
.
valueOf
(
String
.
valueOf
(
total
.
get
(
"COUNT(report_source)"
))));
}
else
if
(
"sunacE:"
.
equals
(
String
.
valueOf
(
total
.
get
(
"report_source"
)))){
//融E
workbench
.
setSunacE
(
Integer
.
valueOf
(
String
.
valueOf
(
total
.
get
(
"COUNT(report_source)"
))));
}
else
if
(
"offline"
.
equals
(
String
.
valueOf
(
total
.
get
(
"report_source"
)))){
//线下扫码
workbench
.
setOffline
(
Integer
.
valueOf
(
String
.
valueOf
(
total
.
get
(
"COUNT(report_source)"
))));
}
else
if
(
"tel"
.
equals
(
String
.
valueOf
(
total
.
get
(
"report_source"
)))){
//电话
workbench
.
setPhone
(
Integer
.
valueOf
(
String
.
valueOf
(
total
.
get
(
"COUNT(report_source)"
))));
}
else
if
(
"email:"
.
equals
((
String
)
total
.
get
(
"report_source"
))){
//邮件
workbench
.
setEmail
(
Integer
.
valueOf
(
String
.
valueOf
(
total
.
get
(
"COUNT(report_source)"
))));
}
}
}
workbench
.
setTotal
(
workbench
.
getWeb
()+
workbench
.
getOa
()+
workbench
.
getSupplier
()+
workbench
.
getWeChat
()+
workbench
.
getSunacE
()+
workbench
.
getOffline
()+
workbench
.
getPhone
()+
workbench
.
getEmail
());
return
workbench
;
}
public
List
<
ReportEntity
>
getRepList
(
WorkbenchBean
benchBean
)
throws
Exception
{
return
reportDao
.
getRepList
(
benchBean
);
}
}
src/main/java/com/ejweb/modules/workbench/web/WorkbenchController.java
0 → 100644
View file @
0a550977
package
com
.
ejweb
.
modules
.
workbench
.
web
;
import
com.alibaba.fastjson.JSONObject
;
import
com.ejweb.core.base.BaseController
;
import
com.ejweb.core.utils.StringUtils
;
import
com.ejweb.modules.report.entity.ReportEntity
;
import
com.ejweb.modules.report.service.ReportService
;
import
com.ejweb.modules.sys.entity.User
;
import
com.ejweb.modules.sys.utils.UserUtils
;
import
com.ejweb.modules.workbench.Bean.WorkbenchBean
;
import
com.ejweb.modules.workbench.service.WorkbenchService
;
import
org.apache.shiro.authz.annotation.RequiresPermissions
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Controller
;
import
org.springframework.ui.Model
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.ResponseBody
;
import
java.util.List
;
/**
* Created by mengxy on 2017/9/12.
*/
@Controller
@RequestMapping
(
"${adminPath}/workbench"
)
public
class
WorkbenchController
extends
BaseController
{
@Autowired
private
WorkbenchService
workbenchService
;
@Autowired
private
ReportService
reportService
;
@RequiresPermissions
(
"workbench:view"
)
@RequestMapping
(
value
={
"list"
,
""
})
public
String
getWorkbench
(
Model
model
,
WorkbenchBean
bean
){
WorkbenchBean
workbench
;
try
{
User
user
=
UserUtils
.
getUser
();
bean
=
getWorkbenchByUser
(
user
,
bean
);
if
(
StringUtils
.
isBlank
(
bean
.
getProcessStatus
())
||
"0"
.
equals
(
bean
.
getProcessStatus
())){
bean
.
setProcessStatus
(
"0"
);
}
else
if
(
"1"
.
equals
(
bean
.
getProcessStatus
())){
bean
.
setProcessStatus
(
"1"
);
}
List
<
ReportEntity
>
repList
=
workbenchService
.
getRepList
(
bean
);
model
.
addAttribute
(
"workbench"
,
bean
);
model
.
addAttribute
(
"repList"
,
repList
);
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
}
return
"modules/workbench/workbench"
;
}
@RequestMapping
(
"/getHighcharts"
)
@ResponseBody
public
JSONObject
getHighcharts
(
WorkbenchBean
bean
){
JSONObject
res
=
new
JSONObject
();
try
{
User
user
=
UserUtils
.
getUser
();
bean
=
getWorkbenchByUser
(
user
,
bean
);
res
.
put
(
"bench"
,
bean
);
//举报状态
res
.
put
(
"unProcess"
,
bean
.
getUnProcess
());
res
.
put
(
"processing"
,
bean
.
getProcessing
());
res
.
put
(
"processed"
,
bean
.
getProcessed
());
//举报结果
res
.
put
(
"invalid"
,
bean
.
getInvalid
());
res
.
put
(
"complainNum"
,
bean
.
getComplainNum
());
res
.
put
(
"verified"
,
bean
.
getVerified
());
res
.
put
(
"startDate"
,
bean
.
getStartDate
());
res
.
put
(
"endDate"
,
bean
.
getEndDate
());
//举报类型
res
.
put
(
"sale"
,
bean
.
getSale
());
res
.
put
(
"project"
,
bean
.
getProject
());
res
.
put
(
"cost"
,
bean
.
getCost
());
res
.
put
(
"forMining"
,
bean
.
getForMining
());
res
.
put
(
"manpower"
,
bean
.
getManpower
());
res
.
put
(
"tenement"
,
bean
.
getTenement
());
res
.
put
(
"complain"
,
bean
.
getComplain
());
res
.
put
(
"startDate"
,
bean
.
getStartDate
());
res
.
put
(
"endDate"
,
bean
.
getEndDate
());
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
}
return
res
;
}
// @RequestMapping("/getRepResult")
// @ResponseBody
// public JSONObject getRepResult(WorkbenchBean bean){
// JSONObject res = new JSONObject();
// try {
// User user = UserUtils.getUser();
// bean = getWorkbenchByUser(user, bean);
// res.put("invalid",bean.getInvalid());
// res.put("complainNum",bean.getComplainNum());
// res.put("verified",bean.getVerified());
// res.put("startDate",bean.getStartDate());
// res.put("endDate",bean.getEndDate());
// } catch (Exception e) {
// e.printStackTrace();
// }
// return res;
// }
// @RequestMapping("/getRepType")
// @ResponseBody
// public JSONObject getRepType(WorkbenchBean bean){
// JSONObject res = new JSONObject();
// try {
// User user = UserUtils.getUser();
// bean = getWorkbenchByUser(user, bean);
// res.put("sale",bean.getSale());
// res.put("project",bean.getProject());
// res.put("cost",bean.getCost());
// res.put("forMining",bean.getForMining());
// res.put("manpower",bean.getManpower());
// res.put("tenement",bean.getTenement());
// res.put("complain",bean.getComplain());
// res.put("startDate",bean.getStartDate());
// res.put("endDate",bean.getEndDate());
// } catch (Exception e) {
// e.printStackTrace();
// }
// return res;
// }
public
WorkbenchBean
getWorkbenchByUser
(
User
user
,
WorkbenchBean
bean
){
if
(
user
!=
null
)
{
try
{
//判断登录人的角色
String
roleName
=
reportService
.
findRole
(
user
);
if
(
StringUtils
.
isNotBlank
(
roleName
))
{
if
(!
roleName
.
equals
(
"系统管理员"
))
{
bean
.
setIsAdmin
(
user
.
getId
());
}
}
bean
=
workbenchService
.
getWorkbench
(
bean
);
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
}
}
return
bean
;
}
}
src/main/webapp/WEB-INF/views/modules/workbench/workbench.jsp
0 → 100644
View file @
0a550977
<
%@
page
contentType=
"text/html;charset=UTF-8"
%
>
<
%@
include
file=
"/WEB-INF/views/include/taglib.jsp"
%
>
<html>
<head>
<title>
工作台
</title>
<meta
name=
"decorator"
content=
"default"
/>
<script
src=
"${pageContext.request.contextPath}/assets/jquery/jquery-1.8.3.js"
></script>
<script
src=
"${pageContext.request.contextPath}/assets/highcharts/highcharts.js"
></script>
<script
src=
"${pageContext.request.contextPath}/assets/highcharts/exporting.js"
></script>
<script
src=
"${pageContext.request.contextPath}/assets/highcharts/highcharts-zh_CN.js"
></script>
<script
src=
"${pageContext.request.contextPath}/assets/My97DatePicker/WdatePicker.js"
></script>
<script>
$
(
function
()
{
var
startDate
=
$
(
"#startDate"
).
val
();
var
endDate
=
$
(
"#endDate"
).
val
();
var
start
=
startDate
.
substring
(
5
).
replace
(
"-"
,
"."
);
var
end
=
endDate
.
substring
(
5
).
replace
(
"-"
,
"."
);
$
.
ajax
({
type
:
"POST"
,
dataType
:
"JSON"
,
data
:
{
"startDate"
:
startDate
,
"endDate"
:
endDate
},
url
:
"getHighcharts.action"
,
success
:
function
(
result
)
{
$
(
'#repStatus'
).
highcharts
({
navigation
:
{
buttonOptions
:
{
enabled
:
false
}
},
//去掉下载标志
credits
:
{
text
:
''
,
href
:
''
},
//去掉版权信息
chart
:
{
plotBackgroundColor
:
null
,
plotBorderWidth
:
null
,
plotShadow
:
false
,
spacingLeft
:
0
},
title
:
{
//主标题
style
:
{
"color"
:
"#333333"
,
"fontSize"
:
"15px"
},
text
:
'举报状态('
+
start
+
'-'
+
end
+
')'
},
subtitle
:
{
//副标题
align
:
'right'
,
text
:
'总数 : '
+
result
.
bench
.
repStatusTotal
+
'<br/><br/>未处理 : '
+
result
.
unProcess
+
'<br/><br/>核查中 : '
+
result
.
processing
+
'<br/><br/>已处理 : '
+
result
.
processed
,
useHTML
:
true
,
verticalAlign
:
'top'
,
x
:
-
5
,
y
:
80
,
},
// legend : {
// align: 'left'
// },
tooltip
:
{
headerFormat
:
'{series.name}<br>'
,
pointFormat
:
'{point.name}: <b>{point.percentage:.1f}%</b>'
},
plotOptions
:
{
pie
:
{
allowPointSelect
:
true
,
cursor
:
'pointer'
,
dataLabels
:
{
enabled
:
false
},
showInLegend
:
true
}
},
series
:
[{
type
:
'pie'
,
name
:
'举报'
,
data
:
[
[
'未处理'
,
result
.
unProcess
],
[
'核查中'
,
result
.
processing
],
[
'已处理'
,
result
.
processed
],
// {
// name: 'Chrome',
// y: 12.8,
// sliced: true,
// selected: true
// },
]
}]
});
$
(
'#repType'
).
highcharts
({
navigation
:
{
buttonOptions
:
{
enabled
:
false
}
},
credits
:
{
text
:
''
,
href
:
''
},
//去掉版权信息
chart
:
{
type
:
'column'
},
title
:
{
text
:
''
},
xAxis
:
[{
categories
:
[
'营销'
,
'工程'
,
'成本'
,
'招采'
,
'人力'
,
'物业'
,
'投诉'
],
labels
:{
enabled
:
false
},
crosshair
:
true
}],
yAxis
:
{
min
:
0
,
allowDecimals
:
false
,
title
:
{
text
:
'人数'
}
},
tooltip
:
{
headerFormat
:
'<span style="font-size:10px"></span><table>'
,
pointFormat
:
'<tr><td style="color:{series.color};padding:0">{series.name}: </td>'
+
'<td style="padding:0"><b>{point.y:.0f} </b></td></tr>'
,
footerFormat
:
'</table>'
,
shared
:
true
,
useHTML
:
true
},
plotOptions
:
{
column
:
{
pointPadding
:
0.2
,
borderWidth
:
0
}
},
series
:
[{
name
:
'营销'
,
data
:
[
result
.
sale
]
},
{
name
:
'工程'
,
data
:
[
result
.
project
]
},
{
name
:
'成本'
,
data
:
[
result
.
cost
]
},
{
name
:
'招采'
,
data
:
[
result
.
forMining
]
},
{
name
:
'人力'
,
data
:
[
result
.
manpower
]
},
{
name
:
'物业'
,
data
:
[
result
.
tenement
]
},
{
name
:
'投诉'
,
data
:
[
result
.
complain
]
}
]
});
$
(
'#repResult'
).
highcharts
({
navigation
:
{
buttonOptions
:
{
enabled
:
false
}
},
//去掉下载标志
credits
:
{
text
:
''
,
href
:
''
},
//去掉版权信息
chart
:
{
plotBackgroundColor
:
null
,
plotBorderWidth
:
null
,
plotShadow
:
false
},
title
:
{
//主标题
style
:
{
"color"
:
"#333333"
,
"fontSize"
:
"15px"
},
text
:
'举报结果('
+
start
+
'-'
+
end
+
')'
},
subtitle
:
{
//副标题
align
:
'right'
,
text
:
'总数 : '
+
result
.
bench
.
repResultTotal
+
'<br/><br/>无效 : '
+
result
.
invalid
+
'<br/><br/>投诉 : '
+
result
.
complainNum
+
'<br/><br/>属实 : '
+
result
.
verified
,
useHTML
:
true
,
verticalAlign
:
'top'
,
x
:
-
5
,
y
:
80
,
},
tooltip
:
{
headerFormat
:
'{series.name}<br>'
,
pointFormat
:
'{point.name}: <b>{point.percentage:.1f}%</b>'
},
plotOptions
:
{
pie
:
{
allowPointSelect
:
true
,
cursor
:
'pointer'
,
dataLabels
:
{
enabled
:
false
},
showInLegend
:
true
}
},
series
:
[{
type
:
'pie'
,
name
:
'举报'
,
data
:
[
[
'无效'
,
result
.
invalid
],
[
'投诉'
,
result
.
complainNum
],
[
'属实'
,
result
.
verified
],
]
}]
});
}
});
});
</script>
</head>
<body>
<form:form
id=
"searchForm"
modelAttribute=
""
action=
"${ctx}/workbench/list"
method=
"post"
class=
"breadcrumb form-search"
>
<
%
--
<
input
id=
"pageNo"
name=
"pageNo"
type=
"hidden"
value=
"${page.pageNo}"
/>
--%>
<
%
--
<
input
id=
"pageSize"
name=
"pageSize"
type=
"hidden"
value=
"${page.pageSize}"
/>
--%>
<
%
--
<
input
id=
"flag"
name=
"flag"
type=
"hidden"
value=
"${flag}"
/>
--%>
<ul
class=
"ul-form"
>
<li><label><h3>
工作台
</h3></label></li>
<li
class=
"btns"
style=
"float: right"
>
<label
style=
"width:auto;"
>
<input
id=
"btnSubmit"
class=
"btn btn-primary"
type=
"submit"
value=
"查询"
/>
</label>
</li>
<li
style=
"float: right"
><label>
至:
</label><input
id=
"endDate"
name=
"endDate"
readonly=
"readonly"
type=
"text"
maxlength=
"200"
class=
"Wdate"
style=
"width: auto"
onFocus=
"WdatePicker({lang:'zh-cn'})"
value=
"${workbench.endDate}"
/></li>
<li
style=
"float: right"
><label>
日期:
</label><input
id=
"startDate"
name=
"startDate"
readonly=
"readonly"
type=
"text"
maxlength=
"200"
class=
"Wdate"
style=
"width: auto"
onFocus=
"WdatePicker({lang:'zh-cn'})"
value=
"${workbench.startDate}"
/></li>
</ul>
<ul
class=
"ul-form"
>
<div>
<div
id=
"repStatus"
style=
"min-width:40%;height:280px;float:left;background-color:#FFFFFF "
class=
"breadcrumb form-search"
></div>
<div
style=
"min-width:54%;height:280px;float:right;background-color: #FFFFFF"
class=
"breadcrumb form-search"
>
<li><h5>
总体
</h5></li>
<br/><br/>
<table>
<tr
height=
"60"
>
<td
style=
"width: 10% "
></td>
<td
style=
"width: 10%"
>
微信公众号
${workbench.weChat}
</td>
<td
style=
"width: 10%"
>
官网
${workbench.web}
</td>
<td
style=
"width: 10%"
>
融E
${workbench.sunacE}
</td>
</tr>
<tr
height=
"60"
>
<td
style=
"width: 10%"
><h4>
${workbench.total}
</h4>
举报事件
</td>
<td>
融创OA系统
${workbench.oa}
</td>
<td>
线下扫码
${workbench.offline}
</td>
<td>
电话
${workbench.phone}
</td>
</tr>
<tr
height=
"60"
>
<td
style=
"width: 10% "
></td>
<td>
供应商系统
${workbench.supplier}
</td>
<td>
邮件
${workbench.email}
</td>
<td></td>
</tr>
</table>
</div>
</div>
</ul>
<ul
class=
"ul-form"
>
<div
style=
"background-color: #FFFFFF"
>
<div
id=
"repResult"
style=
"min-width:40%;height:280px;float:left;background-color:#FFFFFF "
class=
"breadcrumb form-search"
></div>
<div
id=
"repType"
style=
"min-width:54%;height:280px;float:right;background-color: #FFFFFF"
class=
"breadcrumb form-search"
></div>
</div>
</ul>
</form:form>
<ul
class=
"nav nav-tabs"
>
<li
<
c:if
test=
"${workbench.processStatus eq '0'}"
>
class="active"
</c:if>
>
<a
href=
"${ctx}/workbench/list?processStatus=0&startDate=${workbench.startDate}&endDate=${workbench.endDate}"
>
未处理举报
</a></li>
<li
<
c:if
test=
"${workbench.processStatus eq '1'}"
>
class="active"
</c:if>
>
<a
href=
"${ctx}/workbench/list?processStatus=1&startDate=${workbench.startDate}&endDate=${workbench.endDate}"
>
核查中举报
</a></li>
<li
style=
"float: right;"
><a
href=
"${ctx}/report/list"
>
查看更多
</a></li>
</ul>
<sys:message
content=
"${message}"
/>
<table
id=
"contentTable"
class=
"table table-striped table-bordered table-condensed"
>
<thead>
<tr>
<th>
ID
</th>
<th>
标题
</th>
<th>
业务类型
</th>
<th>
被举报公司
</th>
<th>
举报人
</th>
<th>
举报人电话
</th>
<th>
操作
</th>
</tr>
</thead>
<tbody>
<c:if
test=
"${repList.size()>0}"
>
<c:forEach
items=
"${repList}"
var=
"report"
varStatus=
"vs"
>
<tr>
<td>
${vs.index + 1}
</td>
<td>
${report.supplementTitle}
</td>
<td>
<c:if
test=
"${report.supplementType eq '1'}"
>
营销
</c:if>
<c:if
test=
"${report.supplementType eq '2'}"
>
工程
</c:if>
<c:if
test=
"${report.supplementType eq '3'}"
>
成本
</c:if>
<c:if
test=
"${report.supplementType eq '4'}"
>
招采
</c:if>
<c:if
test=
"${report.supplementType eq '5'}"
>
人力
</c:if>
<c:if
test=
"${report.supplementType eq '6'}"
>
物业
</c:if>
<c:if
test=
"${report.supplementType eq '7'}"
>
投诉
</c:if>
</td>
<td>
${report.supplementCompany}
</td>
<td>
${report.reportPersonName}
</td>
<td>
${report.reportPersonTel}
</td>
<td>
<a
href=
"${ctx}/report/view?id=${report.id}"
>
查看
</a>
</td>
</tr>
</c:forEach>
</c:if>
</tbody>
</table>
<c:if
test=
"${repList.size()=='0'}"
>
<span
style=
"color: #999999;margin: 20px 0 70px 20px;display: block;"
>
未查询到相关内容
</span>
</c:if>
<
%
--
<
c:if
test=
"${page.list.size()>0}"
>
<div
class=
"pagination"
>
${page}
</div>
</c:if>
--%>
</body>
</html>
\ No newline at end of file
src/main/webapp/assets/highcharts/exporting.js
0 → 100644
View file @
0a550977
/*
Highcharts JS v5.0.14 (2017-07-28)
Exporting module
(c) 2010-2017 Torstein Honsi
License: www.highcharts.com/license
*/
(
function
(
k
){
"object"
===
typeof
module
&&
module
.
exports
?
module
.
exports
=
k
:
k
(
Highcharts
)})(
function
(
k
){(
function
(
f
){
var
k
=
f
.
defaultOptions
,
p
=
f
.
doc
,
B
=
f
.
Chart
,
x
=
f
.
addEvent
,
I
=
f
.
removeEvent
,
F
=
f
.
fireEvent
,
r
=
f
.
createElement
,
C
=
f
.
discardElement
,
v
=
f
.
css
,
n
=
f
.
merge
,
D
=
f
.
pick
,
h
=
f
.
each
,
G
=
f
.
objectEach
,
t
=
f
.
extend
,
J
=
f
.
isTouchDevice
,
E
=
f
.
win
,
H
=
E
.
navigator
.
userAgent
,
K
=
f
.
Renderer
.
prototype
.
symbols
;
/Edge
\/
|Trident
\/
|MSIE /
.
test
(
H
);
/firefox/i
.
test
(
H
);
t
(
k
.
lang
,{
printChart
:
"Print chart"
,
downloadPNG
:
"Download PNG image"
,
downloadJPEG
:
"Download JPEG image"
,
downloadPDF
:
"Download PDF document"
,
downloadSVG
:
"Download SVG vector image"
,
contextButtonTitle
:
"Chart context menu"
});
k
.
navigation
=
{
buttonOptions
:{
theme
:{},
symbolSize
:
14
,
symbolX
:
12.5
,
symbolY
:
10.5
,
align
:
"right"
,
buttonSpacing
:
3
,
height
:
22
,
verticalAlign
:
"top"
,
width
:
24
}};
n
(
!
0
,
k
.
navigation
,{
menuStyle
:{
border
:
"1px solid #999999"
,
background
:
"#ffffff"
,
padding
:
"5px 0"
},
menuItemStyle
:{
padding
:
"0.5em 1em"
,
background
:
"none"
,
color
:
"#333333"
,
fontSize
:
J
?
"14px"
:
"11px"
,
transition
:
"background 250ms, color 250ms"
},
menuItemHoverStyle
:{
background
:
"#335cad"
,
color
:
"#ffffff"
},
buttonOptions
:{
symbolFill
:
"#666666"
,
symbolStroke
:
"#666666"
,
symbolStrokeWidth
:
3
,
theme
:{
fill
:
"#ffffff"
,
stroke
:
"none"
,
padding
:
5
}}});
k
.
exporting
=
{
type
:
"image/png"
,
url
:
"https://export.highcharts.com/"
,
printMaxWidth
:
780
,
scale
:
2
,
buttons
:{
contextButton
:{
className
:
"highcharts-contextbutton"
,
menuClassName
:
"highcharts-contextmenu"
,
symbol
:
"menu"
,
_titleKey
:
"contextButtonTitle"
,
menuItems
:
"printChart separator downloadPNG downloadJPEG downloadPDF downloadSVG"
.
split
(
" "
)}},
menuItemDefinitions
:{
printChart
:{
textKey
:
"printChart"
,
onclick
:
function
(){
this
.
print
()}},
separator
:{
separator
:
!
0
},
downloadPNG
:{
textKey
:
"downloadPNG"
,
onclick
:
function
(){
this
.
exportChart
()}},
downloadJPEG
:{
textKey
:
"downloadJPEG"
,
onclick
:
function
(){
this
.
exportChart
({
type
:
"image/jpeg"
})}},
downloadPDF
:{
textKey
:
"downloadPDF"
,
onclick
:
function
(){
this
.
exportChart
({
type
:
"application/pdf"
})}},
downloadSVG
:{
textKey
:
"downloadSVG"
,
onclick
:
function
(){
this
.
exportChart
({
type
:
"image/svg+xml"
})}}}};
f
.
post
=
function
(
a
,
b
,
e
){
var
c
=
r
(
"form"
,
n
({
method
:
"post"
,
action
:
a
,
enctype
:
"multipart/form-data"
},
e
),{
display
:
"none"
},
p
.
body
);
G
(
b
,
function
(
a
,
b
){
r
(
"input"
,{
type
:
"hidden"
,
name
:
b
,
value
:
a
},
null
,
c
)});
c
.
submit
();
C
(
c
)};
t
(
B
.
prototype
,{
sanitizeSVG
:
function
(
a
,
b
){
if
(
b
&&
b
.
exporting
&&
b
.
exporting
.
allowHTML
){
var
e
=
a
.
match
(
/<
\/
svg>
(
.*
?
$
)
/
);
e
&&
e
[
1
]
&&
(
e
=
'
\
x3cforeignObject x
\
x3d"0" y
\
x3d"0" width
\
x3d"'
+
b
.
chart
.
width
+
'" height
\
x3d"'
+
b
.
chart
.
height
+
'"
\
x3e
\
x3cbody xmlns
\
x3d"http://www.w3.org/1999/xhtml"
\
x3e'
+
e
[
1
]
+
"
\
x3c/body
\
x3e
\
x3c/foreignObject
\
x3e"
,
a
=
a
.
replace
(
"
\
x3c/svg
\
x3e"
,
e
+
"
\
x3c/svg
\
x3e"
))}
a
=
a
.
replace
(
/zIndex="
[^
"
]
+"/g
,
""
).
replace
(
/isShadow="
[^
"
]
+"/g
,
""
).
replace
(
/symbolName="
[^
"
]
+"/g
,
""
).
replace
(
/jQuery
[
0-9
]
+="
[^
"
]
+"/g
,
""
).
replace
(
/url
\((
"|"
)(\S
+
)(
"|"
)\)
/g
,
"url($2)"
).
replace
(
/url
\([^
#
]
+#/g
,
"url(#"
).
replace
(
/<svg /
,
'
\
x3csvg xmlns:xlink
\
x3d"http://www.w3.org/1999/xlink" '
).
replace
(
/
(
NS
[
0-9
]
+
\:)?
href=/g
,
" xlink:href
\
x3d"
).
replace
(
/
\n
/
,
" "
).
replace
(
/<
\/
svg>.*
?
$/
,
"
\
x3c/svg
\
x3e"
).
replace
(
/
(
fill|stroke
)
="rgba
\(([
0-9
]
+,
[
0-9
]
+,
[
0-9
]
+
)
,
([
0-9
\.]
+
)\)
"/g
,
'$1
\
x3d"rgb($2)" $1-opacity
\
x3d"$3"'
).
replace
(
/ /g
,
"
\
u00a0"
).
replace
(
/­/g
,
"
\
u00ad"
);
return
a
=
a
.
replace
(
/<IMG /g
,
"
\
x3cimage "
).
replace
(
/<
(\/?)
TITLE>/g
,
"
\
x3c$1title
\
x3e"
).
replace
(
/height=
([^
"
]
+
)
/g
,
'height
\
x3d"$1"'
).
replace
(
/width=
([^
"
]
+
)
/g
,
'width
\
x3d"$1"'
).
replace
(
/hc-svg-href="
([^
"
]
+
)
">/g
,
'xlink:href
\
x3d"$1"/
\
x3e'
).
replace
(
/ id=
([^
" >
]
+
)
/g
,
' id
\
x3d"$1"'
).
replace
(
/class=
([^
" >
]
+
)
/g
,
'class
\
x3d"$1"'
).
replace
(
/ transform /g
,
" "
).
replace
(
/:
(
path|rect
)
/g
,
"$1"
).
replace
(
/style="
([^
"
]
+
)
"/g
,
function
(
a
){
return
a
.
toLowerCase
()})},
getChartHTML
:
function
(){
return
this
.
container
.
innerHTML
},
getSVG
:
function
(
a
){
var
b
,
e
,
c
,
w
,
m
,
g
=
n
(
this
.
options
,
a
);
p
.
createElementNS
||
(
p
.
createElementNS
=
function
(
a
,
b
){
return
p
.
createElement
(
b
)});
e
=
r
(
"div"
,
null
,{
position
:
"absolute"
,
top
:
"-9999em"
,
width
:
this
.
chartWidth
+
"px"
,
height
:
this
.
chartHeight
+
"px"
},
p
.
body
);
c
=
this
.
renderTo
.
style
.
width
;
m
=
this
.
renderTo
.
style
.
height
;
c
=
g
.
exporting
.
sourceWidth
||
g
.
chart
.
width
||
/px$/
.
test
(
c
)
&&
parseInt
(
c
,
10
)
||
600
;
m
=
g
.
exporting
.
sourceHeight
||
g
.
chart
.
height
||
/px$/
.
test
(
m
)
&&
parseInt
(
m
,
10
)
||
400
;
t
(
g
.
chart
,{
animation
:
!
1
,
renderTo
:
e
,
forExport
:
!
0
,
renderer
:
"SVGRenderer"
,
width
:
c
,
height
:
m
});
g
.
exporting
.
enabled
=!
1
;
delete
g
.
data
;
g
.
series
=
[];
h
(
this
.
series
,
function
(
a
){
w
=
n
(
a
.
userOptions
,{
animation
:
!
1
,
enableMouseTracking
:
!
1
,
showCheckbox
:
!
1
,
visible
:
a
.
visible
});
w
.
isInternal
||
g
.
series
.
push
(
w
)});
h
(
this
.
axes
,
function
(
a
){
a
.
userOptions
.
internalKey
||
(
a
.
userOptions
.
internalKey
=
f
.
uniqueKey
())});
b
=
new
f
.
Chart
(
g
,
this
.
callback
);
a
&&
h
([
"xAxis"
,
"yAxis"
,
"series"
],
function
(
c
){
var
d
=
{};
a
[
c
]
&&
(
d
[
c
]
=
a
[
c
],
b
.
update
(
d
))});
h
(
this
.
axes
,
function
(
a
){
var
c
=
f
.
find
(
b
.
axes
,
function
(
b
){
return
b
.
options
.
internalKey
===
a
.
userOptions
.
internalKey
}),
d
=
a
.
getExtremes
(),
e
=
d
.
userMin
,
d
=
d
.
userMax
;
!
c
||
void
0
===
e
&&
void
0
===
d
||
c
.
setExtremes
(
e
,
d
,
!
0
,
!
1
)});
c
=
b
.
getChartHTML
();
c
=
this
.
sanitizeSVG
(
c
,
g
);
g
=
null
;
b
.
destroy
();
C
(
e
);
return
c
},
getSVGForExport
:
function
(
a
,
b
){
var
e
=
this
.
options
.
exporting
;
return
this
.
getSVG
(
n
({
chart
:{
borderRadius
:
0
}},
e
.
chartOptions
,
b
,{
exporting
:{
sourceWidth
:
a
&&
a
.
sourceWidth
||
e
.
sourceWidth
,
sourceHeight
:
a
&&
a
.
sourceHeight
||
e
.
sourceHeight
}}))},
exportChart
:
function
(
a
,
b
){
b
=
this
.
getSVGForExport
(
a
,
b
);
a
=
n
(
this
.
options
.
exporting
,
a
);
f
.
post
(
a
.
url
,{
filename
:
a
.
filename
||
"chart"
,
type
:
a
.
type
,
width
:
a
.
width
||
0
,
scale
:
a
.
scale
,
svg
:
b
},
a
.
formAttributes
)},
print
:
function
(){
var
a
=
this
,
b
=
a
.
container
,
e
=
[],
c
=
b
.
parentNode
,
f
=
p
.
body
,
m
=
f
.
childNodes
,
g
=
a
.
options
.
exporting
.
printMaxWidth
,
d
,
u
;
if
(
!
a
.
isPrinting
){
a
.
isPrinting
=!
0
;
a
.
pointer
.
reset
(
null
,
0
);
F
(
a
,
"beforePrint"
);
if
(
u
=
g
&&
a
.
chartWidth
>
g
)
d
=
[
a
.
options
.
chart
.
width
,
void
0
,
!
1
],
a
.
setSize
(
g
,
void
0
,
!
1
);
h
(
m
,
function
(
a
,
b
){
1
===
a
.
nodeType
&&
(
e
[
b
]
=
a
.
style
.
display
,
a
.
style
.
display
=
"none"
)});
f
.
appendChild
(
b
);
E
.
focus
();
E
.
print
();
setTimeout
(
function
(){
c
.
appendChild
(
b
);
h
(
m
,
function
(
a
,
b
){
1
===
a
.
nodeType
&&
(
a
.
style
.
display
=
e
[
b
])});
a
.
isPrinting
=!
1
;
u
&&
a
.
setSize
.
apply
(
a
,
d
);
F
(
a
,
"afterPrint"
)},
1
E3
)}},
contextMenu
:
function
(
a
,
b
,
e
,
c
,
w
,
m
,
g
){
var
d
=
this
,
u
=
d
.
options
.
navigation
,
k
=
d
.
chartWidth
,
q
=
d
.
chartHeight
,
n
=
"cache-"
+
a
,
l
=
d
[
n
],
y
=
Math
.
max
(
w
,
m
),
z
,
A
;
l
||
(
d
[
n
]
=
l
=
r
(
"div"
,{
className
:
a
},{
position
:
"absolute"
,
zIndex
:
1
E3
,
padding
:
y
+
"px"
},
d
.
container
),
z
=
r
(
"div"
,{
className
:
"highcharts-menu"
},
null
,
l
),
v
(
z
,
t
({
MozBoxShadow
:
"3px 3px 10px #888"
,
WebkitBoxShadow
:
"3px 3px 10px #888"
,
boxShadow
:
"3px 3px 10px #888"
},
u
.
menuStyle
)),
A
=
function
(){
v
(
l
,{
display
:
"none"
});
g
&&
g
.
setState
(
0
);
d
.
openMenu
=!
1
},
d
.
exportEvents
.
push
(
x
(
l
,
"mouseleave"
,
function
(){
l
.
hideTimer
=
setTimeout
(
A
,
500
)}),
x
(
l
,
"mouseenter"
,
function
(){
clearTimeout
(
l
.
hideTimer
)}),
x
(
p
,
"mouseup"
,
function
(
b
){
d
.
pointer
.
inClass
(
b
.
target
,
a
)
||
A
()})),
h
(
b
,
function
(
a
){
"string"
===
typeof
a
&&
(
a
=
d
.
options
.
exporting
.
menuItemDefinitions
[
a
]);
if
(
f
.
isObject
(
a
,
!
0
)){
var
b
;
a
.
separator
?
b
=
r
(
"hr"
,
null
,
null
,
z
):(
b
=
r
(
"div"
,{
className
:
"highcharts-menu-item"
,
onclick
:
function
(
b
){
b
&&
b
.
stopPropagation
();
A
();
a
.
onclick
&&
a
.
onclick
.
apply
(
d
,
arguments
)},
innerHTML
:
a
.
text
||
d
.
options
.
lang
[
a
.
textKey
]},
null
,
z
),
b
.
onmouseover
=
function
(){
v
(
this
,
u
.
menuItemHoverStyle
)},
b
.
onmouseout
=
function
(){
v
(
this
,
u
.
menuItemStyle
)},
v
(
b
,
t
({
cursor
:
"pointer"
},
u
.
menuItemStyle
)));
d
.
exportDivElements
.
push
(
b
)}}),
d
.
exportDivElements
.
push
(
z
,
l
),
d
.
exportMenuWidth
=
l
.
offsetWidth
,
d
.
exportMenuHeight
=
l
.
offsetHeight
);
b
=
{
display
:
"block"
};
e
+
d
.
exportMenuWidth
>
k
?
b
.
right
=
k
-
e
-
w
-
y
+
"px"
:
b
.
left
=
e
-
y
+
"px"
;
c
+
m
+
d
.
exportMenuHeight
>
q
&&
"top"
!==
g
.
alignOptions
.
verticalAlign
?
b
.
bottom
=
q
-
c
-
y
+
"px"
:
b
.
top
=
c
+
m
-
y
+
"px"
;
v
(
l
,
b
);
d
.
openMenu
=!
0
},
addButton
:
function
(
a
){
var
b
=
this
,
e
=
b
.
renderer
,
c
=
n
(
b
.
options
.
navigation
.
buttonOptions
,
a
),
f
=
c
.
onclick
,
m
=
c
.
menuItems
,
g
,
d
,
k
=
c
.
symbolSize
||
12
;
b
.
btnCount
||
(
b
.
btnCount
=
0
);
b
.
exportDivElements
||
(
b
.
exportDivElements
=
[],
b
.
exportSVGElements
=
[]);
if
(
!
1
!==
c
.
enabled
){
var
h
=
c
.
theme
,
q
=
h
.
states
,
p
=
q
&&
q
.
hover
,
q
=
q
&&
q
.
select
,
l
;
delete
h
.
states
;
f
?
l
=
function
(
a
){
a
.
stopPropagation
();
f
.
call
(
b
,
a
)}:
m
&&
(
l
=
function
(){
b
.
contextMenu
(
d
.
menuClassName
,
m
,
d
.
translateX
,
d
.
translateY
,
d
.
width
,
d
.
height
,
d
);
d
.
setState
(
2
)});
c
.
text
&&
c
.
symbol
?
h
.
paddingLeft
=
D
(
h
.
paddingLeft
,
25
):
c
.
text
||
t
(
h
,{
width
:
c
.
width
,
height
:
c
.
height
,
padding
:
0
});
d
=
e
.
button
(
c
.
text
,
0
,
0
,
l
,
h
,
p
,
q
).
addClass
(
a
.
className
).
attr
({
"stroke-linecap"
:
"round"
,
title
:
b
.
options
.
lang
[
c
.
_titleKey
],
zIndex
:
3
});
d
.
menuClassName
=
a
.
menuClassName
||
"highcharts-menu-"
+
b
.
btnCount
++
;
c
.
symbol
&&
(
g
=
e
.
symbol
(
c
.
symbol
,
c
.
symbolX
-
k
/
2
,
c
.
symbolY
-
k
/
2
,
k
,
k
).
addClass
(
"highcharts-button-symbol"
).
attr
({
zIndex
:
1
}).
add
(
d
),
g
.
attr
({
stroke
:
c
.
symbolStroke
,
fill
:
c
.
symbolFill
,
"stroke-width"
:
c
.
symbolStrokeWidth
||
1
}));
d
.
add
().
align
(
t
(
c
,{
width
:
d
.
width
,
x
:
D
(
c
.
x
,
b
.
buttonOffset
)}),
!
0
,
"spacingBox"
);
b
.
buttonOffset
+=
(
d
.
width
+
c
.
buttonSpacing
)
*
(
"right"
===
c
.
align
?
-
1
:
1
);
b
.
exportSVGElements
.
push
(
d
,
g
)}},
destroyExport
:
function
(
a
){
var
b
=
a
?
a
.
target
:
this
;
a
=
b
.
exportSVGElements
;
var
e
=
b
.
exportDivElements
,
c
=
b
.
exportEvents
,
f
;
a
&&
(
h
(
a
,
function
(
a
,
c
){
a
&&
(
a
.
onclick
=
a
.
ontouchstart
=
null
,
f
=
"cache-"
+
a
.
menuClassName
,
b
[
f
]
&&
delete
b
[
f
],
b
.
exportSVGElements
[
c
]
=
a
.
destroy
())}),
a
.
length
=
0
);
e
&&
(
h
(
e
,
function
(
a
,
c
){
clearTimeout
(
a
.
hideTimer
);
I
(
a
,
"mouseleave"
);
b
.
exportDivElements
[
c
]
=
a
.
onmouseout
=
a
.
onmouseover
=
a
.
ontouchstart
=
a
.
onclick
=
null
;
C
(
a
)}),
e
.
length
=
0
);
c
&&
(
h
(
c
,
function
(
a
){
a
()}),
c
.
length
=
0
)}});
K
.
menu
=
function
(
a
,
b
,
e
,
c
){
return
[
"M"
,
a
,
b
+
2.5
,
"L"
,
a
+
e
,
b
+
2.5
,
"M"
,
a
,
b
+
c
/
2
+
.
5
,
"L"
,
a
+
e
,
b
+
c
/
2
+
.
5
,
"M"
,
a
,
b
+
c
-
1.5
,
"L"
,
a
+
e
,
b
+
c
-
1.5
]};
B
.
prototype
.
renderExporting
=
function
(){
var
a
=
this
,
b
=
a
.
options
.
exporting
,
e
=
b
.
buttons
,
c
=
a
.
isDirtyExporting
||!
a
.
exportSVGElements
;
a
.
buttonOffset
=
0
;
a
.
isDirtyExporting
&&
a
.
destroyExport
();
c
&&!
1
!==
b
.
enabled
&&
(
a
.
exportEvents
=
[],
G
(
e
,
function
(
b
){
a
.
addButton
(
b
)}),
a
.
isDirtyExporting
=!
1
);
x
(
a
,
"destroy"
,
a
.
destroyExport
)};
B
.
prototype
.
callbacks
.
push
(
function
(
a
){
a
.
renderExporting
();
x
(
a
,
"redraw"
,
a
.
renderExporting
);
h
([
"exporting"
,
"navigation"
],
function
(
b
){
a
[
b
]
=
{
update
:
function
(
e
,
c
){
a
.
isDirtyExporting
=!
0
;
n
(
!
0
,
a
.
options
[
b
],
e
);
D
(
c
,
!
0
)
&&
a
.
redraw
()}}})})})(
k
)});
src/main/webapp/assets/highcharts/highcharts-zh_CN.js
0 → 100644
View file @
0a550977
(
function
(
H
){
var
protocol
=
window
.
location
.
protocol
;
var
defaultOptionsZhCn
=
{
lang
:{
contextButtonTitle
:
'图表导出菜单'
,
decimalPoint
:
'.'
,
downloadJPEG
:
"下载JPEG图片"
,
downloadPDF
:
"下载PDF文件"
,
downloadPNG
:
"下载PNG文件"
,
downloadSVG
:
"下载SVG文件"
,
drillUpText
:
"返回 {series.name}"
,
invalidDate
:
'无效的时间'
,
loading
:
'加载中...'
,
months
:[
'一月'
,
'二月'
,
'三月'
,
'四月'
,
'五月'
,
'六月'
,
'七月'
,
'八月'
,
'九月'
,
'十月'
,
'十一月'
,
'十二月'
],
noData
:
"没有数据"
,
numericSymbols
:
null
,
printChart
:
"打印图表"
,
resetZoom
:
'重置缩放比例'
,
resetZoomTitle
:
'重置为原始大小'
,
shortMonths
:[
'一月'
,
'二月'
,
'三月'
,
'四月'
,
'五月'
,
'六月'
,
'七月'
,
'八月'
,
'九月'
,
'十月'
,
'十一月'
,
'十二月'
],
thousandsSep
:
','
,
weekdays
:[
'星期一'
,
'星期二'
,
'星期三'
,
'星期四'
,
'星期五'
,
'星期六'
,
'星期天'
],
rangeSelectorFrom
:
'开始时间'
,
rangeSelectorTo
:
'结束时间'
,
rangeSelectorZoom
:
'缩放'
,
zoomIn
:
'缩小'
,
zoomOut
:
'放大'
},
global
:{
useUTC
:
true
,
canvasToolsURL
:
protocol
+
'//cdn.hcharts.cn/highcharts/modules/canvas-tools.js'
,
VMLRadialGradientURL
:
protocol
+
+
'//cdn.hcharts.cn/highcharts/gfx/vml-radial-gradient.png'
},
title
:{
text
:
'图表标题'
},
tooltip
:{
dateTimeLabelFormats
:{
millisecond
:
'%H:%M:%S.%L'
,
second
:
'%H:%M:%S'
,
minute
:
'%H:%M'
,
hour
:
'%H:%M'
,
day
:
'%Y-%m-%d'
,
week
:
'Week from %A, %b %e, %Y'
,
month
:
'%Y-%m'
,
year
:
'%Y'
}},
exporting
:{
url
:
protocol
+
'//export.highcharts.com.cn'
},
credits
:{
text
:
'Highcharts.com.cn'
,
href
:
'https://www.highcharts.com.cn'
},
xAxis
:{
dateTimeLabelFormats
:{
millisecond
:
'%H:%M:%S.%L'
,
second
:
'%H:%M:%S'
,
minute
:
'%H:%M'
,
hour
:
'%H:%M'
,
day
:
'%Y-%m-%d'
,
week
:
'%e. %b'
,
month
:
'%Y-%m'
,
year
:
'%Y'
}}};
H
.
setOptions
(
defaultOptionsZhCn
)}(
Highcharts
));
\ No newline at end of file
src/main/webapp/assets/highcharts/highcharts.js
0 → 100644
View file @
0a550977
This source diff could not be displayed because it is too large. You can
view the blob
instead.
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment