Compare commits
92 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 4dde0de70a | |||
| d3f65680e9 | |||
| 4879979ae6 | |||
| a1fd3ec363 | |||
| 22b5b3453b | |||
| 06d83de1df | |||
| 828701c865 | |||
| 5dc96371ce | |||
| 3ce95c81dd | |||
| 1f7d34327c | |||
| 8aadb503ec | |||
| e7f221376f | |||
| d4d26408ad | |||
| 3e6b9390da | |||
| a03fe6c7c7 | |||
| 90d3e33f2b | |||
| 3388520048 | |||
| b938239572 | |||
| 71fb94f59b | |||
| b78cbfc38a | |||
| 3403836f7e | |||
| f0dc2333fb | |||
| 4fafa3a791 | |||
| 3564f0cb72 | |||
| 6b1bf6f94b | |||
| d2f8c7f893 | |||
| 7f3ad3dbd9 | |||
| 01c42162d0 | |||
| 8afcaf8f6f | |||
| 54573c76b1 | |||
| 5900f2b9d9 | |||
| 821b7accbd | |||
| f6bc7e4ef4 | |||
| 0e35c3da9e | |||
| d48d6e7925 | |||
| b91a18b434 | |||
| abaf3a4794 | |||
| dbc2777bcd | |||
| 7ee0cdb5a6 | |||
| 69f1398d9a | |||
| b707c4a2f5 | |||
| f741a39644 | |||
| 6624c6b219 | |||
| 2819c901f1 | |||
| 30ac1496e2 | |||
| 2bbd500360 | |||
| d887dc7d48 | |||
| be669f66f1 | |||
| 5c96a2c9f1 | |||
| d4cc3a8877 | |||
| d79d883224 | |||
| 2e646b0547 | |||
| 578351fbcc | |||
| a1b5bbb9ef | |||
| 88095c418b | |||
| 866ae7c089 | |||
| 5166e8db62 | |||
| ededb27d80 | |||
| 7ff75037f7 | |||
| bd350e15e4 | |||
| 10d3e8e958 | |||
| fe5ea382b9 | |||
| 7992723cba | |||
| 5e22af4625 | |||
| 393768fe7c | |||
| 34edd6839e | |||
| 0ef9a38073 | |||
| cb6271562b | |||
| 060a78964d | |||
| 9159864ef2 | |||
| 4f863b71f0 | |||
| c0edbdbd2f | |||
| b893a9f2e0 | |||
| 71f4192bba | |||
| ffadf07aaf | |||
| 0648f53c94 | |||
| d4e917cce2 | |||
| 895914fd24 | |||
| bc5fde0844 | |||
| b9f82cb6f0 | |||
| cc6ba8f0ef | |||
| 772aa06eb9 | |||
| 2399cd0a9d | |||
| 35d0e05908 | |||
| a057bb115e | |||
| fa9a477a88 | |||
| 0f23124a17 | |||
| d2e728abf5 | |||
| ecf740044d | |||
| 0341d98a95 | |||
| a88560e0c1 | |||
| 30a104854c |
@@ -12,7 +12,7 @@
|
||||
<ServerUrl>localhost</ServerUrl>
|
||||
<ServerPort>9000</ServerPort>
|
||||
<Id>1</Id>
|
||||
<DeleteCahceFolderOnStartup>false</DeleteCahceFolderOnStartup>
|
||||
<DeleteCahceFolderOnStartup>true</DeleteCahceFolderOnStartup>
|
||||
</Connection>
|
||||
<VendorHmi>
|
||||
<FollowNcWindow>True</FollowNcWindow>
|
||||
|
||||
@@ -36,13 +36,14 @@ namespace Active_Client.Browser_Tools
|
||||
|
||||
private MainForm mainForm;
|
||||
|
||||
private static readonly string[] _validExtensions = { "", ".json", ".rcp", ".tpl" };
|
||||
private static readonly string[] _validExtensions = {".json", ".rcp", ".tpl" };
|
||||
//private static readonly string[] _validExtensions = { "", ".txt", ".cnc", ".cn", ".cno", ".ini", ".mpf", ".spf", ".tap", ".anc", ".iso" };
|
||||
private static readonly string[] _validImages = { ".jpg", ".jpeg", ".png" };
|
||||
private static string jobPath = "";
|
||||
private static Dictionary<string, IntPtr> _editorOpened = new Dictionary<string, IntPtr>();
|
||||
private static EditorVar _currentEditorObject = new EditorVar();
|
||||
public static string RECENT_FOLDER_KEY = "RECENT";
|
||||
public static string RECENT_FOLDER_KEY = "RECENT";
|
||||
private const string THERMO_RECIPE_PATH = @"C:\CMS\Recipes";
|
||||
|
||||
public static FileSystemWatcher watcher = null;
|
||||
public static DateTime _lastTimeFileWatcherEventRaised = DateTime.Now;
|
||||
@@ -384,6 +385,16 @@ namespace Active_Client.Browser_Tools
|
||||
Type = "SPFO"
|
||||
});
|
||||
|
||||
if (Directory.Exists(THERMO_RECIPE_PATH))
|
||||
{
|
||||
drivelist.Add(new Drive()
|
||||
{
|
||||
Name = ElaborateName("Recipes", "", DriveType.Unknown),
|
||||
Path = THERMO_RECIPE_PATH + "\\",
|
||||
Type = "SPFO"
|
||||
});
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
// Network Folders
|
||||
@@ -689,16 +700,26 @@ namespace Active_Client.Browser_Tools
|
||||
imagePath = Path.GetFileNameWithoutExtension(p);
|
||||
imageDirectory = Path.GetDirectoryName(p);
|
||||
|
||||
file.Content = new List<string>();
|
||||
file.SheetX = "";
|
||||
file.SheetY = "";
|
||||
file.SheetZ = "";
|
||||
file.Annotation = "";
|
||||
|
||||
try
|
||||
{
|
||||
StreamReader fileRead = new StreamReader(p);
|
||||
while ((line = fileRead.ReadLine()) != null && counter < 10)
|
||||
dynamic content = JsonConvert.DeserializeObject(File.ReadAllText(p));
|
||||
|
||||
if(content != null && content.RecipeParameters != null)
|
||||
{
|
||||
file.Content.Add(line);
|
||||
counter++;
|
||||
if(content.RecipeParameters.general_sizes_sheet_dim_x != null)
|
||||
file.SheetX = content.RecipeParameters.general_sizes_sheet_dim_x;
|
||||
if (content.RecipeParameters.general_sizes_sheet_dim_y != null)
|
||||
file.SheetY = content.RecipeParameters.general_sizes_sheet_dim_y;
|
||||
if (content.RecipeParameters.general_sizes_sheet_thickness != null)
|
||||
file.SheetZ = content.RecipeParameters.general_sizes_sheet_thickness;
|
||||
if (content.recipeNotes != null)
|
||||
file.Annotation = content.recipeNotes;
|
||||
}
|
||||
fileRead.Close();
|
||||
|
||||
foreach (string ext in _validImages)
|
||||
{
|
||||
|
||||
@@ -9,7 +9,11 @@ namespace Active_Client.Browser_Tools.Models
|
||||
public String AbsolutePath;
|
||||
public DateTime CreationDate;
|
||||
public DateTime LastModDate;
|
||||
public List<String> Content;
|
||||
public String SheetX;
|
||||
public String SheetY;
|
||||
public String SheetZ;
|
||||
public String Annotation;
|
||||
|
||||
public Boolean CanEdit;
|
||||
public string PreviewBase64;
|
||||
}
|
||||
|
||||
@@ -179,6 +179,19 @@ namespace Active_Client
|
||||
//Method called Before Cef Initialization
|
||||
static void Chromium_OnBeforeCfxInitialize(OnBeforeCfxInitializeEventArgs e)
|
||||
{
|
||||
try
|
||||
{
|
||||
if (Config.ConnectionConfig.DeleteCahceFolderOnStartup && Directory.Exists(Constants.BROWSER_CACHE_FOLDER))
|
||||
{
|
||||
Directory.Delete(Constants.BROWSER_CACHE_FOLDER, true);
|
||||
}
|
||||
}
|
||||
catch (Exception E)
|
||||
{
|
||||
ShowAlarmAndClose(E.Message);
|
||||
}
|
||||
|
||||
|
||||
e.Settings.WindowlessRenderingEnabled = true;
|
||||
|
||||
//Path Setup
|
||||
|
||||
@@ -40,12 +40,7 @@ namespace Active_Client.View
|
||||
LogoCMS.Visible = true;
|
||||
LogoSCM.Visible = false;
|
||||
}
|
||||
|
||||
|
||||
//Setup The Browser
|
||||
if (!SetupBrowser())
|
||||
return;
|
||||
|
||||
|
||||
//Set window Position
|
||||
this.Location = new Point((Screen.PrimaryScreen.Bounds.Width / 2) - (this.Width / 2), (Screen.PrimaryScreen.Bounds.Height / 2) - (this.Height / 2));
|
||||
}
|
||||
@@ -164,30 +159,6 @@ namespace Active_Client.View
|
||||
}
|
||||
|
||||
|
||||
|
||||
//Sub-Method used to SetupThe Browser Environment
|
||||
private bool SetupBrowser()
|
||||
{
|
||||
//Delete Browser Cache
|
||||
try
|
||||
{
|
||||
if (Config.ConnectionConfig.DeleteCahceFolderOnStartup && Directory.Exists(Constants.BROWSER_CACHE_FOLDER))
|
||||
{
|
||||
setStatus("Deleting Browser Chache Folder...", "");
|
||||
Directory.Delete(Constants.BROWSER_CACHE_FOLDER, true);
|
||||
}
|
||||
|
||||
}
|
||||
catch (Exception E)
|
||||
{
|
||||
setStatus("Close the application!", E.Message);
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
//Sub-Method used to test the connection
|
||||
private bool testConnection(Uri url, out Boolean error)
|
||||
{
|
||||
|
||||
@@ -23,10 +23,9 @@
|
||||
<lang langKey="it">Refresh allarmi</lang>
|
||||
</localizedNames>
|
||||
<visible>true</visible>
|
||||
<starred>true</starred>
|
||||
</softKey_procedure>
|
||||
|
||||
<softKey_toggle>
|
||||
<softKey_procedure>
|
||||
<active>false</active>
|
||||
<category>3</category>
|
||||
<operatorConfirmationNeeded>false</operatorConfirmationNeeded>
|
||||
@@ -36,9 +35,9 @@
|
||||
<lang langKey="it">Termoregolatori</lang>
|
||||
</localizedNames>
|
||||
<visible>true</visible>
|
||||
</softKey_toggle>
|
||||
</softKey_procedure>
|
||||
|
||||
<softKey_toggle>
|
||||
<softKey_procedure>
|
||||
<active>false</active>
|
||||
<category>4</category>
|
||||
<operatorConfirmationNeeded>false</operatorConfirmationNeeded>
|
||||
@@ -48,9 +47,9 @@
|
||||
<lang langKey="it">Portellone frontale</lang>
|
||||
</localizedNames>
|
||||
<visible>true</visible>
|
||||
</softKey_toggle>
|
||||
</softKey_procedure>
|
||||
|
||||
<softKey_toggle>
|
||||
<softKey_procedure>
|
||||
<active>true</active>
|
||||
<category>5</category>
|
||||
<operatorConfirmationNeeded>false</operatorConfirmationNeeded>
|
||||
@@ -60,8 +59,7 @@
|
||||
<lang langKey="it">Pausa ciclo</lang>
|
||||
</localizedNames>
|
||||
<visible>true</visible>
|
||||
<starred>true</starred>
|
||||
</softKey_toggle>
|
||||
</softKey_procedure>
|
||||
|
||||
<softKey_procedure>
|
||||
<active>true</active>
|
||||
@@ -76,7 +74,7 @@
|
||||
<starred>true</starred>
|
||||
</softKey_procedure>
|
||||
|
||||
<softKey_toggle>
|
||||
<softKey_procedure>
|
||||
<active>true</active>
|
||||
<category>7</category>
|
||||
<operatorConfirmationNeeded>false</operatorConfirmationNeeded>
|
||||
@@ -87,9 +85,22 @@
|
||||
</localizedNames>
|
||||
<visible>true</visible>
|
||||
<starred>true</starred>
|
||||
</softKey_toggle>
|
||||
</softKey_procedure>
|
||||
|
||||
<softKey_toggle>
|
||||
<softKey_procedure>
|
||||
<active>true</active>
|
||||
<category>7</category>
|
||||
<operatorConfirmationNeeded>false</operatorConfirmationNeeded>
|
||||
<plcId>8</plcId>
|
||||
<localizedNames>
|
||||
<lang langKey="en">Heaters Back</lang>
|
||||
<lang langKey="it">Riscaldi indietro</lang>
|
||||
</localizedNames>
|
||||
<visible>true</visible>
|
||||
<starred>true</starred>
|
||||
</softKey_procedure>
|
||||
|
||||
<softKey_procedure>
|
||||
<active>true</active>
|
||||
<category>1</category>
|
||||
<operatorConfirmationNeeded>false</operatorConfirmationNeeded>
|
||||
@@ -99,7 +110,19 @@
|
||||
<lang langKey="it">Pompe vuoto</lang>
|
||||
</localizedNames>
|
||||
<visible>true</visible>
|
||||
</softKey_toggle>
|
||||
</softKey_procedure>
|
||||
|
||||
<softKey_procedure>
|
||||
<active>true</active>
|
||||
<category>10</category>
|
||||
<operatorConfirmationNeeded>true</operatorConfirmationNeeded>
|
||||
<plcId>10</plcId>
|
||||
<localizedNames>
|
||||
<lang langKey="en">START Cycle</lang>
|
||||
<lang langKey="it">START Ciclo</lang>
|
||||
</localizedNames>
|
||||
<visible>true</visible>
|
||||
</softKey_procedure>
|
||||
|
||||
<softKey_procedure>
|
||||
<active>true</active>
|
||||
@@ -327,6 +350,8 @@
|
||||
<lang langKey="it">Apertura cornice</lang>
|
||||
</localizedNames>
|
||||
<visible>true</visible>
|
||||
<refCallParam>general_sizes_frame_dim_x</refCallParam>
|
||||
<refCallLabel>general_sizes_frame_dim_x_button</refCallLabel>
|
||||
</softKey_procedure>
|
||||
|
||||
<softKey_procedure>
|
||||
@@ -339,6 +364,8 @@
|
||||
<lang langKey="it">Profondità cornice</lang>
|
||||
</localizedNames>
|
||||
<visible>true</visible>
|
||||
<refCallParam>general_sizes_frame_dim_y</refCallParam>
|
||||
<refCallLabel>general_sizes_frame_dim_y_button</refCallLabel>
|
||||
</softKey_procedure>
|
||||
|
||||
<softKey_procedure>
|
||||
@@ -351,6 +378,8 @@
|
||||
<lang langKey="it">Larghezza piastrafinestra</lang>
|
||||
</localizedNames>
|
||||
<visible>true</visible>
|
||||
<refCallParam>general_sizes_plate_dim_x</refCallParam>
|
||||
<refCallLabel>general_sizes_plate_dim_x_button</refCallLabel>
|
||||
</softKey_procedure>
|
||||
|
||||
<softKey_procedure>
|
||||
@@ -363,6 +392,8 @@
|
||||
<lang langKey="it">Profondità piastrafinestra</lang>
|
||||
</localizedNames>
|
||||
<visible>true</visible>
|
||||
<refCallParam>general_sizes_plate_dim_y</refCallParam>
|
||||
<refCallLabel>general_sizes_plate_dim_y_button</refCallLabel>
|
||||
</softKey_procedure>
|
||||
|
||||
<softKey_procedure>
|
||||
@@ -377,22 +408,64 @@
|
||||
<visible>true</visible>
|
||||
</softKey_procedure>
|
||||
|
||||
<!--
|
||||
<softKey_group>
|
||||
<active>true</active>
|
||||
<category>3</category>
|
||||
<operatorConfirmationNeeded>false</operatorConfirmationNeeded>
|
||||
<localizedNames>
|
||||
<lang langKey="en">Brakes ON/FF:</lang>
|
||||
<lang langKey="it">Freni ON/OFF</lang>
|
||||
</localizedNames>
|
||||
<subKeys>
|
||||
<subKey active="true" plcId="50"> B </subKey>
|
||||
<subKey active="true" plcId="51"> C </subKey>
|
||||
</subKeys>
|
||||
<visible>true</visible>
|
||||
</softKey_group>
|
||||
-->
|
||||
<softKey_procedure>
|
||||
<active>false</active>
|
||||
<category>7</category>
|
||||
<operatorConfirmationNeeded>false</operatorConfirmationNeeded>
|
||||
<plcId>35</plcId>
|
||||
<localizedNames>
|
||||
<lang langKey="en">Loader Cycle Start</lang>
|
||||
<lang langKey="it">Start Ciclo Caricatore</lang>
|
||||
</localizedNames>
|
||||
<visible>true</visible>
|
||||
<refCallParam>cycle_loader_enable</refCallParam>
|
||||
<refCallLabel>cycle_loader_enable_button</refCallLabel>
|
||||
</softKey_procedure>
|
||||
|
||||
<softKey_procedure>
|
||||
<active>true</active>
|
||||
<category>1</category>
|
||||
<operatorConfirmationNeeded>false</operatorConfirmationNeeded>
|
||||
<plcId>36</plcId>
|
||||
<localizedNames>
|
||||
<lang langKey="en">Dashboard Setpoint Plus</lang>
|
||||
<lang langKey="it">Dashboard Setpoint Plus</lang>
|
||||
</localizedNames>
|
||||
<visible>true</visible>
|
||||
<refCallParam>dash_setpoint_plus</refCallParam>
|
||||
<refCallLabel>dash_setpoint_plus_button</refCallLabel>
|
||||
</softKey_procedure>
|
||||
|
||||
<softKey_procedure>
|
||||
<active>true</active>
|
||||
<category>1</category>
|
||||
<operatorConfirmationNeeded>false</operatorConfirmationNeeded>
|
||||
<plcId>37</plcId>
|
||||
<localizedNames>
|
||||
<lang langKey="en">Dashboard Setpoint Minus</lang>
|
||||
<lang langKey="it">Dashboard Setpoint Minus</lang>
|
||||
</localizedNames>
|
||||
<visible>true</visible>
|
||||
<refCallParam>dash_setpoint_minus</refCallParam>
|
||||
<refCallLabel>dash_setpoint_minus_button</refCallLabel>
|
||||
</softKey_procedure>
|
||||
|
||||
|
||||
<!--softKey_group>
|
||||
<active>true</active>
|
||||
<category>1</category>
|
||||
<operatorConfirmationNeeded>false</operatorConfirmationNeeded>
|
||||
<localizedNames>
|
||||
<lang langKey="en">aaa:</lang>
|
||||
<lang langKey="it">aaa</lang>
|
||||
</localizedNames>
|
||||
<subKeys>
|
||||
<subKey active="true" plcId="21"> B </subKey>
|
||||
<subKey active="true" plcId="22"> C </subKey>
|
||||
</subKeys>
|
||||
<visible>true</visible>
|
||||
</softKey_group-->
|
||||
|
||||
|
||||
|
||||
</userSoftKeys>
|
||||
@@ -31,6 +31,8 @@
|
||||
<xs:element name="active" minOccurs="1" maxOccurs="1" type="xs:boolean"></xs:element>
|
||||
<xs:element name="visible" minOccurs="1" maxOccurs="1" type="xs:boolean"></xs:element>
|
||||
<xs:element name="starred" minOccurs="0" type="xs:boolean"></xs:element>
|
||||
<xs:element name="refCallLabel" minOccurs="0" type="xs:string"></xs:element>
|
||||
<xs:element name="refCallParam" minOccurs="0" type="xs:string"></xs:element>
|
||||
<xs:element name="category" type="xs:integer"></xs:element>
|
||||
<xs:element name="operatorConfirmationNeeded" type="xs:boolean"></xs:element>
|
||||
<xs:element name="localizedNames">
|
||||
@@ -66,6 +68,8 @@
|
||||
<xs:element name="active" minOccurs="1" maxOccurs="1" type="xs:boolean"></xs:element>
|
||||
<xs:element name="visible" minOccurs="1" maxOccurs="1" type="xs:boolean"></xs:element>
|
||||
<xs:element name="starred" minOccurs="0" type="xs:boolean"></xs:element>
|
||||
<xs:element name="refCallLabel" minOccurs="0" type="xs:string"></xs:element>
|
||||
<xs:element name="refCallParam" minOccurs="0" type="xs:string"></xs:element>
|
||||
<xs:element name="category" type="xs:integer"></xs:element>
|
||||
<xs:element name="operatorConfirmationNeeded" type="xs:boolean"></xs:element>
|
||||
<xs:element name="localizedNames">
|
||||
@@ -86,6 +90,8 @@
|
||||
<xs:element name="active" minOccurs="1" maxOccurs="1" type="xs:boolean"></xs:element>
|
||||
<xs:element name="visible" minOccurs="1" maxOccurs="1" type="xs:boolean"></xs:element>
|
||||
<xs:element name="starred" minOccurs="0" type="xs:boolean"></xs:element>
|
||||
<xs:element name="refCallLabel" minOccurs="0" type="xs:string"></xs:element>
|
||||
<xs:element name="refCallParam" minOccurs="0" type="xs:string"></xs:element>
|
||||
<xs:element name="category" type="xs:integer"></xs:element>
|
||||
<xs:element name="operatorConfirmationNeeded" type="xs:boolean"></xs:element>
|
||||
<xs:element name="localizedNames">
|
||||
|
||||
@@ -518,6 +518,8 @@ namespace Thermo.Active.Config
|
||||
IsActive = Convert.ToBoolean(x.Element("active").Value),
|
||||
IsVisible = Convert.ToBoolean(x.Element("visible").Value),
|
||||
IsStarred = x.Element("starred") != null ? Convert.ToBoolean(x.Element("starred").Value) : false,
|
||||
RefCallLabel = x.Element("refCallLabel") != null ? x.Element("refCallLabel").Value : "",
|
||||
RefCallParam = x.Element("refCallParam") != null ? x.Element("refCallParam").Value : "",
|
||||
Category = Convert.ToInt32(x.Element("category").Value),
|
||||
LocalizedNames = x.Element("localizedNames").Elements().ToDictionary( // Read localized names and convert into a dictionary
|
||||
y => y.Attribute("langKey").Value, y => y.Value
|
||||
@@ -760,13 +762,14 @@ namespace Thermo.Active.Config
|
||||
SetpointThermo = 0,
|
||||
MaxPower = riferimento.Potenza,
|
||||
NumResist = 1,
|
||||
CalcIchMin = riferimento.Modello.Contains("Quarzo") || riferimento.Modello.Contains("Alogena")
|
||||
// 2020.07.27 applicato x tutti
|
||||
CalcIchMin = true //riferimento.Modello.Contains("Quarzo") || riferimento.Modello.Contains("Alogena")
|
||||
});
|
||||
}
|
||||
else
|
||||
{
|
||||
chanFound.NumResist += 1;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
chanFound.NumResist += 1;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -88,7 +88,7 @@
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
</Content>
|
||||
<Content Include="Config\userSoftKeyConfig.xml">
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
||||
<SubType>Designer</SubType>
|
||||
</Content>
|
||||
<EmbeddedResource Include="Config\userSoftKeyConfigValidator.xsd">
|
||||
|
||||
@@ -318,16 +318,8 @@ public static class ThreadsFunctions
|
||||
ManageLibraryError(libraryError);
|
||||
else
|
||||
{
|
||||
libraryError = ncAdapter.GetM155Data(out List<DTOM155InputModel> m155Data);
|
||||
if (libraryError.errorCode != 0)
|
||||
ManageLibraryError(libraryError);
|
||||
else
|
||||
{
|
||||
// Send processes through signalR
|
||||
MessageServices.Current.Publish(SEND_PROCESSES_DATA, null, processesPPData);
|
||||
// Send m155 through signalR
|
||||
MessageServices.Current.Publish(SEND_M155_DATA, null, m155Data);
|
||||
}
|
||||
// Send processes through signalR
|
||||
MessageServices.Current.Publish(SEND_PROCESSES_DATA, null, processesPPData);
|
||||
}
|
||||
}
|
||||
else
|
||||
|
||||
@@ -16,7 +16,7 @@ namespace Thermo.Active.Core
|
||||
ThreadsFunctions.ReadAlarms,
|
||||
ThreadsFunctions.ReadPowerOnData,
|
||||
ThreadsFunctions.StatThread,
|
||||
//ThreadsFunctions.ReadProcessesPPStatus,
|
||||
ThreadsFunctions.ReadProcessesPPStatus,
|
||||
ThreadsFunctions.ReadEnabledFunctionality,
|
||||
ThreadsFunctions.ReadExpiredMaintenances,
|
||||
//ThreadsFunctions.ReadAxesPositionsData,
|
||||
|
||||
@@ -46,6 +46,8 @@ namespace Thermo.Active.Database.Controllers
|
||||
Id = softKey.Id,
|
||||
Category = softKey.Category,
|
||||
OperatorConfirmationNeeded = softKey.OperatorConfirmationNeeded,
|
||||
RefCallLabel = softKey.RefCallLabel,
|
||||
RefCallParam = softKey.RefCallParam,
|
||||
Type = softKey.Type,
|
||||
SubKeys = tmpSubKey
|
||||
});
|
||||
|
||||
@@ -11,6 +11,8 @@ namespace Thermo.Active.Model.ConfigModels
|
||||
public bool IsActive { get; set; }
|
||||
public bool IsVisible { get; set; }
|
||||
public bool IsStarred { get; set; } = false;
|
||||
public string RefCallParam { get; set; } = "";
|
||||
public string RefCallLabel { get; set; } = "";
|
||||
public bool OperatorConfirmationNeeded { get; set; }
|
||||
public List<SubKeysModel> SubKeys { get; set; }
|
||||
public int PlcId { get; set; }
|
||||
|
||||
@@ -82,11 +82,11 @@ namespace Thermo.Active.Model.DTOModels
|
||||
if (WorkOverride != item.WorkOverride)
|
||||
return false;
|
||||
|
||||
if (offsetData.RealLength != item.offsetData.RealLength)
|
||||
return false;
|
||||
//if (offsetData.RealLength != item.offsetData.RealLength)
|
||||
// return false;
|
||||
|
||||
if (offsetData.RealRadius != item.offsetData.RealRadius)
|
||||
return false;
|
||||
//if (offsetData.RealRadius != item.offsetData.RealRadius)
|
||||
// return false;
|
||||
|
||||
if (FeedOverride != item.FeedOverride)
|
||||
return false;
|
||||
|
||||
@@ -8,6 +8,8 @@ namespace Thermo.Active.Model.DTOModels
|
||||
public int Id { get; set; }
|
||||
public int Category { get; set; }
|
||||
public bool OperatorConfirmationNeeded { get; set; }
|
||||
public string RefCallParam { get; set; } = "";
|
||||
public string RefCallLabel { get; set; } = "";
|
||||
public SOFTKEY_TYPE Type { get; set; }
|
||||
public Dictionary<int, string> SubKeys { get; set; }
|
||||
}
|
||||
@@ -20,6 +22,9 @@ namespace Thermo.Active.Model.DTOModels
|
||||
public bool Visible { get; set; }
|
||||
public bool Starred { get; set; } = false;
|
||||
public bool Value { get; set; }
|
||||
public bool OperatorConfirmationNeeded { get; set; }
|
||||
public string RefCallParam { get; set; } = "";
|
||||
public string RefCallLabel { get; set; } = "";
|
||||
|
||||
public override bool Equals(object obj)
|
||||
{
|
||||
@@ -34,6 +39,12 @@ namespace Thermo.Active.Model.DTOModels
|
||||
return false;
|
||||
if (Value != item.Value)
|
||||
return false;
|
||||
if (OperatorConfirmationNeeded != item.OperatorConfirmationNeeded)
|
||||
return false;
|
||||
if (RefCallParam != item.RefCallParam)
|
||||
return false;
|
||||
if (RefCallLabel != item.RefCallLabel)
|
||||
return false;
|
||||
|
||||
return true;
|
||||
}
|
||||
@@ -43,4 +54,5 @@ namespace Thermo.Active.Model.DTOModels
|
||||
return base.GetHashCode();
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -636,6 +636,7 @@ namespace Thermo.Active.NC
|
||||
}
|
||||
}
|
||||
|
||||
#if false
|
||||
// Read selected axes
|
||||
libraryError = numericalControl.AXES_RSelectedAxis(ref processesData.SelectedAxis);
|
||||
if (libraryError.IsError())
|
||||
@@ -677,7 +678,8 @@ namespace Thermo.Active.NC
|
||||
// Measure
|
||||
processesData.UnitMeasure = UMeas;
|
||||
|
||||
processesData.FeedOverride = selectedData.FeedOverride;
|
||||
processesData.FeedOverride = selectedData.FeedOverride;
|
||||
#endif
|
||||
|
||||
return libraryError;
|
||||
}
|
||||
@@ -1011,6 +1013,9 @@ namespace Thermo.Active.NC
|
||||
Id = subkey.Id,
|
||||
Active = plcSoftKey.Active,
|
||||
Starred = softKey.IsStarred,
|
||||
RefCallParam = softKey.RefCallParam,
|
||||
RefCallLabel = softKey.RefCallLabel,
|
||||
OperatorConfirmationNeeded = softKey.OperatorConfirmationNeeded,
|
||||
Category = softKey.Category,
|
||||
Value = plcSoftKey.Value
|
||||
});
|
||||
@@ -1020,6 +1025,7 @@ namespace Thermo.Active.NC
|
||||
{
|
||||
Id = softKey.Id,
|
||||
Category = softKey.Category,
|
||||
OperatorConfirmationNeeded = softKey.OperatorConfirmationNeeded,
|
||||
Visible = softKey.IsVisible
|
||||
});
|
||||
}
|
||||
@@ -1032,6 +1038,9 @@ namespace Thermo.Active.NC
|
||||
Id = softKey.Id,
|
||||
Active = plcSoftKey.Active,
|
||||
Starred = softKey.IsStarred,
|
||||
RefCallParam = softKey.RefCallParam,
|
||||
RefCallLabel = softKey.RefCallLabel,
|
||||
OperatorConfirmationNeeded = softKey.OperatorConfirmationNeeded,
|
||||
Category = softKey.Category,
|
||||
Visible = softKey.IsVisible,
|
||||
Value = plcSoftKey.Value
|
||||
@@ -1071,6 +1080,9 @@ namespace Thermo.Active.NC
|
||||
Id = subkey.Id,
|
||||
Active = plcSoftKey.Active,
|
||||
Starred = softKey.IsStarred,
|
||||
RefCallParam = softKey.RefCallParam,
|
||||
RefCallLabel = softKey.RefCallLabel,
|
||||
OperatorConfirmationNeeded = softKey.OperatorConfirmationNeeded,
|
||||
Category = softKey.Category,
|
||||
Value = plcSoftKey.Value
|
||||
});
|
||||
@@ -1083,6 +1095,7 @@ namespace Thermo.Active.NC
|
||||
{
|
||||
Id = softKey.Id,
|
||||
Category = softKey.Category,
|
||||
OperatorConfirmationNeeded = softKey.OperatorConfirmationNeeded,
|
||||
Visible = softKey.IsVisible
|
||||
});
|
||||
}
|
||||
@@ -1098,6 +1111,9 @@ namespace Thermo.Active.NC
|
||||
Id = softKey.Id,
|
||||
Active = plcSoftKey.Active,
|
||||
Starred = softKey.IsStarred,
|
||||
RefCallParam = softKey.RefCallParam,
|
||||
RefCallLabel = softKey.RefCallLabel,
|
||||
OperatorConfirmationNeeded = softKey.OperatorConfirmationNeeded,
|
||||
Category = softKey.Category,
|
||||
Visible = softKey.IsVisible,
|
||||
Value = plcSoftKey.Value
|
||||
@@ -1127,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:
|
||||
@@ -1174,7 +1193,8 @@ namespace Thermo.Active.NC
|
||||
});
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
return libraryError;
|
||||
@@ -2289,11 +2309,14 @@ 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;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
bool changed = false;
|
||||
foreach (var item in recipeConfig)
|
||||
@@ -2323,13 +2346,22 @@ namespace Thermo.Active.NC
|
||||
// altrimenti controllo
|
||||
else
|
||||
{
|
||||
// se in errore --> registro...
|
||||
if (currRecipe[item.Label].Status.HasError)
|
||||
// se in errore AND visibile --> registro...
|
||||
bool checkCondition = false;
|
||||
#if DEBUG
|
||||
checkCondition = (currRecipe[item.Label].Status.HasError && currRecipe[item.Label].Status.Visible);
|
||||
#else
|
||||
checkCondition = (currRecipe[item.Label].Status.HasError);
|
||||
#endif
|
||||
// 2020.07.29 - controllo condizione secondo status debug/release...
|
||||
if (checkCondition)
|
||||
{
|
||||
currOverview[getRecipeSection(item.Category)] = RecipeCatStatus.HasError;
|
||||
}
|
||||
}
|
||||
}
|
||||
// salvo!
|
||||
NcFileAdapter.RecipeLiveData.RecipeOverview = currOverview;
|
||||
|
||||
// restituisco cod errore se trovato
|
||||
return libraryError;
|
||||
@@ -2583,7 +2615,7 @@ namespace Thermo.Active.NC
|
||||
// check div0!
|
||||
if (VUMin == 0)
|
||||
{
|
||||
VUMin = 1;
|
||||
VUMin = 230;
|
||||
}
|
||||
|
||||
// processo corrente minima!
|
||||
@@ -2595,7 +2627,7 @@ namespace Thermo.Active.NC
|
||||
minICh = 0;
|
||||
if (item.CalcIchMin)
|
||||
{
|
||||
calcPower = (item.NumResist - 1) + item.MaxPower + item.MaxPower / 2;
|
||||
calcPower = (item.NumResist - 1) * item.MaxPower + item.MaxPower / 2;
|
||||
minICh = (double)calcPower / VUMin;
|
||||
}
|
||||
newFloatTData.Add(item.IdChannel, minICh);
|
||||
|
||||
@@ -172,6 +172,7 @@ namespace Thermo.Active.Controllers.SignalR
|
||||
throw new HubException(libraryError.localizationKey);
|
||||
}
|
||||
|
||||
#if false
|
||||
[SignalRAuthorize(FunctionAccess = GENERAL, Action = ACTIONS.WRITE)]
|
||||
public void WriteM155Response(int process, double responseVal)
|
||||
{
|
||||
@@ -179,7 +180,8 @@ namespace Thermo.Active.Controllers.SignalR
|
||||
CmsError libraryError = ncAdapter.WriteM155Data(process, responseVal);
|
||||
if (libraryError.IsError())
|
||||
throw new HubException(libraryError.localizationKey);
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
[SignalRAuthorize(FunctionAccess = GENERAL, Action = ACTIONS.WRITE)]
|
||||
public void WriteScadaValue(string memIndex, SCADA_MEM_TYPE memType, object value)
|
||||
|
||||
@@ -161,7 +161,7 @@ namespace Thermo.Active.Controllers.WebApi
|
||||
libraryError = ncAdapter.ConfirmRecipeData(true);
|
||||
if (libraryError.IsError())
|
||||
{
|
||||
ThermoActiveLogger.LogError($"ConfirmEdit error | {libraryError.exception}");
|
||||
ThermoActiveLogger.LogError($"ConfirmEdit error | {libraryError.errorCode} | {libraryError.exception} | {libraryError.localizationKey}");
|
||||
return BadRequest(libraryError.localizationKey);
|
||||
}
|
||||
|
||||
|
||||
@@ -1,17 +1,17 @@
|
||||
mb_DiscesaCZ,CZ↓
|
||||
mb_MembDiscesaZ,Z↓
|
||||
mb_DiscesaCZ,↓ Cornice
|
||||
mb_MembDiscesaZ,↓ Controstampo
|
||||
mb_MembZ,Controstampo
|
||||
mb_Mod_MembSalitaZ,Z↑
|
||||
mb_Mod_AppoggioDiscesaW,W↓
|
||||
mb_Mod_MembSalitaZ,↑ Controstampo
|
||||
mb_Mod_AppoggioDiscesaW,↓ Stampo
|
||||
mb_Mod_RiscaldoInf,Riscaldo inferiore
|
||||
mb_Mod_RiscaldoSup,Riscaldo superiore
|
||||
mb_Mod_PirometroRisc,Pirometro riscaldo
|
||||
mb_Mod_DecompSustain,Decompressione/Sostentamento
|
||||
mb_Mod_Acrilico,Acrilico
|
||||
mb_Mod_RiscaldiIndietro,RS←
|
||||
mb_Mod_RiscaldiIndietro,← Riscaldi
|
||||
mb_Mod_ExtraR,Riscaldo superiore aggiuntivo
|
||||
mb_Mod_Imbutitura,Imbutitura
|
||||
mb_Mod_SalitaW,W↑
|
||||
mb_Mod_SalitaW,↑ Stampo
|
||||
mb_Mod_AttesaStampo,Attesa stampo
|
||||
mb_Mod_Raffreddamento,Raffreddamento
|
||||
mb_Mod_PirometroRaffr,Pirometro raffreddamento
|
||||
@@ -20,24 +20,24 @@ mb_Mod_VuotoDiretto,Vuoto diretto
|
||||
mb_Mod_VuotoAux,Vuoto ausiliario
|
||||
mb_Mod_Nebulizz,Nebulizzatori
|
||||
mb_Mod_AttesaPartenzaZ,Attesa partenza Z
|
||||
mb_Mod_DiscesaZ,Z↓
|
||||
mb_Mod_DiscesaZ,↓ Controstampo
|
||||
mb_Mod_Z,Controstampo basso
|
||||
mb_Mod_SalitaZ,Z↑
|
||||
mb_Mod_SalitaZ,↑ Controstampo
|
||||
mb_Mod_AriaZ,Aria controstampo
|
||||
mb_Mod_VuotoZ,Vuoto controstampo
|
||||
mb_Mod_ScaricoVuotoZ,Scarico vuoto controstampo
|
||||
mb_Mod_ScaricoVuoto,Scarico vuoto
|
||||
mb_Mod_EstrazioneZ,Estrazione controstampo
|
||||
mb_Mod_DiscesaAssistZ,Z↓
|
||||
mb_Mod_DiscesaAssistZ,↓ Controstampo
|
||||
mb_Mod_Estrazione,Estrazione
|
||||
mb_Mod_DiscesaW,W↓
|
||||
mb_Mod_RiscaldiIndietro2,RS←
|
||||
mb_Mod_SalitaCZ,CZ↑
|
||||
mb_Mod_DiscesaW,↓ Stampo
|
||||
mb_Mod_RiscaldiIndietro2,← Riscaldi
|
||||
mb_Mod_SalitaCZ,↑ Cornice
|
||||
mb_Mod_Riscaldi2,Secondo riscaldo
|
||||
mb_Mod_Estrazione_Aux_W,Estrazione ausiliaria
|
||||
mb_Mod_Attesa_Pirometro,Attesa pirometro
|
||||
mb_Mod_Prevuoto,Prevuoto
|
||||
mb_Mod_SalitaAssistZ,Z↑
|
||||
mb_Mod_SalitaAssistZ,↑ Controstampo
|
||||
general_sizes_mould_dim_x,Larghezza stampo
|
||||
general_sizes_mould_dim_y,Profondità stampo
|
||||
general_sizes_mould_max_height,Altezza massima stampo
|
||||
|
||||
@@ -78,10 +78,12 @@ namespace Thermo.Active.Listeners
|
||||
SignalRListener.SendPartProgramQueue(a);
|
||||
SignalRDatabaseHandler.UpdateQueue(a);
|
||||
}));
|
||||
#if false
|
||||
infos.Add(MessageServices.Current.Subscribe(SEND_M155_DATA, (a, b) =>
|
||||
{
|
||||
SignalRListener.SendM155Data(a);
|
||||
}));
|
||||
{
|
||||
SignalRListener.SendM155Data(a);
|
||||
}));
|
||||
#endif
|
||||
infos.Add(MessageServices.Current.Subscribe(SEND_SCADA_DATA, (a, b) =>
|
||||
{
|
||||
SignalRListener.SendScadaData(a);
|
||||
|
||||
@@ -226,6 +226,7 @@ namespace Thermo.Active.Listeners.SignalR
|
||||
}
|
||||
}
|
||||
|
||||
#if false
|
||||
public static void SendM155Data(object data)
|
||||
{
|
||||
List<DTOM155InputModel> dtoM155Data = data as List<DTOM155InputModel>;
|
||||
@@ -236,7 +237,8 @@ namespace Thermo.Active.Listeners.SignalR
|
||||
var context = GlobalHost.ConnectionManager.GetHubContext<NcHub>();
|
||||
context.Clients.Group("ncData").m155Data(dtoM155Data);
|
||||
}
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
public static void SendScadaData(object scada)
|
||||
{
|
||||
@@ -512,8 +514,10 @@ namespace Thermo.Active.Listeners.SignalR
|
||||
group.magazineIsActive(LastNcMagazineIsActive);
|
||||
// Send PP Queue
|
||||
group.partProgramQueue(LastPartProgramQueue);
|
||||
#if false
|
||||
// Send m155 data
|
||||
group.m155Data(LastM155Data);
|
||||
group.m155Data(LastM155Data);
|
||||
#endif
|
||||
// Send Scada
|
||||
group.scadaData(LastScadaData);
|
||||
|
||||
|
||||
@@ -27,7 +27,9 @@ namespace Thermo.Active.Listeners
|
||||
public static DTOActiveProgramDataModel LastProgramData = new DTOActiveProgramDataModel();
|
||||
public static Dictionary<int, bool> LastNcMagazineIsActive = new Dictionary<int, bool>();
|
||||
public static List<DTOQueueModel> LastPartProgramQueue = new List<DTOQueueModel>();
|
||||
public static List<DTOM155InputModel> LastM155Data = new List<DTOM155InputModel>();
|
||||
#if false
|
||||
public static List<DTOM155InputModel> LastM155Data = new List<DTOM155InputModel>();
|
||||
#endif
|
||||
public static List<DTOScadaModel> LastScadaData = new List<DTOScadaModel>();
|
||||
|
||||
// FIXME TODO inserire oggetti corretti per THERMO
|
||||
|
||||
@@ -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.9.46")]
|
||||
[assembly: AssemblyVersion("0.11.62")]
|
||||
@@ -0,0 +1,81 @@
|
||||
# Script di installazione in macchina zip dell'ultima release di ThermoActive
|
||||
|
||||
# Check parameters
|
||||
Param (
|
||||
[Parameter(Mandatory=$True)]
|
||||
[ValidateNotNull()]
|
||||
$zipPath
|
||||
)
|
||||
|
||||
# recupera timestamp x logging
|
||||
function Get-TimeStamp
|
||||
{
|
||||
return "[{0:MM/dd/yy} {0:HH:mm:ss}]" -f (Get-Date)
|
||||
}
|
||||
# registra log!
|
||||
function DoLog($txt2log)
|
||||
{
|
||||
Write-Output "$(Get-TimeStamp) $txt2log" | Out-File c:\tmp\Script.log -Append
|
||||
}
|
||||
|
||||
function checkFolder($dirPath)
|
||||
{
|
||||
if(!(Test-Path -path $dirPath))
|
||||
{
|
||||
New-Item -ItemType directory -Path $dirPath
|
||||
DoLog("Folder path has been created successfully at $dirPath")
|
||||
}
|
||||
}
|
||||
|
||||
Write-Output "-------------------------------- START script --------------------------------" | Out-File c:\tmp\Script.log
|
||||
$StopWatch = New-Object System.Diagnostics.Stopwatch
|
||||
$StopWatch.Start()
|
||||
|
||||
# directory di base
|
||||
$BaseDir = "C:\CMS"
|
||||
$ArchiveDir = "$BaseDir\Archive"
|
||||
$BackupDir = "$BaseDir\Backup"
|
||||
$ConfDir = "$BaseDir\Conf"
|
||||
$LogDir = "$BaseDir\Logs"
|
||||
$UnzipDir = "$BaseDir\Unzip"
|
||||
$ProgramDir = "$BaseDir\ThermoActive"
|
||||
|
||||
$adesso = Get-Date -Format "yyyy.MM.dd_HH.mm"
|
||||
|
||||
# mi sposto in Dir di base
|
||||
cd $BaseDir
|
||||
|
||||
# creo se non ci fosse dir varie
|
||||
checkFolder($BaseDir)
|
||||
checkFolder($ArchiveDir)
|
||||
checkFolder($BackupDir)
|
||||
checkFolder($ConfDir)
|
||||
checkFolder($LogDir)
|
||||
checkFolder($UnzipDir)
|
||||
checkFolder($ProgramDir)
|
||||
|
||||
# Salvo CONF varie
|
||||
robocopy $ProgramDir"\Config\" $BackupDir"\Config\" /MIR /Z /LOG:$LogDir"\Config.1.log"
|
||||
robocopy $ProgramDir"\Dict\" $BackupDir"\Dict\" /MIR /Z /LOG:$LogDir"\Dict.1.log"
|
||||
robocopy $ProgramDir"\Recipes\" $BackupDir"\Recipes\" /MIR /Z /LOG:$LogDir"\Recipes.1.log"
|
||||
robocopy $ProgramDir"\TMP\" $BackupDir"\TMP\" /MIR /Z /LOG:$LogDir"\Tmp.1.log"
|
||||
|
||||
# Move versione attuale
|
||||
Move-Item -Path $ProgramDir -Destination $ArchiveDir"\ThermoActive_$adesso"
|
||||
|
||||
# Faccio unzip NUOVA versione
|
||||
Expand-Archive -Path $zipPath -DestinationPath $UnzipDir -Force
|
||||
|
||||
# Move da ZIP a program
|
||||
Move-Item -Path $UnzipDir -Destination $ProgramDir
|
||||
#robocopy $UnzipDir $ProgramDir /MIR /Z /LOG:$LogDir+"Newversion.log" /XD "Config Dict Recipes"
|
||||
|
||||
# Ripristino CONF
|
||||
robocopy $BackupDir"\Config\" $ProgramDir"\Config\" /MIR /Z /LOG:$LogDir"\Config.2.log"
|
||||
robocopy $BackupDir"\Dict\" $ProgramDir"\Dict\" /MIR /Z /LOG:$LogDir"\Dict.2.log"
|
||||
robocopy $BackupDir"\Recipes\" $ProgramDir"\Recipes\" /MIR /Z /LOG:$LogDir"\Recipes.2.log"
|
||||
robocopy $BackupDir"\TMP\" $ProgramDir"\TMP\" /MIR /Z /LOG:$LogDir"\Tmp.2.log"
|
||||
|
||||
$StopWatch.Stop()
|
||||
$StopWatch.Elapsed | Out-File $LogDir"\Install.log" -Append
|
||||
DoLog("-------------------------------- END script --------------------------------")
|
||||
@@ -11,7 +11,8 @@ Param (
|
||||
$npmInstall,
|
||||
[Parameter(Mandatory=$True)]
|
||||
[ValidateNotNull()]
|
||||
$npmBuild,[Parameter(Mandatory=$True)]
|
||||
$npmBuild,
|
||||
[Parameter(Mandatory=$True)]
|
||||
[ValidateNotNull()]
|
||||
$version
|
||||
)
|
||||
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 962 B |
@@ -337,6 +337,8 @@ button.soft {
|
||||
.togglebutton {
|
||||
vertical-align: middle;
|
||||
-webkit-tap-highlight-color: transparent;
|
||||
|
||||
|
||||
}
|
||||
|
||||
.togglebutton,
|
||||
@@ -374,6 +376,11 @@ fieldset[disabled] .form-group.is-focused .togglebutton label {
|
||||
.togglebutton label .toggle {
|
||||
text-align: left;
|
||||
margin-left: 5px;
|
||||
|
||||
&.error {
|
||||
background-color: rgba(255, 0, 0, .7);
|
||||
color: #222;
|
||||
}
|
||||
}
|
||||
|
||||
.togglebutton label .toggle,
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
width: 100%;
|
||||
background-image: url("../../assets/icons/png/bg.png");
|
||||
position: fixed;
|
||||
z-index: 1001;
|
||||
z-index: 1002;
|
||||
display: grid;
|
||||
grid-template-rows: 144px 1fr;
|
||||
grid-template-columns: 152px 1fr 610px 1fr 152px;
|
||||
|
||||
@@ -156,6 +156,10 @@
|
||||
align-items: center;
|
||||
-webkit-user-select: none;
|
||||
|
||||
&.prioritize {
|
||||
z-index: 9000;
|
||||
}
|
||||
|
||||
button {
|
||||
font-size: 28px;
|
||||
justify-content: center;
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
@@ -9,24 +9,27 @@
|
||||
right: 0;
|
||||
bottom: 80px;
|
||||
overflow: visible;
|
||||
z-index: 100;
|
||||
background-color: #ddd;
|
||||
width: 1360px;
|
||||
box-shadow: 2px 10px 15px 0 rgba(0, 0, 0, 0.5);
|
||||
box-shadow: none;
|
||||
transform: translateX(1360px);
|
||||
transition: transform .3s ease-in-out;
|
||||
transition: transform .3s .2s ease-in-out,box-shadow .3s linear;
|
||||
display: flex;
|
||||
align-items: stretch;
|
||||
justify-content: flex-start;
|
||||
z-index: 1100;
|
||||
z-index: 1001;
|
||||
|
||||
|
||||
&.open-full {
|
||||
transform: translateX(0);
|
||||
box-shadow: 2px 10px 15px 0 rgba(0, 0, 0, 0.5);
|
||||
transition: transform .1s ease-in-out,box-shadow .3s .1s linear;
|
||||
}
|
||||
|
||||
&.open-half {
|
||||
transform: translateX(680px);
|
||||
box-shadow: 2px 10px 15px 0 rgba(0, 0, 0, 0.5);
|
||||
transition: transform .1s ease-in-out,box-shadow .3s .1s linear;
|
||||
}
|
||||
|
||||
.paddleButton {
|
||||
@@ -127,7 +130,7 @@
|
||||
width: 100%;
|
||||
height: 100px;
|
||||
border-radius: 2px;
|
||||
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.5);
|
||||
box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.4);
|
||||
background-color: #808e96;
|
||||
cursor: pointer;
|
||||
color: #fff;
|
||||
@@ -141,6 +144,26 @@
|
||||
justify-content: center;
|
||||
padding: 1rem;
|
||||
box-sizing: border-box;
|
||||
border: none;
|
||||
position: relative;
|
||||
|
||||
&.active {
|
||||
box-shadow: inset 0px 0px 0px 3px #1791ff;
|
||||
&[disabled]::after{
|
||||
box-shadow: inset 0px 0px 0px 3px #1791ff !important;
|
||||
}
|
||||
}
|
||||
|
||||
&[disabled]::after{
|
||||
top:0;
|
||||
left: 0;
|
||||
position: absolute;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
background-color: #aaaaaaaa;
|
||||
content: "";
|
||||
}
|
||||
|
||||
|
||||
button.configure {
|
||||
position: absolute;
|
||||
@@ -153,6 +176,55 @@
|
||||
color: @color-darkish-blue;
|
||||
background: #fff;
|
||||
}
|
||||
|
||||
&.pressed:active,
|
||||
&:active {
|
||||
background-color: #57636b;
|
||||
}
|
||||
}
|
||||
|
||||
.starred-softkey {
|
||||
box-sizing: border-box;
|
||||
border-radius: 2px;
|
||||
margin: 0 8px;
|
||||
text-align: center;
|
||||
font-size: 18px;
|
||||
font-weight: bold;
|
||||
box-shadow: none;
|
||||
padding: 0 20px;
|
||||
border: none;
|
||||
position: relative;
|
||||
background-image: linear-gradient(to bottom, @color-white2, @color-silver) !important;
|
||||
|
||||
&.pressed:active,
|
||||
&:active {
|
||||
background-image: linear-gradient(to bottom, @color-silver, @color-white2) !important;
|
||||
}
|
||||
&.pressed {
|
||||
background-image: linear-gradient(to bottom, @color-silver, @color-white2) !important;
|
||||
}
|
||||
|
||||
&.active {
|
||||
box-shadow: inset 0px 0px 0px 3px #1791ff !important;
|
||||
&[disabled]::after{
|
||||
box-shadow: inset 0px 0px 0px 3px #1791ff !important;
|
||||
}
|
||||
}
|
||||
|
||||
img{
|
||||
-webkit-user-drag: none;
|
||||
}
|
||||
|
||||
|
||||
&[disabled]::after{
|
||||
top:0;
|
||||
left: 0;
|
||||
position: absolute;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
background-color: #aaaaaaaa;
|
||||
content: "";
|
||||
}
|
||||
}
|
||||
|
||||
.box-softkeys-prefered-footer {
|
||||
|
||||
@@ -119,6 +119,9 @@
|
||||
color: @color-green;
|
||||
}
|
||||
|
||||
.black{
|
||||
color: #4b4b4b;
|
||||
}
|
||||
.content.READY,
|
||||
.status.READY{
|
||||
color: @color-clear-blue;
|
||||
|
||||
@@ -21,9 +21,11 @@
|
||||
|
||||
.tab-header {
|
||||
width: 70%;
|
||||
display: flex;
|
||||
display: grid;
|
||||
grid-template-columns: repeat(auto-fit, minmax(160px, 200px));
|
||||
align-items: center;
|
||||
justify-content: space-evenly;
|
||||
justify-content: flex-end;
|
||||
grid-column-gap: 10px;
|
||||
|
||||
button {
|
||||
border: none;
|
||||
@@ -45,6 +47,7 @@
|
||||
}
|
||||
|
||||
label {
|
||||
justify-self: flex-end;
|
||||
font-size: 32px;
|
||||
line-height: 1;
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
@@ -4132,7 +4157,7 @@ article .box .body {
|
||||
width: 100%;
|
||||
background-image: url("../../assets/icons/png/bg.png");
|
||||
position: fixed;
|
||||
z-index: 1001;
|
||||
z-index: 1002;
|
||||
display: grid;
|
||||
grid-template-rows: 144px 1fr;
|
||||
grid-template-columns: 152px 1fr 610px 1fr 152px;
|
||||
@@ -4759,22 +4784,25 @@ article .box .body {
|
||||
right: 0;
|
||||
bottom: 80px;
|
||||
overflow: visible;
|
||||
z-index: 100;
|
||||
background-color: #ddd;
|
||||
width: 1360px;
|
||||
box-shadow: 2px 10px 15px 0 rgba(0, 0, 0, 0.5);
|
||||
box-shadow: none;
|
||||
transform: translateX(1360px);
|
||||
transition: transform 0.3s ease-in-out;
|
||||
transition: transform 0.3s 0.2s ease-in-out, box-shadow 0.3s linear;
|
||||
display: flex;
|
||||
align-items: stretch;
|
||||
justify-content: flex-start;
|
||||
z-index: 1100;
|
||||
z-index: 1001;
|
||||
}
|
||||
.paddle.open-full {
|
||||
transform: translateX(0);
|
||||
box-shadow: 2px 10px 15px 0 rgba(0, 0, 0, 0.5);
|
||||
transition: transform 0.1s ease-in-out, box-shadow 0.3s 0.1s linear;
|
||||
}
|
||||
.paddle.open-half {
|
||||
transform: translateX(680px);
|
||||
box-shadow: 2px 10px 15px 0 rgba(0, 0, 0, 0.5);
|
||||
transition: transform 0.1s ease-in-out, box-shadow 0.3s 0.1s linear;
|
||||
}
|
||||
.paddle .paddleButton {
|
||||
width: 40px;
|
||||
@@ -4852,20 +4880,36 @@ article .box .body {
|
||||
width: 100%;
|
||||
height: 100px;
|
||||
border-radius: 2px;
|
||||
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.5);
|
||||
box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.4);
|
||||
background-color: #808e96;
|
||||
cursor: pointer;
|
||||
color: #fff;
|
||||
font-size: 18px;
|
||||
font-weight: 500;
|
||||
display: grid;
|
||||
position: relative;
|
||||
grid-template-columns: auto 1fr;
|
||||
grid-column-gap: 10px;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
padding: 1rem;
|
||||
box-sizing: border-box;
|
||||
border: none;
|
||||
position: relative;
|
||||
}
|
||||
.softkey.active {
|
||||
box-shadow: inset 0px 0px 0px 3px #1791ff;
|
||||
}
|
||||
.softkey.active[disabled]::after {
|
||||
box-shadow: inset 0px 0px 0px 3px #1791ff !important;
|
||||
}
|
||||
.softkey[disabled]::after {
|
||||
top: 0;
|
||||
left: 0;
|
||||
position: absolute;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
background-color: #aaaaaaaa;
|
||||
content: "";
|
||||
}
|
||||
.softkey button.configure {
|
||||
position: absolute;
|
||||
@@ -4878,6 +4922,48 @@ article .box .body {
|
||||
color: #002680;
|
||||
background: #fff;
|
||||
}
|
||||
.softkey.pressed:active,
|
||||
.softkey:active {
|
||||
background-color: #57636b;
|
||||
}
|
||||
.starred-softkey {
|
||||
box-sizing: border-box;
|
||||
border-radius: 2px;
|
||||
margin: 0 8px;
|
||||
text-align: center;
|
||||
font-size: 18px;
|
||||
font-weight: bold;
|
||||
box-shadow: none;
|
||||
padding: 0 20px;
|
||||
border: none;
|
||||
position: relative;
|
||||
background-image: linear-gradient(to bottom, #f1f1f1, #bbbcbc) !important;
|
||||
}
|
||||
.starred-softkey.pressed:active,
|
||||
.starred-softkey:active {
|
||||
background-image: linear-gradient(to bottom, #bbbcbc, #f1f1f1) !important;
|
||||
}
|
||||
.starred-softkey.pressed {
|
||||
background-image: linear-gradient(to bottom, #bbbcbc, #f1f1f1) !important;
|
||||
}
|
||||
.starred-softkey.active {
|
||||
box-shadow: inset 0px 0px 0px 3px #1791ff !important;
|
||||
}
|
||||
.starred-softkey.active[disabled]::after {
|
||||
box-shadow: inset 0px 0px 0px 3px #1791ff !important;
|
||||
}
|
||||
.starred-softkey img {
|
||||
-webkit-user-drag: none;
|
||||
}
|
||||
.starred-softkey[disabled]::after {
|
||||
top: 0;
|
||||
left: 0;
|
||||
position: absolute;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
background-color: #aaaaaaaa;
|
||||
content: "";
|
||||
}
|
||||
.box-softkeys-prefered-footer {
|
||||
height: 65px;
|
||||
display: flex;
|
||||
@@ -4966,9 +5052,11 @@ article .box .body {
|
||||
}
|
||||
.modal.processo-info header .tab-header {
|
||||
width: 70%;
|
||||
display: flex;
|
||||
display: grid;
|
||||
grid-template-columns: repeat(auto-fit, minmax(160px, 200px));
|
||||
align-items: center;
|
||||
justify-content: space-evenly;
|
||||
justify-content: flex-end;
|
||||
grid-column-gap: 10px;
|
||||
}
|
||||
.modal.processo-info header .tab-header button {
|
||||
border: none;
|
||||
@@ -4987,6 +5075,7 @@ article .box .body {
|
||||
margin: auto;
|
||||
}
|
||||
.modal.processo-info header .tab-header label {
|
||||
justify-self: flex-end;
|
||||
font-size: 32px;
|
||||
line-height: 1;
|
||||
}
|
||||
@@ -5433,6 +5522,7 @@ select:focus {
|
||||
flex-flow: row;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
max-width: 472px;
|
||||
}
|
||||
.input-area.grid {
|
||||
display: grid;
|
||||
@@ -5494,6 +5584,7 @@ select:focus {
|
||||
color: #002680;
|
||||
font-size: 24px;
|
||||
font-weight: 500;
|
||||
overflow: hidden;
|
||||
}
|
||||
.input-area .numeric {
|
||||
font-size: 18px;
|
||||
@@ -5887,6 +5978,10 @@ fieldset[disabled] .form-group.is-focused .togglebutton label {
|
||||
text-align: left;
|
||||
margin-left: 5px;
|
||||
}
|
||||
.togglebutton label .toggle.error {
|
||||
background-color: rgba(255, 0, 0, 0.7);
|
||||
color: #222;
|
||||
}
|
||||
.togglebutton label .toggle,
|
||||
.togglebutton label input[type=checkbox][disabled] + .toggle {
|
||||
content: "";
|
||||
@@ -6204,6 +6299,9 @@ fieldset[disabled] .form-group.is-focused .togglebutton label {
|
||||
display: flex;
|
||||
padding-right: 8px !important;
|
||||
}
|
||||
.window-buttons.prioritize {
|
||||
z-index: 9000;
|
||||
}
|
||||
.window-buttons button {
|
||||
font-size: 28px;
|
||||
justify-content: center;
|
||||
@@ -6701,6 +6799,9 @@ footer .container button.big:before {
|
||||
.process-info .status.RUN {
|
||||
color: #7ed321;
|
||||
}
|
||||
.process-info .black {
|
||||
color: #4b4b4b;
|
||||
}
|
||||
.process-info .content.READY,
|
||||
.process-info .status.READY {
|
||||
color: #1791ff;
|
||||
|
||||
@@ -19,13 +19,11 @@
|
||||
</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>
|
||||
|
||||
</body>
|
||||
|
||||
</html>
|
||||
Generated
+2681
-2661
File diff suppressed because it is too large
Load Diff
@@ -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"
|
||||
|
||||
@@ -12,6 +12,7 @@ declare module Recipe {
|
||||
}
|
||||
|
||||
interface IValue {
|
||||
key?: string,
|
||||
range: IRange,
|
||||
status: IStatus,
|
||||
unitMeasure: string,
|
||||
|
||||
@@ -56,6 +56,7 @@ export default class app extends Vue {
|
||||
loadingOperations = 0;
|
||||
HMIsrc = null;
|
||||
hub: Hub = null;
|
||||
prioritizeWindowsButtons = false;
|
||||
|
||||
beforeMount() {
|
||||
moment.locale((window.navigator as any).userLanguage || window.navigator.language);
|
||||
@@ -73,10 +74,12 @@ export default class app extends Vue {
|
||||
|
||||
ms.subscribeToChannel("show-modal-login", args => {
|
||||
this.applyBlur = true;
|
||||
this.prioritizeWindowsButtons = true;
|
||||
});
|
||||
|
||||
ms.subscribeToChannel("hide-modal-login", args => {
|
||||
this.applyBlur = false;
|
||||
this.prioritizeWindowsButtons = false;
|
||||
});
|
||||
|
||||
ms.subscribeToChannel("hide-modal", args => {
|
||||
|
||||
@@ -21,8 +21,8 @@
|
||||
</div>
|
||||
<modal-container containerName="modal-login" name="modal-login"></modal-container>
|
||||
<keyboard></keyboard>
|
||||
<modal-container name="modal"></modal-container>
|
||||
<div class="window-buttons">
|
||||
|
||||
<div class="window-buttons" :class="{prioritize: prioritizeWindowsButtons}">
|
||||
<button
|
||||
class="gray square close"
|
||||
@click="sendMessage('hide')"
|
||||
@@ -34,6 +34,7 @@
|
||||
:title="'header_tooltip_btn_close' | localize('Close the application')"
|
||||
>×</button>
|
||||
</div>
|
||||
<modal-container name="modal"></modal-container>
|
||||
</div>
|
||||
</template>
|
||||
<script src="./App.ts" lang="ts"></script>
|
||||
|
||||
@@ -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());
|
||||
|
||||
}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<template>
|
||||
<div class="combo">
|
||||
<div class="form" @click="showList">
|
||||
<div class="form" @click="showList" :class="{'error': value.status && value.status.hasError}">
|
||||
{{currentValue}}
|
||||
<i v-if="opened" class="fa fa-chevron-up" />
|
||||
<i v-else class="fa fa-chevron-down" />
|
||||
@@ -36,7 +36,7 @@
|
||||
font-size: 18px;
|
||||
font-weight: 500;
|
||||
color: #6d6d6d;
|
||||
min-width: 80px;
|
||||
min-width: 200px;
|
||||
width: fit-content;
|
||||
|
||||
height: 48px;
|
||||
@@ -53,6 +53,10 @@
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.combo .form.error {
|
||||
outline: 2px red auto;
|
||||
}
|
||||
|
||||
.combo .form i {
|
||||
position: absolute;
|
||||
right: 4px;
|
||||
|
||||
@@ -5,6 +5,7 @@ import { dataService } from "@/services/dataService";
|
||||
import { store, MachineStatusModel } from "@/store";
|
||||
import { SoftKeysConfigurationModel, machineInfoStore } from "@/store/machineInfo.store";
|
||||
import { Hub, machineService } from "@/services";
|
||||
import { Watch } from "vue-property-decorator";
|
||||
|
||||
@Component({
|
||||
components: { softKey }
|
||||
@@ -58,6 +59,11 @@ export default class Paddle extends Vue {
|
||||
}
|
||||
|
||||
async mounted() {
|
||||
this.loadData();
|
||||
}
|
||||
|
||||
@Watch("isOpen")
|
||||
async loadData() {
|
||||
await dataService.GetSoftKeysConfiguration();
|
||||
await dataService.GetUserSoftkeyFavorite();
|
||||
}
|
||||
|
||||
@@ -22,6 +22,7 @@
|
||||
@toggleFavourite="toggleFavourite(b.id, false)"
|
||||
v-model="getSoftKeyStatus(b.id).value"
|
||||
:active="getSoftKeyStatus(b.id).active"
|
||||
:value="getSoftKeyStatus(b.id).value"
|
||||
:isFavourite="true"
|
||||
@click="softKeyChanged(b.id, b.operatorConfirmationNeeded)"
|
||||
@checkChanged="softKeyChanged(b.id, b.operatorConfirmationNeeded)"
|
||||
@@ -55,6 +56,7 @@
|
||||
<template v-for="(b,idx) in allSoftKeys">
|
||||
<soft-key
|
||||
v-if="getSoftKeyStatus(b.id) && getSoftKeyStatus(b.id).visible"
|
||||
:id="b.id"
|
||||
:key="idx"
|
||||
:title="'softkey_' + b.id | localize('softkey_' + b.id)"
|
||||
:type="b.type"
|
||||
@@ -62,6 +64,7 @@
|
||||
@toggleFavourite="toggleFavourite(b.id, !isFavourite(b.id))"
|
||||
v-model="getSoftKeyStatus(b.id).value"
|
||||
:active="getSoftKeyStatus(b.id).active"
|
||||
:value="getSoftKeyStatus(b.id).value"
|
||||
:isFavourite="isFavourite(b.id)"
|
||||
@click="softKeyChanged(b.id, b.operatorConfirmationNeeded)"
|
||||
@checkChanged="softKeyChanged(b.id, b.operatorConfirmationNeeded)"
|
||||
|
||||
@@ -18,11 +18,18 @@ export default class SoftKey extends Vue {
|
||||
@Prop({ default: false })
|
||||
configMode: boolean;
|
||||
|
||||
@Prop({ default: false })
|
||||
active: boolean;
|
||||
|
||||
@Prop({ default: false })
|
||||
isFavourite: boolean;
|
||||
|
||||
@Prop({ default: null })
|
||||
id: number;
|
||||
|
||||
doclick() {
|
||||
if (!this.configMode && this.type != 0) this.$emit('click');
|
||||
if (this.configMode) this.$emit('toggleFavourite');
|
||||
}
|
||||
|
||||
get Checked() { return this.value; }
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
<template>
|
||||
<div class="softkey" @click="doclick()">
|
||||
<button class="softkey" @click="doclick()" :disabled="!active && !configMode" :class="{ active: (value && type==1 && !configMode)}">
|
||||
<button class="configure" v-if="configMode" @click.prevent.stop="$emit('toggleFavourite')">
|
||||
<i class="fa fa-plus" v-if="!isFavourite"></i>
|
||||
<i class="fa fa-minus" v-if="isFavourite"></i>
|
||||
</button>
|
||||
<toggle-button v-if="type==0" v-model="Checked"></toggle-button>
|
||||
{{title}}
|
||||
</div>
|
||||
</button>
|
||||
</template>
|
||||
<script src="./softkey.ts" lang="ts"></script>
|
||||
@@ -2,6 +2,7 @@ import Vue from "vue";
|
||||
import Component from "vue-class-component";
|
||||
import { Prop } from 'vue-property-decorator';
|
||||
import { debounce } from "@/_base/debounce";
|
||||
import { Hub } from "@/services";
|
||||
@Component({ name: "slider" })
|
||||
export default class Slider extends Vue {
|
||||
|
||||
@@ -21,6 +22,10 @@ export default class Slider extends Vue {
|
||||
return this.value.setpointHMI;
|
||||
}
|
||||
|
||||
get softKey() {
|
||||
return this.$store.getters.getSoftKeyByRef(this.value.key);
|
||||
}
|
||||
|
||||
set actualvalue(v: number) {
|
||||
this.debouncedActualValue(v)
|
||||
}
|
||||
@@ -28,9 +33,10 @@ export default class Slider extends Vue {
|
||||
debouncedActualValue = debounce((v: number) => this.value.setpointHMI = v, 200);
|
||||
|
||||
get step() {
|
||||
var s = ((this.value.range.max - this.value.range.min) / (this.lines + 1));
|
||||
var m = Math.pow(10, this.decimal);
|
||||
return Math.round(s * m) / m
|
||||
// var s = ((this.value.range.max - this.value.range.min) / (this.lines + 1));
|
||||
// var m = Math.pow(10, this.decimal);
|
||||
// return Math.round(s * m) / m
|
||||
return 1;
|
||||
};
|
||||
|
||||
increment() {
|
||||
@@ -38,7 +44,7 @@ export default class Slider extends Vue {
|
||||
|
||||
var v = this.value.setpointHMI;
|
||||
if (v < this.value.range.max) {
|
||||
v -= (-this.step);
|
||||
v += this.step;
|
||||
}
|
||||
if (v > this.value.range.max) {
|
||||
v = this.value.range.max;
|
||||
@@ -59,6 +65,9 @@ export default class Slider extends Vue {
|
||||
this.actualvalue = v;
|
||||
};
|
||||
|
||||
doSoftKeyClick() {
|
||||
Hub.Current.sendUserSoftKey(this.softKey.id);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -1,29 +1,44 @@
|
||||
<template>
|
||||
<div class="slider">
|
||||
<button @click="decrement()">
|
||||
<img src="assets/icons/png/min.png" />
|
||||
</button>
|
||||
<div class="control">
|
||||
<input
|
||||
:disabled="!this.value.status.enabled"
|
||||
:min="this.value.range.min"
|
||||
:max="this.value.range.max"
|
||||
v-model.number="actualvalue"
|
||||
type="range"
|
||||
/>
|
||||
<div class="lines">
|
||||
<span v-for="iter in lines" :key="iter" class="line"></span>
|
||||
</div>
|
||||
<div class="labels">
|
||||
<small>{{`${this.value.range.min} ${this.value.unitMeasure}`}}</small>
|
||||
<small>{{`${(this.value.range.max - this.value.range.min) / 2 + this.value.range.min} ${this.value.unitMeasure}`}}</small>
|
||||
<small>{{`${this.value.range.max} ${this.value.unitMeasure}`}}</small>
|
||||
<div class="slider-container">
|
||||
<div class="slider">
|
||||
<button @click="decrement()">
|
||||
<img src="assets/icons/png/min.png" />
|
||||
</button>
|
||||
<div class="control">
|
||||
<input
|
||||
:disabled="!this.value.status.enabled"
|
||||
:min="this.value.range.min"
|
||||
:max="this.value.range.max"
|
||||
v-model.number="actualvalue"
|
||||
type="range"
|
||||
/>
|
||||
<div class="lines">
|
||||
<span v-for="iter in lines" :key="iter" class="line"></span>
|
||||
</div>
|
||||
<div class="labels">
|
||||
<small>{{`${this.value.range.min} ${this.value.unitMeasure}`}}</small>
|
||||
<small>{{`${(this.value.range.max - this.value.range.min) / 2 + this.value.range.min} ${this.value.unitMeasure}`}}</small>
|
||||
<small>{{`${this.value.range.max} ${this.value.unitMeasure}`}}</small>
|
||||
</div>
|
||||
</div>
|
||||
<button @click="increment()">
|
||||
<img src="assets/icons/png/max.png" />
|
||||
</button>
|
||||
</div>
|
||||
<button @click="increment()">
|
||||
<img src="assets/icons/png/max.png" />
|
||||
</button>
|
||||
<button
|
||||
class="submit"
|
||||
v-if="softKey"
|
||||
@click="doSoftKeyClick()"
|
||||
>{{softKey.refCallLabel | localize(softKey.refCallLabel)}}</button>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<style scoped>
|
||||
.slider-container {
|
||||
display: grid;
|
||||
grid-row-gap: 1rem;
|
||||
flex-flow: column;
|
||||
justify-items: center;
|
||||
width: 100%;
|
||||
}
|
||||
</style>
|
||||
<script lang="ts" src="./slider.ts"></script>
|
||||
@@ -86,7 +86,7 @@ export default class Dashboard extends Vue {
|
||||
|
||||
|
||||
async mounted() {
|
||||
await prodService.GetProdPanel();
|
||||
prodService.GetProdPanel();
|
||||
|
||||
let $this = this;
|
||||
setInterval(() => {
|
||||
|
||||
+22
-2
@@ -1,6 +1,6 @@
|
||||
import Component from "vue-class-component";
|
||||
import Vue from "vue";
|
||||
import { Prop, InjectReactive } from "vue-property-decorator";
|
||||
import { Prop, InjectReactive, Watch } from "vue-property-decorator";
|
||||
import { IGanttOptions } from "./gantt";
|
||||
import block from "./gantt-component.vue";
|
||||
import { relativeTimeRounding } from "moment";
|
||||
@@ -36,6 +36,17 @@ export default class GanttRow extends Vue {
|
||||
return blockStartPosition(block, this.blocks, this.ganttOptions) * this.ganttOptions.secondSize;
|
||||
}
|
||||
|
||||
get ActiveBlocks() {
|
||||
return this.blocksInSection.filter(i => !i.terminated);
|
||||
}
|
||||
|
||||
@Watch('ActiveBlocks')
|
||||
firstActiveBlockChanged(n, o) {
|
||||
if (n && n != o) {
|
||||
this.$emit('firstBlockChanged', this.$el.getBoundingClientRect().top, Math.min(...this.ActiveBlocks.map(i => this.verticalPosition(i))));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/*
|
||||
Questa funzione calcola la posizione verticale di ogni blocco seguendo l'ordine dei blocchi ed utilizza
|
||||
@@ -71,7 +82,16 @@ export default class GanttRow extends Vue {
|
||||
get rowHeight() {
|
||||
let result = Math.max(...this.blocksInSection.map(b => this.verticalPosition(b) + this.ganttOptions.elementHeight + this.ganttOptions.elementPadding * 2)) * this.zoomFactor;
|
||||
if (!Number.isNaN(result) && Number.isFinite(result)) return result;
|
||||
return 0;
|
||||
return 10;
|
||||
}
|
||||
|
||||
@Watch("rowHeight")
|
||||
rowHeightChanged(n, o) {
|
||||
if (n != o) this.$emit("heightChanged");
|
||||
}
|
||||
|
||||
mounted() {
|
||||
this.rowHeightChanged(0, this.rowHeight);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+19
-13
@@ -1,18 +1,24 @@
|
||||
<template>
|
||||
<g class="gantt-row" :transform="`translate(0 ${paddingVertical})`">
|
||||
<g
|
||||
:transform="`translate(${ganttOptions.stepDuration * ganttOptions.secondSize + paddingHorizontal} 0) scale(${zoomFactor} ${zoomFactor})`"
|
||||
>
|
||||
<template v-for="b in blocksInSection.filter( i=> i.visible)">
|
||||
<block
|
||||
:key="b.id"
|
||||
:value="b"
|
||||
:x="startPosition(b)"
|
||||
:y="verticalPosition(b) + ganttOptions.elementPadding"
|
||||
stroke="#999"
|
||||
stroke-width="2"
|
||||
/>
|
||||
</template>
|
||||
<g>
|
||||
<rect x="0" y="0" width="100%" :height="rowHeight" class="background"></rect>
|
||||
</g>
|
||||
<g :transform="`scale(${zoomFactor} ${zoomFactor})`">
|
||||
<g
|
||||
class="pad"
|
||||
:transform="`translate(${ganttOptions.stepDuration * ganttOptions.secondSize + paddingHorizontal} 0)`"
|
||||
>
|
||||
<template v-for="b in blocksInSection.filter( i=> i.visible)">
|
||||
<block
|
||||
:key="b.id"
|
||||
:value="b"
|
||||
:x="startPosition(b)"
|
||||
:y="verticalPosition(b) + ganttOptions.elementPadding"
|
||||
stroke="#999"
|
||||
stroke-width="2"
|
||||
/>
|
||||
</template>
|
||||
</g>
|
||||
</g>
|
||||
<g>
|
||||
<rect x="0" y="0" width="25" :height="rowHeight " fill="#cfcfcf"></rect>
|
||||
|
||||
@@ -18,6 +18,37 @@ export default class Gantt extends Vue {
|
||||
padX: number = 0;
|
||||
padY: number = 0;
|
||||
|
||||
get PadX() {
|
||||
let w = ((this.$refs.mainContainer as any)?.clientWidth ?? 0) / 3;
|
||||
if (this.follow && w && this.currentTime * this.ganttOptions.secondSize > w)
|
||||
return -(this.currentTime * this.ganttOptions.secondSize - w);
|
||||
return this.padX;
|
||||
}
|
||||
set PadX(value: number) {
|
||||
if (!this.follow)
|
||||
this.padX = value;
|
||||
}
|
||||
|
||||
get PadY() {
|
||||
return this.padY;
|
||||
}
|
||||
set PadY(value: number) {
|
||||
this.padY = value;
|
||||
}
|
||||
|
||||
follow: boolean = false;
|
||||
|
||||
get canFollow() {
|
||||
if (this.follow && this.currentTime > 1)
|
||||
return true;
|
||||
return false;
|
||||
}
|
||||
|
||||
activeBlockYPosition = 0;
|
||||
updateVerticalPosition(b, e) {
|
||||
this.activeBlockYPosition = b + e;
|
||||
}
|
||||
|
||||
@Prop({ default: 1 })
|
||||
zoomFactor: number;
|
||||
|
||||
@@ -48,10 +79,6 @@ export default class Gantt extends Vue {
|
||||
return element?.rowHeight || 0;
|
||||
}
|
||||
|
||||
mounted() {
|
||||
this.$nextTick(() => this.$forceUpdate())
|
||||
}
|
||||
|
||||
startPan(event: MouseEvent | TouchEvent) {
|
||||
this.lastPosition = this.getSvgCoords(event);
|
||||
}
|
||||
@@ -66,8 +93,8 @@ export default class Gantt extends Vue {
|
||||
if (event.type == "touchmove" || (event.type == "mousemove" && (event as MouseEvent).buttons)) {
|
||||
let p = this.getSvgCoords(event)
|
||||
|
||||
this.padX = Math.min(this.padX + p.x - this.lastPosition.x, 0);
|
||||
this.padY = Math.max(Math.min(this.padY + p.y - this.lastPosition.y, 0), -this.maxPaddingY);
|
||||
this.PadX = Math.min(this.PadX + p.x - this.lastPosition.x, 0);
|
||||
this.PadY = Math.max(Math.min(this.PadY + p.y - this.lastPosition.y, 0), -this.maxPaddingY);
|
||||
|
||||
|
||||
|
||||
@@ -110,6 +137,17 @@ export default class Gantt extends Vue {
|
||||
return { x, y };
|
||||
}
|
||||
|
||||
updateRow() {
|
||||
this.$forceUpdate()
|
||||
}
|
||||
|
||||
toggleFollow() {
|
||||
this.follow = !this.follow;
|
||||
|
||||
if (this.follow)
|
||||
this.padX = 0;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -11,44 +11,52 @@
|
||||
@mouseup="stopPan"
|
||||
v-on:touchstart="startPan"
|
||||
v-on:touchend="stopPan"
|
||||
:class="{follow:canFollow}"
|
||||
>
|
||||
<!-- <gantt-header :padding-horizontal="padX " /> -->
|
||||
<g :transform="`translate(0 ${ganttOptions.stepDuration * ganttOptions.secondSize + padY })`">
|
||||
<g :transform="`translate(0 ${ganttOptions.stepDuration * ganttOptions.secondSize + PadY })`">
|
||||
<gantt-row
|
||||
:section="1"
|
||||
:blocks="blocks"
|
||||
ref="section1"
|
||||
:padding-horizontal="padX"
|
||||
:padding-horizontal="PadX"
|
||||
:zoom-factor="zoomFactor"
|
||||
@heightChanged="updateRow"
|
||||
@firstBlockChanged="updateVerticalPosition"
|
||||
>
|
||||
<span>{{`process-heating` | localize('Riscaldo')}}</span>
|
||||
</gantt-row>
|
||||
<gantt-row
|
||||
v-if="getRowHeight($refs.section1)"
|
||||
:padding-horizontal="padX "
|
||||
:padding-horizontal="PadX "
|
||||
:padding-vertical="getRowHeight($refs.section1) + ganttOptions.elementPadding"
|
||||
:section="2"
|
||||
:blocks="blocks"
|
||||
:zoom-factor="zoomFactor"
|
||||
@heightChanged="updateRow"
|
||||
@firstBlockChanged="updateVerticalPosition"
|
||||
ref="section2"
|
||||
>
|
||||
<span>{{`process-forming` | localize('Formatura')}}</span>
|
||||
</gantt-row>
|
||||
<gantt-row
|
||||
v-if="getRowHeight($refs.section1)+ getRowHeight($refs.section2)"
|
||||
:padding-horizontal="padX "
|
||||
v-if="!!getRowHeight($refs.section1) && !!getRowHeight($refs.section2)"
|
||||
:padding-horizontal="PadX "
|
||||
ref="section3"
|
||||
@heightChanged="updateRow"
|
||||
:padding-vertical="getRowHeight($refs.section1) + getRowHeight($refs.section2) + ganttOptions.elementPadding*2"
|
||||
:section="3"
|
||||
:blocks="blocks"
|
||||
:zoom-factor="zoomFactor"
|
||||
@firstBlockChanged="updateVerticalPosition"
|
||||
>
|
||||
<span>{{`process-extraction` | localize('Estrazione')}}</span>
|
||||
</gantt-row>
|
||||
</g>
|
||||
<gantt-header :padding-horizontal="padX " :zoom-factor="zoomFactor" />
|
||||
<gantt-header :padding-horizontal="PadX " :zoom-factor="zoomFactor" />
|
||||
<time-line
|
||||
:padding-horizontal="padX"
|
||||
v-if="!!getRowHeight($refs.section1) && !!getRowHeight($refs.section2)"
|
||||
:padding-horizontal="PadX"
|
||||
:zoom-factor="zoomFactor"
|
||||
:speed="1"
|
||||
:x="ganttOptions.stepDuration * ganttOptions.secondSize - 15"
|
||||
@@ -57,10 +65,23 @@
|
||||
/>
|
||||
</svg>
|
||||
</template>
|
||||
<style scoped>
|
||||
<style>
|
||||
svg.gantt {
|
||||
cursor: move;
|
||||
}
|
||||
|
||||
.gantt-row .background {
|
||||
fill: transparent;
|
||||
}
|
||||
|
||||
.gantt-row:nth-child(even) .background {
|
||||
fill: #f6f6f6;
|
||||
}
|
||||
|
||||
svg.gantt.follow g.gantt-header,
|
||||
svg.gantt.follow g.pad {
|
||||
transition: 1s transform linear;
|
||||
}
|
||||
</style>
|
||||
|
||||
<script lang="ts" src="./gantt.ts"></script>
|
||||
|
||||
+11
-7
@@ -1,12 +1,16 @@
|
||||
<template>
|
||||
<svg class="timeline">
|
||||
<g :transform="`translate(${ paddingHorizontal} 0)`">
|
||||
<g
|
||||
:transform="`translate(${(position + Math.min(20*position/60, 20)*speed) * zoomFactor} 0)`"
|
||||
:style="position>20?`transition: transform ${speed}s linear`:''"
|
||||
>
|
||||
<path class="arrow" d="M 0 0 L 30 0 L 15 24 Z" />
|
||||
<line x1="15" y1="24" x2="15" :y2="lineHeight" />
|
||||
<g :transform="`translate(${ paddingHorizontal} 0)`" class="pad">
|
||||
<g :transform="`scale(${zoomFactor} 1)`">
|
||||
<g
|
||||
:transform="`translate(${position} 0)`"
|
||||
:style="position>20?`transition: transform ${speed}s linear`:''"
|
||||
>
|
||||
<g :transform="`scale(${2-zoomFactor} 1)`">
|
||||
<path class="arrow" d="M 0 0 L 30 0 L 15 24 Z" />
|
||||
<line x1="15" y1="24" x2="15" :y2="lineHeight" />
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
||||
@@ -1,25 +1,29 @@
|
||||
import Vue from 'vue';
|
||||
import Component from 'vue-class-component';
|
||||
import { Prop } from 'vue-property-decorator';
|
||||
import { messageService } from "@/_base/messageService";
|
||||
import { Modal, ModalHelper } from "@/components/modals";
|
||||
import gantt from "./gantt/gantt.vue";
|
||||
import { moduleService } from '@/services/moduleService';
|
||||
import { Modal as modal, ModalHelper } from "@/components/modals";
|
||||
import { CONFIGURATION } from '@/config';
|
||||
import zoom from "./gantt/zoomLevel.vue";
|
||||
import { store } from '@/store';
|
||||
import { dataService } from '@/services/dataService';
|
||||
import gantt from "./gantt/gantt.vue";
|
||||
import zoom from "./gantt/zoomLevel.vue";
|
||||
import softKey from "./softkey.vue";
|
||||
import { Hub } from '@/services';
|
||||
|
||||
@Component({
|
||||
components: {
|
||||
modal: Modal, gantt, zoom
|
||||
modal, gantt, zoom, softKey
|
||||
}
|
||||
})
|
||||
export default class Processo extends Vue {
|
||||
|
||||
@Prop({ default: 25 })
|
||||
actual: number;
|
||||
@Prop({ default: 145 })
|
||||
tot: number;
|
||||
get actual(): number {
|
||||
return store.state.prod.panel.numDone;
|
||||
};
|
||||
|
||||
get tot(): number {
|
||||
return store.state.prod.panel.numTarget;
|
||||
};
|
||||
|
||||
get blocks(): server.Modblock[] {
|
||||
return store.state.modules.blocks;
|
||||
@@ -29,6 +33,8 @@ export default class Processo extends Vue {
|
||||
|
||||
zoomStep = 1.2;
|
||||
|
||||
starred: { id: number }[] = []
|
||||
|
||||
get gaugeData() {
|
||||
return store.state.machineStatus.gaugeData;
|
||||
}
|
||||
@@ -40,11 +46,25 @@ export default class Processo extends Vue {
|
||||
showAllBlocks: boolean = false;
|
||||
|
||||
async mounted() {
|
||||
|
||||
let c = await CONFIGURATION;
|
||||
this.showAllBlocks = c.allUIVisible;
|
||||
|
||||
|
||||
this.starred = await dataService.GetStarredSoftKeysConfiguration();
|
||||
}
|
||||
|
||||
softKeyChanged(id, confirm) {
|
||||
if (!confirm)
|
||||
Hub.Current.sendUserSoftKey(id);
|
||||
else {
|
||||
ModalHelper.AskConfirm( this.$options.filters.localize("", ""),
|
||||
this.$options.filters.localize("softkey_confirm", "Cancel"),
|
||||
() => {
|
||||
Hub.Current.sendUserSoftKey(id);
|
||||
}, null, "modal");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
getSoftKeyStatus(id) {
|
||||
return this.$store.getters.getSoftKeyStatus(id);
|
||||
}
|
||||
}
|
||||
@@ -5,33 +5,24 @@
|
||||
: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" />
|
||||
<span>Opzioni di lavorazione</span>
|
||||
</button>
|
||||
<button>
|
||||
<img src="assets/icons/png/star.png" />
|
||||
<span>Pirometro</span>
|
||||
</button>
|
||||
<button>
|
||||
<img src="assets/icons/png/star.png" />
|
||||
<span>Attivazione riscaldi</span>
|
||||
</button>
|
||||
<button>
|
||||
<img src="assets/icons/png/star.png" />
|
||||
<span>Riscaldo +10 secondi</span>
|
||||
</button>
|
||||
<button>
|
||||
<img src="assets/icons/png/star.png" />
|
||||
<span>Risclado -10 secondi</span>
|
||||
</button>
|
||||
<button>
|
||||
<img src="assets/icons/png/star.png" />
|
||||
<span>Label pulsante opzionale</span>
|
||||
</button>
|
||||
<label>{{actual}}/{{tot}}</label>
|
||||
<template v-for="(b,idx) in starred">
|
||||
<soft-key
|
||||
v-if="getSoftKeyStatus(b.id) && getSoftKeyStatus(b.id).visible"
|
||||
:id="b.id"
|
||||
:key="idx"
|
||||
:title="'softkey_' + b.id | localize('softkey_' + b.id)"
|
||||
:type="b.type"
|
||||
v-model="getSoftKeyStatus(b.id).value"
|
||||
:value="getSoftKeyStatus(b.id).value"
|
||||
:active="getSoftKeyStatus(b.id).active"
|
||||
@click="softKeyChanged(b.id, b.operatorConfirmationNeeded)"
|
||||
@checkChanged="softKeyChanged(b.id, b.operatorConfirmationNeeded)"
|
||||
></soft-key>
|
||||
</template>
|
||||
<label><span v-if="tot">{{actual}}/{{tot}}</span></label>
|
||||
</div>
|
||||
<gantt
|
||||
ref="gantt"
|
||||
v-if="blocks"
|
||||
:blocks="blocks"
|
||||
:zoom-factor="zoomFactor"
|
||||
@@ -45,6 +36,14 @@
|
||||
<button class="btn">
|
||||
<i class="fa fa-search-plus" @click="zoomFactor *= zoomStep"></i>
|
||||
</button>
|
||||
<button
|
||||
class="realign"
|
||||
v-if="$refs.gantt"
|
||||
@click="$refs.gantt.toggleFollow()"
|
||||
:class="{active: $refs.gantt.follow}"
|
||||
>
|
||||
<img src="/assets/icons/png/recenter-time.png" />
|
||||
</button>
|
||||
</div>
|
||||
</modal>
|
||||
</div>
|
||||
@@ -82,6 +81,19 @@
|
||||
flex-shrink: 0;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
.zoom-buttons button.realign {
|
||||
position: absolute;
|
||||
top: 60px;
|
||||
width: 90px;
|
||||
height: 90px;
|
||||
border-radius: 50px;
|
||||
right: 0;
|
||||
}
|
||||
|
||||
.zoom-buttons button.realign.active {
|
||||
border-color: #1791ff;
|
||||
}
|
||||
</style>
|
||||
|
||||
<script lang="ts" src="./processo.ts"></script>
|
||||
@@ -0,0 +1,26 @@
|
||||
import Vue from "vue";
|
||||
import Component from "vue-class-component";
|
||||
import { Prop } from "vue-property-decorator";
|
||||
|
||||
@Component({})
|
||||
export default class SoftKey extends Vue {
|
||||
|
||||
@Prop({ default: "" })
|
||||
title: string;
|
||||
|
||||
@Prop({ default: 0 })
|
||||
type: number;
|
||||
|
||||
@Prop({ default: false })
|
||||
value: boolean;
|
||||
|
||||
@Prop({ default: false })
|
||||
active: boolean;
|
||||
|
||||
@Prop({ default: null })
|
||||
id: number;
|
||||
|
||||
doclick() {
|
||||
this.$emit('click');
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
<template>
|
||||
<button class="starred-softkey" @click="doclick()" :disabled="!active" :class="{ active: value }">
|
||||
<img src="assets/icons/png/star.png" />
|
||||
<span>{{title}}</span>
|
||||
</button>
|
||||
</template>
|
||||
<script src="./softkey.ts" lang="ts"/>
|
||||
+67
-64
@@ -1,68 +1,71 @@
|
||||
<template>
|
||||
<div class="setup">
|
||||
<modal type="progr-preriscaldo-info" :title="'progr-preriscaldo_lbl_title' | localize('Programmazione preriscaldo')">
|
||||
<section>
|
||||
<aside class="scrollable auto">
|
||||
<div class="input-area">
|
||||
<label>Abilitazione</label>
|
||||
<toggle-button v-model="enabling"></toggle-button>
|
||||
</div>
|
||||
<hr>
|
||||
<div class="input-area">
|
||||
<label>Riscaldi</label>
|
||||
<toggle-button v-model="risc"></toggle-button>
|
||||
</div>
|
||||
<div class="input-area">
|
||||
<label>Termoregolatore</label>
|
||||
<toggle-button v-model="termo"></toggle-button>
|
||||
</div>
|
||||
<div class="input-area">
|
||||
<label>Blocca schermo</label>
|
||||
<toggle-button v-model="block"></toggle-button>
|
||||
</div>
|
||||
<button @click="showPreDashboard()">Mostra countdown</button>
|
||||
</aside>
|
||||
<hr>
|
||||
<div class="specific">
|
||||
<label>{{active}} alle ore {{hours}}:00 {{meridian}}</label>
|
||||
<div>
|
||||
<button :class="{'active':active=='Lunedì'}" @click="active='Lunedì'">Lunedì</button>
|
||||
<button :class="{'active':active=='Martedì'}" @click="active='Martedì'">Martedì</button>
|
||||
<button :class="{'active':active=='Mercoledì'}" @click="active='Mercoledì'">Mercoledì</button>
|
||||
<button :class="{'active':active=='Giovedì'}" @click="active='Giovedì'">Giovedì</button>
|
||||
<button :class="{'active':active=='Venerdì'}" @click="active='Venerdì'">Venerdì</button>
|
||||
<button :class="{'active':active=='Sabato'}" @click="active='Sabato'">Sabato</button>
|
||||
<button :class="{'active':active=='Domenica'}" @click="active='Domenica'">Domenica</button>
|
||||
</div>
|
||||
<div>
|
||||
<div>
|
||||
<label>{{hours}}:00</label>
|
||||
<label>{{meridian}}</label>
|
||||
</div>
|
||||
<div class="clock">
|
||||
<button class="btn1" :class="{'selected':hours=='1'}" @click="hours='1'">1</button>
|
||||
<button class="btn2" :class="{'selected':hours=='2'}" @click="hours='2'">2</button>
|
||||
<button class="btn3" :class="{'selected':hours=='3'}" @click="hours='3'">3</button>
|
||||
<button class="btn4" :class="{'selected':hours=='4'}" @click="hours='4'">4</button>
|
||||
<button class="btn5" :class="{'selected':hours=='5'}" @click="hours='5'">5</button>
|
||||
<button class="btn6" :class="{'selected':hours=='6'}" @click="hours='6'">6</button>
|
||||
<button class="btn7" :class="{'selected':hours=='7'}" @click="hours='7'">7</button>
|
||||
<button class="btn8" :class="{'selected':hours=='8'}" @click="hours='8'">8</button>
|
||||
<button class="btn9" :class="{'selected':hours=='9'}" @click="hours='9'">9</button>
|
||||
<button class="btn10" :class="{'selected':hours=='10'}" @click="hours='10'">10</button>
|
||||
<button class="btn11" :class="{'selected':hours=='11'}" @click="hours='11'">11</button>
|
||||
<button class="btn12" :class="{'selected':hours=='12'}" @click="hours='12'">12</button>
|
||||
<span></span>
|
||||
</div>
|
||||
<div>
|
||||
<button @click="meridian='AM'">AM</button>
|
||||
<button @click="meridian='PM'">PM</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</modal>
|
||||
</div>
|
||||
<div class="setup">
|
||||
<modal
|
||||
type="progr-preriscaldo-info"
|
||||
:title="'progr-preriscaldo_lbl_title' | localize('Programmazione preriscaldo')"
|
||||
>
|
||||
<section>
|
||||
<aside class="scrollable auto">
|
||||
<div class="input-area">
|
||||
<label>Abilitazione</label>
|
||||
<toggle-button v-model="enabling"></toggle-button>
|
||||
</div>
|
||||
<hr />
|
||||
<div class="input-area">
|
||||
<label>Riscaldi</label>
|
||||
<toggle-button v-model="risc"></toggle-button>
|
||||
</div>
|
||||
<div class="input-area">
|
||||
<label>Termoregolatore</label>
|
||||
<toggle-button v-model="termo"></toggle-button>
|
||||
</div>
|
||||
<div class="input-area">
|
||||
<label>Blocca schermo</label>
|
||||
<toggle-button v-model="block"></toggle-button>
|
||||
</div>
|
||||
<button @click="showPreDashboard()">Mostra countdown</button>
|
||||
</aside>
|
||||
<hr />
|
||||
<div class="specific">
|
||||
<label>{{active}} alle ore {{hours}}:00 {{meridian}}</label>
|
||||
<div>
|
||||
<button :class="{'active':active=='Lunedì'}" @click="active='Lunedì'">Lunedì</button>
|
||||
<button :class="{'active':active=='Martedì'}" @click="active='Martedì'">Martedì</button>
|
||||
<button :class="{'active':active=='Mercoledì'}" @click="active='Mercoledì'">Mercoledì</button>
|
||||
<button :class="{'active':active=='Giovedì'}" @click="active='Giovedì'">Giovedì</button>
|
||||
<button :class="{'active':active=='Venerdì'}" @click="active='Venerdì'">Venerdì</button>
|
||||
<button :class="{'active':active=='Sabato'}" @click="active='Sabato'">Sabato</button>
|
||||
<button :class="{'active':active=='Domenica'}" @click="active='Domenica'">Domenica</button>
|
||||
</div>
|
||||
<div>
|
||||
<div>
|
||||
<label>{{hours}}:00</label>
|
||||
<label>{{meridian}}</label>
|
||||
</div>
|
||||
<div class="clock">
|
||||
<button class="btn1" :class="{'selected':hours=='1'}" @click="hours='1'">1</button>
|
||||
<button class="btn2" :class="{'selected':hours=='2'}" @click="hours='2'">2</button>
|
||||
<button class="btn3" :class="{'selected':hours=='3'}" @click="hours='3'">3</button>
|
||||
<button class="btn4" :class="{'selected':hours=='4'}" @click="hours='4'">4</button>
|
||||
<button class="btn5" :class="{'selected':hours=='5'}" @click="hours='5'">5</button>
|
||||
<button class="btn6" :class="{'selected':hours=='6'}" @click="hours='6'">6</button>
|
||||
<button class="btn7" :class="{'selected':hours=='7'}" @click="hours='7'">7</button>
|
||||
<button class="btn8" :class="{'selected':hours=='8'}" @click="hours='8'">8</button>
|
||||
<button class="btn9" :class="{'selected':hours=='9'}" @click="hours='9'">9</button>
|
||||
<button class="btn10" :class="{'selected':hours=='10'}" @click="hours='10'">10</button>
|
||||
<button class="btn11" :class="{'selected':hours=='11'}" @click="hours='11'">11</button>
|
||||
<button class="btn12" :class="{'selected':hours=='12'}" @click="hours='12'">12</button>
|
||||
<span></span>
|
||||
</div>
|
||||
<div>
|
||||
<button @click="meridian='AM'">AM</button>
|
||||
<button @click="meridian='PM'">PM</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</modal>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script lang="ts" src="./programmazione-preriscaldo.ts"></script>
|
||||
+28
-7
@@ -6,7 +6,10 @@
|
||||
<template v-if="recipe.cycle_loader_enable.status.visible">
|
||||
<div class="input-area">
|
||||
<label>{{'cycle_loader_enable'|localize('Abilitazione')}}</label>
|
||||
<toggle-button v-model="recipe.cycle_loader_enable.setpointHMI"></toggle-button>
|
||||
<toggle-button
|
||||
v-model="recipe.cycle_loader_enable.setpointHMI"
|
||||
:status="recipe.cycle_loader_enable.status"
|
||||
></toggle-button>
|
||||
</div>
|
||||
</template>
|
||||
<hr />
|
||||
@@ -48,37 +51,55 @@
|
||||
<template v-if="recipe.cycle_loader_center_x.status.visible">
|
||||
<div class="input-area">
|
||||
<label>{{'cycle_loader_center_x'|localize('Centratura X')}}</label>
|
||||
<toggle-button v-model="recipe.cycle_loader_center_x.setpointHMI"></toggle-button>
|
||||
<toggle-button
|
||||
v-model="recipe.cycle_loader_center_x.setpointHMI"
|
||||
:status="recipe.cycle_loader_center_x.status"
|
||||
></toggle-button>
|
||||
</div>
|
||||
</template>
|
||||
<template v-if="recipe.cycle_loader_center_y.status.visible">
|
||||
<div class="input-area">
|
||||
<label>{{'cycle_loader_center_y'|localize('Centratura Y')}}</label>
|
||||
<toggle-button v-model="recipe.cycle_loader_center_y.setpointHMI"></toggle-button>
|
||||
<toggle-button
|
||||
v-model="recipe.cycle_loader_center_y.setpointHMI"
|
||||
:status="recipe.cycle_loader_center_y.status"
|
||||
></toggle-button>
|
||||
</div>
|
||||
</template>
|
||||
<template v-if="recipe.cycle_loader_checktichness_enabled.status.visible">
|
||||
<div class="input-area">
|
||||
<label>{{'cycle_loader_checktichness_enabled'|localize('Controllo spessore')}}</label>
|
||||
<toggle-button v-model="recipe.cycle_loader_checktichness_enabled.setpointHMI"></toggle-button>
|
||||
<toggle-button
|
||||
v-model="recipe.cycle_loader_checktichness_enabled.setpointHMI"
|
||||
:status="recipe.cycle_loader_checktichness_enabled.status"
|
||||
></toggle-button>
|
||||
</div>
|
||||
</template>
|
||||
<template v-if="recipe.cycle_loader_suckers_vacuum.status.visible">
|
||||
<div class="input-area">
|
||||
<label>{{'cycle_loader_suckers_vacuum'|localize('Vuoto ventose')}}</label>
|
||||
<toggle-button v-model="recipe.cycle_loader_suckers_vacuum.setpointHMI"></toggle-button>
|
||||
<toggle-button
|
||||
v-model="recipe.cycle_loader_suckers_vacuum.setpointHMI"
|
||||
:status="recipe.cycle_loader_suckers_vacuum.status"
|
||||
></toggle-button>
|
||||
</div>
|
||||
</template>
|
||||
<template v-if="recipe.cycle_loader_ionizer_enabled.status.visible">
|
||||
<div class="input-area">
|
||||
<label>{{'cycle_loader_ionizer_enabled'|localize('Abilitazione ionizzatore')}}</label>
|
||||
<toggle-button v-model="recipe.cycle_loader_ionizer_enabled.setpointHMI"></toggle-button>
|
||||
<toggle-button
|
||||
v-model="recipe.cycle_loader_ionizer_enabled.setpointHMI"
|
||||
:status="recipe.cycle_loader_ionizer_enabled.status"
|
||||
></toggle-button>
|
||||
</div>
|
||||
</template>
|
||||
<template v-if="recipe.cycle_loader_manualunloading_enabled.status.visible">
|
||||
<div class="input-area">
|
||||
<label>{{'cycle_loader_manualunloading_enabled'|localize('Funzione scarico pezzo manuale')}}</label>
|
||||
<toggle-button v-model="recipe.cycle_loader_manualunloading_enabled.setpointHMI"></toggle-button>
|
||||
<toggle-button
|
||||
v-model="recipe.cycle_loader_manualunloading_enabled.setpointHMI"
|
||||
:status="recipe.cycle_loader_manualunloading_enabled.status"
|
||||
></toggle-button>
|
||||
</div>
|
||||
</template>
|
||||
</div>
|
||||
|
||||
+12
-3
@@ -12,19 +12,28 @@
|
||||
<template v-if="recipe.cycle_forming_pause_cycle.status.visible">
|
||||
<div class="input-area">
|
||||
<label>{{'cycle_forming_pause_cycle'|localize('Pausa ciclo')}}</label>
|
||||
<toggle-button v-model="recipe.cycle_forming_pause_cycle.setpointHMI"></toggle-button>
|
||||
<toggle-button
|
||||
v-model="recipe.cycle_forming_pause_cycle.setpointHMI"
|
||||
:status="recipe.cycle_forming_pause_cycle.status"
|
||||
></toggle-button>
|
||||
</div>
|
||||
</template>
|
||||
<template v-if="recipe.cycle_forming_cooling_enabled.status.visible">
|
||||
<div class="input-area">
|
||||
<label>{{'cycle_forming_cooling_enabled'|localize('Raffreddamento fine ciclo')}}</label>
|
||||
<toggle-button v-model="recipe.cycle_forming_cooling_enabled.setpointHMI"></toggle-button>
|
||||
<toggle-button
|
||||
v-model="recipe.cycle_forming_cooling_enabled.setpointHMI"
|
||||
:status="recipe.cycle_forming_cooling_enabled.status"
|
||||
></toggle-button>
|
||||
</div>
|
||||
</template>
|
||||
<template v-if="recipe.cycle_forming_blowingbox_enabled.status.visible">
|
||||
<div class="input-area">
|
||||
<label>{{'cycle_forming_blowingbox_enabled'|localize('Ventilazione cassone fine ciclo')}}</label>
|
||||
<toggle-button v-model="recipe.cycle_forming_blowingbox_enabled.setpointHMI"></toggle-button>
|
||||
<toggle-button
|
||||
v-model="recipe.cycle_forming_blowingbox_enabled.setpointHMI"
|
||||
:status="recipe.cycle_forming_blowingbox_enabled.status"
|
||||
></toggle-button>
|
||||
</div>
|
||||
</template>
|
||||
</div>
|
||||
|
||||
+4
-1
@@ -7,7 +7,10 @@
|
||||
<template v-if="recipe.cycle_acrylicframe_enabled.status.visible">
|
||||
<div class="input-area">
|
||||
<label>{{'cycle_acrylicframe_enabled'|localize('Abilitazione')}}</label>
|
||||
<toggle-button v-model="recipe.cycle_acrylicframe_enabled.setpointHMI"></toggle-button>
|
||||
<toggle-button
|
||||
v-model="recipe.cycle_acrylicframe_enabled.setpointHMI"
|
||||
:status="recipe.cycle_acrylicframe_enabled.status"
|
||||
></toggle-button>
|
||||
</div>
|
||||
</template>
|
||||
<template v-if="recipe.cycle_acrylicframe_time.status.visible">
|
||||
|
||||
+4
-1
@@ -7,7 +7,10 @@
|
||||
<template v-if="recipe.cycle_upperoverheating_enabled.status.visible">
|
||||
<div class="input-area">
|
||||
<label>{{'cycle_upperoverheating_enabled'|localize('Abilitazione')}}</label>
|
||||
<toggle-button v-model="recipe.cycle_upperoverheating_enabled.setpointHMI"></toggle-button>
|
||||
<toggle-button
|
||||
v-model="recipe.cycle_upperoverheating_enabled.setpointHMI"
|
||||
:status="recipe.cycle_upperoverheating_enabled.status"
|
||||
></toggle-button>
|
||||
</div>
|
||||
</template>
|
||||
<template v-if="recipe.cycle_upperoverheating_time.status.visible">
|
||||
|
||||
+39
-26
@@ -27,36 +27,49 @@ export default class ShowCicloInfo extends Vue {
|
||||
};
|
||||
|
||||
|
||||
preparePayload() {
|
||||
return {
|
||||
cycle_forming_type: this.recipe.cycle_forming_type,
|
||||
cycle_forming_pause_cycle: this.recipe.cycle_forming_pause_cycle,
|
||||
cycle_forming_cooling_enabled: this.recipe.cycle_forming_cooling_enabled,
|
||||
cycle_forming_blowingbox_enabled: this.recipe.cycle_forming_blowingbox_enabled,
|
||||
cycle_acrylicframe_enabled: this.recipe.cycle_acrylicframe_enabled,
|
||||
cycle_acrylicframe_time: this.recipe.cycle_acrylicframe_time,
|
||||
cycle_upperoverheating_enabled: this.recipe.cycle_upperoverheating_enabled,
|
||||
cycle_upperoverheating_time: this.recipe.cycle_upperoverheating_time,
|
||||
cycle_crystallisation_type: this.recipe.cycle_crystallisation_type,
|
||||
cycle_crystallisation_time: this.recipe.cycle_crystallisation_time,
|
||||
cycle_loader_enable: this.recipe.cycle_loader_enable,
|
||||
cycle_loader_lifter_lowerposition_delay: this.recipe.cycle_loader_lifter_lowerposition_delay,
|
||||
cycle_loader_lifter_upperposition_delay: this.recipe.cycle_loader_lifter_upperposition_delay,
|
||||
cycle_loader_split_sheet_time: this.recipe.cycle_loader_split_sheet_time,
|
||||
cycle_loader_ejector_position: this.recipe.cycle_loader_ejector_position,
|
||||
cycle_loader_pallet_height: this.recipe.cycle_loader_pallet_height,
|
||||
cycle_loader_center_x: this.recipe.cycle_loader_center_x,
|
||||
cycle_loader_center_y: this.recipe.cycle_loader_center_y,
|
||||
cycle_loader_checktichness_enabled: this.recipe.cycle_loader_checktichness_enabled,
|
||||
cycle_loader_suckers_vacuum: this.recipe.cycle_loader_suckers_vacuum,
|
||||
cycle_loader_ionizer_enabled: this.recipe.cycle_loader_ionizer_enabled,
|
||||
cycle_loader_manualunloading_enabled: this.recipe.cycle_loader_manualunloading_enabled,
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
@Watch('recipe', { deep: true })
|
||||
async recipeChanged(n, o) {
|
||||
await recipeService.Update(
|
||||
{
|
||||
cycle_forming_type: this.recipe.cycle_forming_type,
|
||||
cycle_forming_pause_cycle: this.recipe.cycle_forming_pause_cycle,
|
||||
cycle_forming_cooling_enabled: this.recipe.cycle_forming_cooling_enabled,
|
||||
cycle_forming_blowingbox_enabled: this.recipe.cycle_forming_blowingbox_enabled,
|
||||
cycle_acrylicframe_enabled: this.recipe.cycle_acrylicframe_enabled,
|
||||
cycle_acrylicframe_time: this.recipe.cycle_acrylicframe_time,
|
||||
cycle_upperoverheating_enabled: this.recipe.cycle_upperoverheating_enabled,
|
||||
cycle_upperoverheating_time: this.recipe.cycle_upperoverheating_time,
|
||||
cycle_crystallisation_type: this.recipe.cycle_crystallisation_type,
|
||||
cycle_crystallisation_time: this.recipe.cycle_crystallisation_time,
|
||||
cycle_loader_enable: this.recipe.cycle_loader_enable,
|
||||
cycle_loader_lifter_lowerposition_delay: this.recipe.cycle_loader_lifter_lowerposition_delay,
|
||||
cycle_loader_lifter_upperposition_delay: this.recipe.cycle_loader_lifter_upperposition_delay,
|
||||
cycle_loader_split_sheet_time: this.recipe.cycle_loader_split_sheet_time,
|
||||
cycle_loader_ejector_position: this.recipe.cycle_loader_ejector_position,
|
||||
cycle_loader_pallet_height: this.recipe.cycle_loader_pallet_height,
|
||||
cycle_loader_center_x: this.recipe.cycle_loader_center_x,
|
||||
cycle_loader_center_y: this.recipe.cycle_loader_center_y,
|
||||
cycle_loader_checktichness_enabled: this.recipe.cycle_loader_checktichness_enabled,
|
||||
cycle_loader_suckers_vacuum: this.recipe.cycle_loader_suckers_vacuum,
|
||||
cycle_loader_ionizer_enabled: this.recipe.cycle_loader_ionizer_enabled,
|
||||
cycle_loader_manualunloading_enabled: this.recipe.cycle_loader_manualunloading_enabled,
|
||||
}
|
||||
);
|
||||
await recipeService.Update(this.preparePayload());
|
||||
};
|
||||
|
||||
hasErrors() {
|
||||
let payload = this.preparePayload();
|
||||
let errors = false;
|
||||
for (const key in this.preparePayload()) {
|
||||
const el = payload[key] as Recipe.IValue;
|
||||
if (el.status.hasError) errors = true;
|
||||
}
|
||||
return errors;
|
||||
}
|
||||
|
||||
hasEnabledFields(...fields: string[]) {
|
||||
let result = false;
|
||||
for (const field of fields) {
|
||||
|
||||
+5
-1
@@ -18,7 +18,11 @@
|
||||
<caricatore v-if="show==1" :recipe="recipe"></caricatore>
|
||||
<footer>
|
||||
<button class="btn" @click="annulla()">{{'cancel' | localize('Annulla')}}</button>
|
||||
<button class="btn btn-success" @click="conferma()">{{'confirm' | localize('Conferma')}}</button>
|
||||
<button
|
||||
class="btn btn-success"
|
||||
@click="conferma()"
|
||||
:disabled="hasErrors()"
|
||||
>{{'confirm' | localize('Conferma')}}</button>
|
||||
</footer>
|
||||
</modal>
|
||||
<stepfooter :current="2" @click="goTo"></stepfooter>
|
||||
|
||||
@@ -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>
|
||||
|
||||
+5
-2
@@ -6,7 +6,10 @@
|
||||
<template v-if="recipe.upperplate_air_enable.status.visible">
|
||||
<div class="input-area">
|
||||
<label>{{'upperplate_air_enable'|localize('Abilitazione')}}</label>
|
||||
<toggle-button v-model="recipe.upperplate_air_enable.setpointHMI"></toggle-button>
|
||||
<toggle-button
|
||||
v-model="recipe.upperplate_air_enable.setpointHMI"
|
||||
:status="recipe.upperplate_air_enable.status"
|
||||
></toggle-button>
|
||||
</div>
|
||||
</template>
|
||||
<template v-if="recipe.upperplate_air_delay.status.visible">
|
||||
@@ -59,7 +62,7 @@
|
||||
<template v-if="recipe.upperplate_air_max_time.status.visible">
|
||||
<div class="input-area">
|
||||
<label>{{'upperplate_air_max_time'|localize('Durata massima')}}</label>
|
||||
<numeric v-model="recipe.upperplate_air_max_time" />
|
||||
<numeric v-model="recipe.upperplate_air_max_time" keyboard-position="top" />
|
||||
</div>
|
||||
<slider v-model="recipe.upperplate_air_max_time"></slider>
|
||||
</template>
|
||||
|
||||
+4
-1
@@ -6,7 +6,10 @@
|
||||
<template v-if="recipe.upperplate_extraction_enable.status.visible">
|
||||
<div class="input-area">
|
||||
<label>{{'upperplate_extraction_enable'|localize('Abilitazione')}}</label>
|
||||
<toggle-button v-model="recipe.upperplate_extraction_enable.setpointHMI"></toggle-button>
|
||||
<toggle-button
|
||||
v-model="recipe.upperplate_extraction_enable.setpointHMI"
|
||||
:status="recipe.upperplate_extraction_enable.status"
|
||||
></toggle-button>
|
||||
</div>
|
||||
</template>
|
||||
<template v-if="recipe.upperplate_extraction_delay.status.visible">
|
||||
|
||||
+5
-2
@@ -6,7 +6,10 @@
|
||||
<template v-if="recipe.upperplate_vacuum_enable.status.visible">
|
||||
<div class="input-area">
|
||||
<label>{{'upperplate_vacuum_enable'|localize('Abilitazione')}}</label>
|
||||
<toggle-button v-model="recipe.upperplate_vacuum_enable.setpointHMI"></toggle-button>
|
||||
<toggle-button
|
||||
v-model="recipe.upperplate_vacuum_enable.setpointHMI"
|
||||
:status="recipe.upperplate_vacuum_enable.status"
|
||||
></toggle-button>
|
||||
</div>
|
||||
</template>
|
||||
<template v-if="recipe.upperplate_vacuum_delay.status.visible">
|
||||
@@ -58,7 +61,7 @@
|
||||
<template v-if="recipe.upperplate_vacuum_max_time.status.visible">
|
||||
<div class="input-area">
|
||||
<label>{{'upperplate_vacuum_max_time'|localize('Durata massima')}}</label>
|
||||
<numeric v-model="recipe.upperplate_vacuum_max_time" />
|
||||
<numeric v-model="recipe.upperplate_vacuum_max_time" keyboard-position="top" />
|
||||
</div>
|
||||
<slider v-model="recipe.upperplate_vacuum_max_time"></slider>
|
||||
</template>
|
||||
|
||||
+44
-32
@@ -39,38 +39,50 @@ export default class ShowControstampoInfo extends Vue {
|
||||
|
||||
@Watch('recipe', { deep: true })
|
||||
async recipeChanged(n, o) {
|
||||
await recipeService.Update(
|
||||
{
|
||||
upperplate_cycle_type: this.recipe.upperplate_cycle_type,
|
||||
upperplate_cycle_delay: this.recipe.upperplate_cycle_delay,
|
||||
upperplate_cycle_time: this.recipe.upperplate_cycle_time,
|
||||
upperplate_air_enable: this.recipe.upperplate_air_enable,
|
||||
upperplate_air_delay: this.recipe.upperplate_air_delay,
|
||||
upperplate_air_max_time: this.recipe.upperplate_air_max_time,
|
||||
upperplate_air_1_chart_setpointx: this.recipe.upperplate_air_1_chart_setpointx,
|
||||
upperplate_air_1_chart_setpointy: this.recipe.upperplate_air_1_chart_setpointy,
|
||||
upperplate_air_2_chart_setpointx: this.recipe.upperplate_air_2_chart_setpointx,
|
||||
upperplate_air_2_chart_setpointy: this.recipe.upperplate_air_2_chart_setpointy,
|
||||
upperplate_air_3_chart_setpointx: this.recipe.upperplate_air_3_chart_setpointx,
|
||||
upperplate_air_3_chart_setpointy: this.recipe.upperplate_air_3_chart_setpointy,
|
||||
upperplate_air_manual: this.recipe.upperplate_air_manual,
|
||||
upperplate_vacuum_enable: this.recipe.upperplate_vacuum_enable,
|
||||
upperplate_vacuum_delay: this.recipe.upperplate_vacuum_delay,
|
||||
upperplate_vacuum_max_time: this.recipe.upperplate_vacuum_max_time,
|
||||
upperplate_vacuum_1_chart_setpointx: this.recipe.upperplate_vacuum_1_chart_setpointx,
|
||||
upperplate_vacuum_1_chart_setpointy: this.recipe.upperplate_vacuum_1_chart_setpointy,
|
||||
upperplate_vacuum_2_chart_setpointx: this.recipe.upperplate_vacuum_2_chart_setpointx,
|
||||
upperplate_vacuum_2_chart_setpointy: this.recipe.upperplate_vacuum_2_chart_setpointy,
|
||||
upperplate_vacuum_3_chart_setpointx: this.recipe.upperplate_vacuum_3_chart_setpointx,
|
||||
upperplate_vacuum_3_chart_setpointy: this.recipe.upperplate_vacuum_3_chart_setpointy,
|
||||
upperplate_vacuum_manual: this.recipe.upperplate_vacuum_manual,
|
||||
upperplate_extraction_enable: this.recipe.upperplate_extraction_enable,
|
||||
upperplate_extraction_delay: this.recipe.upperplate_extraction_delay,
|
||||
upperplate_extraction_1_chart_setpointx: this.recipe.upperplate_extraction_1_chart_setpointx,
|
||||
upperplate_extraction_1_chart_setpointy: this.recipe.upperplate_extraction_1_chart_setpointy,
|
||||
upperplate_extraction_manual: this.recipe.upperplate_extraction_manual,
|
||||
}
|
||||
);
|
||||
await recipeService.Update(this.preparePayload());
|
||||
}
|
||||
|
||||
preparePayload() {
|
||||
return {
|
||||
upperplate_cycle_type: this.recipe.upperplate_cycle_type,
|
||||
upperplate_cycle_delay: this.recipe.upperplate_cycle_delay,
|
||||
upperplate_cycle_time: this.recipe.upperplate_cycle_time,
|
||||
upperplate_air_enable: this.recipe.upperplate_air_enable,
|
||||
upperplate_air_delay: this.recipe.upperplate_air_delay,
|
||||
upperplate_air_max_time: this.recipe.upperplate_air_max_time,
|
||||
upperplate_air_1_chart_setpointx: this.recipe.upperplate_air_1_chart_setpointx,
|
||||
upperplate_air_1_chart_setpointy: this.recipe.upperplate_air_1_chart_setpointy,
|
||||
upperplate_air_2_chart_setpointx: this.recipe.upperplate_air_2_chart_setpointx,
|
||||
upperplate_air_2_chart_setpointy: this.recipe.upperplate_air_2_chart_setpointy,
|
||||
upperplate_air_3_chart_setpointx: this.recipe.upperplate_air_3_chart_setpointx,
|
||||
upperplate_air_3_chart_setpointy: this.recipe.upperplate_air_3_chart_setpointy,
|
||||
upperplate_air_manual: this.recipe.upperplate_air_manual,
|
||||
upperplate_vacuum_enable: this.recipe.upperplate_vacuum_enable,
|
||||
upperplate_vacuum_delay: this.recipe.upperplate_vacuum_delay,
|
||||
upperplate_vacuum_max_time: this.recipe.upperplate_vacuum_max_time,
|
||||
upperplate_vacuum_1_chart_setpointx: this.recipe.upperplate_vacuum_1_chart_setpointx,
|
||||
upperplate_vacuum_1_chart_setpointy: this.recipe.upperplate_vacuum_1_chart_setpointy,
|
||||
upperplate_vacuum_2_chart_setpointx: this.recipe.upperplate_vacuum_2_chart_setpointx,
|
||||
upperplate_vacuum_2_chart_setpointy: this.recipe.upperplate_vacuum_2_chart_setpointy,
|
||||
upperplate_vacuum_3_chart_setpointx: this.recipe.upperplate_vacuum_3_chart_setpointx,
|
||||
upperplate_vacuum_3_chart_setpointy: this.recipe.upperplate_vacuum_3_chart_setpointy,
|
||||
upperplate_vacuum_manual: this.recipe.upperplate_vacuum_manual,
|
||||
upperplate_extraction_enable: this.recipe.upperplate_extraction_enable,
|
||||
upperplate_extraction_delay: this.recipe.upperplate_extraction_delay,
|
||||
upperplate_extraction_1_chart_setpointx: this.recipe.upperplate_extraction_1_chart_setpointx,
|
||||
upperplate_extraction_1_chart_setpointy: this.recipe.upperplate_extraction_1_chart_setpointy,
|
||||
upperplate_extraction_manual: this.recipe.upperplate_extraction_manual,
|
||||
}
|
||||
}
|
||||
|
||||
hasErrors() {
|
||||
let payload = this.preparePayload();
|
||||
let errors = false;
|
||||
for (const key in this.preparePayload()) {
|
||||
const el = payload[key] as Recipe.IValue;
|
||||
if (el.status.hasError) errors = true;
|
||||
}
|
||||
return errors;
|
||||
}
|
||||
|
||||
hasEnabledFields(...fields: string[]) {
|
||||
|
||||
+5
-1
@@ -34,7 +34,11 @@
|
||||
<estrazionecontrostampo v-if="show==3" :recipe="recipe"></estrazionecontrostampo>
|
||||
<footer>
|
||||
<button class="btn" @click="annulla()">{{'cancel' | localize('Annulla')}}</button>
|
||||
<button class="btn btn-success" @click="conferma()">{{'confirm' | localize('Conferma')}}</button>
|
||||
<button
|
||||
class="btn btn-success"
|
||||
@click="conferma()"
|
||||
:disabled="hasErrors()"
|
||||
>{{'confirm' | localize('Conferma')}}</button>
|
||||
</footer>
|
||||
</modal>
|
||||
<stepfooter :current="6" @click="goTo"></stepfooter>
|
||||
|
||||
+4
-1
@@ -6,7 +6,10 @@
|
||||
<template v-if="recipe.extraction_aux_enabled.status.visible">
|
||||
<div class="input-area">
|
||||
<label>{{'extraction_aux_enabled'|localize('Abilitazione')}}</label>
|
||||
<toggle-button v-model="recipe.extraction_aux_enabled.setpointHMI"></toggle-button>
|
||||
<toggle-button
|
||||
v-model="recipe.extraction_aux_enabled.setpointHMI"
|
||||
:status="recipe.extraction_aux_enabled.status"
|
||||
></toggle-button>
|
||||
</div>
|
||||
</template>
|
||||
<template v-if="recipe.extraction_aux_delay.status.visible">
|
||||
|
||||
+27
-15
@@ -37,21 +37,33 @@ export default class ShowEstrazioneInfo extends Vue {
|
||||
@Watch('recipe', { deep: true })
|
||||
async recipeChanged(n, o) {
|
||||
|
||||
await recipeService.Update(
|
||||
{
|
||||
extraction_main_type: this.recipe.extraction_main_type,
|
||||
extraction_main_mould_dw_delay: this.recipe.extraction_main_mould_dw_delay,
|
||||
extraction_main_delay: this.recipe.extraction_main_delay,
|
||||
extraction_main_1_chart_setpointx: this.recipe.extraction_main_1_chart_setpointx,
|
||||
extraction_main_1_chart_setpointy: this.recipe.extraction_main_1_chart_setpointy,
|
||||
extraction_main_manual: this.recipe.extraction_main_manual,
|
||||
extraction_aux_enabled: this.recipe.extraction_aux_enabled,
|
||||
extraction_aux_delay: this.recipe.extraction_aux_delay,
|
||||
extraction_aux_1_chart_setpointx: this.recipe.extraction_aux_1_chart_setpointx,
|
||||
extraction_aux_1_chart_setpointy: this.recipe.extraction_aux_1_chart_setpointy,
|
||||
extraction_aux_manual: this.recipe.extraction_aux_manual,
|
||||
}
|
||||
);
|
||||
await recipeService.Update(this.preparePayload());
|
||||
}
|
||||
|
||||
preparePayload() {
|
||||
return {
|
||||
extraction_main_type: this.recipe.extraction_main_type,
|
||||
extraction_main_mould_dw_delay: this.recipe.extraction_main_mould_dw_delay,
|
||||
extraction_main_delay: this.recipe.extraction_main_delay,
|
||||
extraction_main_1_chart_setpointx: this.recipe.extraction_main_1_chart_setpointx,
|
||||
extraction_main_1_chart_setpointy: this.recipe.extraction_main_1_chart_setpointy,
|
||||
extraction_main_manual: this.recipe.extraction_main_manual,
|
||||
extraction_aux_enabled: this.recipe.extraction_aux_enabled,
|
||||
extraction_aux_delay: this.recipe.extraction_aux_delay,
|
||||
extraction_aux_1_chart_setpointx: this.recipe.extraction_aux_1_chart_setpointx,
|
||||
extraction_aux_1_chart_setpointy: this.recipe.extraction_aux_1_chart_setpointy,
|
||||
extraction_aux_manual: this.recipe.extraction_aux_manual,
|
||||
};
|
||||
}
|
||||
|
||||
hasErrors() {
|
||||
let payload = this.preparePayload();
|
||||
let errors = false;
|
||||
for (const key in this.preparePayload()) {
|
||||
const el = payload[key] as Recipe.IValue;
|
||||
if (el.status.hasError) errors = true;
|
||||
}
|
||||
return errors;
|
||||
}
|
||||
|
||||
hasEnabledFields(...fields: string[]) {
|
||||
|
||||
+5
-1
@@ -22,7 +22,11 @@
|
||||
<estrsecondaria v-if="show==1" :recipe="recipe"></estrsecondaria>
|
||||
<footer>
|
||||
<button class="btn" @click="annulla()">{{'cancel' | localize('Annulla')}}</button>
|
||||
<button class="btn btn-success" @click="conferma()">{{'confirm' | localize('Conferma')}}</button>
|
||||
<button
|
||||
class="btn btn-success"
|
||||
@click="conferma()"
|
||||
:disabled="hasErrors()"
|
||||
>{{'confirm' | localize('Conferma')}}</button>
|
||||
</footer>
|
||||
</modal>
|
||||
<stepfooter :current="9" @click="goTo"></stepfooter>
|
||||
|
||||
@@ -17,7 +17,6 @@
|
||||
<numeric v-model="recipe.general_sizes_frame_dim_x" id="general_sizes_frame_dim_x" />
|
||||
</div>
|
||||
<slider v-model="recipe.general_sizes_frame_dim_x"></slider>
|
||||
<button class="submit">Muovi</button>
|
||||
</template>
|
||||
<template v-if="recipe.general_sizes_frame_dim_y.status.visible">
|
||||
<div class="input-area">
|
||||
@@ -25,7 +24,6 @@
|
||||
<numeric v-model="recipe.general_sizes_frame_dim_y" id="general_sizes_frame_dim_y" />
|
||||
</div>
|
||||
<slider v-model="recipe.general_sizes_frame_dim_y"></slider>
|
||||
<button class="submit">Muovi</button>
|
||||
</template>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
-2
@@ -17,7 +17,6 @@
|
||||
<numeric v-model="recipe.general_sizes_plate_dim_x" id="general_sizes_plate_dim_x" />
|
||||
</div>
|
||||
<slider v-model="recipe.general_sizes_plate_dim_x"></slider>
|
||||
<button class="submit">Muovi</button>
|
||||
</template>
|
||||
<template v-if="recipe.general_sizes_plate_dim_y.status.visible">
|
||||
<div class="input-area">
|
||||
@@ -25,7 +24,6 @@
|
||||
<numeric v-model="recipe.general_sizes_plate_dim_y" id="general_sizes_plate_dim_y" />
|
||||
</div>
|
||||
<slider v-model="recipe.general_sizes_plate_dim_y"></slider>
|
||||
<button class="submit">Muovi</button>
|
||||
</template>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
+33
-21
@@ -57,27 +57,39 @@ export default class ShowFormatoInfo extends Vue {
|
||||
|
||||
@Watch('recipe', { deep: true })
|
||||
async recipeChanged(n, o) {
|
||||
await recipeService.Update(
|
||||
{
|
||||
general_sizes_mould_dim_x: this.recipe.general_sizes_mould_dim_x,
|
||||
general_sizes_mould_dim_y: this.recipe.general_sizes_mould_dim_y,
|
||||
general_sizes_mould_max_height: this.recipe.general_sizes_mould_max_height,
|
||||
general_sizes_mould_min_height: this.recipe.general_sizes_mould_min_height,
|
||||
general_sizes_mould_base_height: this.recipe.general_sizes_mould_base_height,
|
||||
general_sizes_sheet_material: this.recipe.general_sizes_sheet_material,
|
||||
general_sizes_sheet_dim_x: this.recipe.general_sizes_sheet_dim_x,
|
||||
general_sizes_sheet_dim_y: this.recipe.general_sizes_sheet_dim_y,
|
||||
general_sizes_sheet_thickness: this.recipe.general_sizes_sheet_thickness,
|
||||
general_sizes_plate_type: this.recipe.general_sizes_plate_type,
|
||||
general_sizes_plate_dim_x: this.recipe.general_sizes_plate_dim_x,
|
||||
general_sizes_plate_dim_y: this.recipe.general_sizes_plate_dim_y,
|
||||
general_sizes_frame_traverses: this.recipe.general_sizes_frame_traverses,
|
||||
general_sizes_frame_dim_x: this.recipe.general_sizes_frame_dim_x,
|
||||
general_sizes_frame_dim_y: this.recipe.general_sizes_frame_dim_y,
|
||||
general_sizes_upperplate_max_height: this.recipe.general_sizes_upperplate_max_height,
|
||||
general_area_working_dxsx: this.recipe.general_area_working_dxsx,
|
||||
}
|
||||
);
|
||||
await recipeService.Update(this.preparePayload());
|
||||
}
|
||||
|
||||
preparePayload() {
|
||||
return {
|
||||
general_sizes_mould_dim_x: this.recipe.general_sizes_mould_dim_x,
|
||||
general_sizes_mould_dim_y: this.recipe.general_sizes_mould_dim_y,
|
||||
general_sizes_mould_max_height: this.recipe.general_sizes_mould_max_height,
|
||||
general_sizes_mould_min_height: this.recipe.general_sizes_mould_min_height,
|
||||
general_sizes_mould_base_height: this.recipe.general_sizes_mould_base_height,
|
||||
general_sizes_sheet_material: this.recipe.general_sizes_sheet_material,
|
||||
general_sizes_sheet_dim_x: this.recipe.general_sizes_sheet_dim_x,
|
||||
general_sizes_sheet_dim_y: this.recipe.general_sizes_sheet_dim_y,
|
||||
general_sizes_sheet_thickness: this.recipe.general_sizes_sheet_thickness,
|
||||
general_sizes_plate_type: this.recipe.general_sizes_plate_type,
|
||||
general_sizes_plate_dim_x: this.recipe.general_sizes_plate_dim_x,
|
||||
general_sizes_plate_dim_y: this.recipe.general_sizes_plate_dim_y,
|
||||
general_sizes_frame_traverses: this.recipe.general_sizes_frame_traverses,
|
||||
general_sizes_frame_dim_x: this.recipe.general_sizes_frame_dim_x,
|
||||
general_sizes_frame_dim_y: this.recipe.general_sizes_frame_dim_y,
|
||||
general_sizes_upperplate_max_height: this.recipe.general_sizes_upperplate_max_height,
|
||||
general_area_working_dxsx: this.recipe.general_area_working_dxsx,
|
||||
};
|
||||
}
|
||||
|
||||
hasErrors() {
|
||||
let payload = this.preparePayload();
|
||||
let errors = false;
|
||||
for (const key in this.preparePayload()) {
|
||||
const el = payload[key] as Recipe.IValue;
|
||||
if (el.status.hasError) errors = true;
|
||||
}
|
||||
return errors;
|
||||
}
|
||||
|
||||
async conferma() {
|
||||
|
||||
+6
-2
@@ -70,8 +70,12 @@
|
||||
</article>
|
||||
</section>
|
||||
<footer>
|
||||
<button class="btn" @click="annulla()">Annulla</button>
|
||||
<button class="btn btn-success" @click="conferma()">Conferma</button>
|
||||
<button class="btn" @click="annulla()">{{'cancel' | localize('Annulla')}}</button>
|
||||
<button
|
||||
class="btn btn-success"
|
||||
@click="conferma()"
|
||||
:disabled="hasErrors()"
|
||||
>{{'confirm' | localize('Conferma')}}</button>
|
||||
</footer>
|
||||
</modal>
|
||||
<stepfooter :current="0" @click="goTo"></stepfooter>
|
||||
|
||||
+25
-13
@@ -47,19 +47,31 @@ export default class ShowImbutituraInfo extends Vue {
|
||||
|
||||
@Watch('recipe', { deep: true })
|
||||
async recipeChanged(n, o) {
|
||||
await recipeService.Update(
|
||||
{
|
||||
drawing_type: this.recipe.drawing_type,
|
||||
drawing_height: this.recipe.drawing_height,
|
||||
drawing_delay: this.recipe.drawing_delay,
|
||||
drawing_1_chart_setpointx: this.recipe.drawing_1_chart_setpointx,
|
||||
drawing_1_chart_setpointy: this.recipe.drawing_1_chart_setpointy,
|
||||
drawing_photocell: this.recipe.drawing_photocell,
|
||||
drawing_mantaining_flow: this.recipe.drawing_mantaining_flow,
|
||||
drawing_manual: this.recipe.drawing_manual,
|
||||
drawing_mould_up_delay: this.recipe.drawing_mould_up_delay,
|
||||
}
|
||||
);
|
||||
await recipeService.Update(this.preparePayload());
|
||||
}
|
||||
|
||||
preparePayload() {
|
||||
return {
|
||||
drawing_type: this.recipe.drawing_type,
|
||||
drawing_height: this.recipe.drawing_height,
|
||||
drawing_delay: this.recipe.drawing_delay,
|
||||
drawing_1_chart_setpointx: this.recipe.drawing_1_chart_setpointx,
|
||||
drawing_1_chart_setpointy: this.recipe.drawing_1_chart_setpointy,
|
||||
drawing_photocell: this.recipe.drawing_photocell,
|
||||
drawing_mantaining_flow: this.recipe.drawing_mantaining_flow,
|
||||
drawing_manual: this.recipe.drawing_manual,
|
||||
drawing_mould_up_delay: this.recipe.drawing_mould_up_delay,
|
||||
};
|
||||
}
|
||||
|
||||
hasErrors() {
|
||||
let payload = this.preparePayload();
|
||||
let errors = false;
|
||||
for (const key in this.preparePayload()) {
|
||||
const el = payload[key] as Recipe.IValue;
|
||||
if (el.status.hasError) errors = true;
|
||||
}
|
||||
return errors;
|
||||
}
|
||||
|
||||
async conferma(name: string) {
|
||||
|
||||
+6
-6
@@ -80,12 +80,12 @@
|
||||
</article>
|
||||
</section>
|
||||
<footer>
|
||||
<button class="btn" @click="annulla()">
|
||||
<label>Annulla</label>
|
||||
</button>
|
||||
<button class="btn btn-success" @click="conferma()">
|
||||
<label>Conferma</label>
|
||||
</button>
|
||||
<button class="btn" @click="annulla()">{{'cancel' | localize('Annulla')}}</button>
|
||||
<button
|
||||
class="btn btn-success"
|
||||
@click="conferma()"
|
||||
:disabled="hasErrors()"
|
||||
>{{'confirm' | localize('Conferma')}}</button>
|
||||
</footer>
|
||||
</modal>
|
||||
<stepfooter :current="5" @click="goTo"></stepfooter>
|
||||
|
||||
+1
-1
@@ -4,7 +4,7 @@
|
||||
<template v-if="abilitazione.status.visible">
|
||||
<div class="input-area">
|
||||
<label>{{'options_thermoregulator__enabled'|localize('Abilitazione')}}</label>
|
||||
<toggle-button v-model="abilitazione.setpointHMI"></toggle-button>
|
||||
<toggle-button v-model="abilitazione.setpointHMI" :status="abilitazione.status"></toggle-button>
|
||||
</div>
|
||||
</template>
|
||||
<template v-if="setpoint.status.visible">
|
||||
|
||||
@@ -38,110 +38,122 @@ export default class ShowOpzioniInfo extends Vue {
|
||||
|
||||
@Watch('recipe', { deep: true })
|
||||
async recipeChanged(n, o) {
|
||||
await recipeService.Update(
|
||||
{
|
||||
options_undercutmould_1_mode: this.recipe.options_undercutmould_1_mode,
|
||||
options_undercutmould_1_position: this.recipe.options_undercutmould_1_position,
|
||||
options_undercutmould_1_delay_acti: this.recipe.options_undercutmould_1_delay_acti,
|
||||
options_undercutmould_1_delay_dis: this.recipe.options_undercutmould_1_delay_dis,
|
||||
options_undercutmould_2_mode: this.recipe.options_undercutmould_2_mode,
|
||||
options_undercutmould_2_position: this.recipe.options_undercutmould_2_position,
|
||||
options_undercutmould_2_delay_acti: this.recipe.options_undercutmould_2_delay_acti,
|
||||
options_undercutmould_2_delay_dis: this.recipe.options_undercutmould_2_delay_dis,
|
||||
options_undercutmould_3_mode: this.recipe.options_undercutmould_3_mode,
|
||||
options_undercutmould_3_position: this.recipe.options_undercutmould_3_position,
|
||||
options_undercutmould_3_delay_acti: this.recipe.options_undercutmould_3_delay_acti,
|
||||
options_undercutmould_3_delay_dis: this.recipe.options_undercutmould_3_delay_dis,
|
||||
options_undercutmould_4_mode: this.recipe.options_undercutmould_4_mode,
|
||||
options_undercutmould_4_position: this.recipe.options_undercutmould_4_position,
|
||||
options_undercutmould_4_delay_acti: this.recipe.options_undercutmould_4_delay_acti,
|
||||
options_undercutmould_4_delay_dis: this.recipe.options_undercutmould_4_delay_dis,
|
||||
options_undercutmould_5_mode: this.recipe.options_undercutmould_5_mode,
|
||||
options_undercutmould_5_position: this.recipe.options_undercutmould_5_position,
|
||||
options_undercutmould_5_delay_acti: this.recipe.options_undercutmould_5_delay_acti,
|
||||
options_undercutmould_5_delay_dis: this.recipe.options_undercutmould_5_delay_dis,
|
||||
options_undercutmould_6_mode: this.recipe.options_undercutmould_6_mode,
|
||||
options_undercutmould_6_position: this.recipe.options_undercutmould_6_position,
|
||||
options_undercutmould_6_delay_acti: this.recipe.options_undercutmould_6_delay_acti,
|
||||
options_undercutmould_6_delay_dis: this.recipe.options_undercutmould_6_delay_dis,
|
||||
options_undercutmould_7_mode: this.recipe.options_undercutmould_7_mode,
|
||||
options_undercutmould_7_position: this.recipe.options_undercutmould_7_position,
|
||||
options_undercutmould_7_delay_acti: this.recipe.options_undercutmould_7_delay_acti,
|
||||
options_undercutmould_7_delay_dis: this.recipe.options_undercutmould_7_delay_dis,
|
||||
options_undercutmould_8_mode: this.recipe.options_undercutmould_8_mode,
|
||||
options_undercutmould_8_position: this.recipe.options_undercutmould_8_position,
|
||||
options_undercutmould_8_delay_acti: this.recipe.options_undercutmould_8_delay_acti,
|
||||
options_undercutmould_8_delay_dis: this.recipe.options_undercutmould_8_delay_dis,
|
||||
options_undercutmould_9_mode: this.recipe.options_undercutmould_9_mode,
|
||||
options_undercutmould_9_position: this.recipe.options_undercutmould_9_position,
|
||||
options_undercutmould_9_delay_acti: this.recipe.options_undercutmould_9_delay_acti,
|
||||
options_undercutmould_9_delay_dis: this.recipe.options_undercutmould_9_delay_dis,
|
||||
options_undercutmould_10_mode: this.recipe.options_undercutmould_10_mode,
|
||||
options_undercutmould_10_position: this.recipe.options_undercutmould_10_position,
|
||||
options_undercutmould_10_delay_acti: this.recipe.options_undercutmould_10_delay_acti,
|
||||
options_undercutmould_10_delay_dis: this.recipe.options_undercutmould_10_delay_dis,
|
||||
options_undercutupperplate_1_mode: this.recipe.options_undercutupperplate_1_mode,
|
||||
options_undercutupperplate_1_position: this.recipe.options_undercutupperplate_1_position,
|
||||
options_undercutupperplate_1_delay_acti: this.recipe.options_undercutupperplate_1_delay_acti,
|
||||
options_undercutupperplate_1_delay_dis: this.recipe.options_undercutupperplate_1_delay_dis,
|
||||
options_undercutupperplate_2_mode: this.recipe.options_undercutupperplate_2_mode,
|
||||
options_undercutupperplate_2_position: this.recipe.options_undercutupperplate_2_position,
|
||||
options_undercutupperplate_2_delay_acti: this.recipe.options_undercutupperplate_2_delay_acti,
|
||||
options_undercutupperplate_2_delay_dis: this.recipe.options_undercutupperplate_2_delay_dis,
|
||||
options_undercutupperplate_3_mode: this.recipe.options_undercutupperplate_3_mode,
|
||||
options_undercutupperplate_3_position: this.recipe.options_undercutupperplate_3_position,
|
||||
options_undercutupperplate_3_delay_acti: this.recipe.options_undercutupperplate_3_delay_acti,
|
||||
options_undercutupperplate_3_delay_dis: this.recipe.options_undercutupperplate_3_delay_dis,
|
||||
options_undercutupperplate_4_mode: this.recipe.options_undercutupperplate_4_mode,
|
||||
options_undercutupperplate_4_position: this.recipe.options_undercutupperplate_4_position,
|
||||
options_undercutupperplate_4_delay_acti: this.recipe.options_undercutupperplate_4_delay_acti,
|
||||
options_undercutupperplate_4_delay_dis: this.recipe.options_undercutupperplate_4_delay_dis,
|
||||
options_undercutupperplate_5_mode: this.recipe.options_undercutupperplate_5_mode,
|
||||
options_undercutupperplate_5_position: this.recipe.options_undercutupperplate_5_position,
|
||||
options_undercutupperplate_5_delay_acti: this.recipe.options_undercutupperplate_5_delay_acti,
|
||||
options_undercutupperplate_5_delay_dis: this.recipe.options_undercutupperplate_5_delay_dis,
|
||||
options_undercutupperplate_6_mode: this.recipe.options_undercutupperplate_6_mode,
|
||||
options_undercutupperplate_6_position: this.recipe.options_undercutupperplate_6_position,
|
||||
options_undercutupperplate_6_delay_acti: this.recipe.options_undercutupperplate_6_delay_acti,
|
||||
options_undercutupperplate_6_delay_dis: this.recipe.options_undercutupperplate_6_delay_dis,
|
||||
options_undercutupperplate_7_mode: this.recipe.options_undercutupperplate_7_mode,
|
||||
options_undercutupperplate_7_position: this.recipe.options_undercutupperplate_7_position,
|
||||
options_undercutupperplate_7_delay_acti: this.recipe.options_undercutupperplate_7_delay_acti,
|
||||
options_undercutupperplate_7_delay_dis: this.recipe.options_undercutupperplate_7_delay_dis,
|
||||
options_undercutupperplate_8_mode: this.recipe.options_undercutupperplate_8_mode,
|
||||
options_undercutupperplate_8_position: this.recipe.options_undercutupperplate_8_position,
|
||||
options_undercutupperplate_8_delay_acti: this.recipe.options_undercutupperplate_8_delay_acti,
|
||||
options_undercutupperplate_8_delay_dis: this.recipe.options_undercutupperplate_8_delay_dis,
|
||||
options_undercutupperplate_9_mode: this.recipe.options_undercutupperplate_9_mode,
|
||||
options_undercutupperplate_9_position: this.recipe.options_undercutupperplate_9_position,
|
||||
options_undercutupperplate_9_delay_acti: this.recipe.options_undercutupperplate_9_delay_acti,
|
||||
options_undercutupperplate_9_delay_dis: this.recipe.options_undercutupperplate_9_delay_dis,
|
||||
options_undercutupperplate_10_mode: this.recipe.options_undercutupperplate_10_mode,
|
||||
options_undercutupperplate_10_position: this.recipe.options_undercutupperplate_10_position,
|
||||
options_undercutupperplate_10_delay_acti: this.recipe.options_undercutupperplate_10_delay_acti,
|
||||
options_undercutupperplate_10_delay_dis: this.recipe.options_undercutupperplate_10_delay_dis,
|
||||
options_thermoregulator_1_enabled: this.recipe.options_thermoregulator_1_enabled,
|
||||
options_thermoregulator_1_setpoint: this.recipe.options_thermoregulator_1_setpoint,
|
||||
options_thermoregulator_2_enabled: this.recipe.options_thermoregulator_2_enabled,
|
||||
options_thermoregulator_2_setpoint: this.recipe.options_thermoregulator_2_setpoint,
|
||||
options_thermoregulator_3_enabled: this.recipe.options_thermoregulator_3_enabled,
|
||||
options_thermoregulator_3_setpoint: this.recipe.options_thermoregulator_3_setpoint,
|
||||
options_thermoregulator_4_enabled: this.recipe.options_thermoregulator_4_enabled,
|
||||
options_thermoregulator_4_setpoint: this.recipe.options_thermoregulator_4_setpoint,
|
||||
options_thermoregulator_5_enabled: this.recipe.options_thermoregulator_5_enabled,
|
||||
options_thermoregulator_5_setpoint: this.recipe.options_thermoregulator_5_setpoint,
|
||||
options_thermoregulator_6_enabled: this.recipe.options_thermoregulator_6_enabled,
|
||||
options_thermoregulator_6_setpoint: this.recipe.options_thermoregulator_6_setpoint,
|
||||
options_thermoregulator_7_enabled: this.recipe.options_thermoregulator_7_enabled,
|
||||
options_thermoregulator_7_setpoint: this.recipe.options_thermoregulator_7_setpoint,
|
||||
options_thermoregulator_8_enabled: this.recipe.options_thermoregulator_8_enabled,
|
||||
options_thermoregulator_8_setpoint: this.recipe.options_thermoregulator_8_setpoint,
|
||||
options_thermoregulator_9_enabled: this.recipe.options_thermoregulator_9_enabled,
|
||||
options_thermoregulator_9_setpoint: this.recipe.options_thermoregulator_9_setpoint,
|
||||
options_thermoregulator_10_enabled: this.recipe.options_thermoregulator_10_enabled,
|
||||
options_thermoregulator_10_setpoint: this.recipe.options_thermoregulator_10_setpoint,
|
||||
}
|
||||
);
|
||||
await recipeService.Update(this.preparePayload());
|
||||
}
|
||||
|
||||
preparePayload() {
|
||||
return {
|
||||
options_undercutmould_1_mode: this.recipe.options_undercutmould_1_mode,
|
||||
options_undercutmould_1_position: this.recipe.options_undercutmould_1_position,
|
||||
options_undercutmould_1_delay_acti: this.recipe.options_undercutmould_1_delay_acti,
|
||||
options_undercutmould_1_delay_dis: this.recipe.options_undercutmould_1_delay_dis,
|
||||
options_undercutmould_2_mode: this.recipe.options_undercutmould_2_mode,
|
||||
options_undercutmould_2_position: this.recipe.options_undercutmould_2_position,
|
||||
options_undercutmould_2_delay_acti: this.recipe.options_undercutmould_2_delay_acti,
|
||||
options_undercutmould_2_delay_dis: this.recipe.options_undercutmould_2_delay_dis,
|
||||
options_undercutmould_3_mode: this.recipe.options_undercutmould_3_mode,
|
||||
options_undercutmould_3_position: this.recipe.options_undercutmould_3_position,
|
||||
options_undercutmould_3_delay_acti: this.recipe.options_undercutmould_3_delay_acti,
|
||||
options_undercutmould_3_delay_dis: this.recipe.options_undercutmould_3_delay_dis,
|
||||
options_undercutmould_4_mode: this.recipe.options_undercutmould_4_mode,
|
||||
options_undercutmould_4_position: this.recipe.options_undercutmould_4_position,
|
||||
options_undercutmould_4_delay_acti: this.recipe.options_undercutmould_4_delay_acti,
|
||||
options_undercutmould_4_delay_dis: this.recipe.options_undercutmould_4_delay_dis,
|
||||
options_undercutmould_5_mode: this.recipe.options_undercutmould_5_mode,
|
||||
options_undercutmould_5_position: this.recipe.options_undercutmould_5_position,
|
||||
options_undercutmould_5_delay_acti: this.recipe.options_undercutmould_5_delay_acti,
|
||||
options_undercutmould_5_delay_dis: this.recipe.options_undercutmould_5_delay_dis,
|
||||
options_undercutmould_6_mode: this.recipe.options_undercutmould_6_mode,
|
||||
options_undercutmould_6_position: this.recipe.options_undercutmould_6_position,
|
||||
options_undercutmould_6_delay_acti: this.recipe.options_undercutmould_6_delay_acti,
|
||||
options_undercutmould_6_delay_dis: this.recipe.options_undercutmould_6_delay_dis,
|
||||
options_undercutmould_7_mode: this.recipe.options_undercutmould_7_mode,
|
||||
options_undercutmould_7_position: this.recipe.options_undercutmould_7_position,
|
||||
options_undercutmould_7_delay_acti: this.recipe.options_undercutmould_7_delay_acti,
|
||||
options_undercutmould_7_delay_dis: this.recipe.options_undercutmould_7_delay_dis,
|
||||
options_undercutmould_8_mode: this.recipe.options_undercutmould_8_mode,
|
||||
options_undercutmould_8_position: this.recipe.options_undercutmould_8_position,
|
||||
options_undercutmould_8_delay_acti: this.recipe.options_undercutmould_8_delay_acti,
|
||||
options_undercutmould_8_delay_dis: this.recipe.options_undercutmould_8_delay_dis,
|
||||
options_undercutmould_9_mode: this.recipe.options_undercutmould_9_mode,
|
||||
options_undercutmould_9_position: this.recipe.options_undercutmould_9_position,
|
||||
options_undercutmould_9_delay_acti: this.recipe.options_undercutmould_9_delay_acti,
|
||||
options_undercutmould_9_delay_dis: this.recipe.options_undercutmould_9_delay_dis,
|
||||
options_undercutmould_10_mode: this.recipe.options_undercutmould_10_mode,
|
||||
options_undercutmould_10_position: this.recipe.options_undercutmould_10_position,
|
||||
options_undercutmould_10_delay_acti: this.recipe.options_undercutmould_10_delay_acti,
|
||||
options_undercutmould_10_delay_dis: this.recipe.options_undercutmould_10_delay_dis,
|
||||
options_undercutupperplate_1_mode: this.recipe.options_undercutupperplate_1_mode,
|
||||
options_undercutupperplate_1_position: this.recipe.options_undercutupperplate_1_position,
|
||||
options_undercutupperplate_1_delay_acti: this.recipe.options_undercutupperplate_1_delay_acti,
|
||||
options_undercutupperplate_1_delay_dis: this.recipe.options_undercutupperplate_1_delay_dis,
|
||||
options_undercutupperplate_2_mode: this.recipe.options_undercutupperplate_2_mode,
|
||||
options_undercutupperplate_2_position: this.recipe.options_undercutupperplate_2_position,
|
||||
options_undercutupperplate_2_delay_acti: this.recipe.options_undercutupperplate_2_delay_acti,
|
||||
options_undercutupperplate_2_delay_dis: this.recipe.options_undercutupperplate_2_delay_dis,
|
||||
options_undercutupperplate_3_mode: this.recipe.options_undercutupperplate_3_mode,
|
||||
options_undercutupperplate_3_position: this.recipe.options_undercutupperplate_3_position,
|
||||
options_undercutupperplate_3_delay_acti: this.recipe.options_undercutupperplate_3_delay_acti,
|
||||
options_undercutupperplate_3_delay_dis: this.recipe.options_undercutupperplate_3_delay_dis,
|
||||
options_undercutupperplate_4_mode: this.recipe.options_undercutupperplate_4_mode,
|
||||
options_undercutupperplate_4_position: this.recipe.options_undercutupperplate_4_position,
|
||||
options_undercutupperplate_4_delay_acti: this.recipe.options_undercutupperplate_4_delay_acti,
|
||||
options_undercutupperplate_4_delay_dis: this.recipe.options_undercutupperplate_4_delay_dis,
|
||||
options_undercutupperplate_5_mode: this.recipe.options_undercutupperplate_5_mode,
|
||||
options_undercutupperplate_5_position: this.recipe.options_undercutupperplate_5_position,
|
||||
options_undercutupperplate_5_delay_acti: this.recipe.options_undercutupperplate_5_delay_acti,
|
||||
options_undercutupperplate_5_delay_dis: this.recipe.options_undercutupperplate_5_delay_dis,
|
||||
options_undercutupperplate_6_mode: this.recipe.options_undercutupperplate_6_mode,
|
||||
options_undercutupperplate_6_position: this.recipe.options_undercutupperplate_6_position,
|
||||
options_undercutupperplate_6_delay_acti: this.recipe.options_undercutupperplate_6_delay_acti,
|
||||
options_undercutupperplate_6_delay_dis: this.recipe.options_undercutupperplate_6_delay_dis,
|
||||
options_undercutupperplate_7_mode: this.recipe.options_undercutupperplate_7_mode,
|
||||
options_undercutupperplate_7_position: this.recipe.options_undercutupperplate_7_position,
|
||||
options_undercutupperplate_7_delay_acti: this.recipe.options_undercutupperplate_7_delay_acti,
|
||||
options_undercutupperplate_7_delay_dis: this.recipe.options_undercutupperplate_7_delay_dis,
|
||||
options_undercutupperplate_8_mode: this.recipe.options_undercutupperplate_8_mode,
|
||||
options_undercutupperplate_8_position: this.recipe.options_undercutupperplate_8_position,
|
||||
options_undercutupperplate_8_delay_acti: this.recipe.options_undercutupperplate_8_delay_acti,
|
||||
options_undercutupperplate_8_delay_dis: this.recipe.options_undercutupperplate_8_delay_dis,
|
||||
options_undercutupperplate_9_mode: this.recipe.options_undercutupperplate_9_mode,
|
||||
options_undercutupperplate_9_position: this.recipe.options_undercutupperplate_9_position,
|
||||
options_undercutupperplate_9_delay_acti: this.recipe.options_undercutupperplate_9_delay_acti,
|
||||
options_undercutupperplate_9_delay_dis: this.recipe.options_undercutupperplate_9_delay_dis,
|
||||
options_undercutupperplate_10_mode: this.recipe.options_undercutupperplate_10_mode,
|
||||
options_undercutupperplate_10_position: this.recipe.options_undercutupperplate_10_position,
|
||||
options_undercutupperplate_10_delay_acti: this.recipe.options_undercutupperplate_10_delay_acti,
|
||||
options_undercutupperplate_10_delay_dis: this.recipe.options_undercutupperplate_10_delay_dis,
|
||||
options_thermoregulator_1_enabled: this.recipe.options_thermoregulator_1_enabled,
|
||||
options_thermoregulator_1_setpoint: this.recipe.options_thermoregulator_1_setpoint,
|
||||
options_thermoregulator_2_enabled: this.recipe.options_thermoregulator_2_enabled,
|
||||
options_thermoregulator_2_setpoint: this.recipe.options_thermoregulator_2_setpoint,
|
||||
options_thermoregulator_3_enabled: this.recipe.options_thermoregulator_3_enabled,
|
||||
options_thermoregulator_3_setpoint: this.recipe.options_thermoregulator_3_setpoint,
|
||||
options_thermoregulator_4_enabled: this.recipe.options_thermoregulator_4_enabled,
|
||||
options_thermoregulator_4_setpoint: this.recipe.options_thermoregulator_4_setpoint,
|
||||
options_thermoregulator_5_enabled: this.recipe.options_thermoregulator_5_enabled,
|
||||
options_thermoregulator_5_setpoint: this.recipe.options_thermoregulator_5_setpoint,
|
||||
options_thermoregulator_6_enabled: this.recipe.options_thermoregulator_6_enabled,
|
||||
options_thermoregulator_6_setpoint: this.recipe.options_thermoregulator_6_setpoint,
|
||||
options_thermoregulator_7_enabled: this.recipe.options_thermoregulator_7_enabled,
|
||||
options_thermoregulator_7_setpoint: this.recipe.options_thermoregulator_7_setpoint,
|
||||
options_thermoregulator_8_enabled: this.recipe.options_thermoregulator_8_enabled,
|
||||
options_thermoregulator_8_setpoint: this.recipe.options_thermoregulator_8_setpoint,
|
||||
options_thermoregulator_9_enabled: this.recipe.options_thermoregulator_9_enabled,
|
||||
options_thermoregulator_9_setpoint: this.recipe.options_thermoregulator_9_setpoint,
|
||||
options_thermoregulator_10_enabled: this.recipe.options_thermoregulator_10_enabled,
|
||||
options_thermoregulator_10_setpoint: this.recipe.options_thermoregulator_10_setpoint,
|
||||
}
|
||||
}
|
||||
|
||||
hasErrors() {
|
||||
let payload = this.preparePayload();
|
||||
let errors = false;
|
||||
for (const key in this.preparePayload()) {
|
||||
const el = payload[key] as Recipe.IValue;
|
||||
if (el.status.hasError) errors = true;
|
||||
}
|
||||
return errors;
|
||||
}
|
||||
|
||||
async conferma() {
|
||||
|
||||
@@ -10,10 +10,7 @@
|
||||
<aside class="scrollable auto">
|
||||
<button :class="{'active':showOpzioni == 0}" @click="showOpzioni=0">Termoregolatori</button>
|
||||
<button :class="{'active':showOpzioni == 1}" @click="showOpzioni=1">Sottosquadra stampo</button>
|
||||
<button
|
||||
:class="{'active':showOpzioni == 2}"
|
||||
@click="showOpzioni=2"
|
||||
>Sottosquadra controstampo</button>
|
||||
<button :class="{'active':showOpzioni == 2}" @click="showOpzioni=2">Sottosquadra controstampo</button>
|
||||
</aside>
|
||||
<hr />
|
||||
<termoregolatori v-if="showOpzioni==0" :recipe="recipe"></termoregolatori>
|
||||
@@ -21,8 +18,12 @@
|
||||
<sottosquadracontrostampo v-if="showOpzioni==2" :recipe="recipe"></sottosquadracontrostampo>
|
||||
</section>
|
||||
<footer>
|
||||
<button class="btn" @click="annulla()">Annulla</button>
|
||||
<button class="btn btn-success" @click="conferma()">Conferma</button>
|
||||
<button class="btn" @click="annulla()">{{'cancel' | localize('Annulla')}}</button>
|
||||
<button
|
||||
class="btn btn-success"
|
||||
@click="conferma()"
|
||||
:disabled="hasErrors()"
|
||||
>{{'confirm' | localize('Conferma')}}</button>
|
||||
</footer>
|
||||
</modal>
|
||||
<stepfooter :current="10" @click="goTo"></stepfooter>
|
||||
|
||||
+4
-1
@@ -6,7 +6,10 @@
|
||||
<template v-if="recipe.pyrometer_pyrometer_enabled.status.visible">
|
||||
<div class="input-area">
|
||||
<label>{{'pyrometer_pyrometer_enabled'|localize('Abilitazione')}}</label>
|
||||
<toggle-button v-model="recipe.pyrometer_pyrometer_enabled.setpointHMI"></toggle-button>
|
||||
<toggle-button
|
||||
v-model="recipe.pyrometer_pyrometer_enabled.setpointHMI"
|
||||
:status="recipe.pyrometer_pyrometer_enabled.status"
|
||||
></toggle-button>
|
||||
</div>
|
||||
</template>
|
||||
<template v-if="recipe.pyrometer_pyrometer_delay.status.visible">
|
||||
|
||||
+4
-1
@@ -48,7 +48,10 @@
|
||||
<template v-if="recipe.pyrometer_lowerthermoregulator_sleep_enabled.status.visible">
|
||||
<div class="input-area">
|
||||
<label>{{'pyrometer_lowerthermoregulator_sleep_enabled'|localize('Abilitazione riposo')}}</label>
|
||||
<toggle-button v-model="recipe.pyrometer_lowerthermoregulator_sleep_enabled.setpointHMI"></toggle-button>
|
||||
<toggle-button
|
||||
v-model="recipe.pyrometer_lowerthermoregulator_sleep_enabled.setpointHMI"
|
||||
:status="recipe.pyrometer_lowerthermoregulator_sleep_enabled.status"
|
||||
></toggle-button>
|
||||
</div>
|
||||
</template>
|
||||
<template v-if="recipe.pyrometer_lowerthermoregulator_sleep_percentage.status.visible">
|
||||
|
||||
+4
-1
@@ -48,7 +48,10 @@
|
||||
<template v-if="recipe.pyrometer_upperthermoregulator_sleep_enabled.status.visible">
|
||||
<div class="input-area">
|
||||
<label>{{'pyrometer_upperthermoregulator_sleep_enabled'|localize('Abilitazione riposo')}}</label>
|
||||
<toggle-button v-model="recipe.pyrometer_upperthermoregulator_sleep_enabled.setpointHMI"></toggle-button>
|
||||
<toggle-button
|
||||
v-model="recipe.pyrometer_upperthermoregulator_sleep_enabled.setpointHMI"
|
||||
:status="recipe.pyrometer_upperthermoregulator_sleep_enabled.status"
|
||||
></toggle-button>
|
||||
</div>
|
||||
</template>
|
||||
<template v-if="recipe.pyrometer_upperthermoregulator_sleep_percentage.status.visible">
|
||||
|
||||
+35
-23
@@ -29,29 +29,41 @@ export default class ShowPirometroInfo extends Vue {
|
||||
|
||||
@Watch('recipe', { deep: true })
|
||||
async recipeChanged(n, o) {
|
||||
await recipeService.Update(
|
||||
{
|
||||
pyrometer_pyrometer_enabled: this.recipe.pyrometer_pyrometer_enabled,
|
||||
pyrometer_pyrometer_setpoint: this.recipe.pyrometer_pyrometer_setpoint,
|
||||
pyrometer_pyrometer_delay: this.recipe.pyrometer_pyrometer_delay,
|
||||
pyrometer_upperthermoregulator_start_adjustment: this.recipe.pyrometer_upperthermoregulator_start_adjustment,
|
||||
pyrometer_upperthermoregulator_end_adjustment: this.recipe.pyrometer_upperthermoregulator_end_adjustment,
|
||||
pyrometer_upperthermoregulator_min_percentage: this.recipe.pyrometer_upperthermoregulator_min_percentage,
|
||||
pyrometer_upperthermoregulator_max_percentage: this.recipe.pyrometer_upperthermoregulator_max_percentage,
|
||||
pyrometer_upperthermoregulator_sleep_enabled: this.recipe.pyrometer_upperthermoregulator_sleep_enabled,
|
||||
pyrometer_upperthermoregulator_sleep_percentage: this.recipe.pyrometer_upperthermoregulator_sleep_percentage,
|
||||
pyrometer_lowerthermoregulator_start_adjustment: this.recipe.pyrometer_lowerthermoregulator_start_adjustment,
|
||||
pyrometer_lowerthermoregulator_end_adjustment: this.recipe.pyrometer_lowerthermoregulator_end_adjustment,
|
||||
pyrometer_lowerthermoregulator_min_percentage: this.recipe.pyrometer_lowerthermoregulator_min_percentage,
|
||||
pyrometer_lowerthermoregulator_max_percentage: this.recipe.pyrometer_lowerthermoregulator_max_percentage,
|
||||
pyrometer_lowerthermoregulator_sleep_enabled: this.recipe.pyrometer_lowerthermoregulator_sleep_enabled,
|
||||
pyrometer_lowerthermoregulator_sleep_percentage: this.recipe.pyrometer_lowerthermoregulator_sleep_percentage,
|
||||
pyrometer_upperthermoregulator_sleep_temperature: this.recipe.pyrometer_upperthermoregulator_sleep_temperature,
|
||||
pyrometer_upperthermoregulator_working_temperature: this.recipe.pyrometer_upperthermoregulator_working_temperature,
|
||||
pyrometer_lowerthermoregulator_sleep_temperature: this.recipe.pyrometer_lowerthermoregulator_sleep_temperature,
|
||||
pyrometer_lowerthermoregulator_working_temperature: this.recipe.pyrometer_lowerthermoregulator_working_temperature,
|
||||
}
|
||||
);
|
||||
await recipeService.Update(this.preparePayload());
|
||||
}
|
||||
|
||||
preparePayload() {
|
||||
return {
|
||||
pyrometer_pyrometer_enabled: this.recipe.pyrometer_pyrometer_enabled,
|
||||
pyrometer_pyrometer_setpoint: this.recipe.pyrometer_pyrometer_setpoint,
|
||||
pyrometer_pyrometer_delay: this.recipe.pyrometer_pyrometer_delay,
|
||||
pyrometer_upperthermoregulator_start_adjustment: this.recipe.pyrometer_upperthermoregulator_start_adjustment,
|
||||
pyrometer_upperthermoregulator_end_adjustment: this.recipe.pyrometer_upperthermoregulator_end_adjustment,
|
||||
pyrometer_upperthermoregulator_min_percentage: this.recipe.pyrometer_upperthermoregulator_min_percentage,
|
||||
pyrometer_upperthermoregulator_max_percentage: this.recipe.pyrometer_upperthermoregulator_max_percentage,
|
||||
pyrometer_upperthermoregulator_sleep_enabled: this.recipe.pyrometer_upperthermoregulator_sleep_enabled,
|
||||
pyrometer_upperthermoregulator_sleep_percentage: this.recipe.pyrometer_upperthermoregulator_sleep_percentage,
|
||||
pyrometer_lowerthermoregulator_start_adjustment: this.recipe.pyrometer_lowerthermoregulator_start_adjustment,
|
||||
pyrometer_lowerthermoregulator_end_adjustment: this.recipe.pyrometer_lowerthermoregulator_end_adjustment,
|
||||
pyrometer_lowerthermoregulator_min_percentage: this.recipe.pyrometer_lowerthermoregulator_min_percentage,
|
||||
pyrometer_lowerthermoregulator_max_percentage: this.recipe.pyrometer_lowerthermoregulator_max_percentage,
|
||||
pyrometer_lowerthermoregulator_sleep_enabled: this.recipe.pyrometer_lowerthermoregulator_sleep_enabled,
|
||||
pyrometer_lowerthermoregulator_sleep_percentage: this.recipe.pyrometer_lowerthermoregulator_sleep_percentage,
|
||||
pyrometer_upperthermoregulator_sleep_temperature: this.recipe.pyrometer_upperthermoregulator_sleep_temperature,
|
||||
pyrometer_upperthermoregulator_working_temperature: this.recipe.pyrometer_upperthermoregulator_working_temperature,
|
||||
pyrometer_lowerthermoregulator_sleep_temperature: this.recipe.pyrometer_lowerthermoregulator_sleep_temperature,
|
||||
pyrometer_lowerthermoregulator_working_temperature: this.recipe.pyrometer_lowerthermoregulator_working_temperature,
|
||||
}
|
||||
}
|
||||
|
||||
hasErrors() {
|
||||
let payload = this.preparePayload();
|
||||
let errors = false;
|
||||
for (const key in this.preparePayload()) {
|
||||
const el = payload[key] as Recipe.IValue;
|
||||
if (el.status.hasError) errors = true;
|
||||
}
|
||||
return errors;
|
||||
}
|
||||
|
||||
hasEnabledFields(...fields: string[]) {
|
||||
|
||||
+5
-1
@@ -24,7 +24,11 @@
|
||||
<termoinferiore v-if="show==2" :recipe="recipe"></termoinferiore>
|
||||
<footer>
|
||||
<button class="btn" @click="annulla()">{{'cancel' | localize('Annulla')}}</button>
|
||||
<button class="btn btn-success" @click="conferma()">{{'confirm' | localize('Conferma')}}</button>
|
||||
<button
|
||||
class="btn btn-success"
|
||||
@click="conferma()"
|
||||
:disabled="hasErrors()"
|
||||
>{{'confirm' | localize('Conferma')}}</button>
|
||||
</footer>
|
||||
</modal>
|
||||
<stepfooter :current="4" @click="goTo"></stepfooter>
|
||||
|
||||
+4
-4
@@ -13,9 +13,9 @@
|
||||
<small>{{recipe.positions_frame_intermediate_speed.unitMeasure}}</small>
|
||||
</div>
|
||||
</div>
|
||||
<div class="borded_label" id="quota2">
|
||||
<div class="borded_label" id="quota5">
|
||||
<div v-focus-on:positions_frame_lower_position>
|
||||
<img src="assets/icons/png/salita.png" />
|
||||
<img src="assets/icons/png/discesa.png" />
|
||||
<span>{{recipe.positions_frame_lower_position.setpointHMI}}</span>
|
||||
<small>{{recipe.positions_frame_lower_position.unitMeasure}}</small>
|
||||
</div>
|
||||
@@ -49,9 +49,9 @@
|
||||
<small>mm</small>
|
||||
</div>
|
||||
</div>
|
||||
<div class="borded_label" id="quota5">
|
||||
<div class="borded_label" id="quota2">
|
||||
<div v-focus-on:positions_frame_upper_position>
|
||||
<img src="assets/icons/png/discesa.png" />
|
||||
<img src="assets/icons/png/salita.png" />
|
||||
<span>{{recipe.positions_frame_upper_position.setpointHMI}}</span>
|
||||
<small>{{recipe.positions_frame_upper_position.unitMeasure}}</small>
|
||||
</div>
|
||||
|
||||
+6
-6
@@ -18,22 +18,22 @@
|
||||
<div class="borded_label" id="quota3" v-focus-on>
|
||||
<div>
|
||||
<img src="assets/icons/png/quota.png" />
|
||||
<span>00</span>
|
||||
<small>mm</small>
|
||||
<span>{{recipe.general_sizes_mould_min_height.setpointHMI}}</span>
|
||||
<small>{{recipe.general_sizes_mould_min_height.unitMeasure}}</small>
|
||||
</div>
|
||||
</div>
|
||||
<div class="borded_label" id="quota4" v-focus-on>
|
||||
<div>
|
||||
<img src="assets/icons/png/quota.png" />
|
||||
<span>00</span>
|
||||
<small>mm</small>
|
||||
<span>{{recipe.general_sizes_mould_base_height.setpointHMI}}</span>
|
||||
<small>{{recipe.general_sizes_mould_base_height.unitMeasure}}</small>
|
||||
</div>
|
||||
</div>
|
||||
<div class="borded_label" id="quota5" v-focus-on>
|
||||
<div>
|
||||
<img src="assets/icons/png/quota.png" />
|
||||
<span>00</span>
|
||||
<small>mm</small>
|
||||
<span>{{recipe.general_sizes_mould_max_height.setpointHMI}}</span>
|
||||
<small>{{recipe.general_sizes_mould_max_height.unitMeasure}}</small>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
+11
-11
@@ -1,9 +1,9 @@
|
||||
e<template>
|
||||
<div class="svg-area">
|
||||
<img src="assets/svg/disegno-controstampo-quote-velocita.svg" />
|
||||
<div class="borded_label" id="quota1">
|
||||
<div class="borded_label" id="quota3">
|
||||
<div v-focus-on:positions_upperplate_lower_position>
|
||||
<img src="assets/icons/png/salita.png" />
|
||||
<img src="assets/icons/png/discesa.png" />
|
||||
<span>{{recipe.positions_upperplate_lower_position.setpointHMI}}</span>
|
||||
<small>{{recipe.positions_upperplate_lower_position.unitMeasure}}</small>
|
||||
</div>
|
||||
@@ -13,9 +13,9 @@ e<template>
|
||||
<small>{{recipe.positions_upperplate_lower_speed.unitMeasure}}</small>
|
||||
</div>
|
||||
</div>
|
||||
<div class="borded_label" id="quota2">
|
||||
<div class="borded_label" id="quota4">
|
||||
<div v-focus-on:positions_upperplate_lowerdeceleration_position>
|
||||
<img src="assets/icons/png/salita.png" />
|
||||
<img src="assets/icons/png/discesa.png" />
|
||||
<span>{{recipe.positions_upperplate_lowerdeceleration_position.setpointHMI}}</span>
|
||||
<small>{{recipe.positions_upperplate_lowerdeceleration_position.unitMeasure}}</small>
|
||||
</div>
|
||||
@@ -25,9 +25,9 @@ e<template>
|
||||
<small>{{recipe.positions_upperplate_lowerdeceleration_speed.unitMeasure}}</small>
|
||||
</div>
|
||||
</div>
|
||||
<div class="borded_label" id="quota3">
|
||||
<div class="borded_label" id="quota1">
|
||||
<div v-focus-on:positions_upperplate_upper_position>
|
||||
<img src="assets/icons/png/discesa.png" />
|
||||
<img src="assets/icons/png/salita.png" />
|
||||
<span>{{recipe.positions_upperplate_upper_position.setpointHMI}}</span>
|
||||
<small>{{recipe.positions_upperplate_upper_position.unitMeasure}}</small>
|
||||
</div>
|
||||
@@ -37,9 +37,9 @@ e<template>
|
||||
<small>{{recipe.positions_upperplate_upper_speed.unitMeasure}}</small>
|
||||
</div>
|
||||
</div>
|
||||
<div class="borded_label" id="quota4">
|
||||
<div class="borded_label" id="quota2">
|
||||
<div v-focus-on:positions_upperplate_upperdeceleration_position>
|
||||
<img src="assets/icons/png/discesa.png" />
|
||||
<img src="assets/icons/png/salita.png" />
|
||||
<span>{{recipe.positions_upperplate_upperdeceleration_position.setpointHMI}}</span>
|
||||
<small>{{recipe.positions_upperplate_upperdeceleration_position.unitMeasure}}</small>
|
||||
</div>
|
||||
@@ -50,10 +50,10 @@ e<template>
|
||||
</div>
|
||||
</div>
|
||||
<div class="borded_label" id="quota5">
|
||||
<div>
|
||||
<div v-focus-on:general_sizes_upperplate_max_height>
|
||||
<img src="assets/icons/png/quota.png" />
|
||||
<span>00</span>
|
||||
<small>mm</small>
|
||||
<span>{{recipe.general_sizes_upperplate_max_height.setpointHMI}}</span>
|
||||
<small>{{recipe.general_sizes_upperplate_max_height.unitMeasure}}</small>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
+40
-28
@@ -37,34 +37,46 @@ export default class ShowQuoteVelocitaInfo extends Vue {
|
||||
|
||||
@Watch('recipe', { deep: true })
|
||||
async recipeChanged(n, o) {
|
||||
await recipeService.Update(
|
||||
{
|
||||
positions_mould_lower_position: this.recipe.positions_mould_lower_position,
|
||||
positions_mould_lower_speed: this.recipe.positions_mould_lower_speed,
|
||||
positions_mould_intermediate_position: this.recipe.positions_mould_intermediate_position,
|
||||
positions_mould_upper_position: this.recipe.positions_mould_upper_position,
|
||||
positions_mould_upper_speed: this.recipe.positions_mould_upper_speed,
|
||||
positions_mould_upperdeceleration_position: this.recipe.positions_mould_upperdeceleration_position,
|
||||
positions_mould_upperdeceleration_speed: this.recipe.positions_mould_upperdeceleration_speed,
|
||||
positions_mould_lowerdeceleration_position: this.recipe.positions_mould_lowerdeceleration_position,
|
||||
positions_mould_lowerdeceleration_speed: this.recipe.positions_mould_lowerdeceleration_speed,
|
||||
positions_frame_lower_position: this.recipe.positions_frame_lower_position,
|
||||
positions_frame_lower_speed: this.recipe.positions_frame_lower_speed,
|
||||
positions_frame_upper_position: this.recipe.positions_frame_upper_position,
|
||||
positions_frame_upper_speed: this.recipe.positions_frame_upper_speed,
|
||||
positions_frame_intermediate_position: this.recipe.positions_frame_intermediate_position,
|
||||
positions_frame_intermediate_speed: this.recipe.positions_frame_intermediate_speed,
|
||||
positions_frame_unload_position: this.recipe.positions_frame_unload_position,
|
||||
positions_upperplate_lower_position: this.recipe.positions_upperplate_lower_position,
|
||||
positions_upperplate_lower_speed: this.recipe.positions_upperplate_lower_speed,
|
||||
positions_upperplate_upper_position: this.recipe.positions_upperplate_upper_position,
|
||||
positions_upperplate_upper_speed: this.recipe.positions_upperplate_upper_speed,
|
||||
positions_upperplate_upperdeceleration_position: this.recipe.positions_upperplate_upperdeceleration_position,
|
||||
positions_upperplate_upperdeceleration_speed: this.recipe.positions_upperplate_upperdeceleration_speed,
|
||||
positions_upperplate_lowerdeceleration_position: this.recipe.positions_upperplate_lowerdeceleration_position,
|
||||
positions_upperplate_lowerdeceleration_speed: this.recipe.positions_upperplate_lowerdeceleration_speed,
|
||||
}
|
||||
);
|
||||
await recipeService.Update(this.preparePayload());
|
||||
}
|
||||
|
||||
preparePayload() {
|
||||
return {
|
||||
positions_mould_lower_position: this.recipe.positions_mould_lower_position,
|
||||
positions_mould_lower_speed: this.recipe.positions_mould_lower_speed,
|
||||
positions_mould_intermediate_position: this.recipe.positions_mould_intermediate_position,
|
||||
positions_mould_upper_position: this.recipe.positions_mould_upper_position,
|
||||
positions_mould_upper_speed: this.recipe.positions_mould_upper_speed,
|
||||
positions_mould_upperdeceleration_position: this.recipe.positions_mould_upperdeceleration_position,
|
||||
positions_mould_upperdeceleration_speed: this.recipe.positions_mould_upperdeceleration_speed,
|
||||
positions_mould_lowerdeceleration_position: this.recipe.positions_mould_lowerdeceleration_position,
|
||||
positions_mould_lowerdeceleration_speed: this.recipe.positions_mould_lowerdeceleration_speed,
|
||||
positions_frame_lower_position: this.recipe.positions_frame_lower_position,
|
||||
positions_frame_lower_speed: this.recipe.positions_frame_lower_speed,
|
||||
positions_frame_upper_position: this.recipe.positions_frame_upper_position,
|
||||
positions_frame_upper_speed: this.recipe.positions_frame_upper_speed,
|
||||
positions_frame_intermediate_position: this.recipe.positions_frame_intermediate_position,
|
||||
positions_frame_intermediate_speed: this.recipe.positions_frame_intermediate_speed,
|
||||
positions_frame_unload_position: this.recipe.positions_frame_unload_position,
|
||||
positions_upperplate_lower_position: this.recipe.positions_upperplate_lower_position,
|
||||
positions_upperplate_lower_speed: this.recipe.positions_upperplate_lower_speed,
|
||||
positions_upperplate_upper_position: this.recipe.positions_upperplate_upper_position,
|
||||
positions_upperplate_upper_speed: this.recipe.positions_upperplate_upper_speed,
|
||||
positions_upperplate_upperdeceleration_position: this.recipe.positions_upperplate_upperdeceleration_position,
|
||||
positions_upperplate_upperdeceleration_speed: this.recipe.positions_upperplate_upperdeceleration_speed,
|
||||
positions_upperplate_lowerdeceleration_position: this.recipe.positions_upperplate_lowerdeceleration_position,
|
||||
positions_upperplate_lowerdeceleration_speed: this.recipe.positions_upperplate_lowerdeceleration_speed,
|
||||
}
|
||||
}
|
||||
|
||||
hasErrors() {
|
||||
let payload = this.preparePayload();
|
||||
let errors = false;
|
||||
for (const key in this.preparePayload()) {
|
||||
const el = payload[key] as Recipe.IValue;
|
||||
if (el.status.hasError) errors = true;
|
||||
}
|
||||
return errors;
|
||||
}
|
||||
|
||||
hasEnabledFields(...fields: string[]) {
|
||||
|
||||
+5
-1
@@ -28,7 +28,11 @@
|
||||
<controstampo v-if="show==2" :recipe="recipe"></controstampo>
|
||||
<footer>
|
||||
<button class="btn" @click="annulla()">{{'cancel' | localize('Annulla')}}</button>
|
||||
<button class="btn btn-success" @click="conferma()">{{'confirm' | localize('Conferma')}}</button>
|
||||
<button
|
||||
class="btn btn-success"
|
||||
@click="conferma()"
|
||||
:disabled="hasErrors()"
|
||||
>{{'confirm' | localize('Conferma')}}</button>
|
||||
</footer>
|
||||
</modal>
|
||||
<stepfooter :current="1" @click="goTo"></stepfooter>
|
||||
|
||||
+4
-1
@@ -6,7 +6,10 @@
|
||||
<template v-if="recipe.cooling_pyrometer_enabled.status.visible">
|
||||
<div class="input-area">
|
||||
<label>{{'cooling_pyrometer_enabled'|localize('Abilitazione')}}</label>
|
||||
<toggle-button v-model="recipe.cooling_pyrometer_enabled.setpointHMI"></toggle-button>
|
||||
<toggle-button
|
||||
v-model="recipe.cooling_pyrometer_enabled.setpointHMI"
|
||||
:status="recipe.cooling_pyrometer_enabled.status"
|
||||
></toggle-button>
|
||||
</div>
|
||||
</template>
|
||||
<template v-if="recipe.cooling_pyrometer_setpoint.status.visible">
|
||||
|
||||
+8
-2
@@ -6,7 +6,10 @@
|
||||
<template v-if="recipe.cooling_telescopic_enable.status.visible">
|
||||
<div class="input-area">
|
||||
<label>{{'cooling_telescopic_enable'|localize('Abilitazione')}}</label>
|
||||
<toggle-button v-model="recipe.cooling_telescopic_enable.setpointHMI"></toggle-button>
|
||||
<toggle-button
|
||||
v-model="recipe.cooling_telescopic_enable.setpointHMI"
|
||||
:status="recipe.cooling_telescopic_enable.status"
|
||||
></toggle-button>
|
||||
</div>
|
||||
</template>
|
||||
<template v-if="recipe.cooling_telescopic_position.status.visible">
|
||||
@@ -19,7 +22,10 @@
|
||||
<template v-if="recipe.cooling_telescopic_swing_enable.status.visible">
|
||||
<div class="input-area">
|
||||
<label>{{'cooling_telescopic_swing_enable'|localize('Abilitazione oscillazione')}}</label>
|
||||
<toggle-button v-model="recipe.cooling_telescopic_swing_enable.setpointHMI"></toggle-button>
|
||||
<toggle-button
|
||||
v-model="recipe.cooling_telescopic_swing_enable.setpointHMI"
|
||||
:status="recipe.cooling_telescopic_swing_enable.status"
|
||||
></toggle-button>
|
||||
</div>
|
||||
</template>
|
||||
<template v-if="recipe.cooling_telescopic_swing_stroke.status.visible">
|
||||
|
||||
+47
-33
@@ -41,41 +41,55 @@ export default class Raffreddamento extends Vue {
|
||||
|
||||
@Watch('recipe', { deep: true })
|
||||
async recipeChanged(n, o) {
|
||||
await recipeService.Update(
|
||||
{
|
||||
cooling_blowing_type: this.recipe.cooling_blowing_type,
|
||||
cooling_blowing_delay: this.recipe.cooling_blowing_delay,
|
||||
cooling_blowing_time: this.recipe.cooling_blowing_time,
|
||||
cooling_pyrometer_enabled: this.recipe.cooling_pyrometer_enabled,
|
||||
cooling_pyrometer_setpoint: this.recipe.cooling_pyrometer_setpoint,
|
||||
cooling_pyrometer_delay: this.recipe.cooling_pyrometer_delay,
|
||||
cooling_nebulizer_type: this.recipe.cooling_nebulizer_type,
|
||||
cooling_nebulizer_delay: this.recipe.cooling_nebulizer_delay,
|
||||
cooling_nebulizer_time: this.recipe.cooling_nebulizer_time,
|
||||
cooling_telescopic_enable: this.recipe.cooling_telescopic_enable,
|
||||
cooling_telescopic_position: this.recipe.cooling_telescopic_position,
|
||||
cooling_telescopic_swing_enable: this.recipe.cooling_telescopic_swing_enable,
|
||||
cooling_telescopic_swing_stroke: this.recipe.cooling_telescopic_swing_stroke,
|
||||
cooling_shutter_1_opening_perc: this.recipe.cooling_shutter_1_opening_perc,
|
||||
cooling_shutter_2_opening_perc: this.recipe.cooling_shutter_2_opening_perc,
|
||||
cooling_shutter_3_opening_perc: this.recipe.cooling_shutter_3_opening_perc,
|
||||
cooling_shutter_4_opening_perc: this.recipe.cooling_shutter_4_opening_perc,
|
||||
cooling_shutter_5_opening_perc: this.recipe.cooling_shutter_5_opening_perc,
|
||||
cooling_shutter_6_opening_perc: this.recipe.cooling_shutter_6_opening_perc,
|
||||
cooling_shutter_7_opening_perc: this.recipe.cooling_shutter_7_opening_perc,
|
||||
cooling_shutter_8_opening_perc: this.recipe.cooling_shutter_8_opening_perc,
|
||||
cooling_shutter_9_opening_perc: this.recipe.cooling_shutter_9_opening_perc,
|
||||
cooling_shutter_10_opening_perc: this.recipe.cooling_shutter_10_opening_perc,
|
||||
cooling_shutter_11_opening_perc: this.recipe.cooling_shutter_11_opening_perc,
|
||||
cooling_shutter_12_opening_perc: this.recipe.cooling_shutter_12_opening_perc,
|
||||
cooling_shutter_13_opening_perc: this.recipe.cooling_shutter_13_opening_perc,
|
||||
cooling_shutter_14_opening_perc: this.recipe.cooling_shutter_14_opening_perc,
|
||||
cooling_shutter_15_opening_perc: this.recipe.cooling_shutter_15_opening_perc,
|
||||
cooling_shutter_16_opening_perc: this.recipe.cooling_shutter_16_opening_perc,
|
||||
}
|
||||
);
|
||||
await recipeService.Update(this.preparePayload());
|
||||
}
|
||||
|
||||
|
||||
preparePayload() {
|
||||
return {
|
||||
cooling_blowing_type: this.recipe.cooling_blowing_type,
|
||||
cooling_blowing_delay: this.recipe.cooling_blowing_delay,
|
||||
cooling_blowing_time: this.recipe.cooling_blowing_time,
|
||||
cooling_pyrometer_enabled: this.recipe.cooling_pyrometer_enabled,
|
||||
cooling_pyrometer_setpoint: this.recipe.cooling_pyrometer_setpoint,
|
||||
cooling_pyrometer_delay: this.recipe.cooling_pyrometer_delay,
|
||||
cooling_nebulizer_type: this.recipe.cooling_nebulizer_type,
|
||||
cooling_nebulizer_delay: this.recipe.cooling_nebulizer_delay,
|
||||
cooling_nebulizer_time: this.recipe.cooling_nebulizer_time,
|
||||
cooling_telescopic_enable: this.recipe.cooling_telescopic_enable,
|
||||
cooling_telescopic_position: this.recipe.cooling_telescopic_position,
|
||||
cooling_telescopic_swing_enable: this.recipe.cooling_telescopic_swing_enable,
|
||||
cooling_telescopic_swing_stroke: this.recipe.cooling_telescopic_swing_stroke,
|
||||
cooling_shutter_1_opening_perc: this.recipe.cooling_shutter_1_opening_perc,
|
||||
cooling_shutter_2_opening_perc: this.recipe.cooling_shutter_2_opening_perc,
|
||||
cooling_shutter_3_opening_perc: this.recipe.cooling_shutter_3_opening_perc,
|
||||
cooling_shutter_4_opening_perc: this.recipe.cooling_shutter_4_opening_perc,
|
||||
cooling_shutter_5_opening_perc: this.recipe.cooling_shutter_5_opening_perc,
|
||||
cooling_shutter_6_opening_perc: this.recipe.cooling_shutter_6_opening_perc,
|
||||
cooling_shutter_7_opening_perc: this.recipe.cooling_shutter_7_opening_perc,
|
||||
cooling_shutter_8_opening_perc: this.recipe.cooling_shutter_8_opening_perc,
|
||||
cooling_shutter_9_opening_perc: this.recipe.cooling_shutter_9_opening_perc,
|
||||
cooling_shutter_10_opening_perc: this.recipe.cooling_shutter_10_opening_perc,
|
||||
cooling_shutter_11_opening_perc: this.recipe.cooling_shutter_11_opening_perc,
|
||||
cooling_shutter_12_opening_perc: this.recipe.cooling_shutter_12_opening_perc,
|
||||
cooling_shutter_13_opening_perc: this.recipe.cooling_shutter_13_opening_perc,
|
||||
cooling_shutter_14_opening_perc: this.recipe.cooling_shutter_14_opening_perc,
|
||||
cooling_shutter_15_opening_perc: this.recipe.cooling_shutter_15_opening_perc,
|
||||
cooling_shutter_16_opening_perc: this.recipe.cooling_shutter_16_opening_perc,
|
||||
}
|
||||
}
|
||||
|
||||
hasErrors() {
|
||||
let payload = this.preparePayload();
|
||||
let errors = false;
|
||||
for (const key in this.preparePayload()) {
|
||||
const el = payload[key] as Recipe.IValue;
|
||||
if (el.status.hasError) errors = true;
|
||||
}
|
||||
return errors;
|
||||
}
|
||||
|
||||
|
||||
hasEnabledFields(...fields: string[]) {
|
||||
let result = false;
|
||||
for (const field of fields) {
|
||||
|
||||
+5
-1
@@ -40,7 +40,11 @@
|
||||
<otturatori v-if="show==4" :recipe="recipe"></otturatori>
|
||||
<footer>
|
||||
<button class="btn" @click="annulla()">{{'cancel' | localize('Annulla')}}</button>
|
||||
<button class="btn btn-success" @click="conferma()">{{'confirm' | localize('Conferma')}}</button>
|
||||
<button
|
||||
class="btn btn-success"
|
||||
@click="conferma()"
|
||||
:disabled="hasErrors()"
|
||||
>{{'confirm' | localize('Conferma')}}</button>
|
||||
</footer>
|
||||
</modal>
|
||||
<stepfooter :current="7" @click="goTo"></stepfooter>
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user