Merge branch 'develop' into feature/recipe

This commit is contained in:
Samuele Locatelli
2020-08-27 16:55:00 +02:00
17 changed files with 2841 additions and 2744 deletions
+14 -5
View File
@@ -1143,6 +1143,9 @@ namespace Thermo.Active.NC
// Get current head config
var configuredHead = HeadsConfig.Find(x => x.Id == head.Id);
// Create different model according on type
// 2020.08.27 update core.library ha sminchionato --> commentato!
#if false
switch (configuredHead.Type)
{
case HEAD_TYPE.SPINDLE:
@@ -1190,7 +1193,8 @@ namespace Thermo.Active.NC
});
}
break;
}
}
#endif
}
return libraryError;
@@ -2305,11 +2309,13 @@ namespace Thermo.Active.NC
RecipeCatStatus currStatus = RecipeCatStatus.Unchanged;
// 2020.08.27: faccio SEMPRE il calcolo degli stati, non rileggo e poi verifico...
#if false
// da conf ricetta --> se ci sono li leggo da li...
if (NcFileAdapter.RecipeLiveData.RecipeOverview != null)
{
currOverview = NcFileAdapter.RecipeLiveData.RecipeOverview;
}
}
bool changed = false;
foreach (var item in recipeConfig)
@@ -2325,6 +2331,7 @@ namespace Thermo.Active.NC
{
NcFileAdapter.RecipeLiveData.RecipeOverview = currOverview;
}
#endif
// ORA percorro conf ricetta x cercare eventuali ERRORI......
foreach (var item in recipeConfig)
@@ -2353,6 +2360,8 @@ namespace Thermo.Active.NC
}
}
}
// salvo!
NcFileAdapter.RecipeLiveData.RecipeOverview = currOverview;
// restituisco cod errore se trovato
return libraryError;
@@ -2631,9 +2640,9 @@ namespace Thermo.Active.NC
return libraryError;
}
#endregion Read Data
#endregion Read Data
#region Write data
#region Write data
public CmsError PutUserSoftKeyClick(uint id)
{
@@ -2708,7 +2717,7 @@ namespace Thermo.Active.NC
return numericalControl.PLC_WScadaValue(memIndex, memType, value);
}
#endregion Write data
#endregion Write data
private int GetMaxCountBetweenLayerComponents(ScadaSchemaLayerModel layer)
{
+1 -1
View File
@@ -30,4 +30,4 @@ using System.Runtime.InteropServices;
//
// You can specify all the values or you can default the Revision and Build Numbers
// by using the '*' as shown below:
[assembly: AssemblyVersion("0.11.60")]
[assembly: AssemblyVersion("0.11.62")]
@@ -146,6 +146,7 @@ select:focus {
flex-flow: row;
align-items: center;
justify-content: space-between;
max-width: 472px;
&.grid {
display: grid;
@@ -222,6 +223,7 @@ select:focus {
color: #002680;
font-size: 24px;
font-weight: 500;
overflow: hidden;
// flex: 0.7;
}
@@ -238,6 +238,34 @@
}
}
i {
grid-column-start: -1;
grid-column-end: 1;
grid-row: 2;
z-index: 2;
margin: auto;
position: absolute;
top: -10px;
left: 47px;
font-size: 25px;
width: 14px;
height: 14px;
overflow: visible;
background-color: white;
justify-content: center;
align-items: center;
display: flex;
border-radius: 7px;
&.fa-check-circle {
color: #90BF3D;
}
&.fa-check-circle.undone-step {
color: #1791FF;
}
}
span,
label {
grid-row-start: 1;
@@ -196,6 +196,31 @@
.setup .modal-footer-navigator .setup-button.current .background-bottom {
box-shadow: -3px -5px 5px rgba(0, 0, 0, 0.2) inset;
}
.setup .modal-footer-navigator .setup-button i {
grid-column-start: -1;
grid-column-end: 1;
grid-row: 2;
z-index: 2;
margin: auto;
position: absolute;
top: -10px;
left: 47px;
font-size: 25px;
width: 14px;
height: 14px;
overflow: visible;
background-color: white;
justify-content: center;
align-items: center;
display: flex;
border-radius: 7px;
}
.setup .modal-footer-navigator .setup-button i.fa-check-circle {
color: #90BF3D;
}
.setup .modal-footer-navigator .setup-button i.fa-check-circle.undone-step {
color: #1791FF;
}
.setup .modal-footer-navigator .setup-button span,
.setup .modal-footer-navigator .setup-button label {
grid-row-start: 1;
@@ -5497,6 +5522,7 @@ select:focus {
flex-flow: row;
align-items: center;
justify-content: space-between;
max-width: 472px;
}
.input-area.grid {
display: grid;
@@ -5558,6 +5584,7 @@ select:focus {
color: #002680;
font-size: 24px;
font-weight: 500;
overflow: hidden;
}
.input-area .numeric {
font-size: 18px;
+2681 -2661
View File
File diff suppressed because it is too large Load Diff
+11 -11
View File
@@ -25,7 +25,7 @@
"svg-pan-zoom": "3.6.1",
"v-tooltip": "^2.0.3",
"vee-validate": "2.1.1",
"vue": "^2.6.11",
"vue": "^2.6.12",
"vue-chartjs": "^3.5.0",
"vue-class-component": "7.2.3",
"vue-drag-drop": "1.1.4",
@@ -37,16 +37,16 @@
"vuex": "3.1.3"
},
"devDependencies": {
"@babel/plugin-proposal-export-default-from": "7.8.3",
"@babel/plugin-proposal-export-default-from": "7.10.4",
"@types/es6-promise": "3.3.0",
"@vue/cli-plugin-babel": "^4.1.0",
"@vue/cli-plugin-eslint": "^4.1.0",
"@vue/cli-plugin-router": "^4.1.0",
"@vue/cli-plugin-typescript": "^4.1.0",
"@vue/cli-plugin-vuex": "^4.1.0",
"@vue/cli-service": "^4.2.3",
"@vue/cli-plugin-babel": "^4.5.4",
"@vue/cli-plugin-eslint": "^4.5.4",
"@vue/cli-plugin-router": "^4.5.4",
"@vue/cli-plugin-typescript": "^4.5.4",
"@vue/cli-plugin-vuex": "^4.5.4",
"@vue/cli-service": "^4.5.4",
"autoprefixer": "^7.1.2",
"babel-loader": "8.0.6",
"babel-loader": "8.1.0",
"chalk": "^2.0.1",
"copy-webpack-plugin": "^4.0.1",
"css-loader": "^0.28.0",
@@ -57,8 +57,8 @@
"ts-loader": "6.2.1",
"typescript": "3.8.3",
"url-loader": "^3.0.0",
"vue-loader": "^15.9.0",
"vue-template-compiler": "^2.6.11",
"vue-loader": "^15.9.3",
"vue-template-compiler": "^2.6.12",
"webpack": "^4.42.0",
"webpack-cli": "3.2.3",
"webpack-dev-server": "3.2.1"
@@ -1,7 +1,6 @@
import Axios, { AxiosInstance, AxiosPromise, AxiosResponse, AxiosBasicCredentials, AxiosRequestConfig } from "axios";
import Factory from "./factoryService";
import * as iziToast from "izitoast";
// import { localizeString } from "../filters/localizeFilter";
import { store, AppModel } from "@/store";
interface InterceptorRequestDelegate { (config: AxiosRequestConfig): AxiosRequestConfig; }
@@ -2,7 +2,6 @@ import Component from "vue-class-component";
import Vue from "vue";
import { Prop } from "vue-property-decorator";
import lottie from "lottie-web";
import { localizeString } from "@/filters/localizeFilter";
@Component({})
export default class Combo extends Vue {
@@ -25,13 +24,15 @@ export default class Combo extends Vue {
get currentValue() {
let result = this.options.find(o => o.id == this.value.setpointHMI);
if (result) return localizeString(result.text, result.text);
if (result) {
return this.$options.filters.localize(result.text, result.text);
}
return null;
}
opened: boolean = false;
showList() {
this.opened = true;
this.opened = !this.opened;
this.$nextTick(() => lottie.searchAnimations());
}
@@ -36,7 +36,7 @@
font-size: 18px;
font-weight: 500;
color: #6d6d6d;
min-width: 80px;
min-width: 200px;
width: fit-content;
height: 48px;
@@ -3,6 +3,7 @@ import Component from 'vue-class-component';
import { messageService } from "@/_base/messageService";
import setupButton from "./setupButton.vue";
import { Prop } from 'vue-property-decorator';
import { store } from '@/store';
@Component({ name: 'stepfooter', components: { setupButton } })
export default class StepFooter extends Vue {
@@ -13,4 +14,9 @@ export default class StepFooter extends Vue {
public showModalAtStep(step: number) {
this.$emit('click', step - this.current)
}
get overview() {
return store.state.recipe.overview;
}
}
@@ -4,77 +4,88 @@
@click="showModalAtStep(0)"
:class="{'current': current== 0}"
:phase="1"
title="Formato"
:title="'overview.general' | localize('Formato')"
:status="overview.general"
></setup-button>
<setup-button
@click="showModalAtStep(1)"
:class="{'current': current== 1}"
:phase="2"
title="Quota e velocità"
:title="'overview.positions' | localize('Quota e velocità')"
:status="overview.positions"
></setup-button>
<setup-button
@click="showModalAtStep(2)"
:class="{'current': current== 2}"
:phase="3"
title="Ciclo"
:title="'overview.cycle' | localize('Ciclo')"
:status="overview.cycle"
></setup-button>
<setup-button
@click="showModalAtStep(3)"
:class="{'current': current== 3}"
:phase="4"
title="Riscaldi"
:title="'overview.heats' | localize('Riscaldi')"
:status="overview.heats"
></setup-button>
<setup-button
@click="showModalAtStep(4)"
:class="{'current': current== 4}"
:phase="5"
title="Pirometro"
:title="'overview.pyrometer' | localize('Pirometro')"
:status="overview.pyrometer"
></setup-button>
<setup-button
@click="showModalAtStep(5)"
:class="{'current': current== 5}"
:phase="6"
title="Imbutitura"
:title="'overview.drawing' | localize('Imbutitura')"
:status="overview.drawing"
></setup-button>
<setup-button
@click="showModalAtStep(6)"
:class="{'current': current== 6}"
:phase="7"
title="Controstampo"
:title="'overview.upperPlate' | localize('Controstampo')"
:status="overview.upperPlate"
></setup-button>
<setup-button
@click="showModalAtStep(7)"
:class="{'current': current== 7}"
:phase="8"
title="Raffreddamento"
:title="'overview.cooling' | localize('Raffreddamento')"
:status="overview.cooling"
></setup-button>
<setup-button
@click="showModalAtStep(8)"
:class="{'current': current== 8}"
:phase="9"
title="Vuoto"
:title="'overview.vacuum' | localize('Vuoto')"
:status="overview.vacuum"
></setup-button>
<setup-button
@click="showModalAtStep(9)"
:class="{'current': current== 9}"
:phase="10"
title="Estrazione"
:title="'overview.extraction' | localize('Estrazione')"
:status="overview.extraction"
></setup-button>
<setup-button
@click="showModalAtStep(10)"
:class="{'current': current== 10}"
:phase="11"
title="Opzioni di lavorazione"
:title="'overview.options' | localize('Opzioni di lavorazione')"
:status="overview.options"
></setup-button>
</div>
</template>
@@ -4,7 +4,7 @@
<div class="box transparent">
<div class="body">
<template v-if="recipe.heats_lowerheaters_movement_enabled.status.visible">
<div>
<div class="input-area">
<label>{{'heats_lowerheaters_movement_enabled'|localize('Movimento')}}</label>
<toggle-button
v-model="recipe.heats_lowerheaters_movement_enabled.setpointHMI"
@@ -70,26 +70,26 @@
<button class="btn btn-success">Autocomposizione</button>
</div>
<div class="divider"></div>
<div class="input-area grid left">
<template v-if="recipe.heats_lowerheaters_oscillation.status.visible">
<div>
<label>{{'heats_lowerheaters_oscillation'|localize('Oscillazione')}}</label>
<toggle-button
v-model="recipe.heats_lowerheaters_oscillation.setpointHMI"
:status="recipe.heats_lowerheaters_oscillation.status"
></toggle-button>
</div>
</template>
<template v-if="recipe.heats_lowerheaters_enabled.status.visible">
<div class="input-area">
<label>{{'heats_lowerheaters_enabled'|localize('Abilitazione riscaldo')}}</label>
<toggle-button
v-model="recipe.heats_lowerheaters_enabled.setpointHMI"
:status="recipe.heats_lowerheaters_enabled.status"
></toggle-button>
</div>
</template>
</div>
<!-- <div class="input-area grid left"> -->
<template v-if="recipe.heats_lowerheaters_oscillation.status.visible">
<div class="input-area">
<label>{{'heats_lowerheaters_oscillation'|localize('Oscillazione')}}</label>
<toggle-button
v-model="recipe.heats_lowerheaters_oscillation.setpointHMI"
:status="recipe.heats_lowerheaters_oscillation.status"
></toggle-button>
</div>
</template>
<template v-if="recipe.heats_lowerheaters_enabled.status.visible">
<div class="input-area">
<label>{{'heats_lowerheaters_enabled'|localize('Abilitazione riscaldo')}}</label>
<toggle-button
v-model="recipe.heats_lowerheaters_enabled.setpointHMI"
:status="recipe.heats_lowerheaters_enabled.status"
></toggle-button>
</div>
</template>
<!-- </div> -->
</div>
</div>
</aside>
@@ -4,7 +4,7 @@
<div class="box transparent">
<div class="body">
<template v-if="recipe.heats_upperheaters_movement_enabled.status.visible">
<div>
<div class="input-area">
<label>{{'heats_upperheaters_movement_enabled'|localize('Movimento')}}</label>
<toggle-button
v-model="recipe.heats_upperheaters_movement_enabled.setpointHMI"
@@ -70,26 +70,26 @@
<button class="btn btn-success">Autocomposizione</button>
</div>
<div class="divider"></div>
<div class="input-area grid left">
<template v-if="recipe.heats_upperheaters_oscillation.status.visible">
<div>
<label>{{'heats_upperheaters_oscillation'|localize('Oscillazione')}}</label>
<toggle-button
v-model="recipe.heats_upperheaters_oscillation.setpointHMI"
:status="recipe.heats_upperheaters_oscillation.status"
></toggle-button>
</div>
</template>
<template v-if="recipe.heats_upperheaters_enabled.status.visible">
<div class="input-area">
<label>{{'heats_upperheaters_enabled'|localize('Abilitazione riscaldo')}}</label>
<toggle-button
v-model="recipe.heats_upperheaters_enabled.setpointHMI"
:status="recipe.heats_upperheaters_enabled.status"
></toggle-button>
</div>
</template>
</div>
<!-- <div class="input-area grid left"> -->
<template v-if="recipe.heats_upperheaters_oscillation.status.visible">
<div class="input-area">
<label>{{'heats_upperheaters_oscillation'|localize('Oscillazione')}}</label>
<toggle-button
v-model="recipe.heats_upperheaters_oscillation.setpointHMI"
:status="recipe.heats_upperheaters_oscillation.status"
></toggle-button>
</div>
</template>
<template v-if="recipe.heats_upperheaters_enabled.status.visible">
<div class="input-area">
<label>{{'heats_upperheaters_enabled'|localize('Abilitazione riscaldo')}}</label>
<toggle-button
v-model="recipe.heats_upperheaters_enabled.setpointHMI"
:status="recipe.heats_upperheaters_enabled.status"
></toggle-button>
</div>
</template>
<!-- </div> -->
</div>
</div>
</aside>
@@ -1,7 +1,7 @@
<template>
<div class="togglebutton big">
<div class="togglebutton big" v-if="status.visible">
<label>
<input type="checkbox" v-model="bindingValue" :disabled="readOnly" />
<input type="checkbox" v-model="bindingValue" :disabled="readOnly || !status.enabled" />
<span
class="toggle"
:class="{'error': status && status.hasError}"
@@ -23,8 +23,3 @@ Vue.filter("localize", function (key: string, defaultValue: string, ...args): st
return pf.vsprintf(value || dvalue || defaultValue, args);
});
export function localizeString(key: string, defaultValue: string) {
return store.getters.getLabel(key) || defaultValue;
}
@@ -1,4 +1,3 @@
import { localizeString } from "../filters/localizeFilter";
export interface MaintenanceStoreModel {
maintenances: Array<server.Maintenance>
noteMaintenance: Array<server.MaintenanceNote>