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.
367 lines
44 KiB
367 lines
44 KiB
5 years ago
|
"use strict";
|
||
|
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
||
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
||
|
return new (P || (P = Promise))(function (resolve, reject) {
|
||
|
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
||
|
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
||
|
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
||
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
||
|
});
|
||
|
};
|
||
|
var __generator = (this && this.__generator) || function (thisArg, body) {
|
||
|
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
||
|
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
||
|
function verb(n) { return function (v) { return step([n, v]); }; }
|
||
|
function step(op) {
|
||
|
if (f) throw new TypeError("Generator is already executing.");
|
||
|
while (_) try {
|
||
|
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
||
|
if (y = 0, t) op = [op[0] & 2, t.value];
|
||
|
switch (op[0]) {
|
||
|
case 0: case 1: t = op; break;
|
||
|
case 4: _.label++; return { value: op[1], done: false };
|
||
|
case 5: _.label++; y = op[1]; op = [0]; continue;
|
||
|
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
||
|
default:
|
||
|
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
||
|
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
||
|
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
||
|
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
||
|
if (t[2]) _.ops.pop();
|
||
|
_.trys.pop(); continue;
|
||
|
}
|
||
|
op = body.call(thisArg, _);
|
||
|
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
||
|
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
||
|
}
|
||
|
};
|
||
|
Object.defineProperty(exports, "__esModule", { value: true });
|
||
|
var echarts = require("../../../../../../components/ec-canvas/echarts.js");
|
||
|
var echarts_1 = require("../../../../utils/echarts");
|
||
|
var partyInteract_1 = require("../../../../../../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: [],
|
||
|
data2: [],
|
||
|
data3: [],
|
||
|
xData: [],
|
||
|
data1Total: [],
|
||
|
data2Total: [],
|
||
|
data3Total: [],
|
||
|
xDataTotal: []
|
||
|
},
|
||
|
lifetimes: {
|
||
|
attached: function () {
|
||
|
return __awaiter(this, void 0, void 0, function () {
|
||
|
return __generator(this, function (_a) {
|
||
|
switch (_a.label) {
|
||
|
case 0:
|
||
|
this.ecComponentA = this.selectComponent('#mychart-dom-bar');
|
||
|
return [4, this.getDynamicPercentAnalysis()];
|
||
|
case 1:
|
||
|
_a.sent();
|
||
|
return [4, this.initA()];
|
||
|
case 2:
|
||
|
_a.sent();
|
||
|
return [2];
|
||
|
}
|
||
|
});
|
||
|
});
|
||
|
}
|
||
|
},
|
||
|
observers: {
|
||
|
deptid: function (newValue, oldvalue) {
|
||
|
return __awaiter(this, void 0, void 0, function () {
|
||
|
return __generator(this, function (_a) {
|
||
|
switch (_a.label) {
|
||
|
case 0:
|
||
|
console.log('newValue', newValue);
|
||
|
console.log('oldvalue', oldvalue);
|
||
|
if (!(newValue.length !== 0)) return [3, 3];
|
||
|
return [4, this.getDynamicPercentAnalysis()];
|
||
|
case 1:
|
||
|
_a.sent();
|
||
|
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)
|
||
|
});
|
||
|
}
|
||
|
return [4, this.initA()];
|
||
|
case 2:
|
||
|
_a.sent();
|
||
|
_a.label = 3;
|
||
|
case 3: return [2];
|
||
|
}
|
||
|
});
|
||
|
});
|
||
|
},
|
||
|
},
|
||
|
methods: {
|
||
|
chooseTimePicker: function () {
|
||
|
this.setData({
|
||
|
showTimePicker: !this.data.showTimePicker
|
||
|
});
|
||
|
},
|
||
|
onTimeChange: function (e) {
|
||
|
return __awaiter(this, void 0, void 0, function () {
|
||
|
return __generator(this, function (_a) {
|
||
|
switch (_a.label) {
|
||
|
case 0:
|
||
|
this.setData({
|
||
|
someMonthsType: e.currentTarget.dataset.time,
|
||
|
showTimePicker: false,
|
||
|
});
|
||
|
return [4, this.getDynamicPercentAnalysis()];
|
||
|
case 1:
|
||
|
_a.sent();
|
||
|
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)
|
||
|
});
|
||
|
}
|
||
|
return [4, this.initA()];
|
||
|
case 2:
|
||
|
_a.sent();
|
||
|
return [2];
|
||
|
}
|
||
|
});
|
||
|
});
|
||
|
},
|
||
|
toLeft: function () {
|
||
|
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) {
|
||
|
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: function () {
|
||
|
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) {
|
||
|
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) {
|
||
|
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();
|
||
|
},
|
||
|
getDynamicPercentAnalysis: function () {
|
||
|
return __awaiter(this, void 0, void 0, function () {
|
||
|
var obj, res, data1_1, data2_1, data3_1, xData_1, err_1;
|
||
|
return __generator(this, function (_a) {
|
||
|
switch (_a.label) {
|
||
|
case 0:
|
||
|
obj = {
|
||
|
DeptId: this.properties.deptid,
|
||
|
someMonthsType: this.data.someMonthsType,
|
||
|
analysisType: '1'
|
||
|
};
|
||
|
_a.label = 1;
|
||
|
case 1:
|
||
|
_a.trys.push([1, 3, , 4]);
|
||
|
return [4, partyInteract_1.getDynamicPercentAnalysis(obj)];
|
||
|
case 2:
|
||
|
res = _a.sent();
|
||
|
data1_1 = [];
|
||
|
data2_1 = [];
|
||
|
data3_1 = [];
|
||
|
xData_1 = [];
|
||
|
console.log('reszhan', res);
|
||
|
res.data.list.forEach(function (element) {
|
||
|
data1_1.unshift(element.partyDynamicTimes);
|
||
|
data2_1.unshift(element.allDynamicTimes);
|
||
|
data3_1.unshift(element.percent * 100);
|
||
|
xData_1.unshift(element.timeName);
|
||
|
});
|
||
|
this.setData({
|
||
|
data1: data1_1,
|
||
|
data2: data2_1,
|
||
|
data3: data3_1,
|
||
|
xData: xData_1,
|
||
|
});
|
||
|
this.setData({
|
||
|
data1Total: data1_1,
|
||
|
data2Total: data2_1,
|
||
|
data3Total: data3_1,
|
||
|
xDataTotal: xData_1
|
||
|
});
|
||
|
return [3, 4];
|
||
|
case 3:
|
||
|
err_1 = _a.sent();
|
||
|
console.log(err_1);
|
||
|
return [3, 4];
|
||
|
case 4: return [2];
|
||
|
}
|
||
|
});
|
||
|
});
|
||
|
},
|
||
|
initA: function () {
|
||
|
var _this = this;
|
||
|
this.ecComponentA.init(function (canvas, width, height) {
|
||
|
var chart = echarts.init(canvas, null, {
|
||
|
width: width,
|
||
|
height: height
|
||
|
});
|
||
|
echarts_1.getparticipation2(chart, _this.data.data3, _this.data.data1, _this.data.data2, _this.data.xData);
|
||
|
return chart;
|
||
|
});
|
||
|
},
|
||
|
}
|
||
|
});
|
||
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFydGljaXBhdGlvblBlcmNlbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJwYXJ0aWNpcGF0aW9uUGVyY2VudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUNBLDJFQUE0RTtBQUM1RSxxREFBNkQ7QUFDN0QscUVBQStFO0FBQy9FLFNBQVMsQ0FBQztJQUNSLFVBQVUsRUFBRTtRQUNWLE1BQU0sRUFBRTtZQUNOLElBQUksRUFBRSxNQUFNO1NBQ2I7S0FDRjtJQUNELElBQUksRUFBRTtRQUNKLEdBQUcsRUFBRTtZQUNILFFBQVEsRUFBRSxJQUFJO1NBQ2Y7UUFDRCxjQUFjLEVBQUUsS0FBSztRQUNyQixjQUFjLEVBQUUsQ0FBQztRQUNqQixRQUFRLEVBQUU7WUFDUixFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRTtZQUN4QixFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRTtZQUN4QixFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRTtZQUN4QixFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRTtTQUFDO1FBQzFCLE9BQU8sRUFBRTtZQUNQO2dCQUNFLEtBQUssRUFBRSxVQUFVO2dCQUNqQixPQUFPLEVBQUUscUJBQXFCO2FBQy9CO1lBQ0Q7Z0JBQ0UsS0FBSyxFQUFFLFFBQVE7Z0JBQ2YsT0FBTyxFQUFFLGlFQUFpRTthQUMzRTtZQUNEO2dCQUNFLEtBQUssRUFBRSxRQUFRO2dCQUNmLE9BQU8sRUFBRSxxQ0FBcUM7YUFDL0M7WUFDRDtnQkFDRSxLQUFLLEVBQUUsUUFBUTtnQkFDZixPQUFPLEVBQUUsaURBQWlEO2FBQzNEO1lBQ0Q7Z0JBQ0UsS0FBSyxFQUFFLE1BQU07Z0JBQ2IsT0FBTyxFQUFFLDRDQUE0QzthQUN0RDtTQUVGO1FBQ0QsS0FB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
|