prod
lily.zhang 3 years ago
parent 3dc36392ca
commit 91359511b3

@ -0,0 +1,86 @@
/*
* @Author: your name
* @Date: 2021-11-15 11:45:31
* @LastEditTime: 2021-11-15 19:22:04
* @LastEditors: Please set LastEditors
* @Description: 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
* @FilePath: /data-show/src/api/EventComparison/index.js
*/
import httpService from "@/request"
// 获取事件类型
export function getEventList(params) {
let obj = Object.assign({action: 'getEventList', sType: 'HotLibraryC'}, params)
return httpService({
url: `/api/v6.ashx`,
method: 'post',
data: obj,
headers: {
'content-type': 'application/x-www-form-urlencoded'
}
})
}
// 事件-事件传播渠道对比
export function getSourcetypeC(params) {
let obj = Object.assign({action: 'getSourcetypeC', sType: 'EventContrast', iContrastType: 3 }, params)
return httpService({
url: `/api/v6.ashx`,
method: 'post',
data: obj,
headers: {
'content-type': 'application/x-www-form-urlencoded'
}
})
}
// 事件-调性对比
export function getAffectionsC(params) {
let obj = Object.assign({action: 'getAffectionsC', sType: 'EventContrast', iContrastType: 3 }, params)
return httpService({
url: `/api/v6.ashx`,
method: 'post',
data: obj,
headers: {
'content-type': 'application/x-www-form-urlencoded'
}
})
}
// 事件-关联作者概况
export function getUserOverview0528C(params) {
let obj = Object.assign({action: 'getUserOverview0528C', sType: 'EventContrast', iContrastType: 3 }, params)
return httpService({
url: `/api/v6.ashx`,
method: 'post',
data: obj,
headers: {
'content-type': 'application/x-www-form-urlencoded'
}
})
}
// 事件-事件传播top媒体对比
export function getSourceTopCount0528C(params) {
let obj = Object.assign({action: 'getSourceTopCount0528C', sType: 'EventContrast', iContrastType: 3 }, params)
return httpService({
url: `/api/v6.ashx`,
method: 'post',
data: obj,
headers: {
'content-type': 'application/x-www-form-urlencoded'
}
})
}
// 事件-事件传播历程对比
export function getListC(params) {
let obj = Object.assign({action: 'getListC', sType: 'EventContrast', iContrastType: 3 }, params)
return httpService({
url: `/api/v6.ashx`,
method: 'post',
data: obj,
headers: {
'content-type': 'application/x-www-form-urlencoded'
}
})
}

@ -1,7 +1,7 @@
/*
* @Author: your name
* @Date: 2021-10-20 16:36:08
* @LastEditTime: 2021-11-05 15:53:08
* @LastEditTime: 2021-11-15 15:29:21
* @LastEditors: Please set LastEditors
* @Description: In User Settings Edit
* @FilePath: /data-show/src/api/comm/index.js
@ -131,3 +131,15 @@ export function getRecommendSeries(params) {
}
})
}
// 获取事件类型
export function getEventType(params) {
let obj = Object.assign({action: 'getEventType'}, params)
return httpService({
url: `/api/v6.ashx`,
method: 'post',
data: obj,
headers: {
'content-type': 'application/x-www-form-urlencoded'
}
})
}

@ -1,7 +1,7 @@
<!--
* @Author: your name
* @Date: 2021-10-09 18:16:42
* @LastEditTime: 2021-10-22 14:28:45
* @LastEditTime: 2021-11-15 15:38:11
* @LastEditors: Please set LastEditors
* @Description: In User Settings Edit
* @FilePath: /data-show/src/components/v-table/index.vue
@ -34,6 +34,8 @@ export default {
handler(val) {
if (val.length > 0) {
this.tbData = [...val];
} else {
this.tbData = []
}
},
immediate: true,

@ -119,7 +119,8 @@ export default {
this.setHeaderType(2);
} else if (
obj.key === "brandInsight" ||
obj.key === "modelInsight"
obj.key === "modelInsight" ||
obj.key === "eventInsight"
) {
this.setHeaderType(3);
} else {

@ -145,7 +145,8 @@ export default {
this.setHeaderType(2);
} else if (
obj.key === "brandInsight" ||
obj.key === "modelInsight"
obj.key === "modelInsight" ||
obj.key === "eventInsight"
) {
this.setHeaderType(3);
} else {

@ -125,7 +125,7 @@ export default {
handlerType(obj) {
if (obj.key === "marketingAnalysis") {
this.setHeaderType(2);
} else if(obj.key === 'brandInsight' || obj.key === 'modelInsight') {
} else if(obj.key === 'brandInsight' || obj.key === 'modelInsight' || obj.key === "eventInsight") {
this.setHeaderType(3);
} else {
this.setHeaderType(1);

@ -1,7 +1,7 @@
<!--
* @Author: your name
* @Date: 2021-10-18 10:42:29
* @LastEditTime: 2021-10-18 13:44:52
* @LastEditTime: 2021-11-15 16:12:04
* @LastEditors: Please set LastEditors
* @Description: In User Settings Edit
* @FilePath: /data-show/src/views/EventComparison/ec-d1/index.vue
@ -9,38 +9,28 @@
<template>
<div class="ec-d1">
<v-label-div title="切换事件">
<span class="iconfont icon-guanbi v-m-close" @click="handlerClose"></span>
</v-label-div>
<div class="ec-d1-inner">
<div class="ec-d1-dd1">
<div class="d1">新车上市</div>
<div class="d2">
<div class="d2-d1">宠爱 东风日产启辰重庆驾练营公益项目重庆车asdasdasdasdasd</div>
<div class="d2-d2">
<span class="s1">开始时间</span><span class="s2">2021-05-30 20:20:24</span>
<span class="s1" style="margin-left: 40px">信息总量</span><span class="s2" style="margin-left: 8px">76446</span>
<template v-for="(item,index) in list">
<div :key="index" style="display: flex;justify-content: flex-start;">
<div class="ec-d1-dd1">
<div class="d1">{{item.events_type}}</div>
<div class="d2">
<div class="d2-d1">{{item.events_title}}</div>
<div class="d2-d2">
<span class="s1">开始时间</span><span class="s2">{{item.minSourcetime}}</span>
<span class="s1" style="margin-left: 40px">信息总量</span><span class="s2" style="margin-left: 8px">{{item.events_count}}</span>
</div>
</div>
<div class="ec-btn" v-if="item.isDel" @click="del(index)">
删除事件
</div>
</div>
</div>
<div class="ec-btn">
删除事件
</div>
</div>
<div class="ec-d1-dd2">
<img src="../../../assets/images/comm/img_vs.png" />
</div>
<div class="ec-d1-dd1">
<div class="dx1">新车上市</div>
<div class="d2">
<div class="d2-d1">今日长安福特在重庆车展主场以全明星阵容开启新纪元</div>
<div class="d2-d2">
<span class="s1">开始时间</span><span class="s2">2021-05-30 20:20:24</span>
<span class="s1" style="margin-left: 40px">信息总量</span><span class="s2" style="margin-left: 8px">76446</span>
<div class="ec-d1-dd2" v-if="index % 2 == 0">
<img src="../../../assets/images/comm/img_vs.png" />
</div>
</div>
<div class="ec-btn">
删除事件
</div>
</div>
</template>
</div>
</div>
</template>
@ -48,12 +38,53 @@
<script>
export default {
name: "ec-top",
data() {
return {
list: [
{
events_id: "",
events_typ: "",
events_title: "",
minSourcetime: "",
events_count: "",
isDel: false
},
{
events_id: "",
events_typ: "",
events_title: "",
minSourcetime: "",
events_count: "",
isDel: false
},
],
};
},
created() {
this.initData()
},
methods: {
handlerClose() {
this.$emit("close")
initData() {
if(this.getEComparison.length > 0) {
this.list = this.getEComparison;
this.$emit('del', this.list)
}
},
del(n) {
let arr = [...this.list];
let obj = {
events_id: "",
events_typ: "",
events_title: "",
minSourcetime: "",
events_count: "",
isDel: false
}
arr[n] = {...obj};
this.list = arr;
this.$emit('del', this.list)
}
}
},
};
</script>

@ -1,7 +1,7 @@
<!--
* @Author: your name
* @Date: 2021-10-18 10:56:38
* @LastEditTime: 2021-10-18 12:01:48
* @LastEditTime: 2021-11-15 16:18:25
* @LastEditors: Please set LastEditors
* @Description: In User Settings Edit
* @FilePath: /data-show/src/views/EventComparison/eventRecommendationList/index.vue
@ -12,49 +12,40 @@
<v-label-div title="事件推荐列表">
</v-label-div>
<div class="erl-inner">
<a-form-model layout="inline" :model="formInline" @submit="handleSubmit">
<a-form-model layout="inline" :model="formInline">
<a-form-model-item label="品牌选择">
<a-select v-model="formInline.region1" placeholder="请选择" style="width: 240px;">
<a-select-option value="shanghai">
Zone one
</a-select-option>
<a-select-option value="beijing">
Zone two
<a-select v-model="formInline.sBrand" :filter-option="filterOption" placeholder="品牌选择" style="width: 14rem;" show-search allowClear @change="brandChange">
<a-select-option :value="item.brandname" v-for="item in brands" :key="item.brandid">
{{item.brandname}}
</a-select-option>
</a-select>
</a-form-model-item>
<a-form-model-item label="车型选择">
<a-select v-model="formInline.region2" placeholder="请选择" style="width: 240px;">
<a-select-option value="shanghai">
Zone one
</a-select-option>
<a-select-option value="beijing">
Zone two
<a-select v-model="formInline.sSeriesName" placeholder="车型选择" style="width: 14rem;" allowClear>
<a-select-option v-for="(item,index) in models" :key="index" :value="item.name">
{{item.name}}
</a-select-option>
</a-select>
</a-form-model-item>
<a-form-model-item label="事件类型">
<a-select v-model="formInline.region3" placeholder="请选择" style="width: 240px;">
<a-select-option value="shanghai">
Zone one
</a-select-option>
<a-select-option value="beijing">
Zone two
<a-select v-model="formInline.sQuDao" placeholder="事件类型" style="width: 14rem;">
<a-select-option :value="item.key" v-for="(item,index) in quDaos" :key="index">
{{item.value}}
</a-select-option>
</a-select>
</a-form-model-item>
<a-form-model-item label="关键词语">
<a-input v-model="formInline.user" placeholder="Username" style="width: 240px;">
<a-input v-model="formInline.sTitle" placeholder="关键词" style="width: 14rem;">
</a-input>
</a-form-model-item>
<a-form-model-item>
<a-button type="primary" style="margin-left: 40px">搜索</a-button>
<a-button style="margin-left: 24px">重置</a-button>
<a-button type="primary" style="margin-left: 1.4rem" :loading="btnLoading" @click="handlerSearch"></a-button>
<a-button style="margin-left: 1.2rem" @click="handlerR"></a-button>
</a-form-model-item>
</a-form-model>
<v-table :columns="columns" :data="tbData" table-layout= 'fixed' style="margin-top: 24px" :pagination="pagination" :rowKey="(record,index)=>{return index}">
<span slot="action">
<a-button>添加</a-button>
<v-table :columns="columns" :data="tbData" table-layout='fixed' style="margin-top: 1.3rem" :pagination="pagination" :rowKey="(record,index)=>{return index}" @change="handlerPage">
<span slot="action" slot-scope="text, record">
<a-button @click="handlerAdd(record)"></a-button>
</span>
</v-table>
</div>
@ -62,67 +53,83 @@
</template>
<script>
import { getUserBrand,getUserSeriesName, getEventType } from "@/api/comm";
import {getEventList} from "@/api/EventComparison"
import {arrDup} from "@/utils/gol/dataTool"
export default {
name: "eventRecommendationList",
data() {
return {
labelCol: { span: 4 },
wrapperCol: { span: 14 },
brands: [],
models: [],
quDaos: [],
btnLoading: false,
formInline: {
region1: "",
region2: "",
region3: "",
user: "",
sBrand: undefined,
sQuDao: undefined,
sSeriesName: undefined,
sTitle: "",
iPageIndex: 1,
iPageSize: 20,
token: "",
},
pagination: {
"show-total": total => `${total}`
pagination: {
current: 1,
total: 0,
pageSize: 20,
"show-total": (total) => `${total}`,
},
columns: [
{
title: "事件类型",
dataIndex: "a",
key: "a",
dataIndex: "events_type",
key: "events_type",
},
{
title: "事件标题",
dataIndex: "b",
key: "b",
width: 230,
dataIndex: "events_title",
ellipsis: true,
key: "events_title",
},
{
title: "相关品牌",
dataIndex: "c",
key: "c",
dataIndex: "events_brand",
key: "events_brand",
},
{
title: "相关车型",
dataIndex: "d",
key: "d",
dataIndex: "events_series",
key: "events_series",
},
{
title: "开始时间",
dataIndex: "e",
key: "e",
dataIndex: "minSourcetime",
width: 160,
key: "minSourcetime",
},
{
title: "文章篇数(篇)",
dataIndex: "f",
key: "f",
dataIndex: "events_count",
key: "events_count",
},
{
title: "传播周期(天)",
dataIndex: "g",
key: "g",
},
{
title: "信息条数(条)",
dataIndex: "h",
key: "h",
},
{
title: "传播人数(人)",
dataIndex: "j",
key: "j",
dataIndex: "days",
key: "days",
},
// {
// title: "()",
// dataIndex: "h",
// key: "h",
// },
// {
// title: "()",
// dataIndex: "j",
// key: "j",
// },
{
title: "操作",
key: "action",
@ -130,23 +137,137 @@ export default {
scopedSlots: { customRender: "action" },
},
],
tbData: [
tbData: [],
chooseList: [
{
events_id: "",
events_typ: "",
events_title: "",
minSourcetime: "",
events_count: "",
isDel: false
},
{
a: '新车上市',
b: '2021广州车展现场更多你没见过的…',
c: '奥迪',
d: '奥迪A4',
e: '2021-05-30 20:20:24',
f: '123',
g: '123',
h: '7766',
j: '7766'
}
events_id: "",
events_typ: "",
events_title: "",
minSourcetime: "",
events_count: "",
isDel: false
},
]
};
},
created() {
this.getQuDao();
this.getBrands();
this.getData()
},
methods: {
handleSubmit() {},
//
getData() {
this.formInline.token = this.getToken;
let obj = Object.assign({}, this.getCtime2, this.formInline);
getEventList(obj).then(res => {
let data = res.data;
this.pagination.total = res.totalNum;
this.tbData = data;
this.btnLoading = false;
})
},
//
getBrands() {
if (!this.getToken) return;
let obj = {};
return new Promise((resolve, reject) => {
obj.token = this.getToken;
getUserBrand(obj)
.then((res) => {
let data = res.data;
let arr = arrDup(data, 'brandname')
this.brands = arr;
resolve(true);
})
.catch(() => {
reject(false);
});
});
},
//
filterOption(input, option) {
return (
option.componentOptions.children[0].text
.toLowerCase()
.indexOf(input.toLowerCase()) >= 0
);
},
//
brandChange(val) {
if(val) {
this.getUserSeriesName(val);
} else {
this.models = [];
}
},
//
getUserSeriesName(brandName) {
let obj = {
token: this.getToken,
sBrandName: brandName
}
getUserSeriesName(obj).then(res => {
let data = res.data || [];
this.models = data;
})
},
//
getQuDao() {
getEventType().then(res => {
let data = res.data || [];
this.quDaos = data;
})
},
//
handlerPage(p) {
let iPageIndex = p.current;
this.formInline.iPageIndex = iPageIndex;
this.pagination.current = iPageIndex;
this.getData();
},
//
handlerSearch() {
this.formInline.iPageIndex = 1;
this.pagination.current = 1;
this.pagination.total = 0;
this.btnLoading = true;
this.getData();
},
//
handlerR() {
let obj = {
sBrand: undefined,
sQuDao: undefined,
sSeriesName: undefined,
sTitle: "",
iPageIndex: 1,
iPageSize: 20,
}
this.formInline = {...obj};
this.handlerSearch()
},
//
handlerAdd(row) {
let x = this.chooseList.findIndex(ele => ele.events_id === row.events_id);
if(x != -1) return
let arr = [...this.chooseList];
let obj = Object.assign({}, row);
let n = this.chooseList.findIndex(ele => !ele.events_id);
obj.isDel = true;
arr[n] = {...obj};
this.chooseList = arr;
this.$emit('change', this.chooseList);
}
},
};
</script>
@ -163,7 +284,8 @@ export default {
padding: 16px;
}
}
/deep/ .ant-table-body{
height: 392px;
/deep/ .ant-table-body {
height: 400px;
overflow: auto;
}
</style>

@ -1,20 +1,20 @@
<!--
* @Author: your name
* @Date: 2021-10-18 09:55:16
* @LastEditTime: 2021-10-27 09:08:08
* @LastEditTime: 2021-11-15 16:16:38
* @LastEditors: Please set LastEditors
* @Description: In User Settings Edit
* @FilePath: /data-show/src/views/EventComparison/index.vue
-->
<template>
<div class="ise-container" v-show="show">
<div class="ise-container">
<div class="ec-outter">
<ec-top @close="handlerClose"></ec-top>
<eventRecommendationList></eventRecommendationList>
<ec-top ref="ect" @del="handlerDel"></ec-top>
<eventRecommendationList ref="erdl" @change="chooseChange"></eventRecommendationList>
<div align="center" class="ec-footer">
<img src="../../assets/images/EventInsight/img_sjdb_nor.png" v-if="!status"/>
<img src="../../assets/images/EventInsight/img_sjdb_sel.png" v-if="status"/>
<!-- <img src="../../assets/images/EventInsight/img_sjdb_nor.png"/> -->
<img src="../../assets/images/EventInsight/img_sjdb_sel.png" @click="handlerBegin"/>
</div>
</div>
</div>
@ -25,35 +25,38 @@ import ecTop from "./ec-top"
import eventRecommendationList from "./eventRecommendationList"
export default {
name: "iSwitchEvent",
props: {
visible: {
type: Boolean,
default: false
}
},
watch: {
visible: {
handler(val) {
this.show = val ? true : false;
},
immediate: true
}
},
components: {
ecTop,
eventRecommendationList //
},
data() {
return {
show: false,
status: 0
subList: []
}
},
methods: {
handlerClose() {
this.show = false;
this.$emit("update:visible", this.show);
}
//
chooseChange(arr) {
this.$refs.ect.list = arr;
this.subList = arr;
},
//
handlerDel(arr) {
this.$nextTick(() => {
this.$refs.erdl.chooseList = arr;
this.subList = arr;
})
},
//
handlerBegin() {
if(this.subList.length < 2) {
this.$message.warning('至少2个事件进行对比');
return
}
this.setEComparison(this.subList);
this.$router.push({path: '/eventComparison'})
}
}
};
</script>
@ -61,22 +64,15 @@ export default {
<style lang="less" scoped>
.ise-container {
width: 100%;
height: 100%;
position: fixed;
z-index: 1000;
top: 0px;
left: 0px;
height: auto;
position: relative;
background-color: rgba(0, 0, 0, 0.45);
overflow: auto;
}
.ec-outter {
position: absolute;
padding: 0px 16px 16px 16px;
width: auto;
height: auto;
left: 50%;
transform: translate(-50%, 90px);
background: #010b19;
.ec-footer {
padding: 40px 0px;

@ -1,7 +1,7 @@
/*
* @Author: your name
* @Date: 2021-10-12 13:56:13
* @LastEditTime: 2021-11-11 10:44:35
* @LastEditTime: 2021-11-15 15:51:22
* @LastEditors: Please set LastEditors
* @Description: In User Settings Edit
* @FilePath: /data-show/src/mixins/index.js
@ -86,10 +86,10 @@ export default {
}
},
computed: {
...mapGetters(['getZoom', 'getLoading','getToken', 'getUser', 'getAccount', 'getCommTime', 'getCtime', 'getCtime2', 'getHeaderType', 'getBrand', 'getModel','getSComparison','getBComparison', 'getMComparison'])
...mapGetters(['getZoom', 'getLoading','getToken', 'getUser', 'getAccount', 'getCommTime', 'getCtime', 'getCtime2', 'getHeaderType', 'getBrand', 'getModel','getSComparison','getBComparison', 'getMComparison', 'getEComparison'])
},
methods: {
...mapActions(["setZoom", 'setLoading', 'setToken', 'setUser', 'setAccount', 'setCommTime', 'setCtime', 'setCtime2', 'setHeaderType', 'setBrand', 'setModel', 'setSComparison','setBComparison', 'setMComparison']),
...mapActions(["setZoom", 'setLoading', 'setToken', 'setUser', 'setAccount', 'setCommTime', 'setCtime', 'setCtime2', 'setHeaderType', 'setBrand', 'setModel', 'setSComparison','setBComparison', 'setMComparison', 'setEComparison']),
// 获取当前日期时间
getDatetime() {
let now = new Date();

@ -1,7 +1,7 @@
/*
* @Author: your name
* @Date: 2021-10-08 09:26:29
* @LastEditTime: 2021-11-09 18:12:40
* @LastEditTime: 2021-11-15 09:33:08
* @LastEditors: Please set LastEditors
* @Description: In User Settings Edit
* @FilePath: /data-show/src/router/index.js
@ -37,6 +37,7 @@ import ModelEventDetails from "@/views/ModelEventDetails"
import ModelWeiboDetails from "@/views/ModelWeiboDetails"
import ModelForumDetails from "@/views/ModelForumDetails"
import ModelComparison from "@/views/ModelComparison"
import iSwitchEvent from "@/lycomponents/iSwitchEvent"
const router = [
{
path: '/login',
@ -109,6 +110,12 @@ const router = [
desc: "事件洞察",
component: EventInsight
},
{
path: '/iSwitchEvent',
name: "iSwitchEvent",
desc: "事件洞察-切换事件",
component: iSwitchEvent
},
{
path: '/eventComparison',
name: "eventComparison",

@ -1,7 +1,7 @@
/*
* @Author: your name
* @Date: 2021-10-12 13:36:49
* @LastEditTime: 2021-11-09 18:07:52
* @LastEditTime: 2021-11-15 15:46:52
* @LastEditors: Please set LastEditors
* @Description: In User Settings Edit
* @FilePath: /data-show/src/store/actions.js
@ -49,5 +49,8 @@ const actions = {
setMComparison: ({commit}, log) => {
commit('setMComparison', log)
},
setEComparison: ({commit}, log) => {
commit('setEComparison', log)
},
}
export default actions

@ -1,7 +1,7 @@
/*
* @Author: your name
* @Date: 2021-10-12 13:37:06
* @LastEditTime: 2021-11-09 18:09:19
* @LastEditTime: 2021-11-15 15:47:44
* @LastEditors: Please set LastEditors
* @Description: In User Settings Edit
* @FilePath: /data-show/src/store/getters.js
@ -49,5 +49,8 @@ const getters = {
getMComparison(state) {
return state.mComparison
},
getEComparison(state) {
return state.eComparison
},
}
export default getters

@ -1,7 +1,7 @@
/*
* @Author: your name
* @Date: 2021-10-12 13:37:35
* @LastEditTime: 2021-11-09 18:09:44
* @LastEditTime: 2021-11-15 15:47:21
* @LastEditors: Please set LastEditors
* @Description: In User Settings Edit
* @FilePath: /data-show/src/store/mutations.js
@ -76,6 +76,11 @@ const mutations = {
let str = JSON.stringify(log);
sessionStorage.setItem('mComparison', str);
},
setEComparison: (state, log) => {
state.eComparison = log;
let str = JSON.stringify(log);
sessionStorage.setItem('eComparison', str);
},
}

@ -1,7 +1,7 @@
/*
* @Author: your name
* @Date: 2021-10-12 13:37:50
* @LastEditTime: 2021-11-09 18:07:14
* @LastEditTime: 2021-11-15 15:46:12
* @LastEditors: Please set LastEditors
* @Description: In User Settings Edit
* @FilePath: /data-show/src/store/state.js
@ -21,6 +21,7 @@ const state = {
model: JSON.parse(sessionStorage.getItem('model')) || {},
bComparison: JSON.parse(sessionStorage.getItem('bComparison')) || [],
sComparison: JSON.parse(sessionStorage.getItem('sComparison')) || [],
mComparison: JSON.parse(sessionStorage.getItem('mComparison')) || [],
mComparison: JSON.parse(sessionStorage.getItem('mComparison')) || [],
eComparison: JSON.parse(sessionStorage.getItem('eComparison')) || []
}
export default state;

@ -56,6 +56,7 @@
border-style: none !important;
position:sticky !important;
top: 0 !important;
z-index: 1000 !important;
}
.evenRow{
background: #010e1f;
@ -260,3 +261,12 @@ li.ant-calendar-time-picker-select-option-selected {
.ant-tooltip-inner {
background: #08182e !important;
}
.ant-table-content {
position: relative !important;
}
.ant-table-placeholder {
position: absolute !important;
width: 100% !important;
left: 0px !important;
top: 50px;
}

@ -1,7 +1,7 @@
/*
* @Author: your name
* @Date: 2021-10-29 13:29:26
* @LastEditTime: 2021-11-12 14:50:47
* @LastEditTime: 2021-11-15 11:02:11
* @LastEditors: Please set LastEditors
* @Description: In User Settings Edit
* @FilePath: /data-show/src/utils/gol/dataTool.js
@ -97,4 +97,17 @@ export function doStr(str, n) {
}
}
return txt;
}
// 数组对象去重复
export function arrDup(arr, key) {
let result = [];
let obj = {};
for(let i = 0; i < arr.length; i++) {
if(!obj[arr[i][key]]) {
result.push(arr[i]);
obj[arr[i][key]]= true;
}
}
return result
}

@ -0,0 +1,148 @@
<!--
* @Author: your name
* @Date: 2021-10-18 13:35:07
* @LastEditTime: 2021-10-20 09:18:01
* @LastEditors: Please set LastEditors
* @Description: In User Settings Edit
* @FilePath: /data-show/src/views/EventComparison/index.vue
-->
<template>
<div class="d-container">
<div class="ec-outter">
<ecx-top></ecx-top>
<div class="ece-d1">
<v-label-div title="对比数据">
</v-label-div>
<div class="dd1">
<comparisonOfEventDisseminationChannels></comparisonOfEventDisseminationChannels>
<etc-cc></etc-cc>
</div>
<div class="dd2">
<profileOfAssociatedAuthorsOne></profileOfAssociatedAuthorsOne>
<eventSTM></eventSTM>
</div>
<comparisonOfEventpp></comparisonOfEventpp>
<positiveAndNegativeWordCloudContrast></positiveAndNegativeWordCloudContrast>
</div>
<div class="ece-d2">
<v-label-div title="事件微博对比">
</v-label-div>
<div class="dd1">
<CWIEC></CWIEC>
<cotwiEc></cotwiEc>
<wbcEc></wbcEc>
<wtcEc></wtcEc>
</div>
<div class="dd2">
<uadEc></uadEc>
<wupEc></wupEc>
</div>
</div>
<div class="ece-d3">
<v-label-div title="事件尾翼对比">
</v-label-div>
<div class="dd1">
<tirEc></tirEc>
<inbcEc></inbcEc>
</div>
<ttmEc></ttmEc>
</div>
</div>
</div>
</template>
<script>
import ecxTop from "./ecx-top";
import comparisonOfEventDisseminationChannels from "./comparisonOfEventDisseminationChannels";
import profileOfAssociatedAuthorsOne from "./profileOfAssociatedAuthorsOne";
import etcCc from "./etc-cc";
import eventSTM from "./eventSTM";
import comparisonOfEventpp from "./comparisonOfEventpp";
import positiveAndNegativeWordCloudContrast from "./positiveAndNegativeWordCloudContrast";
import CWIEC from "./CWIEC";
import cotwiEc from "./cotwiEc";
import wbcEc from "./wbcEc";
import wtcEc from "./wtcEc";
import uadEc from "./uadEc";
import wupEc from "./wupEc";
import tirEc from "./tirEc";
import inbcEc from "./inbcEc"
import ttmEc from "./ttmEc"
export default {
name: "EventC",
components: {
ecxTop, //
comparisonOfEventDisseminationChannels, //
etcCc, //
profileOfAssociatedAuthorsOne, //
eventSTM, // TOP
comparisonOfEventpp, //
positiveAndNegativeWordCloudContrast, //
CWIEC, //
cotwiEc, //
wbcEc, // V
wtcEc, //
uadEc, //
wupEc, //
tirEc, //
inbcEc, //
ttmEc // TOP
},
data() {
return {
se: {
visible: false,
},
};
},
};
</script>
<style lang="less" scoped>
.ec-outter {
padding: 0px 16px 16px 16px;
.ece-d1 {
width: 100%;
height: auto;
border: 2px solid #0f2a4d;
margin-top: 16px;
.dd1 {
width: 100%;
display: flex;
justify-content: flex-start;
}
.dd2 {
width: 100%;
display: flex;
justify-content: flex-start;
}
}
.ece-d2 {
width: 100%;
height: auto;
border: 2px solid #0f2a4d;
margin-top: 16px;
.dd1 {
width: 100%;
display: flex;
justify-content: flex-start;
}
.dd2 {
width: 100%;
display: flex;
justify-content: flex-start;
}
}
.ece-d3 {
width: 100%;
height: auto;
border: 2px solid #0f2a4d;
margin-top: 16px;
.dd1 {
width: 100%;
display: flex;
justify-content: flex-start;
}
}
}
</style>

@ -1,7 +1,7 @@
<!--
* @Author: your name
* @Date: 2021-10-18 14:06:09
* @LastEditTime: 2021-10-18 14:25:12
* @LastEditTime: 2021-11-15 17:15:31
* @LastEditors: Please set LastEditors
* @Description: In User Settings Edit
* @FilePath: /data-show/src/views/EventComparison/comparativeData/index.vue
@ -17,12 +17,86 @@
</template>
<script>
import {getSourcetypeC} from "@/api/EventComparison"
import createOpt from "./opt"
export default {
name: "comparisonOfEventDisseminationChannels",
data() {
return {
opt: createOpt()
form: {
token: "",
sRele: ""
},
opt: {}
}
},
created() {
this.initData()
},
methods: {
initData() {
this.form.token = this.getToken;
let arr = [];
this.getEComparison.forEach(ele => {
arr.push(ele.events_id);
})
this.form.sRele = arr.toString();
this.getData()
},
getData() {
let obj = Object.assign({}, this.getCtime2, this.form);
getSourcetypeC(obj).then(res => {
let data = res.data || [];
let obj = {};
data.forEach(ele => {
let Data = ele.Data || {};
let Name = ele.Name;
for(let key in Data) {
if(obj[key]) {
let arr = [...obj[key]];
let n = arr.findIndex(e => e.key == Name);
if(n === -1) {
let o = {key: Name, value: [Data[key]]};
arr.push(o)
} else {
let row = arr[n];
row.value.push(Data[key]);
}
obj[key] = arr;
} else {
let arr = []
let o = {key: Name, value: [Data[key]]};
arr.push(o);
obj[key] = arr;
}
}
})
this.doDataToOpt(obj)
})
},
doDataToOpt(obj = {}) {
let dx = [];
let ds = [];
for(let key in obj) {
dx.push(key);
let arr = obj[key] || [];
arr.forEach(ele => {
let n = ds.findIndex(e => e.key === ele.key)
if(n === -1) {
let val = ele.value.toString();
let o = {
key: ele.key,
value: [val]
}
ds.push(o)
} else {
let row = ds[n];
let val = ele.value.toString()
row.value.push(val)
}
})
}
this.opt = createOpt(dx, ds);
}
}
}

@ -1,12 +1,31 @@
/*
* @Author: your name
* @Date: 2021-10-09 11:01:19
* @LastEditTime: 2021-10-18 14:27:55
* @LastEditTime: 2021-11-15 17:23:13
* @LastEditors: Please set LastEditors
* @Description: In User Settings Edit
* @FilePath: /data-show/src/views/Index/spreadTheSound/opt.js
*/
export default function createOpt() {
import { bigNumberTransform } from "@/utils/gol/dataTool"
function createData(ds = []) {
let arr = []
ds.forEach(ele => {
let obj = {
name: ele.key,
type: 'bar',
stack: 'total',
barWidth: 24,
emphasis: {
focus: 'series'
},
data: ele.value
}
arr.push(obj)
})
return arr
}
export default function createOpt(dx = [], ds = []) {
let data = createData(ds);
return {
grid: {
left: 16,
@ -27,10 +46,16 @@ export default function createOpt() {
},
legend: {
textStyle: { //图例文字的样式
color: '#fff'
color: '#fff',
fontSize: 10
},
y: 10,
x: 16
x: 16,
itemWidth: 12,
itemHeight: 12,
formatter: function (name) {
return name.length > 5 ? name.substr(0, 15) + "..." : name;
}
},
xAxis: {
type: 'category',
@ -43,7 +68,7 @@ export default function createOpt() {
color: "#fff",
},
},
data: ['微信', '微博', '论坛', '新闻', 'APP', '其他']
data: dx
},
yAxis: {
type: 'value',
@ -53,6 +78,12 @@ export default function createOpt() {
color: "#fff",
},
},
axisLabel: {
formatter: (value) => {
let str = bigNumberTransform(value);
return str;
}
},
splitLine: {
lineStyle: {
type: "dashed", // y轴分割线类型
@ -60,29 +91,7 @@ export default function createOpt() {
},
},
},
series: [
{
name: '事件1',
type: 'bar',
stack: 'total',
barWidth: 24,
emphasis: {
focus: 'series'
},
data: [320, 302, 301, 334, 390, 600]
},
{
name: '事件2',
type: 'bar',
stack: 'total',
barWidth: 24,
emphasis: {
focus: 'series'
},
data: [120, 132, 101, 134, 90, 130]
}
]
series: data
}
}

@ -1,7 +1,7 @@
<!--
* @Author: your name
* @Date: 2021-10-18 16:03:35
* @LastEditTime: 2021-10-19 09:16:07
* @LastEditTime: 2021-11-15 19:20:39
* @LastEditors: Please set LastEditors
* @Description: In User Settings Edit
* @FilePath: /data-show/src/views/EventComparison/comparisonOfEventpp/index.vue
@ -10,191 +10,76 @@
<div class="coe-outter">
<v-label-div title="事件传播历程对比" :showLine="false" :eStyle="{'border-style': 'none'}">
</v-label-div>
<div class="coe-ts">
<div class="coe-ts" v-for="(item,index) in list" :key="index">
<div class="coe-ts-d1"><img src="../../../assets/images/EventInsight/img_zuo.png" /></div>
<span class="coe-ts-s1">事件一传播历程</span>
<span class="coe-ts-s1" :style="{color: colors[index]}">{{item.Name|doStr(10)}}传播历程</span>
<div class="coe-ts-d2">
<vue-scroll>
<div class="dd1-label">
<div class="d1">新车上市</div>
<div class="d1">{{getEComparison[index].events_type}}</div>
<div class="d2">状态事件发生</div>
<div class="d3">2021-06-01 11:26</div>
<div class="d3">{{getEComparison[index].minSourcetime}}</div>
</div>
<div class="dd1-item">
<img class="m1" :src="m1" style="transform:rotate(180deg);margin-top: 140px" />
<template v-for="(it,n) in item.Data">
<div class="dd1-item" :key="it._id">
<img class="m1" :src="n%2 != 0 ? m1 : m2" :style="n%2 != 0 ? 'transform:rotate(180deg);margin-top: 9rem' : 'transform:rotate(180deg)'" />
<div class="dd1-fen"></div>
<div class="dt-d1" style="margin-top: 158px">
<div class="d1" style="color: #CC7733">东莞奥迪Q5L可以试乘降价达</div>
<div class="d2">今日头条</div>
<div class="d3">2021-06-01 11:26</div>
</div>
</div>
<div class="dd1-item">
<img class="m1" :src="m1" />
<div class="dd1-fen"></div>
<div class="dt-d1">
<div class="d1" style="color: #CC7733">东莞奥迪Q5L可以试乘降价达</div>
<div class="d2">易车</div>
<div class="d3">2021-06-01 11:28</div>
</div>
</div>
<div class="dd1-item">
<img class="m1" :src="m2" style="margin-top: 140px" />
<div class="dd1-fen"></div>
<div class="dt-d1" style="margin-top: 158px">
<div class="d1" style="color: #3373CC">东莞奥迪Q5L可以试乘降价达</div>
<div class="d2">今日头条</div>
<div class="d3">2021-06-01 11:26</div>
</div>
</div>
<div class="dd1-item">
<img class="m1" :src="m2" style="transform:rotate(180deg);" />
<div class="dd1-fen"></div>
<div class="dt-d1">
<div class="d1" style="color: #3373CC">东莞奥迪Q5L可以试乘降价达</div>
<div class="d2">海报新闻</div>
<div class="d3">2021-06-01 11:28</div>
</div>
</div>
<div class="dd1-item">
<img class="m1" :src="m1" style="transform:rotate(180deg); margin-top: 140px" />
<div class="dd1-fen"></div>
<div class="dt-d1" style="margin-top: 158px">
<div class="d1" style="color: #CC7733">东莞奥迪Q5L可以试乘降价达</div>
<div class="d2">今日头条</div>
<div class="d3">2021-06-01 11:26</div>
</div>
</div>
<div class="dd1-item">
<img class="m1" :src="m2" style="transform:rotate(180deg);" />
<div class="dd1-fen"></div>
<div class="dt-d1">
<div class="d1" style="color: #3373CC">东莞奥迪Q5L可以试乘降价达</div>
<div class="d2">海报新闻</div>
<div class="d3">2021-06-01 11:28</div>
</div>
</div>
<div class="dd1-item">
<img class="m1" :src="m1" style="transform:rotate(180deg);margin-top: 140px" />
<div class="dd1-fen"></div>
<div class="dt-d1" style="margin-top: 158px">
<div class="d1" style="color: #CC7733">东莞奥迪Q5L可以试乘降价达</div>
<div class="d2">今日头条</div>
<div class="d3">2021-06-01 11:26</div>
</div>
</div>
<div class="dd1-item">
<img class="m1" :src="m2" style="transform:rotate(180deg);" />
<div class="dd1-fen"></div>
<div class="dt-d1">
<div class="d1" style="color: #3373CC">东莞奥迪Q5L可以试乘降价达</div>
<div class="d2">海报新闻</div>
<div class="d3">2021-06-01 11:28</div>
<div class="dt-d1" :style="n%2 != 0 ? 'margin-top: 9.1rem' : ''">
<div class="d1" :style="n%2 != 0 ? 'color: #CC7733' : 'color: #3373CC'" @click="openUrl(it._source.url)">{{it._source.title|doStr(30)}}</div>
<div class="d2">{{it._source.firstweb}}</div>
<div class="d3">{{it._source.firsttime}}</div>
</div>
</div>
</template>
</vue-scroll>
</div>
<div class="coe-ts-d1"><img src="../../../assets/images/EventInsight/img_xan.png" /></div>
</div>
<div class="coe-ts">
<div class="coe-ts-d1"><img src="../../../assets/images/EventInsight/img_zuo.png" /></div>
<span class="coe-ts-s1" style="color: #54BF93 ">事件二传播历程</span>
<div class="coe-ts-d2">
<vue-scroll>
<div class="dd1-label">
<div class="d1x">新车上市</div>
<div class="d2">状态事件发生</div>
<div class="d3">2021-06-01 11:26</div>
</div>
<div class="dd1-item">
<img class="m1" :src="m1" style="transform:rotate(180deg);margin-top: 140px" />
<div class="dd1-fen"></div>
<div class="dt-d1" style="margin-top: 158px">
<div class="d1" style="color: #CC7733">东莞奥迪Q5L可以试乘降价达</div>
<div class="d2">今日头条</div>
<div class="d3">2021-06-01 11:26</div>
</div>
</div>
<div class="dd1-item">
<img class="m1" :src="m1" />
<div class="dd1-fen"></div>
<div class="dt-d1">
<div class="d1" style="color: #CC7733">东莞奥迪Q5L可以试乘降价达</div>
<div class="d2">易车</div>
<div class="d3">2021-06-01 11:28</div>
</div>
</div>
<div class="dd1-item">
<img class="m1" :src="m2" style="margin-top: 140px" />
<div class="dd1-fen"></div>
<div class="dt-d1" style="margin-top: 158px">
<div class="d1" style="color: #3373CC">东莞奥迪Q5L可以试乘降价达</div>
<div class="d2">今日头条</div>
<div class="d3">2021-06-01 11:26</div>
</div>
</div>
<div class="dd1-item">
<img class="m1" :src="m2" style="transform:rotate(180deg);" />
<div class="dd1-fen"></div>
<div class="dt-d1">
<div class="d1" style="color: #3373CC">东莞奥迪Q5L可以试乘降价达</div>
<div class="d2">海报新闻</div>
<div class="d3">2021-06-01 11:28</div>
</div>
</div>
<div class="dd1-item">
<img class="m1" :src="m1" style="transform:rotate(180deg); margin-top: 140px" />
<div class="dd1-fen"></div>
<div class="dt-d1" style="margin-top: 158px">
<div class="d1" style="color: #CC7733">东莞奥迪Q5L可以试乘降价达</div>
<div class="d2">今日头条</div>
<div class="d3">2021-06-01 11:26</div>
</div>
</div>
<div class="dd1-item">
<img class="m1" :src="m2" style="transform:rotate(180deg);" />
<div class="dd1-fen"></div>
<div class="dt-d1">
<div class="d1" style="color: #3373CC">东莞奥迪Q5L可以试乘降价达</div>
<div class="d2">海报新闻</div>
<div class="d3">2021-06-01 11:28</div>
</div>
</div>
<div class="dd1-item">
<img class="m1" :src="m1" style="transform:rotate(180deg);margin-top: 140px" />
<div class="dd1-fen"></div>
<div class="dt-d1" style="margin-top: 158px">
<div class="d1" style="color: #CC7733">东莞奥迪Q5L可以试乘降价达</div>
<div class="d2">今日头条</div>
<div class="d3">2021-06-01 11:26</div>
</div>
</div>
<div class="dd1-item">
<img class="m1" :src="m2" style="transform:rotate(180deg);" />
<div class="dd1-fen"></div>
<div class="dt-d1">
<div class="d1" style="color: #3373CC">东莞奥迪Q5L可以试乘降价达</div>
<div class="d2">海报新闻</div>
<div class="d3">2021-06-01 11:28</div>
</div>
</div>
</vue-scroll>
</div>
<div class="coe-ts-d1"><img src="../../../assets/images/EventInsight/img_xan.png" /></div>
</div>
</div>
</template>
<script>
import {getListC} from "@/api/EventComparison"
export default {
name: "comparisonOfEventpp",
data() {
return {
form: {
token: "",
sRele: ""
},
colors: ['#3373CC','#54BF93'],
m1: require("../../../assets/images/EventInsight/img_ct.png"),
m2: require("../../../assets/images/EventInsight/img_lt.png"),
list: []
};
},
created() {
this.initData()
},
methods: {
initData() {
this.form.token = this.getToken;
let arr = [];
this.getEComparison.forEach(ele => {
arr.push(ele.events_id);
})
this.form.sRele = arr.toString();
this.getData()
},
getData() {
let obj = Object.assign({}, this.getCtime2, this.form);
getListC(obj).then(res => {
let data = res.data || [];
this.list = data;
})
},
openUrl(url) {
window.open(url);
}
}
};
</script>
@ -270,7 +155,7 @@ export default {
}
.dd1-item {
position: relative;
width: 214px;
width: 260px;
height: 320px;
display: flex;
flex-shrink: 0;
@ -286,6 +171,7 @@ export default {
padding-top: 16px;
height: 88px;
font-size: 16px;
cursor: pointer;
}
.d2 {
font-size: 14px;

@ -1,7 +1,7 @@
<!--
* @Author: your name
* @Date: 2021-10-18 10:42:29
* @LastEditTime: 2021-10-18 14:20:52
* @LastEditTime: 2021-11-15 16:09:03
* @LastEditors: Please set LastEditors
* @Description: In User Settings Edit
* @FilePath: /data-show/src/views/EventComparison/ec-d1/index.vue
@ -12,60 +12,50 @@
<v-btn @click="goback"></v-btn>
</v-label-div>
<div class="ec-d1-inner">
<div class="ec-d1-dd1">
<div class="d1">新车上市</div>
<div class="d2">
<div class="d2-d1">宠爱 东风日产启辰重庆驾练营公益项目重庆车asdasdasdasdasd</div>
<div class="d2-d2">
<span class="s1">开始时间</span><span class="s2">2021-05-30 20:20:24</span>
<span class="s1" style="margin-left: 40px">信息总量</span><span class="s2" style="margin-left: 8px">76446</span>
<template v-for="(item,index) in list">
<div :key="index" style="display: flex;justify-content: flex-start;">
<div class="ec-d1-dd1">
<div class="d1">{{item.events_type}}</div>
<div class="d2">
<div class="d2-d1">{{item.events_title}}</div>
<div class="d2-d2">
<span class="s1">开始时间</span><span class="s2">{{item.minSourcetime}}</span>
<span class="s1" style="margin-left: 40px">信息总量</span><span class="s2" style="margin-left: 8px">{{item.events_count}}</span>
</div>
</div>
<div class="ec-btn" v-if="item.isDel" @click="handlerSwitch(index)">
切换事件
</div>
</div>
</div>
<div class="ec-btn" @click="handlerSwitch">
切换事件
</div>
</div>
<div class="ec-d1-dd2">
<img src="../../../assets/images/comm/img_vs.png" />
</div>
<div class="ec-d1-dd1">
<div class="dx1">新车上市</div>
<div class="d2">
<div class="d2-d1">今日长安福特在重庆车展主场以全明星阵容开启新纪元</div>
<div class="d2-d2">
<span class="s1">开始时间</span><span class="s2">2021-05-30 20:20:24</span>
<span class="s1" style="margin-left: 40px">信息总量</span><span class="s2" style="margin-left: 8px">76446</span>
<div class="ec-d1-dd2" v-if="index % 2 == 0">
<img src="../../../assets/images/comm/img_vs.png" />
</div>
</div>
<div class="ec-btn" @click="handlerSwitch">
切换事件
</div>
</div>
</template>
</div>
<iSwitchEvent :visible.sync="se.visible"></iSwitchEvent>
</div>
</template>
<script>
import iSwitchEvent from "@/lycomponents/iSwitchEvent"
export default {
name: "ecx-top",
components: {
iSwitchEvent
},
data() {
return {
se: {
visible: false
}
list: []
}
},
created() {
this.list = this.getEComparison
},
methods: {
goback() {
this.$router.go(-1);
},
//
handlerSwitch() {
this.se.visible = true;
this.$router.push({path: '/iSwitchEvent'})
}
}

@ -1,7 +1,7 @@
<!--
* @Author: your name
* @Date: 2021-10-18 14:31:05
* @LastEditTime: 2021-10-18 15:42:26
* @LastEditTime: 2021-11-15 17:39:28
* @LastEditors: Please set LastEditors
* @Description: In User Settings Edit
* @FilePath: /data-show/src/views/EventComparison/etc-cc/index.vue
@ -16,18 +16,50 @@
<div class="dd1" style="margin-left: 24px;"><span class="s1" :style="{background: '#CC9D12'}"></span><span class="s2">负面</span></div>
</div>
<div class="etcc-inner">
<roundatacc title="事件一" color="#3373CC" style="margin-left: 46px"></roundatacc>
<roundatacc title="事件二" color="#63AECC" style="margin-left: 110px"></roundatacc>
<roundatacc :title="item.Name|doStr(10)" :color="colors[index]" style="margin-left: 3rem" v-for="(item,index) in list" :key="index" :optData="item.Data"></roundatacc>
</div>
</div>
</template>
<script>
import {getAffectionsC} from "@/api/EventComparison"
import roundatacc from "./roundatacc";
export default {
name: "etc-cc",
components: {
roundatacc
},
data() {
return {
form: {
token: "",
sRele: ""
},
list: [],
colors: ['#3373CC', '#5ea4c2']
}
},
created() {
this.initData();
},
methods: {
initData() {
this.form.token = this.getToken;
let arr = [];
this.getEComparison.forEach(ele => {
arr.push(ele.events_id);
})
this.form.sRele = arr.toString();
this.getData()
},
getData() {
let obj = Object.assign({}, this.getCtime2, this.form);
getAffectionsC(obj).then(res => {
let data = res.data;
this.list = data;
})
}
}
}
</script>

@ -1,7 +1,7 @@
<!--
* @Author: your name
* @Date: 2021-10-15 13:41:17
* @LastEditTime: 2021-11-08 17:45:57
* @LastEditTime: 2021-11-15 17:40:49
* @LastEditors: Please set LastEditors
* @Description: In User Settings Edit
* @FilePath: /data-show/src/views/BrandComparison/brandTonalDistribution/roundata/index.vue
@ -27,6 +27,28 @@ export default {
type: String,
default: "",
},
optData: {
type: Object,
default: () => {
return {}
}
}
},
watch: {
optData: {
handler(val) {
let arr = [];
for(let key in val) {
let obj = {
key: key,
value: val[key]
}
arr.push(obj)
}
this.opt = createOpt(arr);
},
immediate: true
}
},
data() {
return {

@ -1,13 +1,38 @@
/*
* @Author: your name
* @Date: 2021-10-12 14:33:51
* @LastEditTime: 2021-10-15 14:49:19
* @LastEditTime: 2021-11-15 17:48:19
* @LastEditors: Please set LastEditors
* @Description: In User Settings Edit
* @FilePath: /data-show/src/views/BrandInsight/weiboKol/opt.js
*/
import * as echarts from "echarts";
export default function createOpt() {
function createData(arr = []) {
let a = [];
arr.forEach(ele => {
let color = "";
if(ele.key === '正面') {
color = '#3373CC'
} else if(ele.key === '中性') {
color = '#54BF93'
} else {
color = '#b38b14'
}
let obj = { value: ele.value, 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: color
}])} }
a.push(obj)
})
return a
}
export default function createOpt(arr = []) {
let data = createData(arr)
return {
series: [
{
@ -27,43 +52,14 @@ export default function createOpt() {
color: "#ffff",
fontWeight: 'bold',
formatter: function(p) {
return `${p.data.name}\n25%\n${p.data.value}`
return `${p.data.name}\n${p.percent}%\n${p.data.value}`
}
}
},
labelLine: {
show: false
},
data: [
{ value: 2000, 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: 1000, name: '中性', itemStyle: {color: new echarts.graphic.LinearGradient(0, 1, 1, 0, [{
//给颜色设置渐变色 前面4个参数给第一个设置1第四个设置0 ,就是水平渐变
//给第一个设置0第四个设置1就是垂直渐变
offset: 0,
color: 'black'
}, {
offset: 1,
color: '#54BF93'
}])} },
{ value: 1000, name: '负面', itemStyle: {color: new echarts.graphic.LinearGradient(0, 1, 1, 0, [{
//给颜色设置渐变色 前面4个参数给第一个设置1第四个设置0 ,就是水平渐变
//给第一个设置0第四个设置1就是垂直渐变
offset: 0,
color: 'black'
}, {
offset: 1,
color: '#b38b14'
}])} },
],
data: data,
},
{
name: 'Access From1',
@ -78,37 +74,7 @@ export default function createOpt() {
show: false
},
center: ['50%', '50%'],//边框位置
data: [
{ value: 2000, 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: 1000, name: '中性', itemStyle: {color: new echarts.graphic.LinearGradient(0, 1, 1, 0, [{
//给颜色设置渐变色 前面4个参数给第一个设置1第四个设置0 ,就是水平渐变
//给第一个设置0第四个设置1就是垂直渐变
offset: 0,
color: 'black'
}, {
offset: 1,
color: '#54BF93'
}])} },
{ value: 1000, name: '负面', itemStyle: {color: new echarts.graphic.LinearGradient(0, 1, 1, 0, [{
//给颜色设置渐变色 前面4个参数给第一个设置1第四个设置0 ,就是水平渐变
//给第一个设置0第四个设置1就是垂直渐变
offset: 0,
color: 'black'
}, {
offset: 1,
color: '#b38b14'
}])} },
],
data: data,
}
]
}

@ -1,41 +1,75 @@
<!--
* @Author: your name
* @Date: 2021-10-18 15:33:05
* @LastEditTime: 2021-10-18 15:46:39
* @LastEditTime: 2021-11-15 18:30:13
* @LastEditors: Please set LastEditors
* @Description: In User Settings Edit
* @FilePath: /data-show/src/views/EventComparison/eventSTM/index.vue
-->
<template>
<div class="estm-outter">
<div class="estm-item">
<v-label-div title="事件传播TOP媒体" :showLine="false" :eStyle="{'border-style': 'none'}">
<span style="font-size: 18px; color: #3373CC">事件一</span>
<div class="estm-item" v-for="(item,index) in list" :key="index">
<v-label-div :title="titles[index]" :showLine="false" :eStyle="{'border-style': 'none'}">
<span style="font-size: 18px; color: #3373CC">{{item.name|doStr(10)}}</span>
</v-label-div>
<div class="estm-inner">
<v-echarts :opt="opt1"></v-echarts>
</div>
</div>
<div class="estm-item">
<v-label-div title="" :showLine="false" :eStyle="{'border-style': 'none'}">
<span style="font-size: 18px; color: #3373CC">事件二</span>
</v-label-div>
<div class="estm-inner">
<v-echarts :opt="opt2"></v-echarts>
<v-echarts :opt="item.opt"></v-echarts>
</div>
</div>
</div>
</template>
<script>
import {getSourceTopCount0528C} from "@/api/EventComparison"
import {createSideSingleColumn} from "@/utils/gol/sideSingleColumn"
export default {
name: "estm-outter",
data() {
return {
opt1: createSideSingleColumn(['企鹅网', '懂车帝','凤凰网','汽车之家','一点资讯'], [400, 500, 600, 800, 1000], '#3373CC'),
opt2: createSideSingleColumn(['企鹅网', '懂车帝','凤凰网','汽车之家','一点资讯'], [400, 500, 600, 800, 1000], '#50b68c'),
form: {
token: "",
sRele: ""
},
list: [],
titles: ['事件传播TOP媒体', ''],
colors: ['#3373CC', '#50b68c']
}
},
created() {
this.initData()
},
methods: {
initData() {
this.form.token = this.getToken;
let arr = [];
this.getEComparison.forEach(ele => {
arr.push(ele.events_id);
})
this.form.sRele = arr.toString();
this.getData()
},
getData() {
let obj = Object.assign({}, this.getCtime2, this.form);
getSourceTopCount0528C(obj).then(res => {
let data = res.data || [];
let arr = []
data.forEach((ele,index) => {
let val = ele.value || [];
let dx = [];
let ds = [];
val.forEach(e => {
dx.push(e.key);
ds.push(e.value);
})
let o = {
name: ele.key,
opt: createSideSingleColumn(dx, ds, this.colors[index])
}
arr.push(o)
})
this.list = arr;
})
}
}
}
</script>

@ -1,100 +1,37 @@
<!--
* @Author: your name
* @Date: 2021-10-18 13:35:07
* @LastEditTime: 2021-10-20 09:18:01
* @LastEditTime: 2021-11-15 16:04:16
* @LastEditors: Please set LastEditors
* @Description: In User Settings Edit
* @FilePath: /data-show/src/views/EventComparison/index.vue
-->
<template>
<div class="d-container">
<div class="ec-outter">
<ecx-top></ecx-top>
<div class="ece-d1">
<v-label-div title="对比数据">
</v-label-div>
<div class="dd1">
<comparisonOfEventDisseminationChannels></comparisonOfEventDisseminationChannels>
<etc-cc></etc-cc>
</div>
<div class="dd2">
<profileOfAssociatedAuthorsOne></profileOfAssociatedAuthorsOne>
<eventSTM></eventSTM>
</div>
<comparisonOfEventpp></comparisonOfEventpp>
<positiveAndNegativeWordCloudContrast></positiveAndNegativeWordCloudContrast>
</div>
<div class="ece-d2">
<v-label-div title="事件微博对比">
</v-label-div>
<div class="dd1">
<CWIEC></CWIEC>
<cotwiEc></cotwiEc>
<wbcEc></wbcEc>
<wtcEc></wtcEc>
</div>
<div class="dd2">
<uadEc></uadEc>
<wupEc></wupEc>
</div>
</div>
<div class="ece-d3">
<v-label-div title="事件尾翼对比">
</v-label-div>
<div class="dd1">
<tirEc></tirEc>
<inbcEc></inbcEc>
</div>
<ttmEc></ttmEc>
</div>
</div>
<EventC v-if="showCom"></EventC>
</div>
</template>
<script>
import ecxTop from "./ecx-top";
import comparisonOfEventDisseminationChannels from "./comparisonOfEventDisseminationChannels";
import profileOfAssociatedAuthorsOne from "./profileOfAssociatedAuthorsOne";
import etcCc from "./etc-cc";
import eventSTM from "./eventSTM";
import comparisonOfEventpp from "./comparisonOfEventpp";
import positiveAndNegativeWordCloudContrast from "./positiveAndNegativeWordCloudContrast";
import CWIEC from "./CWIEC";
import cotwiEc from "./cotwiEc";
import wbcEc from "./wbcEc";
import wtcEc from "./wtcEc";
import uadEc from "./uadEc";
import wupEc from "./wupEc";
import tirEc from "./tirEc";
import inbcEc from "./inbcEc"
import ttmEc from "./ttmEc"
import EventC from "./EventComparison.vue"
export default {
name: "EventComparison",
components: {
ecxTop, //
comparisonOfEventDisseminationChannels, //
etcCc, //
profileOfAssociatedAuthorsOne, //
eventSTM, // TOP
comparisonOfEventpp, //
positiveAndNegativeWordCloudContrast, //
CWIEC, //
cotwiEc, //
wbcEc, // V
wtcEc, //
uadEc, //
wupEc, //
tirEc, //
inbcEc, //
ttmEc // TOP
EventC,
},
data() {
return {
se: {
visible: false,
},
showCom: false,
};
},
created() {
if(this.getEComparison.length === 0) {
this.showCom = false;
this.$router.push({path: '/iSwitchEvent'})
} else {
this.showCom = true;
}
}
};
</script>

@ -1,7 +1,7 @@
<!--
* @Author: your name
* @Date: 2021-10-18 15:05:22
* @LastEditTime: 2021-10-18 15:50:00
* @LastEditTime: 2021-11-15 19:29:53
* @LastEditors: Please set LastEditors
* @Description: In User Settings Edit
* @FilePath: /data-show/src/views/EventComparison/profileOfAssociatedAuthors/index.vue
@ -9,80 +9,80 @@
<template>
<div class="poao-outter">
<div class="poao-inner">
<div class="poao-d1">
<v-label-div title="关联作者概况" :showLine="false" :eStyle="{'border-style': 'none'}">
<span style="font-size: 18px; color: #3373CC">事件一</span>
<div class="poao-d1" v-for="(item,index) in list" :key="index">
<v-label-div :title="titles[index]" :showLine="false" :eStyle="{'border-style': 'none'}">
<span style="font-size: 18px; color: #3373CC">{{item.key|doStr(10)}}</span>
</v-label-div>
<div class="poao-item" style="margin-top: 12px">
<div>
<img class="m1" src="../../../assets/images/EventInsight/img_glzz.png" />
<span class="s1">关联作者数量</span>
</div>
<span class="s2">74,073,195</span>
<span class="s2">{{item.value.useruidCount|formatMoney(0,'',',')}}</span>
</div>
<div class="poao-item">
<div>
<img class="m1" src="../../../assets/images/EventInsight/img_ljgj.png" />
<span class="s1">累计稿件数量</span>
</div>
<span class="s2">74,073,1</span>
<span class="s2">{{item.value.zhutieCount|formatMoney(0,'',',')}}</span>
</div>
<div class="poao-item">
<div>
<img class="m1" src="../../../assets/images/EventInsight/img_glmt.png" />
<span class="s1">关联媒体数量</span>
</div>
<span class="s2">74,073</span>
<span class="s2">{{item.value.sourceCount|formatMoney(0,'',',')}}</span>
</div>
<div class="poao-item">
<div>
<img class="m1" src="../../../assets/images/EventInsight/ic_cbl.png" />
<span class="s1">传播量</span>
</div>
<span class="s2">74,073,195</span>
</div>
</div>
<div class="poao-d1">
<v-label-div title="" :showLine="false" :eStyle="{'border-style': 'none'}">
<span style="font-size: 18px; color: #3373CC">事件二</span>
</v-label-div>
<div class="poao-item" style="margin-top: 12px">
<div>
<img class="m1" src="../../../assets/images/EventInsight/img_glzz.png" />
<span class="s1">关联作者数量</span>
</div>
<span class="s2">74,073,195</span>
</div>
<div class="poao-item">
<div>
<img class="m1" src="../../../assets/images/EventInsight/img_ljgj.png" />
<span class="s1">累计稿件数量</span>
</div>
<span class="s2">74,073,1</span>
</div>
<div class="poao-item">
<div>
<img class="m1" src="../../../assets/images/EventInsight/img_glmt.png" />
<span class="s1">关联媒体数量</span>
</div>
<span class="s2">74,073</span>
</div>
<div class="poao-item">
<div>
<img class="m1" src="../../../assets/images/EventInsight/ic_cbl.png" />
<span class="s1">传播量</span>
</div>
<span class="s2">74,073,195</span>
<span class="s2">{{item.value.chuanboCount|formatMoney(0,'',',')}}</span>
</div>
</div>
</div>
</div>
</template>
<script>
import {getUserOverview0528C} from "@/api/EventComparison"
export default {
name: "profileOfAssociatedAuthors",
data() {
return {
form: {
token: "",
sRele: ""
},
titles: ['关联作者概况', ''],
list: []
}
},
created() {
this.initData()
},
methods: {
initData() {
this.form.token = this.getToken;
let arr = [];
this.getEComparison.forEach(ele => {
arr.push(ele.events_id);
})
this.form.sRele = arr.toString();
this.getData()
},
getData() {
let obj = Object.assign({}, this.getCtime2, this.form);
getUserOverview0528C(obj).then(res => {
let data = res.data || [];
this.list = data;
})
}
}
};
</script>

@ -1,7 +1,7 @@
<!--
* @Author: your name
* @Date: 2021-10-18 09:07:18
* @LastEditTime: 2021-11-02 18:22:09
* @LastEditTime: 2021-11-15 11:53:24
* @LastEditors: Please set LastEditors
* @Description: In User Settings Edit
* @FilePath: /data-show/src/views/EventInsight/hotEventPropagationOriented/index.vue
@ -42,7 +42,7 @@ export default {
//
getData() {
this.load = true;
let obj = Object.assign({}, this.getCommTime, this.form);
let obj = Object.assign({}, this.getCtime2, this.form);
getPropagationDirection0528(obj).then(res => {
let data = res.data;
let d1 = data.data;

@ -1,7 +1,7 @@
<!--
* @Author: your name
* @Date: 2021-10-18 09:34:53
* @LastEditTime: 2021-11-04 16:00:29
* @LastEditTime: 2021-11-15 11:53:37
* @LastEditors: Please set LastEditors
* @Description: In User Settings Edit
* @FilePath: /data-show/src/views/EventInsight/IndustryTOPHE/index.vue
@ -42,7 +42,7 @@ export default {
},
getData() {
this.load = true;
let obj = Object.assign({}, this.getCommTime, this.form);
let obj = Object.assign({}, this.getCtime2, this.form);
getHotEventsList(obj).then((res) => {
let data = res.data || [];
this.list = data;

Loading…
Cancel
Save