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.
287 lines
9.4 KiB
287 lines
9.4 KiB
5 years ago
|
// @ts-ignore
|
||
|
import * as echarts from '../../../../../../components/ec-canvas/echarts.js'
|
||
|
import { getparticipation2 } from '../../../../utils/echarts'
|
||
|
import { getDynamicPercentAnalysis } from '../../../../../../api/partyInteract'
|
||
|
Component({
|
||
|
properties: {
|
||
|
deptid: {
|
||
|
type: String
|
||
|
}
|
||
|
},
|
||
|
data: {
|
||
|
ecA: {
|
||
|
lazyLoad: true
|
||
|
},
|
||
|
showTimePicker: false,
|
||
|
someMonthsType: 1,
|
||
|
timeList: [
|
||
|
{ time: '最近一个月', id: 1 },
|
||
|
{ time: '最近三个月', id: 2 },
|
||
|
{ time: '最近六个月', id: 3 },
|
||
|
{ time: '最近一年', id: 4 }],
|
||
|
popList: [
|
||
|
{
|
||
|
title: '党员参与占比分析',
|
||
|
content: '是党员参与总人次,占比平台总参与人次的'
|
||
|
},
|
||
|
{
|
||
|
title: '参与人次计算',
|
||
|
content: '在平台参与的所有行为的次数累计,包括"浏览、点赞、踩、发布议题/话题、支持、反对"等,累计叠加计算,同一用户多次行为需重复计算'
|
||
|
},
|
||
|
{
|
||
|
title: '平台参与人次',
|
||
|
content: '是平台总的参与人次的统计,党员参与总人次+居民参加总人次,累计叠加计算'
|
||
|
},
|
||
|
{
|
||
|
title: '党员参与人次',
|
||
|
content: ' 是注册党员参与总人次累计,在平台参与的所有行为总和,累计叠加计算,同一党员多次行为需重复计算'
|
||
|
},
|
||
|
{
|
||
|
title: '统计周期',
|
||
|
content: '按照最新一个月、三个月、六个月、一年的晒选,根据所选择的时间,显示该时间段的数据内容'
|
||
|
},
|
||
|
|
||
|
],
|
||
|
data1: [],//党员参与0, 0, 0, 100
|
||
|
data2: [],//居民参与9, 30, 9, 40
|
||
|
data3: [],//线
|
||
|
xData: [],//'第一周', '第二周', '第三周', '第四周'
|
||
|
data1Total: [],
|
||
|
data2Total: [],
|
||
|
data3Total: [],
|
||
|
xDataTotal: []
|
||
|
},
|
||
|
lifetimes: {
|
||
|
async attached() {
|
||
|
// @ts-ignore
|
||
|
this.ecComponentA = this.selectComponent('#mychart-dom-bar')
|
||
|
await this.getDynamicPercentAnalysis()
|
||
|
await this.initA()
|
||
|
}
|
||
|
},
|
||
|
observers: {
|
||
|
async deptid(newValue, oldvalue) {
|
||
|
console.log('newValue',newValue)
|
||
|
console.log('oldvalue',oldvalue)
|
||
|
if (newValue.length !== 0) {
|
||
|
await this.getDynamicPercentAnalysis()
|
||
|
if (this.data.someMonthsType == 2) {
|
||
|
// // 最近三个月
|
||
|
this.setData({
|
||
|
data1: this.data.data1Total.slice(0, 4),
|
||
|
data2: this.data.data2Total.slice(0, 4),
|
||
|
data3: this.data.data3Total.slice(0, 4),
|
||
|
xData: this.data.xDataTotal.slice(0, 4)
|
||
|
})
|
||
|
} else if (this.data.someMonthsType == 3) {
|
||
|
// 最近六个月
|
||
|
this.setData({
|
||
|
data1: this.data.data1Total.slice(0, 3),
|
||
|
data2: this.data.data2Total.slice(0, 3),
|
||
|
data3: this.data.data3Total.slice(0, 3),
|
||
|
xData: this.data.xDataTotal.slice(0, 3)
|
||
|
})
|
||
|
} else if (this.data.someMonthsType == 4) {
|
||
|
// 最近一年
|
||
|
this.setData({
|
||
|
data1: this.data.data1Total.slice(0, 4),
|
||
|
data2: this.data.data2Total.slice(0, 4),
|
||
|
data3: this.data.data3Total.slice(0, 4),
|
||
|
xData: this.data.xDataTotal.slice(0, 4)
|
||
|
})
|
||
|
}
|
||
|
await this.initA()
|
||
|
}
|
||
|
},
|
||
|
|
||
|
},
|
||
|
methods: {
|
||
|
// 显示隐藏时间选择框
|
||
|
chooseTimePicker() {
|
||
|
this.setData({
|
||
|
showTimePicker: !this.data.showTimePicker
|
||
|
})
|
||
|
},
|
||
|
// 选择时间
|
||
|
async onTimeChange(e: any) {
|
||
|
// console.log('someMonthsType', e.currentTarget.dataset.time)
|
||
|
this.setData({
|
||
|
someMonthsType: e.currentTarget.dataset.time,
|
||
|
showTimePicker: false,
|
||
|
})
|
||
|
await this.getDynamicPercentAnalysis()
|
||
|
if (e.currentTarget.dataset.time == 2) {
|
||
|
// // 最近三个月
|
||
|
this.setData({
|
||
|
data1: this.data.data1Total.slice(0, 4),
|
||
|
data2: this.data.data2Total.slice(0, 4),
|
||
|
data3: this.data.data3Total.slice(0, 4),
|
||
|
xData: this.data.xDataTotal.slice(0, 4)
|
||
|
})
|
||
|
} else if (e.currentTarget.dataset.time == 3) {
|
||
|
// 最近六个月
|
||
|
this.setData({
|
||
|
data1: this.data.data1Total.slice(0, 3),
|
||
|
data2: this.data.data2Total.slice(0, 3),
|
||
|
data3: this.data.data3Total.slice(0, 3),
|
||
|
xData: this.data.xDataTotal.slice(0, 3)
|
||
|
})
|
||
|
} else if (e.currentTarget.dataset.time == 4) {
|
||
|
// 最近一年
|
||
|
this.setData({
|
||
|
data1: this.data.data1Total.slice(0, 4),
|
||
|
data2: this.data.data2Total.slice(0, 4),
|
||
|
data3: this.data.data3Total.slice(0, 4),
|
||
|
xData: this.data.xDataTotal.slice(0, 4)
|
||
|
})
|
||
|
}
|
||
|
|
||
|
await this.initA()
|
||
|
|
||
|
},
|
||
|
toLeft() {
|
||
|
// 3个月
|
||
|
if (this.data.someMonthsType == 2) {
|
||
|
if (this.data.xData[0] == '第5周') {
|
||
|
this.setData({
|
||
|
data1: this.data.data1Total.slice(0, 4),
|
||
|
data2: this.data.data2Total.slice(0, 4),
|
||
|
data3: this.data.data3Total.slice(0, 4),
|
||
|
xData: this.data.xDataTotal.slice(0, 4)
|
||
|
})
|
||
|
} else if (this.data.xData[0] == '第9周') {
|
||
|
this.setData({
|
||
|
data1: this.data.data1Total.slice(4, 8),
|
||
|
data2: this.data.data2Total.slice(4, 8),
|
||
|
data3: this.data.data3Total.slice(4, 8),
|
||
|
xData: this.data.xDataTotal.slice(4, 8)
|
||
|
})
|
||
|
}
|
||
|
} else if (this.data.someMonthsType == 3) {
|
||
|
// 最近6个月
|
||
|
if (this.data.xData[0] == '第4个月') {
|
||
|
this.setData({
|
||
|
data1: this.data.data1Total.slice(0, 3),
|
||
|
data2: this.data.data2Total.slice(0, 3),
|
||
|
data3: this.data.data3Total.slice(0, 3),
|
||
|
xData: this.data.xDataTotal.slice(0, 3)
|
||
|
})
|
||
|
}
|
||
|
} else if (this.data.someMonthsType == 4) {
|
||
|
if (this.data.xData[0] == '第5个月') {
|
||
|
this.setData({
|
||
|
data1: this.data.data1Total.slice(0, 4),
|
||
|
data2: this.data.data2Total.slice(0, 4),
|
||
|
data3: this.data.data3Total.slice(0, 4),
|
||
|
xData: this.data.xDataTotal.slice(0, 4)
|
||
|
})
|
||
|
} else if (this.data.xData[0] == '第9个月') {
|
||
|
this.setData({
|
||
|
data1: this.data.data1Total.slice(4, 8),
|
||
|
data2: this.data.data2Total.slice(4, 8),
|
||
|
data3: this.data.data3Total.slice(4, 8),
|
||
|
xData: this.data.xDataTotal.slice(4, 8)
|
||
|
})
|
||
|
}
|
||
|
}
|
||
|
|
||
|
this.initA()
|
||
|
},
|
||
|
toRight() {
|
||
|
// 3个月
|
||
|
if (this.data.someMonthsType == 2) {
|
||
|
if (this.data.xData[0] == '第1周') {
|
||
|
this.setData({
|
||
|
data1: this.data.data1Total.slice(4, 8),
|
||
|
data2: this.data.data2Total.slice(4, 8),
|
||
|
data3: this.data.data3Total.slice(4, 8),
|
||
|
xData: this.data.xDataTotal.slice(4, 8)
|
||
|
})
|
||
|
} else if (this.data.xData[0] == '第5周') {
|
||
|
this.setData({
|
||
|
data1: this.data.data1Total.slice(8, 12),
|
||
|
data2: this.data.data2Total.slice(8, 12),
|
||
|
data3: this.data.data3Total.slice(8, 12),
|
||
|
xData: this.data.xDataTotal.slice(8, 12)
|
||
|
})
|
||
|
|
||
|
}
|
||
|
} else if (this.data.someMonthsType == 3) {
|
||
|
// 最近6个月
|
||
|
if (this.data.xData[0] == '第1个月') {
|
||
|
this.setData({
|
||
|
data1: this.data.data1Total.slice(3, 6),
|
||
|
data2: this.data.data2Total.slice(3, 6),
|
||
|
data3: this.data.data3Total.slice(3, 6),
|
||
|
xData: this.data.xDataTotal.slice(3, 6)
|
||
|
})
|
||
|
}
|
||
|
} else if (this.data.someMonthsType == 4) {
|
||
|
// 1年
|
||
|
if (this.data.xData[0] == '第1个月') {
|
||
|
this.setData({
|
||
|
data1: this.data.data1Total.slice(4, 8),
|
||
|
data2: this.data.data2Total.slice(4, 8),
|
||
|
data3: this.data.data3Total.slice(4, 8),
|
||
|
xData: this.data.xDataTotal.slice(4, 8)
|
||
|
})
|
||
|
} else if (this.data.xData[0] == '第5个月') {
|
||
|
this.setData({
|
||
|
data1: this.data.data1Total.slice(8, 12),
|
||
|
data2: this.data.data2Total.slice(8, 12),
|
||
|
data3: this.data.data3Total.slice(8, 12),
|
||
|
xData: this.data.xDataTotal.slice(8, 12)
|
||
|
})
|
||
|
}
|
||
|
}
|
||
|
this.initA()
|
||
|
},
|
||
|
async getDynamicPercentAnalysis() {
|
||
|
let obj = {
|
||
|
DeptId: this.properties.deptid,
|
||
|
someMonthsType: this.data.someMonthsType,
|
||
|
analysisType: '1'
|
||
|
}
|
||
|
try {
|
||
|
// @ts-ignore
|
||
|
let res: any = await getDynamicPercentAnalysis(obj)
|
||
|
let data1: any = []
|
||
|
let data2: any = []
|
||
|
let data3: any = []
|
||
|
let xData: any = []
|
||
|
console.log('reszhan', res)
|
||
|
res.data.list.forEach((element: any) => {
|
||
|
data1.unshift(element.partyDynamicTimes)
|
||
|
data2.unshift(element.allDynamicTimes)
|
||
|
data3.unshift(element.percent*100)
|
||
|
xData.unshift(element.timeName)
|
||
|
})
|
||
|
this.setData({
|
||
|
data1: data1,
|
||
|
data2: data2,
|
||
|
data3: data3,
|
||
|
xData: xData,
|
||
|
})
|
||
|
this.setData({
|
||
|
data1Total: data1,
|
||
|
data2Total: data2,
|
||
|
data3Total: data3,
|
||
|
xDataTotal: xData
|
||
|
})
|
||
|
} catch (err) {
|
||
|
console.log(err)
|
||
|
}
|
||
|
},
|
||
|
initA() {
|
||
|
// @ts-ignore
|
||
|
this.ecComponentA.init((canvas: any, width: any, height: any) => {
|
||
|
const chart = echarts.init(canvas, null, {
|
||
|
width: width,
|
||
|
height: height
|
||
|
})
|
||
|
getparticipation2(chart, this.data.data3, this.data.data1, this.data.data2, this.data.xData)
|
||
|
return chart
|
||
|
})
|
||
|
},
|
||
|
}
|
||
|
})
|