云服务器内容精选

  • 脚本中预置的API AstroZero平台的脚本引擎采用TypeScript语言。脚本执行时,TypeScript语言会被翻译成JavaScript语言,由JavaScript引擎执行。 在JavaScript es5的官方标准库外,AstroZero还扩展了10+预置标准库(即预置API),帮助您更高效地开发脚本,标准库说明如表1所示。有关预置标准库的详细说明,请参考脚本标准库。 库的使用方法举例: import * as http from 'http'; 表1 标准库说明 标准库名称 说明 sys 提供系统层面的操作,例如获取系统参数值、提供alarm脚本库在脚本里埋点上报告警。 context 脚本执行的上下文,例如获取当前租户ID、获取当前登录用户ID等。 action 定义脚本的输入输出方法,以及调用脚本的方法。 buffer 操作二进制缓存区,例如将缓冲区内容转换为字符串。 setup 对系统对象Standard Object的增、删、改、查。 db 对自定义对象Customer Object的增、删、改、查。 sql 执行sql语句,目前只支持执行select查询语句。 bo 对Business Object的增、删、改、查。 meta 操作object的元数据,例如获取字段名称、获取字段长度。 http http或者https操作。 iconv 将字符串转为GBK、GB18030、GB2132或ISO8859_1编码格式,或者解码字符串。 crypto 加密操作,包含对哈希、HMAC、加密、解密、签名及验证的封装。 decimal 将从http请求或从数据库中查询出来的number类型值,转换成Decimal类型,并能进行加、减、乘、除等数学运算。 excel 操作Excel文件,例如生成Excel文件。 text 操作文本,例如将文本转换为二进制。 xml 操作XML文件,例如读取XML文件内容。 uuid 生成全局唯一标识。 父主题: 预置API
  • 组件 在开发自定义组件时,需要定义“组件名.js”文件,该文件为组件逻辑文件,是整个组件的渲染核心JS,在组件编辑状态和页面最终的发布运行态都会被加载执行。主要包含的预置API说明,请参见表1。 表1 组件名.js中预置API说明 分类 API及说明 组件实例预置API init方法:主要包含组件渲染需要初始化数据的入口函数。 render方法:负责整个组件渲染的业务逻辑方法。 getConnectorProperties:获取桥接器属性的配置值。 getConnectorInstanceByName:通过桥接器的变量名称获取桥接器实例,其中“APIConnector”类型为String,表示桥接器的变量名称。 ConnectorIns.process(renderCbk, errCbk):通过桥接器实例调用process函数,主要作用为发起调用服务的请求和处理返回结果信息。 在通过process函数发起请求前,需设置桥接器实例的requestParams属性为请求的参数,例如:ConnectorIns.requestParams = param; 参数renderCbk,类型为Function,当返回结果信息后调用该函数,用于处理返回信息。 参数errCbk,类型为Function,调用该函数来处理错误。 ConnectorIns.query(param):通过桥接器实例调用query函数,主要作用为发起调用服务的请求和处理返回结果信息,参数说明如下: param:请求参数。 其返回结果为Promise对象。 getProperties:用于返回该组件的自定义属性值。 开发Widget时,可以给组件自定义属性,在开发界面可对这些属性进行配置,通过getProperties方法可返回自定义属性值。例如,var properties = thisObj.getProperties()。 getContainer:用于返回渲染该组件的容器dom节点。 代码示例:var elem = thisObj.getContainer (),然后通过jquery去查询组件中某个dom节点时,可通过$("#id", elem)的方式来获取。 getWidgetBasePath:用于返回该组件静态资源的根路径。 例如,某个组件的静态资源路径为“https://10.10.10.1:12900/default/0000000000NABzEjpNIH/assets/bundle/widget/172a6056501-a6f8ce1f-2ed9-4a9a-b883-251aaac14e0a/v1591923270914/test0609.js”,执行thisObj.getWidgetBasePath()返回“https://10.10.10.1:12900/default/0000000000NABzEjpNIH/assets/bundle/widget/172a6056501-a6f8ce1f-2ed9-4a9a-b883-251aaac14e0a/v1591923270914” 。 getMessages:返回该组件国际化配置文件中定义的国际化文件内容,需要配置vue和vueI18n使用。 例如,开发组件时定义了messages-en.json和messages-zh.json国际化文件。thisObj.getMessages()返回的就是这两个文件中定义的国际化内容。 hideWidget:隐藏该组件的dom结构,预览时调用该方法可以隐藏Widget。 例如,执行thisObj.hideWidget()方法,隐藏该组件的dom结构。 showWidget:显示该组件的dom结构,预览时调用该方法可以展示Widget。 例如,执行thisObj.showWidget()方法,显示该组件的dom结构。 SITE_ROOT_PATH:为AstroZero预置的参数,用于获取当前站点URL地址的根路径。站点和应用是一对一的关系,当创建应用时,系统默认会创建并分配一个站点。 假如,某个页面的URL地址为“https://10.10.10.1:12900/magno/render/cool__app_0000000000NABzEjpNIH/page1”,则使用SITE_ROOT_PATH获取的根路径为“/magno/render/cool__app_0000000000NABzEjpNIH”。 triggerEvent:用于触发事件,参数说明如下: eventName:指定触发的事件名称。 {}:为事件触发时传递的参数赋值,例如{param: value}。 Studio对象预置API Studio.registerWidget:用来定义组件。 Studio.registerConnector:用来定义桥接器。 Studio.registerEvents:用于注册事件,只有通过此API注册后的事件才会在组件的事件列表中展现。 thisObj:当前组件实例对象,指为该组件注册事件。 "eventName":事件名称,应该与触发事件API中的第一个参数保持一致。 "Event Label":事件标签名,在事件列表中展示的事件标题。 []:定义该事件触发时传递的参数模型,例如[{"name": "param"}] 。 Studio.registerAction:用来注册动作。只有通过此API注册后的事件,才会在组件的动作列表中展现。 thisObj:当前组件实例对象,指为该组件注册动作。 actionName:动作名称。 Action Label:动作标签名,在动作列表中展示的动作标题。 []:事件触发时传入的参数。 $.proxy(this.receiveActionCbk, this):该动作的回调函数,在回调函数中定义该动作的执行逻辑。 []:此参数在开发过程中置为空数组即可。 Studio.registerRouter:用来定义路由。 Studio.inReader:判断当前页面状态是开发态或预览态。其中,“true”表示在预览态(即运行态),“false”表示在开发态。 StudioToolkit.getCatalogProperties():用于获取当前站点的元数据。 magno对象预置API savePropertiesForWidget(props):用于在开发态中保存当前组件的高级设置属性信息,参数为要设置的相关属性集对象。 参数props示例: { "prop1": "value1", "prop2": ""value2" } HttpUtils工具类预置API AstroZero平台内置了HttpUtils工具类,预置API如下: HttpUtils.getCookie:用于获取某个cookie的值。 代码示例:HttpUtils.getCookie() HttpUtils.setCookie:用于设置cookie的值。 代码示例:HttpUtils.setCookie("key","value") HttpUtils.getI18n:返回一个Vue18n的实例,配合Vue和VueI18n使用。该Vue18n实例可以在new一个Vue实例时赋值为i18n参数。 代码示例:HttpUtils.getI18n({locale: HttpUtils.getLocale(), messages: thisObj.getMessages()}) HttpUtils.getCsrfToken:通过ajax的方式去调用平台的接口时使用。如果使用平台桥接器的方式,平台会自动在请求header中,添加csrf-token头。 HttpUtils.getCsrfToken(function(csrfToken) { $.ajax({ …. headers: { CS RF-Token: csrfToken }, }) }) HttpUtils.refreshToken:用于手动刷新页面的accesstoken,通常用在执行退出逻辑时,执行该方法刷新页面的access token。 HttpUtils.getUrlParam:用于获取查询字符串中的参数。 例如,某个页面的URL为“https://10.10.10.1:12900/magno/render/cool__app_0000000000NABzEjpNIH/page1?param=1”, 通过执行HttpUtils.getUrlParam("param")返回该参数的值“1”。 HttpUtils.getLocalStorage:用于获取某个localStorage的值。 代码示例:HttpUtils.getLocalStorage("key") HttpUtils.setLocalStorage:用于设置某个localStorage的值。 代码示例:HttpUtils.setLocalStorage("key","value")