居民统计
This commit is contained in:
@@ -40,7 +40,7 @@ export default {
|
|||||||
component: Message
|
component: Message
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
tabIndex: 0,
|
tabIndex: 2,
|
||||||
areaId: '',
|
areaId: '',
|
||||||
areaName: '',
|
areaName: '',
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -33,58 +33,113 @@ export default {
|
|||||||
},
|
},
|
||||||
series: [
|
series: [
|
||||||
{
|
{
|
||||||
name: 'Access From',
|
name: '特殊人群',
|
||||||
type: 'pie',
|
type: 'pie',
|
||||||
radius: ['40%', '70%'],
|
radius: ['30%', '60%'],
|
||||||
|
itemStyle: {
|
||||||
|
normal: {
|
||||||
|
color: function (colors) {
|
||||||
|
var colorList = ['#83B5F7', '#7E94F6', '#85E3D5', '#2891FF'];
|
||||||
|
return colorList[colors.dataIndex];
|
||||||
|
}
|
||||||
|
},
|
||||||
|
},
|
||||||
data: [
|
data: [
|
||||||
{ value: 1048, name: 'Search Engine' },
|
{ value: 100, name: '吸毒人员100' },
|
||||||
{ value: 735, name: 'Direct' },
|
{ value: 150, name: '高龄老人150' },
|
||||||
{ value: 580, name: 'Email' },
|
{ value: 80, name: '刑满释放人员80' },
|
||||||
{ value: 484, name: 'Union Ads' },
|
{ value: 84, name: '退伍军人84' },
|
||||||
{ value: 300, name: 'Video Ads' }
|
|
||||||
],
|
],
|
||||||
emphasis: {
|
emphasis: {
|
||||||
itemStyle: {
|
itemStyle: {
|
||||||
shadowBlur: 10,
|
shadowBlur: 10,
|
||||||
shadowOffsetX: 0,
|
shadowOffsetX: 0,
|
||||||
shadowColor: 'rgba(0, 0, 0, 0.5)'
|
shadowColor: 'rgba(0, 0, 0, 0.5)',
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
};
|
};
|
||||||
this.echartDataSpecial.setOption(option)
|
this.echartDataSpecial.setOption(option)
|
||||||
this.echartDataSex.setOption(option)
|
|
||||||
|
|
||||||
var option2 = {
|
var option2 = {
|
||||||
|
grid: {
|
||||||
|
top: '10%',
|
||||||
|
left: '4%',
|
||||||
|
right: '4%',
|
||||||
|
bottom: '10%',
|
||||||
|
containLabel: true
|
||||||
|
},
|
||||||
xAxis: {
|
xAxis: {
|
||||||
type: 'category',
|
type: 'category',
|
||||||
data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']
|
data: ['10岁以下', '10-18岁', '18-65岁', '65-80岁', '80岁以上']
|
||||||
},
|
},
|
||||||
yAxis: {
|
yAxis: {
|
||||||
type: 'value'
|
type: 'value'
|
||||||
},
|
},
|
||||||
series: [
|
series: [
|
||||||
{
|
{
|
||||||
|
itemStyle: {
|
||||||
|
normal: {
|
||||||
|
color: ['#0072FF'],
|
||||||
|
label: {
|
||||||
|
show: true, //开启显示数值
|
||||||
|
position: 'top', //数值在上方显示
|
||||||
|
textStyle: { //数值样式
|
||||||
|
color: '#919191', //字体颜色
|
||||||
|
fontSize: 14 //字体大小
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
data: [
|
data: [
|
||||||
120,
|
136, 195, 162, 138,
|
||||||
{
|
{
|
||||||
value: 200,
|
value: 98,
|
||||||
itemStyle: {
|
itemStyle: {
|
||||||
color: '#a90000'
|
color: '#F09535'
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
150,
|
|
||||||
80,
|
|
||||||
70,
|
|
||||||
110,
|
|
||||||
130
|
|
||||||
],
|
],
|
||||||
type: 'bar'
|
type: 'bar',
|
||||||
|
barWidth : 20,
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
};
|
};
|
||||||
this.echartDataAge.setOption(option2)
|
this.echartDataAge.setOption(option2)
|
||||||
|
|
||||||
|
var option3 = {
|
||||||
|
tooltip: {
|
||||||
|
trigger: 'item'
|
||||||
|
},
|
||||||
|
series: [
|
||||||
|
{
|
||||||
|
name: '男女比例',
|
||||||
|
type: 'pie',
|
||||||
|
radius: ['40%', '70%'],
|
||||||
|
itemStyle: {
|
||||||
|
normal: {
|
||||||
|
color: function (colors) {
|
||||||
|
var colorList = ['#2891FF', '#FF8700'];
|
||||||
|
return colorList[colors.dataIndex];
|
||||||
|
}
|
||||||
|
},
|
||||||
|
},
|
||||||
|
data: [
|
||||||
|
{ value: 100, name: '男100' },
|
||||||
|
{ value: 100, name: '女100' },
|
||||||
|
],
|
||||||
|
emphasis: {
|
||||||
|
itemStyle: {
|
||||||
|
shadowBlur: 10,
|
||||||
|
shadowOffsetX: 0,
|
||||||
|
shadowColor: 'rgba(0, 0, 0, 0.5)',
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
};
|
||||||
|
this.echartDataSex.setOption(option3)
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
created() {
|
created() {
|
||||||
|
|||||||
@@ -1,6 +1,12 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="Message">
|
<div class="Message">
|
||||||
<div class="title">消息回复率</div>
|
<div class="title">消息回复率</div>
|
||||||
|
<div class="msg-type">
|
||||||
|
<div class="type-list">
|
||||||
|
<div :class="type == index ? 'item active' : 'item'" v-for="(item, index) in typeList" :key="index" @click="tabClick(index)">{{ item }}</div>
|
||||||
|
</div>
|
||||||
|
<div class="chart-content" id="chartDay"></div>
|
||||||
|
</div>
|
||||||
<div class="title">单聊统计</div>
|
<div class="title">单聊统计</div>
|
||||||
<div class="tab-content">
|
<div class="tab-content">
|
||||||
<div class="item" v-for="(item, index) in friendList" :key="index">
|
<div class="item" v-for="(item, index) in friendList" :key="index">
|
||||||
@@ -51,8 +57,11 @@ export default {
|
|||||||
value: '255,625'
|
value: '255,625'
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
|
typeList: ['昨日', '近7天', '近30天'],
|
||||||
|
type: 0,
|
||||||
echartDataFriend: null,
|
echartDataFriend: null,
|
||||||
echartDataGroup: null
|
echartDataGroup: null,
|
||||||
|
echartDataDay: null
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
computed: { ...mapState(['user']) },
|
computed: { ...mapState(['user']) },
|
||||||
@@ -60,6 +69,7 @@ export default {
|
|||||||
chartInit() {
|
chartInit() {
|
||||||
this.echartDataFriend = echarts.init(document.getElementById('chartFriend'))
|
this.echartDataFriend = echarts.init(document.getElementById('chartFriend'))
|
||||||
this.echartDataGroup = echarts.init(document.getElementById('chartGroup'))
|
this.echartDataGroup = echarts.init(document.getElementById('chartGroup'))
|
||||||
|
this.echartDataDay = echarts.init(document.getElementById('chartDay'))
|
||||||
var option = {
|
var option = {
|
||||||
grid: {
|
grid: {
|
||||||
left: '5%',
|
left: '5%',
|
||||||
@@ -137,8 +147,55 @@ export default {
|
|||||||
]
|
]
|
||||||
};
|
};
|
||||||
this.echartDataFriend.setOption(option)
|
this.echartDataFriend.setOption(option)
|
||||||
this.echartDataGroup.setOption(option)
|
this.echartDataGroup.setOption(option)
|
||||||
|
|
||||||
|
var option2 = {
|
||||||
|
tooltip: {
|
||||||
|
trigger: 'item'
|
||||||
|
},
|
||||||
|
series: [
|
||||||
|
{
|
||||||
|
name: 'Access From',
|
||||||
|
type: 'pie',
|
||||||
|
radius: ['60%', '80%'],
|
||||||
|
avoidLabelOverlap: false,
|
||||||
|
itemStyle: {
|
||||||
|
borderRadius: 20,
|
||||||
|
borderColor: '#fff',
|
||||||
|
borderWidth: 2,
|
||||||
|
normal: {
|
||||||
|
color: function (colors) {
|
||||||
|
var colorList = ['#1890FF', '#F0F2F5'];
|
||||||
|
return colorList[colors.dataIndex];
|
||||||
|
}
|
||||||
|
},
|
||||||
|
},
|
||||||
|
label: {
|
||||||
|
show: false,
|
||||||
|
position: 'center'
|
||||||
|
},
|
||||||
|
emphasis: {
|
||||||
|
label: {
|
||||||
|
show: true,
|
||||||
|
fontSize: '14',
|
||||||
|
fontWeight: 'bold'
|
||||||
|
}
|
||||||
|
},
|
||||||
|
labelLine: {
|
||||||
|
show: false
|
||||||
|
},
|
||||||
|
data: [
|
||||||
|
{ value: 1048, name: 'Search Engine' },
|
||||||
|
{ value: 735, name: 'Direct' },
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
};
|
||||||
|
this.echartDataDay.setOption(option2)
|
||||||
},
|
},
|
||||||
|
tabClick(index) {
|
||||||
|
this.type = index
|
||||||
|
}
|
||||||
},
|
},
|
||||||
created() {
|
created() {
|
||||||
this.$nextTick(() => {
|
this.$nextTick(() => {
|
||||||
@@ -195,5 +252,35 @@ export default {
|
|||||||
background-color: #fff;
|
background-color: #fff;
|
||||||
border-radius: 8px;
|
border-radius: 8px;
|
||||||
}
|
}
|
||||||
|
.msg-type {
|
||||||
|
width: 100%;
|
||||||
|
background: #FFF;
|
||||||
|
border-radius: 8px;
|
||||||
|
padding-top: 44px;
|
||||||
|
.type-list {
|
||||||
|
width: 430px;
|
||||||
|
height: 60px;
|
||||||
|
line-height: 60px;
|
||||||
|
background: #E9E9E9;
|
||||||
|
border-radius: 16px;
|
||||||
|
display: flex;
|
||||||
|
margin: 0 auto 48px;
|
||||||
|
.item {
|
||||||
|
flex: 1;
|
||||||
|
text-align: center;
|
||||||
|
font-size: 28px;
|
||||||
|
font-family: PingFangSC-Medium, PingFang SC;
|
||||||
|
font-weight: 500;
|
||||||
|
color: #666;
|
||||||
|
}
|
||||||
|
.active {
|
||||||
|
font-weight: 500;
|
||||||
|
color: #080808;
|
||||||
|
background: #D8D8D8;
|
||||||
|
box-shadow: 0px 1px 3px 0px rgba(0,0,0,0.23);
|
||||||
|
border-radius: 10px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|||||||
Reference in New Issue
Block a user