You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
225 lines
7.7 KiB
225 lines
7.7 KiB
import histogram from "../../../components/option/singleColumnarOption"
|
|
import sHistogram from "../../../components/option/sColumnarOption"
|
|
import pieOption from '../../../components/option/pieOption2'
|
|
const app = getApp()
|
|
const dColor = ['#FF4852', '#FF6E25', '#FFBF00', '#20CC62', '#00D6D6', '#00AAFF', '#7257FF']
|
|
Component({
|
|
data: {
|
|
imageUrl: getApp().globalData.imageUrl,
|
|
showChart: true,
|
|
brandOption: histogram([], [], [], '#0084FF'),
|
|
brandOption4: sHistogram(),
|
|
boxArr: new Array(6),
|
|
eventDist:[],
|
|
writer:[],
|
|
eventSpreadTop:[],
|
|
spreadActive:0,
|
|
eventSteps:[],
|
|
negative:[],
|
|
positive:[],
|
|
negativeWordActive:0
|
|
},
|
|
lifetimes: {
|
|
attached() {
|
|
let brandRatioTime = wx.getStorageSync('brandRatioTime')
|
|
let eventData = wx.getStorageSync('eventData')
|
|
this.setData({
|
|
boxArr: eventData
|
|
})
|
|
let sRele = []
|
|
this.data.boxArr.forEach((ele) => {
|
|
if (ele) sRele.push(ele.events_id)
|
|
})
|
|
//事件传播渠道对比
|
|
app.globalData.request({
|
|
action: 'getSourcetypeC',
|
|
token: wx.getStorageSync('token'),
|
|
sType: 'EventContrast',
|
|
...brandRatioTime,
|
|
iContrastType: '3',
|
|
sRele:sRele.join(',')
|
|
}).then(res => {
|
|
let xMsg = Object.keys(res[0].Data)
|
|
let data = new Array(res.length).fill([])
|
|
data = data.map(ele => {
|
|
ele = JSON.stringify(ele)
|
|
ele = JSON.parse(ele)
|
|
return ele
|
|
})
|
|
for (let [index, i] of res.entries()) {
|
|
Object.keys(i.Data).forEach(ele=>{
|
|
data[index].push(i.Data[ele])
|
|
})
|
|
}
|
|
// //横轴,数据,纵轴
|
|
this.setData({
|
|
brandOption4: sHistogram(xMsg, data, ['事件一','事件二'], [],35)
|
|
})
|
|
})
|
|
//事件调性分布
|
|
app.globalData.request({
|
|
action: 'getAffectionsC',
|
|
token: wx.getStorageSync('token'),
|
|
sType: 'EventContrast',
|
|
...brandRatioTime,
|
|
iContrastType: '3',
|
|
sRele:sRele.join(',')
|
|
}).then(res=>{
|
|
let data = []
|
|
for(let i of res){
|
|
let arr = []
|
|
let sum = 0
|
|
Object.keys(i.Data).forEach(ele=>{
|
|
sum+=Number(i.Data[ele])
|
|
})
|
|
Object.keys(i.Data).forEach(ele=>{
|
|
let obj = {value:i.Data[ele],name:ele,percent:(Number(i.Data[ele])/sum).toFixed(2) *100}
|
|
arr.push(obj)
|
|
})
|
|
data.push(arr)
|
|
|
|
}
|
|
let newData=[]
|
|
for(let i of data){
|
|
let obj={}
|
|
obj.arr = i
|
|
obj.func = pieOption(['#0283ff','#a8eac1','#ffe49a'],i)
|
|
newData.push(obj)
|
|
}
|
|
this.setData({
|
|
eventDist:newData
|
|
})
|
|
})
|
|
//关联作者概括
|
|
app.globalData.request({
|
|
action: 'getUserOverview0528C',
|
|
token: wx.getStorageSync('token'),
|
|
sType: 'EventContrast',
|
|
...brandRatioTime,
|
|
iContrastType: '3',
|
|
sRele:sRele.join(',')
|
|
}).then(res=>{
|
|
this.setData({
|
|
writer:res
|
|
})
|
|
})
|
|
//事件传播TOP媒体
|
|
app.globalData.request({
|
|
action: 'getSourceTopCount0528C',
|
|
token: wx.getStorageSync('token'),
|
|
sType: 'EventContrast',
|
|
...brandRatioTime,
|
|
iContrastType: '3',
|
|
sRele:sRele.join(',')
|
|
}).then(res=>{
|
|
console.log(res);
|
|
this.setData(
|
|
{eventSpreadTop:res}
|
|
)
|
|
})
|
|
//历程
|
|
app.globalData.request({
|
|
action: 'getListC',
|
|
token: wx.getStorageSync('token'),
|
|
sType: 'EventContrast',
|
|
...brandRatioTime,
|
|
iContrastType: '3',
|
|
sRele:sRele.join(',')
|
|
}).then(res=>{
|
|
let arr =[[],[]]
|
|
for(let [index,i] of res.entries()){
|
|
i.Data.forEach(ele => {
|
|
let obj = {
|
|
text: ele._source.firsttime+' '+ele._source.category,
|
|
desc: ele._source.title
|
|
};
|
|
arr[index].push(obj);
|
|
});
|
|
}
|
|
this.setData({
|
|
eventSteps:arr
|
|
})
|
|
})
|
|
//正面词云
|
|
let posPromise = []
|
|
let negPromise = []
|
|
for(let i of sRele){
|
|
posPromise.push(
|
|
app.globalData.request({
|
|
action: 'getPositiveC',
|
|
token: wx.getStorageSync('token'),
|
|
sType: 'EventContrast',
|
|
...brandRatioTime,
|
|
iContrastType: '3',
|
|
sRele:i
|
|
})
|
|
)
|
|
negPromise.push(
|
|
app.globalData.request({
|
|
action: 'getNegativeC',
|
|
token: wx.getStorageSync('token'),
|
|
sType: 'EventContrast',
|
|
...brandRatioTime,
|
|
iContrastType: '3',
|
|
sRele:i
|
|
})
|
|
)
|
|
}
|
|
Promise.all(posPromise).then(res=>{
|
|
let positive =[]
|
|
for(let [index,i] of res.entries()){
|
|
let obj = {}
|
|
if(index==0){
|
|
obj.Name='事件一'
|
|
}else{
|
|
obj.Name='事件二'
|
|
}
|
|
obj.value =[]
|
|
Object.keys(i[0].Data).forEach(ele=>{
|
|
obj.value.push([ele,i[0].Data[ele]])
|
|
})
|
|
positive.push(obj)
|
|
}
|
|
this.setData({
|
|
positive
|
|
})
|
|
})
|
|
Promise.all(negPromise).then(res=>{
|
|
let negative =[]
|
|
for(let [index,i] of res.entries()){
|
|
let obj = {}
|
|
if(index==0){
|
|
obj.Name='事件一'
|
|
}else{
|
|
obj.Name='事件二'
|
|
}
|
|
obj.value =[]
|
|
Object.keys(i[0].Data).forEach(ele=>{
|
|
obj.value.push([ele,i[0].Data[ele]])
|
|
})
|
|
negative.push(obj)
|
|
}
|
|
this.setData({
|
|
negative
|
|
})
|
|
})
|
|
},
|
|
|
|
},
|
|
methods: {
|
|
//品牌传播top媒体
|
|
changeModalHot(event) {
|
|
|
|
let index = event.detail.index
|
|
this.setData({
|
|
spreadActive: index,
|
|
})
|
|
},
|
|
changeNegative(event) {
|
|
let index = event.detail.index
|
|
this.setData({
|
|
negativeWordActive: index,
|
|
})
|
|
},
|
|
}
|
|
}) |