张雄 3 years ago
parent 9dc4acfbb7
commit 70336d19b2

@ -0,0 +1,27 @@
import httpService from "@/request"
// 主题分析-列表 主页
export function getSchemeDataToTheme(params) {
let obj = Object.assign({action: 'getSchemeDataToTheme'}, params)
return httpService({
url: `/api/v6.ashx`,
method: 'post',
data: obj,
headers: {
'content-type': 'application/x-www-form-urlencoded'
}
})
}
// 主题分析-列表 添加
export function setSchemeData(params) {
let obj = Object.assign({action: 'setSchemeData'}, params)
return httpService({
url: `/api/v6.ashx`,
method: 'post',
data: obj,
headers: {
'content-type': 'application/x-www-form-urlencoded'
}
})
}

@ -13,15 +13,15 @@
<span class="s2">{{label}}</span>
</div>
<div class="d2">
<span class="s1">粉丝数>1千万</span>
<span class="s1">>1千万</span>
<span class="s2">{{cont}}</span>
</div>
<div class="d2">
<span class="s1">粉丝数>5百万</span>
<span class="s1">>5百万</span>
<span class="s2">{{cont}}</span>
</div>
<div class="d2">
<span class="s1">粉丝数>1百万</span>
<span class="s1">>1百万</span>
<span class="s2">{{cont}}</span>
</div>
<div class="d3">
@ -90,7 +90,7 @@ export default {
}
}
.d2 {
width: 12%;
width: 13%;
.s1 {
display: block;
font-size: 12px;
@ -99,7 +99,7 @@ export default {
.s2 {
display: block;
font-family: Bebas;
font-size: 16px;
font-size: 18px;
color: #fff;
}
}
@ -107,7 +107,7 @@ export default {
width: 12%;
.s1 {
display: block;
font-size: 16px;
font-size: 12px;
color: #7a8289;
}
.s2 {

@ -39,8 +39,8 @@ export default {
modelShow: false,
ecbox: {
//
width: 1618,
height: 1490,
width: 618,
height: 490,
},
ecmodel: {
//

@ -10,7 +10,7 @@
<template>
<div class="km-outter" v-loading="load">
<v-label-div title="重点媒体" :showLine="false" :eStyle="{'border-style': 'none'}">
<v-pagination :data="pdata" :style="{}" @change="handlerData"></v-pagination>
<!-- <v-pagination :data="pdata" :style="{}" @change="handlerData"></v-pagination> -->
</v-label-div>
<div class="km-inner">
<v-echarts :opt="opt"></v-echarts>
@ -46,29 +46,16 @@ export default {
let obj = Object.assign({}, this.getCtime2, this.form);
getWebsite(obj).then((res) => {
let data = res.data || {};
let arr = [];
let dy = [];
let ds = [];
for (let key in data) {
let obj = {
key: key,
value: data[key]
}
arr.push(obj)
dy.push(key);
ds.push(data[key]);
}
this.pdata = arr;
this.opt = createOpt(dy, ds);
this.load = false;
});
},
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>

@ -68,7 +68,7 @@ export default function createOpt(dy = [], ds = []) {
{
name: '2011',
type: 'bar',
barWidth: 24,
barWidth: 18,
data: ds,
color: new echarts.graphic.LinearGradient(0, 0, 1, 0, [{
offset: 0,

@ -16,14 +16,23 @@
</a-select>
</v-label-div>
<div class="iss-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 createOpt from "./opt";
import { getSourcetypeTime } from "@/api/EventdEC";
import {doStr} from "@/utils/gol/dataTool"
export default {
name: "incidentSpreadSituation",
props: {
@ -34,6 +43,22 @@ export default {
},
data() {
return {
////
modelStyle:{
left: '',
top: ''
},
modelShow: false,
ecbox:{//
width:1618,
height:490
},
ecmodel:{//
width:300,
height:280
},
activeCol: 0,
//-*-//
opt: {},
load: false,
selDatas: [
@ -51,6 +76,7 @@ export default {
sRele: "",
sTimeType: 20,
},
urlArr: [] //url
};
},
created() {
@ -59,6 +85,24 @@ export default {
this.getDdta();
},
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;
},
getDdta() {
let obj = Object.assign({}, this.form);
this.load = true;
@ -66,13 +110,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.Data;
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.form.sTimeType);
this.urlArr = urlArr;
//
for(let i = 0; i<hotTopArr.length; i++) {
if(hotTopArr[i].hotTop != '') {
hotIndex.push(i)
}
}
this.opt = createOpt(dx, ds, this.form.sTimeType, hotIndex);
this.load = false;
});
},
@ -96,4 +167,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>

@ -9,7 +9,7 @@
import * as echarts from "echarts";
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];
@ -37,7 +37,10 @@ function createData(ds = []) {
emphasis: {
focus: 'series'
},
data: [arr1[j].value]
data: [arr1[j].value],
markPoint: {
data: [],
}
}
arr.push(obj)
} else {
@ -45,10 +48,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=[], sTimeType = 20) {
let data = createData(ds)
export default function createOpt(dx=[], ds=[], sTimeType = 20, hotIndex = []) {
let data = createData(ds,hotIndex)
return {
grid: {
left: 10,

@ -25,13 +25,29 @@
<div class="fd-d2" v-loading="load1">
<v-label-div title="传播态势"/>
<div class="fd-d2-inner">
<v-echarts :opt="opt1"></v-echarts>
<v-echarts :opt="opt1" @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>
<div class="fd-d2" v-loading="load2">
<v-label-div title="TOP5车型传播态势"/>
<div class="fd-d2-inner">
<v-echarts :opt="opt2"></v-echarts>
<v-echarts :opt="opt2" @clickMark="clickMark2"></v-echarts>
</div>
<div class="vshow" v-if="modelShow2" :style="modelStyle">
<vLabel-div title="实时热点事件">
<a-button @click="closeBox"></a-button>
</vLabel-div>
<div class="vshow-item" v-for="(item, index) in urlArr2" :key="index">
<a class="vshow-link" :href="item.url" v-if="item.column == activeCol" target="tar">{{item.title}}</a>
</div>
</div>
</div>
</div>
@ -40,12 +56,31 @@
<script>
import {getBbsInsightAnalysis,getBbsCountTime, getBbsBrandTime} from '@/api/Forumdetails'
import {doStr} from "@/utils/gol/dataTool"
import createOptD1 from "./optD1"
import createOptD2 from "./optD2"
export default {
name: "ForumDetails",
data() {
return {
////
modelStyle:{
left: '',
top: ''
},
modelShow: false,
modelShow2: false,
ecbox:{//
width:1500,
height:357
},
ecmodel:{//
width:300,
height:280
},
activeCol: 0,
activeCol2: 0,
//-*-//
load: false,
load1: false,
load2: false,
@ -56,7 +91,9 @@ export default {
sBrand: "",
token: "",
iBBsType: 1,
}
},
urlArr: [],
urlArr2: [],
}
},
created() {
@ -67,6 +104,42 @@ export default {
this.getDdta3();
},
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"
}
},
clickMark2(data) {
this.activeCol2 = data.index
this.modelShow2 = 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;
this.modelShow2 = false;
},
//----//
getDdta1(){
let obj = Object.assign({}, this.getCtime2, this.form);
this.load = true;
@ -83,13 +156,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.value;
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.opt1 = createOptD1(dx, ds);
this.urlArr = urlArr;
//
for(let i = 0; i<hotTopArr.length; i++) {
if(hotTopArr[i].hotTop != '') {
hotIndex.push(i)
}
}
this.opt1 = createOptD1(dx, ds, hotIndex);
this.load1 = false;
})
},
@ -100,18 +200,47 @@ export default {
let data = res.data || [];
let dx = [];
let ds = [];
let urlArr = [];
let dataI = 0;
data.forEach((ele) => {
let key = ele.Time;
let value = ele.Data;
dx.push(key);
ds.push(value);
if(ele.hotTop[0]) {
ele.hotTop.forEach((e) => {
let urlObj = {
column: dataI,
value: this.findMax(ele.Data).maxVal,
index: this.findMax(ele.Data).maxIndex,
title: doStr(e.title, 30),
url: e.url
};
urlArr.push(urlObj);
})
}
dataI = dataI + 1;
});
this.opt2 = createOptD2(dx, ds);
this.urlArr2 = urlArr;
//
this.opt2 = createOptD2(dx, ds, urlArr);
this.load2 = false;
})
},
goback() {
this.$router.go(-1)
},
findMax(arr = []) {
let maxVal = arr[0].value * 1.0;
let maxIndex = 0
for(let i = 0;i< arr.length; i++) {
if(arr[i].value > maxVal) {
maxVal = arr[i].value * 1;
maxIndex = i
}
}
let obj = {maxVal: maxVal,maxIndex: maxIndex}
return obj;
}
}
}
@ -164,4 +293,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 createOptD1(dx = [], ds = []) {
export default function createOptD1(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: "16px",
@ -95,7 +106,10 @@ export default function createOptD1(dx = [], ds = []) {
offset: 1,
color: 'rgba(0,0,0,0)'
}]),
}}
}},
markPoint: {
data: mark,
}
}
]
};

@ -8,7 +8,7 @@
*/
// import * as echarts from "echarts";
import { bigNumberTransform } from "@/utils/gol/dataTool"
function createData(ds = []) {
function createData(ds = [], hotIndex = []) {
let arr = [];
for (let i = 0; i < ds.length; i++) {
let arr1 = ds[i];
@ -28,7 +28,10 @@ function createData(ds = []) {
emphasis: {
focus: 'series'
},
data: [arr1[j].value]
data: [arr1[j].value],
markPoint: {
data: []
}
}
arr.push(obj)
} else {
@ -36,10 +39,21 @@ function createData(ds = []) {
}
}
}
hotIndex.forEach(ele => {
arr[ele.index].markPoint.data.push(
{
name: 'Max',
xAxis: ele.column, yAxis: ele.value,
symbol: 'pin',
symbolSize: 16,
symbolOffset: [0, '-70%'],
}
)
})
return arr;
}
export default function createOptD2(dx = [], ds = []) {
let data = createData(ds)
export default function createOptD2(dx = [], ds = [], hotIndex = []) {
let data = createData(ds,hotIndex)
return {
grid: {
left: 16,

@ -39,8 +39,8 @@ export default {
modelShow: false,
ecbox: {
//
width: 1618,
height: 1460,
width: 618,
height: 460,
},
ecmodel: {
//

@ -11,25 +11,51 @@
<v-label-div title="论坛传播趋势">
</v-label-div>
<div class="wct-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 {getBbsVolumeTime} from "@/api/ModelForumDetails"
import {doStr} from "@/utils/gol/dataTool"
import createOpt from "./opt"
export default {
name: "mfdCommunicationTrend",
data() {
return {
////
modelStyle:{
left: '',
top: ''
},
modelShow: false,
ecbox:{//
width:618,
height:490
},
ecmodel:{//
width:300,
height:280
},
activeCol: 0,
//-*-//
load: false,
form: {
sBrand: "",
token: "",
sSeriesName: ""
},
opt: createOpt()
opt: createOpt(),
urlArr: []
}
},
created() {
@ -39,6 +65,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);
@ -46,13 +92,40 @@ export default {
let data = res.data || [];
let dx = []; //time
let ds = []; //value
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) {
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
});
}
@ -70,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>

@ -10,7 +10,7 @@
<template>
<div class="km-outter" v-loading="load">
<v-label-div title="重点媒体" :showLine="false" :eStyle="{'border-style': 'none'}">
<v-pagination :data="pdata" :style="{}" @change="handlerData"></v-pagination>
<!-- <v-pagination :data="pdata" :style="{}" @change="handlerData"></v-pagination> -->
</v-label-div>
<div class="km-inner">
<v-echarts :opt="opt"></v-echarts>
@ -56,15 +56,13 @@ export default {
let obj = Object.assign({}, this.getCtime2, 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;
let dy = [];
let ds = [];
for (let key in data) {
dy.push(key);
ds.push(data[key]);
}
this.opt = createOpt(dy, ds);
this.load = false;
})
},

@ -68,7 +68,7 @@ export default function createOpt(dx = [], ds = []) {
{
name: '2011',
type: 'bar',
barWidth: 24,
barWidth: 18,
data: ds,
color: new echarts.graphic.LinearGradient(0, 0, 1, 0, [{
offset: 0,

@ -10,18 +10,43 @@
<div class="rwps-outter">
<v-label-div title="尾翼传播态势"></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/ModelTaildetails'
import {doStr} from "@/utils/gol/dataTool"
import createOpt from "./opt"
export default {
name: "MTDrearWingPropagationSituation",
data() {
return {
////
modelStyle:{
left: '',
top: ''
},
modelShow: false,
ecbox:{//
width:930,
height:460
},
ecmodel:{//
width:300,
height:280
},
activeCol: 0,
//-*-//
load: false,
opt: {},
form: {
@ -29,6 +54,7 @@ export default {
sSeriesName: "",
token: "",
},
urlArr: [],
}
},
created() {
@ -38,6 +64,26 @@ export default {
this.getDdta();
},
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;
},
//----//
getDdta(){
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 time = ele.Time;
let value = ele.value;
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;
})
},
@ -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,
}
}
]
};

@ -11,25 +11,51 @@
<v-label-div title="微博传播趋势">
</v-label-div>
<div class="wct-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/WeiboDetails"
import {doStr} from "@/utils/gol/dataTool"
import createOpt from "./opt"
export default {
name: "MWDweiboCommunicationTrend",
data() {
return {
////
modelStyle:{
left: '',
top: ''
},
modelShow: false,
ecbox:{//
width:618,
height:490
},
ecmodel:{//
width:300,
height:280
},
activeCol: 0,
//-*-//
load: false,
form: {
sBrand: "",
token: "",
sSeriesName: ""
},
opt: createOpt()
opt: createOpt(),
urlArr: []
}
},
created() {
@ -39,6 +65,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);
@ -46,13 +92,40 @@ export default {
let data = res.data || [];
let dx = []; //time
let ds = []; //value
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
});
}
@ -70,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>

@ -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: 16,
@ -95,7 +106,10 @@ export default function createOpt(dx = [], ds = []) {
offset: 1,
color: 'rgba(0,0,0,0)'
}]),
}}
}},
markPoint: {
data: mark,
}
}
]
};

@ -10,24 +10,52 @@
<div class="rwps-outter" v-loading="load">
<v-label-div title="尾翼传播态势"></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/TailInsightdetails'
import {doStr} from "@/utils/gol/dataTool"
import createOpt from "./opt"
export default {
name: "rearWingPropagationSituation",
data() {
return {
////
modelStyle:{
left: '',
top: ''
},
modelShow: false,
modelShow2: false,
ecbox:{//
width:936,
height:460
},
ecmodel:{//
width:300,
height:280
},
activeCol: 0,
activeCol2: 0,
//-*-//
load: false,
opt: {},
form: {
sBrand: "",
token: "",
}
},
urlArr: [],
}
},
created() {
@ -36,6 +64,26 @@ export default {
this.getDdta();
},
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;
},
//----//
getDdta(){
let obj = Object.assign({}, this.getCtime2, this.form);
this.load = true;
@ -43,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 time = ele.Time;
let value = ele.value;
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;
})
},
@ -67,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,
}
}
]
};

@ -43,27 +43,33 @@
<a-tab-pane key="1" tab="便捷模式">
<div class="modal-container">
<div class="modal-form">
<a-form-model :model="form" :label-col="{span : 4}" :wrapper-col="{span : 18}">
<a-form-model :model="addForm" :label-col="{span : 4}" :wrapper-col="{span : 18}">
<a-tabs type="card"><a-tab-pane key="10" tab="名称设置">
<a-form-model-item label="主题名称"><a-input v-model="form.theme"></a-input></a-form-model-item>
<a-form-model-item label="监测周期"><a-input v-model="form.round"></a-input></a-form-model-item>
<a-form-model-item label="主题名称"><a-input v-model="addForm.Name"></a-input></a-form-model-item>
<a-form-model-item label="监测周期">
<!-- <a-date-picker v-model="addForm.StartTime" show-time></a-date-picker> -->
<div style="display: flex">
<a-input v-model="addForm.StartTime"></a-input>
<a-input v-model="addForm.EndTime"></a-input>
</div>
</a-form-model-item>
</a-tab-pane></a-tabs>
<a-tabs type="card">
<a-tab-pane key="11" tab="必选词“和”的关系">
<a-form-model-item label="必选词"><a-input v-model="form.must"></a-input></a-form-model-item>
<a-form-model-item label="可选词"><a-input v-model="form.maybe"></a-input></a-form-model-item>
<a-form-model-item label="排除词"><a-input v-model="form.except"></a-input></a-form-model-item>
<a-form-model-item label="必选词"><a-input v-model="addForm.DetailsData[0].AnalyzeWord"></a-input></a-form-model-item>
<a-form-model-item label="可选词"><a-input v-model="addForm.DetailsData[0].HuoWord"></a-input></a-form-model-item>
<a-form-model-item label="排除词"><a-input v-model="addForm.DetailsData[0].PaiChu"></a-input></a-form-model-item>
</a-tab-pane>
<a-tab-pane key="12" tab="主题词“或”的关系">
<a-form-model-item label="主体词"><a-input v-model="form.must"></a-input></a-form-model-item>
<a-form-model-item label="关键词组一"><a-input v-model="form.must"></a-input></a-form-model-item>
<a-form-model-item label="关键词组二"><a-input v-model="form.must"></a-input></a-form-model-item>
<a-form-model-item label="排除词"><a-input v-model="form.must"></a-input></a-form-model-item>
<a-form-model-item label="主体词"><a-input></a-input></a-form-model-item>
<a-form-model-item label="关键词组一"><a-input></a-input></a-form-model-item>
<a-form-model-item label="关键词组二"><a-input></a-input></a-form-model-item>
<a-form-model-item label="排除词"><a-input></a-input></a-form-model-item>
</a-tab-pane>
</a-tabs>
<a-tabs type="card"><a-tab-pane key="13" tab="定向监测">
<a-form-model-item label="媒体"><a-input v-model="form.media"></a-input></a-form-model-item>
<a-form-model-item label="作者"><a-input v-model="form.author"></a-input></a-form-model-item>
<a-form-model-item label="媒体"><a-input></a-input></a-form-model-item>
<a-form-model-item label="作者"><a-input></a-input></a-form-model-item>
</a-tab-pane></a-tabs>
</a-form-model>
</div>
@ -79,17 +85,17 @@
<a-tab-pane key="2" tab="高级模式">
<div class="modal-container">
<div class="modal-form">
<a-form-model :model="form" :label-col="{span : 4}" :wrapper-col="{span : 18}">
<a-form-model :model="addForm" :label-col="{span : 4}" :wrapper-col="{span : 18}">
<a-tabs type="card"><a-tab-pane key="21" tab="名称设置">
<a-form-model-item label="主题名称"><a-input v-model="form.theme"></a-input></a-form-model-item>
<a-form-model-item label="监测周期"><a-input v-model="form.round"></a-input></a-form-model-item>
<a-form-model-item label="主题名称"><a-input></a-input></a-form-model-item>
<a-form-model-item label="监测周期"><a-input></a-input></a-form-model-item>
</a-tab-pane></a-tabs>
<a-tabs type="card"><a-tab-pane key="22" tab="分析词设置">
<a-form-model-item label="主题词"><a-textarea></a-textarea></a-form-model-item>
</a-tab-pane></a-tabs>
<a-tabs type="card"><a-tab-pane key="23" tab="定向监测">
<a-form-model-item label="媒体"><a-textarea v-model="form.media"></a-textarea></a-form-model-item>
<a-form-model-item label="作者"><a-textarea v-model="form.author"></a-textarea></a-form-model-item>
<a-form-model-item label="媒体"><a-textarea></a-textarea></a-form-model-item>
<a-form-model-item label="作者"><a-textarea></a-textarea></a-form-model-item>
</a-tab-pane></a-tabs>
</a-form-model>
</div>
@ -116,6 +122,8 @@
<script>
import newThemeModal from "./newThemeModal"
import {getSchemeDataToTheme} from "@/api/ThemeAnalize"
import {setSchemeData} from "@/api/ThemeAnalize"
export default {
name: "themeAnalize",
components: {
@ -129,18 +137,49 @@ export default {
],
//
visible: false,
form: {},
modalObj: {
title: "新建主题",
visible: false,
},
contentStyle: {
color: 'white',
}
},
//
addForm: {
Guids: null,
Name: "",
Classify: 0,
StartTime: '',
EndTime: '',
Types: "theme",
DetailsData: [
{AnalyzeWord: "",
HuoWord: "",
PaiChu: "",
IsAdvancedQuery: 0 //0 1
}
]
},
//
form: {
token: "",
pageIndex: '',
pageSize: '',
sType: "former" //former now
},
}
},
created() {
this.form.token = this.getToken;
this.getNowData();
},
methods: {
getNowData() {
let obj = Object.assign({}, this.form);
getSchemeDataToTheme(obj).then(res => {
console.log(res);
})
},
goBack() {
this.$router.go(-1);
},
@ -151,10 +190,20 @@ export default {
},
handlerOk() {
this.modalObj.visible = false
let newForm = {
token: "",
DataJson: ""
};
newForm.token = this.getToken;
newForm.DataJson = JSON.stringify(this.addForm);
let obj = Object.assign({}, newForm);
setSchemeData(obj).then(res => {
console.log(res);
this.getNowData();
})
this.modalObj.visible = false;
},
toThemeData(index) {
console.log(index);
this.$router.push({path: '/ThemeData'})
}
}

@ -1,17 +1,46 @@
<template>
<div class="ba-container">
<v-label-div title="博主区域分布" :showLine="false" :eStyle="{'border-style': 'none'}"></v-label-div>
<div class="ba-inner">
<div class="ba-d1">
<v-echarts :opt="opt1"></v-echarts>
</div>
<div class="ba-d2">
<v-echars-map :opt="opt2"></v-echars-map>
</div>
</div>
</div>
</template>
<script>
export default {
name: "BloggerArea"
name: "BloggerArea",
data() {
return {
opt1: {},
opt2: {}
}
}
}
</script>
<style lang="less">
.ba-container {
width: 100%;
.ba-inner {
display: flex;
justify-content: flex-start;
width: 100%;
height: calc(100% - 48px);
.ba-d1 {
width: 479px;
height: 100%;
}
.ba-d2 {
width: 420px;
height: 100%;
margin-left: 16px;
}
}
}
</style>

@ -1,17 +1,100 @@
<template>
<div class="ctu-container">
<v-label-div title="核心传播网民" :showLine="false" :eStyle="{'border-style': 'none'}"></v-label-div>
<div class="d1-inner">
<div class="pv-item" v-for="(item,index) in list" :key="index">
<div class="dm">
<img class="mm1" :src="item._source.profileimgurl" width="100%" height="100%">
</div>
<div class="d-f">
<div class="d1">{{item._source.user_author}}</div>
<div class="d2">粉丝数<span class="d2-s1">{{bigNumberTransform(item._source.weibofans)}}</span></div>
</div>
</div>
</div>
</div>
</template>
<script>
import {bigNumberTransform} from "@/utils/gol/dataTool"
export default {
name: "CoreTransformUser"
name: "CoreTransformUser",
data() {
return {
bigNumberTransform: bigNumberTransform,
list: [
{ _source:
{profileimgurl: '', user_author: '1111', weibofans: '1223'}
},
{ _source:
{profileimgurl: '', user_author: '2222', weibofans: '321214'}
},
]
}
}
}
</script>
<style lang="less">
.ctu-container {
width: 100%;
.d1-inner {
width: 100%;
height: calc(100% - 48px);
margin-left: 16px;
display: flex;
justify-content: flex-start;
flex-wrap: wrap;
.pv-item {
width: 285px;
height: 64px;
display: flex;
justify-content: flex-start;
align-items: center;
position: relative;
margin-right: 24px;
margin-top: 12px;
.dm {
position: absolute;
width: 68px;
height: 68px;
border-radius: 68px;
border: 1px solid #ccc;
left: 0px;
top: 0px;
background-color: #fff;
z-index: 10;
.mm1 {
width: 100%;
height: 100%;
border-radius: 74px;
}
}
.d-f {
position: absolute;
width: 249px;
height: 64px;
left: 36px;
padding-left: 65px;
background-image: url("../../../assets/images/BrandInsight/img_yhtx.png");
.d1 {
font-size: 14px;
color: #fff;
font-weight: 500;
margin-top: 10px;
height: 20px;
}
.d2 {
color: #70869a;
font-size: 12px;
.d2-s1 {
font-size: 12px;
font-family: Bebas;
color: #f49847;
}
}
}
}
}
}
</style>

@ -1,12 +1,61 @@
<template>
<div class="pa-outter">
<v-label-div title="人群画像认证分析"></v-label-div>
<div class="pa-inner">
<div class="pa-d1">
<v-echarts :opt="opt"></v-echarts>
</div>
<div class="pa-d2">
<v-label-ctx
v-for="(item, index) in labelArr"
:key="index"
:label="item.key"
:cont="item.value"
:percentage="((item.value / total) * 100).toFixed(2) + '%'"
:color="colors[index]"
:eStyle="{ height: '8.54rem' }"
></v-label-ctx>
</div>
</div>
</div>
</template>
<script>
export default {
name: "PeopleAuthen"
name: "PeopleAuthen",
data() {
return {
opt: {},
total: 3950,
labelArr: [
{key: '非认证', value: 2300},
{key: '普通认证', value: 1250},
{key: '机构认证', value: 400},
],
colors: [
"#54BF93",
"#3373CC",
"#CC9D12",
"#f15c80",
"#e4d354",
"#8085e8",
"#8d4653",
"#91e8e1",
"#f7a35c",
"#90ed7d",
"#54BF93",
"#3373CC",
"#CC9D12",
"#f15c80",
"#e4d354",
"#8085e8",
"#8d4653",
"#91e8e1",
"#f7a35c",
"#90ed7d",
],
}
}
}
</script>
@ -17,5 +66,19 @@ export default {
border: 2px solid #0f2a4d;
margin-left: 16px;
overflow: hidden;
.pa-inner {
width: 100%;
height: calc(100% - 48px);
display: flex;
justify-content: flex-start;
.pa-d1 {
width: 440px;
height: 100%;
}
.pa-d2 {
width: 440px;
margin-left: 16px;
}
}
}
</style>

@ -1,12 +1,61 @@
<template>
<div class="pg-outter">
<v-label-div title="人群画像性别分析"></v-label-div>
<div class="pg-inner">
<div class="pg-d1">
<v-echarts :opt="opt"></v-echarts>
</div>
<div class="pg-d2">
<v-label-ctx
v-for="(item, index) in labelArr"
:key="index"
:label="item.key"
:cont="item.value"
:percentage="((item.value / total) * 100).toFixed(2) + '%'"
:color="colors[index]"
:eStyle="{ height: '8.54rem' }"
></v-label-ctx>
</div>
</div>
</div>
</template>
<script>
export default {
name: "PeopleGender"
name: "PeopleGender",
data() {
return {
opt: {},
total: 3950,
labelArr: [
{key: '男', value: 2300},
{key: '女', value: 1250},
{key: '未设性别', value: 400},
],
colors: [
"#54BF93",
"#3373CC",
"#CC9D12",
"#f15c80",
"#e4d354",
"#8085e8",
"#8d4653",
"#91e8e1",
"#f7a35c",
"#90ed7d",
"#54BF93",
"#3373CC",
"#CC9D12",
"#f15c80",
"#e4d354",
"#8085e8",
"#8d4653",
"#91e8e1",
"#f7a35c",
"#90ed7d",
],
}
}
}
</script>
@ -15,5 +64,19 @@ export default {
width: 936px;
height: 460px;
border: 2px solid #0f2a4d;
.pg-inner {
width: 100%;
height: calc(100% - 48px);
display: flex;
justify-content: flex-start;
.pg-d1 {
width: 440px;
height: 100%;
}
.pg-d2 {
width: 440px;
margin-left: 16px;
}
}
}
</style>

@ -1,17 +1,88 @@
<template>
<div class="tf-container">
<v-label-div title="传播途径" :showLine="false" :eStyle="{'border-style': 'none'}"></v-label-div>
<div class="tf-inner">
<div class="tf-d1">
<v-echarts :opt=opt></v-echarts>
</div>
<div class="tf-d2">
<div class="d-r-item">
<img class="m1" src="../../../assets/images/EventInsight/ic_cbl.png" />
<div class="d1">
<span class="ss1">最大层级</span>
<span class="ss2">111</span>
</div>
</div>
<div class="d-r-item">
<img class="m1" src="../../../assets/images/EventInsight/ic_wbfg.png" />
<div class="d1">
<span class="ss1">微博覆盖人数</span>
<span class="ss2">222</span>
</div>
</div>
<div class="d-r-item">
<img class="m1" src="../../../assets/images/EventInsight/img_ljgj.png" />
<div class="d1">
<span class="ss1">总转发人数</span>
<span class="ss2">333</span>
</div>
</div>
</div>
</div>
</div>
</template>
<script>
export default {
name: "TransformMethod"
name: "TransformMethod",
data() {
return {
opt:{}
}
}
}
</script>
<style lang="less">
.tf-container {
width: 100%;
.tf-inner {
width: 100%;
height: calc(100% - 48px);
display: flex;
justify-content: flex-start;
.tf-d1 {
width: 680px;
height: 100%;
}
.tf-d2 {
.d-r-item {
width: 264px;
height: 109px;
display: flex;
justify-content: flex-start;
align-items: center;
.m1 {
width: 72px;
height: 72px;
}
.d1 {
margin-left: 12px;
.ss1 {
display: block;
font-size: 16px;
color: #93989e;
}
.ss2 {
display: block;
font-size: 20px;
font-family: Bebas;
color: #ffffff;
}
}
}
}
}
}
</style>

@ -11,24 +11,50 @@
<v-label-div title="微博传播趋势">
</v-label-div>
<div class="wct-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/WeiboDetails"
import {doStr} from "@/utils/gol/dataTool"
import createOpt from "./opt"
export default {
name: "weibo-communication-trend",
data() {
return {
////
modelStyle:{
left: '',
top: ''
},
modelShow: false,
ecbox:{//
width:618,
height:490
},
ecmodel:{//
width:300,
height:280
},
activeCol: 0,
//-*-//
load: false,
form: {
sBrand: "",
token: "",
},
opt: createOpt()
opt: createOpt(),
urlArr: []
}
},
created() {
@ -37,20 +63,67 @@ 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);
getCountTime0528(obj).then(res => {
let data = res.data || [];
let data = res.data || [];
let dx = []; //time
let ds = []; //value
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
});
}
@ -68,4 +141,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: 16,
@ -95,7 +106,10 @@ export default function createOpt(dx = [], ds = []) {
offset: 1,
color: 'rgba(0,0,0,0)'
}]),
}}
}},
markPoint: {
data: mark,
}
}
]
};

Loading…
Cancel
Save