362 lines
14 KiB
Plaintext
362 lines
14 KiB
Plaintext
<%@page import="com.ifish.enums.ReplyTypeEnum"%>
|
|
<%@page import="com.ifish.enums.SysUserEnum"%>
|
|
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
|
|
<!DOCTYPE html>
|
|
<html>
|
|
<head>
|
|
<title>问题反馈</title>
|
|
<!-- css and js -->
|
|
<%@ include file="../htm/script.jsp" %>
|
|
|
|
<script type="text/javascript">
|
|
var dataTable = null;
|
|
$(function(){
|
|
//模态框
|
|
$('#myModal').modal({
|
|
backdrop:'static',
|
|
show:false
|
|
});
|
|
$("#zhipaiModal").modal({
|
|
backdrop:'static',
|
|
show:false
|
|
});
|
|
//关闭
|
|
$(".closeIcon").click(function(){
|
|
$('#myModal').modal("hide");
|
|
$('#zhipaiModal').modal("hide");
|
|
});
|
|
//分页
|
|
dataTable = $('#sample-table-1').dataTable({
|
|
"sPaginationType": "bootstrap",
|
|
//"bProcessing": true,
|
|
"bServerSide": true,//指定从服务器端获取数据
|
|
"sAjaxSource": "<%=basePath%>page/admin/questionInf.do",
|
|
"fnServerData": function(sSource, aoData, fnCallback){
|
|
//查询参数
|
|
var searchClass = $(".searchClass");
|
|
for (var i = 0; i < searchClass.length; i++) {
|
|
var id = $(searchClass[i]).attr("id");
|
|
var value = $(searchClass[i]).val();
|
|
aoData.push({"name":id,"value":value});
|
|
}
|
|
$.ajax({
|
|
"dataType": "json",
|
|
"type": "POST",
|
|
"url": sSource,
|
|
"data": aoData,
|
|
"cache": false,
|
|
"success": function(json){
|
|
fnCallback(json);
|
|
}
|
|
});
|
|
},
|
|
"aoColumns": [
|
|
{ "mData": function(question){
|
|
return '<input type="checkbox" value="'+question.questionId+'" class="ace checkboxs"/><span class="lbl"></span>';
|
|
},
|
|
"bSortable": false,
|
|
"sClass":"center"
|
|
},
|
|
{ "mData": "questionId","bSortable": false, "sClass":"center"},
|
|
{ "mData": "createTime","bSortable": false},
|
|
{ "mData": "userId","bSortable": false },
|
|
{ "mData": function(question){
|
|
return '<a href="<%=basePath%>page/admin/userDetail.do?userId='+question.userId+'" target="_blank">'+question.phoneNumber+'</a>';
|
|
},
|
|
"bSortable": false
|
|
},
|
|
{ "mData": function(question){
|
|
if(question.replyType=="<%=ReplyTypeEnum.shiyong.getKey()%>"){
|
|
return "<%=ReplyTypeEnum.shiyong.getValue()%>";
|
|
}
|
|
else if(question.replyType=="<%=ReplyTypeEnum.zhiliang.getKey()%>"){
|
|
return "<%=ReplyTypeEnum.zhiliang.getValue()%>";
|
|
}
|
|
else{
|
|
return "";
|
|
}
|
|
},
|
|
"bSortable": false
|
|
},
|
|
{ "mData": "questionContent","bSortable": false },
|
|
{ "mData": function(question){
|
|
if(question.isReply=="1"){
|
|
return question.questionReply;
|
|
}
|
|
else{
|
|
return '<span class="label label-danger arrowed">未回复</span>';
|
|
}
|
|
},
|
|
"bSortable": false
|
|
},
|
|
{ "mData": "replyTime","bSortable": false},
|
|
{ "mData": function(question){
|
|
return '<a href="javascript:void(0);" onclick="reply('+question.questionId+','+question.userId+')" title="回复" class="label label-primary"><span class="icon-edit align-top"></span></a>';
|
|
},
|
|
"bSortable": false,
|
|
"sClass":"center"
|
|
},
|
|
{ "mData": function(question){
|
|
return ' <a href="javascript:void(0);" onclick="zhipai('+question.questionId+')" title="指派" class="label label-success"><span class="icon-share-alt align-top"></span></a>';
|
|
},
|
|
"bSortable": false,
|
|
"sClass":"center"
|
|
}
|
|
],
|
|
"oLanguage": {
|
|
"sLengthMenu": "每页显示 _MENU_条",
|
|
"sZeroRecords": "没有找到符合条件的数据",
|
|
"sInfo": "当前第 _START_ - _END_ 条 共计 _TOTAL_ 条",
|
|
"sProcessing": "<img src='<%=basePath%>static/css/images/loading.gif'>",
|
|
"sInfoEmpty": "木有记录",
|
|
"sInfoFiltered": "(从 _MAX_ 条记录中过滤)",
|
|
"sSearch": "<select id='searchField' class='searchClass' style='height:25px'><option value='userId'>用户ID</option><option value='questionContent'>提交内容</option></select>:",
|
|
"oPaginate": {
|
|
"sFirst": "首页",
|
|
"sPrevious": "前一页",
|
|
"sNext": "后一页",
|
|
"sLast": "尾页"
|
|
}
|
|
}
|
|
});
|
|
|
|
$("table th input:checkbox").on("click" , function(){
|
|
var that = this;
|
|
$(this).closest('table').find('tr > td:first-child input:checkbox').each(function(){
|
|
this.checked = that.checked;
|
|
$(this).closest('tr').toggleClass('selected');
|
|
});
|
|
});
|
|
|
|
//查询
|
|
$("#sample-table-1_filter").prepend('回复状态: <select class="searchClass" id="selectField" style="height:25px"></select> ');
|
|
$("#selectField").html('<option value="">请选择</option><option value="0">未回复</option><option value="1">已回复</option>');
|
|
//$("#sample-table-1_filter").prepend('排序方式: <select class="searchClass" id="sortMode" style="height:25px"></select> ');
|
|
//$("#sortMode").html('<option value="">请选择</option><option value="asc">升序↑</option><option value="desc">降序↓</option>');
|
|
//$("#sample-table-1_filter").prepend('排序字段: <select class="searchClass" id="sortField" style="height:25px"></select> ');
|
|
//$("#sortField").html('<option value="">请选择</option><option value="createTime">提交时间</option><option value="replyTime">回复时间</option>');
|
|
$("#sample-table-1_filter").prepend('反馈类型: <select class="searchClass" id="selectField1" style="height:25px"></select> ');
|
|
$("#selectField1").html('<option value="">请选择</option><option value="<%=ReplyTypeEnum.zhiliang.getKey()%>"><%=ReplyTypeEnum.zhiliang.getValue()%></option><option value="<%=ReplyTypeEnum.shiyong.getKey()%>"><%=ReplyTypeEnum.shiyong.getValue()%></option>');
|
|
$(".searchClass").change(function(){
|
|
dataTable.fnDraw();
|
|
});
|
|
|
|
$("#sample-table-1_length").append(' <label><a href="javascript:void(0)" onclick="deleteAll()" class="btn btn-xs btn-danger"><i class="icon-trash"></i><span class="no-text-shadow">删除</span></a></label>');
|
|
|
|
//保存
|
|
$("#zhipaiSaveBtn").click(function(){
|
|
var loginAccount = $("#loginAccount").val();
|
|
if(loginAccount==null || loginAccount==""){
|
|
jAlert('指派的用户不能为空!', '提示');
|
|
return false;
|
|
}
|
|
$("#zhipaiSaveBtn").attr("disabled",true);
|
|
$("#zhipaiForm").submit();
|
|
});
|
|
$("#replaySaveBtn").click(function(){
|
|
var questionReply = $("#questionReply").val();
|
|
if(questionReply=="" || questionReply.length<5){
|
|
jAlert('回复的内容不能少于5个字!', '提示');
|
|
return false;
|
|
}
|
|
$("#replaySaveBtn").attr("disabled",true);
|
|
$("#replayForm").submit();
|
|
});
|
|
//异步提交
|
|
$("#replayForm,#zhipaiForm").ajaxForm(function(data){
|
|
//弹出ajax请求后的回调结果
|
|
if(data==true){
|
|
//刷新当前页面
|
|
$('.modal').modal("hide");
|
|
refreshTable();
|
|
jAlert('成功!', '提示');
|
|
}
|
|
else{
|
|
//刷新当前页面
|
|
refreshTable();
|
|
jAlert('失败!', '提示');
|
|
}
|
|
$("#zhipaiSaveBtn").attr("disabled",false);
|
|
$("#replaySaveBtn").attr("disabled",false);
|
|
});
|
|
});
|
|
//刷新当前页
|
|
function refreshTable(){
|
|
var iDisplayStart = dataTable.fnSettings()._iDisplayStart;
|
|
var iDisplayLength = dataTable.fnSettings()._iDisplayLength;
|
|
var pageNum = (iDisplayStart+iDisplayLength)/iDisplayLength;
|
|
dataTable.fnPageChange(--pageNum,true);
|
|
}
|
|
function reply(id,uId){
|
|
$("#questionId").val(id);
|
|
$("#userId").val(uId);
|
|
$("#questionReply").val("");
|
|
$('#myModal').modal("show");
|
|
}
|
|
function zhipai(id){
|
|
$("#questionId2").val(id);
|
|
$('#zhipaiModal').modal("show");
|
|
}
|
|
function deleteAll(){
|
|
var array = new Array();
|
|
$(".checkboxs:checked").each(function(){
|
|
array.push($(this).val());
|
|
});
|
|
if(array.toString()==""){
|
|
alert("请选择要删除的数据");
|
|
}
|
|
else{
|
|
var r = confirm("确定要删除吗?");
|
|
if (r == true) {
|
|
location.href="<%=basePath%>page/admin/deleteQuestion.do?ids="+array.toString();
|
|
}
|
|
}
|
|
}
|
|
</script>
|
|
</head>
|
|
|
|
<body>
|
|
<!-- 头部 -->
|
|
<%@ include file="../htm/header.jsp" %>
|
|
<!-- 主体 -->
|
|
<div class="main-container" id="main-container">
|
|
<div class="main-container-inner">
|
|
<!-- 侧边栏 -->
|
|
<%@ include file="../htm/sidebar.jsp" %>
|
|
<!-- 主体内容 -->
|
|
<div class="main-content">
|
|
<div class="breadcrumbs" id="breadcrumbs">
|
|
<script type="text/javascript">
|
|
try{ace.settings.check('breadcrumbs' , 'fixed')}catch(e){}
|
|
</script>
|
|
<ul class="breadcrumb">
|
|
<li>
|
|
<i class="icon-home home-icon"></i>
|
|
<a href="<%=basePath%>page/public/index.do">首页</a>
|
|
</li>
|
|
<li class="active">问题反馈</li>
|
|
</ul>
|
|
</div>
|
|
<div class="page-content">
|
|
<c:set var="success100" value="<%=SysUserEnum.success100.getKey()%>"></c:set>
|
|
<c:set var="failed101" value="<%=SysUserEnum.failed101.getKey()%>"></c:set>
|
|
<c:if test="${status == success100}">
|
|
<div class="alert alert-block alert-success">
|
|
<i class="icon-ok green">操作<%=SysUserEnum.success100.getValue()%></i>
|
|
</div>
|
|
</c:if>
|
|
<c:if test="${status == failed101}">
|
|
<div class="alert alert-block alert-danger">
|
|
<i class="icon-remove red">操作<%=SysUserEnum.failed101.getValue()%></i>
|
|
</div>
|
|
</c:if>
|
|
<div class="row">
|
|
<div class="col-xs-12">
|
|
<div class="table-header"></div>
|
|
<div class="table-responsive">
|
|
<table id="sample-table-1" class="table table-striped table-bordered table-hover">
|
|
<thead>
|
|
<tr>
|
|
<th class="center">
|
|
<label>
|
|
<input type="checkbox" class="ace" />
|
|
<span class="lbl"></span>
|
|
</label>
|
|
</th>
|
|
<th class="center">ID</th>
|
|
<th>提交时间</th>
|
|
<th>用户ID</th>
|
|
<th>手机号</th>
|
|
<th>反馈类型</th>
|
|
<th>提交内容</th>
|
|
<th>回复内容</th>
|
|
<th>回复时间</th>
|
|
<th class="center">回复</th>
|
|
<th class="center">指派</th>
|
|
</tr>
|
|
</thead>
|
|
</table>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<form action="<%=basePath%>page/admin/replyQuestion.do" method="post" id="replayForm">
|
|
<div class="modal fade" id="myModal">
|
|
<div class="modal-dialog">
|
|
<div class="modal-content">
|
|
<div class="modal-header">
|
|
<button type="button" class="close closeIcon">
|
|
<span aria-hidden="true">×</span>
|
|
</button>
|
|
<h4 class="modal-title" id="myModalLabel">回复</h4>
|
|
</div>
|
|
<div class="modal-body">
|
|
<input type="hidden" name="userId" id="userId">
|
|
<input type="hidden" name="isReply" value="1">
|
|
<input type="hidden" name="questionId" id="questionId">
|
|
<textarea name="questionReply" id="questionReply" style="width:100%" placeholder="请输入回复的内容!字数控制在5~50个字之间!" required="required" maxlength="50"></textarea>
|
|
</div>
|
|
<div class="modal-footer">
|
|
<button type="button" class="btn btn-default closeIcon">关闭</button>
|
|
<button type="submit" id="replaySaveBtn" class="btn btn-primary">保存</button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</form>
|
|
<form action="<%=basePath%>page/admin/appointQuestion.do" class="form-horizontal" method="post" id="zhipaiForm">
|
|
<div class="modal fade" id="zhipaiModal">
|
|
<div class="modal-dialog">
|
|
<div class="modal-content">
|
|
<div class="modal-header">
|
|
<button type="button" class="closeIcon close">
|
|
<span aria-hidden="true">×</span>
|
|
</button>
|
|
<h4 class="modal-title">问题指派</h4>
|
|
</div>
|
|
<div class="modal-body row">
|
|
<div class="col-xs-12">
|
|
<div class="form-group">
|
|
<label class="col-xs-2 control-label no-padding-right">指派给<span style="color:red;">*</span></label>
|
|
<div class="col-xs-8">
|
|
<input type="hidden" name="questionId" id="questionId2">
|
|
<select class="form-control" name="loginAccount" id="loginAccount" required="required">
|
|
<optgroup label="电子厂">
|
|
<c:forEach items="${factoryMap }" var="factory">
|
|
<option value="${factory.key }">${factory.key }【${factory.value }】</option>
|
|
</c:forEach>
|
|
</optgroup>
|
|
<optgroup label="鱼缸厂">
|
|
<c:forEach items="${venderMap }" var="vender">
|
|
<option value="${vender.key }">${vender.key }【${vender.value }】</option>
|
|
</c:forEach>
|
|
</optgroup>
|
|
</select>
|
|
</div>
|
|
</div>
|
|
<div class="form-group">
|
|
<label class="col-xs-2 control-label no-padding-right">反馈类型<span style="color:red;">*</span></label>
|
|
<div class="col-xs-8">
|
|
<select class="form-control" name="replyType">
|
|
<option value="<%=ReplyTypeEnum.zhiliang.getKey()%>"><%=ReplyTypeEnum.zhiliang.getValue()%></option>
|
|
<option value="<%=ReplyTypeEnum.shiyong.getKey()%>"><%=ReplyTypeEnum.shiyong.getValue()%></option>
|
|
</select>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="modal-footer">
|
|
<button type="button" class="closeIcon btn btn-default">关闭</button>
|
|
<button type="submit" id="zhipaiSaveBtn" class="btn btn-primary">保存</button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</form>
|
|
</div>
|
|
</div>
|
|
<!-- 设置工具 -->
|
|
<%@ include file="../htm/setting.jsp" %>
|
|
</div>
|
|
</div>
|
|
</body>
|
|
</html> |