华为云用户手册
-
代码编辑器 在代码编辑区域,在符号上单击鼠标右键,会出现如图2所示代码导航功能。除此之外,脚本编辑器还提供了智能提示、代码补全、显示光标的所在行和列信息等能力。 图2 代码导航 Go to Definition 在代码编辑区域,在符号上单击鼠标右键,选择Go To Definition,可以跳转到符号的定义代码部分。 Go to References 在代码编辑区域,在符号上单击鼠标右键,选择Go to References,可以查看符号在脚本中的引用情况。 Go to Symbol 在代码编辑区域,单击鼠标右键,选择Go To Symbol,选择任意符号,可以跳转到该符号的定义代码部分。 Run 在代码编辑区域,在符号上单击鼠标右键,选择Run,执行脚本。 Peek Definition 在代码编辑区域,在符号上单击鼠标右键,选择Peek Definition,可以查看代码的定义。 Peek References 在代码编辑区域,在符号上单击鼠标右键,选择Peek References,可以查看代码的引用。 Rename Symbol 在代码编辑区域,在符号上单击鼠标右键,选择Rename Symbol,可重命名所选符号。 Change All Occurrences 在代码编辑区域,选中一个字符串,单击鼠标右键,选择Change All Occurrences,可以批量修改代码中所有包含该字符串的内容。 Format Document/Format Selection 在代码编辑区域,选择一块代码,单击鼠标右键,选择Format Selection;或者直接在任意位置单击鼠标右键,选择Format Document,可以对代码进行格式化排版。 Fix lint issue 在代码编辑区域,选择一块代码,单击鼠标右键,选择Fix lint issue;或者直接在任意位置单击鼠标右键,选择Fix lint issue,可以对代码进行静态规范错误修复。 Cut/Copy 在代码编辑区域,选择代码单击鼠标右键,选择Copy,可以剪切或者拷贝所选代码。 Command Palette 在代码编辑区域,在符号上单击鼠标右键,选择Command Palette或者按F1,进入命令面板,可以执行很多编辑功能。 图3 命令面板 Hover 把鼠标停留在符号上,可以查看符号的定义概要。再按住Ctrl键,单击符号,可以查看符号更加详细的定义。 例如,鼠标停留在“useObject”上,显示图4所示,可查看其定义概要。按Ctrl键,单击“useObject”,可查看更详细的定义,如图5。 图4 查看定义概要 图5 查看更详细的定义 Bracket matching 高亮显示与选择内容匹配的符号,如{}、()、[]等。 图6 Bracket mathching Errors & Warnings 编辑代码时,如果有语法错误,会在这个语法下面显示红色波浪线,鼠标移动上去,会显示具体错误。 图7 Errors&Warnings Go to Line 按“Ctrl + g”,再输入行号,可以跳转到指定的代码行。 Search and Replace 按“Ctrl + f”,输入关键字,可以搜索当前代码的内容。表示搜索的内容分别支持大小写匹配、全文匹配、正则表达式。 按“Ctrl + h”,输入关键字,可以查找并替换代码中的内容。 Code Complete 全局符号补全 图8 complete_symbol 对象成员补全 图9 complete_member 参数补全 图10 complete_parameter Comment Code 在代码编辑区域,选择一块代码,输入“Ctrl + /”组合键,可以注释或去注释选择的代码块。 Save File 在代码编辑区域,“按Ctrl + s” ,或者单击右上角的保存图标,可以保存脚本。
-
脚本用什么编辑器 低代码平台提供了一个方便简洁的在线开发IDE,即脚本编辑界面,脚本编辑界面开发体验接近离线的开发工具,具有如下优势: 现代化的编辑界面,语法高亮显示。 智能提示、智能补全。 精确查看定义、代码预览、查找引用。 快速在线编译。 友好的语法错误提示。 可以使用console.log,写 日志分析 复杂的问题。 脚本编辑界面如图1所示,您可以在线编辑、测试和发布脚本。 图1 脚本编辑界面 按钮区域 脚本编辑页面常用的图标按钮区,具体功能说明如表1所示。 表1 图标说明 图标 说明 / ,单击即可启用脚本,该图标高亮时,表示当前脚本已被启用。 ,单击即可禁用脚本,该图标非高亮时,表示当前脚本未启用。 说明: 脚本开发完成后,需要启用脚本。只有启用状态的脚本,才能在被其他资源(如服务编排、标准页面)调用时,搜索到。 保存脚本。 另存为脚本。 设置脚本属性,如可见性、是否开启允许覆盖等。 执行脚本。 / 操作回退、撤销回退。 对已开发好的脚本代码进行性能检查、兼容性检查和静态配置检查。 说明: 代码检查的具体操作,请参见脚本性能检查规则。 刷新当前引入的脚本到最新状态。 单击该图标,脚本编辑器可分屏显示。 脚本启用后,单击右上角的,可查看该组件的调用关系图。 说明: 脚本启用后,才会显示该图标。 跳转TS脚本说明书。 版本对比。 切换版本。 代码编辑器 在该区域开发代码,实现功能。代码编辑器提供智能提示、代码补全、显示光标的所在行和列信息等能力,更多介绍请参见AI代码补全功能。 脚本编辑页面同样支持离线编辑器中的常规快捷键操作,例如“Ctrl+S”可以保存当前修改,“Ctrl+H”可以调出查找替换对话框,您也可以根据自己的开发习惯,尝试各种快捷键操作。 测试区 运行代码后的显示区域。在“输入参数”页签输入参数后,单击测试区右侧的运行按钮,运行脚本。即可在“输出参数”页签,查看输出结果是否正确。在“问题”和“日志”页签,查看问题和日志。除此之外,还支持清除日志输出、运行脚本并动态检查和保存输入参数。
-
脚本主要用什么语言和库 低代码平台的脚本引擎采用TypeScript语言。脚本执行时,TypeScript语言会被翻译成JavaScript语言,由JavaScript引擎执行。TypeScript模块import语法,请参考TypeScrip官方网站。 在JavaScript es5的官方标准库外,低代码平台还扩展了10+预置标准库(即预置API),帮助您更高效地开发脚本,有关系统预置的标准库说明请参见脚本中预置的API。 库的使用方法举例: import * as http from 'http';
-
新版应用设计器具备哪些优势 AstroZero提供了新版和经典版两款应用设计器,相比于经典版设计器,新版应用设计器具体如下优势。 极简、易用、高效 图10 新老设计器对比 更合理的空间布局 新版设计器优化了功能入口布局,寻找功能更符合开发者思维习惯。 引导式开发体验 以需求场景为开发起点,一路引导,让开发旅程更顺畅。 降低门槛 持续降低开发门槛,功能更易用。 图形化建模(从设计开始) 图11 图形化建模 改表格式为图形化,模型操作更简单。 模型关系一目了然,不用再为找关系发愁。 简化对象编辑步骤,选择模型即可编辑。 一键添加字段,交互体验更人性化。 设置出厂数据(让复杂场景简单化) 图12 设置出厂数据 出厂数据支持多安装策略,解决传统开发中对实例化数据打包、管理和升级问题,让复杂场景简单化。 一份数据一次配置多次复用灵活按需指定出厂数据。 出厂数据多安装策略,消除传统开发中对实例化数据打包、管理和升级问题。 应用团队协作更灵活 团队协作实现一个租户下有多个开发团队,不同开发团队所拥有的应用之间相互隔离,做到我的应用“我做主”。 图13 团队协作 一键部署触手可及 图14 一键部署 部署操作化繁为简,降低部署门槛,提升部署体验,提供可视化的部署进度和部署结果。 以开发者为中心,化繁为简,降低门槛,屏蔽打包、发布、部署等环节。 打包发布部署一体化,部署进度/结果可视化,简化新手探索过程。 租户级自运维告警 图15 租户级自运维告警 租户级自运维告警构建平台租户E2E运维能力,降低应用维护成本,提高租户应用的高可维护性。 开发者可根据业务需要,自定义告警模板。 业务脚本灵活引用自定义告警。 运维人员可以查看和处理业务告警。 自定义子 域名 图16 域名配置 通过自定义域名,提供安全可靠的内外网访问机制,实现一个运行环境 多个域名 (该特性仅对专享版运行环境灰度开放)。 自定义域名支持SSL证书认证和应用访问控制,保护应用访问安全。 提供安全可靠的内外网访问机制,不同用户不同登录认证。
-
自定义服务编排的URL 参考登录AstroZero新版应用设计器中操作,登录应用设计器。 在左侧导航栏中,选择“集成”。 在开放接口后,单击,进入新建开放接口页面。 设置开放接口参数。 图1 开放接口配置页面 表1 新建开放接口参数说明 参数 说明 标签 输入新建接口的标签,用于在页面展示。 取值范围:1~64个字符。 操作名称 输入新建接口的操作名称。命名要求如下: 长度不能超过40个字符。 名称必须以英文字母开头,只能由英文字母、数字或单下划线组成,且不能以下划线结尾。 版本 URL对应的版本号,如1.0.0。 URL 新URL地址,其中“/service”为固定值,其次是“/App名称/版本号”,剩下部分进行自定义。 自定义的URL需要符合一定规则,规则如下: 必须以单个“/”开头。 可以配置多级路径,两个或者多个“/”之间必须有内容。 内容类型 请求中的body类型。 application/json multipart/form-data binary-data “multipart/form-data”和“binary-data”用于文件上传接口,选择该内容类型,只能调用POST类型的事件。 默认值:application/json。 分类 根据实际需求,在输入框中输入新建接口的分类。 取值范围:1~255个字符。 描述 根据实际需求,在输入框中输入新建接口的描述信息。 取值范围:1~255个字符。 允许匿名访问 是否可匿名访问运行环境中,该API接口。 勾选表示允许匿名访问,通过运行环境子域名访问此接口时,如果无有效的Token认证信息,则以匿名用户身份继续访问此接口,且不需要做 CS RF校验。匿名用户的权限为“Anonymous User Profile”,请确保该权限具备访问该接口的业务权限凭证或者相关资源权限。如当该接口有配置业务权限凭证时,给“Anonymous User Profile”权限添加相应业务权限凭证,即可通过运行环境子域名匿名访问该接口。 说明: 需要支持匿名访问自定义接口的账号,必须要设置运行环境子域名。 带有合法认证信息来访问允许匿名访问的自定义接口时,优先以合法认证的身份权限来访问。 匿名用户身份访问自定义接口,不需要做CSRF校验。 不论以什么方式来访问, 认证身份后做的权限校验保持一致。如果配置了业务权限凭证,还会查看用户权限,是否配置了相应的业务权限凭证。 例如:登录业务应用接口“login”的URL为“/service/命名空间__MyApp/1.0.0/login”,运行环境子域名为“test.example.com”,期望可匿名访问该自定义接口,则配置接口时请勾选“允许匿名访问”,且“Anonymous User Profile”权限配置了该接口的业务权限凭证,则匿名用户通过“https://test.example.com/service/命名空间__MyApp/1.0.0/login”,即可访问该接口。 类型 根据实际需要,选择新建接口的类型。 服务编排:表示该定义URL调用的接口类型是服务编排。 脚本:表示定义URL调用的接口类型是脚本。 对象:表示该定义URL是操作对象数据,包括对象数据的增删改查。 默认值:服务编排,本示例直接使用默认值即可。 自定义响应 是否需要格式化,调用该URL后返回的响应消息。如果勾选,表示对响应消息进行格式化,删除resCode、resMsg、result外层信息,只透传返回的消息。 不勾选“自定义响应”,返回如下响应消息 { "resCode": "0", "resMsg": "成功", "result": [ { "equipments": [ { "createdBy": "aaa", "createdBy.__objectType": "User" }, { "createdBy": "aaa", "createdBy.__objectType": "User" } ], "total": "2" } ] } 勾选“自定义响应”后,只返回如下响应消息 { "equipments": [ { "createdBy": "aaa", "createdBy.__objectType": "User" }, { "createdBy": "aaa", "createdBy.__objectType": "User" } ], "total": "2" } 资源 选择调用的服务编排、事件或操作的对象名称。 对象操作 请选择具体的操作。当“类型”选择为“对象”时,该参数才会显示。 Insert Record:新增对象数据。 Update or Insert Record:更新或者新增对象数据。 Update By ID:按记录ID更新对象数据。 Delete By ID:按记录ID删除对象数据。 Query By ID:按记录ID查询对象数据。 Update By Condition:按条件更新对象数据。 Delete By Condition:按条件删除对象数据。 Query By Condition:按条件查询对象数据。 方法 映射后调用的方法名,如GET(查询)、PUT(增加)、POST(修改)和DELETE(删除)等。 输入参数/输出参数 展示服务编排的入参、出参,同时支持修改未受保护资源的参数描述。由于开发人员在开发服务编排过程中,可能未设置或未精确添加参数的描述信息,导出自定义接口的yaml描述文档时对参数的描述就会缺失或模糊。在开放接口二次封装服务编排时,可对参数描述进行编辑补充。 当“类型”选择为“服务编排”时,该参数才会显示。 设置完成后,单击“保存”。 保存后,进入接口详情页。在接口详情页的“基本信息”区域,勾选“是否已废弃”后,可配置是否推荐使用该接口。如果不推荐使用,勾选“是否已废弃”,勾选后,在后续使用到该接口时,会显示该接口“已废弃”的提示,但接口仍可被调用。 接口创建完成后,支持在线进行测试。 在应用开发设计器左侧的导航栏中,选择“集成”。 在开放接口中,将鼠标放在对应的接口上,单击,选择“查看”,进入接口预览页面。 在接口预览页面,单击URL后的。 图2 预览页面 单击“测试一下”,如果有输入参数,设置输入参数后,单击“执行”。 返回成功响应,表示接口调用成功 。
-
使用自定义错误码 自定义错误码创建完成后,可在脚本中使用。在脚本中,调用抛出错误信息的error函数I18nError('ErrorCodeName','变量1','变量2')。该函数中,输入参数为错误码名称“t__testErrorCode”和错误码信息中所携带的变量("val1"和"val2")。 创建脚本。 参考创建空白AstroZero脚本中操作,创建一个空白脚本。 在脚本编辑器中,输入如下代码。 // test custom error func , get diff language error by user lang import * as error from 'error'; export class TestDemo { @action.method({ label: 'test', description: 'error code', input: 'No input', output: 'No output' }) public test() { //使用I18nError函数设定错误码和错误码信息携带变量 throw new error.I18nError('t__testErrorCode', ["val1", "val2"]); } } 其中,“t__testErrorCode”为自定义错误码名称,请根据实际情况配置。 单击,保存脚本后,单击,启用脚本。 按照定义API接口中操作,绑定上述开发的脚本,进行测试。 图3 自定义错误信息测试
-
什么是定时任务 业务系统中通常存在很多场景不需要人工参与,可以在系统后台定期完成的任务。例如,系统中存在一个定时任务,在每天凌晨3点,定时将到期的商品进行下架处理。系统提供自定义定时任务,您可以根据业务需求进行在线创建、查看、删除定时任务并监控任务执行的结果。 除了在应用开发时创建定时任务,您还可以在环境配置中创建定时任务,详情请参见管理应用中的定时任务。两者的区别是在应用开发设计器中创建的定时任务,可在打包发布应用时,将定时任务一起打包发布出去。在环境配置中创建的定时任务,无法随应用发布出去。
-
创建定时任务 参考登录AstroZero新版应用设计器中操作,登录应用设计器。 在左侧导航栏中,选择“流程”。 (可选)单击定时任务后的,为定时任务添加目录。 定时任务默认存放在根目录下,在创建定时任务前,您可以先创建定时任务存放的目录,也可以在定时任务创建后将其拖拽到指定目录。 将鼠标放在已创建的定时任务目录上,单击,进入新建定时任务页面。 如果未创建定时任务目录,请直接单击定时任务后的,进入新建定时任务页面。 配置定时任务,单击“保存”。 例如,创建一个定时任务“OfferingOffline”,用于实现从2021-11-25开始,每天零点自动将过期商品下架。其中,将过期商品下架的功能由“OfferingOffline”脚本实现。在创建定时任务之前,需要先开发实现定时任务功能的脚本。如何开发脚本,请参见脚本。 图1 配置定时任务 表1 定时任务参数说明 参数 说明 名称 输入定时任务的名称。命名要求如下: 长度不能超过64个字符,包括前缀命名空间的长度。 说明: 名称前的内容为命名空间,在AstroZero中为了避免不同租户间数据的重名,租户在首次创建应用时需要先定义一个命名空间。一个租户只能创建一个命名空间,创建后不支持修改。 必须以英文字母开头,由英文字母、数字或下划线组成,且不能以下划线结尾。 示例:OfferingOffline。 类型 选择定时任务执行的类型,支持脚本或服务编排。 脚本:使用脚本,开发实现定时任务的功能。 服务编排:使用服务编排,开发实现定时任务的功能。 示例:脚本。 服务编排/脚本 选择定时任务执行的脚本或服务编排,请确保脚本和服务编排已启用,否则在此处无法选择到。 示例:OfferingOffline。 任务首次执行时间 设置定时任务首次执行的时间。 示例:2021-11-25 00:00:00。 执行次数 设置定时任务执行的次数。 仅执行一次。 按设置的频率执行多次。 示例:按设置的频率执行多次 执行周期 “执行次数”配置为“按设置的频率执行多次”时,需要设置定时任务的执行周期。 示例:1。 执行周期单位 “执行次数”配置为“按设置的频率执行多次”时,需要设置执行任务时间的间隔单位。 示例:天。 描述 请根据实际需求,在输入框中输入定时任务的描述信息。 取值范围:1~255个字符。
-
在脚本中,调用动作 创建一个脚本,通过在脚本中调用Rest服务中添加的动作,将第三方提供的业务功能集成到AstroZero中使用。 参考登录AstroZero新版应用设计器中操作,登录应用设计器。 在左侧导航栏中,选择“逻辑”。 单击脚本后的,设置脚本名称,单击“添加”。 图11 新增一个空脚本 在脚本编辑器中,输入如下代码。 // Here's your code. import * as connector from "connector"; let client = connector.newClient("命名空间__test", "test1"); let result = client.invoke("命名空间_flapRefund", {}); console.log(result) 其中,“命名空间__test”表示连接器的名称,“test1”为创建自定义连接器对接Rest服务配置的认证信息名称,“命名空间__flapRefund”为创建并启用Rest动作中配置的动作名称。 单击脚本编辑器页面上方的,保存脚本。 脚本保存成功后,单击,运行脚本。 在页面底部“输入参数”页签中,输入请求参数,单击测试窗口右上角的。 在“日志”页签,查看打印的日志。
-
在已有服务编排基础上新建服务编排 需要开发的新服务编排与已有的某个服务编排类似,此时可以基于原有服务编排修改,再保存为新的服务编排。在此场景下,原有服务编排仍然有效。新服务编排和老服务编排也没有关联关系,各自独立。 参考登录AstroZero新版应用设计器中操作,登录应用设计器。 在左侧导航栏中,选择“逻辑”。 将鼠标放在对应的服务编排上,单击,选择“编辑”,进入服务编排设计页面。 在服务编排设计页面上方,单击,进入另存为页面。 “类型”选择“新服务编排”,设置服务编排标签,单击“保存”。 图3 另存为新服务编排 表2 另存为新服务编排参数说明 参数 说明 标签 服务编排的标签,用于在页面展示,创建后可修改。 取值范围:1~64个字符。 名称 服务编排在系统中的唯一标识,创建后不支持修改。系统会自动在名称前添加“{命名空间}__”,当其他功能调用服务编排时,调用的是服务编排的名称,而不是标签。 命名要求如下: 长度不能超过64个字符,包括前缀命名空间的长度。 说明: 名称前的内容为命名空间,在AstroZero中为了避免不同租户间数据的重名,租户在首次创建应用时需要先定义一个命名空间。一个租户只能创建一个命名空间,创建后不支持修改。 名称必须以英文字母开头,只能由英文字母、数字或单下划线组成,且不能以下划线结尾。 类型 在下拉框中,选择服务编排另存的类型。 新版本:基于原有服务编排创建一个新版本的服务编排,创建后原有服务编排作为老版本自动失效。 新服务编排:基于原有服务编排创建一个新的服务编排。创建后原有服务编排仍然有效。新服务编排和老服务编排也没有关联关系,各自独立。 默认值:新版本,此处请选择“新服务编排”。 服务编排类型 继承创建基础服务编排时配置的类型,不可更改。 展示标签 服务编排实例的展示标签,系统自动填充为“标签值{!$Flow.CurrentDateTime}”。设置后,单击服务编排设计页面的空白处,再单击,在“基本信息”中可查看到设置的标签。 描述 根据实际需求,输入服务编排的描述信息。 取值范围:1~255个字符。 在服务编排设计页面,进行定制修改。 在服务编排设计页面,可查看到新建的服务编排,且版本为1.0.1。 图4 编辑新服务编排的内容 服务编排定制完成后,单击页面上方的,保存服务编排。 保存成功后,单击,运行服务编排,检查服务编排运行结果是否符合预期。 符合预期后,单击页面上方的,启用服务编排。
-
在已有服务编排基础上新建版本 因业务需要,服务编排要实现的能力发生了变化,此时可以基于原有服务编排修改,并保存为服务编排的新版本。在此场景下,原有服务编排作为老版本自动失效。 参考登录AstroZero新版应用设计器中操作,登录应用设计器。 在左侧导航栏中,选择“逻辑”。 将鼠标放在对应的服务编排上,单击,选择“编辑”,进入服务编排设计页面。 在服务编排设计页面上方,单击,进入另存为页面。 “类型”选择“新版本”,设置服务编排标签,单击“保存”。 图1 另存为新版本 表1 添加新版本服务编排参数说明 参数 说明 标签 输入新版本服务编排的标签名,用于在界面展示,创建后支持修改。 取值范围:1~64个字符。 名称 服务编排的名称,和基线版本的服务编排名称保持一致,不可更改。 类型 在下拉框中,选择服务编排另存的类型。 新版本:基于原有服务编排创建一个新版本的服务编排,创建后原有服务编排作为老版本自动失效。 新服务编排:基于原有服务编排创建一个新的服务编排。创建后原有服务编排仍然有效。新服务编排和老服务编排也没有关联关系,各自独立。 默认值:新版本,此处直接使用默认值即可。 服务编排类型 继承创建基础服务编排时配置的类型,不可更改。 展示标签 服务编排实例的展示标签,系统自动填充为“标签值{!$Flow.CurrentDateTime}”。设置后,单击服务编排设计页面的空白处,再单击,在“基本信息”中可查看到设置的标签。 描述 根据实际需求,输入新版本服务编排的描述信息。 取值范围:1~255个字符。 在服务编排设计页面,进行定制修改。 在服务编排设计页面,可查看到服务编排当前的版本为1.0.2,即在原有服务编排版本的基础上自动加“1”。 图2 新版本服务编排 编辑完成后,单击页面上方的,保存服务编排。 保存成功后,单击,运行服务编排,检查服务编排运行结果是否符合预期。 单击页面上方的,启用新版本服务编排。 在此方式下,当基线版本升级时,系统默认启用和使用服务编排的定制版本。升级造成的基线服务编排原有图元变化,定制服务编排可继承。升级造成的基线服务编排新增图元,定制服务编排无法继承。
-
操作场景 在如下两个场景,可以基于已有服务编排,创建新服务编排: 场景1:在已有服务编排基础上新建版本。 因业务需要,服务编排要实现的能力发生了变化,此时可以基于原有服务编排修改,并保存为服务编排的新版本。在此场景下,原有服务编排作为老版本自动失效。 场景2:在已有服务编排基础上新建服务编排。 需要开发的新服务编排与已有的某个服务编排类似,此时可以基于原有服务编排修改,再保存为新的服务编排。在此场景下,原有服务编排仍然有效。新服务编排和老服务编排也没有关联关系,各自独立。
-
操作场景 在AstroZero中新添加的业务用户,若没有配置指定的权限,默认使用系统预置的Portal User Profile权限。若默认Portal User Profile权限不能满足需求,即业务用户需要额外的权限时,可参照本章节对业务用户进行权限配置。 在AstroZero中,修改业务用户权限有如下两种方式: 方式一:修改系统预置的权限Portal User Profile 权限配置Portal User Profile是全局的,修改Portal User Profile权限会影响系统所有的应用。 方式二:新建权限配置 在预置的Portal User Profile权限基础上,自定义业务用户的权限配置和拓展。在AstroZero的权限配置功能中,基于某个权限配置新建的Profile,将会继承原Profile的全部权限。
-
创建高级页面 参考登录AstroZero新版应用设计器中操作,登录应用设计器。 在左侧导航栏中,选择“界面”。 (可选)单击高级页面后的,为高级页面添加目录。 高级页面默认存放在根目录下,在创建高级页面前,您可以先创建高级页面存放的目录,也可以在高级页面创建后将其拖拽到指定目录。 将鼠标放在已创建的高级页面目录上,单击,进入添加高级页面。 如果未创建高级页面目录,请直接单击高级页面后的,进入添加高级页面。 设置高级页面的基本信息,单击“添加”。 图1 新建高级页面 表1 高级页面参数说明 参数 说明 标签 输入高级页面的标签名,用于在页面显示,创建后可修改。 取值范围:1~100个字符。 名称 输入高级页面的名称,名称是高级页面在系统中的唯一标识,创建后不可修改。命名要求如下: 长度范围为1~100个字符。 必须以英文字母开头,只能由英文字母、数字或单下划线组成,且不能以下划线结尾。 视图 为了让同一页面能够更好的呈现于电脑端和移动端,低代码平台提供了高级页面的电脑端和移动端两种终端视图,用户可分别对高级页面的电脑端和移动端进行定制开发。开发完成后发布生成的高级页面为同一URL,当电脑端或移动端加载这一URL时,平台会自动检测用户所用的设备类型并加载相应视图页面。 默认为电脑端和手机端全部选中。 说明: 在应用中,首次创建高级页面时,才会显示“视图”参数。如果应用中已存在高级页面,则不会显示该参数。 描述 根据实际需求,在输入框中输入高级页面的描述信息。 取值范围:1~255个字符。 关键字 为了便于搜索高级页面,可以在此处自定义一些关键字。 布局类型 在AstroZero中创建高级页面时,提供了两种布局模式的页面布局供您选择,请按需进行选择。 绝对布局:在绝对布局中,每个组件可在页面中任意位置进行拖拽放置,组件的宽高可自定义设置。绝对布局常用于大屏页面的开发。 流式布局:在流式布局中,拖拽到页面中的组件,将根据从上到下、从左到右的顺序依次排列,组件的高度将根据组件内容大小进行自适应,宽度可按百分比进行配置。流式布局常用于常规Web应用开发,例如电商网站、管理网站等。 开发高级页面。 下面以开发一个绝对布局的高级页面为例,向您如何使用AstroZero快速开发一个高级页面。 图2 绝对布局类型高级页面组件布局示例 如上图所示,示例页面中包含文本编辑、基本柱图和多区域折线图三个组件。 在高级页面右上方,单击,设置背景图片。 图3 设置页面背景色示例 查找并拖入该页面中包含的组件(1个文本编辑、1个基本柱图和1个多区域折线图),通过拖拽进行位置、大小调整。 图4 拖拽所需的组件到画布中 设置文本编辑组件内容为“绝对布局类型高级页面”,字号为“大号”。 图5 设置文本编辑组件内容 通过组件属性,精确设置组件大小。 本例中,设置组件宽度为600px、高度为350px。 图6 精确设置组件大小 复制组件。 将上图左侧组件逐个复制,并将其拖拽到右侧,通过对齐提示线将其与左侧组件对齐。 图7 复制组件 单击页面上方的,保存页面。 单击,预览高级页面,查看当前页面在运行态的效果。 图8 预览高级页面
-
在脚本中调用连接器 在脚本中,调用已创建的连接器,实现与Message& SMS 的对接。 参考创建空白AstroZero脚本中操作,创建一个空白脚本。 在脚本编辑器中,输入如下代码。 //导入该事件所依赖的标准库文件。msgsms是系统预置的标准库。 import * as sms from 'msgsms'; @action.object({type: "method"}) export class ActionDemo { @action.method({ label: 'greeting something', description: 'greeting something.', input: 'ActionInput', output: 'ActionOutput' }) public greet(){ console.log('`````````````````````test new sms`````````````````````') let client = sms.newClient("MSGSMS_Test") let res = client.sendByName("Test1","130XXXXXXXX","[\"6612\"]") console.log(res) console.log('`````````````````````test new sms end`````````````````````') } } 其中,sms.newClient("MSGSMS_Test")中“MSGSMS_Test”为连接器的名称。client.sendByName("Test1","130XXXXXXXX","[\"6612\"]")中携带的是模板名称、接收者号码和模板参数。 单击脚本编辑器页面上方的,保存脚本。 保存成功后,单击,运行事件。 在页面底部,单击测试窗口右上角的。 检查接收者是否收到短信,收到短信表示成功调用连接器。 单击编辑器页面上方的,启用脚本。
-
使用错误码 在应用开发时,用户也可以根据需要在应用开发设计器中,导入账号下其他的错误码。导入后,可在应用开发设计器中,使用该错误码。以在“A”应用为例,介绍如何导入错误码。 参考登录AstroZero新版应用设计器中操作,进入“A”应用设计器。 在左侧菜单栏中,选择“逻辑”,单击页面下方的“自定义错误码”。 图2 选择自定义错误码 在自定义错误码页签,单击“导入”,选择账号下已有的错误码进行导入。 在脚本中,使用错误码。 这里通过新建脚本,将上文创建的错误码抛出,在脚本中增加抛出错误信息的context函数setI18nError('错误码名称','变量1','变量2')为例。 参考创建空白AstroZero脚本中操作,创建一个空白脚本。 在脚本编辑器中,录入如下代码,并单击上方按钮区域的,保存脚本。 import*as context from'context'; context.setI18nError('命名空间__Error001','测试用例','脚本使用错误码的用例解读') 测试执行脚本。 单击编辑器上方的执行图标,在页面底部,单击测试窗口右上角的。在“输出参数”页签,显示如图3所示,可查看到抛出的错误码信息。 图3 运行脚本后显示界面 单击脚本编辑器上方的,启用脚本。 参考创建空白AstroZero服务编排中操作,创建服务编排时可使用错误码。 在“全局上下文”中,新建公式变量,使用表达式SETI18NERROR(ErrorCodeName','变量1','变量2')方式引入错误码。 图4 服务编排中使用错误码 目前工作流中的错误码,由工作流调用的脚本和服务编排抛出。
-
操作场景 调用接口出错后,用户可根据每个接口对应的错误码来定位错误原因。AstroZero支持用户自定义错误码,并支持对错误码描述进行多语言国际化配置,实现根据语言的不同将错误码描述信息进行不同的展示。 除了在环境配置中设置错误码,用户还可以在应用开发设计器中设置错误码,详情请参见自定义AstroZero接口错误码。两者的区别是在应用开发设计器中配置的错误码,可在打包发布应用时,将错误码一起打包发布出去。例如将应用打包发布到运行环境,错误码也会同步打包到运行环境,不需要在运行环境重复创建。在环境配置中设置的错误码,无法随应用发布出去。
-
在脚本中调用连接器 在脚本中,调用已创建的连接器,实现与SMTP的对接。 参考创建空白AstroZero脚本中操作,创建一个空白脚本。 在脚本编辑器中,输入如下代码。 // 导入连接器 import * as connector from 'connector'; //新建SMTP邮件连接器,第一个参数固定是emailsmtp,第二个参数是连接器的名称 let client = connector.newClient("emailsmtp","命名空间__smtp01"); //构建请求消息头,包括收件人地址、邮件主题、邮件正文(主题和正文不能同时为空) //按内容发送 let req ={"address":"test@example.com","subject":"SMTP功能验证-事件","body":"使用SMTP发送邮件"}; //按模板发送,如果有template模板参数,则主题和正文配置无效,按邮件模板中的内容发送 //let req={"address":"test@example.com","template":"smtptt1."} //发送邮件,其中第一个参数不用填写,第二个参数为消息体 let resp = client.invoke("",req); 其中,connector.newClient中“命名空间__smtp01”为连接器的名称,“address”为收件人,“subject”为主题,“body”为邮件内容。 单击脚本编辑器页面上方的,保存脚本。 保存成功后,单击,执行脚本。 2中已设置入参,故此处不需要再设置,直接单击测试窗口右上角的。 检查收件人是否收到邮件。 收到邮件,表示成功调用连接器,如图5。 图5 接收邮件内容 单击脚本编辑器页面上方的,启用脚本。
-
结果验证 通过服务编排订阅“EmployResultNotify”事件后,招聘经理需要给出招聘结果,即给“Result”赋值后,人事部经理才会收到招聘者是否被录用的邮件通知。即需要设置发送事件,订阅者才可以接收事件。 本章节通过单独创建一个服务编排,来给应聘者Lily的应聘结果“Result”赋值,模拟事件发送。 参考创建服务编排中操作,创建一个服务编排。 图8 新建服务编排SendEvent 在服务编排设计页面左侧,选择“基本”,拖拽“发送事件”图元至画布中。 Send Event为系统提供的,发送事件接口。 图9 拖拽发送事件图元至画布中 配置发送事件图元。 以应聘者Lily被成功录用为例,在“全局上下文”中,单击“变量”后的加号,新增变量,设置发送事件参数。 单击,进入全局上下文页面,新建一个变量variable0。 图10 新增一个变量 选中发送事件图元,单击,设置基本信息。 图11 设置发送事件基本信息 单击,设置发送事件。 图12 发送事件配置页面 表3 发送事件参数说明 参数 说明 事件 选择待发送的事件,本示例选择创建AstroZero自定义事件中创建的事件。 分区字段 从事件中,选择一个自定义参数,用作Kafka的分区字段。设置后,会根据该字段值进行路由,相同的值将路由到同一个Kafka分区。如果不指定,则默认随机路由到不同Kafka分区,从而提升并发处理性能。 发送到外部 系统内部有配置与AstroZero相连Kafka的固定Topic(__BINGO_SYS_TOPIC)。 不勾选,表示将事件数据发到默认的Topic上。 勾选,表示将事件数据发送到与AstroZero相连Kafka的其他Topic上。 默认为不勾选。 延迟到事务结束(提交或回滚)后才发送 是否延迟到该服务编排事务结束后,才发送事件。 默认为不勾选。 目标/源 该事件自定义的参数取值,请单击“新增行”,进行添加并赋值。 连接开始和发送邮件图元。 图13 连接图元 在服务编排设计页面上方,单击,保存服务编排。 保存成功后,单击,运行服务编排。 设置输入参数,单击“运行”,运行后,才能发送该事件。 邮件接收者,收到邮件,验证成功。 图14 发送事件
-
通过服务编排订阅事件 参考创建服务编排中操作,新建一个服务编排。 图1 添加服务编排 表1 新建服务编排参数说明 参数 说明 标签 新建服务编排的标签名,用于在页面展示。 取值范围:1~64个字符。 示例:EmployResultNotifySubscription。 名称 名称为服务编排在系统中的唯一标识,创建后不可修改。要求如下: 长度不能超过64个字符,包括前缀命名空间的长度。 说明: 名称前的内容为命名空间,在AstroZero中为了避免不同租户间数据的重名,租户在首次创建应用时需要先定义一个命名空间。一个租户只能创建一个命名空间,创建后不支持修改。 名称必须以英文字母开头,只能由英文字母、数字或单下划线组成,且不能以下划线结尾。 示例:EmployResultNotifySubscription。 类型 请在下拉列表中,选择新建服务编排的类型。取值如下: Autolaunched Flow:自启动服务编排,即在接口调用后,会立即执行服务编排中定义的逻辑。 Event Trigger:事件触发的服务编排,在事件触发时,才会开始执行服务编排中定义的逻辑。 示例:Event Trigger。 事件 选择在服务编排中订阅的事件,即创建AstroZero自定义事件中创建的事件,请确保事件已启用。 描述 请根据需要,在文本框中输入该服务编排的描述信息。 取值范围:1~255个字符。 在服务编排设计页面左侧,选择“逻辑”,拖拽“决策”图元至画布中。 该图元类似“if”语句的判断,用于在服务编排流程中创建判断条件,根据判断结果连线其他图元,决定后续执行何种操作。本示例需要设置应聘者被成功录用、应聘者没被录用和其他三个判断分支。 图2 拖拽决策图元至画布中 选中决策图元,单击,设置分支条件参数。 图3 pass分支条件配置 图4 unpass分支条件配置 可编辑的结果,即所有的判断条件。系统已预置默认条件,即当其他所有条件均不满足情况下,进入该分支。 本示例,需要新增如下两个判断条件: Pass:应聘者被录用。应聘通过时,事件中自定义的布尔类型参数“Result”赋值为全局常量“{!$GlobalConstant.True}”,表示结果为真,即应聘通过。 Unpass:应聘者没有被录用。应聘失败时,事件中自定义的布尔类型参数“Result”赋值为全局常量“{!$GlobalConstant.False}”,表示结果为假,即应聘失败。 在服务编排设计页面左侧,选择“基本”,拖拽“发送邮件”图元至画布中。 发送邮件是发送邮件的接口。本示例中,需要根据录用结果,发送不同的邮件给人事部。 录用成功,需要邮件通知人事部办理入职。 录用不成功,需要邮件通知人事部告知应聘者应聘失败。 事件超时(默认分支),需要邮件通知招聘经理,看其是否给出招聘结果。 如下图所示,以应聘者被成功录用为例,设置发送邮件参数。 选中发送邮件图元,单击,设置基本信息。 图5 设置邮件发送基本信息 单击,设置邮件发送参数。 图6 配置邮件发送参数 表2 邮件发送参数说明 参数 说明 邮件配置 可选择“直接编辑”手动设置邮件信息或“基于模板”选择邮件模板。 示例:直接编辑。 主题 请根据需要,在输入框中输入邮件的标题。 示例:Interview Result。 内容 设置邮件的内容,需要使用事件变量“命名空间_EmployResultNotify__e”,请直接从变量中拖入。 地址 接收人的邮箱地址。 文本:表示直接输入。 集合:表示可以拖入一个集合变量。 示例:文本,即直接输入邮件接收人的地址。 参考5中操作,设置应聘者录用失败和超时邮件发送。 如图7所示,连接所有元素。 图7 连接并设置起始元素 在服务编排设计页面上方,单击,保存服务编排。 保存成功后,单击,启用服务编排。 启用后,当有“EmployResultNotify”事件触发时,即会执行服务编排中定义的逻辑。
-
操作场景 API Explorer 是华为云为开发者提供的一站式API解决方案的统一平台,集成华为云云服务开放API,支持全量快速检索、可视化调试、帮助文档,帮助开发者快速查找、学习API和定位修复错误。 AstroZero通过对接API Explorer,可获取到大量华为云云服务的API元数据信息,从而为开发者提供访问这些API的连接器,无需再针对每个云服务单独开发连接器。 AstroZero当前支持对接如下云服务的API,本章节以 自然语言处理 为例,向您介绍如何使用华为云API Explorer导入连接器。 自然语言处理 自然语言处理(Natural Language Processing,简称NLP)是一款基于人工智能技术,针对各类企业及开发者提供的用于文本分析及挖掘的云服务,旨在帮助用户高效的处理文本。更多介绍,请参见https://support.huaweicloud.com/nlp/index.html。 对话机器人服务 对话机器人 服务(Conversational Bot Service) 是一款基于人工智能技术,针对企业应用场景开发的云服务,主要包括智能问答、智能质检、定制对话机器人和任务型对话等功能。更多介绍,请参见https://support.huaweicloud.com/cbs/index.html。 人脸识别服务 人脸识别 服务(Face Recognition Service,简称FRS),是基于人的脸部特征信息,利用计算机对人脸图像进行处理、分析和理解,进行身份识别的一种智能服务。更多介绍,请参见https://support.huaweicloud.com/face/index.html。 内容审核 服务 内容审核( Content Moderation ),基于图像、文本、 视频审核 技术,可自动进行涉黄、广告、涉政涉暴、涉政敏感人物等内容检测,帮助客户降低业务违规风险。更多介绍,请参见https://support.huaweicloud.com/moderation/index.html。 文字识别 服务 文字识别(Optical Character Recognition,简称OCR)以开放API的方式提供给用户,用户使用Python、Java等编程语言调用OCR服务API将图片识别成文字,帮助用户自动采集关键数据,打造智能化业务系统,提升业务效率。更多介绍,请参见https://support.huaweicloud.com/ocr/index.html。 图像识别服务 图像识别(Image Recognition),基于深度学习技术,可准确识别图像中的视觉内容,提供多种物体、场景和概念标签,具备目标检测和属性识别等能力,帮助客户准确识别和理解图像内容。更多介绍,请参见https://support.huaweicloud.com/image/index.html。 图像搜索 服务 图像搜索(ImageSearch)基于深度学习与图像识别技术,结合不同应用业务和行业场景,利用特征向量化与搜索能力,帮助客户从指定图库中搜索相同或相似的图片。更多介绍,请参见https://support.huaweicloud.com/imagesearch/index.html。 视频接入服务 视频接入 服务(Video Ingestion Service,简称VIS)是华为云提供的实时视频 数据接入服务 ,提供了摄像头视频数据采集、实时数据分发和视频数据转储等能力。借助视频接入服务,您可以与华为云视频分析服务集成,快速构建基于实时视频数据的智能分析应用。更多介绍,请参见https://support.huaweicloud.com/vis/index.html。 视频分析服务 视频分析服务(Video Analysis Service,简称VAS)依靠AI技术对视频进行智能分析,提供了视频预处理、视频审核、视频内容分析、 视频编辑 、视频搜索、 视频指纹 等功能。包含了对视频中目标的检测、跟踪、属性识别、行为识别、内容审核、摘要、标签等能力,在多种场景下为用户提供快捷高效的视频分析能力。更多介绍,请参见https://support.huaweicloud.com/vias/index.html。 语音交互 服务 语音交互服务(Speech Interaction Service,简称SIS)是一种人机交互方式,用户通过实时访问和调用API(Application Programming Interface,应用程序编程接口)将 语音识别 成文字或者将文本转换成逼真的语音等。更多介绍,请参见https://support.huaweicloud.com/sis/index.html。
-
购买沙箱 以创建用户并授权使用AstroZero中创建 IAM 用户进入购买Astro轻应用沙箱实例页面。 申请免费试用AstroZero或购买商用实例后,AstroZero服务控制台才会显示“购买沙箱”入口。AstroZero四种规格实例,均支持购买沙箱。 在购买AstroZero实例页面,设置对应参数,单击“立即购买”。 图1 购买沙箱 表1 购买沙箱参数说明 参数 说明 实例版本 待购买实例的版本,请选择“测试沙箱环境”。 实例名称 新建实例的名称,同一账号下实例不可重名,创建后不可修改。命名要求如下: 长度为4~64个字符。 必须以英文字母开头,只能英文字母、数字或下划线组成。 数量 输入购买沙箱的个数,一次性最多支持购买5个,可进行多次购买。 规格说明 AstroZero沙箱实例规格说明,详细介绍请参见产品规格差异。 购买时长 设置沙箱的购买时长,最短1个月,最长3年。 在购买Astro轻应用页面,确认支付方式,单击“去在线支付”。 图2 支付订单 支付成功后,单击“返回Astro轻应用控制台”,即可进入AstroZero服务控制台。 进入AstroZero沙箱环境。 创建功能调试沙箱实例预计需要几分钟,请耐心等待。创建成功后,控制台会显示已成功购买的沙箱环境实例,单击相应沙箱环境实例的“管理沙箱环境”,即可进入相应环境。
-
创建对象变量/结构体变量/事件变量 对象变量用于在服务编排中引用或操作特定的对象实例,用于较简单的业务流程中。结构体变量允许将多个不同类型的数据项进行组合,通常用于较复杂的业务流程中。事件变量用于表示系统或业务流程中发生的事件,事件可以是系统内部产生的,也可以是外部触发的。 在服务编排设计器右侧,选择。 在全局上下文页面,单击“对象变量”后的。 设置页面参数,以创建对象变量为例进行介绍。 图18 配置对象变量 表5 对象变量参数说明 参数 说明 名称 输入新建对象变量的名称,名称是变量在流程中引用的唯一标识。修改变量名不会改变图元中的引用,但是会导致流程不可用。 对象 请直接在下拉框中,选择具体的对象。选择“对象”类型时,该参数才会显示。 全局结构体 请直接在下拉框中,选择具体的全局结构体。选择“全局结构体”类型时,该参数才会显示。 私有结构体 请直接在下拉框中,选择具体的私有结构体。选择“私有结构体”类型时,该参数才会显示。 事件 请直接在下拉框中,选择具体的事件。选择“事件”类型时,成员变量为事件的自定义字段,不包括系统预置的标准字段。选择“事件”类型时,该参数才会显示。 默认值 请直接输入变量的默认值或从下拉框中选择。 描述 请根据实际需求,输入变量的描述信息。 取值范围:1~255个字符。 是否为数组 是否为数组变量,即集合变量。 默认为不勾选。 外部使用 勾选该选项,表示该变量为外部使用变量,编译时不校验其是否被使用。 默认为不勾选。
-
创建私有结构体 服务编排中如果涉及复杂的结构体参数,可以先创建全局或私有结构体,并用作参数类型。创建全局结构体和私有结构体后,再参考创建对象变量/结构体变量/事件变量中操作,创建全局结构体变量和私有结构体变量,作为服务编排的参数类型。 在服务编排设计器右侧,选择,在私有结构体页面单击“新增”。 该“私有结构体”页面有两个“新增”按钮,单击上面的“新增”按钮,是通过设置页面参数新建私有结构体。单击下面的“新增”按钮,是通过输入JSON Schema类型的数据源码定义私有结构体。 图13 添加私有结构体类型 (如果上一步单击“私有结构体”页面上方的“新增”按钮,请执行该步骤)设置页面参数。 在“基本信息”中,输入结构体名字、描述信息。 在“结构体成员”中,设置自定义成员变量,包括设置成员变量的名称、数据类型、是否必填、是否是集合和描述信息等。单击“新增”,可增加成员变量,支持设置全局结构体或私有结构体成员变量。当私有结构体的成员变量包含结构体类型时,您需要提前定义成员结构体。例如,下图中成员变量“hobby”为私有结构体类型,需要提前创建“create”私有结构体。 图14 配置私有结构体 (如果上一步单击“私有结构体”页面下方的“新增”按钮,请执行该步骤)在“创建JSON Schema”页面中,定义结构体名称,在“JSON源码”中输入数据源码,单击,系统会进行校验,转换成服务编排中的结构体类型,单击“保存”。 图15 创建JSON Schema 数据源码示例如下: { "name": "xiaoming", "age": 18, "father": { "name": "daliu", "gender":"male" }, "brother": { "name": "xiaolei", "gender":"male" } } 创建成功后,页面显示如下。 图16 创建成功 该方式创建的结构体中,包含成员结构体时,成员结构体具体定义不会在界面显示,且其他结构体不可引用。 JSON结构体支持嵌套,例如上述创建的“family”结构体,在“JSON Schema结构体”区域再次单击“新增”,新增“company”结构体,里面“ceo”嵌套引用“family”结构体,如下图所示,在定义结构体输入值时,您可以输入“$”符号,选择当前服务编排中的其它结构体进行嵌套引用。 图17 引用其他结构体
-
创建公式变量 在服务编排中,公式变量主要用于变量赋值、表达式计算、参数传递等。 在服务编排设计器右侧,选择。 在全局上下文页面,单击“公式”后的。 设置页面参数,单击“保存”。 图12 配置公式变量 表4 公式变量参数说明 参数 说明 名称 输入新建公式变量的名称。 数据类型 公式变量的数据类型,直接在下拉框中选择即可,默认为“文本”类型。 描述 根据实际需求,输入公式变量的描述信息。 外部使用 勾选该选项,表示该变量为外部使用变量,编译时不校验其是否被使用。 默认为不勾选。 表达式 设置新增变量的表达式。如果表达式中需要运用公式,可根据需要双击“公式”区域中系统预置的公式,该公式会显示在右侧“表达式”区域中。当表达式中需要有变量参数时,可从变量区域中直接选择变量拖入到表达式中。
-
创建常量 编排服务流程或交互时,不会改变的值或参数,通常定义为常量,例如服务标识、访问地址和错误码等。 在服务编排设计器右侧,选择。 在全局上下文页面,单击“常量”后的。 单击新增常量后的“...”,选择“设置”。 设置页面参数,单击“保存”。 图11 配置常量 表3 常量参数说明 参数 说明 名称 新建常量的名称,名称是变量在流程中引用的唯一标识。修改变量名不会改变图元中的引用,但是会导致流程不可用。 数据类型 常量的数据类型,直接在下拉框中选择即可,默认为“文本”类型。 值 新建常量的取值,字符串常量输入需要用双引号括起来,例如“"abc"”。 描述 根据实际需求,输入变量的描述信息。 外部使用 如果勾选该选项,表示该变量为外部使用变量,编译时不校验其是否被使用。 默认为不勾选。
-
创建服务编排 参考登录AstroZero新版应用设计器中操作,登录应用设计器。 在左侧导航栏中,选择“逻辑”。 (可选)单击编排后的,为服务编排添加目录。 服务编排默认存放在根目录下,在创建服务编排前,您可以先创建服务编排存放的目录,也可以在服务编排创建后将其拖拽到指定目录。 将鼠标放在已创建的服务编排目录上,单击,进入“添加服务编排”页面。 如果未创建服务编排目录,请直接单击编排后的,进入添加服务编排页面。 设置参数,单击“添加”。 图1 创建服务编排 表1 添加服务编排参数说明 参数 说明 标签 新建服务编排的标签名,用于在界面展示,创建后可修改。 取值范围:1~64个字符。 名称 服务编排在系统中的唯一标识,创建后不支持修改。系统会自动在名称前添加“{命名空间}__”,当其他功能调用服务编排时,调用的是服务编排的名称,而不是标签。 命名要求如下: 长度不能超过64个字符,包括前缀命名空间的长度。 说明: 名称前的内容为命名空间,在AstroZero中为了避免不同租户间数据的重名,租户在首次创建应用时需要先定义一个命名空间。一个租户只能创建一个命名空间,创建后不支持修改。 名称必须以英文字母开头,只能由英文字母、数字或单下划线组成,且不能以下划线结尾。 类型 在下拉框中,选择服务编排的类型。 Autolaunched Flow:自启动Flow,在接口调用后会立即执行服务编排模型定义的逻辑。 Event Trigger:事件触发的服务编排,在事件触发时才会开始执行服务编排模型定义的逻辑。当选择该类型时,您需要配置具体的事件以及条件规则。 默认值:Autolaunched Flow。 描述 请根据实际需求,输入服务编排的描述信息,建议设置为服务编排的功能介绍。 取值范围:1~255个字符。 创建变量。 在服务编排设计器中,单击,进入全局上下文页面。 单击“变量”后的,创建表2中的变量。 图2 创建变量 表2 变量说明 变量名 类型 变量说明 userName 文本 传入的用户名 message 文本 欢迎信息 在全局上下文中,除了创建基本类型的变量,还可以创建常量、创建公式变量、创建私有结构体和创建对象变量/结构体变量/事件变量。 单击,配置服务编排的输入输出参数。 图3 配置输入输出参数 将“逻辑”中的“赋值”图元,拖拽到画布中。 赋值图元可以实现对全局上下文中变量等参数进行赋值,其他图元的详细介绍,请参见为AstroZero服务编排设置图元。 图4 拖拽赋值图元到画布 配置图元。 选择赋值图元,单击。 在“赋值”页面中,单击“新增行”,参照下图将创建的变量拖拽到相应的位置。 将“"Hello,"”赋值给message变量,并将userName变量拼接到message变量中,赋值语句将从上往下依次执行。 图5 配置赋值图元 连接图元指定逻辑关系,即从开始图元连向赋值图元,表示服务编排开始执行后,执行赋值图元的赋值语句。 图6 连接图元 单击页面上方的,保存服务编排。 单击,进入服务编排调试页面。 在输入参数中,输入如下内容,并单击“运行”。 { "userName": "Flow" } 运行结果如下,输出“Hello,Flow”。 图7 运行结果 单击页面上方的,启用服务编排。 服务编排启用后,才可以在脚本、工作流等操作中引用。 调试已创建的服务编排。 在应用设计器左侧导航栏中,选择“集成”。 单击开放接口后的“+”,新建一个helloFlow开放接口,单击“保存”。 图8 新建开放接口helloFlow 接口创建后,在开放接口中,将鼠标放在已创建的接口上,单击,选择“查看”。 在预览页面,单击接口后的。 单击“测试一下”,输入示例模型,单击“运行”。 图9 测试接口 图10 查看API测试结果
-
样式 针对有丰富前端开发经验的用户,可通过“样式”面板对页面进行更深度的个性化布局定制。 布局:对页面 CSS 属性进行直接配置,如设置组件的宽度、高度等。您也可以在“高级设置”中,直接编写CSS代码进行更深度的个性化布局定制。 单击“显示”属性后的按钮,可以快速指定当前元素布局为“block”、“inline-block”、“inline”和“flex”。 “显示”属性下方展示了当前元素的盒模型示意图,在对应的数字位置单击并改变值,即可快速改变元素上下左右位置上的内外边距属性。 当前元素盒模型示意图下方,展示了当前元素的宽和高,默认是根据当前布局自适应后的宽高,可以在这里手动输入值配置当前元素的宽和高。 盒模型和宽高配置时,支持“px”、“em”、“%”、“auto”等多种单位。 图5 样式属性配置面板 字体:设置字体大小、字体样式、颜色等。 背景:设置背景颜色、透明度。 边框:设置边框颜色、宽度等,支持“px”、“em”和“%”三种单位。 阴影:设置阴影颜色、模糊、扩散等,支持“px”、“em”和“%”三种单位。 高级设置:在高级设置中,直接编写CSS代码作用于当前元素。同一个组件如果在“基本属性”和“样式”中,同时对布局属性进行了设置,最终生效是“样式”栏中的设置。 样式源码:组件具体样式代码,组件样式设置后,样式代码将自动显示在“样式源码”中。也可以自定义样式代码,对组件进行详细配置。自定义代码支持多行输入,并高亮显示样式参数。 样式类:当前组件使用的CSS样式类名,可在CSS代码中进行引用。
-
数据绑定 通过建立不同类型的视图模型,将各种数据源和组件的返回值或者属性值进行关联,实现动态数据效果。 值绑定:值绑定类似vue中的v-model语法,组件上创建双向数据绑定。值绑定会根据组件类型,自动选取正确的方法来更新元素。同时,负责监视各类引起绑定数据变化的事件以更新数据。 在“数据绑定”中,单击“值(value)绑定”中的,进入选择模型页面。 单击“新增模型”,进入新增模型页面。 设置模型名称与来源,单击“下一步”。 图3 定义模型 AstroZero支持自定义、对象、服务和事件四类模型,每类模型都包含参数定义和方法定义。方法是在模型上定义的API,通常会在前台组件关联的事件脚本(例如页面加载事件、鼠标单击事件)中调用这些API,以实现某些功能。 表1 模型来源说明 分类 模型说明 模型参数的定义 模型方法的定义 API调用方法 自定义 开发者自行定义的模型。 由开发者自定义,可以添加子节点。 开发者自定义方法。 $model.ref("modelName").actionName(); 对象 由Object对象表映射生成,关于对象模型的详细介绍,请参见对象。 系统自动获取Object所有的字段,开发者可以从中选择部分字段作为参数。 系统自动生成查询、保存、删除和统计四个方法。 $model.ref("modelName").query(param); $model.ref("modelName").save(); $model.ref("modelName").delete(); $model.ref("modelName").count(); 服务 服务模型由后台服务映射生成,当前支持与服务编排或脚本映射。关于服务模型的详细介绍,请参见服务编排和脚本。 参数根据后台服务的入参、出参,映射生成为inputParam和outputParam节点。 系统自动生成run方法 ,用于执行模型关联的服务编排或脚本。 $model.ref("modelName").run(); 事件 事件模型由后台事件的字段映射生成,并且支持websocket刷新模型数据。 参数根据后台事件的字段映射生成。 直接使用 直接使用 除了在模型中定义的方法,低代码平台还提供了如下标准API,适用于所有的模型。 获取模型数据:$model.ref("modelName").getData(); 设置模型数据:$model.ref("modelName").setData(); 设置模型字段值:$model.ref("modelName").setValue(key,value); 在新建模型“设置”页面,执行如下操作。 上一步来源选择“自定义”,需要添加子节点自定义参数及类型。 上一步来源选择“对象”,需要配置模型关联的对象以及字段。 上一步来源选择“服务”,需要配置模型关联的后台服务,可以是脚本、服务编排或者公共接口。 上一步来源选择“事件”,需要配置模型关联的事件以及事件字段。 单击“下一步”,设置方法。 方法一般无需添加,如需添加或修改,可参考对象和服务默认生成的方法。 设置完成后,单击“确定”。 属性值绑定:将容器组件的某个属性,如隐藏、样式、弹性布局等与具体的模型字段相绑定,绑定后组件的属性随模型字段的值变化而变化,类似Vue的v-bind。 在“数据绑定”中,单击“属性值绑定”后的“+”。 在“属性”下拉框中,选择容器的某个属性。 在模型字段中,单击,进入选择模型页面。 单击“新增模型”,进入新增模型页面。 设置模型名称与来源,单击“下一步”。 AstroZero支持自定义、对象、服务和事件四类模型,每类模型都包含参数定义和方法定义。方法是在模型上定义的API,通常会在前台组件关联的事件脚本(例如页面加载事件、鼠标单击事件)中调用这些API,以实现某些功能。详细介绍,请参见表1。 图4 定义模型 在新建模型“设置”页面,执行如下操作。 上一步来源选择“自定义”,需要添加子节点自定义参数及类型。 上一步来源选择“对象”,需要配置模型关联的对象以及字段。 上一步来源选择“服务”,需要配置模型关联的后台服务,可以是脚本、服务编排或者公共接口。 上一步来源选择“事件”,需要配置模型关联的事件以及事件字段。 单击“下一步”,设置方法。 方法一般无需添加,如需添加或修改,可参考对象和服务默认生成的方法。 设置完成后,单击“确定”。
-
在脚本中调用连接器 在脚本中,调用连接器实现与OCR的对接。 参考创建空白AstroZero脚本中操作,创建一个空白脚本。 在脚本编辑器中,输入如下代码。 通过脚本中的如下代码,可基于已上传身份证的URL,调用OCR接口进行识别,并输出识别的基本信息。 //导入该事件所依赖的标准库文件。ocr是系统预置的标准库。 import * as ocr from 'ocr'; let cli = ocr.newClient("OCR_Test"); try { let url = "https://obs-example.com:443/1.PNG?AccessKeyId=ZK87UUIONJF5ZHWBINUO&Expires=1556001233&Signature=DOwO6djb4Q3EBvCieQFaO3T2GKU%3D&x-obs-security-token=gQpjbi1ub3J0aC0xip******DCfJAazjA4wTnkbccr38k7eM%3D" let resp = cli.idCardWithURL(url, "front"); console.log(resp); } catch (e) { console.log("error: ", e) } 其中,ocr.newClient("OCR_Test")中,“OCR_Test”为连接器的名称,“url”取值是图片的URL, “front”表示识别的是身份证正面。 单击脚本编辑器页面上方的,保存脚本。 保存成功后,单击,运行脚本。 不用设置输入参数,直接单击测试窗口右上角的。 在输出参数页签,检查是否识别出身份证上文字信息。 识别出身份证上的文字信息,表明成功调用连接器。 单击脚本编辑器页面上方的,启用脚本。
共100000条
- 1
- ...
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
- 69
- 70
- 71
- 72
- 73
- 74
- 75
- 76
- 77
- 78
- 79
- 80
- 81
- 82
- 83
- 84
- 85
- 86
- 87
- 88
- 89
- 90
- 91
- 92
- 93
- 94
- 95
- 96
- 97
- 98
- 99
- 100
- 101
- 102
- 103
- 104
- 105
- 106
- 107
- 108
- 109
- 110
- 111
- 112
- 113
- 114
- 115
- 116
- 117
- 118
- 119
- 120
- 121
- 122
- 123
- 124
- 125
- 126
- ...
- 127
- 128
- 129
- 130
- 131
- 132
- 133
- 134
- 135
- 136
- 137
- 138
- 139
- 140
- 141
- 142
- 143
- 144
- 145
- 146
- 147
- 148
- 149
- 150
- 151
- 152
- 153
- 154
- 155
- 156
- 157
- 158
- 159
- 160
- 161
- 162
- 163
- 164
- 165
- 166
- 167
- 168
- 169
- 170
- 171
- 172
- 173
- 174
- 175
- 176
- 177
- 178
- 179
- 180
- 181
- 182
- 183
- 184
- 185
- 186
- 187
- 188
- 189
- 190
- 191
- 192
- 193
- 194
- 195
- 196
- 197
- 198
- 199
- 200
- 201
- 202
- 203
- 204
- 205
- 206
- 207
- 208
- 209
- 210
- 211
- 212
- 213
- 214
- 215
- 216
- 217
- 218
- 219
- 220
- 221
- 222
- 223
- 224
- 225
- 226
- 227
- 228
- 229
- 230
- 231
- 232
- 233
- 234
- 235
- 236
- 237
- 238
- 239
- 240
- 241
- 242
- 243
- 244
- 245
- 246
- 247
- 248
- 249
- 250
- 251
- 252
- 253
- 254
- 255
- 256
- 257
- 258
- 259
- 260
- 261
- 262
- 263
- 264
- 265
- 266
- 267
- 268
- 269
- 270
- 271
- 272
- 273
- 274
- 275
- 276
- 277
- 278
- 279
- 280
- 281
- 282
- 283
- 284
- 285
- 286
- 287
- 288
- 289
- 290
- 291
- 292
- 293
- 294
- 295
- 296
- 297
- 298
- 299
- 300
- 301
- 302
- 303
- 304
- 305
- 306
- 307
- 308
- 309
- 310
- 311
- 312
- 313
- 314
- 315
- 316
- 317
- 318
- 319
- 320
- 321
- 322
- 323
- 324
- 325
- 326
- 327
- 328
- 329
- 330
- 331
- 332
- 333
- 334
- 335
- 336
- 337
- 338
- 339
- 340
- 341
- 342
- 343
- 344
- 345
- 346
- 347
- 348
- 349
- 350
- 351
- 352
- 353
- 354
- 355
- 356
- 357
- 358
- 359
- 360
- 361
- 362
- 363
- 364
- 365
- 366
- 367
- 368
- 369
- 370
- 371
- 372
- 373
- 374
- 375
- 376
- 377
- 378
- 379
- 380
- 381
- 382
- 383
- 384
- 385
- 386
- 387
- 388
- 389
- 390
- 391
- 392
- 393
- 394
- 395
- 396
- 397
- 398
- 399
- 400
- 401
- 402
- 403
- 404
- 405
- 406
- 407
- 408
- 409
- 410
- 411
- 412
- 413
- 414
- 415
- 416
- 417
- 418
- 419
- 420
- 421
- 422
- 423
- 424
- 425
- 426
- 427
- 428
- 429
- 430
- 431
- 432
- 433
- 434
- 435
- 436
- 437
- 438
- 439
- 440
- 441
- 442
- 443
- 444
- 445
- 446
- 447
- 448
- 449
- 450
- 451
- 452
- 453
- 454
- 455
- 456
- 457
- 458
- 459
- 460
- 461
- 462
- 463
- 464
- 465
- 466
- 467
- 468
- 469
- 470
- 471
- 472
- 473
- 474
- 475
- 476
- 477
- 478
- 479
- 480
- 481
- 482
- 483
- 484
- 485
- 486
- 487
- 488
- 489
- 490
- 491
- 492
- 493
- 494
- 495
- 496
- 497
- 498
- 499
- 500
- 501
- 502
- 503
- 504
- 505
- 506
- 507
- 508
- 509
- 510
- 511
- 512
- 513
- 514
- 515
- 516
- 517
- 518
- 519
- 520
- 521
- 522
- 523
- 524
- 525
- 526
- 527
- 528
- 529
- 530
- 531
- 532
- 533
- 534
- 535
- 536
- 537
- 538
- 539
- 540
- 541
- 542
- 543
- 544
- 545
- 546
- 547
- 548
- 549
- 550
- 551
- 552
- 553
- 554
- 555
- 556
- 557
- 558
- 559
- 560
- 561
- 562
- 563
- 564
- 565
- 566
- 567
- 568
- 569
- 570
- 571
- 572
- 573
- 574
- 575
- 576
- 577
- 578
- 579
- 580
- 581
- 582
- 583
- 584
- 585
- 586
- 587
- 588
- 589
- 590
- 591
- 592
- 593
- 594
- 595
- 596
- 597
- 598
- 599
- 600
- 601
- 602
- 603
- 604
- 605
- 606
- 607
- 608
- 609
- 610
- 611
- 612
- 613
- 614
- 615
- 616
- 617
- 618
- 619
- 620
- 621
- 622
- 623
- 624
- 625
- 626
- 627
- 628
- 629
- 630
- 631
- 632
- 633
- 634
- 635
- 636
- 637
- 638
- 639
- 640
- 641
- 642
- 643
- 644
- 645
- 646
- 647
- 648
- 649
- 650
- 651
- 652
- 653
- 654
- 655
- 656
- 657
- 658
- 659
- 660
- 661
- 662
- 663
- 664
- 665
- 666
- 667
- 668
- 669
- 670
- 671
- 672
- 673
- 674
- 675
- 676
- 677
- 678
- 679
- 680
- 681
- 682
- 683
- 684
- 685
- 686
- 687
- 688
- 689
- 690
- 691
- 692
- 693
- 694
- 695
- 696
- 697
- 698
- 699
- 700
- 701
- 702
- 703
- 704
- 705
- 706
- 707
- 708
- 709
- 710
- 711
- 712
- 713
- 714
- 715
- 716
- 717
- 718
- 719
- 720
- 721
- 722
- 723
- 724
- 725
- 726
- 727
- 728
- 729
- 730
- 731
- 732
- 733
- 734
- 735
- 736
- 737
- 738
- 739
- 740
- 741
- 742
- 743
- 744
- 745
- 746
- 747
- 748
- 749
- 750
- 751
- 752
- 753
- 754
- 755
- 756
- 757
- 758
- 759
- 760
- 761
- 762
- 763
- 764
- 765
- 766
- 767
- 768
- 769
- 770
- 771
- 772
- 773
- 774
- 775
- 776
- 777
- 778
- 779
- 780
- 781
- 782
- 783
- 784
- 785
- 786
- 787
- 788
- 789
- 790
- 791
- 792
- 793
- 794
- 795
- 796
- 797
- 798
- 799
- 800
- 801
- 802
- 803
- 804
- 805
- 806
- 807
- 808
- 809
- 810
- 811
- 812
- 813
- 814
- 815
- 816
- 817
- 818
- 819
- 820
- 821
- 822
- 823
- 824
- 825
- 826
- 827
- 828
- 829
- 830
- 831
- 832
- 833
- 834
- 835
- 836
- 837
- 838
- 839
- 840
- 841
- 842
- 843
- 844
- 845
- 846
- 847
- 848
- 849
- 850
- 851
- 852
- 853
- 854
- 855
- 856
- 857
- 858
- 859
- 860
- 861
- 862
- 863
- 864
- 865
- 866
- 867
- 868
- 869
- 870
- 871
- 872
- 873
- 874
- 875
- 876
- 877
- 878
- 879
- 880
- 881
- 882
- 883
- 884
- 885
- 886
- 887
- 888
- 889
- 890
- 891
- 892
- 893
- 894
- 895
- 896
- 897
- 898
- 899
- 900
- 901
- 902
- 903
- 904
- 905
- 906
- 907
- 908
- 909
- 910
- 911
- 912
- 913
- 914
- 915
- 916
- 917
- 918
- 919
- 920
- 921
- 922
- 923
- 924
- 925
- 926
- 927
- 928
- 929
- 930
- 931
- 932
- 933
- 934
- 935
- 936
- 937
- 938
- 939
- 940
- 941
- 942
- 943
- 944
- 945
- 946
- 947
- 948
- 949
- 950
- 951
- 952
- 953
- 954
- 955
- 956
- 957
- 958
- 959
- 960
- 961
- 962
- 963
- 964
- 965
- 966
- 967
- 968
- 969
- 970
- 971
- 972
- 973
- 974
- 975
- 976
- 977
- 978
- 979
- 980
- 981
- 982
- 983
- 984
- 985
- 986
- 987
- 988
- 989
- 990
- 991
- 992
- 993
- 994
- 995
- 996
- 997
- 998
- 999
- 1000
- 1001
- 1002
- 1003
- 1004
- 1005
- 1006
- 1007
- 1008
- 1009
- 1010
- 1011
- 1012
- 1013
- 1014
- 1015
- 1016
- 1017
- 1018
- 1019
- 1020
- 1021
- 1022
- 1023
- 1024
- 1025
- 1026
- 1027
- 1028
- 1029
- 1030
- 1031
- 1032
- 1033
- 1034
- 1035
- 1036
- 1037
- 1038
- 1039
- 1040
- 1041
- 1042
- 1043
- 1044
- 1045
- 1046
- 1047
- 1048
- 1049
- 1050
- 1051
- 1052
- 1053
- 1054
- 1055
- 1056
- 1057
- 1058
- 1059
- 1060
- 1061
- 1062
- 1063
- 1064
- 1065
- 1066
- 1067
- 1068
- 1069
- 1070
- 1071
- 1072
- 1073
- 1074
- 1075
- 1076
- 1077
- 1078
- 1079
- 1080
- 1081
- 1082
- 1083
- 1084
- 1085
- 1086
- 1087
- 1088
- 1089
- 1090
- 1091
- 1092
- 1093
- 1094
- 1095
- 1096
- 1097
- 1098
- 1099
- 1100
- 1101
- 1102
- 1103
- 1104
- 1105
- 1106
- 1107
- 1108
- 1109
- 1110
- 1111
- 1112
- 1113
- 1114
- 1115
- 1116
- 1117
- 1118
- 1119
- 1120
- 1121
- 1122
- 1123
- 1124
- 1125
- 1126
- 1127
- 1128
- 1129
- 1130
- 1131
- 1132
- 1133
- 1134
- 1135
- 1136
- 1137
- 1138
- 1139
- 1140
- 1141
- 1142
- 1143
- 1144
- 1145
- 1146
- 1147
- 1148
- 1149
- 1150
- 1151
- 1152
- 1153
- 1154
- 1155
- 1156
- 1157
- 1158
- 1159
- 1160
- 1161
- 1162
- 1163
- 1164
- 1165
- 1166
- 1167
- 1168
- 1169
- 1170
- 1171
- 1172
- 1173
- 1174
- 1175
- 1176
- 1177
- 1178
- 1179
- 1180
- 1181
- 1182
- 1183
- 1184
- 1185
- 1186
- 1187
- 1188
- 1189
- 1190
- 1191
- 1192
- 1193
- 1194
- 1195
- 1196
- 1197
- 1198
- 1199
- 1200
- 1201
- 1202
- 1203
- 1204
- 1205
- 1206
- 1207
- 1208
- 1209
- 1210
- 1211
- 1212
- 1213
- 1214
- 1215
- 1216
- 1217
- 1218
- 1219
- 1220
- 1221
- 1222
- 1223
- 1224
- 1225
- 1226
- 1227
- 1228
- 1229
- 1230
- 1231
- 1232
- 1233
- 1234
- 1235
- 1236
- 1237
- 1238
- 1239
- 1240
- 1241
- 1242
- 1243
- 1244
- 1245
- 1246
- 1247
- 1248
- 1249
- 1250
- 1251
- 1252
- 1253
- 1254
- 1255
- 1256
- 1257
- 1258
- 1259
- 1260
- 1261
- 1262
- 1263
- 1264
- 1265
- 1266
- 1267
- 1268
- 1269
- 1270
- 1271
- 1272
- 1273
- 1274
- 1275
- 1276
- 1277
- 1278
- 1279
- 1280
- 1281
- 1282
- 1283
- 1284
- 1285
- 1286
- 1287
- 1288
- 1289
- 1290
- 1291
- 1292
- 1293
- 1294
- 1295
- 1296
- 1297
- 1298
- 1299
- 1300
- 1301
- 1302
- 1303
- 1304
- 1305
- 1306
- 1307
- 1308
- 1309
- 1310
- 1311
- 1312
- 1313
- 1314
- 1315
- 1316
- 1317
- 1318
- 1319
- 1320
- 1321
- 1322
- 1323
- 1324
- 1325
- 1326
- 1327
- 1328
- 1329
- 1330
- 1331
- 1332
- 1333
- 1334
- 1335
- 1336
- 1337
- 1338
- 1339
- 1340
- 1341
- 1342
- 1343
- 1344
- 1345
- 1346
- 1347
- 1348
- 1349
- 1350
- 1351
- 1352
- 1353
- 1354
- 1355
- 1356
- 1357
- 1358
- 1359
- 1360
- 1361
- 1362
- 1363
- 1364
- 1365
- 1366
- 1367
- 1368
- 1369
- 1370
- 1371
- 1372
- 1373
- 1374
- 1375
- 1376
- 1377
- 1378
- 1379
- 1380
- 1381
- 1382
- 1383
- 1384
- 1385
- 1386
- 1387
- 1388
- 1389
- 1390
- 1391
- 1392
- 1393
- 1394
- 1395
- 1396
- 1397
- 1398
- 1399
- 1400
- 1401
- 1402
- 1403
- 1404
- 1405
- 1406
- 1407
- 1408
- 1409
- 1410
- 1411
- 1412
- 1413
- 1414
- 1415
- 1416
- 1417
- 1418
- 1419
- 1420
- 1421
- 1422
- 1423
- 1424
- 1425
- 1426
- 1427
- 1428
- 1429
- 1430
- 1431
- 1432
- 1433
- 1434
- 1435
- 1436
- 1437
- 1438
- 1439
- 1440
- 1441
- 1442
- 1443
- 1444
- 1445
- 1446
- 1447
- 1448
- 1449
- 1450
- 1451
- 1452
- 1453
- 1454
- 1455
- 1456
- 1457
- 1458
- 1459
- 1460
- 1461
- 1462
- 1463
- 1464
- 1465
- 1466
- 1467
- 1468
- 1469
- 1470
- 1471
- 1472
- 1473
- 1474
- 1475
- 1476
- 1477
- 1478
- 1479
- 1480
- 1481
- 1482
- 1483
- 1484
- 1485
- 1486
- 1487
- 1488
- 1489
- 1490
- 1491
- 1492
- 1493
- 1494
- 1495
- 1496
- 1497
- 1498
- 1499
- 1500
- 1501
- 1502
- 1503
- 1504
- 1505
- 1506
- 1507
- 1508
- 1509
- 1510
- 1511
- 1512
- 1513
- 1514
- 1515
- 1516
- 1517
- 1518
- 1519
- 1520
- 1521
- 1522
- 1523
- 1524
- 1525
- 1526
- 1527
- 1528
- 1529
- 1530
- 1531
- 1532
- 1533
- 1534
- 1535
- 1536
- 1537
- 1538
- 1539
- 1540
- 1541
- 1542
- 1543
- 1544
- 1545
- 1546
- 1547
- 1548
- 1549
- 1550
- 1551
- 1552
- 1553
- 1554
- 1555
- 1556
- 1557
- 1558
- 1559
- 1560
- 1561
- 1562
- 1563
- 1564
- 1565
- 1566
- 1567
- 1568
- 1569
- 1570
- 1571
- 1572
- 1573
- 1574
- 1575
- 1576
- 1577
- 1578
- 1579
- 1580
- 1581
- 1582
- 1583
- 1584
- 1585
- 1586
- 1587
- 1588
- 1589
- 1590
- 1591
- 1592
- 1593
- 1594
- 1595
- 1596
- 1597
- 1598
- 1599
- 1600
- 1601
- 1602
- 1603
- 1604
- 1605
- 1606
- 1607
- 1608
- 1609
- 1610
- 1611
- 1612
- 1613
- 1614
- 1615
- 1616
- 1617
- 1618
- 1619
- 1620
- 1621
- 1622
- 1623
- 1624
- 1625
- 1626
- 1627
- 1628
- 1629
- 1630
- 1631
- 1632
- 1633
- 1634
- 1635
- 1636
- 1637
- 1638
- 1639
- 1640
- 1641
- 1642
- 1643
- 1644
- 1645
- 1646
- 1647
- 1648
- 1649
- 1650
- 1651
- 1652
- 1653
- 1654
- 1655
- 1656
- 1657
- 1658
- 1659
- 1660
- 1661
- 1662
- 1663
- 1664
- 1665
- 1666
- 1667
- 1668
- 1669
- 1670
- 1671
- 1672
- 1673
- 1674
- 1675
- 1676
- 1677
- 1678
- 1679
- 1680
- 1681
- 1682
- 1683
- 1684
- 1685
- 1686
- 1687
- 1688
- 1689
- 1690
- 1691
- 1692
- 1693
- 1694
- 1695
- 1696
- 1697
- 1698
- 1699
- 1700
- 1701
- 1702
- 1703
- 1704
- 1705
- 1706
- 1707
- 1708
- 1709
- 1710
- 1711
- 1712
- 1713
- 1714
- 1715
- 1716
- 1717
- 1718
- 1719
- 1720
- 1721
- 1722
- 1723
- 1724
- 1725
- 1726
- 1727
- 1728
- 1729
- 1730
- 1731
- 1732
- 1733
- 1734
- 1735
- 1736
- 1737
- 1738
- 1739
- 1740
- 1741
- 1742
- 1743
- 1744
- 1745
- 1746
- 1747
- 1748
- 1749
- 1750
- 1751
- 1752
- 1753
- 1754
- 1755
- 1756
- 1757
- 1758
- 1759
- 1760
- 1761
- 1762
- 1763
- 1764
- 1765
- 1766
- 1767
- 1768
- 1769
- 1770
- 1771
- 1772
- 1773
- 1774
- 1775
- 1776
- 1777
- 1778
- 1779
- 1780
- 1781
- 1782
- 1783
- 1784
- 1785
- 1786
- 1787
- 1788
- 1789
- 1790
- 1791
- 1792
- 1793
- 1794
- 1795
- 1796
- 1797
- 1798
- 1799
- 1800
- 1801
- 1802
- 1803
- 1804
- 1805
- 1806
- 1807
- 1808
- 1809
- 1810
- 1811
- 1812
- 1813
- 1814
- 1815
- 1816
- 1817
- 1818
- 1819
- 1820
- 1821
- 1822
- 1823
- 1824
- 1825
- 1826
- 1827
- 1828
- 1829
- 1830
- 1831
- 1832
- 1833
- 1834
- 1835
- 1836
- 1837
- 1838
- 1839
- 1840
- 1841
- 1842
- 1843
- 1844
- 1845
- 1846
- 1847
- 1848
- 1849
- 1850
- 1851
- 1852
- 1853
- 1854
- 1855
- 1856
- 1857
- 1858
- 1859
- 1860
- 1861
- 1862
- 1863
- 1864
- 1865
- 1866
- 1867
- 1868
- 1869
- 1870
- 1871
- 1872
- 1873
- 1874
- 1875
- 1876
- 1877
- 1878
- 1879
- 1880
- 1881
- 1882
- 1883
- 1884
- 1885
- 1886
- 1887
- 1888
- 1889
- 1890
- 1891
- 1892
- 1893
- 1894
- 1895
- 1896
- 1897
- 1898
- 1899
- 1900
- 1901
- 1902
- 1903
- 1904
- 1905
- 1906
- 1907
- 1908
- 1909
- 1910
- 1911
- 1912
- 1913
- 1914
- 1915
- 1916
- 1917
- 1918
- 1919
- 1920
- 1921
- 1922
- 1923
- 1924
- 1925
- 1926
- 1927
- 1928
- 1929
- 1930
- 1931
- 1932
- 1933
- 1934
- 1935
- 1936
- 1937
- 1938
- 1939
- 1940
- 1941
- 1942
- 1943
- 1944
- 1945
- 1946
- 1947
- 1948
- 1949
- 1950
- 1951
- 1952
- 1953
- 1954
- 1955
- 1956
- 1957
- 1958
- 1959
- 1960
- 1961
- 1962
- 1963
- 1964
- 1965
- 1966
- 1967
- 1968
- 1969
- 1970
- 1971
- 1972
- 1973
- 1974
- 1975
- 1976
- 1977
- 1978
- 1979
- 1980
- 1981
- 1982
- 1983
- 1984
- 1985
- 1986
- 1987
- 1988
- 1989
- 1990
- 1991
- 1992
- 1993
- 1994
- 1995
- 1996
- 1997
- 1998
- 1999
- 2000
- 2001
- 2002
- 2003
- 2004
- 2005
- 2006
- 2007
- 2008
- 2009
- 2010
- 2011
- 2012
- 2013
- 2014
- 2015
- 2016
- 2017
- 2018
- 2019
- 2020
- 2021
- 2022
- 2023
- 2024
- 2025
- 2026
- 2027
- 2028
- 2029
- 2030
- 2031
- 2032
- 2033
- 2034
- 2035
- 2036
- 2037
- 2038
- 2039
- 2040
- 2041
- 2042
- 2043
- 2044
- 2045
- 2046
- 2047
- 2048
- 2049
- 2050
- 2051
- 2052
- 2053
- 2054
- 2055
- 2056
- 2057
- 2058
- 2059
- 2060
- 2061
- 2062
- 2063
- 2064
- 2065
- 2066
- 2067
- 2068
- 2069
- 2070
- 2071
- 2072
- 2073
- 2074
- 2075
- 2076
- 2077
- 2078
- 2079
- 2080
- 2081
- 2082
- 2083
- 2084
- 2085
- 2086
- 2087
- 2088
- 2089
- 2090
- 2091
- 2092
- 2093
- 2094
- 2095
- 2096
- 2097
- 2098
- 2099
- 2100
- 2101
- 2102
- 2103
- 2104
- 2105
- 2106
- 2107
- 2108
- 2109
- 2110
- 2111
- 2112
- 2113
- 2114
- 2115
- 2116
- 2117
- 2118
- 2119
- 2120
- 2121
- 2122
- 2123
- 2124
- 2125
- 2126
- 2127
- 2128
- 2129
- 2130
- 2131
- 2132
- 2133
- 2134
- 2135
- 2136
- 2137
- 2138
- 2139
- 2140
- 2141
- 2142
- 2143
- 2144
- 2145
- 2146
- 2147
- 2148
- 2149
- 2150
- 2151
- 2152
- 2153
- 2154
- 2155
- 2156
- 2157
- 2158
- 2159
- 2160
- 2161
- 2162
- 2163
- 2164
- 2165
- 2166
- 2167
- 2168
- 2169
- 2170
- 2171
- 2172
- 2173
- 2174
- 2175
- 2176
- 2177
- 2178
- 2179
- 2180
- 2181
- 2182
- 2183
- 2184
- 2185
- 2186
- 2187
- 2188
- 2189
- 2190
- 2191
- 2192
- 2193
- 2194
- 2195
- 2196
- 2197
- 2198
- 2199
- 2200
- 2201
- 2202
- 2203
- 2204
- 2205
- 2206
- 2207
- 2208
- 2209
- 2210
- 2211
- 2212
- 2213
- 2214
- 2215
- 2216
- 2217
- 2218
- 2219
- 2220
- 2221
- 2222
- 2223
- 2224
- 2225
- 2226
- 2227
- 2228
- 2229
- 2230
- 2231
- 2232
- 2233
- 2234
- 2235
- 2236
- 2237
- 2238
- 2239
- 2240
- 2241
- 2242
- 2243
- 2244
- 2245
- 2246
- 2247
- 2248
- 2249
- 2250
- 2251
- 2252
- 2253
- 2254
- 2255
- 2256
- 2257
- 2258
- 2259
- 2260
- 2261
- 2262
- 2263
- 2264
- 2265
- 2266
- 2267
- 2268
- 2269
- 2270
- 2271
- 2272
- 2273
- 2274
- 2275
- 2276
- 2277
- 2278
- 2279
- 2280
- 2281
- 2282
- 2283
- 2284
- 2285
- 2286
- 2287
- 2288
- 2289
- 2290
- 2291
- 2292
- 2293
- 2294
- 2295
- 2296
- 2297
- 2298
- 2299
- 2300
- 2301
- 2302
- 2303
- 2304
- 2305
- 2306
- 2307
- 2308
- 2309
- 2310
- 2311
- 2312
- 2313
- 2314
- 2315
- 2316
- 2317
- 2318
- 2319
- 2320
- 2321
- 2322
- 2323
- 2324
- 2325
- 2326
- 2327
- 2328
- 2329
- 2330
- 2331
- 2332
- 2333
- 2334
- 2335
- 2336
- 2337
- 2338
- 2339
- 2340
- 2341
- 2342
- 2343
- 2344
- 2345
- 2346
- 2347
- 2348
- 2349
- 2350
- 2351
- 2352
- 2353
- 2354
- 2355
- 2356
- 2357
- 2358
- 2359
- 2360
- 2361
- 2362
- 2363
- 2364
- 2365
- 2366
- 2367
- 2368
- 2369
- 2370
- 2371
- 2372
- 2373
- 2374
- 2375
- 2376
- 2377
- 2378
- 2379
- 2380
- 2381
- 2382
- 2383
- 2384
- 2385
- 2386
- 2387
- 2388
- 2389
- 2390
- 2391
- 2392
- 2393
- 2394
- 2395
- 2396
- 2397
- 2398
- 2399
- 2400
- 2401
- 2402
- 2403
- 2404
- 2405
- 2406
- 2407
- 2408
- 2409
- 2410
- 2411
- 2412
- 2413
- 2414
- 2415
- 2416
- 2417
- 2418
- 2419
- 2420
- 2421
- 2422
- 2423
- 2424
- 2425
- 2426
- 2427
- 2428
- 2429
- 2430
- 2431
- 2432
- 2433
- 2434
- 2435
- 2436
- 2437
- 2438
- 2439
- 2440
- 2441
- 2442
- 2443
- 2444
- 2445
- 2446
- 2447
- 2448
- 2449
- 2450
- 2451
- 2452
- 2453
- 2454
- 2455
- 2456
- 2457
- 2458
- 2459
- 2460
- 2461
- 2462
- 2463
- 2464
- 2465
- 2466
- 2467
- 2468
- 2469
- 2470
- 2471
- 2472
- 2473
- 2474
- 2475
- 2476
- 2477
- 2478
- 2479
- 2480
- 2481
- 2482
- 2483
- 2484
- 2485
- 2486
- 2487
- 2488
- 2489
- 2490
- 2491
- 2492
- 2493
- 2494
- 2495
- 2496
- 2497
- 2498
- 2499
- 2500
- 2501
- 2502
- 2503
- 2504
- 2505
- 2506
- 2507
- 2508
- 2509
- 2510
- 2511
- 2512
- 2513
- 2514
- 2515
- 2516
- 2517
- 2518
- 2519
- 2520
- 2521
- 2522
- 2523
- 2524
- 2525
- 2526
- 2527
- 2528
- 2529
- 2530
- 2531
- 2532
- 2533
- 2534
- 2535
- 2536
- 2537
- 2538
- 2539
- 2540
- 2541
- 2542
- 2543
- 2544
- 2545
- 2546
- 2547
- 2548
- 2549
- 2550
- 2551
- 2552
- 2553
- 2554
- 2555
- 2556
- 2557
- 2558
- 2559
- 2560
- 2561
- 2562
- 2563
- 2564
- 2565
- 2566
- 2567
- 2568
- 2569
- 2570
- 2571
- 2572
- 2573
- 2574
- 2575
- 2576
- 2577
- 2578
- 2579
- 2580
- 2581
- 2582
- 2583
- 2584
- 2585
- 2586
- 2587
- 2588
- 2589
- 2590
- 2591
- 2592
- 2593
- 2594
- 2595
- 2596
- 2597
- 2598
- 2599
- 2600
- 2601
- 2602
- 2603
- 2604
- 2605
- 2606
- 2607
- 2608
- 2609
- 2610
- 2611
- 2612
- 2613
- 2614
- 2615
- 2616
- 2617
- 2618
- 2619
- 2620
- 2621
- 2622
- 2623
- 2624
- 2625
- 2626
- 2627
- 2628
- 2629
- 2630
- 2631
- 2632
- 2633
- 2634
- 2635
- 2636
- 2637
- 2638
- 2639
- 2640
- 2641
- 2642
- 2643
- 2644
- 2645
- 2646
- 2647
- 2648
- 2649
- 2650
- 2651
- 2652
- 2653
- 2654
- 2655
- 2656
- 2657
- 2658
- 2659
- 2660
- 2661
- 2662
- 2663
- 2664
- 2665
- 2666
- 2667
- 2668
- 2669
- 2670
- 2671
- 2672
- 2673
- 2674
- 2675
- 2676
- 2677
- 2678
- 2679
- 2680
- 2681
- 2682
- 2683
- 2684
- 2685
- 2686
- 2687
- 2688
- 2689
- 2690
- 2691
- 2692
- 2693
- 2694
- 2695
- 2696
- 2697
- 2698
- 2699
- 2700
- 2701
- 2702
- 2703
- 2704
- 2705
- 2706
- 2707
- 2708
- 2709
- 2710
- 2711
- 2712
- 2713
- 2714
- 2715
- 2716
- 2717
- 2718
- 2719
- 2720
- 2721
- 2722
- 2723
- 2724
- 2725
- 2726
- 2727
- 2728
- 2729
- 2730
- 2731
- 2732
- 2733
- 2734
- 2735
- 2736
- 2737
- 2738
- 2739
- 2740
- 2741
- 2742
- 2743
- 2744
- 2745
- 2746
- 2747
- 2748
- 2749
- 2750
- 2751
- 2752
- 2753
- 2754
- 2755
- 2756
- 2757
- 2758
- 2759
- 2760
- 2761
- 2762
- 2763
- 2764
- 2765
- 2766
- 2767
- 2768
- 2769
- 2770
- 2771
- 2772
- 2773
- 2774
- 2775
- 2776
- 2777
- 2778
- 2779
- 2780
- 2781
- 2782
- 2783
- 2784
- 2785
- 2786
- 2787
- 2788
- 2789
- 2790
- 2791
- 2792
- 2793
- 2794
- 2795
- 2796
- 2797
- 2798
- 2799
- 2800
- 2801
- 2802
- 2803
- 2804
- 2805
- 2806
- 2807
- 2808
- 2809
- 2810
- 2811
- 2812
- 2813
- 2814
- 2815
- 2816
- 2817
- 2818
- 2819
- 2820
- 2821
- 2822
- 2823
- 2824
- 2825
- 2826
- 2827
- 2828
- 2829
- 2830
- 2831
- 2832
- 2833
- 2834
- 2835
- 2836
- 2837
- 2838
- 2839
- 2840
- 2841
- 2842
- 2843
- 2844
- 2845
- 2846
- 2847
- 2848
- 2849
- 2850
- 2851
- 2852
- 2853
- 2854
- 2855
- 2856
- 2857
- 2858
- 2859
- 2860
- 2861
- 2862
- 2863
- 2864
- 2865
- 2866
- 2867
- 2868
- 2869
- 2870
- 2871
- 2872
- 2873
- 2874
- 2875
- 2876
- 2877
- 2878
- 2879
- 2880
- 2881
- 2882
- 2883
- 2884
- 2885
- 2886
- 2887
- 2888
- 2889
- 2890
- 2891
- 2892
- 2893
- 2894
- 2895
- 2896
- 2897
- 2898
- 2899
- 2900
- 2901
- 2902
- 2903
- 2904
- 2905
- 2906
- 2907
- 2908
- 2909
- 2910
- 2911
- 2912
- 2913
- 2914
- 2915
- 2916
- 2917
- 2918
- 2919
- 2920
- 2921
- 2922
- 2923
- 2924
- 2925
- 2926
- 2927
- 2928
- 2929
- 2930
- 2931
- 2932
- 2933
- 2934
- 2935
- 2936
- 2937
- 2938
- 2939
- 2940
- 2941
- 2942
- 2943
- 2944
- 2945
- 2946
- 2947
- 2948
- 2949
- 2950
- 2951
- 2952
- 2953
- 2954
- 2955
- 2956
- 2957
- 2958
- 2959
- 2960
- 2961
- 2962
- 2963
- 2964
- 2965
- 2966
- 2967
- 2968
- 2969
- 2970
- 2971
- 2972
- 2973
- 2974
- 2975
- 2976
- 2977
- 2978
- 2979
- 2980
- 2981
- 2982
- 2983
- 2984
- 2985
- 2986
- 2987
- 2988
- 2989
- 2990
- 2991
- 2992
- 2993
- 2994
- 2995
- 2996
- 2997
- 2998
- 2999
- 3000
- 3001
- 3002
- 3003
- 3004
- 3005
- 3006
- 3007
- 3008
- 3009
- 3010
- 3011
- 3012
- 3013
- 3014
- 3015
- 3016
- 3017
- 3018
- 3019
- 3020
- 3021
- 3022
- 3023
- 3024
- 3025
- 3026
- 3027
- 3028
- 3029
- 3030
- 3031
- 3032
- 3033
- 3034
- 3035
- 3036
- 3037
- 3038
- 3039
- 3040
- 3041
- 3042
- 3043
- 3044
- 3045
- 3046
- 3047
- 3048
- 3049
- 3050
- 3051
- 3052
- 3053
- 3054
- 3055
- 3056
- 3057
- 3058
- 3059
- 3060
- 3061
- 3062
- 3063
- 3064
- 3065
- 3066
- 3067
- 3068
- 3069
- 3070
- 3071
- 3072
- 3073
- 3074
- 3075
- 3076
- 3077
- 3078
- 3079
- 3080
- 3081
- 3082
- 3083
- 3084
- 3085
- 3086
- 3087
- 3088
- 3089
- 3090
- 3091
- 3092
- 3093
- 3094
- 3095
- 3096
- 3097
- 3098
- 3099
- 3100
- 3101
- 3102
- 3103
- 3104
- 3105
- 3106
- 3107
- 3108
- 3109
- 3110
- 3111
- 3112
- 3113
- 3114
- 3115
- 3116
- 3117
- 3118
- 3119
- 3120
- 3121
- 3122
- 3123
- 3124
- 3125
- 3126
- 3127
- 3128
- 3129
- 3130
- 3131
- 3132
- 3133
- 3134
- 3135
- 3136
- 3137
- 3138
- 3139
- 3140
- 3141
- 3142
- 3143
- 3144
- 3145
- 3146
- 3147
- 3148
- 3149
- 3150
- 3151
- 3152
- 3153
- 3154
- 3155
- 3156
- 3157
- 3158
- 3159
- 3160
- 3161
- 3162
- 3163
- 3164
- 3165
- 3166
- 3167
- 3168
- 3169
- 3170
- 3171
- 3172
- 3173
- 3174
- 3175
- 3176
- 3177
- 3178
- 3179
- 3180
- 3181
- 3182
- 3183
- 3184
- 3185
- 3186
- 3187
- 3188
- 3189
- 3190
- 3191
- 3192
- 3193
- 3194
- 3195
- 3196
- 3197
- 3198
- 3199
- 3200
- 3201
- 3202
- 3203
- 3204
- 3205
- 3206
- 3207
- 3208
- 3209
- 3210
- 3211
- 3212
- 3213
- 3214
- 3215
- 3216
- 3217
- 3218
- 3219
- 3220
- 3221
- 3222
- 3223
- 3224
- 3225
- 3226
- 3227
- 3228
- 3229
- 3230
- 3231
- 3232
- 3233
- 3234
- 3235
- 3236
- 3237
- 3238
- 3239
- 3240
- 3241
- 3242
- 3243
- 3244
- 3245
- 3246
- 3247
- 3248
- 3249
- 3250
- 3251
- 3252
- 3253
- 3254
- 3255
- 3256
- 3257
- 3258
- 3259
- 3260
- 3261
- 3262
- 3263
- 3264
- 3265
- 3266
- 3267
- 3268
- 3269
- 3270
- 3271
- 3272
- 3273
- 3274
- 3275
- 3276
- 3277
- 3278
- 3279
- 3280
- 3281
- 3282
- 3283
- 3284
- 3285
- 3286
- 3287
- 3288
- 3289
- 3290
- 3291
- 3292
- 3293
- 3294
- 3295
- 3296
- 3297
- 3298
- 3299
- 3300
- 3301
- 3302
- 3303
- 3304
- 3305
- 3306
- 3307
- 3308
- 3309
- 3310
- 3311
- 3312
- 3313
- 3314
- 3315
- 3316
- 3317
- 3318
- 3319
- 3320
- 3321
- 3322
- 3323
- 3324
- 3325
- 3326
- 3327
- 3328
- 3329
- 3330
- 3331
- 3332
- 3333
- 3333
推荐文章