index.jsp 11.6 KB
<%@page language="java" contentType="text/html; charset=UTF-8"%>
<%@ page import="weaver.formmode.service.CubeChartsService" %>
<%@ page import="weaver.common.util.string.StringUtil" %>
<%@ page import="com.alibaba.fastjson.JSONObject" %>
<%@ page import="com.alibaba.fastjson.JSONArray" %>
<%@ include file="/page/maint/common/initNoCache.jsp"%>
<%
    List<JSONObject> xList = null;//x轴字段集合
    List<JSONObject> yList = null;//Y轴字段集合
    String customid = Util.null2o(request.getParameter("customid"));
    String type = Util.null2o(request.getParameter("type"));
    request.setAttribute("customid",customid);
    CubeChartsService chartsService = new CubeChartsService(request, response);
    Map formFieldMap = chartsService.getFormField(request, response);
    xList = (ArrayList<JSONObject>) formFieldMap.get("x");
    yList = (ArrayList<JSONObject>) formFieldMap.get("y");
    //查询图表数据
    //基本信息
    JSONObject initData = (JSONObject) chartsService.loadCharts(request,response).get("datas");
    String title = Util.null2String(initData.getString("title"));
    String description = Util.null2String(initData.getString("description"));
    String width = Util.null2s(initData.getString("width"),"500");
    String isEnable = Util.null2String(initData.getString("isenable"));
    String chartId = "";
    String name = "";
    String chartsType = "";
    String dataFrom = "";
    String xAxis = "";
    String yAxis = "";
    String customSql = "";
    String calculateType = "";
    JSONArray detail = (JSONArray)initData.get("detailArray");
    if(detail.size() > 0){
        JSONObject detailData = (JSONObject)detail.get(0);
        chartId = Util.null2String(detailData.getString("yaxis"));
        name = Util.null2String(detailData.getString("name"));
        chartsType = Util.null2String(detailData.getString("chartsType"));
        dataFrom = Util.null2String(detailData.getString("dataFrom"));
        xAxis = Util.null2String(detailData.getString("xAxis"));
        yAxis = Util.null2String(detailData.getString("yAxis"));
        customSql = Util.null2String(detailData.getString("customSql"));
        calculateType = Util.null2String(detailData.getString("calculateType"));
    }
    List<Map<String, Object>> chartViewList = new ArrayList<Map<String, Object>>();//图表明细options
    chartViewList = chartsService.getChartsViewData(request, response);
%>
<html>
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <link rel="stylesheet" href="./css/index.css">
    <!--导入百度ECharts支持-->
    <script type="text/javascript" src="/formmode/charts/js/echarts.min.js"></script>
    <script type="text/javascript" src="/formmode/js/jquery/jquery-1.8.3.min_wev8.js"></script>
    <title>charts center</title>
</head>
<body>
<%
    if(!"0".equals(customid)){
%>
<%@ include file="/systeminfo/RightClickMenuConent_wev8.jsp" %>
<%
    RCMenu += "{" + SystemEnv.getHtmlLabelName(86, user.getLanguage()) + ",javascript:doSave(),_top} ";
    RCMenuHeight += RCMenuHeightStep;
%>
<%@ include file="/systeminfo/RightClickMenu_wev8.jsp" %>
<input type="hidden" id="customid" value="<%=customid%>"/>
<section class="f-content">
    <section class="f-config">
        <div>
            <div class="f-com-wrapper">
                <ul>
                    <li class="f-plugin" data-type="LineChart">
                        <a>折线图</a>
                    </li>
                    <li class="f-plugin" data-type="BarChart">
                        <a>柱状图</a>
                    </li>
                    <li class="f-plugin" data-type="PieChart">
                        <a>饼图</a>
                    </li>
                    <li class="f-plugin" data-type="RoundChart">
                        <a>环形图</a>
                    </li>
                </ul>
            </div>
            <form class="f-base-info" action="index.jsp" id="base">
                <h4>基本信息</h4>
                <div class="f-row">
                    <label>标题</label>
                    <div class="col">
                        <input type="text" id="title" data-change="Title" value="<%=title%>" class="required"/>
                    </div>
                </div>
                <div class="f-row">
                    <label>描述</label>
                    <div class="col">
                        <input type="text" id="description" data-change="Desc" value="<%=description%>" class="required"/>
                    </div>
                </div>
                <div class="f-row">
                    <label>宽度</label>
                    <div class="col">
                        <input type="range" id="width" data-change="Width" min="300" max="500" value="<%=width%>"/>
                    </div>
                </div>
                <%--<div class="f-row">
                    <label>样式</label>
                    <div class="col">
                        <input type="text" />
                    </div>
                </div>--%>
                <div class="f-row">
                    <label>默认显示</label>
                    <div class="col">
                        <select id="isEnable">
                            <option value="1" selected="selected"></option>
                            <option value="0"></option>
                        </select>
                    </div>
                    <script>
                        $("#isEnable").find("option[value = '<%=isEnable%>']").attr("selected","selected");
                    </script>
                </div>
            </form>

            <form class="f-com-props" action="" id="detail">
                <input type="hidden" id="chartId" value="<%=chartId%>">
                <input type="hidden" id="chartType" value="<%=chartsType%>">
                <h4>组件属性(PieChart)</h4>
                <div class="f-row">
                    <label>标题</label>
                    <div class="col">
                        <input id="name" type="text" value="<%=name%>"/>
                    </div>
                </div>
                <%
                    if(!"0".equals(customid) && "1".equals(type)){
                %>
                <div class="f-row">
                    <label>数据来源</label>
                    <div class="col">
                        <select id="dataFrom" data-value="<%=dataFrom%>">
                            <option value="1">查询列表</option>
                            <option value="0">自定义SQL</option>
                        </select>
                    </div>
                </div>
                <div class="f-row">
                    <label>X轴</label>
                    <div class="col">
                        <select id="xAxis">
                            <option value=""></option>
                            <%
                                for (JSONObject jsonObject : xList) {
                            %>
                            <option value="<%=jsonObject.getString("id")%>"><%=jsonObject.getString("showname")%>
                            </option>
                            <%
                                }
                            %>
                        </select>
                    </div>
                    <script>
                        $("#xAxis").find("option[value = '<%=xAxis%>']").attr("selected","selected");
                    </script>
                </div>
                <div class="f-row">
                    <label>Y轴</label>
                    <div class="col">
                        <select id="yAxis">
                            <option value=""></option>
                            <%
                                for (JSONObject jsonObject : yList) {
                            %>
                            <option value="<%=jsonObject.getString("id")%>"><%=jsonObject.getString("showname")%>
                            </option>
                            <%
                                }
                            %>
                        </select>
                    </div>
                    <script>
                        $("#yAxis").find("option[value = '<%=yAxis%>']").attr("selected","selected");
                    </script>
                </div>
                <%
                    }
                %>
                <div class="f-row">
                    <label>自定义SQL</label>
                    <div class="col">
                        <textarea id="customSql" data-value="" value="">
                                <%=customSql%>
                        </textarea>
                        <div id="eg" style="text-decoration: underline;cursor:pointer;" title="">
                            SQL示例
                        </div>
                        <div id="variable">

                        </div>
                    </div>
                </div>
                <%
                    if(!"0".equals(customid) && "1".equals(type)){
                %>
                <div class="f-row">
                    <label>统计方式</label>
                    <div class="col">
                        <select id="calculateType" data-value="<%=calculateType%>">
                            <option value="1">求和</option>
                            <option value="2">平均数</option>
                            <option value="3">统计</option>
                            <option value="4">最大值</option>
                            <option value="5">最小值</option>
                        </select>
                    </div>
                </div>
                <%
                    }
                %>
            </form>
        </div>
    </section>
    <div class="saveChart">保存</div>
    <section class="f-viewport">
        <header class="f-base-info">
            <h4 class="f-title"><%=title%></h4>
            <p class="f-desc"><%=description%></p>
        </header>
        <div class="f-com-wrapper">
            <%
                for (int i = 0; i < chartViewList.size(); i++) {
                    String op = Util.null2String(chartViewList.get(i).get("option"));
                    String chartsId = Util.null2String(chartViewList.get(i).get("chartsId").toString());
                    JSONObject opJSON = (JSONObject)(chartViewList.get(i).get("option"));
                    String chartName = Util.null2String(opJSON.get("name"));
            %>

            <div class="f-plugin<%-- selected--%>" data-type="PieChart">
                <div class="f-actions">
                    <a>删除</a>
                </div>
                <div class="f-plugin-view">
                    <div class="chartTop">
                        <div class="topText"><%=chartName%></div>
                    </div>
                    <div id="<%=chartsId%>" class="chartDiv" >

                    </div>
                </div>
            </div>
            <script>
                var myChart = echarts.init(document.getElementById("<%=chartsId%>"));
                //2.创建Oprion
                var option = <%=op%>;
                //3.设置Echarts的Option
                myChart.setOption(option);
            </script>
            <%
                }
            %>
        </div>
    </section>
</section>
<script type="text/javascript" src="./js/lib/require/require.min.js"></script>
<script type="text/javascript" src="./js/config.js"></script>
<script type="text/javascript">
    require(["main"]);
    var width = $("#width").val();
    $(".f-viewport .f-com-wrapper > .f-plugin").css('margin-right',width-500);
    $(".f-content .f-viewport").css('width', width);
    $(".f-content .f-viewport").css('margin-left', 0-width);
</script>
<%
    }
%>
</body>
</html>