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.
298 lines
9.7 KiB
298 lines
9.7 KiB
// subpages/partyInteract/pages/partyInteractIndex/components/participationStatus/participationStatus.js
|
|
// @ts-ignore
|
|
import * as echarts from '../../../../../../components/ec-canvas/echarts.js'
|
|
import { getparticipation } from '../../../../utils/echarts'
|
|
import { getPartyDynamicTrend } 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 }],
|
|
visible: false,
|
|
data1: [],//党员0, 0, 0, 100
|
|
data2: [],//党员参与9, 30, 9, 40
|
|
data3: [],//居民20, 30, 20, 30
|
|
data4: [],//居民参与9, 30, 9, 40
|
|
xData: [],//'第一周', '第二周', '第三周', '第四周'
|
|
data1Total: [],
|
|
data2Total: [],
|
|
data3Total: [],
|
|
data4Total: [],
|
|
xDataTotal: []
|
|
},
|
|
lifetimes: {
|
|
async attached() {
|
|
// @ts-ignore
|
|
this.ecComponentA = this.selectComponent('#mychart-participation')
|
|
await this.getPartyDynamicTrend()
|
|
this.initA()
|
|
}
|
|
},
|
|
observers: {
|
|
async deptid(newValue, oldvalue) {
|
|
console.log('newValue',newValue)
|
|
console.log('oldvalue',oldvalue)
|
|
if (newValue.length !== 0) {
|
|
await this.getPartyDynamicTrend()
|
|
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),
|
|
data4: this.data.data4Total.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),
|
|
data4: this.data.data4Total.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),
|
|
data4: this.data.data4Total.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.getPartyDynamicTrend()
|
|
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),
|
|
data4: this.data.data4Total.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),
|
|
data4: this.data.data4Total.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),
|
|
data4: this.data.data4Total.slice(0, 4),
|
|
xData: this.data.xDataTotal.slice(0, 4)
|
|
})
|
|
}
|
|
|
|
await this.initA()
|
|
|
|
},
|
|
initA() {
|
|
// @ts-ignore
|
|
this.ecComponentA.init((canvas: any, width: any, height: any) => {
|
|
const chart = echarts.init(canvas, null, {
|
|
width: width,
|
|
height: height
|
|
})
|
|
getparticipation(chart, this.data.data1, this.data.data2, this.data.data3, this.data.data4, this.data.xData)
|
|
return chart
|
|
})
|
|
},
|
|
hide() {
|
|
this.setData({
|
|
visible: false,
|
|
})
|
|
},
|
|
onChange(e: any) {
|
|
this.setData({
|
|
visible: e.detail.visible,
|
|
})
|
|
},
|
|
async getPartyDynamicTrend() {
|
|
let obj = {
|
|
deptId: this.properties.deptid,
|
|
someMonthsType: this.data.someMonthsType
|
|
}
|
|
try {
|
|
// @ts-ignore
|
|
let res: any = await getPartyDynamicTrend(obj)
|
|
let data1: any = []
|
|
let data2: any = []
|
|
let data3: any = []
|
|
let data4: any = []
|
|
let xData: any = []
|
|
res.data.list.forEach((element: any) => {
|
|
data1.unshift(element.partyTotal)
|
|
data2.unshift(element.partyDynamicTotal)
|
|
data3.unshift(element.residentTotal)
|
|
data4.unshift(element.residentDynamicTotal)
|
|
xData.unshift(element.timeName)
|
|
})
|
|
this.setData({
|
|
data1: data1,
|
|
data2: data2,
|
|
data3: data3,
|
|
data4: data4,
|
|
xData: xData,
|
|
})
|
|
this.setData({
|
|
data1Total: data1,
|
|
data2Total: data2,
|
|
data3Total: data3,
|
|
data4Total: data4,
|
|
xDataTotal: xData
|
|
})
|
|
} catch (err) {
|
|
console.log(err)
|
|
}
|
|
|
|
|
|
},
|
|
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),
|
|
data4: this.data.data4Total.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),
|
|
data4: this.data.data4Total.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),
|
|
data4: this.data.data4Total.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),
|
|
data4: this.data.data4Total.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),
|
|
data4: this.data.data4Total.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),
|
|
data4: this.data.data4Total.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),
|
|
data4: this.data.data4Total.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),
|
|
data4: this.data.data4Total.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),
|
|
data4: this.data.data4Total.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),
|
|
data4: this.data.data4Total.slice(8, 12),
|
|
xData: this.data.xDataTotal.slice(8, 12)
|
|
})
|
|
}
|
|
}
|
|
this.initA()
|
|
},
|
|
}
|
|
})
|