feat: integrate AMESim media models and editor UI

This commit is contained in:
ljz committed 2026-07-31 23:36:58 +08:00
1 parent 3e4f466114
commit e7177ab03e
181 files changed
+7042 -25270

No files matched your search

+131 -3
View File
@@ -25,13 +25,136 @@ export const componentCatalog = {
temporary: true,
order: 1,
components: [
{
type: "amesim_ideal_air_medium",
label: "空气介质定义",
modelType: "amesim_ideal_air_medium",
modelVersion: "0.2.0",
symbol: "amesim_ideal_air_medium",
order: 1,
category: {
id: "media",
label: "介质物性",
order: 1,
},
role: "amesimGasMediumDefinition",
ports: [],
parameters: [
{
name: "gi",
label: "介质定义索引(gi)",
quantity: "dimensionless",
unit: "",
default: 1,
minimum: 1,
maximum: 99,
minimumExclusive: false,
description: "介质定义索引由画布自动分配;索引 0 保留给内置理想空气。",
},
{
name: "property_model",
label: "物性计算模型",
quantity: "dimensionless",
unit: "",
default: 0,
minimum: 0,
maximum: 0,
minimumExclusive: false,
editor: "amesimGasPropertyModel",
options: [{ value: 0, label: "理想气体" }],
description: "选择空气介质采用的物性计算模型。",
},
],
},
{
type: "amesim_helium_medium",
label: "氦气介质定义",
modelType: "amesim_helium_medium",
modelVersion: "0.1.0",
symbol: "amesim_helium_medium",
order: 2,
category: {
id: "media",
label: "介质物性",
order: 1,
},
role: "amesimGasMediumDefinition",
ports: [],
parameters: [
{
name: "gi",
label: "介质定义索引(gi)",
quantity: "dimensionless",
unit: "",
default: 1,
minimum: 1,
maximum: 99,
minimumExclusive: false,
description: "介质定义索引由画布自动分配;索引 0 保留给内置理想空气。",
},
{
name: "property_model",
label: "物性计算模型",
quantity: "dimensionless",
unit: "",
default: 0,
minimum: 0,
maximum: 0,
minimumExclusive: false,
editor: "amesimGasPropertyModel",
options: [{ value: 0, label: "Peng–Robinson" }],
description: "氦气当前使用 Peng–Robinson 状态方程计算物性。",
},
],
},
{
type: "amesim_pneumatic_test",
label: "AMESim 气动测试元件",
modelType: "amesim_pneumatic_test",
modelVersion: "1.0.0",
symbol: "symbol-not-registered",
order: 3,
category: {
id: "pneumatic",
label: "气动元件",
order: 2,
},
ports: [
physicalPort("port_a", "left", "bidirectional"),
physicalPort("port_b", "right", "bidirectional"),
],
parameters: [
{
name: "gi",
label: "介质物性模型(gi)",
quantity: "dimensionless",
unit: "",
default: 0,
minimum: 0,
maximum: 99,
minimumExclusive: false,
editor: "amesimGasReference",
description: "选择该气动元件引用的画布介质定义索引;0 表示内置理想空气。",
},
{
name: "reference_pressure",
label: "参考压力",
quantity: "pressure",
unit: "Pa",
default: 100000,
minimum: 0,
minimumExclusive: true,
description: "用于验证参数表单位换算和 XML 基础单位输出的参考压力。",
},
],
},
{
type: "generic_sensor",
label: "通用测试元件",
modelType: "generic_sensor",
modelVersion: "1.0.0",
symbol: "symbol-not-registered",
order: 1,
order: 4,
category: {
id: "generic",
label: "通用组件",
@@ -49,6 +172,7 @@ export const componentCatalog = {
unit: "",
default: 1,
minimumExclusive: false,
description: "传感器输入值的无量纲放大倍数。",
},
],
},
@@ -158,8 +282,12 @@ export const resultSnapshot = {
export async function prepareApp(page: Page) {
await page.addInitScript(() => {
window.localStorage.clear();
window.sessionStorage.clear();
const preparedKey = "system-simulation-flow:e2e-storage-prepared";
if (window.sessionStorage.getItem(preparedKey) !== "1") {
window.localStorage.clear();
window.sessionStorage.clear();
window.sessionStorage.setItem(preparedKey, "1");
}
window.location.hash = "#/modeling";
});
await page.route("**/api/components/catalog", async (route) => {