expandable headers

This commit is contained in:
Paolo Possanzini
2017-12-11 15:30:34 +01:00
parent 5a3f74b871
commit ab4a5a896f
18 changed files with 731 additions and 623 deletions
@@ -4,6 +4,8 @@
@color-cef-transparency-key: #00FF00;
@color-apple-green:#7ed321;
@color-background-white: #fff;
@color-backdrop: rgba(217, 217, 217, 0.5);
@color-darkish-blue: #002680;
+11 -2
View File
@@ -84,11 +84,20 @@
width: 496px;
}
.app-ribbon.alarm-status {
.app-ribbon.working{
.status-icon{
background-color:@color-apple-green;
i{
margin-left: 5px; // hack per il riallineamento di questa icona.
}
}
}
.app-ribbon.alarm {
background-image: @color-alarm-background-image;
}
.app-ribbon.warning-status {
.app-ribbon.warning {
background-image: @color-warning-background-image;
}
+8 -2
View File
@@ -430,10 +430,16 @@ button.under:active {
.app-ribbon.big {
width: 496px;
}
.app-ribbon.alarm-status {
.app-ribbon.working .status-icon {
background-color: #7ed321;
}
.app-ribbon.working .status-icon i {
margin-left: 5px;
}
.app-ribbon.alarm {
background-image: linear-gradient(to bottom, #ff4d63, #a10518);
}
.app-ribbon.warning-status {
.app-ribbon.warning {
background-image: linear-gradient(to bottom, #f6a623, #dc8c09);
}
.app-ribbon.open {
+25 -25
View File
File diff suppressed because one or more lines are too long
+10 -10
View File
File diff suppressed because one or more lines are too long
+6 -6
View File
File diff suppressed because one or more lines are too long
+11 -11
View File
File diff suppressed because one or more lines are too long
+27
View File
File diff suppressed because one or more lines are too long
+1 -9
View File
File diff suppressed because one or more lines are too long
+527 -538
View File
File diff suppressed because one or more lines are too long
+7 -3
View File
@@ -30,11 +30,11 @@
</template>
<script>
import { alarmsModelActions } from "../store/alarms.store";
import {
machineStatusActions,
MachineStatusModel
} from "../store/machineStatus.store";
MachineStatusModel,
alarmsModelActions, processModelActions
} from "../store";
export default {
methods: {
@@ -91,6 +91,10 @@ export default {
this.$store,
!this.$store.state.machineStatus.waterJet2Alarm
);
},
addProcess() {
processModelActions.addProcess(this.$store, {});
}
}
};
+23
View File
@@ -1,6 +1,9 @@
import Vue from "vue";
import Component from "vue-class-component";
import { AppRibbon, UserInfo } from "./base-components";
import { AppModel } from "../store";
@Component({ name: "app-header", components: { appRibbon: AppRibbon, userInfo: UserInfo } })
export default class AppHeader extends Vue {
@@ -10,4 +13,24 @@ export default class AppHeader extends Vue {
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.process.length > 0) return ribbonStatusEnum.Working;
return ribbonStatusEnum.Idle;
}
}
enum ribbonStatusEnum {
Idle = 0,
Working = 1,
Warning = 2,
Alarm = 3
}
+4 -2
View File
@@ -1,7 +1,9 @@
<template>
<header>
<app-ribbon>
<i class="fa fa-check" slot="icon"></i>
<app-ribbon :status="{'alarm': ribbonStatus == 3, 'working': ribbonStatus == 1, 'warning': ribbonStatus == 2}"
:expanded="ribbonStatus">
<i class="fa fa-check" slot="icon" v-if="ribbonStatus == 0"></i>
<i class="fa fa-play" slot="icon" v-if="ribbonStatus == 1"></i>
</app-ribbon>
<button :class="{ red: mainStatus, blue: !mainStatus }">
@@ -1,6 +1,6 @@
<template>
<div class="ribbon-container">
<div class="app-ribbon" :class="{'big': expanded}">
<div class="app-ribbon" v-bind:class="[ {big: this.expanded}, status]">
<span class="status-icon">
<slot name="icon"></slot>
</span>
@@ -31,14 +31,6 @@ export default {
computed: {
hasService() {
return !!this.$slots["service-content"];
},
ribbonClass() {
let obj = {
big: this.expanded
};
if (this.status) obj[this.status] = true;
return obj;
}
}
};
+8 -2
View File
@@ -1,6 +1,7 @@
import { machineInfoStore, MachineInfoModel } from "./machineInfo.store";
import { machineStatusStore, MachineStatusModel } from "./machineStatus.store";
import { alarmsStore } from "./alarms.store";
import { alarmsStore, AlarmsModel } from "./alarms.store";
import { processStore, RunningProcessModel } from "./runningProcess.store";
// Store Model
export interface AppModel {
@@ -9,6 +10,9 @@ export interface AppModel {
machineInfo: MachineInfoModel;
machineStatus: MachineStatusModel;
alarms: AlarmsModel;
process: RunningProcessModel;
}
// Mutations Name
@@ -33,7 +37,9 @@ export const store = {
modules: {
// Sottomoduli dello store
machineInfo: machineInfoStore,
machineStatus: machineStatusStore
machineStatus: machineStatusStore,
process: processStore,
alarms: alarmsStore
},
mutations: {
+17 -1
View File
@@ -1,5 +1,21 @@
import { store, AppModel, appModelActions } from "./app.store";
import { machineInfoActions, MachineInfoModel } from "./machineInfo.store";
import { machineStatusActions, MachineStatusModel } from "./machineStatus.store";
import { AlarmsModel, alarmsModelActions, alarmsStore } from "./alarms.store";
import { processModelActions, processStore, RunningProcessModel } from "./runningProcess.store";
export { store, AppModel, appModelActions, machineInfoActions, MachineInfoModel, machineStatusActions, MachineStatusModel }
export {
store,
AppModel,
appModelActions,
machineInfoActions,
MachineInfoModel,
machineStatusActions,
MachineStatusModel,
AlarmsModel,
alarmsModelActions,
alarmsStore,
processModelActions,
processStore,
RunningProcessModel
}
@@ -1,8 +1,6 @@
export interface MachineStatusModel {
runningProcess: Array<any>,
powerOnAlarm: boolean,
airPressureAlarm: boolean,
protectionsAlarm: boolean,
@@ -29,7 +27,6 @@ export interface MachineStatusActions {
export const machineStatusStore = {
state: {
runningProcess: [],
powerOnAlarm: true,
airPressureAlarm: true,
@@ -0,0 +1,43 @@
export interface RunningProcessModel {
process: Array<any>
}
export interface ProcessModelActionsInterface {
removeAllProcess(context);
addProcess(context, process);
removeProcess(context, process);
}
export const processStore = {
state: {
process: [],
} as RunningProcessModel,
mutations: {
AddProcess(store, process) {
store.process.push(process);
},
RemoveProcess(store, process) {
let idx = store.process.indexOf(process);
if (idx >= 0)
store.process.splice(idx, 1);
},
RemoveAllProcess(store) {
store.process.length = 0;
}
},
actions: {
addProcess(context, process) {
context.commit("AddProcess", process);
},
removeProcess(context, process) {
context.commit("RemoveProcess", process);
},
removeAllProcess(context) {
context.commit("RemoveAllProcess");
}
} as ProcessModelActionsInterface
}
export const processModelActions = processStore.actions as ProcessModelActionsInterface;