105 lines
2.8 KiB
TypeScript
105 lines
2.8 KiB
TypeScript
import Vue from "vue";
|
|
import Component from "vue-class-component";
|
|
import { AppRibbon, UserInfo, ProcessInfo } from "./base-components";
|
|
import { AppModel, buttonStatus } from "src/store";
|
|
import { Factory, MessageService } from "src/_base";
|
|
import { Hub } from "src/services/hub";
|
|
import { Watch } from "vue-property-decorator";
|
|
|
|
declare let $: any;
|
|
|
|
@Component({ name: "app-header", components: { appRibbon: AppRibbon, userInfo: UserInfo, processInfo: ProcessInfo } })
|
|
export default class AppHeader 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; };
|
|
|
|
mounted() {
|
|
Factory.Get(MessageService).subscribeToChannel("force-ui-update", args => {
|
|
this.$forceUpdate();
|
|
});
|
|
|
|
$('.process-container').mousewheel(function (e, delta) {
|
|
this.scrollLeft -= (delta * 40);
|
|
e.preventDefault();
|
|
});
|
|
}
|
|
|
|
public get alarmTitle() {
|
|
let s = this.$store.state as AppModel;
|
|
|
|
switch (this.ribbonStatus) {
|
|
|
|
case ribbonStatusEnum.Warning:
|
|
if (this.alarmCount == 1) return "warning_ribbon_title_1_item";
|
|
return "warning_ribbon_title_more_items";
|
|
case ribbonStatusEnum.Alarm:
|
|
if (this.alarmCount == 1) return "alarm_ribbon_title_1_item";
|
|
return "alarm_ribbon_title_more_items";
|
|
}
|
|
return "";
|
|
}
|
|
|
|
public get alarms() {
|
|
let s = this.$store.state as AppModel;
|
|
return s.alarms.alarms.concat(s.alarms.warnings);
|
|
}
|
|
|
|
public get processes() {
|
|
let s = this.$store.state as AppModel;
|
|
return s.process.process;
|
|
}
|
|
|
|
public get alarmCount() {
|
|
return this.alarms.length;
|
|
}
|
|
|
|
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;
|
|
}
|
|
return false
|
|
}
|
|
|
|
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 serviceRequired() {
|
|
return this.$store.state.alarms.serviceAlarms.length > 0;
|
|
}
|
|
|
|
public sendMessage(name: string) {
|
|
Factory.Get(MessageService).publishToChannel(name);
|
|
}
|
|
|
|
public manageClick(btn: buttonStatus) {
|
|
if (btn.clickable)
|
|
Hub.Current.sendPowerCommand(btn.id);
|
|
}
|
|
|
|
}
|
|
|
|
enum ribbonStatusEnum {
|
|
Idle = 0,
|
|
Working = 1,
|
|
Warning = 2,
|
|
Alarm = 3
|
|
}
|