basics/types | TypeAnnotation | 类型标注 | Boolean 布尔值{ "concept": "TypeAnnotation", "typeKind": "primitive", "typeNamespace": "nasl.core", "typeName": "Boolean", "inferred": false, "ruleMap": {} }
| |
Integer 整数{ "concept": "TypeAnnotation", "typeKind": "primitive", "typeNamespace": "nasl.core", "typeName": "Long", "inferred": false, "ruleMap": {} }
| |
Decimal 小数{ "concept": "TypeAnnotation", "typeKind": "primitive", "typeNamespace": "nasl.core", "typeName": "Decimal", "inferred": false, "ruleMap": {} }
| |
String 字符串{ "concept": "TypeAnnotation", "typeKind": "primitive", "typeNamespace": "nasl.core", "typeName": "String", "inferred": false, "ruleMap": {} }
| |
basics/types | DatabaseTypeAnnotation | 数据库存储类型 | { "concept": "DatabaseTypeAnnotation", "typeName": "decimal", "arguments": { "precision": "31" } }
| |
basics/types | TypeParam | 类型参数 | { "concept": "TypeParam", "name": "T" }
| |
basics/types | Structure | 数据结构 | { "concept": "Structure", "name": "ProductOrder", "description": "", "properties": [ { "concept": "StructureProperty", "name": "product", "label": "商品", "typeAnnotation": { "concept": "TypeAnnotation", "typeKind": "reference", "typeNamespace": "app.dataSources.defaultDS.entities", "typeName": "Product", "inferred": false, "ruleMap": {} }, "jsonName": "", "description": "" }, { "concept": "StructureProperty", "name": "order", "label": "订单", "typeAnnotation": { "concept": "TypeAnnotation", "typeKind": "reference", "typeNamespace": "app.dataSources.defaultDS.entities", "typeName": "OrderForm", "inferred": false, "ruleMap": {} }, "jsonName": "", "description": "" }, { "concept": "StructureProperty", "name": "count", "label": "数量", "typeAnnotation": { "concept": "TypeAnnotation", "typeKind": "primitive", "typeNamespace": "nasl.core", "typeName": "Long", "inferred": false, "ruleMap": {} }, "jsonName": "", "description": "" } ] }
| @(description = "") struct ProductOrder { @( label = "商品", description = "", jsonName = "", ) product: app::dataSources::defaultDS::entities::Product @( label = "订单", description = "", jsonName = "", ) order: app::dataSources::defaultDS::entities::OrderForm @( label = "数量", description = "", jsonName = "", ) count: nasl::core::Integer }
|
带描述的示例{ "concept": "Structure", "name": "ProductOrder", "description": "表示商品订单的结构", "properties": [ { "concept": "StructureProperty", "name": "product", "label": "商品", "description": "商品属性", "typeAnnotation": { "concept": "TypeAnnotation", "typeKind": "reference", "typeNamespace": "app.dataSources.defaultDS.entities", "typeName": "Product", "inferred": false, "ruleMap": {} }, "jsonName": "product-" }, { "concept": "StructureProperty", "name": "order", "label": "订单", "description": "订单属性", "typeAnnotation": { "concept": "TypeAnnotation", "typeKind": "reference", "typeNamespace": "app.dataSources.defaultDS.entities", "typeName": "OrderForm", "inferred": false, "ruleMap": {} }, "jsonName": "order-" }, { "concept": "StructureProperty", "name": "count", "label": "数量", "description": "订单中该商品的数量", "typeAnnotation": { "concept": "TypeAnnotation", "typeKind": "primitive", "typeNamespace": "nasl.core", "typeName": "Long", "inferred": false, "ruleMap": {} }, "jsonName": "count-", "defaultValue": { "concept": "DefaultValue", "expression": { "concept": "NumericLiteral", "value": "120", "typeAnnotation": { "concept": "TypeAnnotation", "typeKind": "primitive", "typeNamespace": "nasl.core", "typeName": "Long", "inferred": false, "ruleMap": {} } }, "playground": [] } } ] }
| @(description = "表示商品订单的结构") struct ProductOrder { @( label = "商品", description = "商品属性", jsonName = "product-", ) product: app::dataSources::defaultDS::entities::Product @( label = "订单", description = "订单属性", jsonName = "order-", ) order: app::dataSources::defaultDS::entities::OrderForm @( label = "数量", description = "订单中该商品的数量", jsonName = "count-", ) count: nasl::core::Integer = 120 }
|
{ "concept": "Structure", "name": "ExtendedList", "description": "", "typeParams": [ { "concept": "TypeParam", "name": "T" } ], "properties": [ { "concept": "StructureProperty", "name": "length", "typeAnnotation": { "concept": "TypeAnnotation", "typeKind": "primitive", "typeNamespace": "nasl.core", "typeName": "Integer", "inferred": false, "ruleMap": {} }, "description": "", "jsonName": "" } ] }
| @(description = "") struct ExtendedList<T> { @( description = "", jsonName = "", ) length: nasl::core::Integer }
|
basics/types | StructureProperty | 数据结构属性 | { "concept": "StructureProperty", "name": "count", "label": "数量", "typeAnnotation": { "concept": "TypeAnnotation", "typeKind": "primitive", "typeNamespace": "nasl.core", "typeName": "Long", "inferred": false, "ruleMap": {} }, "description": "", "jsonName": "" }
| @( label = "数量", description = "", jsonName = "", ) count: nasl::core::Integer
|
{ "concept": "StructureProperty", "name": "count", "label": "数量", "description": "订单中该商品的数量", "typeAnnotation": { "concept": "TypeAnnotation", "typeKind": "primitive", "typeNamespace": "nasl.core", "typeName": "Long", "inferred": false, "ruleMap": {} }, "jsonName": "count-", "defaultValue": { "concept": "DefaultValue", "expression": { "concept": "NumericLiteral", "value": "120", "typeAnnotation": { "concept": "TypeAnnotation", "typeKind": "primitive", "typeNamespace": "nasl.core", "typeName": "Long", "inferred": false, "ruleMap": {} } }, "playground": [] } }
| @( label = "数量", description = "订单中该商品的数量", jsonName = "count-", ) count: nasl::core::Integer = 120
|
basics/types | Enum | 枚举 | { "concept": "Enum", "name": "ProductStatus", "label": "", "description": "", "enumItems": [ { "concept": "EnumItem", "value": "Listing", "label": "上架" }, { "concept": "EnumItem", "value": "Delisting", "label": "下架" } ] }
| @( label = "", description = "", ) enum ProductStatus { @(label = "上架") Listing @(label = "下架") Delisting }
|
带描述的示例{ "concept": "Enum", "name": "ProductStatus", "label": "商品状态", "description": "表示商品状态的枚举", "enumItems": [ { "concept": "EnumItem", "value": "Listing", "label": "上架" }, { "concept": "EnumItem", "value": "Delisting", "label": "下架" } ] }
| @( label = "商品状态", description = "表示商品状态的枚举", ) enum ProductStatus { @(label = "上架") Listing @(label = "下架") Delisting }
|
basics/types | EnumItem | 枚举值 | 带描述的示例{ "concept": "EnumItem", "value": "Listing", "label": "上架" }
| |
basics/types | MetadataType | 元数据类型 | { "concept": "MetadataType", "name": "Currency", "label": "货币", "uuid": "83450632af284642ab5c967e82d49be4", "typeAnnotation": { "concept": "TypeAnnotation", "typeKind": "primitive", "typeNamespace": "nasl.core", "typeName": "Decimal", "inferred": false, "ruleMap": {} }, "rules": [ { "concept": "ValidationRule", "calleeNamespace": "nasl.validation", "calleeName": "min", "arguments": [ { "concept": "Argument", "keyword": "min", "expression": { "concept": "NumericLiteral", "value": "0", "typeAnnotation": { "concept": "TypeAnnotation", "typeKind": "primitive", "typeNamespace": "nasl.core", "typeName": "Long", "inferred": false, "ruleMap": {} } } } ], "target": { "concept": "Identifier", "namespace": "", "name": "" }, "enableServerValidation": true }, { "concept": "ValidationRule", "calleeNamespace": "nasl.validation", "calleeName": "max", "arguments": [ { "concept": "Argument", "keyword": "max", "expression": { "concept": "NumericLiteral", "value": "99999999", "typeAnnotation": { "concept": "TypeAnnotation", "typeKind": "primitive", "typeNamespace": "nasl.core", "typeName": "Long", "inferred": false, "ruleMap": {} } } } ], "target": { "concept": "Identifier", "namespace": "", "name": "" }, "enableServerValidation": true } ], "playground": [] }
| @( label = "货币", uuid = "83450632af284642ab5c967e82d49be4", ) metadataType Currency extends nasl::core::Decimal { nasl::validation::min(0) nasl::validation::max(99999999) }
|
basics/literals | NullLiteral | 空字面量 | { "concept": "NullLiteral" }
| |
basics/literals | BooleanLiteral | 布尔型字面量 | { "concept": "BooleanLiteral", "value": "true" }
| |
basics/literals | StringLiteral | 字符串字面量 | { "concept": "StringLiteral", "value": "这是一段文本" }
| |
basics/literals | StringInterpolation | 字符串插值 | { "concept": "StringInterpolation", "expressions": [ { "concept": "StringLiteral", "value": "总数:" }, { "concept": "Identifier", "namespace": "", "name": "total" }, { "concept": "StringLiteral", "value": "\n价格:" }, { "concept": "Identifier", "namespace": "", "name": "price" } ] }
| s"总数:${total} 价格:${price}"
|
basics/literals | StaticString | 静态字符串 | { "concept": "StaticString", "value": "这是一段文本", "i18nKey": "21daa460e9976a46d1b948c13f211550" }
| @(i18nKey = "21daa460e9976a46d1b948c13f211550") '这是一段文本'
|
basics/literals | NumericLiteral | 数字字面量 | { "concept": "NumericLiteral", "value": "24", "typeAnnotation": { "concept": "TypeAnnotation", "typeNamespace": "nasl.core", "typeKind": "primitive", "typeName": "Long", "inferred": false, "ruleMap": {} } }
| |
basics/expressions | CallFunction | 调用函数 | { "concept": "CallFunction", "label": "调用逻辑", "calleeNamespace": "nasl.util", "calleeName": "Clone", "arguments": [ { "concept": "Argument", "keyword": "obj", "expression": { "concept": "Identifier", "namespace": "", "name": "student" } } ] }
| nasl::util::Clone(student)
|
带 lambda 的入参{ "concept": "CallFunction", "label": "内置函数", "calleeNamespace": "nasl.util", "calleeName": "ListFilter", "typeArguments": [], "arguments": [ { "concept": "Argument", "keyword": "list", "expression": { "concept": "Identifier", "namespace": "", "name": "list" } }, { "concept": "Argument", "keyword": "by", "expression": { "concept": "AnonymousFunction", "params": [ { "concept": "Param", "name": "item", "description": "" } ], "body": { "concept": "BinaryExpression", "left": { "concept": "MemberExpression", "object": { "concept": "MemberExpression", "object": { "concept": "Identifier", "namespace": "", "name": "item" }, "property": { "concept": "Identifier", "namespace": "", "name": "productReport" } }, "property": { "concept": "Identifier", "namespace": "", "name": "executed" } }, "right": { "concept": "NullLiteral" }, "operator": "!=" } } } ] }
| nasl::util::ListFilter(list, { item: nasl::core::String => item.productReport.executed != null })
|
basics/expressions | ValidationRule | 验证规则 | { "concept": "ValidationRule", "calleeNamespace": "nasl.validation", "calleeName": "maxLength", "arguments": [ { "concept": "Argument", "keyword": "max", "expression": { "concept": "NumericLiteral", "value": "100", "typeAnnotation": { "concept": "TypeAnnotation", "typeKind": "primitive", "typeNamespace": "nasl.core", "typeName": "Long", "inferred": false, "ruleMap": {} } } } ], "target": { "concept": "Identifier", "namespace": "", "name": "" }, "enableServerValidation": true }
| nasl::validation::maxLength(100)
|
{ "concept": "ValidationRule", "calleeNamespace": "nasl.validation", "calleeName": "maxLength", "arguments": [ { "concept": "Argument", "keyword": "max", "expression": { "concept": "NumericLiteral", "value": "100", "typeAnnotation": { "concept": "TypeAnnotation", "typeKind": "primitive", "typeNamespace": "nasl.core", "typeName": "Long", "inferred": false, "ruleMap": {} } } } ], "errorMessage": { "concept": "StringLiteral", "value": "格式不正确" }, "target": { "concept": "Identifier", "namespace": "", "name": "" }, "enableServerValidation": true }
| nasl::validation::maxLength(100)
|
basics/expressions | Identifier | 标识符 | { "concept": "Identifier", "namespace": "", "name": "student" }
| |
枚举标识符{ "concept": "Identifier", "namespace": "app.enums", "name": "StatusEnum" }
| |
basics/expressions | BinaryExpression | 二元表达式 | { "concept": "BinaryExpression", "left": { "concept": "Identifier", "namespace": "", "name": "ratio" }, "operator": "*", "right": { "concept": "NumericLiteral", "value": "100", "typeAnnotation": { "concept": "TypeAnnotation", "typeKind": "primitive", "typeNamespace": "nasl.core", "typeName": "Long", "inferred": false, "ruleMap": {} } } }
| |
{ "concept": "BinaryExpression", "left": { "concept": "Identifier", "namespace": "", "name": "ratio" }, "operator": "==", "right": { "concept": "NumericLiteral", "value": "1", "typeAnnotation": { "concept": "TypeAnnotation", "typeKind": "primitive", "typeNamespace": "nasl.core", "typeName": "Long", "inferred": false, "ruleMap": {} } } }
| |
{ "concept": "BinaryExpression", "left": { "concept": "Identifier", "namespace": "", "name": "condition1" }, "operator": "||", "right": { "concept": "BinaryExpression", "left": { "concept": "Identifier", "namespace": "", "name": "ratio" }, "operator": ">", "right": { "concept": "NumericLiteral", "value": "1", "typeAnnotation": { "concept": "TypeAnnotation", "typeKind": "primitive", "typeNamespace": "nasl.core", "typeName": "Long", "inferred": false, "ruleMap": {} } } } }
| |
数据查询中的二元表达式{ "concept": "BinaryExpression", "left": { "concept": "QueryFieldExpression", "isDotStar": false, "entityAsName": "Student", "propertyName": "fullName", "asName": "" }, "right": { "concept": "Identifier", "namespace": "", "name": "name" }, "operator": "like" }
| LIKE(Student.fullName, name)
|
basics/expressions | MatchCase | 匹配分支 | { "concept": "MatchCase", "patterns": [ { "concept": "BooleanLiteral", "value": "true" } ], "body": [ { "concept": "NumericLiteral", "value": "1", "typeAnnotation": { "concept": "TypeAnnotation", "typeKind": "primitive", "typeNamespace": "nasl.core", "typeName": "Long", "inferred": false, "ruleMap": {} } } ], "isMatchedTypeEnumable": true }
| |
{ "concept": "MatchCase", "patterns": [], "body": [], "isMatchedTypeEnumable": false }
| |
basics/expressions | Match | 匹配 | { "concept": "Match", "expression": { "concept": "MemberExpression", "object": { "concept": "MemberExpression", "object": { "concept": "Identifier", "namespace": "", "name": "item" }, "property": { "concept": "Identifier", "namespace": "", "name": "productReport" } }, "property": { "concept": "Identifier", "namespace": "", "name": "executed" } }, "isExpression": true, "cases": [ { "concept": "MatchCase", "patterns": [ { "concept": "BooleanLiteral", "value": "true" } ], "body": [ { "concept": "NumericLiteral", "value": "1", "typeAnnotation": { "concept": "TypeAnnotation", "typeKind": "primitive", "typeNamespace": "nasl.core", "typeName": "Long", "inferred": false, "ruleMap": {} } } ], "isMatchedTypeEnumable": true }, { "concept": "MatchCase", "patterns": [ { "concept": "BooleanLiteral", "value": "false" } ], "body": [ { "concept": "NumericLiteral", "value": "0", "typeAnnotation": { "concept": "TypeAnnotation", "typeKind": "primitive", "typeNamespace": "nasl.core", "typeName": "Long", "inferred": false, "ruleMap": {} } } ], "isMatchedTypeEnumable": true }, { "concept": "MatchCase", "patterns": [], "body": [], "isMatchedTypeEnumable": false } ] }
| match item.productReport.executed { true => 1 false => 0 }
|
basics/expressions | UnaryExpression | 一元表达式 | { "concept": "UnaryExpression", "operator": "!", "argument": { "concept": "Identifier", "namespace": "", "name": "condition" } }
| |
数据查询中的一元表达式{ "concept": "UnaryExpression", "operator": "isNull", "argument": { "concept": "Identifier", "namespace": "", "name": "condition" } }
| |
basics/expressions | MemberExpression | 成员表达式 | { "concept": "MemberExpression", "object": { "concept": "Identifier", "namespace": "", "name": "student" }, "property": { "concept": "Identifier", "namespace": "", "name": "name" } }
| |
{ "concept": "MemberExpression", "object": { "concept": "MemberExpression", "object": { "concept": "Identifier", "namespace": "", "name": "item" }, "property": { "concept": "Identifier", "namespace": "", "name": "student" } }, "property": { "concept": "Identifier", "namespace": "", "name": "name" } }
| |
枚举标识符{ "concept": "MemberExpression", "object": { "concept": "Identifier", "namespace": "app.enums", "name": "Status" }, "property": { "concept": "Identifier", "namespace": "", "name": "Normal" } }
| app::enums::Status.Normal
|
数值枚举标识符{ "concept": "MemberExpression", "object": { "concept": "Identifier", "namespace": "app.enums", "name": "Status" }, "property": { "concept": "Identifier", "namespace": "", "name": "0" } }
| |
basics/expressions | Unparsed | 未解析的 | | |
basics/expressions | New | 构造器 | | |
basics/expressions | NewComposite | 实体/(匿名)数据结构构造器 | { "concept": "NewComposite", "typeAnnotation": { "concept": "TypeAnnotation", "typeKind": "reference", "typeNamespace": "app.dataSources.defaultDS.entities", "typeName": "Student", "inferred": false, "ruleMap": {} }, "properties": [ { "concept": "Identifier", "namespace": "", "name": "id" }, { "concept": "Identifier", "namespace": "", "name": "createdTime" }, { "concept": "Identifier", "namespace": "", "name": "updatedTime" }, { "concept": "Identifier", "namespace": "", "name": "createdBy" }, { "concept": "Identifier", "namespace": "", "name": "updatedBy" }, { "concept": "Identifier", "namespace": "", "name": "name" } ], "rights": [ { "concept": "SelectMembers", "hideMembers": false, "expression": { "concept": "StringLiteral", "value": "学生甲" }, "members": [] } ], "assignmentLines": [ { "concept": "AssignmentLine", "leftIndex": [ 0, 5 ], "rightIndex": [ 0 ] } ], "hideProperties": false, "hideDefaults": false, "autoConnection": true }
| app::dataSources::defaultDS::entities::Student { id = '学生甲', }
|
新建匿名数据结构{ "concept": "NewComposite", "typeAnnotation": { "concept": "TypeAnnotation", "typeKind": "anonymousStructure", "typeNamespace": "", "typeName": "", "inferred": false, "ruleMap": {}, "properties": [ { "concept": "StructureProperty", "name": "name" }, { "concept": "StructureProperty", "name": "age" } ] }, "properties": [ { "concept": "Identifier", "namespace": "", "name": "name" }, { "concept": "Identifier", "namespace": "", "name": "age" } ], "rights": [ { "concept": "SelectMembers", "hideMembers": false, "expression": { "concept": "NumericLiteral", "value": "24", "typeAnnotation": { "concept": "TypeAnnotation", "typeKind": "primitive", "typeNamespace": "nasl.core", "typeName": "Long", "inferred": false, "ruleMap": {} } }, "members": [] }, { "concept": "SelectMembers", "hideMembers": false, "expression": { "concept": "StringLiteral", "value": "学生甲" }, "members": [] } ], "assignmentLines": [ { "concept": "AssignmentLine", "leftIndex": [ 0, 0 ], "rightIndex": [ 1 ] }, { "concept": "AssignmentLine", "leftIndex": [ 0, 1 ], "rightIndex": [ 0 ] } ], "hideProperties": false, "hideDefaults": false, "autoConnection": true }
| { name = 24, age = '学生甲', }
|
basics/expressions | NewList | 列表构造器 | { "concept": "NewList", "items": [ { "concept": "StringLiteral", "value": "选项1" }, { "concept": "StringLiteral", "value": "选项2" }, { "concept": "StringLiteral", "value": "选项3" } ] }
| |
basics/expressions | NewMap | Map 构造器 | { "concept": "NewMap", "keys": [ { "concept": "NumericLiteral", "value": "1", "typeAnnotation": { "concept": "TypeAnnotation", "typeKind": "primitive", "typeNamespace": "nasl.core", "typeName": "Long", "inferred": false, "ruleMap": {} } }, { "concept": "NumericLiteral", "value": "2", "typeAnnotation": { "concept": "TypeAnnotation", "typeKind": "primitive", "typeNamespace": "nasl.core", "typeName": "Long", "inferred": false, "ruleMap": {} } }, { "concept": "NumericLiteral", "value": "3", "typeAnnotation": { "concept": "TypeAnnotation", "typeKind": "primitive", "typeNamespace": "nasl.core", "typeName": "Long", "inferred": false, "ruleMap": {} } } ], "values": [ { "concept": "StringLiteral", "value": "选项1" }, { "concept": "StringLiteral", "value": "选项2" }, { "concept": "StringLiteral", "value": "选项3" } ] }
| [1 -> '选项1', 2 -> '选项2', 3 -> '选项3']
|
basics/expressions | Paginate | 分页 | | |
basics/statements | Abort | 中止表达式 | | |
basics/statements | Start | 开始节点 | | |
basics/statements | End | 结束节点 | | |
basics/statements | IfStatement | 条件分支 | { "concept": "IfStatement", "test": { "concept": "BinaryExpression", "left": { "concept": "MemberExpression", "object": { "concept": "Identifier", "namespace": "", "name": "list" }, "property": { "concept": "Identifier", "namespace": "", "name": "length" } }, "right": { "concept": "NumericLiteral", "value": "0", "typeAnnotation": { "concept": "TypeAnnotation", "typeKind": "primitive", "typeNamespace": "nasl.core", "typeName": "Long", "inferred": false, "ruleMap": {} } }, "operator": "==" }, "consequent": [ { "concept": "Assignment", "label": "赋值", "left": { "concept": "Identifier", "namespace": "", "name": "result" }, "right": { "concept": "NullLiteral" } } ], "alternate": [ { "concept": "Assignment", "label": "赋值", "left": { "concept": "Identifier", "namespace": "", "name": "result" }, "right": { "concept": "BinaryExpression", "left": { "concept": "CallFunction", "label": "内置函数", "calleeNamespace": "nasl.util", "calleeName": "ListSum", "typeArguments": [], "arguments": [ { "concept": "Argument", "keyword": "list", "expression": { "concept": "Identifier", "namespace": "", "name": "list" } } ] }, "right": { "concept": "MemberExpression", "object": { "concept": "Identifier", "namespace": "", "name": "list" }, "property": { "concept": "Identifier", "namespace": "", "name": "length" } }, "operator": "/" } } ] }
| if (list.length == 0) { result = null } else { result = nasl::util::ListSum(list) / list.length }
|
basics/statements | SwitchStatement | 选择分支 | { "concept": "SwitchStatement", "cases": [ { "concept": "SwitchCase", "test": { "concept": "BinaryExpression", "left": { "concept": "MemberExpression", "object": { "concept": "Identifier", "namespace": "", "name": "list" }, "property": { "concept": "Identifier", "namespace": "", "name": "length" } }, "right": { "concept": "NumericLiteral", "value": "0", "typeAnnotation": { "concept": "TypeAnnotation", "typeKind": "primitive", "typeNamespace": "nasl.core", "typeName": "Long", "inferred": false, "ruleMap": {} } }, "operator": "==" }, "consequent": [ { "concept": "CallLogic", "uuid": "1a3ec5f53ff84d5f87cd9d81b741bd39", "calleeNamespace": "nasl.logging", "calleeName": "INFO", "shortcut": true, "arguments": [ { "concept": "Argument", "keyword": "模板", "expression": { "concept": "StringLiteral", "value": "情况1" } } ] } ] }, { "concept": "SwitchCase", "test": { "concept": "BinaryExpression", "left": { "concept": "MemberExpression", "object": { "concept": "Identifier", "namespace": "", "name": "list" }, "property": { "concept": "Identifier", "namespace": "", "name": "length" } }, "right": { "concept": "NumericLiteral", "value": "10", "typeAnnotation": { "concept": "TypeAnnotation", "typeKind": "primitive", "typeNamespace": "nasl.core", "typeName": "Long", "inferred": false, "ruleMap": {} } }, "operator": "<=" }, "consequent": [ { "concept": "CallLogic", "uuid": "08d83151df934c3e904ab8704e14b2ae", "calleeNamespace": "nasl.logging", "calleeName": "INFO", "shortcut": true, "arguments": [ { "concept": "Argument", "keyword": "模板", "expression": { "concept": "StringLiteral", "value": "情况2" } } ] } ] }, { "concept": "SwitchCase", "consequent": [ { "concept": "CallLogic", "uuid": "11fe6dacbd3f42749c14c272fad6ffbb", "calleeNamespace": "nasl.logging", "calleeName": "INFO", "shortcut": true, "arguments": [ { "concept": "Argument", "keyword": "模板", "expression": { "concept": "StringLiteral", "value": "其它情况" } } ] } ] } ] }
| switch { list.length == 0 => { nasl::logging::INFO('情况1') } list.length <= 10 => { nasl::logging::INFO('情况2') } _ => { nasl::logging::INFO('其它情况') } }
|
basics/statements | SwitchCase | 选择分支情况 | { "concept": "SwitchCase", "test": { "concept": "BinaryExpression", "left": { "concept": "MemberExpression", "object": { "concept": "Identifier", "namespace": "", "name": "list" }, "property": { "concept": "Identifier", "namespace": "", "name": "length" } }, "right": { "concept": "NumericLiteral", "value": "10", "typeAnnotation": { "concept": "TypeAnnotation", "typeKind": "primitive", "typeNamespace": "nasl.core", "typeName": "Long", "inferred": false, "ruleMap": {} } }, "operator": "<=" }, "consequent": [ { "concept": "CallLogic", "uuid": "08d83151df934c3e904ab8704e14b2ae", "calleeNamespace": "nasl.logging", "calleeName": "INFO", "shortcut": true, "arguments": [ { "concept": "Argument", "keyword": "模板", "expression": { "concept": "StringLiteral", "value": "情况2" } } ] } ] }
| list.length <= 10 => { nasl::logging::INFO('情况2') }
|
else{ "concept": "SwitchCase", "consequent": [ { "concept": "CallLogic", "uuid": "11fe6dacbd3f42749c14c272fad6ffbb", "calleeNamespace": "nasl.logging", "calleeName": "INFO", "shortcut": true, "arguments": [ { "concept": "Argument", "keyword": "模板", "expression": { "concept": "StringLiteral", "value": "其它情况" } } ] } ] }
| _ => { nasl::logging::INFO('其它情况') }
|
basics/statements | ForEachStatement | ForEach 循环分支 | { "concept": "ForEachStatement", "each": { "concept": "Identifier", "namespace": "", "name": "list" }, "item": { "concept": "Param", "name": "item", "description": "" }, "index": { "concept": "Param", "name": "index", "description": "" }, "start": { "concept": "NumericLiteral", "value": "0", "typeAnnotation": { "concept": "TypeAnnotation", "typeKind": "primitive", "typeNamespace": "nasl.core", "typeName": "Long", "inferred": false, "ruleMap": {} } }, "body": [ { "concept": "IfStatement", "test": { "concept": "BinaryExpression", "left": { "concept": "MemberExpression", "object": { "concept": "MemberExpression", "object": { "concept": "Identifier", "namespace": "", "name": "item" }, "property": { "concept": "Identifier", "namespace": "", "name": "productReport" } }, "property": { "concept": "Identifier", "namespace": "", "name": "accepted" } }, "right": { "concept": "BooleanLiteral", "value": "true" }, "operator": "==" }, "consequent": [ { "concept": "CallFunction", "label": "内置函数", "calleeNamespace": "nasl.util", "calleeName": "Add", "typeArguments": [], "arguments": [ { "concept": "Argument", "keyword": "list", "expression": { "concept": "Identifier", "namespace": "", "name": "fullAcceptedList" } }, { "concept": "Argument", "keyword": "item", "expression": { "concept": "NumericLiteral", "value": "1", "typeAnnotation": { "concept": "TypeAnnotation", "typeKind": "primitive", "typeNamespace": "nasl.core", "typeName": "Long", "inferred": false, "ruleMap": {} } } } ] } ], "alternate": [ { "concept": "CallFunction", "label": "内置函数", "calleeNamespace": "nasl.util", "calleeName": "Add", "typeArguments": [], "arguments": [ { "concept": "Argument", "keyword": "list", "expression": { "concept": "Identifier", "namespace": "", "name": "fullAcceptedList" } }, { "concept": "Argument", "keyword": "item", "expression": { "concept": "NumericLiteral", "value": "0", "typeAnnotation": { "concept": "TypeAnnotation", "typeKind": "primitive", "typeNamespace": "nasl.core", "typeName": "Long", "inferred": false, "ruleMap": {} } } } ] } ] } ] }
| for (item in list, index) { if (item.productReport.accepted == true) { nasl::util::Add(fullAcceptedList, 1) } else { nasl::util::Add(fullAcceptedList, 0) } }
|
{ "concept": "ForEachStatement", "each": { "concept": "Identifier", "namespace": "", "name": "list" }, "item": { "concept": "Param", "name": "item", "description": "" }, "index": { "concept": "Param", "name": "index", "description": "" }, "start": { "concept": "NumericLiteral", "value": "3", "typeAnnotation": { "concept": "TypeAnnotation", "typeKind": "primitive", "typeNamespace": "nasl.core", "typeName": "Long", "inferred": false, "ruleMap": {} } }, "end": { "concept": "BinaryExpression", "left": { "concept": "MemberExpression", "object": { "concept": "Identifier", "namespace": "", "name": "list" }, "property": { "concept": "Identifier", "namespace": "", "name": "length" } }, "operator": "-", "right": { "concept": "NumericLiteral", "value": "3", "typeAnnotation": { "concept": "TypeAnnotation", "typeKind": "primitive", "typeNamespace": "nasl.core", "typeName": "Long", "inferred": false, "ruleMap": {} } } }, "body": [ { "concept": "IfStatement", "test": { "concept": "BinaryExpression", "left": { "concept": "MemberExpression", "object": { "concept": "MemberExpression", "object": { "concept": "Identifier", "namespace": "", "name": "item" }, "property": { "concept": "Identifier", "namespace": "", "name": "productReport" } }, "property": { "concept": "Identifier", "namespace": "", "name": "accepted" } }, "right": { "concept": "BooleanLiteral", "value": "true" }, "operator": "==" }, "consequent": [ { "concept": "CallFunction", "label": "内置函数", "calleeNamespace": "nasl.util", "calleeName": "Add", "typeArguments": [], "arguments": [ { "concept": "Argument", "keyword": "list", "expression": { "concept": "Identifier", "namespace": "", "name": "fullAcceptedList" } }, { "concept": "Argument", "keyword": "item", "expression": { "concept": "NumericLiteral", "value": "1", "typeAnnotation": { "concept": "TypeAnnotation", "typeKind": "primitive", "typeNamespace": "nasl.core", "typeName": "Long", "inferred": false, "ruleMap": {} } } } ] } ], "alternate": [ { "concept": "CallFunction", "label": "内置函数", "calleeNamespace": "nasl.util", "calleeName": "Add", "typeArguments": [], "arguments": [ { "concept": "Argument", "keyword": "list", "expression": { "concept": "Identifier", "namespace": "", "name": "fullAcceptedList" } }, { "concept": "Argument", "keyword": "item", "expression": { "concept": "NumericLiteral", "value": "0", "typeAnnotation": { "concept": "TypeAnnotation", "typeKind": "primitive", "typeNamespace": "nasl.core", "typeName": "Long", "inferred": false, "ruleMap": {} } } } ] } ] } ] }
| for (item in list, index from 3 to list.length - 3) { if (item.productReport.accepted == true) { nasl::util::Add(fullAcceptedList, 1) } else { nasl::util::Add(fullAcceptedList, 0) } }
|
basics/statements | WhileStatement | While 循环分支 | { "concept": "WhileStatement", "test": { "concept": "BinaryExpression", "left": { "concept": "MemberExpression", "object": { "concept": "Identifier", "namespace": "", "name": "list" }, "property": { "concept": "Identifier", "namespace": "", "name": "length" } }, "operator": ">", "right": { "concept": "NumericLiteral", "value": "0", "typeAnnotation": { "concept": "TypeAnnotation", "typeKind": "primitive", "typeNamespace": "nasl.core", "typeName": "Long", "inferred": false, "ruleMap": {} } } }, "body": [ { "concept": "CallFunction", "calleeNamespace": "nasl.util", "calleeName": "RemoveAt", "typeArguments": [], "arguments": [ { "concept": "Argument", "keyword": "list", "expression": { "concept": "Identifier", "namespace": "", "name": "list" } }, { "concept": "Argument", "keyword": "index", "expression": { "concept": "NumericLiteral", "value": "0", "typeAnnotation": { "concept": "TypeAnnotation", "typeKind": "primitive", "typeNamespace": "nasl.core", "typeName": "Long", "inferred": false, "ruleMap": {} } } } ] } ] }
| while (list.length > 0) { nasl::util::RemoveAt(list, 0); }
|
basics/statements | Assignment | 赋值语句 | { "concept": "Assignment", "label": "赋值", "left": { "concept": "Identifier", "namespace": "", "name": "result" }, "right": { "concept": "MemberExpression", "object": { "concept": "Identifier", "namespace": "", "name": "product" }, "property": { "concept": "Identifier", "namespace": "", "name": "price" } } }
| |
basics/statements | BatchAssignment | 批量赋值语句 | { "concept": "BatchAssignment", "label": "批量赋值", "left": { "concept": "SelectMembers", "hideMembers": false, "expression": { "concept": "Identifier", "namespace": "", "name": "result" }, "members": [ { "concept": "MemberExpression", "object": { "concept": "Identifier", "namespace": "", "name": "result" }, "property": { "concept": "Identifier", "namespace": "", "name": "accepted" } }, { "concept": "MemberExpression", "object": { "concept": "Identifier", "namespace": "", "name": "result" }, "property": { "concept": "Identifier", "namespace": "", "name": "executed" } }, { "concept": "MemberExpression", "object": { "concept": "Identifier", "namespace": "", "name": "result" }, "property": { "concept": "Identifier", "namespace": "", "name": "fullAccepted" } }, { "concept": "MemberExpression", "object": { "concept": "Identifier", "namespace": "", "name": "result" }, "property": { "concept": "Identifier", "namespace": "", "name": "success" } } ] }, "rights": [ { "concept": "SelectMembers", "hideMembers": false, "expression": { "uuid": "52f1329c82414b9a8c320815cf703425", "concept": "CallLogic", "label": "调用逻辑", "calleeNamespace": "app.logics", "calleeName": "computeRatio", "handleError": false, "arguments": [ { "concept": "Argument", "keyword": "list", "expression": { "concept": "Identifier", "namespace": "", "name": "executedList" } } ] }, "members": [] }, { "concept": "SelectMembers", "hideMembers": false, "expression": { "uuid": "aabee80d05b94a64ab797bae0f11aa85", "concept": "CallLogic", "label": "调用逻辑", "calleeNamespace": "app.logics", "calleeName": "computeRatio", "handleError": false, "arguments": [ { "concept": "Argument", "keyword": "list", "expression": { "concept": "Identifier", "namespace": "", "name": "successList" } } ] }, "members": [] }, { "concept": "SelectMembers", "hideMembers": false, "expression": { "uuid": "a274f5173af049feaee53c1b968c17c1", "concept": "CallLogic", "label": "调用逻辑", "calleeNamespace": "app.logics", "calleeName": "computeRatio", "handleError": false, "arguments": [ { "concept": "Argument", "keyword": "list", "expression": { "concept": "Identifier", "namespace": "", "name": "acceptedList" } } ] }, "members": [] }, { "concept": "SelectMembers", "hideMembers": false, "expression": { "uuid": "6ac10af536c446acbc7179b4f525d3d6", "concept": "CallLogic", "label": "调用逻辑", "calleeNamespace": "app.logics", "calleeName": "computeRatio", "handleError": false, "arguments": [ { "concept": "Argument", "keyword": "list", "expression": { "concept": "Identifier", "namespace": "", "name": "fullAcceptedList" } } ] }, "members": [] } ], "assignmentLines": [ { "concept": "AssignmentLine", "leftIndex": [ 0, 2 ], "rightIndex": [ 3 ] }, { "concept": "AssignmentLine", "leftIndex": [ 0, 0 ], "rightIndex": [ 2 ] }, { "concept": "AssignmentLine", "leftIndex": [ 0, 3 ], "rightIndex": [ 1 ] }, { "concept": "AssignmentLine", "leftIndex": [ 0, 1 ], "rightIndex": [ 0 ] } ], "autoConnection": true }
| { result.fullAccepted = app::logics::computeRatio(fullAcceptedList); result.accepted = app::logics::computeRatio(acceptedList); result.success = app::logics::computeRatio(successList); result.executed = app::logics::computeRatio(executedList); }
|
basics/statements | Comment | 注释 | { "concept": "Comment", "value": "这是一段注释,用户可自行修改。" }
| |
basics/statements | CallLogic | 调用逻辑 | { "uuid": "43a14fc183ed4b1bab03a839ea7fce9f", "concept": "CallLogic", "label": "调用逻辑", "calleeNamespace": "elements.saveModal_1.logics", "calleeName": "open", "arguments": [] }
| $refs::saveModal_1::open()
|
带 shortcut{ "uuid": "d5ab84861fa64b5f928b655182c9a19d", "concept": "CallLogic", "label": "输出日志", "calleeNamespace": "nasl.logging", "calleeName": "INFO", "shortcut": true, "arguments": [ { "concept": "Argument", "keyword": "模板", "expression": { "concept": "StringInterpolation", "expressions": [ { "concept": "StringLiteral", "value": "count: " }, { "concept": "CallFunction", "label": "内置函数", "calleeNamespace": "nasl.util", "calleeName": "ListSum", "typeArguments": [], "arguments": [ { "concept": "Argument", "keyword": "list", "expression": { "concept": "Identifier", "namespace": "", "name": "list" } } ] }, { "concept": "StringLiteral", "value": ", length: " }, { "concept": "MemberExpression", "object": { "concept": "Identifier", "namespace": "", "name": "list" }, "property": { "concept": "Identifier", "namespace": "", "name": "length" } } ] } } ] }
| nasl::logging::INFO(s"count: ${nasl::util::ListSum(list)}, length: ${list.length}")
|
basics/statements | CallEvent | 触发事件 | | |
basics/statements | CallInterface | 调用接口 | | |
basics/statements | Destination | 跳转页面 | { "concept": "Destination", "viewNamespace": "app.frontendTypes.pc.frontends.pc.views.dashboard.views", "viewName": "productList", "arguments": [], "target": "_self", "anchor": { "concept": "Anchor", "expression": { "concept": "StringLiteral", "value": "标题1" } } }
| nasl::ui::destination(app::frontendTypes::pc::frontends::pc::views::dashboard::views::productList)
|
basics/statements | ExternalDestination | 跳转到外部链接 | { "concept": "ExternalDestination", "link": { "concept": "StringLiteral", "value": "https://nasl.codewave.163.com", "folded": false }, "target": "_self" }
| nasl::ui::gotoLink('https://nasl.codewave.163.com', undefined)
|
basics/statements | Argument | 实际参数 | { "concept": "Argument", "keyword": "", "expression": { "concept": "Identifier", "namespace": "", "name": "list1" } }
| |
{ "concept": "Argument", "keyword": "list", "expression": { "concept": "Identifier", "namespace": "", "name": "list1" } }
| |
basics/statements | Anchor | 锚点参数 | { "concept": "Anchor", "expression": { "concept": "StringLiteral", "value": "标题1" } }
| |
basics/statements | JSBlock | JS 代码块 | | |
basics/statements | Block | Block 语句 | { "concept": "Block", "logicItems": [ { "concept": "Assignment", "label": "赋值", "left": { "concept": "Identifier", "namespace": "", "name": "result" }, "right": { "concept": "NullLiteral" } }, { "concept": "CallLogic", "uuid": "11fe6dacbd3f42749c14c272fad6ffbb", "calleeNamespace": "nasl.logging", "calleeName": "INFO", "shortcut": true, "arguments": [ { "concept": "Argument", "keyword": "模板", "expression": { "concept": "StringLiteral", "value": "其它情况" } } ] } ] }
| { result = null; nasl::logging::INFO('其它情况'); }
|
basics/statements | CallAuthInterface | 调用接口 | | |
basics | [[BaseNode]] | 节点基类 | | |
basics | LogicDeclaration | 逻辑声明 | | |
basics | Logic | 逻辑 | { "concept": "Logic", "name": "logic1", "title": "标题", "description": "", "triggerType": "", "cron": "", "overridable": false, "transactional": { "concept": "Transactional", "enabled": false, "propagation": "REQUIRED", "isolation": "DEFAULT" }, "params": [ { "concept": "Param", "name": "list", "description": "", "typeAnnotation": { "concept": "TypeAnnotation", "typeNamespace": "nasl.collection", "typeKind": "generic", "typeName": "List", "typeArguments": [ { "concept": "TypeAnnotation", "typeNamespace": "nasl.core", "typeKind": "primitive", "typeName": "Long", "inferred": false, "ruleMap": {} } ], "inferred": false, "ruleMap": {} } } ], "returns": [ { "concept": "Return", "name": "result", "description": "" } ], "variables": [], "body": [ { "concept": "Start" }, { "concept": "Assignment", "label": "赋值", "left": { "concept": "Identifier", "namespace": "", "name": "result" }, "right": { "concept": "NullLiteral" } }, { "concept": "IfStatement", "test": { "concept": "BinaryExpression", "left": { "concept": "MemberExpression", "object": { "concept": "Identifier", "namespace": "", "name": "list" }, "property": { "concept": "Identifier", "namespace": "", "name": "length" } }, "right": { "concept": "NumericLiteral", "value": "0", "typeAnnotation": { "concept": "TypeAnnotation", "typeKind": "primitive", "typeNamespace": "nasl.core", "typeName": "Long", "inferred": false, "ruleMap": {} } }, "operator": "==" }, "consequent": [ { "concept": "Assignment", "label": "赋值", "left": { "concept": "Identifier", "namespace": "", "name": "result" }, "right": { "concept": "NullLiteral" } } ], "alternate": [ { "concept": "Assignment", "label": "赋值", "left": { "concept": "Identifier", "namespace": "", "name": "result" }, "right": { "concept": "BinaryExpression", "left": { "concept": "CallFunction", "label": "内置函数", "calleeNamespace": "nasl.util", "calleeName": "ListSum", "typeArguments": [], "arguments": [ { "concept": "Argument", "keyword": "list", "expression": { "concept": "Identifier", "namespace": "", "name": "list" } } ] }, "right": { "concept": "MemberExpression", "object": { "concept": "Identifier", "namespace": "", "name": "list" }, "property": { "concept": "Identifier", "namespace": "", "name": "length" } }, "operator": "/" } } ] }, { "concept": "End" } ], "playground": [] }
| logic logic1(list: List<nasl::core::Integer>) result { result = null if (list.length == 0) { result = null } else { result = nasl::util::ListSum(list) / list.length } end }
|
basics | AuthLogic | 鉴权逻辑 | | |
basics | AuthLogicForCallInterface | 调用接口的鉴权逻辑 | | |
basics | OverriddenLogic | 覆写逻辑 | { "concept": "OverriddenLogic", "overriddenModule": "lcap_permission", "name": "checkPermission", "description": "校验用户访问资源的权限", "triggerType": "", "cron": "", "transactional": { "concept": "Transactional", "enabled": false }, "params": [ { "concept": "Param", "name": "userId", "description": "用户唯一标识", "typeAnnotation": { "concept": "TypeAnnotation", "typeKind": "primitive", "typeNamespace": "nasl.core", "typeName": "String", "inferred": false, "ruleMap": {} } }, { "concept": "Param", "name": "resourceValue", "description": "资源值(通常为浏览器上的访问路径)", "typeAnnotation": { "concept": "TypeAnnotation", "typeKind": "primitive", "typeNamespace": "nasl.core", "typeName": "String", "inferred": false, "ruleMap": {} } }, { "concept": "Param", "name": "resourceType", "description": "资源的类型(表示当前资源是页面还是组件)", "typeAnnotation": { "concept": "TypeAnnotation", "typeKind": "primitive", "typeNamespace": "nasl.core", "typeName": "String", "inferred": false, "ruleMap": {} } }, { "concept": "Param", "name": "clientType", "description": "资源所属的端标识(多端场景下存在重名资源)", "typeAnnotation": { "concept": "TypeAnnotation", "typeKind": "primitive", "typeNamespace": "nasl.core", "typeName": "String", "inferred": false, "ruleMap": {} } } ], "returns": [ { "concept": "Return", "name": "result", "description": "用户是否能访问指定资源", "typeAnnotation": { "concept": "TypeAnnotation", "typeKind": "primitive", "typeNamespace": "nasl.core", "typeName": "Boolean", "inferred": false, "ruleMap": {} }, "defaultValue": { "concept": "DefaultValue", "expression": { "concept": "BooleanLiteral", "value": "false" }, "playground": [] } } ], "variables": [], "body": [ { "concept": "Start", "label": "开始" }, { "concept": "IfStatement", "test": { "concept": "BinaryExpression", "left": { "concept": "Identifier", "namespace": "", "name": "resourceValue" }, "right": { "concept": "StringLiteral", "value": "/index" }, "operator": "==" }, "consequent": [ { "concept": "Assignment", "left": { "concept": "Identifier", "namespace": "", "name": "result" }, "right": { "concept": "BooleanLiteral", "value": "true" } } ], "alternate": [], "label": "条件分支" }, { "concept": "End", "label": "结束" } ], "playground": [] }
| @override logic checkPermission(userId: nasl::core::String, resourceValue: nasl::core::String, resourceType: nasl::core::String, clientType: nasl::core::String) result: nasl::core::Boolean { if (resourceValue == '/index') { result = true } else { } end }
|
basics | BusinessLogic | 业务组件逻辑 | | |
basics | [[AbstractInterface]] | 接口 | | |
basics | Param | 输入参数 | { "concept": "Param", "name": "filter", "description": "", "typeAnnotation": { "concept": "TypeAnnotation", "typeKind": "primitive", "typeNamespace": "nasl.core", "typeName": "Date", "inferred": false, "ruleMap": {} } }
| |
无类型标注的参数{ "concept": "Param", "name": "index", "description": "" }
| index: nasl::core::String
|
basics | ParamWithGroup | 带分组的参数 | { "concept": "ParamWithGroup", "name": "size", "title": "大小", "group": "分组1", "description": "", "typeAnnotation": { "concept": "TypeAnnotation", "typeKind": "primitive", "typeNamespace": "nasl.core", "typeName": "Long", "inferred": false, "ruleMap": {} } }
| @( title = "大小", group = "分组1", ) size: nasl::core::Integer
|
basics | Return | 输出参数 | { "concept": "Return", "name": "result", "description": "" }
| |
basics | Variable | 变量 | { "concept": "Variable", "name": "total", "description": "", "typeAnnotation": { "concept": "TypeAnnotation", "typeKind": "primitive", "typeNamespace": "nasl.core", "typeName": "Long", "inferred": false, "ruleMap": {} } }
| total: nasl::core::Integer
|
basics | BackendVariable | 后端全局变量 | { "concept": "BackendVariable", "name": "httpRequest", "description": "httpRequest对象,可在逻辑中使用,用于获取当前请求的属性,例如: cookie、header、ip等", "typeAnnotation": { "concept": "TypeAnnotation", "typeKind": "generic", "typeNamespace": "nasl.http", "typeName": "HttpRequest", "typeArguments": [ { "concept": "TypeAnnotation", "typeKind": "primitive", "typeNamespace": "nasl.core", "typeName": "String", "inferred": false, "ruleMap": {} } ], "inferred": false, "ruleMap": {} }, "scope": "request" }
| |
basics | FrontendVariable | 前端全局变量 | { "concept": "FrontendVariable", "localCache": false, "name": "frontendVariable1", "typeAnnotation": { "concept": "TypeAnnotation", "typeKind": "primitive", "typeNamespace": "nasl.core", "typeName": "String", "inferred": false, "ruleMap": {} } }
| frontendVariable1: nasl::core::String
|
basics | Constant | 常量 | { "concept": "Constant", "name": "MAX_COUNT", "description": "", "typeAnnotation": { "concept": "TypeAnnotation", "typeKind": "primitive", "typeNamespace": "nasl.core", "typeName": "Long", "inferred": false, "ruleMap": {} }, "defaultValue": { "concept": "DefaultValue", "expression": { "concept": "NumericLiteral", "value": "100", "typeAnnotation": { "concept": "TypeAnnotation", "typeKind": "primitive", "typeNamespace": "nasl.core", "typeName": "Long", "inferred": false, "ruleMap": {} } }, "playground": [] } }
| |
basics | [[LogicItem]] | 逻辑项 | | |
basics | Function | 函数 | | |
basics | AnonymousFunction | 匿名函数 | { "concept": "AnonymousFunction", "params": [ { "concept": "Param", "name": "item", "description": "" } ], "body": { "concept": "BinaryExpression", "left": { "concept": "MemberExpression", "object": { "concept": "MemberExpression", "object": { "concept": "Identifier", "namespace": "", "name": "item" }, "property": { "concept": "Identifier", "namespace": "", "name": "productReport" } }, "property": { "concept": "Identifier", "namespace": "", "name": "executed" } }, "right": { "concept": "NullLiteral" }, "operator": "!=" } }
| { item: nasl::core::String => item.productReport.executed != null }
|
basics | [[ImportedInterface]] | 由JSON生成接口 | | |
basics | Interface | 接口 | | |
basics | InterfaceParam | 接口参数 | | |
basics | Transactional | 事务 | { "concept": "Transactional", "enabled": true }
| |
basics | DefaultValue | 默认值 | { "concept": "DefaultValue", "expression": { "concept": "NumericLiteral", "value": "120", "typeAnnotation": { "concept": "TypeAnnotation", "typeKind": "primitive", "typeNamespace": "nasl.core", "typeName": "Long", "inferred": false, "ruleMap": {} } }, "playground": [] }
| |
basics | JavaLogic | Java 扩展逻辑 | | |
basics | AuthInterface | 鉴权接口 | | |
modularity | App | 应用 | | |
modularity | Module | 模块 | | |
modularity | Namespace | 命名空间 | | |
modularity | FrontendType | 端类型 | | |
modularity | Frontend | 前端 | | |
modularity | Backend | 后端 | | |
modularity | FrontendLibrary | 前端库 | | |
integration | Integration | 集成 | | |
integration | MicroApp | 微应用 | | |
integration | TriggerEvent | 触发器事件 | | |
integration | MsgTriggerEvent | 触发器事件消息 | | |
integration | ConnectorTrigger | 连接器触发器 | | |
integration | TriggerLauncher | 触发器启动器 | | |
integration | MsgTriggerLauncher | 触发器启动器消息 | | |
integration | Connector | 连接器 | | |
integration | CallConnector | 调用连接器 | | |
integration | Connection | 连接 | | |
data | DataSource | 数据源 | { "concept": "DataSource", "name": "defaultDS", "description": "默认数据源", "entities": [ { "concept": "Entity", "name": "Product", "description": "", "uuid": "bd624ce40865488faff6d6e6a5f04422", "tableName": "product", "origin": "ide", "properties": [ { "concept": "EntityProperty", "name": "id", "uuid": "4a1d95bf7a3c4c14a6b0e19da915908c", "columnName": "id", "label": "主键", "description": "主键", "typeAnnotation": { "concept": "TypeAnnotation", "typeKind": "primitive", "typeNamespace": "nasl.core", "typeName": "Long", "inferred": false, "ruleMap": {} }, "required": true, "primaryKey": true, "display": { "inTable": false, "inFilter": false, "inForm": false, "inDetail": false }, "rules": [], "generationRule": "auto", "sequence": "Entity11050486256" }, { "concept": "EntityProperty", "name": "createdTime", "uuid": "a64b6d6b317a4e6f84532986d7c35aa3", "columnName": "created_time", "label": "创建时间", "description": "创建时间", "typeAnnotation": { "concept": "TypeAnnotation", "typeKind": "primitive", "typeNamespace": "nasl.core", "typeName": "DateTime", "inferred": false, "ruleMap": {} }, "display": { "inTable": true, "inFilter": false, "inForm": false, "inDetail": false }, "rules": [], "generationRule": "auto" }, { "concept": "EntityProperty", "name": "updatedTime", "uuid": "24167f6184964537857b4031479f0262", "columnName": "updated_time", "label": "更新时间", "description": "更新时间", "typeAnnotation": { "concept": "TypeAnnotation", "typeKind": "primitive", "typeNamespace": "nasl.core", "typeName": "DateTime", "inferred": false, "ruleMap": {} }, "display": { "inTable": true, "inFilter": false, "inForm": false, "inDetail": false }, "rules": [], "generationRule": "auto" }, { "concept": "EntityProperty", "name": "createdBy", "uuid": "971e11c2bf224828a7f328417049f94b", "columnName": "created_by", "label": "创建者", "description": "创建者", "typeAnnotation": { "concept": "TypeAnnotation", "typeKind": "primitive", "typeNamespace": "nasl.core", "typeName": "String", "inferred": false, "ruleMap": {} }, "display": { "inTable": false, "inFilter": false, "inForm": false, "inDetail": false }, "rules": [], "generationRule": "auto" }, { "concept": "EntityProperty", "name": "updatedBy", "uuid": "8c409bb2165946358064f43b334fb5a6", "columnName": "updated_by", "label": "更新者", "description": "更新者", "typeAnnotation": { "concept": "TypeAnnotation", "typeKind": "primitive", "typeNamespace": "nasl.core", "typeName": "String", "inferred": false, "ruleMap": {} }, "display": { "inTable": false, "inFilter": false, "inForm": false, "inDetail": false }, "rules": [], "generationRule": "auto" }, { "concept": "EntityProperty", "name": "price", "uuid": "8f9b69575e4c4e33b8673aefe7ada2c0", "label": "", "description": "", "columnName": "price", "typeAnnotation": { "concept": "TypeAnnotation", "typeKind": "primitive", "typeNamespace": "nasl.core", "typeName": "Decimal", "inferred": false, "ruleMap": { "scale": 2 } }, "databaseTypeAnnotation": { "concept": "DatabaseTypeAnnotation", "typeName": "decimal", "arguments": { "precision": "31" } }, "display": { "inDetail": true, "inFilter": true, "inForm": true, "inTable": true }, "rules": [], "generationRule": "manual" }, { "concept": "EntityProperty", "name": "name", "uuid": "f617749bae2545639102821de778add3", "label": "", "description": "", "columnName": "name", "typeAnnotation": { "concept": "TypeAnnotation", "typeKind": "primitive", "typeNamespace": "nasl.core", "typeName": "String", "inferred": false, "ruleMap": {} }, "display": { "inDetail": true, "inFilter": true, "inForm": true, "inTable": true }, "rules": [], "generationRule": "manual" }, { "concept": "EntityProperty", "name": "category", "uuid": "78500e51966245d984b095c7795dd21e", "label": "", "description": "", "columnName": "category", "typeAnnotation": { "concept": "TypeAnnotation", "typeKind": "primitive", "typeNamespace": "nasl.core", "typeName": "String", "inferred": false, "ruleMap": {} }, "display": { "inDetail": true, "inFilter": true, "inForm": true, "inTable": true }, "rules": [], "generationRule": "manual" }, { "concept": "EntityProperty", "name": "status", "uuid": "b1a9e167277e4f73b6b218eb7ede43ad", "label": "", "description": "", "columnName": "status", "typeAnnotation": { "concept": "TypeAnnotation", "typeKind": "reference", "typeNamespace": "app.enums", "typeName": "ProductStatus", "inferred": false, "ruleMap": {} }, "display": { "inDetail": true, "inFilter": true, "inForm": true, "inTable": true }, "rules": [], "generationRule": "manual" } ], "indexes": [] } ], "ddlStrategy": "originNotTable" }
| dataSource defaultDS { @( description = "", uuid = "bd624ce40865488faff6d6e6a5f04422", tableName = "product", origin = "ide", ) entity Product { @( label = "主键", description = "主键", uuid = "4a1d95bf7a3c4c14a6b0e19da915908c", columnName = "id", required, primaryKey, generationRule = "auto", sequence = "Entity11050486256", ) id: nasl::core::Integer; @( label = "创建时间", description = "创建时间", uuid = "a64b6d6b317a4e6f84532986d7c35aa3", columnName = "created_time", generationRule = "auto", ) createdTime: nasl::core::DateTime; @( label = "更新时间", description = "更新时间", uuid = "24167f6184964537857b4031479f0262", columnName = "updated_time", generationRule = "auto", ) updatedTime: nasl::core::DateTime; @( label = "创建者", description = "创建者", uuid = "971e11c2bf224828a7f328417049f94b", columnName = "created_by", generationRule = "auto", ) createdBy: nasl::core::String; @( label = "更新者", description = "更新者", uuid = "8c409bb2165946358064f43b334fb5a6", columnName = "updated_by", generationRule = "auto", ) updatedBy: nasl::core::String; @( label = "", description = "", uuid = "8f9b69575e4c4e33b8673aefe7ada2c0", columnName = "price", databaseTypeAnnotation = @decimal(31), generationRule = "manual", ) price: nasl::core::Decimal; @( label = "", description = "", uuid = "f617749bae2545639102821de778add3", columnName = "name", generationRule = "manual", ) name: nasl::core::String; @( label = "", description = "", uuid = "78500e51966245d984b095c7795dd21e", columnName = "category", generationRule = "manual", ) category: nasl::core::String; @( label = "", description = "", uuid = "b1a9e167277e4f73b6b218eb7ede43ad", columnName = "status", generationRule = "manual", ) status: app::enums::ProductStatus; } }
|
data | Entity | 实体 | { "concept": "Entity", "name": "Product", "description": "", "uuid": "bd624ce40865488faff6d6e6a5f04422", "tableName": "product", "origin": "ide", "properties": [ { "concept": "EntityProperty", "name": "id", "uuid": "4a1d95bf7a3c4c14a6b0e19da915908c", "columnName": "id", "label": "主键", "description": "主键", "typeAnnotation": { "concept": "TypeAnnotation", "typeKind": "primitive", "typeNamespace": "nasl.core", "typeName": "Long", "inferred": false, "ruleMap": {} }, "required": true, "primaryKey": true, "display": { "inTable": false, "inFilter": false, "inForm": false, "inDetail": false }, "rules": [], "generationRule": "auto", "sequence": "Entity11050486256" }, { "concept": "EntityProperty", "name": "createdTime", "uuid": "a64b6d6b317a4e6f84532986d7c35aa3", "columnName": "created_time", "label": "创建时间", "description": "创建时间", "typeAnnotation": { "concept": "TypeAnnotation", "typeKind": "primitive", "typeNamespace": "nasl.core", "typeName": "DateTime", "inferred": false, "ruleMap": {} }, "display": { "inTable": true, "inFilter": false, "inForm": false, "inDetail": false }, "rules": [], "generationRule": "auto" }, { "concept": "EntityProperty", "name": "updatedTime", "uuid": "24167f6184964537857b4031479f0262", "columnName": "updated_time", "label": "更新时间", "description": "更新时间", "typeAnnotation": { "concept": "TypeAnnotation", "typeKind": "primitive", "typeNamespace": "nasl.core", "typeName": "DateTime", "inferred": false, "ruleMap": {} }, "display": { "inTable": true, "inFilter": false, "inForm": false, "inDetail": false }, "rules": [], "generationRule": "auto" }, { "concept": "EntityProperty", "name": "createdBy", "uuid": "971e11c2bf224828a7f328417049f94b", "columnName": "created_by", "label": "创建者", "description": "创建者", "typeAnnotation": { "concept": "TypeAnnotation", "typeKind": "primitive", "typeNamespace": "nasl.core", "typeName": "String", "inferred": false, "ruleMap": {} }, "display": { "inTable": false, "inFilter": false, "inForm": false, "inDetail": false }, "rules": [], "generationRule": "auto" }, { "concept": "EntityProperty", "name": "updatedBy", "uuid": "8c409bb2165946358064f43b334fb5a6", "columnName": "updated_by", "label": "更新者", "description": "更新者", "typeAnnotation": { "concept": "TypeAnnotation", "typeKind": "primitive", "typeNamespace": "nasl.core", "typeName": "String", "inferred": false, "ruleMap": {} }, "display": { "inTable": false, "inFilter": false, "inForm": false, "inDetail": false }, "rules": [], "generationRule": "auto" }, { "concept": "EntityProperty", "name": "price", "uuid": "8f9b69575e4c4e33b8673aefe7ada2c0", "label": "", "description": "", "columnName": "price", "typeAnnotation": { "concept": "TypeAnnotation", "typeKind": "primitive", "typeNamespace": "nasl.core", "typeName": "Decimal", "inferred": false, "ruleMap": { "scale": 2 } }, "databaseTypeAnnotation": { "concept": "DatabaseTypeAnnotation", "typeName": "decimal", "arguments": { "precision": "31" } }, "display": { "inDetail": true, "inFilter": true, "inForm": true, "inTable": true }, "rules": [], "generationRule": "manual" }, { "concept": "EntityProperty", "name": "name", "uuid": "f617749bae2545639102821de778add3", "label": "", "description": "", "columnName": "name", "typeAnnotation": { "concept": "TypeAnnotation", "typeKind": "primitive", "typeNamespace": "nasl.core", "typeName": "String", "inferred": false, "ruleMap": {} }, "display": { "inDetail": true, "inFilter": true, "inForm": true, "inTable": true }, "rules": [], "generationRule": "manual" }, { "concept": "EntityProperty", "name": "category", "uuid": "78500e51966245d984b095c7795dd21e", "label": "", "description": "", "columnName": "category", "typeAnnotation": { "concept": "TypeAnnotation", "typeKind": "primitive", "typeNamespace": "nasl.core", "typeName": "String", "inferred": false, "ruleMap": {} }, "display": { "inDetail": true, "inFilter": true, "inForm": true, "inTable": true }, "rules": [], "generationRule": "manual" }, { "concept": "EntityProperty", "name": "status", "uuid": "b1a9e167277e4f73b6b218eb7ede43ad", "label": "", "description": "", "columnName": "status", "typeAnnotation": { "concept": "TypeAnnotation", "typeKind": "reference", "typeNamespace": "app.enums", "typeName": "ProductStatus", "inferred": false, "ruleMap": {} }, "display": { "inDetail": true, "inFilter": true, "inForm": true, "inTable": true }, "rules": [], "generationRule": "manual" } ], "indexes": [] }
| @( description = "", uuid = "bd624ce40865488faff6d6e6a5f04422", tableName = "product", origin = "ide", ) entity Product { @( label = "主键", description = "主键", uuid = "4a1d95bf7a3c4c14a6b0e19da915908c", columnName = "id", required, primaryKey, generationRule = "auto", sequence = "Entity11050486256", ) id: nasl::core::Integer; @( label = "创建时间", description = "创建时间", uuid = "a64b6d6b317a4e6f84532986d7c35aa3", columnName = "created_time", generationRule = "auto", ) createdTime: nasl::core::DateTime; @( label = "更新时间", description = "更新时间", uuid = "24167f6184964537857b4031479f0262", columnName = "updated_time", generationRule = "auto", ) updatedTime: nasl::core::DateTime; @( label = "创建者", description = "创建者", uuid = "971e11c2bf224828a7f328417049f94b", columnName = "created_by", generationRule = "auto", ) createdBy: nasl::core::String; @( label = "更新者", description = "更新者", uuid = "8c409bb2165946358064f43b334fb5a6", columnName = "updated_by", generationRule = "auto", ) updatedBy: nasl::core::String; @( label = "", description = "", uuid = "8f9b69575e4c4e33b8673aefe7ada2c0", columnName = "price", databaseTypeAnnotation = @decimal(31), generationRule = "manual", ) price: nasl::core::Decimal; @( label = "", description = "", uuid = "f617749bae2545639102821de778add3", columnName = "name", generationRule = "manual", ) name: nasl::core::String; @( label = "", description = "", uuid = "78500e51966245d984b095c7795dd21e", columnName = "category", generationRule = "manual", ) category: nasl::core::String; @( label = "", description = "", uuid = "b1a9e167277e4f73b6b218eb7ede43ad", columnName = "status", generationRule = "manual", ) status: app::enums::ProductStatus; }
|
data | EntityProperty | 实体属性 | { "concept": "EntityProperty", "name": "status", "uuid": "b1a9e167277e4f73b6b218eb7ede43ad", "label": "", "description": "", "columnName": "status", "typeAnnotation": { "concept": "TypeAnnotation", "typeKind": "reference", "typeNamespace": "app.enums", "typeName": "ProductStatus", "inferred": false, "ruleMap": {} }, "display": { "inDetail": true, "inFilter": true, "inForm": true, "inTable": true }, "rules": [], "generationRule": "manual" }
| @( label = "", description = "", uuid = "b1a9e167277e4f73b6b218eb7ede43ad", columnName = "status", generationRule = "manual", ) status: app::enums::ProductStatus
|
带关联关系的{ "concept": "EntityProperty", "name": "productId", "uuid": "b1a9e167277e4f73b6b218eb7ede43ad", "label": "", "description": "", "columnName": "productId", "relationNamespace": "app.dataSources.defaultDS", "relationEntity": "Product", "relationProperty": "id", "typeAnnotation": { "concept": "TypeAnnotation", "typeKind": "primitive", "typeNamespace": "nasl.core", "typeName": "Long", "inferred": false, "ruleMap": {} }, "display": { "inDetail": true, "inFilter": true, "inForm": true, "inTable": true }, "rules": [], "generationRule": "manual" }
| @( label = "", description = "", uuid = "b1a9e167277e4f73b6b218eb7ede43ad", columnName = "productId", generationRule = "manual", ) productId: nasl::core::Integer
|
带数据源类型的{ "concept": "EntityProperty", "name": "price", "uuid": "8f9b69575e4c4e33b8673aefe7ada2c0", "label": "", "description": "", "columnName": "price", "typeAnnotation": { "concept": "TypeAnnotation", "typeKind": "primitive", "typeNamespace": "nasl.core", "typeName": "Decimal", "inferred": false, "ruleMap": { "scale": 2 } }, "databaseTypeAnnotation": { "concept": "DatabaseTypeAnnotation", "typeName": "decimal", "arguments": { "precision": "31" } }, "display": { "inDetail": true, "inFilter": true, "inForm": true, "inTable": true }, "rules": [], "generationRule": "manual" }
| @( label = "", description = "", uuid = "8f9b69575e4c4e33b8673aefe7ada2c0", columnName = "price", databaseTypeAnnotation = @decimal(31), generationRule = "manual", ) price: nasl::core::Decimal
|
data | EntityIndex | 实体索引 | { "concept": "EntityIndex", "name": "nameIndex", "propertyNames": [ "name" ], "unique": true }
| |
view | View | 页面 | | |
view | ViewElement | 页面元素 | { "concept": "ViewElement", "tag": "u-button", "name": "button_2", "bindAttrs": [ { "concept": "BindAttribute", "name": "color", "type": "string", "value": "primary", "playground": [] }, { "concept": "BindAttribute", "name": "text", "type": "string", "value": "创 建", "playground": [] } ], "bindEvents": [ { "concept": "BindEvent", "name": "click", "logics": [ { "concept": "Logic", "name": "click", "params": [], "returns": [], "variables": [], "body": [ { "concept": "Start", "label": "开始" }, { "uuid": "0550e0f6863a4d849ee643d16336e420", "concept": "CallLogic", "label": "弹出消息", "calleeNamespace": "nasl.ui", "calleeName": "showMessage", "shortcut": true, "arguments": [ { "concept": "Argument", "keyword": "text", "expression": { "concept": "StringLiteral", "value": "点击了“创 建”按钮" } } ] }, { "concept": "End", "label": "结束" } ], "playground": [] }, { "concept": "Logic", "name": "create", "params": [], "returns": [], "variables": [], "body": [ { "concept": "Start", "label": "开始" }, { "concept": "Assignment", "label": "赋值", "left": { "concept": "Identifier", "namespace": "", "name": "input" }, "right": { "concept": "CallFunction", "label": "调用逻辑", "calleeNamespace": "nasl.util", "calleeName": "Clone", "arguments": [ { "concept": "Argument", "keyword": "obj", "expression": { "concept": "Identifier", "namespace": "", "name": "student" } } ] } }, { "uuid": "43a14fc183ed4b1bab03a839ea7fce9f", "concept": "CallLogic", "label": "调用逻辑", "calleeNamespace": "elements.saveModal_1.logics", "calleeName": "open", "arguments": [] }, { "concept": "End", "label": "结束" } ], "playground": [] } ] } ], "bindDirectives": [], "bindRoles": [], "bindStyles": [], "children": [] }
| @(name = "button_2") UButton { color = 'primary', text = '创 建', onClick: [ logic click(event) { nasl::ui::showMessage('点击了“创 建”按钮') end }, logic create(event) { input = nasl::util::Clone(student) $refs::saveModal_1::open() end }, ], }
|
{ "concept": "ViewElement", "tag": "u-modal", "name": "modal_1", "bindAttrs": [ { "concept": "BindAttribute", "name": "visible", "type": "dynamic", "expression": { "concept": "Identifier", "namespace": "", "name": "modalVisible" }, "rules": [], "sync": true, "playground": [] } ], "bindEvents": [], "bindDirectives": [], "bindRoles": [], "bindStyles": [], "children": [ { "concept": "ViewElement", "tag": "template", "name": "template_1", "slotTarget": "foot", "slotScope": "", "bindAttrs": [], "bindEvents": [], "bindDirectives": [], "bindRoles": [], "bindStyles": [], "children": [ { "concept": "ViewElement", "tag": "u-linear-layout", "name": "linear_layout_1", "bindAttrs": [ { "concept": "BindAttribute", "name": "justify", "type": "string", "value": "center", "rules": [], "playground": [] } ], "bindEvents": [], "bindDirectives": [], "bindRoles": [], "bindStyles": [], "children": [ { "concept": "ViewElement", "tag": "u-button", "name": "button_1", "bindAttrs": [ { "concept": "BindAttribute", "name": "color", "type": "string", "value": "primary", "rules": [], "playground": [] }, { "concept": "BindAttribute", "name": "text", "type": "string", "value": "确 定", "rules": [], "playground": [] } ], "bindEvents": [], "bindDirectives": [], "bindRoles": [], "bindStyles": [], "children": [] }, { "concept": "ViewElement", "tag": "u-button", "name": "button_2", "bindAttrs": [ { "concept": "BindAttribute", "name": "text", "type": "string", "value": "取 消", "rules": [], "playground": [] } ], "bindEvents": [ { "concept": "BindEvent", "name": "click", "logics": [ { "concept": "Logic", "name": "click", "params": [], "returns": [], "variables": [], "body": [ { "concept": "Start", "label": "开始" }, { "uuid": "bc414eb6611e417c92a25ca5c125a2ed", "concept": "CallLogic", "label": "调用逻辑", "calleeNamespace": "elements.modal_1.logics", "calleeName": "close", "arguments": [] }, { "concept": "End", "label": "结束" } ], "playground": [] } ] } ], "bindDirectives": [], "bindRoles": [], "bindStyles": [], "children": [] } ] } ] }, { "concept": "ViewElement", "tag": "template", "name": "template_2", "slotTarget": "body", "slotScope": "", "bindAttrs": [], "bindEvents": [], "bindDirectives": [], "bindRoles": [], "bindStyles": [], "children": [ { "concept": "ViewElement", "tag": "u-text", "name": "text_1", "bindAttrs": [ { "concept": "BindAttribute", "name": "text", "type": "string", "value": "内容", "rules": [], "playground": [] } ], "bindEvents": [], "bindDirectives": [], "bindRoles": [], "bindStyles": [], "children": [] } ] }, { "concept": "ViewElement", "tag": "template", "name": "template_3", "slotTarget": "title", "slotScope": "", "bindAttrs": [], "bindEvents": [], "bindDirectives": [], "bindRoles": [], "bindStyles": [], "children": [ { "concept": "ViewElement", "tag": "u-text", "name": "text_2", "bindAttrs": [ { "concept": "BindAttribute", "name": "text", "type": "string", "value": "标题", "rules": [], "playground": [] } ], "bindEvents": [], "bindDirectives": [], "bindRoles": [], "bindStyles": [], "children": [] } ] } ] }
| @(name = "modal_1") UModal { visible = modalVisible, slotFoot = { () => [ @(name = "linear_layout_1") ULinearLayout { justify = 'center', slotDefault = { () => [ @(name = "button_1") UButton { color = 'primary', text = '确 定', }, @(name = "button_2") UButton { text = '取 消', onClick: [ logic click(event) { $refs::modal_1::close() end }, ], }, ] }, }, ] }, slotBody = { () => [ @(name = "text_1") UText { text = '内容', }, ] }, slotTitle = { () => [ @(name = "text_2") UText { text = '标题', }, ] }, }
|
{ "concept": "ViewElement", "tag": "van-list-view", "name": "listView_1", "bindAttrs": [ { "concept": "BindAttribute", "name": "dataSource", "type": "dynamic", "value": "", "expression": { "concept": "CallLogic", "uuid": "12b52ad1a67840e2ba9abf951449ecde", "calleeNamespace": "app.logics", "calleeName": "loadAaaListView_1", "typeArguments": [], "arguments": [ { "concept": "Argument", "keyword": "page", "expression": { "concept": "MemberExpression", "object": { "concept": "MemberExpression", "object": { "concept": "Identifier", "namespace": "", "name": "elements" }, "property": { "concept": "Identifier", "namespace": "", "name": "$ce" } }, "property": { "concept": "Identifier", "namespace": "", "name": "page" } } }, { "concept": "Argument", "keyword": "size", "expression": { "concept": "MemberExpression", "object": { "concept": "MemberExpression", "object": { "concept": "Identifier", "namespace": "", "name": "elements" }, "property": { "concept": "Identifier", "namespace": "", "name": "$ce" } }, "property": { "concept": "Identifier", "namespace": "", "name": "size" } } } ] }, "rules": [], "playground": [] }, { "concept": "BindAttribute", "name": "pageSize", "type": "static", "value": "50", "rules": [], "playground": [] }, { "concept": "BindAttribute", "name": "pageNumber", "type": "static", "value": "1", "rules": [], "playground": [] }, { "concept": "BindAttribute", "name": "pageable", "type": "string", "value": "auto-more", "rules": [], "playground": [] }, { "concept": "BindAttribute", "name": "remotePaging", "type": "static", "value": "true", "rules": [], "playground": [] } ], "bindEvents": [], "bindDirectives": [], "bindRoles": [], "bindStyles": [], "children": [ { "concept": "ViewElement", "tag": "template", "name": "template_19", "slotTarget": "next", "slotScope": "", "bindAttrs": [], "bindEvents": [], "bindDirectives": [], "bindRoles": [], "bindStyles": [], "children": [ { "concept": "ViewElement", "tag": "van-text", "name": "text_11", "bindAttrs": [ { "concept": "BindAttribute", "name": "text", "type": "string", "value": "下一页", "rules": [], "playground": [] } ], "bindEvents": [], "bindDirectives": [], "bindRoles": [], "bindStyles": [], "children": [] } ] }, { "concept": "ViewElement", "tag": "template", "name": "template_20", "slotTarget": "prev", "slotScope": "", "bindAttrs": [], "bindEvents": [], "bindDirectives": [], "bindRoles": [], "bindStyles": [], "children": [ { "concept": "ViewElement", "tag": "van-text", "name": "text_12", "bindAttrs": [ { "concept": "BindAttribute", "name": "text", "type": "string", "value": "上一页", "rules": [], "playground": [] } ], "bindEvents": [], "bindDirectives": [], "bindRoles": [], "bindStyles": [], "children": [] } ] }, { "concept": "ViewElement", "tag": "template", "name": "template_21", "slotTarget": "item", "slotScope": "current", "bindAttrs": [], "bindEvents": [], "bindDirectives": [], "bindRoles": [], "bindStyles": [], "children": [ { "concept": "ViewElement", "tag": "van-cell", "name": "cell_1", "bindAttrs": [ { "concept": "BindAttribute", "name": "value", "type": "dynamic", "value": "", "expression": { "concept": "MemberExpression", "object": { "concept": "MemberExpression", "object": { "concept": "MemberExpression", "object": { "concept": "Identifier", "namespace": "", "name": "current" }, "property": { "concept": "Identifier", "namespace": "", "name": "item" } }, "property": { "concept": "Identifier", "namespace": "", "name": "student" } }, "property": { "concept": "Identifier", "namespace": "", "name": "name" } }, "rules": [], "playground": [] }, { "concept": "BindAttribute", "name": "isLink", "type": "string", "value": "", "rules": [], "playground": [] } ], "bindEvents": [], "bindDirectives": [], "bindRoles": [], "bindStyles": [], "children": [ { "concept": "ViewElement", "tag": "template", "name": "template_22", "slotTarget": "title", "slotScope": "", "bindAttrs": [], "bindEvents": [], "bindDirectives": [], "bindRoles": [], "bindStyles": [], "children": [ { "concept": "ViewElement", "tag": "van-text", "name": "text_13", "bindAttrs": [ { "concept": "BindAttribute", "name": "text", "type": "dynamic", "value": "", "expression": { "concept": "MemberExpression", "object": { "concept": "MemberExpression", "object": { "concept": "MemberExpression", "object": { "concept": "Identifier", "namespace": "", "name": "current" }, "property": { "concept": "Identifier", "namespace": "", "name": "item" } }, "property": { "concept": "Identifier", "namespace": "", "name": "student" } }, "property": { "concept": "Identifier", "namespace": "", "name": "name" } }, "rules": [], "playground": [] } ], "bindEvents": [], "bindDirectives": [], "bindRoles": [], "bindStyles": [], "children": [] } ] } ] } ] } ] }
| @(name = "listView_1") VanListView { dataSource = app::logics::loadAaaListView_1($currentElement.page, $currentElement.size), pageSize = 50, pageNumber = 1, pageable = 'auto-more', remotePaging = true, slotNext = { () => [ @(name = "text_11") VanText { text = '下一页', }, ] }, slotPrev = { () => [ @(name = "text_12") VanText { text = '上一页', }, ] }, slotItem = { (current) => [ @(name = "cell_1") VanCell { value = current.item.student.name, isLink = '', slotTitle = { () => [ @(name = "text_13") VanText { text = current.item.student.name, }, ] }, }, ] }, }
|
view | BindAttribute | 元素绑定属性 | 字符串属性{ "concept": "BindAttribute", "name": "color", "type": "string", "value": "primary", "playground": [] }
| |
非字符串的静态类型属性{ "concept": "BindAttribute", "name": "min", "type": "static", "value": "24", "playground": [] }
| |
双向绑定属性{ "concept": "BindAttribute", "name": "visible", "type": "dynamic", "expression": { "concept": "Identifier", "namespace": "", "name": "modalVisible" }, "rules": [], "sync": true, "playground": [] }
| |
view | BindDirective | 元素指令 | { "concept": "BindDirective", "name": "if", "type": "dynamic", "expression": { "concept": "Identifier", "namespace": "", "name": "visible" }, "playground": [] }
| |
view | BindEvent | 元素绑定事件 | { "concept": "BindEvent", "name": "click", "logics": [ { "concept": "Logic", "name": "click", "params": [], "returns": [], "variables": [], "body": [ { "concept": "Start", "label": "开始" }, { "uuid": "bc414eb6611e417c92a25ca5c125a2ed", "concept": "CallLogic", "label": "调用逻辑", "calleeNamespace": "elements.modal_1.logics", "calleeName": "close", "arguments": [] }, { "concept": "End", "label": "结束" } ], "playground": [] } ], "arguments": [] }
| onClick: [ logic click(event) { $refs::modal_1::close() end }, ]
|
绑定多个事件逻辑{ "concept": "BindEvent", "name": "click", "logics": [ { "concept": "Logic", "name": "click", "params": [], "returns": [], "variables": [], "body": [ { "concept": "Start", "label": "开始" }, { "uuid": "0550e0f6863a4d849ee643d16336e420", "concept": "CallLogic", "label": "弹出消息", "calleeNamespace": "nasl.ui", "calleeName": "showMessage", "shortcut": true, "arguments": [ { "concept": "Argument", "keyword": "text", "expression": { "concept": "StringLiteral", "value": "点击了“创 建”按钮" } } ] }, { "concept": "End", "label": "结束" } ], "playground": [] }, { "concept": "Logic", "name": "create", "params": [], "returns": [], "variables": [], "body": [ { "concept": "Start", "label": "开始" }, { "concept": "Assignment", "label": "赋值", "left": { "concept": "Identifier", "namespace": "", "name": "input" }, "right": { "concept": "CallFunction", "label": "调用逻辑", "calleeNamespace": "nasl.util", "calleeName": "Clone", "arguments": [ { "concept": "Argument", "keyword": "obj", "expression": { "concept": "Identifier", "namespace": "", "name": "student" } } ] } }, { "uuid": "43a14fc183ed4b1bab03a839ea7fce9f", "concept": "CallLogic", "label": "调用逻辑", "calleeNamespace": "elements.saveModal_1.logics", "calleeName": "open", "arguments": [] }, { "concept": "End", "label": "结束" } ], "playground": [] } ] }
| onClick: [ logic click(event) { nasl::ui::showMessage('点击了“创 建”按钮') end }, logic create(event) { input = nasl::util::Clone(student) $refs::saveModal_1::open() end }, ]
|
view | BindStyle | 元素绑定样式 | { "concept": "BindStyle", "name": "background-color", "expression": { "concept": "Identifier", "namespace": "", "name": "bgColor" }, "playground": [] }
| `background-color`: bgColor
|
view | ThemeVariable | 主题变量 | | |
view | [[BaseSetter]] | 设置器基类 | | |
view | InputSetter | 输入框设置器 | | |
view | SwitchSetter | 切换设置器 | | |
view | SetterOption | 设置器枚举选项 | | |
view | EnumSelectSetter | 枚举选择设置器 | | |
view | CapsulesSetter | 胶囊设置器 | | |
view | NumberInputSetter | 数字输入设置器 | | |
view | IconSetter | 图标设置器 | | |
view | ImageSetter | 图片设置器 | | |
view | PropertySelectSetter | 属性选择设置器 | | |
view | ViewComponentDeclaration | 页面组件 | | |
view | BusinessComponent | 业务组件 | | |
view | Attribute | 组件属性 | | |
view | Event | 组件事件 | | |
view | PropDeclaration | 组件属性 | | |
view | EventDeclaration | 组件事件 | | |
view | SlotDeclaration | 插槽 | | |
view | Theme | 主题 | | |
view | ViewBlock | 页面组件的代码块 | | |
view | ViewBlockWithImage | 带截图的代码块 | | |
process | Process | 流程 | | |
process | ProcessElement | 流程元素 | | |
process | ProcessComponent | 流程组件 | | |
process | [[MultiApprovalPolicy]] | 审批策略 | | |
process | SequentialPolicy | 依次审批 | | |
process | CountersignPolicy | 会签 | | |
process | ProcessOutcome | 判断结果 | | |
process | Assignee | 经办人 | | |
process | ProcessOutcomes | 判断结果数组 | | |
dataQuery | CallQueryComponent | 数据查询 | { "concept": "CallQueryComponent", "select": { "concept": "QuerySelectExpression", "distinct": false, "star": true, "selectElements": [ { "concept": "QueryFieldExpression", "isDotStar": true, "entityAsName": "OrderProduct", "propertyName": "", "asName": "" }, { "concept": "QueryFieldExpression", "isDotStar": true, "entityAsName": "OrderForm", "propertyName": "", "asName": "" }, { "concept": "QueryFieldExpression", "isDotStar": true, "entityAsName": "Product", "propertyName": "", "asName": "" }, { "concept": "QueryAggregateExpression", "asName": "totalAmount", "aggregateName": "SUM", "aggregateParam": { "concept": "QueryFieldExpression", "isDotStar": false, "entityAsName": "OrderProduct", "propertyName": "amount", "asName": "" } } ] }, "from": { "concept": "QueryFromExpression", "entityNamespace": "app.dataSources.defaultDS.entities", "entityName": "OrderProduct", "joinParts": [ { "concept": "QueryJoinExpression", "entityNamespace": "app.dataSources.defaultDS.entities", "entityName": "OrderForm", "joinType": "INNER", "onExpressions": [ { "concept": "BinaryExpression", "left": { "concept": "QueryFieldExpression", "isDotStar": false, "entityAsName": "OrderProduct", "propertyName": "orderId", "asName": "" }, "right": { "concept": "QueryFieldExpression", "isDotStar": false, "entityAsName": "OrderForm", "propertyName": "id", "asName": "" }, "operator": "==" } ], "joinParts": [], "asName": "" }, { "concept": "QueryJoinExpression", "entityNamespace": "app.dataSources.defaultDS.entities", "entityName": "Product", "joinType": "INNER", "onExpressions": [ { "concept": "BinaryExpression", "left": { "concept": "QueryFieldExpression", "isDotStar": false, "entityAsName": "OrderProduct", "propertyName": "productId", "asName": "" }, "right": { "concept": "QueryFieldExpression", "isDotStar": false, "entityAsName": "Product", "propertyName": "id", "asName": "" }, "operator": "==" } ], "joinParts": [], "asName": "" } ], "asName": "" }, "where": { "concept": "BinaryExpression", "left": { "concept": "BinaryExpression", "left": { "concept": "QueryFieldExpression", "isDotStar": false, "entityAsName": "OrderProduct", "propertyName": "createdBy", "asName": "createdBy" }, "right": { "concept": "StringLiteral", "value": "张三" }, "operator": "==" }, "right": { "concept": "BinaryExpression", "left": { "concept": "QueryFieldExpression", "isDotStar": false, "entityAsName": "OrderProduct", "propertyName": "createdTime", "asName": "" }, "right": { "concept": "Identifier", "namespace": "", "name": "startDateTime" }, "operator": ">" }, "operator": "&&" }, "wherePlayground": [], "groupBy": [ { "concept": "QueryGroupByExpression", "groupElement": { "concept": "QueryFieldExpression", "isDotStar": false, "asName": "productId", "entityAsName": "OrderProduct", "propertyName": "productId" } }, { "concept": "QueryGroupByExpression", "groupElement": { "concept": "QueryFieldExpression", "isDotStar": false, "asName": "productName", "entityAsName": "Product", "propertyName": "name" } } ], "havingPlayground": [], "orderBy": [ { "concept": "QueryOrderByExpression", "orderElement": { "concept": "Identifier", "namespace": "inner", "name": "productName" }, "order": { "concept": "StringLiteral", "value": "ASC" } } ], "limit": { "concept": "QueryLimitExpression", "pageElement": { "concept": "NumericLiteral", "value": "1", "typeAnnotation": { "concept": "TypeAnnotation", "typeKind": "primitive", "typeNamespace": "nasl.core", "typeName": "Long", "inferred": false, "ruleMap": {} } }, "pageSizeElement": { "concept": "NumericLiteral", "value": "1000", "typeAnnotation": { "concept": "TypeAnnotation", "typeKind": "primitive", "typeNamespace": "nasl.core", "typeName": "Long", "inferred": false, "ruleMap": {} } } }, "ideVersion": "2.22" }
| for OrderProduct in OrderProductEntity inner join OrderForm in OrderForm on OrderProduct.orderId == OrderForm.id inner join Product in Product on OrderProduct.productId == Product.id where OrderProduct.createdBy == '张三' && OrderProduct.createdTime > startDateTime groupby OrderProduct.productId, Product.name orderby productName asc select { orderProduct: OrderProduct, orderForm: OrderForm, product: Product, totalAmount: SUM(OrderProduct.amount), productId: OrderProduct.productId, productName: Product.name, } page 1 size 1000
|
dataQuery | QuerySelectExpression | 查询选择子句 | { "concept": "QuerySelectExpression", "distinct": false, "star": true, "selectElements": [ { "concept": "QueryFieldExpression", "isDotStar": true, "entityAsName": "Product", "propertyName": "", "asName": "" } ] }
| select { product: Product, }
|
{ "concept": "QuerySelectExpression", "distinct": false, "star": true, "selectElements": [ { "concept": "QueryFieldExpression", "isDotStar": true, "entityAsName": "OrderProduct", "propertyName": "", "asName": "" }, { "concept": "QueryFieldExpression", "isDotStar": true, "entityAsName": "OrderForm", "propertyName": "", "asName": "" }, { "concept": "QueryFieldExpression", "isDotStar": true, "entityAsName": "Product", "propertyName": "", "asName": "" }, { "concept": "QueryAggregateExpression", "asName": "totalAmount", "aggregateName": "SUM", "aggregateParam": { "concept": "QueryFieldExpression", "isDotStar": false, "entityAsName": "OrderProduct", "propertyName": "amount", "asName": "" } } ] }
| select { orderProduct: OrderProduct, orderForm: OrderForm, product: Product, totalAmount: SUM(OrderProduct.amount), }
|
dataQuery | QueryFromExpression | 查询 From 子句 | { "concept": "QueryFromExpression", "entityNamespace": "app.dataSources.defaultDS.entities", "entityName": "OrderProduct", "asName": "", "joinParts": [] }
| for OrderProduct in OrderProductEntity
|
dataQuery | QueryJoinExpression | 查询 Join 子句 | { "concept": "QueryJoinExpression", "entityNamespace": "app.dataSources.defaultDS.entities", "entityName": "OrderForm", "joinType": "INNER", "onExpressions": [ { "concept": "BinaryExpression", "left": { "concept": "QueryFieldExpression", "isDotStar": false, "entityAsName": "OrderProduct", "propertyName": "orderId", "asName": "" }, "right": { "concept": "QueryFieldExpression", "isDotStar": false, "entityAsName": "OrderForm", "propertyName": "id", "asName": "" }, "operator": "==" } ], "joinParts": [], "asName": "" }
| inner join OrderForm in OrderForm on OrderProduct.orderId == OrderForm.id
|
dataQuery | QueryFieldExpression | 查询属性 | { "concept": "QueryFieldExpression", "isDotStar": true, "entityAsName": "OrderProduct", "propertyName": "", "asName": "" }
| |
{ "concept": "QueryFieldExpression", "isDotStar": false, "entityAsName": "OrderProduct", "propertyName": "amount", "asName": "" }
| |
dataQuery | QueryAggregateExpression | 查询聚合函数 | { "concept": "QueryAggregateExpression", "aggregateName": "SUM", "aggregateParam": { "concept": "QueryFieldExpression", "isDotStar": false, "entityAsName": "OrderProduct", "propertyName": "amount", "asName": "" }, "asName": "totalAmount" }
| totalAmount: SUM(OrderProduct.amount)
|
dataQuery | QueryOrderByExpression | 查询排序子句 | { "concept": "QueryOrderByExpression", "orderElement": { "concept": "Identifier", "namespace": "", "name": "sort" }, "order": { "concept": "Identifier", "namespace": "", "name": "order" } }
| |
{ "concept": "QueryOrderByExpression", "orderElement": { "concept": "QueryFieldExpression", "isDotStar": false, "entityAsName": "Product", "propertyName": "createdTime", "asName": "" }, "order": { "concept": "StringLiteral", "value": "DESC" } }
| |
{ "concept": "QueryOrderByExpression", "orderElement": { "concept": "Identifier", "namespace": "inner", "name": "productName" }, "order": { "concept": "StringLiteral", "value": "ASC" } }
| |
dataQuery | QueryGroupByExpression | 查询分组 | { "concept": "QueryGroupByExpression", "groupElement": { "concept": "QueryFieldExpression", "isDotStar": false, "entityAsName": "OrderProduct", "propertyName": "productId", "asName": "productId" } }
| |
{ "concept": "QueryGroupByExpression", "groupElement": { "concept": "QueryFieldExpression", "isDotStar": false, "entityAsName": "Product", "propertyName": "name", "asName": "productName" } }
| |
dataQuery | QueryLimitExpression | 查询分页子句 | { "concept": "QueryLimitExpression", "pageElement": { "concept": "NumericLiteral", "value": "1", "typeAnnotation": { "concept": "TypeAnnotation", "typeKind": "primitive", "typeNamespace": "nasl.core", "typeName": "Long", "inferred": false, "ruleMap": {} } }, "pageSizeElement": { "concept": "NumericLiteral", "value": "1000", "typeAnnotation": { "concept": "TypeAnnotation", "typeKind": "primitive", "typeNamespace": "nasl.core", "typeName": "Long", "inferred": false, "ruleMap": {} } } }
| |
{ "concept": "QueryLimitExpression", "pageElement": { "concept": "Identifier", "namespace": "", "name": "page" }, "pageSizeElement": { "concept": "Identifier", "namespace": "", "name": "size" } }
| page ${page} size ${size}
|
dataQuery | SqlQueryComponent | SQL 查询 | | |
dataQuery | OqlQueryComponent | SQL 查询 | { "concept": "OqlQueryComponent", "dataSource": "app.dataSources.defaultDS", "code": "SELECT * FROM Product WHERE createdTime > \$\{createdTime}" }
| sql"SELECT * FROM Product WHERE createdTime > ${createdTime}"
|
{ "concept": "OqlQueryComponent", "dataSource": "app.dataSources.defaultDS", "code": "SELECT * FROM Product WHERE status = \$\{app.enums.StatusEnum.Normal}" }
| sql"SELECT * FROM Product WHERE status = ${app.enums.StatusEnum.Normal}"
|
auth | Role | 角色 | { "concept": "Role", "name": "DEV-AdminRole", "uuid": "e21f5120e0334cd9ac8e0181df831bfe", "description": "可视化编辑器上添加的角色" }
| @( uuid = "e21f5120e0334cd9ac8e0181df831bfe", description = "可视化编辑器上添加的角色", ) role `DEV-AdminRole`
|
configuration | Configuration | 配置管理 | { "concept": "Configuration", "groups": [ { "concept": "ConfigGroup", "name": "custom", "properties": [ { "concept": "ConfigProperty", "name": "url", "description": "参数路径", "values": [ { "concept": "ConfigPropertyValue", "env": "dev", "value": "dev-domain.com" }, { "concept": "ConfigPropertyValue", "env": "online", "value": "domain.com" } ], "isPrivate": false } ] } ] }
| |
configuration | ConfigGroup | 配置组 | { "concept": "ConfigGroup", "name": "custom", "properties": [ { "concept": "ConfigProperty", "name": "url", "description": "参数路径", "values": [ { "concept": "ConfigPropertyValue", "env": "dev", "value": "dev-domain.com" }, { "concept": "ConfigPropertyValue", "env": "online", "value": "domain.com" } ], "isPrivate": false } ] }
| |
configuration | ConfigProperty | 配置属性 | { "concept": "ConfigProperty", "name": "url", "description": "参数路径", "values": [ { "concept": "ConfigPropertyValue", "env": "dev", "value": "dev-domain.com" }, { "concept": "ConfigPropertyValue", "env": "online", "value": "domain.com" } ], "isPrivate": false }
| |
configuration | ConfigPropertyValue | 配置属性值 | { "concept": "ConfigPropertyValue", "env": "dev", "value": "dev-domain.com" }
| |
configuration | I18nInfo | 国际化信息 | { "concept": "I18nInfo", "enabled": true, "locale": "zh-CN", "messages": { "en-US": { "key1": "Loading...", "key2": "Failed to load. Please try again", "key3": "No data", "key4": "Load more", "key5": "No more items" }, "zh-CN": { "key1": "正在加载中...", "key2": "加载失败,请重试", "key3": "暂无数据", "key4": "加载更多", "key5": "没有更多了" } } }
| |
assist | CompletionProperty | 自动补全属性 | | |
assist | UseComponent | IDE 中使用的编辑组件 | | |
assist | Point | 点信息 | | |
assist | Rect | 矩形信息 | | |
assist | SelectMembers | 选择成员 | | |
assist | AssignmentLine | 赋值连线 | | |