From 5463c8aec08dfa07a01f95646e44a3b4bee070fe Mon Sep 17 00:00:00 2001 From: Vitalii Lysak Date: Fri, 26 Aug 2022 14:50:55 +0300 Subject: optimization for dynamic --- src/components/_sila/Global/Chart.vue | 7 ++- src/components/_sila/Global/Collapse.vue | 19 +++++--- src/store/modules/HardwareStatus/FanStore.js | 51 +++++++++++++++++----- src/views/_sila/Fans/Dynamic/FanSpeedCpu.vue | 20 ++++++--- src/views/_sila/Fans/Dynamic/FanSpeedSystem.vue | 20 ++++++--- src/views/_sila/Fans/Dynamic/FansDynamicPage.vue | 24 ++++++++-- src/views/_sila/Power/Dynamic/CurrentInput.vue | 13 ++++-- src/views/_sila/Power/Dynamic/CurrentOutput.vue | 13 +++++- src/views/_sila/Power/Dynamic/PowerDynamicPage.vue | 38 ++++++++-------- src/views/_sila/Power/Dynamic/PowerInput.vue | 13 ++++-- src/views/_sila/Power/Dynamic/PowerOutput.vue | 12 ++++- src/views/_sila/Power/Dynamic/PowerTemp.vue | 14 ++++-- src/views/_sila/Power/Dynamic/VoltInput.vue | 13 ++++-- src/views/_sila/Power/Dynamic/VoltOutput.vue | 14 +++--- src/views/_sila/Processors/Dynamic/CpuPower.vue | 19 ++++++-- src/views/_sila/Processors/Dynamic/CpuTemp.vue | 14 ++++-- .../Processors/Dynamic/ProcessorsDynamicPage.vue | 24 ++++++++-- 17 files changed, 242 insertions(+), 86 deletions(-) diff --git a/src/components/_sila/Global/Chart.vue b/src/components/_sila/Global/Chart.vue index 6b070a42..f6c389f8 100644 --- a/src/components/_sila/Global/Chart.vue +++ b/src/components/_sila/Global/Chart.vue @@ -46,8 +46,11 @@ export default { }, computed: { readyData() { - let filteredData = this.data.filter((metric) => { - return metric.Value !== 'nan'; + let filteredData = this.data.map((metric) => { + return { + ...metric, + Value: metric.Value === 'nan' ? 0 : metric.Value, + }; }); filteredData.sort((a, b) => { diff --git a/src/components/_sila/Global/Collapse.vue b/src/components/_sila/Global/Collapse.vue index 36778571..280e769b 100644 --- a/src/components/_sila/Global/Collapse.vue +++ b/src/components/_sila/Global/Collapse.vue @@ -4,13 +4,12 @@ v-b-toggle="id" variant="collapse" class="d-flex flex-nowrap justify-content-start" - @click="onClick" > {{ title }} - + @@ -29,18 +28,24 @@ export default { type: String, default: null, }, + opened: { + type: Boolean, + default: false, + }, }, data() { return { - opened: true, + visible: false, iconChevronUp: iconChevronUp, }; }, - methods: { - onClick() { - this.opened = !this.opened; - this.$emit('opened', this.opened); + watch: { + visible() { + this.$emit('opened', this.visible); }, }, + created() { + this.visible = this.opened; + }, }; diff --git a/src/store/modules/HardwareStatus/FanStore.js b/src/store/modules/HardwareStatus/FanStore.js index 8cae4d77..98dfb5be 100644 --- a/src/store/modules/HardwareStatus/FanStore.js +++ b/src/store/modules/HardwareStatus/FanStore.js @@ -4,13 +4,17 @@ import i18n from '@/i18n'; const FanStore = { namespaced: true, state: { - fans: [], - fansLastHour: [], + fansCpu: [], + fansCpuLastHour: [], + fansSystem: [], + fansSystemLastHour: [], limits: [], }, getters: { - fans: (state) => state.fans, - fansLastHour: (state) => state.fansLastHour, + fansCpu: (state) => state.fansCpu, + fansCpuLastHour: (state) => state.fansCpuLastHour, + fansSystem: (state) => state.fansCpu, + fansSystemLastHour: (state) => state.fansCpuLastHour, limits: (state) => state.limits, }, mutations: { @@ -43,11 +47,17 @@ const FanStore = { }); }, - setFansDynamic: (state, data) => { - state.fans = data; + setFansCpu: (state, data) => { + state.fansCpu = data; }, - setFansDynamicLastHour: (state, data) => { - state.fansLastHour = data; + setFansCpuLastHour: (state, data) => { + state.fansCpuLastHour = data; + }, + setFansSystem: (state, data) => { + state.fansSystem = data; + }, + setFansSystemLastHour: (state, data) => { + state.fansSystemLastHour = data; }, setLimits: (state, data) => { state.limits = data; @@ -88,7 +98,26 @@ const FanStore = { }) .catch((error) => console.log(error)); }, - async getFansDynamic({ commit }, { lastHour }) { + async getFansCpu({ commit }, { lastHour }) { + let url = null; + if (lastHour) { + url = + '/redfish/v1/TelemetryService/MetricReports/fans&period=last_hour'; + } else { + url = '/redfish/v1/TelemetryService/MetricReports/fans'; + } + return await api + .get(url) + .then(({ data: { MetricValues = [] } }) => { + if (lastHour) { + commit('setFansCpuLastHour', MetricValues); + } else { + commit('setFansCpu', MetricValues); + } + }) + .catch((error) => console.log(error)); + }, + async getFansSystem({ commit }, { lastHour }) { let url = null; if (lastHour) { url = @@ -100,9 +129,9 @@ const FanStore = { .get(url) .then(({ data: { MetricValues = [] } }) => { if (lastHour) { - commit('setFansDynamicLastHour', MetricValues); + commit('setFansSystemLastHour', MetricValues); } else { - commit('setFansDynamic', MetricValues); + commit('setFansSystem', MetricValues); } }) .catch((error) => console.log(error)); diff --git a/src/views/_sila/Fans/Dynamic/FanSpeedCpu.vue b/src/views/_sila/Fans/Dynamic/FanSpeedCpu.vue index c24bc8d7..b4c5dfdd 100644 --- a/src/views/_sila/Fans/Dynamic/FanSpeedCpu.vue +++ b/src/views/_sila/Fans/Dynamic/FanSpeedCpu.vue @@ -1,7 +1,9 @@