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