admin/src/Oms.Application/Labeling/Hiprint/HiprintModels.cs
zzh b679151eb1 feat: Hiprint模板转QuestPDF异步出面单,并接通打印链路
支持模板预览/字段字典、产品绑定 LabelTemplateId、订单 Pending→Ready 生成 PDF,以及 order/print、批量与仓内 printUrl。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-18 14:52:39 +08:00

96 lines
2.4 KiB
C#

using System.Text.Json.Serialization;
namespace Oms.Application.Labeling.Hiprint;
/// <summary>
/// vg-print / hiprint 导出的模板根节点(只映射渲染所需字段)。
/// </summary>
public sealed class HiprintTemplateDocument
{
[JsonPropertyName("panels")]
public List<HiprintPanel> Panels { get; set; } = [];
}
public sealed class HiprintPanel
{
[JsonPropertyName("index")]
public int Index { get; set; }
/// <summary>纸宽,单位 mm。</summary>
[JsonPropertyName("width")]
public float Width { get; set; } = 100f;
/// <summary>纸高,单位 mm。</summary>
[JsonPropertyName("height")]
public float Height { get; set; } = 150f;
[JsonPropertyName("printElements")]
public List<HiprintPrintElement> PrintElements { get; set; } = [];
}
public sealed class HiprintPrintElement
{
[JsonPropertyName("options")]
public HiprintElementOptions Options { get; set; } = new();
[JsonPropertyName("printElementType")]
public HiprintElementType? PrintElementType { get; set; }
}
public sealed class HiprintElementType
{
[JsonPropertyName("type")]
public string? Type { get; set; }
[JsonPropertyName("title")]
public string? Title { get; set; }
}
public sealed class HiprintElementOptions
{
[JsonPropertyName("left")]
public float Left { get; set; }
[JsonPropertyName("top")]
public float Top { get; set; }
[JsonPropertyName("width")]
public float Width { get; set; }
[JsonPropertyName("height")]
public float Height { get; set; }
[JsonPropertyName("title")]
public string? Title { get; set; }
[JsonPropertyName("field")]
public string? Field { get; set; }
[JsonPropertyName("fontSize")]
public float? FontSize { get; set; }
[JsonPropertyName("fontWeight")]
public string? FontWeight { get; set; }
[JsonPropertyName("fontFamily")]
public string? FontFamily { get; set; }
[JsonPropertyName("color")]
public string? Color { get; set; }
[JsonPropertyName("textAlign")]
public string? TextAlign { get; set; }
[JsonPropertyName("textType")]
public string? TextType { get; set; }
[JsonPropertyName("hideTitle")]
public bool? HideTitle { get; set; }
[JsonPropertyName("src")]
public string? Src { get; set; }
[JsonPropertyName("borderWidth")]
public float? BorderWidth { get; set; }
}