榆山数据端小程序
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

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