add dashboard component
This commit is contained in:
Binary file not shown.
|
After Width: | Height: | Size: 406 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 1.0 MiB |
Binary file not shown.
|
After Width: | Height: | Size: 1.6 MiB |
Binary file not shown.
|
After Width: | Height: | Size: 1.9 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 4.6 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 8.2 KiB |
@@ -0,0 +1,21 @@
|
||||
// out: false, sourceMap: false, main: ../style.less
|
||||
@import "grid-system.less";
|
||||
@import "colors.less";
|
||||
@import "fonts.less";
|
||||
@modal: modal;
|
||||
.dashboard{
|
||||
height: 100%;
|
||||
width: 100%;
|
||||
background-image: url("../../assets/icons/png/bg.png");
|
||||
section{
|
||||
display: flex;
|
||||
.specific{
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
div{
|
||||
display: flex;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,6 +1,7 @@
|
||||
// out: false, sourceMap: false, main: ../style.less
|
||||
@import "colors.less";
|
||||
@import "modals.less";
|
||||
@import "dashboard.less";
|
||||
@import "pirometro.less";
|
||||
@import "riscaldi.less";
|
||||
@import "formato.less";
|
||||
|
||||
@@ -3670,6 +3670,21 @@
|
||||
box-sizing: border-box;
|
||||
resize: none;
|
||||
}
|
||||
.dashboard {
|
||||
height: 100%;
|
||||
width: 100%;
|
||||
background-image: url("../../assets/icons/png/bg.png");
|
||||
}
|
||||
.dashboard section {
|
||||
display: flex;
|
||||
}
|
||||
.dashboard section .specific {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
}
|
||||
.dashboard section .specific div {
|
||||
display: flex;
|
||||
}
|
||||
.modal.pirometro-info {
|
||||
width: 1820px;
|
||||
height: 980px;
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<template>
|
||||
<div class="container">
|
||||
<div id="app">
|
||||
<app-header :class="{'blur':applyBlur}"></app-header>
|
||||
<app-header :blurHeader="applyBlur"></app-header>
|
||||
<alarm-list :applyBlur="applyBlur"></alarm-list>
|
||||
|
||||
<under-the-hood :class="{'blur':(applyBlur || applyBlurNc)}"></under-the-hood>
|
||||
|
||||
@@ -216,31 +216,31 @@ function addMockData(){
|
||||
reps: 12324
|
||||
}
|
||||
|
||||
alarm={
|
||||
id:1,
|
||||
guid:"ILYGYFC",
|
||||
source:"PLC",
|
||||
message:"allarmeprove1",
|
||||
Message:"allarmeprova1",
|
||||
dateTime:null,
|
||||
DateTime:null,
|
||||
isWarning:false,
|
||||
restorationIsEnabled:false,
|
||||
process:1
|
||||
}
|
||||
// alarm={
|
||||
// id:1,
|
||||
// guid:"ILYGYFC",
|
||||
// source:"PLC",
|
||||
// message:"allarmeprove1",
|
||||
// Message:"allarmeprova1",
|
||||
// dateTime:null,
|
||||
// DateTime:null,
|
||||
// isWarning:false,
|
||||
// restorationIsEnabled:false,
|
||||
// process:1
|
||||
// }
|
||||
|
||||
alarm2={
|
||||
id:2,
|
||||
guid:"VKYCOLUV",
|
||||
source:"PLC",
|
||||
message:"allarmeprova2",
|
||||
Message:"allarmeprova2",
|
||||
dateTime:null,
|
||||
DateTime:null,
|
||||
isWarning:false,
|
||||
restorationIsEnabled:false,
|
||||
process:2
|
||||
}
|
||||
// alarm2={
|
||||
// id:2,
|
||||
// guid:"VKYCOLUV",
|
||||
// source:"PLC",
|
||||
// message:"allarmeprova2",
|
||||
// Message:"allarmeprova2",
|
||||
// dateTime:null,
|
||||
// DateTime:null,
|
||||
// isWarning:false,
|
||||
// restorationIsEnabled:false,
|
||||
// process:2
|
||||
// }
|
||||
|
||||
processModelActions.addProcess(store,process);
|
||||
machineInfoActions.updateMachineInfo(store,machineInfo);
|
||||
|
||||
@@ -16,6 +16,7 @@ import ShowEstrazioneInfo from "@/app_modules_thermo/setup/estrazione/components
|
||||
import ShowVuotoInfo from "@/app_modules_thermo/setup/vuoto/show-vuoto-info.vue";
|
||||
import ShowImbutituraInfo from "@/app_modules_thermo/setup/imbutitura/show-imbutitura-info.vue";
|
||||
import ShowOpzioniInfo from "@/app_modules_thermo/setup/opzioni/show-opzioni-info.vue";
|
||||
import Dashboard from "@/app_modules_thermo/dashboard/dashboard.vue";
|
||||
import ShowArretramentoRiscaldiInfo from "@/app_modules_thermo/processo/arretramento-riscaldi/show-arretramento-riscladi-info.vue";
|
||||
// import { DataService } from "./services/dataService";
|
||||
// import { ToolingService } from "./services/toolingService";
|
||||
@@ -51,6 +52,7 @@ let HMIScreenshotInterval;
|
||||
let HMIprodTimeout;
|
||||
let RerenderInterval;
|
||||
|
||||
messageService.subscribeToChannel("show-dashboard-info", () => { ModalHelper.ShowModal(Dashboard); });
|
||||
messageService.subscribeToChannel("show-arretramento-riscaldi-info", () => { ModalHelper.ShowModal(ShowArretramentoRiscaldiInfo); });
|
||||
messageService.subscribeToChannel("show-opzioni-info", () => { ModalHelper.ShowModal(ShowOpzioniInfo); });
|
||||
messageService.subscribeToChannel("show-vuoto-info", () => { ModalHelper.ShowModal(ShowVuotoInfo); });
|
||||
|
||||
@@ -0,0 +1,60 @@
|
||||
import Vue from 'vue';
|
||||
import Component from 'vue-class-component';
|
||||
import {Prop} from 'vue-property-decorator';
|
||||
import { messageService } from '@/_base';
|
||||
import { ModalHelper } from '@/components/modals';
|
||||
import AppRibbon from "@/components/app-ribbon.vue";
|
||||
import { AppModel } from '@/store';
|
||||
|
||||
@Component({
|
||||
components: {
|
||||
appRibbon: AppRibbon
|
||||
}
|
||||
})
|
||||
export default class Dashboard extends Vue{
|
||||
|
||||
$store: any;
|
||||
|
||||
public get state() { return this.$store.state.machineStatus; };
|
||||
public get isMainViewLiftedUp() { return this.$store.state.isMainViewLiftedUp; }
|
||||
public get mainStatus() { return this.$store.getters.mainStatus; };
|
||||
public get powerOnStatus() { return this.$store.getters.powerOnAlarms; };
|
||||
|
||||
|
||||
|
||||
public get ribbonStatus(): ribbonStatusEnum {
|
||||
|
||||
// Controllo se ci sono allarmi
|
||||
let s = this.$store.state as AppModel;
|
||||
|
||||
if (s.alarms.alarms.length > 0) return ribbonStatusEnum.Alarm;
|
||||
if (s.alarms.warnings.length > 0) return ribbonStatusEnum.Warning;
|
||||
if (s.process.running) return ribbonStatusEnum.Working;
|
||||
return ribbonStatusEnum.Idle;
|
||||
|
||||
}
|
||||
|
||||
public get showDetails(): boolean {
|
||||
let s = this.$store.state as AppModel;
|
||||
switch (this.ribbonStatus) {
|
||||
case ribbonStatusEnum.Warning:
|
||||
return s.alarms.warnings.length == 1;
|
||||
case ribbonStatusEnum.Alarm:
|
||||
return s.alarms.alarms.length == 1;
|
||||
default: return false;
|
||||
}
|
||||
}
|
||||
|
||||
close() {
|
||||
messageService.deleteChannel("esc_pressed");
|
||||
ModalHelper.HideModal();
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
enum ribbonStatusEnum {
|
||||
Idle = 0,
|
||||
Working = 1,
|
||||
Warning = 2,
|
||||
Alarm = 3
|
||||
}
|
||||
@@ -0,0 +1,80 @@
|
||||
<template>
|
||||
<div class="dashboard">
|
||||
<!-- <div class="header">
|
||||
<div slot="header-buttons">
|
||||
<button class="modal-close" @click="close()">
|
||||
<i class="fa fa-remove"></i>
|
||||
</button>
|
||||
</div>
|
||||
</div> -->
|
||||
<div slot="header-buttons">
|
||||
<button class="modal-close" @click="close()">
|
||||
<i class="fa fa-remove"></i>
|
||||
</button>
|
||||
</div>
|
||||
<!--
|
||||
<app-ribbon :status="{'alarm': ribbonStatus == 3, 'working': ribbonStatus == 1, 'warning': ribbonStatus == 2}"
|
||||
:expanded="ribbonStatus>1"
|
||||
:show-expander="ribbonStatus>1"
|
||||
:has-service="serviceRequired">
|
||||
<i class="fa fa-check" slot="icon" :title="'header_tooltip_nc_idle' | localize('Nc in Idle state')"></i>
|
||||
<div slot="content" class="content" v-if="ribbonStatus>1" :title="'header_tooltip_nc_error' | localize('Open/Close alarm list')">
|
||||
<strong v-if="!showDetails">{{alarmTitle | localize(alarmTitle,alarmCount)}}</strong>
|
||||
<strong v-if="showDetails && alarms[0].title">{{alarms[0].title}}</strong>
|
||||
<strong v-if="showDetails && !alarms[0].title">{{'alarm_'+ alarms[0].id | localize('alarm_'+ alarms[0].id)}}</strong>
|
||||
<div v-if="showDetails">
|
||||
<span class="processes">{{alarms[0].source}}</span>
|
||||
<span class="processes" v-if="alarms[0].source === 'PLC' && alarms[0].process.length>0">
|
||||
<span v-for="p in alarms[0].process" :key="p" >{{ p }} </span>
|
||||
</span>
|
||||
<span class="processes" v-if="alarms[0].source !== 'PLC' && alarms[0].process">{{ alarms[0].process }}</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div slot="service" class="content" v-if="serviceRequired">
|
||||
<strong>{{'header_maintainance_request' | localize('Effettuare manutenzione')}}</strong>
|
||||
<span>{{'header_maintainance_request_explanation' | localize('C\'è una procedura da effettuare')}}</span>
|
||||
</div>
|
||||
</app-ribbon> -->
|
||||
<!-- <app-header :class="{'blur':applyBlur}"></app-header> -->
|
||||
|
||||
<!-- <section>
|
||||
<div class="specific">
|
||||
<div>
|
||||
<img src="assets/icons/png/inv.png">
|
||||
<label>(temperatura)</label>
|
||||
</div>
|
||||
<div>
|
||||
<button>-</button>
|
||||
<div class="specific">
|
||||
<label>setpoint</label>
|
||||
<label>(temperatura)</label>
|
||||
</div>
|
||||
<button>+</button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="specific">
|
||||
<label>TEMPO RESTANTE</label>
|
||||
<label>(tempo)</label>
|
||||
</div>
|
||||
<div class="specific">
|
||||
<div>
|
||||
<div class="specific">
|
||||
<label>PEZZI/ORA</label>
|
||||
<label>(rapporto)</label>
|
||||
</div>
|
||||
<div class="specific">
|
||||
<label>TEMPO/CICLO</label>
|
||||
<label>(rapporto)</label>
|
||||
</div>
|
||||
</div>
|
||||
<div></div>
|
||||
<aside class="scrollable">
|
||||
|
||||
</aside>
|
||||
</div>
|
||||
</section> -->
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script lang="ts" src="./dashboard.ts"></script>
|
||||
@@ -80,7 +80,7 @@
|
||||
></setup-button>
|
||||
|
||||
<div class="setup-play">
|
||||
<img class="dim" src="assets/icons/svg/setup-play.svg" />
|
||||
<img class="dim" src="assets/icons/svg/setup-play.svg" @click="sendMessage('show-dashboard-info')"/>
|
||||
</div>
|
||||
</div>
|
||||
</modal>
|
||||
|
||||
@@ -0,0 +1,85 @@
|
||||
// import Vue from "vue";
|
||||
// import { alarmsModelActions } from "src/store";
|
||||
// import { Factory, messageService } from "src/_base";
|
||||
// import { Prop, Watch } from "vue-property-decorator";
|
||||
|
||||
|
||||
// export default class AppRibbon extends Vue {
|
||||
|
||||
// @Prop({ default: false })
|
||||
// showExpander: boolean;
|
||||
// @Prop({ default: null })
|
||||
// status;
|
||||
// @Prop({ default: false })
|
||||
// expanded: boolean;
|
||||
// @Prop({ default: false })
|
||||
// hasService: boolean;
|
||||
|
||||
// serviceExpanded: boolean = false;
|
||||
|
||||
|
||||
// @Watch("hasService")
|
||||
// hasServiceChanged(oldV,newV) {
|
||||
// this.serviceExpanded = !this.expanded;
|
||||
// }
|
||||
// @Watch("opened")
|
||||
// hasOpened(){
|
||||
// if(this.$store.state.alarms.opened || this.$store.state.alarms.serviceOpened)
|
||||
// messageService.publishToChannel("HMI-show-alarms");
|
||||
// else
|
||||
// messageService.publishToChannel("HMI-hide-alarms",300);
|
||||
|
||||
// }
|
||||
// @Watch("serviceOpened")
|
||||
// hasServiceOpened(){
|
||||
// if(this.$store.state.alarms.opened || this.$store.state.alarms.serviceOpened)
|
||||
// messageService.publishToChannel("HMI-show-alarms");
|
||||
// else
|
||||
// messageService.publishToChannel("HMI-hide-alarms",300);
|
||||
|
||||
// }
|
||||
|
||||
|
||||
// // hasService() {
|
||||
// // return !this.$slots["service"];
|
||||
// // },
|
||||
// toggleServiceExpanded() {
|
||||
// if(this.$store.state.alarms.opened && !this.serviceExpanded)
|
||||
// alarmsModelActions.toggleServiceOpened(this.$store,true);
|
||||
// else if(this.serviceExpanded)
|
||||
// alarmsModelActions.toggleServiceOpened(this.$store,!this.$store.state.alarms.serviceOpened);
|
||||
|
||||
// this.serviceExpanded = true;
|
||||
// alarmsModelActions.toggleOpened(this.$store, false);
|
||||
|
||||
// }
|
||||
|
||||
// toggleExpanded() {
|
||||
// if(this.status.alarm || this.status.warning)
|
||||
// {
|
||||
// if(this.$store.state.alarms.serviceOpened && this.serviceExpanded)
|
||||
// alarmsModelActions.toggleOpened(this.$store,true);
|
||||
// else if(!this.serviceExpanded)
|
||||
// alarmsModelActions.toggleOpened(this.$store,!this.$store.state.alarms.opened);
|
||||
|
||||
// this.serviceExpanded = false;
|
||||
// alarmsModelActions.toggleServiceOpened(this.$store, false);
|
||||
// }
|
||||
// }
|
||||
|
||||
|
||||
|
||||
// opened() {
|
||||
// return this.$store.state.alarms.opened;
|
||||
// }
|
||||
|
||||
// serviceOpened() {
|
||||
// return this.$store.state.alarms.serviceOpened;
|
||||
// }
|
||||
|
||||
// mainExpanded() {
|
||||
// if (!this.hasService) return this.expanded;
|
||||
// return !this.serviceExpanded && this.expanded;
|
||||
// }
|
||||
|
||||
// };
|
||||
@@ -7,6 +7,7 @@ import { /*Factory,*/ messageService } from "@/_base";
|
||||
//import { Watch } from "vue-property-decorator";
|
||||
import AppRibbon from "@/components/app-ribbon.vue";
|
||||
import UserInfo from "@/app_modules/machine/components/user-info.vue";
|
||||
import { Prop } from "vue-property-decorator";
|
||||
|
||||
|
||||
declare let $: any;
|
||||
@@ -20,6 +21,9 @@ declare let $: any;
|
||||
export default class AppHeader extends Vue {
|
||||
$store: any;
|
||||
|
||||
@Prop({ default:false })
|
||||
blurHeader:boolean;
|
||||
|
||||
public get state() { return this.$store.state.machineStatus; };
|
||||
public get isMainViewLiftedUp() { return this.$store.state.isMainViewLiftedUp; }
|
||||
public get mainStatus() { return this.$store.getters.mainStatus; };
|
||||
|
||||
@@ -3,7 +3,8 @@
|
||||
<app-ribbon :status="{'alarm': ribbonStatus == 3, 'working': ribbonStatus == 1, 'warning': ribbonStatus == 2}"
|
||||
:expanded="ribbonStatus>1"
|
||||
:show-expander="ribbonStatus>1"
|
||||
:has-service="serviceRequired">
|
||||
:has-service="serviceRequired"
|
||||
>
|
||||
<i class="fa fa-check" slot="icon" v-if="ribbonStatus == 0" :title="'header_tooltip_nc_idle' | localize('Nc in Idle state')"></i>
|
||||
<i class="fa fa-play" slot="icon" v-if="ribbonStatus == 1" :title="'header_tooltip_nc_running' | localize('Nc in Running state')"></i>
|
||||
<i class="fa fa-exclamation" slot="icon" v-if="ribbonStatus >1" :title="'header_tooltip_nc_error' | localize('Open/Close alarm list')"></i>
|
||||
@@ -17,7 +18,7 @@
|
||||
<span v-for="p in alarms[0].process" :key="p" >{{ p }} </span>
|
||||
</span>
|
||||
<span class="processes" v-if="alarms[0].source !== 'PLC' && alarms[0].process">{{ alarms[0].process }}</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div slot="service" class="content" v-if="serviceRequired">
|
||||
<strong>{{'header_maintainance_request' | localize('Effettuare manutenzione')}}</strong>
|
||||
@@ -25,43 +26,49 @@
|
||||
</div>
|
||||
</app-ribbon>
|
||||
<button class="unclickable over"
|
||||
:class="{ red: mainStatus, blue: !mainStatus}"
|
||||
:class="{ red: mainStatus, blue: !mainStatus, blur: blurHeader}"
|
||||
:title=" mainStatus ? $options.filters.localize('header_tooltip_mainstat_ko','Machine Hardware not Ready') : $options.filters.localize('header_tooltip_mainstat_ok','Machine Hardware is running correctly') " >
|
||||
<img class="h-24" src="assets/icons/png/switch-icon@2x.png">
|
||||
</button>
|
||||
<button class="power-on unclickable over"
|
||||
:title="'header_tooltip_power-on' | localize('Power On')"
|
||||
:disabled="!state.powerOnAlarm.clickable || checkSecurityDisabled('startupIcons')"
|
||||
v-if=" state.powerOnAlarm && state.powerOnAlarm.active" @click="manageClick(state.powerOnAlarm)"><img src="assets/icons/png/control-icon-error@2x.png"></button>
|
||||
v-if=" state.powerOnAlarm && state.powerOnAlarm.active" @click="manageClick(state.powerOnAlarm)"
|
||||
:class="{'blur':blurHeader}"><img src="assets/icons/png/control-icon-error@2x.png"></button>
|
||||
|
||||
<button class="airflow unclickable over"
|
||||
:title="'header_tooltip_air-flow' | localize('Air Flow')"
|
||||
:disabled="!state.airPressureAlarm.clickable || checkSecurityDisabled('startupIcons')"
|
||||
v-if=" state.airPressureAlarm && state.airPressureAlarm.active" @click="manageClick(state.airPressureAlarm)"><img src="assets/icons/png/air-icon@2x.png"></button>
|
||||
v-if=" state.airPressureAlarm && state.airPressureAlarm.active" @click="manageClick(state.airPressureAlarm)"
|
||||
:class="{'blur':blurHeader}"><img src="assets/icons/png/air-icon@2x.png"></button>
|
||||
|
||||
<button class="protections unclickable over"
|
||||
:title="'header_tooltip_protections' | localize('Protections')"
|
||||
:disabled="!state.protectionsAlarm.clickable || checkSecurityDisabled('startupIcons')"
|
||||
v-if=" state.protectionsAlarm && state.protectionsAlarm.active" @click="manageClick(state.protectionsAlarm)"><img src="assets/icons/png/lock-icon-error@2x.png"></button>
|
||||
v-if=" state.protectionsAlarm && state.protectionsAlarm.active" @click="manageClick(state.protectionsAlarm)"
|
||||
:class="{'blur':blurHeader}"><img src="assets/icons/png/lock-icon-error@2x.png"></button>
|
||||
|
||||
<button class="emergency unclickable over"
|
||||
:title="'header_tooltip_emergency' | localize('Emergency')"
|
||||
:disabled="!state.emergencyAlarm.clickable || checkSecurityDisabled('startupIcons')"
|
||||
v-if=" state.emergencyAlarm && state.emergencyAlarm.active" @click="manageClick(state.emergencyAlarm)"><img src="assets/icons/png/refresh-icon-error@2x.png"></button>
|
||||
v-if=" state.emergencyAlarm && state.emergencyAlarm.active" @click="manageClick(state.emergencyAlarm)"
|
||||
:class="{'blur':blurHeader}"><img src="assets/icons/png/refresh-icon-error@2x.png"></button>
|
||||
|
||||
<button class="settings-mode unclickable over"
|
||||
:title="'header_tooltip_settings-mode' | localize('Settings Mode')"
|
||||
:disabled="!state.settingsModeAlarm.clickable || checkSecurityDisabled('startupIcons')"
|
||||
v-if=" state.settingsModeAlarm && state.settingsModeAlarm.active" @click="manageClick(state.settingsModeAlarm)"><img src="assets/icons/png/no-settings@2x.png"></button>
|
||||
v-if=" state.settingsModeAlarm && state.settingsModeAlarm.active" @click="manageClick(state.settingsModeAlarm)"
|
||||
:class="{'blur':blurHeader}"><img src="assets/icons/png/no-settings@2x.png"></button>
|
||||
|
||||
<button class="key unclickable over"
|
||||
:title="'header_tooltip_key' | localize('Startup')"
|
||||
:disabled="!state.keyReadyAlarm.clickable || checkSecurityDisabled('startupIcons')"
|
||||
v-if=" state.keyReadyAlarm && state.keyReadyAlarm.active" @click="manageClick(state.keyReadyAlarm)"><img src="assets/icons/png/key-icon-error@2x.png"></button>
|
||||
v-if=" state.keyReadyAlarm && state.keyReadyAlarm.active" @click="manageClick(state.keyReadyAlarm)"
|
||||
:class="{'blur':blurHeader}"><img src="assets/icons/png/key-icon-error@2x.png"></button>
|
||||
|
||||
<button class="unclickable over"
|
||||
:title=" powerOnStatus ? $options.filters.localize('header_tooltip_powstat_ko','Machine Not Ready to work') : $options.filters.localize('header_tooltip_powstat_ok','Machine Is Ready to worky') "
|
||||
:class="{ red: powerOnStatus, blue: !powerOnStatus}">
|
||||
:class="{ red: powerOnStatus, blue: !powerOnStatus, blur: blurHeader }">
|
||||
<img src="assets/icons/png/ok-white.png" class="h-20" v-if="!powerOnStatus">
|
||||
<img src="assets/icons/png/not-ok-white.png" class="h-20" v-if="powerOnStatus">
|
||||
</button>
|
||||
@@ -69,23 +76,26 @@
|
||||
:disabled="!state.resetAxesAlarm.clickable || checkSecurityDisabled('startupIcons')"
|
||||
v-if=" state.resetAxesAlarm && state.resetAxesAlarm.active"
|
||||
:title="'header_tooltip_zeroing' | localize('Make Zero Axes')"
|
||||
:class="{'blur':blurHeader}"
|
||||
@click="manageClick(state.resetAxesAlarm)"><img src="assets/icons/png/taratura-icon-error@2x.png"></button>
|
||||
<button class="key over"
|
||||
:disabled="!state.waterJet1Alarm.clickable || checkSecurityDisabled('startupIcons')"
|
||||
v-if=" state.waterJet1Alarm && state.waterJet1Alarm.active"
|
||||
:class="{'blur':blurHeader}"
|
||||
@click="manageClick(state.waterJet1Alarm)"></button>
|
||||
<button class="key over"
|
||||
:disabled="!state.waterJet2Alarm.clickable || checkSecurityDisabled('startupIcons')"
|
||||
v-if=" state.waterJet2Alarm && state.waterJet2Alarm.active"
|
||||
:class="{'blur':blurHeader}"
|
||||
@click="manageClick(state.waterJet2Alarm)"></button>
|
||||
<div class="process-container over" v-for="p in processes" :key="p.id">
|
||||
<div class="process-container over" v-for="p in processes" :key="p.id" :class="{'blur':blurHeader}">
|
||||
<process-info :counter="p.reps" :status="p.status" :id="p.id">
|
||||
<strong v-if="p.visible && !mainStatus">{{p.partProgramName}}</strong>
|
||||
</process-info>
|
||||
<button v-if="p.visible && !mainStatus" class="save-circle"></button>
|
||||
<button v-if="p.visible && !mainStatus" class="dot-circle"></button>
|
||||
</div>
|
||||
<user-info></user-info>
|
||||
<user-info :class="{'blur':blurHeader}"></user-info>
|
||||
</header>
|
||||
|
||||
</template>
|
||||
|
||||
Reference in New Issue
Block a user