prod
lily.zhang 3 years ago
parent 36eb6ec3be
commit 91292eb101

@ -1,7 +1,7 @@
<!-- <!--
* @Author: your name * @Author: your name
* @Date: 2021-10-08 08:41:57 * @Date: 2021-10-08 08:41:57
* @LastEditTime: 2021-10-26 11:30:46 * @LastEditTime: 2021-10-26 13:03:31
* @LastEditors: Please set LastEditors * @LastEditors: Please set LastEditors
* @Description: In User Settings Edit * @Description: In User Settings Edit
* @FilePath: /data-show/src/App.vue * @FilePath: /data-show/src/App.vue
@ -16,7 +16,6 @@
<script> <script>
import zhCN from "ant-design-vue/lib/locale-provider/zh_CN"; import zhCN from "ant-design-vue/lib/locale-provider/zh_CN";
import { createZoom } from "@/utils/rem";
export default { export default {
name: "App", name: "App",
data() { data() {
@ -27,12 +26,6 @@ export default {
created() { created() {
// this.changeZoom() // this.changeZoom()
}, },
mounted() {
createZoom(document, window);
window.onresize = function () {
createZoom(document, window);
};
},
methods: { methods: {
changeZoom() { changeZoom() {
let w = window.screen.width; let w = window.screen.width;

@ -1,7 +1,7 @@
/* /*
* @Author: your name * @Author: your name
* @Date: 2021-10-25 15:38:59 * @Date: 2021-10-25 15:38:59
* @LastEditTime: 2021-10-26 08:50:57 * @LastEditTime: 2021-10-26 15:18:57
* @LastEditors: Please set LastEditors * @LastEditors: Please set LastEditors
* @Description: In User Settings Edit * @Description: In User Settings Edit
* @FilePath: /data-show/src/api/BrandInsight/index.js * @FilePath: /data-show/src/api/BrandInsight/index.js
@ -82,3 +82,73 @@ export function getSexMergeWeiBo(params) {
params: obj params: obj
}) })
} }
// 微博洞察-微博声量趋势
export function getCountTime0528(params) {
let obj = Object.assign({action: 'getCountTime0528', sType: 'BrandWeiBo'}, params)
return httpService({
url: `/api/v6.ashx`,
method: 'get',
params: obj
})
}
// 论坛传播态势
export function getBbsCountTime(params) {
let obj = Object.assign({action: 'getBbsCountTime', sType: 'BbsBrand'}, params)
return httpService({
url: `/api/v6.ashx`,
method: 'get',
params: obj
})
}
// 论坛洞察-全网热议话题方向
export function getHotTopic0528(params) {
let obj = Object.assign({action: 'getHotTopic0528', sType: 'BbsBrand', iBBsType: 1}, params)
return httpService({
url: `/api/v6.ashx`,
method: 'get',
params: obj
})
}
// 论坛洞察-传播TOP车型
export function agetCartypeTop10(params) {
let obj = Object.assign({action: 'getCartypeTop10', sType: 'BbsBrand', iBBsType: 1}, params)
return httpService({
url: `/api/v6.ashx`,
method: 'get',
params: obj
})
}
// 尾翼洞察-热门词云
export function getHotWord(params) {
let obj = Object.assign({action: 'getHotWord', sType: 'BrandWeiYi'}, params)
return httpService({
url: `/api/v6.ashx`,
method: 'get',
params: obj
})
}
// 尾翼洞察-传播趋势
export function getWeiYiVolumeTime(params) {
let obj = Object.assign({action: 'getWeiYiVolumeTime', sType: 'BrandWeiYi'}, params)
return httpService({
url: `/api/v6.ashx`,
method: 'get',
params: obj
})
}
// 尾翼洞察-重点媒体
export function getWebsite(params) {
let obj = Object.assign({action: 'getWebsite', sType: 'BrandWeiYi'}, params)
return httpService({
url: `/api/v6.ashx`,
method: 'get',
params: obj
})
}

@ -1,7 +1,7 @@
<!-- <!--
* @Author: your name * @Author: your name
* @Date: 2021-10-09 09:19:06 * @Date: 2021-10-09 09:19:06
* @LastEditTime: 2021-10-21 16:03:07 * @LastEditTime: 2021-10-26 12:57:04
* @LastEditors: Please set LastEditors * @LastEditors: Please set LastEditors
* @Description: In User Settings Edit * @Description: In User Settings Edit
* @FilePath: /data-show/src/components/v-label-ctx/index.vue * @FilePath: /data-show/src/components/v-label-ctx/index.vue
@ -66,7 +66,7 @@ export default {
align-items: center; align-items: center;
border-bottom: 1px solid #0F2A4D; border-bottom: 1px solid #0F2A4D;
.d1 { .d1 {
width: 28px; width: 42px;
.s1 { .s1 {
display: block; display: block;
width: 100%; width: 100%;

@ -78,6 +78,7 @@ export default {
}; };
}, },
created() { created() {
console.log(this.getCommTime)
this.getTime(this.getCommTime) this.getTime(this.getCommTime)
}, },
mounted() { mounted() {
@ -150,8 +151,7 @@ export default {
}, },
// //
getTime(commTime) { getTime(commTime) {
let obj = {sType: commTime.sType} getOneTime(commTime).then(res => {
getOneTime(obj).then(res => {
this.selDatas = res.data; this.selDatas = res.data;
if(!this.getCommTime.sTimeType) { if(!this.getCommTime.sTimeType) {
this.sTimeType = this.selDatas[0].key; this.sTimeType = this.selDatas[0].key;

@ -1,7 +1,7 @@
/* /*
* @Author: your name * @Author: your name
* @Date: 2021-10-08 08:41:57 * @Date: 2021-10-08 08:41:57
* @LastEditTime: 2021-10-21 13:24:18 * @LastEditTime: 2021-10-26 13:03:47
* @LastEditors: Please set LastEditors * @LastEditors: Please set LastEditors
* @Description: In User Settings Edit * @Description: In User Settings Edit
* @FilePath: /data-show/src/main.js * @FilePath: /data-show/src/main.js
@ -20,6 +20,7 @@ import compon from "@/lycomponents/index.js";
import mixins from "@/mixins" import mixins from "@/mixins"
import vuescroll from 'vuescroll' import vuescroll from 'vuescroll'
import ops from '@/utils/gol/ops'; import ops from '@/utils/gol/ops';
import '@/utils/rem'
Vue.use(Antd); Vue.use(Antd);
Vue.use(dataV); Vue.use(dataV);
Vue.use(selfUi); Vue.use(selfUi);

@ -1,7 +1,7 @@
/* /*
* @Author: your name * @Author: your name
* @Date: 2021-10-12 13:37:35 * @Date: 2021-10-12 13:37:35
* @LastEditTime: 2021-10-26 10:02:55 * @LastEditTime: 2021-10-26 12:14:55
* @LastEditors: Please set LastEditors * @LastEditors: Please set LastEditors
* @Description: In User Settings Edit * @Description: In User Settings Edit
* @FilePath: /data-show/src/store/mutations.js * @FilePath: /data-show/src/store/mutations.js
@ -31,7 +31,7 @@ const mutations = {
sessionStorage.setItem('commTime', str); sessionStorage.setItem('commTime', str);
}, },
setCtime: (state, log) => { setCtime: (state, log) => {
let obj = Object.assign(state.commTime, log); let obj = Object.assign(state.ctime, log);
state.ctime = obj; state.ctime = obj;
let str = JSON.stringify(obj); let str = JSON.stringify(obj);
sessionStorage.setItem('ctime', str); sessionStorage.setItem('ctime', str);

@ -1,7 +1,7 @@
/* /*
* @Author: your name * @Author: your name
* @Date: 2021-10-15 17:52:59 * @Date: 2021-10-15 17:52:59
* @LastEditTime: 2021-10-15 18:14:33 * @LastEditTime: 2021-10-26 15:29:25
* @LastEditors: Please set LastEditors * @LastEditors: Please set LastEditors
* @Description: In User Settings Edit * @Description: In User Settings Edit
* @FilePath: /data-show/src/utils/gol/sideSingleColumn.js * @FilePath: /data-show/src/utils/gol/sideSingleColumn.js
@ -63,6 +63,7 @@ export function createSideSingleColumn(dx=[], ds=[], color='#51bc91') {
color: "#fff", color: "#fff",
}, },
}, },
inverse: true
}, },
series: [ series: [
{ {

@ -1,24 +1,23 @@
/* // rem等比适配配置文件
* @Author: your name // 基准大小
* @Date: 2021-10-26 11:23:45 const baseSize = 16
* @LastEditTime: 2021-10-26 11:28:19 // 设置 rem 函数
* @LastEditors: Please set LastEditors function setRem() {
* @Description: In User Settings Edit let w = document.documentElement.clientWidth;
* @FilePath: /data-show/src/utils/rem/index.js // 当前页面宽度相对于 1920宽的缩放比例可根据自己需要修改。
*/ const scale = w / 1920
function recalc(docEl) { if (w >= 1920) {
var clientWidth = docEl.clientWidth; document.documentElement.style.fontSize = baseSize + 'px';
if (!clientWidth) return; } else if (1500 < w && w < 1920) {
// 这里是假设在750px宽度设计稿的情况下1rem = 100px document.documentElement.style.fontSize = baseSize * Math.min(scale, 2) + 'px'
// 可以根据实际需要修改 } else {
// 1920 响应的最大屏幕 document.documentElement.style.fontSize = baseSize * 1500 / 1920 + 'px';
docEl.style.fontSize = (clientWidth / 1920) * 100 + 'px'; }
} }
export function createZoom(doc, win) { // 初始化
let docEl = doc.documentElement; setRem()
let resizeEvt = 'orientationchange' in window ? 'orientationchange' : 'resize'; // 改变窗口大小时重新设置 rem
recalc(docEl) window.onresize = function () {
if (!doc.addEventListener) return; setRem()
win.addEventListener(resizeEvt, recalc, false);
doc.addEventListener('DOMContentLoaded', recalc, false);
} }

@ -1,14 +1,14 @@
<!-- <!--
* @Author: xw * @Author: xw
* @Date: 2021-10-11 18:42:58 * @Date: 2021-10-11 18:42:58
* @LastEditTime: 2021-10-25 18:13:46 * @LastEditTime: 2021-10-26 16:09:53
* @LastEditors: Please set LastEditors * @LastEditors: Please set LastEditors
* @Description: 品牌数据 * @Description: 品牌数据
* @FilePath: /data-show/src/views/BrandInsight/brandData/index.vue * @FilePath: /data-show/src/views/BrandInsight/brandData/index.vue
--> -->
<template> <template>
<div class="bd-outter"> <div class="bd-outter" v-loading="load">
<v-label-div title="品牌数据"></v-label-div> <v-label-div title="品牌数据"></v-label-div>
<div class="bd-inner"> <div class="bd-inner">
<div class="bd-o-d1"> <div class="bd-o-d1">
@ -49,6 +49,7 @@ export default {
return { return {
width: 274, width: 274,
count: 0, count: 0,
load: false,
form: { form: {
token: "", token: "",
sBrand: "", sBrand: "",
@ -64,25 +65,42 @@ export default {
created() { created() {
this.form.token = this.getToken; this.form.token = this.getToken;
this.form.sBrand = this.brand; this.form.sBrand = this.brand;
this.getBrandOverviewCount0528(); this.load = true;
this.getAffections(); Promise.all([this.getBrandOverviewCount0528(), this.getAffections()]).then(() => {
this.load = false;
})
}, },
methods: { methods: {
getBrandOverviewCount0528() { getBrandOverviewCount0528() {
let obj = Object.assign({}, this.getCommTime, this.form); return new Promise((resolve, reject) => {
getBrandOverviewCount0528(obj).then((res) => { let obj = Object.assign({}, this.getCommTime, this.form);
this.count = res.data.count; getBrandOverviewCount0528(obj)
.then((res) => {
this.count = res.data.count;
resolve(true);
})
.catch(() => {
reject(false);
});
}); });
}, },
getAffections() { getAffections() {
let obj = Object.assign({}, this.getCommTime, this.form); return new Promise((resolve, reject) => {
getAffections(obj).then((res) => { let obj = Object.assign({}, this.getCommTime, this.form);
let data = res.data || {}; getAffections(obj).then((res) => {
this.affObj.a = data["正面"] || 0; let data = res.data || {};
this.affObj.b = data["中性"] || 0; this.affObj.a = data["正面"] || 0;
this.affObj.c = data["负面"] || 0; this.affObj.b = data["中性"] || 0;
this.affObj.z = this.affObj.c = data["负面"] || 0;
this.affObj.a * 1 + this.affObj.b * 1 + this.affObj.c * 1; this.affObj.z =
this.affObj.a * 1 +
this.affObj.b * 1 +
this.affObj.c * 1;
resolve(true)
}).catch(() => {
reject(false)
});
}); });
}, },
}, },

@ -1,13 +1,13 @@
<!-- <!--
* @Author: xw * @Author: xw
* @Date: 2021-10-12 09:03:51 * @Date: 2021-10-12 09:03:51
* @LastEditTime: 2021-10-25 17:12:56 * @LastEditTime: 2021-10-26 16:10:27
* @LastEditors: Please set LastEditors * @LastEditors: Please set LastEditors
* @Description: 品牌TOP车型 * @Description: 品牌TOP车型
* @FilePath: /data-show/src/views/BrandInsight/brandTop/index.vue * @FilePath: /data-show/src/views/BrandInsight/brandTop/index.vue
--> -->
<template> <template>
<div class="bt-outter"> <div class="bt-outter" v-loading="load">
<v-label-div title="品牌TOP车型"></v-label-div> <v-label-div title="品牌TOP车型"></v-label-div>
<div class="bt-inner"> <div class="bt-inner">
<v-echarts :opt="opt"></v-echarts> <v-echarts :opt="opt"></v-echarts>
@ -23,6 +23,7 @@ export default {
props: ["brand"], props: ["brand"],
data() { data() {
return { return {
load: false,
form: { form: {
token: "", token: "",
sBrand: '奥迪', sBrand: '奥迪',
@ -37,6 +38,7 @@ export default {
}, },
methods: { methods: {
getData() { getData() {
this.load = true;
let obj = Object.assign({},this.getCommTime, this.form); let obj = Object.assign({},this.getCommTime, this.form);
getCartypeTop10(obj).then(res => { getCartypeTop10(obj).then(res => {
let data = res.data || {}; let data = res.data || {};
@ -47,6 +49,7 @@ export default {
ds.push(data[key]) ds.push(data[key])
} }
this.opt = createOpt(dx,ds); this.opt = createOpt(dx,ds);
this.load = false;
}) })
} }
} }

@ -1,7 +1,7 @@
<!-- <!--
* @Author: your name * @Author: your name
* @Date: 2021-10-12 16:33:38 * @Date: 2021-10-12 16:33:38
* @LastEditTime: 2021-10-12 16:42:08 * @LastEditTime: 2021-10-26 14:14:26
* @LastEditors: Please set LastEditors * @LastEditors: Please set LastEditors
* @Description: In User Settings Edit * @Description: In User Settings Edit
* @FilePath: /data-show/src/views/BrandInsight/forumCommunicationTrend/index.vue * @FilePath: /data-show/src/views/BrandInsight/forumCommunicationTrend/index.vue
@ -16,12 +16,40 @@
</template> </template>
<script> <script>
import {getBbsCountTime} from "@/api/BrandInsight"
import createOpt from "./opt" import createOpt from "./opt"
export default { export default {
name: "forum-communication-trend", name: "forum-communication-trend",
props: ["brand"],
data() { data() {
return { return {
opt: createOpt() form: {
sBrand: "",
token: "",
},
opt: {}
}
},
created() {
this.form.token = this.getToken;
this.form.sBrand = this.brand;
this.getData();
},
methods: {
getData() {
let obj = Object.assign({}, this.getCommTime, this.form);
getBbsCountTime(obj).then(res => {
let data = res.data || [];
let dx = [];
let ds = [];
data.forEach(ele => {
let key = ele.Time;
let value = ele.value;
dx.push(key);
ds.push(value);
})
this.opt = createOpt(dx, ds)
})
} }
} }
} }

@ -1,13 +1,13 @@
/* /*
* @Author: your name * @Author: your name
* @Date: 2021-10-12 16:40:53 * @Date: 2021-10-12 16:40:53
* @LastEditTime: 2021-10-12 16:44:49 * @LastEditTime: 2021-10-26 14:15:19
* @LastEditors: Please set LastEditors * @LastEditors: Please set LastEditors
* @Description: In User Settings Edit * @Description: In User Settings Edit
* @FilePath: /data-show/src/views/BrandInsight/forumCommunicationTrend/opt.js * @FilePath: /data-show/src/views/BrandInsight/forumCommunicationTrend/opt.js
*/ */
import * as echarts from "echarts"; import * as echarts from "echarts";
export default function createOpt() { export default function createOpt(dx = [], ds = []) {
return { return {
grid: { grid: {
top: "16px", top: "16px",
@ -38,7 +38,13 @@ export default function createOpt() {
color: "#fff", color: "#fff",
}, },
}, },
data: ['00:00', '00:40', '00:80', '12:00', '16:00', '20:00', '24:00'] axisLabel : {
formatter: (value) => {
let str = value.substring(10,16)
return str;
}
},
data: dx
}, },
yAxis: { yAxis: {
type: 'value', type: 'value',
@ -57,7 +63,7 @@ export default function createOpt() {
}, },
series: [ series: [
{ {
data: [820, 932, 901, 934, 1290, 1330, 1320], data: ds,
type: 'line', type: 'line',
color: "#51bc91", color: "#51bc91",
areaStyle: {normal: { areaStyle: {normal: {

@ -1,7 +1,7 @@
<!-- <!--
* @Author: your name * @Author: your name
* @Date: 2021-10-12 16:48:36 * @Date: 2021-10-12 16:48:36
* @LastEditTime: 2021-10-12 17:32:46 * @LastEditTime: 2021-10-26 14:33:20
* @LastEditors: Please set LastEditors * @LastEditors: Please set LastEditors
* @Description: In User Settings Edit * @Description: In User Settings Edit
* @FilePath: /data-show/src/views/BrandInsight/forumHotTopicDirection/index.vue * @FilePath: /data-show/src/views/BrandInsight/forumHotTopicDirection/index.vue
@ -11,30 +11,60 @@
<v-label-div title="论坛热议话题方向" :showLine="false" :eStyle="{ 'border-style': 'none' }" /> <v-label-div title="论坛热议话题方向" :showLine="false" :eStyle="{ 'border-style': 'none' }" />
<div class="fhtd-inner"> <div class="fhtd-inner">
<div class="d1"> <div class="d1">
<v-ranking-fhtd :num="1" label="辅助" val="594614" :lineShow="false" ></v-ranking-fhtd> <v-ranking-fhtd :num="index + 1" :label="item.key" :val="item.value" :lineShow="index === 0 ?false : true" v-for="(item,index) in d1" :key="index"></v-ranking-fhtd>
<v-ranking-fhtd :num="2" label="刹车" val="594614"></v-ranking-fhtd>
<v-ranking-fhtd :num="3" label="舒适度" val="594614"></v-ranking-fhtd>
<v-ranking-fhtd :num="4" label="操控" val="594614"></v-ranking-fhtd>
<v-ranking-fhtd :num="5" label="油耗" val="594614"></v-ranking-fhtd>
</div> </div>
<div class="d2" style="margin-left: 16px"> <div class="d2" style="margin-left: 16px">
<v-ranking-fhtd :num="6" label="性价比" val="594614" :lineShow="false"></v-ranking-fhtd> <v-ranking-fhtd :num="5 + index + 1" :label="item.key" :val="item.value" :lineShow="index === 0 ?false : true" v-for="(item,index) in d2" :key="index"></v-ranking-fhtd>
<v-ranking-fhtd :num="7" label="空间" val="594614"></v-ranking-fhtd>
<v-ranking-fhtd :num="8" label="动力" val="594614"></v-ranking-fhtd>
<v-ranking-fhtd :num="9" label="外观" val="594614"></v-ranking-fhtd>
<v-ranking-fhtd :num="10" label="内饰" val="594614"></v-ranking-fhtd>
</div> </div>
</div> </div>
</div> </div>
</template> </template>
<script> <script>
import vRankingFhtd from "./v-ranking-fhtd" import { getHotTopic0528 } from "@/api/BrandInsight";
import vRankingFhtd from "./v-ranking-fhtd";
export default { export default {
name: "forumHotTopicDirection", name: "forumHotTopicDirection",
props: ["brand"],
components: { components: {
"v-ranking-fhtd": vRankingFhtd "v-ranking-fhtd": vRankingFhtd,
} },
data() {
return {
form: {
sBrand: "",
token: "",
},
d1: [],
d2: [],
};
},
created() {
this.form.token = this.getToken;
this.form.sBrand = this.brand;
this.getData();
},
methods: {
//
group(array, subGroupLength) {
let index = 0;
let newArray = [];
while (index < array.length) {
newArray.push(array.slice(index, (index += subGroupLength)));
}
return newArray;
},
getData() {
let obj = Object.assign({}, this.getCommTime, this.form);
getHotTopic0528(obj).then((res) => {
let data = res.data || [];
let groupedArray = this.group(data, 5);
this.d1 = groupedArray[0];
this.d2 = groupedArray[1];
console.log(this.d1)
});
},
},
}; };
</script> </script>

@ -1,7 +1,7 @@
<!-- <!--
* @Author: xw * @Author: xw
* @Date: 2021-10-11 17:59:49 * @Date: 2021-10-11 17:59:49
* @LastEditTime: 2021-10-26 08:54:31 * @LastEditTime: 2021-10-26 15:21:58
* @LastEditors: Please set LastEditors * @LastEditors: Please set LastEditors
* @Description: 品牌洞察 * @Description: 品牌洞察
* @FilePath: /data-show/src/views/BrandInsight/index.vue * @FilePath: /data-show/src/views/BrandInsight/index.vue
@ -41,7 +41,7 @@
<div class="bdl-d3-bd"> <div class="bdl-d3-bd">
<weibo-Kol :brand="brand"></weibo-Kol> <weibo-Kol :brand="brand"></weibo-Kol>
<weibo-portraits :brand="brand"></weibo-portraits> <weibo-portraits :brand="brand"></weibo-portraits>
<weibo-volume-trend></weibo-volume-trend> <weibo-volume-trend :brand="brand"></weibo-volume-trend>
</div> </div>
</div> </div>
<div class="bdl-d4"> <div class="bdl-d4">
@ -49,9 +49,9 @@
<v-btn @click="goRouter('/forumDetails')"></v-btn> <v-btn @click="goRouter('/forumDetails')"></v-btn>
</v-label-div> </v-label-div>
<div class="bdl-d4-bd"> <div class="bdl-d4-bd">
<forumCommunicationTrend></forumCommunicationTrend> <forumCommunicationTrend :brand="brand"></forumCommunicationTrend>
<forumHotTopicDirection></forumHotTopicDirection> <forumHotTopicDirection :brand="brand"></forumHotTopicDirection>
<spreadTOPmodels></spreadTOPmodels> <spreadTOPmodels :brand="brand"></spreadTOPmodels>
</div> </div>
</div> </div>
<div class="bdl-d5"> <div class="bdl-d5">
@ -59,9 +59,9 @@
<v-btn @click="goRouter('/tailInsightDetails')"></v-btn> <v-btn @click="goRouter('/tailInsightDetails')"></v-btn>
</v-label-div> </v-label-div>
<div class="bdl-d5-bd"> <div class="bdl-d5-bd">
<rearWingPropagationSituation></rearWingPropagationSituation> <rearWingPropagationSituation :brand="brand"></rearWingPropagationSituation>
<keyMedia></keyMedia> <keyMedia :brand="brand"></keyMedia>
<popularwordCloud></popularwordCloud> <popularwordCloud :brand="brand"></popularwordCloud>
</div> </div>
</div> </div>
</div> </div>

@ -1,7 +1,7 @@
<!-- <!--
* @Author: your name * @Author: your name
* @Date: 2021-10-12 18:43:22 * @Date: 2021-10-12 18:43:22
* @LastEditTime: 2021-10-12 19:15:28 * @LastEditTime: 2021-10-26 15:58:29
* @LastEditors: Please set LastEditors * @LastEditors: Please set LastEditors
* @Description: In User Settings Edit * @Description: In User Settings Edit
* @FilePath: /data-show/src/views/BrandInsight/keyMedia/index.vue * @FilePath: /data-show/src/views/BrandInsight/keyMedia/index.vue
@ -13,19 +13,60 @@
<div class="km-inner"> <div class="km-inner">
<v-echarts :opt="opt"></v-echarts> <v-echarts :opt="opt"></v-echarts>
</div> </div>
<v-pagination :style="{position: 'absolute', left: '16px', bottom: '12px'}"></v-pagination> <v-pagination :data="pdata" :style="{position: 'absolute', left: '2px', bottom: '3px'}" @change="handlerData"></v-pagination>
</div> </div>
</template> </template>
<script> <script>
import { getWebsite } from "@/api/BrandInsight";
import createOpt from "./opt"; import createOpt from "./opt";
export default { export default {
name: "keyMedia", name: "keyMedia",
props: ["brand"],
data() { data() {
return { return {
opt: createOpt(), form: {
token: "",
sBrand: "奥迪",
},
opt: {},
pdata: []
}; };
}, },
created() {
this.form.token = this.getToken;
this.form.sBrand = this.brand;
this.getData();
},
methods: {
getData() {
let obj = Object.assign({}, this.getCommTime, this.form);
getWebsite(obj).then((res) => {
let data = res.data || {};
let arr = [];
for (let key in data) {
let obj = {
key: key,
value: data[key]
}
arr.push(obj)
}
this.pdata = arr;
});
},
handlerData(val = []) {
let dy = [];
let ds = [];
val.forEach(ele => {
let key = ele.key;
let value = ele.value;
dy.push(key);
ds.push(value);
})
this.opt = createOpt(dy, ds);
}
},
}; };
</script> </script>

@ -3,13 +3,13 @@
/* /*
* @Author: your name * @Author: your name
* @Date: 2021-10-09 12:38:34 * @Date: 2021-10-09 12:38:34
* @LastEditTime: 2021-10-12 19:13:40 * @LastEditTime: 2021-10-26 15:29:46
* @LastEditors: Please set LastEditors * @LastEditors: Please set LastEditors
* @Description: In User Settings Edit * @Description: In User Settings Edit
* @FilePath: /data-show/src/views/Index/tailInsight/opt.js * @FilePath: /data-show/src/views/Index/tailInsight/opt.js
*/ */
import * as echarts from "echarts"; import * as echarts from "echarts";
export default function createOpt() { export default function createOpt(dy = [], ds = []) {
return { return {
grid: { grid: {
left: '4%', left: '4%',
@ -45,7 +45,7 @@ export default function createOpt() {
}, },
yAxis: { yAxis: {
type: 'category', type: 'category',
data: ['懂车帝', '天眼查', '新浪网', '微信', '今日头条'], data: dy,
axisTick: { axisTick: {
show: false, show: false,
}, },
@ -55,13 +55,14 @@ export default function createOpt() {
color: "#fff", color: "#fff",
}, },
}, },
inverse: true
}, },
series: [ series: [
{ {
name: '2011', name: '2011',
type: 'bar', type: 'bar',
barWidth: 24, barWidth: 24,
data: [500, 1000, 2220, 3000, 4000], data: ds,
color: new echarts.graphic.LinearGradient(0, 0, 1, 0, [{ color: new echarts.graphic.LinearGradient(0, 0, 1, 0, [{
offset: 0, offset: 0,
color: '#010B19' color: '#010B19'

@ -1,14 +1,14 @@
<!-- <!--
* @Author: xw * @Author: xw
* @Date: 2021-10-12 10:50:44 * @Date: 2021-10-12 10:50:44
* @LastEditTime: 2021-10-25 19:07:28 * @LastEditTime: 2021-10-26 16:19:10
* @LastEditors: Please set LastEditors * @LastEditors: Please set LastEditors
* @Description: 热门事件列表 * @Description: 热门事件列表
* @FilePath: /data-show/src/views/BrandInsight/popularEventsList/index.vue * @FilePath: /data-show/src/views/BrandInsight/popularEventsList/index.vue
--> -->
<template> <template>
<div class="pe-ouuter"> <div class="pe-ouuter" v-loading="load">
<v-label-div title="热门事件列表" :showLine="false" :eStyle="{'border-style': 'none'}"></v-label-div> <v-label-div title="热门事件列表" :showLine="false" :eStyle="{'border-style': 'none'}"></v-label-div>
<div class="pe-inner"> <div class="pe-inner">
<dv-scroll-board :config="config" :style="{ width: '100%', height: '346px' }" /> <dv-scroll-board :config="config" :style="{ width: '100%', height: '346px' }" />
@ -23,6 +23,7 @@ export default {
props: ["brand"], props: ["brand"],
data() { data() {
return { return {
load: false,
form: { form: {
sBrand: "", sBrand: "",
token: "", token: "",
@ -47,6 +48,7 @@ export default {
methods: { methods: {
getData() { getData() {
let obj = Object.assign({}, this.getCommTime, this.form); let obj = Object.assign({}, this.getCommTime, this.form);
this.load = true;
getHotEventsList0528(obj).then((res) => { getHotEventsList0528(obj).then((res) => {
let data = res.data || []; let data = res.data || [];
let arr = []; let arr = [];
@ -67,6 +69,7 @@ export default {
header: ["事件列表", "影响力", "时间", "关联车型"], header: ["事件列表", "影响力", "时间", "关联车型"],
data: arr, data: arr,
}; };
this.load = false;
}); });
}, },
}, },

@ -1,30 +1,53 @@
<!-- <!--
* @Author: your name * @Author: your name
* @Date: 2021-10-12 19:16:46 * @Date: 2021-10-12 19:16:46
* @LastEditTime: 2021-10-12 19:21:08 * @LastEditTime: 2021-10-26 16:13:45
* @LastEditors: Please set LastEditors * @LastEditors: Please set LastEditors
* @Description: In User Settings Edit * @Description: In User Settings Edit
* @FilePath: /data-show/src/views/BrandInsight/popularwordCloud/index.vue * @FilePath: /data-show/src/views/BrandInsight/popularwordCloud/index.vue
--> -->
<template> <template>
<div class="pwc-outter"> <div class="pwc-outter" v-loading="load">
<v-label-div title="热门词云" :showLine="false" :eStyle="{'border-style': 'none'}"></v-label-div> <v-label-div title="热门词云" :showLine="false" :eStyle="{'border-style': 'none'}"></v-label-div>
<div class="pwd-inner"> <div class="pwd-inner">
<v-echarts :opt="opt"></v-echarts> <v-echarts :opt="opt"></v-echarts>
</div> </div>
</div> </div>
</template> </template>
<script> <script>
import createOpt from "./opt" import { getHotWord } from "@/api/BrandInsight";
import createWordCloud from "@/utils/gol/bubbleWord";
export default { export default {
name: "popularwordCloud", name: "popularwordCloud",
props: ["brand"],
data() { data() {
return { return {
opt: createOpt() load: false,
} form: {
} token: "",
} sBrand: "奥迪",
},
opt: {},
};
},
created() {
this.form.token = this.getToken;
this.form.sBrand = this.brand;
this.getData();
},
methods: {
getData() {
let obj = Object.assign({}, this.getCommTime, this.form);
this.load = true;
getHotWord(obj).then((res) => {
let data = res.data;
this.opt = createWordCloud(data);
this.load = false;
});
},
},
};
</script> </script>
<style lang="less" scoped> <style lang="less" scoped>

@ -1,13 +1,13 @@
<!-- <!--
* @Author: your name * @Author: your name
* @Date: 2021-10-12 18:35:53 * @Date: 2021-10-12 18:35:53
* @LastEditTime: 2021-10-12 18:42:20 * @LastEditTime: 2021-10-26 16:12:51
* @LastEditors: Please set LastEditors * @LastEditors: Please set LastEditors
* @Description: In User Settings Edit * @Description: In User Settings Edit
* @FilePath: /data-show/src/views/BrandInsight/rearWingPropagationSituation/index.vue * @FilePath: /data-show/src/views/BrandInsight/rearWingPropagationSituation/index.vue
--> -->
<template> <template>
<div class="rwps-outter"> <div class="rwps-outter" v-loading="load">
<v-label-div title="尾翼传播态势" :showLine="false" :eStyle="{'border-style': 'none'}"></v-label-div> <v-label-div title="尾翼传播态势" :showLine="false" :eStyle="{'border-style': 'none'}"></v-label-div>
<div class="rwps-inner"> <div class="rwps-inner">
<v-echarts :opt="opt"></v-echarts> <v-echarts :opt="opt"></v-echarts>
@ -16,13 +16,44 @@
</template> </template>
<script> <script>
import {getWeiYiVolumeTime} from "@/api/BrandInsight";
import createOpt from "./opt" import createOpt from "./opt"
export default { export default {
name: "rearWingPropagationSituation", name: "rearWingPropagationSituation",
props: ["brand"],
data() { data() {
return { return {
opt: createOpt() load: false,
form: {
token: "",
sBrand: "奥迪",
},
opt: {}
} }
},
created() {
this.form.token = this.getToken;
this.form.sBrand = this.brand;
this.getData();
},
methods: {
getData() {
let obj = Object.assign({}, this.getCommTime, this.form);
this.load = true;
getWeiYiVolumeTime(obj).then(res => {
let data = res.data || [];
let dx = [];
let ds = [];
data.forEach(ele => {
let key = ele.Time;
let value = ele.value;
dx.push(key);
ds.push(value);
})
this.opt = createOpt(dx, ds)
this.load = false;
})
}
} }
} }
</script> </script>

@ -1,13 +1,13 @@
/* /*
* @Author: your name * @Author: your name
* @Date: 2021-10-12 16:40:53 * @Date: 2021-10-12 16:40:53
* @LastEditTime: 2021-10-12 16:44:49 * @LastEditTime: 2021-10-26 15:17:09
* @LastEditors: Please set LastEditors * @LastEditors: Please set LastEditors
* @Description: In User Settings Edit * @Description: In User Settings Edit
* @FilePath: /data-show/src/views/BrandInsight/forumCommunicationTrend/opt.js * @FilePath: /data-show/src/views/BrandInsight/forumCommunicationTrend/opt.js
*/ */
import * as echarts from "echarts"; import * as echarts from "echarts";
export default function createOpt() { export default function createOpt(dx=[], ds = []) {
return { return {
grid: { grid: {
top: "16px", top: "16px",
@ -29,6 +29,12 @@ export default function createOpt() {
xAxis: { xAxis: {
type: 'category', type: 'category',
boundaryGap: false, boundaryGap: false,
axisLabel : {
formatter: (value) => {
let str = value.substring(10,16)
return str;
}
},
axisTick: { axisTick: {
show: false, show: false,
}, },
@ -38,7 +44,7 @@ export default function createOpt() {
color: "#fff", color: "#fff",
}, },
}, },
data: ['00:00', '00:40', '00:80', '12:00', '16:00', '20:00', '24:00'] data: dx
}, },
yAxis: { yAxis: {
type: 'value', type: 'value',
@ -57,7 +63,7 @@ export default function createOpt() {
}, },
series: [ series: [
{ {
data: [820, 932, 901, 934, 1290, 1330, 1320], data: ds,
type: 'line', type: 'line',
color: "#51bc91", color: "#51bc91",
areaStyle: {normal: { areaStyle: {normal: {

@ -1,13 +1,13 @@
<!-- <!--
* @Author: your name * @Author: your name
* @Date: 2021-10-12 18:18:20 * @Date: 2021-10-12 18:18:20
* @LastEditTime: 2021-10-12 18:29:52 * @LastEditTime: 2021-10-26 16:14:50
* @LastEditors: Please set LastEditors * @LastEditors: Please set LastEditors
* @Description: In User Settings Edit * @Description: In User Settings Edit
* @FilePath: /data-show/src/views/BrandInsight/spreadTOPmodels/index.vue * @FilePath: /data-show/src/views/BrandInsight/spreadTOPmodels/index.vue
--> -->
<template> <template>
<div class="stm-outter"> <div class="stm-outter" v-loading="load">
<v-label-div title="传播TOP车型" :showLine="false" :eStyle="{'border-style': 'none'}"></v-label-div> <v-label-div title="传播TOP车型" :showLine="false" :eStyle="{'border-style': 'none'}"></v-label-div>
<div class="stm-inner"> <div class="stm-inner">
<v-echarts :opt="opt"></v-echarts> <v-echarts :opt="opt"></v-echarts>
@ -16,13 +16,42 @@
</template> </template>
<script> <script>
import {agetCartypeTop10} from "@/api/BrandInsight"
import createOpt from "./opt" import createOpt from "./opt"
export default { export default {
name: "spreadTOPmodels", name: "spreadTOPmodels",
props: ["brand"],
data() { data() {
return { return {
opt: createOpt(["奥迪A8", "奥迪A6", "奥迪Q3", "奥迪Q4", "奥迪Q5"],[2200, 1900, 1800, 1600, 1400]) load: false,
form: {
token: "",
sBrand: '奥迪',
},
opt: {}
} }
},
created() {
this.form.token = this.getToken;
this.form.sBrand = this.brand;
this.getData()
},
methods: {
getData() {
let obj = Object.assign({},this.getCommTime, this.form);
this.load = true;
agetCartypeTop10(obj).then(res => {
let data = res.data || {};
let dx = [];
let ds = [];
for(let key in data) {
dx.push(key);
ds.push(data[key])
}
this.opt = createOpt(dx, ds);
this.load = false;
})
}
} }
} }
</script> </script>

@ -1,13 +1,13 @@
<!-- <!--
* @Author: xw * @Author: xw
* @Date: 2021-10-12 09:32:35 * @Date: 2021-10-12 09:32:35
* @LastEditTime: 2021-10-25 17:40:52 * @LastEditTime: 2021-10-26 16:11:28
* @LastEditors: Please set LastEditors * @LastEditors: Please set LastEditors
* @Description: 舆情传播趋势 * @Description: 舆情传播趋势
* @FilePath: /data-show/src/views/BrandInsight/titsopo/index.vue * @FilePath: /data-show/src/views/BrandInsight/titsopo/index.vue
--> -->
<template> <template>
<div class="tit-outter"> <div class="tit-outter" v-loading="load">
<div class="tit-header"> <div class="tit-header">
<a-button type="primary" size="small">进入数据列表页</a-button> <a-button type="primary" size="small">进入数据列表页</a-button>
<a-button type="primary" style="margin-left: 16px;margin-right: 16px;" size="small">导出报告</a-button> <a-button type="primary" style="margin-left: 16px;margin-right: 16px;" size="small">导出报告</a-button>
@ -29,6 +29,7 @@ export default {
props: ["brand"], props: ["brand"],
data() { data() {
return { return {
load: false,
form: { form: {
token: "", token: "",
sBrand: '奥迪', sBrand: '奥迪',
@ -44,6 +45,7 @@ export default {
methods: { methods: {
getData() { getData() {
let obj = Object.assign({},this.getCommTime, this.form); let obj = Object.assign({},this.getCommTime, this.form);
this.load = true;
getSourcetypeTime(obj).then(res => { getSourcetypeTime(obj).then(res => {
let data = res.data || []; let data = res.data || [];
let dx = []; let dx = [];
@ -55,6 +57,7 @@ export default {
ds.push(value); ds.push(value);
}) })
this.opt = createOpt(dx, ds); this.opt = createOpt(dx, ds);
this.load = false;
}) })
} }
} }

@ -1,7 +1,7 @@
/* /*
* @Author: your name * @Author: your name
* @Date: 2021-10-12 10:11:24 * @Date: 2021-10-12 10:11:24
* @LastEditTime: 2021-10-25 17:28:36 * @LastEditTime: 2021-10-26 13:51:34
* @LastEditors: Please set LastEditors * @LastEditors: Please set LastEditors
* @Description: In User Settings Edit * @Description: In User Settings Edit
* @FilePath: /data-show/src/views/BrandInsight/titsopo/opt.js * @FilePath: /data-show/src/views/BrandInsight/titsopo/opt.js
@ -76,6 +76,12 @@ export default function createOpt(dx = [], ds = []) {
color: "#fff", color: "#fff",
}, },
}, },
axisLabel : {
formatter: (value) => {
let str = value.substring(10,16)
return str;
}
},
data: dx data: dx
}, },
yAxis: { yAxis: {

@ -1,14 +1,14 @@
<!-- <!--
* @Author: your name * @Author: your name
* @Date: 2021-10-12 14:19:53 * @Date: 2021-10-12 14:19:53
* @LastEditTime: 2021-10-26 08:56:37 * @LastEditTime: 2021-10-26 16:15:48
* @LastEditors: Please set LastEditors * @LastEditors: Please set LastEditors
* @Description: 微博KOL * @Description: 微博KOL
* @FilePath: /data-show/src/views/BrandInsight/weiboKol/index.vue * @FilePath: /data-show/src/views/BrandInsight/weiboKol/index.vue
--> -->
<template> <template>
<div class="wk-outter"> <div class="wk-outter" v-loading="load">
<div class="wk-inner"> <div class="wk-inner">
<div class="wk-in-d1"> <div class="wk-in-d1">
<v-label-div title="微博KOL" :showLine="false" :eStyle="{ 'border-style': 'none' }"></v-label-div> <v-label-div title="微博KOL" :showLine="false" :eStyle="{ 'border-style': 'none' }"></v-label-div>
@ -33,6 +33,7 @@ export default {
props: ["brand"], props: ["brand"],
data() { data() {
return { return {
load: false,
form: { form: {
sBrand: "", sBrand: "",
token: "", token: "",
@ -72,6 +73,7 @@ export default {
methods: { methods: {
getData() { getData() {
let obj = Object.assign({}, this.getCommTime, this.form); let obj = Object.assign({}, this.getCommTime, this.form);
this.load = true;
getBoauthenCount0528(obj).then((res) => { getBoauthenCount0528(obj).then((res) => {
let data = res.data || []; let data = res.data || [];
let total = 0; let total = 0;
@ -81,6 +83,7 @@ export default {
this.total = total; this.total = total;
this.labelData = data; this.labelData = data;
this.opt = createOpt(data, this.colors); this.opt = createOpt(data, this.colors);
this.load = false;
}); });
}, },
}, },

@ -1,7 +1,7 @@
<!-- <!--
* @Author: your name * @Author: your name
* @Date: 2021-10-12 15:06:47 * @Date: 2021-10-12 15:06:47
* @LastEditTime: 2021-10-26 09:11:47 * @LastEditTime: 2021-10-26 12:58:03
* @LastEditors: Please set LastEditors * @LastEditors: Please set LastEditors
* @Description: In User Settings Edit * @Description: In User Settings Edit
* @FilePath: /data-show/src/views/BrandInsight/weiboPortraits/index.vue * @FilePath: /data-show/src/views/BrandInsight/weiboPortraits/index.vue
@ -13,18 +13,20 @@
</v-label-div> </v-label-div>
<div class="wp-inner"> <div class="wp-inner">
<div class="wp-in-d1"> <div class="wp-in-d1">
<v-echarts :opt="opt"></v-echarts> <v-echarts :opt="opt"></v-echarts>
</div> </div>
<div class="wp-in-d2"> <div class="wp-in-d2">
<v-label-ctx v-for="(item,index) in labelData" :key="index" :label="item.key" :cont="item.value" :percentage="(item.value/totalData*100).toFixed(2) +'%'" :color="colors[index]" :eStyle="{ height: '121px' }"></v-label-ctx> <vue-scroll>
<v-label-ctx v-for="(item,index) in labelData" :key="index" :label="item.key" :cont="item.value" :percentage="(item.value/totalData*100).toFixed(2) +'%'" :color="colors[index]" :eStyle="{ height: '121px' }"></v-label-ctx>
</vue-scroll>
</div> </div>
</div> </div>
</div> </div>
</template> </template>
<script> <script>
import {getSexMergeWeiBo} from "@/api/BrandInsight"; import { getSexMergeWeiBo } from "@/api/BrandInsight";
import createOpt from "./opt" import createOpt from "./opt";
export default { export default {
name: "weiboPortraits", name: "weiboPortraits",
props: ["brand"], props: ["brand"],
@ -52,8 +54,18 @@ export default {
"#91e8e1", "#91e8e1",
"#f7a35c", "#f7a35c",
"#90ed7d", "#90ed7d",
"#54BF93",
"#3373CC",
"#CC9D12",
"#f15c80",
"#e4d354",
"#8085e8",
"#8d4653",
"#91e8e1",
"#f7a35c",
"#90ed7d",
], ],
} };
}, },
created() { created() {
this.form.token = this.getToken; this.form.token = this.getToken;
@ -61,13 +73,13 @@ export default {
this.getData(); this.getData();
}, },
methods: { methods: {
// //
handlerTab(n) { handlerTab(n) {
if (n === 0) { if (n === 0) {
this.labelData = this.sex; this.labelData = this.sex;
let total = 0; let total = 0;
this.sex.forEach((ele) => { this.sex.forEach((ele) => {
total += ele.value; total += ele.value * 1;
}); });
this.totalData = total; this.totalData = total;
this.opt = createOpt(this.sex, [ this.opt = createOpt(this.sex, [
@ -79,15 +91,16 @@ export default {
this.labelData = this.attestation; this.labelData = this.attestation;
let total = 0; let total = 0;
this.attestation.forEach((ele) => { this.attestation.forEach((ele) => {
total += ele.value; total += ele.value * 1;
}); });
this.totalData = total; this.totalData = total;
this.opt = createOpt(this.attestation, this.colors); this.opt = createOpt(this.attestation, this.colors);
} else { } else {
this.labelData = this.region; this.labelData = this.region;
console.log(this.labelData)
let total = 0; let total = 0;
this.region.forEach((ele) => { this.region.forEach((ele) => {
total += ele.value; total += ele.value * 1;
}); });
this.totalData = total; this.totalData = total;
this.opt = createOpt(this.region, this.colors); this.opt = createOpt(this.region, this.colors);
@ -97,29 +110,52 @@ export default {
getData() { getData() {
this.load = true; this.load = true;
let obj = Object.assign({}, this.getCommTime, this.form); let obj = Object.assign({}, this.getCommTime, this.form);
getSexMergeWeiBo(obj).then(res => { getSexMergeWeiBo(obj).then((res) => {
let data = res.data; let data = res.data;
this.attestation = data.attestation || {}; let attestation = data.attestation || {};
this.sex = data.sex || {}; let sex = data.sex || {};
this.region = data.RegionWeiBo || {}; let region = data.RegionWeiBo || {};
let total = 0; let total = 0;
console.log(this.sex) let wSex = [];
for (let key in sex) {
this.sex.forEach((ele) => { let obj = {
total += ele.value; key: key,
}); value: sex[key],
this.totalData = total; };
this.labelData = this.sex; total += sex[key] * 1;
this.opt = createOpt(this.sex, [ wSex.push(obj);
"#54BF93", }
"#3373CC", let wAttestation = [];
"#CC9D12", for (let key in attestation) {
]); let obj = {
this.load = false; key: key,
}) value: attestation[key],
} };
} wAttestation.push(obj);
} }
let wRegion = [];
for (let key in region) {
let obj = {
key: key,
value: region[key],
};
wRegion.push(obj);
}
this.sex = wSex;
this.attestation = wAttestation;
this.region = wRegion;
this.totalData = total;
this.labelData = this.sex;
this.opt = createOpt(this.sex, [
"#54BF93",
"#3373CC",
"#CC9D12",
]);
this.load = false;
});
},
},
};
</script> </script>
<style lang="less" scoped> <style lang="less" scoped>

@ -1,13 +1,35 @@
/* /*
* @Author: your name * @Author: your name
* @Date: 2021-10-12 15:14:58 * @Date: 2021-10-12 15:14:58
* @LastEditTime: 2021-10-12 16:03:56 * @LastEditTime: 2021-10-26 12:47:13
* @LastEditors: Please set LastEditors * @LastEditors: Please set LastEditors
* @Description: In User Settings Edit * @Description: In User Settings Edit
* @FilePath: /data-show/src/views/BrandInsight/weiboPortraits/opt.js * @FilePath: /data-show/src/views/BrandInsight/weiboPortraits/opt.js
*/ */
import * as echarts from "echarts"; import * as echarts from "echarts";
export default function createOpt() { function createData(ds=[], colors=[]) {
let arr = [];
for(let i = 0; i < ds.length; i++) {
let ele = ds[i];
if(ele.value*1 > 0) {
let obj = { value: ele.value*1, name: ele.key, itemStyle: {
color: new echarts.graphic.LinearGradient(0, 1, 1, 0, [{
//给颜色设置渐变色 前面4个参数给第一个设置1第四个设置0 ,就是水平渐变
//给第一个设置0第四个设置1就是垂直渐变
offset: 0,
color: 'black'
}, {
offset: 1,
color: colors[i]
}])
}};
arr.push(obj)
}
}
return arr;
}
export default function createOpt(ds=[], colors=[]) {
const data = createData(ds,colors)
return { return {
series: [ series: [
{ {
@ -18,52 +40,23 @@ export default function createOpt() {
label: { label: {
show: false, show: false,
position: 'center', position: 'center',
fontSize: '40',
color: "#ffff", color: "#ffff",
lineHeight: 48
}, },
emphasis: { emphasis: {
label: { label: {
show: true, show: true,
fontSize: '40', fontSize: '30',
color: "#ffff", color: "#ffff",
formatter: (p)=>{ formatter: function (p) {
return p.data.name + '\n' + p.data.value; return `${p.data.name}\n${p.percent}%\n${p.data.value}`
}, }
} }
}, },
labelLine: { labelLine: {
show: false show: false
}, },
data: [ data: data
{ value: 2200, name: '男性', itemStyle: {color: new echarts.graphic.LinearGradient(0, 1, 1, 0, [{
//给颜色设置渐变色 前面4个参数给第一个设置1第四个设置0 ,就是水平渐变
//给第一个设置0第四个设置1就是垂直渐变
offset: 0,
color: 'black'
}, {
offset: 1,
color: '#3373CC'
}])} },
{ value: 2200, name: '女性', itemStyle: {color: new echarts.graphic.LinearGradient(0, 1, 1, 0, [{
//给颜色设置渐变色 前面4个参数给第一个设置1第四个设置0 ,就是水平渐变
//给第一个设置0第四个设置1就是垂直渐变
offset: 0,
color: 'black'
}, {
offset: 1,
color: '#CC9D12'
}])} },
{ value: 2200, name: '未知', itemStyle: {color: new echarts.graphic.LinearGradient(0, 1, 1, 0, [{
//给颜色设置渐变色 前面4个参数给第一个设置1第四个设置0 ,就是水平渐变
//给第一个设置0第四个设置1就是垂直渐变
offset: 0,
color: 'black'
}, {
offset: 1,
color: '#54BF93'
}])} },
],
}, },
{ {
name: 'Access From1', name: 'Access From1',
@ -78,36 +71,7 @@ export default function createOpt() {
show: false show: false
}, },
center: ['50%', '50%'],//边框位置 center: ['50%', '50%'],//边框位置
data: [ data: data
{ value: 2200, name: '男性', itemStyle: {color: new echarts.graphic.LinearGradient(0, 1, 1, 0, [{
//给颜色设置渐变色 前面4个参数给第一个设置1第四个设置0 ,就是水平渐变
//给第一个设置0第四个设置1就是垂直渐变
offset: 0,
color: 'black'
}, {
offset: 1,
color: '#3373CC'
}])} },
{ value: 2200, name: '女性', itemStyle: {color: new echarts.graphic.LinearGradient(0, 1, 1, 0, [{
//给颜色设置渐变色 前面4个参数给第一个设置1第四个设置0 ,就是水平渐变
//给第一个设置0第四个设置1就是垂直渐变
offset: 0,
color: 'black'
}, {
offset: 1,
color: '#CC9D12'
}])} },
{ value: 2200, name: '未知', itemStyle: {color: new echarts.graphic.LinearGradient(0, 1, 1, 0, [{
//给颜色设置渐变色 前面4个参数给第一个设置1第四个设置0 ,就是水平渐变
//给第一个设置0第四个设置1就是垂直渐变
offset: 0,
color: 'black'
}, {
offset: 1,
color: '#54BF93'
}])} },
],
} }
] ]
} }

@ -1,13 +1,13 @@
<!-- <!--
* @Author: your name * @Author: your name
* @Date: 2021-10-12 15:24:48 * @Date: 2021-10-12 15:24:48
* @LastEditTime: 2021-10-12 15:34:52 * @LastEditTime: 2021-10-26 16:16:59
* @LastEditors: Please set LastEditors * @LastEditors: Please set LastEditors
* @Description: In User Settings Edit * @Description: In User Settings Edit
* @FilePath: /data-show/src/views/BrandInsight/weiboVolumeTrend/index.vue * @FilePath: /data-show/src/views/BrandInsight/weiboVolumeTrend/index.vue
--> -->
<template> <template>
<div class="wvt-outter"> <div class="wvt-outter" v-loading="load">
<v-label-div title="微博声量趋势" :showLine="false" :eStyle="{ 'border-style': 'none' }"> <v-label-div title="微博声量趋势" :showLine="false" :eStyle="{ 'border-style': 'none' }">
</v-label-div> </v-label-div>
<div class="wvt-inner"> <div class="wvt-inner">
@ -17,12 +17,43 @@
</template> </template>
<script> <script>
import {getCountTime0528} from "@/api/BrandInsight";
import createOpt from "./opt" import createOpt from "./opt"
export default { export default {
name: "weibo-volume-trend", name: "weibo-volume-trend",
props: ["brand"],
data() { data() {
return { return {
opt: createOpt() load: false,
form: {
sBrand: "",
token: "",
},
opt: {}
}
},
created() {
this.form.token = this.getToken;
this.form.sBrand = this.brand;
this.getData();
},
methods: {
getData() {
let obj = Object.assign({}, this.getCommTime, this.form);
this.load = true;
getCountTime0528(obj).then(res => {
let data = res.data || [];
let dx = [];
let ds = [];
data.forEach(ele => {
let key = ele.Time;
let value = ele.value;
dx.push(key);
ds.push(value);
})
this.opt = createOpt(dx, ds);
this.load = false;
})
} }
} }
} }

@ -1,13 +1,13 @@
/* /*
* @Author: your name * @Author: your name
* @Date: 2021-10-12 15:32:24 * @Date: 2021-10-12 15:32:24
* @LastEditTime: 2021-10-12 16:47:07 * @LastEditTime: 2021-10-26 13:49:55
* @LastEditors: Please set LastEditors * @LastEditors: Please set LastEditors
* @Description: In User Settings Edit * @Description: In User Settings Edit
* @FilePath: /data-show/src/views/BrandInsight/weiboVolumeTrend/opt.js * @FilePath: /data-show/src/views/BrandInsight/weiboVolumeTrend/opt.js
*/ */
import * as echarts from "echarts"; import * as echarts from "echarts";
export default function createOpt() { export default function createOpt(dx = [], ds = []) {
return { return {
grid: { grid: {
top: "16px", top: "16px",
@ -38,7 +38,13 @@ export default function createOpt() {
color: "#fff", color: "#fff",
}, },
}, },
data: ['00:00', '00:40', '00:80', '12:00', '16:00', '20:00', '24:00'] axisLabel : {
formatter: (value) => {
let str = value.substring(10,16)
return str;
}
},
data: dx
}, },
yAxis: { yAxis: {
type: 'value', type: 'value',
@ -57,7 +63,7 @@ export default function createOpt() {
}, },
series: [ series: [
{ {
data: [820, 932, 901, 934, 1290, 1330, 1320], data: ds,
type: 'line', type: 'line',
color: '#546fc5', color: '#546fc5',
areaStyle: {normal: { areaStyle: {normal: {

@ -2,7 +2,7 @@
/* /*
* @Author: your name * @Author: your name
* @Date: 2021-10-09 11:38:06 * @Date: 2021-10-09 11:38:06
* @LastEditTime: 2021-10-21 15:20:11 * @LastEditTime: 2021-10-26 13:53:19
* @LastEditors: Please set LastEditors * @LastEditors: Please set LastEditors
* @Description: In User Settings Edit * @Description: In User Settings Edit
* @FilePath: /data-show/src/views/Index/barometer/opt.js * @FilePath: /data-show/src/views/Index/barometer/opt.js
@ -84,6 +84,12 @@ export default function createOpt(dx = [],ds = []) {
color: "#fff", color: "#fff",
}, },
}, },
axisLabel : {
formatter: (value) => {
let str = value.substring(10,16)
return str;
}
},
data: dx data: dx
}, },
yAxis: { yAxis: {

@ -1,7 +1,7 @@
<!-- <!--
* @Author: xw * @Author: xw
* @Date: 2021-10-09 14:25:05 * @Date: 2021-10-09 14:25:05
* @LastEditTime: 2021-10-23 14:43:23 * @LastEditTime: 2021-10-26 12:19:13
* @LastEditors: Please set LastEditors * @LastEditors: Please set LastEditors
* @Description: 大数据统计gif * @Description: 大数据统计gif
* @FilePath: /data-show/src/views/Index/dynamicNumber/index.vue * @FilePath: /data-show/src/views/Index/dynamicNumber/index.vue
@ -20,25 +20,25 @@
<countTo :startVal='form.other-100 >= 0 ? form.other-100 : 0' :endVal='form.other' :duration='3000'></countTo> <countTo :startVal='form.other-100 >= 0 ? form.other-100 : 0' :endVal='form.other' :duration='3000'></countTo>
</span> </span>
</div> </div>
<div class="d1" :style="{top: '91px', left: '426px'}"> <div class="d1" :style="{top: '60px', left: '426px'}">
<span class="s1">微信</span> <span class="s1">微信</span>
<span class="s2"> <span class="s2">
<countTo :startVal='form.wecat-100 >= 0 ? form.wecat-100 : 0' :endVal='form.wecat' :duration='3000'></countTo> <countTo :startVal='form.wecat-100 >= 0 ? form.wecat-100 : 0' :endVal='form.wecat' :duration='3000'></countTo>
</span> </span>
</div> </div>
<div class="d2" :style="{top: '240px', left: '656px'}"> <div class="d2" :style="{top: '220px', left: '582px'}">
<span class="s1"> <span class="s1">
<countTo :startVal='form.forum-100 >= 0 ? form.forum-100 : 0' :endVal='form.forum' :duration='3000'></countTo> <countTo :startVal='form.forum-100 >= 0 ? form.forum-100 : 0' :endVal='form.forum' :duration='3000'></countTo>
</span> </span>
<span class="s2">论坛</span> <span class="s2">论坛</span>
</div> </div>
<div class="d2" :style="{top: '340px', left: '656px'}"> <div class="d2" :style="{top: '340px', left: '582px'}">
<span class="s1"> <span class="s1">
<countTo :startVal='form.weipo-100 >= 0 ? form.weipo-100 : 0' :endVal='form.weipo' :duration='3000'></countTo> <countTo :startVal='form.weipo-100 >= 0 ? form.weipo-100 : 0' :endVal='form.weipo' :duration='3000'></countTo>
</span> </span>
<span class="s2">微博</span> <span class="s2">微博</span>
</div> </div>
<div class="d2" :style="{top: '490px', left: '246px'}"> <div class="d2" :style="{top: '420px', left: '246px'}">
<span class="s1"> <span class="s1">
<countTo :startVal='form.news-100 >= 0 ? form.news-100 : 0' :endVal='form.news' :duration='3000'></countTo> <countTo :startVal='form.news-100 >= 0 ? form.news-100 : 0' :endVal='form.news' :duration='3000'></countTo>
</span> </span>

@ -1,7 +1,7 @@
<!-- <!--
* @Author: xw * @Author: xw
* @Date: 2021-10-08 16:37:30 * @Date: 2021-10-08 16:37:30
* @LastEditTime: 2021-10-22 12:07:14 * @LastEditTime: 2021-10-26 14:34:06
* @LastEditors: Please set LastEditors * @LastEditors: Please set LastEditors
* @Description: 传播重点阵地 * @Description: 传播重点阵地
* @FilePath: /data-show/src/views/Index/key-communication-positions/index.vue * @FilePath: /data-show/src/views/Index/key-communication-positions/index.vue
@ -14,7 +14,7 @@
<v-ranking v-for="(item,index) in d1" :key="index" :lineShow="index === 0 ? false : true" :num="index + 1" :label="item.label" :val="item.val"></v-ranking> <v-ranking v-for="(item,index) in d1" :key="index" :lineShow="index === 0 ? false : true" :num="index + 1" :label="item.label" :val="item.val"></v-ranking>
</div> </div>
<div class="d1" style="margin-left: 14px"> <div class="d1" style="margin-left: 14px">
<v-ranking v-for="(item,index) in d2" :key="index" :lineShow="index === 0 ? false : true" :num="index + 1" :label="item.label" :val="item.val"></v-ranking> <v-ranking v-for="(item,index) in d2" :key="index" :lineShow="index === 0 ? false : true" :num="5+index + 1" :label="item.label" :val="item.val"></v-ranking>
</div> </div>
</div> </div>
</div> </div>

@ -1,7 +1,7 @@
<!-- <!--
* @Author: xw * @Author: xw
* @Date: 2021-10-09 09:04:01 * @Date: 2021-10-09 09:04:01
* @LastEditTime: 2021-10-22 12:14:55 * @LastEditTime: 2021-10-26 12:58:15
* @LastEditors: Please set LastEditors * @LastEditors: Please set LastEditors
* @Description: 用户画像 * @Description: 用户画像
* @FilePath: /data-show/src/views/Index/userPortrait/index.vue * @FilePath: /data-show/src/views/Index/userPortrait/index.vue
@ -49,6 +49,16 @@ export default {
"#91e8e1", "#91e8e1",
"#f7a35c", "#f7a35c",
"#90ed7d", "#90ed7d",
"#54BF93",
"#3373CC",
"#CC9D12",
"#f15c80",
"#e4d354",
"#8085e8",
"#8d4653",
"#91e8e1",
"#f7a35c",
"#90ed7d",
], ],
}; };
}, },

@ -1,7 +1,7 @@
/* /*
* @Author: your name * @Author: your name
* @Date: 2021-10-20 13:15:16 * @Date: 2021-10-20 13:15:16
* @LastEditTime: 2021-10-26 11:21:34 * @LastEditTime: 2021-10-26 13:04:29
* @LastEditors: Please set LastEditors * @LastEditors: Please set LastEditors
* @Description: In User Settings Edit * @Description: In User Settings Edit
* @FilePath: /data-show/vue.config.js * @FilePath: /data-show/vue.config.js
@ -11,10 +11,11 @@ const productionGzipExtensions = ['js', 'css', 'svg']
// 1. 引入等比适配插件 // 1. 引入等比适配插件
const px2rem = require('postcss-px2rem') const px2rem = require('postcss-px2rem')
// 2. 配置基本大小 // 2. 配置基本大小
// 配置基本大小
const postcss = px2rem({ const postcss = px2rem({
// 基准大小 baseSize需要和rem.js中相同 // 基准大小 baseSize需要和rem.js中相同
remUnit: 100 remUnit: 16
}) })
module.exports = { module.exports = {
productionSourceMap: false, productionSourceMap: false,
publicPath: "./", publicPath: "./",

Loading…
Cancel
Save