summaryrefslogtreecommitdiff
path: root/src/views/PowerSupplies/Specification
diff options
context:
space:
mode:
Diffstat (limited to 'src/views/PowerSupplies/Specification')
-rw-r--r--src/views/PowerSupplies/Specification/PowerStaticPage.vue154
-rw-r--r--src/views/PowerSupplies/Specification/PowerSwitch.vue112
-rw-r--r--src/views/PowerSupplies/Specification/index.js2
3 files changed, 268 insertions, 0 deletions
diff --git a/src/views/PowerSupplies/Specification/PowerStaticPage.vue b/src/views/PowerSupplies/Specification/PowerStaticPage.vue
new file mode 100644
index 00000000..463e9ea2
--- /dev/null
+++ b/src/views/PowerSupplies/Specification/PowerStaticPage.vue
@@ -0,0 +1,154 @@
+<template>
+ <b-container
+ :style="{ display: 'flex', 'flex-direction': 'column' }"
+ fluid="xxl pt-0 m-0"
+ >
+ <page-title />
+ <div class="main-container">
+ <page-section class="bootstrap-table__section info_section">
+ <span class="bold-16px">{{ $t('pageInventory.powerSources') }}</span>
+ </page-section>
+ <power-switch
+ :slots="memorySlots"
+ :switch-memory="switchMemorySlot"
+ :current-memory="currentMemorySlot"
+ />
+ <page-section class="bootstrap-table__section">
+ <b-table
+ responsive="md"
+ show-empty
+ class="bootstrap-rounded-table"
+ :items="items_slots"
+ :fields="fields"
+ :empty-text="$t('global.table.emptyMessage')"
+ >
+ <template #cell(value)="{ index, value }">
+ <b-row v-if="index === 0">
+ <b-col cols="11">
+ <span>
+ {{ 'Работоспособность' }}
+ </span>
+ </b-col>
+ <b-col cols="1">
+ <img
+ src="@/assets/images/fans-page/working.svg"
+ class="icon-chevron"
+ />
+ </b-col>
+ </b-row>
+ <b-row v-else>
+ <b-col>
+ <span>{{ value }}</span>
+ </b-col>
+ </b-row>
+ </template>
+ </b-table>
+ </page-section>
+ </div>
+ </b-container>
+</template>
+
+<script>
+import PageTitle from '@/components/Global/PageTitle';
+import PageSection from '@/components/Global/PageSection';
+import PowerSwitch from './PowerSwitch';
+
+export default {
+ components: { PageTitle, PageSection, PowerSwitch },
+ data() {
+ return {
+ currentMemorySlot: 1,
+ memorySlots: [
+ { id: 1, name: 'Источник 1' },
+ { id: 2, name: 'Источник 2' },
+ { id: 3, name: 'Источник 3' },
+ { id: 4, name: 'Источник 4' },
+ { id: 5, name: 'Источник 5' },
+ { id: 6, name: 'Источник 6' },
+ { id: 7, name: 'Источник 7' },
+ { id: 8, name: 'Источник 8' },
+ { id: 9, name: 'Источник 9' },
+ { id: 10, name: 'Источник 10' },
+ { id: 11, name: 'Источник 11' },
+ { id: 12, name: 'Источник 12' },
+ { id: 13, name: 'Источник 13' },
+ { id: 14, name: 'Источник 14' },
+ { id: 15, name: 'Источник 15' },
+ ],
+ fields: [
+ {
+ key: 'parametr',
+ label: 'Параметр',
+ formatter: this.dataFormatter,
+ thClass: 'semi-bold-12px__caps bootstrap-rounded-table__head_bg',
+ class: `bootstrap-rounded-table__column-first
+ memory-table-col-first`,
+ tdClass: 'regular-12px bootstrap-rounded-table__td',
+ },
+ {
+ key: 'value',
+ label: 'Значение',
+ formatter: this.dataFormatter,
+ thClass: 'semi-bold-12px__caps bootstrap-rounded-table__head_bg',
+ class: 'bootstrap-rounded-table__column-last',
+ tdClass: 'regular-12px bootstrap-rounded-table__td',
+ },
+ ],
+ items_slots: [
+ {
+ parametr: 'Статус',
+ value: true,
+ },
+ {
+ parametr: 'Название',
+ value: 'Источник 1',
+ },
+ {
+ parametr: 'Версия прошивки',
+ value: '1.1.2257',
+ },
+ {
+ parametr: 'Серийный номер',
+ value: '4789564478551',
+ },
+ {
+ parametr: 'Номинальное напряжение',
+ value: '220 В',
+ },
+ {
+ parametr: 'Номинальная мощность',
+ value: '400 Вт',
+ },
+ {
+ parametr: 'Поддержка горячей замены',
+ value: 'Есть',
+ },
+ ],
+ };
+ },
+ methods: {
+ switchMemorySlot(period) {
+ this.currentMemorySlot = period;
+ },
+ },
+};
+</script>
+<style lang="scss">
+.memory-table-col-first {
+ width: 50%;
+}
+</style>
+
+<style lang="scss" scoped>
+.bootstrap-table__section {
+ margin-bottom: 24px;
+}
+.info_section {
+ margin-bottom: 0px;
+}
+
+.bold-16px {
+ display: block;
+ margin: 25px 0 16px 0;
+}
+</style>
diff --git a/src/views/PowerSupplies/Specification/PowerSwitch.vue b/src/views/PowerSupplies/Specification/PowerSwitch.vue
new file mode 100644
index 00000000..824c2549
--- /dev/null
+++ b/src/views/PowerSupplies/Specification/PowerSwitch.vue
@@ -0,0 +1,112 @@
+<template>
+ <div
+ ref="content"
+ class="memory-switch"
+ @wheel.prevent="wheelItBetter($event)"
+ >
+ <span
+ v-for="item in slots"
+ :key="item.id"
+ class="medium-12px scale-item"
+ :class="{ 'switch-active': currentMemory === item.id }"
+ @click="switchMemory(item.id)"
+ >{{ $t(item.name) }}</span
+ >
+ <div
+ class="slider"
+ :style="`width: 68px; left: ${
+ ((currentMemory ? currentMemory : 1) - 1) * 100 + 30
+ }px`"
+ />
+ </div>
+</template>
+
+<script>
+export default {
+ props: {
+ slots: {
+ type: Array,
+ default: null,
+ },
+ currentMemory: {
+ type: Number,
+ default: 1,
+ },
+ switchMemory: {
+ type: Function,
+ required: true,
+ },
+ },
+ data() {
+ return {
+ upHere: false,
+ container: this.$refs.content,
+ };
+ },
+ methods: {
+ wheelItBetter(event) {
+ if (event.deltaY < 0) {
+ this.$refs.content.scrollLeft -= 25;
+ } else {
+ this.$refs.content.scrollLeft += 25;
+ }
+ },
+ },
+};
+</script>
+<style lang="scss" scoped>
+.memory-switch {
+ position: relative;
+ width: calc(100vw - 320px);
+ height: 50px;
+ padding: 0 16px 0 32px;
+ display: grid;
+ grid-auto-flow: column;
+ grid-auto-columns: 100px;
+ grid-template-rows: 32px;
+ align-items: end;
+ border-bottom: 1px solid $faint-secondary-primary-10;
+ overflow-x: auto;
+ white-space: nowrap;
+ &::-webkit-scrollbar {
+ height: 2px;
+ }
+ &::-webkit-scrollbar-thumb {
+ background: rgba(26, 62, 91, 0.2);
+ border-radius: 16px;
+ background-clip: content-box;
+ height: 10px;
+ }
+}
+
+.switch-active {
+ color: $red-brand-primary;
+ transition: ease-in 0.15s;
+}
+
+.slider {
+ position: absolute;
+ height: 0px;
+ border-bottom: 4px solid $red-brand-primary;
+ transition: ease-in 0.2s;
+ bottom: 0px;
+}
+
+.scale-item {
+ display: inline-block;
+ width: 100px;
+ margin-right: 6px;
+ cursor: pointer;
+}
+
+.date-picker {
+ display: flex;
+ align-items: center;
+ gap: 9px;
+}
+
+.date-clear {
+ margin-left: auto;
+ cursor: pointer;
+}
+</style>
diff --git a/src/views/PowerSupplies/Specification/index.js b/src/views/PowerSupplies/Specification/index.js
new file mode 100644
index 00000000..14c4ef64
--- /dev/null
+++ b/src/views/PowerSupplies/Specification/index.js
@@ -0,0 +1,2 @@
+import PowerStaticPage from './PowerStaticPage.vue';
+export default PowerStaticPage;