| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359 |
- <template>
- <div>
- <el-row :gutter="10">
- <el-col :span="24">
- <el-card class="box-card" shadow="none">
- <div class="htitle">活动概览</div>
- <div class="nums adf">
- <div class="nums-pre adffc">
- <div class="nums-pre-title adfac">
- <img src="" alt="">
- <span>活动总数</span>
- </div>
- <div class="nums-pre-sz">{{ 458 }}</div>
- <div class="nums-pre-text adfac">较昨日<i class="el-icon-bottom xj"></i>{{ 23 }}</div>
- </div>
- <div class="nums-pre adffc">
- <div class="nums-pre-title adfac">
- <img src="" alt="">
- <span>未开始活动</span>
- </div>
- <div class="nums-pre-sz">{{ 158 }}</div>
- <div class="nums-pre-text adfac">较昨日<i class="el-icon-bottom xj"></i>{{ 0 }}</div>
- </div>
- <div class="nums-pre adffc">
- <div class="nums-pre-title adfac">
- <img src="" alt="">
- <span>进行中活动</span>
- </div>
- <div class="nums-pre-sz">{{ 140 }}</div>
- <div class="nums-pre-text adfac">较昨日<i class="el-icon-bottom xj"></i>{{ 23 }}</div>
- </div>
- <div class="nums-pre adffc">
- <div class="nums-pre-title adfac">
- <img src="" alt="">
- <span>已结束活动</span>
- </div>
- <div class="nums-pre-sz">{{ 546 }}</div>
- <div class="nums-pre-text adfac">较昨日<i class="el-icon-top ss"></i>{{ 2 }}</div>
- </div>
- <div class="nums-pre adffc">
- <div class="nums-pre-title adfac">
- <img src="" alt="">
- <span>累计报名人数</span>
- </div>
- <div class="nums-pre-sz">{{ 5098 }}</div>
- <div class="nums-pre-text adfac">较昨日<i class="el-icon-top ss"></i>{{ 280 }}</div>
- </div>
- <div class="nums-pre adffc">
- <div class="nums-pre-title adfac">
- <img src="" alt="">
- <span>活动参与率</span>
- </div>
- <div class="nums-pre-sz">{{ 89 }}%</div>
- <div class="nums-pre-text adfac">较昨日<i class="el-icon-top ss"></i>{{ 100 }}</div>
- </div>
- <div class="nums-pre adffc">
- <div class="nums-pre-title adfac">
- <img src="" alt="">
- <span>累计导入爱心值总额</span>
- </div>
- <div class="nums-pre-sz">{{ 985000 }}</div>
- <div class="nums-pre-text adfac">较昨日<i class="el-icon-top ss"></i>{{ 8000 }}</div>
- </div>
- </div>
- </el-card>
- </el-col>
- </el-row>
- <el-row :gutter="10" style="margin-top: 10px;">
- <el-col :span="8">
- <el-card class="box-card" shadow="none">
- <div class="htitle">用户来源</div>
- <div class="chartbox">
- <div ref="yhlyRef" style="width: 100%;height: 100%;"></div>
- </div>
- </el-card>
- </el-col>
- <el-col :span="8">
- <el-card class="box-card" shadow="none">
- <div class="htitle">男女比例</div>
- <div class="chartbox">
- <div ref="nnblRef" style="width: 100%;height: 100%;"></div>
- </div>
- </el-card>
- </el-col>
- <el-col :span="8">
- <el-card class="box-card" shadow="none">
- <div class="htitle">活动成员年龄分布</div>
- </el-card>
- </el-col>
- </el-row>
- <el-row :gutter="10" style="margin-top: 10px;">
- <el-col :span="8">
- <el-card class="box-card" shadow="none">
- <div class="htitle">爱心值变化趋势</div>
- </el-card>
- </el-col>
- <el-col :span="8">
- <el-card class="box-card" shadow="none">
- <div class="htitle">活动参与用户排行榜</div>
- </el-card>
- </el-col>
- <el-col :span="8">
- <el-card class="box-card" shadow="none">
- <div class="htitle">热门活动排名</div>
- </el-card>
- </el-col>
- </el-row>
- </div>
- </template>
- <script>
- import * as echarts from 'echarts'
- export default {
- data () {
- return {
- }
- },
- mounted () {
- this.initYhlyChart()
- this.initNnblChart()
- },
- methods: {
- initYhlyChart () {
- let myChart = echarts.init(this.$refs.yhlyRef)
- let echartData = [
- {
- value: 899,
- name: '中国银行'
- },
- {
- value: 899,
- name: '平安银行'
- },
- {
- value: 1889,
- name: '招商银行'
- },
- {
- value: 1199,
- name: '建设银行'
- },
- {
- value: 599,
- name: '工商银行'
- },
- {
- value: 399,
- name: '浦发银行'
- }
- ]
- let seriesData = echartData.map((item, index) => {
- return {
- ...item,
- actValue: item.value,
- label: {
- show: true,
- position: 'outside',
- borderRadius: 50,
- padding: [10, -10, 3, -3],
- textStyle: {
- fontSize: 10
- },
- formatter: '{white|{b}}\n{three| {d}人}',
- rich: {
- test: {},
- white: {
- align: 'center',
- color: '#989998',
- fontSize: 14
- },
- three: {
- color: '#252525',
- align: 'center',
- padding: [6, 0],
- fontSize: 14,
- fontWeight: 600
- }
- }
- }
- }
- })
- let option = {
- title: {
- show: true,
- text: '总人数',
- itemGap: 10,
- x: 'center',
- y: '130',
- subtext: '3897',
- textStyle: {
- fontSize: 14,
- color: '#989998'
- },
- subtextStyle: {
- fontSize: 14,
- color: '#252525',
- fontWeight: 600
- }
- },
- tooltip: {
- trigger: 'item',
- formatter: '{b}<br/>{c} 人',
- textStyle: {
- fontSize: 16,
- color: '#252525'
- }
- },
- series: [
- {
- name: 'pie',
- type: 'pie',
- radius: ['30%', '70%'],
- hoverAnimation: false,
- color: ['#0370F2', '#488CF6', '#4CAFF9', '#39CAFB', '#49DECA', '#16AECA'],
- itemStyle: {
- normal: {
- borderColor: '#fff',
- borderWidth: 2
- }
- },
- labelLine: {
- length: 10,
- length2: 70,
- lineStyle: {
- color: '#4CAFF9'
- }
- },
- data: seriesData
- }
- ]
- }
- myChart.setOption(option)
- this.resizeEcharts(this.$refs.yhlyRef)
- },
- initNnblChart () {
- let myChart = echarts.init(this.$refs.nnblRef)
- let echartsData = [{ value: 45, name: '女性' }, { value: 55, name: '男性' }]
- let colorList = ['#F4657A', '#49DECA']
- let option = {
- backgroundColor: '#FFF',
- color: colorList,
- tooltip: {
- trigger: 'item'
- },
- series: [{
- name: '',
- type: 'pie',
- radius: ['30%', '70%'],
- center: ['50%', '50%'],
- roseType: 'radius',
- label: {
- show: true,
- position: 'outside',
- fontSize: 16,
- formatter: (params) => {
- return `{a|${params.name}${params.value}%}`
- },
- rich: {
- a: {
- align: 'left',
- fontSize: 14,
- color: '#252525'
- }
- }
- },
- labelLine: {
- length: 10,
- length2: 30
- },
- data: echartsData.map((item, index) => {
- return {
- ...item,
- label: {
- color: colorList[index]
- }
- }
- })
- }]
- }
- myChart.setOption(option)
- this.resizeEcharts(this.$refs.nnblRef)
- },
- resizeEcharts (ele) {
- let rate = 1920 / window.innerWidth
- if (ele.style) {
- ele.style.zoom = 1 * rate
- ele.style.transform = `scale(${1 / rate})`
- ele.style.transformOrigin = 'top left'
- }
- }
- }
- }
- </script>
- <style scoped lang="scss">
- .htitle {
- font-family: PingFang-SC, PingFang-SC;
- font-weight: bold;
- font-size: 16px;
- color: #252525;
- line-height: 16px;
- }
- .nums{
- margin-top: 26px;
- &-pre{
- width: calc(100% / 7);
- border-left: 1px solid #ECEEF5;
- padding-left: 16px;
- box-sizing: border-box;
- &:first-child{
- border: none;
- padding: 0;
- }
- &-title{
- img{
- width: 14px;height: 16px;
- }
- span{
- font-family: PingFangSC, PingFang SC;
- font-weight: 400;
- font-size: 14px;
- color: #6B7280;
- line-height: 14px;
- margin-left: 6px;
- }
- }
- &-sz{
- font-family: DINAlternate, DINAlternate;
- font-weight: bold;
- font-size: 28px;
- color: #252525;
- line-height: 28px;
- margin-top: 16px;
- }
- &-text{
- font-family: PingFangSC, PingFang SC;
- font-weight: 400;
- font-size: 12px;
- color: #6B7280;
- line-height: 12px;
- margin-top: 16px;
- i{
- margin: 0 3px 0 7px;
- font-size: 14px;
- font-weight: bolder;
- &.xj{color: #67C23A;}
- &.ss{color: #F4657A;}
- }
- }
- }
- }
- .chartbox{
- width: 100%;
- height: 300px;
- }
- </style>
|