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.
609 lines
14 KiB
609 lines
14 KiB
|
|
/**
|
|
* 查询综合概况
|
|
*/
|
|
function queryCompositeDetail_hotel() {
|
|
$.ajax({
|
|
type : 'POST',
|
|
url : _CTX + "/indexcompositeinfo/queryCompositeInfo.do?hstype=2&compositetime="+composite_time+"&datetype="+date_type,
|
|
dataType : 'json',
|
|
success : function(data) {
|
|
var composite_detail_good = [];
|
|
var composite_detail_middle = [];
|
|
var composite_detail_bad = [];
|
|
var composite_detail_total = [];
|
|
|
|
if (data.length>0) {
|
|
$("#total").html(data[0].total);
|
|
$("#goodNum").html('好评'+data[0].good);
|
|
$("#badNum").html('差评'+data[0].bad);
|
|
$("#grade").html(data[0].grade+'分');
|
|
$("#grade_avg").html(data[0].grade+'分');
|
|
|
|
for(var i=data.length-1;i>=0;i--){
|
|
composite_detail_good.push(data[i].good);
|
|
composite_detail_middle.push(data[i].middle);
|
|
composite_detail_bad.push(data[i].bad);
|
|
composite_detail_total.push(data[i].total);
|
|
}
|
|
}else{
|
|
$("#total").html(0);
|
|
$("#goodNum").html('好评0');
|
|
$("#badNum").html('差评0');
|
|
$("#grade").html('0分');
|
|
$("#grade_avg").html('0分');
|
|
}
|
|
if(date_type != "YEAR"){
|
|
showComposite_hotel(composite_detail_good, composite_detail_middle, composite_detail_bad, composite_detail_total);
|
|
}else{
|
|
showComposite_year_hotel(composite_detail_good, composite_detail_middle, composite_detail_bad, composite_detail_total);
|
|
}
|
|
}
|
|
});
|
|
}
|
|
|
|
//显示 综合概况 柱状图--月份或季度
|
|
function showComposite_hotel(composite_detail_good, composite_detail_middle, composite_detail_bad, composite_detail_total) {
|
|
var dom = document.getElementById("composite_detail");
|
|
var composite_chart = echarts.init(dom);
|
|
|
|
var num = 0;
|
|
|
|
var option = {
|
|
color: ['#36c1a9', '#dea61e', '#e46b4f'],
|
|
tooltip : {
|
|
trigger: 'axis',
|
|
axisPointer : { // 坐标轴指示器,坐标轴触发有效
|
|
type : 'shadow' // 默认为直线,可选为:'line' | 'shadow'
|
|
}
|
|
},
|
|
legend: {
|
|
data: ['好评','中评','差评'],
|
|
textStyle:{
|
|
color: '#FFFFFF'
|
|
}
|
|
},
|
|
grid: {
|
|
left: '3%',
|
|
right: '4%',
|
|
bottom: '3%',
|
|
containLabel: true
|
|
},
|
|
xAxis: {
|
|
type: 'value',
|
|
axisLabel:{
|
|
show: true,
|
|
textStyle:{
|
|
color: '#FFFFFF'
|
|
}
|
|
}
|
|
},
|
|
yAxis: {
|
|
type: 'category',
|
|
data: ['同比','环比','当前'],
|
|
axisLabel:{
|
|
show: true,
|
|
textStyle:{
|
|
color: '#FFFFFF'
|
|
}
|
|
}
|
|
},
|
|
series: [
|
|
{
|
|
name: '好评',
|
|
type: 'bar',
|
|
stack: '总量',
|
|
label: {
|
|
normal: {
|
|
show: false
|
|
}
|
|
},
|
|
data: composite_detail_good
|
|
},
|
|
{
|
|
name: '中评',
|
|
type: 'bar',
|
|
stack: '总量',
|
|
label: {
|
|
normal: {
|
|
show: false
|
|
}
|
|
},
|
|
data: composite_detail_middle
|
|
},
|
|
{
|
|
name: '差评',
|
|
type: 'bar',
|
|
stack: '总量',
|
|
label: {
|
|
normal: {
|
|
show: true,
|
|
position: 'right',
|
|
formatter: function(params) {
|
|
var data = composite_detail_total[num];
|
|
num++;
|
|
return data;
|
|
}
|
|
},
|
|
},
|
|
data: composite_detail_bad
|
|
}
|
|
]
|
|
};
|
|
if (option && typeof option === "object") {
|
|
composite_chart.setOption(option, true);
|
|
}
|
|
}
|
|
|
|
//显示 综合概况 柱状图--年
|
|
function showComposite_year_hotel(composite_detail_good, composite_detail_middle, composite_detail_bad, composite_detail_total) {
|
|
var dom = document.getElementById("composite_detail");
|
|
var composite_chart = echarts.init(dom);
|
|
|
|
var num = 0;
|
|
|
|
var option = {
|
|
color: ['#36c1a9', '#dea61e', '#e46b4f'],
|
|
tooltip : {
|
|
trigger: 'axis',
|
|
axisPointer : { // 坐标轴指示器,坐标轴触发有效
|
|
type : 'shadow' // 默认为直线,可选为:'line' | 'shadow'
|
|
}
|
|
},
|
|
legend: {
|
|
data: ['好评','中评','差评'],
|
|
textStyle:{
|
|
color: '#FFFFFF'
|
|
}
|
|
},
|
|
grid: {
|
|
left: '3%',
|
|
right: '4%',
|
|
bottom: '3%',
|
|
containLabel: true
|
|
},
|
|
xAxis: {
|
|
type: 'value',
|
|
axisLabel:{
|
|
show: true,
|
|
textStyle:{
|
|
color: '#FFFFFF'
|
|
}
|
|
}
|
|
},
|
|
yAxis: {
|
|
type: 'category',
|
|
data: ['同比','当前'],
|
|
axisLabel:{
|
|
show: true,
|
|
textStyle:{
|
|
color: '#FFFFFF'
|
|
}
|
|
}
|
|
},
|
|
series: [ {
|
|
name: '好评',
|
|
type: 'bar',
|
|
stack: '总量',
|
|
label: {
|
|
normal: {
|
|
show: false
|
|
}
|
|
},
|
|
data: composite_detail_good
|
|
}, {
|
|
name: '中评',
|
|
type: 'bar',
|
|
stack: '总量',
|
|
label: {
|
|
normal: {
|
|
show: false
|
|
}
|
|
},
|
|
data: composite_detail_middle
|
|
}, {
|
|
name: '差评',
|
|
type: 'bar',
|
|
stack: '总量',
|
|
label: {
|
|
normal: {
|
|
show: true,
|
|
position: 'right',
|
|
formatter: function(params) {
|
|
var data = composite_detail_total[num];
|
|
num++;
|
|
return data;
|
|
}
|
|
},
|
|
},
|
|
data: composite_detail_bad
|
|
} ]
|
|
};
|
|
if (option && typeof option === "object") {
|
|
composite_chart.setOption(option, true);
|
|
}
|
|
}
|
|
|
|
|
|
/**
|
|
* 查询游客关注维度
|
|
*/
|
|
function queryPeopleDimension_hotel(){
|
|
$.ajax({
|
|
type : 'POST',
|
|
url : _CTX + "/indexhotelgood/queryHotelDimension.do?starttime="+starttime+"&endtime="+endtime,
|
|
dataType : 'json',
|
|
success : function(data) {
|
|
var positiveArr = [];//正面
|
|
var positiveSpotArr = [];//正面百分比
|
|
var negativeArr = [];//负面
|
|
var negativeSpotArr = [];//负面百分比
|
|
var my_indicator = [];//显示名称
|
|
if (data.length>0) {
|
|
var f_dimension_name = data[0].dname + ',' + data[1].dname + ',' + data[2].dname;
|
|
$("#f_dimension_name").html(f_dimension_name);
|
|
$("#good_dimension_name").html(f_dimension_name);
|
|
var s_dimension_name = data[data.length-1].dname + ',' + data[data.length-2].dname;
|
|
$("#s_dimension_name").html(s_dimension_name);
|
|
$("#bed_dimension_name").html(s_dimension_name);
|
|
|
|
|
|
for (var i = 0; i < data.length; i++) {
|
|
positiveArr.push(data[i].znum);
|
|
positiveSpotArr.push(data[i].zRate);
|
|
negativeArr.push(data[i].fnum);
|
|
negativeSpotArr.push(data[i].fRate);
|
|
my_indicator.push({text : data[i].dname, max : 100});
|
|
}
|
|
}else{
|
|
$("#f_dimension_name").html('');
|
|
$("#good_dimension_name").html('');
|
|
$("#s_dimension_name").html('');
|
|
$("#bed_dimension_name").html('');
|
|
}
|
|
showPeopleDimension_hotel(positiveArr, positiveSpotArr, negativeArr, negativeSpotArr, my_indicator);
|
|
}
|
|
});
|
|
}
|
|
|
|
//显示游客关注维度 雷达图
|
|
function showPeopleDimension_hotel(positiveArr, positiveSpotArr, negativeArr, negativeSpotArr, my_indicator) {
|
|
var dom = document.getElementById("people_dimension");
|
|
var people_dimension_chart = echarts.init(dom);
|
|
|
|
var option = {
|
|
tooltip : {
|
|
formatter: function (params) {
|
|
var name = params.name;
|
|
var show_data_array = [];
|
|
var show_data_spot_array = []
|
|
if(name == "正面"){
|
|
show_data_array = positiveArr;
|
|
show_data_spot_array = positiveSpotArr;
|
|
}else{
|
|
show_data_array = negativeArr;
|
|
show_data_spot_array = negativeSpotArr;
|
|
}
|
|
var data_name = '';
|
|
for(var i=0;i<show_data_array.length;i++){
|
|
data_name += my_indicator[i].text+':'+show_data_array[i]+'('+show_data_spot_array[i]+'%)<br/>';
|
|
}
|
|
return name + '<br/>' + data_name
|
|
}
|
|
},
|
|
legend : {
|
|
type: 'scroll',
|
|
orient: 'vertical',
|
|
data : ['正面', '负面'],
|
|
top: '20%',
|
|
left: '0.5%',
|
|
textStyle : {
|
|
color : '#fff'
|
|
},
|
|
},
|
|
color : [ '#ec9e05', '#46dff3' ], // 调色盘颜色列表。
|
|
radar : [ {
|
|
indicator : my_indicator,
|
|
center : [ '50%', '50%' ],
|
|
radius: '60%',
|
|
shape : 'polygon',
|
|
name : {
|
|
formatter : '{value}',
|
|
textStyle : {
|
|
color : '#fff'
|
|
}
|
|
},
|
|
splitArea : {
|
|
areaStyle : {
|
|
color : [ '#0E2A43',
|
|
'#0E2A43', '#0E2A43',
|
|
'#0E2A43', '#0E2A43'
|
|
],
|
|
shadowColor : 'rgba(0, 0, 0, 0.3)',
|
|
shadowBlur : 10
|
|
}
|
|
},
|
|
axisLine : {
|
|
lineStyle : {
|
|
color : 'rgba(255, 255, 255, 0.5)'
|
|
}
|
|
},
|
|
splitLine : {
|
|
lineStyle : {
|
|
color : 'rgba(255, 255, 255, 0.5)'
|
|
}
|
|
}
|
|
} ],
|
|
series : [ {
|
|
name : '雷达图',
|
|
type : 'radar',
|
|
data : [ {
|
|
name : '正面',
|
|
value : positiveSpotArr,
|
|
}, {
|
|
name : '负面',
|
|
value : negativeSpotArr,
|
|
symbol : 'rect',
|
|
symbolSize : 0,
|
|
areaStyle : {
|
|
normal : {
|
|
color : 'rgba(255, 255, 255, 0.5)'
|
|
}
|
|
},
|
|
} ]
|
|
} ]
|
|
};
|
|
if (option && typeof option === "object") {
|
|
people_dimension_chart.setOption(option, true);
|
|
}
|
|
}
|
|
|
|
|
|
/**
|
|
* 查询正面评论热词
|
|
*/
|
|
function queryPositiveWord_hotel(){
|
|
$.ajax({
|
|
type : 'POST',
|
|
url : _CTX + "/network/queryHotWords.do?n_type=2&n_state=1&starttime="+starttime+"&endtime="+endtime,
|
|
dataType : 'json',
|
|
success : function(data) {
|
|
var netWordArr = [];
|
|
if (data.length>0) {
|
|
var words = '';
|
|
var i = 0;
|
|
for (; i < data.length; i++) {
|
|
netWordArr.push({value : data[i].nNum, name : data[i].nWord});
|
|
words += data[i].nWord
|
|
}
|
|
$("#good_words").html('<strong class="col_qing">'+words+'</strong>成为本季度游客<strong class="col_huang">好评</strong>使用频率最高的'+i+'个词');
|
|
}else{
|
|
$("#good_words").html('');
|
|
}
|
|
showPositiveWord_hotel(netWordArr);
|
|
}
|
|
});
|
|
}
|
|
|
|
//显示正面评论热词 词云图
|
|
function showPositiveWord_hotel(netWordArr){
|
|
var dom = document.getElementById("positive_word");
|
|
var positive_word_chart = echarts.init(dom);
|
|
|
|
var option = {
|
|
tooltip : {},
|
|
series : [ {
|
|
type : 'wordCloud',
|
|
gridSize : 2,
|
|
sizeRange : [ 12, 50 ],
|
|
rotationRange : [ -90, 90 ],
|
|
shape : 'pentagon',
|
|
width : 600,
|
|
height : 400,
|
|
drawOutOfBound : true,
|
|
textStyle : {
|
|
normal : {
|
|
color : function() {
|
|
return 'rgb(' + [
|
|
Math.round(Math.random() * 160),
|
|
Math.round(Math.random() * 160),
|
|
Math.round(Math.random() * 160)
|
|
].join(',') + ')';
|
|
}
|
|
},
|
|
emphasis : {
|
|
shadowBlur : 10,
|
|
shadowColor : '#333'
|
|
}
|
|
},
|
|
data : netWordArr
|
|
} ]
|
|
};
|
|
if (option && typeof option === "object") {
|
|
positive_word_chart.setOption(option, true);
|
|
}
|
|
}
|
|
|
|
|
|
/**
|
|
* 查询负面评论热词
|
|
*/
|
|
function queryNegativeWord_hotel(){
|
|
$.ajax({
|
|
type : 'POST',
|
|
url : _CTX + "/network/queryHotWords.do?n_type=2&n_state=2&starttime="+starttime+"&endtime="+endtime,
|
|
dataType : 'json',
|
|
success : function(data) {
|
|
var netWordArr = [];
|
|
if (data.length>0) {
|
|
var words = '';
|
|
var i = 0;
|
|
for (; i < data.length; i++) {
|
|
netWordArr.push({value : data[i].nNum, name : data[i].nWord});
|
|
words += data[i].nWord;
|
|
}
|
|
$("#bed_words").html('<strong class="col_qing">'+words+'</strong>成为本季度游客<strong class="col_huang">差评</strong>使用频率最高的'+i+'个词');
|
|
}else{
|
|
$("#bed_words").html('');
|
|
}
|
|
showNegativeWord_hotel(netWordArr);
|
|
}
|
|
});
|
|
}
|
|
|
|
//显示负面评论热词 词云图
|
|
function showNegativeWord_hotel(netWordArr){
|
|
var dom = document.getElementById("negative_word");
|
|
var positive_word_chart = echarts.init(dom);
|
|
|
|
var option = {
|
|
tooltip : {},
|
|
series : [ {
|
|
type : 'wordCloud',
|
|
gridSize : 2,
|
|
sizeRange : [ 12, 50 ],
|
|
rotationRange : [ -90, 90 ],
|
|
shape : 'pentagon',
|
|
width : 600,
|
|
height : 400,
|
|
drawOutOfBound : true,
|
|
textStyle : {
|
|
normal : {
|
|
color : function() {
|
|
return 'rgb(' + [
|
|
Math.round(Math.random() * 160),
|
|
Math.round(Math.random() * 160),
|
|
Math.round(Math.random() * 160)
|
|
].join(',') + ')';
|
|
}
|
|
},
|
|
emphasis : {
|
|
shadowBlur : 10,
|
|
shadowColor : '#333'
|
|
}
|
|
},
|
|
data : netWordArr
|
|
} ]
|
|
};
|
|
if (option && typeof option === "object") {
|
|
positive_word_chart.setOption(option, true);
|
|
}
|
|
}
|
|
|
|
|
|
//显示评价来源分析-柱状图
|
|
function showCriticismSource_hotel(xAxisData, seriesData, backgroundData, colorData){
|
|
var dom = document.getElementById("criticism_source");
|
|
var criticism_source_chart = echarts.init(dom);
|
|
|
|
var option = {
|
|
grid : {
|
|
left : '0%',
|
|
right : '0%',
|
|
top : '5%',
|
|
height : '80%',
|
|
},
|
|
xAxis : [ {
|
|
type : 'category',
|
|
data : xAxisData,
|
|
axisLine : {
|
|
show : false
|
|
},
|
|
axisTick : {
|
|
show : false
|
|
},
|
|
axisLabel : {
|
|
show : true,
|
|
color : '#ccc',
|
|
}
|
|
} ],
|
|
yAxis : [ {
|
|
type : 'value',
|
|
show : false,
|
|
}, {
|
|
type : 'value',
|
|
show : false,
|
|
} ],
|
|
series : [ {
|
|
name : '',
|
|
type : 'bar',
|
|
barWidth : '30%',
|
|
label : {
|
|
normal : {
|
|
show : true,
|
|
position : 'top',
|
|
color : colorData,
|
|
formatter : '{c}'
|
|
}
|
|
},
|
|
itemStyle : {
|
|
normal : {
|
|
barBorderRadius : 5, //柱状角成椭圆形
|
|
/*color : new echarts.graphic.LinearGradient(
|
|
0, 0, 0, 1, [ {
|
|
offset : 0,
|
|
color : '#00feff'
|
|
}, {
|
|
offset : 0.5,
|
|
color : '#027eff'
|
|
}, {
|
|
offset : 1,
|
|
color : '#0286ff'
|
|
} ]
|
|
)*/
|
|
//每个柱子的颜色即为colorList数组里的每一项,如果柱子数目多于colorList的长度,则柱子颜色循环使用该数组
|
|
color : function(params) {
|
|
//有几个柱子, 就有几个颜色值
|
|
/*var colorList = [
|
|
[ '#f36847', '#203a66' ],
|
|
[ '#ddad35', '#203a66' ],
|
|
[ '#636daa', '#203a66' ],
|
|
[ '#00feff', '#203a66' ],
|
|
[ '#00feff', '#203a66' ],
|
|
[ '#00feff', '#203a66' ],
|
|
[ '#00feff', '#203a66' ],
|
|
[ '#00feff', '#203a66' ],
|
|
[ '#00feff', '#203a66' ],
|
|
[ '#00feff', '#203a66' ]
|
|
];*/
|
|
var colorList = [];
|
|
for (var i = 0; i < colorData.length; i++) {
|
|
var singleColor = [];
|
|
singleColor.push(colorData[i]);
|
|
singleColor.push('#203a66');
|
|
colorList.push(singleColor);
|
|
}
|
|
var index = params.dataIndex;
|
|
return new echarts.graphic.LinearGradient(0, 0, 0, 1,
|
|
[ {
|
|
offset : 0,
|
|
color : colorList[index][0]
|
|
}, {
|
|
offset : 1,
|
|
color : colorList[index][1]
|
|
} ]
|
|
);
|
|
},
|
|
}
|
|
},
|
|
data : seriesData,
|
|
}, {
|
|
name : '背景',
|
|
type : 'bar',
|
|
barWidth : '40%',
|
|
barGap : '-115%',
|
|
data : backgroundData,
|
|
itemStyle : {
|
|
normal : {
|
|
color : 'rgba(255,255,255,0.1)'
|
|
}
|
|
},
|
|
} ]
|
|
};
|
|
if (option && typeof option === "object") {
|
|
criticism_source_chart.setOption(option, true);
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|