bug fixed
This commit is contained in:
parent
37f46e6d16
commit
e7e80c982a
|
@ -0,0 +1,30 @@
|
|||
[gd_scene load_steps=2 format=3 uid="uid://w41eggledyvq"]
|
||||
|
||||
[ext_resource type="Script" path="res://BITKit/Scripts/UX/UXContainer.cs" id="1_0gyse"]
|
||||
|
||||
[node name="LineEditTemplate_Lite" type="PanelContainer" node_paths=PackedStringArray("label", "labels", "buttons", "lineEdit", "lineEdits", "optionButtons")]
|
||||
script = ExtResource("1_0gyse")
|
||||
label = NodePath("")
|
||||
labels = []
|
||||
buttons = []
|
||||
lineEdit = NodePath("")
|
||||
lineEdits = []
|
||||
optionButtons = []
|
||||
|
||||
[node name="MarginContainer" type="MarginContainer" parent="."]
|
||||
layout_mode = 2
|
||||
theme_override_constants/margin_left = 16
|
||||
theme_override_constants/margin_top = 16
|
||||
theme_override_constants/margin_right = 16
|
||||
theme_override_constants/margin_bottom = 16
|
||||
|
||||
[node name="HBoxContainer" type="HBoxContainer" parent="MarginContainer"]
|
||||
layout_mode = 2
|
||||
|
||||
[node name="Label" type="Label" parent="MarginContainer/HBoxContainer"]
|
||||
layout_mode = 2
|
||||
text = "Label"
|
||||
|
||||
[node name="LineEdit" type="LineEdit" parent="MarginContainer/HBoxContainer"]
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 3
|
|
@ -18,6 +18,8 @@ public partial class FormBuilder : Node
|
|||
[Export] private Button submitButton;
|
||||
[Export] private RichTextLabel logLabel;
|
||||
|
||||
|
||||
|
||||
public override void _Ready()
|
||||
{
|
||||
try
|
||||
|
|
|
@ -1,5 +1,7 @@
|
|||
using Godot;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
|
||||
// ReSharper disable MemberCanBePrivate.Global
|
||||
|
||||
namespace BITKit;
|
||||
|
@ -12,6 +14,10 @@ public partial class NodeBuilder : Node
|
|||
[Export] private Control emptyHints;
|
||||
[ExportCategory("Template")]
|
||||
[Export] private PackedScene template;
|
||||
|
||||
public Node[] Instances => _instances.ToArray();
|
||||
private readonly List<Node> _instances = new List<Node>();
|
||||
|
||||
public override void _Ready()
|
||||
{
|
||||
if (clearOnStart)
|
||||
|
@ -45,11 +51,14 @@ public partial class NodeBuilder : Node
|
|||
}
|
||||
|
||||
emptyHints?.Hide();;
|
||||
|
||||
_instances.Add(instance);
|
||||
return instance as T;
|
||||
}
|
||||
|
||||
public void Clear()
|
||||
{
|
||||
_instances.Clear();
|
||||
emptyHints?.Show();
|
||||
if (clearTemplateOnly)
|
||||
{
|
||||
|
|
|
@ -12,8 +12,15 @@ public partial class ScriptableTemplate : TemplateResource
|
|||
public override string[] GetTemplateNames() => templates.Select(x => x.Name).ToArray();
|
||||
public override FormResource GetTemplate(string name) => templates.Single(x => x.Name == name);
|
||||
public override bool IsSupportCreateTemplate => true;
|
||||
public override void CreateTemplate()
|
||||
public override FormResource CreateTemplate()
|
||||
{
|
||||
templates.Add(new ExampleFormResource("New Template" + DateTime.Now));
|
||||
var @new = new ExampleFormResource("New Template" + DateTime.Now);
|
||||
templates.Add(@new);
|
||||
return @new;
|
||||
}
|
||||
|
||||
public override void DeleteTemplate(string name)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,8 +1,12 @@
|
|||
using Godot;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
|
||||
// ReSharper disable MemberCanBePrivate.Global
|
||||
|
||||
namespace BITKit;
|
||||
|
||||
public partial class TemplateBuilder : Node
|
||||
{
|
||||
[Export] public TemplateResource template;
|
||||
|
@ -13,19 +17,26 @@ public partial class TemplateBuilder : Node
|
|||
[ExportCategory("Weaver")]
|
||||
[Export] private FormBuilder formBuilder;
|
||||
|
||||
[ExportCategory("UI 绑定")] [Export]
|
||||
private Button createTemplateButton;
|
||||
[ExportCategory("UI 绑定")]
|
||||
[Export] private Button createTemplateButton;
|
||||
[Export] private Control templateBody;
|
||||
|
||||
public FormResource CurrentTemplate { get; private set; }
|
||||
private ButtonGroup _buttonGroup;
|
||||
|
||||
private readonly Dictionary<string, Button> indexDictionary = new();
|
||||
|
||||
public override void _Ready()
|
||||
{
|
||||
_buttonGroup = new ButtonGroup();
|
||||
|
||||
if (template.IsSupportCreateTemplate && createTemplateButton is not null)
|
||||
{
|
||||
createTemplateButton.Pressed += template.CreateTemplate;
|
||||
createTemplateButton.Pressed += Rebuild;
|
||||
createTemplateButton.Pressed += () =>
|
||||
{
|
||||
CurrentTemplate = template.CreateTemplate();
|
||||
Rebuild();
|
||||
};
|
||||
}
|
||||
|
||||
Rebuild();
|
||||
|
@ -45,22 +56,46 @@ public partial class TemplateBuilder : Node
|
|||
{
|
||||
indexBuilder.Clear();
|
||||
|
||||
templateBody.Hide();
|
||||
|
||||
if (CurrentTemplate is not null && template.GetTemplateNames().Any(x => x == CurrentTemplate.Name))
|
||||
{
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
CurrentTemplate = null;
|
||||
}
|
||||
|
||||
foreach (var name in template.GetTemplateNames())
|
||||
{
|
||||
var container = indexBuilder.Build<UXContainer>();
|
||||
var _template = this.template.GetTemplate(name);
|
||||
var guid = Guid.NewGuid().ToString();
|
||||
|
||||
|
||||
container.button.Text = name;
|
||||
container.button.ButtonGroup = _buttonGroup;
|
||||
container.button.ToggleMode = true;
|
||||
|
||||
container.button.Pressed += () =>
|
||||
{
|
||||
Entry(_template);
|
||||
};
|
||||
|
||||
_template.SetMeta("RuntimeId",guid);
|
||||
indexDictionary.Add(guid,container.button);
|
||||
}
|
||||
if (CurrentTemplate is null) return;
|
||||
|
||||
Entry(CurrentTemplate);
|
||||
if(indexDictionary.TryGetValue(CurrentTemplate.GetMeta("RuntimeId").AsString(),out var _currentButton))
|
||||
_currentButton.ButtonPressed = true;
|
||||
}
|
||||
public void Entry(FormResource _template)
|
||||
{
|
||||
CurrentTemplate = _template;
|
||||
formBuilder.Build(_template);
|
||||
};
|
||||
}
|
||||
if(CurrentTemplate is not null)
|
||||
formBuilder.Build(CurrentTemplate);
|
||||
templateBody.Show();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -10,7 +10,8 @@ public abstract partial class TemplateResource : Resource, IStart, IStop
|
|||
public abstract string[] GetTemplateNames();
|
||||
public abstract FormResource GetTemplate(string name);
|
||||
public abstract bool IsSupportCreateTemplate { get; }
|
||||
public abstract void CreateTemplate();
|
||||
public abstract FormResource CreateTemplate();
|
||||
public abstract void DeleteTemplate(string name);
|
||||
public virtual void OnStart(){}
|
||||
public virtual void OnStop(){}
|
||||
public virtual void ManualSave(){}
|
||||
|
|
|
@ -14,10 +14,18 @@ public partial class IDIS_RegisterDB : FormDBProvider
|
|||
var jObject = JsonConvert.DeserializeObject<JObject>(data);
|
||||
var handle = jObject["handle"]!.ToObject<string>();
|
||||
var values = jObject["values"]!.ToObject<List<IDIS_Data>>();
|
||||
var references = jObject["references"]!.ToObject<List<string>>();
|
||||
var createUser = jObject["createUser"]!.ToObject<string>();
|
||||
|
||||
IDIS_Service.Singleton.Register(handle, createUser);
|
||||
foreach (var x in values)
|
||||
{
|
||||
IDIS_Service.Singleton.Register(handle,x.Name, x.Format, x.Value,x.Category);
|
||||
}
|
||||
|
||||
foreach (var x in references)
|
||||
{
|
||||
IDIS_Service.Singleton.RegisterReference(handle,x);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -9,11 +9,18 @@ public partial class IDIS_RegisterWeaver : FormWeaverResource
|
|||
{
|
||||
[Export] private NodePath handleEditPath;
|
||||
[Export] private NodePath generateButtonPath;
|
||||
[Export] private NodePath addReferenceButtonPath;
|
||||
[Export] private NodePath referenceEditBuilderPath;
|
||||
[Export] private NodePath templateBuilderPath;
|
||||
|
||||
private LineEdit handleEdit=>formBuilder.GetNode<LineEdit>(handleEditPath);
|
||||
private Button generateButton=>formBuilder.GetNode<Button>(generateButtonPath);
|
||||
private Button addReferenceButton=>formBuilder.GetNode<Button>(addReferenceButtonPath);
|
||||
private NodeBuilder referenceEditBuilder=>formBuilder.GetNode<NodeBuilder>(referenceEditBuilderPath);
|
||||
private TemplateBuilder templateBuilder => formBuilder.GetNode<TemplateBuilder>(templateBuilderPath);
|
||||
|
||||
private readonly List<IDIS_Data> _values=new();
|
||||
private readonly List<string> _references=new();
|
||||
public override void Weaver(Control container, IFormField formField)
|
||||
{
|
||||
var field = (IDIS_TemplateForm)formField;
|
||||
|
@ -40,6 +47,7 @@ public partial class IDIS_RegisterWeaver : FormWeaverResource
|
|||
data.Category = field.Category;
|
||||
data.Handle = handleEdit.Text;
|
||||
data.Format = field.Type;
|
||||
data.Name = field.Name;
|
||||
|
||||
valueEdit.TextChanged += x => data.Value = x;
|
||||
}
|
||||
|
@ -55,6 +63,8 @@ public partial class IDIS_RegisterWeaver : FormWeaverResource
|
|||
{
|
||||
{ "handle", handleEdit.Text },
|
||||
{ "values",_values},
|
||||
{ "references",_references},
|
||||
{"createUser",templateBuilder.CurrentTemplate.Name}
|
||||
};
|
||||
|
||||
var json = JsonHelper.Get(value);
|
||||
|
@ -65,6 +75,7 @@ public partial class IDIS_RegisterWeaver : FormWeaverResource
|
|||
public override void Clear()
|
||||
{
|
||||
_values.Clear();
|
||||
_references.Clear();
|
||||
}
|
||||
|
||||
public override void OnStart()
|
||||
|
@ -73,5 +84,17 @@ public partial class IDIS_RegisterWeaver : FormWeaverResource
|
|||
{
|
||||
handleEdit.Text = IDIS_Service.GenerateHandle();
|
||||
};
|
||||
addReferenceButton.Pressed += AddReference;
|
||||
}
|
||||
|
||||
private void AddReference()
|
||||
{
|
||||
var container = referenceEditBuilder.Build<UXContainer>();
|
||||
var myIndex = _references.Count;
|
||||
_references.Add("");
|
||||
container.lineEdit.Text = string.Empty;
|
||||
container.label.Text = "引用标识码:";
|
||||
container.lineEdit.PlaceholderText = "8.123.99/xxxxxxxx";
|
||||
container.lineEdit.TextChanged += x => _references[myIndex] = x;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -31,17 +31,34 @@ public partial class IDIS_TemplateResource : TemplateResource
|
|||
return Templates.Single(x => x.Name == name);
|
||||
}
|
||||
public override bool IsSupportCreateTemplate => true;
|
||||
public override void CreateTemplate()
|
||||
public override FormResource CreateTemplate()
|
||||
{
|
||||
Templates.Add(new IDIS_TemplateFormResource()
|
||||
var newResource =
|
||||
new IDIS_TemplateFormResource()
|
||||
{
|
||||
Name = "新的标识模板:"+Guid.NewGuid(),
|
||||
Fields = new IFormField[]
|
||||
{
|
||||
new IDIS_TemplateForm()
|
||||
{
|
||||
Name = "新的标识字段:",
|
||||
Type = "string",
|
||||
DefaultValue = "new",
|
||||
Category = "默认分类"
|
||||
}
|
||||
});
|
||||
}
|
||||
};
|
||||
Templates.Add(newResource);
|
||||
return newResource;
|
||||
}
|
||||
|
||||
public override void DeleteTemplate(string name)
|
||||
{
|
||||
var index = Templates.FindIndex(x => x.Name == name);
|
||||
if (index == -1) return;
|
||||
Templates.RemoveAt(index);
|
||||
}
|
||||
|
||||
private void EnsureCreated()
|
||||
{
|
||||
if (state != InitializationState.None) return;
|
||||
|
|
|
@ -8,14 +8,18 @@ namespace BITFactory;
|
|||
[GlobalClass]
|
||||
public partial class IDIS_TemplateWeaver : FormWeaverResource
|
||||
{
|
||||
[Export] private IDIS_TemplateResource templateResource;
|
||||
[ExportCategory(nameof(NodePath))]
|
||||
[Export] private NodePath addFieldsButtonPath;
|
||||
[Export] private NodePath templateBuilderPath;
|
||||
[Export] private NodePath templateNameEditPath;
|
||||
[Export] private NodePath saveTemplateNameButtonPath;
|
||||
[Export] private NodePath deleteTemplateButtonPath;
|
||||
private Button addFieldsButton => formBuilder.GetNode<Button>(addFieldsButtonPath);
|
||||
private TemplateBuilder templateBuilder => formBuilder.GetNode<TemplateBuilder>(templateBuilderPath);
|
||||
private LineEdit templateNameEdit => formBuilder.GetNode<LineEdit>(templateNameEditPath);
|
||||
private Button saveTemplateNameButton => formBuilder.GetNode<Button>(saveTemplateNameButtonPath);
|
||||
private Button deleteTemplateButton => formBuilder.GetNode<Button>(deleteTemplateButtonPath);
|
||||
|
||||
private readonly List<IDIS_TemplateForm> fields = new();
|
||||
public override void Weaver(Control container, IFormField formField)
|
||||
|
@ -99,24 +103,30 @@ public partial class IDIS_TemplateWeaver : FormWeaverResource
|
|||
public override void Clear()
|
||||
{
|
||||
fields.Clear();
|
||||
|
||||
if (templateBuilder.CurrentTemplate is null) return;
|
||||
templateNameEdit.Text = templateBuilder.CurrentTemplate?.Name;
|
||||
}
|
||||
public override void OnStart()
|
||||
{
|
||||
addFieldsButton.Pressed+=AddFields;
|
||||
|
||||
templateNameEdit.TextSubmitted+=ChangeCurrentTemplateName;
|
||||
deleteTemplateButton.Pressed += DeleteCurrentTemplate;
|
||||
saveTemplateNameButton.Pressed+=()=>
|
||||
{
|
||||
ChangeCurrentTemplateName(templateNameEdit.Text);
|
||||
};
|
||||
templateNameEdit.TextSubmitted+=ChangeCurrentTemplateName;
|
||||
}
|
||||
private void AddFields()
|
||||
{
|
||||
if (templateBuilder.CurrentTemplate is null) return;
|
||||
var current = templateBuilder.CurrentTemplate.Fields.ToList();
|
||||
current.Add(new IDIS_TemplateForm()
|
||||
{
|
||||
|
||||
Name = "新字段",
|
||||
Type = "string",
|
||||
DefaultValue = "",
|
||||
Category = ""
|
||||
});
|
||||
templateBuilder.CurrentTemplate.Fields = current.ToArray();
|
||||
|
||||
|
@ -136,11 +146,11 @@ public partial class IDIS_TemplateWeaver : FormWeaverResource
|
|||
templateBuilder.template.ManualSave();
|
||||
|
||||
templateBuilder.Rebuild();
|
||||
|
||||
UXContextMenu
|
||||
.Create()
|
||||
.AddAction("New PopopMenu",null)
|
||||
.Build();
|
||||
|
||||
}
|
||||
private void DeleteCurrentTemplate()
|
||||
{
|
||||
if(templateBuilder.CurrentTemplate==null) return;
|
||||
templateResource.DeleteTemplate(templateBuilder.CurrentTemplate.Name);
|
||||
templateBuilder.Rebuild();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -16,6 +16,8 @@ public partial class IDIS_SearchService : Node
|
|||
[Export] private Control searchCandidateContainer;
|
||||
[Export] private StringResource searchButtonVariation;
|
||||
[Export] private Control searchEditPadding;
|
||||
[Export] private Button searchButton;
|
||||
[Export] private Button copyHandleButton;
|
||||
|
||||
[ExportCategory("Query 绑定")]
|
||||
[Export] private Label handleLabel;
|
||||
|
@ -30,6 +32,8 @@ public partial class IDIS_SearchService : Node
|
|||
[Export] private PackedScene referenceTemplate;
|
||||
[Export] private PackedScene categoryTemplate;
|
||||
|
||||
private string currentHandle;
|
||||
|
||||
public override void _Ready()
|
||||
{
|
||||
MathNode.ClearChild(searchCandidateContainer);
|
||||
|
@ -37,6 +41,8 @@ public partial class IDIS_SearchService : Node
|
|||
|
||||
searchEdit.TextChanged += Search;
|
||||
//searchEdit.FocusExited += Clear;
|
||||
searchButton.Pressed+=Search;
|
||||
copyHandleButton.Pressed += CopyCurrentHandle;
|
||||
}
|
||||
|
||||
private void Search()
|
||||
|
@ -47,7 +53,11 @@ public partial class IDIS_SearchService : Node
|
|||
{
|
||||
MathNode.ClearChild(searchCandidateContainer);
|
||||
if (service.Query(word, out IDIS_Query[] queries) is false) return;
|
||||
if(queries.Length is 1 && queries.First().Handle == word)return;
|
||||
if (queries.Length is 1 && queries.First().Handle == word)
|
||||
{
|
||||
QueryIDIS(queries.First());
|
||||
return;
|
||||
}
|
||||
foreach (var query in queries.Take(3))
|
||||
{
|
||||
var button = new Button();
|
||||
|
@ -56,7 +66,7 @@ public partial class IDIS_SearchService : Node
|
|||
|
||||
searchCandidateContainer.AddChild(button);
|
||||
|
||||
button.Text = query.Handle;
|
||||
button.Text = $"{query.Handle}:{query.CreateUser}";
|
||||
|
||||
button.Pressed+=OnButtonOnPressed;
|
||||
|
||||
|
@ -81,8 +91,10 @@ public partial class IDIS_SearchService : Node
|
|||
|
||||
handleLabel.Text = query.Handle;
|
||||
|
||||
createTimeLabel.Text = query.CreateTime.ToString("yyyy-MM-dd HH:mm:ss");
|
||||
createTimeLabel.Text = query.UpdateTime.ToString("yyyy-MM-dd HH:mm:ss");
|
||||
currentHandle = query.Handle;
|
||||
|
||||
createTimeLabel.Text = query.CreateTime.ToString("yyyy-MM-dd HH:mm:ss",CultureInfo.InvariantCulture);
|
||||
updateTimeLabel.Text = query.UpdateTime.ToString("yyyy-MM-dd HH:mm:ss",CultureInfo.InvariantCulture);
|
||||
|
||||
MathNode.ClearChild(valueContainer);
|
||||
MathNode.ClearChild(referenceContainer);
|
||||
|
@ -120,6 +132,11 @@ public partial class IDIS_SearchService : Node
|
|||
referenceContainer.AddChild(container);
|
||||
}
|
||||
}
|
||||
|
||||
private void CopyCurrentHandle()
|
||||
{
|
||||
DisplayServer.ClipboardSet(currentHandle);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -36,6 +36,10 @@ public class IDIS_Value:IDIS_Base
|
|||
/// </summary>
|
||||
[Key]
|
||||
public string Handle { get; set; }
|
||||
/// <summary>
|
||||
/// 创建用户,例如:模板名称,用户名称
|
||||
/// </summary>
|
||||
public string CreateUser { get; set; }
|
||||
}
|
||||
// ReSharper disable once IdentifierTypo
|
||||
public class IDIS_Query : IDIS_Value
|
||||
|
@ -147,12 +151,13 @@ public class IDIS_DBContext:DbContext
|
|||
ChangeTracker.DetectChanges();
|
||||
ChangeTracker.Clear();
|
||||
queries = Values
|
||||
.Where(x => x.Handle.Contains(key))
|
||||
.Where(x => x.Handle.Contains(key) || x.CreateUser.Contains(key))
|
||||
.Select(x => new IDIS_Query()
|
||||
{
|
||||
Handle = x.Handle,
|
||||
CreateTime = x.CreateTime,
|
||||
UpdateTime = x.UpdateTime,
|
||||
CreateUser = x.CreateUser,
|
||||
Datas = Datas.Where(data => data.Handle == x.Handle).ToArray(),
|
||||
References = References.Where(reference => reference.Handle == x.Handle).ToArray()
|
||||
}).ToArray();
|
||||
|
@ -171,7 +176,7 @@ public class IDIS_DBContext:DbContext
|
|||
query = queries.FirstOrDefault();
|
||||
return queries.Any();
|
||||
}
|
||||
public bool Register(string handle)
|
||||
public bool Register(string handle,string createUser = Constant.System.Internal)
|
||||
{
|
||||
var handleExists = Values.Any(x => x.Handle == handle);
|
||||
if (handleExists)
|
||||
|
@ -180,7 +185,8 @@ public class IDIS_DBContext:DbContext
|
|||
}
|
||||
var value = new IDIS_Value()
|
||||
{
|
||||
Handle = handle
|
||||
Handle = handle,
|
||||
CreateUser = createUser,
|
||||
};
|
||||
Values.Add(value);
|
||||
SaveChangesAsync();
|
||||
|
@ -252,7 +258,7 @@ public partial class IDIS_Service:Node
|
|||
}
|
||||
|
||||
public bool Query(string word,out IDIS_Query[] queries) => Context.Query(word, out queries);
|
||||
public bool Register(string handle) => Context.Register(handle);
|
||||
public bool Register(string handle,string createUser=Constant.System.Internal) => Context.Register(handle,createUser);
|
||||
public void Register(string handle,string name, string format, string value,string category) => Context.Register(handle,name, format, value,category);
|
||||
public void RegisterReference(string handle,string refenceHandle) => Context.RegisterReference(handle,refenceHandle);
|
||||
public static string GenerateHandle() => $"88.123.99/{Mathf.Abs(Guid.NewGuid().GetHashCode())}";
|
||||
|
|
|
@ -111,6 +111,12 @@ public partial class 温湿度Reader : Node
|
|||
await UniTask.SwitchToTaskPool();
|
||||
try
|
||||
{
|
||||
if (_modbus is null)
|
||||
{
|
||||
hintsLabel.SetTextAsync("Modbus未初始化");
|
||||
return;
|
||||
}
|
||||
|
||||
_CancellationTokenSource.Token.ThrowIfCancellationRequested();
|
||||
hintsLabel.SetTextAsync( "正在读取温湿度数据..."+DateTime.Now);
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
[gd_scene load_steps=66 format=3 uid="uid://cngf2h2a5ne4a"]
|
||||
[gd_scene load_steps=68 format=3 uid="uid://cngf2h2a5ne4a"]
|
||||
|
||||
[ext_resource type="Script" path="res://BITKit/Scripts/UX/UXPanel.cs" id="1_c78kh"]
|
||||
[ext_resource type="PackedScene" uid="uid://d1po2qljd0jh2" path="res://Mods/教育平台/教程header.tscn" id="2_mn1rn"]
|
||||
|
@ -36,6 +36,7 @@
|
|||
[ext_resource type="PackedScene" uid="uid://cccx8fmmfttth" path="res://Mods/工业数据采集与分析应用分享/Templates/标识数据模板.tscn" id="20_kicyn"]
|
||||
[ext_resource type="VideoStream" path="res://Mods/工业数据采集与分析应用分享/Arts/Videos/生产过程模拟.ogv" id="27_laoxb"]
|
||||
[ext_resource type="Script" path="res://Mods/工业数据采集与分析应用分享/Scripts/温湿度Reader.cs" id="27_q8j7q"]
|
||||
[ext_resource type="PackedScene" uid="uid://w41eggledyvq" path="res://Artists/Templates/LineEditTemplate_Lite.tscn" id="30_d5241"]
|
||||
[ext_resource type="Script" path="res://Mods/工业数据采集与分析应用分享/Scripts/IDIS_THService.cs" id="30_jn688"]
|
||||
[ext_resource type="Script" path="res://BITKit/Scripts/Video/VideoPlayer.cs" id="31_0moq5"]
|
||||
[ext_resource type="Script" path="res://BITKit/Scripts/Builder/Form/FormBuilder.cs" id="37_pcw20"]
|
||||
|
@ -78,12 +79,17 @@ value = "Panel"
|
|||
[sub_resource type="Resource" id="Resource_flu4x"]
|
||||
script = ExtResource("39_p2ycf")
|
||||
|
||||
[sub_resource type="Resource" id="Resource_0cbl3"]
|
||||
script = ExtResource("39_p2ycf")
|
||||
|
||||
[sub_resource type="Resource" id="Resource_l4b2n"]
|
||||
script = ExtResource("41_48x07")
|
||||
addFieldsButtonPath = NodePath("../../Layout/UX Window Service/Horizontal Layout/内容/MarginContainer/标识模板生成器/HBoxContainer/VBoxContainer2/VBoxContainer/ScrollContainer/VBoxContainer/add-button")
|
||||
templateResource = SubResource("Resource_0cbl3")
|
||||
addFieldsButtonPath = NodePath("../../Layout/UX Window Service/Horizontal Layout/内容/MarginContainer/标识模板生成器/HBoxContainer/VBoxContainer3/add_field-button")
|
||||
templateBuilderPath = NodePath("..")
|
||||
templateNameEditPath = NodePath("../../Layout/UX Window Service/Horizontal Layout/内容/MarginContainer/标识模板生成器/HBoxContainer/VBoxContainer2/VBoxContainer/ScrollContainer/VBoxContainer/TemelateName/MarginContainer/HBoxContainer/LineEdit")
|
||||
saveTemplateNameButtonPath = NodePath("../../Layout/UX Window Service/Horizontal Layout/内容/MarginContainer/标识模板生成器/HBoxContainer/VBoxContainer2/VBoxContainer/ScrollContainer/VBoxContainer/TemelateName/MarginContainer/HBoxContainer/Button")
|
||||
templateNameEditPath = NodePath("../../Layout/UX Window Service/Horizontal Layout/内容/MarginContainer/标识模板生成器/HBoxContainer/标识模板-body/VBoxContainer/ScrollContainer/VBoxContainer/TemelateName/MarginContainer/HBoxContainer/templateName-edit")
|
||||
saveTemplateNameButtonPath = NodePath("../../Layout/UX Window Service/Horizontal Layout/内容/MarginContainer/标识模板生成器/HBoxContainer/标识模板-body/save_template-button")
|
||||
deleteTemplateButtonPath = NodePath("../../Layout/UX Window Service/Horizontal Layout/内容/MarginContainer/标识模板生成器/HBoxContainer/标识模板-body/VBoxContainer/ScrollContainer/VBoxContainer/TemelateName/MarginContainer/HBoxContainer/deleteTemplate-button")
|
||||
|
||||
[sub_resource type="Resource" id="Resource_qa6b3"]
|
||||
script = ExtResource("39_p2ycf")
|
||||
|
@ -92,6 +98,9 @@ script = ExtResource("39_p2ycf")
|
|||
script = ExtResource("42_2r83e")
|
||||
handleEditPath = NodePath("../../Layout/UX Window Service/Horizontal Layout/内容/MarginContainer/标识模板注册器/HBoxContainer/VBoxContainer2/VBoxContainer/PanelContainer2/MarginContainer/HBoxContainer/LineEdit")
|
||||
generateButtonPath = NodePath("../../Layout/UX Window Service/Horizontal Layout/内容/MarginContainer/标识模板注册器/HBoxContainer/VBoxContainer2/VBoxContainer/PanelContainer2/MarginContainer/HBoxContainer/Button")
|
||||
addReferenceButtonPath = NodePath("../../Layout/UX Window Service/Horizontal Layout/内容/MarginContainer/标识模板注册器/HBoxContainer/VBoxContainer2/VBoxContainer/ScrollContainer/VBoxContainer/add-button")
|
||||
referenceEditBuilderPath = NodePath("../../Layout/UX Window Service/Horizontal Layout/内容/MarginContainer/标识模板注册器/HBoxContainer/VBoxContainer2/VBoxContainer/ScrollContainer/VBoxContainer/Reference-Layout")
|
||||
templateBuilderPath = NodePath("..")
|
||||
|
||||
[sub_resource type="Resource" id="Resource_3wa3y"]
|
||||
script = ExtResource("39_d5jaq")
|
||||
|
@ -136,8 +145,8 @@ layout_mode = 2
|
|||
layout_mode = 2
|
||||
size_flags_vertical = 3
|
||||
script = ExtResource("3_sfip0")
|
||||
tabs = [NodePath("Horizontal Layout/导航栏/MarginContainer/Layout/VBoxContainer/标识模板-button"), NodePath("Horizontal Layout/导航栏/MarginContainer/Layout/VBoxContainer/注册标识"), NodePath("Horizontal Layout/导航栏/MarginContainer/Layout/VBoxContainer/更新标识"), NodePath("Horizontal Layout/导航栏/MarginContainer/Layout/VBoxContainer/标识解析"), NodePath("Horizontal Layout/导航栏/MarginContainer/Layout/VBoxContainer/温湿度传感器"), NodePath("Horizontal Layout/导航栏/MarginContainer/Layout/VBoxContainer/标识模板生成"), NodePath("Horizontal Layout/导航栏/MarginContainer/Layout/VBoxContainer/标识模板注册"), NodePath("Horizontal Layout/导航栏/MarginContainer/Layout/VBoxContainer/自动注册标识")]
|
||||
windows = [NodePath("Horizontal Layout/内容/MarginContainer/标识模板"), NodePath("Horizontal Layout/内容/MarginContainer/标注注册"), NodePath("Horizontal Layout/内容/MarginContainer/标识更新"), NodePath("Horizontal Layout/内容/MarginContainer/标识解析"), NodePath("Horizontal Layout/内容/MarginContainer/温湿度传感器"), NodePath("Horizontal Layout/内容/MarginContainer/标识模板生成器"), NodePath("Horizontal Layout/内容/MarginContainer/标识模板注册器"), NodePath("Horizontal Layout/内容/MarginContainer/自动注册标识")]
|
||||
tabs = [NodePath("Horizontal Layout/导航栏/MarginContainer/Layout/VBoxContainer/标识解析"), NodePath("Horizontal Layout/导航栏/MarginContainer/Layout/VBoxContainer/温湿度传感器"), NodePath("Horizontal Layout/导航栏/MarginContainer/Layout/VBoxContainer/标识模板生成"), NodePath("Horizontal Layout/导航栏/MarginContainer/Layout/VBoxContainer/标识模板注册"), NodePath("Horizontal Layout/导航栏/MarginContainer/Layout/VBoxContainer/自动注册标识")]
|
||||
windows = [NodePath("Horizontal Layout/内容/MarginContainer/标识解析"), NodePath("Horizontal Layout/内容/MarginContainer/温湿度传感器"), NodePath("Horizontal Layout/内容/MarginContainer/标识模板生成器"), NodePath("Horizontal Layout/内容/MarginContainer/标识模板注册器"), NodePath("Horizontal Layout/内容/MarginContainer/自动注册标识")]
|
||||
|
||||
[node name="Horizontal Layout" type="HBoxContainer" parent="Layout/UX Window Service"]
|
||||
layout_mode = 2
|
||||
|
@ -723,6 +732,7 @@ horizontal_scroll_mode = 0
|
|||
|
||||
[node name="NodeBuilder" type="VBoxContainer" parent="Layout/UX Window Service/Horizontal Layout/内容/MarginContainer/标识更新/Layout/HBoxContainer/VBoxContainer2/ScrollContainer" node_paths=PackedStringArray("emptyHints")]
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 3
|
||||
theme_override_constants/separation = 12
|
||||
script = ExtResource("14_q0cb2")
|
||||
emptyHints = NodePath("Label2")
|
||||
|
@ -1006,7 +1016,14 @@ layout_mode = 2
|
|||
theme_type_variation = &"HeaderSmall"
|
||||
text = "标识码:"
|
||||
|
||||
[node name="label[0]" type="Label" parent="Layout/UX Window Service/Horizontal Layout/内容/MarginContainer/标识解析/ScrollContainer/Layout/标识解析结果/VBoxContainer/UXContainer/Margin/GridContainer"]
|
||||
[node name="HBoxContainer" type="HBoxContainer" parent="Layout/UX Window Service/Horizontal Layout/内容/MarginContainer/标识解析/ScrollContainer/Layout/标识解析结果/VBoxContainer/UXContainer/Margin/GridContainer"]
|
||||
layout_mode = 2
|
||||
|
||||
[node name="copy-button" type="Button" parent="Layout/UX Window Service/Horizontal Layout/内容/MarginContainer/标识解析/ScrollContainer/Layout/标识解析结果/VBoxContainer/UXContainer/Margin/GridContainer/HBoxContainer"]
|
||||
layout_mode = 2
|
||||
text = "复制"
|
||||
|
||||
[node name="label[0]" type="Label" parent="Layout/UX Window Service/Horizontal Layout/内容/MarginContainer/标识解析/ScrollContainer/Layout/标识解析结果/VBoxContainer/UXContainer/Margin/GridContainer/HBoxContainer"]
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 3
|
||||
theme_type_variation = &"HeaderSmall"
|
||||
|
@ -1315,6 +1332,14 @@ layout_mode = 2
|
|||
theme_type_variation = &"HeaderLarge"
|
||||
text = "列表"
|
||||
|
||||
[node name="add_field-button" type="Button" parent="Layout/UX Window Service/Horizontal Layout/内容/MarginContainer/标识模板生成器/HBoxContainer/VBoxContainer3"]
|
||||
layout_mode = 2
|
||||
text = "创建模板"
|
||||
|
||||
[node name="Label2" type="Label" parent="Layout/UX Window Service/Horizontal Layout/内容/MarginContainer/标识模板生成器/HBoxContainer/VBoxContainer3"]
|
||||
layout_mode = 2
|
||||
text = "已创建额度模板列表"
|
||||
|
||||
[node name="ScrollContainer" type="ScrollContainer" parent="Layout/UX Window Service/Horizontal Layout/内容/MarginContainer/标识模板生成器/HBoxContainer/VBoxContainer3"]
|
||||
layout_mode = 2
|
||||
size_flags_vertical = 3
|
||||
|
@ -1322,9 +1347,10 @@ horizontal_scroll_mode = 0
|
|||
|
||||
[node name="Index-NodeBuilder" type="VBoxContainer" parent="Layout/UX Window Service/Horizontal Layout/内容/MarginContainer/标识模板生成器/HBoxContainer/VBoxContainer3/ScrollContainer" node_paths=PackedStringArray("emptyHints")]
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 3
|
||||
theme_override_constants/separation = 12
|
||||
script = ExtResource("14_q0cb2")
|
||||
emptyHints = NodePath("../../../../../标识模板/VBoxContainer/HBoxContainer/VBoxContainer3/ScrollContainer/NodeBuilder/Label2")
|
||||
emptyHints = NodePath("Label2")
|
||||
template = ExtResource("14_pcoc2")
|
||||
|
||||
[node name="Option-Button" parent="Layout/UX Window Service/Horizontal Layout/内容/MarginContainer/标识模板生成器/HBoxContainer/VBoxContainer3/ScrollContainer/Index-NodeBuilder" node_paths=PackedStringArray("button", "buttons", "optionButtons") instance=ExtResource("14_pcoc2")]
|
||||
|
@ -1361,110 +1387,92 @@ optionButtons = []
|
|||
layout_mode = 2
|
||||
text = "oops,没有找到模板,快去创建吧!"
|
||||
|
||||
[node name="Button" type="Button" parent="Layout/UX Window Service/Horizontal Layout/内容/MarginContainer/标识模板生成器/HBoxContainer/VBoxContainer3"]
|
||||
layout_mode = 2
|
||||
text = "创建模板"
|
||||
|
||||
[node name="VSeparator" type="VSeparator" parent="Layout/UX Window Service/Horizontal Layout/内容/MarginContainer/标识模板生成器/HBoxContainer"]
|
||||
visible = false
|
||||
layout_mode = 2
|
||||
theme_override_constants/separation = 64
|
||||
|
||||
[node name="VBoxContainer2" type="VBoxContainer" parent="Layout/UX Window Service/Horizontal Layout/内容/MarginContainer/标识模板生成器/HBoxContainer"]
|
||||
[node name="标识模板-body" type="VBoxContainer" parent="Layout/UX Window Service/Horizontal Layout/内容/MarginContainer/标识模板生成器/HBoxContainer"]
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 3
|
||||
|
||||
[node name="VBoxContainer" type="VBoxContainer" parent="Layout/UX Window Service/Horizontal Layout/内容/MarginContainer/标识模板生成器/HBoxContainer/VBoxContainer2"]
|
||||
[node name="VBoxContainer" type="VBoxContainer" parent="Layout/UX Window Service/Horizontal Layout/内容/MarginContainer/标识模板生成器/HBoxContainer/标识模板-body"]
|
||||
layout_mode = 2
|
||||
size_flags_vertical = 3
|
||||
|
||||
[node name="Label2" type="Label" parent="Layout/UX Window Service/Horizontal Layout/内容/MarginContainer/标识模板生成器/HBoxContainer/VBoxContainer2/VBoxContainer"]
|
||||
[node name="Label2" type="Label" parent="Layout/UX Window Service/Horizontal Layout/内容/MarginContainer/标识模板生成器/HBoxContainer/标识模板-body/VBoxContainer"]
|
||||
layout_mode = 2
|
||||
theme_type_variation = &"HeaderLarge"
|
||||
text = "表单"
|
||||
|
||||
[node name="HSeparator" type="HSeparator" parent="Layout/UX Window Service/Horizontal Layout/内容/MarginContainer/标识模板生成器/HBoxContainer/VBoxContainer2/VBoxContainer"]
|
||||
[node name="HSeparator" type="HSeparator" parent="Layout/UX Window Service/Horizontal Layout/内容/MarginContainer/标识模板生成器/HBoxContainer/标识模板-body/VBoxContainer"]
|
||||
visible = false
|
||||
layout_mode = 2
|
||||
theme_type_variation = &"HSeparator_8px"
|
||||
|
||||
[node name="ScrollContainer" type="ScrollContainer" parent="Layout/UX Window Service/Horizontal Layout/内容/MarginContainer/标识模板生成器/HBoxContainer/VBoxContainer2/VBoxContainer"]
|
||||
[node name="ScrollContainer" type="ScrollContainer" parent="Layout/UX Window Service/Horizontal Layout/内容/MarginContainer/标识模板生成器/HBoxContainer/标识模板-body/VBoxContainer"]
|
||||
layout_mode = 2
|
||||
size_flags_vertical = 3
|
||||
|
||||
[node name="VBoxContainer" type="VBoxContainer" parent="Layout/UX Window Service/Horizontal Layout/内容/MarginContainer/标识模板生成器/HBoxContainer/VBoxContainer2/VBoxContainer/ScrollContainer"]
|
||||
[node name="VBoxContainer" type="VBoxContainer" parent="Layout/UX Window Service/Horizontal Layout/内容/MarginContainer/标识模板生成器/HBoxContainer/标识模板-body/VBoxContainer/ScrollContainer"]
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 3
|
||||
|
||||
[node name="TemelateName" type="PanelContainer" parent="Layout/UX Window Service/Horizontal Layout/内容/MarginContainer/标识模板生成器/HBoxContainer/VBoxContainer2/VBoxContainer/ScrollContainer/VBoxContainer"]
|
||||
[node name="TemelateName" type="PanelContainer" parent="Layout/UX Window Service/Horizontal Layout/内容/MarginContainer/标识模板生成器/HBoxContainer/标识模板-body/VBoxContainer/ScrollContainer/VBoxContainer"]
|
||||
layout_mode = 2
|
||||
|
||||
[node name="MarginContainer" type="MarginContainer" parent="Layout/UX Window Service/Horizontal Layout/内容/MarginContainer/标识模板生成器/HBoxContainer/VBoxContainer2/VBoxContainer/ScrollContainer/VBoxContainer/TemelateName"]
|
||||
[node name="MarginContainer" type="MarginContainer" parent="Layout/UX Window Service/Horizontal Layout/内容/MarginContainer/标识模板生成器/HBoxContainer/标识模板-body/VBoxContainer/ScrollContainer/VBoxContainer/TemelateName"]
|
||||
layout_mode = 2
|
||||
theme_override_constants/margin_left = 16
|
||||
theme_override_constants/margin_top = 16
|
||||
theme_override_constants/margin_right = 16
|
||||
theme_override_constants/margin_bottom = 16
|
||||
|
||||
[node name="HBoxContainer" type="HBoxContainer" parent="Layout/UX Window Service/Horizontal Layout/内容/MarginContainer/标识模板生成器/HBoxContainer/VBoxContainer2/VBoxContainer/ScrollContainer/VBoxContainer/TemelateName/MarginContainer"]
|
||||
[node name="HBoxContainer" type="HBoxContainer" parent="Layout/UX Window Service/Horizontal Layout/内容/MarginContainer/标识模板生成器/HBoxContainer/标识模板-body/VBoxContainer/ScrollContainer/VBoxContainer/TemelateName/MarginContainer"]
|
||||
layout_mode = 2
|
||||
theme_override_constants/separation = 8
|
||||
|
||||
[node name="Label" type="Label" parent="Layout/UX Window Service/Horizontal Layout/内容/MarginContainer/标识模板生成器/HBoxContainer/VBoxContainer2/VBoxContainer/ScrollContainer/VBoxContainer/TemelateName/MarginContainer/HBoxContainer"]
|
||||
[node name="Label" type="Label" parent="Layout/UX Window Service/Horizontal Layout/内容/MarginContainer/标识模板生成器/HBoxContainer/标识模板-body/VBoxContainer/ScrollContainer/VBoxContainer/TemelateName/MarginContainer/HBoxContainer"]
|
||||
layout_mode = 2
|
||||
text = "模板名称:"
|
||||
|
||||
[node name="LineEdit" type="LineEdit" parent="Layout/UX Window Service/Horizontal Layout/内容/MarginContainer/标识模板生成器/HBoxContainer/VBoxContainer2/VBoxContainer/ScrollContainer/VBoxContainer/TemelateName/MarginContainer/HBoxContainer"]
|
||||
[node name="templateName-edit" type="LineEdit" parent="Layout/UX Window Service/Horizontal Layout/内容/MarginContainer/标识模板生成器/HBoxContainer/标识模板-body/VBoxContainer/ScrollContainer/VBoxContainer/TemelateName/MarginContainer/HBoxContainer"]
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 3
|
||||
placeholder_text = "新的标识注册模板"
|
||||
|
||||
[node name="Button" type="Button" parent="Layout/UX Window Service/Horizontal Layout/内容/MarginContainer/标识模板生成器/HBoxContainer/VBoxContainer2/VBoxContainer/ScrollContainer/VBoxContainer/TemelateName/MarginContainer/HBoxContainer"]
|
||||
[node name="Button" type="Button" parent="Layout/UX Window Service/Horizontal Layout/内容/MarginContainer/标识模板生成器/HBoxContainer/标识模板-body/VBoxContainer/ScrollContainer/VBoxContainer/TemelateName/MarginContainer/HBoxContainer"]
|
||||
layout_mode = 2
|
||||
text = "保存新的名称"
|
||||
|
||||
[node name="Node Builder" type="VBoxContainer" parent="Layout/UX Window Service/Horizontal Layout/内容/MarginContainer/标识模板生成器/HBoxContainer/VBoxContainer2/VBoxContainer/ScrollContainer/VBoxContainer"]
|
||||
[node name="VSeparator" type="VSeparator" parent="Layout/UX Window Service/Horizontal Layout/内容/MarginContainer/标识模板生成器/HBoxContainer/标识模板-body/VBoxContainer/ScrollContainer/VBoxContainer/TemelateName/MarginContainer/HBoxContainer"]
|
||||
layout_mode = 2
|
||||
theme_type_variation = &"VSeparator_16px"
|
||||
|
||||
[node name="deleteTemplate-button" type="Button" parent="Layout/UX Window Service/Horizontal Layout/内容/MarginContainer/标识模板生成器/HBoxContainer/标识模板-body/VBoxContainer/ScrollContainer/VBoxContainer/TemelateName/MarginContainer/HBoxContainer"]
|
||||
layout_mode = 2
|
||||
text = "删除模板"
|
||||
|
||||
[node name="Node Builder" type="VBoxContainer" parent="Layout/UX Window Service/Horizontal Layout/内容/MarginContainer/标识模板生成器/HBoxContainer/标识模板-body/VBoxContainer/ScrollContainer/VBoxContainer"]
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 3
|
||||
script = ExtResource("14_q0cb2")
|
||||
|
||||
[node name="PanelContainer" type="PanelContainer" parent="Layout/UX Window Service/Horizontal Layout/内容/MarginContainer/标识模板生成器/HBoxContainer/VBoxContainer2/VBoxContainer/ScrollContainer/VBoxContainer/Node Builder"]
|
||||
layout_mode = 2
|
||||
|
||||
[node name="MarginContainer" type="MarginContainer" parent="Layout/UX Window Service/Horizontal Layout/内容/MarginContainer/标识模板生成器/HBoxContainer/VBoxContainer2/VBoxContainer/ScrollContainer/VBoxContainer/Node Builder/PanelContainer"]
|
||||
layout_mode = 2
|
||||
theme_override_constants/margin_left = 16
|
||||
theme_override_constants/margin_top = 16
|
||||
theme_override_constants/margin_right = 16
|
||||
theme_override_constants/margin_bottom = 16
|
||||
|
||||
[node name="HBoxContainer" type="HBoxContainer" parent="Layout/UX Window Service/Horizontal Layout/内容/MarginContainer/标识模板生成器/HBoxContainer/VBoxContainer2/VBoxContainer/ScrollContainer/VBoxContainer/Node Builder/PanelContainer/MarginContainer"]
|
||||
layout_mode = 2
|
||||
|
||||
[node name="Label" type="Label" parent="Layout/UX Window Service/Horizontal Layout/内容/MarginContainer/标识模板生成器/HBoxContainer/VBoxContainer2/VBoxContainer/ScrollContainer/VBoxContainer/Node Builder/PanelContainer/MarginContainer/HBoxContainer"]
|
||||
layout_mode = 2
|
||||
text = "Label:"
|
||||
|
||||
[node name="LineEdit" type="LineEdit" parent="Layout/UX Window Service/Horizontal Layout/内容/MarginContainer/标识模板生成器/HBoxContainer/VBoxContainer2/VBoxContainer/ScrollContainer/VBoxContainer/Node Builder/PanelContainer/MarginContainer/HBoxContainer"]
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 3
|
||||
|
||||
[node name="add-button" type="Button" parent="Layout/UX Window Service/Horizontal Layout/内容/MarginContainer/标识模板生成器/HBoxContainer/VBoxContainer2/VBoxContainer/ScrollContainer/VBoxContainer"]
|
||||
[node name="add-button" type="Button" parent="Layout/UX Window Service/Horizontal Layout/内容/MarginContainer/标识模板生成器/HBoxContainer/标识模板-body/VBoxContainer/ScrollContainer/VBoxContainer"]
|
||||
layout_mode = 2
|
||||
text = "添加属性"
|
||||
|
||||
[node name="LogLabel" type="RichTextLabel" parent="Layout/UX Window Service/Horizontal Layout/内容/MarginContainer/标识模板生成器/HBoxContainer/VBoxContainer2"]
|
||||
[node name="LogLabel" type="RichTextLabel" parent="Layout/UX Window Service/Horizontal Layout/内容/MarginContainer/标识模板生成器/HBoxContainer/标识模板-body"]
|
||||
layout_mode = 2
|
||||
bbcode_enabled = true
|
||||
text = "等待操作中"
|
||||
fit_content = true
|
||||
|
||||
[node name="Button" type="Button" parent="Layout/UX Window Service/Horizontal Layout/内容/MarginContainer/标识模板生成器/HBoxContainer/VBoxContainer2"]
|
||||
[node name="save_template-button" type="Button" parent="Layout/UX Window Service/Horizontal Layout/内容/MarginContainer/标识模板生成器/HBoxContainer/标识模板-body"]
|
||||
layout_mode = 2
|
||||
text = "保存"
|
||||
|
||||
[node name="标识模板注册器" type="VBoxContainer" parent="Layout/UX Window Service/Horizontal Layout/内容/MarginContainer"]
|
||||
visible = false
|
||||
layout_mode = 2
|
||||
|
||||
[node name="标题栏Template" parent="Layout/UX Window Service/Horizontal Layout/内容/MarginContainer/标识模板注册器" instance=ExtResource("13_7vm0l")]
|
||||
|
@ -1493,6 +1501,14 @@ layout_mode = 2
|
|||
theme_type_variation = &"HeaderLarge"
|
||||
text = "列表"
|
||||
|
||||
[node name="Button" type="Button" parent="Layout/UX Window Service/Horizontal Layout/内容/MarginContainer/标识模板注册器/HBoxContainer/VBoxContainer3"]
|
||||
layout_mode = 2
|
||||
text = "刷新"
|
||||
|
||||
[node name="Label2" type="Label" parent="Layout/UX Window Service/Horizontal Layout/内容/MarginContainer/标识模板注册器/HBoxContainer/VBoxContainer3"]
|
||||
layout_mode = 2
|
||||
text = "已创建的标识模板"
|
||||
|
||||
[node name="ScrollContainer" type="ScrollContainer" parent="Layout/UX Window Service/Horizontal Layout/内容/MarginContainer/标识模板注册器/HBoxContainer/VBoxContainer3"]
|
||||
layout_mode = 2
|
||||
size_flags_vertical = 3
|
||||
|
@ -1500,9 +1516,10 @@ horizontal_scroll_mode = 0
|
|||
|
||||
[node name="Index-NodeBuilder" type="VBoxContainer" parent="Layout/UX Window Service/Horizontal Layout/内容/MarginContainer/标识模板注册器/HBoxContainer/VBoxContainer3/ScrollContainer" node_paths=PackedStringArray("emptyHints")]
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 3
|
||||
theme_override_constants/separation = 12
|
||||
script = ExtResource("14_q0cb2")
|
||||
emptyHints = NodePath("../../../../../标识模板/VBoxContainer/HBoxContainer/VBoxContainer3/ScrollContainer/NodeBuilder/Label2")
|
||||
emptyHints = NodePath("Label2")
|
||||
template = ExtResource("14_pcoc2")
|
||||
|
||||
[node name="Option-Button" parent="Layout/UX Window Service/Horizontal Layout/内容/MarginContainer/标识模板注册器/HBoxContainer/VBoxContainer3/ScrollContainer/Index-NodeBuilder" node_paths=PackedStringArray("button", "buttons", "optionButtons") instance=ExtResource("14_pcoc2")]
|
||||
|
@ -1539,10 +1556,6 @@ optionButtons = []
|
|||
layout_mode = 2
|
||||
text = "oops,没有找到模板,快去创建吧!"
|
||||
|
||||
[node name="Button" type="Button" parent="Layout/UX Window Service/Horizontal Layout/内容/MarginContainer/标识模板注册器/HBoxContainer/VBoxContainer3"]
|
||||
layout_mode = 2
|
||||
text = "刷新"
|
||||
|
||||
[node name="VSeparator" type="VSeparator" parent="Layout/UX Window Service/Horizontal Layout/内容/MarginContainer/标识模板注册器/HBoxContainer"]
|
||||
visible = false
|
||||
layout_mode = 2
|
||||
|
@ -1605,32 +1618,23 @@ layout_mode = 2
|
|||
size_flags_horizontal = 3
|
||||
script = ExtResource("14_q0cb2")
|
||||
|
||||
[node name="PanelContainer" type="PanelContainer" parent="Layout/UX Window Service/Horizontal Layout/内容/MarginContainer/标识模板注册器/HBoxContainer/VBoxContainer2/VBoxContainer/ScrollContainer/VBoxContainer/Node Builder"]
|
||||
[node name="LineEditTemplate_Lite" parent="Layout/UX Window Service/Horizontal Layout/内容/MarginContainer/标识模板注册器/HBoxContainer/VBoxContainer2/VBoxContainer/ScrollContainer/VBoxContainer/Node Builder" instance=ExtResource("30_d5241")]
|
||||
layout_mode = 2
|
||||
|
||||
[node name="MarginContainer" type="MarginContainer" parent="Layout/UX Window Service/Horizontal Layout/内容/MarginContainer/标识模板注册器/HBoxContainer/VBoxContainer2/VBoxContainer/ScrollContainer/VBoxContainer/Node Builder/PanelContainer"]
|
||||
layout_mode = 2
|
||||
theme_override_constants/margin_left = 16
|
||||
theme_override_constants/margin_top = 16
|
||||
theme_override_constants/margin_right = 16
|
||||
theme_override_constants/margin_bottom = 16
|
||||
|
||||
[node name="HBoxContainer" type="HBoxContainer" parent="Layout/UX Window Service/Horizontal Layout/内容/MarginContainer/标识模板注册器/HBoxContainer/VBoxContainer2/VBoxContainer/ScrollContainer/VBoxContainer/Node Builder/PanelContainer/MarginContainer"]
|
||||
layout_mode = 2
|
||||
|
||||
[node name="Label" type="Label" parent="Layout/UX Window Service/Horizontal Layout/内容/MarginContainer/标识模板注册器/HBoxContainer/VBoxContainer2/VBoxContainer/ScrollContainer/VBoxContainer/Node Builder/PanelContainer/MarginContainer/HBoxContainer"]
|
||||
layout_mode = 2
|
||||
text = "Label"
|
||||
|
||||
[node name="LineEdit" type="LineEdit" parent="Layout/UX Window Service/Horizontal Layout/内容/MarginContainer/标识模板注册器/HBoxContainer/VBoxContainer2/VBoxContainer/ScrollContainer/VBoxContainer/Node Builder/PanelContainer/MarginContainer/HBoxContainer"]
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 3
|
||||
|
||||
[node name="Label3" type="Label" parent="Layout/UX Window Service/Horizontal Layout/内容/MarginContainer/标识模板注册器/HBoxContainer/VBoxContainer2/VBoxContainer/ScrollContainer/VBoxContainer"]
|
||||
layout_mode = 2
|
||||
theme_type_variation = &"HeaderLarge"
|
||||
text = "引用标识"
|
||||
|
||||
[node name="Reference-Layout" type="VBoxContainer" parent="Layout/UX Window Service/Horizontal Layout/内容/MarginContainer/标识模板注册器/HBoxContainer/VBoxContainer2/VBoxContainer/ScrollContainer/VBoxContainer"]
|
||||
layout_mode = 2
|
||||
script = ExtResource("14_q0cb2")
|
||||
clearTemplateOnly = false
|
||||
template = ExtResource("16_il4as")
|
||||
|
||||
[node name="LineEditTemplate_Lite" parent="Layout/UX Window Service/Horizontal Layout/内容/MarginContainer/标识模板注册器/HBoxContainer/VBoxContainer2/VBoxContainer/ScrollContainer/VBoxContainer/Reference-Layout" instance=ExtResource("30_d5241")]
|
||||
layout_mode = 2
|
||||
|
||||
[node name="add-button" type="Button" parent="Layout/UX Window Service/Horizontal Layout/内容/MarginContainer/标识模板注册器/HBoxContainer/VBoxContainer2/VBoxContainer/ScrollContainer/VBoxContainer"]
|
||||
layout_mode = 2
|
||||
text = "添加引用"
|
||||
|
@ -1646,6 +1650,7 @@ layout_mode = 2
|
|||
text = "注册"
|
||||
|
||||
[node name="自动注册标识" type="VBoxContainer" parent="Layout/UX Window Service/Horizontal Layout/内容/MarginContainer"]
|
||||
visible = false
|
||||
layout_mode = 2
|
||||
|
||||
[node name="标题栏Template" parent="Layout/UX Window Service/Horizontal Layout/内容/MarginContainer/自动注册标识" instance=ExtResource("13_7vm0l")]
|
||||
|
@ -1858,14 +1863,16 @@ layout_mode = 2
|
|||
[node name="标识解析服务" type="Node" parent="."]
|
||||
script = ExtResource("3_xbtmk")
|
||||
|
||||
[node name="标识搜索服务" type="Node" parent="." node_paths=PackedStringArray("service", "searchEdit", "searchCandidateContainer", "searchEditPadding", "handleLabel", "createTimeLabel", "updateTimeLabel", "valueContainer", "referenceContainer")]
|
||||
[node name="标识搜索服务" type="Node" parent="." node_paths=PackedStringArray("service", "searchEdit", "searchCandidateContainer", "searchEditPadding", "searchButton", "copyHandleButton", "handleLabel", "createTimeLabel", "updateTimeLabel", "valueContainer", "referenceContainer")]
|
||||
script = ExtResource("16_14syv")
|
||||
service = NodePath("../标识解析服务")
|
||||
searchEdit = NodePath("../Layout/UX Window Service/Horizontal Layout/内容/MarginContainer/标识解析/Search/SearchEdit")
|
||||
searchCandidateContainer = NodePath("../Layout/UX Window Service/Horizontal Layout/内容/MarginContainer/标识解析/Search/PanelContainer/Control")
|
||||
searchButtonVariation = SubResource("Resource_ktam2")
|
||||
searchEditPadding = NodePath("../Layout/UX Window Service/Horizontal Layout/内容/MarginContainer/标识解析/占位符")
|
||||
handleLabel = NodePath("../Layout/UX Window Service/Horizontal Layout/内容/MarginContainer/标识解析/ScrollContainer/Layout/标识解析结果/VBoxContainer/UXContainer/Margin/GridContainer/label[0]")
|
||||
searchButton = NodePath("../Layout/UX Window Service/Horizontal Layout/内容/MarginContainer/标识解析/Search/SearchEdit/HBoxContainer/refresh-button")
|
||||
copyHandleButton = NodePath("../Layout/UX Window Service/Horizontal Layout/内容/MarginContainer/标识解析/ScrollContainer/Layout/标识解析结果/VBoxContainer/UXContainer/Margin/GridContainer/HBoxContainer/copy-button")
|
||||
handleLabel = NodePath("../Layout/UX Window Service/Horizontal Layout/内容/MarginContainer/标识解析/ScrollContainer/Layout/标识解析结果/VBoxContainer/UXContainer/Margin/GridContainer/HBoxContainer/label[0]")
|
||||
createTimeLabel = NodePath("../Layout/UX Window Service/Horizontal Layout/内容/MarginContainer/标识解析/ScrollContainer/Layout/标识解析结果/VBoxContainer/UXContainer/Margin/GridContainer/label[1]")
|
||||
updateTimeLabel = NodePath("../Layout/UX Window Service/Horizontal Layout/内容/MarginContainer/标识解析/ScrollContainer/Layout/标识解析结果/VBoxContainer/UXContainer/Margin/GridContainer/label[2]")
|
||||
valueContainer = NodePath("../Layout/UX Window Service/Horizontal Layout/内容/MarginContainer/标识解析/ScrollContainer/Layout/标识解析数据")
|
||||
|
@ -1895,25 +1902,27 @@ ipEdit = NodePath("../Layout/UX Window Service/Horizontal Layout/内容/MarginCo
|
|||
portEdit = NodePath("../Layout/UX Window Service/Horizontal Layout/内容/MarginContainer/温湿度传感器/VBoxContainer/VBoxContainer/GridContainer2/LineEdit2")
|
||||
hintsLabel = NodePath("../Layout/UX Window Service/Horizontal Layout/内容/MarginContainer/温湿度传感器/VBoxContainer/VBoxContainer/RichTextLabel")
|
||||
|
||||
[node name="标识模板生成器" type="Node" parent="." node_paths=PackedStringArray("indexBuilder", "formBuilder", "createTemplateButton")]
|
||||
[node name="标识模板生成器" type="Node" parent="." node_paths=PackedStringArray("indexBuilder", "formBuilder", "createTemplateButton", "templateBody")]
|
||||
script = ExtResource("38_fhmdw")
|
||||
template = SubResource("Resource_flu4x")
|
||||
indexBuilder = NodePath("../Layout/UX Window Service/Horizontal Layout/内容/MarginContainer/标识模板生成器/HBoxContainer/VBoxContainer3/ScrollContainer/Index-NodeBuilder")
|
||||
formBuilder = NodePath("FormBuilder")
|
||||
createTemplateButton = NodePath("../Layout/UX Window Service/Horizontal Layout/内容/MarginContainer/标识模板生成器/HBoxContainer/VBoxContainer3/Button")
|
||||
createTemplateButton = NodePath("../Layout/UX Window Service/Horizontal Layout/内容/MarginContainer/标识模板生成器/HBoxContainer/VBoxContainer3/add_field-button")
|
||||
templateBody = NodePath("../Layout/UX Window Service/Horizontal Layout/内容/MarginContainer/标识模板生成器/HBoxContainer/标识模板-body")
|
||||
|
||||
[node name="FormBuilder" type="Node" parent="标识模板生成器" node_paths=PackedStringArray("nodeBuilder", "submitButton", "logLabel")]
|
||||
script = ExtResource("37_pcw20")
|
||||
formWeaver = SubResource("Resource_l4b2n")
|
||||
nodeBuilder = NodePath("../../Layout/UX Window Service/Horizontal Layout/内容/MarginContainer/标识模板生成器/HBoxContainer/VBoxContainer2/VBoxContainer/ScrollContainer/VBoxContainer/Node Builder")
|
||||
submitButton = NodePath("../../Layout/UX Window Service/Horizontal Layout/内容/MarginContainer/标识模板生成器/HBoxContainer/VBoxContainer2/Button")
|
||||
logLabel = NodePath("../../Layout/UX Window Service/Horizontal Layout/内容/MarginContainer/标识模板生成器/HBoxContainer/VBoxContainer2/LogLabel")
|
||||
nodeBuilder = NodePath("../../Layout/UX Window Service/Horizontal Layout/内容/MarginContainer/标识模板生成器/HBoxContainer/标识模板-body/VBoxContainer/ScrollContainer/VBoxContainer/Node Builder")
|
||||
submitButton = NodePath("../../Layout/UX Window Service/Horizontal Layout/内容/MarginContainer/标识模板生成器/HBoxContainer/标识模板-body/save_template-button")
|
||||
logLabel = NodePath("../../Layout/UX Window Service/Horizontal Layout/内容/MarginContainer/标识模板生成器/HBoxContainer/标识模板-body/LogLabel")
|
||||
|
||||
[node name="标识模板注册器" type="Node" parent="." node_paths=PackedStringArray("indexBuilder", "formBuilder")]
|
||||
[node name="标识模板注册器" type="Node" parent="." node_paths=PackedStringArray("indexBuilder", "formBuilder", "templateBody")]
|
||||
script = ExtResource("38_fhmdw")
|
||||
template = SubResource("Resource_qa6b3")
|
||||
indexBuilder = NodePath("../Layout/UX Window Service/Horizontal Layout/内容/MarginContainer/标识模板注册器/HBoxContainer/VBoxContainer3/ScrollContainer/Index-NodeBuilder")
|
||||
formBuilder = NodePath("FormBuilder")
|
||||
templateBody = NodePath("../Layout/UX Window Service/Horizontal Layout/内容/MarginContainer/标识模板注册器/HBoxContainer/VBoxContainer2")
|
||||
|
||||
[node name="FormBuilder" type="Node" parent="标识模板注册器" node_paths=PackedStringArray("nodeBuilder", "submitButton", "logLabel")]
|
||||
script = ExtResource("37_pcw20")
|
||||
|
@ -1951,7 +1960,6 @@ templateName = "订单信息"
|
|||
|
||||
[connection signal="pressed" from="Layout/UX Window Service/Horizontal Layout/导航栏/MarginContainer/Layout/Button" to="Layout/UX Window Service/Horizontal Layout/导航栏/MarginContainer/Layout/Button" method="Execute"]
|
||||
[connection signal="pressed" from="Layout/UX Window Service/Horizontal Layout/导航栏/MarginContainer/Layout/Button5" to="Layout/UX Window Service/Horizontal Layout/导航栏/MarginContainer/Layout/Button5" method="Return"]
|
||||
[connection signal="pressed" from="Layout/UX Window Service/Horizontal Layout/内容/MarginContainer/标识解析/Search/SearchEdit/HBoxContainer/refresh-button" to="标识搜索服务" method="Search"]
|
||||
[connection signal="pressed" from="Layout/UX Window Service/Horizontal Layout/内容/MarginContainer/温湿度传感器/VBoxContainer/VBoxContainer/HBoxContainer/生成数据-button" to="温湿度数据生成" method="Excute"]
|
||||
[connection signal="pressed" from="Layout/UX Window Service/Horizontal Layout/内容/MarginContainer/标识模板注册器/HBoxContainer/VBoxContainer3/Button" to="标识模板注册器" method="Rebuild"]
|
||||
[connection signal="pressed" from="Layout/UX Window Service/Horizontal Layout/内容/MarginContainer/自动注册标识/HFlowContainer/VBoxContainer/start-button" to="自动注册标识" method="Register"]
|
||||
|
|
|
@ -93,11 +93,16 @@
|
|||
- [ ] 给出错误提示和原因
|
||||
## 更改记录
|
||||
### 新增issue date:2023年7月18日
|
||||
- [ ] 添加完成的引导,告诉用户下一步具体该点击什么按钮
|
||||
- [ ] 添加可以删除模板的按钮
|
||||
- [ ] 添加模板后自动进入新创建的模板
|
||||
- [ ] 修复NodeBuilder的空提示
|
||||
- [ ] 添加根据标识模板搜索已注册的标识的功能
|
||||
- [ ] 修复标识解析的搜索框`搜索按钮`无效的问题
|
||||
- [ ] `动画`添加基于`标识节点`连线的标识解析动画
|
||||
- [x] `引导`编辑标识模板名称后,需要点击保存
|
||||
- [x] `引导`强调在`标识注册`中需要点击刷新按钮
|
||||
- [ ] `引导`添加完整的引导,告诉用户下一步具体该点击什么按钮
|
||||
- [x] `注册标识`修复点击引用标识无效的问题
|
||||
- [x] `标识模板`修复`类型下拉框`中默认值为空的问题
|
||||
- [x] `标识模板`添加可以删除模板的按钮
|
||||
- [x] `标识模板`添加模板后自动进入新创建的模板
|
||||
- [x] `内部`修复NodeBuilder的空提示
|
||||
- [x] `标识解析`添加根据标识模板搜索已注册的标识的功能
|
||||
- [x] `标识解析`修复标识解析的搜索框`搜索按钮`无效的问题
|
||||
### 完成部分功能
|
||||
### 创建文档
|
|
@ -53,7 +53,7 @@
|
|||
## 🔥详细步骤
|
||||
### 订单信息
|
||||
* 点击`创建标识模板`
|
||||
* 输入模板名称,例如:`订单标识模板`
|
||||
* 输入模板名称,例如:`订单标识模板`,然后点击右侧的`保存`按钮
|
||||
* 接下来创建以下值
|
||||
* `订单单号` `string` `123456` `订单信息`
|
||||
* `订单数量` `int` `100` `订单信息`
|
||||
|
@ -68,7 +68,7 @@
|
|||
* 点击保存
|
||||
### 温湿度传感器本身标识
|
||||
* 点击`创建标识模板`
|
||||
* 输入模板名称,例如:`温湿度传感器模板`
|
||||
* 输入模板名称,例如:`温湿度传感器模板`,然后点击右侧的`保存`按钮
|
||||
* 接下来创建以下值
|
||||
* `温度` `float` `42.0` `环境`
|
||||
* `湿度` `float` `50.0` `环境`
|
||||
|
@ -78,13 +78,13 @@
|
|||
* `产品图片` `url` `https://www.baidu.com/img/bd_logo1.png` `出厂参数`
|
||||
### 温湿度记录
|
||||
* 点击`创建标识模板`
|
||||
* 输入模板名称,例如:`温湿度记录模板`
|
||||
* 输入模板名称,例如:`温湿度记录模板`,然后点击右侧的`保存`按钮
|
||||
* 接下来创建以下值
|
||||
* `温度` `float` `42.0` `环境`
|
||||
* `湿度` `float` `50.0` `环境`
|
||||
### AGV的电量和电流
|
||||
* 点击`创建标识模板`
|
||||
* 输入模板名称,例如:`AGV注册模板`
|
||||
* 输入模板名称,例如:`AGV注册模板`,然后点击右侧的`保存`按钮
|
||||
* 接下来创建以下值
|
||||
* `型号` `string` `AGV-001` `出厂参数`
|
||||
* `生产厂家` `string` `Intelli工业` `出厂参数`
|
||||
|
@ -93,7 +93,7 @@
|
|||
* `电流` `float` `10.0` `能源`
|
||||
### 设备注册模板
|
||||
* 点击`创建标识模板`
|
||||
* 输入模板名称,例如:`机械臂注册模板`
|
||||
* 输入模板名称,例如:`设备-机械臂`,然后点击右侧的`保存`按钮
|
||||
* 接下来创建以下值
|
||||
* `型号` `string` `SR7C1L` `出厂参数`
|
||||
* `备注` `string` `测试机械臂` `生产参数`
|
||||
|
@ -104,8 +104,13 @@
|
|||
|
||||
### 注册标识
|
||||
打开`注册标识`页面,并点击`刷新`
|
||||
### ⚠️自动注册所有标识(可选)
|
||||
当你不想手动注册所有标识时,可以点击`自动注册所有标识`,并等待一段时间,所有标识都会自动注册
|
||||
### ⚠️模拟生产/自动注册标识
|
||||
我们现在是工作人员,需要为所有设备,物料或工序等注册标识
|
||||
|
||||
我们可以根据任务,按照指示一步一步创建标识模板并注册标识
|
||||
|
||||
也可以直接点击"自动生产"按钮,系统会自动为我们创建标识模板并注册
|
||||
|
||||
### 注册订单
|
||||
* 点击`订单标识模板`,并在下方输入框中输入需要的数据,或者默认的数据,并提交
|
||||
### 注册温湿度传感器
|
||||
|
|
Loading…
Reference in New Issue