Commit c83d0804ceb36389f3720c994cc56bbc4ee2911e
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 | + × | |
88 | + </button> | |
89 | + <h4 class="modal-title" id="myModalLabel"> | |
90 | ||
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
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 | /** | ... | ... |