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