prod
lily.zhang 3 years ago
parent fe596f2abd
commit fd709c1822

@ -1,7 +1,7 @@
<!--
* @Author: your name
* @Date: 2021-10-11 10:42:36
* @LastEditTime: 2021-10-23 15:06:25
* @LastEditTime: 2021-11-16 14:00:51
* @LastEditors: Please set LastEditors
* @Description: In User Settings Edit
* @FilePath: /data-show/src/components/v-modal/index.vue
@ -72,7 +72,7 @@ export default {
position: fixed;
width: 100%;
height: 100%;
z-index: 200;
z-index: 1100;
top: 0px;
left: 0px;
background-color: rgba(0, 0, 0, 0.45);

@ -1,7 +1,7 @@
/*
* @Author: your name
* @Date: 2021-10-12 13:56:13
* @LastEditTime: 2021-11-16 10:26:56
* @LastEditTime: 2021-11-16 11:58:04
* @LastEditors: Please set LastEditors
* @Description: In User Settings Edit
* @FilePath: /data-show/src/mixins/index.js
@ -187,6 +187,14 @@ export default {
sClock += ss;
return clock + sClock;
},
btnPrm(val) {
let b = false;
let buttonpermsStr = store.getters.getLevelBtn || [];
let n = buttonpermsStr.findIndex(ele => ele.btn === val);
if(n === -1) b = false;
else b = true;
return b;
}
},
filters: {
// 处理超出字后面...

@ -1,7 +1,7 @@
<!--
* @Author: xw
* @Date: 2021-10-12 11:06:58
* @LastEditTime: 2021-11-12 17:57:31
* @LastEditTime: 2021-11-16 15:43:24
* @LastEditors: Please set LastEditors
* @Description: 热门事件
* @FilePath: /data-show/src/views/BrandInsight/popularEvents/index.vue
@ -49,14 +49,12 @@ export default {
Object.keys(type).forEach((ele) => {
obj[ele] = [];
});
this.sortDataArr(arr)
let dx = [];
arr.forEach((ele) => {
let m1 = moment(ele.maxSourcetime).format('HH:mm');
// let m2 = moment(ele.maxSourcetime);
// let duration = m2.diff(m1);
// let str= moment.utc(time).format('HH:mm')
// let m2 = moment(m1).valueOf()
dx.push(m1)
let a = [
m1,
ele.events_count * 1,
@ -69,10 +67,33 @@ export default {
];
obj[ele.events_type].push(a);
});
this.opt = createOpt(obj);
this.opt = createOpt(dx, obj);
this.load = false;
});
},
//
sortDataArr(arr) {
for(let i=0; i < arr.length; i++) {
for(let j = i+1; j < arr.length; j++) {
let t1 = moment(arr[i].maxSourcetime).format('HH:mm');
let t2 = moment(arr[j].maxSourcetime).format('HH:mm');
let a = t1.split(":");
let x1 = a[0]*60 + a[1]*1;
let b = t2.split(":");
let x2 = b[0]*60 + b[1]*1;
let diff = x2 - x1;
if(diff < 0) {
let ele1 = arr[i];
let ele2 = arr[j];
let ele3 = ele1;
arr[i] = ele2;
arr[j] = ele3;
}
}
}
}
},
};
</script>

@ -1,7 +1,7 @@
/*
* @Author: your name
* @Date: 2021-10-12 11:16:44
* @LastEditTime: 2021-11-12 17:58:45
* @LastEditTime: 2021-11-16 15:44:07
* @LastEditors: Please set LastEditors
* @Description: In User Settings Edit
* @FilePath: /data-show/src/views/BrandInsight/popularEvents/opt.js
@ -25,14 +25,14 @@ function createData(obj = {}) {
data: obj[key],
type: 'scatter',
symbolSize: function (data) {
return data[2] / Math.E
return data[2]/1.2
}
}
arr.push(o)
}
return arr
}
export default function createOpt(ds = {}) {
export default function createOpt(dx = [], ds = {}) {
const data = createData(ds)
return {
title: {
@ -86,7 +86,7 @@ export default function createOpt(ds = {}) {
splitLine: {
show: false
},
// data: ['00:00', '04:00', '08:00', '12:00', '16:00', '20:00', '24:00'],
data: dx,
axisLabel : {
// formatter: (value) => {

@ -1,7 +1,7 @@
<!--
* @Author: xw
* @Date: 2021-10-12 09:32:35
* @LastEditTime: 2021-11-16 10:48:54
* @LastEditTime: 2021-11-16 14:25:51
* @LastEditors: Please set LastEditors
* @Description: 舆情传播趋势
* @FilePath: /data-show/src/views/BrandInsight/titsopo/index.vue
@ -9,7 +9,7 @@
<template>
<div class="tit-outter" v-loading="load">
<div class="tit-header">
<a-button type="primary" size="small" @click="goIDE"></a-button>
<a-button type="primary" size="small" @click="goIDE" v-has="'btn_brand_datalist'"></a-button>
<a-button type="primary" style="margin-left: 1rem;margin-right: 1rem;" size="small" :loading="btnLoading" @click="exportData" v-has="'btn_brand_toppt'"></a-button>
</div>
<div class="tit-inner">
@ -78,6 +78,9 @@ export default {
},
//
clickEchars(data = []) {
if(!this.btnPrm('btn_brand_datalist')) {
return
}
let qudao = [];
let startTime = "";
let endTime = moment(new Date()).format("YYYY-MM-DD hh:mm:ss");
@ -107,8 +110,12 @@ export default {
let obj = Object.assign({}, this.getCtime2, this.form);
obj.iContrastType = 1;
this.btnLoading = true;
getToPptTask(obj).then(res => {
console.log(res)
getToPptTask(obj).then(() => {
this.$notification.open({
message: `数据生成中`,
description: '请前往个人中心查看下载进度',
placement: 'bottomRight',
});
this.btnLoading = false;
})
}

@ -1,7 +1,7 @@
<!--
* @Author: your name
* @Date: 2021-10-19 19:05:36
* @LastEditTime: 2021-11-04 16:06:20
* @LastEditTime: 2021-11-16 17:20:04
* @LastEditors: Please set LastEditors
* @Description: In User Settings Edit
* @FilePath: /data-show/src/views/EventDEC/incidentSpreadSituation/index.vue
@ -9,9 +9,9 @@
<template>
<div class="iss-outter">
<v-label-div title="事件传播态势">
<a-select :default-value="1" :size="$vuiSize" style="width: 120px; margin-left: 40px; margin-right: 8px" v-model="selVal" @change="handleChange">
<a-select v-model="form.sTimeType" :size="$vuiSize" style="width: 7rem; margin-left: 2.2rem; margin-right: 0.5rem" @change="handleChange">
<a-select-option :style="{ color: '#fff' }" v-for="item in selDatas" :value="item.key" :key="item.key">
{{ item.label }}
{{ item.value }}
</a-select-option>
</a-select>
</v-label-div>
@ -23,7 +23,7 @@
<script>
import createOpt from "./opt";
import { getTwoTime } from "@/api/comm";
import { getOneTime } from "@/api/comm";
import { getSourcetypeTime } from "@/api/EventdEC";
export default {
name: "incidentSpreadSituation",
@ -36,47 +36,33 @@ export default {
},
},
opt: {},
selVal: 1,
selDatas: [
{
key: 1,
label: "24小时",
},
{
key: 2,
label: "最近7天",
},
{
key: 3,
label: "最近30天",
},
{
key: 4,
label: "自定义",
},
],
selDatas: [],
form: {
sBrand: "",
token: "",
sSeriesName: ""
sRele: "",
sTimeType: "",
},
};
},
created() {
this.form.token = this.getToken;
this.brand = this.getBrand.brandname || "奥迪";
this.form.sSeriesName = this.getModel.name;
this.getDdta();
this.form.sRele = this.id;
this.getSelect().then(() => {
this.getDdta();
});
},
methods: {
//
getSelect() {
getTwoTime().then((res) => {
this.selDatas = res.data;
if (!this.form.sTimeType) {
this.form.sTimeType = this.selDatas[0].key;
this.setCtime2(this.form);
}
return new Promise((resolve, reject) => {
getOneTime().then((res) => {
this.selDatas = res.data;
this.form.sTimeType = this.selDatas[0].key
resolve(res)
}).catch(() => {
reject(false)
});
});
},
getDdta() {
@ -98,10 +84,7 @@ export default {
},
//
handleChange() {
this.setCtime2(this.form);
if (this.form.sTimeType != 4) {
this.reload();
}
this.getDdta();
},
},
};

@ -1,13 +1,13 @@
/*
* @Author: your name
* @Date: 2021-10-12 10:11:24
* @LastEditTime: 2021-11-01 14:25:41
* @LastEditTime: 2021-11-16 17:13:35
* @LastEditors: Please set LastEditors
* @Description: In User Settings Edit
* @FilePath: /data-show/src/views/BrandInsight/titsopo/opt.js
*/
import * as echarts from "echarts";
// import { bigNumberTransform } from "@/utils/gol/dataTool"
import { bigNumberTransform } from "@/utils/gol/dataTool"
let colors = ['#546fc5', '#91cb74', '#f9c857', '#ed6565', '#72bfde', '#3aa272', '#fb8351'];
function createData(ds = []) {
let arr = [];
@ -25,7 +25,7 @@ function createData(ds = []) {
symbol: 'none',
areaStyle: {
normal: {
opacity: 0.4,
opacity: 0.2,
color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [{
offset: 0, color: colors[j] // 0% 处的颜色
}, {
@ -51,10 +51,10 @@ export default function createOpt(dx=[], ds=[]) {
let data = createData(ds)
return {
grid: {
left: '3%',
right: '2%',
bottom: '3%',
top: '15%',
left: 10,
right: '5%',
bottom: 10,
top: 44,
containLabel: true
},
tooltip: {
@ -70,10 +70,13 @@ export default function createOpt(dx=[], ds=[]) {
legend: {
icon: 'roundRect',
textStyle: { //图例文字的样式
color: '#fff'
color: '#fff',
fontSize: 10
},
y: 12,
x: 16
x: 16,
itemWidth: 12,
itemHeight: 12
},
xAxis: {
type: 'category',
@ -103,6 +106,12 @@ export default function createOpt(dx=[], ds=[]) {
color: "#fff",
},
},
axisLabel: {
formatter: (value) => {
let str = bigNumberTransform(value);
return str;
}
},
splitLine: {
lineStyle: {
type: "dashed", // y轴分割线类型

@ -1,7 +1,7 @@
<!--
* @Author: your name
* @Date: 2021-10-19 15:57:11
* @LastEditTime: 2021-10-20 12:02:38
* @LastEditTime: 2021-11-16 17:16:55
* @LastEditors: Please set LastEditors
* @Description: In User Settings Edit
* @FilePath: /data-show/src/views/EventDEC/index.vue
@ -14,18 +14,17 @@
<v-btn @click="goback"></v-btn>
</v-label-div>
<div class="edec-d1-dd1">
<div class="d1">{{this.form.sBrand}}</div>
<div class="d1">{{eventObj.events_type}}</div>
<div class="d2">
<div class="s1">延续哈弗H6设计 哈弗H6S内饰官图发布</div>
<div class="s2">此前有报道称广汽丰田赛那SIENNA(参数|询价)将于8月29日亮相2021成都车展不过我们从官方获悉到最新消息新车将于8月28日在成都等多城市联合首发亮相并实车现身成都车展按照规划新车有望在2021年下半年正式上市作为丰田旗下的一款MPV车型由广汽丰田进行国产在官方的释义中赛那的名称中指赛过超越意味着霸气尽显强者姿态一览无余则包含了霎那不负片刻快乐以及致远时刻向幸福出发的美好寓意此前有报道称广汽丰田赛那SIENNA(参数|询价)将于8月29日亮相2021成都车</div>
<div class="s1">{{eventObj.events_title}}</div>
<div class="s2">{{eventObj.description}}</div>
</div>
</div>
<div class="edec-d1-dd2">
<div class="d1" style="margin-left: 16px">
<img class="m1" src="../../assets/images/EventInsight/ic_kssj.png" />
<span class="s1">开始时间</span>
<span class="s2">{{Time}}</span>
<a-pagination v-model="form.iPageIndex" :Time="Time" show-less-items/>
<span class="s2">{{eventObj.source_time}}</span>
</div>
<div class="d1">
<img class="m1" src="../../assets/images/EventInsight/ic_yxl.png" />
@ -35,8 +34,7 @@
<div class="d1">
<img class="m1" src="../../assets/images/EventInsight/ic_cbl.png" />
<span class="s1">传播总量</span>
<span class="s2">{{total}}</span>
<a-pagination v-model="form.iPageIndex" :total="total" show-less-items/>
<span class="s2">{{eventObj.events_count}}</span>
</div>
</div>
</div>
@ -68,12 +66,12 @@ import wbUserEDE from "./wbUserEDE";
import tailAnalysisED from "./tailAnalysisED";
import kmdED from "./kmdED"
import pnwcWord from "./pnwcWord"
import {getEventData,getList,toExcel,getCountOrEffectOrHot} from '@/api/EventdEC'
import {getEventData} from '@/api/EventdEC'
export default {
name: "eventDEC",
components: {
incidentSpreadSituation, //
tonalCommunicationPosture, //
tonalCommunicationPosture, //
esprocess, //
mediaInterpretationEc, // -
mediaInterpretationED, //
@ -88,20 +86,24 @@ export default {
total: 0,
Time: "",
events_id: "",
eventObj: {
events_type: "",
events_title: "",
description: "",
source_time: "",
events_count: 0
},
form: {
sBrand: "",
sRele: "",
token: "",
}
}
},
created() {
this.form.token = this.getToken;
this.form.sBrand = this.getBrand.brandname || '奥迪';
this.events_id = this.$route.query.events_id || "";
this.form.sRele = this.events_id;
this.getDdta();
this.getDdta1();
this.getDdta2();
this.getDdta3();
},
methods: {
getDdta(){
@ -109,36 +111,8 @@ export default {
this.load = true;
getEventData(obj).then(res => {
let data = res.data || [];
this.data = data;
this.load = false;
})
},
getDdta1(){
let obj = Object.assign({},this.form);
this.load = true;
getList(obj).then(res => {
let data = res.data;
let totalNum = res.totalNum || 0;
this.total = totalNum;
this.data = data;
this.load = false;
})
},
getDdta2(){
let obj = Object.assign({},this.form);
this.load = true;
toExcel(obj).then(res => {
let data = res.data;
this.data = data;
this.load = false;
})
},
getDdta3(){
let obj = Object.assign({},this.form);
this.load = true;
getCountOrEffectOrHot(obj).then(res => {
let data = res.data;
this.data = data;
this.eventObj = {...data[0]._source};
console.log(this.eventObj)
this.load = false;
})
},

@ -1,17 +1,17 @@
<!--
* @Author: your name
* @Date: 2021-10-19 19:35:25
* @LastEditTime: 2021-11-04 16:04:07
* @LastEditTime: 2021-11-16 17:22:48
* @LastEditors: Please set LastEditors
* @Description: In User Settings Edit
* @FilePath: /data-show/src/views/EventDEC/tonalCommunicationPosture/index.vue
-->
<template>
<div class="tcp-outter">
<v-label-div title="事件传播态势">
<a-select :default-value="1" :size="$vuiSize" style="width: 120px; margin-left: 40px; margin-right: 8px" v-model="selVal" @change="handleChange">
<v-label-div title="调性传播态势">
<a-select v-model="form.sTimeType" :size="$vuiSize" style="width: 120px; margin-left: 40px; margin-right: 8px" @change="handleChange">
<a-select-option :style="{ color: '#fff' }" v-for="item in selDatas" :value="item.key" :key="item.key">
{{ item.label }}
{{ item.value }}
</a-select-option>
</a-select>
</v-label-div>
@ -23,7 +23,7 @@
<script>
import createOpt from "./opt"
import { getTwoTime } from "@/api/comm";
import { getOneTime } from "@/api/comm";
import { getAffectionsTime } from "@/api/EventdEC";
export default {
name: "tonalCommunicationPosture",
@ -36,47 +36,34 @@ export default {
},
},
opt: {},
selVal: 1,
selDatas: [
{
key: 1,
label: "24小时",
},
{
key: 2,
label: "最近7天",
},
{
key: 3,
label: "最近30天",
},
{
key: 4,
label: "自定义",
},
],
form: {
sBrand: "",
token: "",
sSeriesName: ""
sRele: "",
sTimeType: "",
},
};
},
created() {
this.form.token = this.getToken;
this.brand = this.getBrand.brandname || "奥迪";
this.form.sSeriesName = this.getModel.name;
this.getDdta();
this.form.sRele = this.id;
this.getSelect().then(() => {
this.getDdta();
})
},
methods: {
//
getSelect() {
getTwoTime().then((res) => {
this.selDatas = res.data;
if (!this.form.sTimeType) {
this.form.sTimeType = this.selDatas[0].key;
this.setCtime2(this.form);
}
return new Promise((resolve, reject) => {
getOneTime().then((res) => {
this.selDatas = res.data;
this.form.sTimeType = this.selDatas[0].key
resolve(res)
}).catch(() => {
reject(false)
});
});
},
getDdta() {
@ -98,10 +85,7 @@ export default {
},
//
handleChange() {
this.setCtime2(this.form);
if (this.form.sTimeType != 4) {
this.reload();
}
this.getDdta();
},
},
};

@ -2,7 +2,7 @@
/*
* @Author: your name
* @Date: 2021-10-09 11:38:06
* @LastEditTime: 2021-11-01 19:15:48
* @LastEditTime: 2021-11-16 17:25:40
* @LastEditors: Please set LastEditors
* @Description: In User Settings Edit
* @FilePath: /data-show/src/views/Index/barometer/opt.js
@ -29,7 +29,7 @@ function createData(ds = []) {
},
areaStyle: {
normal: {
opacity: 0.4,
opacity: 0.2,
color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [{
offset: 0, color: colors[j] // 0% 处的颜色
}, {
@ -92,6 +92,7 @@ export default function createOpt(dx = [], ds = []) {
},
xAxis: {
type: 'category',
boundaryGap: false,
axisTick: {
show: false,
},

@ -1,7 +1,7 @@
/*
* @Author: your name
* @Date: 2021-10-27 15:26:21
* @LastEditTime: 2021-10-28 10:28:34
* @LastEditTime: 2021-11-16 14:03:35
* @LastEditors: Please set LastEditors
* @Description: In User Settings Edit
* @FilePath: /data-show/src/views/IndustryDataExport/getApiData.js
@ -167,6 +167,7 @@ export default {
return new Promise((resolve, reject) => {
getToExcelField({sType: sType, token: token}).then(res => {
let data = res.data;
console.log(data)
let arr = [];
data.forEach((ele) => {
let obj = {

@ -1,7 +1,7 @@
<!--
* @Author: xw
* @Date: 2021-10-11 14:11:04
* @LastEditTime: 2021-10-29 16:16:49
* @LastEditTime: 2021-11-16 13:57:22
* @LastEditors: Please set LastEditors
* @Description: 行业数据导出
* @FilePath: /data-show/src/views/IndustryDataExport/index.vue
@ -39,7 +39,7 @@
<div class="ide-d2">
<span class="s1" v-if="!form.token"><span class="ss1">{{totalNum}}</span>条数据</span>
<span class="s1" v-if="form.token"><span class="ss1">{{totalNum}}</span>条数据已选中<span class="ss1">{{secIds.length}}</span>条数据</span>
<a-button type="primary" v-if="form.token" @click="handlerExport"></a-button>
<a-button type="primary" v-if="form.token" @click="handlerExport" v-has="btnUrl"></a-button>
</div>
<v-table :row-selection="rowSelection" :columns="columns" :data="tbData" :loading="tableLoading" :pagination="pagination" @change="handlerPage">
<template slot="titlex" slot-scope="text, record">
@ -174,6 +174,7 @@ export default {
iNum: "",
sField: "",
},
btnUrl: ""
};
},
created() {

@ -1,7 +1,7 @@
/*
* @Author: your name
* @Date: 2021-10-27 15:29:37
* @LastEditTime: 2021-11-11 10:45:41
* @LastEditTime: 2021-11-16 13:55:30
* @LastEditors: Please set LastEditors
* @Description: In User Settings Edit
* @FilePath: /data-show/src/views/IndustryDataExport/tableEvent.js
@ -26,6 +26,11 @@ export default {
// 初始化页面
initDoc() {
this.title = this.$route.query.title || '行业数据'
if(this.title === '品牌-行业数据') {
this.btnUrl = 'btn_brand_c_toppt'
} else if(this.title === '车型-行业数据') {
this.btnUrl = 'btn_model_toexcel'
}
Promise.all([
this.getQuDao(),
this.getQingGan(),

@ -1,7 +1,7 @@
<!--
* @Author: your name
* @Date: 2021-10-25 11:34:57
* @LastEditTime: 2021-10-26 10:45:53
* @LastEditTime: 2021-11-16 13:35:42
* @LastEditors: Please set LastEditors
* @Description: In User Settings Edit
* @FilePath: /data-show/src/views/MarketingAnalysis/brandSalesRankingTOP10Ranking/index.vue
@ -38,7 +38,7 @@ export default {
//
getData() {
this.load = true;
let obj = Object.assign({}, this.getCTime, this.form);
let obj = Object.assign({}, this.getCtime, this.form);
getCheZhuBrandMKTCount0528(obj).then((res) => {
let data = res.data;
let dx = [];

@ -1,7 +1,7 @@
<!--
* @Author: your name
* @Date: 2021-10-25 11:03:30
* @LastEditTime: 2021-11-03 17:09:42
* @LastEditTime: 2021-11-16 13:35:57
* @LastEditors: Please set LastEditors
* @Description: In User Settings Edit
* @FilePath: /data-show/src/views/MarketingAnalysis/brandVolumeTOP10/index.vue
@ -38,7 +38,7 @@ export default {
methods: {
//
getData() {
let obj = Object.assign({}, this.getCTime, this.form);
let obj = Object.assign({}, this.getCtime, this.form);
this.load = true;
getBrandSourceType0528(obj).then((res) => {
let data = res.data || [];

@ -1,7 +1,7 @@
<!--
* @Author: your name
* @Date: 2021-10-25 11:21:38
* @LastEditTime: 2021-10-26 10:29:22
* @LastEditTime: 2021-11-16 13:36:06
* @LastEditors: Please set LastEditors
* @Description: In User Settings Edit
* @FilePath: /data-show/src/views/MarketingAnalysis/keyActiveMediaTOP10Ranking/index.vue
@ -39,7 +39,7 @@ export default {
//
getData() {
this.load = true;
let obj = Object.assign({}, this.getCTime, this.form);
let obj = Object.assign({}, this.getCtime, this.form);
getWebsite(obj).then((res) => {
let data = res.data || [];
let dx = [];

@ -1,118 +1,119 @@
<!--
* @Author: your name
* @Date: 2021-10-15 15:58:57
* @LastEditTime: 2021-11-03 15:04:18
* @LastEditTime: 2021-11-16 13:41:08
* @LastEditors: Please set LastEditors
* @Description: In User Settings Edit
* @FilePath: /data-show/src/views/BrandComparison/brandCommunicationTOPMedia/index.vue
-->
<template>
<div class="bcm-outter" v-loading="load">
<v-label-div title="品牌传播TOP媒体"> </v-label-div>
<div class="bcm-inner">
<div class="bcm-item" v-for="(item, index) in arrList" :key="index">
<span class="ss1" :style="{ color: colors[index] }">{{
<div class="bcm-outter" v-loading="load">
<v-label-div title="品牌传播TOP媒体"> </v-label-div>
<div class="bcm-inner">
<div class="bcm-item" v-for="(item, index) in arrList" :key="index">
<span class="ss1" :style="{ color: colors[index] }">{{
item.key
}}</span>
<v-ranking-bcm
v-for="(it, n) in item.data"
:key="n"
:label="it.key"
:num="it.num"
:val="it.value"
></v-ranking-bcm>
</div>
<div class="dd1">
<vue-scroll>
<v-ranking-bcm v-for="(it, n) in item.data" :key="n" :label="it.key" :num="it.num" :val="it.value"></v-ranking-bcm>
</vue-scroll>
</div>
</div>
</div>
</div>
</div>
</template>
<script>
import { getSourceCountMKT0528C } from "@/api/MarketingComparison/index.js";
import vRankingBcm from "./v-ranking-bcm";
export default {
name: "mcTOPMedia",
components: {
vRankingBcm,
},
data() {
return {
form: {
token: "",
sJson: "",
load: false
},
colors: [
"#3373CC",
"#63AECC",
"#54BF93",
"#CC9D12",
"#CC7733",
"#CC5B41",
],
arrList: [],
};
},
created() {
this.initData();
},
methods: {
initData() {
this.form.token = this.getToken;
let arr = this.getSComparison;
let sourceData = [];
arr.forEach((ele) => {
let o = {
sBrand: ele.brand,
sSeriesName: ele.model,
sStartTime: ele.startTime,
sEndTime: ele.endTime,
name: "mcTOPMedia",
components: {
vRankingBcm,
},
data() {
return {
form: {
token: "",
sJson: "",
load: false,
},
colors: [
"#3373CC",
"#63AECC",
"#54BF93",
"#CC9D12",
"#CC7733",
"#CC5B41",
],
arrList: [],
};
sourceData.push(o);
});
this.form.sJson = JSON.stringify(sourceData); //json
this.getData();
},
getData() {
let obj = Object.assign({}, this.getCtime, this.form);
this.load = true;
getSourceCountMKT0528C(obj).then((res) => {
let data = res.data || [];
//
data.forEach((ele) => {
for (let index = 0; index < ele.data.length; index++) {
ele.data[index].num = index + 1;
}
ele.data = ele.data.slice(0,5);
});
this.arrList = data;
this.load = false;
});
created() {
this.initData();
},
methods: {
initData() {
this.form.token = this.getToken;
let arr = this.getSComparison;
let sourceData = [];
arr.forEach((ele) => {
let o = {
sBrand: ele.brand,
sSeriesName: ele.model,
sStartTime: ele.startTime,
sEndTime: ele.endTime,
};
sourceData.push(o);
});
this.form.sJson = JSON.stringify(sourceData); //json
this.getData();
},
getData() {
let obj = Object.assign({}, this.getCtime, this.form);
this.load = true;
getSourceCountMKT0528C(obj).then((res) => {
let data = res.data || [];
//
data.forEach((ele) => {
for (let index = 0; index < ele.data.length; index++) {
ele.data[index].num = index + 1;
}
ele.data = ele.data.slice(0, 5);
});
this.arrList = data;
this.load = false;
});
},
},
},
};
</script>
<style lang="less" scoped>
.bcm-outter {
width: 100%;
height: 460px;
border: 2px solid #0f2a4d;
margin-top: 16px;
.bcm-inner {
width: 100%;
height: calc(100% - 48px);
display: flex;
justify-content: flex-start;
.bcm-item {
width: 282px;
margin-left: 27px;
.ss1 {
display: block;
font-size: 18px;
color: #fff;
font-weight: 500;
padding-top: 14px;
}
height: 460px;
border: 2px solid #0f2a4d;
margin-top: 16px;
.bcm-inner {
width: 100%;
height: calc(100% - 48px);
display: flex;
justify-content: flex-start;
.bcm-item {
width: 282px;
margin-left: 27px;
.ss1 {
display: block;
font-size: 18px;
color: #fff;
font-weight: 500;
padding-top: 14px;
}
.dd1 {
height: calc(100% - 44px);
}
}
}
}
}
</style>

@ -1,7 +1,7 @@
<!--
* @Author: your name
* @Date: 2021-10-15 15:58:57
* @LastEditTime: 2021-11-16 11:23:15
* @LastEditTime: 2021-11-16 12:04:29
* @LastEditors: Please set LastEditors
* @Description: In User Settings Edit
* @FilePath: /data-show/src/views/BrandComparison/brandCommunicationTOPMedia/index.vue
@ -87,7 +87,6 @@ export default {
};
showData.push(obj);
});
console.log(showData)
showData.forEach((ele) => {
//
for (

@ -1,7 +1,7 @@
<!--
* @Author: your name
* @Date: 2021-10-25 13:20:36
* @LastEditTime: 2021-11-01 17:34:18
* @LastEditTime: 2021-11-16 15:53:19
* @LastEditors: Please set LastEditors
* @Description: In User Settings Edit
* @FilePath: /data-show/src/views/ModelInsight/ml-brand-data/index.vue
@ -24,7 +24,7 @@
<span>{{item.value}}</span>
</div>
</template>
<span class="s2">{{count}}</span>
<span class="s2">{{count|formatMoney(0,'',',')}}</span>
</a-popover>
</div>
</div>

@ -1,7 +1,7 @@
<!--
* @Author: xw
* @Date: 2021-10-12 09:32:35
* @LastEditTime: 2021-11-01 17:35:19
* @LastEditTime: 2021-11-16 14:25:41
* @LastEditors: Please set LastEditors
* @Description: 舆情传播趋势
* @FilePath: /data-show/src/views/BrandInsight/titsopo/index.vue
@ -9,8 +9,8 @@
<template>
<div class="tit-outter" v-loading="load">
<div class="tit-header">
<a-button type="primary" size="small" @click="goIDE"></a-button>
<a-button type="primary" style="margin-left: 16px;margin-right: 16px;" size="small">导出报告</a-button>
<a-button type="primary" size="small" @click="goIDE" v-has="'btn_model_datalist'"></a-button>
<a-button type="primary" :loading="btnLoading" style="margin-left: 1rem;margin-right: 1rem;" size="small" v-has="'btn_model_toppt'" @click="exportData"></a-button>
</div>
<div class="tit-inner">
<vLabel-div title="舆情传播趋势"></vLabel-div>
@ -23,6 +23,7 @@
<script>
import { getSourcetypeTime } from "@/api/ModelInsight";
import { getToPptTask } from "@/api/BrandInsight";
import moment from "moment";
import createOpt from "./opt";
export default {
@ -31,6 +32,7 @@ export default {
data() {
return {
load: false,
btnLoading: false,
form: {
sBrand: "",
sSeriesName: "",
@ -85,20 +87,48 @@ export default {
this.load = false;
});
},
clickEchars(data = []) {
clickEchars(data = []) {
if (!this.btnPrm("btn_model_datalist")) {
return;
}
let qudao = [];
let startTime = "";
let endTime = moment(new Date()).format('YYYY-MM-DD hh:mm:ss');
data.forEach(ele => {
let seriesName = ele.seriesName;
startTime = ele.name;
qudao.push(seriesName);
})
let endTime = moment(new Date()).format("YYYY-MM-DD hh:mm:ss");
data.forEach((ele) => {
let seriesName = ele.seriesName;
startTime = ele.name;
qudao.push(seriesName);
});
let sTimeType = 4;
this.$router.push({
path: "/industryDataExport",
query: { startTime, endTime, qudao, sTimeType, token: this.getToken, action: 'getList', sType: 'BrandData', brand: this.form.sBrand, seriesName: this.form.sSeriesName, title: "车型-行业数据" },
query: {
startTime,
endTime,
qudao,
sTimeType,
token: this.getToken,
action: "getList",
sType: "BrandData",
brand: this.form.sBrand,
seriesName: this.form.sSeriesName,
title: "车型-行业数据",
},
});
},
//
exportData() {
let obj = Object.assign({}, this.getCtime2, this.form);
obj.iContrastType = 2;
this.btnLoading = true;
getToPptTask(obj).then(() => {
this.$notification.open({
message: `数据生成中`,
description: '请前往个人中心查看下载进度',
placement: 'bottomRight',
});
this.btnLoading = false;
})
}
},
};

@ -1,7 +1,7 @@
<!--
* @Author: xw
* @Date: 2021-10-12 11:06:58
* @LastEditTime: 2021-11-12 18:01:54
* @LastEditTime: 2021-11-16 15:48:12
* @LastEditors: Please set LastEditors
* @Description: 热门事件
* @FilePath: /data-show/src/views/BrandInsight/popularEvents/index.vue
@ -58,11 +58,11 @@ export default {
Object.keys(type).forEach((ele) => {
obj[ele] = [];
});
this.sortDataArr(arr)
let dx = []
arr.forEach((ele) => {
let m1 = moment(ele.maxSourcetime).format('HH:mm');
// let m2 = moment(ele.maxSourcetime);
// let duration = m2.diff(m1, "hours");
// let str= moment.utc(time).format('HH:mm')
dx.push(m1)
let a = [
m1,
ele.events_count * 1,
@ -75,9 +75,30 @@ export default {
];
obj[ele.events_type].push(a);
});
this.opt = createOpt(obj);
this.opt = createOpt(dx, obj);
this.load = false;
})
},
//
sortDataArr(arr) {
for(let i=0; i < arr.length; i++) {
for(let j = i+1; j < arr.length; j++) {
let t1 = moment(arr[i].maxSourcetime).format('HH:mm');
let t2 = moment(arr[j].maxSourcetime).format('HH:mm');
let a = t1.split(":");
let x1 = a[0]*60 + a[1]*1;
let b = t2.split(":");
let x2 = b[0]*60 + b[1]*1;
let diff = x2 - x1;
if(diff < 0) {
let ele1 = arr[i];
let ele2 = arr[j];
let ele3 = ele1;
arr[i] = ele2;
arr[j] = ele3;
}
}
}
}
}
}

@ -1,7 +1,7 @@
/*
* @Author: your name
* @Date: 2021-10-12 11:16:44
* @LastEditTime: 2021-11-12 18:01:26
* @LastEditTime: 2021-11-16 15:49:47
* @LastEditors: Please set LastEditors
* @Description: In User Settings Edit
* @FilePath: /data-show/src/views/BrandInsight/popularEvents/opt.js
@ -18,14 +18,14 @@ function createData(obj = {}) {
data: obj[key],
type: 'scatter',
symbolSize: function (data) {
return data[2]
return data[2] / 1.2
}
}
arr.push(o)
}
return arr
}
export default function createOpt(ds = {}) {
export default function createOpt(dx = [], ds = {}) {
const data = createData(ds)
return {
title: {
@ -37,8 +37,11 @@ export default function createOpt(ds = {}) {
x: 16,
icon: 'roundRect',
textStyle: { //图例文字的样式
color: '#fff'
}
color: '#fff',
fontSize: 10
},
itemWidth: 12,
itemHeight: 12
},
grid: {
left: 16,
@ -76,7 +79,7 @@ export default function createOpt(ds = {}) {
splitLine: {
show: false
},
// data: ['00:00', '04:00', '08:00', '12:00', '16:00', '20:00', '24:00'],
data: dx,
axisLabel : {
// formatter: (value) => {

Loading…
Cancel
Save