Commit c83d0804ceb36389f3720c994cc56bbc4ee2911e

Authored by 孙向锦
1 parent 6cdfeaf1

添加客服反馈

Showing 61 changed files with 4266 additions and 20 deletions
WebRoot/WEB-INF/jsp/feedback/feedback/feedback_edit.jsp 0 → 100644
  1 +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
  2 +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
  3 +<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
  4 +<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
  5 +<%
  6 + String path = request.getContextPath();
  7 + String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
  8 +%>
  9 +<!DOCTYPE html>
  10 +<html lang="en">
  11 + <head>
  12 + <base href="<%=basePath%>">
  13 + <!-- 下拉框 -->
  14 + <link rel="stylesheet" href="static/ace/css/chosen.css" />
  15 + <!-- jsp文件头和头部 -->
  16 + <%@ include file="../../system/index/top.jsp"%>
  17 + <!-- 日期框 -->
  18 + <link rel="stylesheet" href="static/ace/css/datepicker.css" />
  19 +</head>
  20 +<body class="no-skin">
  21 +<!-- /section:basics/navbar.layout -->
  22 +<div class="main-container" id="main-container">
  23 + <!-- /section:basics/sidebar -->
  24 + <div class="main-content">
  25 + <div class="main-content-inner">
  26 + <div class="page-content">
  27 + <div class="row">
  28 + <div class="col-xs-12">
  29 +
  30 + <form action="feedback/${msg }.do" name="Form" id="Form" method="post">
  31 + <input type="hidden" name="ID" id="ID" value="${pd.ID}"/>
  32 + <div id="zhongxin" style="padding-top: 13px;">
  33 + <table id="table_report" class="table table-striped table-bordered table-hover">
  34 + <tr>
  35 + <td style="width:75px;text-align: right;padding-top: 13px;">学校地址省:</td>
  36 + <td><input type="text" name="SCHOOL_ADDRESS1" id="SCHOOL_ADDRESS1" value="${pd.SCHOOL_ADDRESS1}" maxlength="255" placeholder="这里输入学校地址省" title="学校地址省" style="width:98%;"/></td>
  37 + </tr>
  38 + <tr>
  39 + <td style="width:75px;text-align: right;padding-top: 13px;">学校地址市:</td>
  40 + <td><input type="text" name="SCHOOL_ADDRESS2" id="SCHOOL_ADDRESS2" value="${pd.SCHOOL_ADDRESS2}" maxlength="255" placeholder="这里输入学校地址市" title="学校地址市" style="width:98%;"/></td>
  41 + </tr>
  42 + <tr>
  43 + <td style="width:75px;text-align: right;padding-top: 13px;">联系人:</td>
  44 + <td><input type="text" name="CONTACT_PHONE" id="CONTACT_PHONE" value="${pd.CONTACT_PHONE}" maxlength="255" placeholder="这里输入联系人" title="联系人" style="width:98%;"/></td>
  45 + </tr>
  46 + <tr>
  47 + <td style="width:75px;text-align: right;padding-top: 13px;">联系电话:</td>
  48 + <td><input type="text" name="PHONE_CONTACT" id="PHONE_CONTACT" value="${pd.PHONE_CONTACT}" maxlength="255" placeholder="这里输入联系电话" title="联系电话" style="width:98%;"/></td>
  49 + </tr>
  50 + <tr>
  51 + <td style="width:75px;text-align: right;padding-top: 13px;">产品序列号:</td>
  52 + <td><input type="text" name="PRODUCT_SEQ" id="PRODUCT_SEQ" value="${pd.PRODUCT_SEQ}" maxlength="255" placeholder="这里输入产品序列号" title="产品序列号" style="width:98%;"/></td>
  53 + </tr>
  54 + <tr>
  55 + <td style="width:75px;text-align: right;padding-top: 13px;">问题现象:</td>
  56 + <td><input type="text" name="QUESTION_NAME" id="QUESTION_NAME" value="${pd.QUESTION_NAME}" maxlength="255" placeholder="这里输入问题现象" title="问题现象" style="width:98%;"/></td>
  57 + </tr>
  58 + <tr>
  59 + <td style="width:75px;text-align: right;padding-top: 13px;">操作系统:</td>
  60 + <td><input type="text" name="OS" id="OS" value="${pd.OS}" maxlength="255" placeholder="这里输入操作系统" title="操作系统" style="width:98%;"/></td>
  61 + </tr>
  62 + <tr>
  63 + <td style="width:75px;text-align: right;padding-top: 13px;">软件版本:</td>
  64 + <td><input type="text" name="SOFTWARE_VERSION" id="SOFTWARE_VERSION" value="${pd.SOFTWARE_VERSION}" maxlength="255" placeholder="这里输入软件版本" title="软件版本" style="width:98%;"/></td>
  65 + </tr>
  66 + <tr>
  67 + <td style="width:75px;text-align: right;padding-top: 13px;">软件名称:</td>
  68 + <td><input type="text" name="SOFTWARE_NAME" id="SOFTWARE_NAME" value="${pd.SOFTWARE_NAME}" maxlength="255" placeholder="这里输入软件名称" title="软件名称" style="width:98%;"/></td>
  69 + </tr>
  70 + <tr>
  71 + <td style="width:75px;text-align: right;padding-top: 13px;">异常数量:</td>
  72 + <td><input type="text" name="EXCEPTION_NUM" id="EXCEPTION_NUM" value="${pd.EXCEPTION_NUM}" maxlength="255" placeholder="这里输入异常数量" title="异常数量" style="width:98%;"/></td>
  73 + </tr>
  74 + <tr>
  75 + <td style="width:75px;text-align: right;padding-top: 13px;">详细描述:</td>
  76 + <td><input type="text" name="DESCRIPTION" id="DESCRIPTION" value="${pd.DESCRIPTION}" maxlength="255" placeholder="这里输入详细描述" title="详细描述" style="width:98%;"/></td>
  77 + </tr>
  78 + <tr>
  79 + <td style="width:75px;text-align: right;padding-top: 13px;">问题图片:</td>
  80 + <td><input type="text" name="PROBLEM_PATH" id="PROBLEM_PATH" value="${pd.PROBLEM_PATH}" maxlength="255" placeholder="这里输入问题图片" title="问题图片" style="width:98%;"/></td>
  81 + </tr>
  82 + <tr>
  83 + <td style="width:75px;text-align: right;padding-top: 13px;">客户编码:</td>
  84 + <td><input type="text" name="CUSTOMER_CODE" id="CUSTOMER_CODE" value="${pd.CUSTOMER_CODE}" maxlength="255" placeholder="这里输入客户编码" title="客户编码" style="width:98%;"/></td>
  85 + </tr>
  86 + <tr>
  87 + <td style="width:75px;text-align: right;padding-top: 13px;">处理人:</td>
  88 + <td><input type="text" name="PERSON_LIABLE" id="PERSON_LIABLE" value="${pd.PERSON_LIABLE}" maxlength="255" placeholder="这里输入处理人" title="处理人" style="width:98%;"/></td>
  89 + </tr>
  90 + <tr style="display:none">
  91 + <td style="width:75px;text-align: right;padding-top: 13px;">报告日期:</td>
  92 + <td><input class="span10 date-picker" name="CREATE_DATE" id="CREATE_DATE" value="${pd.CREATE_DATE}" type="text" data-date-format="yyyy-mm-dd" readonly="readonly" placeholder="报告日期" title="报告日期" style="width:98%;"/></td>
  93 + </tr>
  94 + <tr style="display:none">
  95 + <td style="width:75px;text-align: right;padding-top: 13px;">处理时间:</td>
  96 + <td><input class="span10 date-picker" name="PROCESSING_DATE" id="PROCESSING_DATE" value="${pd.PROCESSING_DATE}" type="text" data-date-format="yyyy-mm-dd" readonly="readonly" placeholder="处理时间" title="处理时间" style="width:98%;"/></td>
  97 + </tr>
  98 + <tr>
  99 + <td style="width:75px;text-align: right;padding-top: 13px;">产品类型:</td>
  100 + <td><input type="text" name="PRODUCT_TYPE" id="PRODUCT_TYPE" value="${pd.PRODUCT_TYPE}" maxlength="255" placeholder="这里输入产品类型" title="产品类型" style="width:98%;"/></td>
  101 + </tr>
  102 + <tr>
  103 + <td style="width:75px;text-align: right;padding-top: 13px;">产品型号:</td>
  104 + <td><input type="text" name="PRODUCT_MODEL" id="PRODUCT_MODEL" value="${pd.PRODUCT_MODEL}" maxlength="255" placeholder="这里输入产品型号" title="产品型号" style="width:98%;"/></td>
  105 + </tr>
  106 + <tr>
  107 + <td style="text-align: center;" colspan="10">
  108 + <a class="btn btn-mini btn-primary" onclick="save();">保存</a>
  109 + <a class="btn btn-mini btn-danger" onclick="top.Dialog.close();">取消</a>
  110 + </td>
  111 + </tr>
  112 + </table>
  113 + </div>
  114 + <div id="zhongxin2" class="center" style="display:none"><br/><br/><br/><br/><br/><img src="static/images/jiazai.gif" /><br/><h4 class="lighter block green">提交中...</h4></div>
  115 + </form>
  116 + </div>
  117 + <!-- /.col -->
  118 + </div>
  119 + <!-- /.row -->
  120 + </div>
  121 + <!-- /.page-content -->
  122 + </div>
  123 + </div>
  124 + <!-- /.main-content -->
  125 +</div>
  126 +<!-- /.main-container -->
  127 +
  128 +
  129 + <!-- 页面底部js¨ -->
  130 + <%@ include file="../../system/index/foot.jsp"%>
  131 + <!-- 下拉框 -->
  132 + <script src="static/ace/js/chosen.jquery.js"></script>
  133 + <!-- 日期框 -->
  134 + <script src="static/ace/js/date-time/bootstrap-datepicker.js"></script>
  135 + <!--提示框-->
  136 + <script type="text/javascript" src="static/js/jquery.tips.js"></script>
  137 + <script type="text/javascript">
  138 + $(top.hangge());
  139 + //保存
  140 + function save(){
  141 +
  142 + $("#Form").submit();
  143 + $("#zhongxin").hide();
  144 + $("#zhongxin2").show();
  145 + }
  146 +
  147 + $(function() {
  148 + //日期框
  149 + $('.date-picker').datepicker({autoclose: true,todayHighlight: true});
  150 + });
  151 + </script>
  152 +</body>
  153 +</html>
0 154 \ No newline at end of file
... ...
WebRoot/WEB-INF/jsp/feedback/feedback/feedback_list.jsp 0 → 100644
  1 +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
  2 +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
  3 +<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
  4 +<%
  5 + String path = request.getContextPath();
  6 + String basePath = request.getScheme() + "://"
  7 + + request.getServerName() + ":" + request.getServerPort()
  8 + + path + "/";
  9 +%>
  10 +<!DOCTYPE html>
  11 +<html lang="en">
  12 +<head>
  13 +<base href="<%=basePath%>">
  14 +<!-- 下拉框 -->
  15 +<link rel="stylesheet" href="static/ace/css/chosen.css" />
  16 +<!-- jsp文件头和头部 -->
  17 +<%@ include file="../../system/index/top.jsp"%>
  18 +<!-- 日期框 -->
  19 +<link rel="stylesheet" href="static/ace/css/datepicker.css" />
  20 +</head>
  21 +<body class="no-skin">
  22 +
  23 + <!-- /section:basics/navbar.layout -->
  24 + <div class="main-container" id="main-container">
  25 + <!-- /section:basics/sidebar -->
  26 + <div class="main-content">
  27 + <div class="main-content-inner">
  28 + <div class="page-content">
  29 + <div class="row">
  30 + <div class="col-xs-12">
  31 +
  32 + <!-- 检索 -->
  33 + <form action="feedback/list.do" method="post" name="Form" id="Form">
  34 + <table style="margin-top:5px;">
  35 + <tr>
  36 + <td>
  37 + <div class="nav-search">
  38 + <span class="input-icon">
  39 + <input type="text" placeholder="这里输入关键词" class="nav-search-input" id="nav-search-input" autocomplete="off" name="keywords" value="${pd.keywords }" placeholder="这里输入关键词"/>
  40 + <i class="ace-icon fa fa-search nav-search-icon"></i>
  41 + </span>
  42 + </div>
  43 + </td>
  44 + <td style="padding-left:2px;"><input class="span10 date-picker" name="lastStart" id="lastStart" value="" type="text" data-date-format="yyyy-mm-dd" readonly="readonly" style="width:88px;" placeholder="开始日期" title="开始日期"/></td>
  45 + <td style="padding-left:2px;"><input class="span10 date-picker" name="lastEnd" name="lastEnd" value="" type="text" data-date-format="yyyy-mm-dd" readonly="readonly" style="width:88px;" placeholder="结束日期" title="结束日期"/></td>
  46 + <td style="vertical-align:top;padding-left:2px;">
  47 + <select class="chosen-select form-control" name="name" id="id" data-placeholder="请选择" style="vertical-align:top;width: 120px;">
  48 + <option value=""></option>
  49 + <option value="">全部</option>
  50 + <option value="">1</option>
  51 + <option value="">2</option>
  52 + </select>
  53 + </td>
  54 + <c:if test="${QX.cha == 1 }">
  55 + <td style="vertical-align:top;padding-left:2px"><a class="btn btn-light btn-xs" onclick="tosearch();" title="检索"><i id="nav-search-icon" class="ace-icon fa fa-search bigger-110 nav-search-icon blue"></i></a></td>
  56 + </c:if>
  57 + <c:if test="${QX.toExcel == 1 }"><td style="vertical-align:top;padding-left:2px;"><a class="btn btn-light btn-xs" onclick="toExcel();" title="导出到EXCEL"><i id="nav-search-icon" class="ace-icon fa fa-download bigger-110 nav-search-icon blue"></i></a></td></c:if>
  58 + </tr>
  59 + </table>
  60 + <!-- 检索 -->
  61 +
  62 + <table id="simple-table" class="table table-striped table-bordered table-hover" style="margin-top:5px;">
  63 + <thead>
  64 + <tr>
  65 + <th class="center" style="width:35px;">
  66 + <label class="pos-rel"><input type="checkbox" class="ace" id="zcheckbox" /><span class="lbl"></span></label>
  67 + </th>
  68 + <th class="center" style="width:50px;">序号</th>
  69 + <th class="center">学校地址省</th>
  70 + <th class="center">学校地址市</th>
  71 + <th class="center">联系人</th>
  72 + <th class="center">联系电话</th>
  73 + <th class="center">产品序列号</th>
  74 + <th class="center">问题现象</th>
  75 + <th class="center">操作系统</th>
  76 + <th class="center">软件版本</th>
  77 + <th class="center">软件名称</th>
  78 + <th class="center">异常数量</th>
  79 + <th class="center">详细描述</th>
  80 + <th class="center">问题图片</th>
  81 + <th class="center">客户编码</th>
  82 + <th class="center">处理人</th>
  83 + <th class="center">报告日期</th>
  84 + <th class="center">处理时间</th>
  85 + <th class="center">产品类型</th>
  86 + <th class="center">产品型号</th>
  87 + <th class="center">操作</th>
  88 + </tr>
  89 + </thead>
  90 +
  91 + <tbody>
  92 + <!-- 开始循环 -->
  93 + <c:choose>
  94 + <c:when test="${not empty varList}">
  95 + <c:if test="${QX.cha == 1 }">
  96 + <c:forEach items="${varList}" var="var" varStatus="vs">
  97 + <tr>
  98 + <td class='center'>
  99 + <label class="pos-rel"><input type='checkbox' name='ids' value="${var.ID}" class="ace" /><span class="lbl"></span></label>
  100 + </td>
  101 + <td class='center' style="width: 30px;">${vs.index+1}</td>
  102 + <td class='center'>${var.SCHOOL_ADDRESS1}</td>
  103 + <td class='center'>${var.SCHOOL_ADDRESS2}</td>
  104 + <td class='center'>${var.CONTACT_PHONE}</td>
  105 + <td class='center'>${var.PHONE_CONTACT}</td>
  106 + <td class='center'>${var.PRODUCT_SEQ}</td>
  107 + <td class='center'>${var.QUESTION_NAME}</td>
  108 + <td class='center'>${var.OS}</td>
  109 + <td class='center'>${var.SOFTWARE_VERSION}</td>
  110 + <td class='center'>${var.SOFTWARE_NAME}</td>
  111 + <td class='center'>${var.EXCEPTION_NUM}</td>
  112 + <td class='center'>${var.DESCRIPTION}</td>
  113 + <td class='center'>${var.PROBLEM_PATH}</td>
  114 + <td class='center'>${var.CUSTOMER_CODE}</td>
  115 + <td class='center'>${var.PERSON_LIABLE}</td>
  116 + <td class='center'>${var.CREATE_DATE}</td>
  117 + <td class='center'>${var.PROCESSING_DATE}</td>
  118 + <td class='center'>${var.PRODUCT_TYPE}</td>
  119 + <td class='center'>${var.PRODUCT_MODEL}</td>
  120 + <td class="center">
  121 + <c:if test="${QX.edit != 1 && QX.del != 1 }">
  122 + <span class="label label-large label-grey arrowed-in-right arrowed-in"><i class="ace-icon fa fa-lock" title="无权限"></i></span>
  123 + </c:if>
  124 + <div class="hidden-sm hidden-xs btn-group">
  125 + <c:if test="${QX.edit == 1 }">
  126 + <a class="btn btn-xs btn-success" title="编辑" onclick="edit('${var.ID}');">
  127 + <i class="ace-icon fa fa-pencil-square-o bigger-120" title="编辑"></i>
  128 + </a>
  129 + </c:if>
  130 + <c:if test="${QX.del == 1 }">
  131 + <a class="btn btn-xs btn-danger" onclick="del('${var.ID}');">
  132 + <i class="ace-icon fa fa-trash-o bigger-120" title="删除"></i>
  133 + </a>
  134 + </c:if>
  135 + </div>
  136 + <div class="hidden-md hidden-lg">
  137 + <div class="inline pos-rel">
  138 + <button class="btn btn-minier btn-primary dropdown-toggle" data-toggle="dropdown" data-position="auto">
  139 + <i class="ace-icon fa fa-cog icon-only bigger-110"></i>
  140 + </button>
  141 +
  142 + <ul class="dropdown-menu dropdown-only-icon dropdown-yellow dropdown-menu-right dropdown-caret dropdown-close">
  143 + <c:if test="${QX.edit == 1 }">
  144 + <li>
  145 + <a style="cursor:pointer;" onclick="edit('${var.ID}');" class="tooltip-success" data-rel="tooltip" title="修改">
  146 + <span class="green">
  147 + <i class="ace-icon fa fa-pencil-square-o bigger-120"></i>
  148 + </span>
  149 + </a>
  150 + </li>
  151 + </c:if>
  152 + <c:if test="${QX.del == 1 }">
  153 + <li>
  154 + <a style="cursor:pointer;" onclick="del('${var.ID}');" class="tooltip-error" data-rel="tooltip" title="删除">
  155 + <span class="red">
  156 + <i class="ace-icon fa fa-trash-o bigger-120"></i>
  157 + </span>
  158 + </a>
  159 + </li>
  160 + </c:if>
  161 + </ul>
  162 + </div>
  163 + </div>
  164 + </td>
  165 + </tr>
  166 +
  167 + </c:forEach>
  168 + </c:if>
  169 + <c:if test="${QX.cha == 0 }">
  170 + <tr>
  171 + <td colspan="100" class="center">您无权查看</td>
  172 + </tr>
  173 + </c:if>
  174 + </c:when>
  175 + <c:otherwise>
  176 + <tr class="main_info">
  177 + <td colspan="100" class="center" >没有相关数据</td>
  178 + </tr>
  179 + </c:otherwise>
  180 + </c:choose>
  181 + </tbody>
  182 + </table>
  183 + <div class="page-header position-relative">
  184 + <table style="width:100%;">
  185 + <tr>
  186 + <td style="vertical-align:top;">
  187 + <c:if test="${QX.add == 1 }">
  188 + <a class="btn btn-mini btn-success" onclick="add();">新增</a>
  189 + </c:if>
  190 + <c:if test="${QX.del == 1 }">
  191 + <a class="btn btn-mini btn-danger" onclick="makeAll('确定要删除选中的数据吗?');" title="批量删除" ><i class='ace-icon fa fa-trash-o bigger-120'></i></a>
  192 + </c:if>
  193 + </td>
  194 + <td style="vertical-align:top;"><div class="pagination" style="float: right;padding-top: 0px;margin-top: 0px;">${page.pageStr}</div></td>
  195 + </tr>
  196 + </table>
  197 + </div>
  198 + </form>
  199 +
  200 + </div>
  201 + <!-- /.col -->
  202 + </div>
  203 + <!-- /.row -->
  204 + </div>
  205 + <!-- /.page-content -->
  206 + </div>
  207 + </div>
  208 + <!-- /.main-content -->
  209 +
  210 + <!-- 返回顶部 -->
  211 + <a href="#" id="btn-scroll-up" class="btn-scroll-up btn btn-sm btn-inverse">
  212 + <i class="ace-icon fa fa-angle-double-up icon-only bigger-110"></i>
  213 + </a>
  214 +
  215 + </div>
  216 + <!-- /.main-container -->
  217 +
  218 + <!-- basic scripts -->
  219 + <!-- 页面底部js¨ -->
  220 + <%@ include file="../../system/index/foot.jsp"%>
  221 + <!-- 删除时确认窗口 -->
  222 + <script src="static/ace/js/bootbox.js"></script>
  223 + <!-- ace scripts -->
  224 + <script src="static/ace/js/ace/ace.js"></script>
  225 + <!-- 下拉框 -->
  226 + <script src="static/ace/js/chosen.jquery.js"></script>
  227 + <!-- 日期框 -->
  228 + <script src="static/ace/js/date-time/bootstrap-datepicker.js"></script>
  229 + <!--提示框-->
  230 + <script type="text/javascript" src="static/js/jquery.tips.js"></script>
  231 + <script type="text/javascript">
  232 + $(top.hangge());//关闭加载状态
  233 + //检索
  234 + function tosearch(){
  235 + top.jzts();
  236 + $("#Form").submit();
  237 + }
  238 + $(function() {
  239 +
  240 + //日期框
  241 + $('.date-picker').datepicker({
  242 + autoclose: true,
  243 + todayHighlight: true
  244 + });
  245 +
  246 + //下拉框
  247 + if(!ace.vars['touch']) {
  248 + $('.chosen-select').chosen({allow_single_deselect:true});
  249 + $(window)
  250 + .off('resize.chosen')
  251 + .on('resize.chosen', function() {
  252 + $('.chosen-select').each(function() {
  253 + var $this = $(this);
  254 + $this.next().css({'width': $this.parent().width()});
  255 + });
  256 + }).trigger('resize.chosen');
  257 + $(document).on('settings.ace.chosen', function(e, event_name, event_val) {
  258 + if(event_name != 'sidebar_collapsed') return;
  259 + $('.chosen-select').each(function() {
  260 + var $this = $(this);
  261 + $this.next().css({'width': $this.parent().width()});
  262 + });
  263 + });
  264 + $('#chosen-multiple-style .btn').on('click', function(e){
  265 + var target = $(this).find('input[type=radio]');
  266 + var which = parseInt(target.val());
  267 + if(which == 2) $('#form-field-select-4').addClass('tag-input-style');
  268 + else $('#form-field-select-4').removeClass('tag-input-style');
  269 + });
  270 + }
  271 +
  272 +
  273 + //复选框全选控制
  274 + var active_class = 'active';
  275 + $('#simple-table > thead > tr > th input[type=checkbox]').eq(0).on('click', function(){
  276 + var th_checked = this.checked;//checkbox inside "TH" table header
  277 + $(this).closest('table').find('tbody > tr').each(function(){
  278 + var row = this;
  279 + if(th_checked) $(row).addClass(active_class).find('input[type=checkbox]').eq(0).prop('checked', true);
  280 + else $(row).removeClass(active_class).find('input[type=checkbox]').eq(0).prop('checked', false);
  281 + });
  282 + });
  283 + });
  284 +
  285 + //新增
  286 + function add(){
  287 + top.jzts();
  288 + var diag = new top.Dialog();
  289 + diag.Drag=true;
  290 + diag.Title ="新增";
  291 + diag.URL = '<%=basePath%>feedback/goAdd.do';
  292 + diag.Width = 450;
  293 + diag.Height = 355;
  294 + diag.Modal = true; //有无遮罩窗口
  295 + diag. ShowMaxButton = true; //最大化按钮
  296 + diag.ShowMinButton = true; //最小化按钮
  297 + diag.CancelEvent = function(){ //关闭事件
  298 + if(diag.innerFrame.contentWindow.document.getElementById('zhongxin').style.display == 'none'){
  299 + if('${page.currentPage}' == '0'){
  300 + tosearch();
  301 + }else{
  302 + tosearch();
  303 + }
  304 + }
  305 + diag.close();
  306 + };
  307 + diag.show();
  308 + }
  309 +
  310 + //删除
  311 + function del(Id){
  312 + bootbox.confirm("确定要删除吗?", function(result) {
  313 + if(result) {
  314 + top.jzts();
  315 + var url = "<%=basePath%>feedback/delete.do?ID="+Id+"&tm="+new Date().getTime();
  316 + $.get(url,function(data){
  317 + tosearch();
  318 + });
  319 + }
  320 + });
  321 + }
  322 +
  323 + //修改
  324 + function edit(Id){
  325 + top.jzts();
  326 + var diag = new top.Dialog();
  327 + diag.Drag=true;
  328 + diag.Title ="编辑";
  329 + diag.URL = '<%=basePath%>feedback/goEdit.do?ID='+Id;
  330 + diag.Width = 450;
  331 + diag.Height = 355;
  332 + diag.Modal = true; //有无遮罩窗口
  333 + diag. ShowMaxButton = true; //最大化按钮
  334 + diag.ShowMinButton = true; //最小化按钮
  335 + diag.CancelEvent = function(){ //关闭事件
  336 + if(diag.innerFrame.contentWindow.document.getElementById('zhongxin').style.display == 'none'){
  337 + tosearch();
  338 + }
  339 + diag.close();
  340 + };
  341 + diag.show();
  342 + }
  343 +
  344 + //批量操作
  345 + function makeAll(msg){
  346 + bootbox.confirm(msg, function(result) {
  347 + if(result) {
  348 + var str = '';
  349 + for(var i=0;i < document.getElementsByName('ids').length;i++){
  350 + if(document.getElementsByName('ids')[i].checked){
  351 + if(str=='') str += document.getElementsByName('ids')[i].value;
  352 + else str += ',' + document.getElementsByName('ids')[i].value;
  353 + }
  354 + }
  355 + if(str==''){
  356 + bootbox.dialog({
  357 + message: "<span class='bigger-110'>您没有选择任何内容!</span>",
  358 + buttons:
  359 + { "button":{ "label":"确定", "className":"btn-sm btn-success"}}
  360 + });
  361 + $("#zcheckbox").tips({
  362 + side:1,
  363 + msg:'点这里全选',
  364 + bg:'#AE81FF',
  365 + time:8
  366 + });
  367 + return;
  368 + }else{
  369 + if(msg == '确定要删除选中的数据吗?'){
  370 + top.jzts();
  371 + $.ajax({
  372 + type: "POST",
  373 + url: '<%=basePath%>feedback/deleteAll.do?tm='+new Date().getTime(),
  374 + data: {DATA_IDS:str},
  375 + dataType:'json',
  376 + //beforeSend: validateData,
  377 + cache: false,
  378 + success: function(data){
  379 + $.each(data.list, function(i, list){
  380 + tosearch();
  381 + });
  382 + }
  383 + });
  384 + }
  385 + }
  386 + }
  387 + });
  388 + };
  389 +
  390 + //导出excel
  391 + function toExcel(){
  392 + window.location.href='<%=basePath%>feedback/excel.do';
  393 + }
  394 + </script>
  395 +
  396 +
  397 +</body>
  398 +</html>
0 399 \ No newline at end of file
... ...
WebRoot/WEB-INF/jsp/feedback/problemphenomenon/problemphenomenon_edit.jsp 0 → 100644
  1 +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
  2 +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
  3 +<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
  4 +<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
  5 +<%
  6 + String path = request.getContextPath();
  7 + String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
  8 +%>
  9 +<!DOCTYPE html>
  10 +<html lang="en">
  11 + <head>
  12 + <base href="<%=basePath%>">
  13 + <!-- 下拉框 -->
  14 + <link rel="stylesheet" href="static/ace/css/chosen.css" />
  15 + <!-- jsp文件头和头部 -->
  16 + <%@ include file="../../system/index/top.jsp"%>
  17 + <!-- 日期框 -->
  18 + <link rel="stylesheet" href="static/ace/css/datepicker.css" />
  19 +</head>
  20 +<body class="no-skin">
  21 +<!-- /section:basics/navbar.layout -->
  22 +<div class="main-container" id="main-container">
  23 + <!-- /section:basics/sidebar -->
  24 + <div class="main-content">
  25 + <div class="main-content-inner">
  26 + <div class="page-content">
  27 + <div class="row">
  28 + <div class="col-xs-12">
  29 +
  30 + <form action="problemphenomenon/${msg }.do" name="Form" id="Form" method="post">
  31 + <input type="hidden" name="ID" id="ID" value="${pd.ID}"/>
  32 + <div id="zhongxin" style="padding-top: 13px;">
  33 + <table id="table_report" class="table table-striped table-bordered table-hover">
  34 + <tr>
  35 + <td style="width:75px;text-align: right;padding-top: 13px;">问题描述:</td>
  36 + <td><input type="text" name="DESC1" id="DESC1" value="${pd.DESC1}" maxlength="255" placeholder="这里输入问题描述" title="问题描述" style="width:98%;"/></td>
  37 + </tr>
  38 + <tr>
  39 + <td style="width:75px;text-align: right;padding-top: 13px;">备注:</td>
  40 + <td><input type="text" name="REMARK" id="REMARK" value="${pd.REMARK}" maxlength="255" placeholder="这里输入备注" title="备注" style="width:98%;"/></td>
  41 + </tr>
  42 + <tr>
  43 + <td style="text-align: center;" colspan="10">
  44 + <a class="btn btn-mini btn-primary" onclick="save();">保存</a>
  45 + <a class="btn btn-mini btn-danger" onclick="top.Dialog.close();">取消</a>
  46 + </td>
  47 + </tr>
  48 + </table>
  49 + </div>
  50 + <div id="zhongxin2" class="center" style="display:none"><br/><br/><br/><br/><br/><img src="static/images/jiazai.gif" /><br/><h4 class="lighter block green">提交中...</h4></div>
  51 + </form>
  52 + </div>
  53 + <!-- /.col -->
  54 + </div>
  55 + <!-- /.row -->
  56 + </div>
  57 + <!-- /.page-content -->
  58 + </div>
  59 + </div>
  60 + <!-- /.main-content -->
  61 +</div>
  62 +<!-- /.main-container -->
  63 +
  64 +
  65 + <!-- 页面底部js¨ -->
  66 + <%@ include file="../../system/index/foot.jsp"%>
  67 + <!-- 下拉框 -->
  68 + <script src="static/ace/js/chosen.jquery.js"></script>
  69 + <!-- 日期框 -->
  70 + <script src="static/ace/js/date-time/bootstrap-datepicker.js"></script>
  71 + <!--提示框-->
  72 + <script type="text/javascript" src="static/js/jquery.tips.js"></script>
  73 + <script type="text/javascript">
  74 + $(top.hangge());
  75 + //保存
  76 + function save(){
  77 + if($("#DESC1").val()==""){
  78 + $("#DESC1").tips({
  79 + side:3,
  80 + msg:'请输入问题描述',
  81 + bg:'#AE81FF',
  82 + time:2
  83 + });
  84 + $("#DESC1").focus();
  85 + return false;
  86 + }
  87 + if($("#REMARK").val()==""){
  88 + $("#REMARK").tips({
  89 + side:3,
  90 + msg:'请输入备注',
  91 + bg:'#AE81FF',
  92 + time:2
  93 + });
  94 + $("#REMARK").focus();
  95 + return false;
  96 + }
  97 + $("#Form").submit();
  98 + $("#zhongxin").hide();
  99 + $("#zhongxin2").show();
  100 + }
  101 +
  102 + $(function() {
  103 + //日期框
  104 + $('.date-picker').datepicker({autoclose: true,todayHighlight: true});
  105 + });
  106 + </script>
  107 +</body>
  108 +</html>
0 109 \ No newline at end of file
... ...
WebRoot/WEB-INF/jsp/feedback/problemphenomenon/problemphenomenon_list.jsp 0 → 100644
  1 +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
  2 +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
  3 +<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
  4 +<%
  5 + String path = request.getContextPath();
  6 + String basePath = request.getScheme() + "://"
  7 + + request.getServerName() + ":" + request.getServerPort()
  8 + + path + "/";
  9 +%>
  10 +<!DOCTYPE html>
  11 +<html lang="en">
  12 +<head>
  13 +<base href="<%=basePath%>">
  14 +<!-- 下拉框 -->
  15 +<link rel="stylesheet" href="static/ace/css/chosen.css" />
  16 +<!-- jsp文件头和头部 -->
  17 +<%@ include file="../../system/index/top.jsp"%>
  18 +<!-- 日期框 -->
  19 +<link rel="stylesheet" href="static/ace/css/datepicker.css" />
  20 +</head>
  21 +<body class="no-skin">
  22 +
  23 + <!-- /section:basics/navbar.layout -->
  24 + <div class="main-container" id="main-container">
  25 + <!-- /section:basics/sidebar -->
  26 + <div class="main-content">
  27 + <div class="main-content-inner">
  28 + <div class="page-content">
  29 + <div class="row">
  30 + <div class="col-xs-12">
  31 +
  32 + <!-- 检索 -->
  33 + <form action="problemphenomenon/list.do" method="post" name="Form" id="Form">
  34 + <table style="margin-top:5px;">
  35 + <tr>
  36 + <td>
  37 + <div class="nav-search">
  38 + <span class="input-icon">
  39 + <input type="text" placeholder="这里输入关键词" class="nav-search-input" id="nav-search-input" autocomplete="off" name="keywords" value="${pd.keywords }" placeholder="这里输入关键词"/>
  40 + <i class="ace-icon fa fa-search nav-search-icon"></i>
  41 + </span>
  42 + </div>
  43 + </td>
  44 + <td style="padding-left:2px;"><input class="span10 date-picker" name="lastStart" id="lastStart" value="" type="text" data-date-format="yyyy-mm-dd" readonly="readonly" style="width:88px;" placeholder="开始日期" title="开始日期"/></td>
  45 + <td style="padding-left:2px;"><input class="span10 date-picker" name="lastEnd" name="lastEnd" value="" type="text" data-date-format="yyyy-mm-dd" readonly="readonly" style="width:88px;" placeholder="结束日期" title="结束日期"/></td>
  46 + <td style="vertical-align:top;padding-left:2px;">
  47 + <select class="chosen-select form-control" name="name" id="id" data-placeholder="请选择" style="vertical-align:top;width: 120px;">
  48 + <option value=""></option>
  49 + <option value="">全部</option>
  50 + <option value="">1</option>
  51 + <option value="">2</option>
  52 + </select>
  53 + </td>
  54 + <c:if test="${QX.cha == 1 }">
  55 + <td style="vertical-align:top;padding-left:2px"><a class="btn btn-light btn-xs" onclick="tosearch();" title="检索"><i id="nav-search-icon" class="ace-icon fa fa-search bigger-110 nav-search-icon blue"></i></a></td>
  56 + </c:if>
  57 + <c:if test="${QX.toExcel == 1 }"><td style="vertical-align:top;padding-left:2px;"><a class="btn btn-light btn-xs" onclick="toExcel();" title="导出到EXCEL"><i id="nav-search-icon" class="ace-icon fa fa-download bigger-110 nav-search-icon blue"></i></a></td></c:if>
  58 + </tr>
  59 + </table>
  60 + <!-- 检索 -->
  61 +
  62 + <table id="simple-table" class="table table-striped table-bordered table-hover" style="margin-top:5px;">
  63 + <thead>
  64 + <tr>
  65 + <th class="center" style="width:35px;">
  66 + <label class="pos-rel"><input type="checkbox" class="ace" id="zcheckbox" /><span class="lbl"></span></label>
  67 + </th>
  68 + <th class="center" style="width:50px;">序号</th>
  69 + <th class="center">问题描述</th>
  70 + <th class="center">备注</th>
  71 + <th class="center">操作</th>
  72 + </tr>
  73 + </thead>
  74 +
  75 + <tbody>
  76 + <!-- 开始循环 -->
  77 + <c:choose>
  78 + <c:when test="${not empty varList}">
  79 + <c:if test="${QX.cha == 1 }">
  80 + <c:forEach items="${varList}" var="var" varStatus="vs">
  81 + <tr>
  82 + <td class='center'>
  83 + <label class="pos-rel"><input type='checkbox' name='ids' value="${var.ID}" class="ace" /><span class="lbl"></span></label>
  84 + </td>
  85 + <td class='center' style="width: 30px;">${vs.index+1}</td>
  86 + <td class='center'>${var.DESC1}</td>
  87 + <td class='center'>${var.REMARK}</td>
  88 + <td class="center">
  89 + <c:if test="${QX.edit != 1 && QX.del != 1 }">
  90 + <span class="label label-large label-grey arrowed-in-right arrowed-in"><i class="ace-icon fa fa-lock" title="无权限"></i></span>
  91 + </c:if>
  92 + <div class="hidden-sm hidden-xs btn-group">
  93 + <c:if test="${QX.edit == 1 }">
  94 + <a class="btn btn-xs btn-success" title="编辑" onclick="edit('${var.ID}');">
  95 + <i class="ace-icon fa fa-pencil-square-o bigger-120" title="编辑"></i>
  96 + </a>
  97 + </c:if>
  98 + <c:if test="${QX.del == 1 }">
  99 + <a class="btn btn-xs btn-danger" onclick="del('${var.ID}');">
  100 + <i class="ace-icon fa fa-trash-o bigger-120" title="删除"></i>
  101 + </a>
  102 + </c:if>
  103 + </div>
  104 + <div class="hidden-md hidden-lg">
  105 + <div class="inline pos-rel">
  106 + <button class="btn btn-minier btn-primary dropdown-toggle" data-toggle="dropdown" data-position="auto">
  107 + <i class="ace-icon fa fa-cog icon-only bigger-110"></i>
  108 + </button>
  109 +
  110 + <ul class="dropdown-menu dropdown-only-icon dropdown-yellow dropdown-menu-right dropdown-caret dropdown-close">
  111 + <c:if test="${QX.edit == 1 }">
  112 + <li>
  113 + <a style="cursor:pointer;" onclick="edit('${var.ID}');" class="tooltip-success" data-rel="tooltip" title="修改">
  114 + <span class="green">
  115 + <i class="ace-icon fa fa-pencil-square-o bigger-120"></i>
  116 + </span>
  117 + </a>
  118 + </li>
  119 + </c:if>
  120 + <c:if test="${QX.del == 1 }">
  121 + <li>
  122 + <a style="cursor:pointer;" onclick="del('${var.ID}');" class="tooltip-error" data-rel="tooltip" title="删除">
  123 + <span class="red">
  124 + <i class="ace-icon fa fa-trash-o bigger-120"></i>
  125 + </span>
  126 + </a>
  127 + </li>
  128 + </c:if>
  129 + </ul>
  130 + </div>
  131 + </div>
  132 + </td>
  133 + </tr>
  134 +
  135 + </c:forEach>
  136 + </c:if>
  137 + <c:if test="${QX.cha == 0 }">
  138 + <tr>
  139 + <td colspan="100" class="center">您无权查看</td>
  140 + </tr>
  141 + </c:if>
  142 + </c:when>
  143 + <c:otherwise>
  144 + <tr class="main_info">
  145 + <td colspan="100" class="center" >没有相关数据</td>
  146 + </tr>
  147 + </c:otherwise>
  148 + </c:choose>
  149 + </tbody>
  150 + </table>
  151 + <div class="page-header position-relative">
  152 + <table style="width:100%;">
  153 + <tr>
  154 + <td style="vertical-align:top;">
  155 + <c:if test="${QX.add == 1 }">
  156 + <a class="btn btn-mini btn-success" onclick="add();">新增</a>
  157 + </c:if>
  158 + <c:if test="${QX.del == 1 }">
  159 + <a class="btn btn-mini btn-danger" onclick="makeAll('确定要删除选中的数据吗?');" title="批量删除" ><i class='ace-icon fa fa-trash-o bigger-120'></i></a>
  160 + </c:if>
  161 + </td>
  162 + <td style="vertical-align:top;"><div class="pagination" style="float: right;padding-top: 0px;margin-top: 0px;">${page.pageStr}</div></td>
  163 + </tr>
  164 + </table>
  165 + </div>
  166 + </form>
  167 +
  168 + </div>
  169 + <!-- /.col -->
  170 + </div>
  171 + <!-- /.row -->
  172 + </div>
  173 + <!-- /.page-content -->
  174 + </div>
  175 + </div>
  176 + <!-- /.main-content -->
  177 +
  178 + <!-- 返回顶部 -->
  179 + <a href="#" id="btn-scroll-up" class="btn-scroll-up btn btn-sm btn-inverse">
  180 + <i class="ace-icon fa fa-angle-double-up icon-only bigger-110"></i>
  181 + </a>
  182 +
  183 + </div>
  184 + <!-- /.main-container -->
  185 +
  186 + <!-- basic scripts -->
  187 + <!-- 页面底部js¨ -->
  188 + <%@ include file="../../system/index/foot.jsp"%>
  189 + <!-- 删除时确认窗口 -->
  190 + <script src="static/ace/js/bootbox.js"></script>
  191 + <!-- ace scripts -->
  192 + <script src="static/ace/js/ace/ace.js"></script>
  193 + <!-- 下拉框 -->
  194 + <script src="static/ace/js/chosen.jquery.js"></script>
  195 + <!-- 日期框 -->
  196 + <script src="static/ace/js/date-time/bootstrap-datepicker.js"></script>
  197 + <!--提示框-->
  198 + <script type="text/javascript" src="static/js/jquery.tips.js"></script>
  199 + <script type="text/javascript">
  200 + $(top.hangge());//关闭加载状态
  201 + //检索
  202 + function tosearch(){
  203 + top.jzts();
  204 + $("#Form").submit();
  205 + }
  206 + $(function() {
  207 +
  208 + //日期框
  209 + $('.date-picker').datepicker({
  210 + autoclose: true,
  211 + todayHighlight: true
  212 + });
  213 +
  214 + //下拉框
  215 + if(!ace.vars['touch']) {
  216 + $('.chosen-select').chosen({allow_single_deselect:true});
  217 + $(window)
  218 + .off('resize.chosen')
  219 + .on('resize.chosen', function() {
  220 + $('.chosen-select').each(function() {
  221 + var $this = $(this);
  222 + $this.next().css({'width': $this.parent().width()});
  223 + });
  224 + }).trigger('resize.chosen');
  225 + $(document).on('settings.ace.chosen', function(e, event_name, event_val) {
  226 + if(event_name != 'sidebar_collapsed') return;
  227 + $('.chosen-select').each(function() {
  228 + var $this = $(this);
  229 + $this.next().css({'width': $this.parent().width()});
  230 + });
  231 + });
  232 + $('#chosen-multiple-style .btn').on('click', function(e){
  233 + var target = $(this).find('input[type=radio]');
  234 + var which = parseInt(target.val());
  235 + if(which == 2) $('#form-field-select-4').addClass('tag-input-style');
  236 + else $('#form-field-select-4').removeClass('tag-input-style');
  237 + });
  238 + }
  239 +
  240 +
  241 + //复选框全选控制
  242 + var active_class = 'active';
  243 + $('#simple-table > thead > tr > th input[type=checkbox]').eq(0).on('click', function(){
  244 + var th_checked = this.checked;//checkbox inside "TH" table header
  245 + $(this).closest('table').find('tbody > tr').each(function(){
  246 + var row = this;
  247 + if(th_checked) $(row).addClass(active_class).find('input[type=checkbox]').eq(0).prop('checked', true);
  248 + else $(row).removeClass(active_class).find('input[type=checkbox]').eq(0).prop('checked', false);
  249 + });
  250 + });
  251 + });
  252 +
  253 + //新增
  254 + function add(){
  255 + top.jzts();
  256 + var diag = new top.Dialog();
  257 + diag.Drag=true;
  258 + diag.Title ="新增";
  259 + diag.URL = '<%=basePath%>problemphenomenon/goAdd.do';
  260 + diag.Width = 450;
  261 + diag.Height = 355;
  262 + diag.Modal = true; //有无遮罩窗口
  263 + diag. ShowMaxButton = true; //最大化按钮
  264 + diag.ShowMinButton = true; //最小化按钮
  265 + diag.CancelEvent = function(){ //关闭事件
  266 + if(diag.innerFrame.contentWindow.document.getElementById('zhongxin').style.display == 'none'){
  267 + if('${page.currentPage}' == '0'){
  268 + tosearch();
  269 + }else{
  270 + tosearch();
  271 + }
  272 + }
  273 + diag.close();
  274 + };
  275 + diag.show();
  276 + }
  277 +
  278 + //删除
  279 + function del(Id){
  280 + bootbox.confirm("确定要删除吗?", function(result) {
  281 + if(result) {
  282 + top.jzts();
  283 + var url = "<%=basePath%>problemphenomenon/delete.do?ID="+Id+"&tm="+new Date().getTime();
  284 + $.get(url,function(data){
  285 + tosearch();
  286 + });
  287 + }
  288 + });
  289 + }
  290 +
  291 + //修改
  292 + function edit(Id){
  293 + top.jzts();
  294 + var diag = new top.Dialog();
  295 + diag.Drag=true;
  296 + diag.Title ="编辑";
  297 + diag.URL = '<%=basePath%>problemphenomenon/goEdit.do?ID='+Id;
  298 + diag.Width = 450;
  299 + diag.Height = 355;
  300 + diag.Modal = true; //有无遮罩窗口
  301 + diag. ShowMaxButton = true; //最大化按钮
  302 + diag.ShowMinButton = true; //最小化按钮
  303 + diag.CancelEvent = function(){ //关闭事件
  304 + if(diag.innerFrame.contentWindow.document.getElementById('zhongxin').style.display == 'none'){
  305 + tosearch();
  306 + }
  307 + diag.close();
  308 + };
  309 + diag.show();
  310 + }
  311 +
  312 + //批量操作
  313 + function makeAll(msg){
  314 + bootbox.confirm(msg, function(result) {
  315 + if(result) {
  316 + var str = '';
  317 + for(var i=0;i < document.getElementsByName('ids').length;i++){
  318 + if(document.getElementsByName('ids')[i].checked){
  319 + if(str=='') str += document.getElementsByName('ids')[i].value;
  320 + else str += ',' + document.getElementsByName('ids')[i].value;
  321 + }
  322 + }
  323 + if(str==''){
  324 + bootbox.dialog({
  325 + message: "<span class='bigger-110'>您没有选择任何内容!</span>",
  326 + buttons:
  327 + { "button":{ "label":"确定", "className":"btn-sm btn-success"}}
  328 + });
  329 + $("#zcheckbox").tips({
  330 + side:1,
  331 + msg:'点这里全选',
  332 + bg:'#AE81FF',
  333 + time:8
  334 + });
  335 + return;
  336 + }else{
  337 + if(msg == '确定要删除选中的数据吗?'){
  338 + top.jzts();
  339 + $.ajax({
  340 + type: "POST",
  341 + url: '<%=basePath%>problemphenomenon/deleteAll.do?tm='+new Date().getTime(),
  342 + data: {DATA_IDS:str},
  343 + dataType:'json',
  344 + //beforeSend: validateData,
  345 + cache: false,
  346 + success: function(data){
  347 + $.each(data.list, function(i, list){
  348 + tosearch();
  349 + });
  350 + }
  351 + });
  352 + }
  353 + }
  354 + }
  355 + });
  356 + };
  357 +
  358 + //导出excel
  359 + function toExcel(){
  360 + window.location.href='<%=basePath%>problemphenomenon/excel.do';
  361 + }
  362 + </script>
  363 +
  364 +
  365 +</body>
  366 +</html>
0 367 \ No newline at end of file
... ...
WebRoot/WEB-INF/jsp/system/index/login.jsp
... ... @@ -345,7 +345,7 @@
345 345 $("#password").focus();
346 346 return false;
347 347 }
348   - if ($("#code").val() == "") {
  348 + /* if ($("#code").val() == "") {
349 349 $("#code").tips({
350 350 side : 1,
351 351 msg : '验证码不得为空',
... ... @@ -355,7 +355,7 @@
355 355 showfh();
356 356 $("#code").focus();
357 357 return false;
358   - }
  358 + } */
359 359 $("#loginbox").tips({
360 360 side : 1,
361 361 msg : '正在登录 , 请稍后 ...',
... ... @@ -479,7 +479,7 @@
479 479 $("#EMAIL").focus();
480 480 return false;
481 481 }
482   - if ($("#rcode").val() == "") {
  482 + /* if ($("#rcode").val() == "") {
483 483 $("#rcode").tips({
484 484 side : 1,
485 485 msg : '验证码不得为空',
... ... @@ -488,7 +488,7 @@
488 488 });
489 489 $("#rcode").focus();
490 490 return false;
491   - }
  491 + } */
492 492 return true;
493 493 }
494 494  
... ...
WebRoot/WEB-INF/web.xml
... ... @@ -27,7 +27,7 @@
27 27 </filter-mapping>
28 28 <context-param>
29 29 <param-name>webAppRootKey</param-name>
30   - <param-value>www.fhadmin.org</param-value>
  30 + <param-value>www.zhongtianjiaoyu.org</param-value>
31 31 </context-param>
32 32 <filter>
33 33 <filter-name>DruidWebStatFilter</filter-name>
... ...
WebRoot/afterService/css/style.css 0 → 100644
  1 +li{list-style:none;}
  2 + a{color:#000;}
  3 +ul{padding:0;}
  4 +.container h3{border-bottom:1px solid #000;padding-bottom:10px;}
  5 +.container .col-md-8 li{float:left;margin-left:15px;}
  6 +.container .col-md-8 ul li:first-child{margin-left:0;}
  7 +.container .col-md-8 li img{width:140px;height:140px;}
  8 +.container .col-md-8 li p{text-align:center;font-size:16px;margin-top:5px;}
  9 +.container .col-md-8 h3 img{width:30px;margin-right:2%;vertical-align:bottom;}
  10 +.container .col-md-4 li{margin-top:10%;border-bottom:1px dashed #383838;}
  11 +.container .col-md-4 li .col-xs-3 img{width:50px;}
  12 +.container .col-md-4 li .col-xs-9:nth-child(2) p{font-size:18px;font-weight:bold;}
  13 +.container .col-md-4 li .col-xs-9:nth-child(3) p{font-size:14px;color:#ccc;}
  14 +.container .contact .col-xs-11 p{font-size:16px;font-weight:bold;margin-top:10px;}
  15 +.container .contact .col-xs-11 p span{font-size:20px;}
  16 +
  17 +.header{border-bottom:1px dashed #ccc;padding:3% 0;}
  18 +.header .col-xs-9:nth-child(2) p{font-size:18px;font-weight:700;}
  19 +.content{padding:3% 0;}
  20 +.form-group{margin-top:10px;}
  21 +.xq label{width:4em;float:left;}
  22 +.rightBox{padding-top:3%;}
  23 +.red{color:#FF0000;}
  24 +.qaList p:first-child{font-size:18px;font-weight:bold;}
  25 +.k{display:inline-block;width:10px;height:10px;background:#1886ec;margin-right:5px;}
0 26 \ No newline at end of file
... ...
WebRoot/afterService/document/基站-EA1000-常见问题解答(新东方)V1.1-20170922.pdf 0 → 100644
No preview for this file type
WebRoot/afterService/document/新东方产品售后维修流程.pdf 0 → 100644
No preview for this file type
WebRoot/afterService/document/新东方售后政策&改善说明.pdf 0 → 100644
No preview for this file type
WebRoot/afterService/document/新东方基站-EA4200W-常见问题解答()V1.0-20170922.pdf 0 → 100644
No preview for this file type
WebRoot/afterService/document/键盘-S52Plus-常见问题解答V1.0(新东方)-20180309.pdf 0 → 100644
No preview for this file type
WebRoot/afterService/dt_info.html 0 → 100644
  1 +<!DOCTYPE html>
  2 +<html lang="zh">
  3 +<head>
  4 + <meta charset="UTF-8">
  5 + <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
  6 + <meta name="viewport" content="width=device-width, initial-scale=1.0">
  7 + <title>填写资料</title>
  8 + <link rel="stylesheet" href="http://lib.sinaapp.com/js/bootstrap/3.0.0/css/bootstrap.min.css" />
  9 + <link rel="stylesheet" href="css/style.css" />
  10 + <style>
  11 + body{ background-color: #fff }
  12 + </style>
  13 + <!--[if IE]>
  14 + <script src="http://libs.baidu.com/html5shiv/3.7/html5shiv.min.js"></script>
  15 + <![endif]-->
  16 + <script src="http://libs.baidu.com/jquery/1.11.1/jquery.min.js"></script>
  17 + <script src="http://lib.sinaapp.com/js/bootstrap/3.0.0/js/bootstrap.min.js"></script>
  18 + <script src="js/data.js"></script>
  19 + <script src="js/require.min.js"></script>
  20 +
  21 +</head>
  22 +<body>
  23 + <div class="container column" >
  24 + <div class="col-md-8">
  25 + <div class="header">
  26 + <div class="row">
  27 + <div class="col-xs-3"><img src="" width="140px" id="model_pic"/></div>
  28 + <div class="col-xs-9"><p><span id="model">答题器</span>问题反馈</p></div>
  29 + <div class="col-xs-9"><p>请填写以下信息反馈问题,我们会在24小时内响应。或直接拨打售后电话您也可以根据问题的现象参照常见问题,自行排查问题。</p></div>
  30 + </div>
  31 + </div>
  32 + <div class="content">
  33 + <form class="form-inline" id="list">
  34 + <div class="form-group col-md-6">
  35 + <label ><span class="red">*</span>校区名称:</label>
  36 + <div class="control-group xq">
  37 + <div class="controls col-md-6" style="padding-left:0;">
  38 + <select id="province" class="form-control">
  39 + <option value="请选择"></option>
  40 + </select>
  41 +
  42 + </div>
  43 + <div class="controls col-md-6" style="padding-right:0;">
  44 + <select id="city" class="form-control">
  45 + <option value="请选择">请选择</option>
  46 + </select>
  47 + </div>
  48 + </div>
  49 +
  50 + </div>
  51 + <div class="form-group col-md-6">
  52 + <label for="name"><span class="red">*</span>联系人:</label>
  53 + <input type="text" class="form-control" id="name" placeholder="">
  54 + </div>
  55 + <div class="form-group col-md-6">
  56 + <label for="tel"><span class="red">*</span>联系电话:</label>
  57 + <input type="text" class="form-control" id="tel" placeholder="">
  58 + </div>
  59 + <div class="form-group col-md-6">
  60 + <label for="sn"><span class="red">*</span>产品序列号:</label>
  61 + <input type="text" class="form-control" id="sn" placeholder="">
  62 + </div>
  63 + <div class="form-group col-md-6">
  64 + <label for="question"><span class="red">*</span>问题现象:</label>
  65 + <div class="controls col-md-12" style="padding:0;">
  66 + <select id="question" class="form-control">
  67 + <option value="请选择" id="question1">请选择</option>
  68 + </select>
  69 + </div>
  70 + </div>
  71 + <div class="form-group col-md-6">
  72 + <label for="system"><span class="red">*</span>操作系统:</label>
  73 + <div class="controls col-md-12" style="padding:0;">
  74 + <select id="system" class="form-control">
  75 + <option value="请选择">请选择</option>
  76 + <option value="Windows">Windows</option>
  77 + <option value="Mac">Mac</option>
  78 + <option value="IOS">IOS</option>
  79 + </select>
  80 + </div>
  81 + </div>
  82 + <div class="form-group col-md-6">
  83 + <label for="softname"><span class="red">*</span>软件名称:</label>
  84 + <div class="controls col-md-12" style="padding:0;">
  85 + <select id="softname" class="form-control">
  86 + <option value="请选择">请选择</option>
  87 + <option value="互动课堂">互动课堂</option>
  88 + <option value="配对工具Match Tool">配对工具Match Tool</option>
  89 + </select>
  90 + </div>
  91 + </div>
  92 + <div class="form-group col-md-6">
  93 + <label for="version">软件版本:</label>
  94 + <input type="text" class="form-control" id="version" placeholder="">
  95 + </div>
  96 + <div class="form-group col-md-6">
  97 + <label for="num"><span class="red">*</span>异常数量:</label>
  98 + <input type="text" class="form-control" id="num" placeholder="">
  99 + </div>
  100 + <div class="form-group col-md-6">
  101 + <label for="station"><span class="red">*</span>配套基站:</label>
  102 + <div class="controls col-md-12" style="padding:0;">
  103 + <select id="station" class="form-control">
  104 + <option value="请选择">请选择</option>
  105 + <option value="EA1000">EA1000</option>
  106 + <option value="EA4200W">EA4200W</option>
  107 + </select>
  108 + </div>
  109 + </div>
  110 + <div class="form-group col-md-12">
  111 + <label for="dec"><span class="red">*</span>详细描述:</label>
  112 + <textarea class="form-control" rows="5" id="dec"></textarea>
  113 + </div>
  114 + <div class="form-group col-md-12">
  115 + <label for="pic">问题图片:</label>
  116 + <input type="file" class="form-control" id="pic" placeholder="">
  117 + </div>
  118 +
  119 +
  120 + </form>
  121 + <input type="button" value="提交" class="btn btn-primary btn-lg" style="margin:0 auto;display:block;margin-top:5%;" onclick="submit();"/>
  122 + </div>
  123 + </div>
  124 + <div class="col-md-4" style="border-left:1px solid #ccc;height:740px;padding:30px 20px;overflow-y:auto;">
  125 + <div class="rightBox">
  126 + <div class="qaList">
  127 + <div class="list_top">
  128 + <img src="images/dt_q1.png" width="100%"/>
  129 + <img src="images/dt_q1.png" width="100%"/>
  130 + <h4><span class="k"></span>R-接收标志</h4>
  131 + <p>键盘接收到基站发送的指令时显示。用于判断键盘是否进入反馈状态。</p>
  132 + <h4><span class="k"></span>T-发送标志</h4>
  133 + <p>键盘提交数据给基站时显示,用于判断键盘是否发送了数据。</p>
  134 + <h4><span class="k"></span>OK-发送成功标志</h4>
  135 + <p>基站收到键盘发送的数据时显示,用于判断键盘数据是否发送成功。</p>
  136 + </div>
  137 + <div class="list_content">
  138 + <li>
  139 + <p class="q_title">问题现象1:无法开机</p>
  140 + <p>可能键盘没有电导致,更换电池后再次尝试是否可以开机。若更换电池后仍无法开机,请联系技术支持。</p>
  141 + </li>
  142 + <li>
  143 + <p class="q_title">问题现象2:无信号</p>
  144 + <p>确认基站连接成功后,键盘仍显示无信号,可能是未进行配对导致。使用配对工具SunVote Match Tool V1.0.0.1配对后再尝试。开启配对后,S52Plus同时按住配对键“”和“”,直到键盘屏幕上有数字滚动。若无法配对,请参考问题“5.为什么答题器无法与基站配对成功”</p>
  145 +
  146 + </li>
  147 + <li>
  148 + <p class="q_title">问题现象3:有信号,无法进入反馈(不显示R)</p>
  149 + <p>① 所有键盘无法进入反馈,可能是基站未开始反馈。确保基站连接成功,并且已经进入答题状态。</p>
  150 + <p>② 个别键盘无法进入反馈,可能是受到其他基站干扰。确保周围没有相邻频点基站或免配对基站正在使用。可把当前基站拔了,确认答题器上是否仍然有信号,如果有信号,可确认该答题器与其他基站匹配了。可将该答题器与基站重新配对。</p>
  151 +
  152 + </li>
  153 + <li>
  154 + <p class="q_title">问题现象4:进入反馈(显示R),无法提交(不显示OK),或提交慢</p>
  155 + <p>可能是由于信号不好导致,干扰信号的因素:2.4G设备,信号屏蔽仪,同频点或免配对基站,人或其他物体的阻挡。避免信号干扰的方法如下:</p>
  156 + <p>① 确保附近没有其他基站干扰</p>
  157 + <p>② 确保键盘和基站之间没有障碍物阻挡</p>
  158 + <p>③ 确保未开启信号屏蔽议</p>
  159 + <p>④ 尝试更换频道,一般情况下频道1和7效果会较好。</p>
  160 + <p> 可能是按键磨损导致按键不灵。观察按键上的文字是否脱落,是否能看到答题器的线路板(示例如下)。如果确定按键有磨损,可将异常产品数量统计,并联系厂家技术支持安排售后处理。</p>
  161 + <img src="images/dt_q3.png" width="30%" />
  162 +
  163 + </li>
  164 + <li>
  165 + <p class="q_title">问题现象5:为什么键盘有时需按Send键提交,有时候自动提交?</p>
  166 + <p>基站的提交模式决定</p>
  167 + <p>基站支持自动提交和按键提交两种提交模式,设置成自动提交时,单选、判断输入选项后即可自动提交。多选、排序、数字类型的题目,不支持自动提交模式,需要按Send键提交。出厂默认为自动提交模式。</p>
  168 + </li>
  169 + <li>
  170 + <p class="q_title">问题现象6:什么情况下耗电快?</p>
  171 + <p>离线开机</p>
  172 + <p>离线开机时,键盘需要搜索基站,无线模块一直处于发射信号中,耗电比正常工作时要大很多。</p>
  173 + <p>保管不当</p>
  174 + <p>装有电池的键盘,宜要存放在干燥通风的地方。温差太大或者太潮湿的环境都不适宜存放。</p>
  175 + </li>
  176 + <li>
  177 + <p class="q_title">问题现象7:如何单独保管电池?</p>
  178 + <p>电池单独存放时,须存放在厂家发货的托盘中,禁止堆积存放,否则放电极快造成电池发热,甚至可能会引起电池破裂或起火的危险 。</p>
  179 + <p>电池宜存放在阴凉通风的地方,禁止在太阳下暴晒。温差太大或者太潮湿的环境都不适宜存放。</p>
  180 + </li>
  181 + <li>
  182 + <p class="q_title">问题现象8:为什么答题器无法与基站配对成功?</p>
  183 + <p>在确认配对工具版本(SunVote Match Tool V1.0.0.1)正常,且其他答题器可正常配对的情况下,可能是由于基站和答题器的频点范围不一致造成的。基站是80个频点的版本,答题器是32个频点的版本。基站的频点设置超过了32,因此答题器无法与基站匹配。</p>
  184 + <p>如何确认这个问题:</p>
  185 + <p>① 检查基站的频点是否超过了32</p>
  186 + <p>② 检查答题器配对时,是否频点数字跳动到32后,就再次重1开始。</p>
  187 + <p>如果确定是由于该原因导致,可以将旧版本的答题器发回升级。或者将基站的频点更改为32以内范围。</p>
  188 + <p>排除频点范围的原因,可用多只答题器作对比测试,同样的基站,同样的软件,同时操作,仅特定的某只答题器无法配对,可能是答题的版本</p>
  189 + </li>
  190 + </div>
  191 +
  192 + </div>
  193 +
  194 +
  195 + </div>
  196 + </div>
  197 + <div class="mb" style="position:absolute;top:0%;left:35%;background:#fff;display:none;">
  198 + <img src="images/sn.png" width="300" />
  199 + </div>
  200 + </div>
  201 +
  202 + <script type="text/javascript" id="main">
  203 +
  204 +</script>
  205 + <script>
  206 + var picBase;
  207 + var url="http://120.78.57.84:8888/SunvoteEducation";
  208 + var type=parseInt(getQueryString("type"));
  209 + var model=getQueryString("model");
  210 + var product_type="";
  211 + // 根据自己情况配置loader config
  212 + requirejs({
  213 + paths: {
  214 + "city.select": "js/jquery.city.select.min"
  215 + }
  216 + });
  217 + // 使用jQuery City Select插件方式
  218 + require(['city.select'], function ($) {
  219 + $(function () {
  220 +
  221 + $('#province, #city').citylist({
  222 + data : data,
  223 + id : 'id',
  224 + children: 'cities',
  225 + name : 'name',
  226 + metaTag : 'name'
  227 + });
  228 +
  229 + $('#all').citylist({
  230 + data : data,
  231 + id : 'id',
  232 + children: 'cities',
  233 + name : 'name',
  234 + metaTag : 'name'
  235 + });
  236 +
  237 + $('#pre-province, #pre-city').citylist({
  238 + data : data,
  239 + id : 'id',
  240 + children: 'cities',
  241 + name : 'name',
  242 + metaTag : 'name',
  243 + selected: [14, 1401]
  244 + });
  245 +
  246 + $('#pre-all').citylist({
  247 + data : data,
  248 + id : 'id',
  249 + children: 'cities',
  250 + name : 'name',
  251 + metaTag : 'name',
  252 + idVal : true,
  253 + selected: 1401
  254 + });
  255 +
  256 + //$("#model").html(model);
  257 + switch(model){
  258 + case "dtq":$("#model_pic").attr("src","images/u30.png");$(".qaList").css("display","block");break;
  259 + default:break;
  260 + }
  261 +
  262 + $.ajax({
  263 + type:'get',
  264 + dataType: "json",
  265 + url:url+"/api/problem?type="+type,
  266 + async:false,
  267 + success:function(data){
  268 + //console.log(data.data[0].REMARK);
  269 + $.each(data.data,function(i,n){
  270 + $("#question").append('<option value="'+n.REMARK+'">'+n.REMARK+'</option>');
  271 + })
  272 +
  273 + }
  274 + });
  275 +
  276 +
  277 + });
  278 + });
  279 + $("#pic").change(function(){
  280 + var file = this.files[0];
  281 + var reader = new FileReader();
  282 + reader.readAsDataURL(file);
  283 + reader.onload=function(e){
  284 + picBase=this.result;
  285 + //console.log(picBase);
  286 + }
  287 +
  288 + })
  289 +
  290 + function getQueryString(name) {
  291 + var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");
  292 + var r = window.location.search.substr(1).match(reg);
  293 + if (r != null) return unescape(r[2]); return null;
  294 + }
  295 +
  296 + function submit(){
  297 + if($("#name").val()==''){
  298 + alert("请填写联系人姓名");
  299 + return;
  300 + }else if($("#tel").val()==''){
  301 + alert("请填写联系电话");
  302 + return;
  303 + }else if($("#sn").val()==''){
  304 + alert("请填写产品序列号");
  305 + return;
  306 + }else if($("#question").val()=='请选择'){
  307 + alert("请选择问题现象");
  308 + return;
  309 + }else if($("#system").val()=='请选择'){
  310 + alert("请选择操作系统");
  311 + return;
  312 + }else if($("#softname").val()=='请选择'){
  313 + alert("请选择软件名称");
  314 + return;
  315 + }else if($("#num").val()==''){
  316 + alert("请填写异常数量");
  317 + return;
  318 + }else if($("#dec").val()==''){
  319 + alert("请详细描述问题现象");
  320 + return;
  321 + }
  322 +
  323 +
  324 + switch(type){
  325 + case 1:product_type="基站";break;
  326 + case 2:product_type="答题器";break;
  327 + case 3:product_type="配件";break;
  328 + default:product_type="其他";break;
  329 + }
  330 +
  331 + var data={
  332 + SCHOOL_ADDRESS1:$("#province").val(),
  333 + SCHOOL_ADDRESS2:$("#city").val(),
  334 + CONTACT_PHONE:$("#name").val(),
  335 + PHONE_CONTACT:$("#tel").val(),
  336 + PRODUCT_SEQ:$("#sn").val(),
  337 + QUESTION_NAME:$("#question").val(),
  338 + OS:$("#system").val(),
  339 + SOFTWARE_VERSION:$("#version").val(),
  340 + SOFTWARE_NAME:$("#softname").val(),
  341 + EXCEPTION_NUM:$("num").val(),
  342 + DESCRIPTION:$("#dec").val(),
  343 + PROBLEM_PATH:picBase,
  344 + PRODUCT_TYPE:product_type,
  345 + PRODUCT_MODEL:model,
  346 + BASE_STATION:$("#station").val(),
  347 + CUSTOMER_CODE:"2396"
  348 + };
  349 + $.ajax({
  350 + type:'post',
  351 + dataType: "json",
  352 + url:url+"/api/feedback/add",
  353 + data:data,
  354 + success:function(data){
  355 + alert("提交成功!");
  356 + }
  357 + })
  358 + }
  359 +
  360 + $("#sn").focus(function(){
  361 + //alert(1);
  362 + $(".mb").css("display","block");
  363 + });
  364 + $("#sn").blur(function(){
  365 + //alert(1);
  366 + $(".mb").css("display","none");
  367 + });
  368 + $(".mb").click(function(){
  369 + //alert(1);
  370 + $(".mb").css("display","none");
  371 + });
  372 +
  373 +
  374 +
  375 +</script>
  376 +
  377 +</body>
  378 +</html>
0 379 \ No newline at end of file
... ...
WebRoot/afterService/images/EA1000.jpg 0 → 100644

20.5 KB

WebRoot/afterService/images/EA1000_line.jpg 0 → 100644

160 KB

WebRoot/afterService/images/EA4200W.jpg 0 → 100644

42.5 KB

WebRoot/afterService/images/EA4200W.png 0 → 100644

1.07 MB

WebRoot/afterService/images/EA4200W_line.jpg 0 → 100644

152 KB

WebRoot/afterService/images/bag.png 0 → 100644

1.06 MB

WebRoot/afterService/images/battery.jpg 0 → 100644

142 KB

WebRoot/afterService/images/contact.jpg 0 → 100644

10.2 KB

WebRoot/afterService/images/dt_q1.png 0 → 100644

3.49 KB

WebRoot/afterService/images/dt_q2.png 0 → 100644

6.8 KB

WebRoot/afterService/images/dt_q3.png 0 → 100644

8.52 KB

WebRoot/afterService/images/dtq.png 0 → 100644

495 Bytes

WebRoot/afterService/images/ea1000_q.png 0 → 100644

31.9 KB

WebRoot/afterService/images/ea1000_q1.png 0 → 100644

12.5 KB

WebRoot/afterService/images/ea1000_q2.png 0 → 100644

7.17 KB

WebRoot/afterService/images/ea1000_q3.png 0 → 100644

12 KB

WebRoot/afterService/images/ea4200w_q.png 0 → 100644

10.9 KB

WebRoot/afterService/images/jz.png 0 → 100644

1010 Bytes

WebRoot/afterService/images/lc.png 0 → 100644

1006 Bytes

WebRoot/afterService/images/pj.png 0 → 100644

390 Bytes

WebRoot/afterService/images/sn.png 0 → 100644

11.1 KB

WebRoot/afterService/images/timg.jpg 0 → 100644

9.23 KB

WebRoot/afterService/images/u26.jpg 0 → 100644

42.5 KB

WebRoot/afterService/images/u30.jpg 0 → 100644

244 KB

WebRoot/afterService/images/u30.png 0 → 100644

616 KB

WebRoot/afterService/images/wt.png 0 → 100644

2.27 KB

WebRoot/afterService/images/zc.png 0 → 100644

1.91 KB

WebRoot/afterService/index.html 0 → 100644
  1 +<!DOCTYPE html>
  2 +<html lang="zh">
  3 +<head>
  4 + <meta charset="UTF-8">
  5 + <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
  6 + <meta name="viewport" content="width=device-width, initial-scale=1.0">
  7 + <title>产品问题反馈</title>
  8 + <link rel="stylesheet" href="http://lib.sinaapp.com/js/bootstrap/3.0.0/css/bootstrap.min.css" />
  9 + <link rel="stylesheet" href="css/style.css" />
  10 + <style>
  11 + body{ background-color: #fff }
  12 + </style>
  13 + <!--[if IE]>
  14 + <script src="http://libs.baidu.com/html5shiv/3.7/html5shiv.min.js"></script>
  15 + <![endif]-->
  16 + <script src="http://libs.baidu.com/jquery/1.11.1/jquery.min.js"></script>
  17 + <script src="http://lib.sinaapp.com/js/bootstrap/3.0.0/js/bootstrap.min.js"></script>
  18 +</head>
  19 +<body>
  20 + <div class="container column" >
  21 + <h2>产品问题反馈</h2>
  22 + <div class="col-md-8">
  23 + <div class="class1">
  24 + <h3><img src="images/jz.png" />基站</h3>
  25 + <ul>
  26 + <li><a href="info.html?model=EA1000&type=1"><img src="images/EA1000.jpg" class="img-responsive" alt="Responsive image"><p>EA1000</p></a></li>
  27 + <li><a href="info.html?model=EA4200W&type=2"><img src="images/EA4200W.png" class="img-responsive" alt="Responsive image"><p>EA4200W</p></a></li>
  28 + </ul>
  29 + <div class="clearfix visible-xs-block"></div>
  30 + </div>
  31 + <div class="class2">
  32 + <h3><img src="images/dtq.png" />答题器</h3>
  33 + <ul>
  34 + <li><a href="dt_info.html?model=dtq&type=3"><img src="images/u30.png" style="width:140px;height:auto;" class="img-responsive" alt="Responsive image"><p>答题器</p></a></li>
  35 + </ul>
  36 + <div class="clearfix visible-xs-block"></div>
  37 + </div>
  38 + <div class="class3">
  39 + <h3><img src="images/pj.png" />配件</h3>
  40 + <ul>
  41 + <li><a href="parts_info.html?model=btr&type=4"><img src="images/battery.jpg" class="img-responsive" alt="Responsive image"><p>纽扣电池</p></a></li>
  42 + <li><a href="parts2_info.html?model=sma&type=5"><img src="images/EA1000_line.jpg" class="img-responsive" alt="Responsive image"><p>小基站连接线</p></a></li>
  43 + <li><a href="parts2_info.html?model=big&type=6"><img src="images/EA4200W_line.jpg" class="img-responsive" alt="Responsive image"><p>大基站连接线</p></a></li>
  44 + <li><a href="parts2_info.html?model=bag&type=7"><img src="images/bag.png" class="img-responsive" alt="Responsive image"><p>设备包</p></a></li>
  45 + </ul>
  46 + <div class="clearfix visible-xs-block"></div>
  47 + </div>
  48 + </div>
  49 + <div class="col-md-4">
  50 + <ul>
  51 + <li>
  52 + <div class="row"><a href="javascript:;" onclick="down(0)" data-toggle="modal" data-target="#myModal">
  53 + <div class="col-xs-3"><img src="images/lc.png"/></div>
  54 + <div class="col-xs-9"><p>售后维修流程</p></div>
  55 + <div class="col-xs-9"><p>指导您如何向我们发起售后</p></div>
  56 + </a></div>
  57 + </li>
  58 + <li>
  59 + <div class="row"><a href="javascript:;" onclick="down(1)" data-toggle="modal" data-target="#myModal">
  60 + <div class="col-xs-3"><img src="images/zc.png"/></div>
  61 + <div class="col-xs-9"><p>售后政策一览表</p></div>
  62 + <div class="col-xs-9"><p>售后政策及费用说明</p></div>
  63 + </a></div>
  64 + </li>
  65 + <li>
  66 + <div class="row"><a href="javascript:void(0);" onclick="down(2)" data-toggle="modal" data-target="#myModal">
  67 + <div class="col-xs-3"><img src="images/wt.png"/></div>
  68 + <div class="col-xs-9"><p>常见问题文档</p></div>
  69 + <div class="col-xs-9"><p>答题器、基站常见问题文档</p></div>
  70 + </a></div>
  71 + </li>
  72 + </ul>
  73 + <div class="contact">
  74 + <div class="row">
  75 + <div class="col-xs-12"><img src="images/timg.jpg" width="100%"/></div>
  76 + <div class="col-xs-11"><p>电话:<span>18908457700</span></p></div>
  77 + <div class="col-xs-11"><p>座机:<span>0731-85125432-805</span></p></div>
  78 + </div>
  79 + </div>
  80 + </div>
  81 + <!-- 模态框(Modal) -->
  82 + <div class="modal fade" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
  83 + <div class="modal-dialog">
  84 + <div class="modal-content">
  85 + <div class="modal-header">
  86 + <button type="button" class="close" data-dismiss="modal" aria-hidden="true">
  87 + &times;
  88 + </button>
  89 + <h4 class="modal-title" id="myModalLabel">
  90 + PDF
  91 + </h4>
  92 + </div>
  93 + <div class="modal-body">
  94 +
  95 + </div>
  96 + <div class="modal-footer">
  97 + <button type="button" class="btn btn-default" data-dismiss="modal">关闭
  98 + </button>
  99 + </div>
  100 + </div><!-- /.modal-content -->
  101 + </div><!-- /.modal -->
  102 + </div>
  103 + </div>
  104 + <script>
  105 + function down(type){
  106 + switch(type){
  107 + case 0: $(".modal-body").html('<p><a href="document/新东方产品售后维修流程.pdf" target="_blank">新东方产品售后维修流程.pdf</a></p>');break;
  108 + case 1: $(".modal-body").html('<p><a href="document/新东方售后政策&改善说明.pdf" target="_blank">新东方售后政策&改善说明.pdf</a></p>');break;
  109 + case 2: $(".modal-body").html('<p><a href="document/基站-EA1000-常见问题解答(新东方)V1.1-20170922.pdf" target="_blank">基站-EA1000-常见问题解答(新东方)V1.1-20170922.pdf</a></p><p><a href="document/键盘-S52Plus-常见问题解答V1.0(新东方)-20180309.pdf" target="_blank">键盘-S52Plus-常见问题解答V1.0(新东方)-20180309.pdf</a></p><p><a href="document/新东方基站-EA4200W-常见问题解答()V1.0-20170922.pdf" target="_blank">新东方基站-EA4200W-常见问题解答()V1.0-20170922.pdf</a></p>');break;
  110 + }
  111 + }
  112 + </script>
  113 +</body>
  114 +</html>
0 115 \ No newline at end of file
... ...
WebRoot/afterService/info.html 0 → 100644
  1 +<!DOCTYPE html>
  2 +<html lang="zh">
  3 +<head>
  4 + <meta charset="UTF-8">
  5 + <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
  6 + <meta name="viewport" content="width=device-width, initial-scale=1.0">
  7 + <title>填写资料</title>
  8 + <link rel="stylesheet" href="http://lib.sinaapp.com/js/bootstrap/3.0.0/css/bootstrap.min.css" />
  9 + <link rel="stylesheet" href="css/style.css" />
  10 + <style>
  11 + body{ background-color: #fff }
  12 + </style>
  13 + <!--[if IE]>
  14 + <script src="http://libs.baidu.com/html5shiv/3.7/html5shiv.min.js"></script>
  15 + <![endif]-->
  16 + <script src="http://libs.baidu.com/jquery/1.11.1/jquery.min.js"></script>
  17 + <script src="http://lib.sinaapp.com/js/bootstrap/3.0.0/js/bootstrap.min.js"></script>
  18 + <script src="js/data.js"></script>
  19 + <script src="js/require.min.js"></script>
  20 +
  21 +</head>
  22 +<body>
  23 + <div class="container column" >
  24 + <div class="col-md-8">
  25 + <div class="header">
  26 + <div class="row">
  27 + <div class="col-xs-3"><img src="" width="140px" id="model_pic"/></div>
  28 + <div class="col-xs-9"><p><span id="model">EA1000</span>问题反馈</p></div>
  29 + <div class="col-xs-9"><p>请填写以下信息反馈问题,我们会在24小时内响应。或直接拨打售后电话您也可以根据问题的现象参照EA1000常见问题,自行排查问题。</p></div>
  30 + </div>
  31 + </div>
  32 + <div class="content">
  33 + <form class="form-inline" id="list">
  34 + <div class="form-group col-md-6">
  35 + <label ><span class="red">*</span>校区名称:</label>
  36 + <div class="control-group xq">
  37 + <div class="controls col-md-6" style="padding-left:0;">
  38 + <select id="province" class="form-control">
  39 + <option value="请选择"></option>
  40 + </select>
  41 +
  42 + </div>
  43 + <div class="controls col-md-6" style="padding-right:0;">
  44 + <select id="city" class="form-control">
  45 + <option value="请选择">请选择</option>
  46 + </select>
  47 + </div>
  48 + </div>
  49 +
  50 + </div>
  51 + <div class="form-group col-md-6">
  52 + <label for="name"><span class="red">*</span>联系人:</label>
  53 + <input type="text" class="form-control" id="name" placeholder="">
  54 + </div>
  55 + <div class="form-group col-md-6">
  56 + <label for="tel"><span class="red">*</span>联系电话:</label>
  57 + <input type="text" class="form-control" id="tel" placeholder="">
  58 + </div>
  59 + <div class="form-group col-md-6">
  60 + <label for="sn"><span class="red">*</span>产品序列号:</label>
  61 + <input type="text" class="form-control" id="sn" placeholder="">
  62 + </div>
  63 + <div class="form-group col-md-6">
  64 + <label for="exampleInputName2"><span class="red">*</span>问题现象:</label>
  65 + <div class="controls col-md-12" style="padding:0;">
  66 + <select id="question" class="form-control">
  67 + <option value="请选择" id="question1">请选择</option>
  68 + </select>
  69 + </div>
  70 + </div>
  71 + <div class="form-group col-md-6">
  72 + <label for="system"><span class="red">*</span>操作系统:</label>
  73 + <div class="controls col-md-12" style="padding:0;">
  74 + <select id="system" class="form-control">
  75 + <option value="请选择">请选择</option>
  76 + <option value="Windows">Windows</option>
  77 + <option value="Mac">Mac</option>
  78 + <option value="IOS">IOS</option>
  79 + </select>
  80 + </div>
  81 + </div>
  82 + <div class="form-group col-md-6">
  83 + <label for="softname"><span class="red">*</span>软件名称:</label>
  84 + <div class="controls col-md-12" style="padding:0;">
  85 + <select id="softname" class="form-control">
  86 + <option value="请选择">请选择</option>
  87 + <option value="互动课堂">互动课堂</option>
  88 + <option value="配对工具Match Tool">配对工具Match Tool</option>
  89 + </select>
  90 + </div>
  91 + </div>
  92 + <div class="form-group col-md-6">
  93 + <label for="version">软件版本:</label>
  94 + <input type="text" class="form-control" id="version" placeholder="">
  95 + </div>
  96 + <div class="form-group col-md-6">
  97 + <label for="num"><span class="red">*</span>异常数量:</label>
  98 + <input type="text" class="form-control" id="num" placeholder="">
  99 + </div>
  100 + <div class="form-group col-md-12">
  101 + <label for="dec"><span class="red">*</span>详细描述:</label>
  102 + <textarea class="form-control" rows="5" id="dec"></textarea>
  103 + </div>
  104 + <div class="form-group col-md-12">
  105 + <label for="pic">问题图片:</label>
  106 + <input type="file" class="form-control" id="pic" placeholder="">
  107 + </div>
  108 +
  109 +
  110 + </form>
  111 + <input type="button" value="提交" class="btn btn-primary btn-lg" style="margin:0 auto;display:block;margin-top:5%;" onclick="submit();"/>
  112 + </div>
  113 + </div>
  114 + <div class="col-md-4" style="border-left:1px solid #ccc;height:740px;padding:30px 20px;overflow-y:auto;">
  115 + <div class="rightBox">
  116 + <div class="qaList EA1000">
  117 + <div class="list_top">
  118 + <img src="images/ea1000_q.png" width="100%"/>
  119 + <h4><span class="k"></span>信道状态指示灯</h4>
  120 + <p>基站收到通讯信号时闪烁。如收到键盘提交的数据。无键盘发送数据,该指示灯快闪时,表示附近有相邻频点的基站干扰。请更换改基站的频点。</p>
  121 + <h4><span class="k"></span>连接状态指示灯</h4>
  122 + <p>基站接通电源时慢闪(1秒一次),基站与软件连接成功时快闪(1秒多次)。</p>
  123 + </div>
  124 + <div class="list_content">
  125 + <li>
  126 + <p class="q_title">问题现象1:连接指示灯不亮</p>
  127 + <p>初次使用时,系统会自动安装驱动,需要等待10秒左右。驱动自动安装成功后,才能正常使用。若此时仍不能解决,可能是接口接触不良,或者连接线的问题。检查基站是否插好,更换USB插口,尝试更换USB延长线。</p>
  128 + </li>
  129 + <li>
  130 + <p class="q_title">问题现象2:连接指示灯慢闪(1秒一次),软件显示连接断开</p>
  131 + <p>① 请检查答题系统的版本是否为互动课堂 2.12.1或更高版本。Match Tool的版本是否为1.0.0.1。配对工具手册及下载地址:https://shimo.im/doc/95gSPuzB1zM7bFRc</p>
  132 + <p>② 确认基站驱动是否正常,打开设备管理器,驱动正常时,插上基站时 “人体学输入设备”会添加一个“USB输入设备”</p>
  133 + <img src="images/ea1000_q1.png" width="30%" />
  134 + <img src="images/ea1000_q2.png" width="30%" />
  135 + <img src="images/ea1000_q3.png" width="30%" />
  136 + </li>
  137 + <li>
  138 + <p class="q_title">问题现象3:连接指示灯快闪(1秒多次),软件显示连接断开</p>
  139 + <p>快闪表示应用软件与基站已经连接成功,可能是软件操作问题,请查看软件操作手册。</p>
  140 +
  141 + </li>
  142 + </div>
  143 +
  144 + </div>
  145 + <div class="qaList EA4200W">
  146 + <div class="list_top">
  147 + <img src="images/ea4200w_q.png" width="100%"/>
  148 + <h4><span class="k"></span>信道状态指示灯</h4>
  149 + <p>基站收到通讯信号时闪烁。如收到键盘提交的数据。无键盘发送数据,该指示灯快闪时,表示附近有相邻频点的基站干扰。请更换改基站的频点。</p>
  150 + <h4><span class="k"></span>连接状态指示灯</h4>
  151 + <p>基站接通电源时慢闪(1秒一次),基站与软件连接成功时快闪(1秒多次)。</p>
  152 + <h4><span class="k"></span>充电指示灯</h4>
  153 + <p>充电时亮红灯,充满熄灭。</p>
  154 + <h4><span class="k"></span>电源指示灯</h4>
  155 + <p>电源连接后点亮。</p>
  156 + </div>
  157 + <div class="list_content">
  158 + <li>
  159 + <p class="q_title">问题现象1:连接指示灯不亮</p>
  160 + <p>初次使用时,系统会自动安装驱动,需要等待10秒左右。驱动自动安装成功后,才能正常使用。若此时仍不能解决,可能是接口接触不良,或者连接线的问题。检查基站是否插好,更换USB插口,尝试更换USB延长线。</p>
  161 + </li>
  162 + <li>
  163 + <p class="q_title">问题现象2:连接指示灯慢闪(1秒一次),软件显示连接断开</p>
  164 + <p>① 请检查答题系统的版本是否为互动课堂 2.12.1或更高版本。Match Tool的版本是否为1.0.0.1。配对工具手册及下载地址:https://shimo.im/doc/95gSPuzB1zM7bFRc</p>
  165 + <p>② 确认基站驱动是否正常,打开设备管理器,驱动正常时,插上基站时 “人体学输入设备”会添加一个“USB输入设备”</p>
  166 + <img src="images/ea1000_q1.png" width="30%" />
  167 + <img src="images/ea1000_q2.png" width="30%" />
  168 + <img src="images/ea1000_q3.png" width="30%" />
  169 + </li>
  170 + <li>
  171 + <p class="q_title">问题现象3:连接指示灯快闪(1秒多次),软件显示连接断开</p>
  172 + <p>快闪表示应用软件与基站已经连接成功,可能是软件操作问题,请查看软件操作手册。</p>
  173 +
  174 + </li>
  175 + <li>
  176 + <p class="q_title">问题现象4:连接指示灯常亮</p>
  177 + <p>基站与设备已建立wifi连接,若此时您的设备无法与该基站建立连接,可能是其他设备连接到了这个基站。检查周围是否有其他设备连接上了该基站,断开与其它基站的连接,再连接。
  178 +PS:建议老师使用手动连接的方式,不要选择自动连接。</p>
  179 +
  180 + </li>
  181 + <li>
  182 + <p class="q_title">问题现象3:连接指示灯、数据灯、充电指示灯常亮</p>
  183 + <p>有可能是基站复位, 请联系技术支持</p>
  184 +
  185 + </li>
  186 + </div>
  187 +
  188 + </div>
  189 +
  190 + </div>
  191 + </div>
  192 + <div class="mb" style="position:absolute;top:0%;left:35%;background:#fff;display:none;">
  193 + <img src="images/sn.png" width="300" />
  194 + </div>
  195 + </div>
  196 +
  197 + <script type="text/javascript" id="main">
  198 +
  199 +</script>
  200 + <script>
  201 + var picBase;
  202 + var url="http://120.78.57.84:8888/SunvoteEducation";
  203 + var type=parseInt(getQueryString("type"));
  204 + var model=getQueryString("model");
  205 + var product_type="";
  206 + // 根据自己情况配置loader config
  207 + requirejs({
  208 + paths: {
  209 + "city.select": "js/jquery.city.select.min"
  210 + }
  211 + });
  212 + // 使用jQuery City Select插件方式
  213 + require(['city.select'], function ($) {
  214 + $(function () {
  215 +
  216 + $('#province, #city').citylist({
  217 + data : data,
  218 + id : 'id',
  219 + children: 'cities',
  220 + name : 'name',
  221 + metaTag : 'name'
  222 + });
  223 +
  224 + $('#all').citylist({
  225 + data : data,
  226 + id : 'id',
  227 + children: 'cities',
  228 + name : 'name',
  229 + metaTag : 'name'
  230 + });
  231 +
  232 + $('#pre-province, #pre-city').citylist({
  233 + data : data,
  234 + id : 'id',
  235 + children: 'cities',
  236 + name : 'name',
  237 + metaTag : 'name',
  238 + selected: [14, 1401]
  239 + });
  240 +
  241 + $('#pre-all').citylist({
  242 + data : data,
  243 + id : 'id',
  244 + children: 'cities',
  245 + name : 'name',
  246 + metaTag : 'name',
  247 + idVal : true,
  248 + selected: 1401
  249 + });
  250 +
  251 + $("#model").html(model);
  252 + switch(model){
  253 + case "EA1000":$("#model_pic").attr("src","images/EA1000.jpg");$(".qaList").css("display","none");$(".EA1000").css("display","block");break;
  254 + case "EA4200W":$("#model_pic").attr("src","images/EA4200W.png");$(".qaList").css("display","none");$(".EA4200W").css("display","block");break;
  255 + default:break;
  256 + }
  257 +
  258 + $.ajax({
  259 + type:'get',
  260 + dataType: "json",
  261 + url:url+"/api/problem?type="+type,
  262 + async:false,
  263 + success:function(data){
  264 + //console.log(data.data[0].REMARK);
  265 + $.each(data.data,function(i,n){
  266 + $("#question").append('<option value="'+n.REMARK+'">'+n.REMARK+'</option>');
  267 + })
  268 +
  269 + }
  270 + });
  271 +
  272 +
  273 + });
  274 + });
  275 + $("#pic").change(function(){
  276 + var file = this.files[0];
  277 + var reader = new FileReader();
  278 + reader.readAsDataURL(file);
  279 + reader.onload=function(e){
  280 + picBase=this.result;
  281 + //console.log(picBase);
  282 + }
  283 +
  284 + })
  285 +
  286 + function getQueryString(name) {
  287 + var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");
  288 + var r = window.location.search.substr(1).match(reg);
  289 + if (r != null) return unescape(r[2]); return null;
  290 + }
  291 +
  292 + function submit(){
  293 + if($("#name").val()==''){
  294 + alert("请填写联系人姓名");
  295 + return;
  296 + }else if($("#tel").val()==''){
  297 + alert("请填写联系电话");
  298 + return;
  299 + }else if($("#sn").val()==''){
  300 + alert("请填写产品序列号");
  301 + return;
  302 + }else if($("#question").val()=='请选择'){
  303 + alert("请选择问题现象");
  304 + return;
  305 + }else if($("#system").val()=='请选择'){
  306 + alert("请选择操作系统");
  307 + return;
  308 + }else if($("#softname").val()=='请选择'){
  309 + alert("请选择软件名称");
  310 + return;
  311 + }else if($("#num").val()==''){
  312 + alert("请填写异常数量");
  313 + return;
  314 + }else if($("#dec").val()==''){
  315 + alert("请详细描述问题现象");
  316 + return;
  317 + }
  318 +
  319 +
  320 + switch(type){
  321 + case 1:product_type="基站";break;
  322 + case 2:product_type="答题器";break;
  323 + case 3:product_type="配件";break;
  324 + default:product_type="其他";break;
  325 + }
  326 +
  327 + var data={
  328 + SCHOOL_ADDRESS1:$("#province").val(),
  329 + SCHOOL_ADDRESS2:$("#city").val(),
  330 + CONTACT_PHONE:$("#name").val(),
  331 + PHONE_CONTACT:$("#tel").val(),
  332 + PRODUCT_SEQ:$("#sn").val(),
  333 + QUESTION_NAME:$("#question").val(),
  334 + OS:$("#system").val(),
  335 + SOFTWARE_VERSION:$("#version").val(),
  336 + SOFTWARE_NAME:$("#softname").val(),
  337 + EXCEPTION_NUM:$("num").val(),
  338 + DESCRIPTION:$("#dec").val(),
  339 + PROBLEM_PATH:picBase,
  340 + PRODUCT_TYPE:product_type,
  341 + PRODUCT_MODEL:model,
  342 + CUSTOMER_CODE:"2396"
  343 + };
  344 + $.ajax({
  345 + type:'post',
  346 + dataType: "json",
  347 + url:url+"/api/feedback/add",
  348 + data:data,
  349 + success:function(data){
  350 + alert("提交成功!");
  351 + }
  352 + })
  353 + }
  354 +
  355 + $("#sn").focus(function(){
  356 + //alert(1);
  357 + $(".mb").css("display","block");
  358 + });
  359 + $("#sn").blur(function(){
  360 + //alert(1);
  361 + $(".mb").css("display","none");
  362 + });
  363 + $(".mb").click(function(){
  364 + //alert(1);
  365 + $(".mb").css("display","none");
  366 + });
  367 +
  368 +
  369 +
  370 +</script>
  371 +
  372 +</body>
  373 +</html>
0 374 \ No newline at end of file
... ...
WebRoot/afterService/js/data.js 0 → 100644
  1 +var data = [
  2 + {
  3 + id: 11, name: '北京', cities: [
  4 + {id: 1101, name: '东城区'},
  5 + {id: 1102, name: '西城区'},
  6 + {id: 1108, name: '海淀区'},
  7 + {id: 1105, name: '朝阳区'},
  8 + {id: 1106, name: '丰台区'},
  9 + {id: 1107, name: '石景山区'},
  10 + {id: 1109, name: '门头沟区'},
  11 + {id: 1111, name: '房山区'},
  12 + {id: 1112, name: '通州区'},
  13 + {id: 1113, name: '顺义区'},
  14 + {id: 1114, name: '昌平区'},
  15 + {id: 1115, name: '大兴区'},
  16 + {id: 1116, name: '怀柔区'},
  17 + {id: 1117, name: '平谷区'},
  18 + {id: 1128, name: '密云县'},
  19 + {id: 1129, name: '延庆县'}
  20 + ]
  21 + },
  22 + {
  23 + id: 12, name: '天津', cities: [
  24 + {id: 1201, name: '和平区'},
  25 + {id: 1202, name: '河东区'},
  26 + {id: 1203, name: '河西区'},
  27 + {id: 1204, name: '南开区'},
  28 + {id: 1205, name: '河北区'},
  29 + {id: 1206, name: '红桥区'},
  30 + {id: 1207, name: '塘沽区'},
  31 + {id: 1208, name: '汉沽区'},
  32 + {id: 1209, name: '大港区'},
  33 + {id: 1210, name: '东丽区'},
  34 + {id: 1211, name: '西青区'},
  35 + {id: 1212, name: '津南区'},
  36 + {id: 1213, name: '北辰区'},
  37 + {id: 1214, name: '武清区'},
  38 + {id: 1215, name: '宝坻区'},
  39 + {id: 1221, name: '宁河县'},
  40 + {id: 1223, name: '静海县'},
  41 + {id: 1225, name: '蓟县'}
  42 + ]
  43 + },
  44 + {
  45 + id: 13, name: '河北', cities: [
  46 + {id: 1301, name: '石家庄'},
  47 + {id: 1302, name: '唐山'},
  48 + {id: 1303, name: '秦皇岛'},
  49 + {id: 1304, name: '邯郸'},
  50 + {id: 1305, name: '邢台'},
  51 + {id: 1306, name: '保定'},
  52 + {id: 1307, name: '张家口'},
  53 + {id: 1308, name: '承德'},
  54 + {id: 1309, name: '沧州'},
  55 + {id: 1310, name: '廊坊'},
  56 + {id: 1311, name: '衡水'}
  57 + ]
  58 + },
  59 + {
  60 + id: 14, name: '山西', cities: [
  61 + {id: 1401, name: '太原'},
  62 + {id: 1402, name: '大同'},
  63 + {id: 1403, name: '阳泉'},
  64 + {id: 1404, name: '长治'},
  65 + {id: 1405, name: '晋城'},
  66 + {id: 1406, name: '朔州'},
  67 + {id: 1407, name: '晋中'},
  68 + {id: 1408, name: '运城'},
  69 + {id: 1409, name: '忻州'},
  70 + {id: 1410, name: '临汾'},
  71 + {id: 1423, name: '吕梁'}
  72 + ]
  73 + },
  74 + {
  75 + id: 15, name: '内蒙古', cities: [
  76 + {id: 1501, name: '呼和浩特'},
  77 + {id: 1502, name: '包头'},
  78 + {id: 1503, name: '乌海'},
  79 + {id: 1504, name: '赤峰'},
  80 + {id: 1505, name: '通辽'},
  81 + {id: 1506, name: '鄂尔多斯'},
  82 + {id: 1507, name: '呼伦贝尔'},
  83 + {id: 1522, name: '兴安盟'},
  84 + {id: 1525, name: '锡林郭勒盟'},
  85 + {id: 1526, name: '乌兰察布盟'},
  86 + {id: 1528, name: '巴彦淖尔盟'},
  87 + {id: 1529, name: '阿拉善盟'}
  88 + ]
  89 + },
  90 + {
  91 + id: 21, name: '辽宁', cities: [
  92 + {id: 2101, name: '沈阳'},
  93 + {id: 2102, name: '大连'},
  94 + {id: 2103, name: '鞍山'},
  95 + {id: 2104, name: '抚顺'},
  96 + {id: 2105, name: '本溪'},
  97 + {id: 2106, name: '丹东'},
  98 + {id: 2107, name: '锦州'},
  99 + {id: 2108, name: '营口'},
  100 + {id: 2109, name: '阜新'},
  101 + {id: 2110, name: '辽阳'},
  102 + {id: 2111, name: '盘锦'},
  103 + {id: 2112, name: '铁岭'},
  104 + {id: 2113, name: '朝阳'},
  105 + {id: 2114, name: '葫芦岛'}
  106 + ]
  107 + },
  108 + {
  109 + id: 22, name: '吉林', cities: [
  110 + {id: 2201, name: '长春'},
  111 + {id: 2202, name: '吉林'},
  112 + {id: 2203, name: '四平'},
  113 + {id: 2204, name: '辽源'},
  114 + {id: 2205, name: '通化'},
  115 + {id: 2206, name: '白山'},
  116 + {id: 2207, name: '松原'},
  117 + {id: 2208, name: '白城'},
  118 + {id: 2224, name: '延边朝鲜族自治州'}
  119 + ]
  120 + },
  121 + {
  122 + id: 23, name: '黑龙江', cities: [
  123 + {id: 2301, name: '哈尔滨'},
  124 + {id: 2302, name: '齐齐哈尔'},
  125 + {id: 2303, name: '鸡西'},
  126 + {id: 2304, name: '鹤岗'},
  127 + {id: 2305, name: '双鸭山'},
  128 + {id: 2306, name: '大庆'},
  129 + {id: 2307, name: '伊春'},
  130 + {id: 2308, name: '佳木斯'},
  131 + {id: 2309, name: '七台河'},
  132 + {id: 2310, name: '牡丹江'},
  133 + {id: 2311, name: '黑河'},
  134 + {id: 2312, name: '绥化'},
  135 + {id: 2327, name: '大兴安岭'}
  136 + ]
  137 + },
  138 + {
  139 + id: 31, name: '上海', cities: [
  140 + {id: 3101, name: '黄浦区'},
  141 + {id: 3103, name: '卢湾区'},
  142 + {id: 3104, name: '徐汇区'},
  143 + {id: 3105, name: '长宁区'},
  144 + {id: 3106, name: '静安区'},
  145 + {id: 3107, name: '普陀区'},
  146 + {id: 3108, name: '闸北区'},
  147 + {id: 3109, name: '虹口区'},
  148 + {id: 3110, name: '杨浦区'},
  149 + {id: 3112, name: '闵行区'},
  150 + {id: 3113, name: '宝山区'},
  151 + {id: 3114, name: '嘉定区'},
  152 + {id: 3115, name: '浦东新区'},
  153 + {id: 3116, name: '金山区'},
  154 + {id: 3117, name: '松江区'},
  155 + {id: 3118, name: '青浦区'},
  156 + {id: 3119, name: '南汇区'},
  157 + {id: 3120, name: '奉贤区'},
  158 + {id: 3130, name: '崇明县'}
  159 + ]
  160 + },
  161 + {
  162 + id: 32, name: '江苏', cities: [
  163 + {id: 3201, name: '南京'},
  164 + {id: 3202, name: '无锡'},
  165 + {id: 3203, name: '徐州'},
  166 + {id: 3204, name: '常州'},
  167 + {id: 3205, name: '苏州'},
  168 + {id: 3206, name: '南通'},
  169 + {id: 3207, name: '连云港'},
  170 + {id: 3208, name: '淮安'},
  171 + {id: 3209, name: '盐城'},
  172 + {id: 3210, name: '扬州'},
  173 + {id: 3211, name: '镇江'},
  174 + {id: 3212, name: '泰州'},
  175 + {id: 3213, name: '宿迁'}
  176 + ]
  177 + },
  178 + {
  179 + id: 33, name: '浙江', cities: [
  180 + {id: 3301, name: '杭州'},
  181 + {id: 3302, name: '宁波'},
  182 + {id: 3303, name: '温州'},
  183 + {id: 3304, name: '嘉兴'},
  184 + {id: 3305, name: '湖州'},
  185 + {id: 3306, name: '绍兴'},
  186 + {id: 3307, name: '金华'},
  187 + {id: 3308, name: '衢州'},
  188 + {id: 3309, name: '舟山'},
  189 + {id: 3310, name: '台州'},
  190 + {id: 3311, name: '丽水'}
  191 + ]
  192 + },
  193 + {
  194 + id: 34, name: '安徽', cities: [
  195 + {id: 3401, name: '合肥'},
  196 + {id: 3402, name: '芜湖'},
  197 + {id: 3403, name: '蚌埠'},
  198 + {id: 3404, name: '淮南'},
  199 + {id: 3405, name: '马鞍山'},
  200 + {id: 3406, name: '淮北'},
  201 + {id: 3407, name: '铜陵'},
  202 + {id: 3408, name: '安庆'},
  203 + {id: 3410, name: '黄山'},
  204 + {id: 3411, name: '滁州'},
  205 + {id: 3412, name: '阜阳'},
  206 + {id: 3413, name: '宿州'},
  207 + {id: 3414, name: '巢湖'},
  208 + {id: 3415, name: '六安'},
  209 + {id: 3416, name: '亳州'},
  210 + {id: 3417, name: '池州'},
  211 + {id: 3418, name: '宣城'}
  212 + ]
  213 + },
  214 + {
  215 + id: 35, name: '福建', cities: [
  216 + {id: 3501, name: '福州'},
  217 + {id: 3502, name: '厦门'},
  218 + {id: 3503, name: '莆田'},
  219 + {id: 3504, name: '三明'},
  220 + {id: 3505, name: '泉州'},
  221 + {id: 3506, name: '漳州'},
  222 + {id: 3507, name: '南平'},
  223 + {id: 3508, name: '龙岩'},
  224 + {id: 3509, name: '宁德'}
  225 + ]
  226 + },
  227 + {
  228 + id: 36, name: '江西', cities: [
  229 + {id: 3601, name: '南昌'},
  230 + {id: 3602, name: '景德镇'},
  231 + {id: 3603, name: '萍乡'},
  232 + {id: 3604, name: '九江'},
  233 + {id: 3605, name: '新余'},
  234 + {id: 3606, name: '鹰潭'},
  235 + {id: 3607, name: '赣州'},
  236 + {id: 3608, name: '吉安'},
  237 + {id: 3609, name: '宜春'},
  238 + {id: 3610, name: '抚州'},
  239 + {id: 3611, name: '上饶'}
  240 + ]
  241 + },
  242 + {
  243 + id: 37, name: '山东', cities: [
  244 + {id: 3701, name: '济南'},
  245 + {id: 3702, name: '青岛'},
  246 + {id: 3703, name: '淄博'},
  247 + {id: 3704, name: '枣庄'},
  248 + {id: 3705, name: '东营'},
  249 + {id: 3706, name: '烟台'},
  250 + {id: 3707, name: '潍坊'},
  251 + {id: 3708, name: '济宁'},
  252 + {id: 3709, name: '泰安'},
  253 + {id: 3710, name: '威海'},
  254 + {id: 3711, name: '日照'},
  255 + {id: 3712, name: '莱芜'},
  256 + {id: 3713, name: '临沂'},
  257 + {id: 3714, name: '德州'},
  258 + {id: 3715, name: '聊城'},
  259 + {id: 3716, name: '滨州'},
  260 + {id: 3717, name: '菏泽'}
  261 + ]
  262 + },
  263 + {
  264 + id: 41, name: '河南', cities: [
  265 + {id: 4101, name: '郑州'},
  266 + {id: 4102, name: '开封'},
  267 + {id: 4103, name: '洛阳'},
  268 + {id: 4104, name: '平顶山'},
  269 + {id: 4105, name: '安阳'},
  270 + {id: 4106, name: '鹤壁'},
  271 + {id: 4107, name: '新乡'},
  272 + {id: 4108, name: '焦作'},
  273 + {id: 4109, name: '濮阳'},
  274 + {id: 4110, name: '许昌'},
  275 + {id: 4111, name: '漯河'},
  276 + {id: 4112, name: '三门峡'},
  277 + {id: 4113, name: '南阳'},
  278 + {id: 4114, name: '商丘'},
  279 + {id: 4115, name: '信阳'},
  280 + {id: 4116, name: '周口'},
  281 + {id: 4117, name: '驻马店'},
  282 + {id: 4118, name: '济源'}
  283 + ]
  284 + },
  285 + {
  286 + id: 42, name: '湖北', cities: [
  287 + {id: 4201, name: '武汉'},
  288 + {id: 4202, name: '黄石'},
  289 + {id: 4203, name: '十堰'},
  290 + {id: 4205, name: '宜昌'},
  291 + {id: 4206, name: '襄樊'},
  292 + {id: 4207, name: '鄂州'},
  293 + {id: 4208, name: '荆门'},
  294 + {id: 4209, name: '孝感'},
  295 + {id: 4210, name: '荆州'},
  296 + {id: 4211, name: '黄冈'},
  297 + {id: 4212, name: '咸宁'},
  298 + {id: 4213, name: '随州'},
  299 + {id: 4228, name: '恩施土家族苗族自治州'}
  300 + ]
  301 + },
  302 + {
  303 + id: 43, name: '湖南', cities: [
  304 + {id: 4301, name: '长沙'},
  305 + {id: 4302, name: '株洲'},
  306 + {id: 4303, name: '湘潭'},
  307 + {id: 4304, name: '衡阳'},
  308 + {id: 4305, name: '邵阳'},
  309 + {id: 4306, name: '岳阳'},
  310 + {id: 4307, name: '常德'},
  311 + {id: 4308, name: '张家界'},
  312 + {id: 4309, name: '益阳'},
  313 + {id: 4310, name: '郴州'},
  314 + {id: 4311, name: '永州'},
  315 + {id: 4312, name: '怀化'},
  316 + {id: 4313, name: '娄底'},
  317 + {id: 4331, name: '湘西土家族苗族自治州'}
  318 + ]
  319 + },
  320 + {
  321 + id: 44, name: '广东', cities: [
  322 + {id: 4401, name: '广州'},
  323 + {id: 4402, name: '韶关'},
  324 + {id: 4403, name: '深圳'},
  325 + {id: 4404, name: '珠海'},
  326 + {id: 4405, name: '汕头'},
  327 + {id: 4406, name: '佛山'},
  328 + {id: 4407, name: '江门'},
  329 + {id: 4408, name: '湛江'},
  330 + {id: 4409, name: '茂名'},
  331 + {id: 4412, name: '肇庆'},
  332 + {id: 4413, name: '惠州'},
  333 + {id: 4414, name: '梅州'},
  334 + {id: 4415, name: '汕尾'},
  335 + {id: 4416, name: '河源'},
  336 + {id: 4417, name: '阳江'},
  337 + {id: 4418, name: '清远'},
  338 + {id: 4419, name: '东莞'},
  339 + {id: 4420, name: '中山'},
  340 + {id: 4451, name: '潮州'},
  341 + {id: 4452, name: '揭阳'},
  342 + {id: 4453, name: '云浮'}
  343 + ]
  344 + },
  345 + {
  346 + id: 45, name: '广西', cities: [
  347 + {id: 4501, name: '南宁'},
  348 + {id: 4502, name: '柳州'},
  349 + {id: 4503, name: '桂林'},
  350 + {id: 4504, name: '梧州'},
  351 + {id: 4505, name: '北海'},
  352 + {id: 4506, name: '防城港'},
  353 + {id: 4507, name: '钦州'},
  354 + {id: 4508, name: '贵港'},
  355 + {id: 4509, name: '玉林'},
  356 + {id: 4510, name: '百色'},
  357 + {id: 4511, name: '贺州'},
  358 + {id: 4512, name: '河池'},
  359 + {id: 4521, name: '南宁'},
  360 + {id: 4522, name: '柳州'}
  361 + ]
  362 + },
  363 + {
  364 + id: 46, name: '海南', cities: [
  365 + {id: 4601, name: '海口'},
  366 + {id: 4602, name: '三亚'},
  367 + {id: 4690, name: '其他'}
  368 + ]
  369 + },
  370 + {
  371 + id: 50, name: '重庆', cities: [
  372 + {id: 5001, name: '万州区'},
  373 + {id: 5002, name: '涪陵区'},
  374 + {id: 5003, name: '渝中区'},
  375 + {id: 5004, name: '大渡口区'},
  376 + {id: 5005, name: '江北区'},
  377 + {id: 5006, name: '沙坪坝区'},
  378 + {id: 5007, name: '九龙坡区'},
  379 + {id: 5008, name: '南岸区'},
  380 + {id: 5009, name: '北碚区'},
  381 + {id: 5010, name: '万盛区'},
  382 + {id: 5011, name: '双桥区'},
  383 + {id: 5012, name: '渝北区'},
  384 + {id: 5013, name: '巴南区'},
  385 + {id: 5014, name: '黔江区'},
  386 + {id: 5015, name: '长寿区'},
  387 + {id: 5022, name: '綦江县'},
  388 + {id: 5023, name: '潼南县'},
  389 + {id: 5024, name: '铜梁县'},
  390 + {id: 5025, name: '大足县'},
  391 + {id: 5026, name: '荣昌县'},
  392 + {id: 5027, name: '璧山县'},
  393 + {id: 5028, name: '梁平县'},
  394 + {id: 5029, name: '城口县'},
  395 + {id: 5030, name: '丰都县'},
  396 + {id: 5031, name: '垫江县'},
  397 + {id: 5032, name: '武隆县'},
  398 + {id: 5033, name: '忠县'},
  399 + {id: 5034, name: '开县'},
  400 + {id: 5035, name: '云阳县'},
  401 + {id: 5036, name: '奉节县'},
  402 + {id: 5037, name: '巫山县'},
  403 + {id: 5038, name: '巫溪县'},
  404 + {id: 5040, name: '石柱土家族自治县'},
  405 + {id: 5041, name: '秀山土家族苗族自治县'},
  406 + {id: 5042, name: '酉阳土家族苗族自治县'},
  407 + {id: 5043, name: '彭水苗族土家族自治县'},
  408 + {id: 5081, name: '江津市'},
  409 + {id: 5082, name: '合川市'},
  410 + {id: 5083, name: '永川区'},
  411 + {id: 5084, name: '南川市'}
  412 + ]
  413 + },
  414 + {
  415 + id: 51, name: '四川', cities: [
  416 + {id: 5101, name: '成都'},
  417 + {id: 5103, name: '自贡'},
  418 + {id: 5104, name: '攀枝花'},
  419 + {id: 5105, name: '泸州'},
  420 + {id: 5106, name: '德阳'},
  421 + {id: 5107, name: '绵阳'},
  422 + {id: 5108, name: '广元'},
  423 + {id: 5109, name: '遂宁'},
  424 + {id: 5110, name: '内江'},
  425 + {id: 5111, name: '乐山'},
  426 + {id: 5113, name: '南充'},
  427 + {id: 5114, name: '眉山'},
  428 + {id: 5115, name: '宜宾'},
  429 + {id: 5116, name: '广安'},
  430 + {id: 5117, name: '达州'},
  431 + {id: 5118, name: '雅安'},
  432 + {id: 5119, name: '巴中'},
  433 + {id: 5120, name: '资阳'},
  434 + {id: 5132, name: '阿坝'},
  435 + {id: 5133, name: '甘孜'},
  436 + {id: 5134, name: '凉山'}
  437 + ]
  438 + },
  439 + {
  440 + id: 52, name: '贵州', cities: [
  441 + {id: 5201, name: '贵阳'},
  442 + {id: 5202, name: '六盘水'},
  443 + {id: 5203, name: '遵义'},
  444 + {id: 5204, name: '安顺'},
  445 + {id: 5222, name: '铜仁'},
  446 + {id: 5223, name: '黔西南'},
  447 + {id: 5224, name: '毕节'},
  448 + {id: 5226, name: '黔东南'},
  449 + {id: 5227, name: '黔南'}
  450 + ]
  451 + },
  452 + {
  453 + id: 53, name: '云南', cities: [
  454 + {id: 5301, name: '昆明'},
  455 + {id: 5303, name: '曲靖'},
  456 + {id: 5304, name: '玉溪'},
  457 + {id: 5305, name: '保山'},
  458 + {id: 5306, name: '昭通'},
  459 + {id: 5323, name: '楚雄'},
  460 + {id: 5325, name: '红河'},
  461 + {id: 5326, name: '文山'},
  462 + {id: 5327, name: '思茅'},
  463 + {id: 5328, name: '西双版纳'},
  464 + {id: 5329, name: '大理'},
  465 + {id: 5331, name: '德宏'},
  466 + {id: 5332, name: '丽江'},
  467 + {id: 5333, name: '怒江'},
  468 + {id: 5334, name: '迪庆'},
  469 + {id: 5335, name: '临沧'}
  470 + ]
  471 + },
  472 + {
  473 + id: 54, name: '西藏', cities: [
  474 + {id: 5401, name: '拉萨'},
  475 + {id: 5421, name: '昌都'},
  476 + {id: 5422, name: '山南'},
  477 + {id: 5423, name: '日喀则'},
  478 + {id: 5424, name: '那曲'},
  479 + {id: 5425, name: '阿里'},
  480 + {id: 5426, name: '林芝'}
  481 + ]
  482 + },
  483 + {
  484 + id: 61, name: '陕西', cities: [
  485 + {id: 6101, name: '西安'},
  486 + {id: 6102, name: '铜川'},
  487 + {id: 6103, name: '宝鸡'},
  488 + {id: 6104, name: '咸阳'},
  489 + {id: 6105, name: '渭南'},
  490 + {id: 6106, name: '延安'},
  491 + {id: 6107, name: '汉中'},
  492 + {id: 6108, name: '榆林'},
  493 + {id: 6109, name: '安康'},
  494 + {id: 6110, name: '商洛'}
  495 + ]
  496 + },
  497 + {
  498 + id: 62, name: '甘肃', cities: [
  499 + {id: 6201, name: '兰州'},
  500 + {id: 6202, name: '嘉峪关'},
  501 + {id: 6203, name: '金昌'},
  502 + {id: 6204, name: '白银'},
  503 + {id: 6205, name: '天水'},
  504 + {id: 6206, name: '武威'},
  505 + {id: 6207, name: '张掖'},
  506 + {id: 6208, name: '平凉'},
  507 + {id: 6209, name: '酒泉'},
  508 + {id: 6210, name: '庆阳'},
  509 + {id: 6224, name: '定西'},
  510 + {id: 6226, name: '陇南'},
  511 + {id: 6229, name: '临夏'},
  512 + {id: 6230, name: '甘南'}
  513 + ]
  514 + },
  515 + {
  516 + id: 63, name: '青海', cities: [
  517 + {id: 6301, name: '西宁'},
  518 + {id: 6321, name: '海东'},
  519 + {id: 6322, name: '海北'},
  520 + {id: 6323, name: '黄南'},
  521 + {id: 6325, name: '海南'},
  522 + {id: 6326, name: '果洛'},
  523 + {id: 6327, name: '玉树'},
  524 + {id: 6328, name: '海西'}
  525 + ]
  526 + },
  527 + {
  528 + id: 64, name: '宁夏', cities: [
  529 + {id: 6401, name: '银川'},
  530 + {id: 6402, name: '石嘴山'},
  531 + {id: 6403, name: '吴忠'},
  532 + {id: 6404, name: '固原'}
  533 + ]
  534 + },
  535 + {
  536 + id: 65, name: '新疆', cities: [
  537 + {id: 6501, name: '乌鲁木齐'},
  538 + {id: 6502, name: '克拉玛依'},
  539 + {id: 6521, name: '吐鲁番'},
  540 + {id: 6522, name: '哈密'},
  541 + {id: 6523, name: '昌吉'},
  542 + {id: 6527, name: '博尔塔拉'},
  543 + {id: 6528, name: '巴音郭楞'},
  544 + {id: 6529, name: '阿克苏'},
  545 + {id: 6530, name: '克孜勒苏'},
  546 + {id: 6531, name: '喀什'},
  547 + {id: 6532, name: '和田'},
  548 + {id: 6540, name: '伊犁'},
  549 + {id: 6542, name: '塔城'},
  550 + {id: 6543, name: '阿勒泰'}
  551 + ]
  552 + },
  553 + {
  554 + id: 71, name: '台湾', cities: [
  555 + {id: 7101, name: '台北'},
  556 + {id: 7102, name: '高雄'},
  557 + {id: 7190, name: '其他'}
  558 + ]
  559 + },
  560 + {
  561 + id: 81, name: '香港', cities: [
  562 + {id: 8101, name: '香港'}
  563 + ]
  564 + },
  565 + {
  566 + id: 82, name: '澳门', cities: [
  567 + {id: 8201, name: '澳门'}
  568 + ]
  569 + },
  570 + {
  571 + id: 100, name: '其他', cities: [
  572 + {id: 10001, name: '其他'}
  573 + ]
  574 + },
  575 + {
  576 + id: 400, name: '海外', cities: [
  577 + {id: 40001, name: '美国'},
  578 + {id: 40002, name: '英国'},
  579 + {id: 40003, name: '法国'},
  580 + {id: 40004, name: '俄罗斯'},
  581 + {id: 40005, name: '加拿大'},
  582 + {id: 40006, name: '巴西'},
  583 + {id: 40007, name: '澳大利亚'},
  584 + {id: 40008, name: '印尼'},
  585 + {id: 40009, name: '泰国'},
  586 + {id: 40010, name: '马来西亚'},
  587 + {id: 40011, name: '新加坡'},
  588 + {id: 40012, name: '菲律宾'},
  589 + {id: 40013, name: '越南'},
  590 + {id: 40014, name: '印度'},
  591 + {id: 40015, name: '日本'},
  592 + {id: 40016, name: '其他'}
  593 + ]
  594 + }
  595 +];
0 596 \ No newline at end of file
... ...
WebRoot/afterService/js/jquery.city.select.min.js 0 → 100644
  1 +!function(e,n){"function"==typeof define?define(["city.select"],n):"object"==typeof exports?module.exports=n():n()}(this,function(){"use strict";var e;return e=function(e){return e.fn.extend({citylist:function(n){function t(e,n){var t=e,i=n.data,a=[];for(var o in i)if(i.hasOwnProperty(o)){a.push("<option "+n.metaTag+'="'+i[o][n.id]+'"'+(n.selected&&n.selected==i[o][n.id]?d:"")+">"+i[o][n.name]+"</option>");for(var r in i[o][n.children])i[o][n.children].hasOwnProperty(r)&&a.push(n.idVal?"<option "+n.metaTag+'="'+i[o][n.children][r][n.id]+'" value="'+i[o][n.children][r][n.name]+'"'+(n.selected&&n.selected==i[o][n.children][r][n.id]?d:"")+">"+i[o][n.children][r][n.name]+"</option>":"<option "+n.metaTag+'="'+i[o][n.children][r][n.id]+'" value="'+i[o][n.children][r][n.id]+'"'+(n.selected&&n.selected==i[o][n.children][r][n.id]?d:"")+">"+i[o][n.children][r][n.name]+"</option>")}a=a.join(""),t.find("option").remove(),t.append(a)}function i(n,t){var i,a=n.eq(0),o=n.eq(1),r=[];for(var c in t.data)t.data.hasOwnProperty(c)&&(i=t.data[c],r.push(t.idVal?"<option "+t.metaTag+'="'+i[t.id]+'" value="'+i[t.id]+'"'+(t.selected&&t.selected[0]==i[t.id]?d:"")+">"+i[t.name]+"</option>":"<option "+t.metaTag+'="'+i[t.id]+'" value="'+i[t.name]+'"'+(t.selected&&t.selected[0]==i[t.id]?d:"")+">"+i[t.name]+"</option>"));r=r.join(""),a.find("option").remove(),a.append(r);var l=a.find("option");a.on("change",function(){var n=e(this).val();l.each(function(i,a){return e(a).val()==n?function(n){var i,a=e(n).attr(t.metaTag),r=[];for(var c in t.data)if(t.data.hasOwnProperty(c)&&(i=t.data[c],i[t.id]==a&&i[t.children])){i=i[t.children];for(var l in i)i.hasOwnProperty(l)&&r.push(t.idVal?"<option "+t.metaTag+'="'+i[l][t.id]+'" value="'+i[l][t.id]+'"'+(t.selected&&t.selected[1]==i[l][t.id]?d:"")+">"+i[l][t.name]+"</option>":"<option "+t.metaTag+'="'+i[l][t.id]+'" value="'+i[l][t.name]+'"'+(t.selected&&t.selected[1]==i[l][t.id]?d:"")+">"+i[l][t.name]+"</option>");break}r=r.join(""),o.find("option").remove(),o.append(r)}(a):void 0})}).trigger("change")}n=e.extend({id:"id",name:"name",children:"children",metaTag:"data-extra",idVal:!1,data:!1,selected:!1},n);var a=e(this),d=' selected="selected"';switch(a.length){case 1:t(a,n);break;case 2:i(a,n);break;default:return this}return this}}),e}(jQuery)});
0 2 \ No newline at end of file
... ...
WebRoot/afterService/js/prettify.js 0 → 100644
  1 +var q=null;window.PR_SHOULD_USE_CONTINUATION=!0;
  2 +(function(){function L(a){function m(a){var f=a.charCodeAt(0);if(f!==92)return f;var b=a.charAt(1);return(f=r[b])?f:"0"<=b&&b<="7"?parseInt(a.substring(1),8):b==="u"||b==="x"?parseInt(a.substring(2),16):a.charCodeAt(1)}function e(a){if(a<32)return(a<16?"\\x0":"\\x")+a.toString(16);a=String.fromCharCode(a);if(a==="\\"||a==="-"||a==="["||a==="]")a="\\"+a;return a}function h(a){for(var f=a.substring(1,a.length-1).match(/\\u[\dA-Fa-f]{4}|\\x[\dA-Fa-f]{2}|\\[0-3][0-7]{0,2}|\\[0-7]{1,2}|\\[\S\s]|[^\\]/g),a=
  3 +[],b=[],o=f[0]==="^",c=o?1:0,i=f.length;c<i;++c){var j=f[c];if(/\\[bdsw]/i.test(j))a.push(j);else{var j=m(j),d;c+2<i&&"-"===f[c+1]?(d=m(f[c+2]),c+=2):d=j;b.push([j,d]);d<65||j>122||(d<65||j>90||b.push([Math.max(65,j)|32,Math.min(d,90)|32]),d<97||j>122||b.push([Math.max(97,j)&-33,Math.min(d,122)&-33]))}}b.sort(function(a,f){return a[0]-f[0]||f[1]-a[1]});f=[];j=[NaN,NaN];for(c=0;c<b.length;++c)i=b[c],i[0]<=j[1]+1?j[1]=Math.max(j[1],i[1]):f.push(j=i);b=["["];o&&b.push("^");b.push.apply(b,a);for(c=0;c<
  4 +f.length;++c)i=f[c],b.push(e(i[0])),i[1]>i[0]&&(i[1]+1>i[0]&&b.push("-"),b.push(e(i[1])));b.push("]");return b.join("")}function y(a){for(var f=a.source.match(/\[(?:[^\\\]]|\\[\S\s])*]|\\u[\dA-Fa-f]{4}|\\x[\dA-Fa-f]{2}|\\\d+|\\[^\dux]|\(\?[!:=]|[()^]|[^()[\\^]+/g),b=f.length,d=[],c=0,i=0;c<b;++c){var j=f[c];j==="("?++i:"\\"===j.charAt(0)&&(j=+j.substring(1))&&j<=i&&(d[j]=-1)}for(c=1;c<d.length;++c)-1===d[c]&&(d[c]=++t);for(i=c=0;c<b;++c)j=f[c],j==="("?(++i,d[i]===void 0&&(f[c]="(?:")):"\\"===j.charAt(0)&&
  5 +(j=+j.substring(1))&&j<=i&&(f[c]="\\"+d[i]);for(i=c=0;c<b;++c)"^"===f[c]&&"^"!==f[c+1]&&(f[c]="");if(a.ignoreCase&&s)for(c=0;c<b;++c)j=f[c],a=j.charAt(0),j.length>=2&&a==="["?f[c]=h(j):a!=="\\"&&(f[c]=j.replace(/[A-Za-z]/g,function(a){a=a.charCodeAt(0);return"["+String.fromCharCode(a&-33,a|32)+"]"}));return f.join("")}for(var t=0,s=!1,l=!1,p=0,d=a.length;p<d;++p){var g=a[p];if(g.ignoreCase)l=!0;else if(/[a-z]/i.test(g.source.replace(/\\u[\da-f]{4}|\\x[\da-f]{2}|\\[^UXux]/gi,""))){s=!0;l=!1;break}}for(var r=
  6 +{b:8,t:9,n:10,v:11,f:12,r:13},n=[],p=0,d=a.length;p<d;++p){g=a[p];if(g.global||g.multiline)throw Error(""+g);n.push("(?:"+y(g)+")")}return RegExp(n.join("|"),l?"gi":"g")}function M(a){function m(a){switch(a.nodeType){case 1:if(e.test(a.className))break;for(var g=a.firstChild;g;g=g.nextSibling)m(g);g=a.nodeName;if("BR"===g||"LI"===g)h[s]="\n",t[s<<1]=y++,t[s++<<1|1]=a;break;case 3:case 4:g=a.nodeValue,g.length&&(g=p?g.replace(/\r\n?/g,"\n"):g.replace(/[\t\n\r ]+/g," "),h[s]=g,t[s<<1]=y,y+=g.length,
  7 +t[s++<<1|1]=a)}}var e=/(?:^|\s)nocode(?:\s|$)/,h=[],y=0,t=[],s=0,l;a.currentStyle?l=a.currentStyle.whiteSpace:window.getComputedStyle&&(l=document.defaultView.getComputedStyle(a,q).getPropertyValue("white-space"));var p=l&&"pre"===l.substring(0,3);m(a);return{a:h.join("").replace(/\n$/,""),c:t}}function B(a,m,e,h){m&&(a={a:m,d:a},e(a),h.push.apply(h,a.e))}function x(a,m){function e(a){for(var l=a.d,p=[l,"pln"],d=0,g=a.a.match(y)||[],r={},n=0,z=g.length;n<z;++n){var f=g[n],b=r[f],o=void 0,c;if(typeof b===
  8 +"string")c=!1;else{var i=h[f.charAt(0)];if(i)o=f.match(i[1]),b=i[0];else{for(c=0;c<t;++c)if(i=m[c],o=f.match(i[1])){b=i[0];break}o||(b="pln")}if((c=b.length>=5&&"lang-"===b.substring(0,5))&&!(o&&typeof o[1]==="string"))c=!1,b="src";c||(r[f]=b)}i=d;d+=f.length;if(c){c=o[1];var j=f.indexOf(c),k=j+c.length;o[2]&&(k=f.length-o[2].length,j=k-c.length);b=b.substring(5);B(l+i,f.substring(0,j),e,p);B(l+i+j,c,C(b,c),p);B(l+i+k,f.substring(k),e,p)}else p.push(l+i,b)}a.e=p}var h={},y;(function(){for(var e=a.concat(m),
  9 +l=[],p={},d=0,g=e.length;d<g;++d){var r=e[d],n=r[3];if(n)for(var k=n.length;--k>=0;)h[n.charAt(k)]=r;r=r[1];n=""+r;p.hasOwnProperty(n)||(l.push(r),p[n]=q)}l.push(/[\S\s]/);y=L(l)})();var t=m.length;return e}function u(a){var m=[],e=[];a.tripleQuotedStrings?m.push(["str",/^(?:'''(?:[^'\\]|\\[\S\s]|''?(?=[^']))*(?:'''|$)|"""(?:[^"\\]|\\[\S\s]|""?(?=[^"]))*(?:"""|$)|'(?:[^'\\]|\\[\S\s])*(?:'|$)|"(?:[^"\\]|\\[\S\s])*(?:"|$))/,q,"'\""]):a.multiLineStrings?m.push(["str",/^(?:'(?:[^'\\]|\\[\S\s])*(?:'|$)|"(?:[^"\\]|\\[\S\s])*(?:"|$)|`(?:[^\\`]|\\[\S\s])*(?:`|$))/,
  10 +q,"'\"`"]):m.push(["str",/^(?:'(?:[^\n\r'\\]|\\.)*(?:'|$)|"(?:[^\n\r"\\]|\\.)*(?:"|$))/,q,"\"'"]);a.verbatimStrings&&e.push(["str",/^@"(?:[^"]|"")*(?:"|$)/,q]);var h=a.hashComments;h&&(a.cStyleComments?(h>1?m.push(["com",/^#(?:##(?:[^#]|#(?!##))*(?:###|$)|.*)/,q,"#"]):m.push(["com",/^#(?:(?:define|elif|else|endif|error|ifdef|include|ifndef|line|pragma|undef|warning)\b|[^\n\r]*)/,q,"#"]),e.push(["str",/^<(?:(?:(?:\.\.\/)*|\/?)(?:[\w-]+(?:\/[\w-]+)+)?[\w-]+\.h|[a-z]\w*)>/,q])):m.push(["com",/^#[^\n\r]*/,
  11 +q,"#"]));a.cStyleComments&&(e.push(["com",/^\/\/[^\n\r]*/,q]),e.push(["com",/^\/\*[\S\s]*?(?:\*\/|$)/,q]));a.regexLiterals&&e.push(["lang-regex",/^(?:^^\.?|[!+-]|!=|!==|#|%|%=|&|&&|&&=|&=|\(|\*|\*=|\+=|,|-=|->|\/|\/=|:|::|;|<|<<|<<=|<=|=|==|===|>|>=|>>|>>=|>>>|>>>=|[?@[^]|\^=|\^\^|\^\^=|{|\||\|=|\|\||\|\|=|~|break|case|continue|delete|do|else|finally|instanceof|return|throw|try|typeof)\s*(\/(?=[^*/])(?:[^/[\\]|\\[\S\s]|\[(?:[^\\\]]|\\[\S\s])*(?:]|$))+\/)/]);(h=a.types)&&e.push(["typ",h]);a=(""+a.keywords).replace(/^ | $/g,
  12 +"");a.length&&e.push(["kwd",RegExp("^(?:"+a.replace(/[\s,]+/g,"|")+")\\b"),q]);m.push(["pln",/^\s+/,q," \r\n\t\xa0"]);e.push(["lit",/^@[$_a-z][\w$@]*/i,q],["typ",/^(?:[@_]?[A-Z]+[a-z][\w$@]*|\w+_t\b)/,q],["pln",/^[$_a-z][\w$@]*/i,q],["lit",/^(?:0x[\da-f]+|(?:\d(?:_\d+)*\d*(?:\.\d*)?|\.\d\+)(?:e[+-]?\d+)?)[a-z]*/i,q,"0123456789"],["pln",/^\\[\S\s]?/,q],["pun",/^.[^\s\w"-$'./@\\`]*/,q]);return x(m,e)}function D(a,m){function e(a){switch(a.nodeType){case 1:if(k.test(a.className))break;if("BR"===a.nodeName)h(a),
  13 +a.parentNode&&a.parentNode.removeChild(a);else for(a=a.firstChild;a;a=a.nextSibling)e(a);break;case 3:case 4:if(p){var b=a.nodeValue,d=b.match(t);if(d){var c=b.substring(0,d.index);a.nodeValue=c;(b=b.substring(d.index+d[0].length))&&a.parentNode.insertBefore(s.createTextNode(b),a.nextSibling);h(a);c||a.parentNode.removeChild(a)}}}}function h(a){function b(a,d){var e=d?a.cloneNode(!1):a,f=a.parentNode;if(f){var f=b(f,1),g=a.nextSibling;f.appendChild(e);for(var h=g;h;h=g)g=h.nextSibling,f.appendChild(h)}return e}
  14 +for(;!a.nextSibling;)if(a=a.parentNode,!a)return;for(var a=b(a.nextSibling,0),e;(e=a.parentNode)&&e.nodeType===1;)a=e;d.push(a)}var k=/(?:^|\s)nocode(?:\s|$)/,t=/\r\n?|\n/,s=a.ownerDocument,l;a.currentStyle?l=a.currentStyle.whiteSpace:window.getComputedStyle&&(l=s.defaultView.getComputedStyle(a,q).getPropertyValue("white-space"));var p=l&&"pre"===l.substring(0,3);for(l=s.createElement("LI");a.firstChild;)l.appendChild(a.firstChild);for(var d=[l],g=0;g<d.length;++g)e(d[g]);m===(m|0)&&d[0].setAttribute("value",
  15 +m);var r=s.createElement("OL");r.className="linenums";for(var n=Math.max(0,m-1|0)||0,g=0,z=d.length;g<z;++g)l=d[g],l.className="L"+(g+n)%10,l.firstChild||l.appendChild(s.createTextNode("\xa0")),r.appendChild(l);a.appendChild(r)}function k(a,m){for(var e=m.length;--e>=0;){var h=m[e];A.hasOwnProperty(h)?window.console&&console.warn("cannot override language handler %s",h):A[h]=a}}function C(a,m){if(!a||!A.hasOwnProperty(a))a=/^\s*</.test(m)?"default-markup":"default-code";return A[a]}function E(a){var m=
  16 +a.g;try{var e=M(a.h),h=e.a;a.a=h;a.c=e.c;a.d=0;C(m,h)(a);var k=/\bMSIE\b/.test(navigator.userAgent),m=/\n/g,t=a.a,s=t.length,e=0,l=a.c,p=l.length,h=0,d=a.e,g=d.length,a=0;d[g]=s;var r,n;for(n=r=0;n<g;)d[n]!==d[n+2]?(d[r++]=d[n++],d[r++]=d[n++]):n+=2;g=r;for(n=r=0;n<g;){for(var z=d[n],f=d[n+1],b=n+2;b+2<=g&&d[b+1]===f;)b+=2;d[r++]=z;d[r++]=f;n=b}for(d.length=r;h<p;){var o=l[h+2]||s,c=d[a+2]||s,b=Math.min(o,c),i=l[h+1],j;if(i.nodeType!==1&&(j=t.substring(e,b))){k&&(j=j.replace(m,"\r"));i.nodeValue=
  17 +j;var u=i.ownerDocument,v=u.createElement("SPAN");v.className=d[a+1];var x=i.parentNode;x.replaceChild(v,i);v.appendChild(i);e<o&&(l[h+1]=i=u.createTextNode(t.substring(b,o)),x.insertBefore(i,v.nextSibling))}e=b;e>=o&&(h+=2);e>=c&&(a+=2)}}catch(w){"console"in window&&console.log(w&&w.stack?w.stack:w)}}var v=["break,continue,do,else,for,if,return,while"],w=[[v,"auto,case,char,const,default,double,enum,extern,float,goto,int,long,register,short,signed,sizeof,static,struct,switch,typedef,union,unsigned,void,volatile"],
  18 +"catch,class,delete,false,import,new,operator,private,protected,public,this,throw,true,try,typeof"],F=[w,"alignof,align_union,asm,axiom,bool,concept,concept_map,const_cast,constexpr,decltype,dynamic_cast,explicit,export,friend,inline,late_check,mutable,namespace,nullptr,reinterpret_cast,static_assert,static_cast,template,typeid,typename,using,virtual,where"],G=[w,"abstract,boolean,byte,extends,final,finally,implements,import,instanceof,null,native,package,strictfp,super,synchronized,throws,transient"],
  19 +H=[G,"as,base,by,checked,decimal,delegate,descending,dynamic,event,fixed,foreach,from,group,implicit,in,interface,internal,into,is,lock,object,out,override,orderby,params,partial,readonly,ref,sbyte,sealed,stackalloc,string,select,uint,ulong,unchecked,unsafe,ushort,var"],w=[w,"debugger,eval,export,function,get,null,set,undefined,var,with,Infinity,NaN"],I=[v,"and,as,assert,class,def,del,elif,except,exec,finally,from,global,import,in,is,lambda,nonlocal,not,or,pass,print,raise,try,with,yield,False,True,None"],
  20 +J=[v,"alias,and,begin,case,class,def,defined,elsif,end,ensure,false,in,module,next,nil,not,or,redo,rescue,retry,self,super,then,true,undef,unless,until,when,yield,BEGIN,END"],v=[v,"case,done,elif,esac,eval,fi,function,in,local,set,then,until"],K=/^(DIR|FILE|vector|(de|priority_)?queue|list|stack|(const_)?iterator|(multi)?(set|map)|bitset|u?(int|float)\d*)/,N=/\S/,O=u({keywords:[F,H,w,"caller,delete,die,do,dump,elsif,eval,exit,foreach,for,goto,if,import,last,local,my,next,no,our,print,package,redo,require,sub,undef,unless,until,use,wantarray,while,BEGIN,END"+
  21 +I,J,v],hashComments:!0,cStyleComments:!0,multiLineStrings:!0,regexLiterals:!0}),A={};k(O,["default-code"]);k(x([],[["pln",/^[^<?]+/],["dec",/^<!\w[^>]*(?:>|$)/],["com",/^<\!--[\S\s]*?(?:--\>|$)/],["lang-",/^<\?([\S\s]+?)(?:\?>|$)/],["lang-",/^<%([\S\s]+?)(?:%>|$)/],["pun",/^(?:<[%?]|[%?]>)/],["lang-",/^<xmp\b[^>]*>([\S\s]+?)<\/xmp\b[^>]*>/i],["lang-js",/^<script\b[^>]*>([\S\s]*?)(<\/script\b[^>]*>)/i],["lang-css",/^<style\b[^>]*>([\S\s]*?)(<\/style\b[^>]*>)/i],["lang-in.tag",/^(<\/?[a-z][^<>]*>)/i]]),
  22 +["default-markup","htm","html","mxml","xhtml","xml","xsl"]);k(x([["pln",/^\s+/,q," \t\r\n"],["atv",/^(?:"[^"]*"?|'[^']*'?)/,q,"\"'"]],[["tag",/^^<\/?[a-z](?:[\w-.:]*\w)?|\/?>$/i],["atn",/^(?!style[\s=]|on)[a-z](?:[\w:-]*\w)?/i],["lang-uq.val",/^=\s*([^\s"'>]*(?:[^\s"'/>]|\/(?=\s)))/],["pun",/^[/<->]+/],["lang-js",/^on\w+\s*=\s*"([^"]+)"/i],["lang-js",/^on\w+\s*=\s*'([^']+)'/i],["lang-js",/^on\w+\s*=\s*([^\s"'>]+)/i],["lang-css",/^style\s*=\s*"([^"]+)"/i],["lang-css",/^style\s*=\s*'([^']+)'/i],["lang-css",
  23 +/^style\s*=\s*([^\s"'>]+)/i]]),["in.tag"]);k(x([],[["atv",/^[\S\s]+/]]),["uq.val"]);k(u({keywords:F,hashComments:!0,cStyleComments:!0,types:K}),["c","cc","cpp","cxx","cyc","m"]);k(u({keywords:"null,true,false"}),["json"]);k(u({keywords:H,hashComments:!0,cStyleComments:!0,verbatimStrings:!0,types:K}),["cs"]);k(u({keywords:G,cStyleComments:!0}),["java"]);k(u({keywords:v,hashComments:!0,multiLineStrings:!0}),["bsh","csh","sh"]);k(u({keywords:I,hashComments:!0,multiLineStrings:!0,tripleQuotedStrings:!0}),
  24 +["cv","py"]);k(u({keywords:"caller,delete,die,do,dump,elsif,eval,exit,foreach,for,goto,if,import,last,local,my,next,no,our,print,package,redo,require,sub,undef,unless,until,use,wantarray,while,BEGIN,END",hashComments:!0,multiLineStrings:!0,regexLiterals:!0}),["perl","pl","pm"]);k(u({keywords:J,hashComments:!0,multiLineStrings:!0,regexLiterals:!0}),["rb"]);k(u({keywords:w,cStyleComments:!0,regexLiterals:!0}),["js"]);k(u({keywords:"all,and,by,catch,class,else,extends,false,finally,for,if,in,is,isnt,loop,new,no,not,null,of,off,on,or,return,super,then,true,try,unless,until,when,while,yes",
  25 +hashComments:3,cStyleComments:!0,multilineStrings:!0,tripleQuotedStrings:!0,regexLiterals:!0}),["coffee"]);k(x([],[["str",/^[\S\s]+/]]),["regex"]);window.prettyPrintOne=function(a,m,e){var h=document.createElement("PRE");h.innerHTML=a;e&&D(h,e);E({g:m,i:e,h:h});return h.innerHTML};window.prettyPrint=function(a){function m(){for(var e=window.PR_SHOULD_USE_CONTINUATION?l.now()+250:Infinity;p<h.length&&l.now()<e;p++){var n=h[p],k=n.className;if(k.indexOf("prettyprint")>=0){var k=k.match(g),f,b;if(b=
  26 +!k){b=n;for(var o=void 0,c=b.firstChild;c;c=c.nextSibling)var i=c.nodeType,o=i===1?o?b:c:i===3?N.test(c.nodeValue)?b:o:o;b=(f=o===b?void 0:o)&&"CODE"===f.tagName}b&&(k=f.className.match(g));k&&(k=k[1]);b=!1;for(o=n.parentNode;o;o=o.parentNode)if((o.tagName==="pre"||o.tagName==="code"||o.tagName==="xmp")&&o.className&&o.className.indexOf("prettyprint")>=0){b=!0;break}b||((b=(b=n.className.match(/\blinenums\b(?::(\d+))?/))?b[1]&&b[1].length?+b[1]:!0:!1)&&D(n,b),d={g:k,h:n,i:b},E(d))}}p<h.length?setTimeout(m,
  27 +250):a&&a()}for(var e=[document.getElementsByTagName("pre"),document.getElementsByTagName("code"),document.getElementsByTagName("xmp")],h=[],k=0;k<e.length;++k)for(var t=0,s=e[k].length;t<s;++t)h.push(e[k][t]);var e=q,l=Date;l.now||(l={now:function(){return+new Date}});var p=0,d,g=/\blang(?:uage)?-([\w.]+)(?!\S)/;m()};window.PR={createSimpleLexer:x,registerLangHandler:k,sourceDecorator:u,PR_ATTRIB_NAME:"atn",PR_ATTRIB_VALUE:"atv",PR_COMMENT:"com",PR_DECLARATION:"dec",PR_KEYWORD:"kwd",PR_LITERAL:"lit",
  28 +PR_NOCODE:"nocode",PR_PLAIN:"pln",PR_PUNCTUATION:"pun",PR_SOURCE:"src",PR_STRING:"str",PR_TAG:"tag",PR_TYPE:"typ"}})();
... ...
WebRoot/afterService/js/require.min.js 0 → 100644
  1 +/*
  2 + RequireJS 2.1.17 Copyright (c) 2010-2015, The Dojo Foundation All Rights Reserved.
  3 + Available via the MIT or new BSD license.
  4 + see: http://github.com/jrburke/requirejs for details
  5 +*/
  6 +var requirejs,require,define;
  7 +(function(ba){function G(b){return"[object Function]"===K.call(b)}function H(b){return"[object Array]"===K.call(b)}function v(b,c){if(b){var d;for(d=0;d<b.length&&(!b[d]||!c(b[d],d,b));d+=1);}}function T(b,c){if(b){var d;for(d=b.length-1;-1<d&&(!b[d]||!c(b[d],d,b));d-=1);}}function t(b,c){return fa.call(b,c)}function m(b,c){return t(b,c)&&b[c]}function B(b,c){for(var d in b)if(t(b,d)&&c(b[d],d))break}function U(b,c,d,e){c&&B(c,function(c,g){if(d||!t(b,g))e&&"object"===typeof c&&c&&!H(c)&&!G(c)&&!(c instanceof
  8 +RegExp)?(b[g]||(b[g]={}),U(b[g],c,d,e)):b[g]=c});return b}function u(b,c){return function(){return c.apply(b,arguments)}}function ca(b){throw b;}function da(b){if(!b)return b;var c=ba;v(b.split("."),function(b){c=c[b]});return c}function C(b,c,d,e){c=Error(c+"\nhttp://requirejs.org/docs/errors.html#"+b);c.requireType=b;c.requireModules=e;d&&(c.originalError=d);return c}function ga(b){function c(a,k,b){var f,l,c,d,e,g,i,p,k=k&&k.split("/"),h=j.map,n=h&&h["*"];if(a){a=a.split("/");l=a.length-1;j.nodeIdCompat&&
  9 +Q.test(a[l])&&(a[l]=a[l].replace(Q,""));"."===a[0].charAt(0)&&k&&(l=k.slice(0,k.length-1),a=l.concat(a));l=a;for(c=0;c<l.length;c++)if(d=l[c],"."===d)l.splice(c,1),c-=1;else if(".."===d&&!(0===c||1===c&&".."===l[2]||".."===l[c-1])&&0<c)l.splice(c-1,2),c-=2;a=a.join("/")}if(b&&h&&(k||n)){l=a.split("/");c=l.length;a:for(;0<c;c-=1){e=l.slice(0,c).join("/");if(k)for(d=k.length;0<d;d-=1)if(b=m(h,k.slice(0,d).join("/")))if(b=m(b,e)){f=b;g=c;break a}!i&&(n&&m(n,e))&&(i=m(n,e),p=c)}!f&&i&&(f=i,g=p);f&&(l.splice(0,
  10 +g,f),a=l.join("/"))}return(f=m(j.pkgs,a))?f:a}function d(a){z&&v(document.getElementsByTagName("script"),function(k){if(k.getAttribute("data-requiremodule")===a&&k.getAttribute("data-requirecontext")===i.contextName)return k.parentNode.removeChild(k),!0})}function e(a){var k=m(j.paths,a);if(k&&H(k)&&1<k.length)return k.shift(),i.require.undef(a),i.makeRequire(null,{skipMap:!0})([a]),!0}function n(a){var k,c=a?a.indexOf("!"):-1;-1<c&&(k=a.substring(0,c),a=a.substring(c+1,a.length));return[k,a]}function p(a,
  11 +k,b,f){var l,d,e=null,g=k?k.name:null,j=a,p=!0,h="";a||(p=!1,a="_@r"+(K+=1));a=n(a);e=a[0];a=a[1];e&&(e=c(e,g,f),d=m(r,e));a&&(e?h=d&&d.normalize?d.normalize(a,function(a){return c(a,g,f)}):-1===a.indexOf("!")?c(a,g,f):a:(h=c(a,g,f),a=n(h),e=a[0],h=a[1],b=!0,l=i.nameToUrl(h)));b=e&&!d&&!b?"_unnormalized"+(O+=1):"";return{prefix:e,name:h,parentMap:k,unnormalized:!!b,url:l,originalName:j,isDefine:p,id:(e?e+"!"+h:h)+b}}function s(a){var k=a.id,b=m(h,k);b||(b=h[k]=new i.Module(a));return b}function q(a,
  12 +k,b){var f=a.id,c=m(h,f);if(t(r,f)&&(!c||c.defineEmitComplete))"defined"===k&&b(r[f]);else if(c=s(a),c.error&&"error"===k)b(c.error);else c.on(k,b)}function w(a,b){var c=a.requireModules,f=!1;if(b)b(a);else if(v(c,function(b){if(b=m(h,b))b.error=a,b.events.error&&(f=!0,b.emit("error",a))}),!f)g.onError(a)}function x(){R.length&&(ha.apply(A,[A.length,0].concat(R)),R=[])}function y(a){delete h[a];delete V[a]}function F(a,b,c){var f=a.map.id;a.error?a.emit("error",a.error):(b[f]=!0,v(a.depMaps,function(f,
  13 +d){var e=f.id,g=m(h,e);g&&(!a.depMatched[d]&&!c[e])&&(m(b,e)?(a.defineDep(d,r[e]),a.check()):F(g,b,c))}),c[f]=!0)}function D(){var a,b,c=(a=1E3*j.waitSeconds)&&i.startTime+a<(new Date).getTime(),f=[],l=[],g=!1,h=!0;if(!W){W=!0;B(V,function(a){var i=a.map,j=i.id;if(a.enabled&&(i.isDefine||l.push(a),!a.error))if(!a.inited&&c)e(j)?g=b=!0:(f.push(j),d(j));else if(!a.inited&&(a.fetched&&i.isDefine)&&(g=!0,!i.prefix))return h=!1});if(c&&f.length)return a=C("timeout","Load timeout for modules: "+f,null,
  14 +f),a.contextName=i.contextName,w(a);h&&v(l,function(a){F(a,{},{})});if((!c||b)&&g)if((z||ea)&&!X)X=setTimeout(function(){X=0;D()},50);W=!1}}function E(a){t(r,a[0])||s(p(a[0],null,!0)).init(a[1],a[2])}function I(a){var a=a.currentTarget||a.srcElement,b=i.onScriptLoad;a.detachEvent&&!Y?a.detachEvent("onreadystatechange",b):a.removeEventListener("load",b,!1);b=i.onScriptError;(!a.detachEvent||Y)&&a.removeEventListener("error",b,!1);return{node:a,id:a&&a.getAttribute("data-requiremodule")}}function J(){var a;
  15 +for(x();A.length;){a=A.shift();if(null===a[0])return w(C("mismatch","Mismatched anonymous define() module: "+a[a.length-1]));E(a)}}var W,Z,i,L,X,j={waitSeconds:7,baseUrl:"./",paths:{},bundles:{},pkgs:{},shim:{},config:{}},h={},V={},$={},A=[],r={},S={},aa={},K=1,O=1;L={require:function(a){return a.require?a.require:a.require=i.makeRequire(a.map)},exports:function(a){a.usingExports=!0;if(a.map.isDefine)return a.exports?r[a.map.id]=a.exports:a.exports=r[a.map.id]={}},module:function(a){return a.module?
  16 +a.module:a.module={id:a.map.id,uri:a.map.url,config:function(){return m(j.config,a.map.id)||{}},exports:a.exports||(a.exports={})}}};Z=function(a){this.events=m($,a.id)||{};this.map=a;this.shim=m(j.shim,a.id);this.depExports=[];this.depMaps=[];this.depMatched=[];this.pluginMaps={};this.depCount=0};Z.prototype={init:function(a,b,c,f){f=f||{};if(!this.inited){this.factory=b;if(c)this.on("error",c);else this.events.error&&(c=u(this,function(a){this.emit("error",a)}));this.depMaps=a&&a.slice(0);this.errback=
  17 +c;this.inited=!0;this.ignore=f.ignore;f.enabled||this.enabled?this.enable():this.check()}},defineDep:function(a,b){this.depMatched[a]||(this.depMatched[a]=!0,this.depCount-=1,this.depExports[a]=b)},fetch:function(){if(!this.fetched){this.fetched=!0;i.startTime=(new Date).getTime();var a=this.map;if(this.shim)i.makeRequire(this.map,{enableBuildCallback:!0})(this.shim.deps||[],u(this,function(){return a.prefix?this.callPlugin():this.load()}));else return a.prefix?this.callPlugin():this.load()}},load:function(){var a=
  18 +this.map.url;S[a]||(S[a]=!0,i.load(this.map.id,a))},check:function(){if(this.enabled&&!this.enabling){var a,b,c=this.map.id;b=this.depExports;var f=this.exports,l=this.factory;if(this.inited)if(this.error)this.emit("error",this.error);else{if(!this.defining){this.defining=!0;if(1>this.depCount&&!this.defined){if(G(l)){if(this.events.error&&this.map.isDefine||g.onError!==ca)try{f=i.execCb(c,l,b,f)}catch(d){a=d}else f=i.execCb(c,l,b,f);this.map.isDefine&&void 0===f&&((b=this.module)?f=b.exports:this.usingExports&&
  19 +(f=this.exports));if(a)return a.requireMap=this.map,a.requireModules=this.map.isDefine?[this.map.id]:null,a.requireType=this.map.isDefine?"define":"require",w(this.error=a)}else f=l;this.exports=f;if(this.map.isDefine&&!this.ignore&&(r[c]=f,g.onResourceLoad))g.onResourceLoad(i,this.map,this.depMaps);y(c);this.defined=!0}this.defining=!1;this.defined&&!this.defineEmitted&&(this.defineEmitted=!0,this.emit("defined",this.exports),this.defineEmitComplete=!0)}}else this.fetch()}},callPlugin:function(){var a=
  20 +this.map,b=a.id,d=p(a.prefix);this.depMaps.push(d);q(d,"defined",u(this,function(f){var l,d;d=m(aa,this.map.id);var e=this.map.name,P=this.map.parentMap?this.map.parentMap.name:null,n=i.makeRequire(a.parentMap,{enableBuildCallback:!0});if(this.map.unnormalized){if(f.normalize&&(e=f.normalize(e,function(a){return c(a,P,!0)})||""),f=p(a.prefix+"!"+e,this.map.parentMap),q(f,"defined",u(this,function(a){this.init([],function(){return a},null,{enabled:!0,ignore:!0})})),d=m(h,f.id)){this.depMaps.push(f);
  21 +if(this.events.error)d.on("error",u(this,function(a){this.emit("error",a)}));d.enable()}}else d?(this.map.url=i.nameToUrl(d),this.load()):(l=u(this,function(a){this.init([],function(){return a},null,{enabled:!0})}),l.error=u(this,function(a){this.inited=!0;this.error=a;a.requireModules=[b];B(h,function(a){0===a.map.id.indexOf(b+"_unnormalized")&&y(a.map.id)});w(a)}),l.fromText=u(this,function(f,c){var d=a.name,e=p(d),P=M;c&&(f=c);P&&(M=!1);s(e);t(j.config,b)&&(j.config[d]=j.config[b]);try{g.exec(f)}catch(h){return w(C("fromtexteval",
  22 +"fromText eval for "+b+" failed: "+h,h,[b]))}P&&(M=!0);this.depMaps.push(e);i.completeLoad(d);n([d],l)}),f.load(a.name,n,l,j))}));i.enable(d,this);this.pluginMaps[d.id]=d},enable:function(){V[this.map.id]=this;this.enabling=this.enabled=!0;v(this.depMaps,u(this,function(a,b){var c,f;if("string"===typeof a){a=p(a,this.map.isDefine?this.map:this.map.parentMap,!1,!this.skipMap);this.depMaps[b]=a;if(c=m(L,a.id)){this.depExports[b]=c(this);return}this.depCount+=1;q(a,"defined",u(this,function(a){this.defineDep(b,
  23 +a);this.check()}));this.errback?q(a,"error",u(this,this.errback)):this.events.error&&q(a,"error",u(this,function(a){this.emit("error",a)}))}c=a.id;f=h[c];!t(L,c)&&(f&&!f.enabled)&&i.enable(a,this)}));B(this.pluginMaps,u(this,function(a){var b=m(h,a.id);b&&!b.enabled&&i.enable(a,this)}));this.enabling=!1;this.check()},on:function(a,b){var c=this.events[a];c||(c=this.events[a]=[]);c.push(b)},emit:function(a,b){v(this.events[a],function(a){a(b)});"error"===a&&delete this.events[a]}};i={config:j,contextName:b,
  24 +registry:h,defined:r,urlFetched:S,defQueue:A,Module:Z,makeModuleMap:p,nextTick:g.nextTick,onError:w,configure:function(a){a.baseUrl&&"/"!==a.baseUrl.charAt(a.baseUrl.length-1)&&(a.baseUrl+="/");var b=j.shim,c={paths:!0,bundles:!0,config:!0,map:!0};B(a,function(a,b){c[b]?(j[b]||(j[b]={}),U(j[b],a,!0,!0)):j[b]=a});a.bundles&&B(a.bundles,function(a,b){v(a,function(a){a!==b&&(aa[a]=b)})});a.shim&&(B(a.shim,function(a,c){H(a)&&(a={deps:a});if((a.exports||a.init)&&!a.exportsFn)a.exportsFn=i.makeShimExports(a);
  25 +b[c]=a}),j.shim=b);a.packages&&v(a.packages,function(a){var b,a="string"===typeof a?{name:a}:a;b=a.name;a.location&&(j.paths[b]=a.location);j.pkgs[b]=a.name+"/"+(a.main||"main").replace(ia,"").replace(Q,"")});B(h,function(a,b){!a.inited&&!a.map.unnormalized&&(a.map=p(b))});if(a.deps||a.callback)i.require(a.deps||[],a.callback)},makeShimExports:function(a){return function(){var b;a.init&&(b=a.init.apply(ba,arguments));return b||a.exports&&da(a.exports)}},makeRequire:function(a,e){function j(c,d,m){var n,
  26 +q;e.enableBuildCallback&&(d&&G(d))&&(d.__requireJsBuild=!0);if("string"===typeof c){if(G(d))return w(C("requireargs","Invalid require call"),m);if(a&&t(L,c))return L[c](h[a.id]);if(g.get)return g.get(i,c,a,j);n=p(c,a,!1,!0);n=n.id;return!t(r,n)?w(C("notloaded",'Module name "'+n+'" has not been loaded yet for context: '+b+(a?"":". Use require([])"))):r[n]}J();i.nextTick(function(){J();q=s(p(null,a));q.skipMap=e.skipMap;q.init(c,d,m,{enabled:!0});D()});return j}e=e||{};U(j,{isBrowser:z,toUrl:function(b){var d,
  27 +e=b.lastIndexOf("."),k=b.split("/")[0];if(-1!==e&&(!("."===k||".."===k)||1<e))d=b.substring(e,b.length),b=b.substring(0,e);return i.nameToUrl(c(b,a&&a.id,!0),d,!0)},defined:function(b){return t(r,p(b,a,!1,!0).id)},specified:function(b){b=p(b,a,!1,!0).id;return t(r,b)||t(h,b)}});a||(j.undef=function(b){x();var c=p(b,a,!0),e=m(h,b);d(b);delete r[b];delete S[c.url];delete $[b];T(A,function(a,c){a[0]===b&&A.splice(c,1)});e&&(e.events.defined&&($[b]=e.events),y(b))});return j},enable:function(a){m(h,a.id)&&
  28 +s(a).enable()},completeLoad:function(a){var b,c,d=m(j.shim,a)||{},g=d.exports;for(x();A.length;){c=A.shift();if(null===c[0]){c[0]=a;if(b)break;b=!0}else c[0]===a&&(b=!0);E(c)}c=m(h,a);if(!b&&!t(r,a)&&c&&!c.inited){if(j.enforceDefine&&(!g||!da(g)))return e(a)?void 0:w(C("nodefine","No define call for "+a,null,[a]));E([a,d.deps||[],d.exportsFn])}D()},nameToUrl:function(a,b,c){var d,e,h;(d=m(j.pkgs,a))&&(a=d);if(d=m(aa,a))return i.nameToUrl(d,b,c);if(g.jsExtRegExp.test(a))d=a+(b||"");else{d=j.paths;
  29 +a=a.split("/");for(e=a.length;0<e;e-=1)if(h=a.slice(0,e).join("/"),h=m(d,h)){H(h)&&(h=h[0]);a.splice(0,e,h);break}d=a.join("/");d+=b||(/^data\:|\?/.test(d)||c?"":".js");d=("/"===d.charAt(0)||d.match(/^[\w\+\.\-]+:/)?"":j.baseUrl)+d}return j.urlArgs?d+((-1===d.indexOf("?")?"?":"&")+j.urlArgs):d},load:function(a,b){g.load(i,a,b)},execCb:function(a,b,c,d){return b.apply(d,c)},onScriptLoad:function(a){if("load"===a.type||ja.test((a.currentTarget||a.srcElement).readyState))N=null,a=I(a),i.completeLoad(a.id)},
  30 +onScriptError:function(a){var b=I(a);if(!e(b.id))return w(C("scripterror","Script error for: "+b.id,a,[b.id]))}};i.require=i.makeRequire();return i}var g,x,y,D,I,E,N,J,s,O,ka=/(\/\*([\s\S]*?)\*\/|([^:]|^)\/\/(.*)$)/mg,la=/[^.]\s*require\s*\(\s*["']([^'"\s]+)["']\s*\)/g,Q=/\.js$/,ia=/^\.\//;x=Object.prototype;var K=x.toString,fa=x.hasOwnProperty,ha=Array.prototype.splice,z=!!("undefined"!==typeof window&&"undefined"!==typeof navigator&&window.document),ea=!z&&"undefined"!==typeof importScripts,ja=
  31 +z&&"PLAYSTATION 3"===navigator.platform?/^complete$/:/^(complete|loaded)$/,Y="undefined"!==typeof opera&&"[object Opera]"===opera.toString(),F={},q={},R=[],M=!1;if("undefined"===typeof define){if("undefined"!==typeof requirejs){if(G(requirejs))return;q=requirejs;requirejs=void 0}"undefined"!==typeof require&&!G(require)&&(q=require,require=void 0);g=requirejs=function(b,c,d,e){var n,p="_";!H(b)&&"string"!==typeof b&&(n=b,H(c)?(b=c,c=d,d=e):b=[]);n&&n.context&&(p=n.context);(e=m(F,p))||(e=F[p]=g.s.newContext(p));
  32 +n&&e.configure(n);return e.require(b,c,d)};g.config=function(b){return g(b)};g.nextTick="undefined"!==typeof setTimeout?function(b){setTimeout(b,4)}:function(b){b()};require||(require=g);g.version="2.1.17";g.jsExtRegExp=/^\/|:|\?|\.js$/;g.isBrowser=z;x=g.s={contexts:F,newContext:ga};g({});v(["toUrl","undef","defined","specified"],function(b){g[b]=function(){var c=F._;return c.require[b].apply(c,arguments)}});if(z&&(y=x.head=document.getElementsByTagName("head")[0],D=document.getElementsByTagName("base")[0]))y=
  33 +x.head=D.parentNode;g.onError=ca;g.createNode=function(b){var c=b.xhtml?document.createElementNS("http://www.w3.org/1999/xhtml","html:script"):document.createElement("script");c.type=b.scriptType||"text/javascript";c.charset="utf-8";c.async=!0;return c};g.load=function(b,c,d){var e=b&&b.config||{};if(z)return e=g.createNode(e,c,d),e.setAttribute("data-requirecontext",b.contextName),e.setAttribute("data-requiremodule",c),e.attachEvent&&!(e.attachEvent.toString&&0>e.attachEvent.toString().indexOf("[native code"))&&
  34 +!Y?(M=!0,e.attachEvent("onreadystatechange",b.onScriptLoad)):(e.addEventListener("load",b.onScriptLoad,!1),e.addEventListener("error",b.onScriptError,!1)),e.src=d,J=e,D?y.insertBefore(e,D):y.appendChild(e),J=null,e;if(ea)try{importScripts(d),b.completeLoad(c)}catch(m){b.onError(C("importscripts","importScripts failed for "+c+" at "+d,m,[c]))}};z&&!q.skipDataMain&&T(document.getElementsByTagName("script"),function(b){y||(y=b.parentNode);if(I=b.getAttribute("data-main"))return s=I,q.baseUrl||(E=s.split("/"),
  35 +s=E.pop(),O=E.length?E.join("/")+"/":"./",q.baseUrl=O),s=s.replace(Q,""),g.jsExtRegExp.test(s)&&(s=I),q.deps=q.deps?q.deps.concat(s):[s],!0});define=function(b,c,d){var e,g;"string"!==typeof b&&(d=c,c=b,b=null);H(c)||(d=c,c=null);!c&&G(d)&&(c=[],d.length&&(d.toString().replace(ka,"").replace(la,function(b,d){c.push(d)}),c=(1===d.length?["require"]:["require","exports","module"]).concat(c)));if(M){if(!(e=J))N&&"interactive"===N.readyState||T(document.getElementsByTagName("script"),function(b){if("interactive"===
  36 +b.readyState)return N=b}),e=N;e&&(b||(b=e.getAttribute("data-requiremodule")),g=F[e.getAttribute("data-requirecontext")])}(g?g.defQueue:R).push([b,c,d])};define.amd={jQuery:!0};g.exec=function(b){return eval(b)};g(q)}})(this);
... ...
WebRoot/afterService/parts2_info.html 0 → 100644
  1 +<!DOCTYPE html>
  2 +<html lang="zh">
  3 +<head>
  4 + <meta charset="UTF-8">
  5 + <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
  6 + <meta name="viewport" content="width=device-width, initial-scale=1.0">
  7 + <title>填写资料</title>
  8 + <link rel="stylesheet" href="http://lib.sinaapp.com/js/bootstrap/3.0.0/css/bootstrap.min.css" />
  9 + <link rel="stylesheet" href="css/style.css" />
  10 + <style>
  11 + body{ background-color: #fff }
  12 + </style>
  13 + <!--[if IE]>
  14 + <script src="http://libs.baidu.com/html5shiv/3.7/html5shiv.min.js"></script>
  15 + <![endif]-->
  16 + <script src="http://libs.baidu.com/jquery/1.11.1/jquery.min.js"></script>
  17 + <script src="http://lib.sinaapp.com/js/bootstrap/3.0.0/js/bootstrap.min.js"></script>
  18 + <script src="js/data.js"></script>
  19 + <script src="js/require.min.js"></script>
  20 +
  21 +</head>
  22 +<body>
  23 + <div class="container column" >
  24 + <div class="col-md-8">
  25 + <div class="header">
  26 + <div class="row">
  27 + <div class="col-xs-3"><img src="" width="140px" id="model_pic"/></div>
  28 + <div class="col-xs-9"><p><span id="model"></span>问题反馈</p></div>
  29 + <div class="col-xs-9"><p>请填写以下信息反馈问题,我们会在24小时内响应。或直接拨打售后电话您也可以根据问题的现象参照EA1000常见问题,自行排查问题。</p></div>
  30 + </div>
  31 + </div>
  32 + <div class="content">
  33 + <form class="form-inline" id="list">
  34 + <div class="form-group col-md-6">
  35 + <label ><span class="red">*</span>校区名称:</label>
  36 + <div class="control-group xq">
  37 + <div class="controls col-md-6" style="padding-left:0;">
  38 + <select id="province" class="form-control">
  39 + <option value="请选择"></option>
  40 + </select>
  41 +
  42 + </div>
  43 + <div class="controls col-md-6" style="padding-right:0;">
  44 + <select id="city" class="form-control">
  45 + <option value="请选择">请选择</option>
  46 + </select>
  47 + </div>
  48 + </div>
  49 +
  50 + </div>
  51 + <div class="form-group col-md-6">
  52 + <label for="name"><span class="red">*</span>联系人:</label>
  53 + <input type="text" class="form-control" id="name" placeholder="">
  54 + </div>
  55 + <div class="form-group col-md-6">
  56 + <label for="tel"><span class="red">*</span>联系电话:</label>
  57 + <input type="text" class="form-control" id="tel" placeholder="">
  58 + </div>
  59 + <div class="form-group col-md-6">
  60 + <label for="question"><span class="red">*</span>问题现象:</label>
  61 + <div class="controls col-md-12" style="padding:0;">
  62 + <select id="question" class="form-control">
  63 + <option value="请选择" id="question1">请选择</option>
  64 + </select>
  65 + </div>
  66 + </div>
  67 + <div class="form-group col-md-6">
  68 + <label for="version"><span class="red">*</span>购买时间:</label>
  69 + <input type="text" class="form-control" id="time" placeholder="">
  70 + </div>
  71 + <div class="form-group col-md-6">
  72 + <label for="num"><span class="red">*</span>异常数量:</label>
  73 + <input type="text" class="form-control" id="num" placeholder="">
  74 + </div>
  75 + <div class="form-group col-md-12">
  76 + <label for="dec"><span class="red">*</span>详细描述:</label>
  77 + <textarea class="form-control" rows="5" id="dec"></textarea>
  78 + </div>
  79 + <div class="form-group col-md-12">
  80 + <label for="pic">问题图片:</label>
  81 + <input type="file" class="form-control" id="pic" placeholder="">
  82 + </div>
  83 +
  84 +
  85 + </form>
  86 + <input type="button" value="提交" class="btn btn-primary btn-lg" style="margin:0 auto;display:block;margin-top:5%;" onclick="submit();"/>
  87 + </div>
  88 + </div>
  89 + <div class="col-md-4" style="border-left:1px solid #ccc;height:740px;padding:30px 20px;overflow-y:auto;">
  90 + <div class="rightBox">
  91 +
  92 + </div>
  93 + </div>
  94 + </div>
  95 +
  96 + <script type="text/javascript" id="main">
  97 +
  98 +</script>
  99 + <script>
  100 + var picBase;
  101 + var url="http://120.78.57.84:8888/SunvoteEducation";
  102 + var type=parseInt(getQueryString("type"));
  103 + var model=getQueryString("model");
  104 + var product_type="";
  105 + // 根据自己情况配置loader config
  106 + requirejs({
  107 + paths: {
  108 + "city.select": "js/jquery.city.select.min"
  109 + }
  110 + });
  111 + // 使用jQuery City Select插件方式
  112 + require(['city.select'], function ($) {
  113 + $(function () {
  114 +
  115 + $('#province, #city').citylist({
  116 + data : data,
  117 + id : 'id',
  118 + children: 'cities',
  119 + name : 'name',
  120 + metaTag : 'name'
  121 + });
  122 +
  123 + $('#all').citylist({
  124 + data : data,
  125 + id : 'id',
  126 + children: 'cities',
  127 + name : 'name',
  128 + metaTag : 'name'
  129 + });
  130 +
  131 + $('#pre-province, #pre-city').citylist({
  132 + data : data,
  133 + id : 'id',
  134 + children: 'cities',
  135 + name : 'name',
  136 + metaTag : 'name',
  137 + selected: [14, 1401]
  138 + });
  139 +
  140 + $('#pre-all').citylist({
  141 + data : data,
  142 + id : 'id',
  143 + children: 'cities',
  144 + name : 'name',
  145 + metaTag : 'name',
  146 + idVal : true,
  147 + selected: 1401
  148 + });
  149 +
  150 + $("#model").html("配件");
  151 + switch(model){
  152 + case "sma":$("#model_pic").attr("src","images/EA1000_line.jpg");break;
  153 + case "big":$("#model_pic").attr("src","images/EA4200W_line.jpg");break;
  154 + case "bag":$("#model_pic").attr("src","images/bag.png");break;
  155 + default:break;
  156 + }
  157 +
  158 + $.ajax({
  159 + type:'get',
  160 + dataType: "json",
  161 + url:url+"/api/problem?type="+type,
  162 + async:false,
  163 + success:function(data){
  164 + //console.log(data.data[0].REMARK);
  165 + $.each(data.data,function(i,n){
  166 +
  167 + $("#question").append('<option value="'+n.REMARK+'">'+n.REMARK+'</option>');
  168 + })
  169 +
  170 + }
  171 + });
  172 +
  173 +
  174 + });
  175 + });
  176 + $("#pic").change(function(){
  177 + var file = this.files[0];
  178 + var reader = new FileReader();
  179 + reader.readAsDataURL(file);
  180 + reader.onload=function(e){
  181 + picBase=this.result;
  182 + //console.log(picBase);
  183 + }
  184 +
  185 + })
  186 +
  187 + function getQueryString(name) {
  188 + var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");
  189 + var r = window.location.search.substr(1).match(reg);
  190 + if (r != null) return unescape(r[2]); return null;
  191 + }
  192 +
  193 + function submit(){
  194 + if($("#name").val()==''){
  195 + alert("请填写联系人姓名");
  196 + return;
  197 + }else if($("#tel").val()==''){
  198 + alert("请填写联系电话");
  199 + return;
  200 + }else if($("#sn").val()==''){
  201 + alert("请填写产品序列号");
  202 + return;
  203 + }else if($("#question").val()=='请选择'){
  204 + alert("请选择问题现象");
  205 + return;
  206 + }else if($("#system").val()=='请选择'){
  207 + alert("请选择操作系统");
  208 + return;
  209 + }else if($("#softname").val()=='请选择'){
  210 + alert("请选择软件名称");
  211 + return;
  212 + }else if($("#num").val()==''){
  213 + alert("请填写异常数量");
  214 + return;
  215 + }else if($("#dec").val()==''){
  216 + alert("请详细描述问题现象");
  217 + return;
  218 + }
  219 +
  220 +
  221 + switch(type){
  222 + case 1:product_type="基站";break;
  223 + case 2:product_type="答题器";break;
  224 + case 3:product_type="配件";break;
  225 + default:product_type="其他";break;
  226 + }
  227 +
  228 + var data={
  229 + SCHOOL_ADDRESS1:$("#province").val(),
  230 + SCHOOL_ADDRESS2:$("#city").val(),
  231 + CONTACT_PHONE:$("#name").val(),
  232 + PHONE_CONTACT:$("#tel").val(),
  233 + //PRODUCT_SEQ:$("#sn").val(),
  234 + QUESTION_NAME:$("#question").val(),
  235 + //OS:$("#system").val(),
  236 + //SOFTWARE_VERSION:$("#version").val(),
  237 + //SOFTWARE_NAME:$("#softname").val(),
  238 + EXCEPTION_NUM:$("num").val(),
  239 + DESCRIPTION:$("#dec").val(),
  240 + TIME_PURCHASE:$("#time").val(),
  241 + PROBLEM_PATH:picBase,
  242 + PRODUCT_TYPE:product_type,
  243 + PRODUCT_MODEL:model,
  244 + CUSTOMER_CODE:"2396"
  245 + };
  246 + $.ajax({
  247 + type:'post',
  248 + dataType: "json",
  249 + url:url+"/api/feedback/add",
  250 + data:data,
  251 + success:function(data){
  252 + alert("提交成功!");
  253 + }
  254 + })
  255 + }
  256 +
  257 +
  258 +
  259 +</script>
  260 +
  261 +</body>
  262 +</html>
0 263 \ No newline at end of file
... ...
WebRoot/afterService/parts_info.html 0 → 100644
  1 +<!DOCTYPE html>
  2 +<html lang="zh">
  3 +<head>
  4 + <meta charset="UTF-8">
  5 + <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
  6 + <meta name="viewport" content="width=device-width, initial-scale=1.0">
  7 + <title>填写资料</title>
  8 + <link rel="stylesheet" href="http://lib.sinaapp.com/js/bootstrap/3.0.0/css/bootstrap.min.css" />
  9 + <link rel="stylesheet" href="css/style.css" />
  10 + <style>
  11 + body{ background-color: #fff }
  12 + </style>
  13 + <!--[if IE]>
  14 + <script src="http://libs.baidu.com/html5shiv/3.7/html5shiv.min.js"></script>
  15 + <![endif]-->
  16 + <script src="http://libs.baidu.com/jquery/1.11.1/jquery.min.js"></script>
  17 + <script src="http://lib.sinaapp.com/js/bootstrap/3.0.0/js/bootstrap.min.js"></script>
  18 + <script src="js/data.js"></script>
  19 + <script src="js/require.min.js"></script>
  20 +
  21 +</head>
  22 +<body>
  23 + <div class="container column" >
  24 + <div class="col-md-8">
  25 + <div class="header">
  26 + <div class="row">
  27 + <div class="col-xs-3"><img src="" width="140px" id="model_pic"/></div>
  28 + <div class="col-xs-9"><p><span id="model">EA1000</span>问题反馈</p></div>
  29 + <div class="col-xs-9"><p>请填写以下信息反馈问题,我们会在24小时内响应。或直接拨打售后电话您也可以根据问题的现象参照EA1000常见问题,自行排查问题。</p></div>
  30 + </div>
  31 + </div>
  32 + <div class="content">
  33 + <form class="form-inline" id="list">
  34 + <div class="form-group col-md-6">
  35 + <label ><span class="red">*</span>校区名称:</label>
  36 + <div class="control-group xq">
  37 + <div class="controls col-md-6" style="padding-left:0;">
  38 + <select id="province" class="form-control">
  39 + <option value="请选择"></option>
  40 + </select>
  41 +
  42 + </div>
  43 + <div class="controls col-md-6" style="padding-right:0;">
  44 + <select id="city" class="form-control">
  45 + <option value="请选择">请选择</option>
  46 + </select>
  47 + </div>
  48 + </div>
  49 +
  50 + </div>
  51 + <div class="form-group col-md-6">
  52 + <label for="name"><span class="red">*</span>联系人:</label>
  53 + <input type="text" class="form-control" id="name" placeholder="">
  54 + </div>
  55 + <div class="form-group col-md-6">
  56 + <label for="tel"><span class="red">*</span>联系电话:</label>
  57 + <input type="text" class="form-control" id="tel" placeholder="">
  58 + </div>
  59 + <div class="form-group col-md-6">
  60 + <label for="question"><span class="red">*</span>问题现象:</label>
  61 + <div class="controls col-md-12" style="padding:0;">
  62 + <select id="question" class="form-control">
  63 + <option value="请选择" id="question1">请选择</option>
  64 + </select>
  65 + </div>
  66 + </div>
  67 + <div class="form-group col-md-6">
  68 + <label for="version"><span class="red">*</span>电池品牌:</label>
  69 + <input type="text" class="form-control" id="brand" placeholder="">
  70 + </div>
  71 + <div class="form-group col-md-6">
  72 + <label for="version"><span class="red">*</span>购买时间:</label>
  73 + <input type="text" class="form-control" id="time" placeholder="">
  74 + </div>
  75 + <div class="form-group col-md-6">
  76 + <label for="num"><span class="red">*</span>异常数量:</label>
  77 + <input type="text" class="form-control" id="num" placeholder="">
  78 + </div>
  79 + <div class="form-group col-md-12">
  80 + <label for="dec"><span class="red">*</span>详细描述:</label>
  81 + <textarea class="form-control" rows="5" id="dec"></textarea>
  82 + </div>
  83 + <div class="form-group col-md-12">
  84 + <label for="pic">问题图片:</label>
  85 + <input type="file" class="form-control" id="pic" placeholder="">
  86 + </div>
  87 +
  88 +
  89 + </form>
  90 + <input type="button" value="提交" class="btn btn-primary btn-lg" style="margin:0 auto;display:block;margin-top:5%;" onclick="submit();"/>
  91 + </div>
  92 + </div>
  93 + <div class="col-md-4" style="border-left:1px solid #ccc;height:740px;padding:30px 20px;overflow-y:auto;">
  94 + <div class="rightBox">
  95 +
  96 + </div>
  97 + </div>
  98 + </div>
  99 +
  100 + <script type="text/javascript" id="main">
  101 +
  102 +</script>
  103 + <script>
  104 + var picBase;
  105 + var url="http://120.78.57.84:8888/SunvoteEducation";
  106 + var type=parseInt(getQueryString("type"));
  107 + var model=getQueryString("model");
  108 + var product_type="";
  109 + // 根据自己情况配置loader config
  110 + requirejs({
  111 + paths: {
  112 + "city.select": "js/jquery.city.select.min"
  113 + }
  114 + });
  115 + // 使用jQuery City Select插件方式
  116 + require(['city.select'], function ($) {
  117 + $(function () {
  118 +
  119 + $('#province, #city').citylist({
  120 + data : data,
  121 + id : 'id',
  122 + children: 'cities',
  123 + name : 'name',
  124 + metaTag : 'name'
  125 + });
  126 +
  127 + $('#all').citylist({
  128 + data : data,
  129 + id : 'id',
  130 + children: 'cities',
  131 + name : 'name',
  132 + metaTag : 'name'
  133 + });
  134 +
  135 + $('#pre-province, #pre-city').citylist({
  136 + data : data,
  137 + id : 'id',
  138 + children: 'cities',
  139 + name : 'name',
  140 + metaTag : 'name',
  141 + selected: [14, 1401]
  142 + });
  143 +
  144 + $('#pre-all').citylist({
  145 + data : data,
  146 + id : 'id',
  147 + children: 'cities',
  148 + name : 'name',
  149 + metaTag : 'name',
  150 + idVal : true,
  151 + selected: 1401
  152 + });
  153 +
  154 + $("#model").html("纽扣电池");
  155 + switch(model){
  156 + case "btr":$("#model_pic").attr("src","images/battery.jpg");break;
  157 + default:break;
  158 + }
  159 +
  160 + $.ajax({
  161 + type:'get',
  162 + dataType: "json",
  163 + url:url+"/api/problem?type="+type,
  164 + async:false,
  165 + success:function(data){
  166 + //console.log(data.data[0].REMARK);
  167 + $.each(data.data,function(i,n){
  168 + $("#question").append('<option value="'+n.REMARK+'">'+n.REMARK+'</option>');
  169 + })
  170 +
  171 + }
  172 + });
  173 +
  174 +
  175 + });
  176 + });
  177 + $("#pic").change(function(){
  178 + var file = this.files[0];
  179 + var reader = new FileReader();
  180 + reader.readAsDataURL(file);
  181 + reader.onload=function(e){
  182 + picBase=this.result;
  183 + //console.log(picBase);
  184 + }
  185 +
  186 + })
  187 +
  188 + function getQueryString(name) {
  189 + var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");
  190 + var r = window.location.search.substr(1).match(reg);
  191 + if (r != null) return unescape(r[2]); return null;
  192 + }
  193 +
  194 + function submit(){
  195 + if($("#name").val()==''){
  196 + alert("请填写联系人姓名");
  197 + return;
  198 + }else if($("#tel").val()==''){
  199 + alert("请填写联系电话");
  200 + return;
  201 + }else if($("#sn").val()==''){
  202 + alert("请填写产品序列号");
  203 + return;
  204 + }else if($("#question").val()=='请选择'){
  205 + alert("请选择问题现象");
  206 + return;
  207 + }else if($("#system").val()=='请选择'){
  208 + alert("请选择操作系统");
  209 + return;
  210 + }else if($("#softname").val()=='请选择'){
  211 + alert("请选择软件名称");
  212 + return;
  213 + }else if($("#num").val()==''){
  214 + alert("请填写异常数量");
  215 + return;
  216 + }else if($("#dec").val()==''){
  217 + alert("请详细描述问题现象");
  218 + return;
  219 + }
  220 +
  221 +
  222 + switch(type){
  223 + case 1:product_type="基站";break;
  224 + case 2:product_type="答题器";break;
  225 + case 3:product_type="配件";break;
  226 + default:product_type="其他";break;
  227 + }
  228 +
  229 + var data={
  230 + SCHOOL_ADDRESS1:$("#province").val(),
  231 + SCHOOL_ADDRESS2:$("#city").val(),
  232 + CONTACT_PHONE:$("#name").val(),
  233 + PHONE_CONTACT:$("#tel").val(),
  234 + //PRODUCT_SEQ:$("#sn").val(),
  235 + QUESTION_NAME:$("#question").val(),
  236 + //OS:$("#system").val(),
  237 + //SOFTWARE_VERSION:$("#version").val(),
  238 + //SOFTWARE_NAME:$("#softname").val(),
  239 + EXCEPTION_NUM:$("num").val(),
  240 + DESCRIPTION:$("#dec").val(),
  241 + TIME_PURCHASE:$("#time").val(),
  242 + BATTERY_BRAND:$("#brand").val(),
  243 + PROBLEM_PATH:picBase,
  244 + PRODUCT_TYPE:product_type,
  245 + PRODUCT_MODEL:model,
  246 + CUSTOMER_CODE:"2396"
  247 + };
  248 + $.ajax({
  249 + type:'post',
  250 + dataType: "json",
  251 + url:url+"/api/feedback/add",
  252 + data:data,
  253 + success:function(data){
  254 + alert("提交成功!");
  255 + }
  256 + })
  257 + }
  258 +
  259 +
  260 +
  261 +</script>
  262 +
  263 +</body>
  264 +</html>
0 265 \ No newline at end of file
... ...
resources/dbconfig.properties
1 1 #数据源 1
2   -url:jdbc:mysql://127.0.0.1:3306/education?autoReconnect=true&useUnicode=true&characterEncoding=utf8&characterSetResults=utf8
  2 +url:jdbc:mysql://120.78.57.84:3306/education?autoReconnect=true&useUnicode=true&characterEncoding=utf8&characterSetResults=utf8
3 3 driverClassName:com.mysql.jdbc.Driver
4 4 username:root
5 5 #password:elvis
... ...
resources/mybatis1/feedback/FeedbackMapper.xml 0 → 100644
  1 +<?xml version="1.0" encoding="UTF-8"?>
  2 +<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
  3 +<mapper namespace="FeedbackMapper">
  4 +
  5 + <!--表名 -->
  6 + <sql id="tableName">
  7 + FB_FEEDBACK
  8 + </sql>
  9 +
  10 + <!-- 字段 -->
  11 + <sql id="Field">
  12 + SCHOOL_ADDRESS1,
  13 + SCHOOL_ADDRESS2,
  14 + CONTACT_PHONE,
  15 + PHONE_CONTACT,
  16 + PRODUCT_SEQ,
  17 + QUESTION_NAME,
  18 + OS,
  19 + SOFTWARE_VERSION,
  20 + SOFTWARE_NAME,
  21 + EXCEPTION_NUM,
  22 + DESCRIPTION,
  23 + PROBLEM_PATH,
  24 + CUSTOMER_CODE,
  25 + PERSON_LIABLE,
  26 + CREATE_DATE,
  27 + PROCESSING_DATE,
  28 + PRODUCT_TYPE,
  29 + PRODUCT_MODEL,
  30 + TIME_PURCHASE,
  31 + BATTERY_BRAND,
  32 + BASE_STATION,
  33 + ID
  34 + </sql>
  35 +
  36 + <!-- 字段值 -->
  37 + <sql id="FieldValue">
  38 + #{SCHOOL_ADDRESS1},
  39 + #{SCHOOL_ADDRESS2},
  40 + #{CONTACT_PHONE},
  41 + #{PHONE_CONTACT},
  42 + #{PRODUCT_SEQ},
  43 + #{QUESTION_NAME},
  44 + #{OS},
  45 + #{SOFTWARE_VERSION},
  46 + #{SOFTWARE_NAME},
  47 + #{EXCEPTION_NUM},
  48 + #{DESCRIPTION},
  49 + #{PROBLEM_PATH},
  50 + #{CUSTOMER_CODE},
  51 + #{PERSON_LIABLE},
  52 + #{CREATE_DATE},
  53 + #{PROCESSING_DATE},
  54 + #{PRODUCT_TYPE},
  55 + #{PRODUCT_MODEL},
  56 + #{TIME_PURCHASE},
  57 + #{BATTERY_BRAND},
  58 + #{BASE_STATION},
  59 + #{ID}
  60 + </sql>
  61 +
  62 + <!-- 新增-->
  63 + <insert id="save" parameterType="pd">
  64 + insert into
  65 + <include refid="tableName"></include>
  66 + (
  67 + SCHOOL_ADDRESS1,
  68 + SCHOOL_ADDRESS2,
  69 + CONTACT_PHONE,
  70 + PHONE_CONTACT,
  71 + PRODUCT_SEQ,
  72 + QUESTION_NAME,
  73 + OS,
  74 + SOFTWARE_VERSION,
  75 + SOFTWARE_NAME,
  76 + EXCEPTION_NUM,
  77 + DESCRIPTION,
  78 + PROBLEM_PATH,
  79 + CUSTOMER_CODE,
  80 + PERSON_LIABLE,
  81 + CREATE_DATE,
  82 + PROCESSING_DATE,
  83 + PRODUCT_TYPE,
  84 + TIME_PURCHASE,
  85 + BATTERY_BRAND,
  86 + BASE_STATION,
  87 + PRODUCT_MODEL
  88 + ) values (
  89 + #{SCHOOL_ADDRESS1},
  90 + #{SCHOOL_ADDRESS2},
  91 + #{CONTACT_PHONE},
  92 + #{PHONE_CONTACT},
  93 + #{PRODUCT_SEQ},
  94 + #{QUESTION_NAME},
  95 + #{OS},
  96 + #{SOFTWARE_VERSION},
  97 + #{SOFTWARE_NAME},
  98 + #{EXCEPTION_NUM},
  99 + #{DESCRIPTION},
  100 + #{PROBLEM_PATH},
  101 + #{CUSTOMER_CODE},
  102 + #{PERSON_LIABLE},
  103 + #{CREATE_DATE},
  104 + #{PROCESSING_DATE},
  105 + #{PRODUCT_TYPE},
  106 + #{TIME_PURCHASE},
  107 + #{BATTERY_BRAND},
  108 + #{BASE_STATION},
  109 + #{PRODUCT_MODEL}
  110 + )
  111 + </insert>
  112 +
  113 + <!-- 删除-->
  114 + <delete id="delete" parameterType="pd">
  115 + delete from
  116 + <include refid="tableName"></include>
  117 + where
  118 + ID = #{ID}
  119 + </delete>
  120 +
  121 + <!-- 修改 -->
  122 + <update id="edit" parameterType="pd">
  123 + update
  124 + <include refid="tableName"></include>
  125 + set
  126 + SCHOOL_ADDRESS1 = #{SCHOOL_ADDRESS1},
  127 + SCHOOL_ADDRESS2 = #{SCHOOL_ADDRESS2},
  128 + CONTACT_PHONE = #{CONTACT_PHONE},
  129 + PHONE_CONTACT = #{PHONE_CONTACT},
  130 + PRODUCT_SEQ = #{PRODUCT_SEQ},
  131 + QUESTION_NAME = #{QUESTION_NAME},
  132 + OS = #{OS},
  133 + SOFTWARE_VERSION = #{SOFTWARE_VERSION},
  134 + SOFTWARE_NAME = #{SOFTWARE_NAME},
  135 + EXCEPTION_NUM = #{EXCEPTION_NUM},
  136 + DESCRIPTION = #{DESCRIPTION},
  137 + PROBLEM_PATH = #{PROBLEM_PATH},
  138 + CUSTOMER_CODE = #{CUSTOMER_CODE},
  139 + PERSON_LIABLE = #{PERSON_LIABLE},
  140 + CREATE_DATE = #{CREATE_DATE},
  141 + PROCESSING_DATE = #{PROCESSING_DATE},
  142 + PRODUCT_TYPE = #{PRODUCT_TYPE},
  143 + PRODUCT_MODEL = #{PRODUCT_MODEL},
  144 + TIME_PURCHASE = #{TIME_PURCHASE},
  145 + BATTERY_BRAND = #{BATTERY_BRAND},
  146 + BASE_STATION = #{BASE_STATION},
  147 + ID = #{ID}
  148 + where
  149 + ID = #{ID}
  150 + </update>
  151 +
  152 + <!-- 通过ID获取数据 -->
  153 + <select id="findById" parameterType="pd" resultType="pd">
  154 + select
  155 + <include refid="Field"></include>
  156 + from
  157 + <include refid="tableName"></include>
  158 + where
  159 + ID = #{ID}
  160 + </select>
  161 +
  162 + <!-- 列表 -->
  163 + <select id="datalistPage" parameterType="page" resultType="pd">
  164 + select
  165 + <include refid="Field"></include>
  166 + from
  167 + <include refid="tableName"></include>
  168 + where 1=1
  169 + <if test="pd.keywords!= null and pd.keywords != ''"><!-- 关键词检索 -->
  170 + and
  171 + (
  172 + <!-- 根据需求自己加检索条件
  173 + 字段1 LIKE CONCAT(CONCAT('%', #{pd.keywords}),'%')
  174 + or
  175 + 字段2 LIKE CONCAT(CONCAT('%', #{pd.keywords}),'%')
  176 + -->
  177 + )
  178 + </if>
  179 + </select>
  180 +
  181 + <!-- 列表(全部) -->
  182 + <select id="listAll" parameterType="pd" resultType="pd">
  183 + select
  184 + <include refid="Field"></include>
  185 + from
  186 + <include refid="tableName"></include>
  187 + </select>
  188 +
  189 + <!-- 批量删除 -->
  190 + <delete id="deleteAll" parameterType="String">
  191 + delete from
  192 + <include refid="tableName"></include>
  193 + where
  194 + ID in
  195 + <foreach item="item" index="index" collection="array" open="(" separator="," close=")">
  196 + #{item}
  197 + </foreach>
  198 + </delete>
  199 +
  200 + <!-- fh313596790qq(青苔) -->
  201 +</mapper>
0 202 \ No newline at end of file
... ...
resources/mybatis1/feedback/ProblemPhenomenonMapper.xml 0 → 100644
  1 +<?xml version="1.0" encoding="UTF-8"?>
  2 +<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
  3 +<mapper namespace="ProblemPhenomenonMapper">
  4 +
  5 + <!--表名 -->
  6 + <sql id="tableName">
  7 + FB_PROBLEMPHENOMENON
  8 + </sql>
  9 +
  10 + <!-- 字段 -->
  11 + <sql id="Field">
  12 + DESC1,
  13 + REMARK,
  14 + TYPE,
  15 + ID
  16 + </sql>
  17 +
  18 + <!-- 字段值 -->
  19 + <sql id="FieldValue">
  20 + #{DESC1},
  21 + #{REMARK},
  22 + #{TYPE},
  23 + #{ID}
  24 + </sql>
  25 +
  26 + <!-- 新增-->
  27 + <insert id="save" parameterType="pd">
  28 + insert into
  29 + <include refid="tableName"></include>
  30 + (
  31 + DESC1,
  32 + TYPE,
  33 + REMARK
  34 + ) values (
  35 + #{DESC1},
  36 + #{TYPE},
  37 + #{REMARK}
  38 + )
  39 + </insert>
  40 +
  41 + <!-- 删除-->
  42 + <delete id="delete" parameterType="pd">
  43 + delete from
  44 + <include refid="tableName"></include>
  45 + where
  46 + ID = #{ID}
  47 + </delete>
  48 +
  49 + <!-- 修改 -->
  50 + <update id="edit" parameterType="pd">
  51 + update
  52 + <include refid="tableName"></include>
  53 + set
  54 + DESC1 = #{DESC1},
  55 + REMARK = #{REMARK},
  56 + TYPE = #{TYPE},
  57 + ID = #{ID}
  58 + where
  59 + ID = #{ID}
  60 + </update>
  61 +
  62 + <!-- 通过ID获取数据 -->
  63 + <select id="findById" parameterType="pd" resultType="pd">
  64 + select
  65 + <include refid="Field"></include>
  66 + from
  67 + <include refid="tableName"></include>
  68 + where
  69 + ID = #{ID}
  70 + </select>
  71 +
  72 + <!-- 列表 -->
  73 + <select id="datalistPage" parameterType="page" resultType="pd">
  74 + select
  75 + <include refid="Field"></include>
  76 + from
  77 + <include refid="tableName"></include>
  78 + where 1=1
  79 + <if test="pd.keywords!= null and pd.keywords != ''"><!-- 关键词检索 -->
  80 + and
  81 + (
  82 + <!-- 根据需求自己加检索条件
  83 + 字段1 LIKE CONCAT(CONCAT('%', #{pd.keywords}),'%')
  84 + or
  85 + 字段2 LIKE CONCAT(CONCAT('%', #{pd.keywords}),'%')
  86 + -->
  87 + )
  88 + </if>
  89 + </select>
  90 +
  91 + <!-- 列表(全部) -->
  92 + <select id="listAll" parameterType="pd" resultType="pd">
  93 + select
  94 + <include refid="Field"></include>
  95 + from
  96 + <include refid="tableName"></include>
  97 + </select>
  98 +
  99 + <!-- 列表(全部) -->
  100 + <select id="listAllByType" parameterType="pd" resultType="pd">
  101 + select
  102 + <include refid="Field"></include>
  103 + from
  104 + <include refid="tableName"></include>
  105 + where 1=1
  106 + <if test="TYPE!= null and TYPE != ''"><!-- 关键词检索 -->
  107 + and
  108 + TYPE = #{TYPE}
  109 + </if>
  110 + </select>
  111 +
  112 + <!-- 批量删除 -->
  113 + <delete id="deleteAll" parameterType="String">
  114 + delete from
  115 + <include refid="tableName"></include>
  116 + where
  117 + ID in
  118 + <foreach item="item" index="index" collection="array" open="(" separator="," close=")">
  119 + #{item}
  120 + </foreach>
  121 + </delete>
  122 +
  123 + <!-- fh313596790qq(青苔) -->
  124 +</mapper>
0 125 \ No newline at end of file
... ...
resources/spring/ApplicationContext-shiro.xml
... ... @@ -42,6 +42,7 @@
42 42 /login_login = anon
43 43 /app**/** = anon
44 44 /api/** = anon
  45 + /afterService/** = anon
45 46 /weixin/** = anon
46 47 /** = authc
47 48 </value>
... ...
src/com/fh/controller/api/ApiServer.java
1 1 package com.fh.controller.api;
2 2  
3 3 import java.io.File;
  4 +import java.io.FileOutputStream;
  5 +import java.io.OutputStream;
4 6 import java.util.Date;
5 7 import java.util.List;
6 8  
... ... @@ -12,8 +14,11 @@ import org.springframework.web.bind.annotation.RequestMapping;
12 14 import org.springframework.web.bind.annotation.ResponseBody;
13 15 import org.springframework.web.multipart.MultipartFile;
14 16  
  17 +import Decoder.BASE64Decoder;
  18 +
15 19 import com.fh.controller.base.BaseController;
16 20 import com.fh.service.feedback.feedback.FeedbackManager;
  21 +import com.fh.service.feedback.problemphenomenon.ProblemPhenomenonManager;
17 22 import com.fh.service.sunvote.basestation.BasestationManager;
18 23 import com.fh.service.sunvote.keypad.KeypadManager;
19 24 import com.fh.service.sunvote.school.SchoolManager;
... ... @@ -36,6 +41,9 @@ public class ApiServer extends BaseController {
36 41 @Resource(name = "feedbackService")
37 42 private FeedbackManager feedbackService;
38 43  
  44 + @Resource(name = "problemphenomenonService")
  45 + private ProblemPhenomenonManager problemphenomenonService;
  46 +
39 47 @RequestMapping(value = "/school", produces = "application/json;charset=UTF-8")
40 48 @ResponseBody
41 49 public Object schoolDefault() throws Exception {
... ... @@ -262,6 +270,11 @@ public class ApiServer extends BaseController {
262 270 ResponseGson<PageData> res = new ResponseGson();
263 271 String path = request.getSession().getServletContext()
264 272 .getRealPath("/images");
  273 + File pathFile = new File(path);
  274 + if(!pathFile.exists()){
  275 + pathFile.mkdirs();
  276 + }
  277 + logger.info(path);
265 278 if (file != null) {
266 279 String fileName = file.getOriginalFilename();
267 280 File dir = new File(path, Tools.date2Str(new Date()) + fileName);
... ... @@ -269,12 +282,32 @@ public class ApiServer extends BaseController {
269 282 dir.mkdirs();
270 283 }
271 284 file.transferTo(dir);
272   -
  285 +
273 286 pd.put("PROBLEM_PATH", dir.getAbsolutePath());
  287 + logger.info(dir.getAbsolutePath());
  288 + } else {
  289 + if (pd.get("PROBLEM_PATH") != null) {
  290 + String imgStr = pd.getString("PROBLEM_PATH");
  291 + String[] content = imgStr.split(";base64,");
  292 + if (content.length >= 2) {
  293 + String fileType = ".file";
  294 + if (content[0].contains("image")) {
  295 + fileType = content[0].substring(11,content[0].length());
  296 + }
  297 + File dir = new File(path + File.separator + "fb_"
  298 + + System.currentTimeMillis() + "." + fileType);
  299 + if (!dir.exists()) {
  300 + dir.createNewFile();
  301 + }
  302 + generateImage(content[1], dir.getAbsolutePath());
  303 + pd.put("PROBLEM_PATH", dir.getAbsolutePath());
  304 + }
  305 + }
274 306 }
275 307 String id = pd.getString("ID");
276 308 if (id != null && !"".equals(id)) {
277 309 try {
  310 + logger.info(pd);
278 311 feedbackService.edit(pd);
279 312 } catch (Exception ex) {
280 313 res.setDataError();
... ... @@ -289,4 +322,41 @@ public class ApiServer extends BaseController {
289 322 }
290 323 return res.toJson();
291 324 }
  325 +
  326 + @RequestMapping(value = "/problem", produces = "application/json;charset=UTF-8")
  327 + @ResponseBody
  328 + public Object problem() throws Exception {
  329 + PageData pd = getPageData();
  330 + List<PageData> ret = null;
  331 + if (pd.get("TYPE") != null && !"".equals(pd.get("TYPE"))) {
  332 + ret = problemphenomenonService.listAllByType(pd);
  333 + } else {
  334 + ret = problemphenomenonService.listAll(pd);
  335 + }
  336 + ResponseGson<List<PageData>> res = new ResponseGson();
  337 + res.setData(ret);
  338 + return res.toJson();
  339 + }
  340 +
  341 + public static boolean generateImage(String imgStr, String path) {
  342 + if (imgStr == null)
  343 + return false;
  344 + BASE64Decoder decoder = new BASE64Decoder();
  345 + try {
  346 + byte[] b = decoder.decodeBuffer(imgStr);
  347 + // 处理数据
  348 + for (int i = 0; i < b.length; ++i) {
  349 + if (b[i] < 0) {
  350 + b[i] += 256;
  351 + }
  352 + }
  353 + OutputStream out = new FileOutputStream(path);
  354 + out.write(b);
  355 + out.flush();
  356 + out.close();
  357 + return true;
  358 + } catch (Exception e) {
  359 + return false;
  360 + }
  361 + }
292 362 }
... ...
src/com/fh/controller/feedback/feedback/FeedbackController.java 0 → 100644
  1 +package com.fh.controller.feedback.feedback;
  2 +
  3 +import java.io.PrintWriter;
  4 +import java.text.DateFormat;
  5 +import java.text.SimpleDateFormat;
  6 +import java.util.ArrayList;
  7 +import java.util.Date;
  8 +import java.util.HashMap;
  9 +import java.util.List;
  10 +import java.util.Map;
  11 +
  12 +import javax.annotation.Resource;
  13 +
  14 +import org.springframework.beans.propertyeditors.CustomDateEditor;
  15 +import org.springframework.stereotype.Controller;
  16 +import org.springframework.web.bind.WebDataBinder;
  17 +import org.springframework.web.bind.annotation.InitBinder;
  18 +import org.springframework.web.bind.annotation.RequestMapping;
  19 +import org.springframework.web.bind.annotation.ResponseBody;
  20 +import org.springframework.web.servlet.ModelAndView;
  21 +
  22 +import com.fh.controller.base.BaseController;
  23 +import com.fh.entity.Page;
  24 +import com.fh.util.AppUtil;
  25 +import com.fh.util.ObjectExcelView;
  26 +import com.fh.util.PageData;
  27 +import com.fh.util.Jurisdiction;
  28 +import com.fh.util.Tools;
  29 +import com.fh.service.feedback.feedback.FeedbackManager;
  30 +import com.fh.service.system.fhlog.FHlogManager;
  31 +
  32 +/**
  33 + * 说明:用户反馈模块
  34 + * 创建人:Elvis
  35 + * 创建时间:2018-05-03
  36 + */
  37 +@Controller
  38 +@RequestMapping(value="/feedback")
  39 +public class FeedbackController extends BaseController {
  40 +
  41 + String menuUrl = "feedback/list.do"; //菜单地址(权限用)
  42 + @Resource(name="feedbackService")
  43 + private FeedbackManager feedbackService;
  44 +
  45 + @Resource(name="fhlogService")
  46 + private FHlogManager FHLOG;
  47 +
  48 + /**保存
  49 + * @param
  50 + * @throws Exception
  51 + */
  52 + @RequestMapping(value="/save")
  53 + public ModelAndView save() throws Exception{
  54 + logBefore(logger, Jurisdiction.getUsername()+"新增Feedback");
  55 + if(!Jurisdiction.buttonJurisdiction(menuUrl, "add")){return null;} //校验权限
  56 + ModelAndView mv = this.getModelAndView();
  57 + PageData pd = new PageData();
  58 + pd = this.getPageData();
  59 + pd.put("PROCESSING_DATE", Tools.date2Str(new Date()));
  60 + FHLOG.save(getUsername(), "新增Feedback:");
  61 + feedbackService.save(pd);
  62 + mv.addObject("msg","success");
  63 + mv.setViewName("save_result");
  64 + return mv;
  65 + }
  66 +
  67 + /**删除
  68 + * @param out
  69 + * @throws Exception
  70 + */
  71 + @RequestMapping(value="/delete")
  72 + public void delete(PrintWriter out) throws Exception{
  73 + logBefore(logger, Jurisdiction.getUsername()+"删除Feedback");
  74 + if(!Jurisdiction.buttonJurisdiction(menuUrl, "del")){return;} //校验权限
  75 + PageData pd = new PageData();
  76 + pd = this.getPageData();
  77 + feedbackService.delete(pd);
  78 + out.write("success");
  79 + out.close();
  80 + }
  81 +
  82 + /**修改
  83 + * @param
  84 + * @throws Exception
  85 + */
  86 + @RequestMapping(value="/edit")
  87 + public ModelAndView edit() throws Exception{
  88 + logBefore(logger, Jurisdiction.getUsername()+"修改Feedback");
  89 + if(!Jurisdiction.buttonJurisdiction(menuUrl, "edit")){return null;} //校验权限
  90 + ModelAndView mv = this.getModelAndView();
  91 + PageData pd = new PageData();
  92 + pd = this.getPageData();
  93 + pd.put("PROCESSING_DATE", Tools.date2Str(new Date()));
  94 + FHLOG.save(getUsername(), "修改Feedback:" + pd.toString());
  95 + feedbackService.edit(pd);
  96 + mv.addObject("msg","success");
  97 + mv.setViewName("save_result");
  98 + return mv;
  99 + }
  100 +
  101 + /**列表
  102 + * @param page
  103 + * @throws Exception
  104 + */
  105 + @RequestMapping(value="/list")
  106 + public ModelAndView list(Page page) throws Exception{
  107 + logBefore(logger, Jurisdiction.getUsername()+"列表Feedback");
  108 + //if(!Jurisdiction.buttonJurisdiction(menuUrl, "cha")){return null;} //校验权限(无权查看时页面会有提示,如果不注释掉这句代码就无法进入列表页面,所以根据情况是否加入本句代码)
  109 + ModelAndView mv = this.getModelAndView();
  110 + PageData pd = new PageData();
  111 + pd = this.getPageData();
  112 + String keywords = pd.getString("keywords"); //关键词检索条件
  113 + if(null != keywords && !"".equals(keywords)){
  114 + pd.put("keywords", keywords.trim());
  115 + }
  116 + page.setPd(pd);
  117 + List<PageData> varList = feedbackService.list(page); //列出Feedback列表
  118 + mv.setViewName("feedback/feedback/feedback_list");
  119 + mv.addObject("varList", varList);
  120 + mv.addObject("pd", pd);
  121 + mv.addObject("QX",Jurisdiction.getHC()); //按钮权限
  122 + return mv;
  123 + }
  124 +
  125 + /**去新增页面
  126 + * @param
  127 + * @throws Exception
  128 + */
  129 + @RequestMapping(value="/goAdd")
  130 + public ModelAndView goAdd()throws Exception{
  131 + ModelAndView mv = this.getModelAndView();
  132 + PageData pd = new PageData();
  133 + pd = this.getPageData();
  134 + mv.setViewName("feedback/feedback/feedback_edit");
  135 + mv.addObject("msg", "save");
  136 + mv.addObject("pd", pd);
  137 + return mv;
  138 + }
  139 +
  140 + /**去修改页面
  141 + * @param
  142 + * @throws Exception
  143 + */
  144 + @RequestMapping(value="/goEdit")
  145 + public ModelAndView goEdit()throws Exception{
  146 + ModelAndView mv = this.getModelAndView();
  147 + PageData pd = new PageData();
  148 + pd = this.getPageData();
  149 + pd = feedbackService.findById(pd); //根据ID读取
  150 +
  151 + mv.setViewName("feedback/feedback/feedback_edit");
  152 + mv.addObject("msg", "edit");
  153 + mv.addObject("pd", pd);
  154 + return mv;
  155 + }
  156 +
  157 + /**批量删除
  158 + * @param
  159 + * @throws Exception
  160 + */
  161 + @RequestMapping(value="/deleteAll")
  162 + @ResponseBody
  163 + public Object deleteAll() throws Exception{
  164 + logBefore(logger, Jurisdiction.getUsername()+"批量删除Feedback");
  165 + if(!Jurisdiction.buttonJurisdiction(menuUrl, "del")){return null;} //校验权限
  166 + PageData pd = new PageData();
  167 + Map<String,Object> map = new HashMap<String,Object>();
  168 + pd = this.getPageData();
  169 + List<PageData> pdList = new ArrayList<PageData>();
  170 + String DATA_IDS = pd.getString("DATA_IDS");
  171 + if(null != DATA_IDS && !"".equals(DATA_IDS)){
  172 + String ArrayDATA_IDS[] = DATA_IDS.split(",");
  173 + feedbackService.deleteAll(ArrayDATA_IDS);
  174 + pd.put("msg", "ok");
  175 + }else{
  176 + pd.put("msg", "no");
  177 + }
  178 + pdList.add(pd);
  179 + map.put("list", pdList);
  180 + return AppUtil.returnObject(pd, map);
  181 + }
  182 +
  183 + /**导出到excel
  184 + * @param
  185 + * @throws Exception
  186 + */
  187 + @RequestMapping(value="/excel")
  188 + public ModelAndView exportExcel() throws Exception{
  189 + logBefore(logger, Jurisdiction.getUsername()+"导出Feedback到excel");
  190 + if(!Jurisdiction.buttonJurisdiction(menuUrl, "cha")){return null;}
  191 + ModelAndView mv = new ModelAndView();
  192 + PageData pd = new PageData();
  193 + pd = this.getPageData();
  194 + Map<String,Object> dataMap = new HashMap<String,Object>();
  195 + List<String> titles = new ArrayList<String>();
  196 + titles.add("学校地址省"); //1
  197 + titles.add("学校地址市"); //2
  198 + titles.add("联系人"); //3
  199 + titles.add("联系电话"); //4
  200 + titles.add("产品序列号"); //5
  201 + titles.add("问题现象"); //6
  202 + titles.add("操作系统"); //7
  203 + titles.add("软件版本"); //8
  204 + titles.add("软件名称"); //9
  205 + titles.add("异常数量"); //10
  206 + titles.add("详细描述"); //11
  207 + titles.add("问题图片"); //12
  208 + titles.add("客户编码"); //13
  209 + titles.add("处理人"); //14
  210 + titles.add("报告日期"); //15
  211 + titles.add("处理时间"); //16
  212 + titles.add("产品类型"); //17
  213 + titles.add("产品型号"); //18
  214 + dataMap.put("titles", titles);
  215 + List<PageData> varOList = feedbackService.listAll(pd);
  216 + List<PageData> varList = new ArrayList<PageData>();
  217 + for(int i=0;i<varOList.size();i++){
  218 + PageData vpd = new PageData();
  219 + vpd.put("var1", varOList.get(i).getString("SCHOOL_ADDRESS1")); //1
  220 + vpd.put("var2", varOList.get(i).getString("SCHOOL_ADDRESS2")); //2
  221 + vpd.put("var3", varOList.get(i).getString("CONTACT_PHONE")); //3
  222 + vpd.put("var4", varOList.get(i).getString("PHONE_CONTACT")); //4
  223 + vpd.put("var5", varOList.get(i).getString("PRODUCT_SEQ")); //5
  224 + vpd.put("var6", varOList.get(i).getString("QUESTION_NAME")); //6
  225 + vpd.put("var7", varOList.get(i).getString("OS")); //7
  226 + vpd.put("var8", varOList.get(i).getString("SOFTWARE_VERSION")); //8
  227 + vpd.put("var9", varOList.get(i).getString("SOFTWARE_NAME")); //9
  228 + vpd.put("var10", varOList.get(i).getString("EXCEPTION_NUM")); //10
  229 + vpd.put("var11", varOList.get(i).getString("DESCRIPTION")); //11
  230 + vpd.put("var12", varOList.get(i).getString("PROBLEM_PATH")); //12
  231 + vpd.put("var13", varOList.get(i).getString("CUSTOMER_CODE")); //13
  232 + vpd.put("var14", varOList.get(i).getString("PERSON_LIABLE")); //14
  233 + vpd.put("var15", varOList.get(i).getString("CREATE_DATE")); //15
  234 + vpd.put("var16", varOList.get(i).getString("PROCESSING_DATE")); //16
  235 + vpd.put("var17", varOList.get(i).getString("PRODUCT_TYPE")); //17
  236 + vpd.put("var18", varOList.get(i).getString("PRODUCT_MODEL")); //18
  237 + varList.add(vpd);
  238 + }
  239 + dataMap.put("varList", varList);
  240 + ObjectExcelView erv = new ObjectExcelView();
  241 + mv = new ModelAndView(erv,dataMap);
  242 + return mv;
  243 + }
  244 +
  245 + @InitBinder
  246 + public void initBinder(WebDataBinder binder){
  247 + DateFormat format = new SimpleDateFormat("yyyy-MM-dd");
  248 + binder.registerCustomEditor(Date.class, new CustomDateEditor(format,true));
  249 + }
  250 +}
... ...
src/com/fh/controller/feedback/problemphenomenon/ProblemPhenomenonController.java 0 → 100644
  1 +package com.fh.controller.feedback.problemphenomenon;
  2 +
  3 +import java.io.PrintWriter;
  4 +import java.text.DateFormat;
  5 +import java.text.SimpleDateFormat;
  6 +import java.util.ArrayList;
  7 +import java.util.Date;
  8 +import java.util.HashMap;
  9 +import java.util.List;
  10 +import java.util.Map;
  11 +import javax.annotation.Resource;
  12 +import org.springframework.beans.propertyeditors.CustomDateEditor;
  13 +import org.springframework.stereotype.Controller;
  14 +import org.springframework.web.bind.WebDataBinder;
  15 +import org.springframework.web.bind.annotation.InitBinder;
  16 +import org.springframework.web.bind.annotation.RequestMapping;
  17 +import org.springframework.web.bind.annotation.ResponseBody;
  18 +import org.springframework.web.servlet.ModelAndView;
  19 +import com.fh.controller.base.BaseController;
  20 +import com.fh.entity.Page;
  21 +import com.fh.util.AppUtil;
  22 +import com.fh.util.ObjectExcelView;
  23 +import com.fh.util.PageData;
  24 +import com.fh.util.Jurisdiction;
  25 +import com.fh.util.Tools;
  26 +import com.fh.service.feedback.problemphenomenon.ProblemPhenomenonManager;
  27 +
  28 +/**
  29 + * 说明:问题现象
  30 + * 创建人:Elvis
  31 + * 创建时间:2018-05-04
  32 + */
  33 +@Controller
  34 +@RequestMapping(value="/problemphenomenon")
  35 +public class ProblemPhenomenonController extends BaseController {
  36 +
  37 + String menuUrl = "problemphenomenon/list.do"; //菜单地址(权限用)
  38 + @Resource(name="problemphenomenonService")
  39 + private ProblemPhenomenonManager problemphenomenonService;
  40 +
  41 + /**保存
  42 + * @param
  43 + * @throws Exception
  44 + */
  45 + @RequestMapping(value="/save")
  46 + public ModelAndView save() throws Exception{
  47 + logBefore(logger, Jurisdiction.getUsername()+"新增ProblemPhenomenon");
  48 + if(!Jurisdiction.buttonJurisdiction(menuUrl, "add")){return null;} //校验权限
  49 + ModelAndView mv = this.getModelAndView();
  50 + PageData pd = new PageData();
  51 + pd = this.getPageData();
  52 + problemphenomenonService.save(pd);
  53 + mv.addObject("msg","success");
  54 + mv.setViewName("save_result");
  55 + return mv;
  56 + }
  57 +
  58 + /**删除
  59 + * @param out
  60 + * @throws Exception
  61 + */
  62 + @RequestMapping(value="/delete")
  63 + public void delete(PrintWriter out) throws Exception{
  64 + logBefore(logger, Jurisdiction.getUsername()+"删除ProblemPhenomenon");
  65 + if(!Jurisdiction.buttonJurisdiction(menuUrl, "del")){return;} //校验权限
  66 + PageData pd = new PageData();
  67 + pd = this.getPageData();
  68 + problemphenomenonService.delete(pd);
  69 + out.write("success");
  70 + out.close();
  71 + }
  72 +
  73 + /**修改
  74 + * @param
  75 + * @throws Exception
  76 + */
  77 + @RequestMapping(value="/edit")
  78 + public ModelAndView edit() throws Exception{
  79 + logBefore(logger, Jurisdiction.getUsername()+"修改ProblemPhenomenon");
  80 + if(!Jurisdiction.buttonJurisdiction(menuUrl, "edit")){return null;} //校验权限
  81 + ModelAndView mv = this.getModelAndView();
  82 + PageData pd = new PageData();
  83 + pd = this.getPageData();
  84 + problemphenomenonService.edit(pd);
  85 + mv.addObject("msg","success");
  86 + mv.setViewName("save_result");
  87 + return mv;
  88 + }
  89 +
  90 + /**列表
  91 + * @param page
  92 + * @throws Exception
  93 + */
  94 + @RequestMapping(value="/list")
  95 + public ModelAndView list(Page page) throws Exception{
  96 + logBefore(logger, Jurisdiction.getUsername()+"列表ProblemPhenomenon");
  97 + //if(!Jurisdiction.buttonJurisdiction(menuUrl, "cha")){return null;} //校验权限(无权查看时页面会有提示,如果不注释掉这句代码就无法进入列表页面,所以根据情况是否加入本句代码)
  98 + ModelAndView mv = this.getModelAndView();
  99 + PageData pd = new PageData();
  100 + pd = this.getPageData();
  101 + String keywords = pd.getString("keywords"); //关键词检索条件
  102 + if(null != keywords && !"".equals(keywords)){
  103 + pd.put("keywords", keywords.trim());
  104 + }
  105 + page.setPd(pd);
  106 + List<PageData> varList = problemphenomenonService.list(page); //列出ProblemPhenomenon列表
  107 + mv.setViewName("feedback/problemphenomenon/problemphenomenon_list");
  108 + mv.addObject("varList", varList);
  109 + mv.addObject("pd", pd);
  110 + mv.addObject("QX",Jurisdiction.getHC()); //按钮权限
  111 + return mv;
  112 + }
  113 +
  114 + /**去新增页面
  115 + * @param
  116 + * @throws Exception
  117 + */
  118 + @RequestMapping(value="/goAdd")
  119 + public ModelAndView goAdd()throws Exception{
  120 + ModelAndView mv = this.getModelAndView();
  121 + PageData pd = new PageData();
  122 + pd = this.getPageData();
  123 + mv.setViewName("feedback/problemphenomenon/problemphenomenon_edit");
  124 + mv.addObject("msg", "save");
  125 + mv.addObject("pd", pd);
  126 + return mv;
  127 + }
  128 +
  129 + /**去修改页面
  130 + * @param
  131 + * @throws Exception
  132 + */
  133 + @RequestMapping(value="/goEdit")
  134 + public ModelAndView goEdit()throws Exception{
  135 + ModelAndView mv = this.getModelAndView();
  136 + PageData pd = new PageData();
  137 + pd = this.getPageData();
  138 + pd = problemphenomenonService.findById(pd); //根据ID读取
  139 + mv.setViewName("feedback/problemphenomenon/problemphenomenon_edit");
  140 + mv.addObject("msg", "edit");
  141 + mv.addObject("pd", pd);
  142 + return mv;
  143 + }
  144 +
  145 + /**批量删除
  146 + * @param
  147 + * @throws Exception
  148 + */
  149 + @RequestMapping(value="/deleteAll")
  150 + @ResponseBody
  151 + public Object deleteAll() throws Exception{
  152 + logBefore(logger, Jurisdiction.getUsername()+"批量删除ProblemPhenomenon");
  153 + if(!Jurisdiction.buttonJurisdiction(menuUrl, "del")){return null;} //校验权限
  154 + PageData pd = new PageData();
  155 + Map<String,Object> map = new HashMap<String,Object>();
  156 + pd = this.getPageData();
  157 + List<PageData> pdList = new ArrayList<PageData>();
  158 + String DATA_IDS = pd.getString("DATA_IDS");
  159 + if(null != DATA_IDS && !"".equals(DATA_IDS)){
  160 + String ArrayDATA_IDS[] = DATA_IDS.split(",");
  161 + problemphenomenonService.deleteAll(ArrayDATA_IDS);
  162 + pd.put("msg", "ok");
  163 + }else{
  164 + pd.put("msg", "no");
  165 + }
  166 + pdList.add(pd);
  167 + map.put("list", pdList);
  168 + return AppUtil.returnObject(pd, map);
  169 + }
  170 +
  171 + /**导出到excel
  172 + * @param
  173 + * @throws Exception
  174 + */
  175 + @RequestMapping(value="/excel")
  176 + public ModelAndView exportExcel() throws Exception{
  177 + logBefore(logger, Jurisdiction.getUsername()+"导出ProblemPhenomenon到excel");
  178 + if(!Jurisdiction.buttonJurisdiction(menuUrl, "cha")){return null;}
  179 + ModelAndView mv = new ModelAndView();
  180 + PageData pd = new PageData();
  181 + pd = this.getPageData();
  182 + Map<String,Object> dataMap = new HashMap<String,Object>();
  183 + List<String> titles = new ArrayList<String>();
  184 + titles.add("问题描述"); //1
  185 + titles.add("备注"); //2
  186 + dataMap.put("titles", titles);
  187 + List<PageData> varOList = problemphenomenonService.listAll(pd);
  188 + List<PageData> varList = new ArrayList<PageData>();
  189 + for(int i=0;i<varOList.size();i++){
  190 + PageData vpd = new PageData();
  191 + vpd.put("var1", varOList.get(i).getString("DESC")); //1
  192 + vpd.put("var2", varOList.get(i).getString("REMARK")); //2
  193 + varList.add(vpd);
  194 + }
  195 + dataMap.put("varList", varList);
  196 + ObjectExcelView erv = new ObjectExcelView();
  197 + mv = new ModelAndView(erv,dataMap);
  198 + return mv;
  199 + }
  200 +
  201 + @InitBinder
  202 + public void initBinder(WebDataBinder binder){
  203 + DateFormat format = new SimpleDateFormat("yyyy-MM-dd");
  204 + binder.registerCustomEditor(Date.class, new CustomDateEditor(format,true));
  205 + }
  206 +}
... ...
src/com/fh/controller/system/login/LoginController.java
... ... @@ -97,17 +97,17 @@ public class LoginController extends BaseController {
97 97 pd = this.getPageData();
98 98 String errInfo = "";
99 99 String KEYDATA[] = pd.getString("KEYDATA").replaceAll("elvis", "").split(",fh,");
100   - if(null != KEYDATA && KEYDATA.length == 3){
  100 + if(null != KEYDATA && KEYDATA.length >= 2){
101 101 Session session = Jurisdiction.getSession();
102 102 String sessionCode = (String)session.getAttribute(Const.SESSION_SECURITY_CODE); //获取session中的验证码
103   - String code = KEYDATA[2];
104   - if(null == code || "".equals(code)){//判断效验码
105   - errInfo = "nullcode"; //效验码为空
106   - }else{
  103 +// String code = KEYDATA[2];
  104 +// if(null == code || "".equals(code)){//判断效验码
  105 +// errInfo = "nullcode"; //效验码为空
  106 +// }else{
107 107 String USERNAME = KEYDATA[0]; //登录过来的用户名
108 108 String PASSWORD = KEYDATA[1]; //登录过来的密码
109 109 pd.put("USERNAME", USERNAME);
110   - if(Tools.notEmpty(sessionCode) && sessionCode.equalsIgnoreCase(code)){ //判断登录验证码
  110 +// if(Tools.notEmpty(sessionCode) && sessionCode.equalsIgnoreCase(code)){ //判断登录验证码
111 111 String passwd = new SimpleHash("SHA-1", USERNAME, PASSWORD).toString(); //密码加密
112 112 pd.put("PASSWORD", passwd);
113 113 pd = userService.getUserByNameAndPwd(pd); //根据用户名和密码去读取用户信息
... ... @@ -140,18 +140,18 @@ public class LoginController extends BaseController {
140 140 logBefore(logger, USERNAME+"登录系统密码或用户名错误");
141 141 FHLOG.save(USERNAME, "登录系统密码或用户名错误");
142 142 }
143   - }else{
144   - errInfo = "codeerror"; //验证码输入有误
145   - }
  143 +// }else{
  144 +// errInfo = "codeerror"; //验证码输入有误
  145 +// }
146 146 if(Tools.isEmpty(errInfo)){
147 147 errInfo = "success"; //验证成功
148 148 logBefore(logger, USERNAME+"登录系统");
149 149 FHLOG.save(USERNAME, "登录系统");
150 150 }
151 151 }
152   - }else{
153   - errInfo = "error"; //缺少参数
154   - }
  152 +// }else{
  153 +// errInfo = "error"; //缺少参数
  154 +// }
155 155 map.put("result", errInfo);
156 156 return AppUtil.returnObject(new PageData(), map);
157 157 }
... ...
src/com/fh/service/feedback/feedback/FeedbackManager.java 0 → 100644
  1 +package com.fh.service.feedback.feedback;
  2 +
  3 +import java.util.List;
  4 +import com.fh.entity.Page;
  5 +import com.fh.util.PageData;
  6 +
  7 +/**
  8 + * 说明: 用户反馈模块接口
  9 + * 创建人:Elvis
  10 + * 创建时间:2018-05-03
  11 + * @version
  12 + */
  13 +public interface FeedbackManager{
  14 +
  15 + /**新增
  16 + * @param pd
  17 + * @throws Exception
  18 + */
  19 + public void save(PageData pd)throws Exception;
  20 +
  21 + /**删除
  22 + * @param pd
  23 + * @throws Exception
  24 + */
  25 + public void delete(PageData pd)throws Exception;
  26 +
  27 + /**修改
  28 + * @param pd
  29 + * @throws Exception
  30 + */
  31 + public void edit(PageData pd)throws Exception;
  32 +
  33 + /**列表
  34 + * @param page
  35 + * @throws Exception
  36 + */
  37 + public List<PageData> list(Page page)throws Exception;
  38 +
  39 + /**列表(全部)
  40 + * @param pd
  41 + * @throws Exception
  42 + */
  43 + public List<PageData> listAll(PageData pd)throws Exception;
  44 +
  45 + /**通过id获取数据
  46 + * @param pd
  47 + * @throws Exception
  48 + */
  49 + public PageData findById(PageData pd)throws Exception;
  50 +
  51 + /**批量删除
  52 + * @param ArrayDATA_IDS
  53 + * @throws Exception
  54 + */
  55 + public void deleteAll(String[] ArrayDATA_IDS)throws Exception;
  56 +
  57 +}
  58 +
... ...
src/com/fh/service/feedback/feedback/impl/FeedbackService.java 0 → 100644
  1 +package com.fh.service.feedback.feedback.impl;
  2 +
  3 +import java.util.List;
  4 +import javax.annotation.Resource;
  5 +import org.springframework.stereotype.Service;
  6 +import com.fh.dao.DaoSupport;
  7 +import com.fh.entity.Page;
  8 +import com.fh.util.PageData;
  9 +import com.fh.service.feedback.feedback.FeedbackManager;
  10 +
  11 +/**
  12 + * 说明: 用户反馈模块
  13 + * 创建人:FH Q313596790
  14 + * 创建时间:2018-05-03
  15 + * @version
  16 + */
  17 +@Service("feedbackService")
  18 +public class FeedbackService implements FeedbackManager{
  19 +
  20 + @Resource(name = "daoSupport")
  21 + private DaoSupport dao;
  22 +
  23 + /**新增
  24 + * @param pd
  25 + * @throws Exception
  26 + */
  27 + public void save(PageData pd)throws Exception{
  28 + dao.save("FeedbackMapper.save", pd);
  29 + }
  30 +
  31 + /**删除
  32 + * @param pd
  33 + * @throws Exception
  34 + */
  35 + public void delete(PageData pd)throws Exception{
  36 + dao.delete("FeedbackMapper.delete", pd);
  37 + }
  38 +
  39 + /**修改
  40 + * @param pd
  41 + * @throws Exception
  42 + */
  43 + public void edit(PageData pd)throws Exception{
  44 + dao.update("FeedbackMapper.edit", pd);
  45 + }
  46 +
  47 + /**列表
  48 + * @param page
  49 + * @throws Exception
  50 + */
  51 + @SuppressWarnings("unchecked")
  52 + public List<PageData> list(Page page)throws Exception{
  53 + return (List<PageData>)dao.findForList("FeedbackMapper.datalistPage", page);
  54 + }
  55 +
  56 + /**列表(全部)
  57 + * @param pd
  58 + * @throws Exception
  59 + */
  60 + @SuppressWarnings("unchecked")
  61 + public List<PageData> listAll(PageData pd)throws Exception{
  62 + return (List<PageData>)dao.findForList("FeedbackMapper.listAll", pd);
  63 + }
  64 +
  65 + /**通过id获取数据
  66 + * @param pd
  67 + * @throws Exception
  68 + */
  69 + public PageData findById(PageData pd)throws Exception{
  70 + return (PageData)dao.findForObject("FeedbackMapper.findById", pd);
  71 + }
  72 +
  73 + /**批量删除
  74 + * @param ArrayDATA_IDS
  75 + * @throws Exception
  76 + */
  77 + public void deleteAll(String[] ArrayDATA_IDS)throws Exception{
  78 + dao.delete("FeedbackMapper.deleteAll", ArrayDATA_IDS);
  79 + }
  80 +
  81 +}
  82 +
... ...
src/com/fh/service/feedback/problemphenomenon/ProblemPhenomenonManager.java 0 → 100644
  1 +package com.fh.service.feedback.problemphenomenon;
  2 +
  3 +import java.util.List;
  4 +import com.fh.entity.Page;
  5 +import com.fh.util.PageData;
  6 +
  7 +/**
  8 + * 说明: 问题现象接口
  9 + * 创建人:Elvis
  10 + * 创建时间:2018-05-04
  11 + * @version
  12 + */
  13 +public interface ProblemPhenomenonManager{
  14 +
  15 + /**新增
  16 + * @param pd
  17 + * @throws Exception
  18 + */
  19 + public void save(PageData pd)throws Exception;
  20 +
  21 + /**删除
  22 + * @param pd
  23 + * @throws Exception
  24 + */
  25 + public void delete(PageData pd)throws Exception;
  26 +
  27 + /**修改
  28 + * @param pd
  29 + * @throws Exception
  30 + */
  31 + public void edit(PageData pd)throws Exception;
  32 +
  33 + /**列表
  34 + * @param page
  35 + * @throws Exception
  36 + */
  37 + public List<PageData> list(Page page)throws Exception;
  38 +
  39 + /**列表(全部)
  40 + * @param pd
  41 + * @throws Exception
  42 + */
  43 + public List<PageData> listAll(PageData pd)throws Exception;
  44 + /**列表(全部)
  45 + * @param pd
  46 + * @throws Exception
  47 + */
  48 + public List<PageData> listAllByType(PageData pd)throws Exception;
  49 +
  50 + /**通过id获取数据
  51 + * @param pd
  52 + * @throws Exception
  53 + */
  54 + public PageData findById(PageData pd)throws Exception;
  55 +
  56 + /**批量删除
  57 + * @param ArrayDATA_IDS
  58 + * @throws Exception
  59 + */
  60 + public void deleteAll(String[] ArrayDATA_IDS)throws Exception;
  61 +
  62 +}
  63 +
... ...
src/com/fh/service/feedback/problemphenomenon/impl/ProblemPhenomenonService.java 0 → 100644
  1 +package com.fh.service.feedback.problemphenomenon.impl;
  2 +
  3 +import java.util.List;
  4 +
  5 +import javax.annotation.Resource;
  6 +
  7 +import org.springframework.stereotype.Service;
  8 +
  9 +import com.fh.dao.DaoSupport;
  10 +import com.fh.entity.Page;
  11 +import com.fh.util.PageData;
  12 +import com.fh.service.feedback.problemphenomenon.ProblemPhenomenonManager;
  13 +
  14 +/**
  15 + * 说明: 问题现象
  16 + * 创建人:FH Q313596790
  17 + * 创建时间:2018-05-04
  18 + * @version
  19 + */
  20 +@Service("problemphenomenonService")
  21 +public class ProblemPhenomenonService implements ProblemPhenomenonManager{
  22 +
  23 + @Resource(name = "daoSupport")
  24 + private DaoSupport dao;
  25 +
  26 + /**新增
  27 + * @param pd
  28 + * @throws Exception
  29 + */
  30 + public void save(PageData pd)throws Exception{
  31 + dao.save("ProblemPhenomenonMapper.save", pd);
  32 + }
  33 +
  34 + /**删除
  35 + * @param pd
  36 + * @throws Exception
  37 + */
  38 + public void delete(PageData pd)throws Exception{
  39 + dao.delete("ProblemPhenomenonMapper.delete", pd);
  40 + }
  41 +
  42 + /**修改
  43 + * @param pd
  44 + * @throws Exception
  45 + */
  46 + public void edit(PageData pd)throws Exception{
  47 + dao.update("ProblemPhenomenonMapper.edit", pd);
  48 + }
  49 +
  50 + /**列表
  51 + * @param page
  52 + * @throws Exception
  53 + */
  54 + @SuppressWarnings("unchecked")
  55 + public List<PageData> list(Page page)throws Exception{
  56 + return (List<PageData>)dao.findForList("ProblemPhenomenonMapper.datalistPage", page);
  57 + }
  58 +
  59 + /**列表(全部)
  60 + * @param pd
  61 + * @throws Exception
  62 + */
  63 + @SuppressWarnings("unchecked")
  64 + public List<PageData> listAll(PageData pd)throws Exception{
  65 + return (List<PageData>)dao.findForList("ProblemPhenomenonMapper.listAll", pd);
  66 + }
  67 +
  68 + /**通过id获取数据
  69 + * @param pd
  70 + * @throws Exception
  71 + */
  72 + public PageData findById(PageData pd)throws Exception{
  73 + return (PageData)dao.findForObject("ProblemPhenomenonMapper.findById", pd);
  74 + }
  75 +
  76 + /**批量删除
  77 + * @param ArrayDATA_IDS
  78 + * @throws Exception
  79 + */
  80 + public void deleteAll(String[] ArrayDATA_IDS)throws Exception{
  81 + dao.delete("ProblemPhenomenonMapper.deleteAll", ArrayDATA_IDS);
  82 + }
  83 +
  84 + @Override
  85 + public List<PageData> listAllByType(PageData pd) throws Exception {
  86 + return (List<PageData>)dao.findForList("ProblemPhenomenonMapper.listAllByType", pd);
  87 + }
  88 +
  89 +}
  90 +
... ...
src/com/fh/util/Const.java
... ... @@ -32,7 +32,7 @@ public class Const {
32 32 public static final String FILEPATHFILE = "uploadFiles/file/"; //文件上传路径
33 33 public static final String FILEPATHFILEOA = "uploadFiles/uploadFile/"; //文件上传路径(oa管理)
34 34 public static final String FILEPATHTWODIMENSIONCODE = "uploadFiles/twoDimensionCode/"; //二维码存放路径
35   - public static final String NO_INTERCEPTOR_PATH = ".*/((login)|(logout)|(code)|(app)|(weixin)|(static)|(main)|(api)|(websocket)|(uploadImgs)).*"; //不对匹配该值的访问路径拦截(正则)
  35 + public static final String NO_INTERCEPTOR_PATH = ".*/((login)|(logout)|(code)|(app)|(weixin)|(static)|(afterService)|(main)|(api)|(websocket)|(uploadImgs)).*"; //不对匹配该值的访问路径拦截(正则)
36 36 public static ApplicationContext WEB_APP_CONTEXT = null; //该值会在web容器启动时由WebAppContextListener初始化
37 37  
38 38 /**
... ...