Merge branch 'Star_Paddle' into Connect-UI
This commit is contained in:
@@ -108,5 +108,12 @@
|
||||
</Component>
|
||||
</Component>
|
||||
</Component>
|
||||
<Component Name="Events">
|
||||
<Variable SymbolicName="Donwtimes" BrowseName="Donwtimes" DataType="ua:String" ValueRank="Scalar" />
|
||||
<Variable SymbolicName="Production" BrowseName="Production" DataType="ua:String" ValueRank="Scalar" />
|
||||
<Variable SymbolicName="Kpis" BrowseName="Kpis" DataType="ua:String" ValueRank="Scalar" />
|
||||
<Variable SymbolicName="Tools" BrowseName="Tools" DataType="ua:String" ValueRank="Scalar" />
|
||||
<Variable SymbolicName="Messages" BrowseName="Messages" DataType="ua:String" ValueRank="Scalar" />
|
||||
</Component>
|
||||
</Machine>
|
||||
</ModelDesign>
|
||||
@@ -85,6 +85,10 @@
|
||||
<key>LoaderXsize</key>
|
||||
<value>1400</value>
|
||||
</entry>
|
||||
<entry>
|
||||
<key>loaderSuckersNumber</key>
|
||||
<value>12</value>
|
||||
</entry>
|
||||
<entry>
|
||||
<key>ThermoCameraXpos</key>
|
||||
<value>93</value>
|
||||
|
||||
@@ -33,7 +33,7 @@ namespace Thermo.Active.Database.Controllers
|
||||
private const string machineAxisSpeed = "Machine:Axes:%NN%:FeedRate";
|
||||
private const string machineAxisLoad = "Machine:Axes:%NN%:Load";
|
||||
private const string machineAxisName = "Machine:Axes:%NN%:Name";
|
||||
private const string machineEventKpis = "Machine:Events:Kpis";
|
||||
private const string machineEventKpis = "Events:Kpis";
|
||||
|
||||
public static void WriteProductionNotification(uint ProductionProcess, string Notification)
|
||||
{
|
||||
|
||||
@@ -63,6 +63,13 @@ namespace Thermo.Active.Database.Controllers
|
||||
.Where(x => x.UserId == userId)
|
||||
.ToList();
|
||||
}
|
||||
public List<KeyboardUserSoftKeyModel> FindkeyboardSoftkeys(int userId)
|
||||
{
|
||||
return dbCtx.
|
||||
KeyboardUserSoftkeys
|
||||
.Where(x => x.UserId == userId)
|
||||
.ToList();
|
||||
}
|
||||
|
||||
public List<DTOUserSoftKeyConfigModel> GetUserFavoriteSoftkeys(int userId)
|
||||
{
|
||||
@@ -87,7 +94,8 @@ namespace Thermo.Active.Database.Controllers
|
||||
softKeys.Add(new FavoriteUserSoftkeyModel()
|
||||
{
|
||||
UserId = userId,
|
||||
SoftkeyId = softKeyId
|
||||
SoftkeyId = softKeyId,
|
||||
Type = (int) SOFTKEY_PLACE.PADDLE
|
||||
});
|
||||
}
|
||||
|
||||
@@ -111,5 +119,83 @@ namespace Thermo.Active.Database.Controllers
|
||||
// Save database context
|
||||
dbCtx.SaveChanges();
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
public DTOKeyboardSoftKeyModel GetKeyboardFavoriteSoftkeys(int userId)
|
||||
{
|
||||
|
||||
// Find user softkey stored in the database
|
||||
List<KeyboardUserSoftKeyModel> keyboardKey = FindkeyboardSoftkeys(userId);
|
||||
|
||||
// Get config
|
||||
DTOKeyboardSoftKeyModel keybSoftkey = new DTOKeyboardSoftKeyModel();
|
||||
if(keyboardKey.Count==0)
|
||||
{
|
||||
keybSoftkey.IdStar1 = 0;
|
||||
keybSoftkey.IdStar2 = 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
keybSoftkey.IdStar1 = keyboardKey.FirstOrDefault().SoftkeyId1;
|
||||
keybSoftkey.IdStar2 = keyboardKey.FirstOrDefault().SoftkeyId2;
|
||||
}
|
||||
|
||||
return keybSoftkey;
|
||||
}
|
||||
|
||||
public DTOKeyboardSoftKeyModel GetKeyboardFavoriteSoftkeysLoggedUser()
|
||||
{
|
||||
|
||||
List<MachineUserModel> users = dbCtx
|
||||
.Sessions
|
||||
.Include("MachineUser")
|
||||
.Select(x => x.MachineUser)
|
||||
.GroupBy(x => x.MachineUserId)
|
||||
.Select(x => x.FirstOrDefault())
|
||||
.ToList();
|
||||
|
||||
if (users.Count > 0)
|
||||
return GetKeyboardFavoriteSoftkeys(users[0].UserId);
|
||||
else
|
||||
return GetKeyboardFavoriteSoftkeys(-1);
|
||||
}
|
||||
|
||||
|
||||
public DTOKeyboardSoftKeyModel SetKeyboardFavoriteSoftkeys(int userId,int idSoftkey, int pos)
|
||||
{
|
||||
|
||||
// Find user softkey stored in the database
|
||||
List<KeyboardUserSoftKeyModel> keyboardKey = FindkeyboardSoftkeys(userId);
|
||||
if (keyboardKey.Count == 0)
|
||||
{
|
||||
KeyboardUserSoftKeyModel newModel = new KeyboardUserSoftKeyModel();
|
||||
newModel.UserId = userId;
|
||||
if(pos==1)
|
||||
{
|
||||
newModel.SoftkeyId1 = idSoftkey;
|
||||
newModel.SoftkeyId2 = 0;
|
||||
}
|
||||
else if (pos == 2)
|
||||
{
|
||||
newModel.SoftkeyId1 = 0;
|
||||
newModel.SoftkeyId2 = idSoftkey;
|
||||
}
|
||||
dbCtx.KeyboardUserSoftkeys.Add(newModel);
|
||||
}
|
||||
else
|
||||
{
|
||||
KeyboardUserSoftKeyModel model = keyboardKey.FirstOrDefault();
|
||||
if (pos == 1)
|
||||
model.SoftkeyId1 = idSoftkey;
|
||||
else if (pos == 2)
|
||||
model.SoftkeyId2 = idSoftkey;
|
||||
}
|
||||
|
||||
dbCtx.SaveChanges();
|
||||
return GetKeyboardFavoriteSoftkeys(userId);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -26,6 +26,7 @@ namespace Thermo.Active.Database
|
||||
public DbSet<FunctionAccessModel> FunctionsAccess { get; set; }
|
||||
public DbSet<SessionModel> Sessions { get; set; }
|
||||
public DbSet<FavoriteUserSoftkeyModel> FavoriteUserSoftkeys { get; set; }
|
||||
public DbSet<KeyboardUserSoftKeyModel> KeyboardUserSoftkeys { get; set; }
|
||||
// Maintenances
|
||||
public DbSet<MaintenanceModel> Maintenances { get; set; }
|
||||
public DbSet<PerformedMaintenanceModel> PerformedMaintenances { get; set; }
|
||||
|
||||
+29
@@ -0,0 +1,29 @@
|
||||
// <auto-generated />
|
||||
namespace Thermo.Active.Database.Migrations
|
||||
{
|
||||
using System.CodeDom.Compiler;
|
||||
using System.Data.Entity.Migrations;
|
||||
using System.Data.Entity.Migrations.Infrastructure;
|
||||
using System.Resources;
|
||||
|
||||
[GeneratedCode("EntityFramework.Migrations", "6.2.0-61023")]
|
||||
public sealed partial class AddedKeyboaSoftkey : IMigrationMetadata
|
||||
{
|
||||
private readonly ResourceManager Resources = new ResourceManager(typeof(AddedKeyboaSoftkey));
|
||||
|
||||
string IMigrationMetadata.Id
|
||||
{
|
||||
get { return "202011051531133_AddedKeyboaSoftkey"; }
|
||||
}
|
||||
|
||||
string IMigrationMetadata.Source
|
||||
{
|
||||
get { return null; }
|
||||
}
|
||||
|
||||
string IMigrationMetadata.Target
|
||||
{
|
||||
get { return Resources.GetString("Target"); }
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,27 @@
|
||||
namespace Thermo.Active.Database.Migrations
|
||||
{
|
||||
using System;
|
||||
using System.Data.Entity.Migrations;
|
||||
|
||||
public partial class AddedKeyboaSoftkey : DbMigration
|
||||
{
|
||||
public override void Up()
|
||||
{
|
||||
CreateTable(
|
||||
"dbo.keyboard_user_softKey",
|
||||
c => new
|
||||
{
|
||||
user_id = c.Int(nullable: false),
|
||||
pos1_softkey_id = c.Int(nullable: false),
|
||||
pos2_softkey_id = c.Int(nullable: false),
|
||||
})
|
||||
.PrimaryKey(t => t.user_id);
|
||||
|
||||
}
|
||||
|
||||
public override void Down()
|
||||
{
|
||||
DropTable("dbo.keyboard_user_softKey");
|
||||
}
|
||||
}
|
||||
}
|
||||
File diff suppressed because one or more lines are too long
@@ -150,6 +150,10 @@
|
||||
<Compile Include="Migrations\202011051133455_AddedTypeKey.Designer.cs">
|
||||
<DependentUpon>202011051133455_AddedTypeKey.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Migrations\202011051531133_AddedKeyboaSoftkey.cs" />
|
||||
<Compile Include="Migrations\202011051531133_AddedKeyboaSoftkey.Designer.cs">
|
||||
<DependentUpon>202011051531133_AddedKeyboaSoftkey.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Migrations\Configuration.cs" />
|
||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||
<Compile Include="Redis\redUtil.cs" />
|
||||
@@ -198,6 +202,9 @@
|
||||
<EmbeddedResource Include="Migrations\202011051133455_AddedTypeKey.resx">
|
||||
<DependentUpon>202011051133455_AddedTypeKey.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="Migrations\202011051531133_AddedKeyboaSoftkey.resx">
|
||||
<DependentUpon>202011051531133_AddedKeyboaSoftkey.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
</ItemGroup>
|
||||
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
||||
</Project>
|
||||
@@ -68,6 +68,12 @@ namespace Thermo.Active.Model
|
||||
GROUP = 2
|
||||
}
|
||||
|
||||
public enum SOFTKEY_PLACE : int
|
||||
{
|
||||
PADDLE = 0,
|
||||
GANT = 1,
|
||||
}
|
||||
|
||||
public enum HEAD_TYPE
|
||||
{
|
||||
SPINDLE = 0,
|
||||
|
||||
@@ -12,6 +12,14 @@ namespace Thermo.Active.Model.DTOModels
|
||||
public string RefCallLabel { get; set; } = "";
|
||||
public SOFTKEY_TYPE Type { get; set; }
|
||||
public Dictionary<int, string> SubKeys { get; set; }
|
||||
public SOFTKEY_TYPE Place { get; set; }
|
||||
}
|
||||
|
||||
|
||||
public class DTOKeyboardSoftKeyModel
|
||||
{
|
||||
public int IdStar1 { get; set; }
|
||||
public int IdStar2 { get; set; }
|
||||
}
|
||||
|
||||
public class DTOUserSoftKeyModel
|
||||
|
||||
@@ -0,0 +1,21 @@
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.ComponentModel.DataAnnotations.Schema;
|
||||
|
||||
namespace Thermo.Active.Model.DatabaseModels
|
||||
{
|
||||
[Table("keyboard_user_softKey")]
|
||||
public class KeyboardUserSoftKeyModel
|
||||
{
|
||||
[Key]
|
||||
[Column("user_id")]
|
||||
[DatabaseGenerated(DatabaseGeneratedOption.None)]
|
||||
public int UserId { get; set; }
|
||||
|
||||
[Column("pos1_softkey_id")]
|
||||
public int SoftkeyId1 { get; set; }
|
||||
|
||||
[Column("pos2_softkey_id")]
|
||||
public int SoftkeyId2 { get; set; }
|
||||
|
||||
}
|
||||
}
|
||||
@@ -87,6 +87,7 @@
|
||||
<Compile Include="DatabaseModels\FavoriteUserSoftKeyModel.cs" />
|
||||
<Compile Include="DatabaseModels\FunctionAccessModel.cs" />
|
||||
<Compile Include="ConfigModels\MessageModel.cs" />
|
||||
<Compile Include="DatabaseModels\KeyboardUserSoftKeyModel.cs" />
|
||||
<Compile Include="DatabaseModels\MachineModel.cs" />
|
||||
<Compile Include="DatabaseModels\MaintenanceFileModel.cs" />
|
||||
<Compile Include="DatabaseModels\MaintenanceModel.cs" />
|
||||
|
||||
@@ -7,6 +7,7 @@ using System.Configuration;
|
||||
using System.Globalization;
|
||||
using System.Linq;
|
||||
using Thermo.Active.Database.Controllers;
|
||||
using Thermo.Active.Model.ConfigModels;
|
||||
using Thermo.Active.Model.DatabaseModels;
|
||||
using Thermo.Active.Model.DTOModels;
|
||||
using Thermo.Active.Model.DTOModels.AlarmModels;
|
||||
@@ -1795,6 +1796,16 @@ namespace Thermo.Active.NC
|
||||
}
|
||||
// se si in questo caso scrivo configurazione attuale...
|
||||
WriteRecipeParams(updtRecipe, nMaxParamWrite, delayParamWrite);
|
||||
|
||||
using (UserSoftkeysController controller = new UserSoftkeysController())
|
||||
{
|
||||
DTOKeyboardSoftKeyModel keybKey = controller.GetKeyboardFavoriteSoftkeysLoggedUser();
|
||||
libraryError = WriteKeyboardStarSoftkey(keybKey.IdStar1, keybKey.IdStar2);
|
||||
if (libraryError.IsError())
|
||||
return libraryError;
|
||||
}
|
||||
|
||||
|
||||
// Ack !
|
||||
libraryError = numericalControl.PLC_WAckConfRecipeRequest();
|
||||
if (libraryError.IsError())
|
||||
@@ -3076,6 +3087,29 @@ namespace Thermo.Active.NC
|
||||
return libraryError;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Scrive le softkey star
|
||||
/// </summary>
|
||||
/// <param name="idKey1">Softkey ID of the first button</param>
|
||||
/// <param name="idKey2">Softkey ID of the second button</param>
|
||||
/// <returns></returns>
|
||||
public CmsError WriteKeyboardStarSoftkey(int idkey1, int idkey2)
|
||||
{
|
||||
int val1 = 0;
|
||||
int val2 = 0;
|
||||
|
||||
UserSoftKeyConfigModel userSoftkey1 = SoftKeysConfig.Where(X => X.Id == idkey1).FirstOrDefault();
|
||||
UserSoftKeyConfigModel userSoftkey2 = SoftKeysConfig.Where(X => X.Id == idkey2).FirstOrDefault();
|
||||
if (userSoftkey1 != null)
|
||||
val1 = userSoftkey1.PlcId;
|
||||
if (userSoftkey2 != null)
|
||||
val2 = userSoftkey2.PlcId;
|
||||
|
||||
CmsError libraryError = numericalControl.PLC_WKeyboardSoftkey((ushort)val1, (ushort)val2);
|
||||
|
||||
return libraryError;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Write all warmers load for recipe
|
||||
/// </summary>
|
||||
|
||||
@@ -1,10 +1,13 @@
|
||||
using System;
|
||||
using CMS_CORE_Library.Models;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Security.Claims;
|
||||
using System.Web.Http;
|
||||
using Thermo.Active.Database.Controllers;
|
||||
using Thermo.Active.Model.DTOModels;
|
||||
using Thermo.Active.NC;
|
||||
using Thermo.Active.Utils;
|
||||
using static Thermo.Active.Model.Constants;
|
||||
|
||||
namespace Thermo.Active.Controllers.WebApi
|
||||
@@ -12,6 +15,12 @@ namespace Thermo.Active.Controllers.WebApi
|
||||
[RoutePrefix("api/user_softkey")]
|
||||
public class FavoriteUserSoftkeyController : ApiController
|
||||
{
|
||||
/// <summary>
|
||||
/// Oggetto adapter condiviso da WebAPI
|
||||
/// </summary>
|
||||
protected static NcAdapter ncAdapter = new NcAdapter();
|
||||
|
||||
|
||||
[Route("favorite"), HttpGet]
|
||||
[WebApiAuthorize(FunctionAccess = FUNCTIONALITY_NAMES.USER_FUNCTIONS, Action = ACTIONS.READ)]
|
||||
public IHttpActionResult GetFavoriteSoftkeys()
|
||||
@@ -51,5 +60,49 @@ namespace Thermo.Active.Controllers.WebApi
|
||||
}
|
||||
}
|
||||
|
||||
[Route("keyboard"), HttpGet]
|
||||
[WebApiAuthorize(FunctionAccess = FUNCTIONALITY_NAMES.USER_FUNCTIONS, Action = ACTIONS.READ)]
|
||||
public IHttpActionResult GetKeyboardSoftkeys()
|
||||
{
|
||||
var identity = User.Identity as ClaimsIdentity;
|
||||
// Find user id from the bearer token
|
||||
var userId = identity.Claims.FirstOrDefault(c => c.Type == USER_ID_KEY);
|
||||
int userIdInt = Convert.ToInt32(userId.Value);
|
||||
using (UserSoftkeysController controller = new UserSoftkeysController())
|
||||
{
|
||||
return Ok(controller.GetKeyboardFavoriteSoftkeys(userIdInt));
|
||||
}
|
||||
}
|
||||
|
||||
[Route("keyboard"), HttpPut]
|
||||
[WebApiAuthorize(FunctionAccess = FUNCTIONALITY_NAMES.GENERAL, Action = ACTIONS.WRITE)]
|
||||
public IHttpActionResult setKeyboardSoftkey(int softkeyId, int position)
|
||||
{
|
||||
if (position > 2)
|
||||
return BadRequest("position_error");
|
||||
|
||||
var identity = User.Identity as ClaimsIdentity;
|
||||
// Find user id from the bearer token
|
||||
var userId = identity.Claims.FirstOrDefault(c => c.Type == USER_ID_KEY);
|
||||
int userIdInt = Convert.ToInt32(userId.Value);
|
||||
|
||||
// Try connection
|
||||
CmsError libraryError = ncAdapter.Connect();
|
||||
|
||||
using (UserSoftkeysController controller = new UserSoftkeysController())
|
||||
{
|
||||
DTOKeyboardSoftKeyModel softkey = controller.SetKeyboardFavoriteSoftkeys(userIdInt, softkeyId, position);
|
||||
libraryError=ncAdapter.WriteKeyboardStarSoftkey(softkey.IdStar1, softkey.IdStar2);
|
||||
if (libraryError.IsError())
|
||||
return BadRequest(libraryError.localizationKey);
|
||||
|
||||
return Ok(softkey);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -14,6 +14,7 @@ using System.Windows.Media.Animation;
|
||||
using TeamDev.SDK.MVVM;
|
||||
using Thermo.Active.Config;
|
||||
using Thermo.Active.Database.Controllers;
|
||||
using Thermo.Active.Model.DTOModels;
|
||||
using Thermo.Active.Model.DTOModels.ThRecipe;
|
||||
using Thermo.Active.Model.DTOModels.ThWarmers;
|
||||
using Thermo.Active.NC;
|
||||
@@ -732,6 +733,18 @@ namespace Thermo.Active.Controllers.WebApi
|
||||
return checkError;
|
||||
}
|
||||
|
||||
using (UserSoftkeysController controller = new UserSoftkeysController())
|
||||
{
|
||||
DTOKeyboardSoftKeyModel keybKey = controller.GetKeyboardFavoriteSoftkeysLoggedUser();
|
||||
libraryError = ncAdapter.WriteKeyboardStarSoftkey(keybKey.IdStar1, keybKey.IdStar2);
|
||||
if (libraryError.IsError())
|
||||
{
|
||||
ThermoActiveLogger.LogError($"WriteCurrentRecipeToPlc | WriteKeyboardStarSoftkey error | {checkError.exception}");
|
||||
return libraryError;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// process ch load setup...
|
||||
Dictionary<int, int> newRisk = new Dictionary<int, int>();
|
||||
|
||||
@@ -452,6 +452,7 @@ namespace Thermo.Active.Listeners.SignalR
|
||||
|
||||
if (!LastProdPanelData.Equals(currProdPanel))
|
||||
{
|
||||
bool newPiece = currProdPanel.NumDone != LastProdPanelData.NumDone;
|
||||
LastProdPanelData = currProdPanel;
|
||||
|
||||
var context = GlobalHost.ConnectionManager.GetHubContext<NcHub>();
|
||||
@@ -459,7 +460,7 @@ namespace Thermo.Active.Listeners.SignalR
|
||||
|
||||
if (Config.ServerConfig.ServerStartupConfig.CmsConnectReady)
|
||||
{
|
||||
if (currProdPanel.NumDone != LastProdPanelData.NumDone)
|
||||
if (newPiece)
|
||||
RedisController.WriteProductionRepsDone(1, currProdPanel.NumDone.ToString());
|
||||
|
||||
if (currProdPanel.NumTarget != LastProdPanelData.NumTarget)
|
||||
@@ -468,10 +469,10 @@ namespace Thermo.Active.Listeners.SignalR
|
||||
//if (currProdPanel.LastTCiclo != LastProdPanelData.LastTCiclo)
|
||||
// RedisController.WriteProductionCycleTime(1, currProdPanel.LastTCiclo.ToString());
|
||||
|
||||
if (currProdPanel.NumDone > 0 && currProdPanel.NumDone != LastProdPanelData.NumDone)
|
||||
if (currProdPanel.NumDone > 0 && newPiece)
|
||||
{
|
||||
var ts = DateTime.UtcNow.ToString("o");
|
||||
var a = "{\"v\": { \"PART_COUNT\": 1}\"ts\": " + ts + "}";
|
||||
var a = "{\"v\": { \"PART_COUNT\": 1},\"ts\": \"" + ts + "\"}";
|
||||
RedisController.WriteMachineEventKpis(a);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
using Microsoft.Owin.Security;
|
||||
using CMS_CORE_Library.Models;
|
||||
using Microsoft.Owin.Security;
|
||||
using Microsoft.Owin.Security.OAuth;
|
||||
using System;
|
||||
using System.Linq;
|
||||
@@ -6,6 +7,8 @@ using System.Security.Claims;
|
||||
using System.Threading.Tasks;
|
||||
using Thermo.Active.Database.Controllers;
|
||||
using Thermo.Active.Model.DatabaseModels;
|
||||
using Thermo.Active.Model.DTOModels;
|
||||
using Thermo.Active.NC;
|
||||
using static Thermo.Active.Config.ServerConfig;
|
||||
using static Thermo.Active.Model.Constants;
|
||||
|
||||
@@ -13,6 +16,8 @@ namespace Thermo.Active.Provider
|
||||
{
|
||||
public class ApplicationOAuthProvider : OAuthAuthorizationServerProvider
|
||||
{
|
||||
protected static NcAdapter ncAdapter = new NcAdapter();
|
||||
|
||||
public override async Task ValidateClientAuthentication(OAuthValidateClientAuthenticationContext context)
|
||||
{
|
||||
// Validate client
|
||||
@@ -63,6 +68,21 @@ namespace Thermo.Active.Provider
|
||||
|
||||
await base.GrantResourceOwnerCredentials(context);
|
||||
|
||||
// Try connection
|
||||
CmsError libraryError = ncAdapter.Connect();
|
||||
|
||||
using (UserSoftkeysController controller = new UserSoftkeysController())
|
||||
{
|
||||
DTOKeyboardSoftKeyModel softkey = controller.GetKeyboardFavoriteSoftkeys(user.UserId);
|
||||
libraryError = ncAdapter.WriteKeyboardStarSoftkey(softkey.IdStar1, softkey.IdStar2);
|
||||
if (libraryError.IsError())
|
||||
{
|
||||
context.SetError("plc_not_connected");
|
||||
return;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
catch (Exception ex)
|
||||
|
||||
@@ -119,8 +119,26 @@
|
||||
color: #979797;
|
||||
margin: 0 1rem;
|
||||
|
||||
.keyb{
|
||||
border: 2px solid #979797;
|
||||
width: 35px;
|
||||
height: 35px;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
border-radius: 25px;
|
||||
font-size: 22px;
|
||||
font-weight: bold;
|
||||
line-height: 35px;
|
||||
&.active {
|
||||
color: #1791ff;
|
||||
border-color: #1791ff;
|
||||
}
|
||||
}
|
||||
|
||||
&.active {
|
||||
color: #1791ff;
|
||||
border-color: #1791ff;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -211,6 +211,14 @@
|
||||
flex: 1;
|
||||
flex-flow: column;
|
||||
align-items: center;
|
||||
.ventosa{
|
||||
color: #FFFF;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
.volantino{
|
||||
height: 48px;
|
||||
width: 48px;
|
||||
@@ -218,11 +226,33 @@
|
||||
bottom: 101px;
|
||||
left: 100px;
|
||||
}
|
||||
.quota-volantino{
|
||||
height: 48px;
|
||||
width: 169px;
|
||||
position: absolute;
|
||||
bottom: 101px;
|
||||
left: 165px;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
font-size: 1.2em;
|
||||
}
|
||||
.quota-caricatore{
|
||||
height: 48px;
|
||||
width: 169px;
|
||||
position: absolute;
|
||||
bottom: 137px;
|
||||
right: 71px;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: flex-end;
|
||||
font-size: 1.2em;
|
||||
}
|
||||
.load-label{
|
||||
width: 100%;
|
||||
text-align: center;
|
||||
font-size: 2em;
|
||||
color: #4b4b4b;
|
||||
padding-right: 45px;
|
||||
}
|
||||
|
||||
.borded_label {
|
||||
|
||||
@@ -189,6 +189,14 @@
|
||||
flex-flow: column;
|
||||
align-items: center;
|
||||
}
|
||||
.setup .modal section.body section article .svg-area .ventosa {
|
||||
color: #FFFF;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
.setup .modal section.body section article .svg-area .volantino {
|
||||
height: 48px;
|
||||
width: 48px;
|
||||
@@ -196,11 +204,33 @@
|
||||
bottom: 101px;
|
||||
left: 100px;
|
||||
}
|
||||
.setup .modal section.body section article .svg-area .quota-volantino {
|
||||
height: 48px;
|
||||
width: 169px;
|
||||
position: absolute;
|
||||
bottom: 101px;
|
||||
left: 165px;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
font-size: 1.2em;
|
||||
}
|
||||
.setup .modal section.body section article .svg-area .quota-caricatore {
|
||||
height: 48px;
|
||||
width: 169px;
|
||||
position: absolute;
|
||||
bottom: 137px;
|
||||
right: 71px;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: flex-end;
|
||||
font-size: 1.2em;
|
||||
}
|
||||
.setup .modal section.body section article .svg-area .load-label {
|
||||
width: 100%;
|
||||
text-align: center;
|
||||
font-size: 2em;
|
||||
color: #4b4b4b;
|
||||
padding-right: 45px;
|
||||
}
|
||||
.setup .modal section.body section article .svg-area .borded_label {
|
||||
cursor: pointer;
|
||||
@@ -5108,8 +5138,25 @@ article .box .body {
|
||||
color: #979797;
|
||||
margin: 0 1rem;
|
||||
}
|
||||
.paddle section footer .configure .keyb {
|
||||
border: 2px solid #979797;
|
||||
width: 35px;
|
||||
height: 35px;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
border-radius: 25px;
|
||||
font-size: 22px;
|
||||
font-weight: bold;
|
||||
line-height: 35px;
|
||||
}
|
||||
.paddle section footer .configure .keyb.active {
|
||||
color: #1791ff;
|
||||
border-color: #1791ff;
|
||||
}
|
||||
.paddle section footer .configure.active {
|
||||
color: #1791ff;
|
||||
border-color: #1791ff;
|
||||
}
|
||||
.softkey {
|
||||
width: 100%;
|
||||
|
||||
@@ -14,10 +14,12 @@ import { messageService } from "@/_base";
|
||||
export default class Paddle extends Vue {
|
||||
|
||||
|
||||
isOpen: boolean = true;
|
||||
isOpen: boolean = false;
|
||||
openFull: boolean = false
|
||||
configMode: boolean = false;
|
||||
|
||||
configkey1: boolean = false;
|
||||
configkey2: boolean = false;
|
||||
|
||||
get softKeys(): { [id: number]: SoftKeysConfigurationModel[] } {
|
||||
return store.state.machineInfo.softKeys as { [id: number]: SoftKeysConfigurationModel[] };
|
||||
}
|
||||
@@ -43,6 +45,23 @@ export default class Paddle extends Vue {
|
||||
return result;
|
||||
}
|
||||
|
||||
setConfigkey1(){
|
||||
this.configkey1 = !this.configkey1;
|
||||
this.configkey2=false;
|
||||
this.configMode=false;
|
||||
}
|
||||
|
||||
setConfigkey2(){
|
||||
this.configkey2 = !this.configkey2;
|
||||
this.configkey1=false;
|
||||
this.configMode=false;
|
||||
}
|
||||
|
||||
setConfig(){
|
||||
this.configMode = !this.configMode;
|
||||
this.configkey1=false;
|
||||
this.configkey2=false;
|
||||
}
|
||||
get favourites(): number[] {
|
||||
return store.state.machineInfo.softkeysFavorites;
|
||||
}
|
||||
@@ -51,6 +70,31 @@ export default class Paddle extends Vue {
|
||||
return this.favourites.map(i => this.getSoftKeyById(i) as SoftKeysConfigurationModel)
|
||||
}
|
||||
|
||||
get keyb1(): number {
|
||||
return store.state.machineInfo.starKeyboard1;
|
||||
}
|
||||
|
||||
get keyb2(): number {
|
||||
return store.state.machineInfo.starKeyboard2;
|
||||
}
|
||||
|
||||
isInKeyboard(id): boolean{
|
||||
if(this.configkey1)
|
||||
return id == this.keyb1;
|
||||
if(this.configkey2)
|
||||
return id == this.keyb2;
|
||||
return false
|
||||
}
|
||||
|
||||
keyb1click(){
|
||||
if(this.keyb1>0 && !this.configkey1 && !this.configkey2)
|
||||
Hub.Current.sendUserSoftKey(this.keyb1);
|
||||
}
|
||||
keyb2click(){
|
||||
if(this.keyb2>0 && !this.configkey1 && !this.configkey2)
|
||||
Hub.Current.sendUserSoftKey(this.keyb2);
|
||||
}
|
||||
|
||||
getSoftKeyById(id: number): SoftKeysConfigurationModel {
|
||||
return this.allSoftKeys.find(i => i.id == id);
|
||||
}
|
||||
@@ -68,6 +112,13 @@ export default class Paddle extends Vue {
|
||||
async loadData() {
|
||||
await dataService.GetSoftKeysConfiguration();
|
||||
await dataService.GetUserSoftkeyFavorite();
|
||||
await dataService.GetKeybSoftkeyFavorite();
|
||||
|
||||
if(!this.isOpen){
|
||||
this.configkey1=false;
|
||||
this.configkey2=false;
|
||||
this.configMode=false;
|
||||
}
|
||||
}
|
||||
|
||||
confirmationDelegate = null;
|
||||
@@ -98,6 +149,15 @@ export default class Paddle extends Vue {
|
||||
|
||||
async toggleFavourite(id: number, add: boolean) {
|
||||
|
||||
if(this.configkey1){
|
||||
await dataService.AddKeybSoftkey(id,1)
|
||||
return;
|
||||
}
|
||||
if(this.configkey2){
|
||||
await dataService.AddKeybSoftkey(id,2)
|
||||
return;
|
||||
}
|
||||
|
||||
if (add)
|
||||
await dataService.AddUserSoftkeyFavorite(id)
|
||||
else
|
||||
|
||||
@@ -16,17 +16,17 @@
|
||||
<section class="main">
|
||||
<header>{{'star-keyboard-softkeys' | localize("Keyboard softkeys")}}</header>
|
||||
<article>
|
||||
<button class="softkey star" >
|
||||
<button class="softkey star" :disabled="keyb1==0" :click="keyb1click">
|
||||
<span class="icon">
|
||||
<span class="circle">|</span>
|
||||
</span>
|
||||
<span class="text">{{"test"}}</span>
|
||||
<span class="text" v-if="keyb1 > 0">{{'softkey_' + keyb1 | localize('softkey_' + keyb1)}}</span>
|
||||
</button>
|
||||
<button class="softkey star" >
|
||||
<button class="softkey star" :disabled="keyb2==0" :click="keyb2click" >
|
||||
<span class="icon">
|
||||
<span class="circle">||</span>
|
||||
</span>
|
||||
<span class="text">{{"test"}}</span>
|
||||
<span class="text" v-if="keyb2 > 0">{{'softkey_' + keyb2 | localize('softkey_' + keyb2)}}</span>
|
||||
</button>
|
||||
</article>
|
||||
<header>{{'preferred-softkeys' | localize("Soft Keys")}}</header>
|
||||
@@ -38,6 +38,8 @@
|
||||
:title="'softkey_' + b.id | localize('softkey_' + b.id)"
|
||||
:type="b.type"
|
||||
:config-mode="configMode"
|
||||
:configkeyboardMode="configkey1 || configkey2"
|
||||
:isInKeyboard="isInKeyboard(b.id)"
|
||||
@toggleFavourite="toggleFavourite(b.id, false)"
|
||||
v-model="getSoftKeyStatus(b.id).value"
|
||||
:active="getSoftKeyStatus(b.id).active"
|
||||
@@ -49,11 +51,13 @@
|
||||
</template>
|
||||
</article>
|
||||
<footer>
|
||||
<div class="configure" @click="configMode = !configMode" :class="{'active': configMode}">
|
||||
|
||||
<i class="fa fa-star-o"></i>
|
||||
<div class="configure" @click="setConfigkey1" :class="{'active': configkey1}">
|
||||
<span class="keyb" :class="{'active': configkey1}">|</span>
|
||||
</div>
|
||||
<div class="configure" @click="configMode = !configMode" :class="{'active': configMode}">
|
||||
<div class="configure" @click="setConfigkey2" :class="{'active': configkey2}">
|
||||
<div class="keyb" :class="{'active': configkey2}">||</div>
|
||||
</div>
|
||||
<div class="configure" @click="setConfig" :class="{'active': configMode}">
|
||||
<i class="fa fa-gear"></i>
|
||||
</div>
|
||||
<div class="configure" @click="openFull = !openFull" :class="{'active': openFull}">
|
||||
@@ -84,6 +88,8 @@
|
||||
:title="'softkey_' + b.id | localize('softkey_' + b.id)"
|
||||
:type="b.type"
|
||||
:config-mode="configMode"
|
||||
:configkeyboardMode="configkey1 || configkey2"
|
||||
:isInKeyboard="isInKeyboard(b.id)"
|
||||
@toggleFavourite="toggleFavourite(b.id, !isFavourite(b.id))"
|
||||
v-model="getSoftKeyStatus(b.id).value"
|
||||
:active="getSoftKeyStatus(b.id).active"
|
||||
|
||||
@@ -18,18 +18,24 @@ export default class SoftKey extends Vue {
|
||||
@Prop({ default: false })
|
||||
configMode: boolean;
|
||||
|
||||
@Prop({ default: false })
|
||||
configkeyboardMode: boolean;
|
||||
|
||||
@Prop({ default: false })
|
||||
active: boolean;
|
||||
|
||||
@Prop({ default: false })
|
||||
isFavourite: boolean;
|
||||
|
||||
@Prop({ default: false })
|
||||
isInKeyboard: boolean;
|
||||
|
||||
@Prop({ default: null })
|
||||
id: number;
|
||||
|
||||
doclick() {
|
||||
if (!this.configMode && this.type != 0) this.$emit('click');
|
||||
if (this.configMode) this.$emit('toggleFavourite');
|
||||
if (!this.configMode && !this.configkeyboardMode && this.type != 0) this.$emit('click');
|
||||
if (this.configMode || this.configkeyboardMode) this.$emit('toggleFavourite');
|
||||
}
|
||||
|
||||
get Checked() { return this.value; }
|
||||
|
||||
@@ -1,9 +1,13 @@
|
||||
<template>
|
||||
<button class="softkey" @click="doclick()" :disabled="!active && !configMode" :class="{ active: (value && type==1 && !configMode)}">
|
||||
<button class="softkey" @click="doclick()" :disabled="!active && !configMode && !configkeyboardMode" :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>
|
||||
|
||||
<button class="configure" v-if="configkeyboardMode && isInKeyboard" @click.prevent.stop="$emit('toggleFavourite')">
|
||||
<i class="fa fa-star"></i>
|
||||
</button>
|
||||
<toggle-button v-if="type==0" v-model="Checked"></toggle-button>
|
||||
{{title}}
|
||||
</button>
|
||||
|
||||
+1
@@ -55,6 +55,7 @@
|
||||
</foreignObject>
|
||||
<line
|
||||
class="vertical-line"
|
||||
v-if="showStatus && recipeValue"
|
||||
:x1="(duration - (showStatus && recipeValue?statusDuration:0)) * ganttOptions.secondSize"
|
||||
:x2="(duration - (showStatus && recipeValue?statusDuration:0)) * ganttOptions.secondSize"
|
||||
:y1="0"
|
||||
|
||||
+30
-1
@@ -22,16 +22,45 @@ export default class SVGCaricatore extends Vue{
|
||||
@Prop({default:1000})
|
||||
larghTelaioReal:number;
|
||||
|
||||
@Prop({default:1000})
|
||||
quotaVolantino:number;
|
||||
|
||||
@Prop({default:1})
|
||||
numVentose:number;
|
||||
|
||||
@Prop({default:""})
|
||||
umeasVolantino:string;
|
||||
|
||||
|
||||
misVentosaReal = 50; //50 mm
|
||||
|
||||
larghTelaioSVG = 1055;
|
||||
|
||||
offsetVentoseSVG = 28.5
|
||||
dimVentose = 18;
|
||||
|
||||
minoreuguale:string="<=";
|
||||
|
||||
|
||||
getPositionSheet(id,col){
|
||||
var vent = ((this.larghTelaioSVG + (this.dimVentose*2)) / (this.numVentose +1));
|
||||
var posX = (id*vent ) - (this.dimVentose*2);
|
||||
if(col == 1)
|
||||
return "translate(-630 -147) translate(50 25) translate(580 122) translate(0 70) translate(0 0) translate("+ posX + ")";
|
||||
else if(col == 2)
|
||||
return "translate(-630 -147) translate(50 25) translate(580 122) translate(0 70) translate(0 164) translate("+ posX + ")";
|
||||
else if(col == 3)
|
||||
return "translate(-630 -147) translate(50 25) translate(580 122) translate(0 70) translate(0 268) translate("+ posX + ")";
|
||||
else if(col == 4)
|
||||
return "translate(-630 -147) translate(50 25) translate(580 122) translate(0 70) translate(0 432) translate("+ posX + ")";
|
||||
return "";
|
||||
}
|
||||
get larghLastraCalc(){
|
||||
return (this.larghLastraReal / this.larghTelaioReal ) * this.larghTelaioSVG;
|
||||
}
|
||||
get xLastraCalc(){
|
||||
return (this.larghTelaioSVG/2.000 - this.larghLastraCalc/2.000);
|
||||
}
|
||||
get quotaVentose(){
|
||||
return this.quotaVolantino - this.misVentosaReal;
|
||||
}
|
||||
}
|
||||
+34
-538
@@ -1,6 +1,6 @@
|
||||
<template>
|
||||
<div class="svg-area">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="1057" height="707" viewBox="0 0 1057 707">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="1057" height="707" viewBox="0 0 1100 707">
|
||||
<g fill="none" fill-rule="evenodd">
|
||||
<g>
|
||||
<g>
|
||||
@@ -14,565 +14,59 @@
|
||||
y="58" />
|
||||
|
||||
<path stroke="#BBBCBC" stroke-width="2" d="M528.5 0L528.5 606" transform="translate(-630 -147) translate(50 25) translate(580 122)"/>
|
||||
<path stroke="#BBBCBC" stroke-width="2" d="M1055 306L0 306" transform="translate(-630 -147) translate(50 25) translate(580 122)"/>
|
||||
<path stroke="#BBBCBC" stroke-width="2" d="M1100 306L0 306" transform="translate(-630 -147) translate(50 25) translate(580 122)"/>
|
||||
<path stroke="#BBBCBC" stroke-width="2" d="M1090 306L1090 600" ></path>
|
||||
<path stroke="#BBBCBC" stroke-width="2" d="M1100 306L528.5 306" transform="translate(-630 -147) translate(50 25) translate(580 359)"></path>
|
||||
|
||||
<path xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" sodipodi:type="star" sodipodi:sides="3" sodipodi:cx="62.114742" sodipodi:cy="292.18243" sodipodi:r1="1.8131942" sodipodi:r2="0.90659708" sodipodi:arg1="1.5707963" sodipodi:arg2="2.6179939" d="m 231.4,20.3 -0.785136,-1.3599 -0.785136,-1.35989 1.570272,0 1.570272,0 -0.785136,1.35989 z" transform="matrix(0.92838376,0,0,-1.0738472,15.707629,417.51225) scale(5)" style="fill: rgb(187, 188, 188); fill-opacity: 1; stroke: rgb(187, 188, 188); stroke-width: 0.264583; stroke-miterlimit: 4; stroke-dasharray: none; stroke-opacity: 0.929368;"></path>
|
||||
<path xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" sodipodi:type="star" sodipodi:sides="3" sodipodi:cx="62.114742" sodipodi:cy="292.18243" sodipodi:r1="1.8131942" sodipodi:r2="0.90659708" sodipodi:arg1="1.5707963" sodipodi:arg2="2.6179939" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" inkscape:flatsided="false" inkscape:rounded="0" inkscape:randomized="0" d="m 206.2,109.3 -0.785136,-1.3599 -0.785136,-1.35989 1.570272,0 1.570272,0 -0.785136,1.35989 z" inkscape:transform-center-y="0.45319651" transform="matrix(1.0001954,0,0,0.99979353,58.092706,-4.6559432) scale(5)" inkscape:transform-center-x="1.2206616e-06" style="fill: rgb(187, 188, 188); fill-opacity: 1; stroke: rgb(187, 188, 188); stroke-width: 0.264583; stroke-miterlimit: 4; stroke-dasharray: none; stroke-opacity: 0.929368;"></path>
|
||||
<g>
|
||||
<path stroke="#E8E8E8" stroke-width="4" d="M27.926 89.875L27.926 42.451 0 42.451 88 0 175.68 42.451 149.242 42.451 149.242 89.875" transform="translate(-630 -147) translate(50 25) translate(580 122) translate(443 617)"/>
|
||||
</g>
|
||||
<g>
|
||||
<g>
|
||||
<path fill="#BBBCBCCC" stroke="#979797" stroke-width="4" d="M2 9H1055V31H2z" transform="translate(-630 -147) translate(50 25) translate(580 122) translate(0 70)"/>
|
||||
<g transform="translate(-630 -147) translate(50 25) translate(580 122) translate(0 70) translate(28.5)">
|
||||
<g v-for="index in numVentose" :key="'A'+index" :transform="getPositionSheet(index,1)" >
|
||||
<circle cx="20" cy="20" r="18" fill="#4B4B4B" stroke="#000" stroke-width="4"/>
|
||||
<path fill="#BBBCBC" fill-opacity=".6" d="M0 7H40V33H0z"/>
|
||||
<path fill="#979797" d="M0 7H40V11H0zM0 29H40V33H0z"/>
|
||||
<text fill="#FFF" font-family="WorkSans-Medium, Work Sans" font-size="12" font-weight="400">
|
||||
<tspan x="12.5" y="25">A1</tspan>
|
||||
</text>
|
||||
</g>
|
||||
<g transform="translate(-630 -147) translate(50 25) translate(580 122) translate(0 70) translate(88.5)">
|
||||
<circle cx="20" cy="20" r="18" fill="#4B4B4B" stroke="#000" stroke-width="4"/>
|
||||
<path fill="#BBBCBC" fill-opacity=".6" d="M0 7H40V33H0z"/>
|
||||
<path fill="#979797" d="M0 7H40V11H0zM0 29H40V33H0z"/>
|
||||
<text fill="#FFF" font-family="WorkSans-Medium, Work Sans" font-size="12" font-weight="400">
|
||||
<tspan x="12.5" y="25">A2</tspan>
|
||||
</text>
|
||||
</g>
|
||||
<g transform="translate(-630 -147) translate(50 25) translate(580 122) translate(0 70) translate(148.5)">
|
||||
<circle cx="20" cy="20" r="18" fill="#4B4B4B" stroke="#000" stroke-width="4"/>
|
||||
<path fill="#BBBCBC" fill-opacity=".6" d="M0 7H40V33H0z"/>
|
||||
<path fill="#979797" d="M0 7H40V11H0zM0 29H40V33H0z"/>
|
||||
<text fill="#FFF" font-family="WorkSans-Medium, Work Sans" font-size="12" font-weight="400">
|
||||
<tspan x="12.5" y="25">A3</tspan>
|
||||
</text>
|
||||
</g>
|
||||
<g transform="translate(-630 -147) translate(50 25) translate(580 122) translate(0 70) translate(208.5)">
|
||||
<circle cx="20" cy="20" r="18" fill="#4B4B4B" stroke="#000" stroke-width="4"/>
|
||||
<path fill="#BBBCBC" fill-opacity=".6" d="M0 7H40V33H0z"/>
|
||||
<path fill="#979797" d="M0 7H40V11H0zM0 29H40V33H0z"/>
|
||||
<text fill="#FFF" font-family="WorkSans-Medium, Work Sans" font-size="12" font-weight="400">
|
||||
<tspan x="12.5" y="25">A4</tspan>
|
||||
</text>
|
||||
</g>
|
||||
<g transform="translate(-630 -147) translate(50 25) translate(580 122) translate(0 70) translate(268.5)">
|
||||
<circle cx="20" cy="20" r="18" fill="#4B4B4B" stroke="#000" stroke-width="4"/>
|
||||
<path fill="#BBBCBC" fill-opacity=".6" d="M0 7H40V33H0z"/>
|
||||
<path fill="#979797" d="M0 7H40V11H0zM0 29H40V33H0z"/>
|
||||
<text fill="#FFF" font-family="WorkSans-Medium, Work Sans" font-size="12" font-weight="400">
|
||||
<tspan x="12.5" y="25">A5</tspan>
|
||||
</text>
|
||||
</g>
|
||||
<g transform="translate(-630 -147) translate(50 25) translate(580 122) translate(0 70) translate(328.5)">
|
||||
<circle cx="20" cy="20" r="18" fill="#4B4B4B" stroke="#000" stroke-width="4"/>
|
||||
<path fill="#BBBCBC" fill-opacity=".6" d="M0 7H40V33H0z"/>
|
||||
<path fill="#979797" d="M0 7H40V11H0zM0 29H40V33H0z"/>
|
||||
<text fill="#FFF" font-family="WorkSans-Medium, Work Sans" font-size="12" font-weight="400">
|
||||
<tspan x="12.5" y="25">A6</tspan>
|
||||
</text>
|
||||
</g>
|
||||
<g transform="translate(-630 -147) translate(50 25) translate(580 122) translate(0 70) translate(388.5)">
|
||||
<circle cx="20" cy="20" r="18" fill="#4B4B4B" stroke="#000" stroke-width="4"/>
|
||||
<path fill="#BBBCBC" fill-opacity=".6" d="M0 7H40V33H0z"/>
|
||||
<path fill="#979797" d="M0 7H40V11H0zM0 29H40V33H0z"/>
|
||||
<text fill="#FFF" font-family="WorkSans-Medium, Work Sans" font-size="12" font-weight="400">
|
||||
<tspan x="12.5" y="25">A7</tspan>
|
||||
</text>
|
||||
</g>
|
||||
<g transform="translate(-630 -147) translate(50 25) translate(580 122) translate(0 70) translate(448.5)">
|
||||
<circle cx="20" cy="20" r="18" fill="#4B4B4B" stroke="#000" stroke-width="4"/>
|
||||
<path fill="#BBBCBC" fill-opacity=".6" d="M0 7H40V33H0z"/>
|
||||
<path fill="#979797" d="M0 7H40V11H0zM0 29H40V33H0z"/>
|
||||
<text fill="#FFF" font-family="WorkSans-Medium, Work Sans" font-size="12" font-weight="400">
|
||||
<tspan x="12.5" y="25">A8</tspan>
|
||||
</text>
|
||||
</g>
|
||||
<g transform="translate(-630 -147) translate(50 25) translate(580 122) translate(0 70) translate(508.5)">
|
||||
<circle cx="20" cy="20" r="18" fill="#4B4B4B" stroke="#000" stroke-width="4"/>
|
||||
<path fill="#BBBCBC" fill-opacity=".6" d="M0 7H40V33H0z"/>
|
||||
<path fill="#979797" d="M0 7H40V11H0zM0 29H40V33H0z"/>
|
||||
<text fill="#FFF" font-family="WorkSans-Medium, Work Sans" font-size="12" font-weight="400">
|
||||
<tspan x="12.5" y="25">A9</tspan>
|
||||
</text>
|
||||
</g>
|
||||
<g transform="translate(-630 -147) translate(50 25) translate(580 122) translate(0 70) translate(568.5)">
|
||||
<circle cx="20" cy="20" r="18" fill="#4B4B4B" stroke="#000" stroke-width="4"/>
|
||||
<path fill="#BBBCBC" fill-opacity=".6" d="M0 7H40V33H0z"/>
|
||||
<path fill="#979797" d="M0 7H40V11H0zM0 29H40V33H0z"/>
|
||||
<text fill="#FFF" font-family="WorkSans-Medium, Work Sans" font-size="12" font-weight="400">
|
||||
<tspan x="9" y="25">A10</tspan>
|
||||
</text>
|
||||
</g>
|
||||
<g transform="translate(-630 -147) translate(50 25) translate(580 122) translate(0 70) translate(628.5)">
|
||||
<circle cx="20" cy="20" r="18" fill="#4B4B4B" stroke="#000" stroke-width="4"/>
|
||||
<path fill="#BBBCBC" fill-opacity=".6" d="M0 7H40V33H0z"/>
|
||||
<path fill="#979797" d="M0 7H40V11H0zM0 29H40V33H0z"/>
|
||||
<text fill="#FFF" font-family="WorkSans-Medium, Work Sans" font-size="12" font-weight="400">
|
||||
<tspan x="9" y="25">A11</tspan>
|
||||
</text>
|
||||
</g>
|
||||
<g transform="translate(-630 -147) translate(50 25) translate(580 122) translate(0 70) translate(688.5)">
|
||||
<circle cx="20" cy="20" r="18" fill="#4B4B4B" stroke="#000" stroke-width="4"/>
|
||||
<path fill="#BBBCBC" fill-opacity=".6" d="M0 7H40V33H0z"/>
|
||||
<path fill="#979797" d="M0 7H40V11H0zM0 29H40V33H0z"/>
|
||||
<text fill="#FFF" font-family="WorkSans-Medium, Work Sans" font-size="12" font-weight="400">
|
||||
<tspan x="9" y="25">A12</tspan>
|
||||
</text>
|
||||
</g>
|
||||
<g transform="translate(-630 -147) translate(50 25) translate(580 122) translate(0 70) translate(748.5)">
|
||||
<circle cx="20" cy="20" r="18" fill="#4B4B4B" stroke="#000" stroke-width="4"/>
|
||||
<path fill="#BBBCBC" fill-opacity=".6" d="M0 7H40V33H0z"/>
|
||||
<path fill="#979797" d="M0 7H40V11H0zM0 29H40V33H0z"/>
|
||||
<text fill="#FFF" font-family="WorkSans-Medium, Work Sans" font-size="12" font-weight="400">
|
||||
<tspan x="9" y="25">A13</tspan>
|
||||
</text>
|
||||
</g>
|
||||
<g transform="translate(-630 -147) translate(50 25) translate(580 122) translate(0 70) translate(808.5)">
|
||||
<circle cx="20" cy="20" r="18" fill="#4B4B4B" stroke="#000" stroke-width="4"/>
|
||||
<path fill="#BBBCBC" fill-opacity=".6" d="M0 7H40V33H0z"/>
|
||||
<path fill="#979797" d="M0 7H40V11H0zM0 29H40V33H0z"/>
|
||||
<text fill="#FFF" font-family="WorkSans-Medium, Work Sans" font-size="12" font-weight="400">
|
||||
<tspan x="9" y="25">A14</tspan>
|
||||
</text>
|
||||
</g>
|
||||
<g transform="translate(-630 -147) translate(50 25) translate(580 122) translate(0 70) translate(868.5)">
|
||||
<circle cx="20" cy="20" r="18" fill="#4B4B4B" stroke="#000" stroke-width="4"/>
|
||||
<path fill="#BBBCBC" fill-opacity=".6" d="M0 7H40V33H0z"/>
|
||||
<path fill="#979797" d="M0 7H40V11H0zM0 29H40V33H0z"/>
|
||||
<text fill="#FFF" font-family="WorkSans-Medium, Work Sans" font-size="12" font-weight="400">
|
||||
<tspan x="9" y="25">A15</tspan>
|
||||
</text>
|
||||
</g>
|
||||
<g transform="translate(-630 -147) translate(50 25) translate(580 122) translate(0 70) translate(928.5)">
|
||||
<circle cx="20" cy="20" r="18" fill="#4B4B4B" stroke="#000" stroke-width="4"/>
|
||||
<path fill="#BBBCBC" fill-opacity=".6" d="M0 7H40V33H0z"/>
|
||||
<path fill="#979797" d="M0 7H40V11H0zM0 29H40V33H0z"/>
|
||||
<text fill="#FFF" font-family="WorkSans-Medium, Work Sans" font-size="12" font-weight="400">
|
||||
<tspan x="9" y="25">A16</tspan>
|
||||
</text>
|
||||
</g>
|
||||
<g transform="translate(-630 -147) translate(50 25) translate(580 122) translate(0 70) translate(988.5)">
|
||||
<circle cx="20" cy="20" r="18" fill="#4B4B4B" stroke="#000" stroke-width="4"/>
|
||||
<path fill="#BBBCBC" fill-opacity=".6" d="M0 7H40V33H0z"/>
|
||||
<path fill="#979797" d="M0 7H40V11H0zM0 29H40V33H0z"/>
|
||||
<text fill="#FFF" font-family="WorkSans-Medium, Work Sans" font-size="12" font-weight="400">
|
||||
<tspan x="9" y="25">A17</tspan>
|
||||
</text>
|
||||
<foreignObject
|
||||
width="40"
|
||||
height="40">
|
||||
<div class="ventosa">{{index}}</div>
|
||||
</foreignObject>
|
||||
</g>
|
||||
</g>
|
||||
<g>
|
||||
<path fill="#BBBCBCCC" stroke="#979797" stroke-width="4" d="M2 9H1055V31H2z" transform="translate(-630 -147) translate(50 25) translate(580 122) translate(0 70) translate(0 164)"/>
|
||||
<g transform="translate(-630 -147) translate(50 25) translate(580 122) translate(0 70) translate(0 164) translate(28.5)">
|
||||
<g v-for="index in numVentose" :key="'B'+index" :transform="getPositionSheet(index,2)" >
|
||||
<circle cx="20" cy="20" r="18" fill="#4B4B4B" stroke="#000" stroke-width="4"/>
|
||||
<path fill="#BBBCBC" fill-opacity=".6" d="M0 7H40V33H0z"/>
|
||||
<path fill="#979797" d="M0 7H40V11H0zM0 29H40V33H0z"/>
|
||||
<text fill="#FFF" font-family="WorkSans-Medium, Work Sans" font-size="12" font-weight="400">
|
||||
<tspan x="13" y="25">B1</tspan>
|
||||
</text>
|
||||
</g>
|
||||
<g transform="translate(-630 -147) translate(50 25) translate(580 122) translate(0 70) translate(0 164) translate(88.5)">
|
||||
<circle cx="20" cy="20" r="18" fill="#4B4B4B" stroke="#000" stroke-width="4"/>
|
||||
<path fill="#BBBCBC" fill-opacity=".6" d="M0 7H40V33H0z"/>
|
||||
<path fill="#979797" d="M0 7H40V11H0zM0 29H40V33H0z"/>
|
||||
<text fill="#FFF" font-family="WorkSans-Medium, Work Sans" font-size="12" font-weight="400">
|
||||
<tspan x="13" y="25">B2</tspan>
|
||||
</text>
|
||||
</g>
|
||||
<g transform="translate(-630 -147) translate(50 25) translate(580 122) translate(0 70) translate(0 164) translate(148.5)">
|
||||
<circle cx="20" cy="20" r="18" fill="#4B4B4B" stroke="#000" stroke-width="4"/>
|
||||
<path fill="#BBBCBC" fill-opacity=".6" d="M0 7H40V33H0z"/>
|
||||
<path fill="#979797" d="M0 7H40V11H0zM0 29H40V33H0z"/>
|
||||
<text fill="#FFF" font-family="WorkSans-Medium, Work Sans" font-size="12" font-weight="400">
|
||||
<tspan x="13" y="25">B3</tspan>
|
||||
</text>
|
||||
</g>
|
||||
<g transform="translate(-630 -147) translate(50 25) translate(580 122) translate(0 70) translate(0 164) translate(208.5)">
|
||||
<circle cx="20" cy="20" r="18" fill="#4B4B4B" stroke="#000" stroke-width="4"/>
|
||||
<path fill="#BBBCBC" fill-opacity=".6" d="M0 7H40V33H0z"/>
|
||||
<path fill="#979797" d="M0 7H40V11H0zM0 29H40V33H0z"/>
|
||||
<text fill="#FFF" font-family="WorkSans-Medium, Work Sans" font-size="12" font-weight="400">
|
||||
<tspan x="13" y="25">B4</tspan>
|
||||
</text>
|
||||
</g>
|
||||
<g transform="translate(-630 -147) translate(50 25) translate(580 122) translate(0 70) translate(0 164) translate(268.5)">
|
||||
<circle cx="20" cy="20" r="18" fill="#4B4B4B" stroke="#000" stroke-width="4"/>
|
||||
<path fill="#BBBCBC" fill-opacity=".6" d="M0 7H40V33H0z"/>
|
||||
<path fill="#979797" d="M0 7H40V11H0zM0 29H40V33H0z"/>
|
||||
<text fill="#FFF" font-family="WorkSans-Medium, Work Sans" font-size="12" font-weight="400">
|
||||
<tspan x="13" y="25">B5</tspan>
|
||||
</text>
|
||||
</g>
|
||||
<g transform="translate(-630 -147) translate(50 25) translate(580 122) translate(0 70) translate(0 164) translate(328.5)">
|
||||
<circle cx="20" cy="20" r="18" fill="#4B4B4B" stroke="#000" stroke-width="4"/>
|
||||
<path fill="#BBBCBC" fill-opacity=".6" d="M0 7H40V33H0z"/>
|
||||
<path fill="#979797" d="M0 7H40V11H0zM0 29H40V33H0z"/>
|
||||
<text fill="#FFF" font-family="WorkSans-Medium, Work Sans" font-size="12" font-weight="400">
|
||||
<tspan x="13" y="25">B6</tspan>
|
||||
</text>
|
||||
</g>
|
||||
<g transform="translate(-630 -147) translate(50 25) translate(580 122) translate(0 70) translate(0 164) translate(388.5)">
|
||||
<circle cx="20" cy="20" r="18" fill="#4B4B4B" stroke="#000" stroke-width="4"/>
|
||||
<path fill="#BBBCBC" fill-opacity=".6" d="M0 7H40V33H0z"/>
|
||||
<path fill="#979797" d="M0 7H40V11H0zM0 29H40V33H0z"/>
|
||||
<text fill="#FFF" font-family="WorkSans-Medium, Work Sans" font-size="12" font-weight="400">
|
||||
<tspan x="13" y="25">B7</tspan>
|
||||
</text>
|
||||
</g>
|
||||
<g transform="translate(-630 -147) translate(50 25) translate(580 122) translate(0 70) translate(0 164) translate(448.5)">
|
||||
<circle cx="20" cy="20" r="18" fill="#4B4B4B" stroke="#000" stroke-width="4"/>
|
||||
<path fill="#BBBCBC" fill-opacity=".6" d="M0 7H40V33H0z"/>
|
||||
<path fill="#979797" d="M0 7H40V11H0zM0 29H40V33H0z"/>
|
||||
<text fill="#FFF" font-family="WorkSans-Medium, Work Sans" font-size="12" font-weight="400">
|
||||
<tspan x="13" y="25">B8</tspan>
|
||||
</text>
|
||||
</g>
|
||||
<g transform="translate(-630 -147) translate(50 25) translate(580 122) translate(0 70) translate(0 164) translate(508.5)">
|
||||
<circle cx="20" cy="20" r="18" fill="#4B4B4B" stroke="#000" stroke-width="4"/>
|
||||
<path fill="#BBBCBC" fill-opacity=".6" d="M0 7H40V33H0z"/>
|
||||
<path fill="#979797" d="M0 7H40V11H0zM0 29H40V33H0z"/>
|
||||
<text fill="#FFF" font-family="WorkSans-Medium, Work Sans" font-size="12" font-weight="400">
|
||||
<tspan x="13" y="25">B9</tspan>
|
||||
</text>
|
||||
</g>
|
||||
<g transform="translate(-630 -147) translate(50 25) translate(580 122) translate(0 70) translate(0 164) translate(568.5)">
|
||||
<circle cx="20" cy="20" r="18" fill="#4B4B4B" stroke="#000" stroke-width="4"/>
|
||||
<path fill="#BBBCBC" fill-opacity=".6" d="M0 7H40V33H0z"/>
|
||||
<path fill="#979797" d="M0 7H40V11H0zM0 29H40V33H0z"/>
|
||||
<text fill="#FFF" font-family="WorkSans-Medium, Work Sans" font-size="12" font-weight="400">
|
||||
<tspan x="9.5" y="25">B10</tspan>
|
||||
</text>
|
||||
</g>
|
||||
<g transform="translate(-630 -147) translate(50 25) translate(580 122) translate(0 70) translate(0 164) translate(628.5)">
|
||||
<circle cx="20" cy="20" r="18" fill="#4B4B4B" stroke="#000" stroke-width="4"/>
|
||||
<path fill="#BBBCBC" fill-opacity=".6" d="M0 7H40V33H0z"/>
|
||||
<path fill="#979797" d="M0 7H40V11H0zM0 29H40V33H0z"/>
|
||||
<text fill="#FFF" font-family="WorkSans-Medium, Work Sans" font-size="12" font-weight="400">
|
||||
<tspan x="9.5" y="25">B11</tspan>
|
||||
</text>
|
||||
</g>
|
||||
<g transform="translate(-630 -147) translate(50 25) translate(580 122) translate(0 70) translate(0 164) translate(688.5)">
|
||||
<circle cx="20" cy="20" r="18" fill="#4B4B4B" stroke="#000" stroke-width="4"/>
|
||||
<path fill="#BBBCBC" fill-opacity=".6" d="M0 7H40V33H0z"/>
|
||||
<path fill="#979797" d="M0 7H40V11H0zM0 29H40V33H0z"/>
|
||||
<text fill="#FFF" font-family="WorkSans-Medium, Work Sans" font-size="12" font-weight="400">
|
||||
<tspan x="9.5" y="25">B12</tspan>
|
||||
</text>
|
||||
</g>
|
||||
<g transform="translate(-630 -147) translate(50 25) translate(580 122) translate(0 70) translate(0 164) translate(748.5)">
|
||||
<circle cx="20" cy="20" r="18" fill="#4B4B4B" stroke="#000" stroke-width="4"/>
|
||||
<path fill="#BBBCBC" fill-opacity=".6" d="M0 7H40V33H0z"/>
|
||||
<path fill="#979797" d="M0 7H40V11H0zM0 29H40V33H0z"/>
|
||||
<text fill="#FFF" font-family="WorkSans-Medium, Work Sans" font-size="12" font-weight="400">
|
||||
<tspan x="9.5" y="25">B13</tspan>
|
||||
</text>
|
||||
</g>
|
||||
<g transform="translate(-630 -147) translate(50 25) translate(580 122) translate(0 70) translate(0 164) translate(808.5)">
|
||||
<circle cx="20" cy="20" r="18" fill="#4B4B4B" stroke="#000" stroke-width="4"/>
|
||||
<path fill="#BBBCBC" fill-opacity=".6" d="M0 7H40V33H0z"/>
|
||||
<path fill="#979797" d="M0 7H40V11H0zM0 29H40V33H0z"/>
|
||||
<text fill="#FFF" font-family="WorkSans-Medium, Work Sans" font-size="12" font-weight="400">
|
||||
<tspan x="9.5" y="25">B14</tspan>
|
||||
</text>
|
||||
</g>
|
||||
<g transform="translate(-630 -147) translate(50 25) translate(580 122) translate(0 70) translate(0 164) translate(868.5)">
|
||||
<circle cx="20" cy="20" r="18" fill="#4B4B4B" stroke="#000" stroke-width="4"/>
|
||||
<path fill="#BBBCBC" fill-opacity=".6" d="M0 7H40V33H0z"/>
|
||||
<path fill="#979797" d="M0 7H40V11H0zM0 29H40V33H0z"/>
|
||||
<text fill="#FFF" font-family="WorkSans-Medium, Work Sans" font-size="12" font-weight="400">
|
||||
<tspan x="9.5" y="25">B15</tspan>
|
||||
</text>
|
||||
</g>
|
||||
<g transform="translate(-630 -147) translate(50 25) translate(580 122) translate(0 70) translate(0 164) translate(928.5)">
|
||||
<circle cx="20" cy="20" r="18" fill="#4B4B4B" stroke="#000" stroke-width="4"/>
|
||||
<path fill="#BBBCBC" fill-opacity=".6" d="M0 7H40V33H0z"/>
|
||||
<path fill="#979797" d="M0 7H40V11H0zM0 29H40V33H0z"/>
|
||||
<text fill="#FFF" font-family="WorkSans-Medium, Work Sans" font-size="12" font-weight="400">
|
||||
<tspan x="9.5" y="25">B16</tspan>
|
||||
</text>
|
||||
</g>
|
||||
<g transform="translate(-630 -147) translate(50 25) translate(580 122) translate(0 70) translate(0 164) translate(988.5)">
|
||||
<circle cx="20" cy="20" r="18" fill="#4B4B4B" stroke="#000" stroke-width="4"/>
|
||||
<path fill="#BBBCBC" fill-opacity=".6" d="M0 7H40V33H0z"/>
|
||||
<path fill="#979797" d="M0 7H40V11H0zM0 29H40V33H0z"/>
|
||||
<text fill="#FFF" font-family="WorkSans-Medium, Work Sans" font-size="12" font-weight="400">
|
||||
<tspan x="9.5" y="25">B17</tspan>
|
||||
</text>
|
||||
<foreignObject
|
||||
width="40"
|
||||
height="40">
|
||||
<div class="ventosa">{{index}}</div>
|
||||
</foreignObject>
|
||||
</g>
|
||||
</g>
|
||||
<g>
|
||||
<path fill="#BBBCBCCC" stroke="#979797" stroke-width="4" d="M2 9H1055V31H2z" transform="translate(-630 -147) translate(50 25) translate(580 122) translate(0 70) translate(0 268)"/>
|
||||
<g transform="translate(-630 -147) translate(50 25) translate(580 122) translate(0 70) translate(0 268) translate(28.5)">
|
||||
<g v-for="index in numVentose" :key="'C'+index" :transform="getPositionSheet(index,3)" >
|
||||
<circle cx="20" cy="20" r="18" fill="#4B4B4B" stroke="#000" stroke-width="4"/>
|
||||
<path fill="#BBBCBC" fill-opacity=".6" d="M0 7H40V33H0z"/>
|
||||
<path fill="#979797" d="M0 7H40V11H0zM0 29H40V33H0z"/>
|
||||
<text fill="#FFF" font-family="WorkSans-Medium, Work Sans" font-size="12" font-weight="400">
|
||||
<tspan x="13" y="25">C1</tspan>
|
||||
</text>
|
||||
</g>
|
||||
<g transform="translate(-630 -147) translate(50 25) translate(580 122) translate(0 70) translate(0 268) translate(88.5)">
|
||||
<circle cx="20" cy="20" r="18" fill="#4B4B4B" stroke="#000" stroke-width="4"/>
|
||||
<path fill="#BBBCBC" fill-opacity=".6" d="M0 7H40V33H0z"/>
|
||||
<path fill="#979797" d="M0 7H40V11H0zM0 29H40V33H0z"/>
|
||||
<text fill="#FFF" font-family="WorkSans-Medium, Work Sans" font-size="12" font-weight="400">
|
||||
<tspan x="13" y="25">C2</tspan>
|
||||
</text>
|
||||
</g>
|
||||
<g transform="translate(-630 -147) translate(50 25) translate(580 122) translate(0 70) translate(0 268) translate(148.5)">
|
||||
<circle cx="20" cy="20" r="18" fill="#4B4B4B" stroke="#000" stroke-width="4"/>
|
||||
<path fill="#BBBCBC" fill-opacity=".6" d="M0 7H40V33H0z"/>
|
||||
<path fill="#979797" d="M0 7H40V11H0zM0 29H40V33H0z"/>
|
||||
<text fill="#FFF" font-family="WorkSans-Medium, Work Sans" font-size="12" font-weight="400">
|
||||
<tspan x="13" y="25">C3</tspan>
|
||||
</text>
|
||||
</g>
|
||||
<g transform="translate(-630 -147) translate(50 25) translate(580 122) translate(0 70) translate(0 268) translate(208.5)">
|
||||
<circle cx="20" cy="20" r="18" fill="#4B4B4B" stroke="#000" stroke-width="4"/>
|
||||
<path fill="#BBBCBC" fill-opacity=".6" d="M0 7H40V33H0z"/>
|
||||
<path fill="#979797" d="M0 7H40V11H0zM0 29H40V33H0z"/>
|
||||
<text fill="#FFF" font-family="WorkSans-Medium, Work Sans" font-size="12" font-weight="400">
|
||||
<tspan x="13" y="25">C4</tspan>
|
||||
</text>
|
||||
</g>
|
||||
<g transform="translate(-630 -147) translate(50 25) translate(580 122) translate(0 70) translate(0 268) translate(268.5)">
|
||||
<circle cx="20" cy="20" r="18" fill="#4B4B4B" stroke="#000" stroke-width="4"/>
|
||||
<path fill="#BBBCBC" fill-opacity=".6" d="M0 7H40V33H0z"/>
|
||||
<path fill="#979797" d="M0 7H40V11H0zM0 29H40V33H0z"/>
|
||||
<text fill="#FFF" font-family="WorkSans-Medium, Work Sans" font-size="12" font-weight="400">
|
||||
<tspan x="13" y="25">C5</tspan>
|
||||
</text>
|
||||
</g>
|
||||
<g transform="translate(-630 -147) translate(50 25) translate(580 122) translate(0 70) translate(0 268) translate(328.5)">
|
||||
<circle cx="20" cy="20" r="18" fill="#4B4B4B" stroke="#000" stroke-width="4"/>
|
||||
<path fill="#BBBCBC" fill-opacity=".6" d="M0 7H40V33H0z"/>
|
||||
<path fill="#979797" d="M0 7H40V11H0zM0 29H40V33H0z"/>
|
||||
<text fill="#FFF" font-family="WorkSans-Medium, Work Sans" font-size="12" font-weight="400">
|
||||
<tspan x="13" y="25">C6</tspan>
|
||||
</text>
|
||||
</g>
|
||||
<g transform="translate(-630 -147) translate(50 25) translate(580 122) translate(0 70) translate(0 268) translate(388.5)">
|
||||
<circle cx="20" cy="20" r="18" fill="#4B4B4B" stroke="#000" stroke-width="4"/>
|
||||
<path fill="#BBBCBC" fill-opacity=".6" d="M0 7H40V33H0z"/>
|
||||
<path fill="#979797" d="M0 7H40V11H0zM0 29H40V33H0z"/>
|
||||
<text fill="#FFF" font-family="WorkSans-Medium, Work Sans" font-size="12" font-weight="400">
|
||||
<tspan x="13" y="25">C7</tspan>
|
||||
</text>
|
||||
</g>
|
||||
<g transform="translate(-630 -147) translate(50 25) translate(580 122) translate(0 70) translate(0 268) translate(448.5)">
|
||||
<circle cx="20" cy="20" r="18" fill="#4B4B4B" stroke="#000" stroke-width="4"/>
|
||||
<path fill="#BBBCBC" fill-opacity=".6" d="M0 7H40V33H0z"/>
|
||||
<path fill="#979797" d="M0 7H40V11H0zM0 29H40V33H0z"/>
|
||||
<text fill="#FFF" font-family="WorkSans-Medium, Work Sans" font-size="12" font-weight="400">
|
||||
<tspan x="13" y="25">C8</tspan>
|
||||
</text>
|
||||
</g>
|
||||
<g transform="translate(-630 -147) translate(50 25) translate(580 122) translate(0 70) translate(0 268) translate(508.5)">
|
||||
<circle cx="20" cy="20" r="18" fill="#4B4B4B" stroke="#000" stroke-width="4"/>
|
||||
<path fill="#BBBCBC" fill-opacity=".6" d="M0 7H40V33H0z"/>
|
||||
<path fill="#979797" d="M0 7H40V11H0zM0 29H40V33H0z"/>
|
||||
<text fill="#FFF" font-family="WorkSans-Medium, Work Sans" font-size="12" font-weight="400">
|
||||
<tspan x="13" y="25">C9</tspan>
|
||||
</text>
|
||||
</g>
|
||||
<g transform="translate(-630 -147) translate(50 25) translate(580 122) translate(0 70) translate(0 268) translate(568.5)">
|
||||
<circle cx="20" cy="20" r="18" fill="#4B4B4B" stroke="#000" stroke-width="4"/>
|
||||
<path fill="#BBBCBC" fill-opacity=".6" d="M0 7H40V33H0z"/>
|
||||
<path fill="#979797" d="M0 7H40V11H0zM0 29H40V33H0z"/>
|
||||
<text fill="#FFF" font-family="WorkSans-Medium, Work Sans" font-size="12" font-weight="400">
|
||||
<tspan x="9.5" y="25">C10</tspan>
|
||||
</text>
|
||||
</g>
|
||||
<g transform="translate(-630 -147) translate(50 25) translate(580 122) translate(0 70) translate(0 268) translate(628.5)">
|
||||
<circle cx="20" cy="20" r="18" fill="#4B4B4B" stroke="#000" stroke-width="4"/>
|
||||
<path fill="#BBBCBC" fill-opacity=".6" d="M0 7H40V33H0z"/>
|
||||
<path fill="#979797" d="M0 7H40V11H0zM0 29H40V33H0z"/>
|
||||
<text fill="#FFF" font-family="WorkSans-Medium, Work Sans" font-size="12" font-weight="400">
|
||||
<tspan x="9.5" y="25">C11</tspan>
|
||||
</text>
|
||||
</g>
|
||||
<g transform="translate(-630 -147) translate(50 25) translate(580 122) translate(0 70) translate(0 268) translate(688.5)">
|
||||
<circle cx="20" cy="20" r="18" fill="#4B4B4B" stroke="#000" stroke-width="4"/>
|
||||
<path fill="#BBBCBC" fill-opacity=".6" d="M0 7H40V33H0z"/>
|
||||
<path fill="#979797" d="M0 7H40V11H0zM0 29H40V33H0z"/>
|
||||
<text fill="#FFF" font-family="WorkSans-Medium, Work Sans" font-size="12" font-weight="400">
|
||||
<tspan x="9.5" y="25">C12</tspan>
|
||||
</text>
|
||||
</g>
|
||||
<g transform="translate(-630 -147) translate(50 25) translate(580 122) translate(0 70) translate(0 268) translate(748.5)">
|
||||
<circle cx="20" cy="20" r="18" fill="#4B4B4B" stroke="#000" stroke-width="4"/>
|
||||
<path fill="#BBBCBC" fill-opacity=".6" d="M0 7H40V33H0z"/>
|
||||
<path fill="#979797" d="M0 7H40V11H0zM0 29H40V33H0z"/>
|
||||
<text fill="#FFF" font-family="WorkSans-Medium, Work Sans" font-size="12" font-weight="400">
|
||||
<tspan x="9.5" y="25">C13</tspan>
|
||||
</text>
|
||||
</g>
|
||||
<g transform="translate(-630 -147) translate(50 25) translate(580 122) translate(0 70) translate(0 268) translate(808.5)">
|
||||
<circle cx="20" cy="20" r="18" fill="#4B4B4B" stroke="#000" stroke-width="4"/>
|
||||
<path fill="#BBBCBC" fill-opacity=".6" d="M0 7H40V33H0z"/>
|
||||
<path fill="#979797" d="M0 7H40V11H0zM0 29H40V33H0z"/>
|
||||
<text fill="#FFF" font-family="WorkSans-Medium, Work Sans" font-size="12" font-weight="400">
|
||||
<tspan x="9.5" y="25">C14</tspan>
|
||||
</text>
|
||||
</g>
|
||||
<g transform="translate(-630 -147) translate(50 25) translate(580 122) translate(0 70) translate(0 268) translate(868.5)">
|
||||
<circle cx="20" cy="20" r="18" fill="#4B4B4B" stroke="#000" stroke-width="4"/>
|
||||
<path fill="#BBBCBC" fill-opacity=".6" d="M0 7H40V33H0z"/>
|
||||
<path fill="#979797" d="M0 7H40V11H0zM0 29H40V33H0z"/>
|
||||
<text fill="#FFF" font-family="WorkSans-Medium, Work Sans" font-size="12" font-weight="400">
|
||||
<tspan x="9.5" y="25">C15</tspan>
|
||||
</text>
|
||||
</g>
|
||||
<g transform="translate(-630 -147) translate(50 25) translate(580 122) translate(0 70) translate(0 268) translate(928.5)">
|
||||
<circle cx="20" cy="20" r="18" fill="#4B4B4B" stroke="#000" stroke-width="4"/>
|
||||
<path fill="#BBBCBC" fill-opacity=".6" d="M0 7H40V33H0z"/>
|
||||
<path fill="#979797" d="M0 7H40V11H0zM0 29H40V33H0z"/>
|
||||
<text fill="#FFF" font-family="WorkSans-Medium, Work Sans" font-size="12" font-weight="400">
|
||||
<tspan x="9.5" y="25">C16</tspan>
|
||||
</text>
|
||||
</g>
|
||||
<g transform="translate(-630 -147) translate(50 25) translate(580 122) translate(0 70) translate(0 268) translate(988.5)">
|
||||
<circle cx="20" cy="20" r="18" fill="#4B4B4B" stroke="#000" stroke-width="4"/>
|
||||
<path fill="#BBBCBC" fill-opacity=".6" d="M0 7H40V33H0z"/>
|
||||
<path fill="#979797" d="M0 7H40V11H0zM0 29H40V33H0z"/>
|
||||
<text fill="#FFF" font-family="WorkSans-Medium, Work Sans" font-size="12" font-weight="400">
|
||||
<tspan x="9.5" y="25">C17</tspan>
|
||||
</text>
|
||||
<foreignObject
|
||||
width="40"
|
||||
height="40">
|
||||
<div class="ventosa">{{index}}</div>
|
||||
</foreignObject>
|
||||
</g>
|
||||
</g>
|
||||
|
||||
<g>
|
||||
<path fill="#BBBCBCCC" stroke="#979797" stroke-width="4" d="M2 9H1055V31H2z" transform="translate(-630 -147) translate(50 25) translate(580 122) translate(0 70) translate(0 432)"/>
|
||||
<g transform="translate(-630 -147) translate(50 25) translate(580 122) translate(0 70) translate(0 432) translate(28.5)">
|
||||
<g v-for="index in numVentose" :key="'D'+index" :transform="getPositionSheet(index,4)" >
|
||||
<circle cx="20" cy="20" r="18" fill="#4B4B4B" stroke="#000" stroke-width="4"/>
|
||||
<path fill="#BBBCBC" fill-opacity=".6" d="M0 7H40V33H0z"/>
|
||||
<path fill="#979797" d="M0 7H40V11H0zM0 29H40V33H0z"/>
|
||||
<text fill="#FFF" font-family="WorkSans-Medium, Work Sans" font-size="12" font-weight="400">
|
||||
<tspan x="12" y="25">D1</tspan>
|
||||
</text>
|
||||
</g>
|
||||
<g transform="translate(-630 -147) translate(50 25) translate(580 122) translate(0 70) translate(0 432) translate(88.5)">
|
||||
<circle cx="20" cy="20" r="18" fill="#4B4B4B" stroke="#000" stroke-width="4"/>
|
||||
<path fill="#BBBCBC" fill-opacity=".6" d="M0 7H40V33H0z"/>
|
||||
<path fill="#979797" d="M0 7H40V11H0zM0 29H40V33H0z"/>
|
||||
<text fill="#FFF" font-family="WorkSans-Medium, Work Sans" font-size="12" font-weight="400">
|
||||
<tspan x="12" y="25">D2</tspan>
|
||||
</text>
|
||||
</g>
|
||||
<g transform="translate(-630 -147) translate(50 25) translate(580 122) translate(0 70) translate(0 432) translate(148.5)">
|
||||
<circle cx="20" cy="20" r="18" fill="#4B4B4B" stroke="#000" stroke-width="4"/>
|
||||
<path fill="#BBBCBC" fill-opacity=".6" d="M0 7H40V33H0z"/>
|
||||
<path fill="#979797" d="M0 7H40V11H0zM0 29H40V33H0z"/>
|
||||
<text fill="#FFF" font-family="WorkSans-Medium, Work Sans" font-size="12" font-weight="400">
|
||||
<tspan x="12" y="25">D3</tspan>
|
||||
</text>
|
||||
</g>
|
||||
<g transform="translate(-630 -147) translate(50 25) translate(580 122) translate(0 70) translate(0 432) translate(208.5)">
|
||||
<circle cx="20" cy="20" r="18" fill="#4B4B4B" stroke="#000" stroke-width="4"/>
|
||||
<path fill="#BBBCBC" fill-opacity=".6" d="M0 7H40V33H0z"/>
|
||||
<path fill="#979797" d="M0 7H40V11H0zM0 29H40V33H0z"/>
|
||||
<text fill="#FFF" font-family="WorkSans-Medium, Work Sans" font-size="12" font-weight="400">
|
||||
<tspan x="12" y="25">D4</tspan>
|
||||
</text>
|
||||
</g>
|
||||
<g transform="translate(-630 -147) translate(50 25) translate(580 122) translate(0 70) translate(0 432) translate(268.5)">
|
||||
<circle cx="20" cy="20" r="18" fill="#4B4B4B" stroke="#000" stroke-width="4"/>
|
||||
<path fill="#BBBCBC" fill-opacity=".6" d="M0 7H40V33H0z"/>
|
||||
<path fill="#979797" d="M0 7H40V11H0zM0 29H40V33H0z"/>
|
||||
<text fill="#FFF" font-family="WorkSans-Medium, Work Sans" font-size="12" font-weight="400">
|
||||
<tspan x="12" y="25">D5</tspan>
|
||||
</text>
|
||||
</g>
|
||||
<g transform="translate(-630 -147) translate(50 25) translate(580 122) translate(0 70) translate(0 432) translate(328.5)">
|
||||
<circle cx="20" cy="20" r="18" fill="#4B4B4B" stroke="#000" stroke-width="4"/>
|
||||
<path fill="#BBBCBC" fill-opacity=".6" d="M0 7H40V33H0z"/>
|
||||
<path fill="#979797" d="M0 7H40V11H0zM0 29H40V33H0z"/>
|
||||
<text fill="#FFF" font-family="WorkSans-Medium, Work Sans" font-size="12" font-weight="400">
|
||||
<tspan x="12" y="25">D6</tspan>
|
||||
</text>
|
||||
</g>
|
||||
<g transform="translate(-630 -147) translate(50 25) translate(580 122) translate(0 70) translate(0 432) translate(388.5)">
|
||||
<circle cx="20" cy="20" r="18" fill="#4B4B4B" stroke="#000" stroke-width="4"/>
|
||||
<path fill="#BBBCBC" fill-opacity=".6" d="M0 7H40V33H0z"/>
|
||||
<path fill="#979797" d="M0 7H40V11H0zM0 29H40V33H0z"/>
|
||||
<text fill="#FFF" font-family="WorkSans-Medium, Work Sans" font-size="12" font-weight="400">
|
||||
<tspan x="12" y="25">D7</tspan>
|
||||
</text>
|
||||
</g>
|
||||
<g transform="translate(-630 -147) translate(50 25) translate(580 122) translate(0 70) translate(0 432) translate(448.5)">
|
||||
<circle cx="20" cy="20" r="18" fill="#4B4B4B" stroke="#000" stroke-width="4"/>
|
||||
<path fill="#BBBCBC" fill-opacity=".6" d="M0 7H40V33H0z"/>
|
||||
<path fill="#979797" d="M0 7H40V11H0zM0 29H40V33H0z"/>
|
||||
<text fill="#FFF" font-family="WorkSans-Medium, Work Sans" font-size="12" font-weight="400">
|
||||
<tspan x="12" y="25">D8</tspan>
|
||||
</text>
|
||||
</g>
|
||||
<g transform="translate(-630 -147) translate(50 25) translate(580 122) translate(0 70) translate(0 432) translate(508.5)">
|
||||
<circle cx="20" cy="20" r="18" fill="#4B4B4B" stroke="#000" stroke-width="4"/>
|
||||
<path fill="#BBBCBC" fill-opacity=".6" d="M0 7H40V33H0z"/>
|
||||
<path fill="#979797" d="M0 7H40V11H0zM0 29H40V33H0z"/>
|
||||
<text fill="#FFF" font-family="WorkSans-Medium, Work Sans" font-size="12" font-weight="400">
|
||||
<tspan x="12" y="25">D9</tspan>
|
||||
</text>
|
||||
</g>
|
||||
<g transform="translate(-630 -147) translate(50 25) translate(580 122) translate(0 70) translate(0 432) translate(568.5)">
|
||||
<circle cx="20" cy="20" r="18" fill="#4B4B4B" stroke="#000" stroke-width="4"/>
|
||||
<path fill="#BBBCBC" fill-opacity=".6" d="M0 7H40V33H0z"/>
|
||||
<path fill="#979797" d="M0 7H40V11H0zM0 29H40V33H0z"/>
|
||||
<text fill="#FFF" font-family="WorkSans-Medium, Work Sans" font-size="12" font-weight="400">
|
||||
<tspan x="8.5" y="25">D10</tspan>
|
||||
</text>
|
||||
</g>
|
||||
<g transform="translate(-630 -147) translate(50 25) translate(580 122) translate(0 70) translate(0 432) translate(628.5)">
|
||||
<circle cx="20" cy="20" r="18" fill="#4B4B4B" stroke="#000" stroke-width="4"/>
|
||||
<path fill="#BBBCBC" fill-opacity=".6" d="M0 7H40V33H0z"/>
|
||||
<path fill="#979797" d="M0 7H40V11H0zM0 29H40V33H0z"/>
|
||||
<text fill="#FFF" font-family="WorkSans-Medium, Work Sans" font-size="12" font-weight="400">
|
||||
<tspan x="8.5" y="25">D11</tspan>
|
||||
</text>
|
||||
</g>
|
||||
<g transform="translate(-630 -147) translate(50 25) translate(580 122) translate(0 70) translate(0 432) translate(688.5)">
|
||||
<circle cx="20" cy="20" r="18" fill="#4B4B4B" stroke="#000" stroke-width="4"/>
|
||||
<path fill="#BBBCBC" fill-opacity=".6" d="M0 7H40V33H0z"/>
|
||||
<path fill="#979797" d="M0 7H40V11H0zM0 29H40V33H0z"/>
|
||||
<text fill="#FFF" font-family="WorkSans-Medium, Work Sans" font-size="12" font-weight="400">
|
||||
<tspan x="8.5" y="25">D12</tspan>
|
||||
</text>
|
||||
</g>
|
||||
<g transform="translate(-630 -147) translate(50 25) translate(580 122) translate(0 70) translate(0 432) translate(748.5)">
|
||||
<circle cx="20" cy="20" r="18" fill="#4B4B4B" stroke="#000" stroke-width="4"/>
|
||||
<path fill="#BBBCBC" fill-opacity=".6" d="M0 7H40V33H0z"/>
|
||||
<path fill="#979797" d="M0 7H40V11H0zM0 29H40V33H0z"/>
|
||||
<text fill="#FFF" font-family="WorkSans-Medium, Work Sans" font-size="12" font-weight="400">
|
||||
<tspan x="8.5" y="25">D13</tspan>
|
||||
</text>
|
||||
</g>
|
||||
<g transform="translate(-630 -147) translate(50 25) translate(580 122) translate(0 70) translate(0 432) translate(808.5)">
|
||||
<circle cx="20" cy="20" r="18" fill="#4B4B4B" stroke="#000" stroke-width="4"/>
|
||||
<path fill="#BBBCBC" fill-opacity=".6" d="M0 7H40V33H0z"/>
|
||||
<path fill="#979797" d="M0 7H40V11H0zM0 29H40V33H0z"/>
|
||||
<text fill="#FFF" font-family="WorkSans-Medium, Work Sans" font-size="12" font-weight="400">
|
||||
<tspan x="8.5" y="25">D14</tspan>
|
||||
</text>
|
||||
</g>
|
||||
<g transform="translate(-630 -147) translate(50 25) translate(580 122) translate(0 70) translate(0 432) translate(868.5)">
|
||||
<circle cx="20" cy="20" r="18" fill="#4B4B4B" stroke="#000" stroke-width="4"/>
|
||||
<path fill="#BBBCBC" fill-opacity=".6" d="M0 7H40V33H0z"/>
|
||||
<path fill="#979797" d="M0 7H40V11H0zM0 29H40V33H0z"/>
|
||||
<text fill="#FFF" font-family="WorkSans-Medium, Work Sans" font-size="12" font-weight="400">
|
||||
<tspan x="8.5" y="25">D15</tspan>
|
||||
</text>
|
||||
</g>
|
||||
<g transform="translate(-630 -147) translate(50 25) translate(580 122) translate(0 70) translate(0 432) translate(928.5)">
|
||||
<circle cx="20" cy="20" r="18" fill="#4B4B4B" stroke="#000" stroke-width="4"/>
|
||||
<path fill="#BBBCBC" fill-opacity=".6" d="M0 7H40V33H0z"/>
|
||||
<path fill="#979797" d="M0 7H40V11H0zM0 29H40V33H0z"/>
|
||||
<text fill="#FFF" font-family="WorkSans-Medium, Work Sans" font-size="12" font-weight="400">
|
||||
<tspan x="8.5" y="25">D16</tspan>
|
||||
</text>
|
||||
</g>
|
||||
<g transform="translate(-630 -147) translate(50 25) translate(580 122) translate(0 70) translate(0 432) translate(988.5)">
|
||||
<circle cx="20" cy="20" r="18" fill="#4B4B4B" stroke="#000" stroke-width="4"/>
|
||||
<path fill="#BBBCBC" fill-opacity=".6" d="M0 7H40V33H0z"/>
|
||||
<path fill="#979797" d="M0 7H40V11H0zM0 29H40V33H0z"/>
|
||||
<text fill="#FFF" font-family="WorkSans-Medium, Work Sans" font-size="12" font-weight="400">
|
||||
<tspan x="8.5" y="25">D17</tspan>
|
||||
</text>
|
||||
<foreignObject
|
||||
width="40"
|
||||
height="40">
|
||||
<div class="ventosa">{{index}}</div>
|
||||
</foreignObject>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
@@ -582,6 +76,8 @@
|
||||
</g>
|
||||
</svg>
|
||||
<img class="volantino" src="assets/svg/elementi-volante.svg" />
|
||||
<div class="quota-volantino">{{quotaVolantino}} {{umeasVolantino}}</div>
|
||||
<div class="quota-caricatore">{{quotaVentose}} {{umeasVolantino}}</div>
|
||||
<div class="load-label">{{'lbl_loader_load_area'|localize('Area di Carico')}}</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
+7
-1
@@ -107,7 +107,13 @@
|
||||
</aside>
|
||||
<hr />
|
||||
<article>
|
||||
<svgcaricatore :larghLastraReal="recipe.general_sizes_sheet_dim_x.setpointHMI" :larghTelaioReal="parameters.loaderXsize"></svgcaricatore>
|
||||
<svgcaricatore
|
||||
:quotaVolantino="recipe.general_sizes_sheet_dim_y.setpointHMI"
|
||||
:umeasVolantino="recipe.general_sizes_sheet_dim_y.unitMeasure"
|
||||
:larghLastraReal="recipe.general_sizes_sheet_dim_x.setpointHMI"
|
||||
:larghTelaioReal="parameters.loaderXsize"
|
||||
:numVentose="Number(parameters.loaderSuckersNumber)"
|
||||
/>
|
||||
<div class="absolute bottom left">
|
||||
<!-- <button class="btn btn-info square">
|
||||
<img src="assets/icons/png/info.png" />
|
||||
|
||||
+27
-1
@@ -1,6 +1,6 @@
|
||||
import Vue from 'vue';
|
||||
import Component from 'vue-class-component';
|
||||
import { Prop } from 'vue-property-decorator';
|
||||
import { Prop, Watch } from 'vue-property-decorator';
|
||||
import Slider from "@/app_modules_thermo/components/slider.vue";
|
||||
import Scheda from "@/app_modules_thermo/components/scheda.vue";
|
||||
import svgChart from "@/app_modules_thermo/components/svgChart.vue";
|
||||
@@ -12,6 +12,32 @@ export default class VuotoPrincipale extends Vue {
|
||||
recipe: Recipe.IRecipe;
|
||||
|
||||
|
||||
@Watch("recipe.vacuum_main_max_time", {deep:true})
|
||||
editMaxTime(){
|
||||
if(this.recipe.vacuum_main_3_chart_setpointx.setpointHMI > 0){
|
||||
var maxtime = this.recipe.vacuum_main_1_chart_setpointx.setpointHMI + this.recipe.vacuum_main_2_chart_setpointx.setpointHMI;
|
||||
this.recipe.vacuum_main_3_chart_setpointx.setpointHMI = this.recipe.vacuum_main_max_time.setpointHMI - maxtime;
|
||||
}
|
||||
else if(this.recipe.vacuum_main_2_chart_setpointx.setpointHMI > 0 && this.recipe.vacuum_main_3_chart_setpointx.setpointHMI <= 0){
|
||||
var maxtime = this.recipe.vacuum_main_1_chart_setpointx.setpointHMI;
|
||||
this.recipe.vacuum_main_3_chart_setpointx.setpointHMI = 0;
|
||||
this.recipe.vacuum_main_2_chart_setpointx.setpointHMI = this.recipe.vacuum_main_max_time.setpointHMI - maxtime;
|
||||
}
|
||||
else if(this.recipe.vacuum_main_2_chart_setpointx.setpointHMI <= 0 && this.recipe.vacuum_main_3_chart_setpointx.setpointHMI <= 0){
|
||||
this.recipe.vacuum_main_2_chart_setpointx.setpointHMI = 0;
|
||||
this.recipe.vacuum_main_3_chart_setpointx.setpointHMI = 0;
|
||||
this.recipe.vacuum_main_1_chart_setpointx.setpointHMI = this.recipe.vacuum_main_max_time.setpointHMI;
|
||||
}
|
||||
}
|
||||
|
||||
@Watch("recipe.vacuum_main_1_chart_setpointx", {deep:true})
|
||||
@Watch("recipe.vacuum_main_2_chart_setpointx", {deep:true})
|
||||
@Watch("recipe.vacuum_main_3_chart_setpointx", {deep:true})
|
||||
editvaluesTime(n,o){
|
||||
var somma = this.recipe.vacuum_main_1_chart_setpointx.setpointHMI + this.recipe.vacuum_main_2_chart_setpointx.setpointHMI + this.recipe.vacuum_main_3_chart_setpointx.setpointHMI;
|
||||
this.recipe.vacuum_main_max_time.setpointHMI = somma;
|
||||
}
|
||||
|
||||
get bars() {
|
||||
return [
|
||||
{
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { baseRestService } from "@/_base/baseRestService";
|
||||
import { store, MachineInfoModel, machineInfoActions } from "@/store";
|
||||
import { SoftKeysConfigurationModel, machineInfoStore } from "../store/machineInfo.store"
|
||||
import { SoftKeysConfigurationModel,SoftKeysKeyboardModel, machineInfoStore } from "../store/machineInfo.store"
|
||||
import { CONFIGURATION } from "@/config";
|
||||
import { machineService } from ".";
|
||||
|
||||
@@ -24,6 +24,12 @@ export class DataService extends baseRestService {
|
||||
let result = await this.Put<number[]>((await this.BASE_URL()) + "/api/user_softkey/favorite", machineInfoStore.state.softkeysFavorites, true);
|
||||
return result;
|
||||
}
|
||||
async AddKeybSoftkey(id: number, position: number) {
|
||||
//machineInfoActions.addSoftKeysFavorites(store, model);
|
||||
let result = await this.Put<SoftKeysKeyboardModel>((await this.BASE_URL()) + "/api/user_softkey/keyboard?softkeyId=" + id +"&position=" + position, {}, true);
|
||||
machineInfoActions.updateKeybKeysFavorites(store, {id1: result.idStar1, id2: result.idStar2});
|
||||
return result;
|
||||
}
|
||||
|
||||
async RemoveUserSoftKeyFavourite(model: number) {
|
||||
machineInfoActions.removeSoftKeysFavorites(store, model);
|
||||
@@ -36,6 +42,12 @@ export class DataService extends baseRestService {
|
||||
return result;
|
||||
}
|
||||
|
||||
async GetKeybSoftkeyFavorite() {
|
||||
let result = await this.Get<SoftKeysKeyboardModel>((await this.BASE_URL()) + "/api/user_softkey/keyboard", true);
|
||||
machineInfoActions.updateKeybKeysFavorites(store, {id1: result.idStar1, id2: result.idStar2});
|
||||
return result;
|
||||
}
|
||||
|
||||
async SetCurrentNcLanguage(language) {
|
||||
return await this.Put((await this.BASE_URL()) + "/api/nc/active_language/" + language, null, true);
|
||||
}
|
||||
|
||||
@@ -28,7 +28,10 @@ export interface MachineInfoModel {
|
||||
|
||||
defaultLanguage?: string,
|
||||
clientDefaultLanguage?: string,
|
||||
softkeysFavorites?: Array<number>
|
||||
softkeysFavorites?: Array<number>,
|
||||
starKeyboard1?: number,
|
||||
starKeyboard2?: number
|
||||
|
||||
}
|
||||
|
||||
export interface MachineInfoActions {
|
||||
@@ -37,6 +40,7 @@ export interface MachineInfoActions {
|
||||
removeSoftKeysFavorites(context, model: number);
|
||||
updateSoftKeysFavorites(context, model: number[]);
|
||||
updateCanChangePages(context, canchanges: boolean);
|
||||
updateKeybKeysFavorites(context, model);
|
||||
}
|
||||
|
||||
export interface SoftKeysConfigurationModel {
|
||||
@@ -49,6 +53,11 @@ export interface SoftKeysConfigurationModel {
|
||||
|
||||
}
|
||||
|
||||
export interface SoftKeysKeyboardModel {
|
||||
idStar1: number,
|
||||
idStar2: number
|
||||
}
|
||||
|
||||
export const machineInfoStore = {
|
||||
state: {
|
||||
machineSerialNumber: "00000000000000",
|
||||
@@ -82,7 +91,10 @@ export const machineInfoStore = {
|
||||
defaultLanguage: "en",
|
||||
clientDefaultLanguage: "en",
|
||||
softkeysFavorites: [],
|
||||
siemensKeyboardOption: false
|
||||
siemensKeyboardOption: false,
|
||||
starKeyboard1: -1,
|
||||
starKeyboard2: -1,
|
||||
|
||||
} as MachineInfoModel,
|
||||
getters: {
|
||||
getNcSoftKeyInfo: state => id => {
|
||||
@@ -115,6 +127,10 @@ export const machineInfoStore = {
|
||||
},
|
||||
UpdateCanChangePages(store, canchanges: boolean) {
|
||||
store.canChangePages = canchanges;
|
||||
},
|
||||
updateKeybKeysFavorites(store, model){
|
||||
store.starKeyboard1 = model.id1;
|
||||
store.starKeyboard2 = model.id2;
|
||||
}
|
||||
},
|
||||
actions: {
|
||||
@@ -133,6 +149,9 @@ export const machineInfoStore = {
|
||||
updateCanChangePages(context, canchanges: boolean) {
|
||||
context.commit("UpdateCanChangePages", canchanges);
|
||||
},
|
||||
updateKeybKeysFavorites(context, model) {
|
||||
context.commit("updateKeybKeysFavorites",model);
|
||||
},
|
||||
|
||||
} as MachineInfoActions
|
||||
}
|
||||
|
||||
@@ -73,7 +73,8 @@ export interface MachineStatusModel {
|
||||
warmerAutocompStep: number,
|
||||
resistSizeX: number,
|
||||
resistSizeY: number,
|
||||
loaderXsize:number
|
||||
loaderXsize:number,
|
||||
loaderSuckersNumber:number
|
||||
}
|
||||
}
|
||||
|
||||
@@ -150,7 +151,8 @@ export const machineStatusStore = {
|
||||
warmerAutocompStep: 5,
|
||||
resistSizeX: 100,
|
||||
resistSizeY: 48,
|
||||
loaderXsize: 1300
|
||||
loaderXsize: 1300,
|
||||
loaderSuckersNumber:1
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user