|
|
@@ -364,21 +364,40 @@
|
|
|
</el-card>
|
|
|
</el-col>
|
|
|
|
|
|
+
|
|
|
<el-col :span="12">
|
|
|
<el-card shadow="never">
|
|
|
<div slot="header" class="chart-header">
|
|
|
- <span>经销商会员观看TOP10</span>
|
|
|
+ <span>经销商看客统计</span>
|
|
|
<div class="legend">
|
|
|
- <el-radio-group v-model="viewerType" size="small" @change="handleDealerChartData">
|
|
|
- <el-radio-button label="0">按观看人数</el-radio-button>
|
|
|
- <el-radio-button label="1">按完播人数</el-radio-button>
|
|
|
- </el-radio-group>
|
|
|
+ <div class="legend-item">
|
|
|
+ <span class="dot viewer-dot"></span>
|
|
|
+ <span>观看人数</span>
|
|
|
+ </div>
|
|
|
+ <div class="legend-item">
|
|
|
+ <span class="dot complete-dot"></span>
|
|
|
+ <span>完播人数</span>
|
|
|
+ </div>
|
|
|
</div>
|
|
|
- <!-- <el-button size="small" plain class="view-more">经销商统计 <i class="el-icon-arrow-right"></i></el-button>-->
|
|
|
</div>
|
|
|
- <div ref="dealerChart" class="chart-container"></div>
|
|
|
+ <div ref="dealerChartNew" class="chart-container"></div>
|
|
|
</el-card>
|
|
|
</el-col>
|
|
|
+<!-- <el-col :span="12">-->
|
|
|
+<!-- <el-card shadow="never">-->
|
|
|
+<!-- <div slot="header" class="chart-header">-->
|
|
|
+<!-- <span>经销商会员观看TOP10</span>-->
|
|
|
+<!-- <div class="legend">-->
|
|
|
+<!-- <el-radio-group v-model="viewerType" size="small" @change="handleDealerChartData">-->
|
|
|
+<!-- <el-radio-button label="0">按观看人数</el-radio-button>-->
|
|
|
+<!-- <el-radio-button label="1">按完播人数</el-radio-button>-->
|
|
|
+<!-- </el-radio-group>-->
|
|
|
+<!-- </div>-->
|
|
|
+<!-- <!– <el-button size="small" plain class="view-more">经销商统计 <i class="el-icon-arrow-right"></i></el-button>–>-->
|
|
|
+<!-- </div>-->
|
|
|
+<!-- <div ref="dealerChart" class="chart-container"></div>-->
|
|
|
+<!-- </el-card>-->
|
|
|
+<!-- </el-col>-->
|
|
|
</el-row>
|
|
|
</transition>
|
|
|
<transition name="fade">
|
|
|
@@ -509,7 +528,7 @@ import {
|
|
|
authorizationInfo,
|
|
|
dealerAggregated, deaMemberTopTen, rechargeComsumption, rewardMoneyTopTen, rewardMoneyTrend,
|
|
|
smsBalance, thisMonthOrderCount, thisMonthRecvCount, trafficLog,
|
|
|
- watchCourseTopTen, watchEndPlayTrend
|
|
|
+ watchCourseTopTen, watchEndPlayTrend,getWatchCourseStatisticsData
|
|
|
} from "@/api/statistics/statistics";
|
|
|
import dayjs from 'dayjs';
|
|
|
|
|
|
@@ -554,6 +573,56 @@ const viewCharOption = {
|
|
|
]
|
|
|
}
|
|
|
|
|
|
+const dealerOptionNew = {
|
|
|
+ tooltip: {
|
|
|
+ trigger: 'axis',
|
|
|
+ axisPointer: {
|
|
|
+ type: 'shadow'
|
|
|
+ }
|
|
|
+ },
|
|
|
+ grid: {
|
|
|
+ left: '3%',
|
|
|
+ right: '4%',
|
|
|
+ bottom: '3%',
|
|
|
+ containLabel: true
|
|
|
+ },
|
|
|
+ xAxis: {
|
|
|
+ type: 'category',
|
|
|
+ axisLabel: {
|
|
|
+ rotate: 30, // 设置标签倾斜45度
|
|
|
+ // fontSize: 12, // 减小字体大小
|
|
|
+ interval: 0, // 显示所有标签
|
|
|
+ // 可选:限制标签宽度并截断
|
|
|
+ width: 80,
|
|
|
+ overflow: 'truncate',
|
|
|
+ // 可选:设置标签的对齐方式
|
|
|
+ margin: 20,
|
|
|
+ fontWeight: 'bold' // 设置字体加粗
|
|
|
+ }
|
|
|
+ },
|
|
|
+ yAxis: {
|
|
|
+ type: 'value'
|
|
|
+ },
|
|
|
+ series: [
|
|
|
+ {
|
|
|
+ name: '观看人数',
|
|
|
+ type: 'bar',
|
|
|
+ data: [],
|
|
|
+ itemStyle: {
|
|
|
+ color: '#409EFF'
|
|
|
+ }
|
|
|
+ },
|
|
|
+ {
|
|
|
+ name: '完播人数',
|
|
|
+ type: 'bar',
|
|
|
+ data: [],
|
|
|
+ itemStyle: {
|
|
|
+ color: '#67C23A'
|
|
|
+ }
|
|
|
+ }
|
|
|
+ ]
|
|
|
+}
|
|
|
+
|
|
|
const thisMonthOrderCountOption = {
|
|
|
tooltip: {
|
|
|
trigger: 'axis',
|
|
|
@@ -858,6 +927,7 @@ export default {
|
|
|
smsRemainCount: 0,
|
|
|
viewerType: '0',
|
|
|
viewerChart: null,
|
|
|
+ dealerChartNew: null,
|
|
|
userTypeText: process.env.VUE_APP_COURSE_DEFAULT==1?"会员":"企微",
|
|
|
userType: process.env.VUE_APP_COURSE_DEFAULT,
|
|
|
dealerChart: null,
|
|
|
@@ -925,6 +995,7 @@ export default {
|
|
|
mounted() {
|
|
|
this.$nextTick(() => {
|
|
|
this.initViewerChart()
|
|
|
+ this.initDealerChartNew();
|
|
|
this.initDealerChart()
|
|
|
this.initCourseWatchChart();
|
|
|
this.initAnswerRedPackViewerChart();
|
|
|
@@ -936,6 +1007,8 @@ export default {
|
|
|
window.addEventListener('resize', () => {
|
|
|
this.viewerChart && this.viewerChart.resize()
|
|
|
this.dealerChart && this.dealerChart.resize()
|
|
|
+ this.dealerChartNew && this.dealerChartNew.resize()
|
|
|
+
|
|
|
})
|
|
|
})
|
|
|
},
|
|
|
@@ -1130,6 +1203,7 @@ export default {
|
|
|
|
|
|
this.handleCourseWatchChart()
|
|
|
this.handleViewChartData()
|
|
|
+ this.handleDealerChartDataNew()
|
|
|
|
|
|
// 经销商会员观看TOP10
|
|
|
this.handleDealerChartData()
|
|
|
@@ -1192,6 +1266,7 @@ export default {
|
|
|
if (this.selectedDiv === 0) {
|
|
|
this.handleViewChartData()
|
|
|
this.handleDealerChartData()
|
|
|
+ this.handleDealerChartDataNew()
|
|
|
} else if (this.selectedDiv === 1) {
|
|
|
this.handleCourseWatchChart()
|
|
|
} else if (this.selectedDiv === 2) {
|
|
|
@@ -1267,6 +1342,7 @@ export default {
|
|
|
if (this.selectedDiv === 0) {
|
|
|
this.handleViewChartData()
|
|
|
this.handleDealerChartData()
|
|
|
+ this.handleDealerChartDataNew()
|
|
|
} else if (this.selectedDiv === 1) {
|
|
|
this.handleCourseWatchChart()
|
|
|
} else if (this.selectedDiv === 2) {
|
|
|
@@ -1344,6 +1420,35 @@ export default {
|
|
|
})
|
|
|
|
|
|
},
|
|
|
+ handleDealerChartDataNew() {
|
|
|
+ let param = this.getParam();
|
|
|
+
|
|
|
+ getWatchCourseStatisticsData({ ...param }).then(res => {
|
|
|
+ if (res.code === 200) {
|
|
|
+ console.log(res.data);
|
|
|
+ // 根据实际数据结构调整
|
|
|
+ let data = res.data;
|
|
|
+ let watchUserCountList = data.map(e => e.watchCount); // 观看次数
|
|
|
+ let completedUserCountList = data.map(e => e.finishCount); // 完播次数
|
|
|
+ let xAxis = data.map(e => e.companyName); // X轴使用公司名称
|
|
|
+
|
|
|
+ // 更新图表配置
|
|
|
+ dealerOptionNew.series[0].data = watchUserCountList;
|
|
|
+ dealerOptionNew.series[1].data = completedUserCountList;
|
|
|
+ dealerOptionNew.xAxis.data = xAxis;
|
|
|
+
|
|
|
+ this.dealerChartNew.setOption(dealerOptionNew);
|
|
|
+
|
|
|
+ }
|
|
|
+ })
|
|
|
+
|
|
|
+ },
|
|
|
+ initDealerChartNew() {
|
|
|
+ console.log("初始化 initDealerChartNew");
|
|
|
+ this.dealerChartNew = echarts.init(this.$refs.dealerChartNew)
|
|
|
+ this.dealerChartNew.setOption(dealerOptionNew)
|
|
|
+ console.log("初始化结束 initDealerChartNew");
|
|
|
+ },
|
|
|
handleThisMonthOrderCount(){
|
|
|
thisMonthOrderCount().then(res=>{
|
|
|
if(res.code === 200){
|
|
|
@@ -1434,6 +1539,8 @@ export default {
|
|
|
// window.removeEventListener('resize', this.resizeHandler)
|
|
|
this.viewerChart && this.viewerChart.dispose()
|
|
|
this.dealerChart && this.dealerChart.dispose()
|
|
|
+ this.dealerChartNew && this.dealerChartNew.dispose()
|
|
|
+
|
|
|
}
|
|
|
}
|
|
|
</script>
|