张雄 3 years ago
parent c646cfcd29
commit 43d1446432

@ -56,11 +56,12 @@ export default {
this.$emit("getData", o);
}
if(params.componentType === 'markPoint') {
params.event.event.stopPropagation();
console.log(params)
let o = {
key: params.data.name,
index: params.data.xAxis,
seriesIndex: params.seriesIndex
}
this.$emit("clickMark", o);
}

@ -7,30 +7,68 @@
* @FilePath: /data-show/src/views/BrandComparison/brandRearWingComparison/index.vue
-->
<template>
<div class="brw-outter" v-loading="load">
<v-label-div title="尾翼趋势对比" :showLine="false" :eStyle="{'border-style': 'none'}"/>
<div class="brw-inner">
<v-echarts :opt="opt"></v-echarts>
</div>
<div class="brw-outter" v-loading="load">
<v-label-div
title="尾翼趋势对比"
:showLine="false"
:eStyle="{ 'border-style': 'none' }"
/>
<div class="brw-inner">
<v-echarts :opt="opt" @clickMark="clickMark"></v-echarts>
</div>
<div class="vshow" v-if="modelShow" :style="modelStyle">
<vLabel-div title="实时热点事件">
<a-button @click="closeBox"></a-button>
</vLabel-div>
<div
class="vshow-item"
v-for="(item, index) in urlArr[activeCol].value[activeIndex].hotTop"
:key="index"
>
<a :href="item.url" target="tar">{{ doStr(item.title, 28) }}</a>
</div>
</div>
</div>
</template>
<script>
import {getCountTime0528C} from "@/api/BrandComparison/BrandWeiyi.js"
import createOpt from "./opt"
import { getCountTime0528C } from "@/api/BrandComparison/BrandWeiyi.js";
import { doStr } from "@/utils/gol/dataTool";
import createOpt from "./opt";
export default {
name: "brandRearWingComparison",
data() {
return {
opt: {},
load: false,
form: {
token: "",
sBrand: ""
}
}
},
created() {
name: "brandRearWingComparison",
data() {
return {
////
modelStyle: {
left: "",
top: "",
},
modelShow: false,
ecbox: {
//
width: 1618,
height: 1490,
},
ecmodel: {
//
width: 300,
height: 280,
},
activeCol: 0,
activeIndex: 0,
//-*-//
opt: {},
load: false,
form: {
token: "",
sBrand: "",
},
urlArr: [],
doStr: doStr,
};
},
created() {
this.initData();
},
methods: {
@ -47,33 +85,81 @@ export default {
getData() {
let obj = Object.assign({}, this.getCtime2, this.form);
this.load = true;
getCountTime0528C(obj)
.then((res) => {
let data = res.data || [];
let dx = [];
let ds = [];
data.forEach((ele) => {
let key = ele.key;
let value = ele.value;
dx.push(key);
ds.push(value);
});
this.opt = createOpt(dx, ds);
this.load = false;
})
},
getCountTime0528C(obj).then((res) => {
let data = res.data || [];
let dx = [];
let ds = [];
this.urlArr = data;
let markData = [[], [], [], [], [], []];
let dataI = 0;
data.forEach((ele) => {
let key = ele.key;
let value = ele.value;
dx.push(key);
ds.push(value);
for (let i = 0; i < ele.value.length; i++) {
if (ele.value[i].hotTop[0]) {
let obj = {
timeIndex: dataI,
yVal: data[dataI].value[i].value,
url: ele.value[i].hotTop,
};
markData[i].push(obj);
// console.log(i)//
// console.log(dataI)//
// console.log(ele.value[i].hotTop)//[{},{}]
}
}
dataI = dataI + 1;
});
this.opt = createOpt(dx, ds, markData);
this.load = false;
});
},
}
//
clickMark(data) {
this.activeCol = data.index;
this.activeIndex = data.seriesIndex;
this.modelShow = true;
let mw = window.event;
if (this.ecbox.width - mw.offsetX - 20 > this.ecmodel.width) {
this.modelStyle.left = mw.offsetX + 20 + "px";
} else {
this.modelStyle.left = mw.offsetX - this.ecmodel.width - 20 + "px";
}
if (this.ecbox.height - mw.offsetY - 20 > this.ecmodel.height) {
this.modelStyle.top = mw.offsetY + "px";
} else {
this.modelStyle.top = mw.offsetY - this.ecmodel.height + "px";
}
},
closeBox() {
this.modelShow = false;
},
},
};
</script>
<style lang="less" scoped>
.brw-outter {
width: 1880px;
height: 412px;
.brw-inner {
width: 100%;
height: calc(100% - 48px);
}
width: 1880px;
height: 412px;
.brw-inner {
width: 100%;
height: calc(100% - 48px);
}
}
.vshow {
position: absolute;
width: 300px;
background: rgb(3, 18, 36);
border: 4px solid #0f2a4d;
.vshow-item {
padding: 11px;
width: 100%;
font-size: 15px;
color: rgb(54, 189, 239);
}
}
</style>

@ -8,7 +8,7 @@
*/
import { bigNumberTransform } from "@/utils/gol/dataTool"
function createData(ds = []) {
function createData(ds = [], markData = []) {
let testData = {}
ds.forEach(item => {
item.forEach(val => {
@ -23,7 +23,10 @@ function createData(ds = []) {
emphasis: {
focus: 'series'
},
data: [val.value]
data: [val.value],
markPoint: {
data: [],
}
}
} else {
testData[val.key].data.push(val.value)
@ -34,11 +37,24 @@ function createData(ds = []) {
for(let key in testData) {
arr.push(testData[key])
}
for(let i = 0;i< arr.length; i++) {
markData[i].forEach(ele => {
arr[i].markPoint.data.push(
{
name: 'Max',
xAxis: ele.timeIndex, yAxis: ele.yVal,
symbol: 'pin',
symbolSize: 16,
symbolOffset: [0, '-70%'],
}
)
})
}
return arr
}
export default function createOpt(dx = [], ds = []) {
let data = createData(ds);
export default function createOpt(dx = [], ds = [], markData = []) {
let data = createData(ds,markData);
return {
grid: {
left: 10,

@ -14,24 +14,58 @@
:eStyle="{ 'border-style': 'none' }"
/>
<div class="cop-inner">
<v-echarts :opt="opt"></v-echarts>
<v-echarts :opt="opt" @clickMark="clickMark"></v-echarts>
</div>
<div class="vshow" v-if="modelShow" :style="modelStyle">
<vLabel-div title="实时热点事件">
<a-button @click="closeBox"></a-button>
</vLabel-div>
<div
class="vshow-item"
v-for="(item, index) in urlArr[activeCol].value[activeIndex].hotTop"
:key="index"
>
<a :href="item.url" target="tar">{{ doStr(item.title, 28) }}</a>
</div>
</div>
</div>
</template>
<script>
import { getCountTime0528C } from "@/api/BrandComparison/BbsBrand.js";
import { doStr } from "@/utils/gol/dataTool";
import createOpt from "./opt";
export default {
name: "comparisonOfForumPostingTrends",
data() {
return {
////
modelStyle: {
left: "",
top: "",
},
modelShow: false,
ecbox: {
//
width: 1618,
height: 1490,
},
ecmodel: {
//
width: 300,
height: 280,
},
activeCol: 0,
activeIndex: 0,
//-*-//
form: {
token: "",
sBrand: "",
},
load: false,
opt: {},
urlArr: [],
doStr: doStr,
};
},
created() {
@ -50,21 +84,57 @@ export default {
},
getData() {
let obj = Object.assign({}, this.getCtime2, this.form);
this.load = true,
getCountTime0528C(obj)
.then((res) => {
(this.load = true),
getCountTime0528C(obj).then((res) => {
let data = res.data || [];
let dx = [];
let ds = [];
this.urlArr = data;
let markData = [[], [], [], [], [], []];
let dataI = 0;
data.forEach((ele) => {
let key = ele.key;
let value = ele.value;
dx.push(key);
ds.push(value);
for (let i = 0; i < ele.value.length; i++) {
if (ele.value[i].hotTop[0]) {
let obj = {
timeIndex: dataI,
yVal: data[dataI].value[i].value,
url: ele.value[i].hotTop,
};
markData[i].push(obj);
// console.log(i)//
// console.log(dataI)//
// console.log(ele.value[i].hotTop)//[{},{}]
}
}
dataI = dataI + 1;
});
this.opt = createOpt(dx, ds);
this.load = false
})
this.opt = createOpt(dx, ds, markData);
this.load = false;
});
},
//
clickMark(data) {
this.activeCol = data.index;
this.activeIndex = data.seriesIndex;
this.modelShow = true;
let mw = window.event;
if (this.ecbox.width - mw.offsetX - 20 > this.ecmodel.width) {
this.modelStyle.left = mw.offsetX + 20 + "px";
} else {
this.modelStyle.left = mw.offsetX - this.ecmodel.width - 20 + "px";
}
if (this.ecbox.height - mw.offsetY - 20 > this.ecmodel.height) {
this.modelStyle.top = mw.offsetY + "px";
} else {
this.modelStyle.top = mw.offsetY - this.ecmodel.height + "px";
}
},
closeBox() {
this.modelShow = false;
},
},
};
@ -79,4 +149,16 @@ export default {
height: calc(100% - 48px);
}
}
.vshow {
position: absolute;
width: 300px;
background: rgb(3, 18, 36);
border: 4px solid #0f2a4d;
.vshow-item {
padding: 11px;
width: 100%;
font-size: 15px;
color: rgb(54, 189, 239);
}
}
</style>

@ -7,7 +7,7 @@
* @FilePath: /data-show/src/views/BrandInsight/titsopo/opt.js
*/
import { bigNumberTransform } from "@/utils/gol/dataTool"
function createData(ds = []) {
function createData(ds = [], markData = []) {
let testData = {}
ds.forEach(item => {
item.forEach(val => {
@ -22,7 +22,10 @@ function createData(ds = []) {
emphasis: {
focus: 'series'
},
data: [val.value]
data: [val.value],
markPoint: {
data: [],
}
}
} else {
testData[val.key].data.push(val.value)
@ -33,11 +36,24 @@ function createData(ds = []) {
for(let key in testData) {
arr.push(testData[key])
}
for(let i = 0;i< arr.length; i++) {
markData[i].forEach(ele => {
arr[i].markPoint.data.push(
{
name: 'Max',
xAxis: ele.timeIndex, yAxis: ele.yVal,
symbol: 'pin',
symbolSize: 16,
symbolOffset: [0, '-70%'],
}
)
})
}
return arr
}
export default function createOpt(dx = [], ds = []) {
let data = createData(ds);
export default function createOpt(dx = [], ds = [], markData = []) {
let data = createData(ds,markData);
return {
grid: {
left: 10,

@ -10,24 +10,54 @@
<div class="it-outter" v-loading="load">
<v-label-div title="信息量趋势"></v-label-div>
<div class="it-inner">
<v-echarts :opt="opt"></v-echarts>
<v-echarts :opt="opt" @clickMark="clickMark"></v-echarts>
</div>
<div class="vshow" v-if="modelShow" :style="modelStyle">
<vLabel-div title="实时热点事件">
<a-button @click="closeBox"></a-button>
</vLabel-div>
<div class="vshow-item" v-for="(item, index) in urlArr[activeCol].value[activeIndex].hotTop" :key="index">
<a :href="item.url" target="tar">{{doStr(item.title, 28)}}</a>
</div>
</div>
</div>
</template>
<script>
import { getCountTime0528C } from "@/api/BrandComparison";
import {doStr} from "@/utils/gol/dataTool"
import createOpt from "./opt";
export default {
name: "informationTrend",
data() {
return {
////
modelStyle: {
left: "",
top: "",
},
modelShow: false,
ecbox: {
//
width: 1618,
height: 1490,
},
ecmodel: {
//
width: 300,
height: 280,
},
activeCol: 0,
activeIndex: 0,
//-*-//
load: false,
form: {
token: "",
sBrand: "",
},
opt: {},
urlArr: [],
doStr: doStr
};
},
created() {
@ -48,19 +78,56 @@ export default {
let obj = Object.assign({}, this.getCtime2, this.form);
this.load = true;
getCountTime0528C(obj).then((res) => {
let data = res.data || [];
let dx = [];
let ds = [];
data.forEach(ele => {
let key = ele.key;
let value = ele.value;
dx.push(key);
ds.push(value);
});
this.opt = createOpt(dx, ds);
this.load = false;
let data = res.data || [];
let dx = [];
let ds = [];
this.urlArr = data;
let markData = [[], [], [], [], [], []];
let dataI = 0;
data.forEach((ele) => {
let key = ele.key;
let value = ele.value;
dx.push(key);
ds.push(value);
for (let i = 0; i < ele.value.length; i++) {
if (ele.value[i].hotTop[0]) {
let obj = {
timeIndex: dataI,
yVal: data[dataI].value[i].value,
url: ele.value[i].hotTop,
};
markData[i].push(obj);
// console.log(i)//
// console.log(dataI)//
// console.log(ele.value[i].hotTop)//[{},{}]
}
}
dataI = dataI + 1;
});
this.opt = createOpt(dx, ds, markData);
this.load = false;
});
},
//
clickMark(data) {
this.activeCol = data.index;
this.activeIndex = data.seriesIndex;
this.modelShow = true;
let mw = window.event;
if (this.ecbox.width - mw.offsetX - 20 > this.ecmodel.width) {
this.modelStyle.left = mw.offsetX + 20 + "px";
} else {
this.modelStyle.left = mw.offsetX - this.ecmodel.width - 20 + "px";
}
if (this.ecbox.height - mw.offsetY - 20 > this.ecmodel.height) {
this.modelStyle.top = mw.offsetY + "px";
} else {
this.modelStyle.top = mw.offsetY - this.ecmodel.height + "px";
}
},
closeBox() {
this.modelShow = false;
},
},
};
</script>
@ -75,4 +142,16 @@ export default {
height: calc(100% - 48px);
}
}
.vshow{
position: absolute;
width: 300px;
background: rgb(3, 18, 36);
border: 4px solid #0f2a4d;
.vshow-item {
padding: 11px;
width: 100%;
font-size: 15px;
color: rgb(54, 189, 239);
}
}
</style>

@ -7,7 +7,7 @@
* @FilePath: /data-show/src/views/BrandInsight/titsopo/opt.js
*/
import { bigNumberTransform } from "@/utils/gol/dataTool"
function createData(ds = []) {
function createData(ds = [], markData = []) {
let testData = {}
ds.forEach(item => {
item.forEach(val => {
@ -22,8 +22,11 @@ function createData(ds = []) {
emphasis: {
focus: 'series'
},
data: [val.value]
}
data: [val.value],
markPoint: {
data: [],
}
};
} else {
testData[val.key].data.push(val.value)
}
@ -33,10 +36,23 @@ function createData(ds = []) {
for(let key in testData) {
arr.push(testData[key])
}
return arr
for(let i = 0;i< arr.length; i++) {
markData[i].forEach(ele => {
arr[i].markPoint.data.push(
{
name: 'Max',
xAxis: ele.timeIndex, yAxis: ele.yVal,
symbol: 'pin',
symbolSize: 16,
symbolOffset: [0, '-70%'],
}
)
})
}
return arr
}
export default function createOpt(dx = [], ds = []) {
let data = createData(ds);
export default function createOpt(dx = [], ds = [], markData = []) {
let data = createData(ds, markData);
return {
grid: {
left: 10,

@ -10,25 +10,51 @@
<div class="fct-outter" v-loading="load">
<v-label-div title="论坛传播态势" :showLine="false" :eStyle="{ 'border-style': 'none' }"/>
<div class="fct-inner">
<v-echarts :opt="opt"></v-echarts>
<v-echarts @clickMark="clickMark" :opt="opt" ></v-echarts>
</div>
<div class="vshow" v-if="modelShow" :style="modelStyle">
<vLabel-div title="实时热点事件">
<a-button @click="closeBox"></a-button>
</vLabel-div>
<div class="vshow-item" v-for="(item, index) in urlArr" :key="index">
<a class="vshow-link" :href="item.url" v-if="item.column == activeCol" target="tar">{{item.title}}</a>
</div>
</div>
</div>
</template>
<script>
import {getBbsCountTime} from "@/api/BrandInsight"
import {doStr} from "@/utils/gol/dataTool"
import createOpt from "./opt"
export default {
name: "forum-communication-trend",
props: ["brand"],
data() {
return {
////
modelStyle:{
left: '',
top: ''
},
modelShow: false,
ecbox:{//
width:1618,
height:1490
},
ecmodel:{//
width:300,
height:280
},
activeCol: 0,
//-*-//
load: false,
form: {
sBrand: "",
token: "",
},
opt: {}
opt: {},
urlArr: []
}
},
created() {
@ -37,6 +63,26 @@ export default {
this.getData();
},
methods: {
//----//
clickMark(data) {
this.activeCol = data.index
this.modelShow = true;
let mw = window.event;
if((this.ecbox.width - mw.offsetX - 20) > this.ecmodel.width) {
this.modelStyle.left = mw.offsetX + 20 + "px"
} else {
this.modelStyle.left = mw.offsetX - this.ecmodel.width - 20 + "px"
}
if((this.ecbox.height - mw.offsetY - 20) > this.ecmodel.height) {
this.modelStyle.top = mw.offsetY + "px"
} else {
this.modelStyle.top = mw.offsetY - this.ecmodel.height + "px"
}
},
closeBox() {
this.modelShow = false;
},
//----//
getData() {
this.load = true;
let obj = Object.assign({}, this.getCtime2, this.form);
@ -44,13 +90,40 @@ export default {
let data = res.data || [];
let dx = [];
let ds = [];
let hotTopArr = [];
let urlArr = [];
let hotIndex = [];
let dataI = 0;
data.forEach(ele => {
let key = ele.Time;
let value = ele.value;
dx.push(key);
ds.push(value);
if(ele.hotTop[0]) {
ele.hotTop.forEach((e) => {
let urlObj = {
column: dataI,
title: doStr(e.title, 30),
url: e.url
};
urlArr.push(urlObj);
})
}
let obj = {
label: key,
hotTop: ele.hotTop
}
hotTopArr.push(obj);
dataI = dataI + 1;
})
this.opt = createOpt(dx, ds)
this.urlArr = urlArr;
//
for(let i = 0; i<hotTopArr.length; i++) {
if(hotTopArr[i].hotTop != '') {
hotIndex.push(i)
}
}
this.opt = createOpt(dx, ds, hotIndex)
this.load = false
})
}
@ -67,4 +140,17 @@ export default {
height: calc(100% - 48px);
}
}
.vshow{
position: absolute;
width: 300px;
background: rgb(3, 18, 36);
border: 4px solid #0f2a4d;
.vshow-item {
padding: 11px;
width: 100%;
font-size: 15px;
color: rgb(54, 189, 239);
}
}
</style>

@ -8,7 +8,18 @@
*/
import * as echarts from "echarts";
import { bigNumberTransform } from "@/utils/gol/dataTool"
export default function createOpt(dx = [], ds = []) {
export default function createOpt(dx = [], ds = [], hotIndex = []) {
let mark = [];
hotIndex.forEach(ele => {
let obj = {
name: 'Max',
xAxis: ele, yAxis: ds[ele],
symbol: 'pin',
symbolSize: 16,
symbolOffset: [0, '-70%'],
}
mark.push(obj)
})
return {
grid: {
top: "15%",
@ -95,7 +106,10 @@ export default function createOpt(dx = [], ds = []) {
offset: 1,
color: 'rgba(0,0,0,0)'
}]),
}}
}},
markPoint: {
data: mark,
}
}
]
};

@ -10,25 +10,51 @@
<div class="rwps-outter" v-loading="load">
<v-label-div title="尾翼传播态势" :showLine="false" :eStyle="{'border-style': 'none'}"></v-label-div>
<div class="rwps-inner">
<v-echarts :opt="opt"></v-echarts>
<v-echarts @clickMark="clickMark" :opt="opt"></v-echarts>
</div>
<div class="vshow" v-if="modelShow" :style="modelStyle">
<vLabel-div title="实时热点事件">
<a-button @click="closeBox"></a-button>
</vLabel-div>
<div class="vshow-item" v-for="(item, index) in urlArr" :key="index">
<a class="vshow-link" :href="item.url" v-if="item.column == activeCol" target="tar">{{item.title}}</a>
</div>
</div>
</div>
</template>
<script>
import {getWeiYiVolumeTime} from "@/api/BrandInsight";
import {doStr} from "@/utils/gol/dataTool"
import createOpt from "./opt"
export default {
name: "rearWingPropagationSituation",
props: ["brand"],
data() {
return {
////
modelStyle:{
left: '',
top: ''
},
modelShow: false,
ecbox:{//
width:1618,
height:1490
},
ecmodel:{//
width:300,
height:280
},
activeCol: 0,
//-*-//
load: false,
form: {
token: "",
sBrand: "奥迪",
},
opt: {}
opt: {},
urlArr: []
}
},
created() {
@ -37,6 +63,26 @@ export default {
this.getData();
},
methods: {
//----//
clickMark(data) {
this.activeCol = data.index
this.modelShow = true;
let mw = window.event;
if((this.ecbox.width - mw.offsetX - 20) > this.ecmodel.width) {
this.modelStyle.left = mw.offsetX + 20 + "px"
} else {
this.modelStyle.left = mw.offsetX - this.ecmodel.width - 20 + "px"
}
if((this.ecbox.height - mw.offsetY - 20) > this.ecmodel.height) {
this.modelStyle.top = mw.offsetY + "px"
} else {
this.modelStyle.top = mw.offsetY - this.ecmodel.height + "px"
}
},
closeBox() {
this.modelShow = false;
},
//----//
getData() {
let obj = Object.assign({}, this.getCtime2, this.form);
this.load = true;
@ -44,13 +90,40 @@ export default {
let data = res.data || [];
let dx = [];
let ds = [];
let hotTopArr = [];
let urlArr = [];
let hotIndex = [];
let dataI = 0;
data.forEach(ele => {
let key = ele.Time;
let value = ele.value;
dx.push(key);
ds.push(value);
if(ele.hotTop[0]) {
ele.hotTop.forEach((e) => {
let urlObj = {
column: dataI,
title: doStr(e.title, 30),
url: e.url
};
urlArr.push(urlObj);
})
}
let obj = {
label: key,
hotTop: ele.hotTop
}
hotTopArr.push(obj);
dataI = dataI + 1;
})
this.opt = createOpt(dx, ds)
this.urlArr = urlArr;
//
for(let i = 0; i<hotTopArr.length; i++) {
if(hotTopArr[i].hotTop != '') {
hotIndex.push(i)
}
}
this.opt = createOpt(dx, ds, hotIndex)
this.load = false;
})
}
@ -67,4 +140,16 @@ export default {
height: calc(100% - 48px);
}
}
.vshow{
position: absolute;
width: 300px;
background: rgb(3, 18, 36);
border: 4px solid #0f2a4d;
.vshow-item {
padding: 11px;
width: 100%;
font-size: 15px;
color: rgb(54, 189, 239);
}
}
</style>

@ -8,7 +8,18 @@
*/
import * as echarts from "echarts";
import { bigNumberTransform } from "@/utils/gol/dataTool"
export default function createOpt(dx=[], ds = []) {
export default function createOpt(dx=[], ds = [], hotIndex = []) {
let mark = [];
hotIndex.forEach(ele => {
let obj = {
name: 'Max',
xAxis: ele, yAxis: ds[ele],
symbol: 'pin',
symbolSize: 16,
symbolOffset: [0, '-70%'],
}
mark.push(obj)
})
return {
grid: {
top: "15%",
@ -95,7 +106,10 @@ export default function createOpt(dx=[], ds = []) {
offset: 1,
color: 'rgba(0,0,0,0)'
}]),
}}
}},
markPoint: {
data: mark,
}
}
]
};

@ -11,25 +11,51 @@
<v-label-div title="微博声量趋势" :showLine="false" :eStyle="{ 'border-style': 'none' }">
</v-label-div>
<div class="wvt-inner">
<v-echarts :opt="opt"></v-echarts>
<v-echarts :opt="opt" @clickMark="clickMark"></v-echarts>
</div>
<div class="vshow" v-if="modelShow" :style="modelStyle">
<vLabel-div title="实时热点事件">
<a-button @click="closeBox"></a-button>
</vLabel-div>
<div class="vshow-item" v-for="(item, index) in urlArr" :key="index">
<a class="vshow-link" :href="item.url" v-if="item.column == activeCol" target="tar">{{item.title}}</a>
</div>
</div>
</div>
</template>
<script>
import {getCountTime0528} from "@/api/BrandInsight";
import {doStr} from "@/utils/gol/dataTool"
import createOpt from "./opt"
export default {
name: "weibo-volume-trend",
props: ["brand"],
data() {
return {
////
modelStyle:{
left: '',
top: ''
},
modelShow: false,
ecbox:{//
width:1618,
height:1490
},
ecmodel:{//
width:300,
height:280
},
activeCol: 0,
//-*-//
load: false,
form: {
sBrand: "",
token: "",
},
opt: {}
opt: {},
urlArr: []
}
},
created() {
@ -38,6 +64,26 @@ export default {
this.getData();
},
methods: {
//----//
clickMark(data) {
this.activeCol = data.index
this.modelShow = true;
let mw = window.event;
if((this.ecbox.width - mw.offsetX - 20) > this.ecmodel.width) {
this.modelStyle.left = mw.offsetX + 20 + "px"
} else {
this.modelStyle.left = mw.offsetX - this.ecmodel.width - 20 + "px"
}
if((this.ecbox.height - mw.offsetY - 20) > this.ecmodel.height) {
this.modelStyle.top = mw.offsetY + "px"
} else {
this.modelStyle.top = mw.offsetY - this.ecmodel.height + "px"
}
},
closeBox() {
this.modelShow = false;
},
//----//
getData() {
let obj = Object.assign({}, this.getCtime2, this.form);
this.load = true;
@ -45,13 +91,40 @@ export default {
let data = res.data || [];
let dx = [];
let ds = [];
let hotTopArr = [];
let urlArr = [];
let hotIndex = [];
let dataI = 0;
data.forEach(ele => {
let key = ele.Time;
let value = ele.value;
dx.push(key);
ds.push(value);
if(ele.hotTop[0]) {
ele.hotTop.forEach((e) => {
let urlObj = {
column: dataI,
title: doStr(e.title, 30),
url: e.url
};
urlArr.push(urlObj);
})
}
let obj = {
label: key,
hotTop: ele.hotTop
}
hotTopArr.push(obj);
dataI = dataI + 1;
})
this.opt = createOpt(dx, ds);
this.urlArr = urlArr;
//
for(let i = 0; i<hotTopArr.length; i++) {
if(hotTopArr[i].hotTop != '') {
hotIndex.push(i)
}
}
this.opt = createOpt(dx, ds, hotIndex);
this.load = false;
})
}
@ -69,4 +142,16 @@ export default {
height: calc(100% - 48px);
}
}
.vshow{
position: absolute;
width: 300px;
background: rgb(3, 18, 36);
border: 4px solid #0f2a4d;
.vshow-item {
padding: 11px;
width: 100%;
font-size: 15px;
color: rgb(54, 189, 239);
}
}
</style>

@ -8,7 +8,18 @@
*/
import * as echarts from "echarts";
import { bigNumberTransform } from "@/utils/gol/dataTool"
export default function createOpt(dx = [], ds = []) {
export default function createOpt(dx = [], ds = [], hotIndex = []) {
let mark = [];
hotIndex.forEach(ele => {
let obj = {
name: 'Max',
xAxis: ele, yAxis: ds[ele],
symbol: 'pin',
symbolSize: 16,
symbolOffset: [0, '-70%'],
}
mark.push(obj)
})
return {
grid: {
top: "15%",
@ -95,7 +106,10 @@ export default function createOpt(dx = [], ds = []) {
offset: 1,
color: 'rgba(0,0,0,0)'
}]),
}}
}},
markPoint: {
data: mark,
}
}
]
};

@ -88,7 +88,6 @@ export default {
this.$router.push("/login");
},
clickEchars(data) {
console.log(11111)
if (!this.getToken) {
this.visible = true;
this.ModalText = "您还未登录,是否前往登录";

@ -10,18 +10,46 @@
<div class="brw-outter" v-loading="load">
<v-label-div title="尾翼趋势对比" :showLine="false" :eStyle="{'border-style': 'none'}" />
<div class="brw-inner">
<v-echarts :opt="opt"></v-echarts>
<v-echarts :opt="opt" @clickMark="clickMark"></v-echarts>
</div>
<div class="vshow" v-if="modelShow" :style="modelStyle">
<vLabel-div title="实时热点事件">
<a-button @click="closeBox"></a-button>
</vLabel-div>
<div class="vshow-item" v-for="(item, index) in urlArr[activeCol].value[activeIndex].hotTop" :key="index">
<a :href="item.url" target="tar">{{doStr(item.title, 28)}}</a>
</div>
</div>
</div>
</template>
<script>
import { getCountTime0528C1 } from "@/api/ModelComparison";
import {doStr} from "@/utils/gol/dataTool"
import createOpt from "./opt";
export default {
name: "brandRearWingComparison",
data() {
return {
////
modelStyle: {
left: "",
top: "",
},
modelShow: false,
ecbox: {
//
width: 1618,
height: 1460,
},
ecmodel: {
//
width: 300,
height: 280,
},
activeCol: 0,
activeIndex: 0,
//-*-//
load: false,
form: {
token: "",
@ -30,6 +58,8 @@ export default {
iContrastType: 2,
},
opt: createOpt(),
urlArr: [],
doStr: doStr
};
},
created() {
@ -56,16 +86,53 @@ export default {
let data = res.data || [];
let dx = [];
let ds = [];
this.urlArr = data;
let markData = [[], [], [], [], [], []];
let dataI = 0;
data.forEach((ele) => {
let key = ele.key;
let value = ele.value;
dx.push(key);
ds.push(value);
for (let i = 0; i < ele.value.length; i++) {
if (ele.value[i].hotTop[0]) {
let obj = {
timeIndex: dataI,
yVal: data[dataI].value[i].value,
url: ele.value[i].hotTop,
};
markData[i].push(obj);
// console.log(i)//
// console.log(dataI)//
// console.log(ele.value[i].hotTop)//[{},{}]
}
}
dataI = dataI + 1;
});
this.opt = createOpt(dx, ds);
this.opt = createOpt(dx, ds, markData);
this.load = false;
});
},
//
clickMark(data) {
this.activeCol = data.index;
this.activeIndex = data.seriesIndex;
this.modelShow = true;
let mw = window.event;
if (this.ecbox.width - mw.offsetX - 20 > this.ecmodel.width) {
this.modelStyle.left = mw.offsetX + 20 + "px";
} else {
this.modelStyle.left = mw.offsetX - this.ecmodel.width - 20 + "px";
}
if (this.ecbox.height - mw.offsetY - 20 > this.ecmodel.height) {
this.modelStyle.top = mw.offsetY + "px";
} else {
this.modelStyle.top = mw.offsetY - this.ecmodel.height + "px";
}
},
closeBox() {
this.modelShow = false;
},
},
};
</script>
@ -79,4 +146,16 @@ export default {
height: calc(100% - 48px);
}
}
.vshow{
position: absolute;
width: 300px;
background: rgb(3, 18, 36);
border: 4px solid #0f2a4d;
.vshow-item {
padding: 11px;
width: 100%;
font-size: 15px;
color: rgb(54, 189, 239);
}
}
</style>

@ -7,7 +7,7 @@
* @FilePath: /data-show/src/views/BrandInsight/titsopo/opt.js
*/
import { bigNumberTransform } from "@/utils/gol/dataTool"
function createData(ds = []) {
function createData(ds = [], markData = []) {
let testData = {}
ds.forEach(item => {
item.forEach(val => {
@ -22,7 +22,10 @@ function createData(ds = []) {
emphasis: {
focus: 'series'
},
data: [val.value]
data: [val.value],
markPoint: {
data: [],
}
}
} else {
testData[val.key].data.push(val.value)
@ -33,10 +36,23 @@ function createData(ds = []) {
for(let key in testData) {
arr.push(testData[key])
}
for(let i = 0;i< arr.length; i++) {
markData[i].forEach(ele => {
arr[i].markPoint.data.push(
{
name: 'Max',
xAxis: ele.timeIndex, yAxis: ele.yVal,
symbol: 'pin',
symbolSize: 16,
symbolOffset: [0, '-70%'],
}
)
})
}
return arr
}
export default function createOpt(dx = [], ds = []) {
let data = createData(ds);
export default function createOpt(dx = [], ds = [], markData = []) {
let data = createData(ds,markData);
return {
grid: {
left: 10,

@ -10,18 +10,46 @@
<div class="cop-outter">
<v-label-div title="论坛发帖趋势对比" :showLine="false" :eStyle="{'border-style': 'none'}" />
<div class="cop-inner">
<v-echarts :opt="opt"></v-echarts>
<v-echarts :opt="opt" @clickMark="clickMark"></v-echarts>
</div>
<div class="vshow" v-if="modelShow" :style="modelStyle">
<vLabel-div title="实时热点事件">
<a-button @click="closeBox"></a-button>
</vLabel-div>
<div class="vshow-item" v-for="(item, index) in urlArr[activeCol].value[activeIndex].hotTop" :key="index">
<a :href="item.url" target="tar">{{doStr(item.title, 28)}}</a>
</div>
</div>
</div>
</template>
<script>
import { getCountTime0528C } from "@/api/ModelComparison";
import {doStr} from "@/utils/gol/dataTool"
import createOpt from "./opt";
export default {
name: "comparisonOfForumPostingTrends",
data() {
return {
////
modelStyle: {
left: "",
top: "",
},
modelShow: false,
ecbox: {
//
width: 1618,
height: 1460,
},
ecmodel: {
//
width: 300,
height: 280,
},
activeCol: 0,
activeIndex: 0,
//-*-//
form: {
token: "",
sBrand: "",
@ -29,6 +57,8 @@ export default {
iContrastType: 2,
},
opt: createOpt(),
urlArr: [],
doStr: doStr
};
},
created() {
@ -54,15 +84,52 @@ export default {
let data = res.data || [];
let dx = [];
let ds = [];
this.urlArr = data;
let markData = [[], [], [], [], [], []];
let dataI = 0;
data.forEach((ele) => {
let key = ele.key;
let value = ele.value;
dx.push(key);
ds.push(value);
for (let i = 0; i < ele.value.length; i++) {
if (ele.value[i].hotTop[0]) {
let obj = {
timeIndex: dataI,
yVal: data[dataI].value[i].value,
url: ele.value[i].hotTop,
};
markData[i].push(obj);
// console.log(i)//
// console.log(dataI)//
// console.log(ele.value[i].hotTop)//[{},{}]
}
}
dataI = dataI + 1;
});
this.opt = createOpt(dx, ds);
this.opt = createOpt(dx, ds, markData);
});
},
//
clickMark(data) {
this.activeCol = data.index;
this.activeIndex = data.seriesIndex;
this.modelShow = true;
let mw = window.event;
if (this.ecbox.width - mw.offsetX - 20 > this.ecmodel.width) {
this.modelStyle.left = mw.offsetX + 20 + "px";
} else {
this.modelStyle.left = mw.offsetX - this.ecmodel.width - 20 + "px";
}
if (this.ecbox.height - mw.offsetY - 20 > this.ecmodel.height) {
this.modelStyle.top = mw.offsetY + "px";
} else {
this.modelStyle.top = mw.offsetY - this.ecmodel.height + "px";
}
},
closeBox() {
this.modelShow = false;
},
},
};
</script>
@ -76,4 +143,16 @@ export default {
height: calc(100% - 48px);
}
}
.vshow{
position: absolute;
width: 300px;
background: rgb(3, 18, 36);
border: 4px solid #0f2a4d;
.vshow-item {
padding: 11px;
width: 100%;
font-size: 15px;
color: rgb(54, 189, 239);
}
}
</style>

@ -7,7 +7,7 @@
* @FilePath: /data-show/src/views/BrandInsight/titsopo/opt.js
*/
import { bigNumberTransform } from "@/utils/gol/dataTool"
function createData(ds = []) {
function createData(ds = [], markData = []) {
let testData = {}
ds.forEach(item => {
item.forEach(val => {
@ -22,7 +22,10 @@ function createData(ds = []) {
emphasis: {
focus: 'series'
},
data: [val.value]
data: [val.value],
markPoint: {
data: [],
}
}
} else {
testData[val.key].data.push(val.value)
@ -33,10 +36,23 @@ function createData(ds = []) {
for(let key in testData) {
arr.push(testData[key])
}
for(let i = 0;i< arr.length; i++) {
markData[i].forEach(ele => {
arr[i].markPoint.data.push(
{
name: 'Max',
xAxis: ele.timeIndex, yAxis: ele.yVal,
symbol: 'pin',
symbolSize: 16,
symbolOffset: [0, '-70%'],
}
)
})
}
return arr
}
export default function createOpt(dx = [], ds = []) {
let data = createData(ds);
export default function createOpt(dx = [], ds = [], markData = []) {
let data = createData(ds, markData);
return {
grid: {
left: 10,

@ -10,18 +10,46 @@
<div class="it-outter" v-loading="load">
<v-label-div title="信息量趋势"></v-label-div>
<div class="it-inner">
<v-echarts :opt="opt"></v-echarts>
<v-echarts :opt="opt" @clickMark="clickMark"></v-echarts>
</div>
<div class="vshow" v-if="modelShow" :style="modelStyle">
<vLabel-div title="实时热点事件">
<a-button @click="closeBox"></a-button>
</vLabel-div>
<div class="vshow-item" v-for="(item, index) in urlArr[activeCol].value[activeIndex].hotTop" :key="index">
<a :href="item.url" target="tar">{{doStr(item.title, 28)}}</a>
</div>
</div>
</div>
</template>
<script>
import { getCountTime0528C } from "@/api/BrandComparison";
import {doStr} from "@/utils/gol/dataTool"
import createOpt from "./opt";
export default {
name: "informationTrend",
data() {
return {
////
modelStyle: {
left: "",
top: "",
},
modelShow: false,
ecbox: {
//
width: 1618,
height: 1460,
},
ecmodel: {
//
width: 300,
height: 280,
},
activeCol: 0,
activeIndex: 0,
//-*-//
load: false,
form: {
token: "",
@ -30,6 +58,8 @@ export default {
iContrastType: 2
},
opt: {},
urlArr: [],
doStr: doStr
};
},
created() {
@ -56,16 +86,53 @@ export default {
let data = res.data || [];
let dx = [];
let ds = [];
this.urlArr = data;
let markData = [[], [], [], [], [], []];
let dataI = 0;
data.forEach(ele => {
let key = ele.key;
let value = ele.value;
dx.push(key);
ds.push(value);
for (let i = 0; i < ele.value.length; i++) {
if (ele.value[i].hotTop[0]) {
let obj = {
timeIndex: dataI,
yVal: data[dataI].value[i].value,
url: ele.value[i].hotTop,
};
markData[i].push(obj);
// console.log(i)//
// console.log(dataI)//
// console.log(ele.value[i].hotTop)//[{},{}]
}
}
dataI = dataI + 1;
});
this.opt = createOpt(dx, ds);
this.opt = createOpt(dx, ds, markData);
this.load = false;
});
},
//
clickMark(data) {
this.activeCol = data.index;
this.activeIndex = data.seriesIndex;
this.modelShow = true;
let mw = window.event;
if (this.ecbox.width - mw.offsetX - 20 > this.ecmodel.width) {
this.modelStyle.left = mw.offsetX + 20 + "px";
} else {
this.modelStyle.left = mw.offsetX - this.ecmodel.width - 20 + "px";
}
if (this.ecbox.height - mw.offsetY - 20 > this.ecmodel.height) {
this.modelStyle.top = mw.offsetY + "px";
} else {
this.modelStyle.top = mw.offsetY - this.ecmodel.height + "px";
}
},
closeBox() {
this.modelShow = false;
},
},
};
</script>
@ -80,4 +147,16 @@ export default {
height: calc(100% - 48px);
}
}
.vshow{
position: absolute;
width: 300px;
background: rgb(3, 18, 36);
border: 4px solid #0f2a4d;
.vshow-item {
padding: 11px;
width: 100%;
font-size: 15px;
color: rgb(54, 189, 239);
}
}
</style>

@ -7,7 +7,7 @@
* @FilePath: /data-show/src/views/BrandInsight/titsopo/opt.js
*/
import { bigNumberTransform } from "@/utils/gol/dataTool"
function createData(ds = []) {
function createData(ds = [], markData = []) {
let testData = {}
ds.forEach(item => {
item.forEach(val => {
@ -22,7 +22,10 @@ function createData(ds = []) {
emphasis: {
focus: 'series'
},
data: [val.value]
data: [val.value],
markPoint: {
data: [],
}
}
} else {
testData[val.key].data.push(val.value)
@ -33,10 +36,23 @@ function createData(ds = []) {
for(let key in testData) {
arr.push(testData[key])
}
for(let i = 0;i< arr.length; i++) {
markData[i].forEach(ele => {
arr[i].markPoint.data.push(
{
name: 'Max',
xAxis: ele.timeIndex, yAxis: ele.yVal,
symbol: 'pin',
symbolSize: 16,
symbolOffset: [0, '-70%'],
}
)
})
}
return arr
}
export default function createOpt(dx = [], ds = []) {
let data = createData(ds);
export default function createOpt(dx = [], ds = [], markData = []) {
let data = createData(ds, markData);
return {
grid: {
left: 10,

@ -15,7 +15,18 @@
<div class="tit-inner">
<vLabel-div title="舆情传播趋势"></vLabel-div>
<div class="tit-bd">
<v-echarts :opt="opt" @getData="clickEchars"></v-echarts>
<v-echarts :opt="opt" @clickMark="clickMark" @getData="clickEchars"></v-echarts>
</div>
</div>
<div class="con-box">
<div id="gxid" @click.prevent="boxss"></div>
<div class="vshow" v-if="modelShow" :style="modelStyle">
<vLabel-div title="实时热点事件">
<a-button @click="closeBox"></a-button>
</vLabel-div>
<div class="vshow-item" v-for="(item, index) in urlArr" :key="index">
<a class="vshow-link" :href="item.url" v-if="item.column == activeCol" target="tar">{{item.title}}</a>
</div>
</div>
</div>
</div>
@ -24,6 +35,7 @@
<script>
import { getSourcetypeTime } from "@/api/ModelInsight";
import { getToPptTask } from "@/api/BrandInsight";
import {doStr} from "@/utils/gol/dataTool"
import moment from "moment";
import createOpt from "./opt";
export default {
@ -31,6 +43,22 @@ export default {
props: ["brand", "model"],
data() {
return {
////
modelStyle:{
left: '',
top: ''
},
modelShow: false,
ecbox:{//
width:1618,
height:1490
},
ecmodel:{//
width:300,
height:280
},
activeCol: 0,
//-*-//
load: false,
btnLoading: false,
form: {
@ -39,6 +67,7 @@ export default {
token: "",
},
opt: {},
urlArr: []
};
},
watch: {
@ -84,6 +113,29 @@ export default {
},
});
},
//
clickMark(data) {
this.activeCol = data.index
this.modelShow = true;
let mw = window.event;
if((this.ecbox.width - mw.offsetX - 20) > this.ecmodel.width) {
this.modelStyle.left = mw.offsetX + 20 + "px"
} else {
this.modelStyle.left = mw.offsetX - this.ecmodel.width - 20 + "px"
}
if((this.ecbox.height - mw.offsetY - 20) > this.ecmodel.height) {
this.modelStyle.top = mw.offsetY + "px"
} else {
this.modelStyle.top = mw.offsetY - this.ecmodel.height + "px"
}
},
closeBox() {
this.modelShow = false;
},
boxss() {
this.modelShow = false;
},
//
//
getData() {
let obj = Object.assign({}, this.getCtime2, this.form);
@ -92,13 +144,40 @@ export default {
let data = res.data || [];
let dx = [];
let ds = [];
let hotTopArr = [];
let urlArr = [];
let hotIndex = [];
let dataI = 0;
data.forEach((ele) => {
let time = ele.Time;
let value = ele.Data;
dx.push(time);
ds.push(value);
if(ele.hotTop[0]) {
ele.hotTop.forEach((e) => {
let urlObj = {
column: dataI,
title: doStr(e.title, 30),
url: e.url
};
urlArr.push(urlObj);
})
}
let obj = {
label: time,
hotTop: ele.hotTop
}
hotTopArr.push(obj);
dataI = dataI + 1;
});
this.opt = createOpt(dx, ds);
this.urlArr = urlArr;
//
for(let i = 0; i<hotTopArr.length; i++) {
if(hotTopArr[i].hotTop != '') {
hotIndex.push(i)
}
}
this.opt = createOpt(dx, ds, hotIndex);
this.load = false;
});
},
@ -173,4 +252,27 @@ export default {
}
}
}
#gxid {
height: 100%;
width: 100%;
}
.con_box{
position: relative;
height: 600px;
width: 900px;
margin: 0 auto;
}
.vshow{
position: absolute;
width: 300px;
background: rgb(3, 18, 36);
border: 4px solid #0f2a4d;
.vshow-item {
padding: 11px;
width: 100%;
font-size: 15px;
color: rgb(54, 189, 239);
}
}
</style>

@ -10,7 +10,7 @@ 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 = []) {
function createData(ds = [], hotIndex=[]) {
let arr = [];
for (let i = 0; i < ds.length; i++) {
let arr1 = ds[i];
@ -38,7 +38,10 @@ function createData(ds = []) {
emphasis: {
focus: 'series'
},
data: [arr1[j].value]
data: [arr1[j].value],
markPoint: {
data: [],
}
}
arr.push(obj)
} else {
@ -46,10 +49,33 @@ function createData(ds = []) {
}
}
}
//设定标记点
hotIndex.forEach(e => {
let yMax = 0; //y轴
let colorMax = 0; //颜色的索引
for(let i = 0; i<arr.length; i++){
if(arr[i].data[e] * 1 > yMax){
yMax = arr[i].data[e];
colorMax = i;
}
}
arr.forEach(ele => {
ele.markPoint.data.push(
{
name: 'Max',
xAxis: e, yAxis: yMax,
symbol: 'pin',
symbolSize: 16,
symbolOffset: [0, '-70%'],
itemStyle: {color: colors[colorMax]},
}
)
})
})
return arr;
}
export default function createOpt(dx=[], ds=[]) {
let data = createData(ds)
export default function createOpt(dx=[], ds=[], hotIndex=[]) {
let data = createData(ds, hotIndex)
return {
grid: {
left: '3%',

@ -10,26 +10,52 @@
<div class="fct-outter" v-loading="load">
<v-label-div title="论坛传播态势" :showLine="false" :eStyle="{ 'border-style': 'none' }"/>
<div class="fct-inner">
<v-echarts :opt="opt"></v-echarts>
<v-echarts :opt="opt" @clickMark="clickMark"></v-echarts>
</div>
<div class="vshow" v-if="modelShow" :style="modelStyle">
<vLabel-div title="实时热点事件">
<a-button @click="closeBox"></a-button>
</vLabel-div>
<div class="vshow-item" v-for="(item, index) in urlArr" :key="index">
<a class="vshow-link" :href="item.url" v-if="item.column == activeCol" target="tar">{{item.title}}</a>
</div>
</div>
</div>
</template>
<script>
import {getBbsCountTime} from "@/api/ModelInsight"
import {doStr} from "@/utils/gol/dataTool"
import createOpt from "./opt"
export default {
name: "ml-forum-communication-trend",
props: ["brand", "model"],
data() {
return {
////
modelStyle:{
left: '',
top: ''
},
modelShow: false,
ecbox:{//
width:1618,
height:1490
},
ecmodel:{//
width:300,
height:280
},
activeCol: 0,
//-*-//
load: false,
form: {
sBrand: "",
sSeriesName: "",
token: "",
},
opt: {}
opt: {},
urlArr: []
}
},
watch: {
@ -46,6 +72,26 @@ export default {
},
},
methods: {
//----//
clickMark(data) {
this.activeCol = data.index
this.modelShow = true;
let mw = window.event;
if((this.ecbox.width - mw.offsetX - 20) > this.ecmodel.width) {
this.modelStyle.left = mw.offsetX + 20 + "px"
} else {
this.modelStyle.left = mw.offsetX - this.ecmodel.width - 20 + "px"
}
if((this.ecbox.height - mw.offsetY - 20) > this.ecmodel.height) {
this.modelStyle.top = mw.offsetY + "px"
} else {
this.modelStyle.top = mw.offsetY - this.ecmodel.height + "px"
}
},
closeBox() {
this.modelShow = false;
},
//----//
getData() {
let obj = Object.assign({}, this.getCtime2, this.form);
this.load = true;
@ -53,13 +99,40 @@ export default {
let data = res.data || [];
let dx = [];
let ds = [];
let hotTopArr = [];
let urlArr = [];
let hotIndex = [];
let dataI = 0;
data.forEach(ele => {
let key = ele.Time;
let value = ele.value;
dx.push(key);
ds.push(value);
if(ele.hotTop[0]) {
ele.hotTop.forEach((e) => {
let urlObj = {
column: dataI,
title: doStr(e.title, 30),
url: e.url
};
urlArr.push(urlObj);
})
}
let obj = {
label: key,
hotTop: ele.hotTop
}
hotTopArr.push(obj);
dataI = dataI + 1;
})
this.opt = createOpt(dx, ds);
this.urlArr = urlArr;
//
for(let i = 0; i<hotTopArr.length; i++) {
if(hotTopArr[i].hotTop != '') {
hotIndex.push(i)
}
}
this.opt = createOpt(dx, ds, hotIndex);
this.load = false;
})
}
@ -76,4 +149,16 @@ export default {
height: calc(100% - 48px);
}
}
.vshow{
position: absolute;
width: 300px;
background: rgb(3, 18, 36);
border: 4px solid #0f2a4d;
.vshow-item {
padding: 11px;
width: 100%;
font-size: 15px;
color: rgb(54, 189, 239);
}
}
</style>

@ -8,7 +8,21 @@
*/
import * as echarts from "echarts";
import { bigNumberTransform } from "@/utils/gol/dataTool"
export default function createOpt(dx=[], ds=[]) {
export default function createOpt(dx=[], ds=[], hotIndex = []) {
let mark = [];
hotIndex.forEach(ele => {
let obj = {
name: 'Max',
xAxis: ele, yAxis: ds[ele],
symbol: 'pin',
symbolSize: 16,
symbolOffset: [0, '-75%'],
}
if(ds[ele] < 10) {
obj.symbolOffset = [0, '-15%']
}
mark.push(obj)
})
return {
grid: {
top: "16px",
@ -95,7 +109,10 @@ export default function createOpt(dx=[], ds=[]) {
offset: 1,
color: 'rgba(0,0,0,0)'
}]),
}}
}},
markPoint: {
data: mark,
}
}
]
};

@ -10,26 +10,52 @@
<div class="rwps-outter" v-loading="load">
<v-label-div title="尾翼传播态势" :showLine="false" :eStyle="{'border-style': 'none'}"></v-label-div>
<div class="rwps-inner">
<v-echarts :opt="opt"></v-echarts>
<v-echarts :opt="opt" @clickMark="clickMark"></v-echarts>
</div>
<div class="vshow" v-if="modelShow" :style="modelStyle">
<vLabel-div title="实时热点事件">
<a-button @click="closeBox"></a-button>
</vLabel-div>
<div class="vshow-item" v-for="(item, index) in urlArr" :key="index">
<a class="vshow-link" :href="item.url" v-if="item.column == activeCol" target="tar">{{item.title}}</a>
</div>
</div>
</div>
</template>
<script>
import {getWeiYiVolumeTime} from "@/api/ModelInsight"
import {doStr} from "@/utils/gol/dataTool"
import createOpt from "./opt"
export default {
name: "mlRearWingPropagationSituation",
props: ["brand", "model"],
data() {
return {
////
modelStyle:{
left: '',
top: ''
},
modelShow: false,
ecbox:{//
width:1618,
height:1490
},
ecmodel:{//
width:300,
height:280
},
activeCol: 0,
//-*-//
load: false,
form: {
sBrand: "",
sSeriesName: "",
token: "",
},
opt: {}
opt: {},
urlArr: []
}
},
watch: {
@ -46,6 +72,26 @@ export default {
},
},
methods: {
//----//
clickMark(data) {
this.activeCol = data.index
this.modelShow = true;
let mw = window.event;
if((this.ecbox.width - mw.offsetX - 20) > this.ecmodel.width) {
this.modelStyle.left = mw.offsetX + 20 + "px"
} else {
this.modelStyle.left = mw.offsetX - this.ecmodel.width - 20 + "px"
}
if((this.ecbox.height - mw.offsetY - 20) > this.ecmodel.height) {
this.modelStyle.top = mw.offsetY + "px"
} else {
this.modelStyle.top = mw.offsetY - this.ecmodel.height + "px"
}
},
closeBox() {
this.modelShow = false;
},
//----//
getData() {
this.load = true;
let obj = Object.assign({}, this.getCtime2, this.form);
@ -53,13 +99,40 @@ export default {
let data = res.data || [];
let dx = [];
let ds = [];
let hotTopArr = [];
let urlArr = [];
let hotIndex = [];
let dataI = 0;
data.forEach(ele => {
let key = ele.Time;
let value = ele.value;
dx.push(key);
ds.push(value);
if(ele.hotTop[0]) {
ele.hotTop.forEach((e) => {
let urlObj = {
column: dataI,
title: doStr(e.title, 30),
url: e.url
};
urlArr.push(urlObj);
})
}
let obj = {
label: key,
hotTop: ele.hotTop
}
hotTopArr.push(obj);
dataI = dataI + 1;
})
this.opt = createOpt(dx,ds)
this.urlArr = urlArr;
//
for(let i = 0; i<hotTopArr.length; i++) {
if(hotTopArr[i].hotTop != '') {
hotIndex.push(i)
}
}
this.opt = createOpt(dx,ds,hotIndex)
this.load = false;
})
}
@ -76,4 +149,16 @@ export default {
height: calc(100% - 48px);
}
}
.vshow{
position: absolute;
width: 300px;
background: rgb(3, 18, 36);
border: 4px solid #0f2a4d;
.vshow-item {
padding: 11px;
width: 100%;
font-size: 15px;
color: rgb(54, 189, 239);
}
}
</style>

@ -8,7 +8,21 @@
*/
import * as echarts from "echarts";
import { bigNumberTransform } from "@/utils/gol/dataTool"
export default function createOpt(dx = [], ds = []) {
export default function createOpt(dx = [], ds = [], hotIndex = []) {
let mark = [];
hotIndex.forEach(ele => {
let obj = {
name: 'Max',
xAxis: ele, yAxis: ds[ele],
symbol: 'pin',
symbolSize: 16,
symbolOffset: [0, '-75%'],
}
if(ds[ele] < 10) {
obj.symbolOffset = [0, '-15%']
}
mark.push(obj)
})
return {
grid: {
top: 16,
@ -95,7 +109,10 @@ export default function createOpt(dx = [], ds = []) {
offset: 1,
color: 'rgba(0,0,0,0)'
}]),
}}
}},
markPoint: {
data: mark,
}
}
]
};

@ -11,19 +11,44 @@
<v-label-div title="微博声量趋势" :showLine="false" :eStyle="{ 'border-style': 'none' }">
</v-label-div>
<div class="wvt-inner">
<v-echarts :opt="opt"></v-echarts>
<v-echarts :opt="opt" @clickMark="clickMark"></v-echarts>
</div>
<div class="vshow" v-if="modelShow" :style="modelStyle">
<vLabel-div title="实时热点事件">
<a-button @click="closeBox"></a-button>
</vLabel-div>
<div class="vshow-item" v-for="(item, index) in urlArr" :key="index">
<a class="vshow-link" :href="item.url" v-if="item.column == activeCol" target="tar">{{item.title}}</a>
</div>
</div>
</div>
</template>
<script>
import { getCountTime0528 } from "@/api/ModelInsight";
import {doStr} from "@/utils/gol/dataTool"
import createOpt from "./opt";
export default {
name: "ml-weibo-volume-trend",
props: ["brand", "model"],
data() {
return {
////
modelStyle:{
left: '',
top: ''
},
modelShow: false,
ecbox:{//
width:1618,
height:1490
},
ecmodel:{//
width:300,
height:280
},
activeCol: 0,
//-*-//
load: false,
form: {
sBrand: "",
@ -31,6 +56,7 @@ export default {
token: "",
},
opt: {},
urlArr: []
};
},
watch: {
@ -47,6 +73,26 @@ export default {
},
},
methods: {
//----//
clickMark(data) {
this.activeCol = data.index
this.modelShow = true;
let mw = window.event;
if((this.ecbox.width - mw.offsetX - 20) > this.ecmodel.width) {
this.modelStyle.left = mw.offsetX + 20 + "px"
} else {
this.modelStyle.left = mw.offsetX - this.ecmodel.width - 20 + "px"
}
if((this.ecbox.height - mw.offsetY - 20) > this.ecmodel.height) {
this.modelStyle.top = mw.offsetY + "px"
} else {
this.modelStyle.top = mw.offsetY - this.ecmodel.height + "px"
}
},
closeBox() {
this.modelShow = false;
},
//----//
getData() {
this.load = true;
let obj = Object.assign({}, this.getCtime2, this.form);
@ -54,13 +100,40 @@ export default {
let data = res.data || [];
let dx = [];
let ds = [];
let hotTopArr = [];
let urlArr = [];
let hotIndex = [];
let dataI = 0;
data.forEach((ele) => {
let key = ele.Time;
let value = ele.value;
dx.push(key);
ds.push(value);
if(ele.hotTop[0]) {
ele.hotTop.forEach((e) => {
let urlObj = {
column: dataI,
title: doStr(e.title, 30),
url: e.url
};
urlArr.push(urlObj);
})
}
let obj = {
label: key,
hotTop: ele.hotTop
}
hotTopArr.push(obj);
dataI = dataI + 1;
});
this.opt = createOpt(dx, ds);
this.urlArr = urlArr;
//
for(let i = 0; i<hotTopArr.length; i++) {
if(hotTopArr[i].hotTop != '') {
hotIndex.push(i)
}
}
this.opt = createOpt(dx, ds, hotIndex);
this.load = false;
});
},
@ -78,4 +151,16 @@ export default {
height: calc(100% - 48px);
}
}
.vshow{
position: absolute;
width: 300px;
background: rgb(3, 18, 36);
border: 4px solid #0f2a4d;
.vshow-item {
padding: 11px;
width: 100%;
font-size: 15px;
color: rgb(54, 189, 239);
}
}
</style>

@ -8,7 +8,21 @@
*/
import * as echarts from "echarts";
import { bigNumberTransform } from "@/utils/gol/dataTool"
export default function createOpt(dx = [], ds = []) {
export default function createOpt(dx = [], ds = [], hotIndex = []) {
let mark = [];
hotIndex.forEach(ele => {
let obj = {
name: 'Max',
xAxis: ele, yAxis: ds[ele],
symbol: 'pin',
symbolSize: 16,
symbolOffset: [0, '-75%'],
}
if(ds[ele] < 10) {
obj.symbolOffset = [0, '-15%']
}
mark.push(obj)
})
return {
grid: {
top: "16px",
@ -95,7 +109,10 @@ export default function createOpt(dx = [], ds = []) {
offset: 1,
color: 'rgba(0,0,0,0)'
}]),
}}
}},
markPoint: {
data: mark,
}
}
]
};

Loading…
Cancel
Save