This commit is contained in:
Samuele Locatelli
2020-05-19 16:27:21 +02:00
154 changed files with 5987 additions and 1235 deletions
@@ -0,0 +1,57 @@
declare module Recipe{
interface IRange{
min: number;
max: number;
}
interface IStatus{
visible: boolean;
enabled: boolean;
hasError: boolean;
}
interface IValue{
range:IRange,
status:IStatus,
unitMeasure:string,
valueAct: number
}
interface IRecipe{
vacuum_main_start?:IValue,
vacuum_main_delay?:IValue,
vacuum_main_max_time?:IValue,
vacuum_main_1_chart_setpointx?:IValue,
vacuum_main_1_chart_setpointy?:IValue,
vacuum_main_2_chart_setpointx?:IValue,
vacuum_main_2_chart_setpointy?:IValue,
vacuum_main_3_chart_setpointx?:IValue,
vacuum_main_3_chart_setpointy?:IValue,
vacuum_main_manual?:IValue,
vacuum_direct_enabled?:IValue,
vacuum_direct_delay?:IValue,
vacuum_direct_time?:IValue,
vacuum_aux_enabled?:IValue,
vacuum_aux_delay?:IValue,
vacuum_aux_max_time?:IValue,
vacuum_aux_1_chart_setpointx?:IValue,
vacuum_aux_1_chart_setpointy?:IValue,
vacuum_aux_2_chart_setpointx?:IValue,
vacuum_aux_2_chart_setpointy?:IValue,
vacuum_aux_3_chart_setpointx?:IValue,
vacuum_aux_3_chart_setpointy?:IValue,
vacuum_aux_manual?:IValue,
vacuum_pre_enabled?:IValue,
vacuum_pre_delay?:IValue,
vacuum_pre_max_time?:IValue,
vacuum_pre_1_chart_setpointx?:IValue,
vacuum_pre_1_chart_setpointy?:IValue,
vacuum_pre_2_chart_setpointx?:IValue,
vacuum_pre_2_chart_setpointy?:IValue,
vacuum_pre_3_chart_setpointx?:IValue,
vacuum_pre_3_chart_setpointy?:IValue
}
}
@@ -0,0 +1,57 @@
declare module Recipe{
interface IRange{
min: number;
max: number;
}
interface IStatus{
visible: boolean;
enabled: boolean;
hasError: boolean;
}
interface IValue{
range:IRange,
status:IStatus,
unitMeasure:string,
valueAct: number
}
interface IRecipe{
vacuum_main_start?:IValue,
vacuum_main_delay?:IValue,
vacuum_main_max_time?:IValue,
vacuum_main_1_chart_setpointx?:IValue,
vacuum_main_1_chart_setpointy?:IValue,
vacuum_main_2_chart_setpointx?:IValue,
vacuum_main_2_chart_setpointy?:IValue,
vacuum_main_3_chart_setpointx?:IValue,
vacuum_main_3_chart_setpointy?:IValue,
vacuum_main_manual?:IValue,
vacuum_direct_enabled?:IValue,
vacuum_direct_delay?:IValue,
vacuum_direct_time?:IValue,
vacuum_aux_enabled?:IValue,
vacuum_aux_delay?:IValue,
vacuum_aux_max_time?:IValue,
vacuum_aux_1_chart_setpointx?:IValue,
vacuum_aux_1_chart_setpointy?:IValue,
vacuum_aux_2_chart_setpointx?:IValue,
vacuum_aux_2_chart_setpointy?:IValue,
vacuum_aux_3_chart_setpointx?:IValue,
vacuum_aux_3_chart_setpointy?:IValue,
vacuum_aux_manual?:IValue,
vacuum_pre_enabled?:IValue,
vacuum_pre_delay?:IValue,
vacuum_pre_max_time?:IValue,
vacuum_pre_1_chart_setpointx?:IValue,
vacuum_pre_1_chart_setpointy?:IValue,
vacuum_pre_2_chart_setpointx?:IValue,
vacuum_pre_2_chart_setpointy?:IValue,
vacuum_pre_3_chart_setpointx?:IValue,
vacuum_pre_3_chart_setpointy?:IValue
}
}
@@ -0,0 +1,48 @@
import Vue from 'vue';
import Component from 'vue-class-component';
import {Prop} from 'vue-property-decorator';
import Slider from "@/app_modules_thermo/components/slider.vue"
import Scheda from "@/app_modules_thermo/components/scheda.vue"
@Component({name:'vuotoprincipale', components: { slider:Slider, scheda:Scheda}})
export default class VuotoPrincipale extends Vue{
Recipe:Recipe.IRecipe={
vacuum_main_delay:{
range:{
min:8,
max:105
},
status:{
visible:true,
enabled:true,
hasError:false
},
unitMeasure:"",
valueAct:57
},
vacuum_main_max_time:{
range:{
min:9,
max:127
},
status:{
visible:true,
enabled:true,
hasError:false
},
unitMeasure:"",
valueAct:30
},
};
@Prop({default:0})
ritardo:number;
@Prop({default:0})
percentuale:number;
@Prop({default:0})
durata:number;
}
@@ -0,0 +1,50 @@
<template>
<section>
<aside class="scrollable auto">
<div class="input-area">
<label>Partenza</label>
<select>
<option value="Label partenza">Label partenza</option>
</select>
</div>
<hr />
<div class="input-area">
<img src="assets/icons/png/clessidra.png" />
<label>Ritardo</label>
<div class="rect">
{{ritardo}} s
</div>
</div>
<slider :min="0" :max="10" v-model="ritardo" unit-of-measure="s"></slider>
<hr />
<div class="input-area">
<label>Portata in manuale</label>
<div class="rect">
{{Recipe.vacuum_main_delay.valueAct}} %
</div>
</div>
<slider :min="Recipe.vacuum_main_delay.range.min" :max="Recipe.vacuum_main_delay.range.max" v-model="Recipe.vacuum_main_delay.valueAct" :unit-of-measure="Recipe.vacuum_main_delay.unitMeasure"></slider>
</aside>
<hr>
<div class="specific">
<scheda></scheda>
<scheda></scheda>
<scheda></scheda>
</div>
<div class="specific">
<div class="input-area">
<label>Durata massima</label>
<div class="rect">
{{Recipe.vacuum_main_max_time.valueAct}} s
</div>
</div>
<slider :min="Recipe.vacuum_main_max_time.range.min" :max="Recipe.vacuum_main_max_time.range.max" v-model="Recipe.vacuum_main_max_time.valueAct" :unit-of-measure="Recipe.vacuum_main_max_time.unitMeasure"></slider>
</div>
</section>
</template>
<script lang="ts" src="./vuoto-principale.ts"></script>
@@ -0,0 +1,50 @@
import Vue from 'vue';
import Component from 'vue-class-component';
import {Prop} from 'vue-property-decorator';
import Slider from "@/app_modules_thermo/components/slider.vue"
import Scheda from "@/app_modules_thermo/components/scheda.vue"
@Component({name:'vuotoprincipale', components: { slider:Slider, scheda:Scheda}})
export default class VuotoPrincipale extends Vue{
Recipe:Recipe.IRecipe={
vacuum_main_delay:{
range:{
min:8,
max:105
},
status:{
visible:true,
enabled:true,
hasError:false
},
unitMeasure:"",
valueAct:57
},
vacuum_main_max_time:{
range:{
min:9,
max:127
},
status:{
visible:true,
enabled:true,
hasError:false
},
unitMeasure:"",
valueAct:30
},
};
@Prop({default:0})
ritardo:number;
@Prop({default:0})
percentuale:number;
@Prop({default:0})
durata:number;
mock_ritardo:number=this.ritardo;
mock_percentuale:number=this.percentuale;
mock_durata:number=this.durata;
}
@@ -0,0 +1,44 @@
<template>
<section>
<aside class="scrollable auto">
<div class="input-area">
<label>Partenza</label>
<select>
<option value="Label partenza">Label partenza</option>
</select>
</div>
<hr />
<div class="input-area">
<img src="assets/icons/png/clessidra.png" />
<label>Ritardo</label>
<input class="rect" v-model="Recipe.vacuum_main_delay.valueAct">
</div>
<slider :min="Recipe.vacuum_main_delay.range.min" :max="Recipe.vacuum_main_delay.range.max" v-model="Recipe.vacuum_main_delay.valueAct" :unit-of-measure="Recipe.vacuum_main_delay.unitMeasure"></slider>
<hr />
<div class="input-area">
<label>Portata in manuale</label>
<input class="rect" v-model="mock_percentuale">
</div>
<slider :min="0" :max="100" v-model="mock_percentuale" :unit-of-measure="'%'"></slider>
</aside>
<hr>
<div class="specific">
<scheda></scheda>
<scheda></scheda>
<scheda></scheda>
</div>
<div class="specific">
<div class="input-area">
<label>Durata massima</label>
<input class="rect" v-model="Recipe.vacuum_main_max_time.valueAct">
</div>
<slider :min="Recipe.vacuum_main_max_time.range.min" :max="Recipe.vacuum_main_max_time.range.max" v-model="Recipe.vacuum_main_max_time.valueAct" :unit-of-measure="Recipe.vacuum_main_max_time.unitMeasure"></slider>
</div>
</section>
</template>
<script lang="ts" src="./vuoto-principale.ts"></script>
@@ -0,0 +1,63 @@
import Vue from 'vue';
import Component from 'vue-class-component';
import {Prop} from 'vue-property-decorator';
import Slider from "@/app_modules_thermo/components/slider.vue"
import Scheda from "@/app_modules_thermo/components/scheda.vue"
@Component({name:'vuotoprincipale', components: { slider:Slider, scheda:Scheda}})
export default class VuotoPrincipale extends Vue{
Recipe:Recipe.IRecipe={
vacuum_main_delay:{
range:{
min:8,
max:105
},
status:{
visible:true,
enabled:true,
hasError:false
},
unitMeasure:"",
valueAct:57
},
vacuum_main_max_time:{
range:{
min:9,
max:127
},
status:{
visible:true,
enabled:true,
hasError:false
},
unitMeasure:"",
valueAct:30
},
vacuum_main_manual:{
range:{
min:4,
max:115
},
status:{
visible:true,
enabled:true,
hasError:false
},
unitMeasure:"",
valueAct:8
},
};
@Prop({default:0})
ritardo:number;
@Prop({default:0})
percentuale:number;
@Prop({default:0})
durata:number;
mock_ritardo:number=this.ritardo;
mock_percentuale:number=this.percentuale;
mock_durata:number=this.durata;
}
@@ -0,0 +1,44 @@
<template>
<section>
<aside class="scrollable auto">
<div class="input-area">
<label>Partenza</label>
<select>
<option value="Label partenza">Label partenza</option>
</select>
</div>
<hr />
<div class="input-area">
<img src="assets/icons/png/clessidra.png" />
<label>Ritardo</label>
<input class="rect" v-model="Recipe.vacuum_main_delay.valueAct">
</div>
<slider :min="Recipe.vacuum_main_delay.range.min" :max="Recipe.vacuum_main_delay.range.max" v-model="Recipe.vacuum_main_delay.valueAct" :unit-of-measure="Recipe.vacuum_main_delay.unitMeasure"></slider>
<hr />
<div class="input-area">
<label>Portata in manuale</label>
<input class="rect" v-model="Recipe.vacuum_main_manual.valueAct">
</div>
<slider :min="Recipe.vacuum_main_manual.range.min" :max="Recipe.vacuum_main_manual.range.max" v-model="Recipe.vacuum_main_manual.valueAct" :unit-of-measure="Recipe.vacuum_main_manual.unitMeasure"></slider>
</aside>
<hr>
<div class="specific">
<scheda></scheda>
<scheda></scheda>
<scheda></scheda>
</div>
<div class="specific">
<div class="input-area">
<label>Durata massima</label>
<input class="rect" v-model="Recipe.vacuum_main_max_time.valueAct">
</div>
<slider :min="Recipe.vacuum_main_max_time.range.min" :max="Recipe.vacuum_main_max_time.range.max" v-model="Recipe.vacuum_main_max_time.valueAct" :unit-of-measure="Recipe.vacuum_main_max_time.unitMeasure"></slider>
</div>
</section>
</template>
<script lang="ts" src="./vuoto-principale.ts"></script>
Binary file not shown.

After

Width:  |  Height:  |  Size: 724 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 37 KiB

@@ -0,0 +1,240 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="1156mm"
height="800mm"
viewBox="0 0 1156 800"
version="1.1"
id="svg8"
inkscape:version="0.92.4 (5da689c313, 2019-01-14)"
sodipodi:docname="disegno-controstampo-quote-velocita.svg">
<defs
id="defs2" />
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="0.125"
inkscape:cx="1119.1458"
inkscape:cy="2036.4307"
inkscape:document-units="mm"
inkscape:current-layer="layer1"
showgrid="false"
inkscape:window-width="1920"
inkscape:window-height="1001"
inkscape:window-x="-9"
inkscape:window-y="-9"
inkscape:window-maximized="1" />
<metadata
id="metadata5">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Livello 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(0,503)">
<path
style="fill:#4d85ff;fill-opacity:0.5018587;stroke:#0000a9;stroke-width:4;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 850.19123,-221.17487 c 0,0 122.26692,-1.97359 180.30647,0.24275 l -35.60462,147.001143 -111.4927,0.65955 -7.07924,-30.572513 -27.17361,-117.34132 1.04341,0.0577"
id="path54-0"
inkscape:connector-curvature="0"
sodipodi:nodetypes="ccccccc"
inkscape:export-xdpi="96"
inkscape:export-ydpi="96" />
<path
style="fill:none;stroke:#0000d1;stroke-width:4.21029854;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 762.66311,-224.80453 355.98669,-0.0872"
id="path4569-2"
inkscape:connector-curvature="0"
inkscape:export-xdpi="96"
inkscape:export-ydpi="96" />
<path
style="fill:none;stroke:#b3b3b3;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 80.074,-467.77078 h 558"
id="path857"
inkscape:connector-curvature="0" />
<path
style="fill:#4d85ff;fill-opacity:0.5018587;stroke:#0000a9;stroke-width:4;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 220.17481,-466.8417 c 0,0 122.26692,-1.97359 180.30648,0.24275 l -35.60463,147.00114 -111.4927,0.65955 -7.07924,-30.57251 -27.17361,-117.34132 1.04341,0.0577"
id="path54"
inkscape:connector-curvature="0"
sodipodi:nodetypes="ccccccc"
inkscape:export-xdpi="96"
inkscape:export-ydpi="96" />
<path
style="fill:none;stroke:#0000d1;stroke-width:4.21029854;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 132.64669,-470.47136 355.9867,-0.0872"
id="path4569"
inkscape:connector-curvature="0"
inkscape:export-xdpi="96"
inkscape:export-ydpi="96" />
<path
style="fill:none;stroke:#b3b3b3;stroke-width:1.15390325;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="M 80.074,258.22905 H 638.07402"
id="path857-9"
inkscape:connector-curvature="0" />
<path
style="fill:#b3b3b3;stroke:#b3b3b3;stroke-width:1.99642622;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 586.55369,-466.91951 1.6e-4,723.40752"
id="path892"
inkscape:connector-curvature="0" />
<path
sodipodi:type="star"
style="opacity:1;fill:#b3b3b3;fill-opacity:1;stroke:#b3b3b3;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="path896"
sodipodi:sides="3"
sodipodi:cx="561.26599"
sodipodi:cy="-438.63263"
sodipodi:r1="12.744021"
sodipodi:r2="6.3720102"
sodipodi:arg1="0.8685394"
sodipodi:arg2="1.9157369"
inkscape:flatsided="false"
inkscape:rounded="0"
inkscape:randomized="0"
d="m 569.49789,-428.90402 -10.38654,-3.73194 -10.38653,-3.73194 8.42522,-7.12903 8.42522,-7.12904 1.96132,10.86098 z"
inkscape:transform-center-x="0.0055839671"
inkscape:transform-center-y="3.1811632"
transform="matrix(0.94139126,0.3373166,0.3373166,-0.94139126,206.12985,-358.50528)" />
<path
style="fill:#b3b3b3;stroke:#b3b3b3;stroke-width:1.99668467;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 153.82073,258.26847 1.6e-4,-723.59489"
id="path892-5"
inkscape:connector-curvature="0" />
<path
sodipodi:type="star"
style="opacity:1;fill:#b3b3b3;fill-opacity:1;stroke:#b3b3b3;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="path896-3"
sodipodi:sides="3"
sodipodi:cx="561.26599"
sodipodi:cy="-438.63263"
sodipodi:r1="12.744021"
sodipodi:r2="6.3720102"
sodipodi:arg1="0.8685394"
sodipodi:arg2="1.9157369"
inkscape:flatsided="false"
inkscape:rounded="0"
inkscape:randomized="0"
d="m 569.49789,-428.90402 -10.38654,-3.73194 -10.38653,-3.73194 8.42522,-7.12903 8.42522,-7.12904 1.96132,10.86098 z"
inkscape:transform-center-x="0.0055849117"
inkscape:transform-center-y="-3.1811677"
transform="rotate(-19.713471,317.39459,726.92906)" />
<path
style="fill:#b3b3b3;stroke:#b3b3b3;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 240.81371,257.736 1.6e-4,-49.5639"
id="path892-3"
inkscape:connector-curvature="0" />
<path
sodipodi:type="star"
style="opacity:1;fill:#b3b3b3;fill-opacity:1;stroke:#b3b3b3;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="path896-9"
sodipodi:sides="3"
sodipodi:cx="561.26599"
sodipodi:cy="-438.63263"
sodipodi:r1="12.744021"
sodipodi:r2="6.3720102"
sodipodi:arg1="0.8685394"
sodipodi:arg2="1.9157369"
inkscape:flatsided="false"
inkscape:rounded="0"
inkscape:randomized="0"
d="m 569.49789,-428.90402 -10.38654,-3.73194 -10.38653,-3.73194 8.42522,-7.12903 8.42522,-7.12904 1.96132,10.86098 z"
inkscape:transform-center-x="0.0055882036"
inkscape:transform-center-y="-3.1811704"
transform="rotate(-19.713471,2299.018,813.33867)" />
<path
style="fill:#b3b3b3;stroke:#b3b3b3;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 461.1167,181.58296 1.6e-4,75.04806"
id="path892-7"
inkscape:connector-curvature="0" />
<path
sodipodi:type="star"
style="opacity:1;fill:#b3b3b3;fill-opacity:1;stroke:#b3b3b3;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="path896-1"
sodipodi:sides="3"
sodipodi:cx="561.26599"
sodipodi:cy="-438.63263"
sodipodi:r1="12.744021"
sodipodi:r2="6.3720102"
sodipodi:arg1="0.8685394"
sodipodi:arg2="1.9157369"
inkscape:flatsided="false"
inkscape:rounded="0"
inkscape:randomized="0"
d="m 569.49789,-428.90402 -10.38654,-3.73194 -10.38653,-3.73194 8.42522,-7.12903 8.42522,-7.12904 1.96132,10.86098 z"
inkscape:transform-center-x="0.0055839671"
inkscape:transform-center-y="3.1811632"
transform="matrix(0.94139126,0.3373166,0.3373166,-0.94139126,80.692857,-358.36228)" />
<path
style="fill:#b3b3b3;stroke:#b3b3b3;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 481.95486,180.89827 -41.71686,1.6e-4"
id="path892-7-0"
inkscape:connector-curvature="0" />
<path
style="fill:#b3b3b3;stroke:#b3b3b3;stroke-width:3.42526412;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 883.40308,-73.271427 -122.54456,1.6e-4"
id="path892-7-0-9"
inkscape:connector-curvature="0" />
<path
style="fill:none;stroke:#b3b3b3;stroke-width:1.96497488;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="M 770.52084,-221.43693 V -75.790677"
id="path972"
inkscape:connector-curvature="0" />
<path
sodipodi:type="star"
style="opacity:1;fill:#b3b3b3;fill-opacity:1;stroke:#b3b3b3;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="path896-3-9"
sodipodi:sides="3"
sodipodi:cx="561.26599"
sodipodi:cy="-438.63263"
sodipodi:r1="12.744021"
sodipodi:r2="6.3720102"
sodipodi:arg1="0.8685394"
sodipodi:arg2="1.9157369"
inkscape:flatsided="false"
inkscape:rounded="0"
inkscape:randomized="0"
d="m 569.49789,-428.90402 -10.38654,-3.73194 -10.38653,-3.73194 8.42522,-7.12903 8.42522,-7.12904 1.96132,10.86098 z"
inkscape:transform-center-x="0.0055849117"
inkscape:transform-center-y="-3.1811677"
transform="rotate(-19.713471,1327.5852,-925.80315)" />
<path
sodipodi:type="star"
style="opacity:1;fill:#b3b3b3;fill-opacity:1;stroke:#b3b3b3;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="path896-7"
sodipodi:sides="3"
sodipodi:cx="561.26599"
sodipodi:cy="-438.63263"
sodipodi:r1="12.744021"
sodipodi:r2="6.3720102"
sodipodi:arg1="0.8685394"
sodipodi:arg2="1.9157369"
inkscape:flatsided="false"
inkscape:rounded="0"
inkscape:randomized="0"
d="m 569.49789,-428.90402 -10.38654,-3.73194 -10.38653,-3.73194 8.42522,-7.12903 8.42522,-7.12904 1.96132,10.86098 z"
inkscape:transform-center-x="0.0055839671"
inkscape:transform-center-y="3.1811632"
transform="matrix(0.94139126,0.3373166,0.3373166,-0.94139126,390.09685,-690.78395)" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 11 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 89 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 89 KiB

@@ -0,0 +1,34 @@
// out: false, sourceMap: false, main: ../style.less
@import "grid-system.less";
@import "colors.less";
@import "fonts.less";
@modal: modal;
.@{modal}.avvio-produzione-info {
margin-top: 100px;
width: 653px;
height: 616px;
section.body{
section{
justify-content: center;
.specific{
.disabled{
width: 420px;
height: 330px;
}
.tast{
margin-left: 25%;
}
}
}
}
}
@@ -50,26 +50,27 @@
.circle1{
position: relative;
top: 130px;
top: 200px;
right: 25px;
}
.circle2{
position: relative;
top: 180px;
top: 400px;
right: 25px;
}
.circle3{
width: 135px;
position: relative;
top: 175px;
top: 545px;
right: 410px;
}
.circle4{
position: relative;
top: 60px;
right: 180px;
top: 585px;
right: 200px;
}
}
@@ -0,0 +1,92 @@
// out: false, sourceMap: false, main: ../style.less
@import "grid-system.less";
@import "colors.less";
@import "fonts.less";
.circle-gantt{
height: 70px;
.specific{
div{
&:first-of-type{
display: flex;
flex-direction: column;
justify-content: flex-end;
height: 70px;
object-fit: contain;
border-radius: 2px;
background-color: #57636b;
label{
margin-left: 37%;
}
}
&:last-of-type{
display: flex;
flex-direction: column;
justify-content: center;
margin-top: -66px;
height: 40px;
object-fit: contain;
border-radius: 2px;
background-color: #c0c7cc;
label{
margin-left: 25%;
}
}
}
&:first-of-type{
div{
&:first-of-type{
display: flex;
flex-direction: column;
justify-content: flex-end;
width: 34px;
height: 70px;
object-fit: contain;
border-radius: 2px;
background-color: #57636b;
label{
margin-left: 25%;
}
}
&:last-of-type{
display: flex;
flex-direction: column;
justify-content: flex-end;
margin-top: -66px;
width: 34px;
height: 40px;
object-fit: contain;
border-radius: 2px;
background-color: #c0c7cc;
img{
margin-left: 25%;
flex-shrink: 0;
width: 20px;
height: 20px;
}
}
}
}
}
}
@@ -7,16 +7,24 @@
.@{modal}.estrazione-info {
width: 1820px;
height: 785px;
.specific {
justify-content: flex-end;
.box{
background-color: #e5f3ff;
}
}
section.body{
section{
.specific {
justify-content: flex-end;
padding-left: 10px;
.box{
margin:0;
background-color: #e5f3ff;
}
}
}
}
}
@@ -1,4 +1,5 @@
// out: false, sourceMap: false, main: ../style.less
@import "setup.less";
@import "colors.less";
@import "modals.less";
@import "pirometro.less";
@@ -6,8 +7,10 @@
@import "formato.less";
@import "slider.less";
@import "tastierino.less";
@import "circlegantt.less";
@import "paddle.less";
@import "arretramento-riscaldi.less";
@import "setup.less";
@import "avvio-prod.less";
@import "ciclo.less";
@import "raffreddamento.less";
@import "processo.less";
@@ -15,8 +15,10 @@
margin: 0;
}
.section{
display: flex;
section.body{
section{
padding: 0px;
.specific{
@@ -60,31 +62,33 @@
}
}
aside{
aside{
button{
display: block;
background-color: #bbbcbc;
color: #002680;
padding: 22px 16px;
margin: 2px 0;
width: 547px;
height: 70px;
border: none;
text-align: left;
cursor: pointer;
font-size: 17px;
}
button{
display: block;
background-color: #bbbcbc;
color: #002680;
padding: 22px 16px;
margin: 2px 0;
width: 547px;
height: 70px;
border: none;
text-align: left;
cursor: pointer;
font-size: 17px;
}
.active{
background-color: #fff;
font-weight: bold;
border-top: 2px solid #002680;
}
.active{
background-color: #fff;
font-weight: bold;
border-top: 2px solid #002680;
}
}
}
}
}
@@ -0,0 +1,188 @@
// out: false, sourceMap: false, main: ../style.less
@import "grid-system.less";
@import "colors.less";
@import "fonts.less";
html {
height: 100%;
overflow:hidden;
}
body {
border: 0; margin: 0; padding: 0;
height: 100%;
}
.hidden {
visibility: hidden;
}
.container{
#app{
nav {
position: absolute;
top: 50%;
right: 0;
.active button{
transform: translate(-761px, 0px);
}
div{
button {
position: relative;
height: 30px;
width: 32px;
display: block;
z-index: 9999;
border: 0;
border-radius: 0;
pointer-events: all;
background: #dddddd;
border-bottom-left-radius: 90px;
border-top-left-radius: 90px;
height: 90px;
width: 45px;
div{
display: grid;
grid-template-columns: repeat(2, 1fr);
grid-template-rows: 1fr 1fr;
align-items: center;
justify-items: center;
padding: 5px;
div {
width: 2px;
height: 2px;
border-radius: 10px;
margin: 2px;
background: #002680;
}
}
}
}
}
// .slide-enter-active,
// .slide-leave-active
// {
// transition: left,right 0s ease-in-out;
// }
// .slide-enter,
// .slide-leave-to {
// transition: right,left 0s ease-in-out
// }
.sidebar{
.sidebar-backdrop{
width: 100vw;
height: 100vh;
position: fixed;
top: 0;
left: 0;
cursor: pointer;
}
.sidebar-panel{
overflow-y: auto;
background-color: #130f40;
position: fixed;
right: 0;
top: 141px;
height: 100vh;
z-index: 900;
padding: 3rem 20px 2rem 20px;
width: 721px;
height: 920px;
border-radius: 4px;
box-shadow: 2px 10px 15px 0 rgba(0, 0, 0, 0.5);
background-color: #dddddd;
.text-head-sidebar{
margin: 10px auto;
font-size: 24px;
font-weight: 500;
font-stretch: normal;
font-style: normal;
line-height: normal;
letter-spacing: normal;
text-align: center;
color: #002680;
}
.box-sidebar-panel{
display: grid;
grid-template-columns: repeat(2, 1fr);
align-items: center;
justify-items: center;
.sidebar-panel-nav{
width: 286px;
height: 100px;
border-radius: 2px;
box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.5);
background-color: #808e96;
margin: 10px 30px;
.text-box-paddle{
display: flex;
width: 268px;
height: 78px;
font-family: WorkSans;
font-size: 18px;
font-weight: 500;
font-stretch: normal;
font-style: normal;
line-height: normal;
letter-spacing: normal;
color: #ffffff;
margin: 10px;
i{
text-align: end;
width: 50px;
color: #bbbcbc;
}
label{
width: 117px;
margin: 10px;
}
}
.text-box-paddle.text-soft{
label{
width: 100%;
align-self: center;
}
}
}
}
}
}
}
}
@@ -10,83 +10,84 @@
width: 1820px;
height: 980px;
section{
.specific{
width: 470px;
@{pirometro-margin}:37%;
}
.termospecific{
@{pirometro-margin}:0%;
.svg-area{
padding-left: 90px;
width: 1270px;
height: 800px;
.disegnoTermoSuperiore{
flex-shrink: 0;
width: 1100px;
height: 750px;
}
.border-termo-superiore{
.circle1{
position: relative;
top: 135px;
right: 1150px;
}
.circle2{
position: relative;
top: 355px;
right: 1150px;
}
.circle3{
position: relative;
top: 425px;
right: 1150px;
}
.circle4{
position: relative;
top: 470px;
right: 635px;
}
.circle5{
position: relative;
top: 400px;
right: 255px;
}
.circle6{
width: 64px;
height: 20px;
color:white;
object-fit: contain;
background-color: #c03d58;
position: relative;
top: 95px;
right: 125px;
}
}
section.body{
section{
.specific{
width: 470px;
@{pirometro-margin}:37%;
}
button{
margin-left: 5px;
width: 48px;
height: 48px;
object-fit: contain;
border-radius: 2px;
box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.5);
border: solid 1px #001e48;
background-image: linear-gradient(to bottom, #1756ad, #002680);
.termospecific{
@{pirometro-margin}:0%;
.svg-area{
padding-left: 90px;
width: 1270px;
height: 800px;
.disegnoTermoSuperiore{
flex-shrink: 0;
width: 1100px;
height: 750px;
}
.border-termo-superiore{
.circle1{
position: relative;
top: 135px;
right: 1150px;
}
.circle2{
position: relative;
top: 355px;
right: 1150px;
}
.circle3{
position: relative;
top: 425px;
right: 1150px;
}
.circle4{
position: relative;
top: 470px;
right: 635px;
}
.circle5{
position: relative;
top: 400px;
right: 255px;
}
.circle6{
width: 100px;
background-color: #c03d58;
position: relative;
top: 87px;
right: 150px;
}
}
}
button{
margin-left: 5px;
width: 48px;
height: 48px;
object-fit: contain;
border-radius: 2px;
box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.5);
border: solid 1px #001e48;
background-image: linear-gradient(to bottom, #1756ad, #002680);
}
}
}
@@ -7,5 +7,54 @@
.@{modal}.processo-info {
width: 1820px;
height: 980px;
margin: 150px 193px;
margin-top: 50px;
header{
font-size: 22px;
color: #4b4b4b;
.tab-header{
padding: 10px 0px;
button{
padding: 0;
display: flex;
justify-content: flex-start;
margin-right: 10px;
width: 149px;
height: 48px;
border-radius: 2px;
box-shadow: 0 0 3px 0 rgba(0, 0, 0, 0.5);
background-image: linear-gradient(to bottom, #f1f1f1 0%, #bbbcbc 98%);
font-size: 14px;
font-weight: 500;
font-stretch: normal;
font-style: normal;
line-height: 1.15;
letter-spacing: normal;
color: #4b4b4b;
img{
margin-right: 20px;
}
}
label{
width: 106px;
height: 32px;
font-size: 32px;
font-weight: 600;
font-stretch: normal;
font-style: normal;
line-height: 1;
letter-spacing: normal;
text-align: right;
color: #545454;
}
}
}
}
@@ -48,22 +48,15 @@
height: 795px;
}
.disegnoControstampoQuoteVelocita{
flex-shrink: 0;
margin-left: 600px;
width: 1156px;
height: 800px;
}
.input-circles{
span{
object-fit: contain;
font-size: 22px;
font-weight: 500;
font-stretch: normal;
font-style: normal;
line-height: normal;
letter-spacing: normal;
text-align: center;
color: white;
background-color: #979797;
}
.circle{
width: 147px;
height: 60px;
@@ -181,16 +174,57 @@
.circle-stampo-10{
position: relative;
bottom: 557px;
bottom: 560px;
right: 769px;
}
.circle-stampo-11{
position: relative;
top: 38px;
top: 35px;
right: 781px;
}
.circle-controstampo-1{
position: relative;
top: 300px;
right: 1090px;
}
.circle-controstampo-2{
position: relative;
top: 570px;
right: 990px;
}
.circle-controstampo-3{
position: relative;
top: 475px;
right: 770px;
}
.circle-controstampo-4{
position: relative;
right: 650px;
}
.circle-controstampo-5{
position: relative;
top: 45px;
right: 480px;
}
.circle-controstampo-6{
position: relative;
top: -335px;
right: 650px;
}
.circle-controstampo-7{
position: relative;
top: 400px;
right: 650px;
}
}
}
@@ -10,7 +10,7 @@
.input-area{
width: 480px;
margin: 3px;
margin: 4px;
margin-bottom: 0px;
}
@@ -41,6 +41,7 @@
.auto{
overflow-y: auto;
overflow-x: hidden;
}
aside {
@@ -75,6 +76,19 @@
display: flex;
flex-direction: column;
span{
object-fit: contain;
font-size: 22px;
font-weight: 500;
font-stretch: normal;
font-style: normal;
line-height: normal;
letter-spacing: normal;
text-align: center;
color: white;
background-color: #979797;
}
.circle {
width: 141px;
height: 60px;
@@ -87,6 +101,21 @@
border: solid 4px #9b9b9b;
}
input{
width: 40px;
height: 21px;
margin: auto;
object-fit: contain;
font-size: 20px;
font-weight: 500;
font-stretch: normal;
font-style: normal;
line-height: normal;
letter-spacing: normal;
color: #6d6d6d;
border: none;
}
label {
margin: auto;
object-fit: contain;
@@ -125,12 +154,10 @@
header {
background-color: @color-white;
color: @color-darkish-blue;
font-weight: 600;
font-size: 24px;
text-align: left;
padding: 0px 23px;
display: flex;
flex-flow: row nowrap;
justify-content: space-between;
@@ -249,9 +276,13 @@
color: #90BF3D;
}
&.fa-minus-circle{
color: #7A7C74;
&.fa-check-circle.undone-step{
color: #1791FF;
}
// &.fa-minus-circle{
// color: #7A7C74;
// }
}
position: relative;
@@ -390,10 +421,19 @@
}
.rect {
display: flex;
align-items: center;
justify-content: flex-end;
padding-inline-end: 20px;
// display: flex;
// align-items: center;
// justify-content: flex-end;
// padding-inline-end: 20px;
object-fit: contain;
font-size: 20px;
font-weight: 500;
font-stretch: normal;
font-style: normal;
line-height: normal;
letter-spacing: normal;
color: #6d6d6d;
text-align: center;
width: 98px;
height: 48px;
border-radius: 2px;
@@ -4,86 +4,103 @@
@import "fonts.less";
.tast{
margin-top: 30px;
margin-left: -350px;
height: 261px;
width: 293px;
background-color:@color-silver;
.mask{
display: grid;
grid-template-columns: repeat(4, 52px);
grid-template-rows: repeat(4, 52px);
grid-gap: 5px 8px;
margin-top: 7%;
margin-left: 10%;
button{
border:none;
background-image: linear-gradient(to bottom, #f1f1f1 0%, #bbbcbc 98%);
box-shadow: 2px 10px 15px 0 rgba(0, 0, 0, 0.5);
color:@color-darkish-blue;
font-size:20px;
}
.zero{
grid-column: 1/span 2;
grid-row: 4/5;
border:none;
background-image: linear-gradient(to bottom, #f1f1f1 0%, #bbbcbc 98%);
box-shadow: 2px 10px 15px 0 rgba(0, 0, 0, 0.5);
}
.submit{
grid-column-start: 4;
grid-column-end: 5;
grid-row-start: 3;
grid-row-end: 5;
border:none;
background-image: linear-gradient(to bottom, #000080 0%, #191970 98%);
box-shadow: 2px 10px 15px 0 rgba(0, 0, 0, 0.5);
img{
width: 30px;
height: 30px;
}
}
.bCanc{
grid-column: 4/5;
grid-row: 2/3;
img{
width: 30px;
height: 25px;
}
}
.b1{
grid-column: 1/2;
grid-row: 3/4;
}
.b2{
grid-column: 2/3;
grid-row: 3/4;
}
.b3{
grid-column: 3/4;
grid-row: 3/4;
}
.b4{
grid-column: 1/2;
grid-row: 2/3;
}
.b5{
grid-column: 2/3;
grid-row: 2/3;
}
.b6{
grid-column: 3/4;
grid-row: 2/3;
}
.b7{
grid-column: 1/2;
grid-row: 1/2;
}
.b8{
grid-column: 2/3;
grid-row: 1/2;
}
.b9{
grid-column: 3/4;
grid-row: 1/2;
}
.bPunto{
grid-column: 3/4;
grid-row: 4/5;
}
.bDel{
grid-column: 4/5;
grid-row: 1/2;
}
}
}
.mask{
display: grid;
grid-template-columns: repeat(4, 52px);
grid-template-rows: repeat(4, 52px);
grid-gap: 5px 8px;
margin-top: 7%;
margin-left: 10%;
}
.tasto{
border:none;
background-image: linear-gradient(to bottom, #f1f1f1 0%, #bbbcbc 98%);
box-shadow: 2px 10px 15px 0 rgba(0, 0, 0, 0.5);
}
.zero{
grid-column: 1/span 2;
grid-row: 4/5;
border:none;
background-image: linear-gradient(to bottom, #f1f1f1 0%, #bbbcbc 98%);
box-shadow: 2px 10px 15px 0 rgba(0, 0, 0, 0.5);
}
.submit{
grid-column-start: 4;
grid-column-end: 5;
grid-row-start: 3;
grid-row-end: 5;
border:none;
background-image: linear-gradient(to bottom, #000080 0%, #191970 98%);
box-shadow: 2px 10px 15px 0 rgba(0, 0, 0, 0.5);
}
.b1{
grid-column: 1/2;
grid-row: 3/4;
}
.b2{
grid-column: 2/3;
grid-row: 3/4;
}
.b3{
grid-column: 3/4;
grid-row: 3/4;
}
.b4{
grid-column: 1/2;
grid-row: 2/3;
}
.b5{
grid-column: 2/3;
grid-row: 2/3;
}
.b6{
grid-column: 3/4;
grid-row: 2/3;
}
.b7{
grid-column: 1/2;
grid-row: 1/2;
}
.b8{
grid-column: 2/3;
grid-row: 1/2;
}
.b9{
grid-column: 3/4;
grid-row: 1/2;
}
.bCanc{
grid-column: 4/5;
grid-row: 2/3;
}
.bPunto{
grid-column: 3/4;
grid-row: 4/5;
}
.bDel{
grid-column: 4/5;
grid-row: 1/2;
}
File diff suppressed because it is too large Load Diff
@@ -2,6 +2,6 @@
"env": "development",
"api": {
"enabled": true,
"apiServerUrl": "http://localhost:9000"
"apiServerUrl": "http://seriate.steamware.net:9000/"
}
}
+1 -1
View File
@@ -2,6 +2,6 @@
"env": "development",
"api": {
"enabled": false,
"apiServerUrl": "https://localhost:9000"
"apiServerUrl": "http://seriate.steamware.net:9000/"
}
}
+18 -19
View File
@@ -2,31 +2,30 @@
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<meta name="description" content="">
<meta name="author" content="">
<!-- <base href="/"> -->
<title>CMS Active</title>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<meta name="description" content="">
<meta name="author" content="">
<!-- <base href="/"> -->
<title>CMS Active</title>
<script src="Scripts/jquery-3.2.1.min.js"></script>
<script src="Scripts/jquery.mousewheel.js"></script>
<script src="Scripts/jquery.signalR-2.2.2.min.js"></script>
<script src="Scripts/raphael-2.1.4.min.js"></script>
<script src="http://192.168.1.89:9000/signalr/hubs"></script>
<script src="Scripts/jquery-3.2.1.min.js"></script>
<script src="Scripts/jquery.mousewheel.js"></script>
<script src="Scripts/jquery.signalR-2.2.2.min.js"></script>
<script src="Scripts/raphael-2.1.4.min.js"></script>
<script src="http://seriate.steamware.net:9000/signalr/hubs"></script>
<link href="assets/styles/style.css" rel="stylesheet" />
<link href="assets/styles/style.css" rel="stylesheet" />
</head>
<body>
<app>
<div id="loading-spinner"><i class="fa fa-circle-o-notch fa-spin"></i></div>
</app>
<script src="/dist/vendors~main.js" type="text/javascript"></script>
<script src="/dist/build.js" type="text/javascript"></script>
<app>
<div id="loading-spinner"><i class="fa fa-circle-o-notch fa-spin"></i></div>
</app>
<script src="/dist/vendors~main.js" type="text/javascript"></script>
<script src="/dist/build.js" type="text/javascript"></script>
</body>
</html>
</html>
+339
View File
@@ -0,0 +1,339 @@
declare module Recipe {
interface IRange{
min:number,
max:number
}
interface IStatus{
visible:boolean,
enabled:boolean,
hasError:boolean
}
interface IValue{
range:IRange,
status:IStatus,
unitMeasure:string,
valueAct:number
}
interface IRecipe{
general_sizes_mould_dim_x?:IValue,
general_sizes_mould_dim_y?:IValue,
general_sizes_mould_max_height?:IValue,
general_sizes_mould_min_height?:IValue,
general_sizes_mould_base_height?:IValue,
general_sizes_sheet_material?:IValue,
general_sizes_sheet_dim_x?:IValue,
general_sizes_sheet_dim_y?:IValue,
general_sizes_sheet_thickness?:IValue,
general_sizes_plate_type?:IValue,
general_sizes_plate_dim_x?:IValue,
general_sizes_plate_dim_y?:IValue,
general_sizes_frame_traverses?:IValue,
general_sizes_frame_dim_x?:IValue,
general_sizes_frame_dim_y?:IValue,
general_sizes_upperplate_max_height?:IValue,
general_area_working_dxsx?:IValue,
positions_mould_lower_position?:IValue,
positions_mould_lower_speed?:IValue,
positions_mould_intermediate_position?:IValue,
positions_mould_upper_position?:IValue,
positions_mould_upper_speed?:IValue,
positions_mould_upperdeceleration_position?:IValue,
positions_mould_upperdeceleration_speed?:IValue,
positions_mould_lowerdeceleration_speed?:IValue,
positions_mould_lowerdeceleration_position?:IValue,
positions_frame_lower_position?:IValue,
positions_frame_lower_speed?:IValue,
positions_frame_upper_speed?:IValue,
positions_frame_upper_position?:IValue,
positions_frame_intermediate_position?:IValue,
positions_frame_intermediate_speed?:IValue,
positions_frame_unload_position?:IValue,
positions_upperplate_lower_position?:IValue,
positions_upperplate_lower_speed?:IValue,
positions_upperplate_upper_position?:IValue,
positions_upperplate_upper_speed?:IValue,
positions_upperplate_upperdeceleration_position?:IValue,
positions_upperplate_upperdeceleration_speed?:IValue,
positions_upperplate_lowerdeceleration_position?:IValue,
positions_upperplate_lowerdeceleration_speed?:IValue,
cycle_forming_type?:IValue,
cycle_forming_pause_cycle?:IValue,
cycle_forming_cooling_enabled?:IValue,
cycle_forming_blowingbox_enabled?:IValue,
cycle_acrylicframe_enabled?:IValue,
cycle_acrylicframe_time?:IValue,
cycle_upperoverheating_enabled?:IValue,
cycle_upperoverheating_time?:IValue,
cycle_crystallisation_type?:IValue,
cycle_crystallisation_enabled?:IValue,
cycle_crystallisation_time?:IValue,
cycle_loader_enable?:IValue,
cycle_loader_lifter_lowerposition_delay?:IValue,
cycle_loader_lifter_upperposition_delay?:IValue,
cycle_loader_split_sheet_time?:IValue,
cycle_loader_ejector_position?:IValue,
cycle_loader_pallet_height?:IValue
cycle_loader_center_x?:IValue,
cycle_loader_center_y?:IValue,
cycle_loader_checktichness_enabled?:IValue,
cycle_loader_suckers_vacuum?:IValue,
cycle_loader_ionizer_enabled?:IValue,
cycle_loader_manualunloading_enabled?:IValue,
heats_lowerheaters_max_time?:IValue,
heats_lowerheaters_movement_enabled?:IValue,
heats_lowerheaters_enabled?:IValue,
heats_lowerheaters_oscillation?:IValue,
heats_upperheaters_max_time?:IValue,
heats_upperheaters_movement_enabled?:IValue,
heats_upperheaters_enabled?:IValue,
heats_upperheaters_oscillation?:IValue,
heats_decomsustain_type?:IValue,
heats_decomsustain_decompression_flow?:IValue,
heats_decomsustain_min_blowing_time?:IValue,
heats_decomsustain_sustain_delay?:IValue,
heats_decomsustain_decompression_delay?:IValue,
heats_decomsustain_decompression_duration?:IValue,
heats_decomsustain_smoke_function_enabled?:IValue,
pyrometer_pyrometer_enabled?:IValue,
pyrometer_pyrometer_setpoint?:IValue,
pyrometer_pyrometer_delay?:IValue,
pyrometer_upperthermoregulator_start_adjustment?:IValue,
pyrometer_upperthermoregulator_end_adjustment?:IValue,
pyrometer_upperthermoregulator_min_percentage?:IValue,
pyrometer_upperthermoregulator_max_percentage?:IValue,
pyrometer_upperthermoregulator_sleep_enabled?:IValue,
pyrometer_upperthermoregulator_sleep_percentage?:IValue,
pyrometer_lowerthermoregulator_start_adjustment?:IValue,
pyrometer_lowerthermoregulator_end_adjustment?:IValue,
pyrometer_lowerthermoregulator_min_percentage?:IValue,
pyrometer_lowerthermoregulator_max_percentage?:IValue,
pyrometer_lowerthermoregulator_sleep_enabled?:IValue,
pyrometer_lowerthermoregulator_sleep_percentage?:IValue,
pyrometer_upperthermoregulator_sleep_temperature?:IValue,
pyrometer_upperthermoregulator_working_temperature?:IValue,
pyrometer_lowerthermoregulator_sleep_temperature?:IValue,
pyrometer_lowerthermoregulator_working_temperature?:IValue,
drawing_type?:IValue,
drawing_height?:IValue,
drawing_delay?:IValue,
drawing_1_chart_setpointx?:IValue,
drawing_1_chart_setpointy?:IValue,
drawing_photocell?:IValue,
drawing_mantaining_flow?:IValue,
drawing_manual?:IValue,
drawing_mould_up_delay?:IValue,
upperplate_cycle_type?:IValue,
upperplate_cycle_delay?:IValue,
upperplate_cycle_time?:IValue,
upperplate_air_enable?:IValue,
upperplate_air_delay?:IValue,
upperplate_air_max_time?:IValue,
upperplate_air_1_chart_setpointx?:IValue,
upperplate_air_1_chart_setpointy?:IValue,
upperplate_air_2_chart_setpointx?:IValue,
upperplate_air_2_chart_setpointy?:IValue,
upperplate_air_3_chart_setpointx?:IValue,
upperplate_air_3_chart_setpointy?:IValue,
upperplate_air_manual?:IValue,
upperplate_vacuum_enable?:IValue,
upperplate_vacuum_delay?:IValue,
upperplate_vacuum_max_time?:IValue,
upperplate_vacuum_1_chart_setpointx?:IValue,
upperplate_vacuum_1_chart_setpointy?:IValue,
upperplate_vacuum_2_chart_setpointx?:IValue,
upperplate_vacuum_2_chart_setpointy?:IValue,
upperplate_vacuum_3_chart_setpointx?:IValue,
upperplate_vacuum_3_chart_setpointy?:IValue,
upperplate_vacuum_manual?:IValue,
upperplate_extraction_enable?:IValue,
upperplate_extraction_delay?:IValue,
upperplate_extraction_1_chart_setpointx?:IValue,
upperplate_extraction_1_chart_setpointy?:IValue,
upperplate_extraction_manual?:IValue,
cooling_blowing_type?:IValue,
cooling_blowing_delay?:IValue,
cooling_blowing_time?:IValue,
cooling_pyrometer_enabled?:IValue,
cooling_pyrometer_setpoint?:IValue,
cooling_pyrometer_delay?:IValue,
cooling_nebulizer_type?:IValue,
cooling_nebulizer_delay?:IValue,
cooling_nebulizer_time?:IValue,
cooling_telescopic_enable?:IValue,
cooling_telescopic_position?:IValue,
cooling_telescopic_swing_enable?:IValue,
cooling_telescopic_swing_stroke?:IValue,
cooling_shutter_1_opening_perc?:IValue,
cooling_shutter_2_opening_perc?:IValue,
cooling_shutter_3_opening_perc?:IValue,
cooling_shutter_4_opening_perc?:IValue,
cooling_shutter_5_opening_perc?:IValue,
cooling_shutter_6_opening_perc?:IValue,
cooling_shutter_7_opening_perc?:IValue,
cooling_shutter_8_opening_perc?:IValue,
cooling_shutter_9_opening_perc?:IValue,
cooling_shutter_10_opening_perc?:IValue,
cooling_shutter_11_opening_perc?:IValue,
cooling_shutter_12_opening_perc?:IValue,
cooling_shutter_13_opening_perc?:IValue,
cooling_shutter_14_opening_perc?:IValue,
cooling_shutter_15_opening_perc?:IValue,
cooling_shutter_16_opening_perc?:IValue,
vacuum_main_start?:IValue,
vacuum_main_delay?:IValue,
vacuum_main_max_time?:IValue,
vacuum_main_1_chart_setpointx?:IValue,
vacuum_main_1_chart_setpointy?:IValue,
vacuum_main_2_chart_setpointx?:IValue,
vacuum_main_2_chart_setpointy?:IValue,
vacuum_main_3_chart_setpointx?:IValue,
vacuum_main_3_chart_setpointy?:IValue,
vacuum_main_manual?:IValue,
vacuum_direct_enabled?:IValue,
vacuum_direct_delay?:IValue,
vacuum_direct_time?:IValue,
vacuum_aux_enabled?:IValue,
vacuum_aux_delay?:IValue,
vacuum_aux_max_time?:IValue,
vacuum_aux_1_chart_setpointx?:IValue,
vacuum_aux_1_chart_setpointy?:IValue,
vacuum_aux_2_chart_setpointx?:IValue,
vacuum_aux_2_chart_setpointy?:IValue,
vacuum_aux_3_chart_setpointx?:IValue,
vacuum_aux_3_chart_setpointy?:IValue,
vacuum_aux_manual?:IValue,
vacuum_pre_enabled?:IValue,
vacuum_pre_delay?:IValue,
vacuum_pre_max_time?:IValue,
vacuum_pre_1_chart_setpointx?:IValue,
vacuum_pre_1_chart_setpointy?:IValue,
vacuum_pre_2_chart_setpointx?:IValue,
vacuum_pre_2_chart_setpointy?:IValue,
vacuum_pre_3_chart_setpointx?:IValue,
vacuum_pre_3_chart_setpointy?:IValue,
extraction_main_type?:IValue,
extraction_main_mould_dw_delay?:IValue,
extraction_main_delay?:IValue,
extraction_main_1_chart_setpointx?:IValue,
extraction_main_1_chart_setpointy?:IValue,
extraction_main_manual?:IValue,
extraction_aux_enabled?:IValue,
extraction_aux_delay?:IValue,
extraction_aux_1_chart_setpointx?:IValue,
extraction_aux_1_chart_setpointy?:IValue,
extraction_aux_manual?:IValue,
options_undercutmould_1_mode?:IValue,
options_undercutmould_1_position?:IValue,
options_undercutmould_1_delay_acti?:IValue,
options_undercutmould_1_delay_dis?:IValue,
options_undercutmould_2_mode?:IValue,
options_undercutmould_2_position?:IValue,
options_undercutmould_2_delay_acti?:IValue,
options_undercutmould_2_delay_dis?:IValue,
options_undercutmould_3_mode?:IValue,
options_undercutmould_3_position?:IValue,
options_undercutmould_3_delay_acti?:IValue,
options_undercutmould_3_delay_dis?:IValue,
options_undercutmould_4_mode?:IValue,
options_undercutmould_4_position?:IValue,
options_undercutmould_4_delay_acti?:IValue,
options_undercutmould_4_delay_dis?:IValue,
options_undercutmould_5_mode?:IValue,
options_undercutmould_5_position?:IValue,
options_undercutmould_5_delay_acti?:IValue,
options_undercutmould_5_delay_dis?:IValue,
options_undercutmould_6_mode?:IValue,
options_undercutmould_6_position?:IValue,
options_undercutmould_6_delay_acti?:IValue,
options_undercutmould_6_delay_dis?:IValue,
options_undercutmould_7_mode?:IValue,
options_undercutmould_7_position?:IValue,
options_undercutmould_7_delay_acti?:IValue,
options_undercutmould_7_delay_dis?:IValue,
options_undercutmould_8_mode?:IValue,
options_undercutmould_8_position?:IValue,
options_undercutmould_8_delay_acti?:IValue,
options_undercutmould_8_delay_dis?:IValue,
options_undercutmould_9_mode?:IValue,
options_undercutmould_9_position?:IValue,
options_undercutmould_9_delay_acti?:IValue,
options_undercutmould_9_delay_dis?:IValue,
options_undercutmould_10_mode?:IValue,
options_undercutmould_10_position?:IValue,
options_undercutmould_10_delay_acti?:IValue,
options_undercutmould_10_delay_dis?:IValue,
options_undercutupperplate_1_mode?:IValue,
options_undercutupperplate_1_position?:IValue,
options_undercutupperplate_1_delay_acti?:IValue,
options_undercutupperplate_1_delay_dis?:IValue,
options_undercutupperplate_2_mode?:IValue,
options_undercutupperplate_2_position?:IValue,
options_undercutupperplate_2_delay_acti?:IValue,
options_undercutupperplate_2_delay_dis?:IValue,
options_undercutupperplate_3_mode?:IValue,
options_undercutupperplate_3_position?:IValue,
options_undercutupperplate_3_delay_acti?:IValue,
options_undercutupperplate_3_delay_dis?:IValue,
options_undercutupperplate_4_mode?:IValue,
options_undercutupperplate_4_position?:IValue,
options_undercutupperplate_4_delay_acti?:IValue,
options_undercutupperplate_4_delay_dis?:IValue,
options_undercutupperplate_5_mode?:IValue,
options_undercutupperplate_5_position?:IValue,
options_undercutupperplate_5_delay_acti?:IValue,
options_undercutupperplate_5_delay_dis?:IValue,
options_undercutupperplate_6_mode?:IValue,
options_undercutupperplate_6_position?:IValue,
options_undercutupperplate_6_delay_acti?:IValue,
options_undercutupperplate_6_delay_dis?:IValue,
options_undercutupperplate_7_mode?:IValue,
options_undercutupperplate_7_position?:IValue,
options_undercutupperplate_7_delay_acti?:IValue,
options_undercutupperplate_7_delay_dis?:IValue,
options_undercutupperplate_8_mode?:IValue,
options_undercutupperplate_8_position?:IValue,
options_undercutupperplate_8_delay_acti?:IValue,
options_undercutupperplate_8_delay_dis?:IValue,
options_undercutupperplate_9_mode?:IValue,
options_undercutupperplate_9_position?:IValue,
options_undercutupperplate_9_delay_acti?:IValue,
options_undercutupperplate_9_delay_dis?:IValue,
options_undercutupperplate_10_mode?:IValue,
options_undercutupperplate_10_position?:IValue,
options_undercutupperplate_10_delay_acti?:IValue,
options_undercutupperplate_10_delay_dis?:IValue,
options_thermoregulator_1_enabled?:IValue,
options_thermoregulator_1_setpoint?:IValue,
options_thermoregulator_2_enabled?:IValue,
options_thermoregulator_2_setpoint?:IValue,
options_thermoregulator_3_enabled?:IValue,
options_thermoregulator_3_setpoint?:IValue,
options_thermoregulator_4_enabled?:IValue,
options_thermoregulator_4_setpoint?:IValue,
options_thermoregulator_5_enabled?:IValue,
options_thermoregulator_5_setpoint?:IValue,
options_thermoregulator_6_enabled?:IValue,
options_thermoregulator_6_setpoint?:IValue,
options_thermoregulator_7_enabled?:IValue,
options_thermoregulator_7_setpoint?:IValue,
options_thermoregulator_8_enabled?:IValue,
options_thermoregulator_8_setpoint?:IValue,
options_thermoregulator_9_enabled?:IValue,
options_thermoregulator_9_setpoint?:IValue,
options_thermoregulator_10_enabled?:IValue,
options_thermoregulator_10_setpoint?:IValue,
}
}
+16
View File
@@ -0,0 +1,16 @@
declare module Overview {
interface IOverview{
general:string,
positions:string,
cycle: string,
heats: string,
pyrometer: string,
drawing: string,
upperPlate: string,
cooling: string,
vacuum: string,
extraction: string,
options: string
}
}
+6
View File
@@ -10,6 +10,9 @@ import { ModalContainer, ModalNcContainer } from "./modules/base-components";
import { ModalHelper } from "@/components/modals"
import { store, appModelActions, machineStatusActions } from "@/store";
import { underTheHood } from "@/app_modules/under-the-hood";
import SwitchButton from "@/app_modules_thermo/components/paddle/switch-button.vue";
import Sidebar from "@/app_modules_thermo/components/paddle/sidebar.vue";
import ToggleButton from "@/components/toggleButton.vue";
import * as iziToast from "izitoast";
@@ -30,6 +33,8 @@ declare var cmsClient;
appFooter: Footer,
modalContainer: ModalContainer,
modalNcContainer: ModalNcContainer,
switchButton: SwitchButton,
sidebar: Sidebar,
alarmList,
underTheHood,
}
@@ -39,6 +44,7 @@ export default class app extends Vue {
$route: any;
$router:any;
state = this.$store.state;
applyBlur = false;
showHeaderOnBlur = false;
+7 -1
View File
@@ -7,7 +7,6 @@
<under-the-hood :class="{'blur':(applyBlur || applyBlurNc)}"></under-the-hood>
<div id="main-view" ref="main-view" :class="{liftedUp : isMainViewLiftedUp,'blur':(applyBlur || applyBlurNc)}" >
<router-view :class="{'blur':applyBlurInternal}" />
<modal-container name="modal" container-name="modal-internal" :inform-hmi="false" ></modal-container>
</div>
<div id="main-view-handler" ref="main-view-handler" @click="toggleMainView()" :class="{liftedUp : isMainViewLiftedUp,liftedDw : !isMainViewLiftedUp,'blur':(applyBlur || applyBlurNc)}">
@@ -18,6 +17,13 @@
</div>
</vue-gesture>
</div>
<nav :class="{'blur':(applyBlur || applyBlurNc)}">
<switch-button></switch-button>
</nav>
<sidebar></sidebar>
<app-footer :class="{'blur':(applyBlur || applyBlurNc)}"></app-footer>
</div>
@@ -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 AvvioProduzione from "@/app_modules_thermo/setup/avvio-pruduzione/avvio-produzione.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-avvio-produzione-info", () => { ModalHelper.ShowModal(AvvioProduzione); });
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); });
@@ -133,7 +133,7 @@ export default class alarmsList extends Vue {
public get opened(): boolean {
return this.$store.state.alarms.opened;
}
}
public get serviceOpened(): boolean {
return this.$store.state.alarms.serviceOpened;
@@ -14,7 +14,7 @@ export default class Login extends Vue {
$router: any;
public user: server.loginViewModel = { password: null, username: null };
public hasError: boolean = false;
public hasError: boolean = false;
public logginIn: boolean = false;
@@ -0,0 +1,19 @@
import Vue from "vue";
import Component from "vue-class-component";
import {paddleActions} from '@/store/paddle.store';
import ToggleButton from "@/components/toggleButton.vue";
@Component({name: 'sidebar',components: { toggleButton:ToggleButton } })
export default class Sidebar extends Vue{
azione1:boolean=false;
azione2:boolean=false;
isPanelOpen(){
return this.$store.state.paddle.isNavOpen;
}
closeSidebarPanel() {
paddleActions.Toggle(this.$store);
}
}
@@ -0,0 +1,80 @@
<template>
<div class="sidebar">
<div class="sidebar-backdrop" @click="closeSidebarPanel()" v-if="isPanelOpen()"></div>
<!-- <transition name="slide"> -->
<transition>
<div v-if="isPanelOpen()" class="sidebar-panel">
<div class="text-head-sidebar">
<label>Pulsanti personalizzati</label>
</div>
<div class="box-sidebar-panel">
<div class="sidebar-panel-nav">
<div class="text-box-paddle">
<img src="assets/icons/svg/paddle-riscaldo.svg" />
<label>Estensione riscaldo 20 secondi</label>
<i class="fa fa-cog gear-box-paddle"></i>
</div>
</div>
<div class="sidebar-panel-nav">
<div class="text-box-paddle">
<img src="assets/icons/svg/paddle-altra-funzione.svg" />
<label>Altra funzione tasto fisico della tastiera</label>
<i class="fa fa-cog gear-box-paddle"></i>
</div>
</div>
</div>
<div class="text-head-sidebar">
<label>Soft keys</label>
</div>
<div class="box-sidebar-panel">
<div class="sidebar-panel-nav">
<div class="text-box-paddle text-soft">
<label>Nome azione soft key</label>
</div>
</div>
<div class="sidebar-panel-nav">
<div class="text-box-paddle text-soft">
<label>Nome azione soft key</label>
</div>
</div>
<div class="sidebar-panel-nav">
<div class="text-box-paddle text-soft">
<label>Nome azione soft key</label>
</div>
</div>
<div class="sidebar-panel-nav">
<div class="text-box-paddle text-soft">
<label>Estensione riscaldo 20 secondi</label>
</div>
</div>
<div class="sidebar-panel-nav">
<div class="text-box-paddle text-soft">
<toggle-button v-model="azione1"></toggle-button>
<label>Nome azione soft key</label>
</div>
</div>
<div class="sidebar-panel-nav">
<div class="text-box-paddle text-soft">
<toggle-button v-model="azione2"></toggle-button>
<label>Nome azione soft key</label>
</div>
</div>
<div class="sidebar-panel-nav">
<div class="text-box-paddle text-soft">
<label>Nome azione soft key</label>
</div>
</div>
</div>
<!-- <i class="fa fa-cog gear-sidebar-paddle"></i> -->
</div>
</transition>
</div>
</template>
<script lang="ts" src="./sidebar.ts" />
@@ -0,0 +1,15 @@
import Vue from "vue";
import Component from "vue-class-component";
import {paddleActions} from '@/store/paddle.store.ts';
@Component({name: 'switch-button'})
export default class SwitchButton extends Vue{
isSwitchActive(){
return this.$store.state.paddle.isNavOpen;
}
togglePaddle() {
paddleActions.Toggle(this.$store);
}
}
@@ -0,0 +1,15 @@
<template>
<div :class="{ 'active' : isSwitchActive() }" @click="togglePaddle()">
<slot>
<button title="Menu">
<div>
<div></div>
<div></div>
<div></div>
<div></div>
</div>
</button>
</slot>
</div>
</template>
<script lang="ts" src="./switch-button.ts"/>
@@ -7,8 +7,9 @@ import Slider from "@/app_modules_thermo/components/slider.vue";
export default class Scheda extends Vue{
@Prop({default:0})
portata:number;
portata:Recipe.IValue;
@Prop({default:0})
durata:number;
durata:Recipe.IValue;
}
@@ -3,18 +3,14 @@
<div class="body">
<div class="input-area">
<label>Portata</label>
<div class="rect">
{{portata}}
</div>
<input class="rect" v-model="portata.valueAct">
</div>
<slider :min="0" :max="10" v-model="portata"></slider>
<slider :min="portata.range.min" :max="portata.range.max" v-model="portata.valueAct"></slider>
<div class="input-area">
<label class="Ritardo">Durata</label>
<div class="rect">
{{durata}} s
</div>
<input class="rect" v-model="durata.valueAct">
</div>
<slider :min="0" :max="10" v-model="durata"></slider>
<slider :min="durata.range.min" :max="durata.range.max" v-model="durata.valueAct"></slider>
</div>
</div>
</template>
@@ -9,7 +9,9 @@ import { Factory, messageService, awaiter } from "@/_base";
export default class ArretramentoRiscaldi extends Vue{
@Prop({default:0})
ritardo:number
ritardo:number;
mock_ritardo:number=this.ritardo;
annulla(){
ModalHelper.HideModal();
@@ -11,9 +11,9 @@
<div class="input-area">
<img src="assets/icons/png/clessidra.png" />
<label>Ritardo</label>
<span class="rect">{{ritardo}} s</span>
<input class="rect" v-model="mock_ritardo">
</div>
<slider :min="0" :max="10" v-model="ritardo"></slider>
<slider :min="0" :max="10" v-model="mock_ritardo"></slider>
</div>
</section>
<footer>
@@ -0,0 +1,17 @@
import Vue from 'vue';
import Component from 'vue-class-component';
import {Prop} from 'vue-property-decorator';
@Component({name:"circlegantt"})
export default class CircleGantt extends Vue{
@Prop({default:2})
value:number;
@Prop({default:0})
late:number;
@Prop({default:'s'})
unit:string;
@Prop({default:'Discesa cornice'})
title:string;
}
@@ -0,0 +1,25 @@
<template>
<section class="circle-gantt">
<div class="specific">
<div>
<label>{{late}}s</label>
</div>
<div>
<img src="assets/icons/png/clessidra.png">
</div>
</div>
<div class="specific">
<div>
<label>{{value}}{{unit}}</label>
</div>
<div>
<label>{{title}}</label>
</div>
</div>
<!-- <div class="specific" v-if>
</div> parte finale variabile-->
</section>
</template>
<script lang="ts" src="./circle-gantt.ts"></script>
@@ -3,13 +3,21 @@ import Component from 'vue-class-component';
import {Prop} from 'vue-property-decorator';
import { messageService } from "@/_base/messageService";
import { Modal, ModalHelper } from "@/components/modals";
import CircleGantt from "../circles-gantt/circle-gantt.vue"
@Component({
components: {
modal: Modal
modal: Modal,
circlegantt: CircleGantt
}
})
export default class Processo extends Vue{
@Prop({default:25})
actual:number;
@Prop({default:145})
tot:number;
public sendMessage(name: string) {
messageService.publishToChannel(name);
}
@@ -1,7 +1,16 @@
<template>
<div class="container">
<modal type="processo-info" :title="'processo_lbl_title' | localize('Processo')">
<div class="setup">
<modal type="processo-info" :title="'processo_lbl_title' | localize('Attività attuale (es. attesa spostamento assi)')">
<div class="tab-header" slot="header-buttons">
<button> <img src="assets/icons/png/star.png"> Opzioni di lavorazione </button>
<button> <img src="assets/icons/png/star.png"> Pirometro</button>
<button> <img src="assets/icons/png/star.png"> Attivazione riscaldi</button>
<button> <img src="assets/icons/png/star.png"> Riscaldo +10 secondi</button>
<button> <img src="assets/icons/png/star.png"> Risclado -10 secondi</button>
<button> <img src="assets/icons/png/star.png"> Label pulsante opzionanle</button>
<label>{{actual}}/{{tot}}</label>
</div>
<circlegantt></circlegantt>
</modal>
</div>
</template>
@@ -0,0 +1,48 @@
import Vue from "vue";
import { Modal, ModalHelper } from "@/components/modals";
import { Factory, messageService, awaiter } from "@/_base";
import Component from "vue-class-component";
import { Prop } from 'vue-property-decorator';
import ToggleButton from "@/components/toggleButton.vue";
import Tastierino from "@/app_modules_thermo/setup/formato/components/tastierino.vue"
@Component({
components: {
modal: Modal,
ToggleButton,
tastierino:Tastierino
}
})
export default class AvvioProduzione extends Vue {
enabling:boolean=true;
@Prop({default:0})
pieces:number;
mock_pieces:number=this.pieces;
annulla(){
ModalHelper.HideModal();
};
conferma(){
ModalHelper.HideModal();
};
async beforeMount() {
// this.contactInfo = await awaiter(new machineService().getContactConfiguration());
messageService.subscribeToChannel("esc_pressed", args => {
this.close();
});
}
beforeDestroy() {
messageService.deleteChannel("esc_pressed");
}
close() {
messageService.deleteChannel("esc_pressed");
ModalHelper.HideModal();
}
}
@@ -0,0 +1,31 @@
<template>
<div class="setup">
<modal type="avvio-produzione-info" :title="'avvio_prod_lbl_title' | localize('Avvio produzione')">
<div slot="header-buttons">
<button class="modal-close" @click="close()">
<i class="fa fa-remove"></i>
</button>
</div>
<section>
<div class="specific">
<div class="input-area">
<label>Settaggio numero pezzi</label>
<toggle-button v-model="enabling"></toggle-button>
</div>
<img class="disabled" src="assets/icons/png/tast-disable.png" v-if="!enabling">
<div class="input-area" v-if="enabling">
<label>Numero pezzi</label>
<input class="rect" v-model="mock_pieces">
</div>
<tastierino v-if="enabling"></tastierino>
</div>
</section>
<footer>
<button class="btn" @click="annulla()">Annulla</button>
<button class="btn btn-success" @click="conferma()">Avvio</button>
</footer>
</modal>
</div>
</template>
<script lang="ts" src="./avvio-produzione.ts"></script>
@@ -6,11 +6,11 @@ import {Prop} from 'vue-property-decorator';
export default class SVGCaricatore extends Vue{
@Prop({default:1600})
dxalto:number;
@Prop({default:0})
@Prop({default:610})
dxbasso:number;
@Prop({default:0})
@Prop({default:1030})
basso:number;
@Prop({default:0})
@Prop({default:1360})
volante:number;
minoreuguale:string="<=";
@@ -2,10 +2,10 @@
<div class="svg-area">
<img class="disegnoCaricatore" src="assets/icons/svg/disegno-caricatore.svg">
<div class="input-circles">
<label class="circle1">{{dxalto}} mm</label>
<label class="circle2">{{dxbasso}} mm</label>
<label class="circle3">{{minoreuguale}} {{basso}} mm</label>
<label class="circle4">{{volante}} mm</label>
<span class="circle1">{{dxalto}} mm</span>
<span class="circle2">{{dxbasso}} mm</span>
<span class="circle3">{{minoreuguale}} {{basso}} mm</span>
<span class="circle4">{{volante}} mm</span>
</div>
</div>
</template>
@@ -7,29 +7,165 @@ import ToggleButton from "@/components/toggleButton.vue";
@Component({ components: { ToggleButton, slider: Slider, svgcaricatore: SVGCaricatore, } })
export default class Caricatore extends Vue {
@Prop({ default: 0 })
ritardodiscesa: number;
@Prop({ default: 0 })
ritardosalita: number = 0;
@Prop({ default: 0 })
durata: number = 0;
@Prop({ default: 0 })
ritardoespulsore: number = 0;
@Prop({ default: 0 })
altezza: number = 0;
ritdsol = this.ritardodiscesa
ritssol = this.ritardosalita
dursep = this.durata
ritesp = this.ritardoespulsore
altbanc = this.altezza
abi: string = "ON";
retAbi() {
if (this.abi == "OFF") this.abi = "ON"
else this.abi = "OFF";
};
recipe:Recipe.IRecipe={
cycle_loader_enable: {
range: {
min: 6,
max: 127
},
status: {
visible: true,
enabled: true,
hasError: false
},
unitMeasure: "",
valueAct: 48
},
cycle_loader_lifter_lowerposition_delay: {
range: {
min: 5,
max: 133
},
status: {
visible: true,
enabled: true,
hasError: false
},
unitMeasure: "",
valueAct: 38
},
cycle_loader_lifter_upperposition_delay: {
range: {
min: 6,
max: 172
},
status: {
visible: true,
enabled: true,
hasError: false
},
unitMeasure: "",
valueAct: 16
},
cycle_loader_split_sheet_time: {
range: {
min: 1,
max: 111
},
status: {
visible: true,
enabled: true,
hasError: false
},
unitMeasure: "",
valueAct: 50
},
cycle_loader_ejector_position: {
range: {
min: 3,
max: 199
},
status: {
visible: true,
enabled: true,
hasError: false
},
unitMeasure: "",
valueAct: 47
},
cycle_loader_pallet_height: {
range: {
min: 1,
max: 149
},
status: {
visible: true,
enabled: true,
hasError: false
},
unitMeasure: "",
valueAct: 116
},
cycle_loader_center_x: {
range: {
min: 6,
max: 167
},
status: {
visible: true,
enabled: true,
hasError: false
},
unitMeasure: "",
valueAct: 142
},
cycle_loader_center_y: {
range: {
min: 7,
max: 109
},
status: {
visible: true,
enabled: true,
hasError: false
},
unitMeasure: "",
valueAct: 58
},
cycle_loader_checktichness_enabled: {
range: {
min: 1,
max: 197
},
status: {
visible: true,
enabled: true,
hasError: false
},
unitMeasure: "",
valueAct: 113
},
cycle_loader_suckers_vacuum: {
range: {
min: 9,
max: 105
},
status: {
visible: true,
enabled: true,
hasError: false
},
unitMeasure: "",
valueAct: 20
},
cycle_loader_ionizer_enabled: {
range: {
min: 3,
max: 152
},
status: {
visible: true,
enabled: true,
hasError: false
},
unitMeasure: "",
valueAct: 70
},
cycle_loader_manualunloading_enabled: {
range: {
min: 2,
max: 126
},
status: {
visible: true,
enabled: true,
hasError: false
},
unitMeasure: "",
valueAct: 96
}
}
}
@@ -3,34 +3,59 @@
<aside class="scrollable">
<div class="input-area">
<label>Abilitazione</label>
<toggle-button></toggle-button>
<toggle-button v-model="recipe.cycle_loader_enable.status.enabled"></toggle-button>
</div>
<hr />
<div class="input-area">
<label>Ritardo discesa sollevatore</label>
<div class="rect">{{ritdsol}} s</div>
<input class="rect" v-model="recipe.cycle_loader_lifter_lowerposition_delay.valueAct">
</div>
<slider :min="0" :max="10" v-model="ritdsol" unit-of-measure="s"></slider>
<slider
:min="recipe.cycle_loader_lifter_lowerposition_delay.range.min"
:max="recipe.cycle_loader_lifter_lowerposition_delay.range.max"
v-model="recipe.cycle_loader_lifter_lowerposition_delay.valueAct"
:unit-of-measure="'s'">
</slider>
<div class="input-area">
<label>Ritardo salita sollevatore</label>
<div class="rect">{{ritssol}} s</div>
<input class="rect" v-model="recipe.cycle_loader_lifter_upperposition_delay.valueAct">
</div>
<slider :min="0" :max="10" v-model="ritssol" unit-of-measure="s"></slider>
<slider
:min="recipe.cycle_loader_lifter_upperposition_delay.range.min"
:max="recipe.cycle_loader_lifter_upperposition_delay.range.max"
v-model="recipe.cycle_loader_lifter_upperposition_delay.valueAct"
:unit-of-measure="'s'">
</slider>
<div class="input-area">
<label>Durata separazione lastra</label>
<div class="rect">{{dursep}} s</div>
<input class="rect" v-model="recipe.cycle_loader_split_sheet_time.valueAct">
</div>
<slider :min="0" :max="10" v-model="dursep" unit-of-measure="s"></slider>
<slider
:min="recipe.cycle_loader_split_sheet_time.range.min"
:max="recipe.cycle_loader_split_sheet_time.range.max"
v-model="recipe.cycle_loader_split_sheet_time.valueAct"
:unit-of-measure="'s'">
</slider>
<div class="input-area">
<label>Ritardo espulsore</label>
<div class="rect">{{ritesp}} s</div>
<input class="rect" v-model="recipe.cycle_loader_ejector_position.valueAct">
</div>
<slider :min="0" :max="10" v-model="ritesp" unit-of-measure="s"></slider>
<slider
:min="recipe.cycle_loader_ejector_position.range.min"
:max="recipe.cycle_loader_ejector_position.range.max"
v-model="recipe.cycle_loader_ejector_position.valueAct"
:unit-of-measure="'s'">
</slider>
<div class="input-area">
<label>Altezza bancale</label>
<div class="rect">{{altbanc}} mm</div>
<input class="rect" v-model="recipe.cycle_loader_pallet_height.valueAct">
</div>
<slider :min="0" :max="300" v-model="altbanc" unit-of-measure="mm"></slider>
<slider
:min="recipe.cycle_loader_pallet_height.range.min"
:max="recipe.cycle_loader_pallet_height.range.max"
v-model="recipe.cycle_loader_pallet_height.valueAct"
:unit-of-measure="'mm'">
</slider>
</aside>
<hr>
<div class="specific">
@@ -14,10 +14,60 @@ import ToggleButton from "@/components/toggleButton.vue";
}
})
export default class CicloFormatura extends Vue {
recipe:Recipe.IRecipe={
cycle_forming_type: {
range: {
min: 7,
max: 179
},
status: {
visible: true,
enabled: true,
hasError: false
},
unitMeasure: "",
valueAct: 160
},
cycle_forming_pause_cycle:{
range: {
min: 1,
max: 127
},
status: {
visible: true,
enabled: true,
hasError: false
},
unitMeasure: "",
valueAct: 9
},
cycle_forming_cooling_enabled: {
range: {
min: 3,
max: 132
},
status: {
visible: true,
enabled: true,
hasError: false
},
unitMeasure: "",
valueAct: 36
},
cycle_forming_blowingbox_enabled: {
range: {
min: 0,
max: 130
},
status: {
visible: true,
enabled: true,
hasError: false
},
unitMeasure: "",
valueAct: 89
},
pausa: boolean = false;
raffr: boolean = false;
vent: boolean = false;
}
}
@@ -9,15 +9,15 @@
</div>
<div class="input-area">
<label>Pausa ciclo</label>
<toggle-button v-model="pausa"></toggle-button>
<toggle-button v-model="recipe.cycle_forming_pause_cycle.status.enabled"></toggle-button>
</div>
<div class="input-area">
<label>Raffreddamento fine ciclo</label>
<toggle-button v-model="raffr"></toggle-button>
<toggle-button v-model="recipe.cycle_forming_cooling_enabled.status.enabled"></toggle-button>
</div>
<div class="input-area">
<label>Ventilazione cassone fine ciclo</label>
<toggle-button v-model="vent"></toggle-button>
<toggle-button v-model="recipe.cycle_forming_blowingbox_enabled.status.enabled"></toggle-button>
</div>
</aside>
<hr>
@@ -6,13 +6,35 @@ import ToggleButton from "@/components/toggleButton.vue";
@Component({ components: { slider: Slider, ToggleButton } })
export default class MascheraAcrilico extends Vue {
recipe:Recipe.IRecipe={
cycle_acrylicframe_time: {
range: {
min: 6,
max: 190
},
status: {
visible: true,
enabled: true,
hasError: false
},
unitMeasure: "",
valueAct: 23
},
cycle_acrylicframe_enabled: {
range: {
min: 9,
max: 133
},
status: {
visible: true,
enabled: true,
hasError: false
},
unitMeasure: "",
valueAct: 113
}
enabling:boolean=true;
@Prop({ default: 0 })
durata: number;
}
}
@@ -6,13 +6,17 @@
<div class="body">
<div class="input-area">
<label>Abilitazione</label>
<toggle-button v-model="enabling"></toggle-button>
<toggle-button v-model="recipe.cycle_acrylicframe_enabled.status.enabled"></toggle-button>
</div>
<div class="input-area">
<label>Durata</label>
<div class="rect">{{durata}} s</div>
<input class="rect" v-model="recipe.cycle_acrylicframe_time.valueAct">
</div>
<slider :min="0" :max="10" v-model="durata"></slider>
<slider
:min="recipe.cycle_acrylicframe_time.range.min"
:max="recipe.cycle_acrylicframe_time.range.max"
v-model="recipe.cycle_acrylicframe_time.valueAct">
</slider>
</div>
</div>
</template>
@@ -6,13 +6,48 @@ import ToggleButton from "@/components/toggleButton.vue";
@Component({ components: { slider: Slider, ToggleButton } })
export default class MascheraCristallizzazione extends Vue {
recipe:Recipe.IRecipe={
enabling:boolean=true;
@Prop({ default: 0 })
durata: number;
cycle_crystallisation_type: {
range: {
min: 1,
max: 100
},
status: {
visible: true,
enabled: true,
hasError: false
},
unitMeasure: "",
valueAct: 94
},
cycle_crystallisation_enabled: {
range: {
min: 1,
max: 100
},
status: {
visible: true,
enabled: true,
hasError: false
},
unitMeasure: "",
valueAct: 94
},
cycle_crystallisation_time: {
range: {
min: 0,
max: 198
},
status: {
visible: true,
enabled: true,
hasError: false
},
unitMeasure: "",
valueAct: 121
},
}
}
@@ -6,13 +6,17 @@
<div class="body">
<div class="input-area">
<label>Abilitazione</label>
<toggle-button v-model="enabling"></toggle-button>
<toggle-button v-model="recipe.cycle_crystallisation_enabled.status.enabled"></toggle-button>
</div>
<div class="input-area">
<label>Durata</label>
<div class="rect">{{durata}} s</div>
<input class="rect" v-model="recipe.cycle_crystallisation_time.valueAct">
</div>
<slider :min="0" :max="10" v-model="durata"></slider>
<slider
:min="recipe.cycle_crystallisation_time.range.min"
:max="recipe.cycle_crystallisation_time.range.max"
v-model="recipe.cycle_crystallisation_time.valueAct">
</slider>
</div>
</div>
</template>
@@ -5,13 +5,34 @@ import Slider from "@/app_modules_thermo/components/slider.vue";
@Component({ components: { slider: Slider } })
export default class MascheraRiscaldo extends Vue {
@Prop({ default: 0 })
durata: number;
recipe:Recipe.IRecipe={
cycle_upperoverheating_enabled:{
range: {
min: 1,
max: 173
},
status: {
visible: true,
enabled: true,
hasError: false
},
unitMeasure: "",
valueAct: 160
},
cycle_upperoverheating_time: {
range: {
min: 2,
max: 164
},
status: {
visible: true,
enabled: true,
hasError: false
},
unitMeasure: "",
valueAct: 151
}
}
}
@@ -6,9 +6,13 @@
<div class="body">
<div class="input-area">
<label>Durata</label>
<div class="rect">{{durata}} s</div>
<input class="rect" v-model="recipe.cycle_upperoverheating_time.valueAct">
</div>
<slider :min="0" :max="10" v-model="durata"></slider>
<slider
:min="recipe.cycle_upperoverheating_time.range.min"
:max="recipe.cycle_upperoverheating_time.range.max"
v-model="recipe.cycle_upperoverheating_time.valueAct">
</slider>
</div>
</div>
</template>
@@ -1,24 +1,23 @@
import Vue from 'vue';
import Component from 'vue-class-component';
import { Prop } from 'vue-property-decorator';
import Slider from "@/app_modules_thermo/components/slider.vue";
import StepFooter from "@/app_modules_thermo/setup/components/step-footer.vue";
import { Modal, ModalHelper } from "@/components/modals";
import { Factory, messageService, awaiter } from "@/_base";
import CicloFormatura from "./base-components/ciclo-formatura.vue";
import Caricatore from "./base-components/caricatore.vue";
@Component({ components: { modal: Modal, slider: Slider, stepfooter: StepFooter, caricatore: Caricatore, cicloformatura: CicloFormatura } })
@Component({ components: { modal: Modal, stepfooter: StepFooter, caricatore: Caricatore, cicloformatura: CicloFormatura } })
export default class ShowCicloInfo extends Vue {
show: string = "caricatore";
annulla() {
ModalHelper.HideModal();
annulla(name:string) {
messageService.publishToChannel(name);
};
conferma() {
ModalHelper.HideModal();
conferma(name:string) {
messageService.publishToChannel(name);
};
async beforeMount() {
@@ -13,8 +13,8 @@
<caricatore v-if="show=='caricatore'"></caricatore>
<cicloformatura v-if="show=='formatura'"></cicloformatura>
<footer>
<button class="btn" @click="annulla()">Annulla</button>
<button class="btn btn-success" @click="conferma()">Conferma</button>
<button class="btn" @click="annulla('show-quote-velocita-info')">Annulla</button>
<button class="btn btn-success" @click="conferma('show-riscaldi-info')">Conferma</button>
</footer>
</modal>
<stepfooter></stepfooter>
@@ -20,67 +20,67 @@
@click="sendMessage('show-ciclo-info')"
:phase="3"
title="Ciclo"
statusImage="fa fa-minus-circle"
statusImage="fa fa-check-circle undone-step"
></setup-button>
<setup-button
@click="sendMessage('show-riscaldi-info')"
:phase="4"
title="Riscaldi"
statusImage="fa fa-minus-circle"
statusImage="fa fa-check-circle undone-step"
></setup-button>
<setup-button
@click="sendMessage('show-pirometro-info')"
:phase="5"
title="Pirometro"
statusImage="fa fa-minus-circle"
statusImage="fa fa-check-circle undone-step"
></setup-button>
<setup-button
@click="sendMessage('show-imbutitura-info')"
:phase="6"
title="Imbutitura"
statusImage="fa fa-minus-circle"
statusImage="fa fa-check-circle undone-step"
></setup-button>
<setup-button
@click="sendMessage('show-controstampo-info')"
:phase="7"
title="Controstampo"
statusImage="fa fa-minus-circle"
statusImage="fa fa-check-circle undone-step"
></setup-button>
<setup-button
@click="sendMessage('show-raffreddamento-info')"
:phase="8"
title="Raffreddamento"
statusImage="fa fa-minus-circle"
statusImage="fa fa-check-circle undone-step"
></setup-button>
<setup-button
@click="sendMessage('show-vuoto-info')"
:phase="9"
title="Vuoto"
statusImage="fa fa-minus-circle"
statusImage="fa fa-check-circle undone-step"
></setup-button>
<setup-button
@click="sendMessage('show-estrazione-info')"
:phase="10"
title="Estrazione"
statusImage="fa fa-minus-circle"
statusImage="fa fa-check-circle undone-step"
></setup-button>
<setup-button
@click="sendMessage('show-opzioni-info')"
:phase="11"
title="Opzioni di lavorazione"
statusImage="fa fa-minus-circle"
statusImage="fa fa-check-circle undone-step"
></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-avvio-produzione-info')"/>
</div>
</div>
</modal>
@@ -7,14 +7,137 @@ import Scheda from "@/app_modules_thermo/components/scheda.vue";
@Component({name:"ariacontrostampo", components: { scheda:Scheda,slider:Slider}})
export default class AriaControstampo extends Vue {
@Prop({default:0})
ritardo:number;
mockR:number=this.ritardo;
@Prop({default:0})
durata:number;
mockD:number=this.durata;
recipe:Recipe.IRecipe={
upperplate_air_enable: {
range: {
min: 8,
max: 181
},
status: {
visible: true,
enabled: true,
hasError: false
},
unitMeasure: "",
valueAct: 72
},
upperplate_air_delay: {
range: {
min: 7,
max: 152
},
status: {
visible: true,
enabled: true,
hasError: false
},
unitMeasure: "",
valueAct: 70
},
upperplate_air_max_time: {
range: {
min: 9,
max: 192
},
status: {
visible: true,
enabled: true,
hasError: true
},
unitMeasure: "",
valueAct: 195
},
upperplate_air_1_chart_setpointx: {
range: {
min: 0,
max: 141
},
status: {
visible: true,
enabled: true,
hasError: false
},
unitMeasure: "",
valueAct: 108
},
upperplate_air_1_chart_setpointy: {
range: {
min: 4,
max: 127
},
status: {
visible: true,
enabled: true,
hasError: false
},
unitMeasure: "",
valueAct: 104
},
upperplate_air_2_chart_setpointx: {
range: {
min: 2,
max: 167
},
status: {
visible: true,
enabled: true,
hasError: false
},
unitMeasure: "",
valueAct: 86
},
upperplate_air_2_chart_setpointy: {
range: {
min: 9,
max: 109
},
status: {
visible: true,
enabled: true,
hasError: false
},
unitMeasure: "",
valueAct: 22
},
upperplate_air_3_chart_setpointx: {
range: {
min: 8,
max: 165
},
status: {
visible: true,
enabled: true,
hasError: false
},
unitMeasure: "",
valueAct: 87
},
upperplate_air_3_chart_setpointy: {
range: {
min: 3,
max: 190
},
status: {
visible: true,
enabled: true,
hasError: false
},
unitMeasure: "",
valueAct: 60
},
upperplate_air_manual: {
range: {
min: 3,
max: 191
},
status: {
visible: true,
enabled: true,
hasError: false
},
unitMeasure: "",
valueAct: 28
},
}
}
@@ -4,22 +4,41 @@
<div class="input-area">
<img src="assets/icons/png/clessidra.png">
<label>Ritardo</label>
<div class="rect">{{mockR}}s</div>
<input class="rect" v-model="recipe.upperplate_air_delay.valueAct">
</div>
<slider :min="0" :max="10" v-model="mockR" :unit-of-measure="s"></slider>
<slider
:min="recipe.upperplate_air_delay.range.min"
:max="recipe.upperplate_air_delay.range.max"
v-model="recipe.upperplate_air_delay.valueAct"
:unit-of-measure="'s'">
</slider>
</aside>
<hr>
<div class="specific">
<scheda></scheda>
<scheda></scheda>
<scheda></scheda>
<scheda
:portata="recipe.upperplate_air_1_chart_setpointx"
:durata="recipe.upperplate_air_1_chart_setpointy"
></scheda>
<scheda
:portata="recipe.upperplate_air_2_chart_setpointx"
:durata="recipe.upperplate_air_2_chart_setpointy"
></scheda>
<scheda
:portata="recipe.upperplate_air_3_chart_setpointx"
:durata="recipe.upperplate_air_3_chart_setpointy"
></scheda>
</div>
<div class="specific">
<div class="input-area">
<label>Durata massima</label>
<div class="rect">{{mockD}}s</div>
<input class="rect" v-model="recipe.upperplate_air_max_time.valueAct">
</div>
<slider :min="0" :max="4" v-model="mockD" :unit-of-measure="s"></slider>
<slider
:min="recipe.upperplate_air_max_time.range.min"
:max="recipe.upperplate_air_max_time.range.max"
v-model="recipe.upperplate_air_max_time.valueAct"
:unit-of-measure="'s'">
</slider>
</div>
</section>
</template>
@@ -13,14 +13,49 @@ import ToggleButton from "@/components/toggleButton.vue";
})
export default class CicloControstampo extends Vue {
@Prop({default:0})
durata:number;
@Prop({default:0})
ritardo:number;
recipe:Recipe.IRecipe={
upperplate_cycle_type: {
range: {
min: 6,
max: 114
},
status: {
visible: true,
enabled: true,
hasError: false
},
unitMeasure: "",
valueAct: 29
},
upperplate_cycle_delay: {
range: {
min: 9,
max: 129
},
status: {
visible: true,
enabled: true,
hasError: false
},
unitMeasure: "",
valueAct: 11
},
upperplate_cycle_time: {
range: {
min: 5,
max: 157
},
status: {
visible: true,
enabled: true,
hasError: false
},
unitMeasure: "",
valueAct: 107
},
}
abilit:boolean=false;
mockD:number=this.durata;
mockR:number=this.ritardo;
}
@@ -12,20 +12,26 @@
</select>
</div>
<div class="input-area">
<img src="assets/icons/png/clessidra.png">
<label>Ritardo</label>
<div class="rect">
{{mockR}}s
</div>
<img src="assets/icons/png/clessidra.png">
<label>Ritardo</label>
<input class="rect" v-model="recipe.upperplate_cycle_delay.valueAct">
</div>
<slider :min="0" :max="10" v-model="mockR" unit-of-measure="s"></slider>
<slider
:min="recipe.upperplate_cycle_delay.range.min"
:max="recipe.upperplate_cycle_delay.range.max"
v-model="recipe.upperplate_cycle_delay.valueAct"
:unit-of-measure="'s'">
</slider>
<div class="input-area">
<label>Durata</label>
<div class="rect">
{{mockD}}s
</div>
<label>Durata</label>
<input class="rect" v-model="recipe.upperplate_cycle_time.valueAct">
</div>
<slider :min="0" :max="20" v-model="mockD" unit-of-measure="s"></slider>
<slider
:min="recipe.upperplate_cycle_time.range.min"
:max="recipe.upperplate_cycle_time.range.max"
v-model="recipe.upperplate_cycle_time.valueAct"
:unit-of-measure="'s'">
</slider>
</div>
</section>
</template>
@@ -12,12 +12,12 @@ export default class ShowControstampoInfo extends Vue {
show: string = "CC";
annulla(){
ModalHelper.HideModal();
annulla(name:string){
messageService.publishToChannel(name);
};
conferma(){
ModalHelper.HideModal();
conferma(name:string){
messageService.publishToChannel(name);
};
async beforeMount() {
@@ -15,8 +15,8 @@
<ciclocontrostampo v-if="show=='CC'"></ciclocontrostampo>
<ariacontrostampo v-if="show=='AC'"></ariacontrostampo>
<footer>
<button class="btn" @click="annulla()">Annulla</button>
<button class="btn btn-success" @click="conferma()">Conferma</button>
<button class="btn" @click="annulla('show-imbutitura-info')">Annulla</button>
<button class="btn btn-success" @click="conferma('show-raffreddamento-info')">Conferma</button>
</footer>
</modal>
<stepfooter></stepfooter>
@@ -11,9 +11,48 @@ slider:Slider}})
export default class EstrazionePrincipale extends Vue{
@Prop({default:0})
ritardo:number;
recipe:Recipe.IRecipe={
extraction_main_delay:{
range:{
min:5,
max:155
},
status:{
visible:true,
enabled:true,
hasError:false
},
unitMeasure:"",
valueAct:15
},
extraction_main_1_chart_setpointx:{
range:{
min:0,
max:154
},
status:{
visible:true,
enabled:true,
hasError:false
},
unitMeasure:"",
valueAct:128
},
extraction_main_1_chart_setpointy:{
range:{
min:6,
max:106
},
status:{
visible:true,
enabled:true,
hasError:false
},
unitMeasure:"",
valueAct:49
}
};
mockR:number=this.ritardo;
}
@@ -1,15 +1,17 @@
<template>
<section>
<aside class ="scrollable auto">
<div class="input-area">
<img src="assets/icons/png/clessidra.png">
<label>Ritardo</label>
<div class="rect">
{{mockR}}s
</div>
<div class="input-area">
<img src="assets/icons/png/clessidra.png">
<label>Ritardo</label>
<input class="rect" v-model="recipe.extraction_main_delay.valueAct">
</div>
<slider :min="0" :max="10" v-model="mockR" unit-of-measure="s"></slider>
<slider
:min="recipe.extraction_main_delay.range.min"
:max="recipe.extraction_main_delay.range.max"
v-model="recipe.extraction_main_delay.valueAct"
:unit-of-measure="recipe.extraction_main_delay.unitMeasure">
</slider>
<div class="input-area">
<label>Tipo</label>
<select>
@@ -21,7 +23,10 @@
</aside>
<hr>
<div class="specific">
<scheda></scheda>
<scheda
:portata="recipe.extraction_main_1_chart_setpointx"
:durata="recipe.extraction_main_1_chart_setpointy"
></scheda>
</div>
</section>
</template>
@@ -18,10 +18,12 @@ export default class ShowEstrazioneInfo extends Vue{
annulla(){
ModalHelper.HideModal();
messageService.publishToChannel('show-vuoto-info');
};
conferma(){
ModalHelper.HideModal();
messageService.publishToChannel('show-opzioni-info');
};
async beforeMount() {
@@ -5,5 +5,5 @@ import {Prop} from 'vue-property-decorator';
@Component({})
export default class ControstampoSVG extends Vue{
@Prop({default:0})
alt:number;
alt:Recipe.IValue;
}
@@ -4,7 +4,8 @@
<div class="input-circles border-controstampo">
<div class="circle circle1">
<img src="assets/icons/png/quota.png">
<label>{{alt}} mm</label>
<input v-model="alt.valueAct">
<label>mm</label>
</div>
</div>
</div>
@@ -5,7 +5,7 @@ import {Prop} from 'vue-property-decorator';
@Component({})
export default class CorniceSVG extends Vue{
@Prop({default:0})
x:number;
x:Recipe.IValue;
@Prop({default:0})
y:number;
y:Recipe.IValue;
}
@@ -4,11 +4,13 @@
<div class="input-circles border-cornice">
<div class="circle circle1">
<img src="assets/icons/png/quota.png">
<label>{{y}} mm</label>
<input v-model="y.valueAct">
<label>mm</label>
</div>
<div class="circle circle2">
<img src="assets/icons/png/quota.png">
<label>{{x}} mm</label>
<input v-model="x.valueAct">
<label>mm</label>
</div>
</div>
</div>
@@ -5,10 +5,10 @@ import {Prop} from 'vue-property-decorator';
@Component({})
export default class LastraSVG extends Vue{
@Prop({default:0})
x:number;
x:Recipe.IValue;
@Prop({default:0})
y:number;
y:Recipe.IValue;
@Prop({default:0})
spes:number;
spes:Recipe.IValue;
}
@@ -4,15 +4,18 @@
<div class="input-circles border-lastra">
<div class="circle circle1">
<img src="assets/icons/png/quota.png">
<label>{{spes}} mm</label>
<input v-model="spes.valueAct">
<label>mm</label>
</div>
<div class="circle circle2">
<img src="assets/icons/png/quota.png">
<label>{{x}} mm</label>
<input v-model="x.valueAct">
<label>mm</label>
</div>
<div class="circle circle3">
<img src="assets/icons/png/quota.png">
<label>{{y}} mm</label>
<input v-model="y.valueAct">
<label>mm</label>
</div>
</div>
</div>
@@ -5,7 +5,7 @@ import {Prop} from 'vue-property-decorator';
@Component({})
export default class PiastraSVG extends Vue{
@Prop({default:0})
x:number;
x:Recipe.IValue;
@Prop({default:0})
y:number;
y:Recipe.IValue;
}
@@ -4,11 +4,13 @@
<div class="input-circles border-piastra">
<div class="circle circle1">
<img src="assets/icons/png/quota.png">
<label>{{y}} mm</label>
<input v-model="y.valueAct">
<label>mm</label>
</div>
<div class="circle circle2">
<img src="assets/icons/png/quota.png">
<label>{{x}} mm</label>
<input v-model="x.valueAct">
<label>mm</label>
</div>
</div>
</div>
@@ -5,13 +5,13 @@ import {Prop} from 'vue-property-decorator';
@Component({})
export default class StampoSVG extends Vue{
@Prop({default:0})
x:number;
x:Recipe.IValue;
@Prop({default:0})
y:number;
y:Recipe.IValue;
@Prop({default:0})
alt:number;
@Prop({default:0})
altB:number;
altB:Recipe.IValue;
@Prop({default:0})
stampoNeg:number;
}
@@ -4,23 +4,28 @@
<div class="input-circles border-stampo">
<div class="circle circle1">
<img src="assets/icons/png/quota.png">
<label>{{alt}} mm</label>
<input v-model="alt">
<label>mm</label>
</div>
<div class="circle circle2">
<img src="assets/icons/png/quota.png">
<label>{{altB}} mm</label>
<input v-model="altB.valueAct">
<label>mm</label>
</div>
<div class="circle circle3">
<img src="assets/icons/png/quota.png">
<label>{{x}} mm</label>
<input v-model="x.valueAct">
<label>mm</label>
</div>
<div class="circle circle4">
<img src="assets/icons/png/quota.png">
<label>{{y}} mm</label>
<input v-model="y.valueAct">
<label>mm</label>
</div>
<div class="circle circle5">
<img src="assets/icons/png/quota.png">
<label>{{stampoNeg}} mm</label>
<input v-model="stampoNeg">
<label>mm</label>
</div>
</div>
</div>
@@ -7,6 +7,7 @@ import Slider from "@/app_modules_thermo/components/slider.vue"
export default class Controstampo extends Vue {
@Prop({default:0})
alt:number;
alt:Recipe.IValue;
}
@@ -6,9 +6,13 @@
<div class="body">
<div class="input-area">
<label>Altezza</label>
<div class="rect">{{alt}}mm</div>
<input class="rect" v-model="alt.valueAct">
</div>
<slider :min="0" :max="1000" v-model="alt" :left="'0 mm'" :middle="'500 mm'" :right="'1000 mm'"></slider>
<slider
:min="alt.range.min"
:max="alt.range.max"
v-model="alt.valueAct"
:unit-of-measure="'mm'"></slider>
</div>
</div>
</template>
@@ -7,10 +7,13 @@ import Slider from "@/app_modules_thermo/components/slider.vue"
export default class Cornice extends Vue {
@Prop({default:0})
x:number;
x:Recipe.IValue;
@Prop({default:0})
y:number;
y:Recipe.IValue;
@Prop({default:false})
notsel:boolean;
}
@@ -13,15 +13,23 @@
<hr />
<div class="input-area">
<label>Apertura X</label>
<div class="rect">{{x}}mm</div>
<input class="rect" v-model="x.valueAct">
</div>
<slider :min="0" :max="1000" v-model="x" unit-of-measure="mm"></slider>
<slider
:min="x.range.min"
:max="x.range.max"
v-model="x.valueAct"
:unit-of-measure="'mm'"></slider>
<button class="submit">Muovi</button>
<div class="input-area">
<label>Apertura Y</label>
<div class="rect">{{y}}mm</div>
<input class="rect" v-model="y.valueAct">
</div>
<slider :min="0" :max="1000" v-model="y" unit-of-measure="mm"></slider>
<slider
:min="y.range.min"
:max="y.range.max"
v-model="y.valueAct"
:unit-of-measure="'mm'"></slider>
<button class="submit">Muovi</button>
</div>
</div>
@@ -7,10 +7,13 @@ import Slider from "@/app_modules_thermo/components/slider.vue"
export default class Lastra extends Vue {
@Prop({default:0})
x:number;
x:Recipe.IValue;
@Prop({default:0})
y:number;
y:Recipe.IValue;
@Prop({default:0})
spes:number;
spes:Recipe.IValue;
}
@@ -13,19 +13,31 @@
<hr />
<div class="input-area">
<label>Dimensione X</label>
<div class="rect">{{x}} mm</div>
<input class="rect" v-model="x.valueAct">
</div>
<slider :min="0" :max="1000" v-model="x" unit-of-measure="mm"></slider>
<slider
:min="x.range.min"
:max="x.range.max"
v-model="x.valueAct"
:unit-of-measure="'mm'"></slider>
<div class="input-area">
<label>Dimensione Y</label>
<div class="rect">{{y}} mm</div>
<input class="rect" v-model="y.valueAct">
</div>
<slider :min="0" :max="1000" v-model="y" unit-of-measure="mm"></slider>
<slider
:min="y.range.min"
:max="y.range.max"
v-model="y.valueAct"
:unit-of-measure="'mm'"></slider>
<div class="input-area">
<label>Spessore</label>
<div class="rect">{{spes}} mm</div>
<input class="rect" v-model="spes.valueAct">
</div>
<slider :min="0" :max="40" v-model="spes" unit-of-measure="mm"></slider>
<slider
:min="spes.range.min"
:max="spes.range.max"
v-model="spes.vaueAct"
:unit-of-measure="'mm'"></slider>
</div>
</div>
</template>
@@ -7,10 +7,12 @@ import Slider from "@/app_modules_thermo/components/slider.vue"
export default class Piastra extends Vue {
@Prop({default:0})
x:number;
x:Recipe.IValue;
@Prop({default:0})
y:number;
y:Recipe.IValue;
@Prop({default:true})
notsel:boolean;
}
@@ -13,15 +13,23 @@
<hr />
<div class="input-area">
<label>Apertura X</label>
<div class="rect">{{x}}mm</div>
<input class="rect" v-model="x.valueAct">
</div>
<slider :min="0" :max="1000" v-model="x" unit-of-measure="mm"></slider>
<slider
:min="x.range.min"
:max="x.range.max"
v-model="x.valueAct"
:unit-of-measure="'mm'"></slider>
<button class="submit" :class="{'NotSelected':notsel}">Muovi</button>
<div class="input-area">
<label>Apertura Y</label>
<div class="rect">{{y}}mm</div>
<input class="rect" v-model="y.valueAct">
</div>
<slider :min="0" :max="1000" v-model="y" unit-of-measure="mm"></slider>
<slider
:min="y.range.min"
:max="y.range.max"
v-model="y.valueAct"
:unit-of-measure="'mm'"></slider>
<button class="submit" :class="{'NotSelected':notsel}">Muovi</button>
</div>
</div>
@@ -35,32 +35,243 @@ import StepFooter from "@/app_modules_thermo/setup/components/step-footer.vue"
})
export default class ShowFormatoInfo extends Vue {
recipe:Recipe.IRecipe={
general_area_working_dxsx: {
range: {
min: 8,
max: 197
},
status: {
visible: true,
enabled: true,
hasError: true
},
unitMeasure: "",
valueAct: 199
},
general_sizes_mould_dim_x: {
range: {
min: 3,
max: 106
},
status: {
visible: true,
enabled: true,
hasError: false
},
unitMeasure: "",
valueAct: 41
},
general_sizes_mould_dim_y: {
range: {
min: 1,
max: 174
},
status: {
visible: true,
enabled: true,
hasError: false
},
unitMeasure: "",
valueAct: 40
},
general_sizes_mould_max_height: {
range: {
min: 2,
max: 116
},
status: {
visible: true,
enabled: true,
hasError: false
},
unitMeasure: "",
valueAct: 37
},
general_sizes_mould_base_height: {
range: {
min: 1,
max: 178
},
status: {
visible: true,
enabled: true,
hasError: false
},
unitMeasure: "",
valueAct: 63
},
general_sizes_plate_type: {
range: {
min: 0,
max: 140
},
status: {
visible: true,
enabled: true,
hasError: false
},
unitMeasure: "",
valueAct: 39
},
general_sizes_plate_dim_x: {
range: {
min: 6,
max: 154
},
status: {
visible: true,
enabled: true,
hasError: false
},
unitMeasure: "",
valueAct: 78
},
general_sizes_plate_dim_y: {
range: {
min: 6,
max: 142
},
status: {
visible: true,
enabled: true,
hasError: false
},
unitMeasure: "",
valueAct: 81
},
general_sizes_sheet_material: {
range: {
min: 3,
max: 144
},
status: {
visible: true,
enabled: true,
hasError: false
},
unitMeasure: "",
valueAct: 86
},
general_sizes_sheet_dim_x: {
range: {
min: 1,
max: 168
},
status: {
visible: true,
enabled: true,
hasError: false
},
unitMeasure: "",
valueAct: 90
},
general_sizes_sheet_dim_y: {
range: {
min: 2,
max: 158
},
status: {
visible: true,
enabled: true,
hasError: false
},
unitMeasure: "",
valueAct: 26
},
general_sizes_sheet_thickness: {
range: {
min: 9,
max: 109
},
status: {
visible: true,
enabled: true,
hasError: false
},
unitMeasure: "",
valueAct: 45
},
general_sizes_frame_traverses: {
range: {
min: 3,
max: 116
},
status: {
visible: true,
enabled: true,
hasError: false
},
unitMeasure: "",
valueAct: 72
},
general_sizes_frame_dim_x: {
range: {
min: 0,
max: 129
},
status: {
visible: true,
enabled: true,
hasError: false
},
unitMeasure: "",
valueAct: 7
},
general_sizes_frame_dim_y: {
range: {
min: 4,
max: 125
},
status: {
visible: true,
enabled: true,
hasError: false
},
unitMeasure: "",
valueAct: 107
},
positions_mould_lower_speed: {
range: {
min: 5,
max: 140
},
status: {
visible: true,
enabled: true,
hasError: false
},
unitMeasure: "",
valueAct: 28
},
general_sizes_upperplate_max_height: {
range: {
min: 2,
max: 149
},
status: {
visible: true,
enabled: true,
hasError: false
},
unitMeasure: "",
valueAct: 106
}
}
show:string="placeholder";
StX:number=100;
StY:number=10;
StAlt:number=70;
StAltB:number=600;
StStampoNeg:number=300;
LaX:number=1;
LaY:number=1;
LaSpes:number=1;
PiX:number=1;
PiY:number=1;
CoX:number=1;
CoY:number=1;
CsAlt:number=1;
@Prop({default:0})
stamponeg:number;
@Prop({default:0})
altezza:number;
annulla(){
ModalHelper.HideModal();
};
conferma(){
ModalHelper.HideModal();
conferma(name:string) {
messageService.publishToChannel(name);
};
async beforeMount() {
@@ -8,11 +8,30 @@
</div>
<section>
<aside class="scrollable">
<stampo :x="StX" :y="StY" :alt="StAlt" :alt-b="StAltB" :stampo-neg="StStampoNeg"></stampo>
<lastra></lastra>
<piastra></piastra>
<cornice></cornice>
<controstampo></controstampo>
<stampo
:x="recipe.general_sizes_mould_dim_x"
:y="recipe.general_sizes_mould_dim_y"
:alt="altezza"
:alt-b="recipe.general_sizes_mould_base_height"
:stampo-neg="stamponeg">
</stampo>
<lastra
:x="recipe.general_sizes_sheet_dim_x"
:y="recipe.general_sizes_sheet_dim_y"
:spes="recipe.general_sizes_sheet_thickness"
></lastra>
<piastra
:x="recipe.general_sizes_plate_dim_x"
:y="recipe.general_sizes_plate_dim_y"
></piastra>
<cornice
:x="recipe.general_sizes_frame_dim_x"
:y="recipe.general_sizes_frame_dim_y"
></cornice>
<controstampo
:alt="recipe.general_sizes_upperplate_max_height"
></controstampo>
<div class="radio-buttons">
<label>Zona di lavoro</label>
<label for="sx">Sx</label><br>
@@ -25,16 +44,28 @@
<div v-if="show=='placeholder'" class="svg-area"></div>
<stampoSVG
v-if="show=='stampo'"
:x="StX"
:y="StY"
:alt="StAlt"
:alt-b="StAltB"
:stampo-neg="StStampoNeg"
:x="recipe.general_sizes_mould_dim_x"
:y="recipe.general_sizes_mould_dim_y"
:alt="altezza"
:alt-b="recipe.general_sizes_mould_base_height"
:stampo-neg="stamponeg"
></stampoSVG>
<lastraSVG v-if="show=='lastra'" :x="LaX" :y="LaY" :spes="LaSpes"></lastraSVG>
<piastraSVG v-if="show=='piastra'" :x="PiX" :y="PiY"></piastraSVG>
<corniceSVG v-if="show=='cornice'" :x="CoX" :y="CoY"></corniceSVG>
<controstampoSVG v-if="show=='controstampo'" :alt="CsAlt"></controstampoSVG>
<lastraSVG v-if="show=='lastra'"
:x="recipe.general_sizes_sheet_dim_x"
:y="recipe.general_sizes_sheet_dim_y"
:spes="recipe.general_sizes_sheet_thickness"
></lastraSVG>
<piastraSVG v-if="show=='piastra'"
:x="recipe.general_sizes_plate_dim_x"
:y="recipe.general_sizes_plate_dim_y"
></piastraSVG>
<corniceSVG v-if="show=='cornice'"
:x="recipe.general_sizes_frame_dim_x"
:y="recipe.general_sizes_frame_dim_y"
></corniceSVG>
<controstampoSVG v-if="show=='controstampo'"
:alt="recipe.general_sizes_upperplate_max_height"
></controstampoSVG>
<div class="slides">
<img
@click="show='stampo'"
@@ -69,7 +100,7 @@
<button class="btn" @click="annulla()">
Annulla
</button>
<button class="btn btn-success" @click="conferma()">
<button class="btn btn-success" @click="conferma('show-quote-velocita-info')">
Conferma
</button>
</footer>
@@ -5,15 +5,15 @@ import { Prop } from 'vue-property-decorator';
@Component({name:"stampo" })
export default class Stampo extends Vue {
@Prop({})
x:number;
@Prop({})
y:number;
@Prop({})
@Prop({default:0})
x:Recipe.IValue;
@Prop({default:0})
y:Recipe.IValue;
@Prop({default:0})
alt:number;
@Prop({})
altB:number;
@Prop({})
@Prop({default:0})
altB:Recipe.IValue;
@Prop({default:0})
stampoNeg:number;
}
@@ -6,23 +6,23 @@
<div class="body">
<div class="input-area">
<label>Dimensione X</label>
<span class="rect">{{x}} mm</span>
<input class="rect" v-model="x.valueAct">
</div>
<div class="input-area">
<label>Dimensione Y</label>
<span class="rect">{{y}} mm</span>
<input class="rect" v-model="y.valueAct">
</div>
<div class="input-area">
<label>Altezza</label>
<span class="rect">{{alt}} mm</span>
<input class="rect" v-model="alt">
</div>
<div class="input-area">
<label>Altezza base</label>
<span class="rect">{{altB}} mm</span>
<input class="rect" v-model="altB.valueAct">
</div>
<div class="input-area">
<label>Stampo negativo</label>
<span class="rect">{{stampoNeg}} mm</span>
<input class="rect" v-model="stampoNeg">
</div>
</div>
</div>
@@ -1,20 +1,20 @@
<template>
<div class="tast">
<div class="mask">
<button class="tasto b7"><label class="lab">7</label></button>
<button class="tasto b8"><label class="lab">8</label></button>
<button class="tasto b9"><label class="lab">9</label></button>
<button class="tasto bDel"><label class="lab">Del</label></button>
<button class="tasto b4"><label class="lab">4</label></button>
<button class="tasto b5"><label class="lab">5</label></button>
<button class="tasto b6"><label class="lab">6</label></button>
<button class="tasto bCanc"><img src="assets/icons/png/canc.png"></button>
<button class="tasto b1"><label class="lab">1</label></button>
<button class="tasto b2"><label class="lab">2</label></button>
<button class="tasto b3"><label class="lab">3</label></button>
<button class="b7"><label class="lab">7</label></button>
<button class="b8"><label class="lab">8</label></button>
<button class="b9"><label class="lab">9</label></button>
<button class="bDel"><label class="lab">Del</label></button>
<button class="b4"><label class="lab">4</label></button>
<button class="b5"><label class="lab">5</label></button>
<button class="b6"><label class="lab">6</label></button>
<button class="bCanc"><img src="assets/icons/png/canc.png"></button>
<button class="b1"><label class="lab">1</label></button>
<button class="b2"><label class="lab">2</label></button>
<button class="b3"><label class="lab">3</label></button>
<button class="submit"><img src="assets/icons/png/submit.png"></button>
<button class="zero"><label class="lab">0</label></button>
<button class="tasto bPunto"><label class="lab">.</label></button>
<button class="bPunto"><label class="lab">.</label></button>
</div>
</div>
</template>

Some files were not shown because too many files have changed in this diff Show More