Files
luos/resources/assets/js/home/TaskMetrics/TaskMetrics.vue

106 lines
2.5 KiB
Vue
Raw Normal View History

2021-07-30 20:18:11 +00:00
<template>
<div id="v-pm-task-metrics" ref="v-pm-task-metrics" class="v-pm-task-metrics">
<button-fleft :data="newCase"></button-fleft>
<div class="p-1 v-flex">
2021-08-12 19:05:50 +00:00
<h4 class="v-search-title">
2022-01-05 17:07:21 +00:00
{{ $t("ID_TASK_METRICS") }}
2021-08-12 19:05:50 +00:00
<span class="vp-padding-r3"> <i class="fas fa-chart-pie"></i></span>
</h4>
2021-07-30 20:18:11 +00:00
</div>
<modal-new-request ref="newRequest"></modal-new-request>
<div class="d-inline-flex p-2">
2021-08-16 18:54:43 +00:00
<vue-charts
2021-09-25 00:01:50 +00:00
:key="random"
2021-08-16 18:54:43 +00:00
ref="pm-vue-chart"
@onChangeLevel="changeLevel"
:levels="visited"
2021-08-16 18:54:43 +00:00
/>
2021-07-30 20:18:11 +00:00
<div class="vp-6"></div>
<drill-down :visited="visited" @onChangeLevel="changeLevel" />
2021-07-30 20:18:11 +00:00
</div>
2021-09-25 00:01:50 +00:00
</div>
2021-07-30 20:18:11 +00:00
</template>
<script>
import ButtonFleft from "../../components/home/ButtonFleft.vue";
import ModalNewRequest from "../ModalNewRequest.vue";
import DrillDown from "./DrillDown.vue";
import VueCharts from "./VueCharts.vue";
import defaultMixins from "./defaultMixins";
2021-09-25 00:01:50 +00:00
import _ from "lodash";
2021-07-30 20:18:11 +00:00
export default {
name: "TaskMetrics",
mixins: [defaultMixins],
components: {
2021-09-25 00:01:50 +00:00
ButtonFleft,
2021-07-30 20:18:11 +00:00
ModalNewRequest,
DrillDown,
VueCharts,
},
props: ["settings"],
2021-07-30 20:18:11 +00:00
data() {
let that = this;
2021-08-12 19:05:50 +00:00
return {
2021-09-25 00:01:50 +00:00
random: _.random(0, 100000),
visited:
this.settings && this.settings.visited
? this.settings.visited
: [
{
level: 0,
active: true,
id: _.random(0, 100),
},
],
2021-08-12 19:05:50 +00:00
};
2021-07-30 20:18:11 +00:00
},
created() {},
2021-09-24 18:04:48 +00:00
mounted() {},
2021-07-30 20:18:11 +00:00
computed: {},
updated() {},
beforeCreate() {},
2021-08-12 19:05:50 +00:00
methods: {
2021-08-26 21:12:39 +00:00
/**
* Change level in drill down
*/
changeLevel(data) {
2021-09-27 22:05:05 +00:00
let item = _.findIndex(this.visited, (el) => {
return el.id == data.id;
});
this.visited.forEach(function (elem) {
2021-09-25 00:01:50 +00:00
elem.active = false;
});
2021-09-25 00:01:50 +00:00
data.active = true;
item != -1 ? this.visited.splice(item, 1, data) : null;
if (item == -1) {
data.active = true;
2021-09-25 00:01:50 +00:00
this.visited = _.filter(this.visited, function (o) {
return o.level < data.level;
2021-09-24 17:56:33 +00:00
});
this.visited.push(data);
}
2021-09-25 00:01:50 +00:00
this.random = _.random(0, 100000);
this.$emit("updateSettings", {
data: this.visited,
key: "visited",
page: "task-metrics",
type: "normal",
2021-09-25 00:01:50 +00:00
id: this.id,
});
2021-09-25 00:01:50 +00:00
},
2021-08-12 19:05:50 +00:00
},
2021-07-30 20:18:11 +00:00
};
</script>
<style>
.v-pm-task-metrics {
padding-top: 20px;
padding-bottom: 20px;
padding-left: 50px;
padding-right: 50px;
}
2021-08-12 19:05:50 +00:00
.vp-padding-r3 {
padding-right: 3rem;
2021-07-30 20:18:11 +00:00
}
</style>