|
@@ -31,7 +31,6 @@
|
|
|
v-if="hide(skillParams.channel)"
|
|
|
:rules="[{ required: true, message: '请选择技能', trigger: 'blur' }]"
|
|
|
>
|
|
|
- <!-- 兼容小度在家和学有义方不同的返回内容 -->
|
|
|
<el-select v-model="skillParams.skillId" placeholder="请选择技能" @change="skillChange" style="width:160px">
|
|
|
<el-option
|
|
|
v-for="item in skillList"
|
|
@@ -41,23 +40,22 @@
|
|
|
></el-option>
|
|
|
</el-select>
|
|
|
</el-form-item>
|
|
|
- <!-- <el-form-item
|
|
|
+ <el-form-item
|
|
|
class="pruductForm-skill"
|
|
|
- prop="classId"
|
|
|
+ prop="skillId"
|
|
|
label="产品包选择"
|
|
|
- v-if="skillParams.skillId === 0 || skillParams.skillId === 3"
|
|
|
+ v-if="skillParams.channel === 'XYYFMOBILE' "
|
|
|
:rules="[{ required: true, message: '请选择产品包', trigger: 'blur' }]"
|
|
|
>
|
|
|
- 兼容小度在家和学有义方不同的返回内容
|
|
|
- <el-select v-model="skillParams.classId" placeholder="请选择产品包" style="width:160px">
|
|
|
+ <el-select v-model="skillParams.skillId" placeholder="请选择产品包" @change="skillChange" style="width:160px">
|
|
|
<el-option
|
|
|
- v-for="item in baiduCourseList"
|
|
|
- :key="item.id"
|
|
|
- :label="item.fullName"
|
|
|
- :value="item.id"
|
|
|
+ v-for="item in skillList"
|
|
|
+ :key="item.id"
|
|
|
+ :label="item.name"
|
|
|
+ :value="item.code"
|
|
|
></el-option>
|
|
|
</el-select>
|
|
|
- </el-form-item> -->
|
|
|
+ </el-form-item>
|
|
|
<el-form-item class="dateForm-skill" name="data" label="查询日期" style="display:flex">
|
|
|
<el-date-picker
|
|
|
style="width:140px"
|
|
@@ -78,7 +76,7 @@
|
|
|
</el-form-item>
|
|
|
</el-form>
|
|
|
<el-button type="primary" @click="onExportExcel" style="float: right">导出</el-button>
|
|
|
- <el-table id="table" :data="skillData" border style="width: 100%" :height="tableHeight" v-if="skillParams.channel === 'XYYF'" >
|
|
|
+ <el-table id="table" ref="table1" :data="skillData" border style="width: 100%" :height="tableHeight" >
|
|
|
<el-table-column
|
|
|
label="日期"
|
|
|
fixed
|
|
@@ -131,6 +129,7 @@
|
|
|
:render-header="renderheader"
|
|
|
prop="vipCount"
|
|
|
min-width="140px"
|
|
|
+ v-if="skillParams.channel === 'XYYF' || skillParams.channel === 'XYYFMOBILE'"
|
|
|
></el-table-column>
|
|
|
<el-table-column
|
|
|
label="VIP用户活跃率 | =UV1/V0"
|
|
@@ -139,6 +138,7 @@
|
|
|
:render-header="renderheader"
|
|
|
min-width="140px"
|
|
|
prop="aliveVipProportion"
|
|
|
+ v-if="skillParams.channel === 'XYYF' || skillParams.channel === 'XYYFMOBILE'"
|
|
|
>
|
|
|
</el-table-column>
|
|
|
<!-- <el-table-column
|
|
@@ -163,6 +163,7 @@
|
|
|
:render-header="renderheader"
|
|
|
prop="fealtyCount"
|
|
|
min-width="140px"
|
|
|
+ v-if="skillParams.channel === 'XYYF' || skillParams.channel === 'XYYFMOBILE'"
|
|
|
></el-table-column>
|
|
|
<el-table-column
|
|
|
label="忠实用户占比"
|
|
@@ -171,6 +172,7 @@
|
|
|
:render-header="renderheader"
|
|
|
prop="fealtyProportion"
|
|
|
min-width="140px"
|
|
|
+ v-if="skillParams.channel === 'XYYF' || skillParams.channel === 'XYYFMOBILE'"
|
|
|
></el-table-column>
|
|
|
<el-table-column
|
|
|
label="人均播放 | =VV/UV"
|
|
@@ -281,177 +283,6 @@
|
|
|
</el-table-column>
|
|
|
</el-table-column>
|
|
|
</el-table>
|
|
|
- <el-table id="table" :data="skillData" border style="width: 100%" :height="tableHeight" v-else>
|
|
|
- <el-table-column
|
|
|
- label="日期"
|
|
|
- fixed
|
|
|
- align="left"
|
|
|
- header-align="center"
|
|
|
- min-width="140px"
|
|
|
- >
|
|
|
- <template slot-scope="scope">
|
|
|
- <span>{{changeDate(scope.row.day)}}</span>
|
|
|
- </template>
|
|
|
- </el-table-column>
|
|
|
- <el-table-column label="流量与观看" header-align="center">
|
|
|
- <el-table-column
|
|
|
- label="UV"
|
|
|
- prop="uv"
|
|
|
- align="right"
|
|
|
- header-align="center"
|
|
|
- min-width="100px"
|
|
|
- ></el-table-column>
|
|
|
-
|
|
|
- <el-table-column
|
|
|
- label="VIP用户 | -UV1"
|
|
|
- align="right"
|
|
|
- header-align="center"
|
|
|
- :render-header="renderheader"
|
|
|
- prop="vipUv"
|
|
|
- min-width="120px"
|
|
|
- ></el-table-column>
|
|
|
- <el-table-column
|
|
|
- label="非VIP用户 | UV2=UV-UV1"
|
|
|
- align="right"
|
|
|
- header-align="center"
|
|
|
- :render-header="renderheader"
|
|
|
- prop="waitVipUv"
|
|
|
- min-width="140px"
|
|
|
- ></el-table-column>
|
|
|
-
|
|
|
- <el-table-column
|
|
|
- label="VIP用户占比 | =UV1/UV"
|
|
|
- align="right"
|
|
|
- header-align="center"
|
|
|
- :render-header="renderheader"
|
|
|
- prop="vipProportion"
|
|
|
- min-width="140px"
|
|
|
- ></el-table-column>
|
|
|
- <!-- <el-table-column
|
|
|
- label="VV"
|
|
|
- prop="vv"
|
|
|
- align="right"
|
|
|
- header-align="center"
|
|
|
- min-width="100px"
|
|
|
- ></el-table-column>-->
|
|
|
- <el-table-column
|
|
|
- label="VV"
|
|
|
- align="right"
|
|
|
- header-align="center"
|
|
|
- :render-header="renderheader"
|
|
|
- prop="totalPlay"
|
|
|
- min-width="140px"
|
|
|
- ></el-table-column>
|
|
|
- <el-table-column
|
|
|
- label="人均播放 | =VV/UV"
|
|
|
- align="right"
|
|
|
- header-align="center"
|
|
|
- :render-header="renderheader"
|
|
|
- prop="perCapitaPlay"
|
|
|
- min-width="140px"
|
|
|
- ></el-table-column>
|
|
|
- </el-table-column>
|
|
|
-
|
|
|
- <el-table-column label="拉新,付费与转换率" header-align="center">
|
|
|
- <el-table-column
|
|
|
- label="连续包月 | -Qm1"
|
|
|
- align="right"
|
|
|
- header-align="center"
|
|
|
- :render-header="renderheader"
|
|
|
- prop="consecutiveMonthly"
|
|
|
- min-width="100px"
|
|
|
- ></el-table-column>
|
|
|
- <el-table-column
|
|
|
- label="新增连续包月 | -Qm1-1"
|
|
|
- align="right"
|
|
|
- header-align="center"
|
|
|
- :render-header="renderheader"
|
|
|
- min-width="140px"
|
|
|
- >
|
|
|
- <template slot-scope="scope">
|
|
|
- <span>{{scope.row.appendConsecutiveMonthly || 0}}</span>
|
|
|
- </template>
|
|
|
- </el-table-column>
|
|
|
- <el-table-column
|
|
|
- label="续包月续费 | -Qm1-2"
|
|
|
- align="right"
|
|
|
- header-align="center"
|
|
|
- :render-header="renderheader"
|
|
|
- prop="continueConsecutiveMonthly"
|
|
|
- min-width="140px"
|
|
|
- >
|
|
|
- <template slot-scope="scope">
|
|
|
- <span>{{scope.row.continueConsecutiveMonthly || 0}}</span>
|
|
|
- </template>
|
|
|
- </el-table-column>
|
|
|
- <el-table-column
|
|
|
- label="月包 | -Qm2"
|
|
|
- align="right"
|
|
|
- header-align="center"
|
|
|
- :render-header="renderheader"
|
|
|
- prop="monthlyPayment"
|
|
|
- min-width="90px"
|
|
|
- ></el-table-column>
|
|
|
- <el-table-column
|
|
|
- label="年包 | -Qy"
|
|
|
- align="right"
|
|
|
- header-align="center"
|
|
|
- :render-header="renderheader"
|
|
|
- prop="yearlyPayment"
|
|
|
- ></el-table-column>
|
|
|
- <el-table-column
|
|
|
- label="付费订单数量| Q=Qm1+Qm2+Qy"
|
|
|
- align="right"
|
|
|
- header-align="center"
|
|
|
- :render-header="renderheader"
|
|
|
- prop="totalPayment"
|
|
|
- min-width="160px"
|
|
|
- ></el-table-column>
|
|
|
- <el-table-column
|
|
|
- label="r1 | =Qm1/Q"
|
|
|
- align="right"
|
|
|
- header-align="center"
|
|
|
- :render-header="renderheader"
|
|
|
- prop="consecutiveConversion"
|
|
|
- min-width="130px"
|
|
|
- ></el-table-column>// 月包占比
|
|
|
- <el-table-column
|
|
|
- label="r2 | =Qm2/Q"
|
|
|
- align="right"
|
|
|
- header-align="center"
|
|
|
- :render-header="renderheader"
|
|
|
- prop="monthlyConversion"
|
|
|
- min-width="130px"
|
|
|
- ></el-table-column>// 年包占比
|
|
|
- <el-table-column
|
|
|
- label="r3 | =Qy/Q"
|
|
|
- align="right"
|
|
|
- header-align="center"
|
|
|
- :render-header="renderheader"
|
|
|
- prop="yearlyConversion"
|
|
|
- min-width="130px"
|
|
|
- ></el-table-column>
|
|
|
- <el-table-column
|
|
|
- label="R | =(Qm1+Qm2+Qy)/UV2"
|
|
|
- align="right"
|
|
|
- header-align="center"
|
|
|
- :render-header="renderheader"
|
|
|
- prop="totalConversion"
|
|
|
- min-width="190px"
|
|
|
- ></el-table-column>
|
|
|
- <el-table-column
|
|
|
- label="R1 | =(Qm1-1+Qm2+Qy)/UV2"
|
|
|
- align="right"
|
|
|
- header-align="center"
|
|
|
- :render-header="renderheader"
|
|
|
- min-width="190px"
|
|
|
- >
|
|
|
- <template slot-scope="scope">
|
|
|
- <span>{{scope.row.appendTotalConversion || 0}}</span>
|
|
|
- </template>
|
|
|
- </el-table-column>
|
|
|
- </el-table-column>
|
|
|
- </el-table>
|
|
|
<!-- <el-pagination
|
|
|
v-if="orderList.totalElements"
|
|
|
background
|
|
@@ -484,8 +315,8 @@ export default {
|
|
|
{ title: "百度-小度在家", code: "BAIDU" },
|
|
|
{ title: "阿里-天猫精灵", code: "ALI" },
|
|
|
{ title: "百度-义方小学堂", code: "XYYF" },
|
|
|
- { title: "OPPO-小学同步辅导", code: "6001" }
|
|
|
-
|
|
|
+ { title: "OPPO-小学同步辅导", code: "6001" },
|
|
|
+ { title: "学有义方", code: "XYYFMOBILE" }
|
|
|
],
|
|
|
baiduCourseList: []
|
|
|
};
|
|
@@ -524,14 +355,18 @@ export default {
|
|
|
|
|
|
} else if(this.skillParams.channel === 'ALI') {
|
|
|
this.$store.dispatch("getAliData", this.skillParams);
|
|
|
+ } else if(this.skillParams.channel === 'XYYFMOBILE') {
|
|
|
+ // console.log('学有义方')
|
|
|
+ this.$store.dispatch("getXyyfData", this.skillParams);
|
|
|
} else{
|
|
|
- this.$store.dispatch("getSkillData", this.skillParams);
|
|
|
+ this.$store.dispatch("getSkillData", this.skillParams);
|
|
|
}
|
|
|
} else {
|
|
|
console.log("error submit!!");
|
|
|
return false;
|
|
|
}
|
|
|
});
|
|
|
+ this.$refs.table1.doLayout();
|
|
|
},
|
|
|
// 渠道下课程分页
|
|
|
changePage(e) {
|
|
@@ -553,7 +388,13 @@ export default {
|
|
|
},
|
|
|
channelChange(val) {
|
|
|
this.skillParams.skillId = "";
|
|
|
- val !== 'XYYF' && this.$store.dispatch("getSkillList", val);
|
|
|
+ if(val === 'XYYFMOBILE') {
|
|
|
+ this.$store.dispatch("getXyyfMobileList");
|
|
|
+ }else if (val === 'BAIDU' || val ==='ALI') {
|
|
|
+ this.$store.dispatch("getSkillList", val);
|
|
|
+ }
|
|
|
+ // 清空数据
|
|
|
+ this.$store.dispatch("clearList");
|
|
|
},
|
|
|
skillChange(val) {
|
|
|
this.skillParams.classId = ''
|
|
@@ -586,7 +427,7 @@ export default {
|
|
|
// if(row.)
|
|
|
},
|
|
|
hide (channel) {
|
|
|
- if (channel === '6001' || channel === 'XYYF') {
|
|
|
+ if (channel === '6001' || channel === 'XYYF' || channel === 'XYYFMOBILE') {
|
|
|
return false
|
|
|
}
|
|
|
return true
|