移动新ui
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

760 lines
22 KiB

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%@ include file="/common/ctx.jsp"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<script src="${ctx }/hbcyjc/resource/js/jquery-3.7.0.min.js"></script>
<link type="text/css" rel="stylesheet" href="${ctx }/hbcyjc/resource/css/cjy_style.css" />
<script src="${ctx }/hbcyjc/resource/js/echarts/echarts.min.js"></script>
<script src="${ctx }/hbcyjc/resource/js/layer/layer.js"></script>
<title>旅游投诉分析</title>
</head>
<body style="height:1080px; width:1920px;">
<div class="xingk_nr"></div>
<div class="header">
<h3 class="header_bt">旅游投诉分析</h3>
<a href="#" class="nav" id="showLeft"><i class="nav_icon icon_caidan"></i>菜单</a> <a href="${ctx }/hbcyjc/index.jsp" class="nav_home"><i class="nav_icon icon_zhuye"></i>首页</a> </div>
<div class="zuoce cbp-spmenu-left" id="cbp-spmenu-s1">
<a href="${ctx }/hbcyjc/kll/index.jsp" class="on"><i class="nav_icon icon_zhuye"></i>客流量监测</a>
<a href="${ctx }/hbcyjc/basicresources/basicresources.jsp"><i class="nav_icon icon_zhuye"></i>旅游基础资源</a>
<a href="${ctx }/hbcyjc/network/network_all.jsp"><i class="nav_icon icon_zhuye"></i>旅游网评分析</a>
<a href="${ctx }/hbcyjc/complaint/complaint.jsp"><i class="nav_icon icon_zhuye"></i>旅游投诉分析</a>
<a href="http://211.90.38.239:8080/video/spjk.html"><i class="nav_icon icon_zhuye"></i>视频监控管理</a>
</div>
<div>
<!-- 搜索条件 -->
<div>
<input id="areacode" type="hidden" value="130700"/>
<input id="areaname" type="hidden"/>
</div>
<div class="index_left left mr20">
<div class="mt20">
<div class="w1363">
<h3 class="box_bt">投诉区域分析</h3>
<div class="box_top_s2"></div>
<div class="box_center_s2" style=" height:500px;">
<div class="w443 left ts_bg">
<table width="100%" cellpadding="0" cellspacing="0" class="jqk_1" id="tsqyfx">
</table>
</div>
<div class="tsfx_sl tous_j left">
<h4 class="sub_tit2">投诉量(件)</h4>
<div class="zdjq_l mt10">
<ul class="com_mnjd" id="tslqyhf">
</ul>
</div>
</div>
<div class="tsfx_sl left">
<h4 class="sub_tit2">受理率</h4>
<div class="zdjq_l mt10">
<ul class="com_mnjd" id="slv">
</ul>
</div>
</div>
<div style="clear:both"></div>
</div>
<div class="box_bottom_s2"></div>
</div>
</div>
</div>
<div class="index_right right">
<div class="box_index_r">
<h3 class="box_bt">全国投诉数量趋势图</h3>
<div class="box_top_s2"></div>
<div class="box_center_s2" style=" height:220px;">
<div id="complaintnum" style="height: 100%"></div>
</div>
<div class="box_bottom_s2"></div>
</div>
<div class="box_index_r">
<h3 class="box_bt">结案结果分析</h3>
<div class="box_top_s2"></div>
<div class="box_center_s2" style=" height:220px;">
<div id="resultlaint" style="width: 50%; height: 100%; display: inline-block"></div><div id="proportion" style="width: 50%; height: 100%; display: inline-block"></div>
</div>
<div class="box_bottom_s2"></div>
</div>
</div>
<div style="clear:both"></div>
</div>
<div class="index_left">
<div class="w443 left" style="margin-right:75px">
<h3 class="box_bt">投诉性别比例</h3>
<div class="box_top_s2"></div>
<div class="box_center_s2" style=" height:280px;">
<div class="ts_sex">
<div class="pic_sex" id="tsfx_sex">
</div>
</div>
</div>
<div class="box_bottom_s2"></div>
</div>
<div class="box_index left">
<h3 class="box_bt">投诉游客年龄比例</h3>
<div class="box_top_s"></div>
<div class="box_center_s" style=" height:280px;">
<div class="tsyk_nlbl" id="tsfx_age">
</div>
</div>
<div class="box_bottom_s"></div>
</div>
</div>
<div class="index_right right tsfx">
<div class="box_tjjq ">
<h3 class="tjjq_bt">投诉分类统计</h3>
<div class="tjjq_top"></div>
<div class="tjjq_center" style=" height:280px;">
<div class="w450_n left">
<h3 class="sub_cyan">投诉游客来源地分布Top5</h3>
<div class="tslyd_fb">
<ul class="com_mnjd" id="tslytop5">
</ul>
</div>
</div>
<div class="w400_n left" style="border:none; width:260px;">
<h3 class="sub_cyan">投诉游客渠道分布</h3>
<div class="tsqd_wp" id="tslkqd">
</div>
</div>
<div style="clear:both"></div>
</div>
<div class="tjjq_bottom"></div>
</div>
</div>
<div style="clear:both"></div>
</div>
</div>
<div>
<div class="box_index left">
<h3 class="box_bt">投诉游客年龄比例</h3>
<div class="box_top_s"></div>
<div class="box_center_s" style=" height:280px;">
<div class="tsyk_nlbl" id="place_complaint_map" style="height: 100%">
</div>
</div>
<div class="box_bottom_s"></div>
</div>
</div>
<script src="${ctx }/hbcyjc/complaint/complaint_map.js"></script>
<!--左侧滑动菜单-->
<script src="../resource/js/classie.js"></script>
<script>
var menuLeft = document.getElementById( 'cbp-spmenu-s1' ),
showLeft = document.getElementById( 'showLeft' ),
body = document.body;
showLeft.onclick = function() {
classie.toggle( this, 'active' );
classie.toggle( menuLeft, 'cbp-spmenu-open' );
disableOther( 'showLeft' );
};
function disableOther( button ) {
if( button !== 'showLeft' ) {
classie.toggle( showLeft, 'disabled' );
}
}
</script>
<script type="text/javascript">
var nowyear = new Date().getFullYear();
nowyear = 2018;
$(document).ready(function() {
complaintnum();
resultlaint();
proportion();
inittsqyfx();
initslv();
inittslqyhf();
inittslytop5();
inittslkqd();
queryTsfxSex();
queryTsfxAge();
var areacode = $("#areacode").val();
//显示各地的投诉量--地图
queryAllPlaceNum(areacode);
});
//全国投诉数量趋势图
function complaintnum(){
var jsondatanow = querycomplaintnum(nowyear);
var jsondatayes = querycomplaintnum(nowyear-1);
var dom = document.getElementById("complaintnum");
var myChart = echarts.init(dom);
var app = {};
option = null;
app.title = '多 X 轴示例';
var colors = ['#5793f3', '#d14a61', '#675bba'];
option = {
color: colors,
tooltip: {
trigger: 'none',
axisPointer: {
type: 'cross'
}
},
legend: {
data:['今年'],
textStyle: {
color: 'white'
}
},
grid: {
top: 70,
bottom: 50
},
xAxis: [
{
type: 'category',
axisTick: {
alignWithLabel: true
},
nameTextStyle: {
color: colors[1]
},
axisLine: {
onZero: false,
lineStyle: {
color: colors[1]
}
},
axisPointer: {
label: {
formatter: function (params) {
return '投诉量 ' + params.value
+ (params.seriesData.length ? ':' + params.seriesData[0].data : '');
}
}
},
data: ["1月", "2月", "3月", "4月", "5月", "6月", "7月", "8月", "9月", "10月", "11月", "12月"]
},
],
yAxis: [
{
type: 'value'
}
],
series: [
{
name:'今年',
type:'line',
smooth: true,
data: jsondatanow
}
]
};
if (option && typeof option === "object") {
myChart.setOption(option, true);
}
}
//2018年全国结案结果分析
function resultlaint(){
var jsondata = queryresultlaint();
var dom = document.getElementById("resultlaint");
var myChart = echarts.init(dom);
var app = {};
option = null;
app.title = '嵌套环形图';
option = {
title: {
show: true,
text: nowyear+'年\n全国结案结果分析',
left: 'center',
top: 'top',
textStyle: {
fontSize: 12,
color: '#fff'
}
},
tooltip: {
trigger: 'item',
formatter: "{a} <br/>{b}: {c} ({d}%)"
},
series: [
{
name:'结案结果',
type:'pie',
radius: [0, '30%'],
center: ['50%', '50%'],
color:["#114a7a"],
// '#2C94FC', '#00FFFF', '#44EAB1', '#7BDD43', '#FEBE12', '#EBEC2F', '#FF7C44', '#FA3E5F', '#6635EF', '#FFAFDA'
label: {
position: 'center',
textStyle: {
color: 'white',
fontSize: 12
},
},
labelLine: {
normal: {
show: false
}
},
tooltip: {
backgroundColor: 'transparent',
formatter: function () {
return null;
}
},
data:[{value:335, name:'结案结果'}]
},
{
name:'结案结果',
type:'pie',
radius: ['40%', '50%'],
startAngle: 30,
avoidLabelOverlap: true,
stillShowZeroSum: true,
center: ['50%', '50%'],
color: ['#FE7D38','#EF344B','#FFB51A', '#A7D01A', '#26C686', '#00D9D9', '#975BF9', '#DE62F0', '#F9429D'],
label: {
normal: {
formatter: ' {b|{b}} ',
show: true,
borderWidth: 1,
borderRadius: 4,
rich: {
hr: {
width: '60%',
borderWidth: 0.5,
height: 0
},
b: {
fontSize: 12,
lineHeight: 12
},
per: {
padding: [1, 2],
borderRadius: 2
}
}
}
},
labelLine: {
normal: {
show: true,
length: 0,
length2: 25,
}
},
data:jsondata
}
]
};;
if (option && typeof option === "object") {
myChart.setOption(option, true);
}
}
//2018年全国时限占比统计
function proportion(){
var jsondata = queryproportion();
var dom = document.getElementById("proportion");
var myChart = echarts.init(dom);
var app = {};
option = null;
app.title = '嵌套环形图';
option = {
title: {
show: true,
text: nowyear+'年\n全国时限占比统计',
left: 'center',
top: 'top',
textStyle: {
fontSize: 12,
color: '#fff'
}
},
tooltip: {
trigger: 'item',
formatter: "{a} <br/>{b}: {c} ({d}%)"
},
series: [
{
name:'结案结果',
type:'pie',
selectedMode: 'single',
radius: [0, '30%'],
center: ['50%', '50%'],
color:["#114a7a"],
label: {
position: 'center',
textStyle: {
color: 'white',
fontSize: 12
},
},
labelLine: {
normal: {
show: false
}
},
tooltip: {
backgroundColor: 'transparent',
formatter: function () {
return null;
}
},
data:[{value:335, name:'结案结果'}]
},
{
name:'结案结果',
type:'pie',
radius: ['40%', '50%'],
startAngle: 30,
avoidLabelOverlap: true,
stillShowZeroSum: true,
center: ['50%', '50%'],
color: ['#EF344B', '#FFB51A', '#FE7D38', '#A7D01A', '#26C686', '#00D9D9', '#975BF9', '#DE62F0', '#F9429D'],
label: {
normal: {
formatter: ' {b|{b}} ',
show: true,
borderWidth: 1,
borderRadius: 4,
rich: {
hr: {
width: '60%',
borderWidth: 0.5,
height: 0
},
b: {
fontSize: 12,
lineHeight: 12
},
per: {
padding: [1, 2],
borderRadius: 2
}
}
}
},
labelLine: {
normal: {
show: true,
length: 0,
length2: 25,
}
},
data:jsondata
}
]
};;
if (option && typeof option === "object") {
myChart.setOption(option, true);
}
}
function querycomplaintnum(year){
var jsondata = []
$.ajax({
url:'${ctx}/tsfxdatanum/querycomplaintnum.do',
data:{datetype:year},
type:'post',
dataType : 'json',
async:false,
success:function(data){
for(var j = 0;j < data.length; ++j){
jsondata.push(data[j].tsl);
}
}
});
return jsondata;
}
function queryresultlaint(){
var jsondata = []
$.ajax({
url:'${ctx}/tsfxjaresult/queryresultlaint.do',
type:'post',
dataType : 'json',
async:false,
success:function(data){
for(var j = 0;j < data.length; ++j){
jsondata.push(data[j]);
}
}
});
return jsondata;
}
function queryproportion(){
var jsondata = []
$.ajax({
url:'${ctx}/tsfxjaresultrate/queryproportion.do',
type:'post',
dataType : 'json',
async:false,
success:function(data){
for(var j = 0;j < data.length; ++j){
jsondata.push(data[j]);
}
}
});
return jsondata;
}
//初始化投诉区域分析
function inittsqyfx(){
var htmllist = "";
$.ajax({
url:'${ctx}/tsfxdatanum/querytsqyfx.do',
data:{datetype:nowyear},
type:'post',
dataType : 'json',
async:false,
success:function(data){
htmllist = htmllist+"<tr>";
htmllist = htmllist+"<th width=\"30%\" style=\" height:61px;\"></th>";
htmllist = htmllist+"<th width=\"35%\"><p>"+nowyear+"年</p></th>";
htmllist = htmllist+"<th width=\"35%\"><p>同比</p></th>";
htmllist = htmllist+"</tr>";
htmllist = htmllist+"<td><p>投诉量</p></td>";
htmllist = htmllist+"<td><a href='javascript:details(\"\")'><p>"+data[0].tsl+"</p></a></td>";
if(data[1].tstbtype=="UP"){
htmllist = htmllist+"<td><p class=\"col_sred\">"+data[1].tsl+"</p></td>";
}else{
htmllist = htmllist+"<td><p class=\"col_sgen\">"+data[1].tsl+"</p></td>";
}
htmllist = htmllist+"</tr>";
htmllist = htmllist+"<tr>";
htmllist = htmllist+"<td><p>受理量</p></td>";
htmllist = htmllist+"<td><p>"+data[0].sll+"</p></td>";
if(data[1].tstbtype=="UP"){
htmllist = htmllist+"<td><p class=\"col_sred\">"+data[1].sll+"</p></td>";
}else{
htmllist = htmllist+"<td><p class=\"col_sgen\">"+data[1].sll+"</p></td>";
}
htmllist = htmllist+"</tr>";
htmllist = htmllist+"<tr>";
htmllist = htmllist+"<td><p>受理率</p></td>";
htmllist = htmllist+"<td><p>"+data[0].slv+"</p></td>";
if(data[1].slvtbtype=="UP"){
htmllist = htmllist+"<td><p class=\"col_sred\">"+data[1].slv+"</p></td>";
}else{
htmllist = htmllist+"<td><p class=\"col_sgen\">"+data[1].slv+"</p></td>";
}
htmllist = htmllist+"</tr>";
htmllist = htmllist+"<tr>";
htmllist = htmllist+"<td><p>结案量</p></td>";
htmllist = htmllist+"<td><p>"+data[0].jal+"</p></td>";
if(data[1].jatbtype=="UP"){
htmllist = htmllist+"<td><p class=\"col_sred\">"+data[1].jal+"</p></td>";
}else{
htmllist = htmllist+"<td><p class=\"col_sgen\">"+data[1].jal+"</p></td>";
}
htmllist = htmllist+"</tr>";
htmllist = htmllist+"<tr>";
htmllist = htmllist+"<td><p>结案时长</p></td>";
htmllist = htmllist+"<td><p>"+data[0].jasc+"</p></td>";
if(data[1].jasctbtype=="UP"){
htmllist = htmllist+"<td><p class=\"col_sred\">"+data[1].jasc+"</p></td>";
}else{
htmllist = htmllist+"<td><p class=\"col_sgen\">"+data[1].jasc+"</p></td>";
}
htmllist = htmllist+"</tr>";
htmllist = htmllist+"<tr>";
htmllist = htmllist+"<td><p>法定时限结案率</p></td>";
htmllist = htmllist+"<td><p>"+data[0].fdsx+"</p></td>";
if(data[1].fdsxtbtype=="UP"){
htmllist = htmllist+"<td><p class=\"col_sred\">"+data[1].fdsx+"</p></td>";
}else{
htmllist = htmllist+"<td><p class=\"col_sgen\">"+data[1].fdsx+"</p></td>";
}
htmllist = htmllist+"</tr>";
}
});
$("#tsqyfx").html(htmllist);
}
//受理率
function initslv(){
var htmllist = "";
$.ajax({
url:'${ctx}/tsfxdatanum/queryslv.do',
data:{datetype:nowyear},
type:'post',
dataType : 'json',
async:false,
success:function(data){
for(var i=0;i<data.length;i++){
htmllist = htmllist+"<li>";
htmllist = htmllist+"<a href='javascript:details(\""+data[i].areacode+"\")'><h3><span>"+data[i].stattype+"</span></h3>";
htmllist = htmllist+"<span class=\"jd_degnum\">"+data[i].slv+"</span>";
htmllist = htmllist+"<p class=\"mnjd_bg\"> <span class=\"wd_num\" style=\"width:"+data[i].slv+"\"></span> </p></a>";
htmllist = htmllist+"</li>";
}
}
});
$("#slv").html(htmllist);
}
//投诉量(件)
function inittslqyhf(){
var htmllist = "";
$.ajax({
url:'${ctx}/tsfxdatanum/querytslqyhf.do',
data:{datetype:nowyear},
type:'post',
dataType : 'json',
async:false,
success:function(data){
for(var i=0;i<data.length;i++){
htmllist = htmllist+"<li>";
htmllist = htmllist+"<a href='javascript:details(\""+data[i].areacode+"\")'><h3><span>"+data[i].stattype+"</span></h3>";
htmllist = htmllist+"<span class=\"jd_degnum\">"+data[i].tsl+"</span>";
htmllist = htmllist+"<p class=\"mnjd_bg\"> <span class=\"wd_num\" style=\"width:"+data[i].tslzb+"\"></span> </p></a>";
htmllist = htmllist+"</li>";
}
}
});
$("#tslqyhf").html(htmllist);
}
//投诉游客来源地分布Top5
function inittslytop5(){
var htmllist = "";
$.ajax({
url:'${ctx}/tsfxsourcetop5/querytslytop5.do',
type:'post',
data:{datetype:nowyear},
dataType : 'json',
async:false,
success:function(data){
for(var i=0;i<data.length;i++){
if(i>3){
htmllist = htmllist+"<li>";
}else{
htmllist = htmllist+"<li class=\"col_fir_4\">";
}
htmllist = htmllist+"<h3><span></span>"+data[i].sourcename+"</h3>";
htmllist = htmllist+"<span class=\"jd_degnum\">"+data[i].sourcenum+"</span>";
htmllist = htmllist+"<p class=\"mnjd_bg\"> <span class=\"wd_num\" style=\"width:"+data[i].sourcenum+"\"></span> </p>";
htmllist = htmllist+"</li>";
}
}
});
$("#tslytop5").html(htmllist);
}
//投诉游客渠道分布
function inittslkqd(){
var htmllist = "";
$.ajax({
url:'${ctx}/tsfxchannel/querytslkqd.do',
type:'post',
data:{datetype:nowyear},
dataType : 'json',
async:false,
success:function(data){
htmllist = htmllist+"<div class=\"qd_gov\">";
htmllist = htmllist+"<h4>"+data[0].channelname+"</h4>";
htmllist = htmllist+"<p>"+data[0].channelnum+"</p>";
htmllist = htmllist+"</div>";
htmllist = htmllist+"<div class=\"qd_12301\">";
htmllist = htmllist+"<h4>"+data[1].channelname+"</h4>";
htmllist = htmllist+"<p>"+data[1].channelnum+"</p>";
htmllist = htmllist+"</div>";
htmllist = htmllist+"<div class=\"qd_oth\">";
htmllist = htmllist+"<p>"+data[2].channelnum+"</p>";
htmllist = htmllist+"<h4>"+data[2].channelname+"</h4>";
htmllist = htmllist+"</div>";
}
});
$("#tslkqd").html(htmllist);
}
//投诉游客性别比例
function queryTsfxSex(){
$.ajax({
type : 'POST',
url : "${ctx}/tsfxsex/list.do",
dataType : 'json',
success : function(data) {
var tsfx_sex_html = "";
if (data) {
tsfx_sex_html += '<img src="../resource/img2/sex.png" />' +
'<div class="txt_sex">' +
'<h3>女性<span>'+data[0].girlnum+'%</span></h3>' +
'<h4><span>'+data[0].boynum+'%</span>男性</h4>' +
'</div>' +
'<div class="sex_wp">' +
'<div class="female_bfb" style="width:'+data[0].girlnum+'%;"></div>' +
'</div>';
}
$("#tsfx_sex").html(tsfx_sex_html);
}
});
}
//投诉游客年龄比例
function queryTsfxAge(){
$.ajax({
type : 'POST',
url : "${ctx}/tsfxage/list.do",
dataType : 'json',
success : function(data) {
var tsfx_age_html = "";
if (data) {
tsfx_age_html += '<div class="yk_nian">' +
'<img src="../resource/img2/cd_l.png" class="yk_img" />' +
'<div class="fudiv nian_shao">' +
'<div class="hx_block" style="width:'+data[0].youngnum+'%"><span>'+data[0].youngnum+'%</span></div><h4>少年</h4></div>' +
'</div>' +
'<div class="yk_nian">' +
'<img src="../resource/img2/yg_l.png" class="yk_img" />' +
'<div class="fudiv nian_qing">' +
'<div class="hx_block" style="width:'+data[0].youthnum+'%"><span>'+data[0].youthnum+'%</span></div><h4>青年</h4></div>' +
'</div>' +
'<div class="yk_nian">' +
'<img src="../resource/img2/me_l.png" class="yk_img" />' +
'<div class="fudiv nian_zhong">' +
'<div class="hx_block" style="width:'+data[0].middlenum+'%"><span>'+data[0].middlenum+'%</span></div><h4>中年</h4></div>' +
'</div>' +
'<div class="yk_nian">' +
'<img src="../resource/img2/ol_l.png" class="yk_img" />' +
'<div class="fudiv nian_lao">' +
'<div class="hx_block" style="width:'+data[0].oldnum+'%"><span>'+data[0].oldnum+'%</span></div><h4>老年</h4></div>' +
'</div>';
}
$("#tsfx_age").html(tsfx_age_html);
}
});
}
//去投诉量、受理率详情页
function details(areacode){
layer.open({
type : 2,
title : "",
anim : 2,
area : [ '90%', '90%' ],
content : "${ctx}/indexaccuse/gotolist.do?areacode="+areacode
});
}
</script>
</body>
</html>