|
@@ -89,6 +89,7 @@
|
|
<li><span style="margin-left: 31px">消耗:</span> {{ sectionCost | formatNum }}</li>
|
|
<li><span style="margin-left: 31px">消耗:</span> {{ sectionCost | formatNum }}</li>
|
|
<li>人均带户: {{ userAverageAccount | formatNum }}</li>
|
|
<li>人均带户: {{ userAverageAccount | formatNum }}</li>
|
|
<li>人均消耗: {{ userAveragecost | formatNum }}</li>
|
|
<li>人均消耗: {{ userAveragecost | formatNum }}</li>
|
|
|
|
+ <li>在投项目数量:{{ projectNum }}</li>
|
|
</ul>
|
|
</ul>
|
|
</div>
|
|
</div>
|
|
</a-card>
|
|
</a-card>
|
|
@@ -144,6 +145,55 @@
|
|
</a-card>
|
|
</a-card>
|
|
</a-col>
|
|
</a-col>
|
|
</a-row>
|
|
</a-row>
|
|
|
|
+ <a-row :gutter="24" style="margin-bottom: 20px">
|
|
|
|
+ <a-col>
|
|
|
|
+ <a-card>
|
|
|
|
+ <div slot="title">
|
|
|
|
+ <span style="font-weight: bolder">运营组数据</span>
|
|
|
|
+ </div>
|
|
|
|
+ <div class="person-content-title" slot="extra">
|
|
|
|
+ <div class="content-title-acount"></div>
|
|
|
|
+ <div class="content-title-checkout">
|
|
|
|
+ <span style="margin-right: 20px">
|
|
|
|
+ <a-range-picker
|
|
|
|
+ v-model="dateMiddleGroup"
|
|
|
|
+ format="YYYY-MM-DD"
|
|
|
|
+ :ranges="dateRanges"
|
|
|
|
+ @change="dateMiddleChangeGroup"
|
|
|
|
+ />
|
|
|
|
+ </span>
|
|
|
|
+ <span>
|
|
|
|
+ <a-button @click="exportClickGroup">导 出</a-button>
|
|
|
|
+ </span>
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+ <a-table
|
|
|
|
+ size="middle"
|
|
|
|
+ :dataSource="groupList"
|
|
|
|
+ :columns="columnGroup"
|
|
|
|
+ bordered
|
|
|
|
+ id="outTable"
|
|
|
|
+ :pagination="groupIpagination"
|
|
|
|
+ :loading="groupLoading"
|
|
|
|
+ ref="accountTable"
|
|
|
|
+ >
|
|
|
|
+ <a slot="userName" slot-scope="text, record" @click="userNameClick(record)">{{ text }}</a>
|
|
|
|
+ <span slot="newEffectNum" slot-scope="text">
|
|
|
|
+ <span v-if="text">{{ text }}</span>
|
|
|
|
+ <span v-else>0</span>
|
|
|
|
+ </span>
|
|
|
|
+ <span slot="newCampaignNum" slot-scope="text">
|
|
|
|
+ <span v-if="text">{{ text }}</span>
|
|
|
|
+ <span v-else>0</span>
|
|
|
|
+ </span>
|
|
|
|
+ <span slot="newUnitNum" slot-scope="text">
|
|
|
|
+ <span v-if="text">{{ text }}</span>
|
|
|
|
+ <span v-else>0</span>
|
|
|
|
+ </span>
|
|
|
|
+ </a-table>
|
|
|
|
+ </a-card>
|
|
|
|
+ </a-col>
|
|
|
|
+ </a-row>
|
|
<a-row :gutter="24">
|
|
<a-row :gutter="24">
|
|
<a-col>
|
|
<a-col>
|
|
<a-card>
|
|
<a-card>
|
|
@@ -155,14 +205,14 @@
|
|
<!-- <span class="title-checkout-custom"
|
|
<!-- <span class="title-checkout-custom"
|
|
><a @click="exportExcel" :loading="visibleLoading">导出数据</a></span
|
|
><a @click="exportExcel" :loading="visibleLoading">导出数据</a></span
|
|
> -->
|
|
> -->
|
|
-
|
|
|
|
</div>
|
|
</div>
|
|
<div class="content-title-checkout">
|
|
<div class="content-title-checkout">
|
|
-
|
|
|
|
- <a-button @click="exportExcel" :loading="visibleLoading" style="margin-right:20px"> 导出数据 </a-button>
|
|
|
|
- <span style="margin-right: 20px">
|
|
|
|
|
|
+ <a-button @click="exportExcel" :loading="visibleLoading" style="margin-right: 20px">
|
|
|
|
+ 导出数据
|
|
|
|
+ </a-button>
|
|
|
|
+ <!-- <span style="margin-right: 20px">
|
|
<a-button type="link" @click="customColumn"> 自定义列 </a-button>
|
|
<a-button type="link" @click="customColumn"> 自定义列 </a-button>
|
|
- </span>
|
|
|
|
|
|
+ </span> -->
|
|
<span style="margin-right: 20px">
|
|
<span style="margin-right: 20px">
|
|
<a-range-picker
|
|
<a-range-picker
|
|
v-model="dateMiddleProject"
|
|
v-model="dateMiddleProject"
|
|
@@ -170,12 +220,12 @@
|
|
@change="dateMiddleProjectChange"
|
|
@change="dateMiddleProjectChange"
|
|
/>
|
|
/>
|
|
</span>
|
|
</span>
|
|
- <span>
|
|
|
|
|
|
+ <!-- <span>
|
|
<a-radio-group v-model="projectAccount" @change="projectAccountChange">
|
|
<a-radio-group v-model="projectAccount" @change="projectAccountChange">
|
|
<a-radio-button value="a"> 项目 </a-radio-button>
|
|
<a-radio-button value="a"> 项目 </a-radio-button>
|
|
<a-radio-button value="b"> 账户 </a-radio-button>
|
|
<a-radio-button value="b"> 账户 </a-radio-button>
|
|
</a-radio-group>
|
|
</a-radio-group>
|
|
- </span>
|
|
|
|
|
|
+ </span> -->
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<a-table
|
|
<a-table
|
|
@@ -190,8 +240,74 @@
|
|
ref="accountTable"
|
|
ref="accountTable"
|
|
:scroll="{ x: scrollX }"
|
|
:scroll="{ x: scrollX }"
|
|
>
|
|
>
|
|
- <a slot="projectName" slot-scope="text, record" @click="projectNameClick(record)">{{ text }}</a>
|
|
|
|
- <a slot="accountName" slot-scope="text, record" @click="accountNameClick(record)">{{ text }}</a>
|
|
|
|
|
|
+ <!-- <a slot="projectName" slot-scope="text, record" @click="projectNameClick(record)">{{ text }}</a>
|
|
|
|
+ <a slot="accountName" slot-scope="text, record" @click="accountNameClick(record)">{{ text }}</a> -->
|
|
|
|
+ <div slot="jl" slot-scope="text, record">
|
|
|
|
+ {{
|
|
|
|
+ record.adSceneDate.findIndex((item) => {
|
|
|
|
+ return item.adSceneName == '激励视频广告'
|
|
|
|
+ }) > -1
|
|
|
|
+ ? record.adSceneDate.find((item) => {
|
|
|
|
+ return item.adSceneName == '激励视频广告'
|
|
|
|
+ }).adSceneCost
|
|
|
|
+ : '-'
|
|
|
|
+ }}
|
|
|
|
+ </div>
|
|
|
|
+ <div slot="kp" slot-scope="text, record">
|
|
|
|
+ {{
|
|
|
|
+ record.adSceneDate.findIndex((item) => {
|
|
|
|
+ return item.adSceneName == '开屏广告'
|
|
|
|
+ }) > -1
|
|
|
|
+ ? record.adSceneDate.find((item) => {
|
|
|
|
+ return item.adSceneName == '开屏广告'
|
|
|
|
+ }).adSceneCost
|
|
|
|
+ : '-'
|
|
|
|
+ }}
|
|
|
|
+ </div>
|
|
|
|
+ <div slot="ss" slot-scope="text, record">
|
|
|
|
+ {{
|
|
|
|
+ record.adSceneDate.findIndex((item) => {
|
|
|
|
+ return item.adSceneName == '搜索广告'
|
|
|
|
+ }) > -1
|
|
|
|
+ ? record.adSceneDate.find((item) => {
|
|
|
|
+ return item.adSceneName == '搜索广告'
|
|
|
|
+ }).adSceneCost
|
|
|
|
+ : '-'
|
|
|
|
+ }}
|
|
|
|
+ </div>
|
|
|
|
+ <div slot="lm" slot-scope="text, record">
|
|
|
|
+ {{
|
|
|
|
+ record.adSceneDate.findIndex((item) => {
|
|
|
|
+ return item.adSceneName == '联盟'
|
|
|
|
+ }) > -1
|
|
|
|
+ ? record.adSceneDate.find((item) => {
|
|
|
|
+ return item.adSceneName == '联盟'
|
|
|
|
+ }).adSceneCost
|
|
|
|
+ : '-'
|
|
|
|
+ }}
|
|
|
|
+ </div>
|
|
|
|
+ <div slot="sxh" slot-scope="text, record">
|
|
|
|
+ {{
|
|
|
|
+ record.adSceneDate.findIndex((item) => {
|
|
|
|
+ return item.adSceneName == '上下滑大屏广告'
|
|
|
|
+ }) > -1
|
|
|
|
+ ? record.adSceneDate.find((item) => {
|
|
|
|
+ return item.adSceneName == '上下滑大屏广告'
|
|
|
|
+ }).adSceneCost
|
|
|
|
+ : '-'
|
|
|
|
+ }}
|
|
|
|
+ </div>
|
|
|
|
+ <div slot="xxl" slot-scope="text, record">
|
|
|
|
+ {{
|
|
|
|
+ record.adSceneDate.findIndex((item) => {
|
|
|
|
+ return item.adSceneName == '信息流广告'
|
|
|
|
+ }) > -1
|
|
|
|
+ ? record.adSceneDate.find((item) => {
|
|
|
|
+ return item.adSceneName == '信息流广告'
|
|
|
|
+ }).adSceneCost
|
|
|
|
+ : '-'
|
|
|
|
+ }}
|
|
|
|
+ </div>
|
|
</a-table>
|
|
</a-table>
|
|
</a-card>
|
|
</a-card>
|
|
</a-col>
|
|
</a-col>
|
|
@@ -247,6 +363,7 @@ export default {
|
|
echartsDataProject: [],
|
|
echartsDataProject: [],
|
|
projectAccount: 'a',
|
|
projectAccount: 'a',
|
|
dateMiddleProject: [moment(), moment()],
|
|
dateMiddleProject: [moment(), moment()],
|
|
|
|
+ dateMiddleGroup: [moment(), moment()],
|
|
echartsIpagination: {
|
|
echartsIpagination: {
|
|
current: 1,
|
|
current: 1,
|
|
pageSize: 5,
|
|
pageSize: 5,
|
|
@@ -291,6 +408,11 @@ export default {
|
|
scopedSlots: { customRender: 'userName' },
|
|
scopedSlots: { customRender: 'userName' },
|
|
},
|
|
},
|
|
{
|
|
{
|
|
|
|
+ title: '项目数量',
|
|
|
|
+ align: 'center',
|
|
|
|
+ dataIndex: 'projectNum',
|
|
|
|
+ },
|
|
|
|
+ {
|
|
title: '账户数量',
|
|
title: '账户数量',
|
|
align: 'center',
|
|
align: 'center',
|
|
dataIndex: 'accountNum',
|
|
dataIndex: 'accountNum',
|
|
@@ -308,13 +430,6 @@ export default {
|
|
dataIndex: 'rate',
|
|
dataIndex: 'rate',
|
|
},
|
|
},
|
|
{
|
|
{
|
|
- title: '有效素材数',
|
|
|
|
- align: 'center',
|
|
|
|
- dataIndex: 'newEffectNum',
|
|
|
|
- sorter: (a, b) => a.newEffectNum - b.newEffectNum,
|
|
|
|
- scopedSlots: { customRender: 'newEffectNum' },
|
|
|
|
- },
|
|
|
|
- {
|
|
|
|
title: '新上计划数',
|
|
title: '新上计划数',
|
|
align: 'center',
|
|
align: 'center',
|
|
dataIndex: 'newCampaignNum',
|
|
dataIndex: 'newCampaignNum',
|
|
@@ -331,65 +446,87 @@ export default {
|
|
scopedSlots: { customRender: 'newUnitNum' },
|
|
scopedSlots: { customRender: 'newUnitNum' },
|
|
},
|
|
},
|
|
],
|
|
],
|
|
- columnsProject: [
|
|
|
|
- {
|
|
|
|
- title: '项目名称',
|
|
|
|
- align: 'center',
|
|
|
|
- dataIndex: 'projectName',
|
|
|
|
- scopedSlots: { customRender: 'projectName' },
|
|
|
|
|
|
+ groupList: [],
|
|
|
|
+ groupLoading: false,
|
|
|
|
+ groupIpagination: {
|
|
|
|
+ current: 1,
|
|
|
|
+ pageSize: 5,
|
|
|
|
+ // pageSizeOptions: ['10', '20', '30'],
|
|
|
|
+ showTotal: (total, range) => {
|
|
|
|
+ return range[0] + '-' + range[1] + ' 共' + total + '条'
|
|
|
|
+ },
|
|
|
|
+ showQuickJumper: true,
|
|
|
|
+ // showSizeChanger: true,
|
|
|
|
+ // pageSizeOptions: ['10', '30', '50'],
|
|
|
|
+ total: 0,
|
|
|
|
+ onChange: (current, pageSize) => {
|
|
|
|
+ // 切换分页时的回调,
|
|
|
|
+ // 当在页面定义change事件时,切记要把此处的事件清除,因为这两个事件重叠了,可能到时候会导致一些莫名的bug
|
|
|
|
+ this.groupIpagination.current = current
|
|
|
|
+ this.groupIpagination.pageSize = pageSize
|
|
|
|
+ this.getGroupList()
|
|
},
|
|
},
|
|
|
|
+ },
|
|
|
|
+ columnGroup: [
|
|
{
|
|
{
|
|
- title: '账户数量',
|
|
|
|
|
|
+ title: '运营经理',
|
|
align: 'center',
|
|
align: 'center',
|
|
- dataIndex: 'accountNum',
|
|
|
|
|
|
+ dataIndex: 'realname',
|
|
|
|
+ scopedSlots: { customRender: 'realname' },
|
|
},
|
|
},
|
|
{
|
|
{
|
|
- title: '运营人员',
|
|
|
|
|
|
+ title: '运营数量',
|
|
align: 'center',
|
|
align: 'center',
|
|
- dataIndex: 'userNum',
|
|
|
|
|
|
+ dataIndex: 'operationNum',
|
|
},
|
|
},
|
|
{
|
|
{
|
|
- title: '花费',
|
|
|
|
|
|
+ title: '日均消耗',
|
|
align: 'center',
|
|
align: 'center',
|
|
- dataIndex: 'totalCost',
|
|
|
|
- sorter: (a, b) => a.totalCost - b.totalCost,
|
|
|
|
|
|
+ dataIndex: 'averageDayCost',
|
|
},
|
|
},
|
|
{
|
|
{
|
|
- title: '花费环比',
|
|
|
|
|
|
+ title: '人均消耗',
|
|
align: 'center',
|
|
align: 'center',
|
|
- dataIndex: 'yearOnYear',
|
|
|
|
|
|
+ dataIndex: 'averagePeopleCost',
|
|
},
|
|
},
|
|
{
|
|
{
|
|
- title: '花费同比',
|
|
|
|
|
|
+ title: '花费',
|
|
align: 'center',
|
|
align: 'center',
|
|
- dataIndex: 'equallyRate',
|
|
|
|
|
|
+ dataIndex: 'totalCost',
|
|
|
|
+ sorter: true,
|
|
|
|
+ sorter: (a, b) => a.totalCost - b.totalCost,
|
|
},
|
|
},
|
|
{
|
|
{
|
|
- title: '上新素材数',
|
|
|
|
|
|
+ title: '花费环比',
|
|
align: 'center',
|
|
align: 'center',
|
|
- dataIndex: 'newVideoNum',
|
|
|
|
|
|
+ dataIndex: 'yearOnYearCost',
|
|
},
|
|
},
|
|
{
|
|
{
|
|
- title: '爆款素材数',
|
|
|
|
|
|
+ title: '项目数',
|
|
align: 'center',
|
|
align: 'center',
|
|
- dataIndex: 'newHotNum',
|
|
|
|
|
|
+ dataIndex: 'projectNum',
|
|
|
|
+ scopedSlots: { customRender: 'projectNum' },
|
|
},
|
|
},
|
|
{
|
|
{
|
|
- title: '有效素材数',
|
|
|
|
|
|
+ title: '账户数',
|
|
align: 'center',
|
|
align: 'center',
|
|
- dataIndex: 'newEffectNum',
|
|
|
|
|
|
+ dataIndex: 'accountNum',
|
|
|
|
+ scopedSlots: { customRender: 'accountNum' },
|
|
},
|
|
},
|
|
{
|
|
{
|
|
- title: '激活数',
|
|
|
|
|
|
+ title: '平均账户消耗',
|
|
align: 'center',
|
|
align: 'center',
|
|
- dataIndex: 'activation',
|
|
|
|
|
|
+ dataIndex: 'averageAccountCost',
|
|
|
|
+ scopedSlots: { customRender: 'averageAccountCost' },
|
|
},
|
|
},
|
|
{
|
|
{
|
|
- title: '激活单价',
|
|
|
|
|
|
+ title: '基建数量',
|
|
align: 'center',
|
|
align: 'center',
|
|
- dataIndex: 'activationPrice',
|
|
|
|
|
|
+ dataIndex: 'unitNum',
|
|
|
|
+ scopedSlots: { customRender: 'unitNum' },
|
|
},
|
|
},
|
|
],
|
|
],
|
|
|
|
+ columnsProject: keepPersonData.setNoDeleteColumns(),
|
|
echartsData: [],
|
|
echartsData: [],
|
|
timeData: [],
|
|
timeData: [],
|
|
lengthData: [],
|
|
lengthData: [],
|
|
@@ -398,6 +535,7 @@ export default {
|
|
yestadyNum: 1,
|
|
yestadyNum: 1,
|
|
dataName: '',
|
|
dataName: '',
|
|
todayCost: '',
|
|
todayCost: '',
|
|
|
|
+ projectNum: '',
|
|
compare: '',
|
|
compare: '',
|
|
sectionCost: '',
|
|
sectionCost: '',
|
|
userAverageAccount: '',
|
|
userAverageAccount: '',
|
|
@@ -439,9 +577,10 @@ export default {
|
|
},
|
|
},
|
|
mounted() {
|
|
mounted() {
|
|
this.getQueryNewlyData()
|
|
this.getQueryNewlyData()
|
|
- this.showColumn()
|
|
|
|
|
|
+ // this.showColumn()
|
|
this.getOperationGroupData()
|
|
this.getOperationGroupData()
|
|
this.getOperateDetails()
|
|
this.getOperateDetails()
|
|
|
|
+ this.getGroupList()
|
|
this.getItemList()
|
|
this.getItemList()
|
|
this.clientWidth = document.documentElement.clientWidth - 224
|
|
this.clientWidth = document.documentElement.clientWidth - 224
|
|
},
|
|
},
|
|
@@ -484,9 +623,9 @@ export default {
|
|
let downloadElement = document.createElement('a')
|
|
let downloadElement = document.createElement('a')
|
|
let href = window.URL.createObjectURL(blob) //创建下载的链接
|
|
let href = window.URL.createObjectURL(blob) //创建下载的链接
|
|
downloadElement.href = href
|
|
downloadElement.href = href
|
|
- downloadElement.download = `${this.dateMiddleProject[0].format('YYYY-MM-DD')}~${this.dateMiddleProject[1].format(
|
|
|
|
|
|
+ downloadElement.download = `${this.dateMiddleProject[0].format(
|
|
'YYYY-MM-DD'
|
|
'YYYY-MM-DD'
|
|
- )}报表.xlsx` //下载后文件名
|
|
|
|
|
|
+ )}~${this.dateMiddleProject[1].format('YYYY-MM-DD')}报表.xlsx` //下载后文件名
|
|
document.body.appendChild(downloadElement)
|
|
document.body.appendChild(downloadElement)
|
|
downloadElement.click() //点击下载
|
|
downloadElement.click() //点击下载
|
|
document.body.removeChild(downloadElement) //下载完成移除元素
|
|
document.body.removeChild(downloadElement) //下载完成移除元素
|
|
@@ -510,6 +649,7 @@ export default {
|
|
).then((res) => {
|
|
).then((res) => {
|
|
this.echartsLoading = false
|
|
this.echartsLoading = false
|
|
if (res.code == 0) {
|
|
if (res.code == 0) {
|
|
|
|
+ // columnsProject
|
|
this.echartsDataProject = res.result.list
|
|
this.echartsDataProject = res.result.list
|
|
this.echartsIpaginationProject.total = res.result.total
|
|
this.echartsIpaginationProject.total = res.result.total
|
|
}
|
|
}
|
|
@@ -560,61 +700,10 @@ export default {
|
|
this.titleList = '账户列表'
|
|
this.titleList = '账户列表'
|
|
this.columnsFixd = keepPersonData.setNoDeleteProjectColumns()
|
|
this.columnsFixd = keepPersonData.setNoDeleteProjectColumns()
|
|
this.listNum = keepPersonData.setNoDeleteProjectColumns()
|
|
this.listNum = keepPersonData.setNoDeleteProjectColumns()
|
|
- // this.columnsProject = [
|
|
|
|
- // {
|
|
|
|
- // title: '账户名称',
|
|
|
|
- // align: "center",
|
|
|
|
- // dataIndex: 'accountName',
|
|
|
|
- // scopedSlots: { customRender: 'accountName' },
|
|
|
|
- // },{
|
|
|
|
- // title: '账户ID',
|
|
|
|
- // dataIndex: 'accountId',
|
|
|
|
- // scopedSlots: { customRender: 'accountId' },
|
|
|
|
- // align: 'center',
|
|
|
|
- // }, {
|
|
|
|
- // title: '运营人员名称',
|
|
|
|
- // align: "center",
|
|
|
|
- // dataIndex: 'userName'
|
|
|
|
- // }, {
|
|
|
|
- // title: '花费',
|
|
|
|
- // align: "center",
|
|
|
|
- // dataIndex: 'totalCost',
|
|
|
|
- // sorter: (a, b) => a.totalCost - b.totalCost,
|
|
|
|
- // }, {
|
|
|
|
- // title: '花费环比',
|
|
|
|
- // align: "center",
|
|
|
|
- // dataIndex: 'yearOnYear',
|
|
|
|
- // }, {
|
|
|
|
- // title: '花费同比',
|
|
|
|
- // align: "center",
|
|
|
|
- // dataIndex: 'equallyRate',
|
|
|
|
- // }, {
|
|
|
|
- // title: '激活数',
|
|
|
|
- // align: "center",
|
|
|
|
- // dataIndex: 'activation',
|
|
|
|
- // },
|
|
|
|
- // {
|
|
|
|
- // title: '激活单价',
|
|
|
|
- // align: "center",
|
|
|
|
- // dataIndex: 'activationPrice',
|
|
|
|
- // }, {
|
|
|
|
- // title: '行为数',
|
|
|
|
- // align: "center",
|
|
|
|
- // dataIndex: 'keyAction',
|
|
|
|
- // }, {
|
|
|
|
- // title: '封面曝光数',
|
|
|
|
- // align: "center",
|
|
|
|
- // dataIndex: 'photoShow',
|
|
|
|
- // }, {
|
|
|
|
- // title: '封面点击数',
|
|
|
|
- // align: "center",
|
|
|
|
- // dataIndex: 'photoClick',
|
|
|
|
- // },
|
|
|
|
- // ],
|
|
|
|
this.projectAccount = 'b'
|
|
this.projectAccount = 'b'
|
|
this.projectId = row.projectId
|
|
this.projectId = row.projectId
|
|
this.echartsIpaginationProject.current = 1
|
|
this.echartsIpaginationProject.current = 1
|
|
- this.showColumn()
|
|
|
|
|
|
+ // this.showColumn()
|
|
this.$nextTick(() => {
|
|
this.$nextTick(() => {
|
|
this.echartsLoading = true
|
|
this.echartsLoading = true
|
|
this.getAccountData()
|
|
this.getAccountData()
|
|
@@ -627,135 +716,17 @@ export default {
|
|
this.columnsFixd = keepPersonData.setNoDeleteColumns()
|
|
this.columnsFixd = keepPersonData.setNoDeleteColumns()
|
|
this.listNum = keepPersonData.setNoDeleteColumns()
|
|
this.listNum = keepPersonData.setNoDeleteColumns()
|
|
this.projectId = ''
|
|
this.projectId = ''
|
|
- ;(this.columnsProject = [
|
|
|
|
- {
|
|
|
|
- title: '项目名称',
|
|
|
|
- align: 'center',
|
|
|
|
- dataIndex: 'projectName',
|
|
|
|
- scopedSlots: { customRender: 'projectName' },
|
|
|
|
- },
|
|
|
|
- {
|
|
|
|
- title: '账户数量',
|
|
|
|
- align: 'center',
|
|
|
|
- dataIndex: 'accountNum',
|
|
|
|
- },
|
|
|
|
- {
|
|
|
|
- title: '运营人员',
|
|
|
|
- align: 'center',
|
|
|
|
- dataIndex: 'userNum',
|
|
|
|
- },
|
|
|
|
- {
|
|
|
|
- title: '花费',
|
|
|
|
- align: 'center',
|
|
|
|
- dataIndex: 'totalCost',
|
|
|
|
- sorter: (a, b) => a.totalCost - b.totalCost,
|
|
|
|
- },
|
|
|
|
- {
|
|
|
|
- title: '花费环比',
|
|
|
|
- align: 'center',
|
|
|
|
- dataIndex: 'yearOnYear',
|
|
|
|
- },
|
|
|
|
- {
|
|
|
|
- title: '花费同比',
|
|
|
|
- align: 'center',
|
|
|
|
- dataIndex: 'equallyRate',
|
|
|
|
- },
|
|
|
|
- {
|
|
|
|
- title: '上新素材数',
|
|
|
|
- align: 'center',
|
|
|
|
- dataIndex: 'newVideoNum',
|
|
|
|
- },
|
|
|
|
- {
|
|
|
|
- title: '爆款素材数',
|
|
|
|
- align: 'center',
|
|
|
|
- dataIndex: 'newHotNum',
|
|
|
|
- },
|
|
|
|
- {
|
|
|
|
- title: '有效素材数',
|
|
|
|
- align: 'center',
|
|
|
|
- dataIndex: 'newEffectNum',
|
|
|
|
- },
|
|
|
|
- {
|
|
|
|
- title: '激活数',
|
|
|
|
- align: 'center',
|
|
|
|
- dataIndex: 'activation',
|
|
|
|
- },
|
|
|
|
- {
|
|
|
|
- title: '激活单价',
|
|
|
|
- align: 'center',
|
|
|
|
- dataIndex: 'activationPrice',
|
|
|
|
- },
|
|
|
|
- ]),
|
|
|
|
- (this.echartsIpaginationProject.current = 1)
|
|
|
|
- this.showColumn()
|
|
|
|
|
|
+ this.columnsProject = [...this.columnsFixd]
|
|
|
|
+ this.echartsIpaginationProject.current = 1
|
|
|
|
+ // this.showColumn()
|
|
this.getItemList()
|
|
this.getItemList()
|
|
} else {
|
|
} else {
|
|
this.titleList = '账户列表'
|
|
this.titleList = '账户列表'
|
|
this.columnsFixd = keepPersonData.setNoDeleteProjectColumns()
|
|
this.columnsFixd = keepPersonData.setNoDeleteProjectColumns()
|
|
this.listNum = keepPersonData.setNoDeleteProjectColumns()
|
|
this.listNum = keepPersonData.setNoDeleteProjectColumns()
|
|
console.log(this.columnsFixd)
|
|
console.log(this.columnsFixd)
|
|
- ;(this.columnsProject = [
|
|
|
|
- {
|
|
|
|
- title: '账户名称',
|
|
|
|
- align: 'center',
|
|
|
|
- dataIndex: 'accountName',
|
|
|
|
- scopedSlots: { customRender: 'accountName' },
|
|
|
|
- },
|
|
|
|
- {
|
|
|
|
- title: '账户ID',
|
|
|
|
- dataIndex: 'accountId',
|
|
|
|
- scopedSlots: { customRender: 'accountId' },
|
|
|
|
- align: 'center',
|
|
|
|
- fixed: 'left',
|
|
|
|
- },
|
|
|
|
- {
|
|
|
|
- title: '运营人员名称',
|
|
|
|
- align: 'center',
|
|
|
|
- dataIndex: 'userName',
|
|
|
|
- },
|
|
|
|
- {
|
|
|
|
- title: '花费',
|
|
|
|
- align: 'center',
|
|
|
|
- dataIndex: 'totalCost',
|
|
|
|
- sorter: (a, b) => a.totalCost - b.totalCost,
|
|
|
|
- },
|
|
|
|
- {
|
|
|
|
- title: '花费环比',
|
|
|
|
- align: 'center',
|
|
|
|
- dataIndex: 'yearOnYear',
|
|
|
|
- },
|
|
|
|
- {
|
|
|
|
- title: '花费同比',
|
|
|
|
- align: 'center',
|
|
|
|
- dataIndex: 'equallyRate',
|
|
|
|
- },
|
|
|
|
- {
|
|
|
|
- title: '激活数',
|
|
|
|
- align: 'center',
|
|
|
|
- dataIndex: 'activation',
|
|
|
|
- },
|
|
|
|
- {
|
|
|
|
- title: '激活单价',
|
|
|
|
- align: 'center',
|
|
|
|
- dataIndex: 'activationPrice',
|
|
|
|
- },
|
|
|
|
- {
|
|
|
|
- title: '行为数',
|
|
|
|
- align: 'center',
|
|
|
|
- dataIndex: 'keyAction',
|
|
|
|
- },
|
|
|
|
- {
|
|
|
|
- title: '封面曝光数',
|
|
|
|
- align: 'center',
|
|
|
|
- dataIndex: 'photoShow',
|
|
|
|
- },
|
|
|
|
- {
|
|
|
|
- title: '封面点击数',
|
|
|
|
- align: 'center',
|
|
|
|
- dataIndex: 'photoClick',
|
|
|
|
- },
|
|
|
|
- ]),
|
|
|
|
- this.showColumn()
|
|
|
|
|
|
+ this.columnsProject = [...this.columnsFixd]
|
|
|
|
+ // this.showColumn()
|
|
this.echartsIpaginationProject.current = 1
|
|
this.echartsIpaginationProject.current = 1
|
|
this.getAccountData()
|
|
this.getAccountData()
|
|
}
|
|
}
|
|
@@ -806,6 +777,11 @@ export default {
|
|
} else {
|
|
} else {
|
|
this.userAveragecost = '暂无数据'
|
|
this.userAveragecost = '暂无数据'
|
|
}
|
|
}
|
|
|
|
+ if (res.result.projectNum) {
|
|
|
|
+ this.projectNum = res.result.projectNum
|
|
|
|
+ } else {
|
|
|
|
+ this.projectNum = '暂无数据'
|
|
|
|
+ }
|
|
}
|
|
}
|
|
})
|
|
})
|
|
},
|
|
},
|
|
@@ -831,6 +807,28 @@ export default {
|
|
})
|
|
})
|
|
},
|
|
},
|
|
|
|
|
|
|
|
+ // 运营组数据
|
|
|
|
+ getGroupList() {
|
|
|
|
+ let params = {
|
|
|
|
+ startTime: this.dateMiddleGroup[0].format('YYYY-MM-DD'),
|
|
|
|
+ endTime: this.dateMiddleGroup[1].format('YYYY-MM-DD'),
|
|
|
|
+ userId: this.userInfo().id,
|
|
|
|
+ pageNum: this.groupIpagination.current,
|
|
|
|
+ pageSize: this.groupIpagination.pageSize,
|
|
|
|
+ }
|
|
|
|
+ this.getAction(
|
|
|
|
+ process.env.VUE_APP_BASE_STARE_URL +
|
|
|
|
+ '/kuaiShouOpreate/kuaiShouMaterialStareController/getOperationGroupData',
|
|
|
|
+ params
|
|
|
|
+ ).then((res) => {
|
|
|
|
+ this.groupLoading = false
|
|
|
|
+ if (res.code == 0) {
|
|
|
|
+ this.groupList = res.result.list
|
|
|
|
+ this.groupIpagination.total = res.result.total
|
|
|
|
+ }
|
|
|
|
+ })
|
|
|
|
+ },
|
|
|
|
+
|
|
sortDataoperate(pagination, filters, sorter, { currentDataSource }) {
|
|
sortDataoperate(pagination, filters, sorter, { currentDataSource }) {
|
|
this.echartsLoadingYun = true
|
|
this.echartsLoadingYun = true
|
|
// console.log(pagination, filters, sorter)
|
|
// console.log(pagination, filters, sorter)
|
|
@@ -843,6 +841,11 @@ export default {
|
|
this.echartsIpagination.current = 1
|
|
this.echartsIpagination.current = 1
|
|
this.getOperateDetails()
|
|
this.getOperateDetails()
|
|
},
|
|
},
|
|
|
|
+ dateMiddleChangeGroup() {
|
|
|
|
+ this.groupLoading = true
|
|
|
|
+ this.groupIpagination.current = 1
|
|
|
|
+ this.getGroupList()
|
|
|
|
+ },
|
|
// 导出
|
|
// 导出
|
|
exportClick() {
|
|
exportClick() {
|
|
let params = {
|
|
let params = {
|
|
@@ -858,6 +861,20 @@ export default {
|
|
params.startTime
|
|
params.startTime
|
|
}&endTime=${params.endTime}&userId=${params.userId}&pageNum=${params.pageNum}&pageSize=${params.pageSize}`
|
|
}&endTime=${params.endTime}&userId=${params.userId}&pageNum=${params.pageNum}&pageSize=${params.pageSize}`
|
|
},
|
|
},
|
|
|
|
+ exportClickGroup() {
|
|
|
|
+ let params = {
|
|
|
|
+ startTime: this.dateMiddleGroup[0].format('YYYY-MM-DD'),
|
|
|
|
+ endTime: this.dateMiddleGroup[1].format('YYYY-MM-DD'),
|
|
|
|
+ userId: this.userInfo().id,
|
|
|
|
+ pageNum: this.groupIpagination.current,
|
|
|
|
+ pageSize: this.groupIpagination.pageSize,
|
|
|
|
+ }
|
|
|
|
+ window.location.href = `${
|
|
|
|
+ process.env.VUE_APP_BASE_STARE_URL
|
|
|
|
+ }${'/kuaiShouOpreate/kuaiShouMaterialStareController/exportOperationGroupData'}?startTime=${
|
|
|
|
+ params.startTime
|
|
|
|
+ }&endTime=${params.endTime}&userId=${params.userId}&pageNum=${params.pageNum}&pageSize=${params.pageSize}`
|
|
|
|
+ },
|
|
getQueryNewlyData() {
|
|
getQueryNewlyData() {
|
|
let params = {
|
|
let params = {
|
|
startTime: this.dateEchart[0].format('YYYY-MM-DD'),
|
|
startTime: this.dateEchart[0].format('YYYY-MM-DD'),
|
|
@@ -1259,57 +1276,57 @@ export default {
|
|
|
|
|
|
changeColumn(val) {
|
|
changeColumn(val) {
|
|
this.columnsProject = [...val]
|
|
this.columnsProject = [...val]
|
|
- if (
|
|
|
|
- this.columnsProject.length > this.columnsFixd.length &&
|
|
|
|
- this.columnsProject.length <= this.columnsFixd.length
|
|
|
|
- ) {
|
|
|
|
- this.columnsProject.forEach((element, index) => {
|
|
|
|
- if (index < this.columnsProject.length - 1) {
|
|
|
|
- element.width = 'auto'
|
|
|
|
- element.fixed = false
|
|
|
|
- }
|
|
|
|
- })
|
|
|
|
|
|
+ // if (
|
|
|
|
+ // this.columnsProject.length > this.columnsFixd.length &&
|
|
|
|
+ // this.columnsProject.length <= this.columnsFixd.length
|
|
|
|
+ // ) {
|
|
|
|
+ // this.columnsProject.forEach((element, index) => {
|
|
|
|
+ // if (index < this.columnsProject.length - 1) {
|
|
|
|
+ // element.width = 'auto'
|
|
|
|
+ // element.fixed = false
|
|
|
|
+ // }
|
|
|
|
+ // })
|
|
|
|
|
|
- this.scrollX = 0
|
|
|
|
- } else if (this.columnsProject.length > this.columnsFixd.length) {
|
|
|
|
- this.columnsProject.forEach((element, index) => {
|
|
|
|
- if (index < this.columnsFixd.length) {
|
|
|
|
- if (element.dataIndex == 'accountNum') {
|
|
|
|
- element.width = 100
|
|
|
|
- element.fixed = 'left'
|
|
|
|
- } else if (element.dataIndex == 'userNum') {
|
|
|
|
- element.width = 100
|
|
|
|
- element.fixed = 'left'
|
|
|
|
- } else if (element.dataIndex == 'yearOnYear') {
|
|
|
|
- element.width = 100
|
|
|
|
- element.fixed = 'left'
|
|
|
|
- } else if (element.dataIndex == 'equallyRate') {
|
|
|
|
- element.width = 100
|
|
|
|
- element.fixed = 'left'
|
|
|
|
- } else {
|
|
|
|
- element.width = 150
|
|
|
|
- element.fixed = 'left'
|
|
|
|
- }
|
|
|
|
- } else {
|
|
|
|
- element.width = 'auto'
|
|
|
|
- element.fixed = false
|
|
|
|
- }
|
|
|
|
- })
|
|
|
|
|
|
+ // this.scrollX = 0
|
|
|
|
+ // } else if (this.columnsProject.length > this.columnsFixd.length) {
|
|
|
|
+ // this.columnsProject.forEach((element, index) => {
|
|
|
|
+ // if (index < this.columnsFixd.length) {
|
|
|
|
+ // if (element.dataIndex == 'accountNum') {
|
|
|
|
+ // element.width = 100
|
|
|
|
+ // element.fixed = 'left'
|
|
|
|
+ // } else if (element.dataIndex == 'userNum') {
|
|
|
|
+ // element.width = 100
|
|
|
|
+ // element.fixed = 'left'
|
|
|
|
+ // } else if (element.dataIndex == 'yearOnYear') {
|
|
|
|
+ // element.width = 100
|
|
|
|
+ // element.fixed = 'left'
|
|
|
|
+ // } else if (element.dataIndex == 'equallyRate') {
|
|
|
|
+ // element.width = 100
|
|
|
|
+ // element.fixed = 'left'
|
|
|
|
+ // } else {
|
|
|
|
+ // // element.width = 150
|
|
|
|
+ // // element.fixed = 'left'
|
|
|
|
+ // }
|
|
|
|
+ // } else {
|
|
|
|
+ // element.width = 'auto'
|
|
|
|
+ // element.fixed = false
|
|
|
|
+ // }
|
|
|
|
+ // })
|
|
|
|
|
|
- this.scrollX = 1000 + 150 * (this.columnsProject.length - this.columnsFixd.length)
|
|
|
|
- } else if (this.columnsProject.length == this.columnsFixd.length) {
|
|
|
|
- this.columnsProject.forEach((element, index) => {
|
|
|
|
- element.width = 'auto'
|
|
|
|
- element.fixed = false
|
|
|
|
- })
|
|
|
|
- this.scrollX = false
|
|
|
|
- } else {
|
|
|
|
- this.scrollX = 0
|
|
|
|
- this.columnsProject.forEach((element) => {
|
|
|
|
- element.width = 'auto'
|
|
|
|
- element.fixed = false
|
|
|
|
- })
|
|
|
|
- }
|
|
|
|
|
|
+ // this.scrollX = 1500 + 200 * (this.columnsProject.length - this.columnsFixd.length)
|
|
|
|
+ // } else if (this.columnsProject.length == this.columnsFixd.length) {
|
|
|
|
+ // this.columnsProject.forEach((element, index) => {
|
|
|
|
+ // element.width = 'auto'
|
|
|
|
+ // element.fixed = false
|
|
|
|
+ // })
|
|
|
|
+ // this.scrollX = false
|
|
|
|
+ // } else {
|
|
|
|
+ // this.scrollX = 0
|
|
|
|
+ // this.columnsProject.forEach((element) => {
|
|
|
|
+ // element.width = 'auto'
|
|
|
|
+ // element.fixed = false
|
|
|
|
+ // })
|
|
|
|
+ // }
|
|
|
|
|
|
let arr = JSON.stringify(this.columnsProject)
|
|
let arr = JSON.stringify(this.columnsProject)
|
|
this.postDataAction('/toutiao/videoReportDaily/saveOrUpdateColumnJson', {
|
|
this.postDataAction('/toutiao/videoReportDaily/saveOrUpdateColumnJson', {
|