优维低代码实践:页面编排优化与数据联调

企业级低代码服务编排库 - Commander 服务编排是对基础的业务服务按照一定的业务规则进行逻辑组合,提供一个封装后的组合服务接口给前端的过程。 Commander 是一个Orchestration模式的服务编排框架库。 阅读详情

 优维低代码技术专栏,是一个全新的、技术为主的专栏,由优维技术委员会成员执笔,基于优维7年低代码技术研发及运维成果,主要介绍低代码相关的技术原理及架构逻辑,目的是给广大运维人提供一个技术交流与学习的平台。


优维低代码实践连载第③期

《页面编排优化与数据联调》

▽

下面我们以一个空模版为基础创建 testPage 页面,并提供简单的Visual Builder编排界面操作交互演示视频,方便大家了解编排是如何使用的。

1.1 属性修改

 1.2 新增构件(通过组件库拖拽至画布&通过组件库拖拽至构件树&纯构件树新增)

 1.3 构件树拖拽排序

 1.4 删除构件(将鼠标移入构件上,点击右键选择删除)

二、编排修改

在熟悉完上述几种场景的操作后,回到我们创建的第一个路由(页面),我对之前创建的的编排做了一些改造,将它的功能进行了简单地完善,将它变成了一个任务列表展示页面,并且支持查询任务模型数据,以及新增任务实例数据,还支持了搜索能力,那么我是怎么做到的呢,下着跟着我的操作学习一下吧!

 2.1 DATA面板添加&修改数据

在左侧面板下放DATA面板,展开并找到 hostList,点击打开弹窗,将其修改为以下数据结构

数据名称: taskList
类型: Provider
Provider(接口): providers-of-cmdb.instance-api-post-search-v3
Args(参数):
  - TASK_FOR_VB_LESSON
  - fields:
      - name
      - state
      - assignee
      - reporter
      - description
    # 数字格式化语法,QUERY表达式是从URL中读取的参数
    # 譬如:https://admin.easyops.local/next/first-app?page=1&pageSize=10
    # 则 QUERY.page 等于 1, QUERY.pageSize=10
    # 下方表达式含义如下:
    # page参数取自URL上的参数,并且获取完会转化为数字类型格式,如果URL参数中没有page
    # 则默认等于1,pageSize同理
    page: '${QUERY.page=1|number}'
    pageSize: '${QUERY.pageSize=20|number}'
Extra provider settings(额外的接口配置):
  lazy: true
Extra basic settings(额外的基础配置):
  track: true

如下图:

 2.2 查询模型数据并展示

在构件树上定位到table构件,或者在画布上选择table构件,右侧参数面板将联动显示,在右侧参数面板进行比编辑,填入以下数据后,点击保存。

属性面板-属性:
  columns:
    - dataIndex: name
      key: name
      title: 任务名称
    - dataIndex: state
      key: state
      title: 状态
    - dataIndex: assignee
      key: assignee
      title: 负责人
  dataSource: '<% "track context", CTX.taskList %>'
  showCard: false
事件面板-生命周期:
  onPageLoad:
    # 生命周期,当页面加载并且构件都渲染完时触发
    # context.refresh时刷新某个DATA的数据(必须设置lazy:true)
    # 这里我们刷新了 taskList, 实际上是想等页面渲染完再执行请求
    # 这样做的好处是可以减少因请求导致的页面白屏时间过长
    - action: context.refresh
      args:
        - taskList

在点击保存完之后,我们即完成了查询 TASK_FOR_VB_LESSON 模型下的实例数据,并进行展示这一动作,但是由于该模型下还没有实例数据,因此table目前的展示仍旧是空的,需要我们新增完数据后table才会有相应的数据展示

2.3 新增实例弹窗构件&新增数据接口对接

在构件树上新增构件,请在创建时注意他们的嵌套关系

- 任务列表
  - tpl-ui8-layout
    ...
  # 以下为新增部分
  - basic-bricks.general-modal
    - content(挂载点名称)
      - forms.general-form
        - item(挂载点名称)
          - forms.general-input
          - forms.general-text-area
          - forms.cmdb-instance-select
          - forms.cmdb-instance-select

对应的构件属性分别如下:

属性面板-属性:
  # id为构件的唯一标识,同个页面下不允许有重复id存在
  # 否则会在页面执行期间可能会得到非预期结果
  id: modalAddTask
  modalTitle: 添加任务
  closeWhenOk: false
  maskClosable: false
事件面板-事件:
  # 事件由构件暴露,在特定情况下事件会触发,用户可以按需定义事件的回调动作
  # 构件提供的事件可在构件文档中进行查看
  basic-bricks.general-modal.confirm:
    # 说明:当弹窗点击确认时触发事件
    # 选择构件ID为 AddTaskForm的元素,执行其内部方法:validate
    - target: '#AddTaskForm'
      method: validate
  modal.close:
    # 说明: 当弹窗关闭时
    # 选择构件ID为 AddTaskForm的元素,执行其内部方法 setInitValue, 参数为空对象
    # 表示弹窗关闭后就清楚表达值,防止弹窗再打开时出现脏数据
    - target: '#AddTaskForm'
      method: setInitValue
      args:
         - name: ""
          description: ""
          assignee: ""
          reporter: ""
设置面板-放置于: portal
属性面板-属性:
  id: AddTaskForm
  layout: horizontal
事件面板-事件:
  validate.error:
    # 表单校验失败时,弹出消息弹窗,并提示"表单填写失败"
    - action: message.error
      args:
        - 表单填写失败
  validate.success:
    # 表单校验成功时,获取id为modalAddTask的构件,使其入参修改
    - target: '#modalAddTask'
      properties:  
        # 弹窗确认按钮禁用,确保用户不会重复点击,创建相同实例
        okDisabled: true
    # 新增实例接口请求
    - useProvider: providers-of-cmdb.instance-api-create-instance
      args:
        - TASK_FOR_VB_LESSON
        - |-
          <%
            {
              # EVENT.detail为事件透传的信息,这里是表单校验成功的数据
              # 结构等于表单定义的值: 
              # { name: xxx, description: xxx, assignee: xxx, reporter: xxx }
              ...EVENT.detail,
              # 新增状态默认值:待研发
              state: "待研发",
            }
          %>
      # 回调事件
      callback:
        # 接口执行成功调用方法
        success:
          - action: message.success
            args:
              - 任务创建成功
          - target: '#modalAddTask'
            properties:
              okDisabled: false
          # 由于我们新增了数据,此时需要更新 table 的数据
          # 让页面展示最新状态
          - action: context.refresh
            args:
              - taskList
          - target: '#modalAddTask'
            method: close
        # 接口执行失败调用方法
        error:
          # 触发错误提示弹窗
          - action: handleHttpError

- forms.general-input
  属性面板-属性:
    name: name
    label: 任务名称
    placeholder: 请输入任务名称
    required: true
# ============ 分割线 ============== 
- forms.general-text-area
  属性面板-属性:
    name: description
    label: 任务描述
    autoSize:
      maxRows: 8
      minRows: 3
    max: 10
    message:
      max: 最长长度限制,10
      required: 请输入内容
    placeholder: 请填写任务描述
    required: true
# ============ 分割线 ============== 
- forms.cmdb-instance-select
  属性面板-属性:
    name: assignee
    label: 负责人
    objectId: USER
    required: true
    placeholder: 负责人
    allowClear: true
    fields:
      label:
        - name
      value: name
    instanceQuery:
      state: valid
    labelTemplate: '#{name}'
# ============ 分割线 ============== 
- forms.cmdb-instance-select
  属性面板-属性:
    name: reporter
    label: 汇报人
    objectId: USER
    required: true
    placeholder: 汇报人
    allowClear: true
    fields:
      label:
        - name
      value: name
    instanceQuery:
      state: valid
    labelTemplate: '#{name}'

至此,您就完成了新增任务的能力啦!点击工具栏上的 "检查" 按钮将其关闭,体验一下具体的页面交互吧~

三、结语

通过本节实践,您学习了我们最常用的几个API-CMDB的增删改查操作,构件的操作,查询接口的使用,以及新增接口的使用,这基本涵盖了我们日常页面编排的基本情况,其他操作基本上都是基于这些步骤之上进行拓展;下节课将基于这节课的版本上,进行更多高级的操作!

从低代码到无代码:可视化业务编排 对于有一定开发基础的用户来说,他可能不知道我们java后台实际代码是怎么执行的,但当他编写或查看DSL的时候他可以指出DSL在工作时会发生什么样的变化或者错误,他可以与java开发人员进行有效的沟通。对比前面那段JSON,我认为它更易写,而且最重要的是,更易读。通过对七巧低代码线上客户部分业务代码进行梳理,发现页面设计大都是以表单、列表,详情为主,而其中90%的业务逻辑基本上都围绕在表单(校验,取值,赋值,提交),对话框(显隐、提示),发送请求,消息提示,数据处理,路由跳转,条件判断等,相对比较收敛。 阅读详情

相关推荐

一种关于低代码平台(LCDP)建设实践与设计思路

业务线特别多,每个业务线对同一个页面都有个性化布局和不同的字段需求,在资源有限的情况下如何支撑好呢?本文就降本的情况下,如何低成本构建产品能力去支撑多条业务线、多租户。

阿里云云栖号 3909

精读《低代码逻辑编排》

逻辑编排是用可视化方式描述逻辑,在一般搭建场景中用于代替逻辑描述部分。更进一步的逻辑编排是前后端逻辑混排,一般出现在一站式 paas 平台,今天就介绍一个全面实现了逻辑编排的 paas 工...

前端精读周刊 1390

低代码:可视化逻辑编排选型

业务逻辑的代码繁琐且无用,只能让程序员在做低水平的重复工作。有痛点就会有需求,一些低代码平台推出了可视化逻辑编排能力,能够很好地解决这个问题。本文作者对此进行了分析,希望对你有帮助。

weixin_41722224的博客 1181

【程序员日记】——从业务编排到低代码 | 京东云技术团队

业务编排是实现低代码的路径之一,但不是唯一路径。尤其是当我看到ChartGPT4.0出来之后,人工智能,可以通过一个网页草图自动生成html代码时,我觉得,这可能才是低代码的最终归宿吧。

JDDTechTalk的博客 1335

【Gin框架入门到精通系列01】Gin框架介绍与环境搭建

本文是Gin框架入门到精通系列的第一篇,系统介绍Gin框架的基本概念、核心特性以及环境搭建。无论你是Go语言新手还是有经验的开发者,都能通过本文快速掌握Gin框架的基础知识,创建并运行你的第一个Gin应用。

GopherTribe的博客 1560

基于51单片机的电压表【0-20V,ADC0832,4051,自动量程】(仿真)

自动换挡式数字电压表就是一个基于单片机的能自动切换量程的数字电压表,其作用是在使用低位的AD转换实现高精度电压测量,可以测量0~20V的电压,并且具有0~0.2V(待测电玉低于0.2V时),0~2V(待测电压低于2V时)和0~20V三个量程自动匹配测量,当待测电压值发生变化时,电压表可以根据输入电压情况自动选择合适的量程进行测量,并且把测量结果显示出来。(2)实现电压表精度测试,最高精度要求0.01V;(1)实现0~20V分3档式电压表;

qq_63964231的博客 1500

七巧低代码业务编排(含iPaaS)业务分析报告

促进开发、执行和集成流治理同任何本地(on-premises)以及基于云的流程、服务、应用和数据连接的一套云服务,可以在独立的或者多个交叉的组织中进行。1)腾讯云鹊桥 iPaaS聚焦于「SaaS应用集成」与「API生命周期管理」,借助平台级的连接器实现业务集成。但可视化编排能力较弱,面向开发者为主。2)Informatica(连续6年蝉联Gartner报告iPaaS领导者)聚焦于「数据集成」与「API生命周期管理」,提供了强大的WorkFlow及ETL过程工具。3)RestCloud(国内新生代)

Daoyiyun的博客 1630

保姆级教程:从Salmon输出到DESeq2,搞定RNA-seq表达矩阵标准化与下游分析准备

本文提供从Salmon输出到DESeq2标准化的RNA-seq数据分析全流程指南,详细解析表达矩阵构建、标准化方法选择及下游分析准备。重点介绍如何将Salmon定量结果转换为DESeq2兼容格式,包括TPM与原始计数的处理技巧,以及常见问题排查方法,帮助研究人员高效完成RNA-seq数据分析。

weixin_42699679的博客 305

一种面向后端的微服务低代码平台架构设计

近期参加公司组织的极客中餐厅训练营,我们所在的小组接到的课题是微服务的低代码平台架构设计。目标是:结合京东业务研发实际情况,针对后端研发人员,设计一个微服务低代码平台,助力更高效低交付业务需求。现已结业,将我在本次项目中沉淀设计出的设计文档整理成文,期待与大家有进一步的碰撞沟通

京东科技开发者 1253

【2023年】云计算比赛——金砖挑战赛正式题

文章摘要 本文详细记录了OpenStack私有云平台与Kubernetes容器云平台的部署与运维过程,涵盖环境初始化、组件安装、服务配置及自动化运维等关键任务。主要内容包括: OpenStack部署 环境初始化(主机名、Yum源、FTP服务等) 核心组件安装(Keystone、Glance、Nova、Neutron等) 运维任务(安全组管理、镜像上传、存储服务配置等) Kubernetes集群搭建 节点配置(时间同步、免密登录) 容器运行时(Docker)与网络插件(Flannel)部署 Harbor私有仓

geekgold的博客 313

ThingsBoard教程(十九):规则节点概览介绍

在ThingsBoard的CE V2.5.6版本中,一共有这几种类型在每一种类都有包含了多个节点,每一种类型的节点都有不同的颜色表示本篇文章做一个简单的概括,后续的文章会详细讲解每一个种类的节点如何使用,每一个节点的使用。一共有10个,使用黄色表示 过滤器节点用于消息过滤和路由。一共有9个,使用绿色 属性节点用于更新传入消息的元数据。一共三个,使用蓝色 转换节点用于更改传入消息字段,如发起者、消息类型、有效负载和元数据。一共21个,使用红色标识 动作节点根据传入的消息执行各种动作。一共9个,使用黄色表示,

知无涯 1万+

可视化逻辑编排工具——低代码/无代码

前端社区里,低代码/无代码是被讨论的火热赛道。简单来说低代码就是通过编写少量代码的方式完成应用的开发及上线,而无代码是低代码的子集,不需要编写代码通过配置的方式即可完成整个应用的开发。目前集团内部的低代码平台已经有很多,比如JNPF、宜搭、云凤蝶等等,而通用的无代码搭建平台有简道云、明道云等。

xuxian的博客 896

最新Python爬虫实战(入门爬虫篇)——案例3:爬取二次元cos图片批量下载到本地(附上完整爬虫代码)

本次案例通过Python爬虫技术实现了二次元图片的批量下载。代码采用模块化设计,函数实现cookies的自动解析,简化了配置流程,涵盖“请求列表页→提取详情页URL→请求详情页→提取图片链接→保存图片”的完整流程,与豆瓣案例的核心逻辑和格式完全对齐。学习重点包括:抓包工具定位多层级数据源、正则表达式匹配复杂链接、模拟请求头绕过反爬机制、文件名安全处理及自动化文件管理。需要注意控制请求频率并遵守网站使用规范,适用于入门爬虫实践,帮助学习者掌握多层级页面爬取的核心逻辑。

努力让自己发光,对的人才能迎着光而来 14万+

低代码平台服务编排提升

数据层:统一数据存储,并提供不同维度的数据操作、数据初始化、数据转换、数据计算等基础数据操作,通过数据的标准化和服务化管理,实现数据的重用和共享,提高数据的利用价值和业务响应速度。随着产品的使用越来越广,业务的不断迭代,由于前期没有很好的规划服务编排的发展方向,现考虑如何做好运维、支持复杂的编排场景、实现统一校验、统一数据采集等提升时,臃肿的代码耗费了很大的改造成本。再由服务组装成一个个通用的业务领域组件,最后仅需要通过业务组件进行简单的组装即可快速完成应用逻辑的开发,低代码开发的效率,也将带来质的飞跃。

whalecloud的博客 1212

关务管理项目专题:SAP 与关衡关务系统的进出口报关业务集成(1)需求和方案整理

一个拥有进出口业务的企业就需要报关,而关务系统就是用来辅助企业日常进出口报关,同时数字化、合规化报关业务的有效工具。本章属于关务管理项目专题系列,以 SAP 与关衡关务系统的进出口报关业务集成为实例,详细讲解报关业务的需求和方案整理。

SAP李斌,本人承诺所有原创文章均不使用任何AI生成技术,请大家放心阅读。 2078

PyTorch 最新安装教程(2021-07-27)

PyTorch 最新安装教程(2021-07-27)前言1. 安装 Anaconda2. 检查显卡,更新驱动3. 创建PyTorch环境4. 配置清华TUNA镜像源5. 安装 PyTorch6. 测试 前言 万事开头难! 这句话又一次被我验证。 记得前不久刚陷入Tensorflow2.0的安装困境,这一次又被PyTorch 搞哭辽。 孩子太难了o(╥﹏╥)o,不过还好最终成功安装,感谢全网资源,感谢大佬们的博客!被我一次一次试了出来。 1. 安装 Anaconda Anaconda 是一个用于科学计算的 P

全网粉丝30W+,优快云、稀土掘金人工智能领域签约作者,人工智能、大模型、Python 爬虫,商务合作,请私信沟通。 23万+

低代码开发的核心能力:逻辑引擎服务编排

逻辑引擎是通过对原子服务能力的可视化编排,同时接入外部应用,以满足数据处理、业务实现、自动化业务的实现。轻松实现业务功能,无需复杂冗长的开发过程。

834

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

优维低代码实践:编排优化Plus

在上一章节中,我们编排完成了任务列表的查询,以及新增任务实例这两功能,在本章节中,我们将对其进行功能的完善,包括:任务修改,任务删除,点击任务跳转至任务详情页面,搜索查询能力完善等,那么下面让我们开始学习吧!在上一章节的最后一点我们完成了任务实例的新增,接下来我们要用对任务进行修改,需要我们在编排开辟新的入口(Tabel增加操作列),并调用相关的Proivder接口进行修改,下面跟着我的编排快速过下吧~在做完修改功能后,增删改查我们就剩最后一个删除功能了,我们就已最简单的实现结束这块功能吧~

EasyOps_DevOps的博客 873

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

优维低代码:编排详解菜单配置

优维低代码技术专栏,是一个全新的、技术为主的专栏,由优维技术委员会成员执笔,基于优维7年低代码技术研发及运维成果,主要介绍低代码相关的技术原理及架构逻辑,目的是给广大运维人提供一个技术交流与学习的平台。 接下来我们将继续为大家详细讲解编排详解中的菜单配置。 为 Micro App 配置菜单主要有两种方式: 在路由定义中使用menu配置菜单([Storyboard.routes.menu]); 在 Next Builder 上配置菜单(并在路由菜单定义中使用menuId/subMe...

EasyOps_DevOps的博客 427

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

低代码平台--基于surging开发微服务编排流程引擎构思

前言京东优惠券 https://m.fenfaw.net/ 微服务对于各位并不陌生,在互联网浪潮下不是在学习微服务的路上,就是在使用改造的路上,每个人对于微服务都有自己理解,有用k8s 就说自己是微服务,有用一些第三方框架spring cloud, dubbo ,abp, nginx,kong就说是微服务的,还有用一些第三放分布式平台去架设部署也认为它是微服务,反正微服务的架设是各种各样,没有定义哪个架构是对的,只要是集大成者,全部用docker, 满足服务发现,服务治理就是微服务。而对于以上架构选择不..

nidongla的博客 947

无代码解决方案:如何彻底实现无代码化研发模式

近年来,关于低代码(LowCode)和无代码(NoCode)的讨论在前端社区内越来越火,简单的说低代码就是通过编写少量代码的方式完成应用的开发及上线,而无代码则更进一步,不需要编写代码通过...

淘系技术 2569

如何抢先未来5年低代码百亿级赛道?后端落地实践之服务编排

低代码按下了企业竞争的“加速键” 数字化转型,如火如荼。作为企业数字化转型的重要工具,势必需要软件服务做支撑,但传统软件开发面临时间长、成本高等痛点,低代码开发平台便成企业数字化转型的“利器”。 2021年,低代码按下了企业竞争的“加速键”。艾瑞咨询《2021年低代码行业研究报告》显示,与2020年相比,中国低代码市场规模将大幅增长至29.3亿元,未来五年市场规模有望达到131亿元。一场没有硝烟的战争,吹响了集结号。Gartner预测2024年应用软件开发活动中,65%将通过低代码方式完成。 在当前B

DOUBLEcFn的博客 245

实体类管理系统如何诊断:两条特征与状态的多维性驰骋BPM驰骋低代码低代码工作流引擎

人力资源、固定资产、车辆管理这类系统与交付类系统的形状完全不同:业务围绕一条记录发生,记录本身长期存在,同时还要围绕实体集合做查询、统计与批处理。本文给出实体类管理的两条特征、一套五问清单,以及实体状态在时间点上一维、在不同管理视角下多维的处理方式。

开源驰骋工作流引擎 181

私有化低代码实践:基于JVS构建企业级可控数字化平台(信创适配+等保三级+源码交付)

原生兼容Spring Cloud Alibaba微服务生态,已通过Nacos(替代Eureka)、Redis(替代Memcached)、Kafka(替代RabbitMQ)等国产中间件认证,并完成统信UOS、银河麒麟、鲲鹏920、海光Hygon全栈适配测试。金融、政务、能源等行业对系统安全有明确强制要求:数据不出域、操作可审计、接口可追溯。:数据库、中间件、应用层全部资产由客户物理持有,杜绝远程诊断、第三方调用与跨境传输,存储加密、访问控制、备份策略全程自主配置;

weixin_42054392的博客 248

表单元素的分类与实现:主表、从表、附件与扩展控件驰骋BPM驰骋低代码低代码工作流引擎

一张低代码表单上的可设计元素,按数据载体可以分成四层:主表字段、从表、附件、字段扩展控件。本文逐层说明各自的元数据落点、设计器入口与运行时链路,并用一张请假单说明四层如何拼装。

开源驰骋工作流引擎 159

实体类管理系统万能公式:定对象、定状态、列业务驰骋BPM驰骋低代码低代码工作流引擎

实体类系统的设计可以归纳为三步:先确认要管理的对象并按规范补齐六个必要属性,再确定这个对象一生会经历哪几个状态,最后理清每个状态下可以发生哪些业务,形成状态与业务的矩阵。实现手段在流程、实体方法、通用组件三者之间按规矩轻重取舍,并补齐查询、权限与报表等集合能力。

开源驰骋工作流引擎 109
上一篇: 又被客户表扬了!
下一篇: ChatGPT可以帮助开发人员的8种方式...
优维科技EasyOps
博客等级 码龄5年 1483粉丝 395原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值