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, }) }, } })