Merged in bugfix/PMCORE-3328 (pull request #8169)

PMCORE-3328

Approved-by: Henry Jonathan Quispe Quispe
This commit is contained in:
Rodrigo Quelca
2021-09-24 19:11:22 +00:00
committed by Julio Cesar Laura Avendaño
7 changed files with 142 additions and 129 deletions

View File

@@ -8,7 +8,7 @@
<h6 class="v-search-title">{{ $t("ID_DRILL_DOWN_NAVIGATOR") }}</h6> <h6 class="v-search-title">{{ $t("ID_DRILL_DOWN_NAVIGATOR") }}</h6>
</div> </div>
<div <div
v-for="item in loadItems(data, level)" v-for="item in loadItems()"
:key="item.content" :key="item.content"
class="vp-padding-b10" class="vp-padding-b10"
@click="onClick(item)" @click="onClick(item)"
@@ -29,7 +29,7 @@ export default {
name: "DrillDown", name: "DrillDown",
mixins: [], mixins: [],
components: {}, components: {},
props: ["level"], props: ["visited"],
data() { data() {
let that = this; let that = this;
return { return {
@@ -37,35 +37,38 @@ export default {
"rounded-circle": true, "rounded-circle": true,
"v-pm-drill-down-number": true, "v-pm-drill-down-number": true,
"vp-btn-secondary": true, "vp-btn-secondary": true,
"vp-btn-primary-inactive": false,
"btn-primary": false, "btn-primary": false,
"vp-block": true, "vp-block": true,
}, },
data: [ data: [
{ {
label: that.$t("ID_LEVEL"), label: that.$t("ID_LEVEL"),
content: "0", content: 0,
click() { click(elem) {
that.$emit("onChangeLevel", 0); that.$emit("onChangeLevel", elem);
}, },
}, },
{ {
label: that.$t("ID_LEVEL"), label: that.$t("ID_LEVEL"),
content: "1", content: 1,
click() { click(elem) {
that.$emit("onChangeLevel", 1); that.$emit("onChangeLevel", elem);
}, },
}, },
{ {
label: that.$t("ID_LEVEL"), label: that.$t("ID_LEVEL"),
content: "2", content: 2,
click() { click(elem) {
that.$emit("onChangeLevel", 2); that.$emit("onChangeLevel", elem);
}, },
}, },
{ {
label: that.$t("ID_LEVEL"), label: that.$t("ID_LEVEL"),
content: "3", content: 3,
click() {}, click(elem) {
that.$emit("onChangeLevel", elem);
},
}, },
], ],
}; };
@@ -73,7 +76,11 @@ export default {
created() {}, created() {},
mounted() {}, mounted() {},
watch: {}, watch: {},
computed: {}, computed: {
level: function () {
return _.find(this.visited, {'active': true }).level ;
}
},
updated() {}, updated() {},
beforeCreate() {}, beforeCreate() {},
methods: { methods: {
@@ -81,36 +88,33 @@ export default {
* Click in drill option * Click in drill option
*/ */
onClick(item) { onClick(item) {
let array, let elem =_.find(this.visited, {'level': item.content });
i = 0, if (elem) {
nindex; item.click(elem);
array = _.clone(this.data);
array.forEach((el) => {
if (el.content === item.content) {
nindex = i;
}
i++;
});
this.index = nindex;
if (nindex <= this.level) {
item.click(item);
} }
}, },
/** /**
* Load items in drill items * Load items in drill items
*/ */
loadItems(items, index) { loadItems() {
let array, let array,
i = 0, that = this,
that = this; item;
array = _.clone(items); array = _.clone(this.data);
array.forEach((el) => { array.forEach((el) => {
el.classObject = _.clone(that.classObject); el.classObject = _.clone(that.classObject);
if (i <= index) { item =_.find(this.visited, {'level': el.content });
if (item) {
if (item.active){
el.classObject["vp-btn-primary-inactive"] = false;
el.classObject["vp-btn-secondary"] = false; el.classObject["vp-btn-secondary"] = false;
el.classObject["btn-primary"] = true; el.classObject["btn-primary"] = true;
} else {
el.classObject["vp-btn-secondary"] = false;
el.classObject["btn-primary"] = false;
el.classObject["vp-btn-primary-inactive"] = true;
}
} }
i += 1;
}); });
return array; return array;
}, },
@@ -155,6 +159,18 @@ export default {
border-color: #6c757d; border-color: #6c757d;
} }
.vp-btn-primary-inactive {
color: #6c757d;
background-color: #007bff;
border-color: #007bff;
}
.vp-btn-primary-inactive:hover {
color: #6c757d;
background-color: #0066d3;
border-color: #0066d3;
}
.v-pm-drill-down { .v-pm-drill-down {
vertical-align: top; vertical-align: top;
padding-left: 50px; padding-left: 50px;

View File

@@ -12,10 +12,10 @@
<vue-charts <vue-charts
ref="pm-vue-chart" ref="pm-vue-chart"
@onChangeLevel="changeLevel" @onChangeLevel="changeLevel"
:level="level" :levels="visited"
/> />
<div class="vp-6"></div> <div class="vp-6"></div>
<drill-down :level="level" @onChangeLevel="updateVueChart" /> <drill-down :visited="visited" @onChangeLevel="changeLevel" />
</div> </div>
</div> </div>
</template> </template>
@@ -36,16 +36,21 @@ export default {
DrillDown, DrillDown,
VueCharts, VueCharts,
}, },
props: [], props: ["settings"],
data() { data() {
let that = this; let that = this;
return { return {
visited: this.settings && this.settings.visited ? this.settings.visited : [
{
level: 0, level: 0,
active: true,
id: _.random(0,100),
}
]
}; };
}, },
created() {}, created() {},
mounted() {}, mounted() {},
watch: {},
computed: {}, computed: {},
updated() {}, updated() {},
beforeCreate() {}, beforeCreate() {},
@@ -53,14 +58,27 @@ export default {
/** /**
* Change level in drill down * Change level in drill down
*/ */
changeLevel(lv) { changeLevel(data) {
this.level = lv; let item = _.find(this.visited, data);
}, this.visited.forEach(function (elem) {
/** elem.active = false;
* update data in charts });
*/ if(!item) {
updateVueChart(lv) { data.active = true;
this.$refs["pm-vue-chart"].onChangeLevel(lv); this.visited = _.filter(this.visited, function(o) {
return o.level < data.level;
});
this.visited.push(data);
} else {
item.active = true;
}
this.$emit("updateSettings", {
data: this.visited,
key: "visited",
page: "task-metrics",
type: "normal",
id: this.id
});
}, },
}, },
}; };

View File

@@ -276,10 +276,10 @@ export default {
changeOption(option) { changeOption(option) {
let that = this, let that = this,
dt = {}; dt = {};
if (this.data.length > 0) { if (this.data.length > 1) {
dt = { dt = {
category: option.id, category: option.id,
caseList: this.data[0].id.toLowerCase(), caseList: this.data[1].id.toLowerCase(),
processes: this.selectedProcesses, processes: this.selectedProcesses,
top: this.top, top: this.top,
}; };
@@ -401,7 +401,7 @@ export default {
this.$emit("updateDataLevel", { this.$emit("updateDataLevel", {
id: this.currentSelection["PRO_ID"], id: this.currentSelection["PRO_ID"],
name: this.currentSelection["PRO_TITLE"], name: this.currentSelection["PRO_TITLE"],
level: 1, level: 2,
data: this.currentSelection, data: this.currentSelection,
}); });
}, },
@@ -409,7 +409,7 @@ export default {
* Show popover data options * Show popover data options
*/ */
onClickData() { onClickData() {
let taskList = this.data[0].id.toLowerCase(), let taskList = this.data[1].id.toLowerCase(),
obj = { obj = {
autoshow: false, autoshow: false,
fieldId: "processName", fieldId: "processName",

View File

@@ -215,8 +215,8 @@ export default {
dt; dt;
if (this.dateFrom && this.dateTo) { if (this.dateFrom && this.dateTo) {
dt = { dt = {
process: this.data[1].id, process: this.data[2].id,
caseList: this.data[0].id.toLowerCase(), caseList: this.data[1].id.toLowerCase(),
dateFrom: moment(this.dateFrom).format("DD/MM/YYYY"), dateFrom: moment(this.dateFrom).format("DD/MM/YYYY"),
dateTo: moment(this.dateTo).format("DD/MM/YYYY"), dateTo: moment(this.dateTo).format("DD/MM/YYYY"),
riskStatus: this.riskType, riskStatus: this.riskType,
@@ -272,7 +272,7 @@ export default {
}); });
this.updateApexchartAxis(); this.updateApexchartAxis();
if (this.data[0].id.toLowerCase() == "draft") { if (this.data[1].id.toLowerCase() == "draft") {
this.series = []; // Draft is empty this.series = []; // Draft is empty
} else { } else {
this.series = serie; this.series = serie;

View File

@@ -178,10 +178,11 @@ export default {
changeOption() { changeOption() {
let that = this, let that = this,
dt; dt;
if (this.data.length > 2) {
if (this.dateFrom && this.dateTo && this.period) { if (this.dateFrom && this.dateTo && this.period) {
dt = { dt = {
processId: this.data[1].id, processId: this.data[2].id,
caseList: this.data[0].id.toLowerCase(), caseList: this.data[1].id.toLowerCase(),
dateFrom: moment(this.dateFrom).format("DD/MM/YYYY"), dateFrom: moment(this.dateFrom).format("DD/MM/YYYY"),
dateTo: moment(this.dateTo).format("DD/MM/YYYY"), dateTo: moment(this.dateTo).format("DD/MM/YYYY"),
groupBy: this.period, groupBy: this.period,
@@ -195,6 +196,7 @@ export default {
console.error(e); console.error(e);
}); });
} }
}
}, },
/** /**
* Format response from API * Format response from API
@@ -212,13 +214,13 @@ export default {
this.$refs["LevelTwoChart"].updateOptions({ this.$refs["LevelTwoChart"].updateOptions({
labels: labels, labels: labels,
title: { title: {
text: this.data[0]["PRO_TITLE"], text: this.data[1]["PRO_TITLE"],
align: "left", align: "left",
}, },
}); });
this.$apexcharts.exec("LevelTwoChart", "updateSeries", [ this.$apexcharts.exec("LevelTwoChart", "updateSeries", [
{ {
name: this.data[0]["PRO_TITLE"], name: this.data[1]["PRO_TITLE"],
data: serie, data: serie,
}, },
]); ]);
@@ -228,9 +230,9 @@ export default {
*/ */
onClickDrillDown() { onClickDrillDown() {
this.$emit("updateDataLevel", { this.$emit("updateDataLevel", {
id: this.data[1]["id"], id: this.data[2]["id"],
name: this.data[1]["name"], name: this.data[2]["name"],
level: 2, level: 3,
data: null, data: null,
}); });
}, },
@@ -238,7 +240,7 @@ export default {
* Show popover data options * Show popover data options
*/ */
onClickData() { onClickData() {
let taskList = this.data[0].id.toLowerCase(), let taskList = this.data[1].id.toLowerCase(),
obj = [ obj = [
{ {
autoshow: false, autoshow: false,
@@ -246,10 +248,10 @@ export default {
filterVar: "process", filterVar: "process",
label: "", label: "",
options: { options: {
label: this.data[1]["name"], label: this.data[2]["name"],
value: this.data[1]["id"], value: this.data[2]["id"],
}, },
value: this.data[1]["id"], value: this.data[2]["id"],
}, },
{ {
autoShow: false, autoShow: false,

View File

@@ -84,7 +84,7 @@ export default {
that.$emit("updateDataLevel", { that.$emit("updateDataLevel", {
id: that.currentSelection["List Name"], id: that.currentSelection["List Name"],
name: that.currentSelection["List Name"], name: that.currentSelection["List Name"],
level: 0, level: 1,
color: that.formatColor(that.currentSelection["Color"]), color: that.formatColor(that.currentSelection["Color"]),
data: that.currentSelection, data: that.currentSelection,
}); });

View File

@@ -8,24 +8,21 @@
<vue-chart-lv-one <vue-chart-lv-one
:key="key1" :key="key1"
v-show="level === 1" v-show="level === 1"
:data="data" :data="levels"
@onChangeLevel="onChangeLevel"
@updateDataLevel="updateDataLevel" @updateDataLevel="updateDataLevel"
:breadCrumbs="dataBreadCrumbs()" :breadCrumbs="dataBreadCrumbs()"
/> />
<vue-chart-lv-two <vue-chart-lv-two
:key="key2" :key="key2"
v-show="level === 2" v-show="level === 2"
:data="data" :data="levels"
@onChangeLevel="onChangeLevel"
@updateDataLevel="updateDataLevel" @updateDataLevel="updateDataLevel"
:breadCrumbs="dataBreadCrumbs()" :breadCrumbs="dataBreadCrumbs()"
/> />
<vue-chart-lv-three <vue-chart-lv-three
:key="key3" :key="key3"
v-show="level === 3" v-show="level === 3"
:data="data" :data="levels"
@onChangeLevel="onChangeLevel"
:breadCrumbs="dataBreadCrumbs()" :breadCrumbs="dataBreadCrumbs()"
/> />
</div> </div>
@@ -47,15 +44,13 @@ export default {
VueChartLvTwo, VueChartLvTwo,
VueChartLvThree, VueChartLvThree,
}, },
props: [], props: ["levels"],
data() { data() {
let that = this; let that = this;
return { return {
level: 0,
key1: _.random(0,100), key1: _.random(0,100),
key2: _.random(0,100), key2: _.random(0,100),
key3: _.random(0,100), key3: _.random(0,100),
data: [],
settingsBreadCrumbs: [ settingsBreadCrumbs: [
{ {
class: "fas fa-info-circle", class: "fas fa-info-circle",
@@ -67,7 +62,11 @@ export default {
created() {}, created() {},
mounted() {}, mounted() {},
watch: {}, watch: {},
computed: {}, computed: {
level: function () {
return _.find(this.levels, {'active': true }).level;
}
},
updated() {}, updated() {},
beforeCreate() {}, beforeCreate() {},
methods: { methods: {
@@ -75,13 +74,11 @@ export default {
* Set data level 0 * Set data level 0
*/ */
updateDataLevel(data) { updateDataLevel(data) {
this.data.push(data); this.$emit("onChangeLevel", data);
this.level = data.level + 1; this.updateKey(data.level);
this.$emit("onChangeLevel", data.level + 1);
this.updateKey();
}, },
updateKey() { updateKey(level) {
switch (this.level) { switch (level) {
case 0: case 0:
break; break;
case 1: case 1:
@@ -95,26 +92,6 @@ export default {
break; break;
} }
}, },
/**
* Format data to vue charts any level
*/
formatData() {
return {
level: this.level,
data: this.data,
};
},
/**
* Change level with changes in data
* @param {object} lv
*/
onChangeLevel(lv) {
_.remove(this.data, function (n) {
return n.level >= lv;
});
this.level = lv;
this.$emit("onChangeLevel", this.level);
},
/** /**
* Format data for data beadcrumbs * Format data for data beadcrumbs
*/ */
@@ -122,12 +99,12 @@ export default {
let res = [], let res = [],
that = this, that = this,
index = 0; index = 0;
_.each(this.data, (el) => { _.each(this.levels, (el) => {
if (index <= that.level && el.data) { if (index <= that.level && el.data) {
res.push({ res.push({
label: el.name, label: el.name,
onClick() { onClick() {
that.onChangeLevel(el.level); this.$emit("onChangeLevel", el);
}, },
data: el, data: el,
}); });