调整了模板
This commit is contained in:
75
BITKit/Scripts/Builder/Form/FormBuilder.cs
Normal file
75
BITKit/Scripts/Builder/Form/FormBuilder.cs
Normal file
@@ -0,0 +1,75 @@
|
||||
using Godot;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Net.Http;
|
||||
|
||||
// ReSharper disable MemberCanBePrivate.Global
|
||||
|
||||
namespace BITKit;
|
||||
|
||||
public partial class FormBuilder : Node
|
||||
{
|
||||
[ExportCategory(Constant.Header.Providers)] [Export]
|
||||
private FormWeaverResource formWeaver;
|
||||
|
||||
[Export] private FormDBProvider formDBProvider;
|
||||
|
||||
[ExportCategory("UI 绑定")] [Export] private NodeBuilder nodeBuilder;
|
||||
[Export] private Button submitButton;
|
||||
[Export] private RichTextLabel logLabel;
|
||||
|
||||
public override void _Ready()
|
||||
{
|
||||
try
|
||||
{
|
||||
nodeBuilder.Clear();
|
||||
|
||||
if (submitButton is not null && formDBProvider is not null)
|
||||
submitButton.Pressed += Submit;
|
||||
}
|
||||
catch (Exception)
|
||||
{
|
||||
GD.PushWarning(GetPath());
|
||||
throw;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public override void _EnterTree()
|
||||
{
|
||||
formWeaver.formBuilder = this;
|
||||
formWeaver.OnStart();
|
||||
}
|
||||
|
||||
public override void _ExitTree()
|
||||
{
|
||||
formWeaver.OnStop();
|
||||
}
|
||||
|
||||
public void Build(FormResource formProvider)
|
||||
{
|
||||
nodeBuilder.Clear();
|
||||
formWeaver.Clear();
|
||||
|
||||
foreach (var formField in formProvider.Fields)
|
||||
{
|
||||
var container = nodeBuilder.Build<Control>();
|
||||
formWeaver.Weaver(container, formField);
|
||||
}
|
||||
}
|
||||
|
||||
private void Submit()
|
||||
{
|
||||
try
|
||||
{
|
||||
var data = formWeaver.GetContent();
|
||||
formDBProvider.Submit(data);
|
||||
logLabel.Text = "提交成功:" + DateTime.Now;
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
logLabel.Text = e.Message + DateTime.Now;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user