This commit is contained in:
Samuele Locatelli
2020-06-30 15:24:38 +02:00
27 changed files with 350 additions and 179 deletions
@@ -145,7 +145,7 @@ select:focus {
display: flex;
flex-flow: row;
align-items: center;
justify-content: center;
justify-content: space-between;
&.grid {
display: grid;
@@ -222,7 +222,7 @@ select:focus {
color: #002680;
font-size: 24px;
font-weight: 500;
flex: 0.7;
// flex: 0.7;
}
.numeric {
@@ -5343,7 +5343,7 @@ select:focus {
display: flex;
flex-flow: row;
align-items: center;
justify-content: center;
justify-content: space-between;
}
.input-area.grid {
display: grid;
@@ -5405,7 +5405,6 @@ select:focus {
color: #002680;
font-size: 24px;
font-weight: 500;
flex: 0.7;
}
.input-area .numeric {
font-size: 18px;
@@ -4,4 +4,5 @@
"enabled": true,
"apiServerUrl": "http://localhost:9000/"
}
"allUIVisible": true
}
+5
View File
@@ -10831,6 +10831,11 @@
"js-tokens": "^3.0.0 || ^4.0.0"
}
},
"lottie-web": {
"version": "5.7.0",
"resolved": "https://registry.npmjs.org/lottie-web/-/lottie-web-5.7.0.tgz",
"integrity": "sha512-mCj9KaVR1FdcaRuKB0oqKqC2R+awlqGgx38Sy4q3H0+aNPJ9Ut5LIvBNGyMHiZRpJlPcRQ1Mk//fp2bY3QYq1A=="
},
"lower-case": {
"version": "1.1.4",
"resolved": "https://registry.npmjs.org/lower-case/-/lower-case-1.1.4.tgz",
+3 -2
View File
@@ -16,11 +16,13 @@
"chart.js": "^2.9.3",
"core-js": "^3.4.4",
"izitoast": "1.2.0",
"lottie-web": "^5.7.0",
"moment": "2.24.0",
"qrcode": "^1.4.4",
"raphael": "^2.3.0",
"sprintf-js": "1.1.2",
"svg-gauge": "^1.0.6",
"svg-pan-zoom": "3.6.1",
"v-tooltip": "^2.0.3",
"vee-validate": "2.1.1",
"vue": "^2.6.11",
@@ -32,8 +34,7 @@
"vue-smooth-dnd": "0.8.1",
"vue2-ace-editor": "0.0.15",
"vue2-datepicker": "3.4.1",
"vuex": "3.1.3",
"svg-pan-zoom": "3.6.1"
"vuex": "3.1.3"
},
"devDependencies": {
"@babel/plugin-proposal-export-default-from": "7.8.3",
+2 -1
View File
@@ -17,7 +17,8 @@ declare module Recipe {
unitMeasure: string,
setpointHMI: number,
setpointPLC: number,
valueAct: number
valueAct: number,
enumVal: { [id: string]: { text: string, anim: string } }
}
interface IRecipe {
@@ -0,0 +1,46 @@
import Component from "vue-class-component";
import Vue from "vue";
import { Prop } from "vue-property-decorator";
import lottie from "lottie-web";
import { localizeString } from "@/filters/localizeFilter";
@Component({})
export default class Combo extends Vue {
@Prop()
value: Recipe.IValue;
get options() {
let result: { id: number, text: string, anim: string }[] = [];
for (const key in this.value.enumVal) {
if (this.value.enumVal.hasOwnProperty(key)) {
const element = this.value.enumVal[key];
result.push({ id: parseInt(key), text: element.text, anim: element.anim })
}
}
return result;
}
get currentValue() {
let result = this.options.find(o => o.id == this.value.setpointHMI);
if (result) return localizeString(result.text, result.text);
return null;
}
opened: boolean = false;
showList() {
this.opened = true;
this.$nextTick(() => lottie.searchAnimations());
}
hideList() {
this.opened = false;
}
mounted() {
}
}
@@ -0,0 +1,105 @@
<template>
<div class="combo">
<div class="form" @click="showList">
{{currentValue}}
<i v-if="opened" class="fa fa-chevron-up" />
<i v-else class="fa fa-chevron-down" />
</div>
<div class="droplist" v-if="opened">
<div
class="droplist-item"
v-for="opt in options"
:key="opt.id"
@click="value.setpointHMI = opt.id; hideList()"
>
<input type="radio" :name="value.label" v-model="value.setpointHMI" :value="opt.id" />
<span>{{opt.text}}</span>
<div
class="lottie"
:data-animation-path="`/assets/animations/${opt.anim}`"
data-anim-loop="true"
/>
</div>
</div>
</div>
</template>
<style scoped>
.combo {
position: relative;
}
.combo select:disabled {
opacity: 1;
}
.combo .form {
font-size: 18px;
font-weight: 500;
color: #6d6d6d;
min-width: 80px;
width: fit-content;
height: 48px;
border-radius: 2px;
box-shadow: inset 0 1px 3px 0 rgba(0, 0, 0, 0.5);
border: none;
display: flex;
flex-flow: row nowrap;
padding: 0 10px;
align-items: center;
justify-content: stretch;
padding-right: 25px;
position: relative;
cursor: pointer;
}
.combo .form i {
position: absolute;
right: 4px;
top: calc(50% - 7px);
font-size: 14px;
}
.combo > select:focus ~ .droplist {
display: flex;
}
.droplist {
display: flex;
position: absolute;
right: 0;
top: 48px;
width: 400px;
z-index: 4;
background-color: #fff;
box-shadow: 0 0 10px 0px rgba(0, 0, 0, 0.5);
flex-flow: column nowrap;
}
.droplist-item {
display: flex;
flex-flow: row nowrap;
padding: 30px;
padding-right: 0;
height: 80px;
align-items: center;
justify-content: space-evenly;
border-bottom: 1px #ddd solid;
cursor: pointer;
}
.droplist-item .lottie {
width: 150px;
}
.droplist-item span {
padding-left: 15px;
flex: 1;
}
.droplist-item input {
width: 24px;
height: 24px;
}
</style>
<script src="./combo.ts" lang="ts"/>
@@ -3,12 +3,14 @@ import slider from "./slider.vue";
import Vue from "vue";
import keyboard from "./keyboard.vue";
import clock from "./clock.vue";
import combo from "./combo.vue"
export default {
numeric,
slider,
keyboard,
clock
clock,
combo
}
Vue.directive('focusOn', {
@@ -4,28 +4,28 @@
<div class="box transparent">
<div class="body">
<template v-if="recipe.cycle_forming_type.status.visible">
<div class="input-area">
<label>{{'cycle_forming_type'|localize('Tipo')}}</label>
<select class="form-control" v-model="recipe.cycle_forming_type"></select>
</div>
<div class="input-area">
<label>{{'cycle_forming_type'|localize('Tipo')}}</label>
<combo v-model="recipe.cycle_forming_type"></combo>
</div>
</template>
<template v-if="recipe.cycle_forming_pause_cycle.status.visible">
<div class="input-area">
<label>{{'cycle_forming_pause_cycle'|localize('Pausa ciclo')}}</label>
<toggle-button v-model="recipe.cycle_forming_pause_cycle.status.enabled"></toggle-button>
</div>
<div class="input-area">
<label>{{'cycle_forming_pause_cycle'|localize('Pausa ciclo')}}</label>
<toggle-button v-model="recipe.cycle_forming_pause_cycle.status.enabled"></toggle-button>
</div>
</template>
<template v-if="recipe.cycle_forming_cooling_enabled.status.visible">
<div class="input-area">
<label>{{'cycle_forming_cooling_enabled'|localize('Raffreddamento fine ciclo')}}</label>
<toggle-button v-model="recipe.cycle_forming_cooling_enabled.status.enabled"></toggle-button>
</div>
<div class="input-area">
<label>{{'cycle_forming_cooling_enabled'|localize('Raffreddamento fine ciclo')}}</label>
<toggle-button v-model="recipe.cycle_forming_cooling_enabled.status.enabled"></toggle-button>
</div>
</template>
<template v-if="recipe.cycle_forming_blowingbox_enabled.status.visible">
<div class="input-area">
<label>{{'cycle_forming_blowingbox_enabled'|localize('Ventilazione cassone fine ciclo')}}</label>
<toggle-button v-model="recipe.cycle_forming_blowingbox_enabled.status.enabled"></toggle-button>
</div>
<div class="input-area">
<label>{{'cycle_forming_blowingbox_enabled'|localize('Ventilazione cassone fine ciclo')}}</label>
<toggle-button v-model="recipe.cycle_forming_blowingbox_enabled.status.enabled"></toggle-button>
</div>
</template>
</div>
</div>
@@ -5,17 +5,17 @@
</div>
<div class="body">
<template v-if="recipe.cycle_crystallisation_type.status.visible">
<div class="input-area">
<label>{{'cycle_crystallisation_type'|localize('Tipo')}}</label>
<select class="form-control" v-model="recipe.cycle_crystallisation_type"></select>
</div>
<div class="input-area">
<label>{{'cycle_crystallisation_type'|localize('Tipo')}}</label>
<combo v-model="recipe.cycle_crystallisation_type"></combo>
</div>
</template>
<template v-if="recipe.cycle_crystallisation_time.status.visible">
<div class="input-area">
<label>{{'cycle_crystallisation_time'|localize('Durata')}}</label>
<numeric v-model="recipe.cycle_crystallisation_time" />
</div>
<slider v-model="recipe.cycle_crystallisation_time"></slider>
<div class="input-area">
<label>{{'cycle_crystallisation_time'|localize('Durata')}}</label>
<numeric v-model="recipe.cycle_crystallisation_time" />
</div>
<slider v-model="recipe.cycle_crystallisation_time"></slider>
</template>
</div>
</div>
@@ -4,25 +4,25 @@
<div class="box transparent box-500 center">
<div class="body">
<template v-if="recipe.upperplate_cycle_type.status.visible">
<div class="input-area">
<label>{{'upperplate_cycle_type'|localize('Tipo')}}</label>
<select class="form-control" v-model="recipe.upperplate_cycle_type"></select>
</div>
<div class="input-area">
<label>{{'upperplate_cycle_type'|localize('Tipo')}}</label>
<combo v-model="recipe.upperplate_cycle_type"></combo>
</div>
</template>
<template v-if="recipe.upperplate_cycle_delay.status.visible">
<div class="input-area">
<img src="assets/icons/png/clessidra.png" />
<label>{{'upperplate_cycle_delay'|localize('Ritardo')}}</label>
<numeric v-model="recipe.upperplate_cycle_delay" />
</div>
<slider v-model.number="recipe.upperplate_cycle_delay"></slider>
<div class="input-area">
<img src="assets/icons/png/clessidra.png" />
<label>{{'upperplate_cycle_delay'|localize('Ritardo')}}</label>
<numeric v-model="recipe.upperplate_cycle_delay" />
</div>
<slider v-model.number="recipe.upperplate_cycle_delay"></slider>
</template>
<template v-if="recipe.upperplate_cycle_time.status.visible">
<div class="input-area">
<label>{{'upperplate_cycle_time'|localize('Durata')}}</label>
<numeric v-model="recipe.upperplate_cycle_time" />
</div>
<slider v-model="recipe.upperplate_cycle_time"></slider>
<div class="input-area">
<label>{{'upperplate_cycle_time'|localize('Durata')}}</label>
<numeric v-model="recipe.upperplate_cycle_time" />
</div>
<slider v-model="recipe.upperplate_cycle_time"></slider>
</template>
</div>
</div>
@@ -14,7 +14,7 @@
<template v-if="recipe.extraction_main_type.status.visible">
<div class="input-area">
<label>{{'extraction_main_type'|localize('Tipo')}}</label>
<select class="form-control" v-model="recipe.extraction_main_type"></select>
<combo v-model="recipe.extraction_main_type"></combo>
</div>
</template>
<template v-if="recipe.extraction_main_mould_dw_delay.status.visible">
@@ -5,28 +5,27 @@
</div>
<div class="body">
<template v-if="recipe.general_sizes_frame_traverses.status.visible">
<div class="input-area">
<label>{{'general_sizes_frame_traverses' | localize("Traversini")}}</label>
<select class="form-control" v-model="recipe.general_sizes_frame_traverses.setpointHMI">
</select>
</div>
<div class="input-area">
<label>{{'general_sizes_frame_traverses' | localize("Traversini")}}</label>
<combo v-model="recipe.general_sizes_frame_traverses.setpointHMI"></combo>
</div>
</template>
<hr />
<template v-if="recipe.general_sizes_frame_dim_x.status.visible">
<div class="input-area">
<label>{{'general_sizes_frame_dim_x' | localize('Apertura X')}}</label>
<numeric v-model="recipe.general_sizes_frame_dim_x" id="general_sizes_frame_dim_x"/>
</div>
<slider v-model="recipe.general_sizes_frame_dim_x"></slider>
<button class="submit">Muovi</button>
<div class="input-area">
<label>{{'general_sizes_frame_dim_x' | localize('Apertura X')}}</label>
<numeric v-model="recipe.general_sizes_frame_dim_x" id="general_sizes_frame_dim_x" />
</div>
<slider v-model="recipe.general_sizes_frame_dim_x"></slider>
<button class="submit">Muovi</button>
</template>
<template v-if="recipe.general_sizes_frame_dim_y.status.visible">
<div class="input-area">
<label>{{'general_sizes_frame_dim_y' | localize('Apertura Y')}}</label>
<numeric v-model="recipe.general_sizes_frame_dim_y" id="general_sizes_frame_dim_y"/>
</div>
<slider v-model="recipe.general_sizes_frame_dim_y"></slider>
<button class="submit">Muovi</button>
<div class="input-area">
<label>{{'general_sizes_frame_dim_y' | localize('Apertura Y')}}</label>
<numeric v-model="recipe.general_sizes_frame_dim_y" id="general_sizes_frame_dim_y" />
</div>
<slider v-model="recipe.general_sizes_frame_dim_y"></slider>
<button class="submit">Muovi</button>
</template>
</div>
</div>
@@ -5,33 +5,32 @@
</div>
<div class="body">
<template v-if="recipe.general_sizes_sheet_material.status.visible">
<div class="input-area">
<label>{{'general_sizes_sheet_material' | localize("Materiale")}}</label>
<select class="form-control" v-model="recipe.general_sizes_sheet_material.setpointHMI">
</select>
</div>
<div class="input-area">
<label>{{'general_sizes_sheet_material' | localize("Materiale")}}</label>
<combo v-model="recipe.general_sizes_sheet_material"></combo>
</div>
</template>
<hr />
<template v-if="recipe.general_sizes_sheet_dim_x.status.visible">
<div class="input-area">
<label>{{'general_sizes_sheet_dim_x' | localize('Dimensione X')}}</label>
<numeric v-model="recipe.general_sizes_sheet_dim_x" id="general_sizes_sheet_dim_x"/>
</div>
<slider v-model="recipe.general_sizes_sheet_dim_x"></slider>
<div class="input-area">
<label>{{'general_sizes_sheet_dim_x' | localize('Dimensione X')}}</label>
<numeric v-model="recipe.general_sizes_sheet_dim_x" id="general_sizes_sheet_dim_x" />
</div>
<slider v-model="recipe.general_sizes_sheet_dim_x"></slider>
</template>
<template v-if="recipe.general_sizes_sheet_dim_y.status.visible">
<div class="input-area">
<label>{{'general_sizes_sheet_dim_y' | localize('Dimensione Y')}}</label>
<numeric v-model="recipe.general_sizes_sheet_dim_y" id="general_sizes_sheet_dim_y"/>
</div>
<slider v-model="recipe.general_sizes_sheet_dim_y"></slider>
<div class="input-area">
<label>{{'general_sizes_sheet_dim_y' | localize('Dimensione Y')}}</label>
<numeric v-model="recipe.general_sizes_sheet_dim_y" id="general_sizes_sheet_dim_y" />
</div>
<slider v-model="recipe.general_sizes_sheet_dim_y"></slider>
</template>
<template v-if="recipe.general_sizes_sheet_thickness.status.visible">
<div class="input-area">
<label>{{'general_sizes_sheet_thickness' | localize('Spessore')}}</label>
<numeric v-model="recipe.general_sizes_sheet_thickness" id="general_sizes_sheet_thickness"/>
</div>
<slider v-model="recipe.general_sizes_sheet_thickness"></slider>
<div class="input-area">
<label>{{'general_sizes_sheet_thickness' | localize('Spessore')}}</label>
<numeric v-model="recipe.general_sizes_sheet_thickness" id="general_sizes_sheet_thickness" />
</div>
<slider v-model="recipe.general_sizes_sheet_thickness"></slider>
</template>
</div>
</div>
@@ -5,28 +5,27 @@
</div>
<div class="body">
<template v-if="recipe.general_sizes_plate_type.status.visible">
<div class="input-area">
<label>{{'general_sizes_plate_type' | localize("Tipo")}}</label>
<select class="form-control" v-model="recipe.general_sizes_plate_type.setpointHMI">
</select>
</div>
<div class="input-area">
<label>{{'general_sizes_plate_type' | localize("Tipo")}}</label>
<combo v-model="recipe.general_sizes_plate_type.setpointHMI"></combo>
</div>
</template>
<hr />
<template v-if="recipe.general_sizes_plate_dim_x.status.visible">
<div class="input-area">
<label>{{'general_sizes_plate_dim_x' | localize('Apertura X')}}</label>
<numeric v-model="recipe.general_sizes_plate_dim_x" id="general_sizes_plate_dim_x"/>
</div>
<slider v-model="recipe.general_sizes_plate_dim_x"></slider>
<button class="submit">Muovi</button>
<div class="input-area">
<label>{{'general_sizes_plate_dim_x' | localize('Apertura X')}}</label>
<numeric v-model="recipe.general_sizes_plate_dim_x" id="general_sizes_plate_dim_x" />
</div>
<slider v-model="recipe.general_sizes_plate_dim_x"></slider>
<button class="submit">Muovi</button>
</template>
<template v-if="recipe.general_sizes_plate_dim_y.status.visible">
<div class="input-area">
<label>{{'general_sizes_plate_dim_y' | localize('Apertura Y')}}</label>
<numeric v-model="recipe.general_sizes_plate_dim_y" id="general_sizes_plate_dim_y"/>
</div>
<slider v-model="recipe.general_sizes_plate_dim_y"></slider>
<button class="submit">Muovi</button>
<div class="input-area">
<label>{{'general_sizes_plate_dim_y' | localize('Apertura Y')}}</label>
<numeric v-model="recipe.general_sizes_plate_dim_y" id="general_sizes_plate_dim_y" />
</div>
<slider v-model="recipe.general_sizes_plate_dim_y"></slider>
<button class="submit">Muovi</button>
</template>
</div>
</div>
@@ -22,13 +22,13 @@
<template v-if="recipe.drawing_type.status.visible">
<div class="input-area">
<label>{{'drawing_type'|localize('Tipo')}}</label>
<select class="form-control" v-model="recipe.drawing_type"></select>
<combo v-model="recipe.drawing_type"></combo>
</div>
</template>
<template v-if="recipe.drawing_photocell.status.visible">
<div class="input-area">
<label>{{'drawing_photocell'|localize('Scelta fotocellula')}}</label>
<select class="form-control" v-model="recipe.drawing_photocell"></select>
<combo v-model="recipe.drawing_photocell"></combo>
</div>
</template>
<template v-if="recipe.drawing_height.status.visible">
@@ -4,7 +4,7 @@
<template v-if="modalita.status.visible">
<div class="input-area">
<label>{{'options_undercutmould__mode'|localize('Modalità')}}</label>
<select class="form-control" v-model="modalita"></select>
<combo v-model="modalita"></combo>
</div>
</template>
<template v-if="quota.status.visible">
@@ -2,8 +2,8 @@
<div class="option-row" @click="$emit('click')">
<label>{{numSottoSq}}</label>
<!-- <template v-if="modalita.status.visible">
<select class="form-control" v-model="modalita"></select>
</template> va inserito il valore della select di modalità -->
<combo v-model="modalita"></combo>
</template> va inserito il valore della combo di modalità-->
<template v-if="quota.status.visible">
<label>{{quota.setpointHMI}} mm</label>
</template>
@@ -4,25 +4,25 @@
<div class="box transparent box-500 center">
<div class="body">
<template v-if="recipe.cooling_nebulizer_type.status.visible">
<div class="input-area">
<label>{{'cooling_nebulizer_type'|localize('Tipo')}}</label>
<select class="form-control" v-model="recipe.cooling_nebulizer_type"></select>
</div>
<div class="input-area">
<label>{{'cooling_nebulizer_type'|localize('Tipo')}}</label>
<combo v-model="recipe.cooling_nebulizer_type"></combo>
</div>
</template>
<template v-if="recipe.cooling_nebulizer_delay.status.visible">
<div class="input-area">
<img src="assets/icons/png/clessidra.png" />
<label>{{'cooling_nebulizer_delay'|localize('Ritardo')}}</label>
<numeric v-model="recipe.cooling_nebulizer_delay" />
</div>
<slider v-model="recipe.cooling_nebulizer_delay"></slider>
<div class="input-area">
<img src="assets/icons/png/clessidra.png" />
<label>{{'cooling_nebulizer_delay'|localize('Ritardo')}}</label>
<numeric v-model="recipe.cooling_nebulizer_delay" />
</div>
<slider v-model="recipe.cooling_nebulizer_delay"></slider>
</template>
<template v-if="recipe.cooling_nebulizer_time.status.visible">
<div class="input-area">
<label>{{'cooling_nebulizer_time'|localize('Durata')}}</label>
<numeric v-model="recipe.cooling_nebulizer_time" />
</div>
<slider v-model="recipe.cooling_nebulizer_time"></slider>
<div class="input-area">
<label>{{'cooling_nebulizer_time'|localize('Durata')}}</label>
<numeric v-model="recipe.cooling_nebulizer_time" />
</div>
<slider v-model="recipe.cooling_nebulizer_time"></slider>
</template>
</div>
</div>
@@ -4,25 +4,25 @@
<div class="box transparent box-500 center">
<div class="body">
<template v-if="recipe.cooling_blowing_type.status.visible">
<div class="input-area">
<label>{{'cooling_blowing_type'|localize('Tipo')}}</label>
<select class="form-control" v-model="recipe.cooling_blowing_type"></select>
</div>
<div class="input-area">
<label>{{'cooling_blowing_type'|localize('Tipo')}}</label>
<combo v-model="recipe.cooling_blowing_type"></combo>
</div>
</template>
<template v-if="recipe.cooling_blowing_delay.status.visible">
<div class="input-area">
<img src="assets/icons/png/clessidra.png" />
<label>{{'cooling_blowing_delay'|localize('Ritardo')}}</label>
<numeric v-model="recipe.cooling_blowing_delay" />
</div>
<slider v-model="recipe.cooling_blowing_delay"></slider>
<div class="input-area">
<img src="assets/icons/png/clessidra.png" />
<label>{{'cooling_blowing_delay'|localize('Ritardo')}}</label>
<numeric v-model="recipe.cooling_blowing_delay" />
</div>
<slider v-model="recipe.cooling_blowing_delay"></slider>
</template>
<template v-if="recipe.cooling_blowing_time.status.visible">
<div class="input-area">
<label>{{'cooling_blowing_time'|localize('Durata')}}</label>
<numeric v-model="recipe.cooling_blowing_time" />
</div>
<slider v-model="recipe.cooling_blowing_time"></slider>
<div class="input-area">
<label>{{'cooling_blowing_time'|localize('Durata')}}</label>
<numeric v-model="recipe.cooling_blowing_time" />
</div>
<slider v-model="recipe.cooling_blowing_time"></slider>
</template>
</div>
</div>
@@ -47,12 +47,12 @@
<button class="btn btn-info square" @click="add5()">
<img src="assets/icons/png/piu5.png" />
</button>
<select class="form-control" v-model="uniformChannelValue">
<combo v-model="uniformChannelValue">
<option :value="0">0%</option>
<option :value="25">25%</option>
<option :value="50">50%</option>
<option :value="100">100%</option>
</select>
</combo>
</div>
<div class="input-area grid left">
@@ -47,12 +47,12 @@
<button class="btn btn-info square" @click="add5()">
<img src="assets/icons/png/piu5.png" />
</button>
<select class="form-control" v-model="uniformChannelValue">
<combo v-model="uniformChannelValue">
<option :value="0">0%</option>
<option :value="25">25%</option>
<option :value="50">50%</option>
<option :value="100">100%</option>
</select>
</combo>
</div>
<div class="input-area grid left">
@@ -4,51 +4,51 @@
<div class="box transparent box-500 center">
<div class="body">
<template v-if="recipe.heats_decomsustain_type.status.visible">
<div class="input-area">
<label>{{'heats_decomsustain_type'|localize('Tipo')}}</label>
<select class="form-control" v-model="recipe.heats_decomsustain_type"></select>
</div>
<div class="input-area">
<label>{{'heats_decomsustain_type'|localize('Tipo')}}</label>
<combo v-model="recipe.heats_decomsustain_type"></combo>
</div>
</template>
<template v-if="recipe.heats_decomsustain_decompression_flow.status.visible">
<div class="input-area">
<label>{{'heats_decomsustain_decompression_flow'|localize('Portata sostentamento')}}</label>
<numeric v-model="recipe.heats_decomsustain_decompression_flow" />
</div>
<slider v-model="recipe.heats_decomsustain_decompression_flow"></slider>
<div class="input-area">
<label>{{'heats_decomsustain_decompression_flow'|localize('Portata sostentamento')}}</label>
<numeric v-model="recipe.heats_decomsustain_decompression_flow" />
</div>
<slider v-model="recipe.heats_decomsustain_decompression_flow"></slider>
</template>
<template v-if="recipe.heats_decomsustain_min_blowing_time.status.visible">
<div class="input-area">
<label>{{'heats_decomsustain_min_blowing_time'|localize('Durata minima soffio')}}</label>
<numeric v-model="recipe.heats_decomsustain_min_blowing_time" />
</div>
<slider v-model="recipe.heats_decomsustain_min_blowing_time"></slider>
<div class="input-area">
<label>{{'heats_decomsustain_min_blowing_time'|localize('Durata minima soffio')}}</label>
<numeric v-model="recipe.heats_decomsustain_min_blowing_time" />
</div>
<slider v-model="recipe.heats_decomsustain_min_blowing_time"></slider>
</template>
<template v-if="recipe.heats_decomsustain_sustain_delay.status.visible">
<div class="input-area">
<label>{{'heats_decomsustain_sustain_delay'|localize('Ritardo sostentamento')}}</label>
<numeric v-model="recipe.heats_decomsustain_sustain_delay" />
</div>
<slider v-model="recipe.heats_decomsustain_sustain_delay"></slider>
<div class="input-area">
<label>{{'heats_decomsustain_sustain_delay'|localize('Ritardo sostentamento')}}</label>
<numeric v-model="recipe.heats_decomsustain_sustain_delay" />
</div>
<slider v-model="recipe.heats_decomsustain_sustain_delay"></slider>
</template>
<template v-if="recipe.heats_decomsustain_decompression_delay.status.visible">
<div class="input-area">
<label>{{'heats_decomsustain_decompression_delay'|localize('Ritardo decompressione')}}</label>
<numeric v-model="recipe.heats_decomsustain_decompression_delay" />
</div>
<slider v-model="recipe.heats_decomsustain_decompression_delay"></slider>
<div class="input-area">
<label>{{'heats_decomsustain_decompression_delay'|localize('Ritardo decompressione')}}</label>
<numeric v-model="recipe.heats_decomsustain_decompression_delay" />
</div>
<slider v-model="recipe.heats_decomsustain_decompression_delay"></slider>
</template>
<template v-if="recipe.heats_decomsustain_decompression_duration.status.visible">
<div class="input-area">
<label>{{'heats_decomsustain_decompression_duration'|localize('Durata decompressione')}}</label>
<numeric v-model="recipe.heats_decomsustain_decompression_duration" />
</div>
<slider v-model="recipe.heats_decomsustain_decompression_duration"></slider>
<div class="input-area">
<label>{{'heats_decomsustain_decompression_duration'|localize('Durata decompressione')}}</label>
<numeric v-model="recipe.heats_decomsustain_decompression_duration" />
</div>
<slider v-model="recipe.heats_decomsustain_decompression_duration"></slider>
</template>
<template v-if="recipe.heats_decomsustain_smoke_function_enabled.status.visible">
<div class="input-area">
<label>{{'heats_decomsustain_smoke_function_enabled'|localize('Funzione "fumo"')}}</label>
<toggle-button v-model="recipe.heats_decomsustain_smoke_function_enabled.status.enabled"></toggle-button>
</div>
<div class="input-area">
<label>{{'heats_decomsustain_smoke_function_enabled'|localize('Funzione "fumo"')}}</label>
<toggle-button v-model="recipe.heats_decomsustain_smoke_function_enabled.status.enabled"></toggle-button>
</div>
</template>
</div>
</div>
@@ -6,7 +6,7 @@
<template v-if="recipe.vacuum_main_start.status.visible">
<div class="input-area">
<label>{{'vacuum_main_start'|localize('Partenza')}}</label>
<select class="form-control" v-model="recipe.vacuum_main_start"></select>
<combo v-model="recipe.vacuum_main_start"></combo>
</div>
</template>
<hr />
+2 -1
View File
@@ -36,5 +36,6 @@ export interface IConfiguration {
api: {
enabled: boolean,
apiServerUrl: string
}
},
allUIVisible: boolean
}
@@ -1,4 +1,5 @@
import Vue from "vue";
import { CONFIGURATION } from "@/config";
export interface RecipeStoreModel {
current: Recipe.IRecipe;
@@ -45,8 +46,9 @@ export const recipeStore = {
SetCurrent(state, model: Recipe.IRecipe) {
for (const key in model) {
if (model.hasOwnProperty(key)) {
if (model[key])
if (model[key]) {
Vue.set(state.current, key, model[key]);
}
}
}
},
@@ -59,13 +61,24 @@ export const recipeStore = {
}
}
},
SetAllVisible(state) {
for (const key in state.current) {
if (state.current.hasOwnProperty(key)) {
state.current[key].status.visible = true;
}
}
}
},
actions: {
setCurrent(context, model: Recipe.IRecipe) {
async setCurrent(context, model: Recipe.IRecipe) {
context.commit("SetCurrent", model);
var c = await CONFIGURATION;
if (c.allUIVisible) context.commit("SetAllVisible")
},
setOverview(context, model: Overview.IOverview) {